3071 - Densitate: Difference between revisions
Tita Marian (talk | contribs) No edit summary |
|||
(4 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
== Cerinţa == | == Cerinţa == | ||
O eprubetă plină cu apă cântărește ''' | 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 == | ==Date de intrare == | ||
Programul citește de la tastatură cele trei numere ''' | Programul citește de la tastatură cele trei numere '''masa''', '''volum''' și '''coeficient_expansiune''', separate prin spații. | ||
== Date de ieșire == | == Date de ieșire == | ||
Programul va afișa pe ecran numărul ''' | 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 == | == Restricţii şi precizări == | ||
cele trei numere citite sunt numere reale | |||
== | == Exemplul 1 == | ||
; Intrare | ; Intrare | ||
50 12 60.5 | |||
; Ieșire | ; 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. | |||
<br> | <br> | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line="1"> | <syntaxhighlight lang="python" line="1"> | ||
def calcul_densitate(masa, volum, coeficient_expansiune): | |||
# Calculăm densitatea metalului | # Calculăm densitatea metalului | ||
densitate = volum / (masa + volum - coeficient_expansiune) | |||
return | return densitate | ||
if __name__ == "__main__": | if __name__ == "__main__": | ||
# Citim cele trei | 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> | </syntaxhighlight> | ||
==Explicație== | ==Explicație== | ||
Pentru masa=50, volum=12 și coeficient_expansiune=60.5 se va afișa 8 (g/cm3). | |||
Latest revision as of 18:21, 15 December 2023
Cerinţa[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură cele trei numere masa, volum și coeficient_expansiune, separate prin spații.
Date de ieșire[edit | edit source]
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[edit | edit source]
cele trei numere citite sunt numere reale
Exemplul 1[edit | edit source]
- Intrare
50 12 60.5
- Ieșire
Datele de intrare corespund restricțiilor impuse. 8.0
Exemplul 2[edit | edit source]
- Intrare
50 12 x
- Ieșire
Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<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[edit | edit source]
Pentru masa=50, volum=12 și coeficient_expansiune=60.5 se va afișa 8 (g/cm3).