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



         

Девять фаз цикла программирования - часть 22


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

: ?ПОМОЩЬ ( плата-за-прямой-вызов -- суммарная-плата) ОПЕРАТОР? IF .90 + THEN ;

(Но помните, такая плата относится только к первой минуте.)

Это дает нам упрощенную таблицу, показанную на рисунке 2-8, и большую степень использования арифметических выражений.

Рис.2-8. Таблица решений без изображения вмешательства оператора.

+-----------------|-----------------|-----------------+ | ПОЛНЫЙ ТАРИФ | СРЕДНИЙ ТАРИФ | НИЗКИЙ ТАРИФ | |-----------------|-----------------|-----------------|

ПЛАТА ЗА СОЕДИНЕНИЕ

| | | | 1-я | .30 | .22 | .12 | минута | | | | |-----------------|-----------------|-----------------| Дополн. | | | | минута | .20 | .15 | .09 | | | | |

ПЛЮС ПЛАТА ЗА РАССТОЯНИЕ

| | | | | .12/100миль | .10/100миль | .06/100миль | +-----------------+-----------------+-----------------+

Давайте вернемся к нашему определению "ПО-МИНУТНЫЙ-ТАРИФ":

: ПО-МИНУТНЫЙ-ТАРИФ ( -- плата-за-минуту) ПЛАТА-ЗА-СОЕДИНЕНИЕ ПЛАТА-ЗА-РАССТОЯНИЕ + ;

Углубимся в правила вычисления платы за соединение и платы за расстояние.

Плата за соединение зависит от того, первая идет минута или последующая. Поскольку имеется два вида по-минутной оплаты, быть может, было бы проще переписать ПО-МИНУТНЫЙ-ТАРИФ как два разных слова.

Давайте положим, что мы построим компонент, который получает соответствующие величины из таблицы. Слово 1МИНУТА будет давать плату за первую минуту; +МИНУТЫ - за каждую дополнительную. Работа обоих слов будет зависеть от времени дня для получения полного, среднего или низкого тарифа.

Теперь мы можем определить пару слов для замены одного слова ПО-МИНУТНЫЙ-ТАРИФ:

: ПЕРВАЯ ( -- плата) 1МИНУТА ?ПОМОЩЬ ПЛАТА-ЗА-РАССТОЯНИЕ + ; : ЗА-ДОПОЛНИТЕЛЬНУЮ ( -- плата) +МИНУТЫ ПЛАТА-ЗА-РАССТОЯНИЕ + ;

Каково правило для платы за расстояние? Оно очень простое.


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