Exercice corrigé: Remplissage aléatoire de tableau, min, max, nombre
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1
Exercice corrigé: Remplissage aléatoire de tableau, min, max, nombre
ENONCE
On se propose de remplir aléatoirement un tableau T de n (5<n<50) entiers de l'intervalle [a, b] où a<b, deux entiers saisis par l'utilisateur.
1) Déterminer le max, le min ainsi que leurs rangs dans le tableau T.
2) Déterminer le nombre d'entiers de T qui sont supérieurs à la moyenne
M = (max + min)/2.
EXEMPLE
n = 7, a = 10, b = 20,
T = {12,10,17,14,10,13,15}.
min = 10, max = 17, M = 13.5,
Il y a 3 nombres supérieurs à 13.5.
On se propose de remplir aléatoirement un tableau T de n (5<n<50) entiers de l'intervalle [a, b] où a<b, deux entiers saisis par l'utilisateur.
1) Déterminer le max, le min ainsi que leurs rangs dans le tableau T.
2) Déterminer le nombre d'entiers de T qui sont supérieurs à la moyenne
M = (max + min)/2.
EXEMPLE
n = 7, a = 10, b = 20,
T = {12,10,17,14,10,13,15}.
min = 10, max = 17, M = 13.5,
Il y a 3 nombres supérieurs à 13.5.
methodiX- Admin
-
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 7256
Date d'inscription : 22/03/2007
Feuille de personnage
Capacité linguistique:
(1000/1000)
Re: Exercice corrigé: Remplissage aléatoire de tableau, min, max, nombre
SOLUTION
- Code:
program random1;
uses wincrt;
type
TAB = array[1..100] of integer;
procedure saisie(var n:integer; var a:integer; var b:integer);
begin
repeat
write('Taille du tableau = ');
readln(n);
until (n>=5) and (n<=50);
write('a = ');
readln(a);
repeat
write('Entrer un entier (b) supérieur à ',a,'= ');
readln(b);
until (b>a);
end;
procedure remplissage(var T:TAB; n,a,b:integer);
var
i:integer;
begin
for i:=1 to n do
begin
T[i] := a + random(b-a+1);
end;
end;
procedure afficher(T:TAB;n:integer);
var i:integer;
begin
for i:=1 to n do
writeln('T[',i,'] = ',T[i]);
end;
procedure minmax(T:TAB;n:integer;var pmin,pmax:integer);
var
i: integer;
begin
pmin:=1;
pmax:=1;
for i:=2 to n do
begin
if (T[i]<T[pmin]) then
pmin := i;
if (T[i]>T[pmax]) then
pmax := i;
end;
end;
function nombre(T:TAB;n:integer;M:real):integer;
var
i,nbr: integer;
begin
nbr := 0;
for i:=1 to n do
if (T[i]>=M) then
nbr := nbr + 1;
nombre := nbr;
end;
var
n,a,b,pmin,pmax: integer;
M: real;
T:TAB;
begin
randomize;
saisie(n,a,b);
remplissage(T,n,a,b);
afficher(T,n);
minmax(T,n,pmin,pmax);
M := (T[pmin] + T[pmax]) / 2;
writeln('MIN = ',T[pmin],', POSMIN = ',pmin);
writeln('MAX = ',T[pmax],', POSMAX = ',pmax);
writeln('NOMBRE D''ENTIERS SUPERIEUR A ',M:2:2,' = ',nombre(T,n,M));
end.
methodiX- Admin
-
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 7256
Date d'inscription : 22/03/2007
Feuille de personnage
Capacité linguistique:
(1000/1000)
Sujets similaires
» Exercice corrigé: La plus grande somme de chiffres dans un tableau
» Exercice corrigé Bac 2009 Pratique: Somme de blocs de nombres d'un tableau
» Exercice corrigé : manipulation des diviseurs d'un nombre
» Exercice (bac pratique): Construction d'un tableau
» Exercice: Nombres symétriques d'un tableau
» Exercice corrigé Bac 2009 Pratique: Somme de blocs de nombres d'un tableau
» Exercice corrigé : manipulation des diviseurs d'un nombre
» Exercice (bac pratique): Construction d'un tableau
» Exercice: Nombres symétriques d'un tableau
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum