Académique Documents
Professionnel Documents
Culture Documents
Procedures&Fonctions
Exercice 1
Algorithme Exercice 1
CONST
NMAX = 50
TYPE
tab : Tableau [1..NMAX] d’entier
VAR
T : tab
N , N1: entier
/* Fonction SAISIE TAILLE*/
Fonction SAISIE_TAILLE ( ) : entier
VAR
N : entier
DEBUT
Répéter
Ecrire ("Donner un entier :")
Lire (N)
Jusqu’à ( N>0 et N<=NMAX)
SAISIE_TAILLE ← N
FIN
/*Procédure SAISIE_TAB*/
VAR i : entier
DEBUT
Pour i de 1 à N Faire
Ecrire ("T [" , i , "] :")
Lire (T[i])
Fin pour
FIN
/* Procédure AFFICHER */
VAR
i : entier
DEBUT
Pour i de 1 à N Faire
Ecrire ( T[i] )
Fin Pour
FIN
/* Procédure RECHERCHE */
VAR
i , min , nocc , pos : entier
DEBUT
nocc ← 0 min ← T[1]
Pour i de 2 à N Faire
Si ( T[i] < min ) alors
min ← Ti]
pos ← i
Fin si
Fin Pour
Pour i de 1à N Faire
Si ( T[i] = min ) alors
nocc ← nocc + 1
Fin si
Fin Pour
Ecrire ("Le plus petit élément est " , min , " son occurrence est " , nocc , " et l’indice de sa
première occurrence ets " , pos)
FIN
/* Fonction DETERMINER */
Fonction DETERMINER ( T : tab ; N : entier)
VAR
i , j , nr , nd : entier
DEBUT
nd ← 0
Pour i de 1 à N Faire
nr ← 0
Pour j de i à N Faire
Si (T[i] = T[j] ) alors
nr ← nr + 1
Fin Si
Fin Pour
Si (nr = 1) alors
nd ← nd + 1
Fin Si
Fin Pour
DETERMINER ← nd
FIN
/* Procédure ELIMINER */
VAR
i , j , k : entier
DEBUT
Pour i de 1 à N - 1 Faire
Pour j de i+1 à N Faire
Si (T[i] = T[j] ) alors
Pour k de j à N-1 Faire
T[k] = T[k+1]
Fin Pour
N ←N–1
j ←j-1
Fin Si
Fin Pour
Fin Pour
FIN
/* Programme PRINCIPAL */
DEBUT
Écrire ("Chargement de T")
N ← SAISIE_TAILLE()
SAISIE_TAB ( T , N)
RECHERCHE ( T , N )
N1 ← DETERMINER ( T , N )
Écrire ("Le nombre d’éléments distincts dans T = " , N1)
Écrire ("Contenu de T avant élimination")
AFFICHER ( T , N )
ELIMINER ( T , N)
Écrire ("Contenu de T après élimination")
AFFICHER ( T , N1 )
FIN
Exercice 2
Algorithme TABLEAU
CONST NMAX = 50
TYPE TAB : Tableau [1..NMAX] d’entier
VAR T, TSP, TSI , TL : tab
N: entier
/* Fonction SAISIE TAILLE */
Fonction SAISIE_TAILLE ( ) : entier
VAR N : entier
DEBUT
Répéter
Ecrire ("Donner un entier :")
Lire (N)
Jusqu’à ( N>0 et N<=NMAX)
SAISIE_TAILLE ← N
FIN
/*Procédure LECTURE*/
VAR i : entier
DEBUT
Pour i de 1 à N Faire
Répéter
Ecrire ("T [" , i , "] :")
Lire (T[i])
Jusqu’à (T[i]>0)
Fin pour
FIN
/* Procédure AFFICHE */
VAR
i , Ind , X : entier
DEBUT
Pour i de 1 à N Faire
Ind ← 0
TSI[i] ← 0
X ← T[i]
Tantque(X<> 0) Faire
Ind ← Ind + 1
Si ( Ind mod 2 = 1) Alors
TSI[i] ← TSI[i] + X mod 10
Fin Si
X ← X div 10
Fin Tantque
Fin Pour
FIN
/* Procédure REMPLIR4 */
i , X : entier
DEBUT
Pour i de 1 à N Faire
TL[i] ← 0
X ← T[i]
Tantque(X<> 0) Faire
TL[i] ← TL[i] + 1
X ← X div 10
Fin Tantque
Fin Pour
FIN
/* Programme principal */
DEBUT
N ← SAISIE_TAILLE()
Écrire ("Chargement de T")
LECTURE ( T , N)
REMPLIR1(T , N)
REMPLIR2( TSP , T , N)
REMPLIR1( TSI , T , N)
REMPLIR1( TL , T , N)
Écrire ("Contenu de T")
AFFICHER ( T , N)
Écrire ("Contenu de TSP")
AFFICHER ( TSP , N)
Écrire ("Contenu de TSI")
AFFICHER ( TSI , N)
Écrire ("Contenu de TL")
AFFICHER ( TL , N)
FIN
Exercice 3
Algorithme TABLEAU
CONST
NMAX = 50
TYPE
tab : Tableau [1..NMAX] d’entier
VAR
T , T1 : tab
N, N1 : entier
/* Fonction SAISIE TAILLE*/
Fonction SAISIE_TAILLE ( ) : entier
VAR N : entier
DEBUT
Répéter
Ecrire ("Donner un entier :")
Lire (N)
Jusqu’à ( N>0 et N<=NMAX)
SAISIE_TAILLE ← N
FIN
/*Procédure LECTURE*/
VAR i : entier
DEBUT
Pour i de 1 à N Faire
Répéter
Ecrire ("T [" , i , "] :")
Lire (T[i])
Jusqu’à (T[i]>0)
Fin pour
FIN
/* Procédure AFFICHE */
VAR i : entier
DEBUT
Pour i de 1 à N Faire
Ecrire ( T[i] )
Fin Pour
FIN
/*Fonction TEST */
Fonction TESTER ( T : tab ; N : entier) : entier
VAR
i, croissant , decroissant : entier
DEBUT
croissant ← N decroissant ← N
Pour i de 1 à N-1 Faire
Si ( T[i] > T[i+1]) alors
croissant←0
Fin Si
Si ( T[i] < T[i+1]) alors
decroissant←0
Fin Si
Fin Pour
Si (croissant ≠ 0 et decroissant = 0) alors TEST ←1 Fin Si
Si (croissant = 0 et decroissant ≠ 0) alors TEST ← 2 Fin Si
Si (croissant ≠ 0 et decroissant ≠ 0) alors TEST ←3 Fin Si
Si (croissant = 0 et decroissant = 0) alors TEST ←4 Fin Si
FIN
/* Procédure DETERMINER*/
Fonction DETERMINER ( T : tab ; N, x :entier ) : entier
VAR : i, cp : entier
DEBUT
cp ← 0
Pour i de 1 à N faire
Si (T[i] = x]) alors
cp ← cp + 1
Fin Si
Fin Pour
DETERMINER ← cp
FIN
/* Procédure TRIER */
Procédure TRIER ( VAR T : tab ; N : entier)
Procédure COMPRESSER ( T : tab ; Var T1 : tab , N : entier ; Var N1 : entier)
VAR i : entier
DEBUT
Si (TESTER( T , N) = 4) alors
TRI(T, N)
Fin Si
i ←1 N1 ← 1
Tant que ( i ≤ N) Faire
T1[N1] ← T[i]
T1[N1+1] ← DETERMINER(T,N,T[i])
N1← N1+2
i← i + DETERMINER(T,N,T[i])
Fin Tant que
FIN
/* Programme principal */
DEBUT
N ← SAISIE_TAILLE() SAISIE_TAB ( T , N)
R ←TESTER ( T , N)
Si(R=1) alors
Écrire ("le tableau est constant")
Si non
Si (R==2) alors
Écrire ("le tableau est croissant")
Si non
Si (R==3) alors
Écrire ("le tableau est décroissant")
Si non
Écrire ("le tableau est quelconque")
Fin si
COMPRESSER ( T , T1 , N , N1)
AFFICHER ( T1 , N1);
FIN
//