Найти элементы, имеющие минимальное и максимальное отклонение от среднего - Pascal

Формулировка задачи:

Большую часть задания я выполнил, осталось только это, ничего в голову не приходит, прошу помочь. Полностью задание звучит так: Разработать программу, в которой предусмотреть: - ввод размерности N одномерного массива М, - задание элементов массива двумя способами: ввод с клавиатуры и формирование значений с помощью функции RANDOM(K) генерирования случайных чисел в диапазоне [0..К-1];. Найти среднее значение элементов массива и найти элементы, имеющие минимальное и максимальное отклонение от среднего. А вот моя программа:
Program Randome_dz; 
var i,N,v,a,b: integer; sum,SR: real; 
rg:char; 
M :array[1..100000] of real; 
begin 
write ('Введи любое положительное N= '); 
readln(n); 
 
Writeln('Задай режим ввода элементов массива:'); 
writeln (' 1 – с клавиатуры'); 
writeln (' 2 – с помощью генератора случайных чисел'); 
read(rg); 
case rg of 
'1': begin
begin  writeln ('Введи N целых чисел');
  for i:=1 to N do
  end; 
For i:=1 to N do 
Begin 
readln(M[i]); 
end; 
 
end; 
 
'2': begin 
 
For i:=1 to N do Begin 
M[i]:=random(1000); 
end; 
end; 
end; 
 
For i:=1 to N do Begin 
end; 
begin 
  sum:=0; for i:=1 to N do sum:=sum+M[i];
  SR:=sum/N;
  end;
  writeln ('Сумма элементов массива sum= ',sum);
  writeln ('Среднее значение элементов массива равно ',SR);
  read
 
 
End.
Спасибо заранее))

Код к задаче: «Найти элементы, имеющие минимальное и максимальное отклонение от среднего - Pascal»

textual
var m:array[1..40] of integer;
    sr,min,max:real;
    n,i,k,mmn,mmx: integer;
    rg:char;
begin
repeat
write ('Введите размер массива от 2 до 40 n= ');
readln(n);
until n in [2..40];
writeln('Задайте режим ввода элементов массива:');
writeln (' 1 – с клавиатуры');
writeln (' 2 – с помощью генератора случайных чисел');
repeat
readln(rg);
until rg in ['1','2'];
case rg of
'1': begin
     writeln ('Введите n целых чисел');
     for i:=1 to n do
      begin
       write('m[',i,']=');
       readln(m[i]);
      end;
     end;
'2': begin
     write('Введите максиальное значение элементов массива k=');
     readln(k);
     for i:=1 to n do
     m[i]:=random(k);
     end;
end;
writeln('Массив');
for i:=1 to n do
write(m[i],' ');
writeln;
sr:=0;
for i:=1 to n do
sr:=sr+m[i];
sr:=sr/n;
writeln ('Среднее значение элементов массива=',sr:0:2);
min:=maxint;
max:=0;
for i:=1 to n do
 begin
  if abs(m[i]-sr)<min then
   begin
    mmn:=m[i];
    min:=abs(m[i]-sr);
   end;
  if abs(m[i]-sr)>max then
   begin
    mmx:=m[i];
    max:=abs(m[i]-sr);
  end;
 end;
writeln('Минимальное отклонение от среднего имеет элемент ',mmn);
writeln('Максимальное отклонение от среднего имеет элемент ',mmx);
end.

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

10   голосов, оценка 3.700 из 5


СОХРАНИТЬ ССЫЛКУ