МАТЕМАТИЧЕСКИЕ ФУНКЦИИ_
COSEQ, SINE(), RNDMQ, AND(), OR(), XORQ, MOD()
Язык программирования Beta Basic вводит
несколько новых математических функций и среди них две
тригонометрические (аналоги уже существующих в Spectrum-Бейсике):
COSE(< число >) SiNE(< число >)
Появление этих дубликатов оправдано тем, что
они работают в пять раз быстрее своих предшественников, правда, с
несколько меньшей точностью (вследствие четырехбайтового представления
обрабатываемых ими чисел), что, впрочем, в большинстве случаев
допустимо.
Функция
RNDM(< число >)
возвращает случайное число в интервале от 1 до
числа, заданного аргументом. Помимо того, что RNDM работает с вдвое
большей скоростью относительно стандартной RND, она генерирует
последовательность псевдослучайных чисел с менее заметной
закономерностью. Действительно, строка
DO: PLOT RND*255,RND*175: LOOP
- покрывая экран точками со случайными
координатами, уже на пятой минуте своей работы обнаружит явную
тенденцию разметать их с определенной закономерностью, а через полчаса
просто покроет экран регулярной сеткой из ломаных линий. После замены
этой строки на
DO: PLOT RNDM (255),RNDM (175): LOOP
экран будет покрываться точками равномерно но всей поверхности.
Три новые функции: AND, OR и XOR выполняют операции бинарной математики. Функция
AND( < число >, <число>)
осуществляет поразрядное логическое умножение
(операцию "И") двух чисел, находящихся в интервале 0...65535. Одно из
применений функции AND — это определение одновременного нажатия
клавиш при опросе клавиатуры, как это делается в следующем примере:
90 IF AND(BIN 00010001 ,IN 65022)=0 THEN ВЕЕР 0.1,12 100 GO ТО 90
Значение, считанное из порта 65022 (клавиши A, S, D,
F и G), маскируется двоичным числом 00010001. Если на клавиатуре нажать
одновременно клавиши А и G, из порта будет считано число 11101110, и
только в этом случае функция AND вернет ноль и программа подаст
звуковой сигнал.
Функция
OR( < число >, < число >)
делает поразрядное логическое сложение (операцию "ИЛИ") двух чисел (0...65535).
С помощью функции OR можно, например,
определить, не нажата ли хотя бы одна из интересующих нас клавиш. Для
клавиш А или G решение поставленной задачи выглядит так:
90 IF OR(BIN 11101110,IN 65022)<>255 THEN BEEP .1,12 Функция
XOR( < число >, < число >)
выполняет операцию "исключающее ИЛИ" двух чисел (0...65535).
Еще одна математическая функция:
MOD(<число 1>,<число 2>)
возвращает остаток от целочисленного деления
< числа 1> на <число2>. Оба аргумента должны быть
положительными. Например, MOD(29,9) возвращает число 2, поскольку
29-9x3=2.