Основні відомості про алгоритмічну мову Turbo Pascal Графіка Pascal

Житомирський Військовий Інститут

Національного Авіаційного Уніврситету























Реферат на тему:

Основні відомості про алгоритмічну мову TURBO PASCAL. Графіка PASCAL

























Житомир 2010


План



		Історична довідка. Нова термінологія

		Алфавіт мови Паскаль. Основні поняття

		Структура Паскаль - програми

		Стандартні функції. Вирази

5. Графічні режими роботи дисплейних адаптерів. Типи драйверів




1. Історична довідка. Нова термінологія



Програма – алгоритм, записаний на мові програмування.

Мова програмування – сукупність символів (алфавіт), правил утворення (синтаксис) та зміст символьних конструкцій (семантика) для запису алгоритмів.

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

Існує 2 способи трансляції:

Інтерпретація.

Компіляція (compile – збирати).

Інтерпретатор – програма, яка послідовно (відповідно введенню) виконує оператори алгоритмічної мови.

Компілятор – програма, яка переводить весь текст задачі (програми) на машину мову.

Часто використовують два способи: інтерпретатор – для відлагодження програми, а компілятор – для трансляції відлагодженої програми.





Програма на мові Паскаль

Компіляція

Виконання

Привіт, Вася



Історія

1955 р. – перша алгоритмічна мова "Фортран" – для розв’язання науково-технічних та інженерних задач (от формула + транслятор – перекладач формул). Розробки фірмою ІВМ під керівництвом Джона Бекаса.

1960 р. – Алгол (algorithmic Language – алгоритмічна мова) – орієнтовна на наукове використання.

Кобол – (Cobol – Common business oriented language – загально прийнята ділова орієнтовна мова), для економічних задач (обробка екон. інформ.) ІВМ.

