Приклади розв’язання задач з обробки масивів
If I Mod 6 = 0 Then Writeln;
Приклад 2.3. У масиви вводяться елементи двох послідовностей Ai і Bj цілих чисел, які містять 6 і 8 елементів відповідно.
Ai - неубутна і Bj - незростаюча послідовності. Ні-обходимо вивести на екран загальний список значень елементів цих послідовностей по їх зростанню без створення третього масиву.
Для вирішення цього завдання необхідно кожен раз перед ви-водом на екран чергового числа порівнювати два числа з різних масивів, поки вони не закінчилися, і виводити на екран менше з них.
Відповідно до умов завдання, масив А починаємо переглядати з першого осередку, а масив В - з останньої, тобто
якщо умова А [1]<В[8] выполняется - на экран выводится А[1];
якщо умова А [2]<В[8] не выполняется - на экран выводится В[8];
якщо умова А [2]<В[7] не выполняется - на экран выводится В[7];
якщо умова А [2]<В[6] не выполняется - на экран выводится В[6];
якщо умова А [3]<В[1] не выполняется - на экран выводится В[1].
Подальше порівняння чисел з двох масивів неможливо, так як один з них (масив В) закінчився. Що залишилися в масиві А числа слід вивести на екран.
Відзначимо, що якийсь з двох масивів закінчиться раніше, визначається числами, що знаходяться в ньому, а не довжиною масиву, тому при складанні цьо-ванні програми необхідно передбачити висновок на екран залишилися чи-сіл і з масиву А. і з масиву В.
Аналізуючи наведені вище рядки порівняння чисел з різних мас-Сівов, приходимо до висновку:
- індекси елементів масиву змінюються, тому введемо змінні для формування індексів (К1 і К2);
- початкове значення індексу елементу в масиві А - До 1 дорівнює 1; початкове значення індексу елементу в масиві В - К 2 дорівнює 8;
- порівнювати числа з різних масивів можна до тих пір, поки один з масивів не закінчиться, тобто поки До 1<=6, а К 2>1.
A. ARRAY [1..6] OF INTEGER;
B. ARRAY [1..8] OF INTEGER;
I, K1, K2. INTEGER;
Writeln ( 'Введіть масив А');
FOR I: = K2 DownTo 1 Do
Прімер2.4. У одновимірний масив ввести N довільних чисел. Заданий індекс До одного з елементів масиву. Потрібно записати в зворотному порядку всі елементи, які стоять ліворуч і праворуч від заданого К. Вивести на екран в рядок новий масив.
Припустимо, що вихідний масив (A (N)) заповнений довільно, а К = 5.
Аналізуючи розташування чисел у новому масиві, прихо-дим до висновку, що для вирішення даного завдання слід виконати обмін еле-ментів окремо зліва і праворуч від елемента з індексом К.
Зліва повинні мінятися місцями елементи: А [1] з А [4]; А [2] з А [3]. Справа повинні змінюватися елементи: А [6] з А [14]; А [7] з А [13]; А [8] з А [12]; А [9] з А [11].
При обміні індекси елементів змінюються, тому для їх формирова-ня вибираємо змінні L і PR.
Для реалізації запропонованого алгоритму необхідно організувати два циклу (обмін зліва від До і обмін праворуч від К), поки індекс лівої змінної менше індексу правої змінної (L A. ARRAY [1..100] OF REAL; I, N, K, L, PR. INTEGER; Write ( 'Введіть розмір масиву (не більше 100)'); If I Mod 6 = 0 Then Writeln; Приклад 2.5. Ввести два одновимірних масиву (перший з N цілих чисел, другий - з 5 різних цілих чисел). Видалити з першого масиву числа, яку воно містить-еся у другому. При видаленні елементів першого масиву він повинен бути стиснутий переміщенням елементів, що залишилися в масиві. Якщо будь-яка кількість з другого масиву не зустрілося в першому жодного разу, вивести відповідне повідомлення. Вивести змінений масив. Для вирішення завдання слід по черзі кожне число з масиву В порівнювати на збіг з кожним числом масиву А. При збігу здійснюється переміщення справа наліво всіх чисел, що стоять правіше знайденого. Наприклад, якщо знайдено число в комірці А [2], то здійснюється послідовне переміщення: А [2] А [3], А [3] А [4], А [4] А [5]. А [Х -1] А [Х], де Х - змінна, яка визначає мінливу довжину стискається »масиву. A. ARRAY [1. 100] OF INTEGER; B. ARRAY [1. 5] OF INTEGER; N, I, J, X, F, K. INTEGER;