Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Вопрос о функциях

Автор: 2ral 21.12.2007 15:06

можно ли давать функции занение массива, записи или множества?
спасибо

Автор: klem4 21.12.2007 15:11

что ты имеешь в виду ? Передавать как параметр ? Тогда да, а вот возвращать как значение - нет. (на старых компиляторах)

Автор: 2ral 21.12.2007 15:20

А почему нельзя давать значение? жаль кажись придется переделывать прогу(((

Добавлено через 3 мин.

Цитата(klem4 @ 21.12.2007 12:11) *

что ты имеешь в виду ? Передавать как параметр ? Тогда да, а вот возвращать как значение - нет. (на старых компиляторах)


кстати спасибо smile.gif

Автор: klem4 21.12.2007 15:27

можешь использовать более новые компиляторы, например FPC или Delphi.

вот такой код на TP не прокатит:

type
TArr = array [1..10] of Integer;
TRec = record x, y: Integer; end;

function f1: TArr;
begin
end;

function f2: TRec;
begin
end;


но легко изменяется в такой

type
TArr = array [1..10] of Integer;
TRec = record x, y: Integer; end;

procedure f1(var arr: TArr);
begin
end;

procedure f2(var rec: TRec);
begin
end;



Автор: volvo 21.12.2007 15:56

Множество, кстати, вполне перечислимый тип (в этом причина того, что ни записи ни массива нельзя вернуть - они являются не перечислимыми, а сложными типами), поэтому его можно возвращать как результат функции...

Автор: Гость 21.12.2007 17:41

Множества - перечислимые????
чему равен Succ(Low(Set Of Char)) ??

Специально для особо-выёживающихся, которым лень проверить самим: Succ(Low(SetOfChar)) = #1, как и положено.

Автор: 2ral 22.12.2007 3:44

стоп стоп стоп. я не понял кое чего. я же использую fpc 2.1.4. почему же тогда он мне дает CE?