1965 р. Бейсік (Basic – beginners all- purpose symbolic instruction code – "багатоцільова мова символічних конструкцій для "починаючих"). Розроблений професорами Дартмутського коледжу (США) Т. Курцем і Дж. Кемені для навчання студентів незнайомих з обчислювальною технікою.

1967-1968 р. PL/1 (фірма ІВМ) (Programming language – програмно-орієнтовна мова). Дуже складний, як правило використовується в навчальних закладах та науково-дослідних центрах.

1970 р. – Паскаль (Pascal) створений професором Цюрихського політехнічного університету Ніклаусом Віртом. Названа на честь Блезе Паска ля. Універсальна алгоритмічна мова, побудована як структурна мова і орієнтована на використання методів структурного програмування. Це досягається за наявністю трьох основних елементів:

опис ("описание")

блочна структура

процедурний апарат

В описі приводиться інформація для компілятора (імена та типи змінних, мітки, ідентифікатори const, обмеження області значень змінних і т.п.).

Блочна структура програми реалізується простими та структурними операторами.








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

1980 р. – мова 2Ада" – названа в пам’ять про Аду Лавлейс – дочку англ.. посла Лорда Байрона, першої програмісти в історії обчислювальної техніки (працювала з Чарльзом Беббідтом – розробляла програми для його машини).

Мова утворена Франції по замовленню Пигтогена (МО США) на основі Паска ля і Алгола.

1961 р. Лисп – мова обробки списків розробив амер. професор Джон Мак карті.

1973 р. Пролог – логічне програмування (дерева – логічні гілочки) університет Момміні Франція; під керівництвом Колмерое.

80-ті – 90-ті р.р.: Си (сист. Прогр.) Симула, Симкрит, GPSS (моделюв.), Форт (керування оператури), Кодасил (для БД), Лого, Робік, мова Єршова (навчання програмуванню).



Алфавіт мови Паскаль. Основні поняття



Основні елементи лексеми, які складають мову Паскаль, можна поділити на декілька смислових груп, із яких складаються основні види лексем:

		Основні символи:

– букви латинського, а також російського алфавіту;

– арабські цифри 0-9;

– спеціальні символи:

ариф.: + – * / div (цілочисл. ділення) mod (остаток от цілого числа).

логічні:  (and),  (or),  (not) , , , , 

присвоювання: := розділителі: . , : ; указатель: ↑ апостроф: ’ скобки: ( ), {коментарій}

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

	 and, array, begin, case, const, div, do, down to, else, end, file, for, function, goto, if, in, label, mod, nil, not, of, or, packed, procedure, program, read, repeat, set, then, to, type, until, var, while, with.

			Стандартні ідентифікатори: константи: false, true, maxint типи: boolean, integer, char, real, text файли: input, output функції: abs, sqr, sin, cos… процедури: get, put, reset, rewrite, read, write

	Основні види лексем:

			Константи: {12$ 3.1415926…}

			Імена (ідентифікатори) – позначають деякий об’єкт. (службові слова, стандартні ідентифікатори, інші const, змінних, міток, типів, процедур, функцій, модулів, прогр., полів у записах).

			Знаки операцій – призначенні для задання дії над операторами (даними) з метою отримання результата.

			Розділителі – виділяють лексеми та інші, більш складні елементи програми: ( ) [ ] , ; : .

			Коментарії – для пояснень; беруться у фігурні дужки {це коментарій}

	Особливості:

	пробіл між сусідніми лексемами не обов’язковий, якщо хоча б одна з лексем є розділитель, коментарій, або знак операції (не ім’я). напр., знаки операцій div та mod є іменами, а знаки "+" і "–" не є імена.

	Обмеження ідентифікаторів: – складається з лат. букв, цифр, підкреслення; – починається тільки буквою; – не співпадає із зарезервованими словами; – довжина вільна, але значимі перші 63 символа.

	

Структура Паскаль - програми





Заголовок

Блок

.…...єєє

Program

Ідентифікатор (ім’я прогр.)

Ідентифікатор (зв‘язок з оточенням (з ОС) input, output

;

,



		
Розділи:





Розділ опису міток

Визначення const

Визначення типів

Опис змінних

Опис процедур функцій

оператори



Блок

	Приклади:

Опис міток



	Label 1, 4, Lb1, Lb2;

	

	Опис const:

	

	Const P = 3,14159265;

	e = 2,71828182;

	A = 10;

	

	Типи: TYPE

	

	mats = array [1…10] of real;

	color = (червоний, білий);

	index = 0…100;

	

	Змінні: VAR

	

	A, B, C: integer;

	D: real;



Опис процедур та функцій по структурі подібно до опису програми і починається із слів: PROCEDURE або FUNCTION

	

	Оператори:

	

begin

оператор

END

;

	

	Приклад: обчислити довжину кола

	

	Program __DLINA__(input, output);

	const __p = 3.14159265;

	var __r, L : real;

	begin

	writeln (’ввести знач. радіуса’);

	readln (r);

	L : = 2*p*r;

	Writeln (L)

	end.

	

	Коментарій: Програма начинається службовим словом PROGRAM. Далі ім’я програми: DLINA. Після імені у дужках вказаний зв’язок програми зі своїм оточуванням (окружением) – ОС:

	input – указує, що необхідні дані, які вводитися;

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

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

	

	4. Стандартні функції. Вирази

	

	Використовують для перетворення типів даних. Операнд функції (аргумент) записується у круглих дужках: sin (x).

	sin (x) – повертає значення sin (x);

	cos (x) – повертає значення cos (x);

	tan (x) – повертає значення tan (x);

	arctan (x) – повертає значення arctan (x);

	abs (x) – повертає значення модуль x;

	exp (x) – повертає значення ex;

	ln (x) – повертає значення ln x;

	sqr (x) – повертає значення x2;

	sqrt (x) – повертає значення ;

	trunc (x) – повертає цілу частину x;

	frac (x) – повертає значення x – tranc (x);

	round (x) – повертає ціле число найближче до x (округлино);

	random (x) – повертає випадкове число із діапазона 0-x;

	Odd (x) – true (істинне) для непарного х, false (хибне) для парного х.

Вирази

	Вирази представляють собою формальні правила для виконання дії (обчислення).

	Взагалі, вирази будуються із:

	1) операндів (змінні, масиви, поля записів, вирази функцій);

	2) знаків операцій;

	круглих дужок.

	Більшість операндів являються бінарними (т.б. для двох операндів), а+в. Але є декілька унарних операцій (т.б. для 1 операнда), наприклад, –а; @ Р.

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

	

	Схема пріоритету операцій.

	

Унарні операції:

@ - обчислення адреси змінної

not – логічне заперечення (отрицание)

1.

Бінарні операції:

*, / - множення, ділення

div, mod – ділення націло, залишок від ділення

and – логічне множення

shr, shl – розрядні          вправо, вліво

2.

+, – - додавання, віднімання

or, xor – логічне додавання, додавання по модуль два (“исключающее или”).

