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

Вниз

Передача значений из функции   Найти похожие ветки 

 
Pavel   (2009-02-26 22:30) [0]

Как мне из функции передать два значения?

Спасибо за ответы.


 
Johnmen ©   (2009-02-26 22:43) [1]

procedure MyFunction(var variable1: type1; var variable2: type2);


 
Медвежонок Пятачок ©   (2009-02-26 22:53) [2]

function myfirstfunction : mysinglevaluetype;
begin
MySecondFunction(value1,value2);
end;


 
korneley ©   (2009-02-26 22:53) [3]

Или через запись ;)

type
 TMyRecord = record
   i : integer;
   b : byte;
 end;

function MyFunc : TMyRecord;
...
function MyFunc : TMyRecord;
begin
 Result.i := trunc(Now);
 Result.b := $E3;
end;
...
procedure TForm1.Button13Click(Sender: TObject);
var MyRecord : TMyRecord;
begin
 MyRecord := MyFunc;
 ShowMessage(DateTimeToStr(MyRecord.i) + char(MyRecord.b) + ".");
end;


 
Медвежонок Пятачок ©   (2009-02-26 22:57) [4]

зачем через рекорд?
ему же передать надо, а не вернуть


 
korneley ©   (2009-02-26 23:01) [5]


> Медвежонок Пятачок ©   (26.02.09 22:57) [4]

Не... Телепатическая составляющая подсказывает, что если "из", то всё-таки вернуть :)


 
Медвежонок Пятачок ©   (2009-02-26 23:04) [6]

а как можно передать не "из" ?


 
Медвежонок Пятачок ©   (2009-02-26 23:05) [7]

передают параметры, возвращают значения.
параметров может быть вагон.


 
korneley ©   (2009-02-26 23:20) [8]


> Медвежонок Пятачок ©   (26.02.09 23:05) [7]
> передают параметры, возвращают значения.параметров может
> быть вагон.


> Pavel   (26.02.09 22:30) 
> Как мне из функции передать два значения?

Не будем бодаться, т.к по [0] понятно, что человек хочет получить 2 значения чего-то там. Из функции. Ну не те термины выбрал, так "...профессионалам отдельная просьба - быть снисходительными..." ;)


 
Медвежонок Пятачок ©   (2009-02-26 23:34) [9]

считаешь здесь полезно получать только то, про что спросил и ни граммом больше?


 
Pavel   (2009-02-26 23:38) [10]

korneley, спасибо за понимание.


 
Медвежонок Пятачок ©   (2009-02-26 23:42) [11]

вот видишь, корнелий, что ты натворил.
одним человеком, считающим чт функция может возвратить два значения стало больше.
причем еще и значение не возвращается, а передается.

вредитель ты.


 
Anatoly Podgoretsky ©   (2009-02-26 23:57) [12]

Варианта A,B,...N := Func, где A,B,...N получают разные значения, в природе не существует


 
korneley ©   (2009-02-27 00:21) [13]


> вредитель ты.

Дык, вроде, конференция "начинающим" И понятие "возвратить" не обязательно должно включать в себя "передать и потом возвратить". Напомнило:
- Стой, кто идёт?
- Ну кто с той идёт, а кто и с этой...


 
Германн ©   (2009-02-27 00:27) [14]

В 21 веке все функции следует заменить на процедуры. Некоторые из процедур должны возвращать результат булевского типа свидетельствующий об успехе/неуспехе выполнения данной процедуры.


 
Anatoly Podgoretsky ©   (2009-02-27 00:39) [15]

> Германн  (27.02.2009 0:27:14)  [14]

Каких только новостей не начитаешься на форумах.


 
korneley ©   (2009-02-27 00:39) [16]


> Германн ©   (27.02.09 00:27) [14]

Ну так это и исключениями можно добиться. А если учесть " Некоторые из процедур должны возвращать результат...", то это всё-таки функции :) Хотя... "все братья - сёстры", "все процедуры, суть функции" :)))

> Медвежонок Пятачок ©   (26.02.09 23:42) [11]
> вот видишь, корнелий, что ты натворил.одним человеком, считающим
> чт функция может возвратить два значения стало больше.

Ни фига. Значение одно: типа, рекорд. А уж сколько полей там, только от фантазии зависит :)


 
Медвежонок Пятачок ©   (2009-02-27 00:41) [17]

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


 
korneley ©   (2009-02-27 00:54) [18]


