Tema 17. Estructura de decisión anidada.

J. Pablo Reymon

2023-10-09

  • facebook logo
  • linkedIn logo
  • whatsapp logo
  • X logo
« Anterior
Siguiente »

Definición de una estructura de decisión anidada.

Dentro de este tipo de estructura se puede validar nuevamente una decisión si anteriormente ya se había tomado una. En pocas palabras, la primera bifurcación heredará una nueva decisión si esta corresponde al resultado verdadero o falso, según sean las condiciones del programa.

El pseudocódigo de una estructura de decisión anidada es el siguiente:

Algoritmo <Decision anidada>
	Variable type IDENTIFICADOR //o constante
	Variable-N type IDENTIFICADOR-N //o constante
	Si (condicion)
  		instruccion-t1
   		instruccion-tN
 	Otro
   		Si (condicion-f)
     		instruccion-f1
     		instruccion-fN
   		FinSi
 	FinSi  
FinAlgoritmo
Figura 1. Diagrama de flujo de una estructura de decisión anidada.

 

Ejemplo 1. Promedio de calificaciones.

Planteamiento del problema:

Desarrolle un algoritmo que permita conocer la media de cuatro calificaciones de un semestre, si el promedio es mayor a 8.0 imprima en pantalla “Semestre aprobado”; en cambio sí la calificación está entre 6.0 y 7.9 imprima “Examen final”, si no (es menor a 6.0) que imprima “Semestre reprobado”.

Descripción narrada:

Algoritmo <Promedio de calificaciones>
1.	Leer las calificaciones proporcionadas (c1, c2, c3, c4).
2.	Calcular el promedio.
3.	Sí el promedio es mayor a 8.0 imprimir “Semestre aprobado”.
4.	En cambio, si el promedio está entre 6.0 y 7.9 imprimir “Examen final”.
5.	Si es menor a 6.0 imprimir “Semestre reprobado”.
FinAlgoritmo

Pseudocódigo:

Algoritmo <Promedio de calificaciones>
	Variable Real c1, c2, c3, c4, p;
	Imprimir(“Ingrese la primera calificación: ”);
	Leer(c1);
	Imprimir(“Ingrese la segunda calificación: ”);
	Leer(c2);
	Imprimir(“Ingrese la tercera calificación: ”);
	Leer(c3);
	Imprimir(“Ingrese la cuarta calificación: ”);
	Leer(c4);
	p = (c1 + c2 + c3 + c4) / 4;
	Si(p >= 8.0)
		Imprimir(“Semestre aprobado: “, p);
	SiNo
		Si(p <= 7.9 AND p >= 6.0)
			Imprimir(“Examen final: “, p);
		SiNo
			Imprimir(“Semestre reprobado: ”, p);
		FinSi
	FinSi
FinAlgoritmo

Diagrama de flujo.

Figura 2. Diagrama de flujo del ejemplo 1.

Otra manera de representar el proceso puede ser:

Figura 3. Diagrama de flujo del ejemplo 1 (versión 2).

 

Ejemplo 2. Compra de un celular.

Planteamiento del problema:

Desarrolle un algoritmo donde el usuario introduzca una cantidad estimada de dinero para la compra de un celular; si la cantidad es menor a $5,000 le muestre al usuario “Gama baja, 10% de descuento”, en cambio si está entre $5,000 y $10,000 imprima “Gama media, 20% de descuento”; y finalmente, si es mayor a $10,000 imprima “Gama alta, 30% de descuento”.

Descripción narrada:

Algoritmo <Compra de celular>
1.	Leer la cantidad introducida (cantidad).
2.	Si la cantidad es menor a $5,000 imprimir “Gama baja, 10% de descuento”.
3.	En cambio, si está entre $5,001 y $10,000 imprimir “Gama media, 20% de descuento”.
4.	En cambio, si es mayor a $10,001 imprimir “Gama alta, 30% de descuento”.
FinAlgoritmo

Pseudocódigo:

Algoritmo <Compra de celular>
	Variable Real cantidad;
	Imprimir(“Ingrese la cantidad deseada: ”);
	Leer(cantidad);
	Si(cantidad < 5000)
		Imprimir(“Gama baja, 10% de descuento”);
	SiNo
		Si(cantidad >= 5000 AND cantidad <=10000)
			Imprimir(“Gama media, 20% de descuento“);
		SiNo
			Si(cantidad > 10000)
				Imprimir(“Gama alta, 30% de descuento”);
			FinSi
		FinSi
	FinSi
FinAlgoritmo

Diagrama de flujo:

Figura 4. Diagrama de flujo del ejemplo 2.

 

Ejemplo 3. El número más grande.

Planteamiento del problema:

Elabore un programa que permita conocer el número más grande de tres números proporcionados por el usuario.

Descripción narrada:

Algoritmo <Número más grande>
1.	Leer los números introducidos (num1, num2, num3).
2.	Si num1 es mayor a num2 y num3, imprimir “El número más grande es num1”.
3.	En cambio, si num2 es mayor a num1, num3, imprimir “El número más grande es num2”.
4.	Si no, imprimir “El número más grande es num3”.
FinAlgoritmo

Pseudocódigo:

Algoritmo <Número más grande>
	Variable Real num1, num2, num3;
	Imprimir(“Ingrese el primer número: ”);
	Leer(num1);
	Imprimir(“Ingrese el segundo número: ”);
	Leer(num2);
	Imprimir(“Ingrese el tercer número: ”);
	Leer(num3);
	Si(num1 > num2 AND num1 > num3)
		Imprimir(“El número más grande es: ”, num1);
	SiNo
		Si(num2 > num1 AND num2 > num3)
			Imprimir(“El número más grande es: “, num2);
		SiNo
			Imprimir(“El número más grande es: ”, num3);
		FinSi
	FinSi
FinAlgoritmo

Diagrama de flujo:

Figura 5. Diagrama de flujo del ejemplo 3.
Sobre el artículo

Texto creado bajo la licencia de Raiko EngineLink. Queda estrictamente prohibida la replicación de este y todos los contenidos creados fuera de esta plataforma. ©, Todos los derechos reservados. Descubre cómo hacemos esto.

manage_search