Диалекты бейсика для ZX Spectrum 1992 г.

Beta Basic - Управление программой.


УПРАВЛЕНИЕ ПРОГРАММОЙ_

IF...THEN...ELSE, GO TO ONf GO SUB ONr ON

В Spectrum-Бейсике ветвление программы реализуется с помощью конструкции IF...THEN и операторов GO ТО и GO SUB. В Beta Basic, благодаря дополнению оператора IF...THEN ключевым словом ELSE, появилась возможность в большинстве случаев вообще отказаться от операторов перехода. Расширенная версия условного оператора записывается так:

IF <условие> THEN [:] <6лок операторов 1> [:]

[ELSE [:] <6лок операторов 2>]

В зависимости от того, истинно или ложно <условие>, выполнится, соответственно, либо <блок операторов 1>, либо альтернативный <блок операторов 2>.

Вся конструкция должна быть записана в одну строку.

Каждый из блоков операторов внутри себя может содержать еще конструкции IF...THEN...ELSE, причем глубина таких вложений неог-раничена. В этом случае, если на каком-либо уровне вложения <блок операторов 1> не предполагает наличия альтернативного <бло-ка операторов 2>, то на этот уровень нужно принудительно ввести «пустой» ELSE. Это необходимо сделать во избежание неоднозначности в определении, к какому именно из IF...THEN относится данный ELSE:

100 IF L>15 THEN:

IF J<L THEN LET K=L*J: ELSE:

ELSE LET K=0

Кроме конструкции IF...THEN...ELSE, Beta Basic располагает и другими операторами, организующими разного рода ветвления программ.

GO ТО ON <числовая леременная>;<список адресов перехода>

Параметр <список адресов перехода > представляет собой перечень номеров строк, записанных через запятую, например:

10 GO ТО ON J;70,150,345

Значение первого параметра задает порядковый номер адреса, по которому нужно передать управление. Таким образом, приведенная программная строка равносильна фрагменту:

10 IF J=1 THEN GO TO 70 20 IF J=2 THEN GO TO 150 30 IF J=3 THEN GO TO 345

<Список адресов перехода> может иметь произвольную длину. Если значение <числовой переменной> превысит количество элементов в списке, оператор будет проигнорирован, управление передастся следующей за ним строке. При отрицательном значении <числовой переменной> знак «минус» отбрасывается.

GO SUB ON <числовая переменная>;<список адресов перехода>

Этот оператор отличается от предыдущего тем же, чем обычный GO SUB отличается от GO ТО.

Обе инструкции дают возможность компактно организовывать ветвление программы и просто незаменимы при создании разного рода меню.

Локальные переходы в пределах одной строки позволяет осуществлять оператор варианта

ON <числовая переменная):< оператор) :[<оператор>: ...]

Из всего списка операторов, расположенных за ON, будет выполнен только один — тот, чей порядковый номер в строке задан значением параметра <числовая переменная). После этого управление будет передано следующей за конструкцией ON строке программы (разумеется, если не произошло принудительного перехода или вызова подпрограммы93).

Основное достоинство оператора ON — его универсальность. К примеру, с его помощью можно организовать многовариантное переопределение переменных (используя способность оператора LET обслуживать список переменных произвольной длины):

100 INPUT J

110 ON J: LET A=484, 8=50, C=88: LET A=242, 8=12, C=82: LET A=212, 8=85, C=06

120 PRINT А, В, С

Интересным свойством будет обладать приведенная в примере конструкция, если ее поместить в цикл FOR...NEXT, в котором переменная цикла и параметр оператора ON совпадают. Одним словом, спектр применения оператора ON ограничен лишь фантазией программиста.




СОДЕРЖАНИЕ:
  1. Laser Basic - Вывод спрайтов на экран; Вывод на экран части спрайта; Перенос атрибутов; Преобразование окна экрана; Наборы переменных; Перемещение спрайтов; Наложение спрайтов; Копирование изображения с экрана в спрайт; Преобразование спрайтов; Скроллинг пейзажа; Изменение размеров области спрайт-файла; Вспомогательные графические операторы и функции; Определение столкновений спрайтов; Сервисные операторы и функции; Процедуры; Загрузка и запись программ.


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

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



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

Похожие статьи:
Глюки - О глюке в STS v5.1
ZX-Review - история группы Delirium Tremens.
Новый проект - MEGADEMO к дню рождения Спектрума.
#z80 - рассказ о канале #z80
Байки - Как служится в ебливoй арmии.

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