Составить одномерный массив из средних арифметических значений элементов строк матрицы - Pascal

Узнай цену своей работы

Формулировка задачи:

Вводятся две вещественные матрицы размером 20х30 и 30х40. Для той матрицы, у которой сумма положительных элементов матрицы меньше, составить одномерный массив из средних арифметических значений элементов строк матрицы и отсортировать его в порядке убывания элементов. Вывести на печать саму матрицу, найденную сумму элементов и oтсортированный одномерный массив.

Решение задачи: «Составить одномерный массив из средних арифметических значений элементов строк матрицы»

textual
Листинг программы
  1. const am=20; an=30; bm=30; bn=40;
  2. var
  3.   a: array [1..am,1..an] of Real;
  4.   b: array [1..bm,1..bn] of Real;
  5.   c: array [1..bm] of Real;
  6.   sa, sb, t: Real;
  7.   cn, i, j, k: Integer;
  8. begin
  9.   Randomize;
  10.   for i:=1 to am do for j:=1 to an do a[i,j]:=-10.0+Random*19.99;
  11.   for i:=1 to bm do for j:=1 to bn do b[i,j]:=-10.0+Random*19.99;
  12.   for i:=1 to an do for j:=1 to an do if a[i,j]>0 then sa:=sa+a[i,j];
  13.   for i:=1 to bn do for j:=1 to bn do if b[i,j]>0 then sb:=sb+b[i,j];
  14.   if sa<sb then begin cn:=am;
  15.     for i:=1 to am do begin
  16.       t:=0; for j:=1 to an do t:=t+a[i,j]; c[i]:=t/an;
  17.     end;
  18.     WriteLn('A =');
  19.     for i:=1 to am do begin
  20.       for j:=1 to an do Write(a[i,j]:5:1); WriteLn;
  21.     end;
  22.     WriteLn('SUMp =',sa:0:1);
  23.   end else begin cn:=bm;
  24.     for i:=1 to bm do begin
  25.       t:=0; for j:=1 to bn do t:=t+b[i,j]; c[i]:=t/bn;
  26.     end;
  27.     WriteLn('B =');
  28.     for i:=1 to bm do begin
  29.       for j:=1 to bn do Write(b[i,j]:5:1); WriteLn;
  30.     end;
  31.     WriteLn('SUMp =',sb:0:1);
  32.   end;
  33.   i:=cn;
  34.   repeat
  35.     k:=1;
  36.     for j:=1 to i-1 do
  37.       if c[j+1]>c[j] then begin
  38.         k:=j; t:=c[j+1]; c[j+1]:=c[j]; c[j]:=t;
  39.       end;
  40.     i:=k;
  41.   until k=1;
  42.   WriteLn('C ='); for j:=1 to cn do Write(c[j]:5:1); WriteLn;
  43. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы