Exercice 1

Exercice 1#

Spécifiez par une documentation et définissez une fonction aireRectangle qui renvoie l’aire d’un rectangle de longueur et largeur réels donnés (rappel : aire = longueur x largeur).

/// BEGIN SOLUTION
/** aireRectangle
 * @param longueur
 * @param large
 * @return l aire du rectangle
 **/
double aireRectangle(double longueur, double largeur) {
    return longueur * largeur;
}
/// END SOLUTION

Écrivez un test automatique avec CHECK pour cette fonction vérifiant que l’aire d’un rectangle de longeur 3.5 et de largeur 2 est bien 7. \(\clubsuit\) Pour le maximum de points, le test devra tenir compte d’éventuelles erreurs d’arrondis dans les calculs (on suppose qu’on a déjà à disposition la fonctions abs qui calcule la valeur absolue).

/// BEGIN SOLUTION
float precision = 0.0001;
CHECK ( abs(aireRectangle(3.5, 2)-7) < precision );
/// END SOLUTION

Complétez le programme suivant calculant l’aire d’un rectangle \(3.5\times 2\) :

// Déclare une variable `longueur` initialisée à 3.5; idem pour `largeur` à 2.
/// BEGIN SOLUTION
double longueur = 3.5;
double largeur = 2;
/// END SOLUTION
// Déclare une variable `aire` et lui affecte l'aire du rectangle en
// utilisant la fonction `aireRectangle` 
/// BEGIN SOLUTION
int aire = aireRectangle(longueur, largeur);
/// END SOLUTION

Dessinez l’état de la pile lors de l’exécution du programme précédent juste avant l’exécution du return de aireRectangle.

BEGIN SOLUTION

              ┌  ┌─────────────────┬─────┐
              │  │ double largeur  │ 2   │
aireRectangle ┤  ├─────────────────┼─────┤
              │  │ double longueur │ 3.5 │
              └  ├─────────────────┼─────┤
                 │ double largeur  │ 2   │
                 ├─────────────────┼─────┤
                 │ double longueur │ 3.5 │
                 ├─────────────────┴─────┤
                 │          ...          │
                 └───────────────────────┘
                            Pile

END SOLUTION