![]() |
rekursiver mist^^
also ich hab wieder ein kleines Problem mit meinem Taschenrechner, den ich programmieren wollte(es scheinen viele aus meinem Kurs hier angemeldet zu sein^^)
ich hab irgendwie rekursiven mist gebaut. also ich habe folgendes Problem: ich habe drei funktionen, die in einander rekursiv sind. das heißt, in der ersten rufe ich die zweite auf, in der zweiten die dritte und in der dritten wieder die erste. das dumme ist, dass Delphi von oben nach unten liest und, wenn eine Funktion oben aufgerufen wird, die unten erst geschrieben ist, gibt es einen fehler. mir ist leider keine möglichkeit eingefallen, das zu verändern. deshalb sage ich an dieser stelle einfach mal HILFE!!!^^ danke im voraus xelax90 |
Re: rekursiver mist^^
Entweder du organisiserts deinen Code sauber in klassen oder du nutzt die
![]() |
Re: rekursiver mist^^
du musst die functionen im interface deklarieren, am besten in klassen...es geht aber auch so
|
Re: rekursiver mist^^
Du hast nicht nur mit Deinem Code "Mist" gebaut ... auch der Titel, den Du Deinem Thema gegeben hast, ist als ebensolcher zu bezeichnen.
:roll: |
Re: rekursiver mist^^
Zitat:
TOPIC:
Delphi-Quellcode:
So würde ich das lösen
TMyFunction = class(TObject)
private function Funktion1(Variable : Irgendwas):Nochwas; function Funktion2(Variable : Irgendwas):Nochwas; function Funktion3(Variable : Irgendwas):Nochwas; public end; function TMyFunction.Funktion1(Variable : Irgendwas):Nochwas; begin Funktion2(Variable); end; function TMyFunction.Funktion2(Variable : Irgendwas):Nochwas; begin Funktion3(Variable); end; function TMyFunction.Funktion3(Variable : Irgendwas):Nochwas; begin Funktion1(Variable); end; |
Re: rekursiver mist^^
kann mir einer sagen, wie genau das geht. ich find in der Hilfe nicht die genaue Anweisung.
am bessten für beide fälle, damit ich die vergleichen kann. danke das mit dem Titel Stimmt doch oder?? das ist rekursiver mist. zumindest empfinde ich das als solchen.^^ und die dritte variante will ich nicht machen, weil die funktionen nicht direkt im Form gebraucht werden, sondern als unit da drin landen. |
Re: rekursiver mist^^
Delphi-Quellcode:
Function A; Forward; // <------
Function B; Begin A; End; Function A; // <--- Begin Foobar End; |
Re: rekursiver mist^^
Hallo,
auch so kannst du es ohne Klassen versuchen:
Delphi-Quellcode:
Hoffentlich funktioniert die Abbruchbedingung für deine Rekursion...
function A: Double;
function B: Double; function C: Double; begin Result := A; end; begin Result := C; end; begin Result := B; end; Gruß Hawkeye |
Re: rekursiver mist^^
Zitat:
vielleicht liegt der Mist ja nur in deinem Ansatz, was genau möchtest Du denn mit den drei Funktionen machen? Eventuell kann man es einfach nicht zyklisch lösen, dann hast Du das Problem auch ganz generell nicht. Gruß Der Unwissende |
Re: rekursiver mist^^
Zitat:
Delphi-Quellcode:
var
myfunctions : TMyFunction; . . . initialization myfunctions:=TMyFunction.Create; end. |
Re: rekursiver mist^^
ich hab das Problem jetzt so gelöst, dass ich in der unit in das interface alle funktionen deklariert habe, die ich brauche.
dadurch hat sich das Problem jetzt erledigt. und einen zyklischen verlauf hätte ich zwar machen können, aber das wäre hier in diesem Fall 10000 mal komplizierter, als die rekursion. das könnt ihr mir glauben. soweit also danke und bis demnächst, wenn ich wiedermal hilfe brauche. xelax90 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz