Найти элементы, имеющие минимальное и максимальное отклонение от среднего - 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.
Спасибо заранее))

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

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.

Объяснение кода листинга программы

  1. Объявление переменных:
    • m - массив из 40 целых чисел
    • sr, min, max - вещественные числа
    • n, i, k, mmn, mmx - целые числа
    • rg - символьная переменная
  2. Определение размера массива:
    • Пользователю предлагается ввести размер массива от 2 до 40.
    • Запрос на ввод и проверка введенного значения.
  3. Выбор режима ввода элементов массива:
    • Пользователь выбирает режим ввода элементов массива: с клавиатуры (1) или с помощью генератора случайных чисел (2).
  4. Ввод элементов массива:
    • В зависимости от выбранного режима происходит либо ввод n целых чисел с клавиатуры, либо генерация n случайных чисел в заданном диапазоне.
  5. Вывод массива:
    • Вывод полученного массива.
  6. Вычисление среднего значения элементов массива:
    • Вычисление суммы всех элементов массива и их среднего значения.
  7. Поиск элементов с минимальным и максимальным отклонением от среднего:
    • Поиск элементов с минимальным и максимальным отклонением от среднего значения.
    • Вывод найденных элементов с минимальным и максимальным отклонением.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.7 из 5
Похожие ответы