Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ALGORITMOS
ALGORITMOS
estructuras repetitivas Mientras y Repetir
EJERCICIOS
Escriba Las fórmulas que usará para resolver las siguientes preguntas, identifique
los datos necesarios y escriba el algoritmo correspondiente.
Proceso factorial_calcular
Definir num, i, factorial como real
Escribir "Ingrese el número:"
Leer num
i<-1
factorial<-1
Mientras i<=num hacer
factorial=factorial*i
i=i+1
FinMientras
Escribir "El factorial del número es : ", Factorial
FinProceso
Proceso digitos
Definir n, spar, simp, cd,r como real
Escribir "Ingrese el número:"
Leer n
cd<-0
spar<-0
simp<-0
Mientras n<>0 Hacer
r= n mod 10
Si (r mod 2) = 0 entonces
spar=spar+r
Sino
simp=simp+r
FinSi
cd<-cd+1
n<-trunc (n/10)
FinMientras
1+ X + X 2 + X3 + X 4 + ........................
2! 3! 4!
Proceso suma_terminos
Definir num, ex, den, x, t, i, st,stotal como real
Escribir "Ingrese el número de términos"
Leer t
Escribir "Ingrese el valor de x"
Leer x
i=1
St=0
den=1
ex=1
num=x
Mientras i<=t Hacer
num=num
den=den+1
ex=ex+1
St=St+(num^ex/den)
i=i+1
FinMientras
stotal= St+1+x
Escribir "La suma de los términos es :", stotal
FinProceso
Proceso caida_mes
Definir dmayor,dmenor,promedio,cmayor,cmenor,cmm, i como real
dmayor <- 0
dmenor <- 0
cmayor <- 0
cmenor <- 0
promedio <- 0
Para i<-1 Hasta 30 Con Paso 1 Hacer
Escribir "PROCESO ", i
Escribir "Ingrese el valor de cantidad de agua en mm:"
Leer cmm
Proceso BoletosDeUnEstadio
Definir bvl1, bvl2, bvl3, bvl4, bvl5,pl1, pl2, pl3, pl4, pl5,n,clave, cb, it, rt,i,
localidad,precio como real
bvl1 <- 0
bvl2 <- 0
bvl3 <- 0
bvl4 <- 0
bvl5 <- 0
rt <- 0
Escribir Sin Saltar "Ingrese el valor de precio localidad 1:"
Leer pl1
Escribir Sin Saltar "Ingrese el valor de precio localidad 2:"
Leer pl2
Escribir Sin Saltar "Ingrese el valor de precio localidad 3:"
Leer pl3
Escribir Sin Saltar "Ingrese el valor de precio localidad 4:"
Leer pl4
Escribir Sin Saltar "Ingrese el valor de precio localidad 5:"
Leer pl5
Escribir Sin Saltar "Ingrese el valor de n:"
Leer n
Para i<-1 Hasta n Con Paso 1 Hacer
Escribir "PROCESO ", i
Escribir Sin Saltar "Ingrese el clave:"
Leer clave
Escribir Sin Saltar "Ingrese el valor de cantidad de boletos:"
Leer cb
Escribir "Seleccione el valor de localidad."
Escribir " 1.- Uno"
Escribir " 2.- Dos"
Escribir " 3.- Tres"
Escribir " 4.- Cuatro"
Escribir " 5.- Cinco"
Escribir Sin Saltar " :"
Repetir
Leer localidad
Si localidad<1 O localidad>5 Entonces
Escribir Sin Saltar "Valor incorrecto. Ingréselo nuevamente.: "
FinSi
Hasta Que localidad>=1 Y localidad<=5
Si localidad = 1 Entonces
precio <- pl1
bvl1 <- bvl1+cb
FinSi
Si localidad = 2 Entonces
precio <- pl2
bvl2 <- bvl2+cb
FinSi
Si localidad = 3 Entonces
precio <- pl3
bvl3 <- bvl3+cb
FinSi
Si localidad = 4 Entonces
precio <- pl4
bvl4 <- bvl4+cb
FinSi
Si localidad = 5 Entonces
precio <- pl5
bvl5 <- bvl5+cb
FinSi
it <- cb*precio
rt <- rt+it
Escribir "Clave: ", clave
Escribir "Valor de importe total: ", it
Escribir "Valor de precio: ", precio
Escribir ""
FinPara
Escribir "Valor de boletos vendidos localidad 1: ", bvl1
Escribir "Valor de boletos vendidos localidad 2: ", bvl2
Escribir "Valor de boletos vendidos localidad 3: ", bvl3
Escribir "Valor de boletos vendidos localidad 4: ", bvl4
Escribir "Valor de boletos vendidos localidad 5: ", bvl5
Escribir "Valor de recaudacion total: ", rt
FinProceso
7. Una clase consta de n estudiantes (con 1<=n<=50), cada uno de los cuáles
cursa 5 materias. Para cada alumno se ingresa, clave y las 5 calificaciones.
Escriba un algoritmo para calcular el promedio entero y una barra horizontal
de asteriscos como representación gráfica del promedio.
Proceso potencia
Definir num, pot,rpta como real
Escribir "Ingrese un numero: "
Leer num
Escribir "Ingrese la potencia: "
Leer pot
Si pot=0 Entonces
Escribir "El resultado es: 1"
Sino
Si pot < 0 Entonces
pot<-abs(pot)
rpta <- num
Mientras pot>1 Hacer
rpta <- rpta * num
pot <- pot - 1
FinMientras
Escribir rpta
rpta<-1/rpta
Escribir "El resultado es: ", rpta
Sino
rpta <- num
Mientras pot>1 Hacer
rpta <- rpta * num
pot <- pot - 1
FinMientras
Escribir "El resultado es: ", rpta
FinSi
FinSi
FinProceso
9. Hacer un programa que calcule el sueldo mensual de N empleados de una
empresa. Se ingresa el nombre, número de días trabajados, faltas por cada
empleado. También se pide el monto total de sueldos de todos los empleados.
El número de empleados que ganan entre 2500 y 3500. El número de
empleados que ganan menos de 1000 o más de 4000. Considere constante el
pago por día a cada empleado y que el descuento por día de falta es de 100%
del pago diario.
Proceso sueldo_empleados
empleados_menos_1000 <- 0
empleados_entre_2500_y_3500 <- 0
empleados_mas_4000 <- 0
sueldos_de_todos <- 0
Escribir Sin Saltar "Ingrese el valor de n:"
Leer n
Para i<-1 Hasta n Con Paso 1 Hacer
Escribir "PROCESO ", i
Escribir Sin Saltar "Ingrese el nombre:"
Leer nombre
Escribir Sin Saltar "Ingrese el valor de dias trabajados:"
Leer dias_trabajados
Escribir Sin Saltar "Ingrese el valor de faltas:"
Leer faltas
Escribir Sin Saltar "Ingrese el valor de pago por dia:"
Leer pago_por_dia
sueldo_mensual <- (dias_trabajados-faltas)*pago_por_dia
Si sueldo_mensual<1000 Entonces
empleados_menos_1000 <- empleados_menos_1000+1
FinSi
Si sueldo_mensual>=2500 Y sueldo_mensual<=3500 Entonces
empleados_entre_2500_y_3500 <-
empleados_entre_2500_y_3500+1
FinSi
Si sueldo_mensual>4000 Entonces
empleados_mas_4000 <- empleados_mas_4000+1
FinSi
sueldos_de_todos <- sueldos_de_todos+sueldo_mensual
Escribir "Nombre: ", nombre
Escribir "Valor de sueldo mensual: ", sueldo_mensual
Escribir ""
FinPara
Escribir "Valor de empleados menos 1000: ", empleados_menos_1000
Escribir "Valor de empleados entre 2500 y 3500: ",
empleados_entre_2500_y_3500
Escribir "Valor de empleados mas 4000: ", empleados_mas_4000
Escribir "Valor de sueldos de todos: ", sueldos_de_todos
FinProceso
10. Se lanza un dado reiteradas veces hasta que el valor del tiro es 1. Determinar la
cantidad de veces que se lanzó el dado y el puntaje acumulado, si lo que se
acumula es el valor del tiro.
Proceso dado
ST=0
cont=0
Mientras i<>1 Hacer
Escribir "Ingrese el número que se mostro en el dado"
Leer i
ST=ST+i
cont=cont+1
FinMientras
Escribir "La acumulado es:", ST
Escribir "El número de tiros realizados son:", cont
FinProceso
12. Convertir un número entero de base 10 a una base menor que 10, mostrando el
resultado en pantalla.
Dígito Color
1o2 Amarilla.
3o4 Rosa
5o6 Roja
7o8 Verde
9o0 Azul
14. En una tienda de descuento las personas que van a pagar el importe de su compra
llegan a la caja y sacan una bolita de color, que les dirá que descuento tendrán
sobre el total de su compra. Determinar la cantidad que pagará cada cliente desde
que la tienda abre hasta que cierra. Se sabe que si la bolita es roja, el cliente
obtendrá un 40% de descuento si es amarilla un 25% y si es blanca no
obtendrá descuento.
15. Un censador recopila ciertos datos aplicando encuestas para el último censo
Nacional de Población y Vivienda. Desea obtener de todas las personas que
alcance a encuestar en un día, que porcentaje tiene estudios de primaria,
secundaria, carrera técnica, estudios profesionales y estudios de
postgrado.
Proceso descuento_en_tienda
clientes_atendidos <- 0;
total_de_ventas <- 0;
Repetir
Escribir Sin Saltar "Ingrese el valor de total de la compra:";
Leer total_de_la_compra;
total_de_ventas <- total_de_ventas+total_de_la_compra;
clientes_atendidos <- clientes_atendidos+1;
Escribir "Clientes atendidos: ", clientes_atendidos;
Escribir "Total de ventas: ", total_de_ventas;
Repetir
Escribir Sin Saltar "¿Desea repetir el proceso? (S/N):";
Leer tecla_repetir;
Hasta Que tecla_repetir='s' O tecla_repetir='n' O tecla_repetir='S' O
tecla_repetir='N'
Hasta Que tecla_repetir='n' O tecla_repetir='N'
Escribir "Valor de clientes atendidos: ", clientes_atendidos;
Escribir "Valor de total de ventas: ", total_de_ventas;
FinProceso
16. Suponga que tiene usted una tienda y desea registrar las ventas en su
computadora. Diseñe un algoritmo que lea por cada cliente, el monto total de su
compra. Al final del día que escriba la cantidad total de ventas y el número de
clientes atendidos.
Proceso censo_de_personas_y_vivienda
total_de_personas <- 0;
porcentaje_con_primaria <- 0;
porcentaje_con_secundaria <- 0;
porcentaje_con_carrera_tecnica <- 0;
porcentaje_con_profesional <- 0;
porcentaje_con_postgrado <- 0;
Repetir
Escribir "Seleccione el valor de tipo de estudio.";
Escribir " 1.- Primaria";
Escribir " 2.- Secundaria";
Escribir " 3.- Carrera técnica";
Escribir " 4.- Profesional";
Escribir " 5.- Postgrado";
Escribir Sin Saltar " :";
Repetir
Leer tipo_de_estudio;
Si tipo_de_estudio<1 O tipo_de_estudio>5 Entonces
Escribir Sin Saltar "Valor incorrecto. Ingréselo nuevamente.: ";
FinSi
Hasta Que tipo_de_estudio>=1 Y tipo_de_estudio<=5;
Si tipo_de_estudio = 1 Entonces
porcentaje_con_primaria <- porcentaje_con_primaria+1;
FinSi
Si tipo_de_estudio = 2 Entonces
porcentaje_con_secundaria <- porcentaje_con_secundaria+1;
FinSi
Si tipo_de_estudio = 3 Entonces
porcentaje_con_carrera_tecnica <- porcentaje_con_carrera_tecnica+1;
FinSi
Si tipo_de_estudio = 4 Entonces
porcentaje_con_profesional <- porcentaje_con_profesional+1;
FinSi
Si tipo_de_estudio = 5 Entonces
porcentaje_con_postgrado <- porcentaje_con_postgrado+1;
FinSi
total_de_personas <- total_de_personas+1;
Escribir "";
Repetir
Escribir Sin Saltar "¿Desea repetir el proceso? (S/N):";
Leer tecla_repetir;
Hasta Que tecla_repetir='s' O tecla_repetir='n' O tecla_repetir='S' O
tecla_repetir='N'
Hasta Que tecla_repetir='n' O tecla_repetir='N'
Si total_de_personas = 0 Entonces
porcentaje_con_primaria <- 0;
SiNo
porcentaje_con_primaria <-
100.0*porcentaje_con_primaria/total_de_personas;
FinSi
Si total_de_personas = 0 Entonces
porcentaje_con_secundaria <- 0;
SiNo
porcentaje_con_secundaria <-
100.0*porcentaje_con_secundaria/total_de_personas;
FinSi
Si total_de_personas = 0 Entonces
porcentaje_con_carrera_tecnica <- 0;
SiNo
porcentaje_con_carrera_tecnica <-
100.0*porcentaje_con_carrera_tecnica/total_de_personas;
FinSi
Si total_de_personas = 0 Entonces
porcentaje_con_profesional <- 0;
SiNo
porcentaje_con_profesional <-
100.0*porcentaje_con_profesional/total_de_personas;
FinSi
Si total_de_personas = 0 Entonces
porcentaje_con_postgrado <- 0;
SiNo
porcentaje_con_postgrado <-
100.0*porcentaje_con_postgrado/total_de_personas;
FinSi
Escribir "Valor de total de personas: ", total_de_personas;
Escribir "Valor de porcentaje con primaria: ", porcentaje_con_primaria;
Escribir "Valor de porcentaje con secundaria: ", porcentaje_con_secundaria;
Escribir "Valor de porcentaje con carrera tecnica: ",
porcentaje_con_carrera_tecnica;
Escribir "Valor de porcentaje con profesional: ", porcentaje_con_profesional;
Escribir "Valor de porcentaje con postgrado: ", porcentaje_con_postgrado;
FinProceso
17. Se desea procesar las operaciones bancarias de un cliente a quien se le pide por
única vez su nombre y saldo inicial. Luego en un proceso repetitivo se presenta
las siguientes opciones:
Depósito, Retiro, Fin. Al ingresar la opción elegida si esta fue ‘D’ se pide si es en
efectivo
(1) o con cheque (2), se ingresa la cantidad, y si fuese cheque se descuenta el
1% por comisión y se actualiza su saldo mostrándolo en pantalla. Si la opción
elegida fue ‘R’ se ingresa la cantidad verificando que ésta sea menor al saldo
actualizándolo, de lo contrario dar un mensaje de sobregiro. Si la opción elegida
fue ‘F’ mostrar los siguientes resultados:
a.- Nombre, Saldo
inicial. b.- Saldo final.
c.- Número de Depósitos en EFECTIVO y con
CHEQUE. d.- Monto promedio de retiros.
e.- Monto mínimo depositado y máximo retirado.
Proceso registro_de_ventas
clientes_atendidos <- 0;
total_de_ventas <- 0;
Repetir
Escribir Sin Saltar "Ingrese el valor de total de la compra:";
Leer total_de_la_compra;
total_de_ventas <- total_de_ventas+total_de_la_compra;
clientes_atendidos <- clientes_atendidos+1;
Escribir "";
Repetir
Escribir Sin Saltar "¿Desea repetir el proceso? (S/N):";
Leer tecla_repetir;
Hasta Que tecla_repetir='s' O tecla_repetir='n' O tecla_repetir='S' O
tecla_repetir='N'
Hasta Que tecla_repetir='n' O tecla_repetir='N'
Escribir "Valor de clientes atendidos: ", clientes_atendidos;
Escribir "Valor de total de ventas: ", total_de_ventas;
FinProceso
Proceso_Capicua
Inverso<- 0
Escribir Sin Saltar “Ingrese un número”
Leer número
Residuo<- número
Mientras residuo >0 Hacer
Inverso<- inverso*10+residuo mod 10
Residuo<- (residuo-residuo mod 10)/10
FinMientras
Escribir “ ”
Escribir “Valor del número inverso es “, inverso
Escribir Sin Saltar “El número es “, número, “ “
Si número = inverso Entonces
Escribir Sin Saltar “si”
Sino
Escribir Sin Saltar “no”
FinSi
Escribir “ es capicúa”
FinProceso
20. Supóngase que en una reciente elección hubo cuatro candidatos, con
identificadores 1, 2, 3, 4. Usted habrá de encontrar mediante un programa,
el número de votos correspondiente a cada candidato y el porcentaje que
obtuvo respecto al total de los votantes. El usuario ingresara los votos de
manera desorganizada, tal y como se obtuvieron en la elección, el final de
datos está representado por un cero.
Proceso_MCD_MCM
Escribir "Ingrese los 2 números"
Leer n1, n2
A=n1
B=n2
C=n1
D=n2
Mientras A=B Hacer
Si A>B Entonces
A=A-B
Sino
B=B-A
FinSi
FinMientras
MCM=(n1*n2)/A
Mientras c<>D Hacer
Si C>D Entonces
C=C-D
Sino
D=D-C
FinSi
FinMientras
MCM=(n1*n2)/A
Escribir "El MCM de los 2 números es -->", MCM
Escribir "El MCD de los 2 números es -->", C
FinProceso
21. La compañía de luz “Del Centro” desea imprimir los recibos de un grupo de
empleados. Desea obtener también el total de cobros del periodo. Por cada
cliente se ingresa su nombre, dirección, registro inicial y registro final. El
cobro se efectúa en base a la siguiente tabla:
140 KVH o Menos S/. 3.20
Los siguientes 170 KVH S/. 0.15 por KVH
Exceso sobre 310 KVH S/. 0.097 por KVH
Por cada cliente se debe imprimir un recibo indicando sus datos y montos.
23. Mostrar la suma de todos los divisores de un número entero. Si el número sólo
tiene por divisores al 1 y al propio número, mostrar además el mensaje
“Número Primo”.
24. Encontrar todos los números primos entre dos números enteros ingresados por
teclado.