Что значит writeln. Тема: Ввод - вывод. Операторы Read (Readln), Write (Writeln). Простейшие линейные программы

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

То есть эти процедуры являются “антиподами” - выполняют противоположные им действия.

Процедуры Read и ReadLn выполняют схожие действия. Основное отличие между ними следующее: процедура ReadLn после завершения ввода выполняет перевод строки (а в случае с файлами читает файл строка за строкой). А процедура Read читает данные подряд - без перевода строки.

ПРИМЕЧАНИЕ:

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

Синтаксис для вывода на консоль:

procedure Read(Args: Arguments);

Синтаксис для вывода в файл:

procedure Read(var F: Text; Args: Arguments);

Аргументами (Arguments ) могут быть разных . Если используется несколько переменных, то они перечисляются через запятую. Например:

Var x, y: integer; z: real; str: string; begin WriteLn("Введите три целых числа через пробел:"); ReadLn(x, y, z); WriteLn("Вы ввели: ", x, ", ", y, ", ", z:0:2); ReadLn(str); WriteLn(str + str); ReadLn; end.

Как уже было сказано, при вводе с консоли эти переменные могут быть разных типов. Но, в отличие от процедур Write/WriteLn использовать не допускается (и это логично))).

ВАЖНО!
При вводе данных следует учитывать, что в случае, если введённое пользователем значение имеет тип, отличный от типа переменной, в которую вводится это значение, то возникнет ошибка времени выполнения. Если, например, в указанном выше примере пользователь в качестве первого числа введёт вещественное значение (такое как 3.14), то программа завершится аварийно, так как переменная х имеет целый тип.

При чтении из файла можно работать как с типизированными , так и с текстовыми файлами.

Если F (см. синтаксис) - это типизированный файл, то переменные, передаваемые как параметры (Args) должны иметь такой же тип, какой указан для файла F . Нетипизированные файлы использовать не допускается. Если параметр F не указан, то предполагается, что чтение выполняется из стандартного устройства ввода.

Если файл F имеет тип Text , то переменные должны иметь тип , или .

Если при чтении файла нет данных, доступных для чтения, то в переменную F возвращается пустое значение (0 - для , пустая строка - для строковых).

