Паскаль. Прикладне програмне забезпечення


Вступ у програмування мовою Паскаль.

1. Загальні відомо мості про мову Паскаль.

Мова ПАСКАЛЬ є універсальною мовою програмування високого рівня.Його основи розробив Ніклаус Вірт, професор технічного університету в Цюріху Швейцарія, що назвав мову на честь Блєза Паскаля, знаменитого французького філософа і математика XVII сторіччя.

Створення професором Віртом мови ПАСКАЛЬ у 1971 році мало своєю метою полегшити процес навчання Систематичному підходу до програмування для ЕОМ, точніше сказати, структурному програмуванню. Відтоді мова ПАСКАЛЬ використовується для програмування майже всіх типів задач на майже всіх типах ЕОМ і довгийчас вважалася однією з кращих мов програмування високого рівня, незалежно від того, для яких цілей він використовується: для навчання або для програмування як аматорами так і професіоналами.

Програма, написана мовою ПАСКАЛь, складається з Лексем і Роздільників. Лексемами називаються мінімальні значимі одиниці тексту в програмі, написаній мовою ПАСКАЛЬ. Вони подані такими категоріями як спеціальні символи, ідентифікатори, мітки, числа, рядкові константи.

Роздільник являє собою пробіл або коментар.Дві сусідніх лексеми, якщо вони являють собою зарезервоване слово, ідентифікатор, мітку або число, повинні бути відділені одна від одної хоча б одним роздільником.

Примітка: роздільники не можуть бути частиною лексем за винятком рядкових констант.

Зарезервоване слово – це ідентифікатор, якому в мові програмування наданий певний смисл. Це може бути ім’я операції, оператор, службове слово, тощо. Забороняється правилами мови ПАСКАЛь перевизначати зарезервовані слова наприклад, використовувати їх для позначення інших об’єктів програми. Наступні слова являються зарезервованими в Турбо Паскаль:

And elseinline procedure type

Asm end interface program unit

Array external interrupt record until

Begin file label repeat uses

Case for mod set var

Const forwardnilshlwhile

Constructor functionnotshrwith

Destructor gotoobjectstringxor

Div ifofthen

Doimplementation orto

Downto inpacked

Для мови ТУРБО ПАСКАЛЬ байдужний регістр клавіатури, томуможнавикористовувати у програмі як малі, так і великі літери. Відмінність має значеннялише при записі рядкових констант.

2. Типи даних.

Дані в програмуванні являють собою величини, які опрацьовуються програмою. Вони поділяються на:

· Константи та змінні;

· Скалярні та структуровані;

· Стандартні та дані користувача.

Константи – це величини, що не змінюють своїх значень в ході виконання програми. Змінні – об’єкти, що можуть приймати різні значення. Але це не означає, що змінна обов’язково повинна прийняти іншезначення. Далі вважатимемо, основним об’єктом програми є змінна.

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

Стандартні величини реалізовані в трансляторі мови ПАСКАЛЬ, тому їх можна використовувати без додаткового оголошення. Крім того, користувач може оголошувати і використовувати власні величини, які називаються даними користувача.

Тип даних визначає множину значень, що може приймати змінна. Кожній змінній в програмі необхідно задати один, і тільки один тип даних. Хоча ПАСКАЛЬ може опрацьовувати достатньо складні типи даних, усі вони складаються з простих неструктурованих типів.

Вивчення типів даних розпочнемо зі скалярних стандартних типів даних. Їх в ПАСКАЛІ є чотири: Integer тип цілих чисел, Real тип дійсних чисел, Char літерний типта Boolean логічний тип.

У ТУРБО ПАСКАЛЬ існує п’ять вбудованих цілочисельних типів: Shortint коротке ціле, Integer ціле, Longint довге ціле, Byte довжиною в байт і Word довжиною в слово.Кожний тип визначає певну підмножину цілих чисел, як це показано таблиці 4.1.

Таблиця 4.1 Вбудовані цілочисельні типи

Тип

Діапазон

Формат

Shortint

128.. 127

8 бітів із знаком

Integer

32768.. 32767

16 бітів із знаком

Longint

