|
|
|
§ 8. Структурированные типы данных. Массивы
Удаление и вставка элементов массиваПример 8. Удаление из массива элемента с индексом k. Имеется одномерный целочисленный массив из семи элементов:
Удалим из массива элемент с индексом k = 4, а все элементы, расположенные справа от него, сдвинем на одну позицию влево. Получим следующий целочисленный массив из шести элементов:
При удалении из массива любого из элементов размерность массива уменьшается на 1. Мы видим, что элементы с индексами от 1 до k - 1 не изменились. На место элемента с индексом k (4) переместился элемент, имевший индекс k + 1 (5), на место элемента с индексом k + 1 (5) переместился элемент, имевший индекс k + 2 (6) и т. д. В общем случае, фрагмент программы удаления из массива а[1..п] элемента с индексом k и последующим сдвигом всех расположенных справа от него элементов на одну позицию влево имеет вид:
Запишите полный текст программы и выполните её на компьютере для рассмотренного выше массива а. Пример 9. Вставка в массив элемента на место с индексом k. Будем работать с тем же массивом из семи элементов. Но теперь наша задача будет состоять в том, чтобы вставить в массив на место с индексом k = 4 (т. е. после элемента с индексом k - 1) ещё один элемент, имеющий значение 11. Получим следующий целочисленный массив из восьми элементов:
При вставке в массив ещё одного элемента размерность массива увеличивается на 1. Это надо учесть при описании массива. Итак, а[4] := 11. Элементу а[5] следует присвоить то значение, которое было у а[4], элементу а[6] — значение, которое было у а[5], и т. д. В общем случае, элементу a[k + 1] следует присвоить то значение, которое было у а[k]. Подумайте, что получится в результате выполнения следующих групп операторов присваивания:
1) а[4]:=11; а[5]:=а[4]; а[6]:=а[5]; а[7]:=а[6]; а[8]:=а[7];
2) а[8]:=а[7]; а[7]:=а[6]; а [ 6] :=а[5]; а[5]:=а[4]; а[4]:=11;
В общем случае, фрагмент программы вставки в массив а[1..n - 1] элемента на место с индексом k и сдвигом k-го, (k + 1)-го, ..., (n - 1)-го элементов на одну позицию вправо имеет вид:
Запишите полный текст программы и выполните её на компьютере для рассмотренного выше массива а. Помните, что при описании массива надо учесть размерность массива, получающегося в результате работы программы.
|
|
|