МАТЕМАТИЧЕСКИЕ ФУНКЦИИ_
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.