Составить одномерный массив из средних арифметических значений элементов строк матрицы - Pascal
Формулировка задачи:
Вводятся две вещественные матрицы размером 20х30 и 30х40. Для той матрицы, у которой сумма положительных элементов матрицы меньше, составить одномерный массив из средних арифметических значений элементов строк матрицы и отсортировать его в порядке убывания элементов. Вывести на печать саму матрицу, найденную сумму элементов и oтсортированный одномерный массив.
Решение задачи: «Составить одномерный массив из средних арифметических значений элементов строк матрицы»
textual
Листинг программы
const am=20; an=30; bm=30; bn=40; var a: array [1..am,1..an] of Real; b: array [1..bm,1..bn] of Real; c: array [1..bm] of Real; sa, sb, t: Real; cn, i, j, k: Integer; begin Randomize; for i:=1 to am do for j:=1 to an do a[i,j]:=-10.0+Random*19.99; for i:=1 to bm do for j:=1 to bn do b[i,j]:=-10.0+Random*19.99; for i:=1 to an do for j:=1 to an do if a[i,j]>0 then sa:=sa+a[i,j]; for i:=1 to bn do for j:=1 to bn do if b[i,j]>0 then sb:=sb+b[i,j]; if sa<sb then begin cn:=am; for i:=1 to am do begin t:=0; for j:=1 to an do t:=t+a[i,j]; c[i]:=t/an; end; WriteLn('A ='); for i:=1 to am do begin for j:=1 to an do Write(a[i,j]:5:1); WriteLn; end; WriteLn('SUMp =',sa:0:1); end else begin cn:=bm; for i:=1 to bm do begin t:=0; for j:=1 to bn do t:=t+b[i,j]; c[i]:=t/bn; end; WriteLn('B ='); for i:=1 to bm do begin for j:=1 to bn do Write(b[i,j]:5:1); WriteLn; end; WriteLn('SUMp =',sb:0:1); end; i:=cn; repeat k:=1; for j:=1 to i-1 do if c[j+1]>c[j] then begin k:=j; t:=c[j+1]; c[j+1]:=c[j]; c[j]:=t; end; i:=k; until k=1; WriteLn('C ='); for j:=1 to cn do Write(c[j]:5:1); WriteLn; end.
Объяснение кода листинга программы
- Объявляются константы
am
(значение 20) иan
(значение 30) для размеров массиваa
, а также константыbm
(значение 30) иbn
(значение 40) для массиваb
. - Объявляются переменные:
a
- массив размером 20x30b
- массив размером 30x40c
- массив размером 30sa
,sb
,t
- вещественные числаcn
,i
,j
,k
- целые числа
- Генерируются случайные значения и заполняется массив
a
случайными вещественными числами от -10.0 до 9.99. - Аналогично заполняется массив
b
. - Вычисляется сумма положительных элементов массива
a
иb
и присваивается переменнымsa
иsb
соответственно. - Сравниваются суммы
sa
иsb
, выбирается массив с наибольшей суммой положительных элементов. - Если
sa
<sb
, то для каждой строки массиваа
вычисляется среднее арифметическоеan
элементов, и результат сохраняется в массивеc
. Затем выводится массива
и его сумма положительных значений. - Если
sa
≥sb
, то для каждой строки массиваb
вычисляется среднее арифметическоеbn
элементов и сохраняется в массивеc
. Затем выводится массивb
и его сумма положительных значений. - Сортируется массив
c
в порядке убывания. - Выводится отсортированный массив
c
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д