Está en la página 1de 39

ALGORITMOS DE PROGRAMACIÓN

PARA INGENIERÍA
Estructuras de control de selección simple a
múltiple

Sesión N°7, 8 y 9

MTR. ING. ALVARO E. CHÁVEZ ZUBIETA


ESTRUCTURAS CONDICIONALES

Los Programas se pueden escribir en base a tres estructuras:

1. Secuenciales
2. Condicionales, y
3. Repetitivas

(las estructuras 2 y 3 evalúan expresiones lógicas o condicionales)


Estructuras Condicionales

 Las estructuras condicionales, me permiten


evaluar una expresión o expresiones y según
el resultado de esta evaluación se procesan
un grupo de instrucciones y/o sentencias.
 Las estructuras condicionales se clasifican en
:
Estructuras Selectivas
Estructuras Repetitivas
Estructuras Selectivas
 Las estructuras selectivas permiten evaluar una
expresión o expresiones para luego procesar un
grupo de instrucciones y/o sentencias. Estas
estructuras se procesan solo 1 vez.
 Las estructuras selectivas se clasifican en :
 Condicional Simple (si / fin_si)
 Condicional Doble (si / si_no / fin_si)
 Condicional Anidada (Similar a Condicional Doble)
 Condicional Múltiple (en_caso / fin_en_caso)
SINTAXIS EN LENGUAJE C++
Condición simple IF

#include <iostream>

using namespace std;


int main()
{
int edad;
cout<<"¿Qué edad tienes? ";
cin>>edad;
if ( edad > 20 )
cout<<"Eres mayor de edad" ;
}
Condicional Simple
 Se emplea para evaluar una expresión o expresiones, si el
resultado de esta evaluación es un valor lógico verdadero
(true), entonces se procesaran un grupo de instrucciones o
sentencias.
 Sintaxis :
SI ( Expresion<es> ) ENTONCES
:
: Instrucciones
true
FIN-SI y/o
Sentencias
Ejemplo1 : Ingrese 2 números enteros y
visualice el mayor de los 2 números ingresados.
Algoritmo Numero mayor
var
entero: a, b, mayor
INICIO
leer( a, b)
mayor ← a
si( b > a ) entonces
mayor ← b
fin_si
escribir( mayor )
FIN
Ejemplo 2 : Ingrese un número entero, si es mayor a
10 súmele 10 unidades y visualice el nuevo valor.
Algoritmo Suma condicional
variables
entero: n
INICIO
leer( n )
si( n > 10) entonces
n ← n + 10
fin_si
escribir( n )
FIN
Ejemplo 3 : Una tienda ofrece un descuento del 3% para un
producto en promoción, si el número de productos adquiridos
excede en 5. Calcular el total a pagar por cada compra.
Algoritmo Compra con descuento
variables
entero: cantidad
real: precio, Vcompra, descuento, total
constante
valorDesc = 0.03
INICIO
leer( cantidad, precio )
Vcompra ← cantidad * precio
si ( cantidad > 5 ) entonces
descuento ← Vcompra * valorDesc
fin_si
total ← Vcompra – descuento
escribir( total )
FIN
Ejemplo 4 : Ingrese un número entero y luego visualice un
mensaje indicando si el número ingresado es “PAR” o “IMPAR”.

Algoritmo enteros pares e impares


variables
entero: n, resto
INICIO
leer( n )
resto ← n MOD 2
si ( resto = 0 ) entonces
escribir(“PAR”)
fin_si
si ( resto <> 0 ) entonces
escribir(“IMPAR”)
fin_si
FIN
Ejemplo 5 : Una empresa otorga un bonificación del 5% del
haber básico a sus trabajadores que tienen hijos, calcular el total
a pagar por este concepto.
Algoritmo Bonificacion familiar
variables
entero: NroHijos
real: Hbasico, bonificacion, total
INICIO
leer(Hbasico, NroHijos)
bonificacion ← 0
si ( NroHijos > 0 ) entonces
bonificacion ← Hbasico * 0.05 * NroHijos
fin_si
total ← Hbasico + bonificacion
escribir( total )
FIN
Condiciones doble IF -
ELSE
Condicional Doble
 Se emplea para evaluar una expresión o expresiones, si el resultado de esta
evaluación es un valor lógico verdadero (true), entonces se procesaran un grupo
de instrucciones o sentencias, caso contrario (false) se procesara otro grupo de
instrucciones o sentencias.
 Sintaxis :
SI ( Expresion<es> ) ENTONCES
Instrucciones
y/o true
Sentencias
SINO
Instrucciones
y/o
Sentencias
false
FIN-SI
Ejemplo 1 : Calcular el mayor valor de 2
números enteros.

