- •Курсова робота з дисципліни «Інформатика»
- •«Використання підпрограм та функцій користувача при роботі з масивами.»
- •Завдання на курсову роботу з дисципліни «Інформатика»
- •I. Теоретична частина
- •1. Масиви
- •1.1. Опис типу
- •1.2. Дії над масивами
- •1.3. Дії над елементами масиву
- •2.1. Процедури (procedure).
- •2. Підпрограми
- •2.2. Функції (function).
- •Умова задачі
- •3. Текст програми
- •4. Результат роботи програми
I. Теоретична частина
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.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].
