ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.09.2024
Просмотров: 42
Скачиваний: 0
Перемикання в графічний режим і робота в ньому реалізовані в Турбо Паскалі у вигляді набору процедур, що перебувають у спеціальному модулі graph.tpu. Цей модуль повинен явно підключатися до програми за допомогою оператора використання uses. У модуль graph входить приблизно 50 процедур.
Отже, програма при перемиканні в графічний режим повинна визначити тип відеоадаптера. Це можна зробити, явно вказавши в програмі тип відеоадаптера або давши програмі можливість самостійно визначити значення відповідних параметрів. Для цього необхідно ввести змінну цілого типу, нехай її ідентифікатор буде gd. При явному визначенні відеоадаптера в програмі повинен бути присутнім оператор присвоювання
gd := value;
де value - це або деяке число, або убудована константа (убудовані константи не треба
описувати спеціально, тому що їхні описи втримуються в модулях).
При автоматичному розпізнаванні відеоадаптера в правій частині оператора присвоювання використається константа Detect (або нульове значення).
Друге, що повинна зробити програма, - задати певний графічний режим. Для цього варто ввести ще одну змінну цілого типу, назвемо її gm, і привласнити їй значення.
Перемикання в графічний режим роботи дисплея виконується викликом процедури ІnіtGraph з модуля graph:
ІnіtGraph(gd, gm. 'c:\tp\bgі');
Перший параметр у цій процедурі задає тип відеоадаптера, другий визначає режим, а третій являє собою рядок із вказівкою розташування драйвера на диску. Порожній рядок означає, що графічний драйвер перебуває в тім же каталозі, що й програма. Процедура ІnіtGraph переводить систему в графічний режим, а потім повертає керування викликаючій програмі. Завершення роботи в графічному режимі виробляється за допомогою процедури CloseGraph, що вивантажує драйвер з пам'яті й відновлює попередній відеорежим.
За допомогою процедур RestoreCrtMode і SetGraphMode можна перемикатися між текстовим і графічним режимами, не закриваючи графічний режим.
Перемикання в графічний режим звичайно супроводжується обробкою можливих помилок ініціалізації. Ці помилки можуть бути пов'язані з відсутністю графічного драйвера або неправильних значень параметрів. При наявності помилки процедура ІnіtGraph виробляє відповідний, відмінний від нуля, результат - код помилки. Цей код можна одержати за допомогою функції GraphResuіt.
Щоб зображення не залежало від дозволу, потрібно использувать функції GetMax і GetMax, що повертають найбільший номер пиксела по горизонталі й по вертикалі відповідно. Графічні координати правого нижнього кута екрана рівні (GetMax, GetMax). Процедура SetBkColor установлює колір тла, а процедура SetColor - колір графічного об'єкта. Процедура Lіne(xl, yl, х2. в2) виводить відрізок прямої, що задає початковою крапкою (x1, y1) і кінцевою крапкою (х2,y2). Окружність виводиться процедурою Cіrcle(x, в, r),параметрами якої є графічні координати центра х и в, а також радіус r (у пикселах).
Прямокутник будується процедурою Rectangle(xl. yl, х2, в2), перші два параметри якої задають графічні координати верхнього лівого кута прямокутника, а останні два параметри - координати нижнього правого кута. Процедура Bar(xl, yl, х2, в2) також призначена для висновку прямокутника й відрізняється від процедури Rectangle тим, що в цьому випадку внутрішня частина прямокутника зафарбовується заздалегідь певним чином. У випадку процедури Rectangle для заповнення внутрішньої області фігури доводиться використати додатковий виклик процедури модуля Graph. Колір заповнення може бути заданий за допомогою процедури SetColor(Color). Аргументом цієї процедури є константа або змінна типу Word, що є кодом кольору. Цей код може приймати значення з інтервалу 0. .15. У Турбо Паскале є 12 стилів заповнення, а вибрати кожної з них можна за допомогою процедури SetFіll Style (Style, Color). Перший параметр цієї процедури задає стиль заповнення, а другий - колір. У числі припустимих стилів зафарбування - суцільна, штрихова й т.д.
4 Алгоритм розробки програми
1. Створити два файли: основний файл з програмою та файл модуля.
2. В основному файлі зв’язати файлову змінну з файлом даних та створити меню
відповідно до заданих пунктів.
3. В файлі модуля створити тип даних, який описує структуру запису та описати
необхідні змінні (f – файлова змінна, z – змінна типу запису і т.д.)
4. В файлі модуля створити процедури та функції, які реалізують задані пункти меню.
4.1. Створити процедуру створення файла записів та занесення в нього даних:
- створити та відкрити файл для запису за допомогою процедури
rewrite (f, ‘robota.dat’);
- ввести потрібні данні з клавіатури та записати їх у файл за допомогою
процедури read (f, z);
- закрити файл процедурою close (f).
4.2. Створити процедуру виведення даних на екран:
- відкрити файл для читання – reset (f);
- зчитати дані з файлу – read (f, z);
- вивести дані на екран;
- закрити файл.
4.3. Створити процедуру додавання інформації у файл:
- відкрити файл для читання та запису – reset (f);
- встановити вказівник файла за останнім його компонентом процедурою seek (f,filesize(f));
- записати додаткові дані аналогічно процедурі введення даних;
- закрити файл.
4.4. Створити процедуру редагування запису:
- відкрити файл, що потрібно відредагувати;
- ввести номер запису для редагування;
- зчитати дані з файлу та порівняти його номер із введеним;
- встановити вказівник файла на заданий елемент seek (f,n-1);
- відредагувати поля запису та записати їх у файл;
- закрити файл.
4.5 Створити процедуру видалення.
-
Описати допоміжний файл.
-
Відкрити основний файл для читання.
-
Ввести номер запису, який потрібно видалити.
-
Порівняти його з номерами записів, якщо номер не збігається, то перекопіювати в допоміжний файл, в іншому випадку - проігнорувати.
-
Закрити файли.
-
Видалити існуючий основний файл процедурою erase(f);
-
Перейменувати допоміжний файл у файл з назвою основного.
5.У файлі модуля Poshyk реалізувати роботу процедур вказаних у власному завданні.
5.1 Створити процедуру, що виводе список випускників, працевлаштованих на підприємстві Х, та їх кількість;
-
Відкрити файл для читання.
-
Ввести назву підприємства, щоб дізнатися кількість праве лаштованих випускників.
-
Закрити файл.
5.2 Створити процедуру, що виводе список підприємств у порядку зростання кількості працевлаштованих на них випускників;
-
Відкрити файл для читання.
-
Обрати вивід даних.
-
Закрити файл.
5.3 Створити процедуру виводу спискy не працевлаштованих випускників із зазначенням місця роботи, що пропонувалося, і середньому балу диплома.
-
Відкрити файл для читання.
-
Обрати вивід даних.
-
Закрити файл
6.В файлі модуля graphika реалізувати процедури виведення графічної заставки.
6.1Організувати вивід на екран вступної заставки.
-
Ініціалізувати графічний режим.
-
Продемонструвати заставку.
- Повернутися в текстовий режим.
6.2 Вивід на екран завершальної заставки.
- Ініціалізувати графічний режим.
- Продемонструвати заставку-вихід.
- Закрити графічний режим.
7.Відкомпілювати створені модулі та використати їх в основній програмі.
5. Практична реалізація
-
5.1 Опис структури даних та вимоги до них
type vupysknik=record– тип запису, який містить відомості відомості про працевлаштування випускників по підприємствам.;
fam:string; - прізвище випускника;
nomer_d:1..999999;- номер диплому;
ser_bal:real; - середній бал випускника;
pidpr:string; - місце роботи, що пропонується (підприємство).
ozn:string; - ознака прийняття на роботу на даному підприємстві (ТАК/НІ).
f,f1:file of vupysknik;- файлові змінні, які пов’язані з файлами, що містять дані про випускників;
i: integer;- лічильники;
c:char; - змінна для procedure oznaka;
n:integer; – номер шуканого запису.
n_pidpr: string;– назва шуканого підприємства.
z:vupysknik;- змінна, що використовується для зчитування та запису даних з(в) файлу записів;
-
5.2 Опис стандартних процедур і функцій.
Процедури для роботи з виведенням тексту:
Clrscr; - процедура очищення екрану.
GotoXY(<координата по Х>;<координата по Y>); - процедура переміщення курсору на вказану позицію.
Write(Т); – процедура виведення тексту на екран, де Т може бути рядком або змінною.
Read(змінна); - процедура зчитування введених даних.
Writeln(T); - процедура виведення тексту з перенесенням вказівника на наступний рядок.
Readln(змінна); - зчитування даних з перенесенням вказівника на наступний рядок.
Textcolor(color); - процедура встановлення кольору тексту.
Textbackground(color); - процедура встановлення кольору фону за текстом.
Прoцедури та функції для роботи з файлами:
Assign (файлова змінна, рядок)- процедура, що встановлює зв’язок між файловою змінною та фізичним файлом.
Reset (файлова змінна)- процедура відкриття існуючого файлу.
Rewrite (файлова змінна)- процедура відкриття нового файлу. Якщо файл уже існує, то при спрацьовуванні процедури Rewrite файл попередньо вилучається.
Write (файлова змінна, список змінних)- процедура виконання запису даних в файл.
Read (файлова змінна, список змінних)- процедура, що виконує зчитування даних з файлу.
Close (файлова змінна)- процедура закриття файлу.
Rename (файлова змінна, рядок)- процедура перейменування файлу.