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

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

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

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

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

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

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

Модуль Sуstem реалізує підтримуючі підпрограми нижнього рівня для всіх встроєних засобів, таких як ввід-вивід, робота зі строками, операції з плаваючою коморою, динамічний розподіл пам'яті. Модуль System містить усі стандартні і встроєні процедури і функції Pascal. Будь-яка підпрограма Pascal, що не є частиною стандартного Паскаля і не знаходиться ні в якому іншому модулі, міститься в модулі Sуstem. Цей модуль автоматично використовується у всіх програмах, і його не потрібно вказувати в операторі uses.

Модуль Doc реалізує численні процедури і функції Паскаля, що еквівалентні найбільше часто використовуваними викликам DOS, наприклад Getrime, Setrime, DiskSize і так далі. Так само визначаються деякі інші константи і типи даних.

Модуль Crt реалізує ряд могутніх програм, що дають вам можливість керувати такими засобами комп'ютера: керування режимом екрана, розширені коди клавіатури, колір, вікна, звукові сигнали. Одним з основних переваг використання модуля Crt, є велика швидкість і гучність при виконанні операцій роботи з екраном. Програми, що не працюють з модулем Crt, виводять на екран інформацію за допомогою засобів операційної системи DOS, що зв'язано з додатковим непродуктивними витратами. При використанні модуля Crt виведена інформація посилається безпосередньо в базову систему вводу-виводу (BIOS), чи, для ще більш швидких операцій, безпосередньо у відео пам'ять.

Модуль Printer дозволяє вам посилати стандартний вивід Паскаля на принтер, використовуючи процедури Write i Writeln.

Модуль Overley дозволяє вам зменшити вимого до пам'яті програми DOS. Фактично, ви можете писати програми, що перевищують стандартний обсяг доступної пам'яті, оскільки в кожен момент у пам'яті буде знаходитися тільки частина вашої програми.

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

Модуль Graph забезпечує ряд швидких і могутніх графічних програм. Він реалізує незалежний від пристроїв графічний драйвер Borland, що підтримує графіку CGA, EGA, VGA, і так далі.

Файловий ввід-вивід

У даній таблиці коротко описуються стандартні функції вводу-виводу Pascal.

Таблиця 6.1 Функції вводу-виводу

Функція

Опис

Read (f,v1[v2,..

..,vn])

Зчитує одне чи більше значень з файлу в одну чи більше перемінних.

Read ln (f,v1[v2,....,vn])

Робить те ж, що і Read, і виконує пропуск до початку наступного рядка текстового файлу.

Write (f,v1[v2,..

..,vn])

Записує у файл одне чи більше значень.

Writenl (f,v1[v2,....,vn])

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

Append

Відкриває існуючий файл для дописування.

Assing

Присвоює ім'я зовнішнього файлу файловий перемінний.

Close

Закриває відкритий файл.

Eof

Повертає для файлу стан End-of-file.

IoResult

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

Reset

Відкриває існуючий файл.

Rewrite

Створює та відкриває новий файл.

SeekEof

Повертає для текстового файлу стан «кінець файлу»

SeekEoln

Повертає для текстового файлу стан «кінець файлу»

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

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

Коли зв'язок із зовнішнім файлом установлений, для підготовки до операції вводу чи виводу файлова перемінна повинна бути «відкрита». Існуючий файл можна відкрити за допомогою процедури Reset, а новий

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

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

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

Звичайно доступ до файлів організується послідовно, тобто, коли елемент зчитується за допомогою стандартної процедури Read чи записується за допомогою стандартної процедури Write, поточна позиція файлу переміщається до наступного елементу файлу. Однак до типізованих і не типізованих файлів можна організувати прямий доступ за допомогою стандартної процедури Seek, що переміщає поточну позицію файлу до заданого елементу. Для визначення поточної позиції у файлі і поточного розміру файлу можне використовувати стандартні функції FilePos i FileSize.

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

За замовчування при всіх звертаннях до стандартних функцій вводу-виводу автоматично виконується перевірка на наявність помилок. При виявленні помилок програма припиняє роботу і виводить на екран повідомлення про помилку. За допомогою директив компілятора {$|+}i{$|-} цю автоматичну перевірку можна включити чи виключити. Коли автоматична перевірка відключена, тобто коли програма була скомпільована з директивою {$|-}, помилки вводу-виводу, що виникають при роботі програми, не приводять до її останову. При цьому, щоб перевірити результат виконання операції введення-висновку, потрібно використовувати стандартну функцію loResult. Для очищення помилки, що може відбутися, ви можете викликати функцію loResult. Якщо ви

