Casa
Top.Mail.Ru Yandeks.Metrika
Foro: "Principal";
Archivo actual: 2002.04.01;
Descargar: [xml.tar.bz2];

abajo

¿Qué pasa? Encontrar ramas similares


Володя   (2002-03-21 14:43) [0]

En general, se trata de ridículo.
Escribo, por ejemplo, tal operador:
var
x, q: extendido;
...
x: = q / 500;
...
Si coloca un punto de interrupción después de este operador, entonces todo está bien. Si antes y pasa por F8 (F7), se produce el error "Operación de flotación no válida". Por otra parte, el error puede o no ser. En general, fui torturado. No puedo depurar correctamente el programa.
¿Alguien puede reunirse con esto? Compilador Delphi 6, Win98SE.
Gracias volodia



Alx2   (2002-03-21 14:45) [1]

Extraño
¿Y el código es completamente posible?



Andrey007   (2002-03-21 14:47) [2]

¿Hiciste la inicialización inicial de las variables? También debe mirar los valores de estas variables, tal vez ir más allá de los límites del rango. En general, parece que se dividen por cero.



Alx2   (2002-03-21 14:58) [3]

Sí, lo más probable es que la inicialización ...



-=CrazyFish=-   (2002-03-21 15:24) [4]

antes
x: = q / 500;
asignar
x: = 0;
debería funcionar



-=CrazyFish=-   (2002-03-21 15:28) [5]

Antes de usar variables de punto flotante es conveniente restablecerlas.



Alx2   (2002-03-21 15:31) [6]

> - = CrazyFish = - © (21.03.02 15: 28)
?

¿Y si acabas de inicializar? (No necesariamente cero)



-=CrazyFish=-   (2002-03-21 15:36) [7]

Bueno, me emocioné con cero ...;) estoy de acuerdo



MBo   (2002-03-21 15:50) [8]

¿Había un niño? :)



McSimm   (2002-03-21 16:02) [9]

> MBo © (21.03.02 15: 50)
Así que creo que ... :)

La gente inicializa, por supuesto, necesario. Simplemente no xY q.
Se produce un error porque hay valores aleatorios en la memoria asignada para q. Si para Integer esto no es aterrador en principio, entonces para Extended ... no todos los conjuntos de bits se pueden dividir en 500 :))



Alx2   (2002-03-21 16:11) [10]

Cuanto más fácil sea la pregunta, más fuerte será la diarrea ....
Así que pronto comenzaremos a desmontar la letra con la cual la palabra "comenzar" debería estar correctamente escrita ...

> Personas, inicializar, claro, necesario. Sólo que no x, sino q.
Bueno, naturalmente ...
Sin embargo, no hay código, NII autor ...



Володя   (2002-03-21 16:49) [11]

Ni siquiera esperaba una respuesta tan instantánea. En general iba a ver mañana. Gracias a todos.
A continuación se muestra una parte del procedimiento. También tuve dudas sobre la incertidumbre del valor. Pero el error aparece incluso después de dicha inicialización.
var
Quant: Integer;
x, q: extendido;
comenzar
ind: = 0;
mientras que GetNorm (Art, MontagName, NormK, NormS) lo hace
comenzar
NormK: = 0.4;
q: = 4.67;
x: = 0;
x: = NormK * Q; // Aquí hay un error de operación de punto flotante no válido, si aquí se pone un punto de interrupción
x: = x / NormS; // o aquí, si el punto de interrupción se establece aquí. La línea superior funciona sin error
final
fin;
Esto es una especie de tontería. Yo me veo Todas las variables están definidas. Además, se inicializa inmediatamente antes del uso. (La variante de los valores aleatorios parece desaparecer).
Y el exe-shnik compilado funciona con una explosión. El problema es que no puedo depurar.



Alx2   (2002-03-21 16:52) [12]

Intente deshabilitar la optimización, vuelva a compilar y vuelva a comprobar dónde se produce la excepción.
Lo más probable es que debido a las normas



MBo   (2002-03-21 16:57) [13]

x: = 0;
x: = NormK * Q
x: = x / Normas
las dos primeras líneas no generan código, no hay ningún punto (optimización)
NORMAS QUE ES



McSimm   (2002-03-21 17:00) [14]

¿Cómo se describe el procedimiento de GetNorm (y dónde se describe NormK, NormS?

> x: = 0;
> x: = NormK * Q;

Y antes de x: = 0 también es deseable inicializar x también :) (es broma)



Alx2   (2002-03-21 17:01) [15]

> MBo © (21.03.02 16: 57)
> x: = 0;
Esto, aparentemente, es una consecuencia de los consejos mal entendidos "es recomendable ponerlos a cero antes de usar variables de punto flotante" (- = CrazyFish = - © (21.03.02 15: 28))



-=CrazyFish=-   (2002-03-21 17:09) [16]

Gente, se reirán, pero hace un par de meses encontré el siguiente problema técnico
en la cadena x: = (aquí hay cálculos de punto flotante);
error rastreado "Operación flotante no válida" Todas las variables se inicializaron, excepto x. Cuando ya estaba en un estupor, solo x: = 0; y sólo entonces la línea anterior. ¿Qué dices a eso?



Alx2   (2002-03-21 17:14) [17]

> - = CrazyFish = - © (21.03.02 17: 09)
El código en el estudio!
Quiero ver el asm generado.



-=CrazyFish=-   (2002-03-21 17:24) [18]

El código en el estudio no funciona, porque No lo tengo ahora.
Tal vez en la asm generada y hubo fallas, pero en Pascal todo era cierto.



Володя   (2002-03-21 17:31) [19]

Está bien, chicos. Lo que era el error no entendía, pero resolvió el problema de la siguiente manera. Solo en la carpeta del proyecto se eliminaron todos los archivos excepto * .pas, * .dfm y, por supuesto, * .dpr. Después de lanzar Delphi, todos los archivos auxiliares se crearon de nuevo (por supuesto, perdí todas las configuraciones del proyecto). Después de volver a configurar (rutas, iconos, etc.), el problema desapareció. Espero para siempre. Gracias a todos los que participaron en la discusión.



Páginas: 1 rama entera

Foro: "Principal";
Archivo actual: 2002.04.01;
Descargar: [xml.tar.bz2];

arriba









Memoria: 0.62 MB
Tiempo: 0.068 c
1-222
Genbr
2002-03-19 07:48
2002.04.01
Forma modal


4-339
Olga
2002-01-30 14:04
2002.04.01
Si la ventana de DOS se cuelga ...


6-261
Malder
2002-01-19 13:45
2002.04.01
¿Cómo ocultar ESocketError?


1-108
Nuevo a estrenar
2002-03-21 13:25
2002.04.01
Cómo encontrar Ip en formato LongInt


1-86
d_oleg
2002-03-21 09:30
2002.04.01
Bitmap Dll





africaans albanés Arabic armenio Azerbaiyán vasco Bielorruso Bulgarian Catalán Chino (simplificado) Chino (tradicional) Croata Checo Danés Dutch Inglés Estonia filipina Finnish Francés
gallego georgiano Alemán Griego criollo haitiano hebreo hindi Húngaro islandés Indonesian irlandés Italiana Japonés Korean letón lituano macedonio Malay maltés Noruego
persa polaco Portuguese Rumano Ruso Serbio Slovak Esloveno Español swahili Sueco Thai turco ucranio Urdu vietnamita galés yídish bengalí bosnio
cebuano esperanto gujarati hausa hmong igbo javanés kannada khmer lao latín maorí marathi mongol nepali punjabi somalí Tamil telugu yoruba
zulú
Английский Francés Alemán Italiano portugués Русский Español