Correction TD01
DJOUADA Moussa Nadjib
25 mars 2016
Exercice 01 :
Algorihtme temps
type
T emps = enregistrement
h, m, s : entier ;
f in ;
var
proc
edure somme (E/T 1, T 2 : T EM P S; S/T : T EM P S) ;
var
r : entier ;
d
ebut
T.s (T 1.s + T 2.s) mod 60 ;
r (T 1.s + T 2.s) div 60 ;
T.m (r + T 1.m + T 2.m) mod 60 ;
r (r + T 1.m + T 2.m) div 60 ;
T.h r + T 1.h + T 2.h ;
fin
fonction transf orme (E/T : T EM P S) : entier ;
var
s : entier ;
d
ebut
s T.h 3600 + T.m 60 + T.s ;
transf orme s ;
fin
proc
edure decompose (E/s : entier; S/T : T EM P S) ;
var
r : entier ;
d
ebut
T.h s div 3600 ;
r s mod 3600 ;
T.m r div 60 ;
T.s r mod 60 ;
fin
1
proc
edure lireT emps (E S/T : T EM P S) ;
d
ebut
ecrire(Donner les heures SV P !) ;
lire(T.h) ;
r
ep
eter
ecrire(Donner les minutes SV P ! : entre 00 et 59) ;
lire(T.m) ;
jusqu`
a(T.m < 60 et T.m >= 0) ;
r
ep
eter
ecrire(Donner les secondes SV P ! : entre 00 et 59) ;
lire(T.s) ;
jusqu`
a(T.s < 60 et T.s >= 0) ;
fin
T,T1,T2 : TEMPS ;
s : entier ;
d
ebut
ecrire(Donner T 1 !) ;
lireT emps(T 1);
ecrire(Donner T 2 !) ;
lireT emps(T 2);
s transf orme(T 1) + transf orme(T 2) ;
decompose(s, T ) ;
ecrire(Somme de T 1 et T 2 : , T.h, : , T.m, : , T.s) ;
fin
Exercice 02 :
type
Comp = enregistrement
re, im : r
eel ;
f in ;
var
proc
edure somme (E/C1, C2 : Comp; S/C : Comp) ;
d
ebut
[Link] [Link] + [Link] ;
[Link] [Link] + [Link] ;
fin
proc
edure soustract (E/C1, C2 : Comp; S/C : Comp) ;
d
ebut
[Link] [Link] [Link] ;
[Link] [Link] [Link] ;
fin
proc
edure prod (E/C1, C2 : Comp; S/C : Comp) ;
d
ebut
[Link] [Link] [Link] [Link] [Link] ;
[Link] [Link] [Link] + [Link] [Link] ;
fin
proc
edure ConjC (E/C1 : Comp; S/C : Comp) ;
d
ebut
[Link] [Link] ;
[Link] [Link] ;
fin
fonction Egale (E/C1, C2 : Comp) : bool
een ;
var
b : bool
een ;
d
ebut
b f aux ;
si ([Link] = [Link]) et ([Link] = [Link]) alors
b vrai ;
fsi ;
Egale b ;
fin
Exercice 03 :
type
E = enregistrement
T : tableau[100] d0 enteirs ;
N : entier ;
f in ;
var
proc
edure recherche AB (E/M : chaine; S/En : E) ;
var
i, j : entier ;
d
ebut
j 1 ;
pour i 1 a
` longueur(M ) 1 faire
si (M [i] = a) et (M [i + 1] = b) alors
En.T [j] i ;
j j + 1 ;
fsi ;
fait ;
E.n j 1 ;
fin
proc
edure recherche exacte (E/S, P : chaine; S/En : E) ;
var
i, j, k, e, m, n : entier ;
d
ebut
e 1 ;
m longueur(P ) ;
n longueur(S) m + 1 ;
pour i 1 a
` n faire
k i ;
j 1 ;
tantque(P [j] = S[k] et j <= m) faire
k k + 1 ;
j j + 1 ;
fait ;
si (j > m) alors
En.T [e] i ;
e e + 1 ;
fsi ;
fait ;
E.n e 1 ;
fin