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


Глава 4. Детализированная разработка/решение задачи - часть 20


Для данной задачи вычисление результата - самое простое решение. Предполагая, что оно также адекватно (скорость работы некритична), принимаем, что расчет - это наилучшее из решений.

Задача преобразования углов в синусы и косинусы может быть решена более просто (по крайней мере, в терминах строк текста программы и объема объектного кода) с помощью вычисления ответов, нежели при применении структур данных. Однако для многих быстрых приложений лучше извлекать ответ из таблицы, хранимой в памяти. В этом случае простейшим `адекватным` решением является применение таблицы.

Во второй главе мы представили задачу вычисления телефонных тарифов. Эти последние казались близки к произвольным, поэтому мы спроектированли структуру данных:

`Полный тариф` `Средний тариф` `Низкий тариф` ---------------------------------------------------------- Первая мин. .30 .22 .12 ---------------------------------------------------------- Дополнит. мин. .12 .10 .06 ----------------------------------------------------------

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

В третьей главе мы спроектировали интерпретатор клавиш для нашего Крошечного редактора с использование таблицы решений:

`Клавиша` `Не-вставка` `Вставка` Ctrl-D СТЕРЕТЬ ВЫКЛ-ВСТАВКУ Ctrl-I ВКЛ-ВСТАВКУ ВЫКЛ-ВСТАВКУ Забой НАЗАД ВСТАВИТЬ<

и т.д.

Мы могли бы достигнуть того же результата с помощью логики:

CASE CNTRL-D OF 'ВСТАВКА @ IF ВЫКЛ-ВСТАВКУ ELSE СТЕРЕТЬ THEN ENDOF CNTRL-I OF 'ВСТАВКА @ IF ВЫКЛ-ВСТАВКУ ELSE ВКЛ-ВСТАВКУ THEN ENDOF ЗАБОЙ OF 'ВСТАВКА @ IF ВСТАВКА< ELSE НАЗАД THEN ENDOF ENDCASE

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

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


Начало  Назад  Вперед



Книжный магазин