Формирование нового массива
В задачах формирования нового массива требуется создать массив из элементов существующего массива (массивов), удовлетворяющих заданному условию. В новый массив элементы заносятся, последовательно, начиная с нулевого индекса. Максимально число элементов в формируемом массиве может достигать количества элементов в исходном массиве (массивах), минимальное значение равняется нулю. В этом случае считается, что новый массив не сформирован.
При формировании новых массивов удобно использовать динамические массивы, поскольку число его элементов заранее не известно. Алгоритм создания нового массива схож с алгоритмом копирования (рисунок 2.19).
A={6,0,-5,9,0,-4,8,-7,-5,44} Y={6,9,8,44} | k=0; for(i=in;i<ik;i++) if (a[i]>0) { y[k]=a[i]; k++; } |
Рисунок 2.19 Алгоритм и фрагмент программы формирования нового массива
Для последовательной записи элементов в новый массив используется дополнительная переменная k – счетчик элементов в новом массиве. Начальное значение этой переменной принимается равной нулю, т.е считается что в новом массиве нет элементов. При обнаружении в исходном массиве элемента удовлетворяющего заданному условию, его значение заносится в новый массив на позицию k, а после счетчик элементов увеличивается на единицу (k=k+1). Таким образом, после обработки всего исходного массива по значению счетчика k можно определить, сформирован новый массив (k>0) и сколько в нем элементов (k).
Пример 2.8
Даны два одномерных массива X и Y. Необходимо сформировать массив Z из положительных элементов массива X, стоящих на четных местах, и элементов массива Y, больших первого элемента массива X.
X={2,3,-2,3,-4,-5,5}
Y={3,1,0,4,2,8}
Z={3,3,3,4,8}