русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


ЛАБОРАТОРНА РОБОТА 5


Дата додавання: 2014-11-27; переглядів: 797.


Тема: Створення і відлагодження підпрограм заставки та меню

до програми у текстовому режимі

 

Теоретичні відомості щодо виконання лабораторної роботи

 

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

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

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

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

Сценарій 1:

- очистка екрана;

- вивід заставки на екран;

- утримання заставки на екрані протягом фіксованого чи нефіксованого часу;

- вивід головного меню;

- робота з пунктами меню.

Сценарій 2:

- одночасний вивід заставки й головного меню;

- робота з пунктами меню.

Сценарій 3:

- очистка екрана;

- вивід меню;

- вивід заставки поверх меню;

- утримання заставки на екрані протягом фіксованого чи нефіксованого часу;

- зникнення заставки й відновлення екрану;

- робота з меню.

 

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

Меню - це перелік можливостей системи (програми), з якого користувач вибирає певну за необхідністю. Меню повинно бути зрозумілим і простим у роботі. Більш менш складна система звичайно має декілька меню. Серед них виділяється головне. Кожний пункт головного меню може мати нове (вкладене) меню. В свою чергу, кожне вкладене меню може також активізувати підлегле йому меню і так далі. Рівень вкладеності меню обмежується тільки логічною структурою задачі, що вирішується. В зв’язку з цим, при розробці програми необхідно задачу розбити на окремі логічні блоки, для кожного з них виділити одну або декілька підпрограм, які будуть виконуватися окремими командами меню.

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

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

 

Г О Л О В Н Е М Е Н Ю 1 - Введення даних 2 - Перегляд та корегування 3 - Діаграма 4 - Вихід

 

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

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

П р и к л а д

Program ExampleMenu;

{Реалізація меню (у глобальному блоку програми): простий запит.}

Uses Crt;

Const

k=4; {кількість пунктів}

NameRegime:Array[1..k] of String[30]=

('1 - Введення даних',

'2 - Перегляд та корегування',

'3 - Діаграма',

'4 - Вихід');

Var i,Num:Byte;

 

Procedure Zastavka;Begin {тіло процедури заставки} End;

Procedure Input; Begin {тіло процедури} End;

Procedure ViewEdit;Begin {тіло процедури} End;

Procedure Diagram; Begin {тіло процедури} End;

 

Begin

Zastavka;

While True do

Begin

ClrScr;

GotoXY(24,4); {курсор у початок заголовку}

Write('ГОЛОВНЕ МЕНЮ');

For i:=1 to 4 do

Begin

GotoXY(22,6+i);Write(NameRegime[i]);

End;

Write(#10#13,'Введіть номер режиму і натисніть <Enter>');

ReadLn(Num);

Case Num of

1:Input;

2:ViewEdit;

3:Diagram;

4:Begin ClrScr;Halt End;

Else {якщо режим вибрано неправильно}

Begin

GotoXY(20,17); Write('Такого режиму немає! ');

Delay(2000);

End;

End;{Case}

End;{While}

End.

 

Вертикальне меню з підсвічуванням певного пункту представляють найбільш розповсюджений спосіб організації меню. За допомогою клавіш керування курсором здійснюється вибір потрібного режиму, а його активізація - клавішею <Enter>. В програмі (підпрограмі) визначається номер вибраного режиму, виконується відповідна підпрограма, після роботи якої можна вибрати наступний режим. Для виходу з меню використовується спеціальна клавіша, найчастіше - <ESC>.

П р и к л а д.

Program ExampleVertMenu;

{Реалізація вертикального меню, яке розміщено у процедурі}

Uses Crt;

Const k=4; {кількість пунктів}

NameRegime:Array[1..k] of String[30]=

(' Введення даних ',

' Перегляд та корегування ',

' Діаграма ',

' Вихід ');

Var Num:Byte;

 

Procedure Zastavka;Begin {тіло процедури заставки} End;

Procedure Input;

Begin

GotoXY(15,15);

Write('Робота процедури Input',#10#13,'Продовження <Enter>');

ReadLn;

End;

 

Procedure ViewEdit;

Begin

GotoXY(15,15);

Write('Робота процедури ViewEdit',#10#13,'Продовження <Enter>');

ReadLn;

End;

 

Procedure Diagram;

Begin

GotoXY(15,15);

Write('Робота процедури Diagram',#10#13,'Продовження <Enter>');

ReadLn

End;

Procedure VertMenu(x,y:Byte;Var n:Byte);

Var

i:Byte;

Code:Char;

Begin

n:=1;Code:=' ';

While Code<>#13 do {#13 - <Enter>}

Begin

For i:=1 to 4 do

Begin

If i=n Then Begin

TextBackGround(White);TextColor(Black);

End


<== попередня лекція | наступна лекція ==>
ЛАБОРАТОРНА РОБОТА 4 | Else Begin


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн