Работа с ZX-Spectrum 1993 г.

Глава 15 - дополнительные сведения об операторах PRINT и INPUT.


ГЛАВА 15

ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ
ОБ ОПЕРАТОРАХ PRINT и INPUT

Краткое содержание: CLS; PRINT-параметры: их отсутствие вообще,
выражение (числовое или строковое);
TAB числовое выражение, AT числовое
выражение; PRINT разделители: "Л
,,м INPUT-параметры, LINE строчная
переменная, свёртка, SCREEN$.
выражения, значение которых используются в операторе PRINT, назы-
ваются PRINT-параметрами, они разделяются запятыми или точкой с запя-
той, называемыми PRINT-разделителями.

В операторе PRINT возможно отсутствие некоторых параметров, а сам
оператор в случае повторения может заменяться на две запятые подряд.
PRINT AT 11,16;"*"
выведет "*" в середине экрана.

AT "строка"."столбец"
этот параметр перемещает позицию вывода в место, определяемое но-
мером строки и столбца. Номер строки меняется от 0 (верхняя) до 21, а но-
мер. столбца от 0 (левый) до 31.

Оператор SCREENS. Его действие противоположно действию операто-
ра PRINT AT..., он использует те же параметры: номер строки и столбца, но
их значения заключаются в скобки.

Оператор SCREENS сообщает Вам какой символ находится на экране в
указанной позиции.
Выполнив:

PRINT SCREENS (11,16)
мы получим "*" выведенную предыдущим оператором.
В качестве возвращаемого значения могут использоваться: алфавитно-
цифровые символы, специальные символы, пробелы. Линии, нарисованные с
помощью операторов: PLOT, DRAW, CIRCLE, определяемые пользователем
символы и графические символы, возвращаются как пустая строка. То же,
когда функция OVER используется для получения комбинированных знаков.

TAB "столбец" Этот параметр перемещает позицию вывода в указан-
ный столбец на той же строке, или переходит на новую строку, если столбец
был последним.

Помните, что компьютер уменьшает номер позиции по модулю 32 (т.е.
делит на 32 и использует остаток). Так "TAB 33" равнозначно "TAB 1".
К примеру:

PRINT TAB 30; 1; TAB 12;"CONTENTS";
AT 3,1;"CHAPTER"; TAB 24;"PAGE"
выведет на экран оглавление для первой страницы книги.
Рассмотрим пример иллюстрирующий уменьшение по модулю 32:
10 FOR N-0 ТО 20
20 PRINT TAB 8»N;N
30 NEXT N

Более наглядный пример получится при замене в 20 строке "8" на "6".
Несколько замечаний:

• 1) в рассмотренных примерах в качестве ограничителей
использовалась ;". Можно использовать "," (или вообще ничего).
При этом необходимо следить за установкой текущей позиции
вывода;

• 2) нельзя использовать для вывода две нижние строки экрана (22,23)
т.к. они используются для получения оператором INPUT данных.
Последняя используемая строка -21;

• 3) можно использовать параметр AT для установки позиции вывода в
то .место, где уже имеется выведенная информация, при этом
каждый новый символ уничтожает старый.

Ещё одним оператором, используемым совместно с PRINT, является
CLS, он производит очистку экрана подобно операторам CLEAR и RUN.

При заполнении всего экрана происходит его свёртка, в этом можно
убедиться проделав:

CLS : FOR N=1 ТО 22: PRINT N: NEXT N
и далее выполнить PRINT 99 некоторое количество разбили вариант с
остановом вывода для просмотра текста. Чтобы убедиться в этом выполним.

CTS : TOR N=1 TO 100: PRINT N: NEXT N

когда экран заполнится, вывод остановится, и в нижней части экрана
появится запрос: 'Scrool7". После просмотра нажмите "У" (да), и вывод про-
должится Возможен отрицательный ответ "N" (нет), "STOP" (SYMBOL
SHIFT и "А") или "BREAK" (SPACE) В последнем случае компьютер оста^
новит программу и выдаст сообщение: 'D BREAK - CONT repeats...".

Оператор INPUT ^гпользуется для ввода различных знэчений.

Например:

INPUT "How old are You ?AGE

Компьютер выведет на экран (в нижней части) вопрос; в ответ на кото-
рый Вы должны ввести свой возраст.

