Subido por carlos2020wd

MO S06 Diapositiva

Anuncio
FACULTAD DE INGENIERÍA Y NEGOCIOS
EAP INGENIERÍAS
Curso: Algoritmos
Semana 6:
ESTRUCTURAS CONDICIONALES MÚLTIPLES
Estructura de Selección Múltiple o en
Cascada
si-sino-si
• La estructura de selección múltiple o en
cascada esta formada por varias estructuras
de selección doble SI-SINO puestas una a
continuación de otra de forma que a un SISINO le sigue otro SI-SINO.
• Se utiliza cuando hay múltiples condiciones
para evaluar
Estructura de Selección Múltiple o en Cascada
La instrucción de selección Anidada permite expresar situaciones donde hay
más de una condición que se debe tomar en cuenta.
Una de las formas de expresarlo es:
SI (condición1)
ENTONCES
Acciones 1
SINO
SI (condición2)
ENTONCES
Acciones2
SINO ...
Fin-Si
Ejemplo de Instrucción de Selección Anidadas - 1
Enunciado del Problema
Diseñe un algoritmo que dado dos números A y B,
determine si A es mayor, igual o menor a B.
Algoritmo
Datos de Entrada: A y B
Datos de Salida: Mensaje indicando si A es mayor, igual o menor a B.
Proceso:
Leer A y B
Comparar A y B
Si (A > B) entonces se escribe el mensaje “A es mayor que B” .
Si la condición es falsa (A<=B) preguntar si (A = B)
Si ésta es verdadera se escribe el mensaje “A es igual a B”
y si es falsa, por defecto se escribe el mensaje “A es menor que B”
Ejemplo de Instrucción de Selección Anidadas - 1
Problema : Dado dos números A y B, determina si A es mayor, igual o menor a B.
Pseudocódigo
Inicio
Entero: A, B
Leer A y B
Si ( A > B ) entonces
Escribir “A es mayor que B“
sino
Si ( A = B ) entonces
Escribir “A es igual a B“
sino
Escribir “A es menor que B“
Fin-Si
Fin- Si
Fin algoritmo
Ejemplo de Instrucción de Selección Anidadas - 1
Problema : Dado dos números A y B, determina si A es mayor, igual o menor a B.
Diagrama de Flujo
Inicio
Entero: A, B
Leer A, B
verdadero
falso
A>B
Escribir “A es
mayor que B”
verdadero
falso
A=B
Escribir “A es
igual a B”
Escribir “A es
menor que B”
Fin
Ejemplo de Instrucción de Selección Anidadas - 2
/*Crear un menú áreas para hallar el área de un circulo, rectángulo y
cuadrado*/
programa areas
const
pi=3.1416
var
opcion,radio,base,altura,lado,area:numerico
inicio
cls()
imprimir("Areas: \n1.-Circulo\n2.-Rectangulo\n3.-Cuadrado")
imprimir("\nSeleccione Opcion(1 o 2 o 3): ")
leer(opcion)
si (opcion==1)
{
imprimir("Ingrese radio: ")
leer(radio)
area=pi*radio^2
imprimir("Area circulo: ",area)
Continua 2
sino si (opcion==2)
imprimir("Ingrese base: ")
leer(base)
imprimir("Ingrese altura: ")
leer(altura)
area=base*altura
imprimir("Area Rectangulo: ",area)
sino si (opcion==3)
imprimir("Ingrese lado: ")
leer(lado)
area=lado^2
imprimir("Area Cuadrado: ",area)
sino
imprimir("Opción incorrecta")
}
fin
Ejemplo 3
/*Crear algoritmo que ingrese nombre, curso y nota de un alumno, determine
si es: mal alumno si nota entre 0 y 10, regular alumno nota entre 11 y 14,
buen alumno nota entre 15 y 17, excelente alumno nota entre 18 y 20 sino
mostrar nota incorrecta*/
programa notas
var
nombre,curso:cadena
nota:numerico
inicio
cls()
imprimir("Ingrese Nombre: ")
leer(nombre)
imprimir("Ingrese Curso: ")
leer(curso)
imprimir("Ingrese Nota: ")
leer(nota)
Continua 3
si (nota>=0 and nota<=10)
{
imprimir(nombre," es Mal alumno")
sino si (nota>=11 and nota<=14)
imprimir(nombre, " es regular alumno")
sino si (nota>=15 and nota<=17)
imprimir(nombre, " es buen alumno")
sino si (nota>=18 and nota<=20)
imprimir(nombre, " es excelente alumno")
sino
imprimir("Nota incorrecta")
}
fin
Ejemplo 4
/*Generar un numero al azar entre 1 y 100, determinar en que rango esta, si esta
entre 1 y 25 es rango1, 26 y 50 es rango2, 51 a 75 es rango 3 sino es rango 4*/
programa azarnumero
var
num:numerico
inicio
cls()
num=random(100)+1
imprimir("Numero: ",num,"\n")
si (num>=1 and num<=25)
{
imprimir(num, " esta en rango 1 entre 1 y 25")
sino si (num>=26 and num<=50)
imprimir(num, " esta en rango 2 entre 26 y 50")
sino si (num>=51 and num<=75)
imprimir(num, " esta en rango 3 entre 51 y 75")
sino
imprimir(num, " esta en rango 4 entre 76 y 100")
}
fin
Ejemplo 5
/*Crear algoritmo lotería centavo que el usuario ingrese un numero y su apuesta
para adivinar un numero entre 1 y 20 , si adivina gana 100 veces su apuesta sino
pierde la apuesta*/
programa loteria1
var
num,apuesta,azar,ganancia:numerico
inicio
cls()
imprimir("Ingrese su numero ganador: ")
leer(num)
imprimir("Ingrese su apuesta: ")
leer(apuesta)
azar=random(20)+1
imprimir("Numero Ganador: ",azar,"\n")
si (num==azar)
{
ganancia=apuesta*100
imprimir("Suertudo ganaste: ",ganancia)
sino
imprimir("Piña perdiste: ", apuesta)
}
fin
Ejemplo 6
/*Lanzar 2 dados y hallar la suma, si suma es 2,3 o 12 mostrar perdiste piña,
si suma es 7 0 11 mostrar ganaste suertudo sino mostrar no pasa nada juega
de nuevo*/
programa juega_dados
var
dado1,dado2,suma:numerico
inicio
cls()
dado1=random(6)+1
dado2=random(6)+1
suma=dado1+dado2
imprimir("\nDado 1: ",dado1)
imprimir("\nDado 2: ",dado2)
imprimir("\nSuma: ",suma)
si (suma==2 or suma==3 or suma==12)
{
imprimir("\nPerdiste Piña")
sino si (suma==7 or suma==11)
imprimir("\nGanaste suertudo")
sino
imprimir("\nNo pasa nada juega de nuevo")
}
fin
Ejemplo7
/*crear algoritmo que ingrese nombre y horas trabajadas de un obrero, hallar su
salario, se sabe que:
Trabaja 48 horas a la semana, pago por hora es 20 soles, Si trabaja mas horas se
paga el 25% mas por pago hora extra*/
programa salario_obrero
var
salario, horas,hex, ph,phex: numerico
nombre: cadena
inicio
cls()
imprimir ("\n Ingrese su nombre: ")
leer (nombre)
imprimir ("\n Ingrese sus horas trabajadas: ")
leer(horas)
ph=20
Continua 7
si (horas<=48)
{
salario=horas*ph
imprimir("\n ",nombre, " Su salario es: ", salario)
sino
hex=horas-48
phex=hex*(ph*1.25)
salario=48*20+phex
imprimir("\n Su salario de horas normales es de: ", 48*20)
imprimir("\n La cantidad de horas extras es de: ", hex)
imprimir("\n El pago correspondiente será de: ", phex)
imprimir("\n ",nombre, " Su salario total es de: ", salario)
}
fin
¡Muchas gracias!
Descargar