Подскажите,как в паскале вернутьсяиз процедуры в другую процедуру которая выполнялась перед этим?
Подскажите,как в паскале вернутьсяиз процедуры в другую процедуру которая выполнялась перед этим?
Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.
10 апреля 2009 в 14:04
Кирилл Brawaga Быков, я кажись понял.Всем также спасибо за советы
30 марта 2009 в 8:04
Коллега, с вами я меряться не собираюсь, опасаюсь быть поверженным прилюдно , ибо чувствую за вами определённый фаллометрический потенциал . Парню надо было на пасквиле, я ему выдал на пасквиле, к вашему сюшному коду притензий не было, возможно даже, он безупречен, хотя предвариловку достаточно было сделать для одной
функции (Так-то! К.О.).
29 марта 2009 в 20:04
Кириллу Быкову:
будем меряться?
> почитайте о предварительном объявлении.
> например, в C это выглядело бы так:
код привел на C, поскольку на паскале по памяти не могу писать.
Кстати, Бударецкому:
паскаль не поддерживает хвостовую рекурсию, а посему приведенный код быстро-быстро загнется с переполнением стека.
29 марта 2009 в 20:02
Бударецкому.
Если не канает, значитo, ФМГ1 и DNA-epic-failure2. Потому что в паскале это делается именно так.
Леониду Максимову.
Именно это я и написал. Только уже готовым кодом.
Снова Бударецкому.
Если ориентироваться на твой код, то ты не конкретизируешь свой вопрос, а в корне неверно его формулируешь (хочешь чтобы выполнялась после, а не во время, организуй вызов после, а не из), что, в общем, подтверждает3 диагноз (см. 0..2)
────────────
0) Постановка диагноза
1) Это заболевание не поддаётся лечению.
2) Имеются экспериментальные методики снижения симптомов в некоторых несложных случаях, но только на некоторое время. Иными словами, лечение требует регулярности, дабы не вызвать эксцесс.
3) Это подтверждение диагноза.
29 марта 2009 в 20:01
объявить процедуру menu до процедуры wrt, но описывать ее после.
29 марта 2009 в 17:03
Ещё раз конкретизирую свой вопрос:
procedure wrt;
операторы;
menu;-unknown identifier(если menu убрать прога работает но по
окончании процедуры wrt программа завершается)
end;
procedure menu;
операторы;
wrt;
end;
begin
menu;
end.
Как сделать чтоб после процедуры wrt опять выполнялась процедура menu?
29 марта 2009 в 17:02
#27 не канает
28 марта 2009 в 7:05
Пробуй так, я кажется понял, чё те надо.
procedure wrt;forward;
procedure menu
begin
операторы
wrt;
end;
procedure wrt;
begin
операторы
menu;
end;
27 марта 2009 в 23:00
наверно вы обманываете
procedure menu
begin
операторы
wrt; – пишется здесь
end;
procedure wrt;
begin
операторы
menu; – вот тут пишется unkonwn identifier (не правда)
end;
суть в том, что вторая процедура используется раньше, чем объявлена. почитайте о предварительном объявлении.
например, в C это выглядело бы так:
void menu();
void wrt();
void menu(){
…;
wrt();
return;
}
void wrt(){
…;
menu();
return;
}
27 марта 2009 в 19:04
Прикол в том, что если просто в одной процедуре вызвать другую, тона название одной из них пишется unkonwn identifier.Пример:
procedure menu
begin
операторы
wrt;
end;
procedure wrt;
begin
операторы
menu; – вот тут пишется unkonwn identifier
end;
простая перестановки их местами ни к чему не приводит…
Есть тут какое то решение?
27 марта 2009 в 7:05
Ежу понятно, что в пасквиле по адресу надо. А вызвать — ну так и вызвать!
26 марта 2009 в 23:00
не имя передавать надо, а адрес
26 марта 2009 в 19:05
А вызвать как?
26 марта 2009 в 19:01
Параметром передать, фигли.
26 марта 2009 в 14:04
Нужно наверное знать её имя )
26 марта 2009 в 9:00
Вызови перед выходом, какие проблемы.
26 марта 2009 в 1:00
Попробуй return;
25 марта 2009 в 23:02
передавайте указатель на первую процедуру во вторую :Ь
25 марта 2009 в 22:04
(1) ТЗ в студию… Нутром чую, что можно обойтись и без всяких извратов с процедурами.
25 марта 2009 в 21:05
Нужно до выхода )
25 марта 2009 в 21:02
что-то не совсем понимаю, извини…
в чем проблема? выходи из одной процедуры… вызывай другую процедуру…
25 марта 2009 в 21:00
Наверное дело обстоит так:
1)Выполняется процедура use_pistol(); (пример)
2)Выполнилась
3)Выполняется процедура second();
4)Нужно снова выполнить первую
дело именно так и обстоит)
жду ответа)
25 марта 2009 в 9:01
"Перед этим" — что "ЭТО"?
25 марта 2009 в 7:00
Use the call/cc and shift/reset, Luke!
25 марта 2009 в 3:00
Вторая процедура находится в первой, или же вне???
25 марта 2009 в 0:02
Наверное дело обстоит так:
1)Выполняется процедура use_pistol(); (пример)
2)Выполнилась
3)Выполняется процедура second();
4)Нужно снова выполнить первую
Требую конкретики от аффтара )
25 марта 2009 в 0:01
halt завершит работу всей программы..
очевидно всё-таки exit
25 марта 2009 в 0:01
exit;
25 марта 2009 в 0:00
halt
25 марта 2009 в 0:00
это аналогия return в C
24 марта 2009 в 23:05
выйти из процедуры, очевидно.
24 марта 2009 в 23:02
Вызвать её ещё раз ))
24 марта 2009 в 23:02
может exit