PrInf09: if anidados
| Práctica de Informática | |
|---|---|
| if anidados | |
| Práctica anterior | Siguiente práctica |
| Este artículo es un guión de prácticas de Informática | |
En la práctica 6 vimos cómo hacer que un programa tomara decisiones, usando la instrucción if. En la práctica 7 vimos cómo escribir condiciones algo más complejas para usarlas con if, que entrenamos también en el programa de la práctica 8. Ahora vamos a ver cómo combinar varios if juntos, técnica que se conoce como if anidados. Para ello, modificaremos el programa de la práctica anterior.
Contenido
1 Requisitos previos
Es imprescindible haber realizado previamente la práctica 8.
Es también muy recomendable visualizar este vídeo antes de realizar esta práctica:
2 Vídeos posteriores
Tras realizar esta práctica, es conveniente ver estos vídeos e intentar implementar el programa que se explica en ellos:
- Prog13: Ejemplo -- Segundo programa (1/3)
- Prog14: Ejemplo -- Segundo programa (2/3)
- Prog15: Ejemplo -- Segundo programa (3/3)
3 Contenido de la práctica
En la práctica anterior teníamos que mostrar un mensaje si la temperatura transformada estaba entre 0ºC y 100ºC. En esta práctica vamos a modificar el programa que hayamos escrito, para mostrar los siguientes mensajes:
- Si la temperatura calculada está por debajo de 0ºC, tendrá que mostrar el mensaje X ºF corresponden a HIELO.
- Si la temperatura calculada está por encima de 100ºC, tendrá que mostrar el mensaje X ºF corresponden a VAPOR.
donde X es la temperatura en grados Farenheit, escrita con dos decimales.
Si llamamos c a la temperatura que hemos calculado en grados Celsius y f a la temperatura que introduce el usuario en grados Farenheit, en la práctica anterior tendremos que haber escrito un trozo de código parecido al siguiente:
if c >= 0 && c <= 100
fprintf('AVISO: La temperatura %.2f ºF está entre 0 ºC y 100 ºC\n', f);
endComo ya sabemos, la sentencia if también admite una cláusula else, para ejecutar comandos si no se cumple la condición. En nuestro caso, cuando no se cumple la condición tenemos que mostrar un mensaje, HIELO o VAPOR, que dependerá del valor de la temperatura c. Es decir, el programa modificado puede ser inicialmente el siguiente:
if c >= 0 && c <= 100
fprintf('AVISO: La temperatura %.2f ºF está entre 0 ºC y 100 ºC\n', f);
else
% Muestra VAPOR si c es mayor que 100
% O muestra HIELO si c es menor que 0
endSi quieres usar el programa automático que comprueba si la práctica es correcta, tienes que usar el comando fprintf para mostrar los mensajes. Por ejemplo, para mostrar el mensaje HIELO tienes que escribir:
fprintf('%.2f corresponden a HIELO\n', f);Sustituye los comentarios dentro de la cláusula else por el código que creas necesario para realizar las modificaciones pedidas. Las pistas necesarias para saber cómo modificar el programa se dan en el vídeo Prog12: Condiciones (if anidados).
3.1 Ejemplo de ejecución
Si el usuario introduce 5 como valor de entrada, tu programa debe producir la siguiente salida:
5.00 ºF corresponden a HIELO El equivalente a 5.00 ºF en grados Celsius es -15.00 ºC
Si introduce 150, debe producir la siguiente salida
AVISO: La temperatura 150.00 ºF está entre 0 ºC y 100 ºC El equivalente a 150.00 ºF en grados Celsius es 65.56 ºC
Si introduce 1000, debe producir la siguiente salida
1000.00 ºF corresponden a VAPOR El equivalente a 1000.00 ºF en grados Celsius es 537.78 ºC
4 Comprobación de la práctica
Puedes comprobar si tu programa es correcto usando este programa: CompruebaPr09.m
Dale al botón derecho y elige guardar como. Cópialo en el mismo directorio donde hayas guardado la solución de la práctica. Luego puedes comprobar si tu programa es correcto escribiendo
CompruebaPr09('miSolucion');En este caso, la solución de la práctica está guardada en un fichero llamado miSolucion.m. Cambia el nombre al llamar a CompruebaPr09 si tu programa se llama diferente.
El programa no comprueba ninguna parte del programa desarrollada en alguna práctica anterior, solo comprueba si el mensaje se muestra cuando la temperatura está entre 0ºC y 100 ºC, o si se muestran los mensajes correspondientes cuando la temperatura está por debajo de 0 ºC o por encima de 100 ºC. Se probarán diferentes temperaturas, y se mostrará si el resultado es el esperado (mensaje que empieza por OK). Si en algún caso no es el esperado, mostrará un mensaje que empieza por WARN o por ERR.
5 Ejercicio post-práctica
Además de else, existe otra cláusula, denominada elseif que facilita la lectura del código cuando existen muchos if anidados. Modifica tu programa para que use las cláusulas elseif necesarias, de modo que no haya if anidados.
Consulta la documentación de MATLAB sobre elseif y la Octave también, para averiguar cómo aplicarlo a tu programa.