FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema con condicionales encadenados
Muy buenas a todos. Estoy haciendo un programa y, en la siguiente secuencia, tengo algún problema. El programa compila y ejecuta correctamente, pero no hace lo que quiero. A continuación expongo el código y lo que quiero conseguir con él:
Código:
If Deje1/Dengr<=0.4 Then D:=Deje1 Else Begin If Deje2/Dengr<=0.4 Then D:=Deje2 Else Begin If Deje3/Dengr<=0.4 Then D:=Deje3 Else Begin If Deje4/Dengr<=0.4 Then D:=Deje4 Else Begin If Deje5/Dengr<=0.4 Then D:=Deje5 Else Begin If Deje6/Dengr<=0.4 Then D:=Deje6 Else D:=Deje7; end end end end end; Para que ese Deje# sea válido, la relación (Deje#/Dengr) debe ser menor o igual que 0.4. Para ello, empiezo a comparar con Deje1. Si Deje1/Dengr <= 0.4, D será Deje1 y se acabaría la secuencia de condicionales. Si no, se compararía Deje2/Dengr, y si es <=0.4, D sería Deje2. El proceso avanzaría si no se cumple la condición (<=0.4) para los Deje# siguientes, hasta que, en caso de que Deje6/Dengr no sea menor o igual que 0.4, D sea directamente Deje7. Espero haberlo explicado de forma inteligible. El problema que tengo es que el programa me saca un resultado para D, pero no cumple la condición D/Dengr<=0.4 Creo que el error está en algún end, algún punto y coma... Pero he estado trasteando y no doy con el fallo. Agradecería cualquier tipo de ayuda. Muchas gracias de antemano. Un saludo. |
#2
|
|||
|
|||
Cita:
|
#3
|
||||
|
||||
Hola Parabol77
Bueno, creo que el problema te lo estás haciendo con tanto begin y end innecesarios... Basándome en la explicación, sería:
Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 09-02-2011 a las 11:11:22. |
#4
|
||||
|
||||
Hola de nuevo.
Creo que mejor te dejo un ejemplo
Verás que la función devuelve 4, que es el primer número del parámetro que cumple la condicion. Ya que 4/10 es <= 0.4 y los predecesores no. Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 09-02-2011 a las 11:12:55. |
#5
|
|||
|
|||
¡Muchas gracias a ambos!
Perdón por contestar tan tarde, pero he estado un poco ocupado. Resulta que al final, el error venía de otras acciones que había antes del código que he puesto, pero al menos he caido en poner todos esos condicionales de manera mucho más sencilla. Gracias de nuevo. Un saludo. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema con condicionales "compuestos" | Parabol77 | Varios | 2 | 18-11-2010 16:27:33 |
Se puede hacer consultas SQL condicionales con Firebird | David | SQL | 2 | 04-04-2008 15:34:54 |
condicionales en SQL | Max_E. | SQL | 2 | 31-10-2006 19:28:33 |
SQL´s con condicionales | AMINOA2R | Firebird e Interbase | 3 | 02-02-2006 09:33:14 |
|