Робота з масивами
Оскільки всі елементи масиву мають однаковий тип, то для обробки елементів використовують циклічні алгоритми. Найбільш часто застосовується цикл з параметром. При цьому параметр циклу використовується в якості індексу елемента масиву. Порядок вкладеності циклів залежить від порядку масиву, так для одновимірного масиву використовується один цикл, для двовимірного - два, вкладені один в інший і т. Д
Оскільки кожен елемент масиву має свій порядковий номер, то до кожного елементу можна звертатися безпосередньо, вказуючи ім'я масиву і в квадратних дужках порядковий номер елемента.
Для введення або виведення масиву в список введення або виведення поміщається змінна з індексом, а оператори введення або виведення виконуються в циклі, змінюючи при кожній ітерації значення індексу.
Ініціалізація масивів (привласнення початкових значень всіма компонентами масивів) здійснюється двома способами. Перший спосіб - з використанням типізованих констант, наприклад:
type Mass = Array [1..10] of Real;
const
K: Mass = (0, 2.1, 4, 5.65, 6.1, 6.7, 7.2, 8, 8.7, 9.3);
При ініціалізації двовимірних масивів значення компонент кожного з вхідних в нього одновимірних масивів записується в дужках:
type Mass3x2 = Array [1..3,1..2] of Integer;
const
L: Mass3x2 = ((1, 2) (3, 4) (5, 6));
Введення елементів одновимірного масиву з клавіатури:
A: array [1..10] of Integer.
For i: = 1 to 10 do
begin
Write ( 'Введіть A [', i, ']');
Read (A [i])
end;
Якщо необхідно ініціалізувати масив випадковими значеннями, то використовують генератор випадкових чисел.
Randomize;
For i: = 1 to 10 do
A [i]: = Random (100);
Процедура Randomize инициализирует вбудований генератор випадкових чисел. Функція Random (100) повертає при кожній ітерації випадкове число в діапазоні від 0 до значення заданого аргументом (100-1).
Введення елементів двовимірного масиву:
B: array [1..20,1..20] of Real.
For i: = 1 to 20 do
For i: = 1 to 20 do
begin
Write ( 'Введіть B [', i, ']');
Read (B [i])
end;
Нехай необхідно знайти суму елементів одновимірного масиву складається з 20 елементів дійсного типу.
Для вирішення даного завдання необхідно ініціалізувати нульовим значенням змінну, яка використовується для зберігання суми. Послідовно вводити з клавіатури значення елементів масиву і додавати їх до цієї змінної. Для вирішення завдання будемо використовувати один цикл з параметром. Нижче приведена блок програма рішення задачі.
Program Example_1;
var
A: array [1..20] of Real;
S: Real;
I: Integer;
Begin
S: = 0;
For I: = 1 to 20 do
begin
Write ( 'Введіть A [', I, ']');
Read (A [I]);
S: = S + A [I]
end;
WriteLn ( 'Результат підсумовування.', S)
End.
Знайти суму негативних елементів одновимірного масиву складається з 100 елементів цілого типу, порядковий номер яких кратний трьом.
Складемо алгоритм і програму перебування суми елементів одновимірного масиву.
Для введення елементів масиву використовуємо генератор випадкових чисел. У тілі циклу введемо логічний блок рішення для визначення заданої умови при обробці елементів масиву.
Нижче наведена програма вирішення задачі.
Program Example_2;
var
A: array [1..100] of Integer;
S, I: Integer;
Begin
Randomize;
S: = 0;
For I: = 1 to 100 do
begin
A [I]: = Random (100) - Random (50);
f (I mod 3 = 0) and (A [I]<0) then S:=S+A[I]
end;
WriteLn ( 'Результат підсумовування.', S)
End.
Знаходження твори елементів зводиться до ініціалізації одиницею змінної, призначеної для зберігання твору. У тілі циклу перебирають елементи масиву, порівнюючи, в разі необхідності із заданим умовою і множать цю змінну на вибраний елемент масиву.
Знайти твір позитивних елементів одновимірного масиву складається з 100 елементів цілого типу.
Складемо алгоритм і програму перебування твори елементів одновимірного масиву.
Ініціалізіруем змінну, призначену для зберігання твору. Для введення елементів масиву використовуємо генератор випадкових чисел. У тілі циклу введемо логічний блок рішення для визначення заданої умови при обробці елементів масиву.
Нижче наведена програма вирішення задачі.
Program Example_3;
Var
A: array [1..100] of Integer;
S, I: Integer;
Begin
Randomize;
P: = 1;
For I: = 1 to 100 do
begin
A [I]: = Random (100) - Random (50);
If A [I]> 0 then P: = P * A [I]
end;
WriteLn ( 'Результат твори.', P)
End.
Дан двовимірний масив, що складається з елементів цілого типу. Розмірність масиву 20X20. Знайти суму елементів головної і твір елементів побічної діагоналей.
Для визначення елемента, що лежить на головній діагоналі, згадаємо, що у нього номер рядка дорівнює номеру стовпчика. Елемент лежить на побічної діагоналі, може бути визначений за рівністю - I + J = N + 1, де I, J - відповідно індекси рядка і стовпця, а N - порядок матриці.
Program Example_4;
Var
A: array [1..20,1..20] of Integer;
S, P, I, J: Integer;
Begin
Randomize;
P: = 1; S: = 0;
For I: = 1 to 20 do
For J: = 1 to 20 do
begin
A [I, J]: = Random (100) - Random (50);
If I = J then S: = S + A [I, J];
If I + J = 20 then P: = P * A [I, J];
end;
WriteLn ( 'Результат твори.', P);
WriteLn ( 'Результат суми.', S)
End