Дана вещественная матрица A(N,N) и целые числа K, L(L меньше K) . Преобразовать матрицу так, чтобы строка с номером К непосредственно следовала за строкой с номером L, не изменяя при этом порядок следования всех остальных строк матрицы — Pascal(Паскаль)

uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    n,i,j,l,k:byte;
    x:integer;
begin
clrscr;
repeat
write('Размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
   for j:=1 to n do
    begin
     a[i,j]:=random(50);
     write(a[i,j]:4);
    end;
   writeln;
 end;
writeln;
repeat
writeln('Введите номера строк для перестановки l<k:');
readln(l,k);
until(l>0)and(k>l)and(k<=n);
if (l=n-1)or(k-l=1) then write('Строки стоят на месте')
else
 begin
  for j:=1 to n do
   begin
    x:=a[l+1,j];
    a[l+1,j]:=a[k,j];
    a[k,j]:=x;
   end;
  writeln('Перестановка строки ',k);
  for i:=1 to n do
   begin
    for j:=1 to n do
    write(a[i,j]:4);
    writeln;
   end;
 end;
readln
end.

Leave a Comment

29 + = 35