![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Hola a todos.
El código que puse es un ejemplo. El problema que tengo es la parte del if, porque la matriz tiene algunos elementos con el valor 1.5707963268, pero cuando llega a la parte del if, nunca entra, siendo que debería hacerlo. A continuación va el código: Código:
Procedure Dibujar( Matriz : Tmatriz1 );
var
Bloque, Ancho, Alto, i, j : Integer;
Pendiente, X0, Y0 : Real;
begin
Bloque := 16;
Alto := 7;
j := 1;
while ( Alto <= (Form1.Image1.Picture.Bitmap.Height - ( (Bloque div 2)+1 ) ) ) do
begin
Ancho := 7;
i := 1;
while ( Ancho <= (Form1.Image1.Picture.Bitmap.Width - (( Bloque div 2 )+1) ) ) do
begin
if ( Matriz[j,i] = 1.5707963268 )then
begin
Pendiente := tan(Matriz[j,i]);
X0 := 1;
Y0 := 1;
Obtener_Puntos( X0, Y0, Pendiente );
X0 := X0-1;
Graficar ( Ancho, Alto, X0, Y0, clFuchsia, 3 );
end;
inc(i);
Ancho := Ancho + 16;
end;
Alto := Alto + 16;
inc(j);
end;
Form1.Label1.Caption := 'ya está';
end;
|
|
#2
|
||||
|
||||
No entiendo, el codigo de "ejemplo" y el real no se parecen en nada. No entiendo porque no pusiste el codigo "real" la primera vez. No lo entiendo ...Volviendo a tu pregunta, tu dices lo siguiente: Cita:
![]() |
|
#3
|
||||
|
||||
|
|
#4
|
||||
|
||||
|
Este hilo tiene el misterio de un cuento de navidad, con sorpresa incluida, el que era, ahora no es, el que es, no es el que parecía que era, jejeje...
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal Última edición por Casimiro Noteví fecha: 20-12-2006 a las 21:25:27. |
|
#5
|
|||
|
|||
|
Solo quiero comentar que si el código ejemplo es similar al código real (según tú) a nadie beneficia haber mostrado el primero, es decir, no se ha resuelto tu problema y por otro lado pienso que le hiciste perder el tiempo a la gente que amablemente trato de colaborar.
Tu problema es específico en el código real y nunca se va a localizar el mismo error/problema/defecto (llamalo como quieras) en el código ejemplo. Hasta pronto Edito: Lo único congruente es el titulo del hilo (COSA DE LOCOS) ![]()
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
|
#6
|
|||
|
|||
|
No es posible que si se cumplen las condiciones no entre al if, ¿seguro que no en alguno de los bucles while no se cumple y sale?
|
|
#7
|
||||
|
||||
|
Cita:
Las comparaciones de tipos que tienen decimales es uno de los mayores problemas que hay en el mundo de la PC, al menos para mí ; es un problema inherente al diseño del procesador para almacenar y manejar las precisiones y no es específico a un lenguaje, vamos, no es de Delphi. Yo lo viví en carne propia al crear una aplicación para tratamiento de señales de sensores que deben ser procesados con precisiones de 9 posiciones decimales, o mejor dicho 0.00000001 unidades de error máximo en los cálculos, ncluyendo las maditas comparaciones de floats. También me quebré la cabeza y por 2 semanas investigando la comparación que fallaba a partir de los 6 decimales y en el Watch salían valores <> 0 (por eso nunca entraba al if) al restar el valor comparado contra el valor de la condición, que según yo y la lógica de este universo eran valores iguales; y buscando por Internet encontré la causa, que es la forma cómo el procesador almacena y reconstruye el valor original (que al final no siempre resulta el original); como no es entero, usa una serie de estratagemas para almacenar la parte decimal. La solución en mi caso fué limitar la precisión máxima de 9 decimales para todos los cálculos, truncando lo demás. Para esto se puede usar SimpleRoundTo de la unidad Math ó la combinación de RoundTo / SetRoundMode. Sería algo similar al hilo quedarme con Centésimas en un float. Saludos
__________________
eLcHiCoTeMiDo - Rompecorazones profesional Yo no soy presumido; ¿Pero de qué sirve mi humilde opinión contra la de los espejos? Salva a un nylon, usa prendas de piel de foca
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Están locos estos romanos | dec | Humor | 3 | 09-10-2006 11:49:32 |
| Los virus estan mas locos cada dia | el_barto | Noticias | 6 | 14-09-2005 17:54:18 |
| ...de locos... | Jure | Humor | 2 | 23-08-2004 12:43:20 |
| ¿Estamos locos o que? | kokoon | Humor | 3 | 28-05-2004 21:25:33 |
| Locos | obiwuan | Humor | 0 | 13-05-2003 19:05:19 |
|