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



         

Глава 7. Операторы сравнения и ветвления - часть 5


Все введенные вами определения снабдите префиксом NEW. 2. Пусть числа а, b, с и d находятся в стеке в указанном порядке. Напишите последовательность слов, которая выдавал бы флаг истина тогда, и только тогда, когда выполняются следующие условия: а) а=b И c=d б) а=b ИЛИ с=d в) a=b И c<>d r) a=b ИЛИ c<>d д) a<>b И c<>d e) а=b ИЛИ c=d, но не одновременно ж) а>b И c b > с . 3. Используя слово MOD, дайте определение слова ?REM=0 (остаток равен 0?), которое возвращает флаг истина тогда, и только тогда, когда второе число в стеке делится без остатка на число, находящееся на вершине стека. 4. Дайте определение слова ?REM, которое будет возвращать в стек флаг ложь при условиях упражнения 3 и истина в противном случае. 5. Определите слово ?OPPOSITE (?противоположные), которое возвращало бы флаг истина тогда, и только тогда, когда оба числа по модулю были бы равны, но имели противоположные знаки. Определите слово NEW=, используя только О= и арифметический оператор. 6. Определите слово D= , пользуясь только арифметическим оператором и словом 0=. 7. Пользуясь соглашениями Форт-79, определите слово СОМР, которое будет возвращать -1, если число отрицательное, 0, если оно равно 0, и 1, если оно положительное, не применяя конструкции IF.

Операторы IF, ELSE и THEN

Операторы сравнения мало полезны без других операторов, которые реагируют на значение флага, возвращаемого в стек операторами сравнения. Наиболее важным из наших условных операторов является слово IF, используемое в конструкции IF...ELSE...THEN, рассмотренной в начале этой главы. Другие важные слова, реагирующие на флаг проверки условия, это UNTIL и WHILE, применяемые в конструкциях BEGIN-UNTIL и BEGIN...WHILE...REPEAT; эти конструкции позволяют зацикливать программу до тех пор, пока значение флага есть истина или ложь. Слово BEGIN и связанные с ним слова мы рассмотрим более внимательно в гл. 8.

Еще два условных оператора, имеющихся во многих версиях Форта, это ?DUP и ABORT", к ним мы еще вернемся в этом разделе.


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