Exercice 2

Exercice 2#

Question 1

On rappelle l’existence en C++ de la fonction double pow(double x, double a) qui calcule \(x^a\). On rappelle aussi que \(\sqrt x = x^{1/2}\). Écrivez la ligne de code permettant de déclarer une nouvelle variable réelle carré et d’y affecter la valeur \(3^2\). De même pour une variable racine avec la valeur \(\sqrt{3}\).

Question 2

Définissez une fonction qui prend en paramètres quatre nombres réels \(x_1\), \(y_1\), \(x_2\), \(y_2\) et renvoie la distance entre les points du plan \((x_1,y_1)\) et \((x_2,y_2)\), calculée par la formule usuelle \(\sqrt{ (x_2-x_1)^2 + (y_2-y_1)^2}\).

/// BEGIN SOLUTION
float distance(double x1, double y1, double x2, double y2) {
    return pow( pow(x2-x1, 2) + pow(y2-y1, 2), .5);
}
//
//
/// END SOLUTION
Question 3

La distance entre les points de coordonnées \((1,2)\) et \((4, 6)\) est de \(5\). Traduisez ce fait par un test automatique avec CHECK. \(\clubsuit\) Pour le maximum de points, le test devra tenir compte d’éventuelles erreurs d’arrondis dans les calculs.

/// BEGIN SOLUTION
float precision = 0.0001;
CHECK ( abs( distance( 1, 2, 4, 6) - 5 ) < precision );
/// END SOLUTION