Está en la página 1de 5

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL

FACULTAD DE INGENIERIA EN ELECTRICIDAD Y COMPUTACION

PRACTICA AUTÓNOMA UNIDAD 6 – FUNCIONES

IMPORTANTE - LEER DETENIDAMENTE ANTES DE COMENZAR EL TALLER.

La ATM le solicita generar un programa que calcule cuanto le corresponde pagar como multa
por exceso de velocidad a un conductor dependiendo de los sectores donde ha sido registrada
su velocidad, para lo cual la ATM maneja la siguiente tabla:

Sector Velocidad Máxima Multa


Sur Mayor o igual a 100 Km/h 1.1 SBU
Centro Mayor o igual a 70 Km/h 1.2 SBU
Norte Mayor o igual a 90 Km/h 1.3 SBU
** SBU : Salario Básico Unificado

Su programa deberá solicitar el ingreso de la siguiente información: velocidad, placa y sector de


donde fueron tomados los registros de velocidad de los conductores, hasta que el usuario
ingrese el valor de -1 en la velocidad. Una vez finalizado el ingreso de los datos, su programa
deberá analizarlos y determinar si el conductor debe o no pagar una multa y de cuánto sería.
Adicionalmente, su programa deberá validar que la información ingresada sea válida, por
ejemplo: Deberá validar que una placa y el sector sean válidos y que el usuario no haya ingresado
-1 en la velocidad.

Desarrollo

Dado que el problema solicita el ingreso por teclado de varios conductores debemos
implementar un programa principal con un ciclo que permitirá realizar este proceso hasta que
el usuario ingrese una velocidad cuyo valor sea -1.

Adicionalmente, el problema solicita verificar que la información ingresada sea válida, por lo
tanto, debemos implementar algún mecanismo que nos permita realizarlo, para esto
utilizaremos funciones, con el fin de ubicar toda la lógica correspondiente a la validación de los
datos de entrada en un solo método que nos devuelva si los datos son válidos (True) o no(False).
Primero definiremos la función esPlacaValida(placa) que recibe como parámetro el
número de placa (ubícala antes del programa principal) que valide la placa ingresada y devuelve
True o False dependiendo de si es válida o no.

Luego definamos la función sonDatosValidos(placa,sector) (ubícala después del


método esPlacaValida) que recibe como parámetro la placa y el sector ingresados por
teclado. Como notarás esta función hace uso de esPlacaValida pues para considerar que los
datos son válidos tanto la placa como el sector deben ser información válida.

HINT: Cuando un problema solicite crear una función que devuelva o retorne Verdadero ó Falso
ó Sí ó No se debe retornar el valor BOOLEANO correspondiente es decir True o False.

Ahora agreguemos las siguientes líneas de código al programa principal.

Dado que el programa debe imprimir si un conductor ha excedido o no la velocidad podemos


definir los siguientes métodos (ubícalos antes del programa principal)
• maximaVelocidad(sector): Que recibe como parámetro el sector y devuelve la
máxima velocidad que tiene cada sector.
• execesoVelocidad(vel,sector): Que recibe como parámetro la velocidad y el
sector y retorna un valor booleano indicando si el conductor excedió no la velocidad en
el sector dado.
• calcularMulta(area): Que recibe como parámetro el área donde el registro de
velocidad fue capturado y devuelve el valor de la multa dependiendo del sector.

Finalmente, se debe imprimir si el conductor excedió o no la velocidad y cuanto debe de pagar


de multa. Para eso podemos definir una función que no retornará nada y que solamente
imprimirá en pantalla los resultados del análisis de los datos ingresados y la Llamaremos
mostrarInformación() (ubícala antes del programa principal). Notarás que para esta
función no hemos pasado parámetros, esto se debe a que la información con la que se requiere
trabajar está ubicada en las listas que definimos inicialmente y que son de tipo global -es decir
que pueden ser llamadas o referenciadas desde cualquier parte del código-
Finalmente completemos el programa principal llamando a la función
mostrarInformación().

Ejecución del programa


Código Completo
.