[Back to TURTLE SWAG index] [Back to Main SWAG index] [Original]
(* ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Programated by Vladimir Zahoransky ³
³ Vladko software ³
³ Contact : zahoran@cezap.ii.fmph.uniba.sk ³
³ Program tema : McCarthy 91 (rekusion) with turtles ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ *)
{
Well, the rekusions are sometimes very difficult. My program have
a lot of versions.
Version 1 : Rekusive inside exp. rekpic12.pas, rekpic14, rekpic16...
Version 2 : Rekusive inside with a lot rekusive commands
exp. rekpic01.pas ...
Version 3 : Rekusive inside with one rekusive command but it is
command for a lot commands. (rekpic20.pas rekpic22.pas ... )
Version 4 : Rekusive outside flepic05.pas
If you did study my programs then you know some rekusions which you
do not undestand. Some are easy writed, but make very difficult.
Some rekusions we can to update to cycles, but some NO.
For example this. McCarthy 91. Rekusion is version rekusion of rekusion.
If we want to study rekusion algorithm we can use stack, (all versions)
but here is one big problem : All my rekusions (rekpic01..rekpic24) are
working with graphic. This don't work. Stack for this rekusion is not
good to use. Here stay a question. Can stack to work with all rekusion
algorithm. (graphical) Oh,oh. No. This rekusion McCarthy_91 is one
rekusion where stack ... . Stack we can use IF you can write this
rekusion WITH cycles. This rekusion we can not to write with cycles.
Well, this program simulate how can we use turtle graphic in
rekusions this type. This rekusion is not here to study perfekt,
because it is very diffycult to undestand. This program is a metod
how can we simulate this with turtles.
The metod is : If rekusion penetrate write line with one color
and when emerge with other color. If it is primitive part then
with color. All steps are x for ower lines. And the rekusion
variable is y for lines. Init is a point where the rekusion
start. Then increment poc. (account variable) If we will make
it then you see course of rekusion.
}
Uses Okor;
Type Mykor=Object(kor)
Function McCarthy_91(x:integer):integer;
End;
Var poc:byte;
Function Mykor.McCarthy_91(x:integer):integer;
Begin
write(x:4);
inc(poc);
if x > 100 then McCarthy_91:=x-10
else
begin
Zmenfp(5);
ZmenXY(poc,x);
McCarthy_91:=McCarthy_91(McCarthy_91(x+11));
Zmenfp(9);
ZmenXY(poc,x);
end;
End;
Var k:Mykor;
Number:integer;
Begin
Randomize;
Number:=Random(91);
Poc:=0;
With k do Begin
Init(0,0,0);
McCarthy_91(Number);
CakajKlaves;
Koniec;
End;
End.
[Back to TURTLE SWAG index] [Back to Main SWAG index] [Original]