Vous êtes sur la page 1sur 1

Devoirs et examens sur : www.Kiteb.net

Exercice :

-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 éléments de T puis son maximum.

Écrire un programme qui permet de :

Pour résoudre ce problème on va définir les modules suivants:

* Procédure Saisie(n) :permet de saisir la taille de T entre 2 et 20.

* Procédure Remplit( T, n) permet de remplir T par n entiers au hasard (entre 0 et 100).

* Procédure Affiche( T, n) permet d’afficher le tableau T.

* Fonction Maxi(T,n) permet de donner le maximum du tableau.

Saisie

n

n

T

P.P

T,n

Remplit

T,n

Maxi

T,n

Affiche

Maxi

Analyse du programme principal:

NOM: Maximum Résultat=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 déclaration des nouveaux types:

TYPE

TAB=Tableau de 20 entiers

Tableau de déclaration des objets:T.D.O. Globaux :

Objet

Type/Nature

Maxi

Fonctions

T

TAB

n, Max

Entier

Remplit,

Procédure

Saisie,Affiche

Analyse de la procédure saisie:

DEF PROC Saisie( VAR nb:entier) Résultat=[ ] Répéter nb=Donnée("Donner n: ", nb) Jusqu'à nb dans [2 20] FIN saisie Analyse de la procédure remplit:

DEF PROC Remplit(Var Tb:TAB, nbr:entier) Résultat= [ ] Pour i de 1 à nbr faire Tb[i] Hasard(101) Fin pour

Fin Remplit

Sous programmes – Fiche 2- Les tableaux

Analyse de la procédure Affiche:

DEF PROC Affiche( T:TAB, n:entier) Résultat= [ ] Pour j de 1 à n faire Ecrire("L’entier n°",j, "est ",T[j]) Fin Pour FIN Affiche Analyse de la fonction Maxi:

DEF FN Maxi(T:TAB, n:entier) : entier Résultat=Maxi Ma Ma= [Ma T[1]] Pour k de 2 à n faire Si T[k]>Ma alors Ma T[k] Fin pour

FIN Maxi

T.D.O.Locaux:

Objet

Type/Nature

k, Ma

entier

Algorithme du programme principal:

0)

Début Maximum

1)

Proc Saisie(n)

2)

Proc Remplit(T, n)

3)

Proc Affiche(T, n)

4)

Max Fn maxi(T, n)

5)

Ecrire("Le Max est : ", Max)

6)

Fin Maximum

Algorithme de la procédure saisie:

0) DEF PROC Saisie( VAR nb:entier) 1) Répéter Ecrire("Donner n: ", nb), lire(nb) Jusqu'à nb dans [2 20]

2)

FIN saisie

Algorithme de la procédure Remplit:

0) DEF PROC Remplit(Var Tb:TAB, nbr:entier) 1) Pour i de 1 à nbr faire Tb[i] Hasard(101) Fin pour

2)

Algorithme de la procédure Affiche:

0) DEF PROC Affiche( T:TAB, n:entier) 1) Pour j de 1 à n faire Ecrire("L’entier n° ",j, " est ",T[j]) ; Fin pour 2) FIN Affiche

FIN Remplit

Algorithme de la fonction Maxi:

0) DEF FN Maxi(T:TAB, n:entier) : entier 1) Ma T[1] Pour k de 2 à n faire

 

Si T[k]>Ma alors MaT[k]

FinSi

2)

Fin pour MaxiMa

3)

FIN Maxi

Programme Pascal :

program maximum;

uses wincrt; type tab=array [1

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

20]

of integer;

saisie(n); RANDOMIZE; remplit(t,n); affiche(t,n); max:= maxi(t,n); writeln('le maximum est ',max);

end.