Énoncés - Température - Porte-monnaie
On rappelle les équivalences suivantes :
0°C = 32°F = 273,15°K
100°C = 212°F = 373,15°K
(rem. : il ne peut pas exister de température inférieure à 0°K)À partir de ces équivalences, on peut donc retrouver les formules de conversion :
On peut donc rédiger les algorithmes suivants :
fonction Kelvin2Celsius (E: Valeur est un réel) renvoie un réel
début
retourner (Valeur-273,15)
finfonction Celsius2Kelvin (E: Valeur est un réel) renvoie un réel
début
retourner (Valeur+273,15)
finfonction Fahrenheit2Celsius (E: Valeur est un réel) renvoie un réel
début
retourner ((Valeur-32)x 100/180)
finfonction Celsius2Fahrenheit (E: Valeur est un réel) renvoie un réel
début
retourner (Valeur x 180/100 + 32)
finOn choisit d'utiliser comme donnée privée la valeur en degrés Kelvin. Il faudra s'assurer que la valeur de cette donnée ne sera jamais négative ! C'est pourquoi la clause écriture de la propriété DegreKel passe par un traitement.
Cl_Temperature est une classe
prive
kelvin est un réel positif ou nul
fonction GetDegreCel est un réel
procedure SetDegreCel (E: Valeur est un réel)
fonction GetDegreFar est un réel
procedure SetDegreFar (E: Valeur est un réel)
procedure SetDegreKel (E: Valeur est un réel)
public
Constructeur Creer
propriété DegreCel est un réel
lecture GetDegreCel
écriture SetDegreCel
propriété DegreFar est un réel
lecture GetDegreFar
écriture SetDegreFar
propriété DegreKel est un réel
lecture kelvin
écriture SetDegreKel
fin classeconstructeur Cl_Temperature.Creer
début
Creer héritée
kelvin <-- 0
finfonction Cl_Temperature.GetDegreCel est un réel
début
retourner (Kelvin2Celsius(kelvin))
finprocedure Cl_Temperature.SetDegreCel (E: Valeur est un réel)
début
kelvin <-- max (0, Celsius2Kelvin(Valeur))
finfonction Cl_Temperature.GetDegreFar est un réel
début
retourner (Celsius2Fahrenheit(Kelvin2Celsius(kelvin)))
finprocedure Cl_Temperature.SetDegreFar (E: Valeur est un réel)
début
kelvin <-- max (0, Celsius2Kelvin(Fahrenheit2Celsius(Valeur)))
finprocedure Cl_Temperature.SetDegreKel (E: Valeur est un réel)
début
kelvin <-- max (0, Valeur)
fin
La fonction max renvoie la plus grande des deux valeurs passées en paramètres d'entrée :
fonction max (E: Valeur1, Valeur2 sont des réels) renvoie un réel
début
si (Valeur1 > Valeur2) alors
retourner (Valeur1)
sinon
retourner (Valeur2)
fin si
fin