10-10 J.M. Adam
Université Pierre Mendès France
U.F.R. Sciences de l’Homme et de la Société
Master IC2A DCISS
Algorithmique T.D. n° 5
Exercice 1 : La figure mystérieuse
Vous trouvez l’algorithme ci-dessous, composé d’une action nommée et d’un algorithme principal,
écrit par un inconnu qui n’a donné aucune explication.
a) Retrouvez la spécification de l’action Tracer en Décrivant son effet, son état initial et son état
final.
b) Trouvez ce que dessine l’algorithme principal en décrivant les états intermédiaires, et en
dessinant la figure correspondante.
Tracer : action (Consulté X : réel >0, Modifié M : machine-tracés)
{ Effet : ? à compléter }
{ Etat initial : ? à compléter }
{ Etat final : ? à compléter }
lexique de Tracer
algorithme de Tracer
M.Baisser
répéter 3 fois
M.Avancer(X)
M.Gauche(120)
frépéter
M.Avancer(X)
falgorithme Tracer
Lexique principal
MT : machine-tracés
S : point { compléter ….. }
L : réel > 0 { compléter ….. }
Action utilisée :
Tracer : action (Consulté X : réel >0, Modifié M : machine-tracés)
{ Effet : ? à compléter }
{ Etat initial : ? à compléter }
{ Etat final : ? à compléter }
Algorithme principal
Lire (S,L)
MT.Vider
MT.Positionner(S)
Tracer(L,MT)
MT.Gauche(90)
MT.Avancer(L)
MT.Gauche(90)
répéter 2 fois
Tracer(L,MT)
MT.Gauche(180)
frepeter
répéter 2 fois
MT.Avancer(L)
MT.Gauche(90)
frépéter
falgorithme
10-10 J.M. Adam
Exercice 2 :
Dans les algorithmes ci-dessous, les assertions et les commentaires ainsi que les spécifications des
actions manquent. Pour chacun des 4 algorithmes, dire ce qu'il fait, ce qu'il affiche à l'écran, et
donner éventuellement les messages d’erreur qui pourraient s’afficher.
lexique principal
ec : écran
X : entier
action utilisée : change1 (consulté X : entier)
modifié e :écran)
algorithme principal
ec.écrire("début")
X 0
ec.écrire("X = ", X)
change1(X,ec)
ec.écrire("X = ", X, "fin")
fin algorithme principal
change1 : action (consulté X : entier
modifié e : écran)
lexique de change1
algorithme de change1
e.écrire("début change1", "X= ", X)
X X+1
e.écrire("X = ", X, "fin change1")
fin algorithme de change1
lexique principal
ec : écran
X : entier
action utilisée : change2(modifié e :écran)
algorithme principal
ec.écrire("début")
X 0
ec.écrire("X = ", X)
change2 (ec)
ec.écrire("X = ", X, "fin")
fin algorithme principal
change2 : action(modifié e :écran)
lexique de change2
X : entier
algorithme de change2
e.écrire("début change2", "X= ", X)
X 1
e.écrire("X = ", X, "fin change2")
fin algorithme de change2
lexique principal
ec : écran
X : entier
action utilisée : change3(modifié Y : entier)
algorithme principal
écrire("début")
X 2
ec.écrire("X = ", X)
change3(X,ec)
ec.écrire("X = ", X, "fin")
fin algorithme principal
change3 : action (modifié Y : entier)
modifié e : écran)
lexique de change3
X : entier
algorithme de change3
e.écrire("début change3","X= ",X,"Y = ",Y)
X 1 ; Y Y+1
e.écrire("X=", X, "Y=", Y, "fin change3")
fin algorithme de change3
lexique principal
ec : écran
X, Y, Z : entiers
action utilisée :
change4 (modifiés e : écran, X : entier,
élaboré Y : entier)
algorithme principal
ec.écrire("début")
X 2 ; Y 4 ; Z 6
ec.écrire("X =",X,"Y=",Y, "Z=",Z)
change4(ec,Y,X)
ec.écrire("X =",X,"Y=",Y, "Z=",Z, " fin")
fin algorithme principal
change4 : action (modifiés e : écran, X : entier,
élaboré Y : entier)
lexique de change4
Y : entier ; Z : entier
algorithme de change4
e.écrire("début change4")
e.écrire("X =",X,"Y=",Y,"Z=",Z)
Z X+3 ;
Y Z+2
e.écrire("X =",X,"Y=",Y,"Z=",Z)
e.écrire("fin change4")
fin algorithme de change4
1 / 2 100%