Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсова робота2_2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
157 Кб
Скачать
☆

1. Теоретична частина

1. Масиви

1.1. Опис типу

Масив (array) – це скінченний набір елементів одного (базового) типу, які зберігаються в послідовно розташованих комірках оперативної памя’ті і мають спільну назву.

У математиці поняттю масив відповідають поняття вектор та матриці. Розрізняють одно- та багатовимірні масиви. Двовимірний масив даних – це таблиця, що складається з декількох рядків.

Загальний вигляд конструкції опису типу масиву такий:

array [<розмір>] of <назва базового типу> ;

Розмір (кількість елементів) масиву найчастіше задають у вигляді діапазону або назви деякого перерахованого типу даних, ця кількість фіксується при описі і в процесі виконання програми не міняється [1, 2].

Описати масив можна у розділі опису типів type, у розділі констант const, або у розділі оголошення змінних var. Назви типів масивів і змінних-масивів придумує користувач [2].

Доступ до кожного окремого елемента здійснюється шляхом індексациї елементів масиву. Індекси масиву рівні поняттю індекс елемента вектора [1].

Приклади опису масиву: 1) опис типу масивів (назва типу mymasyv), 2) оголошення сталого масиву (масиву-константи) vydatky типу mymasyv і 3) оголошення змінних-масивів а, а1 типу mymasyv та масивів: b (він має 7 елементів цілого типу), с (має 100 елементівсимволів,тобто даних типу char).

type mymasyv= array [ 1.. 10] of real;

day=(mon, tue, wed, the, f ri,sat, sun);

const vydatky: mymasyv =(1.2,1,1,2,18,2.4,8.97,3,7,1.3);

var a,al: mymasyv;

b: array[day] of integer;

c: array [1..100] of char; [1].

Над масивами визначена єдина команда копіювання: а:=а1 – усі значення масиву а1 будуть присвоєні відповідним елементам масиву а. Усі інші операції, наприклад, присвоєння конкретних значень, додавання, множення тощо, визначені лише над елементами масиву.

1.2. Дії над масивами

Для роботи з масивом як єдиним цілим використовується ідентифікатор масиву без вказівки індексу в квадратних дужках. Масив може брати участь тільки в операціях відношення "рівно", "не рівно" і в операторі присвоєння. Масиви, що беруть участь в цих діях, повинні бути ідентичні по структурі, тобто мати однакові типи індексів і однакові типи компонентів. Наприклад, якщо масиви А і В описані, як Var А, В : array[1. .20] of real; то застосування до них допустимих операцій дасть наступний результат

вираз результат

А = В True, якщо значення кожного елементу масиву А рівне відповідному значенню елемента масиву В.

А < >В True, якщо хоч би одне значення елементу масиву А не рівне значенню відповідному елементу масиву В.

А := В Всі значення елементів масиву В прирівнюються відповідним елементам масиву А. Значення елементів масиву В залишаються незмінні.

1.3. Дії над елементами масиву

Після оголошення масиву кожен його елемент можна обробити, вказавши ідентифікатор (ім'я) масиву і індекс елементу в квадратних дужках. Наприклад, запис Mas[2], vektorZ[10] дозволяє звернутися до другого елементу масиву Mas і десятого елементу масиву vectorZ. При роботі з двовимірним масивом вказуються два індекси, з n-мірним масивом - n індексів. Наприклад, запис MATRU[4,4] робить доступним для обробки значення елементу, що знаходиться в четвертому рядку четвертого стовпця масиву MATRU.

Індексовані елементи масиву називаються індексованими змінними і можуть бути використані так само, як і прості змінні. Наприклад, вони можуть знаходитися у виразах як операнди, використовуватися в операторах for, while, repeat, входити як параметри до операторів read, readln, write, writeln; їм можна присвоювати будь-які значення, відповідні їх типу.

Розглянемо типові ситуації, що виникають при роботі з даними типу array. Для цього опишемо три масиви і чотири допоміжні змінні:

Var A, D : array [1..4] of real;

B : array[1..10,1..15] of integer;

L, J : integer;

K : integer;

S: real;

Ініціалізація масиву полягає в приcвоєнні кожному елементу масиву одного і того ж значення, відповідного базовому типу, найефективніше ця операція виконується за допомогою оператора for:

for I := 1 to 4 do A[I]:= 0;

для ініціалізації двомірного масиву зазвичай використовується вкладений оператор for:

for I := 1 to 10 do; for J := 1 to 15 do B[I, J] := 0;

Мова Паскаль не має засобів введення-виведення елементів масиву відразу, тому введення і виведення значень проводиться поелементно.

Значення елементам масиву можна присвоїти за допомогою оператора присвоєння, як показано в прикладі ініціалізації, проте найчастіше вони вводяться з екрану за допомогою оператора read або readln з використанням оператора організації циклу for:

for І:=1 to 4 do readln (A[I]);

Значення двомірного масиву вводяться за допомогою вкладеного оператора for:

for I := 1 to 10 do

for J := 1 to 15 do readln (B[I, J]);

Аналогічним чином здійснюються вивід значень елементів масиву.

Копіювання масивів називається присвоєнням значення всіх елементів одного масиву всім відповідним елементам другого масиву (аналог операції присвоєння масиву).

Інколи необхідно здійснювати пошук в масиві деяких елементів, що задовільняють певні умови. Наприклад треба з’ясувати скільки елементів масиву А мають нульове значення:

K:=0;

For I:=1 to 4 do

If A[I]=0 then K:=K+1;

Перестановка значень елементів масива відбувається за допомогою змінної тогож типу, що і базовий тип масива. Наприклад треба помінятизначення першого та п’ятого елементів масиву A:

Vs:=A[5];

A[5]:=A[1];

A[1]:=Vs; [1].