Программа


CONST n=4;   { Размерность матрицы }
TYPE Matrix=array [1..n,1..n] of integer;  { Тип - матрица }
VAR A,B:Matrix; { Матрицы }
PROCEDURE InputMatrix (var C:Matrix); { Процедура ввода матрицы }
  Var i,j:integer;  { Счетчики }
  Begin
    for i:=1 to n do { Цикл ввода строк матрицы }
      for j:=1 to n do { Цикл ввода элементов матрицы }
        begin
          Write('Введите элемент [',i,',',j,'] ');
                                 { Вывод приглашения ввести элемент матрицы }
          ReadLn(C[i,j]);   { Ввод элемента матрицы }
        end
  End;
PROCEDURE OutputMatrix (C:Matrix); { Процедура вывода матрицы }
  Var i,j:integer;   { Счетчики }
  Begin
    for i:=1 to n do { Цикл вывода строк матрицы }
      begin
        for j:=1 to n do { Цикл вывода элементов матрицы }
          Write (C[i,j]:5,'  ');  { Вывод элемента матрицы }
        WriteLn  { Вывод конца строки }
      end
  End;
PROCEDURE Task_1 (var C:Matrix); { Процедура умножения строки на число }
  Var i:integer;   { Счетчик }
      k:integer;   { Номер строки }
      Num:integer; { Множитель элементов строки }
  Begin
    Write('Введите номер строки от 1 до ',n,' ');
                                     { Вывод приглашения ввести номер строки }
    ReadLn(k);  { Ввод номера строки }
    Write('Введите число '); { Вывод приглашения ввести число }
    ReadLn(Num);  { Ввод числа }
    for i:=1 to n do C[k,i]:=Num*C[k,i] { Цикл умножения элементов строки }
  End;
PROCEDURE Task_2 (C1:Matrix; var C2:Matrix);
                         { Процедура формирования кососимметрической матрицы }
  Var i,j:integer;   { Счетчики }
  Begin
    for i:=1 to n do { Цикл просмотра строк }
      for j:=1 to i do { Цикл просмотра элементов }
        begin
          { Копирование элементов: }
          C2[i,n-j+1]:=C1[i,j];
          C2[j,n-i+1]:=C1[i,j]
        end
  End;
FUNCTION Task_3 (var C:Matrix):integer;
                                  { Вычисление суммы отрицательных элементов }
  Var i,j:integer;   { Счетчики }
      Sum:integer;   { Сумма }
  Begin
    Sum:=0;  { Обнуление суммы }
    for i:=1 to n do { Цикл просмотра строк }
      for j:=1 to i-1 do { Цикл просмотра элементов }
        if (not Odd(j)) and (C[i,j]<0)  { Условие набора суммы }
          then Sum:=Sum+C[i,j];         { Набор суммы }
    Task_3:=Sum  { Определение значения функции }
  End;

BEGIN
  WriteLn; { Пропуск строки }
  InputMatrix(A); { Ввод матрицы }
  WriteLn; { Пропуск строки }
  WriteLn(' Исходная матрица: ');  { Вывод заголовка }
  OutputMatrix(A); { Вывод матрицы }
  WriteLn; { Пропуск строки }
  WriteLn('Нажмите <Enter>');  { Вывод приглашения нажать <Enter> }
  ReadLn;  { Остановка программы до нажатия <Enter> }

  WriteLn; { Пропуск строки }
  Task_1(A); { Умножение элементов строки матрицы на заданное число }
  WriteLn(' Матрица: ');  { Вывод заголовка }
  OutputMatrix(A); { Вывод матрицы }
  WriteLn('Нажмите <Enter>');  { Вывод приглашения нажать <Enter> }
  ReadLn;  { Остановка программы до нажатия <Enter> }

  WriteLn; { Пропуск строки }
  Task_2(A,B); { Формирование кососимметрической матрицы }
  WriteLn(' Кососимметрическая матрица: ');  { Вывод заголовка }
  OutputMatrix(B); { Вывод матрицы }
  WriteLn('Нажмите <Enter>');  { Вывод приглашения нажать <Enter> }
  ReadLn;  { Остановка программы до нажатия <Enter> }

  WriteLn; { Пропуск строки }
  WriteLn('Сумма отрицательных элементов под главной диагональю в нечетных столбцах: ');
                                                           { Вывод заголовка }
  WriteLn('=',Task_3(B)); { Вычисление и вывод суммы }
  WriteLn('Нажмите <Enter>');  { Вывод приглашения нажать <Enter> }
  ReadLn;  { Остановка программы до нажатия <Enter> }
END.

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