Условие задачи : Посчитать, сколько элементов массива А1,А2…А40 больше среднего арифметического всех его элементов и сколько элементов меньше (Язык Pascal)
Сложность: средняя
Решение задачи :
Для начала продумаем наше решение. Сначала заполним массив случайными числами с помощью цикла и сразу в нем найдем сумму его чисел, чтобы потом найти среднее арифметическое, а потом уже в следующем цикле будем искать числа больше или меньше среднего арифметического.
Для того чтобы решить задачу нам понадобятся следующие переменные :
- Переменная mass — для нашего массива
- Переменная more — для чисел больше среднего арифметического
- Переменная less — для чисел меньше среднего арифметического
- Переменная aver — для среднего арифметического
- Переменная i — для цикла
Начнем мы с каркаса нашей программы :
const N = 40; type massiv = array [1..N] of integer; var mass: massiv; more, less, i : integer; aver : real; begin randomize; aver := 0; more := 0; less := 0; end.
Тут мы создали свой тип данных для массива, как и зачем читайте ( тут ) дальше объявили все переменные, присвоили переменным aver more less ноль, чтобы не было ошибок, включили генератор случайных чисел , подробнее (тут), ну и задали размер массива (N = 40).
Теперь давайте заполним наш массив и подсчитаем сумму всех чисел, чтобы потом найти среднее арифметическое, ну и заодно выведем весь массив:
for i:=1 to N do begin mass[i] := random(10); aver := aver + mass[i]; write(mass[i], ' | '); end;
Теперь найдем среднее ариф, находится оно как сумма всех чисел, деленная на кол-во чисел :
aver := aver / N;
Ну и теперь осталось найти какие числа больше, а какие меньше среднего ариф. :
for i:=1 to N do begin if (mass[i] > aver) then more := more + 1 if (mass[i] < aver) then less := less + 1; end;
Т.е. мы сравниваем каждое число со средним ариф-ким.
Теперь осталось только вывести :
writeln; writeln('Среднее арифметическое равно : ', aver:2:2); writeln('Больше среднего : ', more); writeln('Меньше среднего :', less);
Всё решение задачи Pascal :
const N = 40; // задаем размер массива type massiv = array [1..N] of integer; // создаем тип данных для массива var mass: massiv; // объявляем переменные more, less, i : integer; // объявляем переменные aver : real; // объявляем переменные begin randomize; // включаем генератор случайных чисел aver := 0; // присваиваем ноль more := 0; // присваиваем ноль less := 0; // присваиваем ноль for i:=1 to N do // пускаем цикл begin mass[i] := random(10); // заполняем массив случайными числами aver := aver + mass[i]; // считаем суммы всех чисел write(mass[i], ' | '); // выводим массив end; aver := aver / N; // считаем среднее арифметическое for i:=1 to N do // пускаем цикл begin if (mass[i] > aver) then // если число больше сред.ариф. more := more + 1; // то увеличиваем кол-во таких чисел на 1 if (mass[i] < aver) then если число меньше сред.ариф. less := less + 1; // то увеличиваем кол-во таких чисел на 1 end; writeln; // переносим строку чтобы у нас все красиво отображалось writeln('Среднее арифметическое равно : ', aver:2:2); // выводим результат writeln('Больше среднего : ', more); // выводим результат writeln('Меньше среднего :', less); // выводим результат readln; // чтобы программа не закрывалась end.