Реализация базовых функций интерфейса по вводу и выводу данных в Паскале

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

В каждом языке для выполнения этих действий есть отдельные процедуры. В Паскале это операторы read и readln (ввод данных) и write и writeln (вывод). Окончание ln в них означает, что после выполнения их действий происходит перевод указателя на новую строку. Без него все действия продолжаются в текущей строке.

Ввод данных. Данные в программу можно ввести с клавиатуры или файла. Стандартным устройством ввода (по умолчанию) является клавиатура. В MS-DOS реализуется асинхронный буферизованный ввод с клавиатуры, при котором вначале. коды всех клавиш, нажимаемых пользователем, попадают в накопитель, называемый буфером клавиатуры. Стандартная его длина рассчитана на хранение до 16 кодов символов и если программа долго не производит выборку из него, а пользователь нажимает клавиши, буфер может оказаться переполненным, что приводит к потере «лишних» кодов.

Чтение из буфера обеспечивается процедурами read и readln,а также функцией ReadKeyиз библиотеки CRT. Оператор ReadLn(A1,A2,...AK)производит считывание К значений исходных данных (список ввода), вводимых с клавиатуры и отображаемых на экране монитора (это называют эхо-повтором). Компиллятор присваивает эти значения переменным А1, А2, ..., АК, переводя их из внешней формы представления во внутреннюю, определяемую типом переменных (который должен быть определен в программе заранее).

Процедура ввода при помощи операторов read и readln может быть использована для ввода одиночных величин следующих типов:

- целый,

- вещественный,

- символьный.

Чтение исходных данных логического типа в языке Паскаль недопустимо.

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

Вывод данных.Вывести данные можно на экран монитора, в файл, на принтер. По умолчанию вывод производится на монитор. Оператор WriteLn(A1,A2,...AK)производит вывод значений параметров А1, А2,...,АК, составляющих список вывода, в строку экрана посимвольно, начиная с текущей позиции курсора с последующим переходом к началу следующей экранной строки. При выводе значения величин переводятся из внутреннего представления во внешнее, предназначенное для пользователя. Если процедура WriteLn используется без параметров, то она просто выполняет переход к началу следующей строки.

В качестве параметров списка вывода А1, А2,...,АК могут выступать все стандартныетипыодиночных величин (целые, логические, символьные, вещественные), а также строки и выражения. Строка выдается в виде последовательности подряд стоящих символов. В выражение подставляются значения всех входящих констант и переменных и выводится получаемый результат.

Форма представления значений в поле вывода соответствует типу переменных и выражений: величины целого типа выводятся как целые десятичные числа, действительного типа - как действительные десятичные числа с десятичным порядком, символьного типа и строки - в виде символов, логического типа - в виде логических констант TRUE и FALSE.

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

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

var A, B: Real;

n, i:Integer;

R, S: Boolean;

chT, chV, chU, chW: Char;