Найти элементы, имеющие минимальное и максимальное отклонение от среднего - 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 случайных чисел в заданном диапазоне.
- Вывод массива:
- Вывод полученного массива.
- Вычисление среднего значения элементов массива:
- Вычисление суммы всех элементов массива и их среднего значения.
- Поиск элементов с минимальным и максимальным отклонением от среднего:
- Поиск элементов с минимальным и максимальным отклонением от среднего значения.
- Вывод найденных элементов с минимальным и максимальным отклонением.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д