11.1. Мови програмування, їх призначення і використання. Поняття компілятора
Алгоритм, призначений для виконання на ЕОМ, повинен бути записаний на одній із мов програмування.
Для машин першого покоління програми записувалися на машинній мові. Це був дуже трудомісткий процес, який вимагав дуже великої деталізації алгоритму. Уже для машин другого покоління були створені мови програмування, які використовували символіку, близьку до загально прийнятої математичної.
Інші мови розроблялися з орієнтацією на розв`язок задач різних класів (процедурно-орієнтовані мови програмування). Наприклад, Фортран – на розв`язок науково-техічних задач, КОБОЛ – на розв`язок економічних задач. Потім появилися мови програмування, розраховані на роз`язок широкого кола задач - універсальні мови (ПЛ/1). Процедурно-орієтовані мови і універсальні мови програмування не мають машинної орієнтації, вони практично не залежать від машини, тому програми записані на такій мові, можна обробляти на будь-якій машині. Такі мови називають мовами програмування високого рівня.
Але створення мов програмування високого рівня само по собі ще не забезпечувало повністю можливості розв`язку задачі на ЕОМ. Для цього необхідним був перевід або компіляція програм з мови високого рівня на мову машини. Компіляція здійснювалася за допомогою спеціальних програм – компіляторів.
Таким чином, мова програмування високого рівня і відповідний компілятор забезпечують можливість обробки на ЕОМ програми, написаної на цій мові. Компілятор не тільки здійснює компіляцію програми, але й проводить синтаксичний аналіз тексту програми. В процесі такого аналізу виявляються можливі помилки в початковому тексті програми, які вказуються користувачу.
Для мови високого рівня будемо розрізняти стандарт мови – конструкції, які передбачені при обробці даної мови, а також діалект мови, який включає конструкції, передбачені при розробці компілятора.
В кінці 60-х років широкого розповсюдження набула мова Pascal, розроблена професором Швейцарської Вищої технічної школи (м. Цюріх) Н. Віртом. В 1969-1971 р.р. Pascal одержав широке розповсюдження для розв`язку задач в різних сферах діяльності.
11.2. Мова Turbo Pascal. Елементарні конструкції мови. Алфавіт мови, типи даних, константи, змінні,
арифметичні вирази. Стандартні функції
Мова програмування Turbo Pascal (TP) являється одним із найпоширеніших діалектів мови Pascal.
Розробник системи Turbo Pascal – фірма Borland International виникла в 1984 р. і за порівняно короткий час неодноразово дивувала користувачів персональних ЕОМ своїми Turbo- системами. Було випущено декілька версій Turbo Pascal: 3.0, 4.0, 5.0, 5.5, 6.0, 7.0, Pascal for Windows, Borland Pascal.
Відмітимо головні особливості мови Turbo Pascal. Це:
1) широкий спектр типів даних;
2) можливість обробки рядкових та структурних даних;
3) достатній набір операторів управління розгалуженнями
та циклами;
4) добре розвинутий апарат підпрограм;
5) зручні конструкції роботи з файлами;
6) великі можливості управління усіма можливостями ПЕОМ;
7) використання інтегрованого середовища, яке значно
підвищує продуктивність праці користувача;
8) підтримка ідей об`ктно-орієнтованого програмування.
Розглянемо найпростіші конструкції мови..
Алфавіт мови. Складається із сукупності символів, за допомогою яких будуються всі конструкції мови. Алфавіт включає:
- великі і малі букви латинського алфавіту: A, B, C, D, E, F, G, H, I, J, K, L, M, O, P, R, S, T, U, V, W, X, Y, Z;
- цифри 0, 1, …, 9;
- спеціальні символи +, -, *, (), [ ], { }, /, $,., =,:,;, ‘,,, >, <, <=, >=, < >;
- букви українського алфавіту (використовуються в коментарях).
Типи даних. У мові Pascal є чотири стандартні типи даних: цілий, дійсний, логічний і символьний.
Цілий тип
| Тип | Діапазон | Розмір, байт | Опис |
| Ціле довжиною 1 байт | 0...255 | byte | |
| Коротке ціле | -128...127 | shortint | |
| Ціле | -32768...32767 | integer | |
| Ціле довжиною в слово | 0...65535 | word | |
| Довге ціле | 2147483648...2147483647 | longint |
Дійсний тип
| Тип | Діапазон | Мантиса | Розмір, байт |
| Real (дійсний) | 2.9E-39…1.7E38 | 11-12 | |
| Single (одинарна точність) | 1.5E-5…3.4E38 | 7-8 | |
| Double (подвійна точність) | 5.0E-324…1.7E308 | 15-16 | |
| Extended (підвищена точність) | 3.4E-932…1.1E4932 | 19-20 |
Літерний тип
| Тип | Діапазон | Розмір, байт | Опис |
| Літерний | Кодова таблиця | char |
Булівський тип
| Тип | Діапазон | Розмір, байт | Опис |
| Булівський | True, false | boolean |
Константи. Константами називаються елементи даних, значення яких не змінюється під час виконання програми. Всі константи поділяються на числові, символьні, стрічкові та логічні. Числові константи діляться на цілі та дійсні. Ціла константа складається із послідовності десяткових цифр, перед якою може стояти знак + або -.
Приклад. 185, -158, 2845.
Дійсні константи можна записувати одним з двох способів:
1) 24.856
-0.65
2) 0.24549Е+2
-0.65Е0
Символьна константа – це один символ в лапках: ‘f’, ‘+’.
Стрічкові константи представляють собою будь-яку сукупність символів алфавіту, яка заключається в апострофи. Кількість символів може змінюватися від 0 до 255.
Логічні (булівські) константи представлені двома значеннями:True (істинне) і False (хибне).
Ці константи являються значеннями логічних виразів.
Змінні. Змінні на відміну від констант можуть змінювати свої значення в процесі виконання програми. Кожна змінна, як і константа, належить до певного типу даних. Але якщо константа розпізнається компілятором без попереднього опису, то тип змінної повинен бути вказаний обов’язково. Для іменування змінної використовуються ідентифікатори.
Ідентифікатор – це послідовність букв і цифр, яка починається із букви. Довжина імені може бути яка завгодно, але компілятор “розуміє” тільки перші 63 символи. Букви кирилиці в іменах використовувати не можна. Стандартний тип для дійсної змінної – real. Його розуміє будь-який компілятор.
Арифметичні вирази. Вираз задає порядок виконання дії над елементами даних і складається із операндів (констант, змінних, звертань до функцій), з`єднаних знаками арифметичних операцій та круглих дужок. Значення арифметичного виразу є ціла або дійсна змінна. Розглянемо правила запису арифметичних виразів:
1) весь вираз записується в один рядок:
x2+2a*sin(x)/(1+x2) à (sqr(x)+2*a*sin(x))/(1*x2);
2) для запису арифметичних операцій використовуються такі символи:
+ - додавання;
- - віднімання;
* -множення;
/ - ділення;
div – цілочисельне ділення;
mod – залишок від ділення.
3) всі операції, записані у виразі, поділяються за пріоритетом. Найвищий пріоритет мають функції (sin(x), ln(x) і. т. д.), нижчий пріоритет в операцій, які виконуються перед одним операндом (-x). Потім операції *, /, і, нарешті,+ та -.
Приклади виразів
| Математичний вираз | На мові Pascal |
| a2-4x | a*a - 4*x 1 3 2 |
| b2-4ac | Sqr(b)-4*a*c 1 4 2 3 |
| c-d/a | c-d/a 2 1 |
4)операції однакового пріоритету виконуються зліва направо:

