Обработка нескольких массивов одновременно.
Если обрабатываются несколько массивов одновременно, то для каждого массива нужно выбрать подходящую схему перебора, завести свой индекс, следить, чтобы индекс не вышел за границы массива. В некоторых частных случаях для обработки нескольких массивов бывает достаточно одного индекса, потому что элементы массива обрабатываются «синхронно», то есть, зная индекс элемента одного массива, можно вычислить по некоторой формуле индекс соответствующего ему элемента другого массива. Если такой формулы установить не удается, то говорят, что массивы обрабатываются «асинхронно». Пример: Дан массив целых чисел. Необходимо сформировать второй массив, содержащий четные элементы первого массива, при этом расположить элементы во втором массиве: а) на тех же позициях, что и в первом; б) сдвинуть к началу массива. Решение: Вариант 1: const n = 30 dim a%(1 to n) dim b%(1 to n) defint i, n Input “задайте количество элементов массива”;n for i = 1 to n input a%(i) if a%(i) mod 2 = 0 then b%(i) = a%(i) next for i = 1 to n: print b%(i);: next Вариант 2. const n = 30 dim a%(1 to n) dim b%(1 to n) defint i, n,k Input “задайте количество элементов массива”;n ‘ Основной блок программы for i = 1 to n input a%(i) if a%(i) mod 2 = 0 then b%(i) = a%(i) next k=0 ‘в массиве b нет ещё элементов for i = 1 to n If a(i) mod 2 = 0 then k = k + 1:b(k) = a(i) next for i = 1 to k:: print b(i);: next End
|