Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   C++ Funktionen (Hab Probleme damit) (https://www.delphipraxis.net/67354-funktionen-hab-probleme-damit.html)

Airblader 13. Apr 2006 15:09

Re: Was sind Rückgabetypen??? ---HILFE!
 
Zitat:

Zitat von g-hun
Wenn ichs immer noch nicht richtig verstanden habe entferne ichs auch nicht.

Darum geht es garnicht.
Sowas gehört einfach nicht zum ordentlichen Ton, da es überhaupt garnichts zum Thema sagt ;)

Würde vielen Leuten gut tun, den Kodex mal zu lesen :stupid: :)

air

ichbins 13. Apr 2006 15:15

Re: Was sind Rückgabetypen??? ---HILFE!
 
Eine Funktion ist bei Delphi eine Prozedur, die aus bestimmten Werten einen anderen Wert berechnet und diesen zurückgibt.

Delphi-Quellcode:
function summe(zahl1,zahl2:integer):integer;
begin
  result:=zahl1+zahl2;
end;
Die Funktion Summe gibt einen Integer-Wert zurück. Auf diesen kannst du dann folgendermaßen zugreifen:
Delphi-Quellcode:
label1.caption:=inttostr(summe(1,2));
//jetzt ist label1.caption = '3'.
Dies ist der Rückgabewert. Meine Funktion SUMME gibt in diesem Fall einen Integerwert zurück. Ich könnte auch einen String oder jeden beliebigen anderen Variablentyp zurückgeben (integer, real, byte, boolean, string, tbitmap, tpoint, tform1, hicon, tbutton, ...):
Delphi-Quellcode:
function sayhallo(name:string):string;
begin
  result:='Hallo '+name+'!';
end;
Auf diese Funktion kannst du folgendermaßen zugreifen:
Delphi-Quellcode:
label1.caption:=sayhallo('ichbins');
//Label1.caption ist jetzt = 'Hallo ichbins!';
Der Typ der Variable die zurückgegeben wird ist der Rückgabetyp.
Die Parameter sind die Variablen die beim Aufruf in die Klammern geschrieben werden.
'Ichbins' ist im unteren Beispiel der einzige Parameter der Funktion, ein String der Rückgabewert.
Eine Funktion kann beliebig viele Parameter eines beliebigen/unterschiedlichen Typs haben.

Unter C(++) und jeder anderen mir beakannten Programmiersprache ist es genauso.

Bei C wird nun der Rückgabetyp vor den Funktionsnamen geschrieben.

Code:
int xyz
bedeutet dass die Funktion xyz einen Int(eger) Wert zurückgibt.

Bei C ist speziell, dass da void angibt, dass die Funktion keinen Rückgabewert hat, also eine Prozedur ist.

g-hun 13. Apr 2006 15:35

Re: Was sind Rückgabetypen???
 
Also ich habe das in moment so verstanden:


Beispiel:



Code:
...

int main()
{
  Punkte=BerechnePunkte();
  cout<<Punkte;
  return 0;
}

int BerechnePunkte()
{
  int Punkte;
  int Bonus=500;
  cin>>Punkte;
  Punkte+=Bonus;
  return Punkte;
}
Also stelle mir das so vor: (hpffentlich liege ich richtig)

Bei der Funktion BerechnePunkte Wird der Wert (von Punkte) an die Funktion halt weiter gegeben, so dass BerechnePunkte
den Wert von Punkte hat.
Bei der Main-Funktion wird halt der Wert (beispielweise 600, der ja von Punkte stammt) an Punkte zugewiesen.

Und somit wird beispielsweise 600 angezeigt.

So stelle ich mir das vor.
Theoretisch ist die Funktion wie eine Variable.

IST das richtig wie ich gedacht habe???

Flare 13. Apr 2006 16:10

Re: Was sind Rückgabetypen???
 
Also ich würde es anders erklären als du g-hun, aber wenn du bei deinem Beispiel als Punkte 100 eingibst und als Ergebnis 600 herausbekommst dann dürftest du es verstanden haben :wink:


Flare

g-hun 13. Apr 2006 16:30

Re: Was sind Rückgabetypen???
 
DANKE! JUNGS!

Hier kommen aber noch andere Fragen.(später)

Aber noch was bevor die Frage erledigt ist:

Wenn ich cout<<BerchnePunkte;
eingebe.
Dann wird 1 Ausgegeben.
Man muss es immer erst einer Variable zuweisen oder??
Und woran liegt es??

Tubos 13. Apr 2006 16:33

Re: Funktionen (Hab Probleme damit)
 
Du musst das Ergebnis keiner Variable zuweisen. Einfach so schreiben:
Code:
cout << BerechnePunkte();
Nicht auf die runden Klammern vergessen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:06 Uhr.
Seite 2 von 2     12   

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