Вставка новой строки в матрицу со сдвигом исходных элементов

Оригинал статьи: http://www.cyberforum.ru/pascal/thread133142.html
Благодарен всем авторам, которые внесли свой вклад в сборку кода.

 
var
  a: array[1..12, 1..10] of integer;
  b: array[1..10] of integer;
  i, k, n, j, q: integer;

begin
  write('Введите размерность матрицы, не больше 10 и не меньше 6 : ');
  repeat
    read(n);
  until (n >= 6) and (n < 11);
  
  writeln('Введите элементы одномерного массива:');
  for k := 1 to n do 
  begin
    read(b[k]);
  end;
  
  write('В какую строку будут вставляться элементы: ');
  repeat
    read(q);
  until (q >= 1) and (q <= n);
  
  writeln('Для вывода результата нажмите ENTER...');
  readln;
  
  
  write('Исходная матрица:');
  writeln;
  for i := 1 to n do 
  begin
    for j := 1 to n do 
    begin
      a[i, j] := random(10);
      write(a[i, j]:4);
    end;
    writeln;
  end;
  
  for i := n + 1 downto q do 
  begin
    for j := 1 to n do 
    begin
      a[i + 1, j] := a[i, j];
    end;
  end;
  
  for i := 1 to n do 
  begin
    a[q, i] := b[i];
  end;
  
  writeln;
  writeln('Полученная матрица:');
  for i := 1 to n + 1 do 
  begin
    for j := 1 to n do 
    begin
      write(a[i, j]:4);
    end;
    writeln;
  end;
end.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

0 0 vote
Article Rating
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments