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....
¡¡¡Que
Ese error no lo marca cuando divides entre cero Conocidisimo el error de punto flotante
__________________
saludos desde Puebla Mexico.. asanxt@hotmail.com "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.
|
#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 .... |
|
|
|