Resolución de un examen final de Principios de algoritmos de la UTP. Cada ejercicio se resuelve mediante un algoritmo bajo el paradigma de la programación estructurada aplicando las estructuras de control: secuenciales, selectivas y repetitivas. La representación de los algoritmos es a través de pseudocódigo y diagramas de flujo utilizando Pseint.
PREGUNTA 1
Desarrollar un algoritmo que permita realizar para N empleados:
- Leer los salarios, validando que sean entre 1000 y 6000.
- Mostrar un reporte con el porcentaje de empleados que ganan menos de 1800, entre 1800 y 3500, y más de 3500.
- Mostrar el promedio de salarios.
Pseint
Pseudocódigo
Proceso Pregunta1
Definir N, contador1, contador2, contador3 Como Entero
Definir salario, sumaSalario, promedioSalario, porcentaje1, porcentaje2, porcentaje3 como Real
Repetir
Escribir "Ingrese el numero de empleados: "
Leer N
Hasta Que N > 0
sumaSalario <- 0
contador1 <- 0
contador2 <- 0
contador3 <- 0
Para i <- 1 hasta N Con Paso 1 Hacer
Repetir
Escribir "Salario persona ", i, ": "
Leer salario
Hasta Que salario >= 1000 y salario <= 6000
sumaSalario <- sumaSalario + salario
Si salario < 1800 Entonces
contador1 <- contador1 + 1
SiNo
Si salario <= 3500 Entonces
contador2 <- contador2 + 1
SiNo
contador3 <- contador3 + 1
FinSi
FinSi
FinPara
promedioSalario <- sumaSalario / N
porcentaje1 <- contador1 * 100 / N
porcentaje2 <- contador2 * 100 / N
porcentaje3 <- contador3 * 100 / N
Escribir "Porcentaje de personas que ganan menos de 1800: ", porcentaje1, "%"
Escribir "Porcentaje de personas que ganan entre 1800 y 3500: ", porcentaje2, "%"
Escribir "Porcentaje de personas que ganan de 3500: ", porcentaje3, "%"
Escribir "Promedio de salarios: S/", promedioSalario
FinProceso
view raw
Diagrama de flujo
PREGUNTA 2
Crear un programa en pseudocódigo para un estacionamiento que cumpla con las siguientes condiciones:
- Se debe ingresar la placa del vehículo.
- Se ingresa el tiempo que el vehículo permaneció parqueado en minutos.
- Si el vehículo es una motocicleta se cobra S/ 0.02 el minuto, S/ 0.25 el minuto si es un auto y S/ 0.30 si es una camioneta.
- Si el vehículo permanece más de 1 hora se hace un descuento del 10%; si permanece más de 2 horas, un 20%; si son más de 3 horas, un 30%.
- Se debe mostrar un cuadro resumen que indique: la placa, el tiempo en horas y minutos, el precio base, el descuento y el importe final.
- El algoritmo solo debe permitir ingresar los tipos de vehículos mencionados y una cantidad de minutos mayor a cero, en caso no se ingresen valores correctos debe volver a pedirlos sin finalizar la ejecución.
Se evaluará:
- Validar el tipo de vehículo.
- Validar la cantidad de minutos.
- Calcular el precio base.
- Calcular el descuento.
- Calcular el precio final.
- Calcular el tiempo en horas y minutos. Por ejemplo, si se ingresa 200 minutos, se debe mostrar 3 horas y 20 minutos.
- Mostrar el cuadro resumen.
Pseint
Pseducódigo
Proceso Pregunta2
Definir N, tiempo Como Entero
Definir placa, tipo Como Caracter
Definir importeBase, descuento, importeFinal como Real
Definir horas, minutos como Entero
Repetir
Escribir "Ingrese el numero de vehiculos: "
Leer N
Hasta Que N > 0
Para i <- 1 hasta N Con Paso 1 Hacer
Escribir "Ingrese Placa del vehiculo #", i
Leer placa
Repetir
Escribir "Tiempo de parqueado (minutos): "
Leer tiempo
Hasta Que tiempo > 0
Repetir
Escribir "Ingrese Tipo del vehiculo: (M:motocicleta, A:auto, C:Camioneta): "
Leer tipo
Hasta Que tipo = 'M' o tipo = 'A' o tipo = 'C'
Segun tipo Hacer
'M':
importeBase <- tiempo * 0.20
'A':
importeBase <- tiempo * 0.25
'C':
importeBase <- tiempo * 0.30
Fin Segun
Si tiempo <= 60
descuento <- 0
Sino
Si tiempo <= 120
descuento <- importeBase * 0.10
SiNo
Si tiempo <= 180
descuento <- importeBase * 0.20
SiNo
descuento <- importeBase * 0.30
FinSi
FinSi
FinSi
importeFinal <- importeBase - descuento
horas <- trunc(tiempo / 60)
minutos <- tiempo - horas * 60
Escribir "REPORTE: "
Escribir "Placa: ", placa
Si (tiempo > 60) entonces
Escribir "Tiempo: ", horas, " horas y ", minutos, " minutos"
Sino
Escribir "Tiempo: ", tiempo, " minutos"
FinSi
Escribir "Precio base: S/ ", importeBase
Escribir "Descuento: S/ ", descuento
Escribir "Importe final: S/ ", importeFinal
FinPara
FinProceso
Diagrama de flujo
PREGUNTA 3
Realizar prueba de escritorio al siguiente algoritmo.
Prueba de escritorio
Pseint
Pseudocódigo
Proceso Pregunta3
Definir m, n, p Como Entero
m<-30
n<-6
p<-1
Mientras n > 2 Hacer
Escribir "true"
Escribir "m=", m
Escribir "n=", n
Escribir "p=", p
Escribir "-----------"
m <- n mod 2
n <- n - 1
p <- m - n
FinMientras
Escribir "false"
Escribir "m=", m
Escribir "n=", n
Escribir "p=", p
Escribir "-----------"
FinProceso