traitement sur un tableau
Page 1 sur 1
traitement sur un tableau
ÉNONCÉ
Soit un tableau T de 20 entiers positifs. Ecrire un programme pascal qui permet d'afficher les éléments de T compris entre deux positions P1 et P2, leur moyenne arithmétique, la valeur maximale et la valeur minimale contenus dans cet intervalle.
On donne 1≤ P1≤ P2
N.B:
La solution doit comporter au moins deux modules.
PASCAL
program tab_pos;
uses wincrt;
type
tab=array[1..20] of integer;
var
t:tab;
moy:real;
max1,min1,p1,p2:integer;
procedure lecture_tab(var t:tab);
var
i:integer;
begin
for i:=1 to 20 do
begin
writeln('saisir l''element n°',i);
repeat
readln(t[i]);
until (t[i]>=0);
end;
end;
procedure saisie_p1p2(var p1,p2:integer);
begin
writeln('saisir P1 puis P2');
repeat
readln(p1,p2);
until (p1>=1) and (p1<p2) and (p2<=20);
end;
function arith(t:tab;p1,p2:integer):real;
var
s,i:integer;
begin
s:=0;
for i:=p1 to p2 do s:=s+t[i];
arith:=s/(p2-p1+1);
end;
function maximale (t:tab;p1,p2:integer): integer;
var
max,i:integer;
begin
max:=t[p1];
for i:=p1+1 to p2 do if t[i] > max then max:=t[i];
maximale:=max;
end;
function minimale (t:tab;p1,p2:integer) :integer;
var
min,i:integer;
begin
min:=t[p1];
for i:=p1+1 to p2 do if t[i] < min then min:=t[i];
minimale:=min;
end;
begin
lecture_tab(t);
saisie_p1p2(p1,p2);
moy:=arith(t,p1,p2);
writeln('la moyenne arithmetique:= ',moy:6:2);
max1:=maximale(t,p1,p2);
writeln('la valeur maximale:= ',max1);
min1:=minimale(t,p1,p2);
writeln('la valeur minimale:= ',min1);
end.
Soit un tableau T de 20 entiers positifs. Ecrire un programme pascal qui permet d'afficher les éléments de T compris entre deux positions P1 et P2, leur moyenne arithmétique, la valeur maximale et la valeur minimale contenus dans cet intervalle.
On donne 1≤ P1≤ P2
N.B:
La solution doit comporter au moins deux modules.
PASCAL
program tab_pos;
uses wincrt;
type
tab=array[1..20] of integer;
var
t:tab;
moy:real;
max1,min1,p1,p2:integer;
procedure lecture_tab(var t:tab);
var
i:integer;
begin
for i:=1 to 20 do
begin
writeln('saisir l''element n°',i);
repeat
readln(t[i]);
until (t[i]>=0);
end;
end;
procedure saisie_p1p2(var p1,p2:integer);
begin
writeln('saisir P1 puis P2');
repeat
readln(p1,p2);
until (p1>=1) and (p1<p2) and (p2<=20);
end;
function arith(t:tab;p1,p2:integer):real;
var
s,i:integer;
begin
s:=0;
for i:=p1 to p2 do s:=s+t[i];
arith:=s/(p2-p1+1);
end;
function maximale (t:tab;p1,p2:integer): integer;
var
max,i:integer;
begin
max:=t[p1];
for i:=p1+1 to p2 do if t[i] > max then max:=t[i];
maximale:=max;
end;
function minimale (t:tab;p1,p2:integer) :integer;
var
min,i:integer;
begin
min:=t[p1];
for i:=p1+1 to p2 do if t[i] < min then min:=t[i];
minimale:=min;
end;
begin
lecture_tab(t);
saisie_p1p2(p1,p2);
moy:=arith(t,p1,p2);
writeln('la moyenne arithmetique:= ',moy:6:2);
max1:=maximale(t,p1,p2);
writeln('la valeur maximale:= ',max1);
min1:=minimale(t,p1,p2);
writeln('la valeur minimale:= ',min1);
end.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum