Дамо поняття масиву. Масив – це впорядкований іменований набір із
фіксованої кількості однотипних даних. Доступ до будь-якого елементу
масиву здійснюється за його номером. У масиви можна об’єднувати
результати експериментів, списки прізвищ співробітників, різні складні
структури даних. Наприклад, список учнів у класному журналі є масивом. У
масиві дані розрізняються за своїми порядковими номерами (індексами).
Якщо кожний елемент масиву визначається за допомогою одного номера, то
такий масив називається одновимірним, якщо за двома – то двовимірним.
Двовимірний масив – це таблиця з рядків і стовпців. У таблицях перший
номер вказує на рядок, а другий – на положення елемента в рядку. Усі
рядки таблиці мають однакову довжину.
Одновимірний масив може бути набором чисел, сукупністю символьних
даних чи елементів іншої природи (навіть масив масивів). Так само, як і
в послідовності, в одновимірному масиві можна вказати елемент з
конкретним номером, наприклад а5, або записати загальний вигляд
елемента, використовуючи як індекс змінну і, вказуючи діапазон її зміни:
a[i] , i=1, 2 n.
Задачі, в яких використовуються масиви, можуть мати різне
формулювання. Наприклад, задача починається зі слів «Дано n чисел...» і
далі вказується, що треба зробити з цими числами. При написанні програми
мовою Паскаль для розв'язання подібної задачі слід виконати такі дії:
- визначити, які числа задані: цілі чи дійсні; якщо про це
конкретно не сказано, то краще вважати їх дійсними;
- назвати весь масив одним ім'ям (це ім'я буде використовуватись
для кожного елемента, тільки до імені масиву додаватиметься номер
елемента – індекс);
- описати масив у розділі змінних var, тим самим відвести місце в пам'яті для масиву;
- ввести дані до пам'яті.
В описі масиву використовують спеціальне слово
array (масив), після якого у квадратних дужках через дві крапки вказують діапазон змінювання номерів елементів, далі слово
of
(із) і тип даних масиву. Коли транслятор зустрічає опис масиву, він
відводить для нього стільки послідовних ділянок пам'яті, скільки вказано
в квадратних дужках, і такої довжини, яка відповідає типу даних у
масиві.
Здебільшого номери елементів змінюються від 1 до заданого числа
n, яке є ocтаннім значенням (верхньою межею) номера елемента масиву.
Значення n можна задати в розділі констант (const). Приклад опису
масиву:
const n = 10;
var a: array [1..n] of real;
Цей опис означає, що для масиву a буде відведено десять ділянок
оперативної пам'яті по шість байтів кожна. У Паскалі імена цих ділянок
записуються так:
a[1], a[2], a[3], a[4], a[5], a[6].
В описі після імені масиву а ставиться двокрапка, після якої
вказується тип даного – масив. Якщо в програмі кілька масивів одного
розміру і типу, то, як і для простих змінних, їх імена можна задати
через кому, а потім, після двокрапки, вказати опис масиву.
Для введення даних у пам'ять необхідно організувати цикл. Оскільки
введення описаного масиву а може мати вигляд:
for і := 1 to n do read(a[i]);
Значення, що вводяться, набираються на клавіатурі і
відокремлюються одне від одного пропусками, після чого натискається
Enter. Введення можна прокоментувати і вводити кожне дане в окремому
рядку після підказу:
for і := 1
to n
do
begin
write ('a [', і, '] = ');
readl n(a[i])
end;
При обробці масивів розв'язування багатьох задач базується на простіших задачах:
- обчислення суми (добутку) елементів масиву;
- знаходження найбільшого (найменшого) елемента;
- упорядкування елементів за зростанням або спаданням.
Створити масив за допомогою генератора
псевдовипадкових чисел. Ввести з клавіатури деяке значення та визначити
номер найпершого з елементів, що дорівнюють цьому значенню. Якщо таких
елементів не існує, вивести відповідне повідомлення.
Лінійний пошук здійснюється шляхом перебирання всіх
елементів масиву та порівняння кожного з них із заданим значенням. Якщо
елемент знайдено, цикл пошуку переривається і виводиться знайдений
індекс. А якщо цикл пошуку дійшов останнього елемента, і цей елемент не
дорівнює заданому значенню, виводиться повідомлення про відсутність
шуканого елемента. Описаний алгоритм пошуку елемента в неупорядкованому
масиві реалізовано в програмі ех7_5, код якої наведено нижче.
задача
Визначити добуток двох матриць розміром NxN.