Académique Documents
Professionnel Documents
Culture Documents
Exercice 1
Procédure charger (Var T: Tab, N : entier) Procédure charger (Var T: Tableau de caractères, N : entier)
Variable
i,j : entier
existe : booléen
Début
Ecrire("donner la lettre T[1] ")
Répéter
Lire(T[1])
Jusqu’à(Majus (T[1])>=’A’ et Majus (T[1])< =’Z’)
Pour i de 2 à N Faire
Répéter i 1 2ème sol
Répéter Répéter
Ecrire ("donner la lettre T[",i, "]" ) Lire(c)
Lire(T[i]) Si (EstMajuscule(c) ou EstMinuscule(c)) alors
Jusqu’à(Majus (T[i])>=’A’ et Majus (T[i])< =’Z’) j0
Répéter
jj+1
j0
existe (T1[j]=c)
existefaux
Jusqu’à (existe = vrai ou j=i )
Répéter
si (non(existe)) alors
jj+1
ii+1
Si(T[i]=T[j]) alors T1[i]c
existevrai FinSi
finSi FinSi
Jusqu’à(j=i-1ou existe=vrai ) Jusqu’à (i=N)
Jusqu’à(existe=faux)
FinPour
Fin
---------------------------------------------------------------------------------------------------------
Fonction verif (V: Tab, Mot: Tab, N: entier, L: entier) : booléen
Variables
existe: booléen
i,j: entier
Début
2ème sol 3ème sol
existe vrai existe vrai i 1,j 1
i1 i0 répéter
Tanque (i<=L et existe) Faire répéter Si (Mot[i] ≠V[j]) alors
j1 i i+1 j j+1
existe faux j0 sinon
Tanque (j<=N et existe =faux) Faire répéter i i+1
Si (Mot[i] =V[j] ) Alors j j+1 j1
existe vrai Jusqu’à(Mot[i] =V[j] ou j= N) finSi
Finsi Si (Mot[i] ≠V[j]) alors Jusqu’à(j=N+1 ou i= L+1)
j j+1 existe faux retourner (i= L+1)
FinTQ finSi
i i+1 Jusqu’à(existe = faux ou i= L)
FinTQ retourner existe
retourner existe // ou : Verif existe
Fin
---------------------------------------------------------------------------------------------------------
Procédure déplacer (Var T: Tab, Mot: Tab, N: entier, L: entier)
Variable
aux : caractère
i,j : entier
Début
Pour i de 1 à L Faire
j0
répéter
Page 1 sur 5 Mme Soumaya Ghorbel Yengui
j j+1
Jusqu’à(Mot[i] =T[j] ou j= N)
Si (Mot[i] = T[j]) alors
aux T[i]
T[i] T[j]
T[j] aux
Finsi
FinPour
Fin
---------------------------------------------------------------------------------------------------------
Procédure Tri (Var T: Tab, n: entier)
Variables
x : caractère
i,j, indmin : entier
Début
pour i de 1 à n-1 faire
indmin i
pour j de 1 + i à n faire
si ( T[j] < T[indmin] ) alors
indmin j
finsi
finpour
Si (indmin ≠ i) alors
x T[i]
T[i] T[indmin]
T[indmin] x
finSi
FinPour
Fin
---------------------------------------------------------------------------------------------------------
Fonction verifFixe( T: Tab, Mot: Tab, L: entier):booléen
Variables
fixe: booléen
i : entier
Début 2ème sol
i1 i0
fixe vrai répéter
Tanque (i <= L et fixe) Faire i i+1
Si (T[i] ≠ Mot[i]) Alors Jusqu’à(T[i] ≠ Mot[i] ou i= L)
fixe faux Si (T[i] ≠ Mot[i]) Alors
Finsi Retourner faux
i i+1 sinon
FinTQ Retourner vrai
retourner fixe //verifFixe fixe finSi
Fin
---------------------------------------------------------------------------------------------------------
Algorithme Principal
Type
Tab : Tableau [1..52] de caractère
Variables
V,Mot1 : Tab
Mot :chaîne de caractère
L,N,i : entier
verif, fixe : booléen
Début
Répéter
Ecrire ("donner la taille du tableau")
lire (N)
Jusqu'à (N>0 et N<=52)
charger(V,N)
Page 2 sur 5 Mme Soumaya Ghorbel Yengui
Répéter
Ecrire(("donner la taille du mot")
Lire (L)
Jusqu'à (L>0 et L<N)
charger(Mot1,L)
Mot""
pour i de 1à L faire
Mot Mot +Mot1[i]
finPour
verif verif(V,Mot1,N,L)
Si (verif=faux) Alors
Ecrire("le mot",Mot,"n'existe pas dans le tableau")
Sinon
Ecrire(("le mot",Mot,"existe dans le tableau")
déplacer(V,Mot1,N,L)
tri(V,N)
fixe verifFixe(V,Mot1,L)
Si (fixe= vrai) Alors
Ecrire ("La position n'a pas changé")
Sinon
Ecrire("La position a changé")
Finsi
Finsi
Fin
Exercice 2
Procédure Affiche (T:Tab) // Procédure Affiche (T: Tableau [] de Entier)
Variables
i,taille : entier
Début
taille T [1]+1
Pour i de 2 à taille Faire
Ecrire(T[i])
finPour
Fin
---------------------------------------------------------------------------------------------------------
Fonction estVide(T:Tab):booléen
Début
estVideT[1]=0 Retourner (T[1]=0)
Fin
---------------------------------------------------------------------------------------------------------
Fonction estPlein(T:Tab):booléen
Début
estPlein T[1]=N-1 Retourner (T[1]= N-1)
Fin
---------------------------------------------------------------------------------------------------------
Fonction indice(T:Tab, x:entier):entier
Variables
premier, dernier, m: entier
trouve :booléen
Début
premier2
dernier T[1]+1
trouvefaux
Répéter
m(premier+dernier) div 2
Si (x < T[m]) Alors
dernier m-1
Si b alors
T[i]x
sinon
T[i+1]x
Finsi
T[1]T[1]+1
Finsi
Fin
---------------------------------------------------------------------------------------------------------
Procédure supprimer (Var T:Tab, x:entier)
Variable
ind: entier
Début
indindice(T,x)
si (ind≠-1) alors
décalage(T,ind+1,T[1]+1,vrai)
T[1]T[1]-1
Finsi
Fin
---------------------------------------------------------------------------------------------------------