В случае использования процедуры ReadLn, то есть при построковом чтении данных, конец строки обозначается определённой последовательностью символов (какими именно - зависит от операционной системы, для DOS/Windows это два символа - #10 и #13).

Маркер конца строки не является частью прочитанной строки и игнорируется.

Если во время выполнения процедуры Read/ReadLn происходит ошибка, то генерируется ошибка времени выполнения. Такое поведение не всегда приемлемо (например, во время чтения файла). Поэтому в каких-то случаях генерацию ошибок отключают. Сделать это можно с помощью .

ПРИМЕЧАНИЕ:

В разных отладочных и учебных программах процедуру ReadLn часто используют для того, чтобы консольное приложение не закрылось автоматически после выполнения. Для этого в конце программы просто записывают (как в примере выше):

То есть просто имя процедуры без параметров. В этом случае программа будет ожидать нажатия клавиши ENTER. Следовательно, программа не завершится, пока не будет нажата клавиша ENTER, и это позволит увидеть результат работы программы. Разумеется, в операционной системе

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

Program number3; uses crt; var n:integer; begin clrscr; write (‘Введите число с клавиатуры:’); readln (n); writeln (‘Вы ввели число ’,n); readln end.

В строке №3 мы записываем служебное слово Var. Оно используется для объявления переменных. Переменные – это различные значения, числа или слова, которые могут меняться в процессе выполнения программы. Когда мы вводим с клавиатуры числа или буквы, они записываются в переменые. После слова Var через пробел указываем идентификатор переменной (т.е ее название, которое мы придумываем сами). Переменные – это не служебные слова, программист задает их сам. В данном случае мы задали одну переменную «n» и в дальнейшем мы будем использовать только эту переменную. После записи переменной через двоеточие указывается тип данных. Существует несколько типов данных Один из них - Integer (целый). Он дает понять программе, что наша переменная «n» может быть только целым числом, лежащим в диапазоне от -32768 до 32767. Использование различных типов данных зависит от конкретных потребностей программиста при написании программы. Самое главное на данном этапе понять, что если в своей программе вы собираетесь использовать какое-то число, то для него нужно указать переменную (в нашем случае «n») и тип данных (в нашем случае Integer).

В строке №7 мы записываем оператор для ввода данных с клавиатуры Readln. Этот оператор вызывает встроенную процедуру ввода данных и на этом этапе программа останавливается и начинает ждать ввода данных. Мы уже использовали этот оператор для задержки экрана. В данной программе после оператора Readln в круглых скобках указывается наша переменная «n». То число, которое мы будем вводить с клавиатуры, запишется в эту переменную. Соответственно, это число должно соответствовать параметрам переменной, т.е. должно быть целым, лежащим в диапазоне -32768 до 32767. После того как программа дойдет до 7-ой строки, она выведет на экран сообщение «Введите число с клавиатуры: » и будет ждать. На этом этапе мы должны ввести какое-то число и нажать Enter.

Строка №8. Здесь мы записываем оператор вывода на экран Writeln. Он будет выводить сообщение «Вы ввели число», а также будет выводить значение нашей переменной «n» (т.е. то значение, которое мы введем с клавиатуры). Заметьте, что в строке №8 перед переменной «n» мы ставим запятую, а сама переменная не заключается в апострофы.

Теперь наберем программу в Паскале.

Запускаем (Сtrl+F9). Набираем число, например, 5 и нажимаем Enter.

Так же, как и для операторов вывода информации, операторы read и reeadln являются операторами обращения к встроенным процедурам ввода информации.

Операторы read (считывать) и readln, который происходит от двух английских слов read (считывать) и line (строка) используются в программах для ввода информации в память компьютера и "считывания " значений в переменную.

Рассмотрим работу этих операторов и процедур ввода информации.

В нашей программе есть процедура readln(a). При выполнении программы, встретив оператор readln, компьютер приостановит работу в ожидании ввода информации. После того, как мы введем с клавиатуры значение переменной a - 16, компьютер присвоит это значение переменной a, т.е. отправит его в ячейку памяти с именем a и продолжит выполнение программы. Этот процесс мы называем "считыванием " значения в переменную.

Итак, процедуры read и readln "считывают" значения переменных и присваивают их тем переменным, которые записаны в них.

Таких переменных может быть несколько, тогда они записываются в этих операторах через запятую, например:

read(a, b, c, n, g, j, i), readln(e,f, k, p, d) и т.п.

Чем же отличается работа процедур read и readln?

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

Например:

В программе: write("Введите значения a и b "); read(a, b);

write("Ввод информации в одну строку");

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

На экране:

Введите значения a и b 2 3 Ввод информации в одну строку

В программе:

writeln("Введите значения a, b и c); readln(a, b, c);

writeln("Ввод и вывод информации с начала строки");

На экране:

Введите значения a, b и c

Ввод и вывод информации с начала строки

Арифметические операции с целыми числами. Переменные целого типа. Вещественный тип

В языке Паскаль используются целые числа, к которым относятся все натуральные числа, образовавшиеся в процессе подсчета предметов: 1, 2, 3, 4, 5, 6, ...; отрицательные числа: ..., -6, -5, -4, -3, -2, -1 и число ноль: 0. Целые числа образуют следующий ряд:

6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, ...

В Паскале допускается диапазон целых чисел от -32768 до 32767.

Переменные , принимающие целые значения, записываются в разделе описаний с указанием типа integer (целый).

Например: var a, b, c, a1, b34, nomb: integer;

Значения другого типа этим переменным в одной программе присвоить нельзя.

Арифметические операции с целыми числами и переменными целого типа в языке Паскаль

Знак "_" означает пробел. Пробелы между именами переменных и названием операции (div) - обязательны. (Происходит от английского division - деление).

Остаток от деления a на b. a_mod_b

Read (процедура)

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

Объявление

Типизированные файлы

Procedure Read(F , V1 [, V2,...,Vn ]);

Текстовые файлы

Procedure Read([ Var F: Text; ] V1 [, V2,...,Vn ]);

Режим

Windows, Real, Protected

Замечания

Для строковых переменных:

Read считывает все символы до (но не включая) следующего маркера конца строки или пока Eof (F) станет равным True. Read не переходит к следующей строке после чтения. Если полученная в результате строка длиннее, чем максимальная длина строковой переменной, то она усекается. После первого Read, каждые последующие вызовы Read будут видеть маркер конца строки и возвращать строку нулевой длины.

Используйте несколько обращений к ReadLn, чтобы считать несколько строковых значений.

Когда включена опция Extended Syntax , процедура Read может считывать строки с нулевым окончанием в нуль-основанные массивы символов.

Для переменных типа Integer или Real :

Read будет пропускать любые пробелы, метки табуляции или маркеры конца строки, предшествующие числовой строке. Если числовая строка не соответствует ожидаемому формату, происходит ошибка ввода/вывода, иначе переменной присваивается полученное значение. Следующий Read начнется с пробела, знака табуляции или маркера конца строки, которые завершали числовую строку.

См. также

Пример

uses Crt, Dos;

var
F : Text;
Ch : Char ;

begin
{ Получаем имя файла из командной строки }
Assign(F, ParamStr (1 ));
Reset (F);
while not EOF (F) do
begin
Read (F, Ch);
Write (Ch); { Выводим содержимое файла на экран }
end ;
end .

Похожие статьи