Главная страница
    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.056 c
2-1274194704
Delphist2
2010-05-18 18:58
2010.08.27
дата модификации файла


3-1239500260
andirock2112
2009-04-12 05:37
2010.08.27
Связь многие ко многим


15-1266563892
12
2010-02-19 10:18
2010.08.27
Работа. Что бы Вы выбрали?


4-1232550179
Magedon
2009-01-21 18:02
2010.08.27
Как обновить часть экрана?


15-1265497950
Германн
2010-02-07 02:12
2010.08.27
Опции компилятора DEBUG, RELEASE в CodeGear2007





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский