Page 1 of 1

Передача массива в функцию

Posted: 2005-09-15 10:09:08
by Mamoru
Добрый день.
Прочитал в своё время в описании инжы следующее:
Массивы можно передавать в качестве параметров функциям. При этом передается САМ массив, а не его копия!!!. Т.е. все действия внутри функции над элементами массива будут производиться над первоначальным массивом.
Сделал пару пробных скриптов, и... забыл нахрен!

Выручайте!
конструкция типа
sub main()
DIM mass[10]
...
funk(mass[1])
...
end sub

sub funk(mass[1])
mass[1]=5
...
end sub

Грубо говоря менял элемент массива mass изнутри функции
Начисто забыл синтаксис.
Помогите хлопцы, плз!

Re: Передача массива в функцию

Posted: 2005-09-15 11:30:14
by PCGamer
Mamoru wrote:Добрый день.
Прочитал в своё время в описании инжы следующее:
Массивы можно передавать в качестве параметров функциям. При этом передается САМ массив, а не его копия!!!. Т.е. все действия внутри функции над элементами массива будут производиться над первоначальным массивом.
Сделал пару пробных скриптов, и... забыл нахрен!

Выручайте!
конструкция типа
sub main()
DIM mass[10]
...
funk(mass[1])
...
end sub

sub funk(mass[1])
mass[1]=5
...
end sub

Грубо говоря менял элемент массива mass изнутри функции
Начисто забыл синтаксис.
Помогите хлопцы, плз!


Ты забыл написать чего ты хочешь и в чём загвоздка :D

Posted: 2005-09-15 11:36:11
by Mamoru
нужно менять элемент массива, обьявленного в main
менять его внутри процедуры, вызываемой из main.

Posted: 2005-09-15 15:00:58
by Sfagnum
Mamoru wrote:нужно менять элемент массива, обьявленного в main
менять его внутри процедуры, вызываемой из main.
а что тебе собственно мешает его там менять? религия не позволяет? и синтаксис чего ты забыл?

Posted: 2005-09-15 15:03:58
by Solaire
Если передашь в функцию сам массив (

Code: Select all

funk(mass)
), то меняй что хочешь, возвращать ничего не надо будет. Массив изменится везде.
Если передаешь элемент массива, то передаешь его как переменную. То есть внутри той функции надо будет дать ему имя как переменной (вместо записи

Code: Select all

sub funk(mass[1])
надо будет что-то вроде

Code: Select all

sub funk(m)
), и потом значение этой переменной надо будет вернуть.

Posted: 2005-09-15 16:07:04
by Mamoru
Всё, разобрался! Спасибо за внимание. :)

Code: Select all

sub ggg()
dim mass[10]
mass[1]="start"
uo.print(mass[1])
ttt(mass)
uo.print(mass[1])
end sub
sub ttt(mass)
mass[1]="chenged"
uo.print(mass[1])
end sub