цього не зробите, і поточним станом є {$|+}, то через помилку, що залишилася, loResult наступна операція введення-висновку завершиться з помилкою.

Текстові файли

У даному розділі описуються операції вводу-виводу, що використовують файлову перемінну стандартного текстового типу - Text.

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

Для текстових файлів існує спеціальний вид операцій читання і запису (read i write), що дозволяє зчитувати і записувати значення, тип яких відрізняється від символьного типу Char. Такі значення автоматично переводяться в символьне представлення і назад. Наприклад, Read(f,i) де і - перемінна цілого типу, приведе до зчитування послідовності цифр із файлу F, інтерпретації цієї послідовності як десяткового числа і збереження його в І.

Якщо при виклику однієї з функцій ви задаєте файл, цей файл повинен бути зв'язаний з зовнішнім файлів за допомогою процедури Assing і відкритий за допомогою процедури Reset, Rewrite чи Append. Якщо для орієнтованої на вивід функції ви вказуєте файл, що був відкритий за допомогою процедури Reset то виведеться повідомлення про помилку. Аналогічно буде помилкою задавати для орієнтованої на виведення функції файлу відкритий за допомогою процедур Rewrite чи Append.

Не типізовані файли

Не типізовані файли являють собою канали вводу-виводу нижнього рівня, використовуванні в основному для прямого доступу до будь якого файлу на диску, не залежно від його типу і структури. Любий не типізований файл описується словом file без атрибутів.

Наприклад:

Var Datafile: file;

За винятком процедури Read і Write для всіх не типізованих файлів

Допускається використання будь-якої стандартної процедури, що допускаються використовувати типізованими файлами. Замість процедур Read і Write тут використовується відповідно процедури Blockread i BlockWrite що дозволяють пересилати дані з високою швидкістю.

Використання модуля CRT

Модуль Crt дозволяє використовувати всі можливості дисплея і клавіатури персонального комп'ютера РС, включаючи керування режимом екрана, розширені коди клавіатури, колір, вікна, звукові сигнали.

Одним основних переваг використання модуля Crt є велика швидкість і гнучкість при використанні операцій роботи з екраном. Щоб використовувати модуль Crt, його потрібно вказати операторами uses вашої програми:

uses Crt;

Ввід строк

Для перевірки стану клавіатури і вводу окремих символів використовують функції Keypressed i ReadKey.

Таблиця 6.2 Процедури і функції модуля Crt

Функції процедури

Опис

ClrScr

Очищає екран і поміщає курсор у верхній лівий кут

Deley(ms: word)

Виконує затримку на зазначене число мілі секунд

Keypressed Boolean

Повертає значення True, якщо клавіші на клавіатурі натиснута і False у противному випадку

NoSound

Виключає внутрішній динамік

Sound

Включає внутрішній динамік

ReadKey: Char

Зчитує символи з клавіатури

Модуль Dos

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

Процедури і функції модуля Dos

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

Таблиця 6.3 процедури і функції модуля dos

процедура

опис

GetDate

Повертає поточну дату встановлену в операційній системі

GetTime

Повертає поточний час встановлений в операційній системі

SetDate

Встановлює для операційної систему дату

SetTime

Встановлює в операційну систему час

FSearch

Шукає файл у списку

FindFirst

Виконує пошук у заданому(чи поточному) каталозі запуску, уміст якої збігається з даним ім'ям файлу і атрибутами

FindNext

Повертає наступний запис ім'я файлу і атрибути в якому збігається з тими котрі були задані при попереднім звертанні до процедури

паскаль програмування константа інтерфейс

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

Модуль Graph реалізує бібліотеку більш ніж 50 графічних програм - від викликів процедури і функцій високого рівня,як, наприклад,SetViewPort Bar 3D DrawPoly,до програм,орієнтовних на декілька видів фарбування і типів видів,мається декілька шрифтів, які можна змінювати по величині, вирівнювати і орієнтувати горизонтально чи вертикально.