3.

Відношення:

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

in – перевірка залежності множенні

4.

	

Порядок виконання операції

Спочатку виконується пріоритетна операція.

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

Спочатку виконуються вирази у дужках.

	Приклади виразів:

	у

	21

	(а+b)*с

	sin (x)

	a>r

	not (a<b)



5. Графічні режими роботи дисплейних адаптерів. Типи драйверів



Починаючи з версії 4.0 у склад ТР входить бібліотека графічних підпрограм (модуль GRAPH).,яка забезпечує керування режимами різних адаптерів дисплеїв; вона містить 80 графічних процедур та функцій а також стандартних констант і описів типів даних.

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





драйвери

адаптери

монітори



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

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

Графічні драйвери.

Представляють собою файли з розширенням BGI, які забезпечують взаємодію програм з графічними пристроями і містяться в окремому каталозі (BGI). {*BGI – Borland Graphics Interface – графічний інтерфейс фірми Borland}.

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



Таблиця 1

Драйвер

Апаратне забезпечення

CGA.BGI

Адаптери CGA, MCGA

EGAVGA.BGI

Адаптери EGA, VGA

HERC.BGI

Адаптер Hercules

ATT.BGI

AT&T 6300 (400 рядків)

PC3270.BGI

IBM 3270 PC

IBM8514.BGI

IBM 8514



Тип драйвера і режим можна задавати у вигляді числа або у вигляді символьної константи. Ці константи визначені у модулі GRAPH:



Таблиця 2

Detect = 0

{автовизначення}

CGA = 1;

EGAMONO = 5;

MCGA = 2;

IBM8514 = 6;

EGA = 3;

HercMONO = 7;

EGA64 = 4;

ATT 400 = 8;

VGA = 9;

PC3270 = 10.


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

		Модуль GRAPH.

Модуль GRAPH підключається стандартним способом:



USES GRAPH;



Модуль GRAPH представляє собою окремий файл GRAPH.TPU і містить набір процедур і функцій.

Процедура ініціалізації графічного режиму:



InitGraph (var Driver, Mode : integer; path : string);



Змінні Driver i Mode задають драйвер і режим роботи адаптера, path – визначає можливий шлях до файлу.

Перші дві змінні задаються константами таблиці 2, іменем або числовим значенням.

Приклад 1:

Нехай драйвер EGAVGA.BGI знаходиться в каталозі TP\BGI диска С і встановлює режим VGAHI (640*480, 16 кольорів). Фрагмент використання процедури в програмі:



begin

…

Driver := VGA;

Mode := VGAHI;

InitGraph (Driver, Mode, ‘C:\TP\BGI’);

…

end.


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

Приклад 1а:



…………………

Driver := Detect;

InitGraph (Driver, Mode, ‘C:\TP\BGI’);

…………………



Такий параметр рекомендують використовувати при роботі на різних комп’ютерах з різними відеоадаптерами.

Особливості автовизначення типу драйвера:

а) для адаптера вибирається максимальний режим;

б) на час виконання програми всі драйвери знаходяться у пам’яті, або на диску; для великих програм це може привести до зменшення швидкості роботи програми;

в) ТР автоматично не розпізнає адаптери IBM8514 i ATT400; їх необхідно вказувати в процедурі.

	Процедура завершення графічного режиму: CLOSEGRAPH;

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

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






Program <ім’я>

Uses GRAPH

Розділи описів : var, const

…

Begin 

…

InitGraph (параметри);

…







…

CloseGraph;

…

End. 

Графічні побудови





Структура графічної Паскаль-програми.

Приклад 2:



Program GraphicDemo;

uses Graph;

var Driver, Mode : integer;

begin

Driver := Detect;

InitGraph (Driver, Mode, ‘C:\TP\BGI’);

{графічні дії}

…..

CloseGraph ;

end.



	Помилки ініціалізації графічного режиму та їх обробка.

При виконанні програми можуть виникати помилки. Тому в модулі GRAPH реалізований механізм визначення помилок та видачі повідомлень про них на екран за допомогою функції GraphResult i GraphErrorMsg.

Функція GraphResult: integer; повертає 0, якщо остання графічна операція виконалась без помилок, або число від – 14..-1, при наявності помилок.

Функція GraphErrorMsg (Code : integer): string; повертає значення типу STRING в якому відповідно коду помилки надається текстову повідомлення. CODE – код помилки, який повертається функцією GraphResult.

