Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Вопрос по функциям

Страниц (2): « 1 [2]
 

11. 007wan - 12 Декабря, 2017 - 07:49:41 - перейти к сообщению
Kibor , А нельзя использовать функции с массивами?
CODE:
function Работа[1]{//тут основной код функции}
12. Kibor - 12 Декабря, 2017 - 08:14:19 - перейти к сообщению
На массивы надо указатели передавать

CODE:
int m[5];
m[2]=25;

a(#m[0]);

messagebox (m[2]);


function a(int #e)
{
e[2]=525985;
}


А функций массивов нет.
13. 007wan - 14 Декабря, 2017 - 07:03:34 - перейти к сообщению
 Kibor пишет:
На массивы надо указатели передавать

CODE:
int m[5];
m[2]=25;

a(#m[0]);

messagebox (m[2]);


function a(int #e)
{
e[2]=525985;
}


А функций массивов нет.

не совсем понимаю когда и чем это поможет(выше написанный код)
14. Zireael - 14 Декабря, 2017 - 10:45:00 - перейти к сообщению
 Цитата:
не совсем понимаю когда и чем это поможет(выше написанный код)

В этом случае ничем, это лишь пример как передать указатель на массив.
CODE:
// ещё пример
int a[3];
int b[2];
a[0]=1; a[1]=2; a[2]=3; // массив с числами 1 2 3
b[0]=7; b[1]=8; // массив с числами 7 8

mult(#a[0], 3, 4); // передаём: указатель на массив, размер массива, число
mult(#b[0], 2, 3); // передаём: указатель на массив, размер массива, число

messagebox(format(a[0])+" "+format(a[1])+" "+format(a[2])); // результат 4 8 12 (все числа умножены на 4)
messagebox(format(b[0])+" "+format(b[1])); // результат 21 24 (все числа умножены на 3)

// функция, умножающая все элементы массива на указанное число
function mult(int #a, int size_arr, int number)
{
for(int i=0; i<size_arr; i++)
{
a[i]=a[i] * number;
}
}

Одна и та же функция выполнила нужные действия для разных массивов. Можно использовать эту функцию в других скриптах, с другими именами массивов, не нужно в ней ничего менять. Передаёте в функцию нужные аргументы и получаете результат.
15. Zireael - 04 Мая, 2018 - 07:10:13 - перейти к сообщению
Вложенный вызов функций не допускается? Возвращается результат первого вызова.
CODE:
int c=a(b(4));
messagebox(c); // 8, а не 10

function a(int x){return x + 2;}
function b(int y){return y * 2;}
16. Kibor - 04 Мая, 2018 - 07:33:15 - перейти к сообщению
Странно. Посмотрю как будет время.

Powered by ExBB FM 1.0 Final