- •Лабораторна робота 13. Робота з множинними типами даних . . . 76 Лабораторна робота 14. Створення й обробка файлів . . . . . . . . . . 79
- •Порядок виконання лабораторних робіт
- •Типи даних
- •Оператор привласнювання
- •Оператори уводу-виводу
- •Завдання до лабораторної роботи
- •Умовний оператор
- •Завдання до лабораторної роботи
- •Завдання до лабораторної роботи
- •Лабораторна робота 4 нестандартні й обмежені типи даних. Оператор варіанта
- •Нестандартні типи даних
- •Обмежені типи даних
- •Оператор вибору варіанта
- •Оператор циклу for
- •Приклади виконання завдання лабораторної роботи
- •Завдання до лабораторної роботи
- •Лабораторна робота 5 регулярні типи даних. Селективна обробка масивів
- •Регулярні типи даних
- •Приклади виконання завдання лабораторної роботи
- •Завдання до лабораторної роботи
- •Завдання до лабораторної роботи
- •Лабораторна робота 7 вкладені цикли. Обробка двовимірних масивів
- •Загальні вказівки
- •Завдання до лабораторної роботи
- •Лабораторна робота 8 процедури і функції
- •Процедури
- •Функції
- •Завдання до лабораторної роботи
- •Лабораторна робота 9 обробка символьних даних
- •Символьний тип даних
- •Завдання до лабораторної роботи
- •Лабораторна робота 10 обробка строкових даних
- •Строковий тип даних
- •Процедури
- •Функції
- •Завдання до лабораторної роботи
- •Лабораторна робота 11 комбіновані типи даних
- •Приклади виконання завдання лабораторної роботи
- •Завдання до лабораторної роботи
- •Лабораторна робота 12 файли і файлові типи даних
- •Файловий тип даних
- •Процедури обробки файлів
- •Завдання до лабораторної роботи
- •Лабораторна робота 13 робота з множинними типами даних
- •Завдання до лабораторної роботи
- •Лабораторна робота 14 створення й оброблення файлів
- •Файли з типом
- •Процедури для роботи з файлами з типом
- •Функції для обробки файлів з типом
- •Завдання до лабораторної роботи
- •Лабораторна робота 15 коректування файлів
- •Завдання до лабораторної роботи
- •Процедури роботи з екраном
- •Процедури установлення текстових режимів I управління кольором
- •Процедури управління курсором
- •Процедура установлення текстових вікон
- •Завдання до лабораторної роботи
- •Лабораторна робота 17 перевірка достовірності даних
- •Вибір критеріїв достовірності
- •Типові алгоритми уводу I перевірки достовірності даних
- •Завдання до лабораторної роботи
- •Лабораторна робота 18 графічні засоби мови паскаль
- •Графічні процедури мови Паскаль
- •Завдання до лабораторної роботи
- •Порядок виконання лабораторної роботи
- •Розрахунок масштабу I зрушення графіка
- •Процедура для креслення графіка
- •Завдання до лабораторної роботи
- •Порядок виконання роботи
- •Список рекомендованої літератури
- •Додаток а
Процедури роботи з екраном
Монохромні та кольорові дисплеї ПЕОМ можуть працювати в декількох текстових режимах. Крім того, символи можуть відрізнятися інтенсивністю свічення, а також періодично її змінювати, тобто мерехтіти. Для реалізації цих можливостей використовуються наступні стандартні процедури, що знаходяться в модулі CRT.
Процедури установлення текстових режимів I управління кольором
TEXTMODE(I:WORD) служить для установлення текстового режиму роботи екрана. Виконання процедури спричиняє очищення екрана i активізує чорно-білий чи кольоровий текстовий режим (табл. 25). По замовченню для монохромного дисплея прийнятий режим 2 (25х80), для кольорового - 3 (25х80).
Таблиця 25
Тип монітора |
Значення параметра I |
Кількість |
|
Рядків |
Символів |
||
Монохромний |
0 |
25 |
40 |
Монохромний |
2 |
25 |
80 |
Кольоровий |
1 |
25 |
40 |
Кольоровий |
3 |
25 |
80 |
TEXTCOLOR(I:BYTE) влаштовує колір символів. Для кольорових дисплеїв параметр I може набувати значення у діапазоні 0...15. Для чорно-білих дисплеїв можливі тільки два кольори: білий i чорний. I набуває значення відповідно 15 чи 0. Доданням константи BLINK до значення I виводимі символи будуть мерехтіти. Наприклад, TEXTCOLOR(5 + BLINK).
TEXTBACKGROUND(I:BYTE) влаштовує колір фону, тобто колір області, яка безпосередньо оточує символ. Для кольорових дисплеїв параметр I може набувати значення в діапазоні 0...7. Значення I для чорно-білого дисплея 0 чи 7.
HIGHVIDEO влаштовує режим підвищеної яскравості символів, LOWVIDEO - режим нормальної яскравості, NORMVIDEO відбудовує той кольоровий режим (колір фону, символів i мерехтіння), що був встановлений на час початку роботи програми.
Процедури управління курсором
Під час використання текстового режиму існує можливість управління курсором: переміщати курсор в будь-яке місце на екрані дисплея без руйнування інформації, яка буде виведена на екран, i визначати місцеположення курсору. Для цього використовуються процедура GOTOXY i функції WHEREX i WHEREY.
GOTOXY(X,Y:WORD) переміщує курсор в точку екрана з координатами X (стовпець) i Y (рядок). Наприклад, виконання процедури
GOTOXY(20,10);
умістить курсор в 20-й стовпець 10-го рядка.
WHEREX вертає X-координату (номер стовпця) поточної позиції курсору. Результат має тип WORD.
WHEREY вертає Y-координату (номер рядка) поточної позиції курсору. Результат має тип WORD.
Наприклад, курсор знаходиться в 10-му стовпці 23-го рядка (координати – 10, 23). Функція WHEREX вертає значення 10, функція WHEREY поверне значення 23.
Процедура установлення текстових вікон
Текстове вікно – це обмежена область екрана, що виконує ті ж функції, що й повний екран. Максимальний розмір вікна – повний екран, мінімальний – два стовпця в одному рядку. Вікно можна організувати в будь-якому місці екрана за допомогою процедури WINDOW, яка описується так:
WINDOW(X1, Y1, X2, Y2),
де X1,Y1 – координати верхнього лівого кута вікна; X2,Y2 – координати нижнього правого кута. Наприклад,
WINDOW(1,1,80,25) {максимальне вікно};
WINDOW(20,7,60,16) {вікно в центрі екрана}.
На екрані може знаходитися кілька вікон, але одночасно активним може бути тільки одне вікно. Із моменту організації вікна процедурою WINDOW воно веде себе як i повний екран. При роботі з вікнами треба враховувати, що координати задаються щодо активного вікна, а не повного екрана.
Приклади виконання завдання лабораторної роботи
Приклад 38. Організувати увід i вивід елементів масиву А(8) в текстові вікна.
Програма має вид:
PROGRAM PR38;
USES CRT;
TYPE MAS=ARRAY[1..8] OF INTEGER;
VAR A:MAS; I,J,K:INTEGER;C:CHAR;
BEGIN
CLRSCR; { ОЧИЩЕННЯ ЕКРАНА }
TEXTMODE(2);
TEXTBACKGROUND(7);
TEXTCOLOR(0);
K:=0;
FOR I:=0 TO 1 DO
FOR J:=0 TO 3 DO BEGIN
WINDOW(5+35*I,1+6*J,35+35*I,5+6*J);
CLRSCR; { ОЧИЩЕННЯ ВІКНА }
WRITELN;
WRITE(‘ УВЕДИ ЧИСЛО : ‘);
K:=K+1; READLN(A[K]);WRITELN;
WRITELN(‘ A(‘,K:1,’)=’,A[K]:3);
DELAY(500) END;
WINDOW(20,25,50,25);
TEXTCOLOR(0+BLINK);
CLRSCR;
WRITE( ‘ натисни клавішу << ENTER >>’);
C:=READKEY
END.
Приклад 39. Знайти добуток елементів масиву Х(15), значення яких належать інтервалу (10,30). Організувати увід вхідних даних, результатів розрахунку, а також інформації про розробника програми в текстові вікна.
Програма має вид:
PROGRAM PR39;
USES CRT;
TYPE MAS=ARRAY[1..15] OF REAL;
VAR X:MAS; I:INTEGER; P:REAL;
C:CHAR;
BEGIN
CLRSCR; TEXTMODE(2);
TEXTBACKGROUND(7); TEXTCOLOR(0);
WINDOW(20,2,60,6);CLRSCR;
GOTOXY(5,2);
WRITELN(‘ПРОГРАМА РОЗРАХУНКУ ДОБУТКУ ‘);
GOTOXY(5,4);
WRITELN(‘ РОЗРОБИВ СТ. ІВАНОВ I. В. ‘);
DELAY(2000);
WINDOW(13,8,67,19); CLRSCR;
GOTOXY(20,2);WRITELN(‘ВВЕДИ 15 ЧИСЕЛ ‘);
GOTOXY(3,4);
FOR I:=1 TO 15 DO READ(X[I]);
GOTOXY(20,6);
WRITELN(‘ВВЕДЕНИЙ МАСИВ ‘); WRITELN;
FOR I:=1 TO 15 DO BEGIN
WRITE(‘ X(‘,I:2,’)=’,X[I]:5:1);
IF I MOD 4 =0 THEN WRITELN END;
P:=1;
FOR I:=1 TO 15 DO
IF (X[I]>10) AND (X[I]<30) THEN P:=P*X[I];
DELAY(2000);
WINDOW(20,21,60,23); CLRSCR;
GOTOXY(10,2);
WRITELN(‘ДОБУТОК = ‘,P:8:1);
C:=READKEY;
END.