Задачи по Pascal. Найти среднее арифметическое массива.
Условие задачи : Задан массив А, состоящий из n чисел. Найти среднее арифметическое его элементов. Элементы вводятся с клавиатуры.
Сложность : легкая.
Данную задачу мы будем решать на основе этой (ссылка), но там мы искали просто сумму, здесь же нам надо в добавок найти среднее арифметическое всех этих чисел :
Среднее арифметическое — сумма всех чисел деленное на кол-во чисел
Начнем решать задачу.
Первое что мы сделаем мы создадим свой тип данных как и зачем читайте (тут) :
Дальше уже объявим переменные которые нам понадобятся :
Для чего они нужны :
i — для цикла, когда мы будем заполнять массив
n — кол-во элементов
summa — сумма элементов массива
…дальше понятно без слов ))
Теперь просим пользователя ввести кол-во элементов , а сумме присваиваем 0, т.к. для корректной работы с переменной нам нужно присвоить ей какое-то значение.
| write ( ‘Введите кол-во элементов : ‘ ); readln(n); summa := 0 ; // начальное значение |
Дальше делаем цикл в нем мы просим пользователя ввести число и сразу прибавляем к текущей сумме :
summa := summa + A[i];
Ну и всё, осталось только подсчитать среднее арифметическое, т.е. мы сумму делим на количество элементов (n)
2.2.3.2. Поиск значений среднего арифметического и среднего геометрического элементов массива
Среднее арифметическое (обозначим как SA) всех значений элементов массива подсчитывается по формуле:
где S – это сумма всех элементов, K – количество просуммированных элементов. Алгоритмы поиска суммы и количества элементов были подробно рассмотрены в п/п 2.2.3.1. Но в тех случаях, когда SA находят только среди элементов, удовлетворяющих некоторому условию, следует учитывать тот факт, что таких элементов в массиве может и не быть, и тогда К = 0. Чтобы избежать деления на 0, необходимо при получении значения SA осуществлять соответствующую проверку: К > 0. На рис. 9 приведена блок-схема алгоритма поиска SA положительных элементов и фрагмент программы.
Среднее геометрическое значений массива (обозначим через SG) вычисляется по следующей формуле:
где Р – произведение элементов массива, K – количество элементов. Аналогично, как и в алгоритме поиска SА элементов, удовлетворяющих некоторому условию, необходимо учитывать вариант К = 0. На рис. 10 приведена блок-схема алгоритма поиска среднего геометрического отрицательных элементов массива и соответствующий фрагмент программы.
Разность между максимальным элементом и средним арифметическим значением
Задача 2.98
Дан одномерный массив А неупорядоченных целых чисел. Вывести на экран разность между наибольшим элементом и средним арифметическим значением для отрицательных элементов. Если отрицательных элементов нет, то вывести на экран сообщение НЕТ.
Для начала вспомним, что такое среднее арифметическое значение.
Среднее арифметическое — это сумма всех чисел множества, делённая на их количество. Например, у нас есть 5 чисел: 1, 7, 10, 2, 15 . Тогда среднее арифметическое будет равно:
(1 + 7 + 10 + 2 + 15) / 5 = 35 / 5 = 7
Может ли среднее арифметическое быть отрицательным числом
Конечно, может. Ведь числа в множестве могут быть как положительными, так и отрицательными. И, в зависимости от того, каким числом будет сумма этих чисел — положительным или отрицательным, среднее арифметическое будет иметь соответствующий знак. Например, у нас есть 5 чисел: 1, -7, 10, 2, -15 . Тогда среднее арифметическое будет равно:
(1 — 7 + 10 + 2 — 15) / 5 = -9 / 5 = -1,8
Таким образом, среднее арифметическое значение для отрицательных элементов массива вычисляется точно также, как и для положительных.
А теперь перейдём к решению задачи.
Вот здесь я рассказал о том, как можно найти наименьшее значение в массиве. Наибольший элемент можно найти подобным способом, поэтому в данной статье останавливаться на этом не буду.
Итак, что нам нужно сделать:
- Найти наибольший элемент в массиве.
- Найти все отрицательные значения в массиве и вычислить для них среднее арифметическое.
- Вычислить разность между наибольшим элементом массива и средним арифметическим отрицательных чисел.
Примеры программ на Паскале и С++.
ВНИМАНИЕ!
Если вам что-то осталось непонятно, то советую почитать книги “Основы программирования” и “Основы С++”.
Научный форум dxdy
Turbo pascal.Нахождение среднего арифметического в массиве
Моя задача:Дан массив С(N).Найти среднее арифметическое положительных элементов с четными индексами.
программу вроди бы понимаю как написать,но что-то не Выходит.пока еще новичок и не очень понимаю.КАК ПРАВИЛЬНО?Укажите на ошибки или помогите исправить что-бы заработала правильно.
uses crt;
var C:array[1..100] of real;
i,k,n:real;
S:real;
begin
clrscr;
write(‘Vvedite kol-vo elementov:’);readln(n);
write(‘vvedite znachenie:’);
readln(c[i]);
k:=0; s:=0;
for i:=1 to n do
begin
if (i) mod 2=0 and (c[i]>0) then begin
s:=s+c[i];inc(k);
end;
writeln(‘Srednee arifmetichescoe= ‘,s/k);
end;
Последний раз редактировалось arseniiv 09.12.2012, 16:34, всего редактировалось 1 раз.
Чтобы ввести массив, вам надо ввести его элементы по очереди в цикле, а не так как сейчас.
Переменная i должна быть только порядкового типа (например, Integer ), т. к. ей индексируется массив b, а ещё она счётчик цикла for — вещественные типы в этих местах использовать нельзя.
— Вс дек 09, 2012 19:34:32 —
И не забывайте о правильных отступах.
Последний раз редактировалось g_coder 17.12.2012, 16:33, всего редактировалось 1 раз.
в таком случае для более разумного расходования памяти лучше использовать динамические массивы.
если конечно вы пользуетесь этим лишь для отладки, тогда другой разговор.