главнаяреклама на сайтезаработоксотрудничество Коллекция рефератов Otherreferats
 
 
Сколько стоит заказать работу?   Искать с помощью Google и Яндекса
 


Мова програмування Pascal

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

Рубрика: Программирование, компьютеры и кибернетика
Вид: учебное пособие
Язык: украинский
Дата добавления: 15.04.2011
Размер файла: 118,5 K

Полная информация о работе Полная информация о работе
Скачать работу можно здесь Скачать работу можно здесь

рекомендуем


Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже.

Название работы:
E-mail (не обязательно):
Ваше имя или ник:
Файл:


Cтуденты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны

Подобные работы


1. Мова програмування Pascal
Основні поняття мови програмування Паскаль, синтаксис. Поняття і види алгоритму; елементи, що використовуються при побудові описів програм: символи, слова, вирази, команди. Рекомендації щодо інсталяції. Вимоги до апаратного та програмного забезпечення.
творческая работа [1,3 M], добавлена 01.02.2011

2. Загальна характеристика елементів мови програмування VBA (Visual Basic for Application)
Характеристика мови програмування VBA (Visual Basic for Application): можливості й засоби. Використання редактора Visual Basic. Створення та виконання VBA-програм. Типи даних, змінні й константи, операції й вирази. Керуючі оператори, процедури й функції.
реферат [29,9 K], добавлена 28.06.2011

3. Процедури та функції в Turbo Pascal
Загальні відомості про процедури та функції. Характеристика, особливості і можливості мови Pascal, її використання для розробки наочних, компактних, структурованих програм, створення умов для систематичного і цілеспрямованого процесу програмування.
реферат [30,0 K], добавлена 13.11.2010

4. Записи в Turbo Pascal
Теоретичні аспекти програмування мовою Pascal. Основні поняття та елементи мови. Розділи оголошення сталих і змінних. Стандартні та нестандартні типи даних. Основні операції, стандартні функції та процедури, прості програми. Розгалуження, цикли, масиви.
курсовая работа [122,5 K], добавлена 21.10.2012

5. Структуровані типи даних записи та множини. Використання процедур та функції мови Turbo Pascal. Поняття про записи. Прості записи
Записи: ієрархічні, з варіантними полями, множини. Складання програм, які забезпечують дії з таблицями, відомостями, списками, каталогами, де містяться дані різних типів. Особливості використання процедур і функцій мови Turbo Pascal при розробці програм.
реферат [39,8 K], добавлена 13.11.2010

6. Елементи та структура програми мови Паскаль
Загальні відомості про мову програмування, історія створення та використовування. Програма мовою Паскаль складається з лексем і символів – розділювачів. Робота з масивами, створення алгортимів. Складання програм з використанням процедур та функцій.
реферат [18,3 K], добавлена 22.10.2010

7. Декларативна мова програмування "Пролог"
Галузі застосування та принцип роботи мови програмування "Пролог". Керування процесом пошуку рішень, типи даних та використання списків. Рекурсивні процедури та цикли за допомогою пошуку з поверненням. Виконання арифметичних та логічних операцій.
курс лекций [99,7 K], добавлена 06.07.2011

8. Основи програмування на мові С++"
Розгляд особливостей мови програмування С++: основні можливості, характеристика функцій. Аналіз файлів з вхідними даними. Використання похідних класів як ефективний засіб об’єктно-орієнтованого програмування. Способи роздруківки графічного вирішення.
курсовая работа [510,9 K], добавлена 14.03.2013

9. Мови програмування
Мoвa прoгрaмувaння як систeма пoзначень, що служить для точного опису програм або алгоритмів для ЕOM. Вимоги до мов програмування, класифікація за їх особливостям. Загальна характеристика найбільш поширених мов програмування: Сі, Паскаль, Delphi, Бейсік.
реферат [24,4 K], добавлена 10.11.2012

10. Основні відомості про алгоритмічну мову Turbo Pascal. Графіка Pascal
Етапи історичного розвитку алгоритмічної мови. Ознайомлення із основними символами, службовими словами, стандартними ідентифікаторами, функціями, виразами та процедурами мови програмування Паскаль. Розгляд графічних режимів дисплейних адаптерів.
реферат [59,2 K], добавлена 13.11.2010


Другие работы, подобные Мова програмування Pascal

Страница:  1   2 


Размещено на http://www.allbest.ru/

ХАРКІВСЬКИЙ ГВАРДІЙСЬКИЙ ОРДЕНА ЧЕРВОНОЇ ЗІРКИ ІМЕНІ

ВЕРХОВНОЇ РАДИ УКРАЇНИ ІНСТИТУТ ТАНКОВИХ ВІЙСЬК ПРИ

НАЦІОНАЛЬНОМУ ТЕХНІЧНОМУ УНІВЕРСИТЕТІ “ХПІ”

Посібник

З дисципліни “Інформатика”

«Мова програмування Pascal»

Харків 2011

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

Зміст

Вступ

Розділ 1. Основні елементи мови Паскаль

Розділ 2. Вирази

Розділ 3. Оператори

Розділ 4. Процедури і функції

Розділ 5. Стандартні процедури і функції

Розділ 6. Бібліотеки виконуючої системи

Розділ 7. Використання графічного інтерфейсу

Розділ 8. Робота в середовищі Turbo Pascal

Розділ 9. Приклади програм

Додаток 1. Запитання для самоконтролю

Вступ

Структура програми Turbo Pascal

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

Program Privet;

begin

