Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
05.06.2018
Размер:
34.3 Кб
Скачать

Билет №20. Простые операторы управления вводом-выводом в текстовом режиме.

Кроме ввода и вывода потока символов более удобный пользовательский интерфейс может быть обеспечен при использовании ввода-вывода в текстовом режиме экрана. Экранный ввод-вывод рассматривает экран как прямоугольное окно стандартного размера 25х80 (25 строк по 80 символов в строке). Все позиции символов характеризуются своими координатами: верхний левый угол имеет координаты 1,1; правый нижний угол - координаты 80, 25.

В Турбо Паскале имеются средства управления вводом с клавиатуры, управления курсором, вывода на экран, управления цветом фона экрана и выводимых символов, яркостью символов и ряд других функций (в том числе управления звуковым генератором). Кроме того, предусмотрены средства установки на экране любых окон и обеспечения ввода-вывода текстовой информации в окна.

Все эти средства сосредоточены в стандартном модуле Турбо Паскаля - модуле CRT. Мы рассмотрим здесь лишь простейшие средства экранного ввода-вывода, которые будем использовать уже в простых программах, отложив более подробное изучение модуля CRT на лекции, посвященные модулям Турбо Паскаля.

Для возможности доступа к средствам управления экранным вводом-выводом в программе на Турбо Паскале необходимо первой строкой раздела описаний программы записать ссылку на использование модуля CRT в форме:

uses CRT;

где: uses - ключевое слово, означающее подключение модуля к программе.

Установка цвета фона, цвета символов и очистка экрана.

Модуль CRT допускает использовать в текстовом режиме экрана 16 цветов, задаваемых стандартными константами цветов от black до white (это имена констант, а сами константы являются целыми числами от 0 до 15, так black соответствует константе 0, а white - константе 15). Эти константы представлены следующей таблицей:

Для цвета фона можно использовать первые 8 цветов, а для цвета символов - все 16 цветов. Эти цвета устанавливаются следующими операторами:

TextBackground( < цвет> );

TextColor(< цвет> );

где: < цвет> - константа цвета.

Следует иметь в виду, что установки цвета всегда относятся к последующим операторам ввода и вывода, и не имеют обратного действия (на ранее выполненные операторы).

Часто для установки цвета фона на экране используют оператор очистки экрана. Его действие эквивалентно заполнению всего экрана пробелами (с предварительно установленным цветом фона) и установке курсора в верхний левый угол экрана (с координатами 1,1). Этот оператор очистки экрана имеет название ClrScr. Оператор стирает имеющуюся ранее информацию и подготавливает вывод в верхнюю строку экрана (в отличие от потокового вывода, выполняемого всегда в нижнюю строку экрана). Ввод и вывод при этом могут выполняться теми же операторами read, readln, wrire, writeln.

Установка окон на текстовом экране.

Для установки окна предусмотрен оператор

window (x1,y1,x2,y2);

где: x1,y1,x2,y2 - координаты левого верхнего и правого нижнего угла окна.

При установке окна просто соответствующая площадь экрана резервируется для последующего ввода-вывода. Никакого стирания ранее выведенной информации не происходит, не происходит также и обрамления окна рамками (для этого необходимо использовать программу обрамления, которая не предусмотрена в составе средств CRT).

После установки окна все последующие операторы ввода-вывода, в том числе и операторы CRT относятся только к этому окну до тех пор, пока не будет открыто новое окно (сам оператор window относится к полному экрану). Полный экран можно рассматривать как окно, устанавливаемое оператором window (1,1,80,25).

Замечание Если в операторе window указать координаты окна вне экрана, выполнение оператора window будет проигнорировано без какого либо системного сообщения!

Задача 4.2.6(20)

program alex20;

type mas=array[1..3,1..4]of integer;

var a,b:mas;

i,j,minj:integer;

procedure proc(x:mas;k,m:integer;var l:integer);

var i,j,n:integer;

min:real;

sr:array[1..4]of real;

begin

for j:=1 to m do

begin

sr[j]:=0;

for i:=1 to k do

sr[j]:=sr[j]+x[i,j];

sr[j]:=sr[j]/m;

end;

min:=sr[1];

l:=1;

for i:=2 to m do

if sr[i]<min then begin

min:=sr[i];

l:=i;

end;

end;

begin

for i:=1 to 2 do

for j:=1 to 4 do

read(a[i,j]);

writeln;

for i:=1 to 3 do

for j:=1 to 3 do

read(b[i,j]);

proc(a,2,4,minj);

writeln('v 1 matrice ',minj,' stolbec');

proc(b,3,3,minj);

writeln('vo 2 matrice ',minj,' stolbec');

readln;

readln;

end.

Соседние файлы в папке 1 семестр сессия