XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
DeT

offline
Опыт: 5,715
Активность:
ADOLF мб я тупой чтоли ? :angry: =\

если i=4 то 5/2 !=4/2
если i=5 то 6/2 !=5/2

ВТФ ?
Старый 25.09.2007, 22:14
df Hunter
Нападатель
offline
Опыт: 5,749
Активность:
Цитата:
мб я тупой чтоли ?

y
это integer
5/2 = 2
4/2 = 2
Старый 25.09.2007, 23:38
Toadcop

offline
Опыт: 54,313
Активность:
Цитата:
мб я тупой чтоли
такие вопросы лутче не задавать =) на них обычно чёткий ответ
Старый 25.09.2007, 23:55
rOOse
Kicked by Q
offline
Опыт: 1,205
Активность:
FellGuard, я согласен что использовать бж функции не всегда хорошо, просто жасскрафта под рукой небыло, а пост я начал писать до твоего и потом не стал просто исправлять.
А вообще натив функция она то и сама состоит из кода, тогда и ее вычислять?

Отредактировано rOOse, 26.09.2007 в 06:24.
Старый 26.09.2007, 06:18
adic3x

offline
Опыт: 108,439
Активность:
хм, чет я нагнал=)
Код:
i-i/2*2!=0
вот, срабатывает и для отрицательных чисел. впринципе тоже, что я и писал ранее, только оптимизированно ^_^ + действий столько же, сколько и у хантера... вобщем юзать либо мою, либо хантера=)
Старый 26.09.2007, 08:37
Alex_Hell
Mapmaker 'N' Programmer
offline
Опыт: 6,885
Активность:
Чем вам мой вариант не устраивает?
Переделал:
Код:
function HonestInt takes integer i returns boolean
    set i = IAbsBJ(i)
    loop
        exitwhen i <= 2
        set i = i - 2
    endloop
    return i == 2
endfunction

Функция берет число integer и возвращает boolean(true = четное, false = нечетное)
Старый 26.09.2007, 15:05
df Hunter
Нападатель
offline
Опыт: 5,749
Активность:
ты когда нибудь слышал о скорости выполнения функций/действий/и т.д. ?
так блин запусти хотя бы циклом свою функцию и увидишь, до скольки она проверит, а потом мою
разница будет ~ много раз
Старый 26.09.2007, 15:07
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
Сообщение от FellGuard
bj_DEGTORAD (= bj_PI/180.0) в вычислении полярных координат - какой смысл, если можно писать численное значение (0.017453)?

хех... я всегда юзай bj_DEGTORAD а не 0.017453, ты вроде немножка ошибся.. пологая что исппользуя ио_DEGTORAD идут вычесления bj_PI/180.0 потомучто эти вычесления уже были, они занеслись в эту переменную, и там и хронятся, повторные вечелсления не идут конешно, это обычная реальная глобалкиа

Jon добавил:
автоматическая чтука приведения типов весьма жестокая чтука)

Jon добавил:
Цитата:
Сообщение от ADOLF
Код:
i-i/2*2!=0

это частный случай, и работает только с интегерами...
правельнее делать так:
Код:
i-I2R(R2I(i/2))*2!=0
Старый 26.09.2007, 15:29
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
это неважно. Давай теперь создавать везде глобалки и пихать туда давно извесные численные значения констант ;)

FellGuard добавил:
ну там
bj_day_night = 24.00 (время часов в сутках)
Старый 26.09.2007, 15:30
J
expert
offline
Опыт: 48,447
Активность:
для этого и нужны константы)
Старый 26.09.2007, 15:32
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
это частный случай, и работает только с интегерами

ты предлагаешь проверять риалы на то четные они или нет? О_О
Старый 26.09.2007, 15:46
DeT

offline
Опыт: 5,715
Активность:
омг....я туопй..даже не подозревал о такой очевидной вещи. па рдон, удаляюсь :)
Старый 26.09.2007, 15:58
J
expert
offline
Опыт: 48,447
Активность:
ADOLF ну... они же могут быть четными и нечетными =)
Старый 26.09.2007, 16:05
adic3x

offline
Опыт: 108,439
Активность:
Цитата:
они же могут быть четными и нечетными

а еще они могут прийти ночью и предьявить путевку на марс... кто они?

если те нуно определить четный ли риал, переведи его в Инт и пользуйся тойже функцией...
Старый 26.09.2007, 16:09
df Hunter
Нападатель
offline
Опыт: 5,749
Активность:
Цитата:
если те нуно определить четный ли риал, переведи его в Инт и пользуйся тойже функцией...

прав
Старый 26.09.2007, 16:25
J
expert
offline
Опыт: 48,447
Активность:
конешно прав) просто тут безрацзици.. переводить реал в интегер вне данной формулы, или в ней =)

Jon добавил:
кстате.. у меня вопрос... а автоматические приведелние инткгкра к реалу соответствует I2R()? или оно быстрее?
Старый 26.09.2007, 16:29
df Hunter
Нападатель
offline
Опыт: 5,749
Активность:
вроде быстрее
Старый 26.09.2007, 16:36
J
expert
offline
Опыт: 48,447
Активность:
слово "вроде" напоминает на "ну раз сдесь используецо функция а там нет, ну значит... наверно..." =)
т.е. чисто из логических соображений вроде быстрее.. а как по точнее определить...
Старый 26.09.2007, 16:38
0pJl9lTa

offline
Опыт: 3,397
Активность:
дет тоже криво написал
раскрываем
Код:
function ModuloReal takes real dividend, real divisor returns real
    local real modulus = dividend - I2R(R2I(dividend / divisor)) * divisor

    // If the dividend was negative, the above modulus calculation will
    // be negative, but within (-divisor..0).  We can add (divisor) to
    // shift this result into the desired range of (0..divisor).
    if (modulus < 0) then
        set modulus = modulus + divisor
    endif

    return modulus
endfunction


Мой вариант

Код:
function Ch takes integer Num returns boolean
 return Num - (Num / 2) * 2 == 0
endfunction
Старый 03.10.2007, 08:39
Harakternyk

offline
Опыт: 2,703
Активность:
0pJl9lTa

Хотелось бы только уточнить, что диапазон чисел, которые может обрабатывать один простой цикл весьма ограничен:

Диапазон Максимальное значение
...[0.....] (4686)
[...0]... (4614)
[...0...] (4614)
[...]0 (4614)
0[...] (4686)

Harakternyk добавил:

Использование native-функций значительно уменьшает указанный диапазон.

Harakternyk добавил:

Функция 0pJl9lTa представляет собой вариацию функции ADOLF-a, которая, однако, является более производительной по диапазону обрабатываемых чисел (см. Вложение 1 - мапа "Testing")
Прикрепленные файлы
Тип файла: w3x Testing.w3x (9.3 Кбайт, 10 просмотров )

Отредактировано Harakternyk, 03.10.2007 в 14:14.
Старый 03.10.2007, 12:03
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



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