Программа


CONST PowerA=4; { Размерность массивов }
      PowerB=5;
TYPE Matrix4x4=array [1..PowerA,1..PowerA] of real;
     Matrix5x5=array [1..PowerB,1..PowerB] of real;
VAR A:Matrix4x4;  { Матрицы }
    B:Matrix5x5;
    S:real;   { Сумма элементов матрицы }
    SpA,SpB:real; { Следы }
PROCEDURE InputMatrix (var A:Matrix4x4); { Процедура ввода матрицы }
  Var i,j:word;  { Счетчики }
  Begin
    for i:=1 to PowerA do { Цикл ввода строк матрицы }
      for j:=1 to PowerA do { Цикл ввода элементов матрицы }
        begin
          Write('Введите элемент [',i,',',j,'] ');
                                 { Вывод приглашения ввести элемент матрицы }
          ReadLn(A[i,j])   { Ввод элемента матрицы }
        end
  End;
{
  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
         :
 *****************
 *               *
 *               *
 *     i:=1      *
 *               *
 *               *
 *****************
         :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
         :                                                 :
 *****************                                         :
 *               *                                         :
 *               *                                         :
 *     j:=1      *                                         :
 *               *                                         :
 *               *                                         :
 *****************                                         :
         :                                                 :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.             :
         :                                   :             :
         :                           *****************     :
         :                           *               *     :
         :                           *               *     :
         :                           *     j:=j+1    *     :         ┌─
         :                           *               *     :         │  Цикл
         :                           *               *     :         │  ввода
         :                           *****************     :∙∙∙∙∙∙∙∙∙│  строк
         :                                   :             :         │  матрицы
         :                                   :             :         │
         :                                   :             :         └─
         :                             *****************   :
         :                                                 :
         :                            * Ввод элемента *    :
         :                                 массива         :
         *                           *      [i,j]    *     :
       *   *                                               :
     *       *                      *****************      :
   *           *   Нет                       :             :
 *    j>PowerA   *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙             :
   *           *                                           :
     *       *                                             :
       *   *                                               :
         *                                                 :
         : Да                                              :
         :                                                 :
         :                                         *****************
         :                                         *               *
         :                                         *               *
         :                                         *     i:=i+1    *
         *                                         *               *
       *   *                                       *               *
     *       *                                     *****************
   *           *   Нет                                     :
 *    i>PowerA   *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
   *           *
     *       *
       *   *
         *
         : Да
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************
}
PROCEDURE GetMatrix (var B:Matrix5x5); { Процедура формирования матрицы }
  Var i,j:word;  { Счетчики }
  Begin
    for i:=1 to PowerB do { Цикл формирования строк матрицы }
      for j:=1 to PowerB do { Цикл формирования элементов матрицы }
        if i+j>5 then B[i,j]:=i+2*j    { Выбор формулы по условию }
                 else B[i,j]:=i-Sin(j)
  End;
{
  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
         :
 *****************
 *               *
 *               *
 *     i:=1      *
 *               *
 *               *
 *****************
         :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
         :                                                  :
 *****************                                          :
 *               *                                          :
 *               *                                          :
 *     j:=1      *                                          :
 *               *                                          :
 *               *                                          :
 *****************                                          :
         :                                                  :
         :∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.                         :
         :                        :                         :
         :                        :                         :
         :                *****************                 :
         :                *               *                 :
         :                *               *                 :
         :                *     i:=i+1    *                 :
         :                *               *                 :
         :                *               *                 :
         :                *****************                 :
         :                        :                         :
         :                        :                         :
         :           .∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.           :
         :           :                          :           :
         :           :                          :           :
         :   *****************          *****************   :
         :   *               *          *               *   :    ┌─
         :   *               *          *    B[i,j]:=   *   :    │  Цикл
         :   * B[i,j]:=i+2*j *          *               *   :    │  формирования
         :   *               *          *    i-Sin(j)   *   :∙∙∙∙│  строк
         :   *               *          *               *   :    │  матрицы
         :   *****************    *     *****************   :    │
         :           :          *   *           :           :    └─
         :           :        *       *         :           :
         :           : Да   *           *   Нет :           :
         :           `∙∙∙∙*      i+j>5    *∙∙∙∙∙'           :
         :                  *           *                   :
         *                    *       *                     :
       *   *                    *   *                       :
     *       *                    *                         :
   *           *   Нет            :                         :
 *    j>PowerB   *∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙'                         :
   *           *                                            :
     *       *                                              :
       *   *                                                :
         *                                                  :
         : Да                                               :
         :                                                  :
         :                                          *****************
         :                                          *               *
         :                                          *               *
         :                                          *     i:=i+1    *
         *                                          *               *
       *   *                                        *               *
     *       *                                      *****************
   *           *   Нет                                      :
 *    i>PowerB   *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
   *           *
     *       *
       *   *
         *
         : Да
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************
}
FUNCTION GetSpA (A:Matrix4x4):real; { Функция вычисления следа матрицы 4x4 }
  Var Sp:real;  { След }
      i:word;  { Счетчик }
  Begin
    Sp:=0;  { Обнуление переменной }
    for i:=1 to PowerA do { Цикл просмотра диагональных элементов матрицы }
      Sp:=Sp+A[i,i];   { Набор суммы }
    GetSpA:=Sp        { Определение значения функции }
  End;
{
  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
         :
 *****************
 *               *
 *               *
 *    Sp:=0      *
 *               *
 *               *
 *****************
         :
         :
         :
 *****************
 *               *
 *               *
 *     i:=1      *
 *               *
 *               *
 *****************
         :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
         :                    :
         :                    :
         :            *****************
         :            *               *
         :            *               *
         :            *     i:=i+1    *
         :            *               *
         :            *               *
         :            *****************
         :                    :
         :                    :
         :            *****************
         :            *               *
         :            *               *
         :            * Sp:=Sp+A[i,i] *
         *            *               *
       *   *          *               *
     *       *        *****************
   *           *   Нет        :
 *    i>PowerA   *∙∙∙∙∙∙∙∙∙∙∙∙'
   *           *
     *       *
       *   *
         *
         : Да
         :
         :
 *****************    ┌─
 *               *    │
 *               *    │ Определение
 *  GetSpA:=Sp   *∙∙∙∙│ значения
 *               *    │ функции
 *               *    │
 *****************    └─
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************
}
FUNCTION GetSpB (B:Matrix5x5):real; { Функция вычисления следа матрицы 5x5 }
  Var Sp:real;  { След }
      i:word;  { Счетчик }
  Begin
    Sp:=0;  { Обнуление переменной }
    for i:=1 to PowerB do { Цикл просмотра диагональных элементов матрицы }
      Sp:=Sp+B[i,i];   { Набор суммы }
    GetSpB:=Sp        { Определение значения функции }
  End;
{
  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
         :
 *****************
 *               *
 *               *
 *    Sp:=0      *
 *               *
 *               *
 *****************
         :
         :
         :
 *****************
 *               *
 *               *
 *     i:=1      *
 *               *
 *               *
 *****************
         :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
         :                    :
         :                    :
         :            *****************
         :            *               *
         :            *               *
         :            *     i:=i+1    *
         :            *               *
         :            *               *
         :            *****************
         :                    :
         :                    :
         :            *****************
         :            *               *
         :            *               *
         :            * Sp:=Sp+B[i,i] *
         *            *               *
       *   *          *               *
     *       *        *****************
   *           *   Нет        :
 *    i>PowerB   *∙∙∙∙∙∙∙∙∙∙∙∙'
   *           *
     *       *
       *   *
         *
         : Да
         :
         :
 *****************
 *               *    ┌─
 *               *    │ Определение
 *  GetSpB:=Sp   *∙∙∙∙│ значения
 *               *    │ функции
 *               *    └─
 *****************
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************
}
FUNCTION SumA (A:Matrix4x4):real;
                              { Функция вычисления суммы элементов матрицы A }
  Var i,j:word;   { Счетчики }
      Sum:real;   { Сумма }
  Begin
    Sum:=0;  { Обнуление суммы }
    for i:=1 to PowerA do { Цикл просмотра строк }
      for j:=1 to PowerA do { Цикл просмотра элементов }
        Sum:=Sum+A[i,j];      { Набор суммы }
    SumA:=Sum    { Определение значения функции }
  End;
{
  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
         :
 *****************
 *               *
 *               *
 *    Sum:=0     *
 *               *
 *               *
 *****************
         :
         :
         :
 *****************
 *               *
 *               *
 *     i:=1      *
 *               *
 *               *
 *****************
         :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
         :                                                 :
 *****************                                         :
 *               *                                         :
 *               *                                         :
 *     j:=1      *                                         :
 *               *                                         :
 *               *                                         :
 *****************                                         :
         :                                                 :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.             :
         :                                   :             :
         :                           *****************     :
         :                           *               *     :
         :                           *               *     :
         :                           *     j:=j+1    *     :
         :                           *               *     :       ┌─
         :                           *               *     :       │ Цикл
         :                           *****************     :∙∙∙∙∙∙∙│ просмотра
         :                                   :             :       │ строк
         :                                   :             :       └─
         :                                   :             :
         :                           *****************     :
         :                           *               *     :
         :                           *               *     :
         :                           *Sum:=Sum+A[i,j]*     :
         *                           *               *     :
       *   *                         *               *     :
     *       *                       *****************     :
   *           *   Нет                       :             :
 *    j>PowerA   *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙'             :
   *           *                                           :
     *       *                                             :
       *   *                                               :
         *                                                 :
         : Да                                              :
         :                                                 :
         :                                         *****************
         :                                         *               *
         :                                         *               *
         :                                         *     i:=i+1    *
         *                                         *               *
       *   *                                       *               *
     *       *                                     *****************
   *           *   Нет                                     :
 *    i>PowerA   *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
   *           *
     *       *
       *   *
         *
         : Да
         :
         :
 *****************
 *               *    ┌─
 *               *    │ Определение
 *   SumA:=Sum   *∙∙∙∙│ значения
 *               *    │ функции
 *               *    └─
 *****************
         :
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************
}
FUNCTION SumB (B:Matrix5x5):real;
                              { Функция вычисления суммы элементов матрицы B }
  Var i,j:word;   { Счетчики }
      Sum:real;   { Сумма }
  Begin
    Sum:=0;  { Обнуление суммы }
    for i:=1 to PowerB do { Цикл просмотра строк }
      for j:=1 to PowerB do { Цикл просмотра элементов }
        Sum:=Sum+B[i,j];      { Набор суммы }
    SumB:=Sum    { Определение значения функции }
  End;
{
  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
         :
 *****************
 *               *
 *               *
 *    Sum:=0     *
 *               *
 *               *
 *****************
         :
         :
         :
 *****************
 *               *
 *               *
 *     i:=1      *
 *               *
 *               *
 *****************
         :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
         :                                                 :
 *****************                                         :
 *               *                                         :
 *               *                                         :
 *     j:=1      *                                         :
 *               *                                         :
 *               *                                         :
 *****************                                         :
         :                                                 :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.             :
         :                                   :             :
         :                           *****************     :
         :                           *               *     :
         :                           *               *     :
         :                           *     j:=j+1    *     :
         :                           *               *     :       ┌─
         :                           *               *     :       │ Цикл
         :                           *****************     :∙∙∙∙∙∙∙│ просмотра
         :                                   :             :       │ строк
         :                                   :             :       └─
         :                                   :             :
         :                           *****************     :
         :                           *               *     :
         :                           *               *     :
         :                           *Sum:=Sum+B[i,j]*     :
         *                           *               *     :
       *   *                         *               *     :
     *       *                       *****************     :
   *           *   Нет                       :             :
 *    j>PowerB   *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙'             :
   *           *                                           :
     *       *                                             :
       *   *                                               :
         *                                                 :
         : Да                                              :
         :                                                 :
         :                                         *****************
         :                                         *               *
         :                                         *               *
         :                                         *     i:=i+1    *
         *                                         *               *
       *   *                                       *               *
     *       *                                     *****************
   *           *   Нет                                     :
 *    i>PowerB   *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
   *           *
     *       *
       *   *
         *
         : Да
         :
         :
 *****************
 *               *    ┌─
 *               *    │ Определение
 *   SumB:=Sum   *∙∙∙∙│ значения
 *               *    │ функции
 *               *    └─
 *****************
         :
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************
}
PROCEDURE OutputMatrixA (A:Matrix4x4); { Процедура вывода матрицы 4x4 }
  Var i,j:word;   { Счетчики }
  Begin
    for i:=1 to PowerA do { Цикл вывода строк матрицы }
      begin
        for j:=1 to PowerA do { Цикл вывода элементов матрицы }
          Write (A[i,j],'  ');  { Вывод элемента матрицы }
        WriteLn  { Вывод конца строки }
      end
  End;
{
  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
         :
 *****************
 *               *
 *               *
 *     i:=1      *
 *               *
 *               *
 *****************
         :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
         :                                                 :
 *****************                                         :
 *               *                                         :
 *               *                                 *****************
 *     j:=1      *                                 *               *
 *               *                                 *               *
 *               *                                 *     i:=i+1    *
 *****************                                 *               *
         :                                         *               *
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.                 *****************
         :                       :                         :
         :               *****************                 :
         :               *               *                 :
         :               *               *                 :
         :               *     j:=j+1    *                 :         ┌─
         :               *               *                 :         │  Цикл
         :               *               *                 :         │  вывода
         :               *****************                 :∙∙∙∙∙∙∙∙∙│  строк
         :                       :                         :         │  матрицы
         :                       :                         :         │
         :                       :                         :         └─
         :                 *****************               :
         :                                                 :
         :                * Вывод элемента*                :
         :                     массива                     :
         *               *      [i,j]    *                 :
       *   *                                               :
     *       *          *****************                  :
   *           *   Нет           :                         :
 *    j>PowerA   *∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙                         :
   *           *                                           :
     *       *                                             :
       *   *                                               :
         *                                                 :
         : Да                                              :
         :                                                 :
         :                                                 :
         :                                                 :
         :                                                 :
         :                                                 :
         *                                                 :
       *   *                                               :
     *       *                                             :
   *           *   Нет                                     :
 *    i>PowerA   *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
   *           *
     *       *
       *   *
         *
         : Да
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************
}
PROCEDURE OutputMatrixB (B:Matrix5x5); { Процедура вывода матрицы 5x5 }
  Var i,j:word;   { Счетчики }
  Begin
    for i:=1 to PowerB do { Цикл вывода строк матрицы }
      begin
        for j:=1 to PowerB do { Цикл вывода элементов матрицы }
          Write (B[i,j]:14,'  ');  { Вывод элемента матрицы }
      end
  End;
{
  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
         :
 *****************
 *               *
 *               *
 *     i:=1      *
 *               *
 *               *
 *****************
         :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
         :                                                 :
 *****************                                         :
 *               *                                         :
 *               *                                 *****************
 *     j:=1      *                                 *               *
 *               *                                 *               *
 *               *                                 *     i:=i+1    *
 *****************                                 *               *
         :                                         *               *
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.                 *****************
         :                       :                         :
         :               *****************                 :
         :               *               *                 :
         :               *               *                 :
         :               *     j:=j+1    *                 :         ┌─
         :               *               *                 :         │  Цикл
         :               *               *                 :         │  вывода
         :               *****************                 :∙∙∙∙∙∙∙∙∙│  строк
         :                       :                         :         │  матрицы
         :                       :                         :         │
         :                       :                         :         └─
         :                 *****************               :
         :                                                 :
         :                * Вывод элемента*                :
         :                     массива                     :
         *               *      [i,j]    *                 :
       *   *                                               :
     *       *          *****************                  :
   *           *   Нет           :                         :
 *    j>PowerA   *∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙                         :
   *           *                                           :
     *       *                                             :
       *   *                                               :
         *                                                 :
         : Да                                              :
         :                                                 :
         :                                                 :
         :                                                 :
         :                                                 :
         :                                                 :
         *                                                 :
       *   *                                               :
     *       *                                             :
   *           *   Нет                                     :
 *    i>PowerA   *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
   *           *
     *       *
       *   *
         *
         : Да
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************
}
BEGIN
  InputMatrix(A); { Ввод матрицы A }
  GetMatrix(B);   { Формирование матрицы B }
  SpA:=GetSpA(A); { Вычисление следа матрицы A }
  SpB:=GetSpB(B); { Вычисление следа матрицы B }
  if SpA>SpB then S:=SumA(A)  { Сравнение следов и вычисление суммы элементов матрицы }
             else S:=SumB(B);
  WriteLn; WriteLn; { Пропуск строк }
  WriteLn('Матрица A'); { Вывод заголовка }
  OutputMatrixA(A);     { Вывод матрицы A }
  WriteLn('SpA=',SpA);  { Вывод следа матрицы A }
  WriteLn; { Пропуск строки }
  WriteLn('Матрица B'); { Вывод заголовка }
  OutputMatrixB(B);     { Вывод матрицы B }
  WriteLn('SpB=',SpB);  { Вывод следа матрицы B }
  WriteLn; { Пропуск строки }
  WriteLn('S=',S)       { Вывод суммы }
END.

  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
         :
   *****************

  *    Ввод       *
      массива
 *       A       *

*****************
         :
         :
         :
 *****************
 * *  Формиро- * *
 * *   вание   * *
 * *  массива  * *
 * *     B     * *
 * *           * *
 *****************
         :
         :
         :
 *****************
 *               *
 *               *
 *SpA:=GetSpA(A) *
 *               *
 *               *
 *****************
         :
         :
         :
 *****************
 *               *
 *               *
 *SpB:=GetSpB(B) *
 *               *
 *               *
 *****************
         :
         :
         :
         *
       *   *
     *       *
   *           *   Нет
 *    SpA>SpB    *∙∙∙∙∙∙∙∙∙∙∙∙∙>∙∙∙∙∙∙∙∙∙∙∙∙.
   *           *                            :
     *       *                              :
       *   *                                :
         *                                  :
         : Да                               :
         :                                  :
 *****************                  *****************
 *               *                  *               *
 *               *                  *               *
 *   S:=SumA(A)  *                  *   S:=SumB(B)  *
 *               *                  *               *
 *               *                  *               *
 *****************                  *****************
         :                                  :
         :                                  :
         :                                  :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'
         :
         :
         :
   *****************

  *    Вывод      *
      массива
 *       A       *

*****************
         :
         :
         :
   *****************

  *               *
        SpA
 *               *

*****************
         :
         :
         :
   *****************

  *    Вывод      *
      массива
 *       B       *

*****************
         :
         :
         :
   *****************

  *               *
        SpB
 *               *

*****************
         :
         :
         :
   *****************

  *               *
         S
 *               *

*****************
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************

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