Основні поняття та елементи мови

1. Опис мови. Мову Паскаль створив на початку 70-х років про­фесор Н.Вірт зі Швейцарії. Вона названа на честь французького ма­те­­матика і філософа Блеза Паскаля (1623-1662) — винахідника пер­шої у світі механічної обчислювальної машини. Мова вважаєть­ся най­­більш досконалою порівняно з іншими мовами програмуван­ня. Її вико­ристовують для розв’язування різноманітних задач.

Програми складаються з синтаксичних конструкцій, які нази­ва­ть командами (операторами, вказівками, реченнями). Команди будуються з лексем — ­неподільних елементів мови: слів, чисел, сим­волів опе­ра­цій тощо. Слова поділяються на службові, стандартні імена та іме­на (ідентифікатори), які користувач дає різним об'єк­там. Розгля­немо основні службові слова мови. Їх можна запису­вати як велики­ми, так і малими літерами:

and — і array — масив begin — початок case — вибір const — сталі div — ділення без остачі do — виконати downto — униз до else — інакше end — кінець file — файл for — для function — функція goto — перейти до if — якщо in — в label — позначка mod — остача nil — нуль not — ні of — з or — або packed — стиснутий procedure — процедура program — програма record — запис repeat — повторювати set — множина then — то to — до type — тип until — доки var — змінні while — доки та інші.

Стандартні імена. Великий набір слів є проміжним між службо­вими словами та іменами користувача. Це стандартні імена. Їх є декіль­ка груп:

1) назви стандартних типів даних: boolean (логічний), char (сим­воль­­ний), integer (цілий), real (дійсний), text (текстовий файл) тощо;

2) назви стандартних сталих: false (хибність), true (істинність), maxint (максимальне ціле), pi(число p) тощо;

3) назви стандартних функцій: abs, arctan, cos, exp, ln, sin тощо;

4) назви стандартних процедур: read, readln, write, writeln тощо.

Стандартні імена користувач може використати для позначення інших об’єктів, однак тоді вони втрачають основне призначення.

Імена, які користувач надає величинам (сталим, змінним), про­грамі, підпрограмам тощо, мають складатися з латинських літер, цифр, символу “_”. В імені цифра не може бути першим символом. Наприклад, програму можна назвати так: myprogram_1.

Зауваження. У цій книжці службові слова будемо записувати малими літерами і виокремлюватимемо товстим шрифтом.

2. Структура програми. Програма складається із заголовка

program <ім’я програми>;

розділів описової частини

uses —приєднання бібліотек та модулів; label —оголошення міток (позначок); const — оголошення сталих; type — опис типів; var — оголошення змінних; procedure — оголошення процедур користувача; function —оголошення функцій користувача

та виконуваної частини

begin <розділ команд> end.

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

Заголовок програмі надає програміст. В іменах, які користувач дає своїм програмам та змін­ним, великі і малі букви рівноправні: імена A та a (або MyName та myname) позначають один і той самий об’єкт.

У програму можуть входити коментарі. Коментар — фрагмент тексту програми, взятий в фігурні дужки або записаний так: (* коментар *). Коментар слугує для пояснення роботи програми і не впливає на виконання команд. Він може бути розташований у до­віль­ному місці програми.

Зауваження. Особливим видом коментаря є директива. Дирек­тиви при­значені для задавання режимів функ­ці­о­­нування компіля­тора. Як і коментар, директиву записують у фігурних дужках, де після відкриваючої дужки зазначають символ $, наприклад, дирек­тива {$F+} підтримує так звану far-модель пам’яті для роботи з про­цедурами та функціями, {$N+} забезпечує застосування матема­тичного спів­про­цесора тощо (див. § 14).

3. Розділи оголошення сталих і змінних. Усі величини, які входять у програму, повинні бути описані у розділі сталих (конс­тант), якщо вони не мінятимуть значення протягом виконання програми:

const <стала 1>= <значення 1>; … <стала n>= <значення n>;

або у розділі оголошення змінних, якщо вони обчислюватимуться:

var <список змінних 1>: <тип змінних 1>; … <список змінних n >: <тип змінних n>;

Елементи списків записують через кому. Кутові дужки <...> —це засіб формалізованого описування конструкцій мови. У конкрет­них програмах їх не використовують.

4. Перша програма. Програма — це послідовність команд, за допомогою яких записують алгоритм розв’язування задачі. Про­грами (алгоритми) скла­дають за таким принципом: вводять дані, визна­ча­ють потріб­не, виводять резуль­та­ти. Аналогічно розв’я­зують за­да­чі з мате­ма­ти­ки та фізики, але тут обчислення вручну вико­ну­вати не потрібно — їх виконає комп’ютер.

Розглянемо програму з назвою Trykutnyk для розв’язування задачі обчислення периметра p та площі s трикутника зі сторонами a =5, b =3.6, с =4.2 за форму­лою Герона. Усі команди, нaведені в програмі, будуть детально розглянуті нижче.

program Trykutnyk;

Uses

Crt; { Приєднуємо модуль Crt}

Const

a=5; b=3.6; с=4.2; { Вводимо довжини сторін }

Var

p, s: real; { Оголошуємо змінні для }

begin { периметра та площі }

clrscr; { Очищуємо екран }

p:=a+b+c; {Обчислюємо периметр}

writeln('p=', p:5:2); {Виводимо значення периметра}

p:=p/2; {Обчислюємо півпериметр}

