i21edu/Mod/ВводПример0.odc

(* Простой ввод чисел. См. замечания внизу после текста модуля *)

МОДУЛЬ i21eduВводПример0;
	ПОДКЛЮЧИТЬ  Вывод := i21eduВывод,  Ввод := i21eduВвод;
	
	ПЕРЕМЕННЫЕ  выс, шир: ЦЕЛЫЕ;  дробь: ВЕЩЕСТВЕННАЯ;
	
НАЧАЛО
	Ввод.Открыть;  (* ищет и открывает "поток ввода"; см. объяснения ниже *)
	УБЕДИТЬСЯ( Ввод.сделано );  (* команды УБЕДИТЬСЯ проверяют, что логическое выражение в скобках равно значению ДА/TRUE, в противном случае аварийно завершают программу, вызывая ТРАП/TRAP;
	в данном случае переменная Ввод.сделано хранит значение, соответствующее успеху последней операции Ввод'а. *)
	Ввод.Цел( выс );	УБЕДИТЬСЯ( Ввод.сделано );
	Ввод.Цел( шир );	УБЕДИТЬСЯ( Ввод.сделано );
	
	(* здесь можно что-нибудь вычислить, например, площадь *)
	
	Ввод.Вещ( дробь );
	
	(* напечатаем введенные числа в журнал: *)
	Вывод.НовСтрока;
	Вывод.Цепочка( "Введенные числа: " );
	Вывод.НовСтрока;
	Вывод.Цел( выс );  Вывод.Цел( шир );  Вывод.Вещ( дробь );
	Вывод.НовСтрока;
	
КОНЕЦ i21eduВводПример0.

Показаны простейшие способы ввода целых и вещественных чисел из потока ввода для школьных нужд.

Простейшие программы вызываются нажатием Ctrl+F9. Но в данном случае, если нажать это просто так, то случится аварийная остановка программы и выскочит ТРАП  аварийное окошко. Пока мы просто принимаем к сведению, что такие окошки означают какую-то ошибку, и просто их закрываем.
Нажмём Ctrl+F9, посмотрим на ТРАП и закроем его.

ТРАП происходит потому, что программа пытается прочесть три числа: два целых и одно вещественное, но не может их найти.
Вот прямо здесь два таких набора по три числа, зеленый и синий:
                                 1  2  3.14
-99 
+2010
0.271828E+1

Выделим мышкой зелёный фрагмент и нажмём Ctrl+F9  теперь ТРАПа нет, а по выдаче в Рабочий журнал видно, что программа прочла именно эти числа.
Повторим те же действия с синим фрагментом.

Подобный фрагмент текста называется поток ввода.
В простых учебных программах потоки ввода ставятся после текста модуля, 
а в программе используется команда Ввод.Открыть. 
Тогда нужный поток ввода выделяют мышкой перед запуском программы с помощью Ctrl+F9.

Правила записи входного потока для учебных программ:
Числа могут разделяться любым числом белых литер  пробелов и символов табуляции, и концов строк (то есть числа можно размещать на разных строках).
Важно: там, где программе требуется целое, должно стоять именно целое, а не вещественное или что-то ещё, иначе случится ТРАП.
Внимание: в записи вещественных чисел можно использовать только латинскую E, но не русскую, иначе результат будет непредсказуемый (возможно, но не обязательно ТРАП).

В нашей программе после каждой операции ввода вставлена проверка её успешности (инструкции УБЕДИТЬСЯ). Поэтому если входной поток сформирован неверно (например, слишком мало чисел или вместо целого числа стоит вещественное и т.п.), то происходят ТРАПы.
Если проверки убрать, то программа сработает и с неправильным потоком ввода, но результат будет непредсказуемый.

Очень важно вставлять в программу проверки успешности ввода как можно чаще, потому что ошибочные данные на входе возникают постоянно, а внутри программы мы уже ничего с этим поделать не можем кроме как проверять и проверять.
А чтобы инструкции УБЕДИТЬСЯ не так мешали читать основную программу, мы их оформляем как комментарии (цвет и курсив), потому что это в значительной степени соответствует их смыслу.