Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Invalid Floating Point Operation (https://www.clubdelphi.com/foros/showthread.php?t=10399)

inetplus 18-05-2004 20:22:10

Invalid Floating Point Operation
 
Como se puede determinar la causa de este tipo de errore ?

Existe alguna variable que puedan darle a uno un indicio del causante del problema.

un saludo

roman 18-05-2004 20:26:45

Yo creo que esás atacando el problema desde un ángulo equivocado. Dicho así es muy ambiguo; mejor platícanos qué código es el que te genera dicho error.

// Saludos

sanxpue 18-05-2004 20:51:48

Que....
 
¡¡¡Que
Ese error no lo marca cuando divides entre cero

Conocidisimo el error de punto flotante :eek:

inetplus 18-05-2004 21:49:36

Ojala pudiese darte mas información en donde se produce el error, voy a darte una explicación un tanto mas certera, el sistema funciona en forma perfecta en una PC Pentium IV y un K6 de 500. No ocurre lo mismo en otro K6 de las mismas caracteristicas de este ultimo pero con menos memoria.

El error se produce al iniciar su ejecución.

roman 18-05-2004 22:05:03

No sé si tenga que ver pero había algunos pentium que tenían un error. Existe una directiva al compilador para esto: {U+}.

// Saludos

MiguelR 17-03-2012 05:58:22

invalid floating point operation
 
a mi me marca ese problema con este código, soy nuevo y no se mucho, agradecería mucho la ayuda
Código:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
m:array[1..10,1..10] of extended;
v:array[1..10] of extended;
a,i,j,x,z:integer;
k,b:extended;
linea:string;
archivo:textfile;
begin
    a:=strtoint(edit2.text);
    assignfile(archivo,edit1.text);
    reset(archivo);
    for i:=1 to a do
    for j:=1 to a do
    read(archivo,m[i,j]);

    z:=1;
    x:=1;
    b:=1;
    k:=0;
    while i<>a do begin
        for i:=z to (z+1) do begin
            k:=m[i,j];
            b:=b*k;
            for j:=x to a do begin
                v[j]:=(m[i,j])/(k);
            end;
        end;
        for i:=i+1 to a do begin
            k:=m[i,j];
            for j:=j to a do begin
                if k<>0 then
                m[i,j]:=((v[j])/(k))+m[i,j]
                else break;
            end;
        end;

        z:=z+1;
        x:=x+1;
    end;

    m[i,j]:=(m[i,j])*b;
    memo1.lines.add(floattostr(m[i,j]));
end;

end.


newtron 17-03-2012 09:56:48

Hola.

Yo creo que en algún momento alguna variable está cogiendo un valor disparatado así que deberías ir depurando el programa paso a paso mirando qué valor cogen las variables para detectar en qué linea de da el error.

Saludos

Casimiro Notevi 17-03-2012 10:19:36

Bienvenido a clubdelphi, MiguelR, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración.

ecfisa 17-03-2012 22:11:33

Hola Miguel.

El primer error que veo es que aquí:
Código Delphi [-]
begin
  a:=strtoint(edit2.text);
  ...
  for i:=1 to a do
    for j:=1 to a do
      read(archivo,m[i, j]);
Cargas a x a valores en la matriz m. Pero inmediatamente luego de entrar al bucle while y sin asignarle valor a j, haces:
Código Delphi [-]
    ...
    while i<>a do
    begin
      for i:=z to (z+1) do
      begin
        k:= m[i,j]; // <- ¡ Aquí !
        ...
Resulta que j, luego de salir del ciclo for, tiene un valor de a+1 y el valor de m[i, (a+1)] es indeterminado ya que nunca se le asigno algo...

Saludos.


La franja horaria es GMT +2. Ahora son las 11:30:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi