Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi rekursiver mist^^ (https://www.delphipraxis.net/87342-rekursiver-mist%5E%5E.html)

xelax90 27. Feb 2007 12:46


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

Luckie 27. Feb 2007 12:50

Re: rekursiver mist^^
 
Entweder du organisiserts deinen Code sauber in klassen oder du nutzt die Delphi-Referenz durchsuchenforward Deklaration voon Funktionen.

dominikkv 27. Feb 2007 12:53

Re: rekursiver mist^^
 
du musst die functionen im interface deklarieren, am besten in klassen...es geht aber auch so

Daniel 27. Feb 2007 12:58

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:

Angel4585 27. Feb 2007 13:01

Re: rekursiver mist^^
 
Zitat:

Zitat von Daniel
Du hast nicht nur mit Deinem Code "Mist" gebaut ... auch der Titel, den Du Deinem Thema gegeben hast, ist als ebensolcher zu bezeichnen.
:roll:

Find ich auch..

TOPIC:
Delphi-Quellcode:
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;
So würde ich das lösen

xelax90 27. Feb 2007 13:03

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.

alzaimar 27. Feb 2007 13:04

Re: rekursiver mist^^
 
Delphi-Quellcode:
Function A; Forward; // <------

Function B;
Begin
  A;
End;

Function A; // <---
Begin
  Foobar
End;

Hawkeye219 27. Feb 2007 13:08

Re: rekursiver mist^^
 
Hallo,

auch so kannst du es ohne Klassen versuchen:

Delphi-Quellcode:
function A: Double;

  function B: Double;
 
    function C: Double;
    begin
      Result := A;
    end;
   
  begin
    Result := C;
  end;
 
begin
  Result := B;
end;
Hoffentlich funktioniert die Abbruchbedingung für deine Rekursion...

Gruß Hawkeye

Der_Unwissende 27. Feb 2007 13:10

Re: rekursiver mist^^
 
Zitat:

Zitat von xelax90
das mit dem Titel Stimmt doch oder??
das ist rekursiver mist. zumindest empfinde ich das als solchen.^^

Hi,
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

Angel4585 27. Feb 2007 13:14

Re: rekursiver mist^^
 
Zitat:

Zitat von xelax90
und die dritte variante will ich nicht machen, weil die funktionen nicht direkt im Form gebraucht werden, sondern als unit da drin landen.

Was ist da im Form drin? das kannst du jede Unit rein machen die du willst und von mir aus ne variable delklarieren und im init-part erzeugen...

Delphi-Quellcode:
var
myfunctions : TMyFunction;

.
.
.

initialization
myfunctions:=TMyFunction.Create;
end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 Uhr.
Seite 1 von 2  1 2      

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