Member
Статус: Не в сети Регистрация: 25.06.2009 Откуда: Краснодар
Всем привет! Есть программа, рисующая дерево с использованием рекурсии. Хочу сделать, чтобы можно было изменять скорость рисования дерева, для этого пытаюсь использовать процедуру sleep. Но проблема в том, что при использовании sleep при выполнении программы происходит перезаполнения стека, без этой процедуры все нормально. Подскажите, как можно исправить проблему?
Поставить правильно begin и end, относящиеся к условию "if n > 1 then". Сейчас получается бесконечная рекурсия из-за того, что условие относиться только к одной строке сразу под ним.
Проверил, и у меня нормально работает. Можно, конечно, увеличить размер памяти под стек в настройках проекта или с помощью директив {$M minstacksize,maxstacksize}, {$MINSTACKSIZE number}, {$MAXSTACKSIZE number}.
Но: зачем так много итераций, если большинство веток дерева получаются меньше одного пиксела? Вместо 15 (2^15 = 32768 итераций) поставить, например, 10-12 (2^10 = 1024 итераций). Это в Button1Click вызов Tree, последний параметр.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения