- •Основи програмування та алгоритмічні мови Програмування мовою borland Pаscаl v7.0 для пеом Процедурне та модульне програмування
- •2.2.1. Теоретичні відомості
- •1. Основи алгоритмізації та програмування
- •1.1. Послідовність рішення задачі з допомогою еом
- •1.2.Середовище turbo Pаscаl
- •1.3.Типи даних turbo Pаscаl
- •1.4.Основні поняття мови програмування turbo Pаscаl
- •1.4.1.Синтаксис мови Програмування turbo Pаscаl
- •1.4.2. Основні дії в мові програмування
- •1.4.3. Умовні оператори
- •1.4.4. Методи організації циклів
- •1.4.5. Оператор вибору
- •1.4.6. Масиви.
- •1.4.7. Робота з рядками, масиви символів
- •1.4.8. Робота з типом string
- •1.4.9. Тестові завдання
- •1.4.10. Варіанти завдань для самостійного розгляду
- •2. Програмування в мові Pascal
- •2.1 Процедурний підхід до програмування
- •2.1.1 Теоретичні відомості
- •2.1.2.Приклад програми
- •2.1.3. Варіанти завдань для лабораторної роботи
- •2.2. Записи з фіксованою частиною
- •2.2.1. Теоретичні відомості
- •2.2.2. Приклад програми
- •2.2.3. Варіанти завдань для лабораторної роботи
- •2.3. Записи з варіантами
- •2.3.1. Теоретичні відомості
- •2.3.2. Приклад програми
- •2.3.3. Варіанти завдань для лабораторної роботи
- •2.4. Типізовані файли
- •2.4.1. Теоретичні відомості
- •2.4.2. Приклад програми
- •2.4.3. Варіанти завдань лабораторної роботи
- •2.5. Текстові файли
- •2.5.1. Теоретичні відомості
- •2.5.2. Приклад програми
- •2.5.3. Варіанти завдань Лабораторної роботи
- •2.6. Множини
- •2.6.1. Теоретичні вказівки
- •2.6.2. Приклад програми
- •Алгоритм
- •2.6.3. Варіанти завдань лабораторної роботи
- •2.7. Черги та стеки
- •27.1. Теоретичні вказівки
- •Алгоритм побудови стека:
- •2.7.2. Приклад програми
- •2.7.3. Варіанти завдань лабораторної роботи
- •2.8. Дерева
- •2.8.1. Теоретичні вказівки
- •2.8.2. Приклад програми
- •2.8.3. Варіанти завдань лабораторної роботи
- •2.9. Графіка
- •2.9.1. Теоретичні вказівки
- •2.9.2 Приклад програми
- •2.9.3 Варіанти завдань
- •2.10.Програмування інтерфейсу користувача. Розробка меню
- •2.10.1. Теоретичні вказівки
- •2.10.2. Приклад програми
- •2.10.3. Варіанти завдань
- •4 Створити меню такої структури: Головне меню
- •3. Основні принципи модульного програмування
- •3.1. Приклад програми
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)));