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


         

Затем печатать столько из ЕДИНИЧКИ,


Затем печатать столько из ЕДИНИЧКИ, сколько необходимо для суммы числа. Однако если число равно 4, печатать только ЕДИНИЧКУ и ПЯТЕРКУ.
Такое правило работает до цифры 9. В этом случае мы должны напечатать ЕДИНИЧКУ до - чего? До ЕДИНИЧКИ из следующего десятичного уровня (в ряду под ним). Давайте назовем ее ДЕСЯТКОЙ. Полная наша модель тогда будет:
Если цифра - 5 или более, начинать с ПЯТЕРКИ и вычитать пять из числа; иначе - не делать этого. Затем печатать столько ЕДИНИЧЕК, сколько необходимо для суммы числа. Однако если цифра равна 4, печатать только ЕДИНИЧКУ и ПЯТЕРКУ, а если цифра равна 9, печатать только ЕДИНИЧКУ и ДЕСЯТКУ.
Теперь у нас есть русскоязычная версия алгоритма. Однако осталось еще несколько шагов, которые надо сделать прежде, чем мы сможем запустить эту версию на компьютере.
А именно, нам следует уточниться насчет исключений. Нельзя просто сказать
Сделать А, Б и В. `Но` в таких-то и таких-то случаях сделать что-то другое.
поскольку ЭВМ сделает А, Б и В до того, как рассмотрит их получше.
Вместо этого нам следует проверить наличие исключений `до` того, как что-нибудь делать.
------------------------------------------------------------ СОВЕТ При прокладывании алгоритма вначале примите во внимание исключительные случаи. При написании кода вначале опишите исключения. ------------------------------------------------------------
Это дает нам дополнительное представление об общей структуре нашего числопечатающего слова. Слово должно начинаться с проверки исключений на 4/9. В каждом из таких случаев оно должно сработать соответственно. Если ни одно из исключений не появляется, оно должно выполнять "нормальный" алгоритм. На псевдокоде:
: ЦИФРА ( n ) 4-ИЛИ-9? IF особые случаи ELSE обычный случай THEN ;
Опытный Форт-программист не выписывал бы в действительности этот псевдокод, но скорее сформировал бы мысленное представление о способе устранения особых случаев. Менее опытному могли бы оказаться полезными рисунки структуры в виде диаграмм или в коде, как мы сделали это здесь.

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