> Медвежонок Пятачок ©   (27.02.09 00:41) [17]
> я и не говорил что их два (значения).я сказал, что стало
> больше одним человеком, который считает что их два

Ну с чего это? В [3] не классика, конечно, но если человек захочет разобраться, то поймёт, что таки одно. Я там даже умышленно присвоение ввёл, чтобы избежать
ShowMessage(DateTimeToStr(MyFunc.i) + char(MyFunc.b) + ".")


 
Германн ©   (2009-02-27 00:57) [19]


> Anatoly Podgoretsky ©   (27.02.09 00:39) [15]
>
> > Германн  (27.02.2009 0:27:14)  [14]
>
> Каких только новостей не начитаешься на форумах.
>


> korneley ©   (27.02.09 00:39) [16]
>
>
> > Германн ©   (27.02.09 00:27) [14]
>
> Ну так это и исключениями можно добиться. А если учесть
> " Некоторые из процедур должны возвращать результат...",
>  то это всё-таки функции :) Хотя... "все братья - сёстры",
>  "все процедуры, суть функции" :)))

Я был уверен, что чувство юмора вам не изменяет.
:)


 
Медвежонок Пятачок ©   (2009-02-27 01:02) [20]

Ну с чего это? В [3] не классика, конечно, но если человек захочет разобраться, то поймёт, что таки одно.

ты хочешь сказать, что автор без тебя не слышал ни про рекорды, ни про массивы?


 
Германн ©   (2009-02-27 01:09) [21]


> Медвежонок Пятачок ©   (27.02.09 01:02) [20]
>
> Ну с чего это? В [3] не классика, конечно, но если человек
> захочет разобраться, то поймёт, что таки одно.
>
> ты хочешь сказать, что автор без тебя не слышал ни про рекорды,
>  ни про массивы?
>

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


 
Медвежонок Пятачок ©   (2009-02-27 01:10) [22]

теперь он знает что "функция может вернуть два значения"


 
korneley ©   (2009-02-27 01:12) [23]


> Медвежонок Пятачок ©   (27.02.09 01:02) [20]
> ты хочешь сказать, что автор без тебя не слышал ни про рекорды, ни
> про массивы?

За массивы не скажу (это всё-таки набор однотипных элементов), как и за автора. Слышать-то может и слышал, но подтолкнуть его в нужном направлении, разве не задача форума? Если у меня есть штангенциркуль, это не не означает, что я знаю, как им пользоваться :)


 
Плохиш ©   (2009-02-27 01:23) [24]


> Слышать-то может и слышал, но подтолкнуть его в нужном направлении,
>  разве не задача форума?

Хм, всегда думал, что задача форума помочь решить интересную задачу. А толкнуть в направлении работы чего-либо - задача инструкции пользователя.


 
Германн ©   (2009-02-27 01:25) [25]


> Медвежонок Пятачок ©   (27.02.09 01:10) [22]
>
> теперь он знает что "функция может вернуть два значения"
>

А разве это плохо?


 
Германн ©   (2009-02-27 01:34) [26]


> Плохиш ©   (27.02.09 01:23) [24]
>
>
> > Слышать-то может и слышал, но подтолкнуть его в нужном
> направлении,
> >  разве не задача форума?
>
> Хм, всегда думал, что задача форума помочь решить интересную
> задачу. А толкнуть в направлении работы чего-либо - задача
> инструкции пользователя.
>

В конференции " Начинающим" - это немного не так.


 
korneley ©   (2009-02-27 01:36) [27]


> Плохиш ©   (27.02.09 01:23) [24]
> > Слышать-то может и слышал, но подтолкнуть его в нужном
> направлении,>  разве не задача форума?Хм, всегда думал,
> что задача форума помочь решить интересную задачу. А толкнуть
> в направлении работы чего-либо - задача инструкции пользователя.
>

Дык, иногда надо и сказать, где инструкция лежит :) А дальше, естественно, сами, сами...


 
Anatoly Podgoretsky ©   (2009-02-27 09:38) [28]

> Германн  (27.02.2009 0:57:19)  [19]

Опять сомневаешься?


 
Anatoly Podgoretsky ©   (2009-02-27 09:39) [29]

