Управление экраном в текстовом режиме

Модуль СRT

Стандартные модули

END.

Implementation

{--------------------------------------------------------------------------------------------------------------}

Procedure MAT_1;{создание матрицы "B", транспонированной к "A"}

var i, j: word;

begin for i:=1 to N do for j:=1 to N do b[i,j]:=a[j,i]

end;

{-------------------------------------------------------------------------------------------------------------}

Procedure MAT_2;{расчет квадратов диагональных элементов}

var i, j: word;

begin for i:=1 to N do b[i]:=a[i,i]*a[i,i]

end;

{---------------------------------------------------------------------------------------------------------------}

Пояснение работы:

В основной программе PR_1 подключается модуль MATR_1 и используются процедуры MAT_1 и MAT_2.

Program PR_1;

Uses MATR_1;

Type MM = M; MM1 = M1;

Var a1,a2,a3: MM; b1,b2: MM1; i,j,n: word;

Begin Writeln('введите размерность матрицы N='); Readln(n);

Randomize;

for i:=1 to n do for j:=1 to n do a1[i,j]:=random(20)+1;

MAT_1(a1, a2, n); MAT_1(a2, a3, n);

MAT_2(a1, b1, n); MAT_2(a2, b2, n) end.

В результате двойного транспонирования исходной матрицы "a1" (из "a1" в "a2", из "a2" в "a3") получается матрица "a3" тождественная "a1" .

Матрицы "b1" и "b2" содержат квадраты диагональных элементов матриц "a1" и "a2". Типы массивов фактических параметров должны соответствовать типам массивов формальных параметров, описанных в модуле MATR_1. Можно использовать имена типов, заданные в интерфейсной части модуля или задавать новые имена типов.

 

Uses CRT;

Табл. 1

Наименование процедуры Параметры процедуры Результат выполнения процедуры
TextMode(N); N=0 N - тип Word (40x25)-CGA- ч. б. Задание текстового режима работы монитора.
N=1 (40x25) -CGA, Экран очищается, курсор устанавливается в позицию 1, 1. Цвета исходные: белые символы на черном экране Наибольшие значения координат Хm:= Lo(WindMax)+1; Ym:= Hi(WindMax)+1;
N=2 (80x25) -EGA, VGA,
N=3 (80x25) цветной
N=N+256 (80x43)-EGA цветной
Ym (80x50)-VGA цветной
N=7 (80x25)-монохромный; (80 колонок х 25 строк );
Window(x1, y1, x2, y2); x1, y1, x2, y2 - тип Byte 1 <= x1 < x2 <= Xm, 1 <= y1 < y2 <= Ym в системе координат экрана. Задание окна на экране. Курсор устанавливается в позицию (1, 1) в системе координат окна. Превышение координат экрана игнорируется.
TextBackGround(N); N - тип Byte, 0 <=N<= 7 Назначение цвета фона.При N>7 N:= N mod 8
Clrscr; Использование процедуры после TextBackGround(N); закрашивает активное окно Очистка активного окна,экрана курсор устанавливается в позицию (1, 1).Закрашивание окна.
TextColor(N); N - тип Byte 0 <=N<= 15 а также при N:= N + 128 вывод мерцающих символов - Назначение цвета символов. При N>15, N:= N mod 16,
GotoXY(x, y); x, y - тип Byte Установка курсора в позицию ( x, y )в системе координат активного окна, экрана.
InsLine;   Вставка пустой строки.
DelLine;   Удаление строки в позиции курсора.
ClrEol;   Стирание символов от позиции курсора до конца строки.

Процедуры управления яркостью символов:

повышенная (HighVideo;),

пониженная (LowVideo;)

нормальная (NormVideo;)

Функции, возвращающие номер текущего столбца (WhereX;) и строки (WhereY;), типа - Byte.

В процедурах TextBackGround(N); и TextColor(N); параметр N назначает цвета:

Табл. 2

Black,черный DarkGray,темно-серый
Blue, синий LightBlue,ярко-синий
Green, зеленый LightGreen,ярко-зеленый
Cyan, голубой LightCyan,ярко-голубой
Red,красный LightRed,ярко-красный
Magenta,фиолетовый LightMagenta,ярко-фиолетовый
Brown,коричневый Yellow,желтый
LightGray, ярко-серый White,белый

 

Мерцание символов можно получить, также задавая: N:= N + 128;

В процедурах TextBackGround(N);иTextColor(N);вместо N можно использовать наименование цвета, например:

N:=1; TextColor(N); {либо} TextColor(Blue);