Enoncé
Ecrire le programme qui calcule le sinus en utilisant le développement limité suivant :
(source)
Solution
Un autre exercice classique pour pratiquer avec les boucles.
L'astuce est simple : il ne faut pas penser à chaque élément d'une manière indépendant; il faut le baser sur l'élément précédent. En d'autres termes, pensez à utiliser l'écriture série de cette formule :
Ainsi, l'objectif est de calculer les éléments (les termes) de la sommes l'un après l'autre en se basant sur l'élément précédent.
Le code en Pascal sera :
Pour les deux exemples, j'ai donné 4 comme précision. Cela m'évite un effet de bord à cause de valeur 11! (11 * 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1) si je donne 5 comme précision. Evidemment, toute valeur supérieure à 5 provoquera le même problème.
Ecrire le programme qui calcule le sinus en utilisant le développement limité suivant :
(source)
Solution
Un autre exercice classique pour pratiquer avec les boucles.
L'astuce est simple : il ne faut pas penser à chaque élément d'une manière indépendant; il faut le baser sur l'élément précédent. En d'autres termes, pensez à utiliser l'écriture série de cette formule :
Ainsi, l'objectif est de calculer les éléments (les termes) de la sommes l'un après l'autre en se basant sur l'élément précédent.
Le code en Pascal sera :
Program CalculSinus; Var i, n, signe, factoriel : Integer; x, sinus, puissancex : Real; Begin WriteLn('Donnez le x pour cacluler sin(x) :'); ReadLn(x); WriteLn('Donnez n qui désigne la précision du calcul :'); ReadLn(n); signe := 1; factoriel := 1; puissancex := x; sinus := 0; For i:= 1 to n Do Begin sinus := sinus + (signe * puissancex) / factoriel; signe := signe * -1; puissancex := puissancex * x * x; factoriel := factoriel * (2 * i) * (2 * i + 1); End; WriteLn('Valeur calculée par cet algorithme : ', sinus:1:2); WriteLn('Valeur calculée par l''API de pascal : ', sin(x):1:2); End.
Pour les deux exemples, j'ai donné 4 comme précision. Cela m'évite un effet de bord à cause de valeur 11! (11 * 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1) si je donne 5 comme précision. Evidemment, toute valeur supérieure à 5 provoquera le même problème.