• Viernes 8 de Noviembre de 2024, 20:14

Autor Tema:  Problemas Utilización: Dos "if" Y Un "else"  (Leído 1923 veces)

Luis_1986

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Problemas Utilización: Dos "if" Y Un "else"
« en: Miércoles 13 de Febrero de 2008, 06:05 »
0
Buenas!!

Tengo este codigo, en el cual estoy tratando de ejemplificar el uso del "IF":

PROGRAM prueba;
USES crt;
VAR
      numero:integer;
BEGIN
     clrscr;
     writeln ('Ingrese un número'); readln (numero);

    IF numero<100 THEN
        writeln ('El número es menor a 100');
    IF numero>100 THEN
        writeln ('El número es mayor a 100')
    ELSE
          writeln ('El número es igual a 100');
   
    readln
END.

Deseo ejemplificar el uso del "IF", y segun yo habia aprendido al escribir lo que esta en rojo al ingresar un valor mayor a 100 (ejem. 101) mostraria "El número es mayor a 100"; el otro caso sería si el valor es menor a 100 (ejem. 99) mostraria "El número es menor a 100"; y en el caso del ELSE al ser igual a 100 entonces mostraria "El número es igual a 100".

Bueno aquí viene mi verdadera pregunta.  Porque razón utilizando ese codigo al ingresar un valor menor a 100 me escribe lo que aparece en el primer "IF" y lo que aparece en el "ELSE"?

Pido disculpas si al ingresar el código e faltado a alguna norma del foro, pero no e encontrado información relacionada sobre este problema (se podría decir que el mismo codigo es anticuado) pero ni consultando con compañeros le e encontrado respuesta, espero que ustedes me puedan responder porque pasa eso.

 :blink: Se me olvidaba agregar que el programa lo escribi en Pascal 7.0

shakka

  • Miembro HIPER activo
  • ****
  • Mensajes: 679
  • Nacionalidad: cr
    • Ver Perfil
    • http://mbrenes.com
Re: Problemas Utilización: Dos "if" Y Un "else"
« Respuesta #1 en: Miércoles 13 de Febrero de 2008, 07:21 »
0
No tengo compilador a la mano para probarlo, pero recuerdo que era algo asi...

IF numero<100 THEN BEGIN
  writeln ('El número es menor a 100');
END
ELSE BEGIN
  IF numero>100 THEN BEGIN
    writeln ('El número es mayor a 100');
  END
  ELSE BEGIN
    writeln ('El número es igual a 100');
  END
END

posman

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Problemas Utilización: Dos "if" Y Un "else"
« Respuesta #2 en: Miércoles 13 de Febrero de 2008, 16:30 »
0
te falta pone un ELSE despues del primer IF

Te deberia quedar algo como lo que pusieron en el mensaje anterior:

Código: Text
  1.  
  2. IF numero&#60;100 THEN
  3.   writeln ('El número es menor a 100');
  4. ELSE &#60;-- te falto este
  5.   IF numero&#62;100 THEN
  6.     writeln ('El número es mayor a 100')
  7.   ELSE
  8.     writeln ('El número es igual a 100');
  9.  
  10.  

Luis_1986

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Problemas Utilización: Dos "if" Y Un "else"
« Respuesta #3 en: Jueves 14 de Febrero de 2008, 04:42 »
0
Le/s agradezco su ayuda con la solucion de este codigo, pues bien, yo quisiera que me resuelvan la siguiente inquietud: por que con el codigo anterior cuando ingreso 99 me tira dos mesanjes: a) "Numero menor a 100"  y B) "numero igual a 100" :( , pues alli lo me tendría que mostrar es solo "numero es menor a 100" no los dos.  

Gracias de antemano!!

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Problemas Utilización: Dos "if" Y Un "else"
« Respuesta #4 en: Jueves 14 de Febrero de 2008, 23:02 »
0
La solucion ya te la dieron, te falta un else, esa es la razon, al faltar el else se toma como 2 if separados, y no anidados, entonces, en el primer if, si el numero es menor, imprime que el numero es menor, y al llegar al segundo if, pregunta si es mayor, y como no es mayor, no imprime el mensaje de "es mayor" PERO como tiene un else, el else del segundo if se cumple si el numero es menor o igual, asi que vuelve a imprimir el mensaje.


Si aun sigues sin entender porque, entonces te recomiendo que estudies sobre los if anidados, y que le preguntes a tu maestro y que te haga una corrida de escritorio, asi comprenderas mejor porque.

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Luis_1986

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Problemas Utilización: Dos "if" Y Un "else"
« Respuesta #5 en: Viernes 15 de Febrero de 2008, 03:28 »
0
Gracias!!

:whistling: Pues ignoraba que entonces se volvieran dos "if" separados, siempre pensaba que si incluia varios "if" siempre iban a estar conectados dentro de ellos mismos y que "else" formaria parte de todos los "if" (no se si me di a entender).

Bueno, les agradezco su tiempo, gracias por participar y gracias ProfesorX por aclarame esa parte que no la sabia, lo demás si creo saberlo.