Программа


{ ЛИКИ 
  Работа с матрицами 
  и векторами }
Program Denis_5;
Const LineQuantityA=7;      { Количество строк в матрице A }
      ColumnQuantityA=7;    { Количество столбцов в матрице A }
      LineQuantityB=5;      { Количество строк в матрице B }
      ColumnQuantityB=5;    { Количество столбцов в матрице B }
Type MatrixA=array [1..LineQuantityA,1..ColumnQuantityA] of real;
                                                             { Тип матрица A }
     VectorC=array [1..LineQuantityA] of longint;            { Тип вектор С }
     MatrixB=array [1..LineQuantityB,1..ColumnQuantityB] of real;
                                                             { Тип матрица B }
     VectorD=array [1..LineQuantityB] of longint;            { Тип вектор D }
Var A:MatrixA;  { Переменная матрица A }
    B:MatrixB;  { Переменная матрица B }
    C:VectorC;  { Переменная вектор C }
    D:VectorD;  { Переменная вектор D }
Procedure InputMatrixA(var A:MatrixA); { Процедура ввода матрицы A }
  Var LineMeter:1..LineQuantityA; { Счетчик строк }
      ColumnMeter:1..ColumnQuantityA; { Счетчик столбцов }
  Begin
    for LineMeter:=1 to LineQuantityA do  { Цикл  ввода строк }
      for ColumnMeter:=1 to ColumnQuantityA do { Цикл  ввода строки }
        begin
          Write('Введите элемент матрицы A[',LineMeter,',',ColumnMeter,'] ');
                                  { Вывод приглашения ввести элемент матрицы }
          ReadLn(A[LineMeter,ColumnMeter]) { Ввод элемента матрицы }
        end
  End;
Procedure InputMatrixB(var B:MatrixB); { Процедура ввода матрицы B }
  Var LineMeter:1..LineQuantityB; { Счетчик строк }
      ColumnMeter:1..ColumnQuantityB; { Счетчик столбцов }
  Begin
    for LineMeter:=1 to LineQuantityB do  { Цикл  ввода строк }
      for ColumnMeter:=1 to ColumnQuantityB do { Цикл  ввода строки }
        begin
          Write('Введите элемент матрицы B[',LineMeter,',',ColumnMeter,'] ');
                                  { Вывод приглашения ввести элемент матрицы }
          ReadLn(B[LineMeter,ColumnMeter]) { Ввод элемента матрицы }
        end
  End;
Procedure OutputMatrixA(A:MatrixA); { Процедура вывода матрицы A }
  Var LineMeter:1..LineQuantityA; { Счетчик строк }
      ColumnMeter:1..ColumnQuantityA; { Счетчик столбцов }
  Begin
    for LineMeter:=1 to LineQuantityA do  { Цикл  вывода строк }
      begin
        for ColumnMeter:=1 to ColumnQuantityA do { Цикл  вывода строки }
          Write(A[LineMeter,ColumnMeter]:10,' '); { Вывод элемента }
          WriteLn  { Пропуск строки }
      end
  End;
Procedure OutputMatrixB(B:MatrixB); { Процедура вывода матрицы B }
  Var LineMeter:1..LineQuantityB; { Счетчик строк }
      ColumnMeter:1..ColumnQuantityB; { Счетчик столбцов }
  Begin
    for LineMeter:=1 to LineQuantityB do  { Цикл  вывода строк }
      begin
        for ColumnMeter:=1 to ColumnQuantityB do { Цикл  вывода строки }
          Write(B[LineMeter,ColumnMeter]:10,' '); { Вывод элемента }
          WriteLn  { Пропуск строки }
      end
  End;
Procedure ProcessAC(A:MatrixA; var C:VectorC);
                                          { Процедура формирования массива C }
  var Meter:1..LineQuantityA;             { Счетчик }
  Begin
    for Meter:=1 to LineQuantityA do
      C[Meter]:=Round(A[Meter,LineQuantityA-Meter+1])
                                                { Цикл определения вектора С }
  End;
Procedure ProcessBD(B:MatrixB; var D:VectorD);
                                          { Процедура формирования массива D }
  var Meter:1..LineQuantityB;             { Счетчик }
  Begin
    for Meter:=1 to LineQuantityB do
      D[Meter]:=Round(B[Meter,LineQuantityB-Meter+1])
                                                { Цикл определения вектора D }
  End;
Procedure OutputVectorC(C:VectorC); { Процедура вывода вектора C }
  var Meter:1..LineQuantityA;             { Счетчик }
  Begin
    for Meter:=1 to LineQuantityA do Write(C[Meter]:10,' ');
                                             { Цикл вывода элементов вектора }
    WriteLn { Пропуск строки }
  End;
Procedure OutputVectorD(D:VectorD); { Процедура вывода вектора D }
  var Meter:1..LineQuantityB;             { Счетчик }
  Begin
    for Meter:=1 to LineQuantityB do Write(D[Meter]:10,' ');
                                             { Цикл вывода элементов вектора }
    WriteLn { Пропуск строки }
  End;
BEGIN
  WriteLn; { Пропуск строки }
  InputMatrixA(A);  { Ввод матрицы A }
  WriteLn; { Пропуск строки }
  InputMatrixB(B);  { Ввод матрицы B }
  ProcessAC(A,C); { Формирование массива C }
  ProcessBD(B,D); { Формирование массива D }
  WriteLn; { Пропуск строки }
  WriteLn('Матрица A:'); { Вывод заголовка }
  OutputMatrixA(A);  { Вывод матрицы A }
  WriteLn('Вектор C:'); { Вывод заголовка }
  OutputVectorC(C);  { Вывод вектора С }
  WriteLn; { Пропуск строки }
  WriteLn('Матрица В:'); { Вывод заголовка }
  OutputMatrixB(B);  { Вывод матрицы B }
  WriteLn('Вектор D:'); { Вывод заголовка }
  OutputVectorD(D);  { Вывод вектора D }
END.

Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию