Найти элементы, имеющие минимальное и максимальное отклонение от среднего - 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.
Объяснение кода листинга программы
- Объявление переменных:
m
- массив из 40 целых чиселsr
,min
,max
- вещественные числаn
,i
,k
,mmn
,mmx
- целые числаrg
- символьная переменная
- Определение размера массива:
- Пользователю предлагается ввести размер массива от 2 до 40.
- Запрос на ввод и проверка введенного значения.
- Выбор режима ввода элементов массива:
- Пользователь выбирает режим ввода элементов массива: с клавиатуры (1) или с помощью генератора случайных чисел (2).
- Ввод элементов массива:
- В зависимости от выбранного режима происходит либо ввод n целых чисел с клавиатуры, либо генерация n случайных чисел в заданном диапазоне.
- Вывод массива:
- Вывод полученного массива.
- Вычисление среднего значения элементов массива:
- Вычисление суммы всех элементов массива и их среднего значения.
- Поиск элементов с минимальным и максимальным отклонением от среднего:
- Поиск элементов с минимальным и максимальным отклонением от среднего значения.
- Вывод найденных элементов с минимальным и максимальным отклонением.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д