Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Библиотеки

Ответ
 
Опции темы
Старый 02.04.2011, 22:12   #1
YellowAfterlife
ПроЭктировщик
 
Аватар для YellowAfterlife
 
Регистрация: 19.02.2011
Сообщений: 134
Написано 81 полезных сообщений
(для 219 пользователей)
Lib_mmath - операции над числами любой длины

Версия: 1.0
Эта библиотека позволяет выполнять операции (сейчас - сложение, вычитание, умножение) над целочисленными и вещественными числами любой длины.
О чем я:
Нажмите на изображение для увеличения
Название: temp2.png
Просмотров: 1157
Размер:	10.0 Кб
ID:	13198
Для сравнения, вы не можете произвести такую операцию с real\integer, в связи с ограниченным количеством данных, хранимых в типе. С другой стороны, в одном объекте String может хранится до двух миллиардов символов. Поэтому данная библиотека и приходит к вам.
Поддерживаемые типы:
uint - беззнаковое целочисленный
int - знаковый целочисленный
ureal - беззнаковый с точкой
real - знаковый с точкой
Поддерживаемые функции:
add - сложение
sub - вычитание
mul - умножение
cmp - сравнение (возращает -1\0\+1)
Для получения имени функции нужно сложить тип и функцию. К примеру, intadd, или realmul. Пример использования:
DrawText(RealMul('0.77','0.34'),0,0);
RePaint;
Delay(2400); 
Примечания:
* Формат числа: [-]целая часть[.дробная часть]
* Допускаются лишние нули в начале и конце числа - библиотека "исправит" число с таковыми автоматически.
* По результатам тестирования (на нескольких моделях телефонов), средняя скорость выполнения функций для чисел на 16 знаков состовляет 1.1 - 1.5мс. То есть в секунду можно выполнять около 500 операций с такими числами, до того как мидлет станет подлагивать.
* Пока что функции деления чисел в библиотеки нет. До момента, пока она будет добавлена в библиотеку, можно использовать
function IntDiv(ABstring): integer;
var 
CstringRinteger;
begin
:= 0;
:= A;
while 
IntCmp(CB) > do begin
:= IntSub(CB);
:= 1;
end;
IntDiv := R;
end
* Функция uRealCmp опущена из-за длины кода - используйте RealCmp.
* Мотивацией для написания библиотеки послужила эта тема: http://forum.boolean.name/showthread.php?p=184401

В общем, эта библиотека должна быть полезна, если переменных MidletPascalя вам недостаточно (будь то параметр в игре или обычное желание сделать калькулятор).
Удачной разработки
Вложения
Тип файла: zip Lib_mmath.zip (2.7 Кб, 773 просмотров)
__________________

Мой сайт-блог. Игры, обновления, примеры для Haxe, JavaScript(+HTML5), GameMaker, Love2d...

Последний раз редактировалось YellowAfterlife, 03.04.2011 в 05:04.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо YellowAfterlife за это полезное сообщение:
DIMMON4IK (03.04.2011), im_zorg (03.04.2011)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 07:49.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com