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

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

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

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

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

textual
Листинг программы
uses  Crt;
const n=6;
type  Tmass=array[1..n] of integer;
      Tmatr=array[1..n,1..n] of integer;
var   a:Tmatr;
      b,c:Tmass;
      d:array[1..(n*n)] of integer;
      i,j,t,z,m,min1,min2,sum:integer;
begin
      ClrScr;
       Writeln('Matrix A:');
        Writeln;
         Randomize;
          min1:=MaxInt;
       for i:=1 to n do
        begin
          for j:=1 to n do
           begin
             a[i,j]:=Random(51)-30;
             Write(a[i,j]:5);
           end;
          Writeln;
          b[i]:=Random(51)-30;
          if b[i]<min1
           then min1:=b[i];
        end;
       Writeln;
        Writeln('Vactor B:');
         Writeln;
       for i:=1 to n do
        Write(b[i]:5);
         Writeln;
          Writeln;
       min2:=MaxInt;
        Writeln('Vector C:');
         Writeln;
       for i:=1 to n do
        begin
          sum:=0;
          for j:=1 to n do
           sum:=sum+a[i,j];
          c[i]:=sum;
          if c[i]<min2
           then min2:=c[i];
          Write(c[i]:6);
        end;
       Writeln;
        Writeln;
       if (min2 mod min1)=0
        then
         begin
           t:=0;
           for i:=1 to n do
            for j:=1 to n do
             if a[i,j]>0 then
              begin
                Inc(t);
                d[t]:=a[i,j];
              end;
           if t>1 then
            for i:=1 to t-1 do
             for j:=1 to t-i do
              if d[j]>d[j+1] then
               begin
                 sum:=d[j];
                 d[j]:=d[j+1];
                 d[j+1]:=sum;
               end;
           Writeln('Vector D:');
            Writeln;
           for i:=1 to t do
            Write(d[i]:5);
         end
        else
         begin
           repeat
              z:=0;
              t:=n;
              for i:=1 to n-1 do
               for j:=1 to n-i do
                if a[t,j]>a[t,j+1] then
                 begin
                   m:=a[t,j];
                   a[t,j]:=a[t,j+1];
                   a[t,j +1]:=m;
                 end;
              Dec(t);
              repeat
                 for i:=1 to n-1 do
                  for j:=1 to n-i do
                   if a[t,j]>a[t,j+1] then
                    begin
                      m:=a[t,j];
                      a[t,j]:=a[t,j+1];
                      a[t,j +1]:=m;
                    end;
                 if a[t,n]>a[t+1,1] then
                  begin
                    m:=a[t,n];
                    a[t,n]:=a[t+1,1];
                    a[t+1,1]:=m;
                    Inc(z);
                  end;
                 Dec(t);
              until t<1;
           until z=0;
           Writeln('Matrix A:');
            Writeln;
           for i:=1 to n do
            begin
              for j:=1 to n do
               Write(a[i,j]:5);
              Writeln;
            end;
         end;
      ReadKey;
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
Похожие ответы