Lua

doter.ua

Продвинутый
17 Авг 2014
280
5
Для освоение луа можно навернуть эту статью. Первой половины должно хватить, остальное можно потом дочитать.
 

-ExotiC-

Какой-то ноунэйм
Команда форума
11 Авг 2014
498
56
customgames.ru
Кстати да, не было вообще представлений о его синтаксисе (хотя знания в программировании были), и с помощью данной статьи довольно быстро разобрался. Желательно помедленней читать, чтобы усвоилось :)
 

xxNpCxx

Активный
16 Окт 2015
85
0
??? Первое что я сделал когда увидел расширение скриптов в доте - это прочитал данную статью -) Очень помогла. Читайте. Полезно будет.
 

EnDronist

Продвинутый
28 Апр 2016
231
0
Проект
Защитники Изобилия | Defenders of Abundance
Как использовать div и mod?
Код:
условие что-то < чего-то + _div(a,b)
 
Последнее редактирование модератором:

Илья

Друзья CG
25 Сен 2015
2,348
41
Такие вопросы можно и гуглу задавать.

Это стандартные математические операторы в большинстве языков программирования: первый целой части деления, второй остатка от деления.
 

EnDronist

Продвинутый
28 Апр 2016
231
0
Проект
Защитники Изобилия | Defenders of Abundance
[quote author=Илья link=topic=146.msg5738#msg5738 date=1470586266]
Такие вопросы можно и гуглу задавать.

Это стандартные математические операторы в большинстве языков программирования: первый целой части деления, второй остатка от деления.
[/quote]
Искал, но нормального ответа не нашёл. Пришлось пользоваться math.floor(a/b), как заменой div(a,b).
 

Илья

Друзья CG
25 Сен 2015
2,348
41
Елки палки, первой же ссылкой пишут:

"div": the / operation. Behavior similar to the "add" operation.

2.5.1 – Arithmetic Operators

Lua supports the usual arithmetic operators: the binary + (addition), - (subtraction), * (multiplication), / (division), % (modulo), and ^ (exponentiation); and unary - (negation). If the operands are numbers, or strings that can be converted to numbers (see §2.2.1), then all operations have the usual meaning. Exponentiation works for any exponent. For instance, x^(-0.5) computes the inverse of the square root of x. Modulo is defined as

a % b == a - math.floor(a/b)*b
That is, it is the remainder of a division that rounds the quotient towards minus infinity.
 
Последнее редактирование модератором:

Илья

Друзья CG
25 Сен 2015
2,348
41
Емае, ты наверное очень устал, раз читаешь между строк:

"div": the / operation. Behavior similar to the "add" operation.

Тебе говорят, что "div" в lua заменен на "/". В некоторых языках это один и тот же оператор, то есть после "/" получаешь целое число, а не с плавающей точкой. Но в lua не так и получаешь с плавающей точкой и об этом тебе говорят в примере нахождения модуля:

a % b == a - math.floor(a/b)*b

Для определения целой части от деления используют в lua оператор floor(x) либо ceil(x) .

!!!
 
Последнее редактирование модератором:

EnDronist

Продвинутый
28 Апр 2016
231
0
Проект
Защитники Изобилия | Defenders of Abundance
Илья, Но это же знак деления
 

Илья

Друзья CG
25 Сен 2015
2,348
41
В общей математике это знак деления....

В программировании это оператор. Как и div() и mod(). И этот самый "знак деления" определяется этими операторами. Это функция. Знак "/" то же самое что, например, "GetModifierStackCount()".

И в lua взяли и переопределили div() как "/". Причем не просто как div(), а вместо с тем же mod(), потому что в lua когда нацело не делится получаешь число с плавающей точкой. А в той же джаве, насколько помню, но могу ошибаться, когда делишь через "/" получаешь целую часть от деления.


Если хочешь понимать программирование - читай специализированную литературу, а не тут вопросы задавай.
 
Последнее редактирование модератором:

ZLOY

Администратор
Команда форума
27 Июн 2016
953
182
А в той же джаве, насколько помню, но могу ошибаться, когда делишь через "/" получаешь целую часть от деления.
Зависимо от типа данных может быть и с плавающей запятой
 
Последнее редактирование модератором:

EnDronist

Продвинутый
28 Апр 2016
231
0
Проект
Защитники Изобилия | Defenders of Abundance
Последнее редактирование модератором:

CryDeS

Друзья CG
14 Июл 2015
1,210
11
Фига вы тут устроили то.
Деление по факту операция выдающая на выходе число с плавающей запятой, но в некоторых языках программирования в зависимости от типа переменной куда она потом присваивается, происходит утеря плавающей части либо ее округление.
А по факту
a div b - выдаст целый остаток от деления a на b
a mod b - выдаст дробный после запятой от деления a на b
 

ZLOY

Администратор
Команда форума
27 Июн 2016
953
182
[quote author=CryDeS link=topic=146.msg5751#msg5751 date=1470626325]
Фига вы тут устроили то.
Деление по факту операция выдающая на выходе число с плавающей запятой
[/quote]
Очевидно что нет,если учесть что целочисленным операциями и операциями с плавающей запятой занимаются различные блоки CPU
 

Илья

Друзья CG
25 Сен 2015
2,348
41
Раздел "Программирование", как раз-таки и тут)

Я думаю, этот раздел создавали для обсуждения сложных структур языка Lua, JS, XML и прочих, что используются при моддинге, на понимание которых не хватило документации и справочников.

А не для разговоров о базовых понятиях программирования в целом.
 
Последнее редактирование модератором:

CryDeS

Друзья CG
14 Июл 2015
1,210
11
Очевидно что нет,если учесть что целочисленным операциями и операциями с плавающей запятой занимаются различные блоки CPU
Окей, в си и асм целочисленное деление и дробное разные вещи. Но почти во всех языках результат деления будет дробным.
 
Последнее редактирование модератором:

ZLOY

Администратор
Команда форума
27 Июн 2016
953
182
Окей, в си и асм целочисленное деление и дробное разные вещи. Но почти во всех языках результат деления будет дробным.
Будет дробным, если один из операндов дробный. В большинстве как-раз если оба операнда будут целочисленными, то и результат будет без дробной части.
 
Последнее редактирование модератором:

CryDeS

Друзья CG
14 Июл 2015
1,210
11
Будет дробным, если один из операндов дробный. В большинстве как-раз если оба операнда будут целочисленными, то и результат будет без дробной части.
Код:
float a = 5/3;
cout << 5/3;
 
Последнее редактирование модератором:
Реклама: