AP1 TD3 – Schémas itératifs Correction Exercice 1 – Baguettes Ecrire un algorithme qui affiche une table des prix de 1 à 10 baguettes de pain sous la forme : 1 baguette(s) coute(nt) 0.8 euros 2 baguette(s) coute(nt) 1.6 euros 3 baguette(s) coute(nt) 2.4 euros … 10 baguette(s) coute(nt) 8 euros 0+1 2 (0+1)+2 3 (0+1+2)+3 4 (0+1+2+3)+4 5 (0+1+2+3+4)+5 Poum contient donc la somme des cinq premiers entiers positifs. Si on généralise, poum contient la somme des pim premiers entiers. On rappelle que : 0 ! =1 n ! = 1 × 2 × 3 × … × n Le nombre d'itérations est connu (n1) : le schéma conditionnel POUR est donc à utiliser. Exercice 2 – Un grand classique Que réalise l'algorithme suivant ? Pour répondre à cette question, on pourra simuler une exécution de l’algorithme avec pim valant 5 à l'aide du tableau cidessous. ALGORITHME fondamental VARIABLE : pim, pam, poum: entiers DEBUT saisir pim poum ← 0 POUR pam ALLANT DE 1 A pim FAIRE poum ← poum + pam FINPOUR afficher poum FIN département 1 Ecrire un algorithme qui calcule la factorielle d'un nombre saisi par l'utilisateur. ALGORITHME baguettes CONSTANTE : (prixU : réel) ← 0.8 VARIABLE : prix : réel nb : entier DEBUT POUR nb ALLANT DE 1 A 10 FAIRE │ prix ← nb × prixU │ afficher nb,"baguette(s) coute(nt)", prix,"euros." FINPOUR FIN d’Amiens, Valeur de poum Exercice 3 – Factorielle Le nombre d'itérations est connu (dix) : le schéma itératif POUR est donc à utiliser. I.U.T. Valeur de pam (boucle POUR) ALGORITHME factorielle { calcul de la factorielle d'un entier n saisi par l'utilisateur } VARIABLE : facto, n, i : entiers DEBUT facto ← 1 saisir n SI n = 0 ALORS │ afficher "0 ! = 1" SINON │ POUR i ALLANT DE 2 A n FAIRE │ │ facto ← facto × i │ FINPOUR │ afficher facto FINSI FIN Le schéma conditionnel SI n'est pas nécessaire : le cas 0 ! est bien géré par la boucle POUR (une boucle POUR allant de 2 à 0 n'est pas exécutée). Néanmoins, ce SI augmente la lisibilité de l'algorithme en distinguant clairement, comme il est d'usage, le cas 0 ! et le cas n !, n étant différent de zéro. Informatique, année universitaire 2013/2014 AP1 - algorithmique TD3 - page 1/3 Exercice 5 – La démographie de la ville de Poitiers Exercice 4 Ecrire un algorithme qui demande des nombres à l'utilisateur et qui indique, à la fin de la saisie, le nombre le plus grand et son rang. L'utilisateur met fin à la saisie en entrant la valeur zéro. Par exemple, si l'utilisateur entre les nombres suivants : 6 8.5 52.3 95 23.8 0 L'algorithme affichera Le nombre le plus grand est 95, situé au rang 4. Le nombre d'itérations n'est pas connu a priori. La boucle POUR n'est donc pas adaptée. En outre, il est possible de ne faire aucune itération si l'utilisateur saisit zéro dès le début. La boucle TANTQUE est donc à privilégier. La tactique est la suivante : on gère durant l'algorithme un maximum courant, qui contient la valeur la plus grande jusqu'à présent. A chaque nouvelle saisie, on compare le nombre n entré par l'utilisateur à ce max courant : si n > max, alors n devient le nouveau maximum courant. ALGORITHME plus_grand VARIABLES : n, max : réels rg, rgmax : entiers DEBUT saisir n max ← n rg ← 1 rgmax ← 1 Le taux d'accroissement annuel de la ville de Poitiers (Vienne) est de 0.89 %. Ecrire un algorithme qui indique le nombre d'années à partir de l'an 2013 pour atteindre 100 000 habitants, sachant la ville compte actuellement 87 697 habitants. Le nombre d'itérations n'est pas connu a priori (c'est d'ailleurs l'objet du problème !). La boucle POUR n'est donc pas adaptée. En outre, il faudra faire au moins une itération car au départ le nombre d'habitants est inférieur à 100 000. La boucle REPETER JUSQU'A est donc à privilégier. ALGORITHME Poitiers VARIABLES : hab : réel an : entier DEBUT an ← 0 hab ← 87697 REPETER │ hab ← hab + (0.89 × hab / 100) │ an ← an + 1 JUSQU'A hab ≥ 100 000 afficher an FIN { initialisation du maximum courant à la première valeur saisie } { rgmax désigne le rang de ce maximum courant } TANT QUE n <> 0 FAIRE │ SI n > max ALORS │ │ max ← n │ │ rgmax ← rg │ FINSI │ rg ← rg + 1 │ saisir n FINTANTQUE FIN I.U.T. d’Amiens, département Informatique, année universitaire 2013/2014 AP1 TD3 cor - page 2/3
© Copyright 2025 ExpyDoc