AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rekursive funktionen

Ein Thema von mo-noob · begonnen am 28. Mai 2009 · letzter Beitrag vom 28. Mai 2009
Antwort Antwort
mo-noob

Registriert seit: 28. Mai 2009
1 Beiträge
 
Delphi 7 Personal
 
#1

Rekursive funktionen

  Alt 28. Mai 2009, 13:00
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
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#2

Re: Rekursive funktionen

  Alt 28. Mai 2009, 13:07
mach das function im unteren Teil (Aufruf) raus, dann sollte es klappen
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#3

Re: Rekursive funktionen

  Alt 28. Mai 2009, 13:17
Und schreibe if n<=1 then result:=1 sonst bekommst Du Probleme, wenn Du die Funktion mit negativem n aufrufst.
  Mit Zitat antworten Zitat
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Rekursive funktionen

  Alt 28. Mai 2009, 13:22
Ä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:
function summiere(n:integer): integer;
begin
if n=1 then result:=1
else result:=n+summiere(n-1)
end;
als auch im Aufruf
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
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz