Написать процедуру которая в одномерном массиве определяет максимальный и минимальный элемент и находит их среднее арифметическое! — Pascal(Паскаль)

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.

Leave a Comment

2 + 1 =