Algoritmo Entero mayor


variables
entero: a, b, mayor
INICIO
leer(a, b)
si( a > b ) entonces
mayor ← a
si_no
mayor ← b
fin_si
escribir(mayor)
FIN
Ejemplo 2 : Calcular el mayor valor
de 3 números enteros.
Algoritmo Mayor de tres enteros
variables
entero: a, b, c, mayor
INICIO
leer(a, b, c)
si (a > b) Y ( a > c) entonces
mayor ← a
si_no
si (b > c) entonces
mayor ← b
si_no
mayor ← c
fin_si
fin-si
escribir(mayor)
FIN
Ejemplo 3 : Una tienda comercial ofrece un descuento del 3% del valor de
compra si el pago se efectua al contado, en caso el pago sea con tarjeta
se le recarga un 5% del valor de compra. Calcular el total a pagar por una
Algoritmo Compra al contado
compra.
variables
real: Vcompra, descuento, recargo, total
caracter tipoPago
INICIO
leer(Vcompra, tipoPago)
descuento ← 0 : recargo ← 0
si (tipoPago = ‘c’ ) O (tipoPago = ‘C’) entonces
descuento ← Vcompra * 0.03
si_no
recargo ← Vcompra * 0.05
fin_si
total ← Vcompra – descuento + recargo
escribir(total)
FIN
Ejemplo 4 : Ingrese un número entero, si es 2 cifras visualice la
suma de sus cifras, caso contrario visualice su doble.

Algoritmo Calculo de cifras


variables
entero: n, a, b
INICIO
leer( n )
si( n >= 10 ) Y ( n <= 99 ) entonces
a ← n DIV 10
b ← n MOD 10
escribir( a + b )
si_no
escribir( n * 2 )
fin_si
FIN
Ejemplo 5 : Ingrese un número entero de 3 cifras y luego visualice un
mensaje indicando si el número ingresado es “CAPICUA” o “NO ES
CAPICUA”.
Algoroitmo numero capicua
variables
entero: n, a, c
INICIO
leer( n )
si ( n >= 100) Y ( n <= 999 ) entonces
a ← n DIV 100
c ← ( n MOD 100) MOD 10
si ( a = c ) entonces
escribir(“CAPICUA”)
si_no
escribir(“NO ES CAPICUA”)
fin_si
fin_si
FIN
Ejemplo 6 : Ingrese un número entero, si es de 2 cifras imprima
el inverso del número ingresado, caso contrario imprima su
triple.
ALGORITMO Inverso y triple de enteros
variables
entero n, a, b
INICIO
leer( n )
si ( n >= 10 ) Y ( n <= 99 ) entonces
a ← n DIV 10
b← n MOD 10
escribir( (b * 10) + b )
si_no
escribir( n * 3 )
fin_si
FIN
Ejemplo 7 : Ingrese un número entero de 3 cifras y luego visualice el inverso del
número siempre y cuando la suma de sus cifras sea un número par.

ALGORITMO Inverso y suma de cifras de enteros


variables
entero: n, a, b, c, suma
INICIO
leer( n )
si (n > = 100) Y (N <= 999) entonces
a ← n DIV 100
b ← (n MOD 100) DIV 10
c ← (n MOD 100) MOD 10
suma ← a + b + c
si ( suma MOD 2 = 0 ) entonces
escribir( (C*100)+(B*10)+A)
fin-si
si_no
escribir(“EL NUMERO NO ES DE 3 CIFRAS”)
fin_si
FIN
Ejemplo 8 : Ingrese los coeficientes de una ecuación de 2do grado y
luego visualice un mensaje indicando de que tipo son sus raíces.
ALGORITMO Ecuacion de segundo grado
VARIABLES
entero: a, b, c
real: discriminante
INICIO
leer( a, b, c )
discriminante ← (b * b) – (4 * a * c)
si (discriminante < 0 ) entonces
escribir(“Raíces Imaginarias”)
si_no
si (discriminante = 0) entonces
escribir(“Raíces Iguales”)
si_no
escribir(“Raíces Reales”)
fin_si
fin_si
FIN
#include <iostream>

Condiciones anidadas using namespace std;

int main()
{
int A, B, C, mayor;
SI ( Expresion<es> ) ENTONCES cout<<"Ingrese 3 numeros separados por
SI (Expresion<es>) ENTONCES espacios";
: cin>>A>>B>>C; //Lectura de valores por
SINO teclado
: mayor=0;
FIN-SI if ( A > mayor )
SINO {
SI (Expresion<es>) ENTONCES mayor =A;
: if ( B > mayor)
SINO {
: mayor=B;
FIN-SI }
FIN-SI else
{
if (C > mayor)
{
mayor = C;
}
}
}
cout<<"el numero mayor es: "<<mayor;
}
Condicional Anidada
 Esta estructura se emplea cuando se requiere condicionar dentro de otra
