Мова програмування 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