Programación General => Pascal => Mensaje iniciado por: Luis_1986 en Miércoles 13 de Febrero de 2008, 06:05
Título: Problemas Utilización: Dos "if" Y Un "else"
Publicado por: Luis_1986 en Miércoles 13 de Febrero de 2008, 06:05
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
Título: Re: Problemas Utilización: Dos "if" Y Un "else"
Publicado por: shakka en Miércoles 13 de Febrero de 2008, 07:21
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
Título: Re: Problemas Utilización: Dos "if" Y Un "else"
Publicado por: posman en Miércoles 13 de Febrero de 2008, 16:30
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');
Título: Re: Problemas Utilización: Dos "if" Y Un "else"
Publicado por: Luis_1986 en Jueves 14 de Febrero de 2008, 04:42
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!!
Título: Re: Problemas Utilización: Dos "if" Y Un "else"
Publicado por: ProfesorX en Jueves 14 de Febrero de 2008, 23:02
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.
Título: Re: Problemas Utilización: Dos "if" Y Un "else"
Publicado por: Luis_1986 en Viernes 15 de Febrero de 2008, 03:28
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.