Untitled

 avatar
unknown
python
a year ago
4.8 kB
4
Indexable
n = int(input("¿Cuántas casas quieres comprobar?: ")) # preguntes el numero de cases
casas = {} # crea un diccionari buit

for c in range(n): # mira per cada numero de casa que has posat i crea una casa en el diccionari
    casa = c + 1 # per numerar les cases i que la primera no sigui 0

    casas[casa] = {} # aqui indiques que estas a la casa numero casa, per cada volta una casa diferent
    valor = input(f"Inserte la generación de la casa {casa}: ") # agafes el valor de generacion
    casas[casa]["generacion"] = valor # el poses dins del diccionari
    valor = input(f"Inserte el consumo de la casa {casa}: ") # agafes el valor de consumo
    casas[casa]["consumo"] = valor # el poses dins del diccionari
    valor = input(f"Inserte la necesidad de la casa {casa}: ") # agafes el valor de necesidad
    casas[casa]["necesidad"] = valor #  el poses dins del diccionari
    valor = input(f"Inserte el almacenamiento de la casa {casa}: ") # agafes el valor de almacenamiento
    casas[casa]["almacenamiento"] = valor #  el poses dins del diccionari
    valor = input(f"Inserte la capacidad de la casa {casa}: ") # agafes el valor de capacidad 
    casas[casa]["capacidad"] = valor #  el poses dins del diccionari

# Això ho pots canviar

print("\nIndique el caso: ") # pregunta el cas
print("1 + Caso dia soleado") # EXPLICA EL CAS
print("2 + Caso energia barata ")    # EXPLICA EL CAS 
print("3 + Caso dia nublado")    # EXPLICA EL CAS

# POTS AFEGIR MÉS SI VOLS

caso = int(input("Introduzca el número del caso: ")) # et pregunta quin cas es


comparar = input("¿Qué casas desea usar en el caso? Separe el número de las casas con un espacio: ") # et pregunta quines cases que estan dins del diccionari vols comprobar dins del cas que has escollit

a, b = map(int, comparar.split(" ")) # a = numero de la primera casa, b = numero de la segunda casa, separa els valors que estaven amb un espai (1 3), a = 1, b = 3

if a in casas and b in casas: # mirem si existeixen aquestes cases
    if caso == 1: # aixo es el cas 1 que vam fer ahir
        genA = int(casas[a]['generacion'])  
        conA = int(casas[a]['consumo'])  
        genB = int(casas[b]['generacion'])  
        conB = int(casas[b]['consumo'])
        genA += 5  # Puja 5 perque fa sol
        maxA = genA
        sobraA = genA - conA
        faltaB = conB - genB

        if sobraA > 0:
            while sobraA > faltaB and genA > conA and genB < conB:
                genB += 1
                genA -= 1
                sobraA = genA - conA
                faltaB = conB - genB
            print(f"Se ha dado un total de {maxA-genA}kWh a la casa {b} desde la casa {a}.")
        else:
            print("No puede dar energía la casa A")

        if conB > genB:
            print("Pide energia a la red.")

    elif caso == 2:
        alA = int(casas[a]['almacenamiento'])  
        conA = int(casas[a]['consumo'])  
        capA = int(casas[a]['capacidad'])  

        faltaA = capA -alA
        comprarA = faltaA + conA

        alB = int(casas[b]['almacenamiento'])  
        conB = int(casas[b]['consumo'])  
        capB = int(casas[b]['capacidad'])  

        faltaB = capB -alB
        comprarB = faltaB + conB

        print(f"La casa {a} tiene que comprar {comprarA}kWh y la casa {b} tiene que comprar {comprarB}kWh para que el dia de energía barata salga rentable.")
        
    elif caso == 3:
        alA = int(casas[a]['almacenamiento'])
        genA = int(casas[a]['generacion'])  
        conA = int(casas[a]['consumo'])  
        genA = 5

        if genA > conA:
            print(f"No hace falta energia en la casa {a}")
        else:
            faltaA = conA - genA
            darA = alA - faltaA
            if darA > 0:
                alA = alA - darA
                print(f"La casa {a} tendrá en el almacenamiento {alA}kWh y habrá cogido {darA} del almacenamiento")
            else:
                print(f"La casa {a} tiene que pedir energía a la red.")

        alB = int(casas[b]['almacenamiento'])
        genB = int(casas[b]['generacion'])  
        conB = int(casas[b]['consumo'])  
        genB = 5

        if genB > conB:
            print(f"No hace falta energia en la casa {a}")
        else:
            faltaB = conB - genB
            darB = alB - faltaB
            if darB > 0:
                alB = alB - darB
                print(f"La casa {b} tendrá en el almacenamiento {alB}kWh y habrá cogido {darB} del almacenamiento")
            else:
                print(f"La casa {b} tiene que pedir energía a la red.")

    else: # si no existeix el cas diu error
        print("Error, no he encontrado lo que buscas.")

else: # si no estan diu que no existeixen
    print("No existen estas casas.")
Leave a Comment