Vous êtes sur la page 1sur 21

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercices dAlgorithmique
Exercice 1.1 Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ?
Variables A, B en Entier Dbut A1 BA+3 A3 Fin

Exercice 1.2 Quelles seront les valeurs des variables A, B et C aprs excution des instructions suivantes ?
Variables A, B, C en Entier Dbut A5 B3 CA+B A2 CBA Fin

Exercice 1.3 Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ?
Variables A, B en Entier Dbut A5 BA+4 AA+1 BA4 Fin

Exercice 1.4 Quelles seront les valeurs des variables A, B et C aprs excution des instructions suivantes ?
Variables A, B, C en Entier Dbut A3 B 10 CA+B BA+B AC Fin

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercice 1.5 Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ?
Variables A, B en Entier Dbut A5 B2 AB BA 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 1.6 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 1.7 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 1.8 Que produit lalgorithme suivant ?
Variables A, B, C en Caractres Dbut A "423" B "12" CA+B Fin

Exercice 1.9 Que produit lalgorithme suivant ?


Variables A, B en Caractres Dbut A "423" B "12" CA&B Fin

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercice 2.1 Quel rsultat produit le programme suivant ?


Variables val, double numriques Dbut Val 231 Double Val * 2 Ecrire Val Ecrire Double Fin

Exercice 2.2 Ecrire un programme qui demande un nombre lutilisateur, puis qui calcule et affiche le carr de ce nombre. Exercice 2.3 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 2.4 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.

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercice 3.1 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 3.2 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 3.3 Ecrire un algorithme qui demande trois noms lutilisateur et linforme ensuite sils sont rangs ou non dans lordre alphabtique. Exercice 3.4 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). Exercice 3.5 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 3.6 Ecrire un algorithme qui demande lge dun enfant lutilisateur. Ensuite, il linforme de sa catgorie :

"Poussin" de 6 7 ans "Pupille" de 8 9 ans "Minime" de 10 11 ans "Cadet" aprs 12 ans


Peut-on concevoir plusieurs algorithmes quivalents menant ce rsultat ?

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercice 4.1 Formulez un algorithme quivalent lalgorithme suivant :


Si Tutu > Toto + 4 OU Tata = "OK" Alors Tutu Tutu + 1 Sinon Tutu Tutu 1 Finsi

Exercice 4.2 Cet algorithme est destin prdire l'avenir, et il doit tre infaillible ! Il lira au clavier lheure et les minutes, et il affichera lheure quil sera une minute plus tard. Par exemple, si l'utilisateur tape 21 puis 32, l'algorithme doit rpondre : "Dans une minute, il sera 21 heure(s) 33". NB : on suppose que l'utilisateur entre une heure valide. Pas besoin donc de la vrifier. Exercice 4.3 De mme que le prcdent, cet algorithme doit demander une heure et en afficher une autre. Mais cette fois, il doit grer galement les secondes, et afficher l'heure qu'il sera une seconde plus tard. Par exemple, si l'utilisateur tape 21, puis 32, puis 8, l'algorithme doit rpondre : "Dans une seconde, il sera 21 heure(s), 32 minute(s) et 9 seconde(s)". NB : l encore, on suppose que l'utilisateur entre une date valide. Exercice 4.4 Un magasin de reprographie facture 0,10 E les dix premires photocopies, 0,09 E les vingt suivantes et 0,08 E au-del. Ecrivez un algorithme qui demande lutilisateur le nombre de photocopies effectues et qui affiche la facture correspondante. Exercice 4.5 Les habitants de Zorglub paient limpt selon les rgles suivantes :

les hommes de plus de 20 ans paient limpt les femmes paient limpt si elles ont entre 18 et 35 ans les autres ne paient pas dimpt
Le programme demandera donc lge et le sexe du Zorglubien, et se prononcera donc ensuite sur le fait que lhabitant est imposable. Exercice 4.6 Les lections lgislatives, en Guignolerie Septentrionale, obissent la rgle suivante :

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

lorsque l'un des candidats obtient plus de 50% des suffrages, il est lu ds le
premier tour.

en cas de deuxime tour, peuvent participer uniquement les candidats ayant


