Exercice 2#
Question 1On 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}\).
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
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