Вставка и удаление нескольких строк / столбцов в двумерном

advertisement
Вставка и удаление
нескольких строк / столбцов
в двумерном массиве
Задача 1. Удаление
Дан двумерный массив, элементы которого целые числа. Удалите из него все строки, в
которых нет ни одного четного элемента.
1
2
3
4
5
7
1
2
3
4
5
7
1
2
3
4
5
7
1
2
10
4
5
7
1
2
3
4
5
7
1
2
3
4
5
7
1
2
3
4
5
7
1
2
3
4
5
7
1
2
10
4
5
7
1
2
3
4
5
7
i=1
2
3
4
5
7
2
3
4
5
7
2
3
4
5
7
2
10
4
5
7
2
3
4
5
7
n=5
2
3
4
5
7
2
3
4
5
7
2
3
4
5
7
2
10
4
5
7
2
3
4
5
7
i=1
2
3
4
5
7
2
3
4
5
7
2
3
4
5
7
2
10
4
5
7
2
3
4
5
7
i=2
2
3
4
5
7
2
3
4
5
7
2
3
4
5
7
2
10
4
5
7
2
3
4
5
7
i=3
2
3
4
5
7
2
3
4
5
7
2
3
4
5
7
2
10
4
5
7
2
3
4
5
7
i=4
2
3
4
7
2
3
4
7
2
3
4
7
2
10
4
7
2
3
4
7
n=4
2
3
4
7
2
3
4
7
2
3
4
7
2
10
4
7
2
3
4
7
i=4
2
3
4
2
3
4
2
3
4
2 2
10 3
4 4
n=3
i<=n
нет
да
Считаем количество
четных элементов в i-строке
нет
Строка подходит,
удаляем ее
Следующая строка
на i- м месте
Четные элементы
есть
да
Строка не подходит
i:=i+1
i:=1;
while i<=n do
begin
t:=0;
for j:=1 to m do
if a[i,j] mod 2 = 0
then t:=t+1;
if t = 0
then
begin
for k:=i to n-1 do
for j:=1 to m do
a[k,j]:=a[k+1,j];
n:=n-1;
end
else i:=i+1;
end;
Подсчет количества четных
элементов
для i-й строки
Удаление i-й строки
Задача 2. Вставка
Дан двумерный массив, элементы которого - целые
числа. Вставьте новую строку, каждый элемент которой
число ноль, после всех строк, в которых нет ни одного
четного элемента.
1
2
3
4
5
7
1
2
3
4
5
7
1
2
3
4
5
7
1
2
10
4
5
7
1
2
3
4
5
7
1
2
3
4
5
7
1
2
3
4
5
7
1
2
3
4
5
7
1
2
10
4
5
7
1
2
3
4
5
7
i=1
1
2
2
3
4
5
7
1
2
2
3
4
5
7
1
2
2
3
4
5
7
1
2
2
10
4
5
7
1
2
2
3
4
5
7
n=7
1
0
2
3
4
5
7
1
0
2
3
4
5
7
1
0
2
3
4
5
7
1
0
2
10
4
5
7
1
0
2
3
4
5
7
1
0
2
3
4
5
7
1
0
2
3
4
5
7
1
0
2
3
4
5
7
1
0
2
10
4
5
7
1
0
2
3
4
5
7
i=3
1
0
2
3
4
5
7
1
0
2
3
4
5
7
1
0
2
3
4
5
7
1
0
2
10
4
5
7
1
0
2
3
4
5
7
i=4
1
0
2
3
4
5
7
1
0
2
3
4
5
7
1
0
2
3
4
5
7
1
0
2
10
4
5
7
1
0
2
3
4
5
7
i=5
1
0
2
3
4
5
7
1
0
2
3
4
5
7
1
0
2
3
4
5
7
1
0
2
10
4
5
7
1
0
2
3
4
5
7
i=6
1
0
2
3
4
5
7
7
1
0
2
3
4
5
7
7
1
0
2
3
4
5
7
7
1
0
2
10
4
5
7
7
1
0
2
3
4
5
7
7
n=8
1
0
2
3
4
5
0
7
1
0
2
3
4
5
0
7
1
0
2
3
4
5
0
7
1
0
2
10
4
5
0
7
1
0
2
3
4
5
0
7
1
0
2
3
4
5
0
7
1
0
2
3
4
5
0
7
1
0
2
3
4
5
0
7
1
0
2
10
4
5
0
7
1
0
2
3
4
5
0
7
i=8
1
0
2
3
4
5
0
7
0
1
0
2
3
4
5
0
7
0
1
0
2
3
4
5
0
7
0
1
0
2
10
4
5
0
7
0
1
0
2
3
4
5
0
7
0
n=9
i<=n
нет
да
Считаем количество
четных элементов в i-строке
нет
Строка подходит,
вставляем строку
Следующая строка
i:= i+2
Четные элементы
есть
да
Строка не подходит
i:=i+1
i:=1;
while i<=n do
begin
t:=0;
for j:=1 to m do
if a[i,j] mod 2 = 0
then t:=1;
if t = 0
then
begin
for k:=n downto i+1 do
for j:=1 to m do
a[k+1,j]:=a[k,j];
for j:=1 to m do
a[i+1,j]:=0;
n:=n+1;
i:=i+2;
end
else i:=i+1;
end;
Подсчет количества четных
элементов
для i-й строки
Вставка i+1-й строки
Обнуление i+1 строки
Д/з
School.sgu.ru
Задачник по программированию
Двумерные массивы 2
№№ 3.2, 3.3, 3.8
Download