6.2. ТАБЛИЧНОЕ ЗАДАНИЕ
281
объединения не было предусмотрено, и поэтому при объединении одинако-
вые типы сливались (что уже в те времена было грубой концептуальной не-
доработкой).
§ 6.2. ТАБЛИЧНОЕ ЗАДАНИЕ РАЗВЕТВЛЕНИЙ
И ОПЕРАТОР ВЫБОРА ДЕЙКСТРЫ
Булевы выражения,условные операторы с
elif
,оператор выбора —все это
примеры приемов программирования, которые оказались удачными с точки
зрения качества (надежности)программ. Поэтому они стали стандартизован-
ными и, как следствие, обрели языковые формы. Но это далеко не единствен-
ные примеры даже для задания разветвлений в программах. Рассмотрим еще
два важных случая.
6.2.1. Таблицы решений
Сегодня этот метод анализа условий, кажется, уже прочно забыт. Тем не
менее, он весьма поучителен как с точки зрения обсуждения понятий языков
программирования, так и в практическом плане. Таблицы решений — это
способ раздельного задания (обдумывания, анализа и т. п.) составных усло-
вий и действий, связанных с вариантами. Достоинством их является то, что
значительно облегчается учет всех возможных вариантов разветвлений. При
этом забота о последовательности проверок и об алгоритмизации вычисли-
тельного процесса относится к реализации данного метода, и программист
не обязан об этом думать.
В общем случае таблица решений (см. табл. 6.1) состоит из двух частей:
условий и действий. Каждое из условий представлено перечнем значений
так, чтобы в колонках таблицы оказались представлены все сочетания зна-
чений всех условий. В перечень значений чаще всего входят T — истина
и F — ложь; допускается также указание, что значение некоторого условия
для выбора действия безразлично, это отмечается знаком −. Часть действия
представлена перечнем наименований действий, а в колонках под значения-
ми условий указывается метка (Х), если действие при данном наборе значе-
ний должно быть выполнено.
Что дает программисту использование таблиц решений? Во-первых, ра-
ботая с данными и действиями, организованными таким способом, можно
гарантировать, что будут рассмотрены все возможные сочетания условий.
При желании можно написать программу, которая проверяет это свойство
автоматически. Во-вторых, таблицы решений дают метод декомпозиции за-