Приклад 3:



var

Driver, Mode, Error : string;

begin

Driver := Detect;

InitGraph (Driver, Mode, ‘’);

Error := GraphResult;

if Error <> 0 then

writeln (GraphErrorMsg (Error));

……………. {повідомлення помилки}

CloseGraph;

end.



5. Процедури та функції роботи з відеорежимами



Процедура DetectGraph виконується для тестування графічного адаптера:




DetectGraph (var Driver, Mode : integer);



Ця процедура може бути викликана до ініціалізації графічного режиму. Параметри:

Driver – повертає тип драйвера;

Mode – повертає максимальне значення відповідного режиму.

Ці значення і рекомендується підставляти як фактичні параметри процедури InitGraph.

		Група процедур та функцій управління режимами роботи графічного адаптера:

а) функція GetGraphMode: integer повертає код установленого режиму роботи графічного адаптера.

б) функція GetMaxMod: integer повертає максимальний номер коду режиму графічного адаптеру;

в) функція GetModName (ModNum : integer): string повертає значення типу STRING, яке містить ім’я режиму роботи за його номером;

г) функція GetDriveName: string повертає ім’я поточного графічного драйвера;

д) процедура GetModeRange (Driver : integer; var LoMode, HyMode : integer); повертає діапазон можливих режимів роботи заданого графічного драйвера:

Driver – тип адаптера;

LoMode – мінімальне значення коду режиму адаптера;

HiMode – мінімальне значення коду режиму адаптера.

!Особливість!:

якщо значення Drive задано невірно, то змінні отримують значення –1;

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

Процедур установки текстового та графічного режимів:

а) RestorCRTMode; повертає до текстового режиму.

!Особливість!:

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

б) процедура SetGraphMode (Mode : integer); установлює графічний режим за вказаним кодом – Mode.

!Особливість!:

Для повернення до попереднього графічного режиму на місце параметра мінімальне значення коду режиму адаптера Mode можна вставити функцію GetGraphMode.

Розглянемо приклади використання процедур роботи з відеорежимами.

Приклад 4:

Перехід з графічного режиму до текстового і знову до графічного.



Uses Graph;

var Driver, Mode, Error : integer;

begin

Driver := Detect;

InitGraph (Driver, Mode, ‘’);

Error GraphResult;

if Error <> 0 then

writeln (GraphErrarMsg (Error))

else

begin

writeln (‘Це графічний режим’);

readln;

ResultCRTMode;

writeln (‘Це текстовий режим’);

readln;

SetGraphMode (GetGraphMode);

writeln (‘Знову графічний режим’);

readln;

CloseGraph;

end;

end.



Приклад 5:

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



Uses GRAPH;

var

a, b : integer;

begin

a := Detect;

InitGraph (a, b, ‘’);

writeln (GetDriveName);

for a := 0 to GetMaxMode do

writeln (GetModeName (a) : 10);

readln;

CloseGraph;

end;



Приклад 6:

Вивести на екран назви всіх адаптерів і діапазон можливих номерів режимів їх роботи.



Uses Graph;

var D, L, H : integer;

const

N : array [1..11] of string [8] =

(‘CGA’, ‘MCGA’, ‘EGA’;

‘EGA64’, ‘EGAMONO’, ‘IBM8514’;

‘HercMONO’, ‘ ATT400’, ‘VGA’;

‘PC3270’, ‘Помилка’);

begin

writeln (‘ адаптер Мин. Макс.’);

for D :=1 to 11 do

begin

GetModeRange (D, L, H);

writeln (N [D], L : 7, H : 10);

end;

end.



Таким чином:

а) керування графічним режимом забезпечується модулем GRAPH, який підключається стандартним способом: USES GRAPH;

б) для ініціалізації графічного режиму використовують процедура InitGraph;

в) завершує графічний режим процедура CloseGraph;

г) структура графічної Паскаль-програми практично не відрізняється від стандартної структури;

д) модуль GRAPH містить широкий набір процедур та функцій роботи з відеорежимами.

Побудова геометричних фігур.

Для побудови зображення у графічному режимі використовують систему координат, яка відрізняється від текстового режиму (екран представляється у вигляді прямокутного масиву символів і координати Х, У починаються з 1 … max значення).

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

Для визначення максимальних значень координат екрану, в модулі GRAPH використовують функції:



GetMax X : integer;

GetMax Y : integer.



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

