Программа


{ ЛИКИ 
  работа с матрицами
  формрование матрицы
  вычисление среднего }
Program Denis_4;
Const LineQuantity=5;      { Количество строк в матрице }
      ColumnQuantity=3;    { Количество столбцов в матрице }
Type MatrixOfInt=array [1..LineQuantity,1..ColumnQuantity] of integer;
                                                               { Тип матрица }
     MatrixOfRel=array [1..LineQuantity,1..ColumnQuantity] of real;
                                                               { Тип матрица }
Var A:MatrixOfInt;  { Переменная матрица }
    B:MatrixOfRel;  { Переменная матрица }
    Meter:integer; { Счетчик }
    Medium:real;
Procedure InputMatrixOfInt(var A:MatrixOfInt); { Процедура ввода матрицы }
  Var LineMeter:1..LineQuantity; { Счетчик строк }
      ColumnMeter:1..ColumnQuantity; { Счетчик столбцов }
  Begin
    for LineMeter:=1 to LineQuantity do  { Цикл  ввода строк }
      for ColumnMeter:=1 to ColumnQuantity do { Цикл  ввода строки }
        begin
          Write('Введите элемент матрицы [',LineMeter,',',ColumnMeter,'] ');
                                  { Вывод приглашения ввести элемент матрицы }
          ReadLn(A[LineMeter,ColumnMeter]) { Ввод элемента матрицы }
        end
  End;
Procedure OutputMatrixOfInt(A:MatrixOfInt); { Процедура вывода матрицы }
  Var LineMeter:1..LineQuantity; { Счетчик строк }
      ColumnMeter:1..ColumnQuantity; { Счетчик столбцов }
  Begin
    for LineMeter:=1 to LineQuantity do  { Цикл  вывода строк }
      begin
        for ColumnMeter:=1 to ColumnQuantity do { Цикл  вывода строки }
          Write(A[LineMeter,ColumnMeter]:5,' '); { Вывод элемента }
          WriteLn  { Пропуск строки }
      end
  End;
Procedure OutputMatrixOfRel(A:MatrixOfRel); { Процедура вывода матрицы }
  Var LineMeter:1..LineQuantity; { Счетчик строк }
      ColumnMeter:1..ColumnQuantity; { Счетчик столбцов }
  Begin
    for LineMeter:=1 to LineQuantity do  { Цикл  вывода строк }
      begin
        for ColumnMeter:=1 to ColumnQuantity do { Цикл  вывода строки }
          Write(A[LineMeter,ColumnMeter],' '); { Вывод элемента }
          WriteLn  { Пропуск строки }
      end
  End;
Procedure ProcessMatrix(A:MatrixOfInt; var B:MatrixOfRel);
  Var LineMeter:1..LineQuantity; { Счетчик строк }
      ColumnMeter:1..ColumnQuantity; { Счетчик столбцов }
      Amax:integer; { Максимальный элемент в нечетных строках матрицы A }
  Begin
    { Поиск максимального элемента в нечетных строках матрицы A }
    Amax:=A[1,1];  { Начальное определение максимального элемента }
    for LineMeter:=1 to LineQuantity do  { Цикл просмотра строк }
      if Odd(LineMeter) then { Выборка нечетных строк }
        for ColumnMeter:=1 to ColumnQuantity do
                                           { Цикл просмотра элементов строки }
          if Amax<A[LineMeter,ColumnMeter]
                                 { Если текущий элемент больше максимального }
            then Amax:=A[LineMeter,ColumnMeter];
                                        { то - переопределение максимального }
    for LineMeter:=1 to LineQuantity do  { Цикл просмотра строк }
      for ColumnMeter:=1 to ColumnQuantity do      { Цикл просмотра строки }
        if Odd(LineMeter) { Определение действия по четности строки }
          then B[LineMeter,ColumnMeter]:=A[LineMeter,ColumnMeter]/Amax
          else B[LineMeter,ColumnMeter]:=A[LineMeter,ColumnMeter]*Amax
  End;
BEGIN
  WriteLn; { Пропуск строки }
  InputMatrixOfInt(A);  { Ввод матрицы }
  WriteLn; { Пропуск строки }
  WriteLn('Исходная матрица:'); { Вывод заголовка }
  OutputMatrixOfInt(A);  { Вывод матрицы A }
  ProcessMatrix(A,B); { Обработка матрицы }
  WriteLn('Полученная матрица:'); { Вывод заголовка }
  OutputMatrixOfRel(B);  { Вывод матрицы B }

  { Поиск среднего арифметического во второй строке матрицы B: }
  Medium:=0; { Обнуление среднего }
  for Meter:=1 to ColumnQuantity do Medium:=Medium+B[2,Meter];
                                 { Цикл набора суммы элементов второй строки }
  Medium:=Medium/ColumnQuantity; { Вычисление среднего арифметического }
  WriteLn('Среднее арифметическое второй строки: ',Medium)
                                            { Вывод среднего арифметического }
END.

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