Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Паскаль. Процедуры ввода-вывода






Для ввода и вывода числовой и текстовой информации в языке Паскаль предусмотрены следующие процедуры:

ввод:
Read([ f ], P1, P2, P3,..., Pn) или ReadLn([ f ], P1, P2, P3,..., Pn)

вывод:
Write([ f ], P1, P2, P3,..., Pn) или WriteLn([ f ], P1, P2, P3,..., Pn)

где f - файловая переменная, указывающая логическое имя файла; P1, P2,... Pn - список ввода-вывода.

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

Если имя файловой переменной опущено, то считается, что ввод сопряжен с логическим файлом Input (под ним подразумевается клавиатура с " эхом" ввода на экране), а вывод - с логическим файлом Output (что соответствует выводу на экран). Имена Input и Output являются предопределенными в системной библиотеке (модуле System).

Таким образом, вызов процедуры Read(a, b) полностью эквивалентен вызову Read(Input, a, b), а вызов процедуры Write(b, c) - вызову Write(Output, b, c).

Процедуры ввода информации Read/ReadLn.

Синтаксис вызова:
Read([ f ], P1, P2, P3,..., Pn) или ReadLn([ f ], P1, P2, P3,..., Pn)

P1, P2,..., Pn - имена переменных, значения которых будут считаны (введены) из файла f. Тип переменных при вводе из текстового файла (в том числе с клавиатуры) может быть только целым, вещественным, символьным, строковым или совместимым с ними. Сложные структурированные типы (такие, как массив или запись) могут быть введены только по элементам.

Например:

VAR
i: Word;
l: LongInt;
r: Real;
m: array[1..50] of Byte;
s: String;
BEGIN
{ ЧИТАЮТСЯ С КЛАВИАТУРЫ }
Read(i, l); { два целых числа }
Read(l, r, s); { целое, вещественное число и строка }
for i: =1 to 50 do Read(m[i]); { ввод массива }
END.

Когда вводятся числовые значения, два числа считаются разделенными, если между ними есть хотя бы один пробел, или символ(ы) табуляции (#9), или символ(ы) конца строки (#13). Так, при выполнении процедуры Read(i, l) (см. выше) можно ввести значения с клавиатуры несколькими способами:

156 23 [Enter]

или

156 [Enter] 23 [Enter]

При вводе с клавиатуры ввод всегда должен завершаться нажатием клавиши Enter, ибо именно она заставляет программу принять введенные буквы или цифры.

При вводе с клавиатуры особой разницы между Read и ReadLn нет. Для текстовых файлов процедура ReadLn (Read Line) считывает значения в текущей строке и переводит позицию на начало следующей строки, даже если в текущей строке остались непрочитанные данные.

Процедуры вывода информации Write/WriteLn.

Синтаксис вызова:
Write([ f ], P1, P2, P3,..., Pn) или WriteLn([ f ], P1, P2, P3,..., Pn)

Эти процедуры выводят список значений P1, P2,..., Pn в текстовый файл f. Если файл не указан, то вывод осуществляется на экран. Значения, как и при вводе, могут иметь лишь целые, вещественные, символьные и строковые типы, а также производные от них. Структурированные данные (например, массив) должны вводится по элементам. Выводить можно также значение логического типа Boolean, например

CONST
tr: Boolean = True;
fl: Boolean = False;
BEGIN
Write(tr, '...', fl);
END.

Процедура Write напечатает на экране: TRUE... FALSE.

Процедура Write выводит данные в текущую строку и не закрывает ее, т.е. следующие данные запишутся в ту же строку. Формально во внешнем файле (на диске) размер строки не ограничен. Исключение составляет вывод на экран. Если выводимый текст " уперся" в правую границу экрана, то он на этом месте разрывается и продолжается с начала следующей строки.

Процедура WriteLn (Write Line) выводит строку данных и закрывает ее: помещает в конец строки символ конца строки #13 (точнее два символа: #10 - конец строки и #13 - " перевод каретки"). При выводе на экран курсор автоматически устанавливается в первую позицию следующей строки.

Список вывода процедуры Write может содержать константы, переменные, выражения, вызовы функций - лишь бы они имели соответствующие типы и были разделены запятыми:

Write(2+5);
Write('Результаты: ', a+b/sin(x));
Write('Элемент А[', i, ', ', j, ']: ', A[i, j]);


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал