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



         

Глава 5. Ввод и вывод - часть 20


Слово KEY удобно для того, чтобы выяснить код ASCII нажатой клавиши [ попробуйте ввести KEY. ]; но используется оно чаще всего для ввода одной литеры ответа на вопрос, тогда в зависимости от значения кода клавиши программа будет выполнять какие-либо действия. В MMSFORTH имеется родственное слову KEY слово и ?KEY. Оно обычно используется в цикле. Если ни одна из клавиш не нажата при очередном исполнении ?KEY в цикле, в стек кладется 0, если клавиша нажата, то в стек кладется значение кода ASCII этой клавиши. Таким образом программа выполняет какую-то задачу, пока не будет нажата клавиша, с этого момента программа будет выполнять другую задачу, в зависимости от кода клавиши. Как KEY, так и ?KEY позволяют осуществить выбор вариантов исполнения программы, но в то время как KEY ожидает ввода, слово ?KEY позволяет продолжать исполнение программы, пока не будет нажата клавиша. Очевидно, слово KEY может быть использовано в цикле для ввода строк символов, но более удобным для этой цели является слово EXPECT. Для него необходимо, чтобы в стеке был адрес, начиная с которого будет запоминаться символьная строка, и вторым в стеке - число символов, которое "ожидается". Когда встречается слово EXPECT, исполнение программы приостанавливается либо до ввода ожидаемого числа символов, либо до нажатия клавиши . Испытайте действие приведенного ниже слова : : WHATWORD ." Какое Слово ? " PAD 10 EXPECT ;

Когда вы введете WHATWORD, исполнение программы приостановится после печати на экране вопроса "What is the word?" "(Какое слово?). Теперь введите 10 букв, и, когда вы введете десятую букву, исполнение программы продолжится. Теперь введите PAD 10 TYPE и вы увидите те 10 букв, которые были записаны, начиная с адреса PAD. А теперь введите с клавиатуры 5 символов и после этого нажмите , затем введите 10 PAD TYPE. Вы увидите 5 напечатанных вами символов. То, что будет происходить далее, зависит от версии Форта, с которой вы работаете. Во всяком случае, прекращает действие слова EXPECT, т.е.


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