logo.aleks Versus Поиск по сайту:
  Главная | Регистрация | Вход   Приветствую Вас Гость | RSS
Майнпаги
тыц
Стихи.РУ
Проза.РУ
Aleks Versus на LI
Я на Самиздате
читательский дневник
На Книготопии

easy.math.qsp v 2.3.0

 ←   → 

Логические операции

#add#

 ↑ Наверх 

Функция выполняет логическое сложение двух чисел. Вернее сказать сложение с переполнением. Складывать можно два числа абсолютно любой длины (ограничения для числовых значений аргументов связаны с ограничением на значения переменных для вашего плеера).

$args[0] - первое число (сколько угодно длинное), можно  args[0] (ограниченное значение).
$args[1] - второе число (сколько угодно длинное), можно  args[1] (ограниченное значение).

Любой посторонний символ интерпретируется, как 0 (нуль). Т.е. суммируются только целые положительные числа.

Использует функцию #zero#.

Суммирует два целых числа любой длины по следующим правилам:

  • Каждое число представляет собой запись из цифр. Цифры условно назовём байтами, само число - словом.
  • Количество байтов в одном слове может быть больше, чем в другом. В таком случае слово с меньшим количеством байтов приводится к длине слова с большим количеством байтов.

    Например 998765
    и           273
    273 приводится к длине 998765 добавлением недостающих байтов.
    273 ->   000273

  • Байты нумеруются справа налево! По разрядам, начиная с нулевого.

    слово       998765
    номер байта 543210

  • Слова суммируются побайтово (поразрядно), начиная с нулевого. Итог вычислений записывается в слово Сумма.
  • Если при суммировании байтов на одном разряде происходит переполнение, т.е. число оказывается больше одного разряда, лишний разряд переносится на следующий байт.

    Пример:

    998765
    +
    000273
    ------
    999038 : /5+3=8/6+7=13/2+7+1=10/8+1+0=9/9+0=9/9+0=9/
    999038 : /    8/     3/       0/      9/    9/    9/

  • В случае если переполнение происходит на суммировании последних байтов, лишний разряд переносится на нулевой байт Суммы.

    Пример:

     998765
     +     
     001273
     ------
    1000038 - слово Сумма
         +1
     ------
     000039 - итог. слово Сумма. Будет записано в $result

  • Результатом работы функции является слово Сумма. Это текстовая запись числа без потери разрядов. Т.е. если были два числа: из пяти символов и из двух символов, - результат обязательно будет состоять из пяти символов.
Результат работы функции:

$func('#add#',998765,273) = 999038
$func('#add#','9987Y5','-273') = 998978
$func('#add#','999999','6273') = 006273
$func('#add#','998705','5773') = 004479

#dev#

 ↑ Наверх 

$args[0] - уменьшаемое (любой длины), можно  args[0] (ограниченное значение).
$args[1] - вычитаемое (любой длины), можно  args[1] (ограниченное значение).

Результат - текстовое значение (слово Сумма) без потери разрядов.

Использует функцию #zero#.

логическое вычитание. Вычитает из одного числа другое. Оба числа приводятся к одной длине по аналогии с #add#.

Далее происходит поразрядное вычитание. Причём если в результате получается отрицательное число в байт записывается 10+число, в следующий разряд переносится -1

Пример:

990763
-
099271
------
981492

Если отрицательное число получается на последнем байте последний байт вычисляется по общим правилам, а из нулевого байта Суммы вычитается 1.

Результат работы функции:

$func('#dev#',998765,273) = 998492
$func('#dev#','9987Y5','-273') = 998432
$func('#dev#','999999','6273') = 993726
$func('#dev#','998705','5773') = 992932

#rtp#

 ↑ Наверх 

Процедура меняет местами значение двух переменных.

$args[0] - имя первой переменной
$args[1] - имя второй переменной

Пример использования:

a=6
b=9
gosub '#rtp#','a','b'
a
b

$c[0]='citated'
$d[19]='legated'
gosub '#rtp#','$c[0]','$d[19]'
$c[0]
$d[19]

Результат работы функции:

9
6
legated
citated




 ←   → 
  Aleks Versus'Easy Libraries'2013
Aleks Versus'Game Adventure Making'Really Unimaginable Stories'2013


 
Copyright MyCorp © 2018
Конструктор сайтов - uCoz
aleksversus@mail.ru
lex666endless@rambler.ru
437337904
Наверх