Среднее арифметическое элементов массива - Free Pascal
Формулировка задачи:
дан массив 4х4 из целых чисел заполненный случайными числами из интервала [-20,20] .определить,что больше среднее арифметическое элементов массива стоящих в четных строках или среднее арифметическое положительных элементов всего массива.
Решение задачи: «Среднее арифметическое элементов массива»
textual
Листинг программы
- const n=4;
- var a:array[1..n,1..n] of integer;
- i,j,k1,k2:integer;
- s1,s2:real;
- begin
- randomize;
- s1:=0;
- s2:=0;
- k1:=0;
- k2:=0;
- for i:=1 to n do
- begin
- for j:=1 to n do
- begin
- a[i,j]:=-20+random(41);
- write(a[i,j]:4);
- if i mod 2=0 then
- begin
- s1:=s1+a[i,j];
- k1:=k1+1;
- end;
- if a[i,j]>0 then
- begin
- s2:=s2+a[i,j];
- k2:=k2+1;
- end;
- end;
- writeln;
- end;
- s1:=s1/k1;
- writeln('Среднее арифметическое элементов в четных строках s1=',s1:0:2);
- if k2=0 then
- begin
- write('Положительных элементов нет');
- readln;
- exit;
- end;
- s2:=s2/k2;
- writeln('Среднее арифметическое положительных элементов s2=',s2:0:2);
- if s1>s2 then writeln('s1 больше')
- else if s2>s1 then writeln('s2 больше')
- else writeln(s1=s2);
- readln
- end.
Объяснение кода листинга программы
- Объявляются константы и переменные: — n = 4 (размер массива); — a = array[1..n,1..n] of integer (массив размером n на n для хранения целых чисел); — i, j, k1, k2 = integer (переменные для управления циклами); — s1, s2 = real (переменные для хранения средних значений).
- Инициализируются случайные числа: — randomize (задание начального значения генератору случайных чисел); — a[i,j] = -20 + random(41) (генерация случайного числа от -20 до 20 для каждого элемента массива).
- Выводятся значения элементов массива: — write(a[i,j]:4) (вывод значения элемента с шагом 4).
- Вычисляются средние значения: — s1 = 0 (сумма элементов четных строк); — s2 = 0 (сумма положительных элементов); — k1 = 0 (количество четных строк); — k2 = 0 (количество положительных элементов).
- Циклы для суммирования значений: — for i:=1 to n do (обход строк массива); — for j:=1 to n do (обход столбцов массива); — if i mod 2 = 0 then (условие для четных строк); — if a[i,j] > 0 then (условие для положительных элементов).
- Выводится среднее значение четных строк: — s1 = s1 / k1 (вычисление среднего значения); — writeln('Среднее арифметическое элементов в четных строках s1=',s1:0:2) (вывод значения с округлением до двух знаков после запятой).
- Проверяется наличие положительных элементов: — if k2 = 0 then (условие для отсутствия положительных элементов); — if s1 > s2 then (условие для выбора большего значения).
- Выводится среднее значение положительных элементов: — s2 = s2 / k2 (вычисление среднего значения); — writeln('Среднее арифметическое положительных элементов s2=',s2:0:2) (вывод значения с округлением до двух знаков после запятой).
- Выводится сообщение о том, какое значение больше: — if s1 > s2 then writeln('s1 больше') (условие для выбора большего значения); — else if s2 > s1 then writeln('s2 больше') (условие для выбора большего значения); — else writeln(s1=s2) (вывод сообщения о равенстве значений).
- Завершение работы программы: — readln (ожидание нажатия клавиши для завершения работы программы).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д