Из сумм элементов строк матрицы сформировать вектор - Free Pascal

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

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

Дана матрица А[1:6,1:6] и вектор B[1:6]. Из сумм элементов строк матрицы сформировать вектор C. Если минимальный элемент вектора C кратен минимальному элементу вектора B, то из положительных элементов матрицы А сформировать вектор D и упорядочить его по возрастанию. Иначе матрицу А упорядочить по возрастанию.

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

textual
Листинг программы
  1. uses  Crt;
  2. const n=6;
  3. type  Tmass=array[1..n] of integer;
  4.       Tmatr=array[1..n,1..n] of integer;
  5. var   a:Tmatr;
  6.       b,c:Tmass;
  7.       d:array[1..(n*n)] of integer;
  8.       i,j,t,z,m,min1,min2,sum:integer;
  9. begin
  10.       ClrScr;
  11.        Writeln('Matrix A:');
  12.         Writeln;
  13.          Randomize;
  14.           min1:=MaxInt;
  15.        for i:=1 to n do
  16.         begin
  17.           for j:=1 to n do
  18.            begin
  19.              a[i,j]:=Random(51)-30;
  20.              Write(a[i,j]:5);
  21.            end;
  22.           Writeln;
  23.           b[i]:=Random(51)-30;
  24.           if b[i]<min1
  25.            then min1:=b[i];
  26.         end;
  27.        Writeln;
  28.         Writeln('Vactor B:');
  29.          Writeln;
  30.        for i:=1 to n do
  31.         Write(b[i]:5);
  32.          Writeln;
  33.           Writeln;
  34.        min2:=MaxInt;
  35.         Writeln('Vector C:');
  36.          Writeln;
  37.        for i:=1 to n do
  38.         begin
  39.           sum:=0;
  40.           for j:=1 to n do
  41.            sum:=sum+a[i,j];
  42.           c[i]:=sum;
  43.           if c[i]<min2
  44.            then min2:=c[i];
  45.           Write(c[i]:6);
  46.         end;
  47.        Writeln;
  48.         Writeln;
  49.        if (min2 mod min1)=0
  50.         then
  51.          begin
  52.            t:=0;
  53.            for i:=1 to n do
  54.             for j:=1 to n do
  55.              if a[i,j]>0 then
  56.               begin
  57.                 Inc(t);
  58.                 d[t]:=a[i,j];
  59.               end;
  60.            if t>1 then
  61.             for i:=1 to t-1 do
  62.              for j:=1 to t-i do
  63.               if d[j]>d[j+1] then
  64.                begin
  65.                  sum:=d[j];
  66.                  d[j]:=d[j+1];
  67.                  d[j+1]:=sum;
  68.                end;
  69.            Writeln('Vector D:');
  70.             Writeln;
  71.            for i:=1 to t do
  72.             Write(d[i]:5);
  73.          end
  74.         else
  75.          begin
  76.            repeat
  77.               z:=0;
  78.               t:=n;
  79.               for i:=1 to n-1 do
  80.                for j:=1 to n-i do
  81.                 if a[t,j]>a[t,j+1] then
  82.                  begin
  83.                    m:=a[t,j];
  84.                    a[t,j]:=a[t,j+1];
  85.                    a[t,j +1]:=m;
  86.                  end;
  87.               Dec(t);
  88.               repeat
  89.                  for i:=1 to n-1 do
  90.                   for j:=1 to n-i do
  91.                    if a[t,j]>a[t,j+1] then
  92.                     begin
  93.                       m:=a[t,j];
  94.                       a[t,j]:=a[t,j+1];
  95.                       a[t,j +1]:=m;
  96.                     end;
  97.                  if a[t,n]>a[t+1,1] then
  98.                   begin
  99.                     m:=a[t,n];
  100.                     a[t,n]:=a[t+1,1];
  101.                     a[t+1,1]:=m;
  102.                     Inc(z);
  103.                   end;
  104.                  Dec(t);
  105.               until t<1;
  106.            until z=0;
  107.            Writeln('Matrix A:');
  108.             Writeln;
  109.            for i:=1 to n do
  110.             begin
  111.               for j:=1 to n do
  112.                Write(a[i,j]:5);
  113.               Writeln;
  114.             end;
  115.          end;
  116.       ReadKey;
  117. end.

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

  1. Объявлены следующие переменные:
    • a: матрица размером n на n для хранения значений элементов матрицы A;
    • b: вектор размером n для хранения значений элементов вектора B;
    • c: вектор размером n для хранения значений элементов вектора C;
    • d: массив размером n*n для хранения значений элементов вектора D;
    • i, j, t, z, m, min1, min2, sum: целочисленные переменные для выполнения операций.
  2. Задано значение константы n равное 6.
  3. Выполнена инициализация матрицы a случайными значениями с помощью функции Random и присваивания min1 значения MaxInt.
  4. Выведена матрица A на экран.
  5. Выполнена инициализация вектора b случайными значениями.
  6. Выведен вектор B на экран.
  7. Выполнена инициализация вектора C суммами элементов строк матрицы A.
  8. Выведен вектор C на экран.
  9. Проверено равенство min2 и min1. Если оно не выполняется, то выполнен алгоритм сортировки элементов вектора C по возрастанию.
  10. Выполнен вывод вектора D на экран.
  11. Ввод ключа с помощью функции ReadKey.

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


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

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

14   голосов , оценка 3.929 из 5

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

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

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