Начальный курс программирования на языке Форт


УПРАЖНЕНИЯ


8.1. а) Создайте два слови с именами ИСПЕКИ-ПИРОЖОЖ. и СЪЕШЬ-ПИРОЖОК. Первое слово увеличивает число имеющихся пирожков на единицу, второе уменьшает эго число на единицу и благодарит вас за пирожок. Но если пирожков в наличии нет, оно выводит: «Какой пирожок?». (Начните в предположении, что число пирожков равно нулю.)СЪЕШЬ-ПИРОЖОК Какой пирожок? ИСПЕКИ-ПИРОЖОК ok

СЪЕШЬ-ПИРОЖОК Спасибо! ok

6) Напишите слово с именем ЗАМОРОЗЬ-ПИРОЖКИ, которое берет все имеющиеся в наличии пирожки и добавляет их к числу пирожков, хранящихся в морозильной камере. Помните, что замороженные пирожки есть нельзя.ИСПЕКИ-ПИРОЖОК ИСПЕКИ-ПИРОЖОК ЗАМОРОЗЬ-ПИРОЖКИ ок ПИРОЖКИ ? 0 ok

ЗАМОРОЖЕННЫЕ-ПИРОЖКИ ? 2 ok

8.2. Определите слово с именем .BASE, которое выводит текущее значение переменной BASE в десятичной системе счисления. Проверьте это слово при первом же изменении переменной BASE на любом значении, отличном от 10, (Это не так просто, как может показаться.)DECIMAL .BASE 10 ok

HEX .BASE 16 ok

8.3. Определите слово для форматизации чисел с именем М., которое выводит на печать число двойной длины с десятичной точкой. Положение десятичной точки внутри числа подвижно и зависит от значения некоторой переменной

Если в вашей системе имеется для указания положения десятичной точки только что введенного числа переменная DPL или какая-либо другая, воспользуйтесь ею, например гак:2000.0О M. 2000.00 ok

В противном случае определите переменную с именем ДРОБНЫЕ и загружайте туда значения вручную-2 ДРОБНЫЕ ! 2000.00 M. 2000.00 ok

(В том случае, когда вводимое число не содержит десятичной точки, DPL вырабатывает — I и в вершину стека помещается целое число одинарной длины. Для повышения надежности учтите при создании М. эту ситуацию.)

8.4. Для того чтобы иметь сведения о наличии цветных карандашей в вашем учреждении, создайте массив, каждая ячейка которого содержала бы счетчик карандашей одного конкретного цвета. Определите набор слов, такой, что выражение типа КРАСНЫЕ КАРАНДАШИ

доставляет адрес ячейки, содержащей число красных карандашей и т. д., а затем присвойте этим переменным значения, чтобы набор карандашей был следующим: 23 КРАСНЫЕ КАРАНДАШИ 15 ГОЛУБЫЕ КАРАНДАШИ 12 ЗЕЛЕНЫЕ КАРАНДАШИ 0 ЖЕЛТЫЕ КАРАНДАШИ

8.5. Создайте массив значений и напечатайте гистограмму (см. упражнения к гл. 5), где для каждого значения выводилась бы строка символов *. Для начала сформируйте массив из 10 элементов. Присвойте всем элементам массива значения в диапазоне от нуля до 10, после чего определите слово РИСУЙ, которое будет выводить строку, соответствующую каждому значению. На каждой строке должен выводиться номер элемента, а после него -- число звездочек, равное содержимому данного элемента.

8.6. В данном упражнении мы используем переменные одинарной длины как массивы флагов, а константы — как битовые маски. Начните с определения констант, каждая из которых представляет отдельную битовую позицию (из четырех младших разрядов 16-разрядного значения): ЖЕНЩИНА СЕМЕЙНЫЙ РАБОТАЕТ ГОРОДСКОЙ

Теперь определите следующие константы, каждая из которых несет нули во всех битах МУЖЧИНА ОДИНОКИЙ HE-РАБОТАЕТ НЕ-ГОРОДСКОЙ

Далее определите в виде переменных два имени, например. VARIABLE ВАСЯ VARIABLE МАША

Впоследствии в этих переменных будут содержаться атрибуты наших персонажей.

Затем определите слово с именем ОПИСАНИЯ, которое выбирает из стека значения четырех констант из восьми нами заведенных плюс адрес поля, отведенного для одного из наших персонажей: ЖЕНШИНА ОДИНОКИЙ РАБОТАЕТ ГОРОДСКОЙ МАША ОПИСАНИЯ

Слово ОПИСАНИЯ заносит в область, отведенную персонажу, битовый шаблон, соответствующий атрибутам персонажа

Наконец, определите слово СВЕДЕНИЯ, которое выбирало бы из стека имя персонажа и по битовому шаблону последнего выводило бы сведения о нем, например: МАША СВЕДЕНИЯ ЖЕНЩИНА ОДИНОКИЙ РАБОТАЕТ ГОРОДСКОЙ ok

8.7. Создайте программу, которая высвечивала бы поле для игры в «крестики-нолики» и давала возможность двум игрокам задавать свои ходы с помощью клавиатуры. Так, выражение 4 X! помещает X в клетку 4 (счет клеток ведется с единицы) и выводит на экран картинку:

После этого выражение 3 0! помещает 0 в клетку 3 и выводит следующую картинку.

Для того чтобы помнить содержимое игрового поля, примените массив байтов, где значение 1 соответствовало бы X, значение -1 --  0, а 0 -- пустой клетке.

Так как некоторые компьютеры не позволяют программно подводить курсор к определенному месту экрана, мы будем просто заново генерировать поле для игры с помощью CR, SPACE и т. д.

(Замечание: до тех пор, пока мы не приведем дополнительные сведения о словарях, избегайте обозначения чего-либо посредством «X», так как ваше имя может вступить в конфликт с редакторским X )

Про ошибки на сайте обязательно сообщите .




Начало  Назад  Вперед