Для запуску програми,що використовує модуль Grapth крім вашої програми з розширенням ЕXE вам будуть потрібні одним чи більш графічні драйверів наприклад egavga,bgi (див далі файли BGI). Крім того вам буде потрібен також один чи більше файлів шрифтів (CHR) якщо у вашій програмі використовується які набудь шрифти.

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

Кожен драйвер містить виконуваний код ш данні і зберігається в окремому файлі на диску. Під час роботи процесора InitGraph ідентифікує графічну апаратуру і робить завантаження й ініціалізацію відповідного графічного драйвера,переводить екран в графічний стан,а потім повертає керування програмі. Процедура CloseGraph вивантажує драйвер з памяті і відновлює плпередеій режим. За допомогою програми RestoreCrtMode і SetGuaphMode ви можете переключатися між тестовим і графічним режимом.

Драйвер CGA,BGI призначається для адапторів CGA,MCGA фірми IBM ,драйвер CGA,BGI призначається для адаптерів CGA MCGA фірми IBM,драйвер EGAVGA,BGI призначається для адаптерів EGA,VGA.

Система координат у графічному режимі

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

За згодою верхній лівий кут екрана має координатну(0,0), у більш правого стовпця координатна x більше, у більш нижнього рядка більша координатна y. Тобто координатна X збільшується при переміщенні вправо, а координатна у - при переміщенні вниз. У такий спосіб координатна кожної з чотирьох кутів і конкретної точки будуть виглядати в такий спосіб:

(0,0) (640,0)

(320,240)

(0,480) (640,480)

Рис.1екран з координатами xy.

Поточний курсор

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

Write('ABC ')

У текстовому режимі попередній оператором Write залишить курсор у колонці, що безпосередньо слідує за буквою C була ведена в кнопку 80, то курсор перейде на стовпчик 1 наступного рядка. Якщо буква С була введена в позиції 80 рядка 25,то відбудеться пролистивание(прокручування) екрану нагору на 1 рядок і курсор буде знаходиться в 1 позиції 25 рядка.

MoveTo (0,0);

LineTo(20,20)

У графічному режимі даний оператор IineTo залишить поточний курсор в осатанній задній точці(20,20). Якщо діє режим відсікання,то реально виведено пряма буде відсічена до поточної точки. Зазначимо,що поточний покажчик ніколи не відтинається.

Команда MoveTo є еквівалентом команди GotoXY. Єдина її призначання - це переміщення поточного курсор. Переміщення поточного курсору використовується тільки в наступних командах, що використовується поточний курсор. MoveTo, InitGraph, MoveRel, LiteTo, LineRel, OutText, SetGrfphMode, ClearDevice, SetViewPort i ClearViewPort. Остані 5 з них переміщення курсор у точку (0,0).

Текст

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

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

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

Вирівнювання графічного тексту керуються процедурою SetTextJustify. Масштабирование і вибір шрифту здійснюється за допомогою процедури SetTextStyle. Графічний текст виводиться за допомогою процедур OytText чи OytTextx.

Графічне зображення і їхні види

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

Для керування видом ліній - буде вона тонкою чи товстою, чи з крапок, чи ж побудованою по вашому власному зразку - можна використовувати процедуру SetLineStyle. Для зафарбування області багатокутника пересічною чи штрихуванням чим-небудь більш складним можна використовувати процедури SetFillStyle, SetFloodPattern, FillPoly i FloodFill.

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

Процедура ViewPoint дозволяє всім командам висновку працювати в прямокутній області екрана. Графіки прямі й інші графічні зображення(весь графічний вивід) зв'язуються з областю перегляду,доки ця область не змінюється. Передбачено програми для очищення області перегляду і зчитування ії поточних визначень. Якщо заданий режим відсікання, то весь графічний висновок відсічеться до поточної точки. Для зчитування і виводу елементів зображення передбачені процедури GetPixel i PutPixel. Щоб зберегти і відновити на екрані прямокутну область, можна використовувати процедури GetImage i PutImage. Вони забезпечують повне виконання операцій процедури Bitbit(нормальне xor, or, fnd, not).

Підтримка сторінок і кольорів

Мається багато підтримуючих програм, включаючи підтримку для декількох графічних сторінок( тільки для адаптерів EGA,VGA і Hercules; це особливо корисно при використанні в мультиплікації), палітри, кольору і так далі.

Обробка помилок

