Está en la página 1de 23

Introducción a la computación

Clase 4
Estructuras de control (EC): Selectiva simple if,
compuesta if – else y anidadas

Prof. Marcos Alania


alania.vicente@gmail.com

Lima, 27 junio, 2020


EC: Selectiva simple if
Diagrama de flujo y Seudocódigo
La instrucción if es la declaración de toma de decisiones más
simple. Se utiliza para decidir si una determinada acción o
bloque de acciones se ejecutará o no.

Si No
Condición 1 Si <Condición 1> entonces

<Acción 1>
Acción 1 <Acción 2>
Acción 2

Fin_Si

2
EC: Selectiva simple if
Sintaxis en C++
if ( Condición ){
<Acción 1>
<Acción 2>
}

Ejemplo
Condición

if ( velocidad == 299792458 ){
E = m*velocidad*velocidad; Acción
}

3
EC: Selectiva simple if
Ejemplo
Elabore un algoritmo que pida un numero entero 𝑵 y nos
diga si es par. Representarlo en: diagrama de flujo,
Seudocódigo y código C++.
Análisis del problema
1) Entrada de datos: en este caso es el número entero N a evaluar.

2) Proceso: Para evaluar si un número entero es par, debemos


evaluar el residuo respecto al divisor 2.

3) Salida: Si el residuo respecto al divisor 2 es cero, imprimirá un


mensaje “N es par ”.

4
EC: Selectiva simple if
Diagrama de flujo y Seudocódigo

Inicio

N entero
Inicio
N Definir N como entero;
Leer N;
Si No Si (N % 2 == 0) entonces
N%2==0 Escribir “N es par ”;
Fin_Si
Fin
N es par

Fin

5
EC: Selectiva simple if
Código en C++

#include <iostream>
using namespace std;

int main(){

int N;
cin >> N;
if (N % 2 == 0) {
cout << “N es par";
}
return 0;
}

6
EC: Selectiva simple if
Código en C++ más interactivo con el usuario
/* Este programa pide un numero y imprime
solo si es par*/

#include <iostream>
using namespace std;

int main(){
int numero;
cout << “Ingrese un numero: ";
cin >> numero;
if (numero % 2 == 0) {
cout << “El numero es par" << endl;
}
return 0;
}

7
EC: Selectiva compuesta if-else
Diagrama de flujo y Seudocódigo
La instrucción if-else a diferencia de la instrucción if,
esta evalúa la condición y ejecuta acciones diferentes
para los dos casos (if, else).

Si No Si <Condición 1> entonces


Condición 1 <Acción 1>
Sino
<Acción 2>
Acción 1 Acción 2 Fin_Si

8
EC: Selectiva compuesta if-else
Sintaxis en C++ if ( Condición ){
<Acción 1>
}
Else{
<Acción 2>
}
Ejemplo
Condición
if ( velocidad == 299792458 ){
Acción si es
E = m*velocidad*velocidad;
verdad
else
Acción si es
E = 0.5*m*velocidad*velocidad falsa
}
9
EC: Selectiva compuesta if-else
Ejemplo
Elabore un algoritmo que evalué si las raíces de una ecuación
cuadrática 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0 son reales o complejas. Representarlo
en: diagrama de flujo, Seudocódigo y código C++.
Análisis del problema
1) Entrada de datos: necesitamos los coeficientes (a, b y c) de la
ecuación, también una variable para el discriminante.
2) Proceso: Para saber si las raíces son reales o complejas, se
evalúa el discriminante de la ecuación 𝑑𝑖𝑠 = 𝑏2 − 4𝑎𝑐.
3) Salida: Si el discriminante es mayor o igual cero imprimirá “las
raíces son reales”, caso contrario “las raíces son complejas”

10
EC: Selectiva compuesta if-else
Diagrama de flujo y Seudocódigo
Inicio Inicio
Definir a,b,c,disc como Real;
a, b, c, disc: Real
Leer a;
Leer b;
a, b, c
Leer c;
disc = b*b - 4*a*c;
disc <- b*b -4*a*c Si (disc >= 0) entonces
Escribir “Las raíces son
Si No
disc >= 0 reales”;
sino
Escribir “Las raíces son
Las raíces Las raíces son complejas”
son reales complejas Fin_Si
Fin
Fin

11
EC: Selectiva compuesta if-else
Código en C++
#include <iostream>
using namespace std;

int main(){
float a, b, c, disc;
cin >> a;
cin >> b;
cin >> c;
disc = b*b – 4*a*c;
if (disc >= 0) {
cout << “Las raices son reales";
}
else{
cout << “Las raices son complejas";
}

return 0;
}
12
EC: Selectiva compuesta if-else
Código en C++ más interactivo con el usuario
/* Este programa evalua las raices de una ecuación cuadrática */
#include <iostream>
using namespace std;
int main(){
float a, b, c, disc;
cout << “Ingrese el valor de a: "; cin >> a;
cout << “Ingrese el valor de b: "; cin >> b;
cout << “Ingrese el valor de c: "; cin >> c;
disc = b*b – 4*a*c;
if (disc >= 0) {
cout << “Las raices son Reales" << endl;
}
else{
cout << “Las raices son Complejas“<< endl;
}
return 0;
}

