Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

передача массива в функцию   Найти похожие ветки 

 
Тима   (2010-02-21 12:27) [0]

Всем привет, как передать функции массив в качестве параметра?

типо func TEST(mass:array of integer):boolean;
я создал тип
mymass =array of integer;
func TEST(mass:mymass):boolean;

передаю массив заранее объявленный как mymass, но данные в него не заносятся.


 
KilkennyCat ©   (2010-02-21 12:29) [1]

Хотелось бы (на самом деле - нет, но это из вежливости) больше информации...


 
Тима   (2010-02-21 12:38) [2]

Ок, мне скажем удобней когда есть функция в которую я передаю массив и значение которое хочу туда записать.

type MyMass=array of integer;
Если бы была функция то в моем представлении она выглядела бы так:
function addtomass(mass:MyMass;number:integer):boolean;
begin
setlength(mass,length(mass)+1);
mass[length(mass)-1] := number;
...
end;


чтобы потом вызывать так
massiv:mymass;
addtomass(massiv,150);
addtomass(massiv,250);


 
oldman ©   (2010-02-21 12:49) [3]

Я думаю, что функция все добавляет.
Но не возвращает результат...
:)))


 
KilkennyCat ©   (2010-02-21 13:13) [4]


> oldman ©   (21.02.10 12:49) [3]

я думаю, возвращает, но не тот :)


 
MBo ©   (2010-02-21 13:20) [5]

может быть, речь идет о том, что нужен параметр,объявленный с модификатором var ?


 
Тима   (2010-02-21 14:01) [6]

именно в var, Спасибо Мужики!


 
grisme ©   (2010-02-22 07:21) [7]

наверное, будет лучше так?

type TMyArray = array of Integer
      PMyArray = ^TMyArray;

function addtomass(const mass:PMyArray; const number : Integer):boolean;
begin
 ...
 SetLength(mass^, Length(mass^)+1);
 mass^[Length(mass^)-1] := number;
 ...
end;


вызов:
var
 ihavearray : TMyArray;
begin
 ...
 if addtomass(@ihavearray, someinteger) then {good} else {bad}
 ...
end;


хотя, особой разницы, конечно нету.


 
Palladin ©   (2010-02-22 08:08) [8]

абсолютно никакой разницы, кроме того, что в твоем варианте - куча ненужных символов


 
Anatoly Podgoretsky ©   (2010-02-22 08:42) [9]

И зачем то указатель на указатель.


 
turbouser ©   (2010-02-22 11:17) [10]

Телепаты =)


 
0x00FF00   (2010-02-23 02:27) [11]

> Телепаты =)
А может быть, просто умудренные суровой практикой преподавания.

Наш лектор, помнится, об этом буквально распинался: (массив нельзя передавать в функцию по значению!)×100500...


 
Игорь Шевченко ©   (2010-02-23 02:33) [12]

0x00FF00   (23.02.10 02:27) [11]


> массив нельзя передавать в функцию по значению!


Странно. Структуру можно, массив нельзя. Дискриминация


 
Германн ©   (2010-02-23 02:42) [13]


> Наш лектор, помнится, об этом буквально распинался: (массив
> нельзя передавать в функцию по значению!)

Не все, не всегда могут словами четко выразить свои мысли. (Особенно если они смутные ввиду слабых знаний предмета).


 
Palladin ©   (2010-02-23 09:06) [14]


> 0x00FF00   (23.02.10 02:27) [11]

может он имел ввиду не то, что так сделать нельзя, а то что так делать нельзя?


 
oxffff ©   (2010-02-23 09:44) [15]


> Тима   (21.02.10 12:27)  
> Всем привет, как передать функции массив в качестве параметра?
>
>
> типо func TEST(mass:array of integer):boolean;
> я создал тип
> mymass =array of integer;
> func TEST(mass:mymass):boolean;
>
> передаю массив заранее объявленный как mymass, но данные
> в него не заносятся.


Проблема в том в что в названии присутствуют часть тела содержащая ягодицы.


 
0x00FF00   (2010-02-23 14:47) [16]


> может он имел ввиду не то, что так сделать нельзя, а то
> что так делать нельзя?

именно так.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.069 c
2-1271803296
RGV
2010-04-21 02:41
2010.08.27
alt+Tab


15-1274451226
nobody
2010-05-21 18:13
2010.08.27
SVN plugin for Delphi 6


2-1275547550
My__Nick__Name
2010-06-03 10:45
2010.08.27
Unicode в Open Office 3


15-1271094399
Юрий Зотов
2010-04-12 21:46
2010.08.27
Что будет, если...


15-1270040562
Начинающий маковод
2010-03-31 17:02
2010.08.27
Хакинтош на виртуальной машине на PC.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский