Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб.работы.doc
Скачиваний:
9
Добавлен:
28.03.2016
Размер:
1.78 Mб
Скачать

Процедури управління курсором

Під час використання текстового режиму існує можливість управління курсором: переміщати курсор в будь-яке місце на екрані дисплея без руйнування інформації, яка буде виведена на екран, 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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]