![]() |
|
|
#1
|
|||
|
|||
|
помогите реализовать плиз:
![]() в коде где-то ошибка, а вот где понять не могу: Код:
procedure TForm1.ToBuild(x1,y,x2:integer); var ax1,bx1,ax2,bx2:integer; begin image1.Canvas.MoveTo(x1,y); image1.Canvas.LineTo(x2,y); ax1:=x1; bx1:=x1+round((x2-x1)/3); ax2:=x2-round((x2-x1)/3); bx2:=x2; if round((x2-x1)/3)>=1 then exit; end; procedure TForm1.Button1Click(Sender: TObject); begin ToBuild(5,20,605); end; end. Последний раз редактировалось Admin, 23.05.2011 в 09:34. |
|
#2
|
||||
|
||||
|
что-то не наблюдаю рекурсивный вызов функции........
|
|
#3
|
|||
|
|||
|
Цитата:
Код:
if round((x2-x1)/3)>=1 then begin ToBuild(ax1,y+50,bx1); ToBuild(ax2,y+50,bx2); end; Последний раз редактировалось lmikle, 24.05.2011 в 00:02. |
|
#4
|
||||
|
||||
|
типа, того...
В смысле заменить??? |
|
#5
|
|||
|
|||
|
по иному это же прописать нужно...так не принимает препод...
|
|
#6
|
||||
|
||||
|
Цитата:
|
|
#7
|
|||
|
|||
|
да...
либо рекурсию как-то по другому описать можно??? |
|
#8
|
||||
|
||||
|
в принципе описано все правильно, алгоритм выдерживает хороший тон, если честно, даже не знаю что вашему преподу нужно..
если только его как-нибудь оптимизировать, например это (x2-x1)/3 заменить на это (x2-x1)*0.3 или на это (x2-x1) div 3 при этом тогда не нужно округление роундом и.т.д. |
|
#9
|
|||
|
|||
|
я тоже не понимаю препода...
спасибо за помощь;-) |
|
#10
|
||||
|
||||
|
Цитата:
![]() |
|
#11
|
||||
|
||||
|
Может препод хочет без рекурсии? В теории любой рекурсивный алгоритм можно описать циклом и наоборот. А вот как именно - думать надо.
|
|
#12
|
||||
|
||||
|
Цитата:
Если бы препод предложил поиск факториала без ракурсии написать, я бы бровью не повел. но в данном случае я бы его послал в рекурсивный нах... |
|
#13
|
||||
|
||||
|
Да мало ли, чего ему в голову взбрело...
|