Функция read предназначена для ввода с клавиатуры значений переменных (исходных данных). В общем, виде оператор выглядит следующим образом:
read (Переменная1, Переменная2, ... ПеременнаяN);
где <ПеременнаяN> – имя переменной, значение которой должно быть введено с клавиатуры во время выполнения программы.
Например,
read(a);
read(NewValue, MyKol);
При выполнении оператора read происходит следующее:
1. Программа приостанавливает свою работу и ждет, пока на клавиатуре будут набраны нужные данные и нажата клавиша <Enter>.
2. После нажатия клавиши <Enter> введенное значение присваивается переменной, имя которой указано в операторе.
Например, в результате выполнения оператора
read( temperature ) ;
и ввода с клавиатуры 21, переменная temperature примет значение 21.
Один оператор read позволяет получить значения нескольких переменных. При этом вводимые числа должны быть набраны в одной строке и разделены пробелами.
Например, если тип переменных а, b и с – real, то выполнение оператора read(a,b,c); и ввод с клавиатуры строки: 4.5 23 0.17
будут иметь тот же результат, что и следующие операторы:
а := 4.5; b := 23.0; с := 0.17.
Если в строке набрано больше чисел, чем задано переменных в функции read, то оставшаяся часть строки будет обработана следующим оператором read.
Например, в результате выполнения:
read(a, b); read(c);
и ввода с клавиатуры строки
10 25 18
переменные получат следующие значения: a:=10, b:=25. Оператор read(c); присвоит переменной c значение 18.
Функция readln отличается от read тем, что после выделения очередного числа из введенной с клавиатуры строки и присваивания его последней переменной из списка оператора readln, оставшаяся часть строки теряется, и следующий оператор read или readln будет требовать нового ввода.
В результате выполнения примера аналогичного предыдущему:
readln(А,В); read(С);
и ввода с клавиатуры строки
10 25 18
переменные получат следующие значения: a:=10, b:=25. После чего программа будет ожидать ввода нового числа, чтобы присвоить его переменной c.
Перед каждым оператором read или readln желательно располагать подсказку пользователю: какие данные ожидает от него программа. Это можно осуществить с помощью вывода соответствующего текста на экран функциями write или writeln, рассмотренными в следующем разделе.
Если тип данных, вводимых с клавиатуры, не соответствует или не может быть приведен к типу переменных, имена которых указаны в параметрах функций read или readln, то программа аварийно завершает работу (операторы, следующие за read или readln, не выполняются), и на экран выводится сообщение об ошибке.