Информатика. Петрова М.В. - 64 стр.

UptoLike

Составители: 

64
Продолжение приложения В
Пример:
Вставить строку из нулей после строки с номером k
Решение:
Для решения этой задачи необходимо:
1.
Первые k строки оставить без изменения.
2.
Все строки после k-й сдвинуть на одну вниз, это лучше начать с
последней строки и идти до (k+1)-й.
3.
Присвоить значение элементам (k+1)-й строки.
4.
Необходимо обратить внимание на размерность массива. Так как мы
вставляем строку, то необходимо иметь одну строку «в запасе».
Const n=5; m=7;
type dmyarray=array[1..n+1,1..m] of integer;
var a:dmyarray;
procedure Insert(k1:integer;varx:dmyarray);
var i,j:integer;
begin
for i:=n downto k1+1 do
for j:=1 to m do x[i+1,j]:=x[i,j];{элементу столбца с номером j
присваиваем элемент этого же столбца, но из предыдущей строки}
for j:=1 to m do x[k1+1,j]:=0;
end;
Так как число строк меняется, то процедуру Print надо изменить. Она
должна выводить указанное количество строк, начиная с первой.
Procedure Print1 (n1:integer; x:dmyarray);
var i,j:integer;
begin
for i:=1 to n1 do
begin
for j:=1 to m do write(x[i,j]:4);
writeln;
end;
end
;
Часть основной программы будет такой:
begin
Init(a);
Print(n,a);
Writeln('введите номер строки, после которой надо вставить новую
строку');
Readln(k);
Insert(k,a);
Print(n+1,a);
Readln;
end.