Напишите программу в Паскале: Упорядочить элементы каждой строки заданной матрицы А(5, 4), расположив их в матрице В(5, 4) по убыванию. Полученную матрицу напечатать по строкам.

Seleno4ka136 Seleno4ka136    3   30.11.2020 12:33    7

Ответы
pampey2 pampey2  30.12.2020 12:36

ответ:    uses crt;

   var a:array[1..50,1..50] of integer;{матрица}

       m,n,i,j,k,tmp:integer; {размеры матрицы,счетчики циклов, буфер для обмена}

   begin

   clrscr;

   randomize;

   writeln('Введите размеры матрицы:');

   write(' Количество строк m=');

   repeat

   readln(m);

   until m in [1..50];

   write(' Количество столбцов n=');

   repeat

   readln(n);

   until n in [1..50];

   writeln;

   writeln('Исходная матрица:');

   for i:=1 to m do

    begin

     for j:=1 to n do

      begin

       a[i,j]:=random(100);{заполним матрицу случайными числами в инт[0,99]}

       write(a[i,j]:4);

      end;

     writeln;

    end;

   writeln;

   {сортировка матрицы пузырьком}

   for k:=1 to n*m do  {повторяем сколько элементов в матрице}

   for i:=1 to m do

   for j:=1 to n do

      begin

       if j<>n then {если элемент в строке не последний}

        begin

         if a[i,j+1]>a[i,j] then

           begin

            tmp:=a[i,j+1];

            a[i,j+1]:=a[i,j];

            a[i,j]:=tmp;{обмен элементов}

           end;

        end

       else

         if (a[i+1,1]>a[i,j])and(i<>m)then {если строка не последняя}

        {меняем первый элемент в следущей строке с последним элементом в текущей строке}

           begin

            tmp:=a[i+1,1];

            a[i+1,1]:=a[i,j];

            a[i,j]:=tmp;

          end;

      end;

   writeln('Отсортированная матрица:');

   for i:=1 to m do

    begin

     for j:=1 to n do

     write(a[i,j]:4);

     writeln;

    end;

   readln

   end.

Объяснение:

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика