-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathsolutions.tex
47 lines (43 loc) · 1.37 KB
/
solutions.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
\begin{sol}{3.4}
\cadre{
\begin{pseudo}
\Module{surfaceTriangle}{}{}
\Decl base, hauteur, surface~:~réels
\Read base
\Read hauteur
\Let surface \Gets ( base * hauteur ) / 2
\Write surface
\EndModule
\end{pseudo}
}
\end{sol}
\begin{sol}{7.24}
\cadre{
\begin{pseudo}
\LComment{Chiffrer un message en utilisant le chiffre de César}
\Module{chiffrerCésar}{msgClair\In : chaine, déplacement\In : entier}{chaine}
\Decl msgChiffré : chaine
\Decl carClair, carChiffré : caractères
\Decl i : entier
\Empty
\Let msgChiffré \Gets ""
\For{i \K{de} 1 \K{à} long(msgClair)}
\Let carClair \Gets car(msgClair, i)
\Let carChiffré \Gets avancer(carClair, déplacement)
\Let msgChiffré \Gets concat( msgChiffré, chaine(carChiffré) )
\EndFor
\Return msgChiffré
\EndModule
\Empty
\LComment{Calcule la lettre qui est "delta" position plus loin dans l’alphabet (circulairement)}
\Module{avancer}{lettre\In : caractère, delta\In : entier}{caractère}
\Return lettre( (numLettre(lettre) + delta - 1) MOD 26 + 1 )
\EndModule
\Empty
\LComment{Déchiffrer un message chiffré avec le chiffre de César}
\Module{déchiffrerCésar}{msgClair\In : chaine, déplacement\In : entier}{chaine}
\Return chiffrerCésar(msgClair, 26 - déplacement)
\EndModule
\end{pseudo}
}
\end{sol}