Программа


CONST N=4; M=4; { Количество строк и столбцов матрицы }
TYPE Element=real; { Тип элементов матрицы }
     Matrix=array [1..N,1..M] of Element; { Тип - матрица }

PROCEDURE Swap(var A,B:Element); { Процедура взаимного обмена }
  Var Buf:Element;  { Буфер переноса }
  Begin
    Buf:=A;
    A:=B;
    B:=Buf
  End;

PROCEDURE SwopStringMatrix (var B:Matrix; String1, String2:word);
                                     { Процедура перестановки строк матрицы }
  Var j:word;   { Счетчик }
  Begin
    for j:=1 to M do { Цикл перестановки элементов матрицы }
      Swap (B[String1,j],B[String2,j])     { Перестановка элемента }
  End;

PROCEDURE ReadMatrix (var B:Matrix); { Процедура ввода матрицы }
  Var i,j:word;  { Счетчики }
  Begin
    for i:=1 to N do { Цикл ввода строк матрицы }
      for j:=1 to M do { Цикл ввода элементов матрицы }
        begin
          Write('Введите элемент [',i,',',j,'] ');
                                 { Вывод приглашения ввести элемент матрицы }
          ReadLn(B[i,j]);   { Ввод элемента матрицы }
        end
  End;

PROCEDURE WriteMatrix (B:Matrix); { Процедура вывода матрицы }
  Var i,j:word;   { Счетчики }
  Begin
    for i:=1 to N do { Цикл вывода строк матрицы }
      begin
        for j:=1 to M do { Цикл вывода элементов матрицы }
          Write (B[i,j]:5:2,'  ');  { Вывод элемента матрицы }
        WriteLn  { Вывод конца строки }
      end
  End;

PROCEDURE BubbleDownSortMatrix(var A:Matrix; Column:word);
     { Процедура сортировки матрицы по невозрастанию столбца }
  Var i,j:word; { Счетчики }
  Begin
    for i:=1 to N-1 do { Цикл сортировки }
      for j:=N downto i+1 do { Цикл "всплытия" пузырька }
        if A[j-1,Column]<A[j,Column] { Критерий сортировки }
        then SwopStringMatrix(A,j-1,j) { "Высплытие" - перестановка строк }
        else;
  End;

VAR A:Matrix;
BEGIN
  WriteLn;                            { Пропуск строки }
  WriteLn('ВВОД МАТРИЦЫ');
  ReadMatrix(A);                      { Чтение матрицы }
  WriteLn;                            { Пропуск строки }
  WriteLn('ИСХОДНАЯ МАТРИЦА');
  WriteMatrix(A);                     { Вывод матрицы }
  WriteLn;                            { Пропуск строки }
  BubbleDownSortMatrix(A,2);          { Сортировка матрицы }
  WriteLn;                            { Пропуск строки }
  WriteLn('ОТСОРТИРОВАННАЯ МАТРИЦА');
  WriteMatrix(A);                     { Вывод матрицы }
  WriteLn;                            { Пропуск строки }
END.

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