Изменение размера массива
Задача 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
…