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



         

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


Это плата за сотню миль, помноженная на расстояние (в сотнях миль). Договоримся, что мы можем составить слово ПЛАТА-ЗА-100МИЛЬ, которое будет выдавать эту величину из таблицы:

: ПЛАТА-ЗА-РАССТОЯНИЕ ( -- плата) #МИЛИ @ ПЛАТА-ЗА-100МИЛЬ * ;

Наконец, если нам известно общее число минут в вызове, можно вычислить общую плату за вызов:

: СУММА ( -- суммарная-плата) ПЕРВАЯ ( плата за 1-ю минуту) ( #минут) 1- ( дополнительные минуты) ЗА-ДОПОЛНИТЕЛЬНУЮ * ( умножить на их стоимость) + ; ( сложить вместе)

Мы выразили правила для данной задачи через комбинацию простых таблиц и логических вычислений.

(Некоторые замечания в конце этого примера: мы написали нечто, очень похожее на действительную программу на Форте. Но это - всего-навсего псевдокод. Мы остерегались манипуляций со стеком, предполагая, что величины как-то попадают на стек в тех местах, в которых это показано комментариями. Мы также использовали чрезвычайно длинные имена, поскольку они должны быть удобочитаемы для заказчика. В реальной программе предпочтительны короткие имена - см. главу 5.)

Мы развернем законченную программу для этого примера в главе 8.

ОПРЕДЕЛЕНИЕ СТРУКТУР ДАННЫХ

По завершению определения интерфейсов, а иногда и правил, порой возникает необходимость также определить и некоторые структуры данных. Мы будем рассматривать не здесь вопросы реализации таких структур, но лишь описание их концептуальной модели.

Если, например, Вы автоматизируете библиотечную картотеку, то основная часть Ваших усилий будет касаться разработки логической структуры данных. Вам нужно решить, какую информацию следует хранить для каждой книги: название, имя автора, тему и т.д. Эти "атрибуты" будут составлять "сущность" (набор связанных записей) под названием КНИГИ. Далее Вам надо уточнить, какие другие структуры данных потребуются пользователям для эффективного поиска в списке КНИГИ. Вам может понадобиться другая сущность, состоящая из имен авторов в алфавитном порядке вместе с "указателями атрибутов" тех книг, которые написал каждый автор.




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