Внутрішні помилки модуля Graph повертається функцією GraphResult. Ця функція повертає код помилки, що показує стан останньої графічної операції.

Значення коду повернення для функції GraphResult встановлюється наступними процедурами:

Detekt Graph Set Text Stile Set Alt Palete

Init Graph Set Graph Mode Set Fllt Palete

Flood Filt Close Graph SetFll Stylt

Fill Polly Get Graph Mode Set Graph Buf Size

Draw Polly Image Size Set Graph Mode

Bar Install Uese Drivtr Set Line Style

Bar3D Install Uese Font Set Palete

Pie Slike Regeister BGI Driver Set Text Justifu

Clear View Port Regeister GBI Font

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

Початок роботи

Приведемо приклад простої графічної програми:

program Graph Test;

uses Graph;

var

GraphDriver : integer;

GraphMode: integer;

ErrorCode: integer;

begin

Graph Driver; Detect;{установка фляжок виконати розпізнання}

Init Graph (Graph Driver, Graph Mode,C:\dos\tp7\);

ErrorCode:= GraphResult;

If ErrorCode<>grOk then {помилка?}

begin

Writeln(Помилка графіки;,GraphErrorMsg(ErrorCode);

Writeln( Програма аварійно завершила роботу…);

Halt(1);

end;

Rectangle(0,0,GetMax,);{намалювати рамку розміром в єкран}

SetTextJustify(CenterText, CtnterText);{центрування тексту}

SetTextStyle(DefaultFont, HorizDir,3);

OutTextXY(GetMax div2, GetMax div2,{центр єкрана}

Графічний інтерфейс фірми Borland (BGI);

Readln;

CloseGraph;

end.{ GraphTest}

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

Наведемо ще один приклад, що показує, як можна переключатися між графічним і текстовим режимами:

program Graph test;

user Graph;

var

GraphDriver : integer;

GraphMode : integer;

ErrorCode : integer;

begin

GraphDriver:=Detect;{Встановити флаг;виконати розпізнавання}

InitGraph(GraphDriver, GraphMode, C:\clos\tp7\);

ErrorCode:=GraphResult;

if ErrorCode<>grOk then{помилка?}

begin

Writeln(Помилка графіки:,GraphErrorMsg(ErrorCjde);

Writeln(Програма аварійно завершила роботу…);

Halt(1);

end;

OutText(Графічний режим. Натисніть<Enter>)

Readln;

RestoreCrtMode;

Write(Текстовий режим.Натисніть<Enter>);

Readln;

SetGraphMode(GraphMode);

OutText(Снову графічний режим.Натисніть<Enter>);

Readln;

CloseGraph;

end.{GraphTest}

Виклик CloseGraph відновлює спочатку виявлений відєо-режим (InitGraph) і звільняє пам'ять,використовувану графічним драйвером.

Таблиця 7.1 Процедури модуля Graph

підпрограма

опис

Arc

малює другу окружність від початкового кута до кінцевого кута;крапка (х,у) беруться як центр окружності

Bar

малює стовпець, використовуючи поточний тип фарбування

Bar3D

малює тривимірний стовпець, використовуючи поточний тип фарбування

Circle

малює окружність з центром у крапці(х,у)

ClearDevice

Скидає поточні параметри встановлені для пристрою виводу, і підготовлює його для виводу

CloseGraph

Виконує зупинку графічної системи

DetectGraph

Розпізнає апаратуру і визначає, який графічний драйвер і режим потрібно використовувати

DrawPoly

Малює багатокутник використовуючи поточний тип лінії і колір

Ellipse

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

FloodFill

Зафарбовує обмежену область, використовуючи поточний зразок фарбування

GetArcCoords

Дозволяє користувачу запитувати координати останньої команди Arc

Get Aspect

Ratio

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

Get Вkcolor

повертає поточний фоновий колір

Get color

повертає поточний колір малюнку

Get Image

Зберігає двоїчний образ заданої області в буфері

GetMaxColor

Повертає максимальне значення кольору яке можна передати процедурі SetColor

Get Maxx

повертає до поточного графічного драйвера і режиму самий правий стовпчик(дозвіл по х )

GET Max

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

GetPixel

Повертає значення елемента зображення в крапці X,Y.

Getx

повертає координати X поточної позиції(поточного курсору)

Get

повертає координати Y поточної позиції(поточного курсору)

GraphErrorMsg

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

GraphResult

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

Image Size

повертає число байт потрібних для збереження прямокутної області екрана

Init Graph

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

Line(x1;x2;x3;x4

integral)

малює пряму лінію з (x1,y1) у (x2,y2)

LineRel

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

Line To integer

малює лінію з поточного положення в точку (х;у)

Move Real

переміщає поточний курсор на точку що є відносною від поточної позиції

Move To(х;у integer)

переміщає поточний курсор у точку(х;у)

OutText (s:string)

посилає строку на вивід починаючи з поточного курсору

Out Textx(х;у) :integer;s; string

посилає рядок s починаючи з точки (х;у)

Pie Slice

малює сектор (х;у) і використовується як центер а сектор малюється від начального та кінцевого кута

PutImage

Виводить на екран двоїчний образ

Putpixel

Будує елемент зображення в точці X,Y.

Rectangle

Малює прямокутник, використовуючи поточний тип лінії і колір

SetActivePage

Установлює для графічного виводу активну сторінку графіки

SetAspectRatio

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

Set Bkcolor

Використовуючи палітру, установлює поточний колір

SetColor

Використовуючи палітру, установлює поточний колір малюнка

Set Text Justify

Для Out Text і OutTextXY встановлює значення для вирівнювання тексту

SetGraphMode

Переключає систему в графічний режим і очищує екран

SetLineStyle

Встановлює поточний тип лінії та ії ширину

SetTextStyle

Задає поточний текстовий шрифт, його тип і коефіцієнт розміру символу

SetUserCharSize

Дозволяє для векторних шрифтів змінити висоту і ширину символу

SetVisualPage

Задає номер графічної сторінки

SetWriteMode

Встановлює режим виводу на екран(копіювання за допомогою операції XOR) ліній, що вичерчуються процедурами DrawPoly, Line, LineRel, LineTo, Rectangle

Textheight

Повертає висоту сторінок в елементах зображення

TextWidth

Повертає ширину рядка в елементах зображення

Константи типи і перемінні модуля Graph

У модуля Graph мається багато описів типів і констант на які ви можете посилатися.

Константи модуля Graph можна згрупувати по їхньому призначенню 1) Константи драйверів - константи, що визначають відео драйвери і режими; використовуються в підпрограмах DetectGraph, GetModeRange, InitGraph. 2) Константи що ідентифікуються тип помилки що повертаються GraphResult. 3)Константи кольорів - константи, що визначають кольори,використовуються в підпрограмах SetPalette і SetAllPalette, 4)

