Exercices et Corriges d'algorithmique


Algorithmes Exercices et corrigs 1 24 Avant-propos
Algorithmes Exercices et corrigs 2 24 Enoncs des Exercices
Algorithmes Exercices et corrigs 3 24 Les Variables Exercice 11 Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes Variables A B en Entier Dbut A 1 B A 3 A 3 Fin Exercice 12 Quelles seront les valeurs des variables A B et C aprs excution des instructions suivantes Variables A B C en Entier Dbut A 5 B 3 C A B A 2 C B A Fin Exercice 13 Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes Variables A B en Entier Dbut A 5 B A 4 A A 1 B A 4 Fin Exercice 14 Quelles seront les valeurs des variables A B et C aprs excution des instructions suivantes Variables A B C en Entier Dbut A 3 B 10 C A B B A B A C Fin Exercice 15 Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes Variables A B en Entier Dbut A 5 B 2 A B B A Fin Moralit les deux dernires instructions permettent-elles dchanger les deux valeurs de B et A Si lon inverse les deux dernires instructions cela change-t-il quelque chose Exercice 16 Plus difficile mais cest un classique absolu quil faut absolument matriser crire un algorithme permettant dchanger les valeurs de deux variables A et B et ce quel que soit leur contenu pralable Exercice 17 Une variante du prcdent on dispose de trois variables A B et C Ecrivez un algorithme transfrant B la valeur de A C la valeur de B et A la valeur de C toujours quels que soient les contenus pralables de ces variables Exercice 18 Que produit lalgorithme suivant
Algorithmes Exercices et corrigs 4 24 Variables A B C en Caractres Dbut A quot423quot B quot12quot C A B Fin Exercice 19 Que produit lalgorithme suivant Variables A B C en Caractres Dbut A quot423quot B quot12quot C A amp B Fin Lecture et criture Exercice 21 Quel rsultat produit le programme suivant Variables val double numriques Dbut Val 231 Double Val 2 Ecrire Val Ecrire Double Fin Exercice 22 Ecrire un programme qui demande un nombre lutilisateur puis qui calcule et affiche le carr de ce nombre Exercice 23 Ecrire un programme qui lit le prix HT dun article le nombre darticles et le taux de TVA et qui fournit le prix total TTC correspondant Faire en sorte que des libells apparaissent clairement Exercice 24 Ecrire un algorithme utilisant des variables de type chane de caractres et affichant quatre variantes possibles de la clbre belle marquise vos beaux yeux me font mourir damour On ne se soucie pas de la ponctuation ni des majuscules Les tests Exercice 31 Ecrire un algorithme qui demande un nombre lutilisateur et linforme ensuite si ce nombre est positif ou ngatif on laisse de ct le cas o le nombre vaut zro Exercice 32 Ecrire un algorithme qui demande deux nombres lutilisateur et linforme ensuite si leur produit est ngatif ou positif on laisse de ct le cas o le produit est nul Attention toutefois on ne doit pas calculer le produit des deux nombres Exercice 33 Ecrire un algorithme qui demande trois noms lutilisateur et linforme ensuite sils sont rangs ou non dans lordre alphabtique Exercice 34 Ecrire un algorithme qui demande un nombre lutilisateur et linforme ensuite si ce nombre est positif ou ngatif on inclut cette fois le traitement du cas o le nombre vaut zro
Algorithmes Exercices et corrigs 5 24 Exercice 35 Ecrire un algorithme qui demande deux nombres lutilisateur et linforme ensuite si le produit est ngatif ou positif on inclut cette fois le traitement du cas o le produit peut tre nul Attention toutefois on ne doit pas calculer le produit Exercice 36 Ecrire un algorithme qui demande lge dun enfant lutilisateur Ensuite il linforme de sa catgorie quotPoussinquot de 6 7 ans quotPupillequot de 8 9 ans quotMinimequot de 10 11 ans quotCadetquot aprs 12 ans Peut-on concevoir plusieurs algorithmes quivalents menant ce rsultat Les boucles Exercice 51 Ecrire un algorithme qui demande lutilisateur un nombre compris entre 1 et 3 jusqu ce que la rponse convienne Exercice 52 Ecrire un algorithme qui demande un nombre compris entre 10 et 20 jusqu ce que la rponse convienne En cas de rponse suprieure 20 on fera apparatre un message Plus petit et inversement Plus grand si le nombre est infrieur 10 Exercice 53 Ecrire un algorithme qui demande un nombre de dpart et qui ensuite affiche les dix nombres suivants Par exemple si lutilisateur entre le nombre 17 le programme affichera les nombres de 18 27 Exercice 54 Ecrire un algorithme qui demande un nombre de dpart et qui ensuite crit la table de multiplication de ce nombre prsente comme suit cas o lutilisateur entre le nombre 7 Table de 7 7 x 1 7 7 x 2 14 7 x 3 21 7 x 10 70 Exercice 55 Ecrire un algorithme qui demande un nombre de dpart et qui calcule la somme des entiers jusqu ce nombre Par exemple si lon entre 5 le programme doit calculer 1 2 3 4 5 15 NB on souhaite afficher uniquement le rsultat pas la dcomposition du calcul Exercice 56 Ecrire un algorithme qui demande un nombre de dpart et qui calcule sa factorielle NB la factorielle de 8 note 8 vaut 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 Exercice 57 Ecrire un algorithme qui demande successivement 20 nombres lutilisateur et qui lui dise ensuite quel tait le plus grand parmi ces 20 nombres Entrez le nombre numro 1 12 Entrez le nombre numro 2 14 etc Entrez le nombre numro 20 6 Le plus grand de ces nombres est 14
Algorithmes Exercices et corrigs 6 24 Modifiez ensuite lalgorithme pour que le programme affiche de surcrot en quelle position avait t saisie ce nombre Ctait le nombre numro 2 Exercice 58 Rcrire lalgorithme prcdent mais cette fois-ci on ne connat pas davance combien lutilisateur souhaite saisir de nombres La saisie des nombres sarrte lorsque lutilisateur entre un zro Exercice 59 Lire la suite des prix en euros entiers et termine par zro des achats dun client Calculer la somme quil doit lire la somme quil paye et simuler la remise de la monnaie en affichant les textes quot10 Eurosquot quot5 Eurosquot et quot1 Euroquot autant de fois quil y a de coupures de chaque sorte rendre Exercice 510 crire un algorithme qui permette de connatre ses chances de gagner au tierc quart quint et autres impts volontaires On demande lutilisateur le nombre de chevaux partants et le nombre de chevaux jous Les deux messages affichs devront tre Dans lordre une chance sur X de gagner Dans le dsordre une chance sur Y de gagner X et Y nous sont donns par la formule suivante si n est le nombre de chevaux partants et p le nombre de chevaux jous on rappelle que le signe signifie quotfactoriellequot comme dans lexercice 56 ci-dessus X n n - p Y n p n p NB cet algorithme peut tre crit dune manire simple mais relativement peu performante Ses performances peuvent tre singulirement augmentes par une petite astuce Vous commencerez par crire la manire la plus simple puis vous identifierez le problme et crirez une deuxime version permettant de le rsoudre Les tableaux Exercice 61 Ecrire un algorithme qui dclare et remplisse un tableau de 7 valeurs numriques en les mettant toutes zro Exercice 62 Ecrire un algorithme qui dclare et remplisse un tableau contenant les six voyelles de lalphabet latin Exercice 63 Ecrire un algorithme qui dclare un tableau de 9 notes dont on fait ensuite saisir les valeurs par lutilisateur Exercice 64 Que produit lalgorithme suivant Tableau Nb5 en Entier Variable i en Entier Dbut Pour i 0 5 Nbi i i i suivant Pour i 0 5 Ecrire Nbi i suivant Fin Peut-on simplifier cet algorithme avec le mme rsultat Exercice 65 Que produit lalgorithme suivant Tableau N6 en Entier Variables i k en Entier Dbut N0 1 Pour k 1 6 Nk Nk-1 2 k Suivant Pour i 0 6 Ecrire Ni i suivant Fin Peut-on simplifier cet algorithme avec le mme rsultat
Algorithmes Exercices et corrigs 7 24 Exercice 66 Que produit lalgorithme suivant Tableau Suite7 en Entier Variable i en Entier Dbut Suite0 1 Suite1 1 Pour i 2 7 Suitei Suitei-1 Suitei-2 i suivant Pour i 0 7 Ecrire Suitei i suivant Fin Exercice 67 Ecrivez la fin de lalgorithme 63 afin que le calcul de la moyenne des notes soit effectu et affich lcran Exercice 68 Ecrivez un algorithme permettant lutilisateur de saisir un nombre quelconque de valeurs qui devront tre stockes dans un tableau Lutilisateur doit donc commencer par entrer le nombre de valeurs quil compte saisir Il effectuera ensuite cette saisie Enfin une fois la saisie termine le programme affichera le nombre de valeurs ngatives et le nombre de valeurs positives Exercice 69 Ecrivez un algorithme calculant la somme des valeurs dun tableau on suppose que le tableau a t pralablement saisi Exercice 610 Ecrivez un algorithme constituant un tableau partir de deux tableaux de mme longueur pralablement saisis Le nouveau tableau sera la somme des lments des deux tableaux de dpart Tableau 1 4 8 7 9 1 5 4 6 Tableau 2 7 6 5 2 1 3 7 4 Tableau constituer 11 14 12 11 2 8 11 10 Exercice 611 Toujours partir de deux tableaux prcdemment saisis crivez un algorithme qui calcule le schtroumpf des deux tableaux Pour calculer le schtroumpf il faut multiplier chaque lment du tableau 1 par chaque lment du tableau 2 et additionner le tout Par exemple si lon a Tableau 1 4 8 7 12 Tableau 2 3 6 Le Schtroumpf sera 3 4 3 8 3 7 3 12 6 4 6 8 6 7 6 12 279 Exercice 612 Ecrivez un algorithme qui permette la saisie dun nombre quelconque de valeurs sur le principe de lex 68 Toutes les valeurs doivent tre ensuite augmentes de 1 et le nouveau tableau sera affich lcran Exercice 613 Ecrivez un algorithme permettant toujours sur le mme principe lutilisateur de saisir un nombre dtermin de valeurs Le programme une fois la saisie termine renvoie la plus grande valeur en prcisant quelle position elle occupe dans le tableau On prendra soin deffectuer la saisie dans un premier temps et la recherche de la plus grande valeur du tableau dans un second temps
Algorithmes Exercices et corrigs 8 24 Exercice 614 Toujours et encore sur le mme principe crivez un algorithme permettant lutilisateur de saisir les notes dune classe Le programme une fois la saisie termine renvoie le nombre de ces notes suprieures la moyenne de la classe Les fonctions prdfinies Exercice 91 Parmi ces affectations considres indpendamment les unes des autres lesquelles provoqueront des erreurs et pourquoi Variables A B C en Numrique Variables D E en Caractre A SinB A SinA B C B SinA SinD D SinA B C CosSinA Exercice 92 Ecrivez un algorithme qui demande un mot lutilisateur et qui affiche lcran le nombre de lettres de ce mot cest vraiment tout bte Exercice 93 Ecrivez un algorithme qui demande une phrase lutilisateur et qui affiche lcran le nombre de mots de cette phrase On suppose que les mots ne sont spars que par des espaces et cest dj un petit peu moins bte Exercice 94 Ecrivez un algorithme qui demande une phrase lutilisateur et qui affiche lcran le nombre de voyelles contenues dans cette phrase On pourra crire deux solutions La premire dploie une condition compose bien fastidieuse La deuxime en utilisant la fonction Trouve allge considrablement lalgorithme Exercice 95 Ecrivez un algorithme qui demande une phrase lutilisateur Celui-ci entrera ensuite le rang dun caractre supprimer et la nouvelle phrase doit tre affiche on doit rellement supprimer le caractre dans la variable qui stocke la phrase et pas uniquement lcran Exercice 96 - Cryptographie 1 Un des plus anciens systmes de cryptographie aisment dchiffrable consiste dcaler les lettres dun message pour le rendre illisible Ainsi les A deviennent des B les B des C etc Ecrivez un algorithme qui demande une phrase lutilisateur et qui la code selon ce principe Comme dans le cas prcdent le codage doit seffectuer au niveau de la variable stockant la phrase et pas seulement lcran Exercice 97 - Cryptographie 2 - le chiffre de Csar Une amlioration relative du principe prcdent consiste oprer avec un dcalage non de 1 mais dun nombre quelconque de lettres Ainsi par exemple si lon choisit un dcalage de 12 les A deviennent des M les B des N etc Ralisez un algorithme sur le mme principe que le prcdent mais qui demande en plus quel est le dcalage utiliser Votre sens proverbial de llgance vous interdira bien sr une srie de vingt-six quotSiAlorsquot Exercice 98 - Cryptographie 3 Une technique ultrieure de cryptographie consista oprer non avec un dcalage systmatique mais par une substitution alatoire Pour cela on utilise un alphabet-cl dans lequel les lettres se succdent de manire dsordonne par exemple HYLUJPVREAKBNDOFSQZCWMGITX Cest cette cl qui va servir ensuite coder le message Selon notre exemple les A deviendront des H les B des Y les C des L etc Ecrire un algorithme qui effectue ce cryptage lalphabet-cl sera saisi par lutilisateur et on suppose quil effectue une saisie correcte Exercice 99 - Cryptographie 4 - le chiffre de Vigenre Un systme de cryptographie beaucoup plus difficile briser que les prcdents fut invent au XVIe sicle par le franais Vigenre Il consistait en une combinaison de diffrents chiffres de Csar On peut en effet crire 25 alphabets dcals par rapport lalphabet normal lalphabet qui commence par B et finit par YZA
Algorithmes Exercices et corrigs 9 24 lalphabet qui commence par C et finit par ZAB etc Le codage va seffectuer sur le principe du chiffre de Csar on remplace la lettre dorigine par la lettre occupant la mme place dans lalphabet dcal Mais la diffrence du chiffre de Csar un mme message va utiliser non un mais plusieurs alphabets dcals Pour savoir quels alphabets doivent tre utiliss et dans quel ordre on utilise une cl Si cette cl est quotVIGENEREquot et le message quotIl faut coder cette phrasequot on procdera comme suit La premire lettre du message I est la 9e lettre de lalphabet normal Elle doit tre code en utilisant lalphabet commenant par la premire lettre de la cl V Dans cet alphabet la 9e lettre est le D I devient donc D La deuxime lettre du message L est la 11e lettre de lalphabet normal Elle doit tre code en utilisant lalphabet commenant par la deuxime lettre de la cl I Dans cet alphabet la 11e lettre est le S L devient donc S etc Quand on arrive la dernire lettre de la cl on recommence la premire Ecrire lalgorithme qui effectue un cryptage de Vigenre en demandant bien sr au dpart la cl lutilisateur Exercice 910 Ecrivez un algorithme qui demande un nombre entier lutilisateur Lordinateur affiche ensuite le message quotCe nombre est pairquot ou quotCe nombre est impairquot selon le cas Exercice 911 Ecrivez les algorithmes qui gnrent un nombre Glup alatoire tel que 0 lt Glup lt 2 1 lt Glup lt 1 135 lt Glup lt 165 Glup mule un d six faces 105 lt Glup lt 65 Glup mule la somme du jet simultan de deux ds six faces Les fonctions et procdures Exercice 111 crivez une fonction qui renvoie la somme de cinq nombres fournis en argument Exercice 112 crivez une fonction qui renvoie le nombre de voyelles contenues dans une chane de caractres passe en argument Au passage notez quune fonction a tout fait le droit dappeler une autre fonction Exercice 113 Rcrivez la fonction Trouve vue prcdemment laide des fonctions Mid et Len comme quoi Trouve la diffrence de Mid et Len nest pas une fonction indispensable dans un langage
Algorithmes Exercices et corrigs 10 24 Corrigs Des Exercices
Algorithmes Exercices et corrigs 11 24 Les variables Exercice 11 Aprs La valeur des variables est A 1 A 1 B B A 3 A 1 B 4 A 3 A 3 B 4 Exercice 12 Aprs La valeur des variables est A 5 A 5 B C B 3 A 5 B 3 C C A B A 5 B 3 C 8 A 2 A 2 B 3 C 8 C B A A 2 B 3 C 1 Exercice 13 Aprs La valeur des variables est A 5 A 5 B B A 4 A 5 B 9 A A 1 A 6 B 9 B A 4 A 6 B 2 Exercice 14 Aprs La valeur des variables est A 3 A 3 B C B 10 A 3 B 10 C C A B A 3 B 10 C 13 B A B A 3 B 13 C 13 A C A 13 B 13 C 13 Exercice 15 Aprs La valeur des variables est A 5 A 5 B B 2 A 5 B 2 A B A 2 B 2 B A A 2 B 2 Les deux dernires instructions ne permettent donc pas dchanger les deux valeurs de B et A puisque lune des deux valeurs celle de A est ici crase Si lon inverse les deux dernires instructions cela ne changera rien du tout hormis le fait que cette fois cest la valeur de B qui sera crase Exercice 16 Dbut C A A B B C Fin On est oblig de passer par une variable dite temporaire la variable C Exercice 17 Dbut D C C B B A A D Fin En fait quel que soit le nombre de variables une seule variable temporaire suffit Exercice 18 Il ne peut produire quune erreur dexcution puisquon ne peut pas additionner des caractres Exercice 19 En revanche on peut les concatner A la fin de lalgorithme C vaudra donc quot42312quot
Algorithmes Exercices et corrigs 12 24 Lecture et criture Exercice 21 On verra apparatre lcran 231 puis 462 qui vaut 231 2 Exercice 22 Variables nb carr en Entier Dbut Ecrire quotEntrez un nombre quot Lire nb carr nb nb Ecrire quotSon carr est quot carr Fin En fait on pourrait tout aussi bien conomiser la variable carr en remplaant les deux avant-dernires lignes par Ecrire quotSon carr est quot nbnb Cest une question de style dans un cas on privilgie la lisibilit de lalgorithme dans lautre on privilgie lconomie dune variable Exercice 23 Variables nb pht ttva pttc en Numrique Dbut Ecrire quotEntrez le prix hors taxes quot Lire pht Ecrire quotEntrez le nombre darticles quot Lire nb Ecrire quotEntrez le taux de TVA quot Lire ttva pttc nb pht 1 ttva Ecrire quotLe prix toutes taxes est quot pttc Fin L aussi on pourrait squeezer une variable et une ligne en crivant directement Ecrire quotLe prix toutes taxes est quot nb pht 1 ttva Cest plus rapide plus lger en mmoire mais un peu plus difficile relire et crire Exercice 24 Variables t1 t2 t3 t4 en Caractre Dbut t1 quotbelle Marquisequot t2 quotvos beaux yeuxquot t3 quotme font mourirquot t4 quotdamourquot Ecrire t1 amp quot quot amp t2 amp quot quot amp t3 amp quot quot amp t4 Ecrire t3 amp quot quot amp t2 amp quot quot amp t4 amp quot quot amp t1 Ecrire t2 amp quot quot amp t3 amp quot quot amp t1 amp quot quot amp t4 Ecrire t4 amp quot quot amp t1 amp quot quot amp t2 amp quot quot amp t3 Fin Les tests Exercice 31 Variable n en Entier Dbut Ecrire quotEntrez un nombre quot Lire n Si n gt 0 Alors Ecrire quotCe nombre est positif Sinon Ecrire quotCe nombre est ngatifquot Finsi Fin Exercice 32
Algorithmes Exercices et corrigs 13 24 Variables m n en Entier Dbut Ecrire quotEntrez deux nombres quot Lire m n Si m gt 0 ET n gt 0 OU m lt 0 ET n lt 0 Alors Ecrire quotLeur produit est positifquot Sinon Ecrire quotLeur produit est ngatifquot Finsi Fin Exercice 33 Variables a b c en Caractre Dbut Ecrire quotEntrez successivement trois noms quot Lire a b c Si a lt b ET b lt c Alors Ecrire quotCes noms sont classs alphabtiquementquot Sinon Ecrire quotCes noms ne sont pas classsquot Finsi Fin Exercice 34 Variable n en Entier Dbut Ecrire quotEntrez un nombre quot Lire n Si n lt 0 Alors Ecrire quotCe nombre est ngatifquot SinonSi n 0 Alors Ecrire quotCe nombre est nulquot Sinon Ecrire quotCe nombre est positifquot Finsi Fin Exercice 35 Variables m n en Entier Dbut Ecrire quotEntrez deux nombres quot Lire m n Si m 0 OU n 0 Alors Ecrire quotLe produit est nulquot SinonSi m lt 0 ET n lt 0 OU m gt 0 ET n gt 0 Alors Ecrire quotLe produit est positifquot Sinon Ecrire quotLe produit est ngatifquot Finsi Fin Si on souhaite simplifier lcriture de la condition lourde du SinonSi on peut toujours passer par des variables boolennes intermdiaires Une astuce de sioux consiste galement employer un Xor cest lun des rares cas dans lesquels il est pertinent Exercice 36 Variable age en Entier Dbut Ecrire quotEntrez lge de lenfant quot Lire age Si age gt 12 Alors Ecrire quotCatgorie Cadetquot SinonSi age gt 10 Alors Ecrire quotCatgorie Minimequot SinonSi age gt 8 Alors Ecrire quotCatgorie Pupillequot SinonSi age gt 6 Alors
Algorithmes Exercices et corrigs 14 24 Ecrire quotCatgorie Poussinquot Finsi Fin On peut videmment crire cet algorithme de diffrentes faons ne serait-ce quen commenant par la catgorie la plus jeune Les boucles Exercice 51 Variable N en Entier Debut N 0 Ecrire quotEntrez un nombre entre 1 et 3quot TantQue N lt 1 ou N gt 3 Lire N Si N lt 1 ou N gt 3 Alors Ecrire quotSaisie errone Recommencez FinSi FinTantQue Fin Exercice 52 Variable N en Entier Debut N 0 Ecrire quotEntrez un nombre entre 10 et 20quot TantQue N lt 10 ou N gt 20 Lire N Si N lt 10 Alors Ecrire quotPlus grand quot SinonSi N gt 20 Alors Ecrire quotPlus petit quot FinSi FinTantQue Fin Exercice 53 Variables N i en Entier Debut Ecrire quotEntrez un nombre quot Lire N Ecrire quotLes 10 nombres suivants sont quot Pour i N 1 N 10 Ecrire i i Suivant Fin Exercice 54 Variables N i en Entier Debut Ecrire quotEntrez un nombre quot Lire N Ecrire quotLa table de multiplication de ce nombre est quot Pour i 1 10 Ecrire N quot x quot i quot quot ni i Suivant Fin Exercice 55 Variables N i Som en Entier Debut Ecrire quotEntrez un nombre quot Lire N Som 0 Pour i 1 N
Algorithmes Exercices et corrigs 15 24 Som Som i i Suivant Ecrire quotLa somme est quot Som Fin Exercice 56 Variables N i F en Entier Debut Ecrire quotEntrez un nombre quot Lire N F 1 Pour i 2 N F F i i Suivant Ecrire quotLa factorielle est quot F Fin Exercice 57 Variables N i PG en Entier Debut PG 0 Pour i 1 20 Ecrire quotEntrez un nombre quot Lire N Si i 1 ou N gt PG Alors PG N FinSi i Suivant Ecrire quotLe nombre le plus grand tait quot PG Fin En ligne 3 on peut mettre nimporte quoi dans PG il suffit que cette variable soit affecte pour que le premier passage en ligne 7 ne provoque pas derreur Pour la version amliore cela donne Variables N i PG IPG en Entier Debut PG 0 Pour i 1 20 Ecrire quotEntrez un nombre quot Lire N Si i 1 ou N gt PG Alors PG N IPG i FinSi i Suivant Ecrire quotLe nombre le plus grand tait quot PG Ecrire quotIl a t saisi en position numro quot IPG Fin Exercice 58 Variables N i PG IPG en Entier Debut N 1 i 0 PG 0 TantQue N ltgt 0 Ecrire quotEntrez un nombre quot Lire N i i 1 Si i 1 ou N gt PG Alors PG N IPG i FinSi FinTantQue Ecrire quotLe nombre le plus grand tait quot PG
Algorithmes Exercices et corrigs 16 24 Ecrire quotIl a t saisi en position numro quot IPG Fin Exercice 59 Variables FF somdue M IPG Reste Nb10F Nb5F En Entier Debut E 1 somdue 0 TantQue E ltgt 0 Ecrire quotEntrez le montant quot Lire E somdue somdue E FinTantQue Ecrire quotVous devez quot E quot eurosquot Ecrire quotMontant vers quot Lire M Reste M - E Nb10E 0 TantQue Reste gt 10 Nb10E Nb10E 1 Reste Reste 10 FinTantQue Nb5E 0 Si Reste gt 5 Nb5E 1 Reste Reste 5 FinSi Ecrire quotRendu de la monnaie quot Ecrire quotBillets de 10 E quot Nb10E Ecrire quotBillets de 5 E quot Nb5E Ecrire quotPices de 1 E quot reste Fin Exercice 510 Spontanment on est tent dcrire lalgorithme suivant Variables N P i Num Dno1 Dno2 en Entier Debut Ecrire quotEntrez le nombre de chevaux partants quot Lire N Ecrire quotEntrez le nombre de chevaux jous quot Lire P Num 1 Pour i 2 N Num Num i i Suivant Dno1 1 Pour i 2 N-P Dno1 Dno1 i i Suivant Dno2 1 Pour i 2 P Dno2 Dno2 i i Suivant Ecrire quotDans lordre une chance sur quot Num Dno1 Ecrire quotDans le dsordre une sur quot Num Dno1 Dno2 Fin Cette version formellement juste comporte tout de mme deux faiblesses La premire et la plus grave concerne la manire dont elle calcule le rsultat final Celui-ci est le quotient dun nombre par un autre or ces nombres auront rapidement tendance tre trs grands En calculant comme on le fait ici dabord le numrateur puis ensuite le dnominateur on prend le risque de demander la machine de stocker des nombres trop grands pour quelle soit capable de les coder cf le prambule Cest dautant plus bte que rien ne nous oblige procder ainsi on nest pas oblig de passer par la division de deux trs grands nombres pour obtenir le rsultat voulu La deuxime remarque est quon a programm ici trois boucles successives Or en y regardant bien on peut voir quaprs simplification de la formule ces trois boucles comportent le mme nombre de tours si vous ne me croyez pas crivez un exemple de calcul et biffez les nombres identiques au numrateur et au dnominateur Ce triple calcul ces trois boucles
Algorithmes Exercices et corrigs 17 24 peut donc tre ramenes une seule Et voil le travail qui est non seulement bien plus court mais aussi plus performant Variables N P i O F en Entier Debut Ecrire quotEntrez le nombre de chevaux partants quot Lire N Ecrire quotEntrez le nombre de chevaux jous quot Lire P A 1 B 1 Pour i 1 P A A i N - P B B i i Suivant Ecrire quotDans lordre une chance sur quot A Ecrire quotDans le dsordre une chance sur quot A B Fin Les tableaux Exercice 61 Tableau Truc6 en Numrique Variable i en Numrique Debut Pour i 0 6 Truci 0 i Suivant Fin Exercice 62 Tableau Truc5 en Caractre Debut Truc0 quotaquot Truc1 quotequot Truc2 quotiquot Truc3 quotoquot Truc4 quotuquot Truc5 quotyquot Fin Exercice 63 Tableau Notes8 en Numrique Variable i en Numrique Pour i 0 8 Ecrire quotEntrez la note numro quot i 1 Lire Notesi i Suivant Fin Exercice 64 Cet algorithme remplit un tableau avec six valeurs 0 1 4 9 16 25 Il les crit ensuite lcran Simplification Tableau Nb5 en Numrique Variable i en Numrique Dbut Pour i 0 5 Nbi i i Ecrire Nbi i Suivant Fin Exercice 65 Cet algorithme remplit un tableau avec les sept valeurs 1 3 5 7 9 11 13 Il les crit ensuite lcran Simplification
Algorithmes Exercices et corrigs 18 24 Tableau N6 en Numrique Variables i k en Numrique Dbut N0 1 Ecrire N0 Pour k 1 6 Nk Nk-1 2 Ecrire Nk k Suivant Fin Exercice 66 Cet algorithme remplit un tableau de 8 valeurs 1 1 2 3 5 8 13 21 Exercice 67 Variable S en Numrique Tableau Notes8 en Numrique Debut s 0 Pour i 0 8 Ecrire quotEntrez la note n quot i 1 Lire Notesi s s Notesi i Suivant Ecrire quotMoyenne quot s9 Fin Exercice 68 Variables Nb Nbpos Nbneg en Numrique Tableau T en Numrique Debut Ecrire quotEntrez le nombre de valeurs quot Lire Nb Redim TNb-1 Nbpos 0 Nbneg 0 Pour i 0 Nb - 1 Ecrire quotEntrez le nombre n quot i 1 Lire Ti Si Ti gt 0 alors Nbpos Nbpos 1 Sinon Nbneg Nbneg 1 Finsi i Suivant Ecrire quotNombre de valeurs positives quot Nbpos Ecrire quotNombre de valeurs ngatives quot Nbneg Fin Exercice 69 Variables i Som N en Numrique Tableau T en Numrique Debut on ne programme pas la saisie du tableau dont on suppose quil compte N lments Redim TN-1 Som 0 Pour i 0 N - 1 Som Som Ti i Suivant Ecrire quotSomme des lments du tableau quot Som Fin Exercice 610
Algorithmes Exercices et corrigs 19 24 Variables i N en Numrique Tableaux T1 T2 T3 en Numrique Debut on suppose que T1 et T2 comptent N lments et quils sont dj saisis Redim T3N-1 Pour i 0 N - 1 T3i T1i T2i i Suivant Fin Exercice 611 Variables i j N1 N2 S en Numrique Tableaux T1 T2 en Numrique Debut On ne programme pas la saisie des tableaux T1 et T2 On suppose que T1 possde N1 lments et que T2 en possde T2 S 0 Pour i 0 N1 1 Pour j 0 N2 1 S S T1i T2j j Suivant i Suivant Ecrire quotLe schtroumpf est quot S Fin Exercice 612 Variables Nb i en Numrique Tableau T en Numrique Debut Ecrire quotEntrez le nombre de valeurs quot Lire Nb Redim TNb-1 Pour i 0 Nb - 1 Ecrire quotEntrez le nombre n quot i 1 Lire Ti i Suivant Ecrire quotNouveau tableau quot Pour i 0 Nb 1 Ti Ti 1 Ecrire Ti i Suivant Fin Exercice 613 Variables Nb Posmaxi en Numrique Tableau T en Numrique Ecrire quotEntrez le nombre de valeurs quot Lire Nb Redim TNb-1 Pour i 0 Nb - 1 Ecrire quotEntrez le nombre n quot i 1 Lire Ti i Suivant Posmaxi 0 Pour i 0 Nb - 1 Si Ti gt TPosmaxi alors Posmaxi i Finsi i Suivant Ecrire quotElement le plus grand quot TPosmaxi Ecrire quotPosition de cet lment quot Posmaxi Fin Exercice 614
Algorithmes Exercices et corrigs 20 24 Variables Nb i Som Moy Nbsup en Numrique Tableau T en Numrique Debut Ecrire quotEntrez le nombre de notes saisir quot Lire Nb Redim TNb-1 Pour i 0 Nb - 1 Ecrire quotEntrez le nombre n quot i 1 Lire Ti i Suivant Som 0 Pour i 0 Nb - 1 Som Som Ti i Suivant Moy Som Nb NbSup 0 Pour i 0 Nb - 1 Si Ti gt Moy Alors NbSup NbSup 1 FinSi i Suivant Ecrire NbSup quot lves dpassent la moyenne de la classequot Fin Les fonctions prdfinies Exercice 91 A SinB Aucun problme A SinA B C Aucun problme B SinA SinD Erreur D est en caractre D SinA B Aucun problme si B est diffrent de zro C CosSinA Erreur Il manque une parenthse fermante Exercice 92 Vous tiez prvenus cest bte comme chou Il suffit de se servir de la fonction Len et cest rgl Variable Mot en Caractre Variable Nb en Entier Debut Ecrire quotEntrez un mot quot Lire Mot Nb LenMot Ecrire quotCe mot compte quot Nb quot lettresquot Fin Exercice 93 L on est oblig de compter par une boucle le nombre despaces de la phrase et on en dduit le nombre de mots La boucle examine les caractres de la phrase un par un du premier au dernier et les compare lespace Variable Bla en Caractre Variables Nb i en Entier Debut Ecrire quotEntrez une phrase quot Lire Bla Nb 0 Pour i 1 LenBla Si MidBla i 1 quot quot Alors Nb Nb 1 FinSi i suivant Ecrire quotCette phrase compte quot Nb 1 quot motsquot Fin Exercice 94 Solution 1 pour chaque caractre du mot on pose une trs douloureuse condition compose Le moins que lon puisse dire cest que ce choix ne se distingue pas par son lgance Cela dit il marche donc aprs tout pourquoi pas
Algorithmes Exercices et corrigs 21 24 Variable Bla en Caractre Variables Nb i j en Entier Debut Ecrire quotEntrez une phrase quot Lire Bla Nb 0 Pour i 1 LenBla Si MidBla i 1 quotaquot ou MidBla i 1 quotequot ou MidBla i 1 quotiquot ou MidBla i 1 quotoquot ou MidBla i 1 quotuquot ou MidBla i 1 quotyquot Alors Nb Nb 1 FinSi i suivant Ecrire quotCette phrase compte quot Nb quot voyellesquot Fin Solution 2 on stocke toutes les voyelles dans une chane Grce la fonction Trouve on dtecte immdiatement si le caractre examin est une voyelle ou non Cest nettement plus sympathique Variables Bla Voy en Caractre Variables Nb i j en Entier Debut Ecrire quotEntrez une phrase quot Lire Bla Nb 0 Voy quotaeiouyquot Pour i 1 LenBla Si TrouveVoy MidBla i 1 ltgt 0 Alors Nb Nb 1 FinSi i suivant Ecrire quotCette phrase compte quot Nb quot voyellesquot Fin Exercice 95 Il nexiste aucun moyen de supprimer directement un caractre dune chane autrement quen procdant par collage Il faut donc concatner ce qui se trouve gauche du caractre supprimer avec ce qui se trouve sa droite Attention aux paramtres des fonctions Mid ils nont rien dvident Variable Bla en Caractre Variables Nb i j en Entier Dbut Ecrire quotEntrez une phrase quot Lire Bla Ecrire quotEntrez le rang du caractre supprimer quot Lire Nb L LenBla Bla MidBla 1 Nb 1 amp MidBla Nb 1 L Nb Ecrire quotLa nouvelle phrase est quot Bla Fin Exercice 96 Sur lensemble des exercices de cryptographie il y a deux grandes stratgies possibles - soit transformer les caractres en leurs codes ASCII Lalgorithme revient donc ensuite traiter des nombres Une fois ces nombres transforms il faut les reconvertir en caractres - soit en rester au niveau des caractres et procder directement aux transformations ce niveau Cest cette dernire option qui est choisie ici et pour tous les exercices de cryptographie venir Pour cet exercice il y a une rgle gnrale pour chaque lettre on dtecte sa position dans lalphabet et on la remplace par la lettre occupant la position suivante Seul cas particulier la vingt-sixime lettre le Z doit tre code par la premire le A et non par la vingt-septime qui nexiste pas Variables Bla Cod Alpha en Caractre Variables i Pos en Entier Dbut Ecrire quotEntrez la phrase coder quot Lire Bla Alpha quotABCDEFGHIJKLMNOPQRSTUVWXYZquot Cod quotquot
Algorithmes Exercices et corrigs 22 24 Pour i 1 LenBla Let MidBla i 1 Si Let ltgt quotZquot Alors Pos TrouveAlpha Let Cod Cod amp MidAlpha Pos 1 1 Sinon Cod Cod amp quotAquot FinSi i Suivant Bla Cod Ecrire quotLa phrase code est quot Bla Fin Exercice 97 Cet algorithme est une gnralisation du prcdent Mais l comme on ne connat pas davance le dcalage appliquer on ne sait pas a priori combien de quotcas particuliersquot savoir de dpassements au-del du Z il va y avoir Il faut donc trouver un moyen simple de dire que si on obtient 27 il faut en ralit prendre la lettre numro 1 de lalphabet que si on obtient 28 il faut en ralit prendre la numro 2 etc Ce moyen simple existe il faut considrer le reste de la division par 26 autrement dit le modulo Il y a une petite ruse supplmentaire appliquer puisque 26 doit rester 26 et ne pas devenir 0 Variable Bla Cod Alpha en Caractre Variables i Pos Dcal en Entier Dbut Ecrire quotEntrez le dcalage appliquer quot Lire Dcal Ecrire quotEntrez la phrase coder quot Lire Bla Alpha quotABCDEFGHIJKLMNOPQRSTUVWXYZquot Cod quotquot Pour i 1 LenBla Let MidBla i 1 Pos TrouveAlpha Let NouvPos ModPos Dcal 26 Si NouvPos 0 Alors NouvPos 26 FinSi Cod Cod amp MidAlpha NouvPos 1 i Suivant Bla Cod Ecrire quotLa phrase code est quot Bla Fin Exercice 98 L cest assez direct Variable Bla Cod Alpha en Caractre Variables i Pos Dcal en Entier Dbut Ecrire quotEntrez lalphabet cl quot Lire Cl Ecrire quotEntrez la phrase coder quot Lire Bla Alpha quotABCDEFGHIJKLMNOPQRSTUVWXYZquot Cod quotquot Pour i 1 LenBla Let MidBla i 1 Pos TrouveAlpha Let Cod Cod amp MidCl Pos 1 i Suivant Bla Cod Ecrire quotLa phrase code est quot Bla Fin Exercice 99 Le codage de Vigenre nest pas seulement plus difficile briser il est galement un peu plus raide programmer La difficult essentielle est de comprendre quil faut deux boucles lune pour parcourir la phrase coder lautre pour parcourir
Algorithmes Exercices et corrigs 23 24 la cl Mais quand on y rflchit bien ces deux boucles ne doivent surtout pas tre imbriques Et en ralit quelle que soit la manire dont on lcrit elle nen forment quune seule Variables Alpha Bla Cod Cl Let en Caractre Variables i Pos PosCl Dcal en Entier Dbut Ecrire quotEntrez la cl quot Lire Cl Ecrire quotEntrez la phrase coder quot Lire Bla Alpha quotABCDEFGHIJKLMNOPQRSTUVWXYZquot Cod quotquot PosCl 0 Pour i 1 LenBla On gre la progression dans la cl Jai effectu cela quot la mainquot par une boucle mais un joli emploi de la fonction Modulo aurait permis une programmation en une seule ligne Poscl Poscl 1 Si PosCl gt LenCl Alors PosCl 1 FinSi On dtermine quelle est la lettre cl et sa position dans lalphabet LetCl MidCl PosCl 1 PosLetCl TrouveAlpha LetCl On dtermine la position de la lettre coder et le dcalage appliquer L encore une solution alternative aurait t demployer Mod cela nous aurait pargn le Si Let MidBla i 1 Pos TrouveAlpha Let NouvPos Pos PosLetCl Si NouvPos gt 26 Alors NouvPos NouvPos 26 FinSi Cod Cod amp MidAlpha NouvPos 1 i Suivant Bla Cod Ecrire quotLa phrase code est quot Bla Fin Exercice 910 On en revient des choses plus simples Variable Nb en Entier Ecrire quotEntrez votre nombre quot Lire Nb Si Nb2 EntNb2 Alors Ecrire quotCe nombre est pairquot Sinon Ecrire quotCe nombre est pairquot FinSi Fin Exercice 911 a Glup Alea 2 b Glup Alea 2 - 1 c Glup Alea 030 135 d Glup EntAlea 6 1 e Glup Alea 17 105 f Glup EntAlea6 EntAlea6 2
Algorithmes Exercices et corrigs 24 24 Les fonctions et procdures Exercice 111 Voil un dbut en douceur Fonction Suma b c d e Renvoyer a b c d e FinFonction Exercice 112 Fonction NbVoyellesMot en Caractre Variables i nb en Numrique Pour i 1 LenMot Si Trouvequotaeiouyquot MidMot i 1 ltgt 0 Alors nb nb 1 FinSi i suivant Renvoyer nb FinFonction Exercice 113 Fonction Trouvea b Variable i en Numrique Dbut i 1 TantQue i lt Lena - Lenb et b ltgt Mida i Lenb i i 1 FinTantQue Si b ltgt Mida i Lenb Alors Renvoyer 0 Sinon Renvoyer i FinFonction
تحميل

PDF

2145 مشاهدة.

Tarik Hcine

Tarik Hcine

Module Algorithme
أرسلت .



كلمات مفتاحية :
exercices corriges algorithmique
exercices corriges algorithmique wetud docs ...