Estructuras de Control Selectivas
Profesor: Francisco Díaz
Condicional Si-Entonces
La secuencia de instrucciones ejecutadas por la
instrucción Si-Entonces-Sino
depende del valor de una condición lógica.
Si <condicion > entonces
<Instrucción>
<instrucción>
Sino
<instrucciones>
FinSi
Ejemplo 5
Un hombre desea saber cuánto dinero se genera por concepto de
intereses sobre la cantidad que tiene en inversión en el banco si el
banco paga 2% al mes. El decidirá reinvertir los intereses siempre y
cuando estos excedan a $700 y desea saber la cantidad de dinero que
tendrá finalmente en su cuenta.
Introducir Datos
Cantidad a
Invertir
Ejemplo 5
Un hombre desea saber cuánto dinero se genera por concepto de
intereses sobre la cantidad que tiene en inversión en el banco si el
banco paga 2% al mes. El decidirá reinvertir los intereses siempre y
cuando estos excedan a $700 y desea saber la cantidad de dinero que
tendrá finalmente en su cuenta.
Regla de tres simple
Cantidad a
Invertir
0.02 Porcentaje
Ejemplo 5
Un hombre desea saber cuánto dinero se genera por concepto de
intereses sobre la cantidad que tiene en inversión en el banco si el
banco paga 2% al mes. El decidirá reinvertir los intereses siempre y
cuando estos excedan a $700 y desea saber la cantidad de dinero que
tendrá finalmente en su cuenta.
Intereses
Porcentaje Intereses
Ejemplo 5
Un hombre desea saber cuánto dinero se genera por concepto de
intereses sobre la cantidad que tiene en inversión en el banco si el
banco paga 2% al mes. El decidirá reinvertir los intereses siempre y
cuando estos excedan a $700 y desea saber la cantidad de dinero que
tendrá finalmente en su cuenta.
Condición IS
Interés > 700
ON
Total invertido = cantidad + intereses
Fin del Proceso
Imprimir Total invertido e Intereses
Ejemplo 5
Pseudo-código:
Proceso InvierteInteres
Imprimir "Cuanto es la Cantidad a Invertir: $"
Leer cantinv
interés<-cantinv*0.02
Imprimir "Los Intereses Ganados son:", interes
Si interes>700 Entonces
totinv<-cantinv+interes
Imprimir "Total de la Inversión con los Intereses es: $", totinv
FinSi
FinProceso
Ejemplo 5
Diagrama de Flujo Ejecución del Pseudo-código
Ejemplo 6
Encontrar el Mayor de 3 números diferentes proporcionados como
datos de entrada.
Pseudo-código:
Proceso Mayor3Numeros
Imprimir "Introduce el 1er. Numero:"
Leer n1
Imprimir "Introduce el 2do. Numero:"
Leer n2
Imprimir "Introduce el 3er. Numero:"
Leer n3
Ejemplo 6
Si n1>n2 Entonces
Si n1>n3 Entonces
Imprimir "El numero Mayor es:",n1
Sino
Imprimir "El numero Mayor es:",n3
FinSi
Sino
Si n2>n3 Entonces
Imprimir "El numero Mayor es:",n2
Sino
Imprimir "El numero Mayor es:",n3
FinSi
FinProceso
Ejemplo 6
Diagrama de Flujo Ejecución del Pseudo-código
Ejemplo 7
Se desea saber cuánto tendrá que pagar una persona por
la compra de un artículo en base a las siguientes
condiciones. Si compra menos de 5 del mismo artículo se
le hará un descuento del 10% sobre el total de su compra.
Si compra 5 o más, pero menos de 10 se le hace un 15%
de descuento. Si compra más de 10 pero menos de 15 se
le hace un 20% de descuento y en caso contrario se le hará
un 25% de descuento sobre su compra.
Ejemplo 7
Se desea saber cuánto tendrá que pagar una persona por
la compra de un artículo en base a las siguientes
condiciones. Si compra menos de 5 del mismo artículo se
le hará un descuento del 10% sobre el total de su compra.
Si compra 5 o más, pero menos de 10 se le hace un 15%
de descuento. Si compra más de 10 pero menos de 15 se
le hace un 20% de descuento y en caso contrario se le hará
un 25% de descuento sobre su compra.
Ejemplo 7
Pseudo-código:
Proceso DescuentoCompraArticulos
Imprimir "Introduce el Articulo Comprado:"
Leer articulo
Imprimir "Precio del Articulo:"
Leer precio
Imprimir "Cantidad Comprada del Articulo:"
Leer cantidad
totalcompra=precio*cantidad
Imprimir "Total de la Compra: $",totalcompra
Ejemplo 7
Si cantidad<5 Entonces
pordes<-10
Sino
Si cantidad<10 Entonces
pordes<-15
Sino
Si cantidad<15 Entonces
pordes<-20
Sino
pordes<-25
FinSi
FinSi
Ejemplo 7
FinSi
Imprimir "El Porcentaje de Descuento es:", pordes,"%"
descuento<-totalcompra*pordes/100
Imprimir "Total del Descuento: $",descuento
totalpagar<-totalcompra-descuento
Imprimir "ElTotal a Pagar es: $", totalpagar
FinProceso
Ejemplo 7
Diagrama de Flujo Ejecución del Pseudo-código:
Selección Múltiple
La secuencia de instrucciones ejecutada por una instrucción
Según depende del valor de una variable numérica.
Segun <variable> Hacer
<número1>: <instrucciones>
<número2>,<número3>: <instrucciones>
<...>
De Otro Modo:
<instrucciones>
FinSegun
Selección Múltiple
Esta instrucción permite ejecutar opcionalmente varias acciones posibles,
dependiendo del valor almacenado en una variable de tipo numérico. Al
ejecutarse, se evalúa el contenido de la variable y se ejecuta la secuencia de
instrucciones asociada con dicho valor.
Cada opción está formada por uno o más números separados por comas, dos
puntos y una secuencia de instrucciones. Si una opción incluye varios números, la
secuencia de instrucciones asociada se debe ejecutar cuando el valor de la
variable es uno de esos números.
Opcionalmente, se puede agregar una opción final, denominada De Otro Modo,
cuya secuencia de instrucciones asociada se ejecutará sólo si el valor almacenado
en la variable no coincide con ninguna de las opciones anteriores.
Ejemplo 8
Hacer un pseudocódigo que permita calcular el área de cualquiera de
las siguientes figuras geométricas:
• Cuadrado
• Rectángulo
• Triangulo
• Circulo
Ejemplo 8
Pseudo-código:
Proceso CalculoAreasFigurasGeometricas
Imprimir "Menú de Calculo de Figuras Geométricas"
Imprimir "1).- Cuadrado"
Imprimir "2).- Rectángulo"
Imprimir "3).- Triangulo"
Imprimir "4).- Circulo"
Imprimir "Opción Deseada:"
Leer opcion
Segun opcion Hacer
Ejemplo 8
1:
Imprimir "Cual es el valor del lado del cuadrado:"
Leer lado
area<-lado*lado
Imprimir "El Área del Cuadrado es:", area
2:
Imprimir "Cual es el valor de lo Largo del Rectángulo:"
Leer largo
Imprimir "Cual es el valor de lo Alto del Rectángulo:"
Leer alto
area<-largo*alto
Imprimir "El Área del Rectángulo es:", area
Ejemplo 8
3:
Imprimir "Cual es el valor de la Base del Triangulo:"
Leer base
Imprimir "Cual es el valor de la Altura del Triangulo:"
Leer altura
area<-base*altura/2
Imprimir "El Área del Triangulo es:", area
De Otro Modo:
Imprimir "Cual es el valor del Radio del Circulo:"
Leer radio
area<-3.14159*radio*radio
Imprimir "El Área del Circulo es:",area
Fin Segun
FinProceso
Ejemplo 8
Diagrama de Flujo Ejecución del Pseudo-código
Estructura de Control del Ciclo Mientras-hacer
La instrucción Mientras ejecuta una secuencia de instrucciones
mientras una condición sea verdadera.
Mientras <condición> Hacer
<instrucciones>
FinMientras
Al ejecutarse esta instrucción, la condición es evaluada. Si la condición
resulta verdadera, se ejecuta una vez la secuencia de instrucciones
que forman el cuerpo del ciclo. Al finalizar la ejecución del cuerpo del
ciclo se vuelve a evaluar la condición y, si es verdadera, la ejecución se
repite. Estos pasos se repiten mientras la condición sea verdadera.
Estructura de Control del Ciclo Mientras-hacer
Note que las instrucciones del cuerpo del ciclo pueden no ejecutarse nunca, si al
evaluar por primera vez la condición resulta ser falsa.
Si la condición siempre es verdadera, al ejecutar esta instrucción se produce un
ciclo infinito. A fin de evitarlo, las instrucciones del cuerpo del ciclo deben contener
alguna instrucción que modifique la o las variables involucradas en la condición, de
modo que ésta sea falsificada en algún momento y así finalice la ejecución del
ciclo.
Ejemplo 9
Encontrar el número mayor de una serie de números proporcionados como datos
de entrada.
Pseudo-Código:
Proceso NumeroMayor
Imprimir "Cuantos números se van a leer:"
Leer n
cn<-1
Mientras cn<=n hacer
Imprimir "Introduce el ",cn," numero:"
Leer num
si cn=1 Entonces
num_may<-num
Ejemplo 9
Sino
si num>num_may Entonces
num_may<-num
FinSi
FinSi
cn<-cn+1
FinMientras
Imprimir "El Numero Mayor es:",num_may
FinProceso
Ejemplo 9
Diagrama de Flujo Ejecución del Pseudo-código
Ejemplo 10
Determinar el porcentaje de números pares e impares de una serie de números
proporcionados como datos de entrada.
Pseudo-código:
Proceso PorcentajeParesImpares
Imprimir "Introduce la cantidad de números a leer:"
Leer n
cn<-1
cpar<-0
cimpar<-0
Mientras cn<=n Hacer
Imprimir "Introduce el ",i," numero:"
Leer num
Ejemplo 10
si num%2=0 Entonces
cpar<-cpar+1
Sino
cimpar<-cimpar+1
FinSi
cn<-cn+1
FinMientras
porpar<-cpar/n*100
porimpar<-cimpar/n*100
Imprimir "El Porcentaje de Numeros Pares es:",porpar,"%"
Imprimir "El Porcentaje de Numeros Impares es:",porimpar,"%"
FinProceso
Ejemplo 10
Diagrama de Flujo Ejecución del Pseudo-código
Estructura de Control de Ciclos Repetir-hasta que
La instrucción Repetir-Hasta Que ejecuta una secuencia de instrucciones hasta
que la condición sea verdadera.
Repetir
<instrucciones>
Hasta Que <condición>
Al ejecutarse esta instrucción, la secuencia de instrucciones que forma el cuerpo
del ciclo se ejecuta una vez y luego se evalúa la condición. Si la condición es falsa,
el cuerpo del ciclo se ejecuta nuevamente y se vuelve a evaluar la condición.
Esto se repite hasta que la condición sea verdadera.
Estructura de Control de Ciclos Repetir-hasta que
Note que, dado que la condición se evalúa al final, las instrucciones del cuerpo del
ciclo serán ejecutadas al menos una vez.
Además, a fin de evitar ciclos infinitos, el cuerpo del ciclo debe contener alguna
instrucción que modifique la o las variables involucradas en la condición de modo
que en algún momento la condición sea verdadera y se finalice la ejecución del
ciclo.
Ejemplo 11
Obtener el promedio de una serie de números proporcionados como datos de
entrada.
Pseudo-código:
Proceso CalcularPromedio
Escribir 'Cuantos numeros se van a proporcionar como datos de entrada:'
Leer n
cn<-0
snum<-0
Repetir
cn<-cn+1
Escribir 'Introduce el ‘,cn,' numero:’
Leer num
Ejemplo 11
snum<-snum+num
Hasta Que cn=n
promedio<-snum/n
Escribir 'El Promedio de los numeros es:',promedio
FinProceso
Ejemplo 11
Diagrama de Flujo Ejecución del Pseudo-código
Ejemplo 12
Una compañía de seguros tiene contratados a n vendedores. Cada uno hace tres
ventas a la semana. Su política de pagos es que un vendedor recibe un sueldo
base, y un 10% extra por comisiones de sus ventas. El gerente de su compañía
desea saber cuánto dinero obtendrá en la semana cada vendedor por concepto de
comisiones por las tres ventas realizadas, y cuanto tomando en cuenta su sueldo
base y sus comisiones.
Pseudo-código:
Proceso ComisionesVendedores
Imprimir "Introduce el Numero de Vendedores:"
Leer nv
Cv<-0
Repetir
Cv<-cv+1
Ejemplo 12
Imprimir "Introduce los datos del ",i," Vendedor:"
Imprimir "Nombre:"
leer nombre
Imprimir "Sueldo Base:"
Leer sdobas
Imprimir "Monto de la Venta No.1:"
leer venta1
Imprimir "Monto de la Venta No.2:"
leer venta2
Imprimir "Monto de la Venta No.3:"
leer venta3
Totven<-venta1+venta2+venta3
Comision<-totven*0.10
Sdototal<-sdobas+comision
Imprimir "Total de sus Ventas:",totven
Imprimir "Comision:",comision
Imprimir "Sueldo Total:",sdototal
Hasta Que cv=nv
FinProceso
Ejemplo 12
Diagrama de Flujo Ejecución del Pseudo-código
Estructura de Control de Ciclos Para
La instrucción Para ejecuta una secuencia de instrucciones un número
determinado de veces.
Para <variable> <- <inicial> Hasta <final> ( Con Paso <paso> ) Hacer
<instrucciones>
FinPara
Estructura de Control de Ciclos Para
Al ingresar al bloque, la variable <variable> recibe el valor <inicial> y se ejecuta la
secuencia de instrucciones que forma el cuerpo del ciclo.
Luego se incrementa la variable <variable> en <paso> unidades y se evalúa si el
valor almacenado en <variable> superó al valor <final>.
Si esto es falso se repite hasta que <variable> supere a <final>.
Si se omite la cláusula Con Paso<paso>, la variable <variable> se incrementará
en 1.
Ejemplo 13
Leer 50 calificaciones de un grupo de alumnos. Calcule y escriba el porcentaje de
reprobados. Tomando en cuenta que la calificación mínima aprobatoria es de
70.
Pseudo-código:
Proceso PorcentajeDeReprobados
Imprimir "No. de Alumnos:"
Leer na
Crepro<-0
Para i<-1 hasta na Hacer
Imprimir "Introduce la Calificacion del ",i," alumno:“
Leer calificacion
Ejemplo 13
Si calificacion<70 Entonces
Crepro<-crepro+1
FinSi
FinPara
Porrepro<-crepro/na*100
Imprimir "El Porcentaje de Reprobados es:",porrepro,"%"
FinProceso
Ejemplo 13
Diagrama de Flujo Ejecución del Pseudo-código
Ejemplo 14
Leer los n votos otorgados a los 3 candidatos a gobernador e imprimir el número
del candidato ganador y su cantidad de votos.
Pseudo-código:
Proceso CandidatoGanador
Imprimir "Introduce la cantidad de votos:"
Leer nv
cvc1<-0
cvc2<-0
cvc3<-0
Para cv<-1 Hasta nv Hacer
Imprimir "Introduce el valor del voto No.",cv,":"
Leer voto
Ejemplo 14
Si voto=1 Entonces
cvc1<-cvc1+1
Sino
Si voto=2 Entonces
cvc2<-cvc2+1
Sino
cvc3<-cvc3+1
FinSi
FinSi
FinPara
Imprimir "Total de Votos del Candidato 1:",cvc1
Imprimir "Total de Votos del Candidato 2:",cvc2
Imprimir "Total de Votos del Candidato 3:",cvc3
Ejemplo 14
Si cvc1>cvc2 Entonces
Si cvc1>cvc3 Entonces
Imprimir "El Ganador de las Votaciones es el Candidato 1"
Sino
Imprimir "El Ganador de las Votaciones es el Candidato 3“
FinSi
Sino
Si cvc2>cvc3 Entonces
Imprimir "El Ganador de las Votaciones es el Candidato 2"
Sino
Imprimir "El Ganador de las Votaciones es el Candidato 3"
FinSi
FinSi
FinProceso
Ejemplo 14
Diagrama de Flujo Ejecución del Pseudo-código
Programación Inicial
Bibliografía
• J. Zarate (2023) “Libro 2 - Pseint - Guía practica. V1. Curso Introductorio 2023
Materia: Programación Inicial 1er semestre.” Tecnicatura Universitaria en
Programación. UTN Avellaneda.
Evaluación
1° PARCIAL 2°PARCIAL REC 1°PARCIAL REC 2°PARCIAL CONDICIÓN* NOTA FINAL
Programación Inicial
1er Parcial 27/02/24
TP Practico en Grupo 11/03/24
2do Parcial 12/03/24
Recuperativo 1er y 2do Parcial 18/03/24
GRACIAS POR SU ATENCIÓN