TD Informatique AES S3 Corrigé séance 7 Exercice 1 : Objectif : comprendre comment fonctionne un programme structurer en "faisant tourner" l'algorithme. Question posée : quelles valeurs de A, B, C, D et E s'afficheront à la fin de l'exécution du programme ? VAR A,B,C,D,E,I : entiers Début A2 B10;C5 DA*B;EB/A BB-2;AA*2 AB+D+E BC+2*B Si A>B alors Si B>C alors DB-D sinon DB+D finsi sinon D2*D+E finsi Pour I1 à C faire AA-D finpour Tant que I<=10 faire EE+2 II+1 Fintant Ecrire A,B,C,D,E Fin Réponse : A=28 ; B=21 ; C=5 ; D=1 ; E=17 Exercice 2 : Faire un algorithme permettant de calculer le montant à payer d'une facture, sachant qu'il est possible d'acheter trois produits P1, P2 et P3 dont les prix respectifs sont 3,5 euros, 4.75 euros et 3 euros. Pour simplifier, on saisira systématiquement la quantité achetée de chaque produit, sachant que si un produit n'est pas commandé, on indiquera 0. On accorde une remise de 5% si le montant hors taxe de la commande est supérieur à 150 euros et une remise de 10% s'il dépasse 750 euros. D'autre part, on ajoute 8 euros de frais de transport si le montant hors taxe (hors remise) est inférieur à 225 euros. Le taux de TVA utilisé est de 19,6% Correction : VAR Q1,Q2,Q3 : entiers MHT, REMISE,TTC : réels Début Ecrire "Quelle est la quantité achetée du produit 1 ?" Lire Q1 Ecrire "Quelle est la quantité achetée du produit 2 ?" Lire Q2 Ecrire "Quelle est la quantité achetée du produit 3 ?" Lire Q3 MHTQ1*3.5+Q2*4.75+Q3*3 Si MHT>750 alors REMISEMHT*0.1 Sinon Si MHT>150 alors REMISE0.05*MHT Sinon REMISE0 Finsi Finsi Si MHT<225 alors MHTMHT+8 Finsi MHTMHT-REMISE TTCMHT*1.196 Ecrire "Montant à payer :",TTC,"euros" Fin Traduire l'algorithme réalisé en une procédure Sub appelée VBA : Sub facture() Dim Q1 As Integer Dim Q2 As Integer Dim Q3 As Integer Dim MHT As Double Dim TTC As Double Dim Remise As Double Q1 = InputBox("Quelle est la quantité de produit 1 achetée ?") Q2 = InputBox("Quelle est la quantité de produit 2 achetée ?") Q1 = InputBox("Quelle est la quantité de produit 3 achetée ?") MHT = Q1 * 3.5 + Q2 * 4.75 + Q3 * 3 If MHT > 750 Then Remise = MHT * 0.1 Else If MHT > 150 Then Remise = 0.05 * MHT Else Remise = 0 If MHT < 225 Then MHT = MHT + 8 MHT = MHT - Remise TTC = MHT * 1.196 MsgBox ("Montant à payer : " & TTC & " euros") End Sub