Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика - лекции.doc
Скачиваний:
18
Добавлен:
07.11.2018
Размер:
512.51 Кб
Скачать

Модуль crt

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

Для ввода и вывода данных используются стандартные процедуры ввода и вывода Read и Write, но возможности этих процедур недостаточны для создания хорошего интерфейса программы.

Процедурыи функции, существенно увеличивающие возможности текстового ввода/вывода сосредоточены в модуле CRT. Для использования нижеперечисленных процедур в начале своей программы напишите:

Uses

CRT;

Ввод данных с клавиатуры. Более подробно о cтандартных операторах ввода.

Чтение К значений исходных данных и присваивание этих значений переменным А1, А2, ..., АК.

Read(A1,A2,...AK);{Ввод всего списка данных}

Чтение К значений исходных данных, пропуск остальных значений до начала следующей строки, присваивание считанных значений переменным А1, А2, ..., АК.

ReadLn(A1,A2,...AK);{Ввод списка до нажатия Enter}

ReadLn; {Ожидание ввода Enter}

При вводе исходных данных происходит преобразование из внешней формы представления во внутреннюю, определяемую типом переменных. Переменные, образующие список ввода, могут принадлежать либо к целому, либо к действительному, либо к символьному типам. Чтение исходных данных логического типа в языке ПАСКАЛЬ недопустимо.

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

Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter.

Функции crt.

Функция KeyPressed:Boolean. Возвращает True если в буфере клавиатуры есть хотя бы один символ.

(Пояснить организацию асинхронного буферизованного ввода с клавиатуры).

Функкция ReadKey:Char. Считывает символ из буфера клавиатуры, если буфер пуст, ждет нажатия клавиши. Если нажата одна из функциональных клавиш (клавиши управления курсором, клавиши F1-F12), то вводится двухбайтная последовательность: сначала #0, затем код клавиши.

Например:

Курсор вверх - #0, #72

Курсор влево - #0, #75

Курсор вправо- #0, #77

Курсор вниз - #0, #80

Esc - #0, #27

Program Demo1;

Uses CRT;

var

C : Char;

begin

. . .

if KeyPressrd then C := ReadKey;

. . .

end;

Данный фрагмент демонстрирует возможность вводить информацию с клавиатуры не останавливая выполнение программы.

Текстовый вывод на экран.

Более подробно о стандартных функциях вывода.

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

Write(A); {Вывод значения переменной}

WriteLn(A); {Вывод значения переменной с

последующим переводом строки}

Write(A1,A2,...AK); {Вывод списка }

WriteLn; {Перевод строки}

Оператор вывода позволяет задать ширину поля вывода для каждого элемента списка вывода. В этом случае элемент списка вывода имеет вид А:К, где А - выражение или строка, К - выражение либо константа целого типа. Если выводимое значение занимает в поле вывода меньше позиций, чем К, то перед этим значением располагаются пробелы. Если выводимое значение не помещается в ширину поля К, то для этого значения будет отведено необходимое количество позиций.

Для величин действительного типа элемент списка вывода может иметь вид А:К:М, где А - переменная или выражение действительного типа, К - ширина поля вывода, М - число цифр дробной части выводимого значения. К и М - выражения или константы целого типа. В этом случае действительные значения выводятся в форме десятичного числа с фиксированной точкой.

Write(X:4); {Задание ширины поля вывода}

Write(Y:4:2); {Задание ширины поля вывода}

В качестве элемента списка вывода кроме имен переменных могут использоваться выражения и строки.

Write('Hello'); {Вывод строки текста}

Write('Значение переменной Х равно ',X); {Вывод строки текста и значения переменной}

Write('Ошибка !!'#7#10#13'Нажмите Enter'); {Вывод специальных кодов}

В операторе вывода можно использовать арифметические, логические операции, функции.

Write('Сумма = ',a+b+c);

Кроме символов, вводимых с клавиатуры, можно использовать для вывода символы псевдографики. Диапазон кодов 176..223.

Write(#195#196#196#196#180);