obtenu au moins 12,5% des voix au premier tour. Vous devez crire un algorithme qui permette la saisie des scores de quatre candidats au premier tour. Cet algorithme traitera ensuite le candidat numro 1 (et uniquement lui) : il dira s'il est lu, battu, s'il se trouve en ballottage favorable (il participe au second tour en tant arriv en tte l'issue du premier tour) ou dfavorable (il participe au second tour sans avoir t en tte au premier tour). Exercice 4.7 Une compagnie d'assurance automobile propose ses clients quatre familles de tarifs identifiables par une couleur, du moins au plus onreux : tarifs bleu, vert, orange et rouge. Le tarif dpend de la situation du conducteur :

un conducteur de moins de 25 ans et titulaire du permis depuis moins de deux


ans, se voit attribuer le tarif rouge, si toutefois il n'a jamais t responsable d'accident. Sinon, la compagnie refuse de l'assurer.

un conducteur de moins de 25 ans et titulaire du permis depuis plus de deux ans,


ou de plus de 25 ans mais titulaire du permis depuis moins de deux ans a le droit au tarif orange s'il n'a jamais provoqu d'accident, au tarif rouge pour un accident, sinon il est refus.

un conducteur de plus de 25 ans titulaire du permis depuis plus de deux ans


bnficie du tarif vert s'il n'est l'origine d'aucun accident et du tarif orange pour un accident, du tarif rouge pour deux accidents, et refus au-del

De plus, pour encourager la fidlit des clients accepts, la compagnie propose un


contrat de la couleur immdiatement la plus avantageuse s'il est entr dans la maison depuis plus d'un an. Ecrire l'algorithme permettant de saisir les donnes ncessaires (sans contrle de saisie) et de traiter ce problme. Avant de se lancer corps perdu dans cet exercice, on pourra rflchir un peu et s'apercevoir qu'ils est plus simple qu'il en a l'air (cela s'appelle faire une analyse !) Exercice 4.8 Ecrivez un algorithme qui a prs avoir demand un numro de jour, de mois et d'anne l'utilisateur, renvoie s'il s'agit ou non d'une date valide. Cet exercice est certes dun manque doriginalit affligeant, mais aprs tout, en algorithmique comme ailleurs, il faut connatre ses classiques ! Et quand on a fait cela une fois dans sa vie, on apprcie pleinement lexistence dun type numrique date dans certains langages). Il n'est sans doute pas inutile de rappeler rapidement que le mois de fvrier compte 28 jours, sauf si lanne est bissextile, auquel cas il en compte 29. Lanne est bissextile si elle est divisible par quatre. Toutefois, les annes divisibles par 100 ne sont pas bissextiles, mais les annes divisibles par 400 le sont. Ouf !

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Un dernier petit dtail : vous ne savez pas, pour linstant, exprimer correctement en pseudo-code lide quun nombre A est divisible par un nombre B. Aussi, vous vous contenterez dcrire en bons tlgraphistes que A divisible par B se dit A dp B .

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercice 5.1 Ecrire un algorithme qui demande lutilisateur un nombre compris entre 1 et 3 jusqu ce que la rponse convienne. Exercice 5.2 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 5.3 Ecrire un algorithme qui demande un nombre de dpart, et qui ensuite affiche les dix nombres suivants. Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les nombres de 18 27.

Exercice 5.4 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 l'utilisateur entre le nombre 7) :
Table de 7 : 7x1=7 7 x 2 = 14 7 x 3 = 21 7 x 10 = 70

Exercice 5.5 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 5.6 Ecrire un algorithme qui demande un nombre de dpart, et qui calcule sa factorielle. NB : la factorielle de 8, note 8 !, vaut 1x2x3x4x5x6x7x8

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercice 5.7 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

Modifiez ensuite lalgorithme pour que le programme affiche de surcrot en quelle position avait t saisie ce nombre :
Ctait le nombre numro 2

Exercice 5.8 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 5.9 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 "10 Euros", "5 Euros" et "1 Euro" autant de fois quil y a de coupures de chaque sorte rendre.

Exercice 5.10 Ecrire 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 :
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.

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercice 6.1 Ecrire un algorithme qui dclare et remplisse un tableau de 7 valeurs numriques en les mettant toutes zro.

Exercice 6.2 Ecrire un algorithme qui dclare et remplisse un tableau contenant les six voyelles de lalphabet latin. Exercice 6.3 Ecrire un algorithme qui dclare un tableau de 9 notes, dont on fait ensuite saisir les valeurs par lutilisateur. Exercice 6.4 Que produit lalgorithme suivant ?
Tableau Nb(6) en Entier Variable i en Entier Dbut Pour i 0 5 Nb(i) i * i i suivant Pour i 0 5 Ecrire Nb(i) i suivant Fin

Peut-on simplifier cet algorithme avec le mme rsultat ? Exercice 6.5 Que produit lalgorithme suivant ?
Tableau N(7) en Entier Variables i, k en Entier Dbut N(0) 1 Pour k 1 6 N(k) N(k-1) + 2 k Suivant Pour i 0 6 Ecrire N(i) i suivant Fin

Peut-on simplifier cet algorithme avec le mme rsultat ?

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercice 6.6 Que produit lalgorithme suivant ?