s:=sqrt(p*(p-a)*(p-b)*(p-c)); {Визначаємо площу}

writeln('s=', s:5:2); {Виводимо значення площі}

writeln('Виконав Савула Ю.');

readln

End.

Символ * позначає операцію множення, / — ділення, а sqrt(х) — це функція обчислення квадратного кореня з х. Два символи:= по­зна­ча­ють операцію присвоєння. Команда writeln призначена для виве­­ден­ня результатів. Після виконання програми на екрані отримаємо:

p= 12.80

s= 7.43

Виконав Савула Ю.


Типи даних

1. Стандартні типи даних. Одним з найважливіших понять у про­гра­му­ванні є змінна. Змінна це поіменована ділянка опера­тив­ної пам'яті комп'ютера, де зберігається значення деякої вели­чини. Змінна має такі властивості: назву (ім’я), значення, тип. Кількість змінних та їхні властивості задає корис­ту­вач. Тип змінної визначає її допустимі значення, а також операції, які можна над нею вико­нувати. У програмі Trykutnyk з § 1 змінні p та s оголошені як змінні число­вого дійсного типу.

Розглянемо стандартні типи даних: числові цілі (табл.1), числові дійсні (табл.2), символьний та логічний. Інші типи ви­вчати­мемо дальше.

Табл.1. Цілочислові типи

Назва типу Діапазон значень
byte 0..255
shortint –128..127
word 0..65535
integer (основний тип) –32768..32767
longint –2147483648..2147483647

Розглянемо такі дві змінні: var x: byte; y: integer. Цим змінним можна надати, наприклад, таких значень: x:=65; y:=–5. Зауважимо, що змінна x не може набувати від'ємних значень, оскільки вони не входять до діапазону допустимих значень типу byte.

Табл.2. Дійсні типи

Назва типу Діапазон
single 1.5·10–45–3.4·1038
real (основний тип) 2.9·10–39–1.7·1038
double 5.0·10–324–1.7·10308
extended 3.4·10–4951–1.1·104932

Дійсні числа можна записувати у форматі з фіксованою крап­кою, наприклад, 5.04, –12.109, або у форматі з плаваючою крапкою, наприклад, –5.2Е+2 (це є –520.0), 16.1Е–3 (це є 0.0161). Символи n Е+2 означають множення числа n на 10 у степені +2, тобто

n E m = n •10 m .

Символьний тип (char) — це множина символів кодової таблиці комп'ютера ASCII. Символьна стала — це символ, взятий у лапки, наприклад, ’а’, ’5’, ’%’.

Логічний тип (boolean) характеризується двома значеннями: false (хибність) та true (істинність).

Усі стандартні типи (окрім дійсного) є впорядкованими, тобто для кожного даного визначені наступне та попереднє значення.

2. Нестандартні прості типи. Усі наведені вище типи даних є стандартними. Їх не треба описувати у розділі типів. Користувач може визначити свої власні типи даних у розділі type так:

type <ім’я типу 1>= <опис типу 1>; … <ім’я типу n>= <опис типу n>;

До простих нестандартних типів належать перерахований, діапа­зонний та ряд­ковий типи.

Перерахований тип утворюють з ідентифікаторів (імен користу­вача) шля­хом їх об’єднання у список, який записують у круглих дужках:

Type <ім’я типу> = (<значення 1>, <значення 2>,…, <значення n>);

Приклад. Опишемо два перераховані типи (дні тижня та кольо­ри):

Type

week = (mon, tue, wed, the, fri, sat, sun);

colors = (red, green, yellow, white);

та оголосимо дві змінні — day та mycolor цих типів:

Var

day: week; mycolor: colors;

Цим змінним можна надати, наприклад, такі значення:

day:= fri, mycolor:= green, mycolor:= yellow.

Номер першого елемента списку завжди є 0. Дані пере­рахо­ваного типу не можна вводити з клавіатури чи виводити. Даними пере­рахо­ваного типу не можуть бути числові чи символьні значення.

Діапазонний тип — це звуження деякого базового упорядкова­но­го типу. Його описують наступним чином:

type <ім’я типу> = <значення 1>..<значення 2>;

Приклад. Розглянемо три типи, які описують усі дні тижня, робочі дні та номери місяців, і оголосимо змінні day1, day2, day3 та month цих типів:

Type

week = (mon, tue, wed, the, fri, sat, sun);

workdays = mon .. fri;

months = 1..12;

Var

day1, day2: week; day3: workdays; month: months;

Рядковий тип даних (string). Значенням змінної рядкового типу може бути довільна послідовність, яка складається не більше, ніж з 255 символів. Змінні рядкового типу можна описати у розділі опи­су констант, типів, або оголосити у розділі змінних. Напри­клад,

Const

s = 'Bye!';

Type

t = string[10];

Var

top: t; w: string.

У квадратних дужках зазначають довжину рядка. Сталі типу ря­док використані в програмі Trykutnyk у команді виведення writeln.

3. Типізовані сталі. Окрім звичайних, є ще типізовані сталі. Вони дають змогу оголошувати змінну й відразу надавати їй зна­чен­ня:

Const <ім’я сталої 1>:<тип 1> = <значення 1>; … <ім’я сталої n>:<тип n> = <значення n>;

На відміну від звичайних, значення типізованих сталих у про­грамі можна змінювати. Приклади типізованих сталих:

Const

mysymbol: char = 'а';

n: integer = 5;

p: real = 1.73.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: