Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Програмування.doc
Скачиваний:
7
Добавлен:
19.11.2019
Размер:
742.91 Кб
Скачать

1.4.5. Оператор вибору

Умовний оператор використовується, коли в залежності від деякої умови рішення розгалужується на дві гілки. І хоча цей оператор можна використовувати для будь-якого числа гілок, в випадку, коли в залежності від значення деякого виразу або змінної рішення розгалужується на декілька шляхів, зручніше застосувати оператор вибору:

CASE вираз OF

список констант: оператор;

........................;

список констант: оператор

ELSE оператор END;

1.4.6. Масиви.

Крім простих (скалярных) типів даних, що визначають для кожної змінної тільки одне значення в кожний конкретний момент часу, часто доводиться працювати з великою сукупністю однотипних даних, тісно зв'язаних один з одним. в реальному житті такі дані звичайно представляють в вигляді таблиць. При машинній обробці табличних значень до кожного окремого значення, як правило, застосовується той самий алгоритм, тому обробку найкраще виконувати в вигляді циклу. Якщо кожне табличне значення заносити в окрему змінну, то циклічна обробка буде дуже незручна, тому що змінювати ім'я зміною на кожному кроку циклу (особливо при великій кількості цих змінних) дуже важко. Для зручності обробки даних всю таблицю називають одним ім'ям, а доступ до окремих кліток таблиці здійснюється за їх порядковим номером - індексом. Змінюючи тільки індекс, можна одержати доступ до будь-якого значення в таблиці. Такі табличні перемінні в математиці називають матрицями, в програмуванні - масивами.

Оскільки масив - це таблична змінна, то й описується вона в поділі змінних після службового слова VAR:

VAR ім'я_перемінної: ARRAY [тип_індексів] OF тип_значень;

"Тип_індексів" може бути перераховуючим або обмеженим, "тип_значень" - будь-яким ( крім файлового). Приклад:

VAR tab :array [1..100] of integer;

list :array[0..9] of real;

symbol :array[0..15,0..15] of char;

Тут описані tab - лінійний масив із 100 цілих значень (допустимі значення індексу від 1 до 100), list - лінійний масив із 10 дійсних чисел (допустимі значення індексу від 0 до 9) і symbol - двомірний масив символів із 16 рядків і 16 стовпців. Масив symbol можна було описати ще і так

VAR symbol:array [0..15] of array [0..15] of char;

Ознакою гарного стилю вважається, якщо тип масиву визначається як користувальний тип в розділі TYPE, а потім описуються змінні-масиви з використанням уже визначених типів:

TYPE index =1..15;

vector=array [index] of real;

VAR v1,v2:vector;

Тут описані два дійсних масиви v1 і v2 по 15 елементів в кожному.

У turbo Pаscаl один масив можна присвоїти іншому масиву цілком тільки в тому випадку, якщо обидва масиви того самого типу, тобто описані за допомогою того ж типу, а не однакових типів. Наприклад, якщо описані два масиви v1 і v2

VAR m1:array[100..150] of integer;

m2:array[100..150] of integer;

то присвоєння

m1:=m2

транслятор сприйме як помилку, тому що m1 і m2 вважаються масивами різних типів (хоча й однакових). А от для описаних вище векторів v1 і v2 буде вірним

v1:=v2

При цьому усі відповідні значення вектора v2 перепишуться в вектор v1. Інші операції з масивами звичайно здійснюються поелементно.

Для визначення початкових значень (ініціалізація) змінних в turbo Pаscаl є спеціальний засіб - типізовані константи. Вони описуються в розділі CONST .

CONST MaxNumber:integer=100;

massa:real=12.5;

letter:array[1..5] of char=('a','b','c','d','e');

mas:array[1..2,1..6] of integer=((2,4,6,8,10,12), (1,3,5,7,9,11));

Типізовані константи використовуються в програмі як константи, що уже мають початкове значення.

Багатомірні масиви ініціалізуються по рядкам від нижчого виміру до вищого. Кожний вимір береться в круглі дужки. Наприклад, тривимірний масив CUBE, що складається з двох "шарів", в кожному шарі по двох рядка, в рядку по двох цілих значення, ініціалізується так:

CONST cube:array[1..2,1..2,1..2] of integer =

(((1,2),(3,4)),((5,6),(7,8)));