Побудова графічного зображення починається з позначення початкової позиції. У текстовому режимі цю позицію позначає курсор, який розміщується за останнім символом і вказує на місце наступного символу. В графічних режимах відображеного на екрані курсору не має, але є скритий поточний покажчик СР (current pointer), який виконує аналогічні функції курсору текстового режиму.

В графічному режимі для переміщення СР використовують процедури:

Move To (x, y: integer) – переміщує поточний покажчик СР в точку з координатами x, y;

Move Rel (dx, dy: integer) – переміщує СР на dx точок по горизонталі і на dy точок по вертикалі відносно останнього положення поточного покажчика. Якщо dx, dy більше 0, то координати СР збільшуються; якщо менше 0 – зменшуються.

Для визначення поточного розташування графічного курсору СР використовують функції:



GET X : integer;

GET Y : integer;



які повертають значення поточних координат показчика.

Приклад 1: позиціонування графічного курсору та визначення його координат:



Uses GRAPH;

var Driver, Mode : integer;

begin

Driver := Detect;

InitGraph (Drive, Mode, ‘’);

if GraphResult <> 0 then

begin

writeln (‘ошибка’);

halt (1);

end;

Move To (GetMax X div 2, GetMax Y div);

OutTextXY (GET X, GET Y, ‘курсор по центру’);

MoveRel (-GET X div 2, -GET Y div 2);

OutTextXY (‘Курсор переміщений’);

readln;

CloseGraph;

end.



Установка кольору та стилю.

1) процедура Set Color (Color : word); встановлює поточний колір для ліній та символів. Параметр Color позначає номер кольору від 0 до 15:




Таблиця 1.

Black = 0

Light Gray = 7

Blue = 1

Darc Gray = 8

Green 2

 Light Blue = 9

Cyan =3

Light Green = 10

Red = 4

Light Cyan = 11

Magente = 5

Light Red = 12

Brown = 6

Light Magente = 13

Yellow = 14

White = 15

Blink = 128



2) процедура SetBKColor (Color : word); встановлює колір фону, який визначається параметром Color.

3) процедура SetFillStyle (Fill, Color : word); встановлює стиль (тип і колір) заповнення фрагментів зображення.

Геометричні побудови.

	Відображення точки:

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



PutPixel (x, y : integer);



x, y – координата точки;

Color – її колір (значення беруть зі встановленої палітри).

		Відображення ліній:

а) Процедура: Line (x1, y1, x2, y2: integer);

x1, y1, x2, y2 – координати початкової і кінцевої точок лінії. Лінія креслиться поточним стилем і поточним кольором.

б) Процедура: LineTo (x, y: integer); будує лінію від точки поточного розміщення покажчика до точки з координатами (x,y).

в) Процедура: LineRel (dx, dy: integer); проводить відрізок від точки поточного розміщення на величину заданого приросту.

г) Процедура: SetLineStyle (Type, Pattern, Thich: word); встановлює стиль відображення ліній, де параметри – це відповідно тип, шаблон і товщина лінії. Тип лінії задається константою з таблиці 3:



Таблиця 3

Const

Значення

Характеристика

SolidLn

0

Безперервна

PottedLn

1

Пунктирна

CenterLn

2

Штрих-пунктирна

DashedLn

3

Штрихова

UserBitLn

4

Задана



Параметр Pattern тільки для ліній типу UserBitLn і може приймати значення від 1..65536, тобто 2 байта кожен біт (із 16 біт слова) може приймати значення 0 або 1 (піксель не світиться або світиться). Таким чином параметр Pattern задає відрізок ліній, довжиною 16 пікселів. Цей шаблон періодично повторюється по всій довжині ліній.

Параметр Thich приймає 2 значення:



Norm Width = 1

Thick WidTh = 3



Побудова прямокутників та паралелепіпедів.

		Процедура Rectangle (x1, y1, x2, y2: integer); створює прямокутник з координатами x1, y1 – лівого верхнього кута і x2, y2 – правого нижнього кута. Область середини прямокутника не зафарбована і співпадає з кольором фону екрану. Для ліній прямокутника використовується поточний стиль ліній і колір (заданий).

		Процедура Bar (x1, y1, x2, y2: integer); утворює прямокутник, внутрішня область якого заповнюється поточним стилем (тип і колір). Параметри процедури – відповідні координати лівого верхнього та правого нижнього кутів. Використовують для побудови гістограм, діаграм і т.п.

		Процедура Bar3D (x1, y1, x2, y2 : integer; D3 : word; Top: boolean); відображає паралелепіпед (трьохмірне зображення) і зафарбовує його передню грань поточним стилем. X1..Y2 – координати лівого верхнього та правого нижнього кута передньої грані; D3 – трьохмірне зображення "глибина" у пікселях; Top – задає режим відображення верхньої грані. В модулі GRAPH для режиму Top визначені 2 константи:



