![]() |
Rekursive funktionen
Das Programm soll die Zahlen von 1 bis n mittels einer rekursiven funktion addieren.
Ich bin ratlos wieso folgende Fehlermeldungen auftreten! bitte helft mir ... [Fehler] Unit1.pas(39): Ausdruck erwartet, aber 'FUNCTION' gefunden [Fehler] Unit1.pas(39): Fehlender Parametertyp [Fehler] Unit1.pas(39): Die überladene Prozedur 'summe' muss mit der Direktive 'overload' gekennzeichnet sein function summe(n:integer): integer; begin if n=1 then result:=1 else result:=n+summe(n-1) end; procedure TForm1.Button1Click(Sender: TObject); var n,erg:integer; begin n:=strtoint(edit1.text); erg:=function summe(n); edit2.text:=inttostr(erg); end; danke für die Hilfe schonmal im Vorraus mfg mo |
Re: Rekursive funktionen
mach das function im unteren Teil (Aufruf) raus, dann sollte es klappen
|
Re: Rekursive funktionen
Und schreibe
Delphi-Quellcode:
sonst bekommst Du Probleme, wenn Du die Funktion mit negativem n aufrufst.
if n<=1 then result:=1
|
Re: Rekursive funktionen
Änder am besten den Namen der Function oben in der Unit, sonst musst du sie überladen.
(Natürlich musst du den Namen dann überall ändern, sowohl in der Implementation
Delphi-Quellcode:
als auch im Aufruf
function summiere(n:integer): integer;
begin if n=1 then result:=1 else result:=n+summiere(n-1) end;
Delphi-Quellcode:
)
procedure TForm1.Button1Click(Sender: TObject);
var n,erg:integer; begin n:=strtoint(edit1.text); erg:=summiere(n); edit2.text:=inttostr(erg); end; edit: verflixtes doitsch :cyclops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 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