Пример ввода-вывода
В примере показано использование некоторых средств ввода-вывода текстов в режиме диалога. Пользователю предлагается выбрать цвет; программа в соответствии с описью выдает число предметов этого цвета на складе. Используются файлы ввода и вывода по умолчанию. Для простоты все необходимые конкретизации настройки заданы в одной подпрограмме;
на практике для этого мог бы использоваться самостоятельный пакет.
with TEXT_IO; use TEXT_IO; procedure DIALOGUE is
type COLOR is (WHITE, RED, ORANGE, YELLOW, GREEN, BLUE, BROWN); package COLOR_IO is new ENUMERATION_10(ENUM => COLOR); package NUMBER_IO is new INTEGER_IO(INTEGER);
use COLOR_IO, NUMBER_IO;
INVENTORY : array (COLOR) of INTEGER := (20, 17, 43, 10, 28, 173, 87); CHOICE : COLOR;
procedure ENTER_COLOR (SELECTION : out COLOR) is begin
loop
begin
PUT ("Color selected: "); -— обращение к пользователю GET (SELECTION); -— вводит набранный цвет или возбуждает исключение return;
exception
when DATA_ERROR => PUT("lnvalid color, try again. ");-- пользователь должен набрать новую строчку NEW_LINE(2); -- завершение выполнения оператора блока end;
end loop;
-— повторение оператора блока, пока не будет получен правильнй цвет end;
begin -- операторы процедуры DIALOGUE;
NUMBERJO.DEFAULT_WIDTH := 5; loop
ENTER_COLOR(CHOICE); -- пользователь набирает цвет и -— начинает новую строчку SET_COL(5); PUT(CHOICE); PUT(" items available:"); SET_COL(40); PUT(INVENTORY(CHOICE)); -— ширина по умолчанию равна 5 NEW_LINE; end loop;
end DIALOGUE;
Пример диалога (набранное пользователем выделено курсивом):
ВЫБРАННЫЙ ЦВЕТ: Black
ОШИБОЧНЫЙ ЦВЕТ, ПОВТОРИТЕ НАБОР
ВЫБРАННЫЙ ЦВЕТ: Blue
BLUE ВСЕГО ПРЕДМЕТОВ: 173 ВЫБРАННЫЙ ЦВЕТ: Yellow
YELLOW ВСЕГО ПРЕДМЕТОВ: 10
Пред. | Уровень выше | След. | |
14.6. ВВОД-ВЫВОД НИЗКОГО УРОВНЯ
|
Содержание | Приложение A.
АТРИБУТЫ, ПРЕДОПРЕДЕЛЕННЫЕ В ЯЗЫКЕ |