Условие задачи : Посчитать, сколько элементов массива А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.
