3071 - Densitate: Difference between revisions

From Bitnami MediaWiki
No edit summary
 
(2 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 ''' a''' grame. În eprubetă se scufundă o monedă de ''' b''' grame. În noua stare, eprubeta cântărește ''' c''' grame. Să se determine densitatea metalului din care e confecționată moneda.
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 ''' a''', ''' b''' și ''' c''', separate prin spații.
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 '''D''', reprezentând valoarea cerută.
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
  cele trei numere citite sunt numere reale


== Exemplu 1 ==
== Exemplul 1 ==
; Intrare
; Intrare
: 50 12 60.5
50 12 60.5
; Ieșire
; Ieșire
: 8
  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(a, b, c):
def calcul_densitate(masa, volum, coeficient_expansiune):
     # Calculăm densitatea metalului
     # Calculăm densitatea metalului
     D = b / (a + b - c)
     densitate = volum / (masa + volum - coeficient_expansiune)
     return D
     return densitate


if __name__ == "__main__":
if __name__ == "__main__":
     # Citim cele trei numere a, b și c de la tastatură
     try:
    a, b, c = map(float, input("Introduceti a, b și c, separate prin spațiu: ").split())
        # 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)


     # Apelăm funcția pentru a calcula densitatea metalului
     except ValueError as e:
    densitate_metal = calcul_densitate(a, b, c)
        # Afișăm mesajul în cazul în care datele nu îndeplinesc restricțiile
        print(str(e))


    # Afișăm densitatea metalului
    print("Densitatea metalului din care este confecționată moneda este:", densitate_metal)


</syntaxhighlight>
</syntaxhighlight>
==Explicație==
==Explicație==
'''a''' reprezintă masa inițială a eprubetei cu apă (fără monedă),
Pentru masa=50, volum=12 și coeficient_expansiune=60.5 se va afișa 8 (g/cm3).
'''b''' reprezintă masa monedei,
'''c''' reprezintă masa eprubetei cu apă după ce moneda este introdusă în ea.
Folosind formula densității, densitatea D a metalului din care este confecționată moneda poate fi calculată după cum urmează: '''D = b / (a + b - c) '''.
În implementarea dată, valorile pentru '''a, b''' și '''c''' sunt citite de la tastatură. Apoi, densitatea metalului este calculată folosind această formulă și este afișată pe ecran.

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).