PrInf09: if anidados

De MateWiki
Saltar a: navegación, buscar
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.

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:

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);  
end

Como 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
end

Si 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);


Lapiz.png Tarea: Modifica el programa de la práctica anterior, sustituyendo parte del código escrito en la práctica anterior con el trozo de código que se muestra en el párrafo de encima. 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.