7 - Estructuras Condicionales Anidadas
7 - Estructuras Condicionales Anidadas
7 - Estructuras Condicionales Anidadas
ar
http://www.tutorialesya.com.ar/cmasmasya/detalleconcepto.php?punto=7&codigo=134&inicio=0
Decimos que una estructura condicional es anidada cuando por la rama del verdadero o el falso de una
estructura condicional hay otra estructura condicional.
El diagrama de flujo que se presenta contiene dos estructuras condicionales. La principal se trata de una
estructura condicional compuesta y la segunda es una estructura condicional simple y est contenida por la
rama del falso de la primer estructura.
Es comn que se presenten estructuras condicionales anidadas an ms complejas.
Problema:
Confeccionar un programa que pida por teclado tres notas de un alumno, calcule el promedio e imprima alguno
de estos mensajes:
Si el promedio es >=7 mostrar "Promocionado".
Si el promedio es >=4 y <7 mostrar "Regular".
Si el promedio es <4 mostrar "Reprobado".
Diagrama de flujo:
Analicemos el siguiente diagrama. Se ingresan tres valores por teclado que representan las notas de un alumno,
se obtiene el promedio sumando los tres valores y dividiendo por 3 dicho resultado (Tener en cuenta que si el
resultado es un valor real solo se almacena la parte entera).
Primeramente preguntamos si el promedio es superior o igual a 7, en caso afirmativo va por la rama del
verdadero de la estructura condicional mostramos un mensaje que indica "Promocionado" (con comillas
indicamos un texto que debe imprimirse en pantalla).
En caso que la condicin nos de falso, por la rama del falso aparece otra estructura condicional, porque todava
debemos averiguar si el promedio del alumno es superior o igual a cuatro o inferior a cuatro.
Estamos en presencia de dos estructuras condicionales compuestas.
Programa:
#include<iostream>
using namespace std;
void main()
{
int nota1,nota2,nota3;
cout <<"Ingrese primer nota:";
cin >>nota1;
cout <<"Ingrese segunda nota:";
cin >>nota2;
cout <<"Ingrese tercer nota:";
cin >>nota3;
int promedio=(nota1 + nota2 + nota3) / 3;
if (promedio >= 7)
{
cout <<"Promocionado";
}
else
{
if (promedio >= 4)
{
cout <<"Regular";
}
else
{
cout <<"Reprobado";
}
}
cin.get();
cin.get();
}
Codifiquemos y ejecutemos este programa. Al correr el programa deber solicitar por teclado la carga de tres
notas y mostrarnos un mensaje segn el promedio de las mismas.
Podemos definir un conjunto de variables del mismo tipo en una misma lnea:
int nota1,nota2,nota3;
Esto no es obligatorio pero a veces, por estar relacionadas, conviene.
A la codificacin del if anidado podemos observarla por el else del primer if.
Para no tener problemas (olvidarnos) con las llaves de apertura y cerrado podemos ver la siguiente regla:
Cada vrtice representa una llave de apertura y una de cierre:
Problemas propuestos
1. Se cargan por teclado tres nmeros distintos. Mostrar por pantalla el mayor de ellos.
2. Se ingresa por teclado un valor entero, mostrar una leyenda que indique si el nmero es positivo, negativo
o nulo (es decir cero)
3. Confeccionar un programa que permita cargar un nmero entero positivo de hasta tres cifras y muestre un
mensaje indicando si tiene 1, 2, o 3 cifras. Mostrar un mensaje de error si el nmero de cifras es mayor.
4. Un postulante a un empleo, realiza un test de capacitacin, se obtuvo la siguiente informacin: cantidad
total de preguntas que se le realizaron y la cantidad de preguntas que contest correctamente. Se pide
confeccionar un programa que ingrese los dos datos por teclado e informe el nivel del mismo segn el
porcentaje de respuestas correctas que ha obtenido, y sabiendo que:
Nivel
Nivel
Nivel
Fuera
Solucin
Retornar
mximo: Porcentaje>=90%.
medio: Porcentaje>=75% y <90%.
regular: Porcentaje>=50% y <75%.
de nivel: Porcentaje<50%.