Problème de révision: Random + Tableaux + Min et Max + Position
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1
Problème de révision: Random + Tableaux + Min et Max + Position
On se propose de remplir aléatoirement un tableau T de n (5 où a
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
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
- Code:
program random1;
uses wincrt;
type
TAB = array[1..100] of integer;
{PROCEDURE ET FONCTION}
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
begin
writeln('T[',i,'] = ',T[i]);
end;
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;
{PROGRAMME PRINCIPAL}
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.
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7871
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Sujets similaires
» Problème: Plus grande somme de chiffres d'un nombre + tableaux
» How to Write a Position Paper ?
» Révision du BAC-MATH (fonction réciproque)
» Révision info (BAC/Pratique) - sujet n°1
» Exercice de révision sur les fichiers typés
» How to Write a Position Paper ?
» Révision du BAC-MATH (fonction réciproque)
» Révision info (BAC/Pratique) - sujet n°1
» Exercice de révision sur les fichiers typés
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