fonction puissance(E X: réel, E n: entier): réel { variable i : entier p : réel p <-- 1 Si ((X=0) ET (n != 0)) alors { p <-- 0 } sinon { Pour i de 1 à n par pas de 1 p <-- p * X } retourne p } fonction factorielle(E n:entier) : entier { variable i,f : entier f <-- 1 Si (n != 0) alors { Pour i de 1 a n { f <-- f * i } } retourne f } fonction f(E x: reel):reel { variable exp, terme : réel i : entier constante reel epsilon <-- 0,0000001 exp <-- 0 i <-- 0 Repeter { terme <-- puissance(x,i)/factorielle(i) exp <-- exp + terme i <-- i + 1 } jusqu'à (terme < epsilon) retourne exp } procedure borne(S a : réel, S b : réel) { Repeter { Afficher("Veuillez saisir les bornes de [a,b]") Saisir(a,b) } jusqu'à (a < b) } procedure nbtrapeze(S n:entier) { Repeter { Afficher("Veuillez saisir le nombre de trapèzes souhaités") Saisir(n) } jusqu'à (n>0) } fonction calculIntervalle(E a : réel, E b : réel, E n : entier) : réel { retourne (b-a)/n } Algorithme Integration { variable a, b, x, I, h: réel i, n : entier Afficher("Cet algorithme intègre une fonction sur un intervalle.\n") borne(a,b) nbtrapezes(n) h <-- calculIntervalle(a,b,n) x <-- a I <-- f(x)/2 Pour i de 1 à n-1 { x <-- a + i*h I <-- I + f(x) } x <-- a + n*h // soit : x <-- b I <-- I + f(x)/2 I <-- I*h Afficher("L'intégrale de la fonction sur l'intervalle [",a,",",b,"] avec ", n, " trapezes vaut ", I, ".\n") }