Константи кольорів - константи,використовувані в підпрограмі SetGRBPalette для вибору стандартних кольорів EGA, 5) Константи стилю лінії - константи, використовувані для визначення стилю і товщини лінії; використовуються з GetLineSettings і SetlineStyle, 6) Константи шрифтів - використовуються для ідентифікації шрифтів у підпрограмах GetTextSettings і SetTextSetting, 7) Константи вирівнювання - константи, що керують горизонтальним і вертикальним вирівнюванням використовуються в SetTextJustify, 8) Константи відсікань - константи, що керують відсіканням використовуються в SetViewPort, 9) константи стовпців - керують зображенням “ вершини ” тривимірного стовпця використовуються в Bar3D, 10) Зразки фарбування - визначають зразок зафарбування області - використовуються в GetFillSettings і SetFillStyle, 11) Операції BitBit - операції (копіювання, xor, or, and, not), що використовуються в Putimage і SetWriteMode, 12) MaxColors - константи, що визначають максимальне число кольорів у GetPalette, GetDafaultPalette і SetAllPalette.

Типи

У модулі Graph визначенні наступні типи

Таблиця 7.2 типи модуля Graph

Тип

Опис

PaletteType

Запис, що визначає розмір і кольори палітри, використовується в GetPalette, GetDefaultPalette і SetAllPalette.

LineSettingsType

Запис, що визначає стиль, зразок і товщину лінії, використовується GetLineSettings

FillSettingsType

Запис, що визначає текст, використовується в GetTextSettings

FillPatternType

Запис, що визначає заданий користувачем зразок фарбування, даний запис використовується процедурами GetFillPattern і SetFillPattern

PointType

Тип визначений для вашої зручності

ViewPortType

Запис, що повідомляє про стан поточної області перегляду використовується GetViewSettings

