Язык программирования Форт



         

Упражнения


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

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

    Зафиксируйте ваши ответы на бумаге по мере выполнения упражнений (записи потребуются для упражнения 2).

    1. 5 + 5 + 5
    2. 5 4
    3. (5 + 5) х 5
    4. (5 + 5) / 5
    5. 0.5 х (5 + 5)
    6. 10 / (5 + 5) (наши числа целые ... найдите выход)
    7. (5 + 4) / (5 + 5)
    8. 5х5+5х4+4х4
    9. (5 + 4) х (5 + 4)
    10. (5 + 4)^2

  2. Проделайте примеры из упражнения 1 по-другому, т.е. перестроив числа и операторы.
  3. Раскрывая алгебраическое выражение, нужно начать с выражения в скобках, которое находится в самой глубине этого выражения. Опишите последовательность, в которой вы будете делать вычисление следующего выражения:

    16 х (2 х ((3 + 5) / 4)) = ?

    Например, первой операцией должно быть сложение 3 и 5. Теперь переведите вашу последовательность действий в постфиксную форму и найдите решение на Форте. Вы убедитесь, что постфиксная форма не приводит к неопределенности.

  4. Оцените значение следующих выражений, как вы это делали в упражнении 3.

    1. (2 + (5 х (9 + 3) / 6)) 32 =?
    2. (32 х (2 х (3 х (5 + 6) х 3))) = ?
    3. 2 х ((22 х (5 + 4)) + (2 + 5 х 10))) = ?

  5. Рассмотрим пример из упражнений 1 и 2. Скорее всего, вы решали его следующим образом:

    5 4 + 5 4 + *

    Как вы уже знаете, имеется слово DUP, которое делает копию числа, находящегося на вершине стека, т.е.

    4 3 DUP

    приводит к тому, что в стеке останется

    4 3 3

    Можете ли вы сделать упражнение, используя DUP и вводя только по одному разу числа 5 и 4 ? Можете ли вы использовать слово DUP в остальных упражнениях ? Слова для манипуляций в стеке очень полезны, они упрощают операции, экономя время и память.




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