Writeln (`Ласкаво просимо в Pascal');

end.

Перший рядок - це заголовок програми, що іменує дану програму. Інша частина програми - це програмний код, що починається ключовим словом begin і закінчується словом end. У передостанньому рядку знаходиться оператор виводу Writeln, що виводить на екран текстове повідомлення `Ласкаво просимо в Pascal'. Хоча дана програма містить тільки один рядок, їх може бути багато. У всіх програмах мови Pascal усі дії виконуються між begin i end.

У загальному випадку програма Pascal складається з заголовка програми, необов'язкового оператора uses, деяких інших розділів і обов'язкового основного блоку.

Program

Uses

label

const

type

var

procedure

function

Begin

Оператор;

End.

Заголовок програми визначає ім'я програми.

Оператор uses ідентифікує всі модулі, використовувані програмою. Для підтримки таких засобів, як файловий ввід-вивід, обробка строк, динамічний розподіл пам'яті й інших автоматично використовується модуль System. Паскаль, у свою чергу, обслуговує багато стандартних модулів, такі, як Dos I Crt. Це не відбувається автоматично: ви повинні обов'язково включити їх в оператор uses, Наприклад:

uses Doc, Crt;

{тепер можуть бути доступні засоби модулів Doc і Crt}

Розділ label дозволяє визначити мітки в програмі.

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

У розділі type програміст може визначити свої типи даних.

Роздягнув var служить для оголошення перемінних. У Паскалі кожна перемінна перед використанням у програмі обов'язково повинна бути оголошена в цьому розділі. Тому він присутній майже в кожній програмі.

Наступні розділи дозволяють програмісту увести свої власні процедури через функції: procedure, function.

В обов'язковому блоці між словами Begin i End. Розміщається все тіло програми.

Розділ 1. Основні елементи мови Паскаль Лексеми

Лексеми - це найменші значущі елементи в програмі Паскаля.

Вони утворяться операндами і операціями виразів. Лексеми це спеціальні символи, зарезервовані слова, ідентифікатори, мітки і строкові константи. Приведемо приклади лексем:

function {зарезервоване слово}

({спеціальний символ}

:={спеціальний символ}

Calculate{ідентифікатор процедури}

9 {число}

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

Спеціальні символи Pascal використовує наступні підмножини набору символів коду ASCII:

*Букви - букви англійського алфавіту від А до Z і від а до z.

*Цифри - арабські цифри від 0 до 9.

*Шестнадцатиричні цифри - арабські цифри від 0 до 9, букви від А до F і букви від а до f.

*Роздільники - символ пробілу (ASCII 32) і всі керуючі символи коду ASCII (ASCII 0-31), включаючи символ кінця рядка чи символ повернення (ASCII 13).

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

+ - * / = < > [ ] . , ( ) : ; ^ @ { } $ #

Наступні пари символів також являються собою спеціальні символи:

<= >= := ,. (* *) (. .)

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

Зарезервовані слова і стандартні директиви Pascal

У наступній таблиці наведені зарезервовані в Pascal слова.

Таблиця 1.1 Зарезервовані слова Pascal

and exports Mod shr

array file Nil string

asm for Not then

begin function Object to

case goto Of type

const if Or unit consatructor implementation Packed until

destructor in Procedure uses

div inherited Program var

do inline Record while

downto interface Repeat with

else label Set xor

end library Shl virtual

absollute far Name resident

assembler forward Near

export index Private

external interrupt Public

Для мови Pascal байдужний регістр клавіатури, тому ви можете використовувати у своїй програмі букви як нижнього,так її верхнього регістра.

Ідентифікатори

Ідентифікатори виступають як імена констант, типів, перемінних, процедур, модулів, програм і полів у записах.

Ідентифікатор може мати будь-як довжину, однак тільки перші його 63 символу є значними. Ідентифікатор повинний починатися з букви і не може використовувати букви, цифри і символи підкреслення. Як і в зарезервованих словах, в ідентифікаторах можна використовувати як строчні, так і прописні букви (Паскаль їх не розрізняє).

Числа

Для чисел, що представляють собою константи цілого і дійсного типу, використовується звичайний десятковий запис. Ціла константа в шестнадцатеричному форматі має як префікс знак долара ($). Технічне позначення (Е чи е з показником ступеня) у дійсних типах читається, як “на десять у ступені”. Наприклад, 7Е-2 означає 7х10^-2, a 12.25E+6 чи 12.25E6 обоє позначають 12.25х10^+6.

Числа з десятковими крапками чи показниками ступеня являють собою константи дійсного типу. Інші десяткові числа позначають константи цілого типу. Вони повинні приймати значення в діапазоні від -2147483648 до 2147483647.

Мітки

Міткою є послідовність цифр у діапазоні від 0 до 9999. Початкові нулі не є значущими. Мітки використовуються з операторами переходу goto.

Строки символів

У Pascal строки програми мають максимальну довжину в 126 символів. Строка символів являє собою послідовність,що містить нуль і більш символів з розширеного набору символів коду ASCll, записану в одному рядку програми й укладену в одиночних лапках (апострофи). Строка символів, нічого не утримуюча між апострофами. Називається нульовою строкою. Два послідовних апострофи в строки символів позначають один символ - апостроф. Атрибут довжини строки символів виражається дійсною кількістю символів між апострофами. Приклади строк:

`Borland'

`You'll see'

“ {порожня строка}

` `{пробіл}

Довжина символьної строки - це фактичне число символів у рядку. Строка символів будь-якої довжини сумісна з будь-яким строковим типом. Крім того, строка символів з довжиною, рівною 1,сумісна з будь-яким типом Char.

Коментарі

Коментарі звичайно використовуються для запису в програмі яких-небудь пояснень, призначених для полегшення розуміння коду програми. Наступі конструкції являють собою коментарі і тому ігноруються компілятором:

{будь-який текс, що не містить праву фігурну дужку}

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

Коментар, що містить знак долара ($) відразу після відкриваючої дужки {чи (*,є директивою компілятора.

Константи

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

Ідентифікатор константи з передуючим йому знаком позначає значення цілого чи дійсного типу.

Так само Паскаль дозволяє використовувати вирази константи. Вираз-константа являє собою вираз, що може обчислюватися компілятором без необхідності виконання програми. Приведемо приклад констант:

100

`A'

256- 1

(2.5 + 1)/(2.5 - 1)

Оскільки компілятор повинний мати можливість цілком обчислити вираз-константу під час компіляції, як вирази-константи не допускається використовувати наступні конструкції:

- посилання на перемінні і типізовані константи;

- виклики функцій (крім тих, котрі відзначені далі);

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

Abs, Chr, Hi, High, Length, Lo, Low, Odd, Odr, Pred, Ptr,

Round, SizeOf, Succ, Swap, Trunc.

Наведемо деякі приклади використання виразів-констант в описах констант:

Const

Min=0;

Max=100;

Message='Out of memory';

Ln10=2.302585092994095684;

Ln10R=1/Ln10;

Типи

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

Прості типи

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

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

Порядкові типи

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

- Усі можливі значення даного порядкового типу являють собою упорядковану множину, і кожне можливе значення зв'язане с порядковим номером, що являє собою цілочислене значення. За винятком значень цілочисленого типу, перше значення будь-якого порядкового типу має порядковий номер 0. Порядковим номером значення цілочисленого типу є саме це значення. У будь-якому порядковому типі кожному значенню, крім першого,передує інше значення, і після кожного значення, крім останнього,випливає інше значення відповідно до упорядкованості типу.

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

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

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

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

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

- Pascal має 10 вистроєних порядкових типів: Integer (ціле), Shortint (коротке ціле), Longint (довге ціле), Byte (довжиною в байт), Word (довжиною в слово), Boolean(булевское),ByteBool(булевское розміром в байт), WordBool (булевское розміром у слово),LongBool(довгий булевский тип), і Char (символьний тип). Крім того, мається два інших класи обумовлених користувачем порядкових типів: перечислимі типи і відрізки типів(поддіапазони).

Цілочислені типи

У Pascal є п`ять визначених цілочислених типів: Shortint (коротке ціле), Integer (ціле), Longint (довге ціле), Byte (довжиною в байт) і Word (довжиною в слово). Кожен тип визначає множина цілих чисел, як це показано в наступній таблиці:

Таблиця 1.2. Цілочислені типи

Тип

Діапазон

Формат

Коротке ціле

(Shortint)

-128…127

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

Ціле (Integer)

-32768…32767

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

Довге ціле

(Longint)

-214748648…

..2147483647

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

Довжиною в байт

(Byte)

0..255

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

довжиною в слово

(Word)

0..65535

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

Арифметичні дії над операндами цілочисленого типу припускають 8-бітову,16-бітову і 32-бітову точність відповідно до визначених правил приведення типів.

Булевскі типи

Існує 4 визначених булевских типи: Boolean, ByteBool, WordBool і LongBool. Значення булевского типу обозначаются встроєними ідентифікаторами констант False і True. Оскільки булевский тип є перечислимим, між цими значеннями мають місце наступні відносини:

- False<True

- Ord(False) =0

- Ord(True) =1

- Succ(False) =True

- Pred(true) =False

Перемінні типу Boolean і ByteBool займають 1 байт, перемінна WordBool займає два байти (слово), а перемінна LongBool займає чотири байти (два слова). Boolean - це найкращий тип, що використовує менше пам'яті; типи ByteBool, WordBool і LongBool забезпечують сумісність з іншими мовами і середовищем Windows.

Символьний тип (char)

Множиною значень цього типу є символи, упорядковані відповідно до розширеного набору символів коду ASXll. При виклику функції Ord(Ch), де Ch -значення символьного типу, повертається порядковий номер Ch.

Строкова константа с довжиною 1 може позначати значення константи символьного типу. Будь-яке значення символьного типу може бути отримане за допомогою стандартної функції Chr.

Перечислимі типи

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

Приведемо приклад перечислимого типу:

type

suit = (club, diamond, heart, spade):

Згідно з цими описами diamond є константою типу suit. При застосуванні функції Ord до значення перечислимого типу Ord повертає ціле число, що показує, яке положення займає це значення у відношенні інших значень цього перечислимого типу. Відповідно до попередніх описів Ord (club) повертає 0, Ord(diamond) повертає 1 і так далі.

Дійсні типи

До дійсного типу відноситься підмножина дійсних чисел, що можуть бути представлені у форматі з плавучою комою, з фіксованим числом цифр. Запис значення n у форматі плавучою комою, звичайно включає три значення - m,2 і е - таким чином, що m x 2^e=n, де b завжди дорівнює 2, а m і е є цілочисленими значеннями в діапазоні дійсного типу. Ці значення m і e далі визначають діапазон представлення і точність дійсного типу .

Мається п'ять видів дійсних типів: дійсний (Real), з одинарною точністю (Single), з подвійною точністю (Double), з підвищеною точністю (Extended) і складний (Comp). Дії над типами з одинарною точністю, з подвійною точністю і з підвищеною точністю і над складним типом можуть виконуватися тільки при наявності числового співпроцесора 8087.

Дійсні типи розрізняються діапазоном і точністю зв'язаних з ними значень.

Таблиця 1.3. Діапазон представлення десяткові цифри для дійсних типів

Тип

Діапазон

Цифри

Дійсне (Real)

2.9x10^-39..1.7x10^38

від 11 до 12

с одинарною

точністю(Single)

1.5x10^-45..3.4x10^38

від 7 до 8

с подвійною

точністю(Double)

5.0x10^-324..

1.7x10^308

від 15 до 16

с підвищеною точністю(Exetended)

1.9х10^-4951..

1.1x10^4932

від 19 до 20

складний тип(Comp)

-2^63+1 .. 2^63-1

Примітка: Складний тип містить тільки целочислені значення в діапазоні від -2^63+1 До 2^63-1, що приблизно дорівнює - 9.2x10^18 і 9.2x10^18

Строкові типи

Значенням строкового типу (String) є послідовність символів з динамічним атрибутом довжини ( у залежності від числа символів при виконанні програми) і постійним атрибутом розміру в діапазоні від 1 до 255. Поточне значення атрибута довжини можна одержати за допомогою стандартної функції Length.

Відношення між будь-якими двома строковими значеннями встановлюється відповідно до відношення порядку між значеннями символів у відповідних позиціях. У двох строках різної довжини кожен символ більш довгого рядка без відповідного символу в більш короткому рядку приймає значення “більше”, наприклад, `Xs' більше, ніж `X'. Нульові строки можуть бути рівні тільки іншим нульовим строкам, вони є найменшими строковими значеннями. До символів у строках можна звертатися як до елементів масиву.

Структурні типи

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

Тип масив

Масиви містять фіксоване число елементів одного типу, так називає мого типу елемента

В індексних типах, по одному для кожної розмірності масиву, указується число елементів. Припустимими індексними типами є всі порядкові типи, за винятком довгого цілого. Масив може бути проіндексований по кожній розмірності всіма значеннями відповідного індексного типу; число елементів дорівнює числу значень у кожному індексному типі. Число розмірностей не обмежене. Наведемо приклад типу масив - сто дійсних чисел:

m :array[1..100] of Real

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

n:array[1..10] of array[1..8] of Real

інтерпретується компілятором точно так само, як масив:

array[1..10,1..8] of Real

Конкретний елемент масиву позначається за допомогою посилання на перемінну масиву, за якою в квадратних дужках вказуються індекси, що визначають даний елемент -n[4,7]. До строк можна звертатися як до масиву символьного типу. Строкову перемінну можна про індексувати за допомогою одиночного індексу, значення якого повинно бути в діапазоні 0..n, де n - зазначений в описі розмір строки. Це дає доступ до кожного символу в строчці - наприклад st[5]:='r'

Перший символ строкової перемінної (індекс 0) містить динамічну довжину строки, тобто Length(S) тотожно Ord(S[0]). Якщо атрибуту довжини привласнюється значення, то компілятор не перевіряє,чи є це значення меншим описаного розміру строки. Ви можете вказати індекс строки і поза її поточної динамічної довжини. У цьому випадку символи, що зчитуються, будуть випадковими, а присвоювання поза поточної довжини не вплинуть на дійсне значення строкової перемінної.

Тип запис

Тип запис містить встановлене число елементів (полів), що можуть бути різних типів. Опис типу запис вказує тип кожного поля і ідентифікатор, що іменує поле. Фіксована частина типу запис містить список поля. Кожне поле містить інформацію, що завжди відшукується тим самим способом. Наведемо приклади типу запис:

record

year: integer; {рік}

month:1..12; {місяць}

day: 1..31; {число}

end

Множенні типи

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

Базовий тип не повинний мати більш 256 можливих значень, і порядкові значення верхньої і нижньої границі базового типу повинні не перевищувати діапазону від 0 до 255.

Любою множинний тип може приймати значення [], що називається порожньою множиною.

Файлові типи

Файловий тип складається з лінійної послідовності компонентів, що можуть мати будь-як тип за винятком файлового чи структурного типу, що містить компонент із файловим типом. Число компонентів описом файлового типу не встановлюється. Якщо слово of і тип компонента пропущені , то тип позначає не типізований файл. Нетипізовані файли являють собою канали вводу-виводу нижнього рівня, використовувані для прямого доступу до будь-якого файлу на диску, незалежно від його внутрішнього формату.

Стандартний файловий тип Text визначає файл, що містить символи, упорядковані в строки. Текстові вайли використовують спеціальні процедури вводу-виводу read-write.

Сумісність типів

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

· Обидва типи є однаковими.

· Обидва типи є дійсними типами.

· Обидва типи є цілочисленими.

· Один тип є під діапазоном іншого.

· Обидва типи є відрізками одного й того основного типу.

· Обидва типи є множинними типами із сумісними базовими типами.

Сумісність по присвоєнню

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

Значення типу Т1 є сумісним по присвоєнню з типом Т2 (допустимий оператор Т1=Т2), якщо виконується одна з наступних умов:

- Т1 і Т2 мають тотожні типи,і жоден з них не є файловим чи структурним типом.

- Т1 і Т2 є сумісними порядковими типами,і значення типу Т2 попадають у діапазон можливих значень Т1.

- Т1 і Т2 є дійсними типами, і значення типу Т2 попадають у діапазон можливих значень Т1.

-Т1 є дійсним типом, а Т2 є цілочисленим типом(Char).

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

Найпростіші оператори мови Паскаль

Програмний код між begin і end містить оператори, що описують виконувані програмою дії. Ця частина називається операторною частиною програми. Наведемо приклади операторів:

А = В + С; {присвоїти значення}

Calculate(Length, Height); {активізувати процедуру}

if X< 2 then Answer : = X*Y; {оператор умови}

begin {складний оператор}

X:= 3;

Y:=4;

Z:=5;

end;

while not EOF(InFile) do {оператор циклу}

begin

ReadLn(InFile, Line);

Process(Line);

end;

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

Вирази

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

Вирази Паскаля можуть складатися з більш простих виразів. Комбінації операндов і операцій можуть бути досить складними. Наведемо деякі приклади виразів:

X+Y

Done<>Error

I<= Length

-X

Опис перемінних

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

Наприклад, у наступній програмі описуються перемінні X і Y, що мають тип Integer. Таким чином, X і Y можуть містити тільки цілі значення (числа). Якщо у вашій програмі починається спроба присвоїти цим перемінним значення іншого типу Pascal повідомить про помилку.

program Example;

const

A=12; {константа А не змінює значення}

B: Integer = 23; {типізована константа В одержує початкове значення}

var

X, Y: Integer; {перемінні X і Y Integer}

J: Real; {перемінна J має тип Real}

begin

X:= 7 {перемінний X присвоюється значення}

Y:= 7 {перемінній Y присвоюється значення}

X:= Y + A {значення перемінної X змінюється}

J:= 0.075 {перемінної J присвоюється значення 3 плавучою крапкою}

end.

У простий програмі Х спочатку присвоюється значення 7; двома операторами нижче їм привласнюється нове значення: Y + A. Як можна бачити, значення перемінної може змінюватися.

А - це константа. Програма призначає їй значення 12, і це значення змінюватися не може - у ході виконання програми воно залишається постійним.

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

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

Приведемо приклад розділу опису перемінної:

var

X,Y,Z: real;

I,J,K: integer;

Diget: 0..9;

C: Color;

Done,Error: boolean;

Operator: (plus, minus, times);

Hue1, Hue2: set of Color;

Matrix: array[1..10,1..10] of Real;

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

Розділ 2. Вирази

Вирази складаються з операцій і операндів. Більшість операцій у мові Паскаль є бінарними, тобто містять два операнда. Інші операції є ударними і містять тільки один операнд. У бінарних операціях використовується звичайне алгебраїчне представлення, наприклад: a+b В унарних операціях операція завжди передає операнду, наприклад: -b

У більш складних виразах порядок, у якому виконується операції, відповідає пріоритету:

Таблиця 2.1 Старшинство операцій

Операція

Пріоритет

Вид операції

@, not

Перший

унарна операція

*,/, div. mod, and, shl, shr

Другий

операція множення, ділення…

+, -, or, xor

Третій

операція додавання

=,<>, <, >, <=, in

Четвертий

операція відносин

Для визначенні старшинства операцій є три основні правила:

1. По-перше, операнд, що знаходиться між двома операціями з різними пріоритетами, зв'язується з операцією, що має більш високий пріоритет.

2. По-друге, операція, що знаходиться між двома операціями з рівними пріоритетами, зв'язується з тією операцією, що знаходиться ліворуч від неї.

3. По-третє, вираз, укладений в дужки, перед виконанням обчислюється, як окремий операнд.

Операції з рівним пріоритетом виконується з ліва на право.

Синтаксис виразів

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

Наведемо кілька прикладів простих виразів:

Х+Y

l * J + 1

X = 1.5

Done <> Error

Операції

Операції підрозділяються на арифметичні операції, логічні операції, з рядками, операції над множинами, операції відносини й операцію @ (операція одержання адреси).

Арифметичні операції

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

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

Операція

Дія

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

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

+

Додавання

Цілий Дійсний

Цілий дійсний

-

Віднімання

Цілий Дійсний

Цілий Дійсний

*

Множення

Цілий дійсний

Цілий Дійсний

/

Ділення

Цілий дійсний

Цілий дійсний

div

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

Цілий

Цілий

mod

Залишок

Цілий

Цілий

Примітка: операція + використовується як для роботи з рядками так і множинами. Операції +, - і * використовується також для операцій над множинами.

Якщо обоє операнди в операціях +, -, *, div чи mod є операндами цілого типу, то тип результату буде так же, як загальний тип обох операндів.

Якщо один чи більше операндів в операція +, -, чи * мають дійсний тип, то тип результату буде дійсним.

Значення виразу x/y завжди буде дійсного типу (real)незалежно від типів операндів. Якщо у дорівнює 0, то результат буде помилковим.

Значення виразу і div j являє собою математичну частку від i/j, округлена в меншу сторону до значення цілого типа. Якщо j дорівнює 0, результат буде помилковим.

Операція mod повертає залишок, отриманий шляхом ділення двох іі операндів, тобто.

і mod j = і - (і div j) * j

Знак результату операції mod буде тим же, що і знак і. Якщо j дорівнює нулю, то результатом буде помилка. Наприклад

(5 mod 3) =2

(5 div 3) = 1

Логічні операції

Таблиця 2.3. Логічні операції

Операція

Дія

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

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

not

Заперечення (бітове)

Цілий

Цілий

and

І (бітове)

Цілий

Цілий

or

“ІЛІ” (бітове)

Цілий

Цілий

xor

Виключає “ІЛІ” (бітове)

Цілий

Цілий

shl

Здвиг вліво

Цілий

Цілий

shr

Здвиг вправо

Цілий

Цілий

Примітка: Операція not є унарною операцією.

Якщо операндом операції not є операнд цілого типу, то результат буде також цілого типу.

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

Операції (і shl j) і (і shr j) здвигають значення і вліво чи вправо на j бітів. Тип результату буде таким же, як тип і.

Булевскі операції

Типи операндов і результату для булевскіх операцій показані в таблиці 2.4.

Таблиця 2.4. Булевскі операції

Операція

Дія

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

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

not

Заперечення

Булевский

Булевский

and

Логічне “I”

Булевский

Булевский

or

Логічне “ІЛІ”

Булевский

Булевский

xor

Логічне включає “ІЛІ”

Булевский

Булевский

Результати цих операцій відповідають звичайній булевскій

Логіці. Наприклад, вираження a and b є вірним (приймає значення True) тільки в тому випадку, якщо обоє операнди а і b мають вірне значення (True).

Операції відносин

Типи операндів і результати операцій відносин приведені в таблиці 2.5.

Таблиця 2.5. Операції відносин

Операція

Дія

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

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

=

Дорівнює

Сумісний простий,множинний строковий

Булевский

<>

Не дорівнює

Сумісний простий,множинний строковий

Булевский

<

Менше ніж

Сумісний простий,множинний строковий

Булевский

>

Більше ніж

Сумісний простий,множинний строковий

Булевский

<=

Менше чи дорівнює

Сумісний простий,множинний строковий

Булевский

>=

Більше чи дорівнює

Сумісний простий,множинний строковий

Булевский

in

Елемент множини

Лівий операнд: будь-який перечислемий тип t; правий: множина сумісна з t

Булевский

Порівняння простих типів

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

Виклики функції

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

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

Приведемо деякі приклади викликів функцій:

Sum(A,63)

Maximum(147,J)

Sin(X+Y)

Eof(F)

Volume(Radius, Height)

Розділ 3.Оператори

Оператори описують ті алгоритмічні дії, що повинні виконуватися. Операторами можуть передавати мітки, які можна використовувати для посилань в операторах переходу goto.

Існує два основних види операторів: прості оператори і структурні оператори.

Прості оператори

Простим оператором є такий оператор, що не містить у собі інших операторів.

Оператор присвоєння

Оператор присвоєння (:=) заміняє поточне значення перемінної новим значенням, що визначається вираженням, чи визначає вираження, значення якого повинно повертатися функцією.

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

Наведемо деякі приклади операторів присвоєння:

X:= Y + Z

Done := (I >= 1) and (I < 100);

Huel := [blue, Succ(C)];

I := Sqr(J) - I *K;

Оператори процедури

Оператор процедури визначає активізацію процедури, позначену за допомогою ідентифікатора процедури. Якщо відповідний опис процедури містить список формальних параметрів, то оператор процедури повинний містити в собі відповідний йому список фактичних параметрів (параметри, список яких приводиться у визначенні, є формальними параметрами, а в операторі виклику у визначенні, є фактичними параметрами). При виклику відбувається передача фактичних параметрів формальним параметрам.

Приведемо деякі приклади операторів процедур:

PrintHeading;

Transpose(A,N,M);

Fin(Name,Address);

Оператори переходу

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

1. Мітка, що вказується в операторі переходу, повинна знаходитися в тім же блоці модуля, що і сам оператор переходу. Іншими словами, не допускаються переходи з процедури чи функції усередину програми.

2. Перехід ззовні усередину структурного оператора (тобто перехід на більш глибокий рівень вкладеності) може викликати непередбачені ефекти, хоча компілятор не видає повідомлення про помилку. Наприклад, ви не повинні переходити в тіло циклу for.

Примітка: практика програмування вимагає мінімального використання переходів.

Структурні оператори

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

Складні оператори

Складні оператори задають порядок виконання операторів, що є їх елементами. Вони повинні виконуватися в тим порядку, у якому вони записані. Складні оператори обробляються, як один оператор, що має вирішальне значення там, де синтаксис Паскаля допускає використання тільки одного оператора. Оператори зазначаються в обмежниках begin I end, і відокремлюються друг від друга крапкою з комою.

Наведемо приклад складного оператора:

begin

Z := X;

X := Y;

Y: = Z;

end;

Умовні оператори

Умовні оператори дозволяють для виконання один з кількох операторів (або не вибрати жодного).

Оператор умови(if)

Синтаксис оператора if можна представити в такий спосіб:

if умова then оператор [else оператор];

В умові (виразі іі визначаючим) повинен бути результат, що має стандартний булевский тип. Якщо результатом перевірки умови є вірне значення (True), то виконується оператор, що слідує за ключовим словом then.

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

У загальному випадку ключове слово else зв'язується з найближчим ключовим словом if, що ще не зв'язано з ключовим словом elsle.

Наведемо два приклади оператора if:

if P1 > 0 then writeln (`P1 більше нуля');

if X < 1.5 then

Z := X+Y

else

Z := 1.5;

Оператор варіанта (case)

Оператор варіанта (case ) складається з виразу (перемикача) і списку операторів, кожному з яких передає одна чи більше констант (вони називаються константами вибору), так само може бути ключове слово else. Перемикач (селектор) повинний мати порядковий тип (розміром у байт чи слово). Таким чином, строковий тип довгий цілий тип є неприпустимими типами перемикача. Усі константи вибору повинні бути унікальними і мати порядковий тип, сумісний з типом перемикача.

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

Наведемо деякі приклади оператора варіанта:

Case Operator of

plus: X := X+Y;

minus: X := X-Y;

times: X := X*Y;

end;

case l of

0, 2, 4, 6, 8: Writeln(`Парна цифра')

1, 3, 5, 7, 9: Writeln(`Непарна цифра')

10..100: Writeln(`Між 10 і 100')

Else Writeln(`>100')

end;

Оператор циклу

Оператор циклу задає повторне виконання визначених операторів. Оператори циклу:

оператор repeat

оператор while

оператор for

Якщо число повторень заздалегідь відомо, то доцільно використовувати оператор for. У іншому випадку варто використовувати оператори while чи repeat.

Для керування повторенням операторів можна використовувати стандартні процедури Break i Continue. Break завершує оператор циклу, а Continue продовжує з наступної ітерації цього оператору циклу.

Оператор циклу з поступовою (repeat)

В операторі циклу з поступовою ( починається зі слова repeat) вира, що керує повторним виконанням послідовності операторів міститься усередині оператора repeat.

repeat

оператор

until вираз;

Результат виразу повинний бути булевского типу. Оператори, укладені між ключовими словами repeat I until, виконуються послідовно доти, доки результат виразу не прийме значення True. Послідовність операторів виконується по крайній мірі один раз, оскільки обчислення виразу виконується після кожного виконання послідовності операторів. Приклади оператора циклу з поступовою:

J:=10

repeat

J :=J-1

until J = 0;

repeat

Write(`Уведіть значення (0..9):');

Readln(l);

until (l >= 0) and (l <=9);

Оператори циклу з передумовою (while)

Оператор циклу з передумовою (починається з слова while) містить у собі вираз, що керує повторним виконанням оператора (який може бути складеним оператором);

Вираз, за допомогою якого здійснюється керування повторенням оператора, повний мати булеский тип. Обчислення його виконується до того, як внутрішній оператор буде виконаний. Внутрішній оператор виконаються повторно доти, доки вираз приймає значення True. Якщо вираз з самого початку приймає значення False, то оператор що міститься у середині оператора циклу з передумовою, не виконується.

Прикладами операторів циклу з передумовою можуть служити наступні оператори:

while Data[l] <> X do l := l + 1

i:=1; F:=1;

While i <=100 do

begin

F:=F*i;

i:=i+1

end;

while not Eof(InFile) do

begin

Readln(InFile,Line);

Process(Line);

end;

Оператори циклу з параметром (for)

Оператор циклу з параметром (починається зі слова for) викликає повторне виконання оператора (який може бути складним оператором) доки керуючий перемінній привласнюється зростаюча послідовність значень:

for перемінна:= початкове значення to кінцеве do оператор;

чи

for перемінна:= початкове значення downto кінцеве do оператор;

Керуюча перемінна повинна мати перечисли мий тип. Початкове і кінцеве значення повинні мати тип, сумісний по присвоєнню з перечислимим тип. Коли починає виконуватися оператор for, початкове і кінцеве значення визначаються один раз, і ці значення зберігаються протягом усього виконання оператору for.

Оператор, що міститься в тілі оператора for, виконується один раз для кожного значення в діапазоні між початковим і кінцевим значенням. Керуюча перемінна завжди ініціалізуєтся початковим значенням. Коли працює оператор for, значення керуючої перемінної (лічильника циклу) збільшується при кожнім повторенні на одиницю. Якщо початкове значення перевищує кінцеве значення, то оператор, що міститься в тілі циклу for, не виконується. Коли в операторі циклу використовується ключове слово downto, значення керуючої перемінної зменшується при кожнім повторенні на одиницю. Якщо початкове значення в такому операторі менше, ніж кінцеве значення, то, оператора у тілі циклу не виконується.

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

Наведемо приклади оператора циклу з параметром:

for l :=2 to 63 do

if Data[l] > then Max := Data [l]

for l :=1 to 10 do

for J :=1 to 10 do

begin

X :=0;

for K := 1 to 10 do

X := X + Mat1[l,K]*Mat2[K,J];

end;

for i :=1 to 100 do F:=F*I;

Розділ 4. Процедури і функції

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

Для обміну даними між процедурами і основною програмою використовуються параметри, вони вказуються в дужках після заголовка процедури. Якщо є слово var і опис перемінних, то через ці перемінні процедура повертає дані в основну програму. Це параметри-перемінні. Якщо слова var немає, то це параметри-значення, через них процедура отримує дані. При описі перемінних в описі процедури вони є формальними параметрами. При підстановці перемінних у заголовок процедури в тілі програми (при виклику процедури) вони є фактичними параметрами.

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

Опис процедур

Опис процедури дозволяє ідентифікатор з процедурним блоком. Процедуру можна потім активізувати за допомогою оператора процедури. Заголовки процедур іменують ідентифікатори процедур і задають формальні параметри (якщо вони є).

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

Приведемо приклад опису процедурі:

procedure Chet(a,b :real; var s,m: real);

var

V: integer;

begin

s:= a+b;

m:= a-b;

end;

Опис функції

Опис функції визначає частину програми, у якій обчисляються і повертається значення. Функція завжди повертає тільки одне значення - це основна відмінність її від процедур. У заголовку функції визначається ідентифікатор функції, формальні параметри (якщо вони є) і тип результату функції.

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

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

Якщо ідентифікатор функції використовується при виклику функції усередині модуля-функції, то функція виконується рекурсивне. Наведемо далі приклади описів функції:

function Max (q,b :real): real;

begin

if a > b then Max := a else Max := b

end;

function Stepen(x,y :real): real;

begin

Stepen:=exp(y*ln(x))

end;

function Factorial(N :Integer): Integer;

var F,i :Integer;

begin

F:=1;

for i:=1 to N do v:=v*i;

Factorial:=F

end;

Параметри

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

Існує три типи параметрів: значення, перемінна і не типізована перемінна. Вони характеризуються наступним:

1. Група параметрів без попереднього ключового слова (var,const) є списком параметрів значень.

2. Група параметрів, перед якими вливає ключове слово const і за який випливає тип, є списком параметрів-констант.

3. Група параметрі, перед якими є ключове слово var і за яким є тип, є списком не типізованих параметр-перемінних.

4. Група параметрів, перед якими є ключове слово var і const і за яким не має типу,є списком не типізованих параметр-перемінних.

Параметри-значення

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

Фактичний параметр повинен мати тип,сумісний по присвоюванню з типом формального параметра-значення

Параметр-перемінні

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

Усередині процедури будь-яке посилання на формальний параметр-перемінну приводить до доступу до самого фактичного параметру. Тип фактичного параметра повинний збігатися з типом формального параметра-перемінної ( можливо обійти це обмеження за допомогою не типізованого параметру-перемінної).

Розділ 5. Стандартні процедурі і функції

В даній главі описуються стандартні (вистроєні) процедури і функції Pascal і предописані перемінні визначені в модулі System.Стандартні процедури і функції є предописаними- записи з їх попередніми описами вже нібито описані в програмі. До цих предпрограм відносяться:

- Процедури керування програмою

- Функції перетворення

- Арифметичні функції

- Порядкові процедури і функції

- Строкові процедури і функції

- Інші процедури і функції

Процедури керування роботою програми

Процедури керування програмою - це процедури що керують логікою виконання програми.

Таблиця 5.1 Процедури керування роботою програм

процедура

опис

Break

Завершує оператори for while repeat

Continue

Продовжує ітерацію оператора for while чи repeat

Exit

Дозволяє негайно вийти з поточного модуля

Halt(k: word)

Зупиняє виконання програми і повертає керування операцій системи

RunError(e: byte)

Зупиняє виконання програми і генерує помилку етапу виконання

Нижче наведенні функції перетворення

Таблиця 5.2 Функції перетворення

функції

опис

Chr(x:byte) :byte

Повертає символи,заданий цілим числом.

Hing(x)

Повертає старше значення в діапазоні аргументу

Low(x)

Повертає молодше значення діапазоні аргументу.

Ord(x)

:Longint

Повертає порядкове число зазначенням перечислимого типу.

Round(x:real)

:Longint

Округляє значення речовинного типу до значення,що має довгий цілий тип.

Trunk (x:real)

:Longint

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

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

Таблиця 5.3. Арифметичні функції

Функції

Опис

Abs (x)

Повертає модуль аргументу.

Cos (x:real):real

Повертає косинус аргументу.

Exp (x:real) :real

Повертає експоненту аргументу.

Frac (x:real):real

Повертає дробову частину аргументу.

Int (x:real) :real

Повертає цілу частину аргументу.

Ln (x:real) :real

Повертає натуральний логарифм аргументу.

Pi

Повертає значення числа pi (3.141592653897)

Sin (x:real) :real

Повертає синус аргументу

Sqr (x)

Повертає аргумент у квадраті.

Sqrt (x:real) :real

Повертає квадратний корінь аргументу.

Arctg (x:real) :real

Повертає арктангенс аргументу.

Ab =Exp (B*Ln(A)) - заміна в степені

Ln (x)=Ln(x).

Таблиця 5.4 Порядкові процедури і функції

Процедура і функція

опис

Dec (x: Longint)

Зменшує значення перемінної

Inc(x:Longint)

Збільшує значення перемінної

Odd(x:Longint)

:Boolean

Перевіряє, чи є аргумент непарним числом

Pred(x)

Повертає попереднє значення аргументу

Succ(x)

Повертає його наступне значення

Наступні процедури і функції використовуються для роботи зі строками Паскаля:

Таблиця 5.5 Строкові процедури і функції

Процедура

Опис

Concat(s1, s2: string) :string

Виконує конкатенацію послідовності рядків.

Copy

Повертає подстроку рядка.

Delete

Видаляє з рядка подстроку.

Insert

Додає в рядок подстоку.

Length

Повертає динамічну довжину рядка.

Pos

Робить пошук подстроки в рядку.

Str (x: var s: string)

Перетворить чисельне значення в його строкове представлення.

Val(s: string; var x: real; var k: integer)

Перетворить строкове значення в його чисельне представлення.

Таблиця 5.6 Інші процедури і функції

Процедура/функція

Опис

Hi

Повертає старший байт аргументу.

Lo

Повертає молодший байт аргументу.

Random(r:word)

Повертає випадкове число.

Randomize

Ініціалізує вбудований генератор випадкових чисел випадковим значенням.

UpCase

Перетворить символ у верхній регістр.

Процедури вводу і виводу.

У даному розділі коротко описуються стандартні процедури вводу-виводу Pascal. Ці процедури визначені у модулі System і доступні у всіх програмах.

Read (x1, x2, x3,….xn) зчитує введені з клавіатури данні в перемінні.

Read ln (x1, x2, x3,….xn) зчитує введені з клавіатури данні в перемінні і виконує пропуск до початку наступного рядка, якщо введено даних більше, ніж перемінних, ті значення, що залишилися, пропадають.

Write1 (x1, x2, x3,….xn)виводить на екран значення перемінних.

Write ln (x1, x2, x3,….xn) виводить на екран значення перемінних і переводить курсор у початок наступного рядка.

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

Наведено приклади використання процедур вводу-виводу:

Read (i); {зчитує з клавіатури значення змінною}

Read (i, N, k) {зчитує три перемінні - i, N, k}

Read ln (f) {зчитує перемінну f і переводить курсор на наступний

рядок}

Write (` це строкова константа'); {вводить на екран слова в

лапках; Це строкова константа}

Write (i); {вводить значення перемінної і}

Write (i,n) { вводить значення перемінної і,n}

Write (`лічильник і=',i); { вводить строку і значення перемінної і;

лічильник і=25}

Write ln (k); {вводить значення перемінної і переводить курсор на

наступний рядок}

Write (k; 10); {вводить значення перемінної в десятьох позиціях}

Write ln (`k=',k: 6: 2); { вводить значення: k=567,34}

Розділ 6. Бібліотека виконуючої системи

Pascal містить у собі бібліотеки виконуючої системи. Найбільш часто використовуванні бібліотеки виконуючої системи знаходяться у файлі TURBO. TPL. Додаткові модулі поставляються в окремих файлах з розширенням TPU-System, Overley, Crt, Dos, Printer, Graph, Strings.

Модулі Pascal

Pascal забезпечує вам доступ до великого числа встроєних констант, типів даних, перемінних, процедур і Функцій. Їхня кількість велика, однак, у своїй програмі ви рідко використовуєте їх усі відразу. Тому вони розділені на зв'язані групи, названі модулями. У цьому випадку можна використовувати тільки ті модулі, що необхідні в програмі.


Страница:  1   2 

Скачать работу можно здесь Скачать работу "Мова програмування Pascal" можно здесь
Сколько стоит?

Рекомендуем!

база знанийглобальная сеть рефератов