Programación General > Pascal
Problemas Utilización: Dos "if" Y Un "else"
Luis_1986:
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:
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:
te falta pone un ELSE despues del primer IF
Te deberia quedar algo como lo que pusieron en el mensaje anterior:
--- Código: Text --- IF numero<100 THEN writeln ('El número es menor a 100');ELSE <-- te falto este IF numero>100 THEN writeln ('El número es mayor a 100') ELSE writeln ('El número es igual a 100');
Luis_1986:
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:
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.
Navegación
[#] Página Siguiente
Ir a la versión completa