Составить одномерный массив из средних арифметических значений элементов строк матрицы - 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.

Объяснение кода листинга программы

  1. Объявляются константы am (значение 20) и an (значение 30) для размеров массива a, а также константы bm (значение 30) и bn (значение 40) для массива b.
  2. Объявляются переменные:
    • a - массив размером 20x30
    • b - массив размером 30x40
    • c - массив размером 30
    • sa, sb, t - вещественные числа
    • cn, i, j, k - целые числа
  3. Генерируются случайные значения и заполняется массив a случайными вещественными числами от -10.0 до 9.99.
  4. Аналогично заполняется массив b.
  5. Вычисляется сумма положительных элементов массива a и b и присваивается переменным sa и sb соответственно.
  6. Сравниваются суммы sa и sb, выбирается массив с наибольшей суммой положительных элементов.
  7. Если sa < sb, то для каждой строки массива а вычисляется среднее арифметическое an элементов, и результат сохраняется в массиве c. Затем выводится массив а и его сумма положительных значений.
  8. Если sasb, то для каждой строки массива b вычисляется среднее арифметическое bn элементов и сохраняется в массиве c. Затем выводится массив b и его сумма положительных значений.
  9. Сортируется массив c в порядке убывания.
  10. Выводится отсортированный массив c.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы