Задачи по Pascal. Посчитать, сколько элементов массива А1,А2…А40 больше среднего арифметического всех его элементов и сколько элементов меньше.

Задачи по Pascal

Условие задачи : Посчитать, сколько элементов массива А1,А2…А40 больше среднего арифметического всех его элементов и сколько элементов меньше (Язык Pascal)

Сложность: средняя

Решение задачи :

Для начала продумаем наше решение. Сначала заполним массив случайными числами с помощью цикла и сразу в нем найдем сумму его чисел, чтобы потом найти среднее арифметическое, а потом уже в следующем цикле будем искать числа больше или меньше среднего арифметического.

Для того чтобы решить задачу нам понадобятся следующие переменные :

  1. Переменная mass — для нашего массива
  2. Переменная more — для чисел больше среднего арифметического
  3. Переменная less — для чисел меньше среднего арифметического
  4. Переменная aver — для среднего арифметического
  5. Переменная 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.

cyber
Оцените автора
CyberLesson | Быстро освоить программирование Pascal и C++. Решение задач Pascal и C++
Добавить комментарий