IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> походу рекурсия...
-morpheus-
сообщение 25.03.2007 17:13
Сообщение #1


Гость






ЭЭЭ, здравствуйте, не скажете, каким способом на паскале можно заставить процедуру вызвать саму себя?
типо такого:
Procedure blablabla(a,b,c,d:4isla);
begin
a:=123;
...........
BLABLABLA(a,b,c,d);
End;

ЗЫ. походу называецо рекусрсией... blink.gif
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
St@senk@
сообщение 25.03.2007 17:25
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 48
Пол: Мужской
Реальное имя: Максим

Репутация: -  1  +


Код
function Fact(n: integer): integer;
begin
  if n<=1 then
    Fact:=1
  else
    Fact:=n*fact(n-1);
end;

Вот простейший пример, примерно так как ты написал так и вызывается, даже можно сказать в точности.


--------------------
Три пути ведут к знанию: путь размышления - это путь самый благородный, путь подражания - это путь самый легкий и путь опыта - это путь самый горький.
Конфуций
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 25.03.2007 17:46
Сообщение #3


Гость






Цитата(St@senk@ @ 25.03.2007 17:25) *

Код
function Fact(n: integer): integer;
begin
  if n<=1 then
    Fact:=1
  else
    Fact:=n*fact(n-1);
end;

Вот простейший пример, примерно так как ты написал так и вызывается, даже можно сказать в точности.

Не, это конечно круто, но факториал-то я и сам писал... но нужно, чтоб именно процедура была, а не функция. когда я пишу чёто типа
Procedure Prutik(x,y,l,f:double);
Var x1,y1:double;
Begin
x1:=x+sin(f)*l;
y1:=y+cos(f)*l;
Line(Round(x),Round(y),Round(x1),Round(y1));
x:=x1;
y:=y1;
Begin
Prutik(x,y,l/2,f+pi/8);
Prutik(x,y,l/2,f-pi/8);
End;
End;

имею рантайм эррор 202... blink.gif blink.gif вот.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 7:30
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"