3071 - Densitate

De la Universitas 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

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

Explicație

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