Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Описание: Функции в функциях
007wan
Отправлено: 12 Декабря, 2017 - 15:49:41
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




Kibor , А нельзя использовать функции с массивами?
CODE:
function Работа[1]{//тут основной код функции}
 
 Top
Kibor
Отправлено: 12 Декабря, 2017 - 16:14:19
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




На массивы надо указатели передавать

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

a(#m[0]);

messagebox (m[2]);


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


А функций массивов нет.
 
 Top
007wan
Отправлено: 14 Декабря, 2017 - 15:03:34
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017  
Репутация: -2




 Kibor пишет:
На массивы надо указатели передавать

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

a(#m[0]);

messagebox (m[2]);


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


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

не совсем понимаю когда и чем это поможет(выше написанный код)
 
 Top
Zireael
Отправлено: 14 Декабря, 2017 - 18:45:00
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
не совсем понимаю когда и чем это поможет(выше написанный код)

В этом случае ничем, это лишь пример как передать указатель на массив.
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;
}
}

Одна и та же функция выполнила нужные действия для разных массивов. Можно использовать эту функцию в других скриптах, с другими именами массивов, не нужно в ней ничего менять. Передаёте в функцию нужные аргументы и получаете результат.
 
 Top
Zireael
Отправлено: 04 Мая, 2018 - 15:10:13
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




Вложенный вызов функций не допускается? Возвращается результат первого вызова.
CODE:
int c=a(b(4));
messagebox(c); // 8, а не 10

function a(int x){return x + 2;}
function b(int y){return y * 2;}
 
 Top
Kibor
Отправлено: 04 Мая, 2018 - 15:33:15
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Странно. Посмотрю как будет время.
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by