ArcCoordsType

Запис для одержання інформації про останній виклик Arc чи Ellipse; використовується GetArcCoords

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

Запуск Turbo Pasсal

Щоб запустити інтегрування середовища IDE (оболонку Turbo Pasсal) необхідно запустити файл TURBO.EXE, звичайно він знаходиться в каталозі c:\dos\tp7, або, якщо настроєна команда Norton Commander просто натиснути Enter на файлі з розширенням “pas”.

Файли з програмами зберігаються в текстовому виді і мають розширення “pas”.

Компоненти інтегрованого середовища(IDE)

Інтегроване інтегративне середовище розробки програм містить три видимих компоненти: рядок меню у верхній частині екрана, оперативну область і рядок стану в нижній частині екрана. У активному рядку меню ви побачите підсвічений заголовок меню. Це поточне обране меню. Вибрати команди меню ви можете за допомогою чи клавіатури ”миші”. Клавіша F10 активізує рядок меню. Деякі команди можна вибрати за допомогою сполучення клавіші Alt і букви - підсвіченої в даному меню.

Меню File дозволяє використовувати операцію з файлами:

New- створення нового файлу

Open(F3)- відкриття існуючого.

Seve(F2)- збереження поточного файлу.

Seve as - збереження під іншим ім'ям.

Exit(Alt-X)- вихід з оболонки.

Меню Edit містить операції редагування:

Undo - скасування останнього виправлення.

Gut(Shift-Del) - вирізати в буфер обміну.

Copy(Ctrl-Ins) - копіювати в буфер обміну.

Paste(Shift-Ins) - вставити з буфера обміну.

Меню search дозволяє виконувати пошук - Find чи пошук і зміну тексту в програмі Replace.

Меню Run запускає програму на виконання - підміну Run(Ctrl-F9), припинити роботу -Ctrl-Break.

Меню Compile дозволяє створити виконуваний файл і зробити деякі інші дії.

Меню Debug призначено для налагодження програми, за допомогою підменю User screen (Alt-F5) можна подивитися результати роботи програми.

Меню Tools містить допоміжні засоби мови.

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

Меню Window керує вікнами, наприклад close (Alt-F3) - закриття вікна.

Меню Help позволяє викликати довідкову систему.

Index(Shift-F1)- пошук по імені.

Topic search (Ctrl_F1) - пошук для поточного слова.

Previous topic (Alt-f1) - попереднє вікно пошуку.

Procedure and functions - довідка по встроєних процедурах і функціях.

Turbo Pascal Language - довідка по мові Паскаль.

Порядок копіювання тексту в програмі

1. Поставити курсор у початок потрібного блоку тексту та натиснути Сtrl+K+B

2. Поставити курсор у кінці блоку тексту і поставити Ctrl+K+K.

3. Перемістити курсор у місце для вставки тексту і натиснути Ctrl+K+C.

4. Натиснути для скасування виділення тексту Ctrl+K+H.

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

У цьому прикладі наведенні програми на основі конструкції мови Паскаль- умовні, циклічні процедури і функції.

Приклад 1. Програми розрахунку часу маршу по формулі .

Tm=(Dm*K+Dp+Gk-Gr)/(V*K)+Tp, де

Tm- тривалість маршу

Dm- довжина маршруту

K- коефіцієнт =0,6

Dp-віддалення вихідного пункту

Gk- глибина колони

G- глибина району

V- швидкість

Tp- тривалість привалів.

program primer1;

const K=0.6;

var Tm, Dm, Dp, Gk, Gr, V, Tp :Real;

begin

writeln(“Введіть довжину маршруту Dm”);

readln(Dm);

