[ Startseite ] |
Aufgabe 5 b - Rekursion - Lösung
Fügen Sie der Klasse TMyRobot eine Methode UmDieSperre hinzu, die Robby von A nach B fahren läßt.
procedure TMyRobot.UmDieSperre_rekursiv;
Var SpaltenAnzahl: Integer;
begin
SpaltenAnzahl := 0;
ZuDerSperre_rekursiv (SpaltenAnzahl);
RechtsDrehen;
RechtsDrehen;
RechtsDrehen;
UmgeheDieSperre;
RechtsDrehen;
RechtsDrehen;
RechtsDrehen;
VonDerSperreWeg_rekursiv (SpaltenAnzahl);
end;
procedure TMyRobot.UmgeheDieSperre;
begin
If RechtsFrei
Then
Begin
RechtsDrehen;
Vor;
Vor;
RechtsDrehen;
End
Else
Begin
Vor;
UmgeheDieSperre; // hier ist der Selbstaufruf
Vor;
End;
end;
procedure TMyRobot.UmDieSperre_iterativ;
Var SpaltenAnzahl,
ZeilenAnzahl : Integer;
begin
ZuDerSperre_iterativ (SpaltenAnzahl);
RechtsDrehen;
RechtsDrehen;
RechtsDrehen;
UmgeheDieSperre;
RechtsDrehen;
RechtsDrehen;
RechtsDrehen;
VonDerSperreWeg_iterativ (SpaltenAnzahl);
end;
procedure TMyRobot.ZuDerSperre_rekursiv(var Anzahl: Integer);
begin
If VorneFrei
Then
Begin
Anzahl := Anzahl + 1;
Vor;
ZuDerSperre_rekursiv(Anzahl);
End;
end;
procedure TMyRobot.VonDerSperreWeg_rekursiv(var Anzahl: Integer);
begin
If (Anzahl > 0)
Then
Begin
Vor;
Anzahl := Anzahl - 1;
VonDerSperreWeg_rekursiv(Anzahl)
End;
end;
procedure TControlFrm.Aufgabe3IterativSpeedButtonClick(Sender: TObject);
begin
RD1.UmDieSperre_rekursiv;
end;
23. Feb. 06 GI-FIBBB HU Berlin Christian Steinbrucker u. T. Kreichauf |