PROBLEMA PRINCIPAL
En la Secretaría de Tránsito de la ciudad requieren de un ingeniero en formación como usted para que diseñe un algoritmo que permita registrar los datos de cada una de las multas por infracciones de tránsito que han sido generadas. Existe actualmente cuatro tipos infracciones a saber:
• Tipo A: Sancionado con multa equivalente a cuatro (4) salarios mínimos legales diarios vigentes, es decir, $117.040
• Tipo B: Sancionado con multa equivalente a ocho (8) salarios mínimos legales diarios vigentes, es decir, $234.080
• Tipo C: Sancionado con multa equivalente a quince (15) salarios mínimos legales diarios vigentes, es decir, $438.900
• Tipo D: Sancionado con multa equivalente a treinta (30) salarios mínimos legales diarios vigentes, es decir, $877.800
El algoritmo principal (o proceso) deberá leer la cantidad de multas a registrar, y, posteriormente, por cada multa la cédula del infractor y el tipo de multa, y deberá imprimir el valor que debe pagar. Así mismo, deberá acumular la cantidad de multas por cada tipo de infracción existente.
De otra parte, una vez se han registrado todas las multas, es necesario que el algoritmo calcule los siguientes resultados haciendo uso de llamado a funciones:
• El valor total en pesos que la Secretaría de Tránsito va a percibir por todas las multas registradas.
• El tipo de infracción más cometida. En caso de igualdad se mostrará la primera encontrada.
DESARROLLO DE LA SOLUCIÓN
Estrategia: Resolver un problema grande y dificil dividiendolo en varios problemas más pequeños y más sencillos. A cada solución de un problema pequeño se va integrando una nueva solución.
Problema 1: Leer la cantidad de multas a registrar y luego, procesarlas una a una.
Problema 2: Por cada multa, capturar la cédula del infractor y el tipo de multa
Problema 3: Por cada multa, Calcular lo que debe pagar de acuerdo a al tipo de multa
Problema 4: Por cada multa, imprimir el valor que debe pagar.
Problema 5: Calcular y mostrar al final El valor total en pesos que la Secretaría de Tránsito va a percibir por todas las multas registradas.
Problema 6: Contar la cantidad de multas por cada tipo de infracción existente.
Problema 7: Calcular al final El tipo de infracción más cometida. En caso de igualdad se mostrará la primera encontrada.
Solución al problema 1:
Problema 1: Leer la cantidad de multas a registrar y luego, procesarlas una a una.
Método: Uso de un Para para hacer un Ciclo.
Algoritmo multas
Escribir "Indica la cantidad de multas a procesar: "
Leer cantidad_multas
para i<- 1 hasta cantidad_multas Con Paso 1 Hacer
FinPara
FinAlgoritmo
Solucion a los problemas 1 y 2:
Problema 2: Por cada multa, capturar la cédula del infractor y el tipo de multa
Método: Uso de Escribir y Leer
Algoritmo multas
Escribir "Indica la cantidad de multas a procesar: "
Leer cantidad_multas
para i<- 1 hasta cantidad_multas
Escribir "Diga la cedula del infractor: "
Leer cedula
Escribir "Diga el tipo de infracción "
Leer tipo
FinPara
FinAlgoritmo
Solucion a los problemas 1, 2 y 3:
Problema 3: Por cada multa, Calcular lo que debe pagar de acuerdo a al tipo de multa.
Método: Uso de preguntas (SI) anidadas.
Algoritmo multas
Escribir "Indica la cantidad de multas a procesar: "
Leer cantidad_multas
Para i <- 1 Hasta cantidad_multas Con Paso 1 Hacer
Escribir "Diga la cedula del infractor: "
Leer cedula
Escribir "Diga el tipo de infracción "
Leer tipo
valor = 0
Si tipo = "A" Entonces
valor = 117040
SiNo
Si tipo = "B" Entonces
valor = 234080
SiNo
Si tipo = "C" Entonces
valor = 438900
SiNo
Si tipo = "D" Entonces
valor = 877800
Fin Si
Fin Si
Fin Si
Fin Si
Fin Para
FinAlgoritmo
Solución a los problemas 1, 2, 3 y 4:
Problema 4: Por cada multa, imprimir el valor que debe pagar.
Método: Uso de Escribir para mostrar texto y variables.
Algoritmo multas
Escribir "Indica la cantidad de multas a procesar: "
Leer cantidad_multas
Para i <- 1 Hasta cantidad_multas Con Paso 1 Hacer
Escribir "Diga la cedula del infractor: "
Leer cedula
Escribir "Diga el tipo de infracción "
Leer tipo
valor = 0
Si tipo = "A" Entonces
valor = 117040
SiNo
Si tipo = "B" Entonces
valor = 234080
SiNo
Si tipo = "C" Entonces
valor = 438900
SiNo
Si tipo = "D" Entonces
valor = 877800
Fin Si
Fin Si
Fin Si
Fin Si
Escribir "El usuario con cedula ", cedula , " debe pagar por valor de multa: $",valor
Fin Para
FinAlgoritmo
Solución a los problemas 1, 2, 3, 4 y 5:
Problema 5: Calcular y mostrar al final El valor total en pesos que la Secretaría de Tránsito va a percibir por todas las multas registradas.
Método: Uso de la variable acumuladora Total.
Algoritmo multas
Escribir "Indica la cantidad de multas a procesar: "
Leer cantidad_multas
Total = 0
Para i <- 1 Hasta cantidad_multas Con Paso 1 Hacer
Escribir "Diga la cedula del infractor: "
Leer cedula
Escribir "Diga el tipo de infracción "
Leer tipo
valor = 0
Si tipo = "A" Entonces
valor = 117040
SiNo
Si tipo = "B" Entonces
valor = 234080
SiNo
Si tipo = "C" Entonces
valor = 438900
SiNo
Si tipo = "D" Entonces
valor = 877800
Fin Si
Fin Si
Fin Si
Fin Si
Total = Total + valor
Escribir "El usuario con cedula ", cedula , " debe pagar por valor de multa: $",valor
Fin Para
Escribir "El valor total que se recibe por todas las multas es: $", Total
FinAlgoritmo
Solución a los problemas 1, 2, 3, 4, 5 y 6:
Problema 6: Contar la cantidad de multas por cada tipo de infracción existente.
Método: Uso de variables contadoras.
Algoritmo multas
Escribir "Indica la cantidad de multas a procesar: "
Leer cantidad_multas
Total = 0
cant_A = 0
cant_B = 0
cant_C = 0
cant_D = 0
Para i <- 1 Hasta cantidad_multas Con Paso 1 Hacer
Escribir "Diga la cedula del infractor: "
Leer cedula
Escribir "Diga el tipo de infracción "
Leer tipo
valor = 0
Si tipo = "A" Entonces
valor = 117040
cant_A = cant_A +1
SiNo
Si tipo = "B" Entonces
valor = 234080
cant_B = cant_B +1
SiNo
Si tipo = "C" Entonces
valor = 438900
cant_C = cant_C +1
SiNo
Si tipo = "D" Entonces
valor = 877800
cant_D = cant_D +1
Fin Si
Fin Si
Fin Si
Fin Si
Total = Total + valor
Escribir "El usuario con cedula ", cedula , " debe pagar por valor de multa: $",valor
Fin Para
Escribir "El valor total de las multas es: $", Total
FinAlgoritmo
Solución a los problemas 1, 2, 3, 4, 5, 6 y 7:
Problema 7: Calcular al final El tipo de infracción más cometida. En caso de igualdad se mostrará la primera encontrada.
Método: Subdividir este problema en dos:
Problema 7.1 : Averiguar si hay cantidades iguales.
Problema 7.2 : Si no hay cantidades iguales, calcular el valor más alto.
Solución a los problemas 1, 2, 3, 4, 5, 6 y 7.1
Método: Uso de preguntas anidadas y operadores booleanos.
Algoritmo multas
Escribir "Indica la cantidad de multas a procesar: "
Leer cantidad_multas
Total = 0
cant_A = 0
cant_B = 0
cant_C = 0
cant_D = 0
Para i <- 1 Hasta cantidad_multas Con Paso 1 Hacer
Escribir "Diga la cedula del infractor: "
Leer cedula
Escribir "Diga el tipo de infracción "
Leer tipo
valor = 0
Si tipo = "A" Entonces
valor = 117040
cant_A = cant_A +1
SiNo
Si tipo = "B" Entonces
valor = 234080
cant_B = cant_B +1
SiNo
Si tipo = "C" Entonces
valor = 438900
cant_C = cant_C +1
SiNo
Si tipo = "D" Entonces
valor = 877800
cant_D = cant_D +1
Fin Si
Fin Si
Fin Si
Fin Si
Total = Total + valor
Escribir "El usuario con cedula ", cedula , " debe pagar por valor de multa: $",valor
Fin Para
Escribir "El valor total de las multas es: $", Total
Si cant_A = cant_B O cant_A = cant_C O cant_A = cant_D Entonces
Escribir "El tipo de multa más cometida es la A (con Iguales)"
Si cant_B = cant_C O cant_B = cant_D Entonces
Escribir "El tipo de multa más cometida es la B (Con iguales)"
Si cant_C = cant_D Entonces
Escribir "El tipo de multa más cometida es la C (Con iguales)"
SiNo
Fin Si
Fin Si
Fin Si
FinAlgoritmo
Solución a los problemas 1, 2, 3, 4, 5, 6 , 7.1, 7.2 y, por consiguiente, a todo el problema principal:
Método: Uso de preguntas anidadas y operadores booleanos.
Algoritmo multas
Escribir "Indica la cantidad de multas a procesar: "
Leer cantidad_multas
Total = 0
cant_A = 0
cant_B = 0
cant_C = 0
cant_D = 0
Para i <- 1 Hasta cantidad_multas Con Paso 1 Hacer
Escribir "Diga la cedula del infractor: "
Leer cedula
Escribir "Diga el tipo de infracción "
Leer tipo
valor = 0
Si tipo = "A" Entonces
valor = 117040
cant_A = cant_A +1
SiNo
Si tipo = "B" Entonces
valor = 234080
cant_B = cant_B +1
SiNo
Si tipo = "C" Entonces
valor = 438900
cant_C = cant_C +1
SiNo
Si tipo = "D" Entonces
valor = 877800
cant_D = cant_D +1
Fin Si
Fin Si
Fin Si
Fin Si
Total = Total + valor
Escribir "El usuario con cedula ", cedula , " debe pagar por valor de multa: $",valor
Fin Para
Escribir "El valor total de las multas es: $", Total
Si cant_A = cant_B O cant_A = cant_C O cant_A = cant_D Entonces
Escribir "El tipo de multa más cometida es la A (Hay otras cantidades iguales)"
Si cant_B = cant_C O cant_B = cant_D Entonces
Escribir "El tipo de multa más cometida es la B (Hay otras cantidades iguales)"
Si cant_C = cant_D Entonces
Escribir "El tipo de multa más cometida es la C (Hay otras cantidades iguales)"
SiNo
Si cant_A > cant_B Y cant_A > cant_C Y cant_A > cant_D Entonces
Escribir "El tipo de multa más cometida es la A"
SiNo
Si cant_B > cant_C Y cant_B > cant_D Entonces
Escribir "El tipo de multa más cometida es la B"
SiNo
Si cant_C > cant_D Entonces
Escribir "El tipo de multa más cometida es la C"
SiNo
Escribir "El tipo de multa más cometida es la D"
Fin Si
Fin Si
Fin Si
Fin Si
Fin Si
Fin Si
FinAlgoritmo