writeln(“Введіть віддалення вих. Пункту Dp');

readln(Dp);

writeln(“Введіть глибину колони Gk');

readln(Gk);

writeln(“Введіть глибину району Gr');

readln(Gr);

writeln(“Введіть швидкість V');

readln(V);

writeln(“Введіть тривалість привалів Tp');

readln(Tp);

Tm:=(Dm*K+Dp+Gk-Gr)/(V*K)-Tp;

Writeln(“Час маршу Tm= `,Tm:7:3);

end.

Приклад 2. Програма обчислення функції (умовний оператор)

X* x>=0

y(x) = X* x<0

program primer 2;

var x,y : real;

begin

writeln(“Уведіть x”);

readln(x);

if x>=0 then y:=x*x*x;

else y:=x*x;

writeln(`y= ',y:7:2);

end.

Приклад 3.програма обчислення функції(умовний оператор)

X*z=2*z , x>10

y= Sin(x)=ln(x) , 0<=x<10 де z=-5

x-z , иначе

program primer3;

var x,y,z :Real;

begin

z:=-5;

writeln(`Уведіть x');

readln(x);

if x>=10 then y:=x*z+2*z

else

if x>=10 then y:=x-z;

else y:=sin(x)+ln(x)

writeln(`y=',y:7:2);

end.

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

Обчислити функцію y(x)=(1+x)*(x+ln(x))/(x*x+4)/(exp(x-1)) з кроком Pi/120на інтервалі від Pi/4 до Pi/3.

program primer4;

var x,y,dx,a :real;

begin

a:=pi/4;

dx:=pi/120;

while a<=pi/3 do

begin

y:=(1+x)*(x+ln(x))/(x*x+4)/(exp(x-1));

a:=a+dx;

writeln(`y= ',y:12:5)

end;

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

Обчислити ф-ію y(x)=(1+x)*(x+ln(x))/(x*x+4)/(exp(x-1)) з кроком Pi/120 на інтервалі від Pi/4 до Pi/3

program primer5;

var x,y,dx,a :real;

begin

a:= pi/4;

dx:=pi/120;

repeat

y:=(1+x)*(x+ln(x))/(x*x+4)/(exp(x-1));

a:=a+dx;

writeln(`y=',y:12:5)

until a>pi/3;

end.

Приклад 6. програма обчислення ф-ії (циклічний оператор)

Program primer6;

var y:real

i,N :Integer;

begin

writeln(`Уведіть N');

readln(N);

y:=0;

for i:=1 to N do y:=y+(i+1)/(i+2);

writeln(`y=',y:8:4)

end.

Приклад 7. Програма обчислення функції (циклічний оператор)

Y=

Program primer 7;

Var y,x:real;

I:integer;

Begin

Writeln()x;

Readln(x);

Y:=1;

For i:=1 to 5 do y:=y*(x*x)/(i+x);

Writeln(`y=',y:8:4)

End.

Приклад 8. програма обчислення функцій (*циклічний оператор, функція з фактором)

при n=10

program primer 8;

var y :real;

f, i, n :Integer;

begin

f:=1;

y:=0;

N:=10;

for i:=1 to N do

begin

f:=f*i;

y:=y+1/f

end;

writeln(`y= ',y)

end.

Приклад 9. програма обчислення функції (циклічний оператор. Функція зі струменем)

Y=

program primer 9;

var y,x :real;

i,N : Integer;

begin

writeln (`Уведіть N');

readln (N);

writeln (x);

readln (`Уведіть x');

y:=0;

sx:=1;

s2:=1;

for i:=1 to N do

begin

sx:= sx*x;

s2:=s2*2;

y:= y+ sx /(1+s2)

end;

writeln (`y= ',y:8:2)

end.

Приклад 10. Програма обчислення (циклічний оператор)

program primer10;

var b a,y :real;

I,N :Integer;

begin

writeln (Уведіть N);

readln (N);

y:+0;

a:=1;

b:=0;

for i:=1 to N do

begin

a:=a*exp(i);

b:=b+sin(i);

y:=y+a/b

end;

writeln (`y= ', y:11:2);

end.

Приклад 11. програма з функцією функції суми a+b і ступення x^y

program primer11;

var n, m, rez: real;

function sum (a, b :real) :Real;

begin

sum:=a+b

end;

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

begin

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

end;

begin

writeln (`n, m');

readln (n, m);

writeln (`sum a+b= ', sum(n, m):6:2);

rez:=Stepen (`n,m);

writeln(`n^m= ', rez:8:3;

end.

Приклад 12. Програма з процедурою процедури обчислення факторіала N і ступеня x^k

program primer 12;

var a :Real;

M, Ft, b :Integer;

procedure Factorial (N :Integer; var F : Integer);

var i, w :Integer;

begin

w:=1;

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

F: =w

end;

procedure Stepen2 (x :Real; k Integer);

var I :Integer; s :Real;

Begin

s:=1;

for i :=1 to k do s:=s*x;

writel (`x ^k= ', s:8:2);

end;

begin

writeln(`Уведіть ціле число для факторіала -M:');

readln (M);

Factorial (M, Ft);

writeln (`M:= ',Ft);

writeln (`Уведіть число для зведення в ступінь -a:');

readln (a);

writeln (`Уведіть ціле число показник ступеня -b:');

readln (b);

Stepen2 (a ,b)

end.

Приклад 13. Програма побудови графічних примітивів

program primer 13;

Uses GRAPH;

var XC, YC, x, y, w, h :word;

strw : String;

procedure Grinit {процедура ініціалізації графіки}

var GrDriver, GrMode, ErrorCod: integer;

begin

GrDriver :=Detect;

InitGraph (grDriver, GrMode, `C:\dos\tp7');

ErrorCod <> 0 then

begin

writeln (`помилка:',GraphErrorMsg, (ErrorCod));

Halt (1)

end;

end; { end procedure GrInit }

Begin

GrInit;

XC:=GetMaxX div 2;

YC:=GetMaxY div 2;

Line(XC,YC-70,XC+50,YC);

Line(XC,YC+50,YC,XC,YC+70);

Line(XC,YC+70,XC-50,YC);

Line(XC-50,YC,XC,YC-70);

MoveTo(XC-50,YC);

Line To(XC+50,YC);

SetFillStyle (1, Blue);

Flood Fill(XC,YC-5,15);

strw := `Horizontal';

Out Text XY(XC+60,YC,strw);

strw := `Vertical';

w :=TextWidth (strw);

h :=TextHeight (strw);

x :=XC-50-h;

y :=YC-w;

SetTextStyle (DefaultFont, VertDir,2);

Out Text XY (x, y, strw);

readln;

CloseGraph;

end.

Результат роботи програми побудови графічних приміток:

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

1. Як записати мову Паскаль?

2. Як виконати збереження програми?

3. Як відкрити існуючу програму?

4. Як записувати програму на виконання?

5. Як переглянути результати програми?

6. Як викликати довідкову систему?

7. Як одержати довідку по ключовому слову?

8. Як припинити виконання програми?

9. Структура програми на Паскалі?

10. Як виконується опис перемінних?

11. Які бувають типи даних?

12. Як оголошується масив?

13. Як використовується состав ний оператор?

14. Як виконується умовні обчислення?

15. Які бувають види циклів?

16. Як створюються процедури та функції?

17. Назвіть основні та встояні процедури та функції?

18. Як виконується вхід - вивід даних?

19. Як виконувати обчислення ступеня?

20. Як обчислити факторіал?

21. Як обчислити суму ряду?

22. Опишіть графічні можливості мови Паскаль?

Размещено на Allbest.ru


Подобные документы

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

    творческая работа [1,3 M], добавлен 01.02.2011

  • Програми і мови програмування. Алфавіт мови програмування. Лексеми, зарезервовані слова мови Pascal. Ідентифікатори, типи даних. Арифметичні вирази, операції. Стандартні функції, структура програми. Процедури введення-виведення. Правила написання команд.

    лекция [445,0 K], добавлен 24.07.2014

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

    реферат [29,9 K], добавлен 28.06.2011

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

    реферат [30,0 K], добавлен 13.11.2010

  • Теоретичні аспекти програмування мовою Pascal. Основні поняття та елементи мови. Розділи оголошення сталих і змінних. Стандартні та нестандартні типи даних. Основні операції, стандартні функції та процедури, прості програми. Розгалуження, цикли, масиви.

    курсовая работа [122,5 K], добавлен 21.10.2012

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

    реферат [39,8 K], добавлен 13.11.2010

  • Загальні відомості про мову програмування, історія створення та використовування. Програма мовою Паскаль складається з лексем і символів – розділювачів. Робота з масивами, створення алгортимів. Складання програм з використанням процедур та функцій.

    реферат [18,3 K], добавлен 22.10.2010

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

    курс лекций [99,7 K], добавлен 06.07.2011

  • Розгляд особливостей мови програмування С++: основні можливості, характеристика функцій. Аналіз файлів з вхідними даними. Використання похідних класів як ефективний засіб об’єктно-орієнтованого програмування. Способи роздруківки графічного вирішення.

    курсовая работа [510,9 K], добавлен 14.03.2013

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

    реферат [24,4 K], добавлен 10.11.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.