EC521 – Remise à niveau Informatique – Exercices d’algorithmique Christophe Montagne & Jean-Yves Didier 1 Manipulation des variables Exercice 1.1 : suivantes ? Quelles seront les valeurs des variables A et B après exécution des instructions 1 programme e x e r c i c e 1 . 1 d ébut 3 v a r i a b l e s A, B en e n t i e r A ← 1 5 B ← A +3 A ← 3 7 fin Exercice 1.2 : suivantes ? Quelles seront les valeurs des variables A, B et C après exécution des instructions 1 programme e x e r c i c e 1 . 2 d ébut 3 v a r i a b l e s A, B , C en e n t i e r A ← 5 5 B ← 3 C ← A + B 7 A ← 2 C ← B − A 9 fin Exercice 1.3 : suivantes ? Quelles seront les valeurs des variables A et B après exécution des instructions 1 programme e x e r c i c e 1 . 3 d ébut 3 v a r i a b l e s A, B en e n t i e r A ← 5 5 B ← A + 4 A ← A + 1 7 B ← A − 4 fin Dernière version : 15 septembre 2016 1 2 Lecture et affichage Exercice 2.1 : Quel résultat produit le programme suivant ? 2 4 6 8 programme e x e r c i c e 2 . 1 d ébut v a r i a b l e s v a l , d o u b l e en e n t i e r v a l ← 231 double ← val ∗ 2 afficher ( val ) a f f i c h e r ( double ) fin Si je remplace la ligne 4 par une instruction lire(val) et que l’utilisateur, à l’exécution du programme, saisit la valeur 21. Quel sera le résultat produit par ce même programme ? Exercice 2.2 : Un étudiant a écrit, dans l’idée de permuter la valeur de deux variables saisies par l’utilisateur, le programme suivant : 2 4 6 8 programme e x e r c i c e 2 . 2 d ébut v a r i a b l e s A, B en e n t i e r l i r e (A, B ) A ← B B ← A a f f i c h e r (A, B ) fin Le programme proposé réalise-t-il réellement une permutation des valeurs des variables ? On pourra s’aider d’un exemple concret, par exemple l’utilisateur saisit 1 pour A et 2 pour B. Si le programme ne donne pas le résultat escompté, écrivez un programme modifié permettant de le réaliser. Exercice 2.3 : Ecrire un programme qui demande un nombre à l’utilisateur, puis qui calcule et affiche le carré de ce nombre. Exercice 2.4 : Ecrire un programme qui lit le prix HT d’un article, le nombre d’articles et le taux de TVA, et qui affiche le prix total TTC y correspondant. Faire en sorte que les messages du programme soient explicites. 3 Les tests Exercice 3.1 : Soit le programme suivant : 2 4 6 8 10 programme e x e r c i c e 3 . 1 d ébut v a r i a b l e s A, T en r é é l T ← 35 a f f i c h e r ( ” Donnez v o t r e t e m p é r a t u r e ” ) l i r e (A) si A < T alors a f f i c h e r ( ” L’ hypothermie vous g u e t t e ! ” ) sinon a f f i c h e r ( ” Vous ne f a i t e s p a s d ’ h y p o t h e r m i e ” ) 2 finsi 12 fin Qu’affichera le programme dans le cas où l’utilisateur saisit la valeur 30 ? Même question si l’utilisateur saisit la valeur 38. Exercice 3.2 : Ecrire un algorithme qui demande un nombre à l’utilisateur et l’informe ensuite si ce nombre est positif ou négatif (on laisse de côté le cas où le nombre vaut zéro). Exercice 3.3 : Soit le programme suivant : programme e x e r c i c e 3 . 3 2 d ébut v a r i a b l e T en r é e l 4 a f f i c h e r ( ” Donnez v o t r e t e m p é r a t u r e ” ) 6 l i r e (T) s i (T < 38) alors s i (T < 35) alors a f f i c h e r ( ” Vous e t e s en h y p o t h e r m i e ” ) sinon a f f i c h e r ( ” Vous e t e s en bonne s a n t é ” ) finsi sinon a f f i c h e r ( ” Vous e t e s f i é v r e u x ” ) finsi 8 10 12 14 16 fin Qu’affichera le programme dans le cas où l’utilisateur saisit la valeur 36 ? Même question pour les cas où l’utilisateur saisit 34, puis 39. Exercice 3.4 : Ecrire un algorithme qui demande l’age d’un enfant à l’utilisateur. Ensuite, il l’informe de sa catégorie : — Poussin de 6 à 7 ans ; — Pupille de 8 à 9 ans ; — Minime de 10 à 11 ans ; — Cadet après 12 ans. Peut-on concevoir plusieurs algorithmes équivalents menant à ce résultat ? Exercice 3.5 : Un magasin de reprographie facture 0,10e les dix premières photocopies, 0,09e les vingt suivantes et 0,08e au-delà. Ecrire un algorithme qui demande à l’utilisateur le nombre de photocopies effectuées et qui affiche la facture correspondante. Exercice 3.6 (optionnel) : La présipauté du Groland se décide à organiser des élections pour son nouveau ministre de l’économie. Elles obéissent à la règle suivante : — Lorsque l’un des candidats obtient plus de 50% des suffrages, il est élu dès le premier tour ; — En cas de second tour, ne peuvent participer que les candidats ayant obtenu au moins 12,5% des voix au premier tour. Ecrire un algorithme qui permette la saisie des scores de quatre candidats au premier tour. Cet algorithme traitera ensuite le candidat numéro 1 (et uniquement lui) : il dira s’il est élu, battu, s’il se trouve 3 en ballotage favorable (il participe au second tour en étant arrivé en tête à l’issue du premier tour) ou défavorable (il participe au second tour sans avoir été en tête à l’issue du premier tour). 4 Les boucles Exercice 4.1 Soit le programme ci-dessous. 1 programme e x e r c i c e 4 . 1 d ébut 3 v a r i a b l e n en e n t i e r faire a f f i c h e r ( ” E n t r e z un nombre ” ) lire (n) tantque n < 1 e t n > 3 5 7 9 fin Que réalise ce programme ? Si l’utilisateur envisage de rentrer la séquence de nombres suivants (dans l’ordre présenté) : −1, 0, 4, 1, 2, 5, quels seront les nombres de cette séquence qu’il pourra saisir avant que le programme ne se termine ? Exercice 4.2 : Ecrire un programme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponse convienne. En cas de réponse supérieure à 20, on fera apparaı̂tre le message Plus petit ! et inversement, Plus grand ! si le nombre est inférieur à 10. Exercice 4.3 : Ecrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la table de multiplication de ce nombre, présentée comme suit (cas où l’utilisateur entre le nombre 7) : Table de 7 : 7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 ... 7 x 10 = 70 Réécrire cet algorithme en utilisant à chaque fois une variante de boucle parmi celles portées à votre connaissance. Exercice 4.4 : Ecrire un algorithme qui demande successivement 20 nombres à l’utilisateur, et qui lui dise ensuite quel était le plus grand parmi ces 20 nombres : Entrez le nombre Entrez le nombre ... Entrez le nombre Le plus grand de numéro 1 : 12 numéro 2 : 14 numéro 20 : 6 ces nombres est : 14 Modifiez ensuite l’algorithme pour que le programme affiche également en quelle position le nombre avait saisi : c’était le nombre numéro 2 . Exercice 4.5 : Réécrire l’algorithme précédent, cette fois, on ne connait pas d’avance combien de nombres souhaite saisir l’utilisateur. La saisie des nombres s’arrête lorsque l’utilisateur entre −1. 4