Изменение размера массива


Задача 1. Из массива А удалить 3-й элемент.

Пусть дан массив а = {3, 5, 6, 10, -1, 2}, i = 1,…,6.

Алгоритм: нужно сдвинуть все элементы, начиная с 4-го, на место предыдущего – влево (6-ой занулить)

3 5 6 10 –1 2

 

1 2 3 =0

удалить

 

Сдвиг (i+1)-го элемента влево:

ai = ai + 1

Получим:

Блок-схема алгоритма:

 

Фрагмент программного кода:

for i = 3 to 5

a(i) = a(i+1)

next i

a(6) = 0

 

Задача 2. В массив вставить 0 после 3-го элемента.

а = {3, 5, 6, 10, -1, 2}, i = 1,…,6 Þ i = 1,…,7.

Алгоритм: нужно «освободить» 4-е место для вставляемого числа, для этого элементы с последнего 6-го по 4-й нужно сдвинуть вправо на одно место. Начинать сдвиг с последнего элемента; при объявлении массива в программном коде его размер нужно задать на 1 больше заданного, т.е. 7, а вводить только 6 первых элементов, оставив последнее место «свободным»:

3 5 6 10 -1 2 Ø Þ

= 0 3 2 1

Блок-схема алгоритма:

Фрагмент программного кода:

for i = 6 to 4 step -1

a(i+1) = a(i)

next i

a(4) = 0