Tester l'algorithme :


(cliquer sur le bouton ci-dessus pour lancer ou relancer l'exécution de l'algorithme)

Résultats :

Code de l'algorithme :
1     VARIABLES
2       A EST_DU_TYPE NOMBRE
3       B EST_DU_TYPE NOMBRE
4       C EST_DU_TYPE NOMBRE
5       E EST_DU_TYPE NOMBRE
6       L EST_DU_TYPE NOMBRE
7       B_INF EST_DU_TYPE NOMBRE
8       B_SUP EST_DU_TYPE NOMBRE
9       FA EST_DU_TYPE NOMBRE
10      FB EST_DU_TYPE NOMBRE
11    DEBUT_ALGORITHME
12      //Remarque importante : pour changer la focntion, il suffit de modifier l'expression de F1(x) dans l'onglet "Utiliser une fonction numérique".
13      
14      //Saisie des bornes de l'intervalle.
15      //On N'EST PAS obligés de saisir la borne inférieure puis la borne supérieure.
16      AFFICHER "Saisie des bornes de l'intervalle."
17      AFFICHER "Valeur de a ?"
18      LIRE A
19      FA PREND_LA_VALEUR F1(A)
20      AFFICHER "Valeur de b ?"
21      LIRE B
22      FB PREND_LA_VALEUR F1(B)
23      TANT_QUE (FA*FB>0) FAIRE
24        DEBUT_TANT_QUE
25        AFFICHER "Votre fonction prend des valeurs de même signe aux bornes fournies : "
26        AFFICHER FA
27        AFFICHER " et "
28        AFFICHER FB
29        AFFICHER "."
30        AFFICHER "Veuillez saisir les bornes à nouveau !"
31        LIRE A
32        FA PREND_LA_VALEUR F1(A)
33        LIRE B
34        FB PREND_LA_VALEUR F1(B)
35        FIN_TANT_QUE
36      B_INF PREND_LA_VALEUR 0.5*(A+B-abs(B-A))
37      B_SUP PREND_LA_VALEUR 0.5*(A+B+abs(B-A))
38      L PREND_LA_VALEUR B_SUP-B_INF
39      AFFICHER "Votre intervalle initial : ["
40      AFFICHER A
41      AFFICHER " ; "
42      AFFICHER B
43      AFFICHER "]."
44      //Saisie de la longueur souhaitée pour l'intervalle encadrant la valeur approchée, solution de f(x)=0.
45      //Cette longueur (variable E) doit être strictement positive.
46      E PREND_LA_VALEUR 0
47      TANT_QUE (E<=0) FAIRE
48        DEBUT_TANT_QUE
49        AFFICHER "Longueur de l'intervalle encadrant la valeur approchée (la valeur fournie doit être strictement positive) ?"
50        LIRE E
51        FIN_TANT_QUE
52      //Boucle principale mettant en oeuvre le principe de la dichotomie.
53      //Tant que la longueur courante de l'intervalle ( elle vaut |B-A|) est strictement supérieure à E, on la divise par 2 en ajustant les bornes.
54      TANT_QUE (L>E) FAIRE
55        DEBUT_TANT_QUE
56        C PREND_LA_VALEUR (A+B)/2
57        SI (F1(A)*F1(C)>0) ALORS
58          DEBUT_SI
59          A PREND_LA_VALEUR C
60          FIN_SI
61          SINON
62            DEBUT_SINON
63            B PREND_LA_VALEUR C
64            FIN_SINON
65        L PREND_LA_VALEUR B-A
66        FIN_TANT_QUE
67      //Affichage du résultat final.
68      //Borne inférieure et borne supérieure obtenues.
69      AFFICHER "La solution de l'équation f(x) = 0 appartient à l'intervalle ["
70      AFFICHER A
71      AFFICHER " ; "
72      AFFICHER B
73      AFFICHER "] de longueur : "
74      AFFICHER L
75      AFFICHER " < "
76      AFFICHER E
77      AFFICHER "."
78    FIN_ALGORITHME
79   
80   Fonction numérique utilisée :
81   F1(x)=pow(x,2)+x-1