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