Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Массив как входной параметр


Автор: MaxxSoftware 25.5.2005, 14:12
Можно какнить будудь передать массив в функцию, и результатом выпалнении функции получить другой массив?(хотя не обзательно)

Пытаюсь просто написать что то такое например:
function fname(a:array [1..10] of string):boolean

Ругается на []. Убераю - все равно ругается на что то...
Вот...
Дак можно использовать массив как входной параметр функции?

Автор: SPrograMMer 25.5.2005, 17:59
Цитата(MaxxSoftware @ 25.5.2005, 14:12)
Дак можно использовать массив как входной параметр функции

можно!
Цитата(Yanis @ 25.5.2005, 14:16)
Издеваешься?

smile


Цитата(MaxxSoftware @ 25.5.2005, 14:12)
function fname(a:array [1..10] of string):boolean

Ругается на []. Убераю - все равно ругается на что то...

нужно сначала объявить тип данных:
Код

Type
  TMyArr=Array[1..10] Of String;

а затем в качестве типа входного параметра задавать эже этот тип:
Код

function fname(a:TMyArr):Boolean;

Автор: SoWa 25.5.2005, 18:29
А зачем собственно типы??? У меня без проблемм массив of Integer передавался?!

Автор: Yanis 25.5.2005, 18:32
Цитата(SoWa @ 25.5.2005, 18:29)
А зачем собственно типы??? У меня без проблемм массив of Integer передавался?!

А тут массив[1..10] of integer!

Автор: MacTep 25.5.2005, 20:53
Просто так заведено, что нельзя в функцию или процедуру входным параметром передать массив. Это и в Паскале также было! Так что вопрос скорее в другой раздел! smile

Автор: <Spawn> 26.5.2005, 04:39
MacTep Массив в качестве параметра функции передать можно и называет он открытым массивом, просто не нужно было задавать его размер - он вычисляется автоматически, пример:

Код

procedure ArrayTest(arr: array of integer);
var
  i: integer;
begin
  for i := 0 to High(arr) do
    ShowMessage(IntToStr(arr[i]));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ArrayTest([1, 2, 10, 20, 100]);
end;


Если же нужен массив определенного размера, то тут только создание своего типа данных.

Автор: MaxxSoftware 26.5.2005, 05:31
Стопудова туплю... не допер тип сделать, а раньше делал так часто =))))
Ща что то забыл, и в голову даже не пришло как то - лол.

Автор: Петрович 26.5.2005, 07:57
Цитата(MacTep @ 25.5.2005, 21:53)
Просто так заведено, что нельзя в функцию или процедуру входным параметром передать массив. Это и в Паскале также было! Так что вопрос скорее в другой раздел! 

см. http://forum.vingrad.ru/index.php?showtopic=53277&view=findpost&p=422170

Автор: MaxxSoftware 26.5.2005, 08:37
Сори, первый раз инт глюканул сообщени вроде не отправилось, я в списак зашел - нет его, вот это и написал, как работает вспомнил, просто протупил

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)