Ver Mensaje Individual
  #1  
Antiguo 09-02-2011
Parabol77 Parabol77 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 10
Reputación: 0
Parabol77 Va por buen camino
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;
Lo que quiero conseguir es lo siguiente: Tengo los datos Dengr, y Deje1 a Deje7 (Los llamaré Deje# para mayor comodidad). Como salida, tengo la variable D, que se corresponderá al Deje# "válido".

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.
Responder Con Cita