retour vers la page d'accueil

STS IG 2 - année 2002/2003
TD n°7 : Programmation objet
éléments de correction

Énoncés - Température - Porte-monnaie

Sujet 1 - Température Retour en haut de page

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

fonction Celsius2Kelvin (E: Valeur est un réel) renvoie un réel
début
  retourner (Valeur+273,15)
fin

fonction Fahrenheit2Celsius (E: Valeur est un réel) renvoie un réel
début
  retourner ((Valeur-32)x 100/180)
fin

fonction Celsius2Fahrenheit (E: Valeur est un réel) renvoie un réel
début
  retourner (Valeur x 180/100 + 32)
fin

On 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 classe

constructeur Cl_Temperature.Creer
début
  Creer héritée
  kelvin <-- 0
fin

fonction Cl_Temperature.GetDegreCel est un réel
début
  retourner (Kelvin2Celsius(kelvin))
fin

procedure Cl_Temperature.SetDegreCel (E: Valeur est un réel)
début
  kelvin <-- max (0, Celsius2Kelvin(Valeur))
fin

fonction Cl_Temperature.GetDegreFar est un réel
début
  retourner (Celsius2Fahrenheit(Kelvin2Celsius(kelvin)))
fin

procedure Cl_Temperature.SetDegreFar (E: Valeur est un réel)
début
  kelvin <-- max (0, Celsius2Kelvin(Fahrenheit2Celsius(Valeur)))
fin

procedure 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


Auteur : Jean HENRI - septembre 2002 - copyright SeieS