![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
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 |
|
#2
|
||||
|
||||
|
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 |
|
#3
|
|||
|
|||
|
¡¡¡Que
Ese error no lo marca cuando divides entre cero Conocidisimo el error de punto flotante ![]()
__________________
saludos desde Puebla Mexico.. [email protected] "como siempre a sus ordenes y siempre con buena cara" 'lolita me excitas, perversa piel de melocotón' |
|
#4
|
|||
|
|||
|
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. |
|
#5
|
||||
|
||||
|
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 |
|
#6
|
|||
|
|||
|
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.
|
|
#7
|
||||
|
||||
|
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
__________________
Be water my friend. |
|
#8
|
||||
|
||||
|
Bienvenido a clubdelphi, MiguelR, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#9
|
||||
|
||||
|
Hola Miguel.
El primer error que veo es que aquí: Cargas a x a valores en la matriz m. Pero inmediatamente luego de entrar al bucle while y sin asignarle valor a j, haces: 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.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
![]() |
|
|
|