You are on page 1of 5

ESTRUCTURA SELECTIVA DOBLE

Permite seleccionar una ruta de dos posibles, en base a la verdad (V) o falsedad (F) de la condición.

Pseudocódigo En C++
if(condicion)
Si(Condicion) {
a1 a1;
a2;
a2
a3;
a3
.
. .
. .
. an;
an }
Sino else
b1 {
b1 b1;
b1 b2 ;
. b3;
. .
. .
.
bn
bn;
Finsi
}

Si (if) la condición es verdadera, se ejecutan las sentencias: {a1, a2, a3, …, an} , sino (else) se
ejecutaran las sentencias: {b1, b2, b3, …, bn}
Si la sentencia solo tiene una línea no es necesario poner llaves.
SENTENCIAS ANIDADAS
Una estructura de decisión puede estar anidada dentro de otra estructura de decisión, hay que tener en
cuenta que el anidamiento sea total.

Se debe mantener el concepto que una estructura de decisión debe tener una sola entrada y una sola
salida tanto para la estructura que anida como para la estructura anidada.

Pseudocódigo En C++
if(Condicion1)
Si(Condicion1) {
Si(Codicion2) if(Condicion2)
Ejecuta bloque de acciones 1 {
Sino Ejecuta bloque de
Ejecuta bloque de acciones 2 acciones1
Finsi }
Sino else
Ejecuta bloque de acciones 3 {
Finsi Ejecuta bloque de
acciones2
}
}
else
{
Ejecuta bloque de
acciones3
}

Para entenderlo mejor citare unos ejemplos.


Ejemplos.

Si se quiere saber si el numero ingresado en mayor que cero el código de nuestro programa seria

#include <iostream>

using namespace std;

int main()

{ int num;

cout<<"ingrese un numeros"<<endl;

cin>>num;

if (num>0){cout<<"el numero es mayor que cero"<<endl;}

else {cout<<"el numero es menor que cero"<<endl;}

}
Si además de que el número sea mayor que cero queremos saber si el número es múltiplo de
tres el código será:

#include <iostream>

using namespace std;

int main()

{ int num;

cout<<"ingrese un numeros"<<endl;

cin>>num;

if (num>0){cout<<"el numero es mayor que cero"<<endl;if(num%3==0){cout<<"el numero es


multiplo de tres"<<endl;}else {cout<<"no es multiplo de tres"<<endl;}}

else {cout<<"el numero es menor que cero"<<endl;}

Conclusión sentencia anidada:

If( ) { if ( ) else { } }
Else { }

Veamos el caso en la que se ingrese el número -6 no sale que es múltiplo de tres sólo nos
sale: El numero no es mayor que cero y no se evalúa la condición si es múltiplo de tres, esto
sucede porque tenemos antes una condición que actúa como un filtro que es: Si ( if ) el
numero ingresado es mayor que cero ( if(num>0) ) entra al bloque encerrado entre llaves y ahí
recién se evalúa si este numero es múltiplo de tres, si lo es se manda a pantalla: El numero es
múltiplo de tres en caso contrario : El numero no es múltiplo de tres; en caso de que el
numero no sea mayor de cero entrara al bloque else (sino) de la primera condición y nos
muestra por la pantalla: El numero no es mayor que cero.
Una forma de resolver esto seria:
#include <iostream>

using namespace std;

int main()

{ int num;

cout<<"ingrese un numeros"<<endl;

cin>>num;

if (num>0){cout<<"el numero es mayor que cero"<<endl;if(num%3==0){cout<<"el numero es


multiplo de tres"<<endl;}else {cout<<"no es multiplo de tres"<<endl;}}

else {cout<<"el numero es menor que cero"<<endl;if(num%3==0){cout<<"el numero es


multiplo de tres"<<endl;}else {cout<<"no es multiplo de tres"<<endl;}}

Estructuras selectivas
G.P.2-4 :

Diseñe un algoritmo que determine la categoría de un estudiante en base a su promedio,


acuerdo a la siguiente tabla:

Promedio Categoría
20 – 17 A
16 – 14 B
13 – 12 C
11 – 0 D

#include <iostream>

using namespace std;

int main()

float prom;

cout << "ingrese su promedio:";

cin>>prom;
if(prom<=11){ cout<<"Esta en la categoria D:";}

else if(prom<=13 && prom>=12){cout<<"Esta en la categoria C:";}

else if(prom<=16 && prom>=14){cout<<"Esta en la categoria B:";}

else if(prom<=20 && prom>=17){cout<<"Esta en la categoria A:";}