Среднее арифметическое элементов массива - 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 (ожидание нажатия клавиши для завершения работы программы).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д