Principios de algoritmos UTP – resolución de examen final Nº 4

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.

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:

  1. Se debe ingresar la placa del vehículo.
  2. Se ingresa el tiempo que el vehículo permaneció parqueado en minutos.
  3. 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.
  4. 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%.
  5. 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.
  6. 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
				
			

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Puedes usar estos tags HTML y atributos: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>