Расскажите про рекурсию, запутался я с ней |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Расскажите про рекурсию, запутался я с ней |
maksimla |
3.11.2010 13:38
Сообщение
#1
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
У меня чего то не выходит делать рекурсивно. Хоть паручку программ делал рекурсивно факториала, фибоначи и деление
div без div кажится перевод чисел с десятичной в двоичную систему. Вот последние что недавно сделал сам uses graph,crt; А другие чего то не получаются такие как кривая коха нашол в интернете пример ее на паскале понел кажится а другие немогу сделать. Можете дать какие то легкие задания лутше без графики У меня сейчас задание такое Один большой квадрат а в нем 9 маленьких квадратов нарисовать и так далее в тех еще квадраты. Вот как бы знаю как делать но чего то не получается. Хоть опять можно в интернете найти решение а я эту программку хочу сам решить. но что то не понимаю в рекурсиях Сообщение отредактировано: maksimla - 3.11.2010 13:45 -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
TarasBer |
3.11.2010 13:52
Сообщение
#2
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
А что именно с квадратами не получается? Программа виснет?
В рекурсии главное - условие выхода. Вот твой пример, который ты сюда вписал, рабочий. В нём есть условие выхода - если r<=10 (оно тут явно не записано, но понятно, что при r<=10 рекурсия останавливается). Вот и квадраты - тоже с условием выхода делай. -------------------- |
maksimla |
3.11.2010 14:02
Сообщение
#3
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
Про условия выхода мне понятно вот что я сделал и неправильно
program kvadrat; если в kv(0,0,getmaxx,getmaxy,3); вместо 3 поставить 4 или больще вот чтото непонятно с рукусией -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
TarasBer |
3.11.2010 14:06
Сообщение
#4
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
С рекурсией тут всё в порядке.
Координаты внутри ошибочно написаны. Например, kv(x2,y2+y2,x2+x2+x2,y2,lvl-1); Китайский код до добра не доводит. В смысле не надо через копировать-вставить делать непонятное месиво, в котором сам путаешься. Напиши так:
Сообщение отредактировано: TarasBer - 3.11.2010 14:07 -------------------- |
maksimla |
3.11.2010 14:12
Сообщение
#5
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
скопировал вставил вместо китайского кода неправильно вставил наверное код и нечего непонятно
program kvadrat; Сообщение отредактировано: maksimla - 3.11.2010 14:14 -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
TarasBer |
3.11.2010 14:22
Сообщение
#6
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Ну квадратики внутри большого расположены в виде таблицы 3 на 3, значит, чтобы их перебрать, надо построить внешний цикл так:
for i := 0 to 2 do for j := 0 to 2 do Паре (1,1) соответствует центральный квадрат, её трогать не надо. Теперь надо координаты маленьких квадратиков вычислить так, чтобы они при i=0 были равны x и при увеличении i менялись на x2 (x2 - это треть стороны большого квадрата). kv(x+x2*i,y+y2*i,x+x2*(i+1),y+y2*(i+1),lvl-1); И аналогично для y и j. То есть в выражениях для параметров, у которых не x, а y, надо заменить i на j: kv(x+x2*i,y+y2*j,x+x2*(i+1),y+y2*(j+1),lvl-1); Я думал, сам догадаешься. > неправильно вставил наверное код В каком смысле? Не компилируется? Запускается и зависает? Запускается и вылетает? Рисует не ту картинку? Нормально говори о неполадках. А то будет как в той истории с выключенным светом. -------------------- |
maksimla |
3.11.2010 14:25
Сообщение
#7
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
неправильно вставил наверное код
ну я это только что 3 квадрата только идут в большом квадрате -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
TarasBer |
3.11.2010 14:30
Сообщение
#8
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Скриншот покажи.
После замены i на j - тоже? -------------------- |
maksimla |
3.11.2010 14:37
Сообщение
#9
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
-------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
TarasBer |
3.11.2010 14:37
Сообщение
#10
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> После замены i на j - тоже?
Заменять только те, что при игреке. -------------------- |
maksimla |
3.11.2010 14:43
Сообщение
#11
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
заменил в y i на j и при kv(0,0,getmaxx,getmaxy,3); все нормально а при kv(0,0,getmaxx,getmaxy,4); вот так
-------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
TarasBer |
3.11.2010 14:45
Сообщение
#12
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Ну и? Так надо.
Вызови kv(0,0,getmaxx,getmaxy,8), будет совсем красиво. Или тебе центральный квадрат таки нужен? Тогда убери условие <> 1 Просто ты не говоришь, что именно тебе надо, вот и додымываю на ходу. -------------------- |
maksimla |
3.11.2010 14:49
Сообщение
#13
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
я все ровно что то недопонимаю о рекурсиях
Добавлено через 3 мин. Убрал условия <>0 ага при 8 красиво рисует и правильно как надо но я все ровно не понимаю рекурсии Добавлено через 11 мин. я вот сперва не знал что надо заменить i на j что потом убрать условия <> 1 и я как бы нехотел чтобы мне решили задачу а только обьяснили бы или дали полегче задачи на рукурсию Добавлено через 19 мин. Может дадите какие то задания или что чтобы разобраться с рекурсией -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
maksimla |
8.11.2010 0:10
Сообщение
#14
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
ну вот так и нечего не разобрался я в этих фракталах и рекурсиях мне надо сейчас как то сделать в треугольники перевернутый треугольник и так далее но не как не знаю как сделать вот в интернете нашел программку где треугольники рисуются
Uses Crt,Graph; а мне еще надо тут доделать чтобы в треугольниках рисовались перевернутые треугольники может как то объясните что примерно надо делать? А то опять код выложите и я опять не пойму как рекурсивно делать хоть в коде нечего сложного не будит -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
TarasBer |
8.11.2010 9:31
Сообщение
#15
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Ты лучше у сверстников попроси объяснить.
Я умею что-то объяснять только с картинками и показывая руками, голым текстом нихрена не выйдет. -------------------- |
maksimla |
11.11.2010 17:54
Сообщение
#16
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
мои сверстники до этого не дошли еще до этого
-------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
Текстовая версия | 27.04.2024 23:22 |