Código Python: Control de Radar de Tramo y Análisis de Consumo de Agua en Python

Otras materias2,57 KB

Ejercicio 1: Radar de tramo

1. class Vehiculo:

def __init__(self, matricula, hora_entrada, hora_salida):
self.matricula = matricula
self.hora_entrada = hora_entrada
self.hora_salida = hora_salida

def tiempo_tramo(self):
return self.hora_salida - self.hora_entrada

def velocidad_media(self, distancia_km):
tiempo_horas = self.tiempo_tramo() / 3600
return distancia_km / tiempo_horas

class RadarTramo:

def __init__(self, distancia_km, velocidad_maxima):
self.distancia_km = distancia_km
self.velocidad_maxima = velocidad_maxima
self.vehiculos = []

def registrar_vehiculo(self, vehiculo):
self.vehiculos.append(vehiculo)

def vehiculos_infractores(self):
infractores = []
for vehiculo in self.vehiculos:
velocidad = vehiculo.velocidad_media(self.distancia_km)
if velocidad > self.velocidad_maxima:
infractores.append(vehiculo.matricula)
return set(infractores)

radar = RadarTramo(distancia_km=5.0, velocidad_maxima=100.0)
v1 = Vehiculo("A1B2C3", 0, 180)
v2 = Vehiculo("D4E5", 0, 150)
v3 = Vehiculo("F6G7", 0, 240)

radar.registrar_vehiculo(v1)
radar.registrar_vehiculo(v2)
radar.registrar_vehiculo(v3)

infractores = radar.vehiculos_infractores()
print("Vehículos infractores:")
for matricula in infractores:
print(matricula)

Ejercicio 2: Lectura y análisis de consumos

2. def leer_consumos(nombre_fichero):

consumos = []
with open(nombre_fichero, "r") as fichero:
for linea in fichero:
consumos.append(int(linea.strip()))
return consumos

def consumo_medio(lista_consumos):
total = sum(lista_consumos)
return total / len(lista_consumos)

def contar_dias_altos(lista_consumos, umbral):
contador = 0
for consumo in lista_consumos:
if consumo > umbral:
contador += 1
return contador

def generar_informe(nombre_fichero, umbral):
consumos = leer_consumos(nombre_fichero)
media = consumo_medio(consumos)
dias_altos = contar_dias_altos(consumos, umbral)

with open("informe.txt", "w") as fichero:
fichero.write(f"Consumo medio diario: {media:.2f} litros\n")
fichero.write(f"Días con consumo superior a {umbral} litros: {dias_altos}")

generar_informe("consumos.txt", 130)

Descargar

PDF Word HTML