Vous êtes sur la page 1sur 1

Exercice : crire un programme qui permet de :

-Saisir un entier n (entre 2 et 20)


-Remplir un tableau T au hasard par n entiers de valeurs
entre 0 et 100
-Afficher les lments de T puis son maximum.
Pour rsoudre ce problme on va dfinir les modules suivants:
* Procdure Saisie(n) :permet de saisir la taille de T entre 2 et 20.
* Procdure Remplit( T, n) permet de remplir T par n entiers au
hasard (entre 0 et 100).
* Procdure Affiche( T, n) permet dafficher le tableau T.
* Fonction Maxi(T,n) permet de donner le maximum du tableau.

Devoirs et examens sur : www.Kiteb.net

Saisie

Maxi

P.P
T

T,n

T,n

Maxi

T,n

Remplit
Affiche
Analyse du programme principal:
NOM: Maximum
Rsultat=Ecrire("Le max est",Max)
Max FN Maxi (T,n)
Proc Affiche(T, n)
T=PROC Remplit(T,n)
n=PROC Saisie(n)
FIN Maximum
Tableau de dclaration des nouveaux types:
TYPE
TAB=Tableau de 20 entiers
Tableau de dclaration des objets:T.D.O. Globaux :
Objet
Type/Nature
Maxi
Fonctions
T
TAB
n, Max
Entier
Remplit,
Procdure
Saisie,Affiche
Analyse de la procdure saisie:
DEF PROC Saisie( VAR nb:entier)
Rsultat=[ ] Rpter
nb=Donne("Donner n: ", nb)
Jusqu' nb dans [2..20]
FIN saisie
Analyse de la procdure remplit:
DEF PROC Remplit(Var Tb:TAB, nbr:entier)
Rsultat= [ ] Pour i de 1 nbr faire
Tb[i] Hasard(101)
Fin pour
Fin Remplit

Sous programmes Fiche 2- Les tableaux


Analyse de la procdure Affiche:
DEF PROC Affiche( T:TAB, n:entier)
Rsultat= [ ] Pour j de 1 n faire
Ecrire("Lentier n",j, "est ",T[j])
Fin Pour
FIN Affiche
Analyse de la fonction Maxi:
DEF FN Maxi(T:TAB, n:entier) : entier
Rsultat=Maxi Ma
Ma= [MaT[1]] Pour k de 2 n faire
Si T[k]>Ma alors MaT[k]
Fin pour
FIN Maxi
T.D.O.Locaux:
Objet
Type/Nature
k, Ma

entier

Algorithme du programme principal:


0) Dbut Maximum
1) Proc Saisie(n)
2) Proc Remplit(T, n)
3) Proc Affiche(T, n)
4) MaxFn maxi(T, n)
5) Ecrire("Le Max est : ", Max)
6) Fin Maximum
Algorithme de la procdure saisie:
0) DEF PROC Saisie( VAR nb:entier)
1) Rpter
Ecrire("Donner n: ", nb), lire(nb)
Jusqu' nb dans [2..20]
2) FIN saisie
Algorithme de la procdure Remplit:
0) DEF PROC Remplit(Var Tb:TAB, nbr:entier)
1) Pour i de 1 nbr faire
Tb[i] Hasard(101)
Fin pour
2) FIN Remplit
Algorithme de la procdure Affiche:
0) DEF PROC Affiche( T:TAB, n:entier)
1) Pour j de 1 n faire
Ecrire("Lentier n ",j, " est ",T[j]) ;
Fin pour
2) FIN Affiche

Algorithme de la fonction Maxi:

0) DEF FN Maxi(T:TAB, n:entier) : entier


1) MaT[1]
Pour k de 2 n faire
Si T[k]>Ma alors MaT[k] FinSi
Fin pour
2) Maxi Ma
3) FIN Maxi

Programme Pascal :
program maximum;
uses wincrt;
type tab=array [1..20] of integer;
var n,max:integer; t:tab;
procedure saisie (var nb:integer);
begin
repeat
write('donner un entier(entre 2 et 20):');
readln(nb);
until (nb>=2) and (nb<=20);
end;
procedure remplit(var tb:tab;nbr:integer);
var
i:integer;
begin
for i:=1 to nbr do
Tb[i]:=random(101);
end;
procedure Affiche(t:tab;n:integer);
var j:integer;
begin
for j:=1 to n do
writeln('L''entier n',j, 'est ',T[j]);
end;
function maxi(t:tab;n:integer):integer;
var k,ma:integer;
begin
Ma:=t[1];
for k:=2 to n do
if T[k]>ma then ma:=T[k];
maxi:=ma;
end;
begin
saisie(n);
RANDOMIZE;
remplit(t,n);
affiche(t,n);
max:= maxi(t,n);
writeln('le maximum est ',max);
end.