PARTIE 9
Exercice 9.1
Parmi ces affectations (considérées indépendamment les unes des
autres), lesquelles provoqueront des erreurs, et pourquoi ?
Variables A, B, C en Numérique
Variables D, E en Caractère
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 à l’utilisateur et qui
affiche à l’écran le nombre de
lettres de ce mot (c'est vraiment tout bête).
Exercice 9.3
Ecrivez un algorithme qui demande une phrase à l’utilisateur et
qui affiche à l’écran le nombre de mots de cette phrase. On suppose que les
mots ne sont séparés que par des espaces (et c'est déjà un petit peu moins
bête).
Exercice 9.4
Ecrivez un algorithme qui demande une phrase à l’utilisateur et
qui affiche à l’écran le nombre de voyelles contenues dans cette phrase.
On pourra écrire deux solutions. La première déploie une condition
composée bien fastidieuse. La deuxième, en utilisant la fonction Trouve, allège
considérablement l'algorithme.
Exercice 9.5
Ecrivez un algorithme qui demande une phrase à l’utilisateur.
Celui-ci entrera ensuite le rang d’un caractère à supprimer, et la nouvelle
phrase doit être affichée (on doit réellement supprimer le caractère dans la
variable qui stocke la phrase, et pas uniquement à l’écran).
Exercice 9.6 - Cryptographie 1
Un des plus anciens systèmes de cryptographie (aisément
déchiffrable) consiste à décaler les lettres d’un message pour le rendre
illisible. Ainsi, les A deviennent des B, les B des C, etc. Ecrivez un algorithme
qui demande une phrase à l’utilisateur et qui la code selon ce principe. Comme
dans le cas précédent, le codage doit s’effectuer au niveau de la variable
stockant la phrase, et pas seulement à l’écran.
Exercice 9.7 - Cryptographie 2 - le chiffre de César
Une amélioration (relative) du principe précédent consiste à
opérer avec un décalage non de 1,
mais d’un nombre quelconque de lettres. Ainsi, par exemple, si
l’on choisit un décalage de 12, les A deviennent des M, les B des N, etc.
Réalisez un algorithme sur le même principe que le précédent, mais
qui demande en plus quel est le décalage à utiliser. Votre sens proverbial de
l'élégance vous interdira bien sûr une série de vingt-six
"Si...Alors"
Exercice 9.8 - Cryptographie 3
Une technique ultérieure de cryptographie consista à opérer non
avec un décalage systématique,
mais par une substitution aléatoire. Pour cela, on utilise un
alphabet-clé, dans lequel les lettres se succèdent de manière désordonnée, par
exemple :
HYLUJPVREAKBNDOFSQZCWMGITX
C’est 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 (l’alphabet-clé sera
saisi par l’utilisateur, et on
suppose qu'il effectue une saisie correcte).
Exercice 9.9 - Cryptographie 4 - le chiffre de Vigenère
Un système de cryptographie beaucoup plus difficile à briser que
les précédents fut inventé au XVIe siècle par le français Vigenère. Il
consistait en une combinaison de différents chiffres de César.
On peut en effet écrire 25 alphabets décalés par rapport à
l’alphabet normal :
• l’alphabet qui commence par B et finit par …YZA
• l’alphabet qui commence par C et finit par …ZAB
• etc.
Le codage va s’effectuer sur le principe du chiffre de César : on
remplace la lettre d’origine par la lettre occupant la même place dans
l’alphabet décalé.
Mais à la différence du chiffre de César, un même message va
utiliser non un, mais plusieurs
alphabets décalés. Pour savoir quels alphabets doivent être
utilisés, et dans quel ordre, on utilise une clé.
Si cette clé est "VIGENERE" et le message "Il faut
coder cette phrase", on procèdera comme suit :
La première lettre du message, I, est la 9e lettre de l’alphabet
normal. Elle doit être codée en
utilisant l’alphabet commençant par la première lettre de la clé,
V. Dans cet alphabet, la 9e lettre est le D. I devient donc D.
La deuxième lettre du message, L, est la 12e lettre de l’alphabet
normal. Elle doit être codée en
utilisant l’alphabet commençant par la deuxième lettre de la clé,
I. Dans cet alphabet, la 12e lettre est le S. L devient donc S, etc.
Quand on arrive à la dernière lettre de la clé, on recommence à la
première.
Ecrire l’algorithme qui effectue un cryptage de Vigenère, en
demandant bien sûr au départ la clé à l’utilisateur.
Exercice 9.10
Ecrivez un algorithme qui demande un nombre entier à
l’utilisateur. L’ordinateur affiche ensuite le message "Ce nombre est
pair" ou "Ce nombre est impair" selon le cas.
Exercice 9.11
Ecrivez les algorithmes qui génèrent un nombre Glup aléatoire 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 dés à
six faces
0 commentaires:
Enregistrer un commentaire