Глава 4. Алгоритмы, использующие двумерные массивы - 4.4. Удаление и вставка строк или столбцов матрицы

E-mail Печать PDF
Рейтинг пользователей: / 11
ХудшийЛучший 
Индекс материала
Глава 4. Алгоритмы, использующие двумерные массивы
4.2. Нахождение суммы элементов
4.3. Нахождение элементов с заданным свойством
4.4. Удаление и вставка строк или столбцов матрицы
4.5. Изменение значений элементов, обладающих заданным свойством
4.6. Перестановка строк или столбцов матрицы
4.7. Алгоритмы, реализуемые с помощью вложенных циклов разного типа
Все страницы

4.4. Удаление и вставка строк или столбцов матрицы

Мы уже рассматривали задачи  вставки элементов в одномерный массив. Обобщим эти алгоритмы на двумерный массив.

Пример 4.6. Удалить из двумерного массива строку с номером k.

Для удаления строки с номером k необходимо:

1) сдвинуть все строки, начиная со строки с номером k вверх;

2) уменьшить количество строк в двумерном массиве.

Дано: n, m - количество строк и столбцов массива соответственно, массив
А[n, m], k - номер удаляемой строки.

Найти новую матрицу А, содержащую n - 1 строку и m - 1 столбец.

Тест

N

M

K

Исходная матрица

Результат

3

3

1

 

Фрагмент блок-схемы

Исполнение алгоритма

 

i

j

A

1

1

A[1, 1] = A[2, 1] = 4

2

A[1, 2] = A[2, 2] = 5

3

A[1, 3] = A[2, 3] = 6

 

 

 

Пример 4.7. Вставить в двумерный массив строку, состоящую из нулей после строки с номером k.

Для решения данной задачи необходимо:

1) первые k строк оставить без изменения;

2) все строки после k-й сдвинуть на одну вниз. Сдвиг лучше всего начать с последней строки и идти до (k + 1)-й строки;

3) присвоить новые значения элементам (k + 1)-й строки и увеличить количество строк в двумерном массиве.

Дано: n, m - количество строк и столбцов массива соответственно, массив
А[n, m], k - номер строки, после которой вставляется новая строка.

Найти новую матрицу А, содержащую n + 1 строку и m + 1 столбец.

Тест

N

M

K

Исходная матрица

Результат

2

3

1

 

 

 

Фрагмент блок-схемы

Исполнение алгоритма

i

j

A

Раздвигаем строки матрицы

2

1

A[2, 1] = A[1, 1] = 4

2

A[2, 2] = A[1, 2] = 5

3

A[2, 3] = A[1, 3] = 6

Промежуточный результат

Вставка строки

2

1

A[2, 1] = 0

2

A[2, 2] = 0

3

A[2, 3] = 0

Примечания

1. Если необходимо вставить новую строку поле строки, удовлетворяющей некоторому условию, то надо лишь найти номер этой строки - и задача сведется к решению уже рассмотренной.

2. Если надо вставить новые строки после всех строк с заданным условием, то надо учесть это при описании массива. Заметим, что удобнее рассматривать строки, начиная с последней строки, и ввести счетчик вставленных строк.

3. Вставка новой строки перед строкой с номером k изменится только тем, что сдвигать назад надо не с (k + 1)-й строки, а с k-й.

4. Если надо вставлять столбцы, то размерность массива увеличивается по столбцам, а все остальное практически не меняется: надо сдвинуть столбцы вправо и на данное место записать новый столбец.

Задачи для самостоятельного решения

1. Дана матрица произвольного размера. Вставьте первую строку после строки, в которой находится первый встреченный максимальный элемент (здесь и далее массив просматривается слева направо и сверху вниз).

2. Дана матрица произвольного размера. Вставьте второй столбец после первого же столбца, в котором все элементы положительны. Если такого столбца нет, то сообщите об этом.

3. Дана матрица произвольного размера. Вставьте нулевую строку и нулевой столбец перед строкой и столбцом, где находится первый минимальный элемент.

4. Дана матрица произвольного размера. Вставьте после всех строк, в которых есть заданное число А, последнюю строку.

5. Дана матрица произвольного размера. Вставьте перед всеми столбцами, в которых нет отрицательных элементов, второй столбец.

6. Дана матрица произвольного размера. Вставьте перед всеми строками, в которых есть число, равное нулю, первую строку,  а после всех столбцов, в которых есть отрицательные элементы, - первый столбец.

7. Дана матрица произвольного размера. Удалите столбец, в котором находится минимальный элемент. Если такой элемент встречается несколько раз, то удалите все столбцы с этим элементом.

8. Дана матрица произвольного размера. Удалите строку с номером k и столбец с номером m.

9. Дана матрица произвольного размера. Удалите все столбцы, в которых нет нулевого элемента.

10. Дана матрица произвольного размера. Удалите все строки и столбцы, на пересечении которых стоят отрицательные элементы.



 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий:

Комментарии

Интересное




Похожие материалы

Партнёры