Лекция: Оператор ввода
Базовая форма оператора ввода позволяет пользователю ввести с клавиатуры значения одной или нескольких переменных. Оператор ввода с клавиатуры может быть записан в одной из следующих форм:
read(список_переменных);
readln(список_переменных);
Имена переменных в списке перечисляются через запятую. Здесь и далее список данных, передаваемых любому оператору (а позднее и написанным нами подпрограммам), мы будем называть параметрами. Таким образом, параметрами оператора (точней, стандартной процедуры) read являются имена переменных, описанных ранее в разделе var.
По достижении оператора ввода выполнение программы останавливается и ожидается ввод данных пользователем. Вводимые значения переменных разделяются пробелом или переводом строки (нажатием Enter). После ввода значений всех переменных из списка работа программы продолжается со следующего оператора.
Оператор readln отличается от read только тем, что все переменные должны быть введены в одну строку экрана, клавиша Enter нажимается один раз по окончании ввода. Форма записи readln используется, в основном, для ввода строк текста, для ввода числовых значений лучше использовать read, т. к. в этом случае пользователь может вводить данные более свободно (и в одну, и в несколько строк экрана).
Если пользователь вводит данные недопустимого типа (например, строку текста вместо числа), то выводится системное сообщение об ошибке и работа программы прерывается.
В качестве примера организуем ввод исходных данных для решения квадратного уравнения:
var a,b,c:real;
...
read (a,b,c);
Для задания значений a=1, b=4, c=2.5 на экране вводится:
1_4_2.5
Здесь и далее "_" означает пробел, а "" — нажатие Enter. Другой вариант ввода с клавиатуры:
2.5
Третий вариант:
4_2.5
Во всех вариантах пробелов может быть и несколько, лишние будут проигнорированы оператором.
Как правило, перед оператором ввода ставится оператор вывода, служащий приглашением к вводу и поясняющий пользователю, что именно следует сделать (см. п. 4.3).