3062 - Vas: Difference between revisions

From Bitnami MediaWiki
Sinn Erich (talk | contribs)
Sinn Erich (talk | contribs)
Line 36: Line 36:
         T += t    # timpul trecut
         T += t    # timpul trecut
     return T
     return T


def validare_input(x, t, y):
def validare_input(x, t, y):
Line 42: Line 43:
     return True
     return True


def main():
 
if __name__ == '__main__':
     x = int(input("Introduceti cantitatea initiala de apa (in litri): "))
     x = int(input("Introduceti cantitatea initiala de apa (in litri): "))
     t = int(input("Introduceti intervalul de timp (in minute): "))
     t = int(input("Introduceti intervalul de timp (in minute): "))
Line 54: Line 56:
         print("Dupa", T, "minute vor ramane in vas cel mult", y, "litri de apa.")
         print("Dupa", T, "minute vor ramane in vas cel mult", y, "litri de apa.")


if __name__ == '__main__':
    main()
</syntaxhighlight>
</syntaxhighlight>



Revision as of 23:38, 27 April 2023

Sursa: [1]

Cerinţa

Într-un vas sunt x litri de apă (x>0). După fiecare t minute, un sfert din cantitatea de apă se evaporă. Să se determine după câte minute vor rămâne în vas cel mult y litri de apă.

Date de intrare

Programul citește de la tastatură numerele naturale x, t și y.

Date de ieșire

Programul va afișa pe ecran un număr natural T, reprezentând după câte minute vor rămâne în vas cel mult y litri de apă.

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou afișează după câte minute vor rămâne în vas cel mult y litri de apă.

În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse."

Restricţii şi precizări

1 ≤ x,t,y ≤ 1.000.000.000

Exemplul 1

Datele de intrare
Introduceti cantitatea initiala de apa (in litri): 100
Introduceti intervalul de timp (in minute): 15
Introduceti cantitatea minima de apa ramasa in vas (in litri): 20
Datele de ieșire
Datele sunt introduse corect.
Dupa 90 minute vor ramane in vas cel mult 20 litri de apa.


Rezolvare

<syntaxhighlight lang="python" line>

  1. 3062

def cantitatea_de_apa_ramasa(x, t, y):

   T = 0
   while x > y:
       x -= x/4  # cantitatea evaporata
       T += t    # timpul trecut
   return T


def validare_input(x, t, y):

   if not (1 <= x <= 1000000000 and 1 <= t <= 1000000000 and 1 <= y <= 1000000000):
       return False
   return True


if __name__ == '__main__':

   x = int(input("Introduceti cantitatea initiala de apa (in litri): "))
   t = int(input("Introduceti intervalul de timp (in minute): "))
   y = int(input("Introduceti cantitatea minima de apa ramasa in vas (in litri): "))
   if not validare_input(x, t, y):
       print("Datele nu corespund restricțiilor impuse.")
   else:
       T = cantitatea_de_apa_ramasa(x, t, y)
       print("Datele sunt introduse corect.")
       print("Dupa", T, "minute vor ramane in vas cel mult", y, "litri de apa.")

</syntaxhighlight>

Explicatie cod:

Această implementare Python definește o funcție numită cantitatea_de_apa_ramasa care primește trei parametri: x, t și y. Parametrul x reprezintă cantitatea inițială de apă din vas (în litri), t reprezintă intervalul de timp (în minute) și y reprezintă cantitatea minimă de apă care trebuie să rămână în vas (în litri).

Funcția cantitatea_de_apa_ramasa calculează timpul necesar până când cantitatea de apă din vas scade sub cantitatea minimă (y) și returnează acest timp exprimat în minute.

De asemenea, există o funcție suplimentară numită validare_input care primește aceiași parametri ca și cantitatea_de_apa_ramasa și validează dacă valorile lor se încadrează în intervalul permis (1 <= x, t, y <= 1.000.000.000). În cazul în care valorile nu sunt valide, funcția returnează False, altfel returnează True.

Funcția principală main citește valorile pentru x, t și y de la utilizator prin intermediul funcției input, validează valorile prin apelul funcției validare_input și afișează timpul necesar pentru ca cantitatea de apă din vas să scadă sub cantitatea minimă.