condicional, es decir cuando dentro de una condicional simple o doble existe otra
condicional simple o doble.
 Sintaxis :
SI ( Expresion<es> ) ENTONCES
SI (Expresion<es>) ENTONCES
:
SINO
:
FIN-SI
SINO
SI (Expresion<es>) ENTONCES
:
SINO
:
FIN-SI
FIN-SI
Ejemplo 1 : Ingrese un número entre 1 y 3, luego visualice su
equivalente en letras.
Algoritmo Ejemplo1
var
entero: n
INICIO
leer( n )
si( n = 1 ) entonces
escribir(“UNO”)
si_no
si( n = 2 ) entonces
escribir(“DOS”)
si_no
si( n = 3 ) entonces
escribir(“TRES”)
si_no
escribir(“NUMERO NO VALIDO”)
fin_si
fin_si
fin_si
FIN
Ejemplo 2 : Ingrese el puntaje obtenido por un postulante y luego
visualice a que carrera ingreso, según la siguiente tabla :
Puntaje Carrera
[ 70 – 90 > Contabilidad SI NO LOGRO
[ 90 – 100 > Administración INGRESO,
VISUALIZAR
[ 100 – 120 > Derecho CUANTOS
[ 120 – 150 > Ingeniería PUNTOS LE
[ 150 a más … Medicina FALTO

Ejemplo 3 : Ingrese el consumo de agua de un mes y calcule el visualice el


total a pagar, según la siguiente tabla :

Consumo Tarifa
[ 1 – 50 > 0.8
[ 50 – 100 > 1.5
[ 100 – 150 > 1.8
[ 150 – 200 > 2.0
[ 200 a más … 2.2
Algoritmo Ejemplo2

var

entero: puntaje

INICIO

leer( puntaje )

si (puntaje >= 70) Y (puntaje < 90) entonces

escribir(“Contabilidad”)

si_no

si (puntaje >= 90) Y (puntaje < 100) entonces

escribir (“Administración”)

si_no

si (puntaje >= 100) Y (puntaje < 120) entonces

escribir (“Derecho”)

si_no

si (puntaje >= 120) Y (puntaje < 150) entonces


escribir (“INGENIERIA”)

si_no

si (puntaje >= 150) entonces

escribir (“MEDICINA”)

si_no

escribir (“LE FALTO:”, 70-Puntaje)

fin_si

fin_si

fin_si

fin_si

fin_si

FIN
Algoritmo Ejemplo3
var
entero: consumo
real: tarifa, totalPagar
INICIO
leer( consumo )
si (consumo >= 1) Y (consumo < 50) entonces
tarifa ← 0.8
si_no
si (consumo >= 50) Y (consumo < 100) entonces
tarifa ← 1.5
si_no
si (consumo >= 100) Y (consumo < 150) entonces
tarifa ← 1.8
si_no
si (consumo >= 150) Y (consumo < 200) entonces
tarifa ← 2.0
si_no
tarifa ← 2.2
fin_si
fin_si
fin_si
fin_si
totalPagar ← consumo * tarifa
escribir ( totalPagar )
FIN
Ejemplo 4 : Ingrese el ciclo y turno a estudiar, luego calcule el total a
pagar según la siguiente tabla :
CICLO TURNO PENSION
1 M 850
1 N 800
2 M 750
2 N 700
3 - 10 M 650
3 - 10 N 600

Ejemplo 5 : Ingrese el estado civil y numero de hijos, luego calcule la


bonificación a pagar a un trabajador según la siguiente tabla :
Estado Hijos Bonificación
Civil (% Haber Básico)
S 0 2.50 %
S >0 2.75 %
C 0 2.80 %
C >0 3.00 %
V 0 2.50 %
V >0 2.75 %
D 0 2.50 %
D >0 3.00 %
Selección múltiple - switch
Selección múltiple - switch

•variable : Solo puede ser numérica entera o un caracter (como indica


en la imagen).
•case : Caso, indica el valor que de ser igual que variable, se
ejecutarán las acciones en ese caso. Las acciones empiezan en los
dos puntos (:) y termina en la instrucción break.
•break: Romper, sirve para finalizar un bucle o la estructura de control
envolvente ( en este caso el switch ), es decir, una vez que se entre a
uno de los case solo podrá finalizar cuando encuentre al primer break.
•default: En caso de que ninguno de los case anteriores se haya
cumplido, se ejecutarán las acciones de default. No es necesario que
el switch contenga el default.
Selección múltiple - switch
Condicional Múltiple
Se utiliza para evaluar una variable de tipo numérico entero o carácter,
con una lista de valores posibles, para luego procesar un grupo de
instrucciones y/o sentencias.
Simplifica el uso de condicionales anidadas.

Sintaxis :
CASO (Variable) HACER
Lista_1: Instrucciones_Sentencias
Lista_2: Instrucciones_Sentencias
:
Lista_N: Instrucciones_Sentencias Opcional
OTRO CASO:
Instrucciones_Sentencias
FIN_CASO
Ejemplo 1 : Ingresar un número entre 1 y 5, y
luego visualizar su equivalente en letras.

Algoritmo Ejemplo1
var
entero: n
INICIO
leer( n )
CASO ( n ) HACER
1: escribir(“UNO”)
2: escribir(“DOS”)
3: escribir(“TRES”)
4: escribir(“CUATRO”)
5: escribir(“CINCO”)
OTRO_CASO : escribir(“# FUERA DE RANGO”)
FIN_CASO
FIN
Ejemplo 2 : Ingrese 2 números y una operación matemática realizar (+,-
,*,/), luego muestre el resultado de operar los 2 números.

Algoritmo Ejemplo2
variables
entero: a, b, resultado
caracter: operador
INICIO
leer (a, b, operador)
CASO ( operador ) HACER
‘+’ : Resultado ← A + B
‘-’ : Resultado ← A – B
‘*’ : Resultado ← A * B
‘/’ : si ( B <> 0 ) entonces
Resultado ← A DIV B
si_no
Resultado ← 0
fin_si
FIN_CASO
escribir( Resultado )
FIN
Ejemplo 3 : Ingrese número entre 1 y 99, luego visualice su equivalente en
romanos.
Algoritmo Ejemplo3
variables
entero: n, a, b
INICIO
leer( n )
si ( n >= 1) Y ( n <= 99 ) entonces
a ← n DIV 10 : b ← n MOD 10
CASO ( a ) HACER
1: escribir(“X”)
2: escribir(“XX”)
:
9: escribir(“XC”)
FIN_CASO
CASO ( b ) HACER
1: escribir(“I”)
2: escribir(“II”)
:
9: escribir(“IX”)
FIN_CASO
fin_si
FIN
Ejemplo 4 : Calcular el total a pagar por una compra,
sabiendo que existe un recargo según tipo de tarjeta de
crédito con la que se paga la compra.
Tipo de Tarjeta Recargo
Visa Electron ( E ) 0%
VISA ( V ) 5%
MasterCard ( M ) 7%

Ejemplo 5 : Calcular el total a pagar por su consumo


telefónico, sabiendo que su renta básica es de S/. 50
(60 minutos libres), y que el cobro por minutos
adicionales se factura según la siguiente tabla.

Minutos Consumidos Costo x Minuto


< 60 – 100 ] 0.007
<100 – 200 ] 0.005
<200 – 400 ] 0.004
<400 – 500 ] 0.003
<500 – Más… 0.002
Algoritmo Ejemplo4
variables
caracter: tipoTarjeta
real: valorCompra, recargo, totalPagar
INICIO
leer (valorCompra, tipoTarjeta)
CASO ( TipoTarjeta ) HACER
‘E’ : recargo ← 0
‘V’ : recargo ← valorCompra * 0.05
‘M’ : recargo ← valorCompra * 0.07
FIN_CASO
totalPagar ← valorCompra + recargo
escribir( totalPagar )
FIN
Algoritmo Ejemplo5
Variables
entero: minutos
SOLO SE PUEDE
real: totalConsumo, rentaBasica
UTILIZAR RANGO DE
INICIO VALORES EN LA
ESTRUCTURA
rentaBasica ← 50 CASO-SEA
leer( minutos )
CASO ( minutos ) HACER
1 .. 60 : totalConsumo ← 0
61 ..100 : totalConsumo ← (Minutos – 60 ) * 0.007
101..200 : totalConsumo ← (40 * 0.007) + (Minutos – 100) * 0.005
201..400 : totalConsumo ← (40 * 0.007) + (100 * 0.005 ) + (Minutos – 200) * 0.004
401..500 : totalConsumo ← (40 * 0.007) + (100 * 0.005 ) + (200 * 0.004)
+ (minutos – 100) * 0.003
OTRO_CASO :
totalConsumo ← (40 * 0.007) + (100 * 0.005 ) + (200 * 0.004) + (100 * 0.003)
+ (minutos – 500) * 0.002
FIN_CASO
totalConsumo ← totalConsumo + rentaBasica
escribir( totalConsumo )
FIN
Exposición grupal tema

Control de excepciones Try/Cath