Commissariat Régional de l’Éducation de Mahdia - Lycée Souassi
Section : Sciences de l’Informatique
CORRECTION DE LA Matière : Algorithmique et Programmation
SÉRIE D'EXERCICES N°2 Professeur : Abdelkader BARRAJ
Exercice N°1
Ab
de
lk
ad
er
Ba
rr
aj
Exercice N°2 :
Procédure Affiche_PPCM (@M : Mat, N : entier)
Début
Pour L de 1 à N - 1 faire
Ab
Pour C de 0 à (N - L - 1) faire
M[L, C] <--- (M[L - 1, C] * M[L - 1, C + 1]) / PGCD(M[L - 1, C], M[L - 1, C + 1])
Fin Pour
Fin Pour
Écrire ("PPCM =", M[N, 0])
Fin
de
lk
Fonction PGCD (a, b : entier) : entier
Début
ad
Tant que (a # b) faire
Si a > b alors
a <-- a - b
Sinon
b <-- b - a
er
Fin Si
Fin Tant Que
Retourner a
Fin
Exercice N°3 :
Ba
rr
aj
aj
rr
Ba
er
ad
lk
de
Ab
aj
rr
Ba
er
ad
lk
de
Ab
Exercice N°4 :
Ab
de
lk
Exercice N°5 :
ad
Procédure L_C_SYM(m : mat , n :entier,@f :texte)
Début
Phrase_ligne ‘’ ’’
Phrase_col ‘’ ‘’
Nb_L 0
er
Nb_col 0
Pour i de 0 à n-1 faire
mot_col ‘’ ‘’
mot_ligne ‘’ ‘’
Pour j de 0 à n-1 faire
mot_ligne mot_ligne + m[i,j]
mot_col mot_col + m[j,i]
Fin Pour
Ba
Si palind(mot_ligne) alors
Phrase_ligne phrase_ligne + mot_ligne + ‘’*’’
nb_L nb_L + 1
Fin Si
Si palind(mot_col) alors
rr
Phrase_col phrase_col + mot_col + ‘’ * ‘’
nb_col nb_col + 1
Fin Si
Fin pour
Ouvrir(f,’’symetrie.txt’’,’’w’’)
aj
Ecrire_nl (f,sous_chaine(phrase_ligne,0,long(phrase_ligne)-1))
Ecrire_nl(f,convch(nb_l))
Ecrire_nl(f,sous_chaine(phrase_col,0,long(phrase_col)-1))
Ecrire_nl(f,convch(nb_col))
Fin
Fonction palind(ch :chaine) : booléene
Début
test vrai
i0
tantque (test = vrai ) et (i <= long(ch) div 2 ) faire
Ab
si ( ch[i] ≠ ch[long(ch) – i – 1]) alors
test faux
sinon
i i+1
fin si
Fin
fin tantque
Retourner test
Exercice N°6 :
de
Algorithme Exercice_6
Debut
lk
Remplir_Mat (M, L, C)
Remplir_tab (M,L, C,T,NB)
Remplir_fiche (T,F,NB)
ad
Fermer (F)
Fin
---------------------------------------------------------------------------------------------------------------
T.D.N.T T. D. O. G
er
Tуре Objet Type/Nature
Enreg = Enregistrement M Mat
NL,ICD,ICF:entier T Tab
Fin Enreg NB, L, C Entier
Tab= tableau de 288 enreg F Texte
Mat = tableau de 24*24 entiers Remplir_Mat,Remplir_fiche Procédures
Ba
Remplir_tab
---------------------------------------------------------------------------------------------------------------
Procédure Remplir_Mat (@ M : Mat , @ L :entier,@C : entier)
Début
rr
Répéter
Lire (L)
Jusqu’à 3<= L<=24
Répéter
Lire (C)
aj
Jusqu’à 3<= C<=24
Pour i de 0 à L-1 faire
Pour j de 0 à C-1 faire
Répéter
Lire (M [i, j])
Jusqu’à (M [i, j] ≠ 0)
Fin pour
Fin pour
Fin
Procédure Remplir_tab (M : Mat, ; L, C : entier ; @ T : Tab ; @ NB : entier)
Début
NB ← 0
Pour i de 0 à L-1 faire
Pour j de 0 à (C - 2) faire
Ab
Si (verif_seq (M [i, j]) ≠ -1) alors T.D.O.L
NB ← NB + 1
T[NB].NL ← i Objet Type/Nature
T[NB].ICD ← j
i, j Entier
T[NB].ICF ← verif_seq(M[i, j])
Fin
Fin pour
Fin Fi
Fin pour
de verif_seq Fonction
lk
ad
er
Ba
rr
aj
Exercice N°7 :
Algorithme du programme_principal
Début
Écrire (Convertir (G, F))
Ab
Fermer(G)
Fermer(F)
Fin
Tableau de déclaration des nouveaux types
de Type
CodeBraille=Enregistrement
L : Caractère
Code : Chaine
lk Fin CodeBraille
Carte = Fichier de CodeBraille
Le tableau de déclaration des objets globaux
ad
Objet Type/Nature Rôle
Convertir Fonction Retourne l'équivalent alphabétique du texte écrit en
braille.
G Texte Un fichier texte contenant le texte à convertir
er
F Carte Un fichier binaire contenant les lettres majuscules et
leurs équivalents en brailles
Fonction Convertir (@ G :Texte ; @ F : Carte) : Chaine
Début
Ouvrir(G,’’c:/braille.txt’’,’’r’’)
Ch←""
Tant que Non(Fin_Fichier(G)) Faire
Ba
Lire_ligne(G,Ligne)
Ch←Ch+DetMot(Ligne, F)+" "
Fin Tant que
Retourner Sous_chaine(Ch,0,Long(Ch)-1)
Fin
rr
Le tableau de déclaration des objets locaux
Objet Type/Nature Rôle
Ch Chaine La chaine alphabétique équivalente à la conversion du texte en Braille
Ligne Chaine Une variable servant à sauvegarder les lignes du texte en braille
aj
DetMot Fonction Servant à déterminer le mot équivalent à une ligne écrite en Braille
Fonction DetMot (Ligne : Chaine ; @ F : Carte) : Chaine
Début
d←0, M←""
Tant que d<Long(Ligne)-1 Faire
Ch←Sous_chaîne(Ligne,d,d+6)
M ← M+ RechercheLettre(Ch,F)
d←d+6
Fin Tantque
Retourner M
Fin
Le tableau de déclaration des objets locaux
Objet Type/Nature Rôle
d Entier Compteur
Ch Chaine Une séquence de 6 caractères dans une ligne Braille
Une variable servant à sauvegarder un mot qui représente
Ab
M Chaine l'équivalent d'une ligne du texte en braille
Servant à retourner la lettre équivalente à une séquence de 6
RechercheLettre Fonction
caractères écrits en Braille.
Fonction RechercheLettre (Ch : Chaine ; @ F : Carte) : Caractère
Début
de
Ouvrir(F,’c:/codes_brailles.dat’,’rb’)
Répéter
Lire(F,Enreg)
Jusqu'à Enreg.Code=Ch
lk
Retourner Enreg.L
Fin
ad
er
Ba
rr
aj