Top On = TRUE – верхня грань відображається;

Top Off = FALSE – верхня грань не відображається.



Будова многокутників.

Многокутники можна зображати декількома способами: наприклад, за допомогою процедур Line, LineTo. Паскаль також містить процедури, які дозволяють будь-які многокутники.

		процедура DrowPoly (n: word; var points); створює многокутник за допомогою ліній поточного кольору, стиля і товщини. Параметр n – кількість точок ламаної; points – змінна типу PointType, яка містить координати x, y точок ламаної.

В модулі GRAPH передбачений такий тип:



Type

PoinType = RECORD

x, y : integer;

end;



		Процедура FillPoly (n : word; var points); схожа з попередньою, але навідміну від неї – малює замкнутий многокутник і зафарбовує його. Стиль і колір лінії і контуру задається процедурами SetLineStyle i SetColor, тип і колір заповнення – процедурою SetFillStyle.

		Процедура FloodFill (x, y: integer; Border: word); служить для заповнення заданим стилем (SetFillStyle) області в середині або зовні замкненого контуру. Параметри: x, y – координати точки в середині або зовні контуру; Border – задає колір контуру. Якщо контур незамкнений то буде заповнення всього екрану заданим стилем.

Побудова кола, дуги та еліпсу.

		Процедура Circle (x, y: integer; r: word); зображає коло поточного кольору, товщини і вид лінії. Параметри x, y – координати центру кола, r – радіус у пікселях.

		Процедура Arc (x, y: integer; StAngle, EndAngle, r: word); креслить дугу кола. Задається координатами центру кола, початковим та кінцевим кутами ( у градусах), які відраховуються від горизонтальної вісі проти часової стрілки; радіус кола у пікселях.

		Процедура Ellipse (x, y: integer; StAngle, EndAngle, xr, yr, r: word); призначена для побудови еліптичних дуг. Параметри: координати центру, початковий та кінцевий кути, горизонтальний та вертикальний радіуси еліпсу у пікселях.

		Процедура Sector (x, y : integer; StAngle, EndAngle, rx, ry, r : word); відображає сектор еліпсу, який заповнюється поточним стилем. Параметри аналогічні.

		Процедура FillEllipse (x, y : integer; xr, yr : word); креслить контур еліпсу поточним кольором і заповнює поточним стилем. Параметри: координати центру, горизонтальний та вертикальний радіуси еліпсу.

		Процедура PieSlice (x, y: integer; StAngle, EndAngle, r: word); зображає сектор кола і заповнює поточним стилем. Зручно використовувати для побудови кругових діаграм.

Програмування графіки в комбінації з текстом.

Відображення тексту у графічному режимі має ряд особливостей:

		всі дії виконуються тільки з рядковими константами і змінними, тому вся чисельна інформація повинна перетворюватись в символьну;

		можливість використання різноманітних шрифтів.

Розглянемо основні засоби модуля GRAPH для виведення текстової інформації:

а) Процедура OutText (text : string); виводить на екран рядок тексту, починаючи з поточного розміщення графічного курсору СР;

б) Процедура OutTextXY ( x, y, text ); виводить рядок тексту починаючи з указаних координат;

в) Процедура SetTextStyle (Font, Direct, size : word); встановлює стиль тексту. Параметри: код шрифту, код орієнтації символів, розмір символів.

Відображення цифрової інформації.

В модулі GRAPH засоби відсутні. Але можна використовувати наступний спосіб: спочатку перетворити число або цифру в рядок за допомогою процедури Str, а далі операцією конкатенації (+) поєднати її з рядком, який відображається процедурою OutTextXY.

Приклад:



Max := 3.14;

Str (Max : 4 : 2, Smax);

OutTextXY (400, 40, ‘Max=’ + Smax);



Висновки: таким чином модуль GRAPH містить достатньо потужні засоби побудови і відображення різноманітної графічної інформації (геометричні фігури в комбінації з текстом і числами).