Зміст p>
Рекурсія. . . . . . . . . . . . . . . . . . . .
. . . . . . p>
Приклад 1. . . . . . . . . . . . . . . . . . .
. . . . . . . p>
Приклад 2. . . . . . . . . . . . . . . . . . .
. . . . . . . p>
Приклад 3. . . . . . . . . . . . . . . . . . .
. . . . . . . p>
Приклад 4. . . . . . . . . . . . . . . . . . .
. . . . . . . p>
Приклад 5. . . . . . . . . . . . . . . . . . . .
. . . . . . p>
Модуль CRT p>
Абревіатура CRT буде розшифровуватися по-русски як «електронно-променеватрубка ». І дійсно, в модулі CRT реалізовані спеціальні процедури іфункції для роботи з текстовою інформацією на дисплеї, що дозволяють:управляти текстовими режимами, організовувати вікна виводу на екран,настроювати кольори символів на екрані, управляти курсором. Крім того, вмодуль включені функції опитування клавіатури і процедури управління вбудованимв ПЕОМ динаміком.
Незважаючи на те, що модуль CRT реалізує шістнадцять процедур і чотирифункції, його розмір становить не більше 3К. Його стандартне місцезнаходження
- Системна бібліотека TURBO.TPL.
Для підключення модуля досить включити його в директиву USES в самомупочатку програми:
USES CRT;
Має сенс завжди підключати модуль CRT, навіть якщо його процедури абофункції не використовуються в програмі. Справа в тому, що зазвичай процес виведенняінформації на дисплей відбувається по такому ланцюжку: p>
Оператор Write - -> функція MS-DOC (виведення рядка) - ->
- -> підпрограма BIOS (базова система вводу-виводу) - -> < br> - -> відеопам'ять монітора. p>
При підключенні модуля CRT з цього ланцюжка виключаються повільна функція
MS-DOS і, як правило, підпрограма БСВВ, внаслідок чого значнопідвищується швидкість виведення інформації на дисплей. Зрозуміло, що чим
«Повільніше» працює комп'ютер, тим помітніше буде ефект від підключеннямодуля CRT. Користувачі ПЕОМ класу PC/XT можуть на власні очі побачити різницю,запустивши по черзі дві програми. p>
Приклад: p>
(Програма використовує стандартний висновок)
PROGRAM Standart Output;
VAR i: Byte; (лічильник циклу) for i: = 1 to 100 do Write ( '* Турбо Паскаль *');< br> WriteLn
END. P>
(Програма використовує засоби модуля CRT)
PROGRAM CRT_Output;
USES CRT;
VAR i: Byte;
BEGIN for i: = 1 to 100 do Write ( '* Турбо Паскаль *');< br> WriteLn
END. P>
Механізм такого прискорення можна проілюструвати наступним чином.
Існують стандартні текстові файли: Input - для введення і Output - длявиведення інформації. До тих пір поки програміст або компілятор не зроблятьбудь-яких дій по їх перепризначення, вони вважаються пов'язаними:
Input - з клавіатурою, а Output - з дисплеєм за допомогою функцій MS-DOS.
Всі стандартні оператори введення-ввивода залишаються пов'язаними з цимифайлами, тобто оператор Write ( 'привіт') еквівалентний оператору Write
(Output, 'привіт'), оператор ReadLn (SomeString) відповідно еквівалентнийоператору ReadLn (Input, SomeString).
При підключенні модуля CRT перед виконанням основного блоку програмивідбувається перепризначення стандартних файлів, як якщо б виконатиоператори: p>
AssingCRT (Input); (Зв'язується системний файл Input з) p>
(фіктивним пристроєм CRT. )
Reset (Input); (відкриття Input для введення через CRT)
AssignCRT (Output); (Тут зв'язується системний файл) p>
(Output з фіктивним пристроєм CRT)
Rewrite (Output); (Файл Output відкривається для виводу. )
Assign (логічний файл, фізичний файл або пристрій), але пов'язуєлогічний файл з фіктивним пристроєм CRT.
Перепризначення на CRT відбувається автоматично, і немає потреби вставлятиоператори в текст програми. Вони виконуються при підключенні модуля CRT.
Якщо ж з яких-небудь причин користувач хоче відновитистандартну зв'язок файлів Input, тобто відмовитися від «послуг» підключеногомодуля CRT, то в його програмі повинні бути наступні оператори: p>
Assign (Input,''); (Файл Input пов'язується зі стандартним
) p>
(пристроєм введення (читання). )
Reset (Input); (Файл Input відкривається для читання. )
Assign (Output,''); (Файл Output пов'язується зі стандартним) p>
(пристроєм виводу (записи). )
Rewrite (Output); (Файл Output відкривається для запису. ) p>
Порожній рядок в операторі Assing означає стандартне зумовленепристрій, як правило пристрій CON.
Крім прискорення виведення інформації на дисплей, підключення модуля CRTвносить ряд доповнень і розширень в роботу стандартних процедур Write,
WriteLn, Read і ReadLn. P>
Висновок спеціальних символів. P>
При підключеному модулі CRT можна виводити на дисплей рядки й символи,містять в собі керуючі коди (коди 0 ... 31). При цьому вони не будутьнадавати управляючі дії, а будуть зображуватися на дисплеї,згідно з таблицею зображень символів на їхню ASCII-коду.
Виняток становлять лише чотири коду: p>
| Код | Керуючий вплив | Назва коду |
| 7 | Викликає один короткий звук динаміка | Bell |
| ($ 07) | | |
| 8 | зрушує поточну позицію курсору вліво | BackSpace |
| ($ 08) | на один символ, якщо є куди | (BS) |
| | Зрушити в межах рядка; в | |
| | Іншому випадку не має ефекту | |
| 10 | Переводить поточне положення курсору на | Line Feed |
| ($ OA) | рядок нижче, не змінюючи поточного стовпця | (LF) |
| 13 | Переводить поточне положення курсору в | Carriage Return |
| ($ OD) | початок рядка | (CR) | p>
Системні змінні модуля CRT. P>
При підключенні модуля CRT ініціалізується ряд його системних констант ізмінних. Константи використовуються як параметри в процедурах модуля CRT.
Системні ж змінні грають роль перемикачів режимів роботимеханізмів введення-виведення, реалізованих у CRT. p>
І константи, і змінні стають глобальними і доступними програмі,використовує модуль CRT, і їх не треба описувати серед іншихідентифікаторів. Так, наприклад, в модулі CRT визначена мінлива
DirectVideo типу Boolean, і її стартове значення дорівнює True. Якщо требазмінити визначений нею режим роботи пристрою CRT, то необхідно вставитив програму рядок p>
USES CRT; (модуль CRT підключений) p>
. . . (Розділ інших описів)
BEGIN p>
DirectVideo: = False; ( p>