Tableau Suite(8) en Entier Variable i en Entier Dbut Suite(0) 1 Suite(1) 1 Pour i 2 7 Suite(i) Suite(i-1) + Suite(i-2) i suivant Pour i 0 7 Ecrire Suite(i) i suivant Fin

Exercice 6.7 Ecrivez la fin de lalgorithme 6.3 afin que le calcul de la moyenne des notes soit effectu et affich lcran. Exercice 6.8 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 6.9 Ecrivez un algorithme calculant la somme des valeurs dun tableau (on suppose que le tableau a t pralablement saisi). Exercice 6.10 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 :

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Tableau constituer : 11 14 12 11 2 8 11 10

Exercice 6.11 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 l'on 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 6.12 Ecrivez un algorithme qui permette la saisie dun nombre quelconque de valeurs, sur le principe de lex 6.8. Toutes les valeurs doivent tre ensuite augmentes de 1, et le nouveau tableau sera affich lcran. Exercice 6.13 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. Exercice 6.14 Toujours et encore sur le mme principe, crivez un algorithme permettant, lutilisateur de saisir les notes d'une classe. Le programme, une fois la saisie termine, renvoie le nombre de ces notes suprieures la moyenne de la classe.

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercice 7.1 Ecrivez un algorithme qui permette de saisir un nombre quelconque de valeurs, et qui les range au fur et mesure dans un tableau. Le programme, une fois la saisie termine, doit dire si les lments du tableau sont tous conscutifs ou non. Par exemple, si le tableau est : 12 13 14 15 16 17 18

ses lments sont tous conscutifs. En revanche, si le tableau est : 9 10 11 15 16 17 18

ses lments ne sont pas tous conscutifs. Exercice 7.2 Ecrivez un algorithme qui trie un tableau dans lordre dcroissant. Vous crirez bien entendu deux versions de cet algorithme, l'une employant le tri par insertion, l'autre le tri bulles. Exercice 7.3 Ecrivez un algorithme qui inverse lordre des lments dun tableau dont on suppose qu'il a t pralablement saisi ( les premiers seront les derniers ) Exercice 7.4 Ecrivez un algorithme qui permette lutilisateur de supprimer une valeur dun tableau pralablement saisi. Lutilisateur donnera lindice de la valeur quil souhaite supprimer. Attention, il ne sagit pas de remettre une valeur zro, mais bel et bien de la supprimer du tableau lui-mme ! Si le tableau de dpart tait : 12 8 4 45 64 9 2

Et que lutilisateur souhaite supprimer la valeur dindice 4, le nouveau tableau sera : 12 8 4 45 9 2

Exercice 7.5 Ecrivez l'algorithme qui recherche un mot saisi au clavier dans un dictionnaire. Le dictionnaire est suppos tre cod dans un tableau pralablement rempli et tri.

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercice 8.1 Ecrivez un algorithme remplissant un tableau de 6 sur 13, avec des zros. Exercice 8.2 Quel rsultat produira cet algorithme ?
Tableau X(2, 3) en Entier Variables i, j, val en Entier Dbut Val 1 Pour i 0 1 Pour j 0 2 X(i, j) Val Val Val + 1 j Suivant i Suivant Pour i 0 1 Pour j 0 2 Ecrire X(i, j) j Suivant i Suivant Fin

Exercice 8.3 Quel rsultat produira cet algorithme ?


Tableau X(2, 3) en Entier Variables i, j, val en Entier Dbut Val 1 Pour i 0 1 Pour j 0 2 X(i, j) Val Val Val + 1 j Suivant i Suivant Pour j 0 2 Pour i 0 1 Ecrire X(i, j) i Suivant j Suivant Fin

Exercice 8.4 Quel rsultat produira cet algorithme ?


Tableau T(4, 2) en Entier Variables k, m, en Entier

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Dbut Pour k 0 3 Pour m 0 1 T(k, m) k + m m Suivant k Suivant Pour k 0 3 Pour m 0 1 Ecrire T(k, m) m Suivant k Suivant Fin

Exercice 8.5 Mmes questions, en remplaant la ligne :


T(k, m) k + m

par
T(k, m) 2 * k + (m + 1) puis par : T(k, m) (k + 1) + 4 * m

