Способ мышления-Форт



         

Глава 8. Минимизация структур управления - часть 16


Кроме того, трюки трудны для чтения, когда те предположения, на которых они основаны, не понятны или не объяснены. Что до замены условных операторов ANDами, то, когда эта технология становится частью словаря программиста, код может стать даже `более` читабельным. В случае применения трюка, специфичного для конкретного приложения, например, порядка, в котором данные должны размещаться в таблице, в листинге должны быть ясно задокументированы приемы, примененные в трюке.

------------------------------------------------------------ СОВЕТ Используйте MIN и MAX в качестве ограничителей. ------------------------------------------------------------

Предположим, мы хотим уменьшить содержимое переменной ЧИСЛО, но не хотим, чтобы ее значение становилось меньше нуля:

-1 ЧИСЛО +! ЧИСЛО @ -1 = IF 0 ЧИСЛО ! THEN

Это проще записать как

ЧИСЛО @ 1- 0 MAX ЧИСЛО !

В этом случае условный оператор заключен в слове MAX.

ИСПОЛЬЗОВАНИЕ ТАБЛИЦ РЕШЕНИЙ.

------------------------------------------------------------ СОВЕТ Используйте таблицы решений. ------------------------------------------------------------

Мы предложили их во второй главе. Таблица решений - это структура, содержащая либо данные ("таблица данных"), либо адреса функций ("таблица функций"), сгруппированные в соответствии с любым числом измерений. Каждое из измерений представляет все возможные, взаимно исключающие состояния определенного аспекта проблемы. На пересечении "правильных" положений по каждому из измерений лежит нужный элемент: кусок данных или функция, которую надо выполнить. Очевидно, что таблица решений для случая, когда задача живет в нескольких измерениях - это вариант лучший, нежели структура управления. - 256 -

ТАБЛИЦА ДАННЫХ С ОДНИМ ИЗМЕРЕНИЕМ.

Вот пример простой одноразмерной таблицы данных. В нашей задаче имеется флаг по имени 'ШОССЕ?, который находится в "истине", когда мы имеем в виду загородные шоссе, и во "лжи", когда это - улицы города. Давайте построим слово ОГРАНИЧЕНИЕ-СКОРОСТИ, возвращающее скоростной предел, зависящий от текущего состояния.


Содержание  Назад  Вперед