Algorithmique : Structure conditionnelle Objectif : appliquer les structures conditionnelles à la résolution d’équations du second degré. Une structure conditionnelle dans un algorithme est une structure de la forme : Si condition alors instructions A sinon instructions B. Exercice 1 : un premier algorithme Les cadres suivants présentent un algorithme et le programme correspondant en langage CASIO puis TI : Programme XAM Saisir A Saisir B Si A > B Alors Afficher A Sinon Afficher B FinSi =====XAM===== ”A = ” :? → A ↵ ”B = ” :? → B ↵ If A > B ↵ Then A ↵ Else B ↵ IfEnd PROGRAM :XAM :Input”A=”,A :Input”B=”,B :If A > B :Then :Disp A :Else :Disp B :End 1. Que va afficher le programme pour (A, B) = (1, 2) ? (A, B) = (3, 7) ? (A, B) = (5, 5) ? 2. Dire, en général, quelle valeur renvoie ce programme. 3. Programmer l’algorithme sur votre calculatrice et le tester. Exercice 2 : prix de photocopies Un commerce de reprographie facture 10 centimes chacunes des 50 premières photocopies et 8 centimes les suivantes. écrire un algorithme qui fait saisir le nombre de photocopies et affiche le prix. Programmer et tester cet algorithme. Exercice 3 : Equations du second degré Ecrire l’algorithme en langage courant d’un programme qui fait saisir trois réels a, b, c et affiche l’ensemble des solutions de ax2 + bx + c = 0. Programmer ensuite cet algorithme sur votre calculatrice et le tester. Correction Exercice 1 1. Si (A, B) = (1, 2), le test A > B échoue, le programme va donc afficher B, donc ici 2. Si (A, B) = (3, 7), le test A > B échoue, le programme va donc afficher B, donc ici 7. Si (A, B) = (5, 5), le test A > B échoue, le programme va donc afficher B, donc ici 5. 2. Bien que le programme n’ait affiché dans nos tests que la valeur B, ce n’est pas sa vocation. En effet, si on teste le programme avec (A, B) = (10, 2), le programme va retourner la valeur stockée dans A, c’est-à-dire 10. Ainsi, le programme renvoie la plus grande des deux valeurs. Exercice 2 Notons x le nombre de photocopies et cherchons la fonction f qui à x associe le prix payé en centimes. On trouve aisément : ß 10 × x pour x < 50 f (x) = 10 × 50 + (x − 50) × 8 pour x ≥ 50 Ce qui nous donne le programme suivant (en langage naturel à gauche, en langage Casio à droite) : Programme PHOTOCOP Saisir A Si A < 50 Alors Affecter 10 × A à B Sinon Affecter 10 × 50 + (A − 50) × 8 à B FinSi Afficher B Exercice 3 Ci dessous, la version la plus basique : "A" ? -> A ↵ "B" ? -> B ↵ "C" ? -> C ↵ B 2 -4×A×C-> D -B (2×A) -> S ↵ -D (4×A) -> T ↵ "SOMMET (S,T)" ↵ S T If D<0 ↵ Then "PAS DE RACINES REELLES" Else If D=0 ↵ Then "UNE SEULE RACINE" ↵ "X=": -B (2×A) Else "DEUX √ RACINES REELLES" ↵ "X1=": (-B-√D) (2×A) "X2=": (-B+ D) (2×A) IfEnd ↵ "Fin" =====PHOTOCOP===== ”A = ” :? → A ↵ If A < 50 ↵ Then 10 × A → B ↵ Else 10 × 50 + (A − 50) × 8 → B ↵ IfEnd ↵ B