Exercice langage C
[tab name=’Exercice langage C’]
A. Ecrivez un programme qui affiche les valeurs du sinus de tous les angles de 0 à 90 degrés, par pas de 15 degrés.
On souhaite un affichage de la forme :
sin(0) = 0.000000
sin(15) = 0.258819
sin(30) = 0.500000
…
sin(90) = 1.000000
B. Modifiez le programme précédent, de sorte qu’il affiche les valeurs du sinus des angles de 0 à 90 degrés, par pas de degrés, où ? est une valeur lue au clavier.
C. Modifiez le programme précédent, afin qu’il affiche les valeurs du sinus des angles de h à i degrés, par pas de degrés, où h, i et ? sont des valeurs lues au clavier.
[/tab][tab name=’Correction’]
[1] La seule difficulté est de se rappeler que les fonctions trigonométriques de la bibliothèque requièrent leur argument exprimé en radians (180 degrés = PI radians) alors que nous devons l’afficher en degrés. D’où une conversion à faire au moment de l’appel de la fonction sin :
#include #include int a, pi = 4 * atan(1); main() { a = 0; while (a <= 90) { printf("sin(%d) = %f\n", a, sin(a * (pi / 180))); a = a + 15; } }
Notez que ce programme n’a aucune chance de fonctionner si on oublie la ligne « #include » . Cela est dû à la fonction sin, dont la déclaration est donnée dans le fichier math.h (sans cette déclaration le compilateur fait l’hypothèse que sin rend un int, cela ne peut pas être juste).
[2] La bibliothèque mathématique standard ne comporte pas de définition de la constante pi (3.141592653589793 etc.). Une manière d’en obtenir une expression en accord avec les besoins de la bibliothèque consiste à le faire calculer par une fonction de la bibliothèque. Si on se souvient que la tangente de pi / 4 est 1 on en déduit que pi vaut quatre fois l’arc tangente de 1.
[3] On peut rendre ce programme encore plus compact avec l’instruction for
... main() { for (a = 0; a <= 90; a = a + 15) printf("sin(%d) = %f\n", a, sin(a * pi / 180)); }
[4] Les versions B et C demandées sont d’infimes variations de ce qui précède. Par exemple, la version C peut être ainsi écrite :
#include #include int a, b, p, pi = 4 * atan(1); main() { printf("donnez a b p : "); scanf("%d%d%d", &a, &b, &p); for ( ; a <= b; a = a + p) printf("sin(%d) = %f\n", a, sin(a * pi / 180)); }
Exercice langage C
[/tab][end_tabset skin= »ginger » ]