Вставить строку из нулей на место строки с номером k — Pascal(Паскаль)

Для решения этой задачи необходимо:
Первые k-1 строк оставить без изменения.
Все строки после k-й сдвинуть на одну назад, это лучше начать с последней строки и идти до k-й.
Элементам строки k присвоить заданное значение
Кроме того, необходимо изменить размер массива. Так как мы вставляем строку, то число строк будет на одну больше:
program prim2;
  uses crt;
  type mas=array[1..100,1.. 100] of integer;
  var a:mas;
      i,j,k,n:integer;
begin
  clrscr;
  randomize;
  write('n=');readln(n);
{Создаем и распечатываем двумерный массив.}
  for i:=1 to n do
    begin
      for j:=1 to n do
        begin
          a[i,j]:=random(45)-22;
          write(a[i,j]:4);
        end;
      writeln;
    end;
{Вводим номер вставляемой строки.}
  write('k=');readln(k);
{Сдвигаем строки назад до К-й строки, начиная с последней.}
  for i:=n downto k do
  for j:=1 to n do a[i+1,j]:=a[i,j];
{Обнуляем элементы К-й строки.}
  for j:=1 to n do a[k,j]:=0;
{Распечатываем новый массив, который на одну строку больше исходного.}
  for i: = 1 to n+1 do
    begin
      for j:=1 to n do
        begin
          write(a[i,j]:4);
        end;
      writeln;
    end;
  readln;
end.

Leave a Comment

− 2 = 6