Главная >> Информатика 11 класс. Босова

§ 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)-го элементов на одну позицию вправо имеет вид:

Запишите полный текст программы и выполните её на компьютере для рассмотренного выше массива а. Помните, что при описании массива надо учесть размерность массива, получающегося в результате работы программы.

 

 

???????@Mail.ru