2147483648.. 2147483647

32 біта зі знаком

Byte

0.. 255

8 бітів без знака

Word

0.. 65535

16 бітів без знака

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

Є п’ять видів дійсних типів: Real, Single, Double, Extended і Comp.

Дійсні типи розрізняються діапазоном і точністю пов’язаних з ними значень. Основним є перший тип, тому детально зупинимось саме на його вивченні.

Перш за все, дані дійсного типу можуть подаватись у двох формах: з фіксованою точкою та плаваючою точкою експоненційній формі. Перша форма подання чисел більш звична. В ній явно задана ціла та дробова частина, які відокремлені точкою Так, числа 2.729, 89.084109, 134 подані у формі з фіксованою точкою.

Експоненційна форма подає число у так званому нормалізованому вигляді: мантиси і порядку. Мантиса лежить у діапазоні [1; 10 і складається з 12 символів: однієї цифри на цілу частину, одного символу на десяткову точку і десяти цифр на дробову частину. Якщо дробова частина містить менше цифр, то решта заповнюється нулями. Порядок складається з чотирьох символів і починається літерою Е, після якої йде знак порядку та дві цифри – його значення. Приклад запису чисел поданий в таблиці 4.2.

Таблиця 4.2. Запис дійсних чисел

Форма з фіксованою точкою

Експоненційна форма

1.4529

1.4529000000Е+00

39870

3.9870000000Е+04

0.000029

2.9000000000Е05

Дані булевого типу іноді його називають логічним можуть приймати значення, обумовлені стандартними ідентифікаторами True істина і False неправда. При виконанні операцій відношення вважають справедливим співвідношенням: Falsetrue. Змінна булевого типу займає в пам’яті 1 байт.

Значенням змінної літерного типу може бути один із символів, що входять у таблицю символів.. Символи впорядковані один щодо одного відповідно до їх значень в коді ASCII, наприклад: "А" "У".Значення кодів символів у ASCII змінюються від 0 до 255.Змінна символьного типу займає один байт пам’яті

3. Запис арифметичних виразів.

Виразами називаються алгоритмічні конструкції мови, що визначають правила для обчислення значень змінних величин. Вираз складається з операндів: змінних, констант, назв функцій, що відокремлюються один від одного за допомогою операторів.

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

Будьякий операнд, тип якого є піддіапазоном порядковоготипу, опрацьовується так,якбивін був порядкового типу.

Якщо обидва операнди в операторах +, ,, Div Або Mod Є операндами цілого типу, то тип результату є таким же, як спільний тип обох операндів.

Якщо при використанні оператора збереження знака або оператора заперечення знака операнд має цілий тип, то результат є того ж цілого типу.Якщо операнд дійсного типу, то тип результату є Real.

Значення виразу X/y завжди є Real незалежно від типів операндів. Якщо Y дорівнює 0, то виникає помилка.

Значення виразу i div jявляє собою цілучастину від ділення I/j. Якщо J дорівнює 0, то виникає помилка. Наприклад, 25 Div 4 = 6, 21 Div 3 = 7.

Оператор Mod повертає залишок, отриманий при діленні двох його операндів. Наприклад, 25 Mod 4 = 1, 21 Mod 3 = 0.

Знак результату оператора Mod є тим же, що і знак змінної I. Якщо J дорівнює 0, то виникає помилка.

Таблиця 4.3 Бінарні арифметичні операції

Оператор

Операція

Тип
операндів

Тип
результату

+

Додавання

Цілий

Цілий

Дійсний

Дійсний

Віднімання

Цілий

Цілий

Дійсний

Дійсний

Множення

Цілий

Цілий

Дійсний

Дійсний

/

Ділення

Цілий

Дійсний

Дійсний

Дійсний

Div

Цілочисельне ділення

Цілий

Цілий

Mod

Залишок цілочисельного ділення

Цілий

Цілий

Таблиця 4.4 Унарні арифметичні операції

Оператор

Операція

Тип операндів

Тип результату

+

Збереження знака

Цілий

Цілий

Дійсний

Дійсний

Заперечення знака

Цілий

Цілий

Дійсний

Дійсний

Таблиця 4.5. Основні арифметичні функції.

Математичний запис

Запис в
ПАСКАЛІ

Тип
операнду

Тип
результату

1.

Sin x

Sinx

Real

Real

2.

Cos x

Cosx

Real

Real

3.

Ex

Expx

Real

Real

4.

Ln x

Lnx

Real

Real

5.

|x|

Absx

Real

Real

6.

Integer

Integer

7.

X2

Sqrx

Real

Real

8.

Integer

Integer

9.

Sqrtx

Real

Real

Приклади записуарифметичних виразів. виразів

Математичний запис

Запис мовою ПАСКАЛЬ

a+b/cd

Expx+1ax

Sqrsinxxx

Sin2x/x+1/cos2x/x+1

Exp1/3lnx+1

Зауважимо, що можливі й інші вірні варіанти запису виразів.

4. Структура програми мовою Паскаль.

Програма, написана мовою ПАСКАЛЬ, являє собою послідовність рядків, кожен з яких відокремлюється від іншого символом ";" крапка з комою. Вонаскладається з трьох частин: Заголовка, Блока описів та Блока операторів.

Заголовок задає ім’я програмі.

Блок описів оголошує всі об’єкти, які використовуються програмою: мітки, константи, типи користувача, змінні, тощо.

Блок операторів задає дії, які направлені на розв’язання завдання.

Отже, загальний вид програмина мові ПАСКАЛЬ має вигляд:

Programім’я програми

Uses модулі

Const константи

Label мітки

Type типи користувача

Var змінні

Begin

оператори

End.

Розглянемо кожен блок детальніше.

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

ПРИКЛАД:

Program circles;

Не слід плутати заголовок програми та ім’я відповідного дискового файлу. Ці імена ніяк між собою не пов’язані. В більшості випадків користувачі не вказують заголовок.

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

· розділ підключення модулів процедур та функцій;

· розділ опису міток;

· розділ опису констант;

· розділ визначення типів;

· розділ опису змінних;

· розділ опису процедур і функцій.

Транслятор мови ПАСКАЛЬ створений таким чином, що основний файл не містить всіх процедур та функцій. Вони згруповані і реалізовані в окремих файлах, які називаються модулями стандартних процедур та функцій.Наприклад, модуль CRT містить функції для роботи з екраном в текстовому режимі, GRAPH – функції для роботи з екраном в графічному режимі. Крім того, користувач може створювати власні модулі процедур та функцій. В розділі Uses здійснюється підключення необхідних модулів процедур та функцій. Програма може містити лише один розділ Uses , причому він повинен бути завжди першим у блокові описів. Якщо жоден з модулів не підключається, то цей розділ відсутній.

ПРИКЛАДИ:

Uses dos, graph;

Uses my_lib;

Розділ оголошення міток призначений для вказівки міток операторів. Перед будьяким оператором програми можна поставити мітку. Це дозволить виконувати прямий перехід на цей оператор при виконанні команди GOTO.Розділ опису міток має таку структуру: спочатку записується зарезервоване слово Label мітка, за ним слідує список ідентифікаторів міток, відділених одна від одної комами. В мові TУРБО ПАСКАЛЬ в ролі міток можуть бути використані як числа, так і ідентифікатори.

ПРИКЛАД:

L Abel 10,999;

L Abel new, errors;

У розділі визначення констант здійснюється присвоювання ідентифікатором визначених постійних значень. На початку розділу визначення констант пишеться слово Const константа. Слідом за цим словом іде список імен і після символу "=" відповідні їм вирази, у яких ідентифікаторам присвоюються визначені постійні значення. Елементи списку відокремлюються один від одного крапкою з комою.

ПРИКЛАД:

Const

Max = 1024;

Password = ‘Sezam’;

Limit=2max;

Розділ оголошення типів призначений для введення типів даних користувача. Практично всі структуровані типи даних є типами даних користувача і повинні описуватись у даномурозділі.Розділ визначення типів починається зарезервованим словом Type тип.За словом Type Слідують визначеннятипів, розділених один від одного крапкою з комою. Кожне визначення типу складається з ідентифікатора типу, знака рівності і самого опису типу.

ПРИКЛАД:

Type

Day = пн, вт, ср, чт, пт, сб, вс;

Colors= синій, червоний, зелений;

Зауважимо, що в останньому прикладі значення задаються без лапок це не значення рядкового типу, а значення зліченого типу!.

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

Розділ опису змінних починається зарезервованим словом Var від Variable змінна. Слідом за ним йде список, записи якого мають таку структуру: спочатку через кому перераховується один або декілька ідентифікаторів змінних, потім ставиться двокрапка і після двокрапки вказується тип перерахованих змінних.

ПРИКЛАД:

Var

A, b, result: real;

I, j, x, y:integer;

Period: day;

Мова ПАСКАЛЬ припускає також оголошення змінних безпосереднім описом змінних.

ПРИКЛАД:

Var

Nt: 1..20;

Anser: yes, no;

Таке оголошення має свої обмеження на використання змінних, і тому зловживати ним не рекомендується.

Розділ опису процедур та функцій служить для визначення допоміжних алгоритмів процедур та функцій користувача у рамках поточного модуля або програми. Цей розділ не має службового слова для початку розділу, тому що кожна процедура або функція користувача має своє службове слово для початку свого оголошення.. Детально цей процес буде розглянутий далі.

Кожен з описових розділів, крім розділу Uses, може зустрічатись в програмі декілька разів і в будьякій послідовності. Головне, щоб не порушувалась логічна структура програми наприклад, змінна типу користувача не оголошувалась раніше самого типу, тощо.

Розділ операторів є останнім у блоці програми.Він задає дії, які повинна виконати програма. Розділ операторів починається службовим словом BeginІ закінчується службовим словом end. крапка в кінці обов’язкова.Кожна програма може мати лише один розділ операторів.

Узагальнення по темі.

Програма, написана мовою ПАСКАЛь, складається з лексем і роздільників. Лексемами називаються мінімальні значимі одиниці тексту в програмі, написаній мовою ПАСКАЛЬ. Вони подані такими категоріями як спеціальні символи, ідентифікатори, мітки, числа, рядкові константи.

Роздільник являє собою пробіл або коментар.Дві сусідніх лексеми, повинні бути відділені одна від одної хоча б одним роздільником.

Зарезервоване слово – це ідентифікатор, якому в мові програмування наданий певний смисл. Це може бути ім’я операції, оператор, службове слово, тощо. Забороняється правилами мови ПАСКАЛь перевизначати зарезервовані слова.

Дані в програмуванні являють собою величини, які опрацьовуються програмою. Вони поділяються на:

· константи та змінні;

· скалярні та структуровані;

· стандартні та дані користувача.

Константи – це величини, що не змінюють своїх значень в ході виконання програми. Змінні – об’єкти, що можуть приймати різні значення.

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

Стандартні величини реалізовані в трансляторі мови ПАСКАЛЬ, тому їх можна використовувати без додаткового оголошення. Крім того, користувач може оголошувати і використовувати власні величини, які називаються даними користувача.

Тип даних визначає множину значень, що може приймати змінна. Кожній змінній в програмі необхідно задати один, і тільки один тип даних. Хоча ПАСКАЛЬ може опрацьовувати достатньо складні типи даних, усі вони складаються з простих неструктурованих типів.

ПАСКАЛЬ має чотири стандартних скалярних типи даних: Integer тип цілих чисел, Real тип дійсних чисел, Char літерний типта Boolean логічний тип.

Виразами називаються алгоритмічні конструкції мови, що визначають правила для обчислення значень змінних величин. Вираз складається з операндів: змінних, констант, назв функцій, що відокремлюються один від одного за допомогою операторів.

Програма, написана мовою ПАСКАЛЬ, являє собою послідовність рядків, кожен з яких відокремлюється від іншого символом ";" крапка з комою. Вонаскладається з трьох частин: заголовка, блока описів та блока операторів.

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

Загальний вид програмина мові ПАСКАЛЬ має вигляд:

Programім’я програми

Uses модулі

Const константи

Label мітки

Type типи користувача

Var змінні

Begin

оператори

End.