Фактически INPUT содержит те же параметры, что и PRINT, так "How
old are You ?" и AGE оба являются параметрами INPUi. Однако существуют
некоторые отличия:

• 1) дополнительный параметр - переменная, значение которой Вы
должны присвоить (в нашем примере AGE); *

• 2) Вы можете выводить значение переменной, как часть запроса,
заключив её для этого в скобки.

Пример:

LET my ageeINT (RND *1T)0): INPUT ("I am";mv age;".");
"How old are You ?",your age ^

Значение "my age" выдаёт компьютер, значение "your age" вводите Вы
сами.

По мере выдачи операторов INPUT поисходит свёртка экрана. Рас-
смотрим пример использования AT в INPUT операторе:

10 INPUT "This is line Г;А$;АТ 0;"This is line 0",A$;

AT 2,0fThis is line 2",A$; AT l,0"This is still line Iм,A$

Когда "This is line 2" будет выведено, нижние строки станут сдвигаться
вверх, освобождая место, но нумерация останется прежней.

Выполним:

10 FOR N=0 ТО 19: PRINT AT N,0;N;: NEXT N
20 INPUT AT 0,0;A$;AT 1,0;A$;AT 2,0;A$;AT 3,0;A$;

AT 4,0;A$;AT 5,0;A$;

Когда информация начнет смещаться в область действия операторов
PRINT, произойдет свертка экрана.

Еще одним параметром оператора INPUT является LINE, он предназна-
чен для ввода строчных переменных. Рассмотрим пример.
INPUT LINE А$

Если ввести какую-либо строчную переменную без строковых кавычек,
то её значение будет присвоено А$. Заметим, что мы не можем использо-
вать параметр LINE для числовых переменных.

Управляющие символы CHRS 22 и CHR.S 23 выполняют функции, подоб-
ные параметрам TAB и AT. Их преимущество состоит в том, что можно
использовать имена переменных, а для TAB и AT это невозможно. Эти управ-
ляющие символы обрабатываются как числа.

Аналогом AT является управляющий символ CHR$ 22. Первое значение
определяет строку, второе столбец.

PRINT CHR$ 22+CHR$ 1+CHR$ С;

то же, что и

PRINT АГ 1,С;

Как значения параметров рассматриваются только CHRS С (CHRS 22 не
учитывается). '

Аналогом TAB является управляющий символ CHRS 23. Значения зада-
ваемых им параметров находятся в пределах от 0 до 65535
PRINT CHR$ 23+CHR$ A+CHR$ В
то же, что и

PRINT TAB А+256*В
Вы можете использовать РОКЕ для остановки компьютера.Запрашиваю-
щего свертку, выполнив:

РОКЕ 23692,255

Компьютер станет сворачивать экран без запроса 255 раз, прежде чем
запросит свертку. Так, например, запустите:
10 FOR N=0 ТО 10000
20 PRINT N: POKE 23692,255
30 NEXT N

и следите, сколько свертокчсделает компьютер.

Стартуем следующую программу, проверяющую знание таблицы умно-
жения:

10 LET М$=""

20 LET A-INT (RND *12)+1: LET B=INT (RND *12) + 1
30 INPUT (M$)""What is ";(A);" * ' ;<B>? ";C
100 IF C=A*B THEN LET M$«" Right GOTO 20
110 LET M$=" Wrong. Try again. GOTO 30
Можно несколько изменить программу так, чтобы, не зная правильного
ответа, можно было узнать ею. К примеру, компьютер спрашивает "Сколько
будет 2*3 ?". Не зная ответа. Вы вводите 2 * 3 и получаете его. Для этого
замените в 30 строке "С" на "С$", в 100хтроке на "VAL С$" и дополнитель-
но введите строку:

40 IF C$STR$ VAL С$ THEN LET MS-" Type if properly
as number.": GO TO 20
для исключения подсказки, поменяйте "С$" в строке 30 на "LINE С$"




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Презентация - Презентация демо версии игры Reversy of Brain Crash.
Обратная связь - контакты редакции.
Games - Описание игры Homer Simpson в России.
IS-DOS - "Эликон" вернулся? (фирма распротронитель компонентов для спектрума)
ZX-Preview - Пoлoжение cпектрумoвcких дел в Барнауле.

В этот день...   27 апреля