Exercice 8.6 Soit un tableau T deux dimensions (13, 9) pralablement rempli de valeurs numriques. Ecrire un algorithme qui recherche la plus grande valeur au sein de ce tableau. Exercice 8.7 Ecrire un algorithme de jeu de dames trs simplifi. Lordinateur demande lutilisateur dans quelle case se trouve son pion (quelle ligne, quelle colonne). On met en place un contrle de saisie afin de vrifier la validit des valeurs entres. Ensuite, on demande lutilisateur quel mouvement il veut effectuer : 0 (en haut gauche), 1 (en haut droite), 2 (en bas gauche), 3 (en bas droite). Si le mouvement est impossible (i.e. on sort du damier ), on le signale lutilisateur et on sarrte l . Sinon, on dplace le pion et on affiche le damier rsultant, en affichant un O pour une case vide et un X pour la case o se trouve le pion.

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercice 9.1 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 Sin(B) A Sin(A + B * C) B Sin(A) Sin(D) D Sin(A / B) C Cos(Sin(A)

Exercice 9.2 Ecrivez un algorithme qui demande un mot lutilisateur et qui affiche lcran le nombre de lettres de ce mot (c'est vraiment tout bte). Exercice 9.3 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 c'est dj un petit peu moins bte). Exercice 9.4 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 l'algorithme. Exercice 9.5 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 9.6 - 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.

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercice 9.7 - 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 l'lgance vous interdira bien sr une srie de vingt-six "Si...Alors" Exercice 9.8 - 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 qu'il effectue une saisie correcte). Exercice 9.9 - 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 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 "VIGENERE" et le message "Il faut coder cette phrase", 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.

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Ecrire lalgorithme qui effectue un cryptage de Vigenre, en demandant bien sr au dpart la cl lutilisateur.

Exercice 9.10 Ecrivez un algorithme qui demande un nombre entier lutilisateur. Lordinateur affiche ensuite le message "Ce nombre est pair" ou "Ce nombre est impair" selon le cas. Exercice 9.11 Ecrivez les algorithmes qui gnrent un nombre Glup alatoire tel que

0 =< Glup < 2 1 =< Glup < 1 1,35 =< Glup < 1,65 Glup mule un d six faces 10,5 =< Glup < +6,5 Glup mule la somme du jet simultan de deux ds six faces

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercice 10.1 Quel rsultat cet algorithme produit-il ?


Variable Truc en Caractre Dbut Ouvrir "Exemple.txt" sur 5 en Lecture Tantque Non EOF(5) LireFichier 5, Truc Ecrire Truc FinTantQue Fermer 5 Fin

Exercice 10.2 Ecrivez lalgorithme qui produit un rsultat similaire au prcdent, mais le fichier texte "Exemple.txt" est cette fois de type dlimit (caractre de dlimitation : /). On produira l'cran un affichage o pour des raisons esthtiques, ce caractre sera remplac avec des espaces. Exercice 10.3 On travaille avec le fichier du carnet dadresses en champs de largeur fixe. Ecrivez un algorithme qui permet lutilisateur de saisir au clavier un nouvel individu qui sera ajout ce carnet dadresses. Exercice 10.4 Mme question, mais cette fois le carnet est suppos tre tri par ordre alphabtique. Lindividu doit donc tre insr au bon endroit dans le fichier. Exercice 10.5 Ecrivez un algorithme qui permette de modifier un renseignement (pour simplifier, disons uniquement le nom de famille) dun membre du carnet dadresses. Il faut donc demander lutilisateur quel est le nom modifier, puis quel est le nouveau nom, et mettre jour le fichier. Si le nom recherch n'existe pas, le programme devra le signaler. Exercice 10.6 Ecrivez un algorithme qui trie les individus du carnet dadresses par ordre alphabtique. Exercice 10.7 Soient Toto.txt et Tata.txt deux fichiers dont les enregistrements ont la mme structure. Ecrire un algorithme qui recopie tout le fichier Toto dans le fichier Tutu, puis sa suite, tout le fichier Tata (concatnation de fichiers).

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercice 10.8 Ecrire un algorithme qui supprime dans notre carnet d'adresses tous les individus dont le mail est invalide (pour employer un critre simple, on considrera que sont invalides les mails ne comportant aucune arobase, ou plus d'une arobase). Exercice 10.9 Les enregistrements dun fichier contiennent les deux champs Nom (chane de caractres) et Montant (Entier). Chaque enregistrement correspond une vente conclue par un commercial dune socit. On veut mmoriser dans un tableau, puis afficher l'cran, le total de ventes par vendeur. Pour simplifier, on suppose que le fichier de dpart est dj tri alphabtiquement par vendeur.

UP7CD

Universit Sidi Mohamed Ben Abdellah ENSA Fs

Anne Universitaire 2005-2006

Exercice 11.1 crivez une fonction qui renvoie la somme de cinq nombres fournis en argument. Exercice 11.2 crivez une fonction qui renvoie le nombre de voyelles contenues dans une chane de caractres passe en argument. Au passage, notez qu'une fonction a tout fait le droit d'appeler une autre fonction. Exercice 11.3 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).

UP7CD

Vous aimerez peut-être aussi