Ввод с консоли

Ввод и вывод: консоль

Ввод/вывод. Операторы.

ЛЕКЦИЯ 3

 

 

 

Как мы уже говорили, любой алгоритм должен быть результативным. В общем случае это означает, что он должен сообщать результат своей работы потребителю: пользователю-человеку или другой программе (например, программе управления принтером).

 

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

 

 

Для того чтобы получить данные, вводимые пользователем вручную (то есть с консоли), применяются команды

 

read(<список_ввода>) и readln(<список_ввода>).

 

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

 

Список ввода - это последовательность имен переменных, разделенных запятыми. Например, при помощи команды

 

readln(k,x,c,s); {k:byte; x:real; c:char; s:string}

 

программа может получить с клавиатуры данные сразу для четырех переменных, относящихся к различным типам данных.

 

Вводимые значения необходимо разделять пробелами, а завершать ввод - нажатием клавиши Enter. Ввод данных заканчивается в тот момент, когда последняя переменная из списка ввода получила свое значение. Следовательно, вводя данные при помощи приведенной выше команды, вы можете нажать Enter четыре раза - после каждой из вводимых переменных, - либо же только один раз, предварительно введя все четыре переменные в одну строчку (обязательно нужно разделить их пробелами).

 

Типы вводимых значений должны совпадать с типами указанных переменных, иначе возникает ошибка. Поэтому нужно внимательно следить за правильностью вводимых данных.

 

Вообще, вводить с клавиатуры можно только данные базовых типов (за исключением логического).

 

Если же программе все-таки необходимо получить с консоли значение для boolean-величины, придется действовать более хитро: вводить оговоренный символ, а уже на его основе присваивать логической переменной соответствующее значение. Например:

 

repeat

writeln('Согласны ли Вы с этим утверждением? y - да, n - нет');

readln(c); {c:char}

case c of

'y': b:= true;

'n': b:= false;

else writeln('Ошибка!');

end;

until (c='n')or(c='y');

 

Второе исключение: строки, хотя они и не являются базовым типом, вводить тоже разрешается. Признаком окончания ввода строки является нажатие клавиши Enter, поэтому все следующие за нею переменные необходимо вводить с новой строчки.