Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОП Конспект лекций - Паскаль.doc
Скачиваний:
20
Добавлен:
30.11.2018
Размер:
1.46 Mб
Скачать

Тема 3: Загальна структура і розділи Pascal-програми

Синтаксично програма представляється з необов'язкового заголовка і глобального блоку, що складається з двох частин: описової і виконавчої. Глобальний блок може містити локальні блоки – це процедури і функції. Об'єкти програми (типи, змінні, константи і т.д.) відповідно називаються глобальними і локальними. Область дії об'єктів – блок, де вони описані, і усі вкладені в нього блоки.

Загальний вид структури Pascal-програми:

рrogram ім'я програми (input, output);

Розділ описів:

{&…}; {директиви компілятора}

uses…; {підключення бібліотечних модулів}

label…; {розділ оголошення міток}

const…; {розділ опису констант}

type…; {розділ опису типів}

var…; {розділ опису змінних}

Розділ процедур і функцій:

procedure (function) {Ім'я процедури чи функції}

label…; {розділ оголошення міток}

const…; {розділ опису констант}

type…; {розділ опису типів}

var…; {розділ опису змінних}

begin

Оператори тіла процедури чи функції;

end;

Розділ операторів:

begin

Оператори програми;

еnd.

Заголовок містить службове слово Program, ім'я програми й у круглих дужках параметри Input і Output для зв'язку ПК зі стандартними зовнішніми пристроями. Пристроєм введення – Input – є клавіатура, а пристроєм виведення – Output – монітор. Наприкінці заголовка ставиться “;”. Перед заголовком можна писати коментар. Приклад заголовка:

{Знаходження суми перших n-членів рядка}

program My_progrSum (input, output);

Ім'я програми задає користувач. У Turbo Pascal-і заголовок можна опускати.

Після заголовкі слідує розділ описів, призначений для оголошення всіх існуючих в програмі даних і їхніх характеристик. Він може включати оголошення директив компілятора, розділи оголошень міток, описів констант, типів і змінних. Кожен опис закінчується “;”.

Усі дані, використовувані в розділі операторів, повинні попередньо бути описані (оголошені), інакше, при трансляції, у місці неописаного об'єкта буде вироблена помилка й обробка програми припиниться.

Будь-який з зазначених розділів, крім операторів основної програми, може бути відсутній (у простій програмі розділ описів взагалі може бути відсутній).

Послідовність розділів Label, Const, Type і Var може бути довільною.

Директиви компілятора – це інструкції, що задають той чи інший режим компіляції програми з метою одержання найбільш ефективного коду. Ознакою директиви є символ $, записаний без пробілу після першої фігурної дужки, за яким йде буква, що визначає режим компіляції. Знак “+” за буквою задає даний режим, а “-” – його скасовує. Наприклад: {$R-}. Якщо задають кілька директив, їх розділяють комами. Наприклад:

{$N+,K-,R+}

Розділ Uses підключає до тексту програми стандартні і користувальницькі бібліотечні модулі. Для підключення потрібно після Uses перелічити через кому імена модулів. Наприкінці списку ставиться “;”.

Наприклад:

uses Crt, Graph, My_Lib;

Розділ оголошення міток починається зі службового слова Label (мітка), за яким через кому слідують імена міток. Наприкінці ставиться “;”.Наприклад:

label {ключове слово}

ім'я_мітки_1, ім'я_мітки_2,…;

Мітку можна поставити перед будь-яким оператором, що дозволяє виконати перехід на цей оператор за допомогою оператора Goto з будь-якого місця програмного блоку. У розділі операторів ознакою мітки для компілятора є наявність після її імені двокрапки.

Якщо оголошена мітка не використовується, помилки не буде.

Розділ опису констант починається зі службового слова Const (Constant – постійна величина), за яким слідує ім'я константи, якії за допомогою символу “=” привласнюється постійне числове чи строкове значення:

const {ключове слово}

ім'я_константи = числове вираження;

В одному розділі можна описувати кілька констант. Кожен опис закінчується “;”, а слово Const для наочності програми варто виділяти в окремий рядок, наприклад:

const

a = 50; n1 = 0;

Якщо константа задана явно, тобто своїм значенням, то її описувати не потрібно. Наприклад:

ord(‘Z’) – ord(‘A’) + 1 {тут 1 – константа задана явно}

У ТР можна використовувати константні вираження, тобто вираження, що можуть бути обчислені компілятором фактично без виконання програми. Наприклад:

256 - 1;

(2,5+1)/(2,5-1);

‘Turbo’ + ‘’+’ Pascal’

chr(32)

Розділ опису типів починається зі службового слова Type, за яким слідують одне чи кілька визначень типів, розділених ";".Опис типів має загальний вид:

type

ім'я типу 1, ім'я типу 2,... = стандартне чи раніше описане ім'я типу;

. . .

Наприклад:

type

massiv = array[1...20] of integer;

name= string[10];

Розділ опису змінних починається зі службового слова Var (Variables - змінна), за яким слідує ім'я змінної і через двокрапку вказується тип. Наприкінці типу ставиться ";".

var

ім'я змінної : тип змінної;

В одному розділі можна описувати декілька змінних. Якщо ряд змінних мають один тип, їх можна об'єднати в список. У списку змінні розділять комами. Слово Var варто виділяти в окремий рядок, наприклад:

var

a,b,c : integer;

result: real;

Це робить текст програми більш зрозумілим.

Розділ процедур і функцій. У Paskal процедури і функції виконують роль підпрограм і мають ту ж структуру, що і програма, але замість ключового слова program повинне бути слово procedure чи function. Процедури і функції поділяються на стандартні та ті, що визначаються користувачем.

Стандартні процедури і функції заздалегідь створені, є частиною мови і можуть викликатися без попереднього опису. Зберігаються вони в бібліотеках Pascal.

Користувач може створювати свої додаткові процедури і функції, що обов'язково описуються в розділі процедур і функцій.

Розділ операторів. Опис операторів уявляє собою складений оператор begin (початок) ...end.(кінець), що закінчується крапкою та у якому розташована вся послідовність операторів програми, розділених ";":

begin

Оператор 1;

Оператор 2;

. . .

end.

Оператори програми також можуть бути включені в операторні дужки begin ... end для внесення ясності, де потрібно ставити ";", розглянемо список елементів, записаних натуральною мовою:

A, B, C, D.

Запис не зміниться, якщо елементи списку об'єднати в групу, уклавши її в круглі дужки:

(A, B, C, D).

Тепер представимо кілька подібних груп:

(A, B, C, D).

Е.

(ДО, L, M).

Об'єднаємо їх в одну загальну групу, дотримуючи правил натуральної мови:

((A, B, C, D), Е, (K, L, M)).

Аналогічні правила й у мові Pascal, тільки роль круглих дужок виконують операторні дужки begin і end, замість коми ставиться ";", а замість елементів - оператори.

Замінивши в приведеному записі круглі дужки відповідно на begin і end, коми на “;”, елементи на оператори, ми її представимо записаною мовою Pascal (для кращої наочності тексту програми кожен елемент запишемо в окремому рядку):

begin

begin

оператор А;

оператор ;

оператор ;

оператор ;

end;

Е;

begin

оператор ;

оператор ;

оператор ;

end

end.

Крапка наприкінці програми обов'язкова - вона є для компілятора ознакою кінця програми.

Як у природній мові після і перед круглими дужками кома не ставиться, так і в мові Pascal після Begin і перед End ";" не ставиться.

Питання для контролю.

  1. З яких розділів складається Pascal -програма? Які розділи можуть бути відсутніми у програмі?

  2. Яке призначення розділу описів?

  3. Що містить заголовок Pascal-програми?

  4. Що таке директиви компілятора? Ознака директиви.

  5. Яке призначення розділу Uses?

  6. Що таке мітка і як вона з'являється?

  7. Як описується константа? В якому випадку константу не описують?

  8. Що таке константне вираження?

  9. Чи можна в одному розділі описувати кілька констант? Оголошувати кілька міток?

  10. Яка послідовність розділів Label, Const, Type і Var?

  11. Яке призначення в заголовку параметрів Input і Output?

  12. Як оголошується змінна?

  13. Опишіть структуру розділу опису типів.

  14. Чи можна в одному розділі оголосити декілька змінних?

  15. Опишіть структуру розділу процедур і функцій.

  16. Опишіть структуру розділу операторів.

  17. Де потрібно ставити ";" а де ні?

  18. Яке призначення крапки наприкінці програми?