Anda di halaman 1dari 2

Algorithmes : Exercices et corrigsA b d a l l a h O B A Y E 2 2 / 2 4 Tsdi GC2 ISTA AgadirPour i 1 Len(Bla)Let Mid(Bla, i, 1)Si Let <> "Z" AlorsPos Trouve(Alpha,

a, Let)Cod Cod & Mid(Alpha, Pos + 1, 1)SinonCod Cod & "A"FinSii SuivantBla CodEcrire "La phrase code est : ", BlaFin Exercice9.7 Cet algorithme est une gnralisation du prcdent. Mais l, comme on ne connat pas d'avance le dcalage appliquer, on nesait pas a priori combien de "cas particuliers", 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 l'alphabet,que si on obtient 28, il faut en ralit prendre la numro 2, etc. Ce moyen simple existe : il faut considrer le reste de ladivision 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 CaractreVariables i, Pos, Dcal en EntierDbutEcrire "Entrez le dcalage appliquer : "Lire DcalEcrire "Entrez la phrase coder : "Lire BlaAlpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"Cod ""Pour i 1 Len(Bla)Let Mid(Bla, i, 1)Pos Trouve(Alpha, Let)NouvPos Mod(Pos + Dcal, 26)Si NouvPos = 0 AlorsNouvPos 26FinSiCod Cod & Mid(Alpha, NouvPos, 1)i SuivantBla CodEcrire "La phrase code est : ", BlaFin Exercice9.8 L, c'est assez direct.Variable Bla, Cod, Alpha en CaractreVariables i, Pos, Dcal en EntierDbutEcrire "Entrez lalphabet cl : "Lire ClEcrire "Entrez la phrase coder : "Lire BlaAlpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"Cod ""Pour i 1 Len(Bla)Let Mid(Bla, i, 1)Pos Trouve(Alpha, Let)Cod Cod & Mid(Cl, Pos, 1)i SuivantBla CodEcrire "La phrase code est : ", BlaFin Exercice9.9 Le codage de Vigenre nest pas seulement plus difficile briser; il est galement un peu plus raide programmer. Ladifficult essentielle est de comprendre quil faut deux boucles: lune pour parcourir la phrase coder, lautre pour parcourir

Algorithmes : Exercices et corrigsA b d a l l a h O B A Y E 2 3 / 2 4 Tsdi GC2 ISTA Agadirla cl. Mais quand on y rflchit bien, ces deux boucles ne doivent surtout pas tre

imbriques. Et en ralit, quelle que soit lamanire dont on l'crit, elle nen forment quune seule.Variables Alpha, Bla, Cod, Cl, Let en CaractreVariables i, Pos, PosCl, Dcal en EntierDbutEcrire "Entrez la cl : "Lire ClEcrire "Entrez la phrase coder : "Lire BlaAlpha "ABCDEFGHIJKLMNOPQRSTUVWXYZ"Cod ""PosCl 0Pour i 1 Len(Bla)On gre la progression dans la cl. Jai effectu cela " la main" par une boucle, mais un joli emploi de la fonction Moduloaurait permis une programmation en une seule ligne!Poscl Poscl + 1Si PosCl > Len(Cl) AlorsPosCl 1FinSiOn dtermine quelle est la lettre cl et sa position dans lalphabetLetCl Mid(Cl, PosCl, 1)PosLetCl Trouve(Alpha, LetCl)On dtermine la position de la lettre coder et le dcalage appliquer. L encore, une solution alternative aurait tdemployer Mod : cela nous aurait pargn le SiLet Mid(Bla, i, 1)Pos Trouve(Alpha, Let)NouvPos Pos + PosLetClSi NouvPos > 26 AlorsNouvPos NouvPos 26FinSiCod Cod & Mid(Alpha, NouvPos, 1)i SuivantBla CodEcrire "La phrase code est : ", BlaFin E x e r c i c e 9 . 1 0 On en revient des choses plus simples...Variable Nb en EntierEcrire "Entrez votre nombre : "Lire NbSi Nb/2 = Ent(Nb/2) AlorsEcrire "Ce nombre est pair"SinonEcrire "Ce nombre est pair"FinSiFin E x e r c i c e 9 . 1 1 a ) G l u p A l e a ( ) * 2 b) Glup Alea() * 2 1c) Glup Alea() * 0,30 + 1,35d) Glup Ent(Alea() * 6) + 1e) Glup Alea() * 17 10,5f) Glup Ent(Alea()*6) + Ent(Alea()*6) + 2

Algorithmes : Exercices et corrigsA l l O B E /

b a A 2

d h Y 4

Anda mungkin juga menyukai