uses crt;
const nmax=100;//максимальный размер массива
type mas=array[1..nmax] of real;//тип массива
procedure Massiv(v:mas;x:byte;var mx,mn,sr:real );{процедура, входные параметры массив и размер,
выходные мкс, мин и их среднее }
var i:byte;
begin
mx:=v[1];
mn:=v[1];
for i:=1 to x do
begin
if v[i]>mx then mx:=v[i];//макс
if v[i]<mn then mn:=v[i];//мин
end;
sr:=(mx+mn)/2;//среднее
end;
var a:mas;
n,i,j:integer;
min,max,sred:real;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходный массив:');
for i:=1 to n do
begin
a[i]:=10*random;
write(a[i]:5:2);
end;
writeln;
writeln;
Massiv(a,n,max,min,sred);//вызов процедуры с факимческими параметрами
write('Макс.=',max:0:2,' мин.=',min:0:2,' сред.=',sred:0:2);
readln
end.
Вариант 2
Program zad;
uses crt;
type
massiv=array[1..100] of integer;
var
mas:massiv;
i,n:integer;
procedure Poisk(m:massiv;kol:integer);
var
j,min,max,w,q:integer;
sr:real;
begin
min:=m[1];
max:=m[1];
for j:=1 to kol do
begin
if m[j]<=min then
begin
min:=m[j];
q:=j;
end
else
if m[j]>=max then
begin
max:=m[j];
w:=j;
end;
end;
textcolor(10);
writeln('макс.-> ',m[w],' мин.-> ',m[q]);
sr:=(m[q]+m[w])/2;
textcolor(13);
write('среднее ариф-ое равно ',sr:4:2);
end;
begin
clrscr;
randomize;
write('введите n -> ');readln(n);
for i:=1 to n do
begin
mas[i]:=random(101)-50;
write(mas[i]:3);
end;
writeln;
Poisk(mas,n);
readln;
end.