13
EC: Selectiva anidada if-else-if
Diagrama de flujo y Seudocódigo
En este tipo de instrucción, un usuario puede decidir
entre múltiples opciones. En C++ las sentencias if se
ejecutan de arriba hacia abajo. Tan pronto se cumpla una
de las condiciones que son controladas por el else-if, se
ejecuta la instrucción asociada a ese else-if y se omite el
resto de la las condiciones. Si ninguna de las condiciones
es verdadera, se ejecutará la última sentencia else.

14
EC: Selectiva anidada if-else-if
Diagrama de flujo y Seudocódigo

entrada
Si <Condición 1> entonces
<Acción 1>
No Sino Si <Condición 2> entonces
Condición 1
<Acción 2>
Sino
Si No <Acción 3>
Condición 2
Fin_Si
Acción 1
Si

Acción 2 Acción 3

salida

15
EC: Selectiva anidada if-else-if
Sintaxis en C++

if ( Condición 1 ){
<Acción 1>
}
else if ( Condición 1 ){
<Acción 2>
}
else{
<Acción 2>
}

16
EC: Selectiva anidada if-else-if
Ejemplo
Convertir las calificaciones numéricas a letras usando los
siguientes rangos: 𝐴 = < 17, 20], 𝐵 = < 14, 17], 𝐶 = < 11, 14],
𝐷 = < 7, 11] 𝑦 𝐸 = < 0,7].

Análisis del problema


1) Entrada de datos: necesitamos definir una variable de tipo
entero para la nota a evaluar.
2) Proceso: Necesitamos usar una estructura que nos permita
usar múltiples decisiones para evaluar todos los intervalos.
3) Salida: Al valor de la nota ingresada le asignaremos una letra
dependiendo de su valor.

17
EC: Selectiva anidada if-else-if
Diagrama de flujo
Inicio

nota: Entero

nota

Si "su calificación es: A"


nota >17 && nota <= 20

No
Si
nota >14 && nota <= 17 "su calificación es: B"

No
1 2

18
EC: Selectiva anidada if-else-if
Diagrama de flujo y Seudocódigo
1 2

Si "su calificación es: C"


nota >11 && nota <= 14

No
Si
nota >7 && nota <= 11 "su calificación es: D"

No

Si "su calificación es: E"


nota >=0 && nota <= 7

No
“La nota es en el rango de [0, 20]" Fin

19
EC: Selectiva anidada if-else-if
Seudocódigo
Inicio
Definir nota como Real;
Leer nota;
Si (nota >17 && nota<= 10) entonces
Escribir “Su calificación es: A”;
sino si (nota >14 && nota<= 17) entonces
Escribir “Su calificación es: B”;
sino si (nota >11 && nota<= 14) entonces
Escribir “Su calificación es: C”;
sino si (nota >7 && nota<= 11) entonces
Escribir “Su calificación es: D”;
sino si (nota >=0 && nota<= 7) entonces
Escribir “Su calificación es: E”;
sino
Escribir “La nota es en el rango de [0,20]”;
Fin_Si
Fin

20
EC: Selectiva compuesta if-else
Código en C++
#include <iostream>
using namespace std;
int main(){
int nota;
cin >> nota;
if (nota >17 && nota <= 20) {
cout << "su calificacion es: A";}
else if (nota > 14 && nota <= 17){
cout << "su calificacion es: B";}
else if (nota > 11 && nota <= 14) {
cout << "su calificacion es: C";}
else if (nota > 7 && nota <= 11) {
cout << "su calificacion es: D";}
else if (nota >= 0 && nota <= 7) {
cout << "su calificacion es: E";}
else{
cout << "ingrese un valor entre [0, 20]";}
return 0;
}

21
EC: Selectiva compuesta if-else
Código en C++
/* este programa convierte una nota en calificación A, B, C, D y E*/
#include <iostream>
using namespace std;
int main(){
int nota;
cout << "Ingrese su nota: ";
cin >> nota;
if (nota >17 && nota <= 20) {
cout << "su calificacion es: A" << endl;}
else if (nota > 14 && nota <= 17){
cout << "su calificacion es: B" << endl;}
else if (nota > 11 && nota <= 14) {
cout << "su calificacion es: C" << endl;}
else if (nota > 7 && nota <= 11) {
cout << "su calificacion es: D" << endl;}
else if (nota >= 0 && nota <= 7) {
cout << "su calificacion es: E" << endl;}
else{
cout << "ingrese un valor entre [0, 20]" << endl;}
return 0;
}

22
TOMA DE DECISIONES EN C++

Simple y doble múltiple

if if else anidadas switch

}
Resumiendo la clase
if (condición)

// verdadera
if (condición)
{

}
else
// verdadera
if (condición 1)
{

}
// verdadera

else if (condición 2)
if (condición 1)
{
if (condición 2)
{
}
switch (expresión)
{
case 1;
break;

{ { else case 2;
// falsa // verdadera { break;
} } }
else if (condición 3) } case 3;
{ else break;
// verdadera {
} if (condición 3) case 4;
else { break;
{ }
// falsa else default
} { }
}
}

23

También podría gustarte