3071 - Densitate

From Bitnami MediaWiki

Cerinţa

O eprubetă plină cu apă cântărește masa grame. În eprubetă se scufundă o monedă de volum grame. În noua stare, eprubeta cântărește coeficient_expansiune grame. Să se determine densitatea metalului din care e confecționată moneda.

Date de intrare

Programul citește de la tastatură cele trei numere masa, volum și coeficient_expansiune, separate prin spații.

Date de ieșire

Programul va afișa pe ecran numărul densitate_metal, reprezentând valoarea cerută. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse.", iar daca se indeplinesc se afiseaza mesajul "Datele de intrare corespund restricțiilor impuse."

Restricţii şi precizări

cele trei numere citite sunt numere reale

Exemplul 1

Intrare
50 12 60.5
Ieșire
 Datele de intrare corespund restricțiilor impuse.
 8.0

Exemplul 2

Intrare
50 12 x
Ieșire
 Datele de intrare nu corespund restricțiilor impuse.


Rezolvare

<syntaxhighlight lang="python" line="1"> def calcul_densitate(masa, volum, coeficient_expansiune):

   # Calculăm densitatea metalului
   densitate = volum / (masa + volum - coeficient_expansiune)
   return densitate

if __name__ == "__main__":

   try:
       # Citim cele trei valori masa, volum și coeficient_expansiune de la tastatură
       input_values = input().split()
       # Verificăm dacă toate cele trei valori introduse sunt numere
       if not all(val.replace('.', , 1).lstrip('-').isdigit() for val in input_values):
           raise ValueError("Datele de intrare nu corespund restricțiilor impuse.")
       masa, volum, coeficient_expansiune = map(float, input_values)
       # Verificăm dacă datele îndeplinesc restricțiile
       if (masa + volum - coeficient_expansiune) == 0:
           raise ValueError("Datele de intrare nu corespund restricțiilor impuse.")
       else:
           print("Datele de intrare corespund restricțiilor impuse.")
       # Apelăm funcția pentru a calcula densitatea metalului
       densitate_metal = calcul_densitate(masa, volum, coeficient_expansiune)
       # Afișăm densitatea metalului
       print(densitate_metal)
   except ValueError as e:
       # Afișăm mesajul în cazul în care datele nu îndeplinesc restricțiile
       print(str(e))


</syntaxhighlight>

Explicație

Pentru masa=50, volum=12 și coeficient_expansiune=60.5 se va afișa 8 (g/cm3).