5) змінити порядок виконання операцій можна, розставляючи круглі дужки:

6) для операцій +, -, *, якщо хоча б один операнд дійсний, то результат буде дійсний, якщо обидва операнди цілого типу, то і результат буде цілого типу. При виконанні операції ділення результат буде дійсного типу.
Приклади виразів
| Математичний запис | Turbo Pascal |
| ax2+b | а*sqr(x)+b |
| (a+b)/abs(c-d) |
| exln(x+2) | exp(x)*ln(x+2) |
| ab | exp(b*ln(a)) |
В мові Turbo Pascal відсутня операція піднесення до степення, тому вираз
записують так: 
Стандартні функції. Для звертань до стандартних функцій необхідно записати стандартне ім`я функції, а також в дужках аргумент, над яким буде виконуватися дана функція. Список основних стандартних функцій приведемо у таблиці:
| Звертання до функції | Призначення функції | Приклад використання і обмеження на аргумент |
| sin(x) | sin(x) | |
| cos(x) | cos(x) | |
| arctan(x) | arctg(x) | x 1;
|
| ln(x) | ln(x) | x>0 |
| exp(x) | ex | |
| abs(x) | |x| | |
| sqr(x) | x2 | |
| sqrt(x) |
| |
| frac(x) | Обчислення дробової частини x | Frac(3.25)=0.25 |
| int(x) | Обчислення цілої частини x | int(3.25)=3 |
| pi | Число
|
|
| round(x) | Заокруглення числа x до цілого | round(3.6)=4 round(-1.5)=-2 |
| trunc(x) | Повертає цілу частину числа x | trunc(3.14)=3 trunc(-2.9)=-2 |
;
;
;
;
1;