> Германн  (27.02.2009 1:09:21)  [21]

При том учебник математики.


 
Anatoly Podgoretsky ©   (2009-02-27 09:40) [30]

> Плохиш  (27.02.2009 1:23:24)  [24]

Это не задача форума, это личное дело каждого участника.
Задача форума одна, общаться как на базаре, именно так форум и переводится.


 
korneley ©   (2009-02-27 09:53) [31]


> Anatoly Podgoretsky ©   (27.02.09 09:40) [30]
> Задача форума одна, общаться
> как на базаре, именно так форум и переводится.

Вот. А на базаре можно много нового узнать. Но и там разные торговые ряды присутствуют. :)


 
charoey_mag   (2009-02-27 12:30) [32]

Если посмотреть с машинной точки зрения то "функция" как обертка над CALL может все таки вернуть больше одного результата.
Все параметры передаются через стек и адрес возврата его замыкает, поэтому больше чем явно указанных вернуть не получится, но результат выполнения в 90% случаев возвращается через EAX, а в собственных функциях, где регламент возвращаемых значений вообще не устанавлен, никто не запрещает использовать дополнительные регистры для возврата значений. И получается что результатов выполнения может быть не просто несколько, а их кол-во может динамически изменяться


 
Palladin ©   (2009-02-27 12:38) [33]


> charoey_mag   (27.02.09 12:30) [32]

это все здорово. тебе осталось только изобрести синтаксис, что бы одним приравниванием->одним вызовом ассигновать сразу несколько переменных, количество которых может изменятся. тогда сразу поймешь почему функция не может возвращать более одного значения.


 
Плохиш ©   (2009-02-27 13:07) [34]


> Германн ©   (27.02.09 01:34) [26]

Знаю, знаю, что здесь филиал гугля и заменитель справки с документацией, да ещё и с использованием телепаторов :-))

> Anatoly Podgoretsky ©   (27.02.09 09:40) [30]
> Задача форума одна, общаться как на базаре

Ну дык, так ведь сам не дашь здеся пообщаться, фсё потрёшь :-P


 
Amoeba ©   (2009-02-27 17:43) [35]

Господа, а куда делся уважаемый приснопамятный АВТОР? Выходит, что весь флейм пропал втуне. Жаль ...


 
Anatoly Podgoretsky ©   (2009-02-27 19:09) [36]

> Amoeba  (27.02.2009 17:43:35)  [35]

Не может он пропасть, он не для него, а для нас, а мы все тут.


 
korneley ©   (2009-02-27 22:08) [37]


> Anatoly Podgoretsky ©   (27.02.09 19:09) [36]
> > Amoeba  (27.02.2009 17:43:35)  [35]Не может он пропасть,
>  он не для него, а для нас, а мы все тут.

Ну понятно, сначала Автора обсуждаем, а потом начинаем мейнфреймами меряться :)))


 
Игорь Шевченко ©   (2009-02-27 22:10) [38]


> В конференции " Начинающим" - это немного не так.


Да. В конференции " Начинающим" функция может возвращать до пяти различных значений одновременно.

Впрочем, у кого есть желание стоять с ложкой - никто не ограничивает, другое дело, что оно не у всех есть, а поообщаться хочется.


 
Германн ©   (2009-02-28 00:34) [39]


> Игорь Шевченко ©   (27.02.09 22:10) [38]

ИШ нынче злой :)
Три ветки одним махом!


 
Anatoly Podgoretsky ©   (2009-02-28 10:34) [40]

> Германн  (28.02.2009 0:34:39)  [39]

Одним махом, семерых побивахом.
Чешская народная сказка.
Сказал бы что уже полночь, но будет неправда.



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

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

Наверх




Память: 0.55 MB
Время: 0.073 c
2-1236094545
9899100
2009-03-03 18:35
2009.04.19
Indy письмо


15-1234696527
Юрий
2009-02-15 14:15
2009.04.19
Портрет пользователей delphimaster.ru


4-1208185369
тимохов
2008-04-14 19:02
2009.04.19
Как получить унифицированное имя файла?


15-1234596212
Palladin
2009-02-14 10:23
2009.04.19
Декларирование указателя в Си


3-1219735607
TNT
2008-08-26 11:26
2009.04.19
IBQuery и Filter





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