- •Історична довідка
- •Характеристика й особливості мови
- •Алфавіт мови
- •Службові (зарезервовані) слова.
- •Структура програми мови Turbo Pascal
- •Розділ оголошень і угод
- •Розділ текстів процедур і функцій
- •Розділ основного блоку програми
- •Процедури введення-виведення. Деякі вбудовані функції Турбо-Паскаля.
- •Функції числових параметрів.
- •Базові управляючі конструкції Турбо-Паскаля Оператори умовного переходу.
- •1. Оператор if.
- •2. Оператор вибору (case)
- •Оператори циклів у Паскалі
- •1. Цикл із післяумовою (Repeat)
- •2. Цикл із предумовою (While)
- •3. Цикл із лічильником або параметром (For)
- •Концепція типів даних. Типи даних в мові Pascal
- •Дійсні типи
- •Бульовий (логічний) тип
- •Символьні і рядкові змінні
- •1. Символьний тип
- •2. Рядковий тип
- •Перерахований та обмежений типи
- •1. Перерахований тип
- •2. Обмежений тип
- •1. Поняття масиву. Одномірні масиви
- •2. Багатомірні масиви
- •3. Сортування і пошук
- •Множинний тип
- •Тип запис
- •Процедури і функції
- •Формальні і фактичні параметри. Механізм параметрів
- •Параметри - значення
- •Параметри-змінні
- •Безтипові параметри
- •Приведення типів.
- •Процедурні типи
- •Рекурсія Рекурсивні визначення
- •Рекурсивні підпрограми
- •Алгоритми з поверненням. Розв’язок задачі про рух коня
- •Алгоритми з поверненням. Розв’язок задачі про вісьмох ферзів
- •If підходить тнеn
- •Модулі в Турбо Паскалі
- •Модуль crt
- •1. Керування екраном
- •2. Робота з клавіатурою
- •3. Інші можливості
- •Графіка в Турбо Паскалі
- •1. Включення і вимикання графічного режиму.
- •2. Побудова елементарних зображень
- •3. Виведення текстової інформації.
- •Файли в мові програмування Pascal
- •Установчі і завершальні операції
- •Операції введення-виведення
- •Обробка помилок введення-виведення
- •Переміщення по файлу
- •Спеціальні операції
- •Текстові файли
- •1. Оголошення файлової змінної і прив'язка до файлу на диску
- •2. Читання даних з файлу
- •3. Запис даних у файл
- •Двійкові файли
- •1. Типізовані файли
- •2. Нетипізовані файли
- •Статичні і динамічні змінні
- •Покажчики
- •Стан покажчика
- •Установка розмірів динамічної пам'яті
- •Сумісність і перетворення посилкових типів
- •Динамічні структури даних
- •Динамічні змінні: інші види списків, стек і черга.
- •1. Інші види списків
- •2. Стек і черга
- •Дерева і пошук у деревах
- •1. Визначення й описи структур даних
- •1. Масив
- •2. Список
- •3. Дерево
- •2. Алгоритми
- •1. Лінійний пошук у масиві
- •2. Двійковий пошук
- •3. Лінійний пошук у списку
- •Змішані таблиці
- •Об’єктно-орієнтоване програмування. Що таке об’єктно-орієнтоване програмування
- •Інкапсуляція
- •Спадкування
- •Віртуальні методи і поліморфізм
- •Конструктори, динамічні об'єкти і деструктори
- •Поля і методи: сховані і загальнодоступні
- •Системно- залежні розширення
- •Налагодження змінних
- •Оверлеї
- •Переривання і системні виклики
- •Доступ до пам'яті і портів
- •Перевизначення переривань
Розділ оголошень і угод
PROGRAM Заголовок програми;
($ ... ) Глобальні директиви компілятора;
USES бібліотеки (модулі), що підключаються;
LABEL Підрозділ оголошення глобальних міток;
CONST Підрозділ оголошення глобальних констант;
type Підрозділ оголошення глобальних типів;
VAR Підрозділ оголошення глобальних змінних;
Розділ текстів процедур і функцій
PROCEDURE
(function) Заголовок процедури (функції);
LABEL Підрозділ оголошення локальних міток;
CONST Підрозділ оголошення локальних констант;
type Підрозділ оголошення локальних типів;
VAR Підрозділ оголошення локальних змінних;
begin Основний блок або процедури функції;
END;
Розділ основного блоку програми
BEGIN Основний блок програми;
END.
Розглянемо найбільш важливі частини вищеописаних блоків. Під заголовком програми розуміється ім'я, що допомагає визначити її призначення. Ім'я, чи ідентифікатор, будується за наступними правилами: воно може починатися з великої чи малої букви латинського чи алфавіту знака «_», далі можуть стояти букви, чи цифри знак «_»; усередині ідентифікатора не може стояти пробіл. Після імені програми варто поставити «;», цей знак служить у Паскалі для поділу послідовних інструкцій. Помітимо, що ім'я програми може не збігатися з ім'ям відповідного файлу на диску.
Глобальні директиви компілятора
У цьому розділі програми компілятору можна дати вказівки, що визначають режими його роботи при трансляції програми. Ці вказівки оформляються в тексті програми як коментарі, що починаються парою символів ({$) і закінчуються символом (}). Такі вказівки можуть містити "замовлення" на включення в текст програми фрагментів інших програм (з відповідних файлів), інформацію чи відомості про необхідності використання арифметичного сопроцесора.
Оператор USES
Оператор USES відіграє важливу роль у підключенні до тексту програми системних модулів з бібліотек. У цьому операторі Ви вказуєте компілятору, з якої бібліотеки використовує модулі програма. Поняття "бібліотека", "модуль", "блок" складають основу термінології програмування на Паскалі. Бібліотека включає набір модулів, кожен з яких, має власне ім'я, компілюється окремо і до нашої програми підключається вже як "чорний ящик" з відомим інтерфейсом. Кожен модуль (блок (UNIT), як його називають на Паскалі) являє собою програму, що включає декларації типів і змінних, процедури і функції.
Опис міток
Опис міток уводить сукупність ідентифікаторів і/або цілих чисел, призначених для організації послідовності обчислень. За допомогою міток можна відзначити (указати) ті оператори, на які буде передане керування з інших точок програми. Передача керування на позначений оператор реалізується за допомогою спеціального оператора переходу.
Після слова const містяться описи сталих, котрі будуть використані в програмі, наприклад:
const Zero = 0;
pi = 3.1415926;
my_const = -1.5;
Hello = 'Привіт !';
Визначення типів
Визначення типів призначене для завдання конкретних множин значень. Зазначені множини позначаються іменами (ідентифікаторами) і надалі можуть служити для опису змінних.
Оголошення глобальних змінних
За словом var розташовують оголошення змінних, котрі знадобляться нам при написанні програми. Змінні Паскаля можуть зберігати дані різної природи: числа, рядки тексту, окремі символи і т.п. Нижче приводиться частина типів перемінних, котрі можна застосовувати.
Назва типу |
Можливі значення |
Приклади значень |
integer |
цілі: -32768 ... 32767 |
12, -10000 |
real |
дійсні (по модулі): 2,9x10-39... 1,7x1038 |
-9.81, 6.02e-23 |
string[n] |
рядок до n символів довжиною, якщо [n] не зазначено, то до 255 |
‘abcde’, ‘привіт’ |
char |
одиночний символ |
‘F’, ‘!’, ’_’,’ю' |
Оголошення змінних записуються в наступній формі:
var <змінна> : <тип>;
Якщо описуються декілька змінних одного типу, то досить записати їхні імена через кому, а після двокрапки поставити загальний тип.
Приклади оголошення:
var Number: integer;
d,l: real;
Name: string[20];
Line: string;
Key1,Key2: char;
Опис процедури або функції
Нарешті, опис процедури або функції визначає частину програми як окрему синтаксичну одиницю і зіставляє з нею ім'я. Згодом дії, зосереджені в процедурі (функції), можуть бути виконані ("викликані") за допомогою вказівки її імені. Крім дій, опис процедури (функції) може містити сукупність описів локальних об'єктів, що утворять власний контекст імен. Процедури і функції є основним засобом структурування програми.
Блок основної програми.
Тут, між словами begin і end. розташовуються команди (точніше, оператори), що будуть виконуватися один за іншим при запуску програми. Розглянемо найпростіші типи операторів на наступному прикладі:
program First;
const a2 = 3;
a1 = -2;
a0 = 5;
var x,f: real;
begin
write('Уведіть значення х ');
readln(x);
f := a2*x*x+a1*x+a0;
writeln(‘Значення квадратного тричлена: ’,f);
end.
Перший рядок програми виводить на екран напис «Уведіть значення х », для цього використовується процедура write написана розроблювачами Турбо Паскаля, тобто набір команд, невидимий для нас, але існуючий реально в надрах системи Турбо Паскаль. Як параметр цієї процедури використовується наш рядок. Параметри завжди записуються в круглих дужках, апострофи означають, що параметр має рядковий тип. Отже, у першому рядку ми бачимо так називаний оператор виклику процедури. Кожен оператор відокремлюється від наступного символом «;». В другому рядку викликається процедура введення readln(x), яка чекає, поки користувач набере значення x із клавіатури і натисне клавішу «Enter», а потім переводить курсор на наступну рядок (ln ( Line ( рядок). У третьому рядку обчислюється значення тричлена і записується в змінну f; цей оператор називається оператором присвоювання, і позначається символом ":=". В останньому рядку на екран виводиться рядок «Значення квадратного тричлена: » і значення змінної f. Нескладно помітити, що тут процедурі writeln передається вже не один, а два параметри, причому вони можуть мати різні типи. Узагалі, процедури введення і виведення (тобто write, writeln, read, readln) можуть мати будь-яке число параметрів різних типів, параметрами можуть бути змінні, числа, рядки, а також вирази. Використовуючи вираз при виведенні, можна замінити два останні рядки нашої програми одним:
writeln('Значення квадратного тричлена: ', a2*x*x+a1*x+a0);
В арифметичних виразах на Паскале використовуються наступні знаки для позначення операцій: +, -, *, /. Для визначення порядку дій використовуються круглі дужки відповідно до загальновизнаних математичних правил.
Зауваження про імена. Для позначення змінних забороняється використання ряду слів, називаних зарезервованими, вони грають у мові особливу роль. Нам уже зустрічався ряд зарезервованих слів: program, begin, end, string, const, var, і т.п.