| Autor |
Beitrag |
applecoast
Hält's aus hier
Beiträge: 9
|
Verfasst: Mi 30.05.07 14:56
Hallo!
Ich bin noch relativ neu hier (war schon mal angemeldet, habe aber meinen damaligen nick vergessen)....
ich habe mal eine frage, und zwar schreiben wir morgen eine arbeit über Delphi.
Soweit komm ich ja eigentlich mit, nur sind mir die Unterschiede zwischen den Prozeduren und den Funktionen noch nicht so ganz klar.
Ich habe mir jetzt überlegt:
Prozedur: Methode des Formulars
Funktionen: Parameter sind Eingabeparamenter, es gibt einen Ausgabewert, Funktionen sind Therme, sie sind kombinierbar und verschachtelbar mit anderen funktion, und sie sind funktionen für objekte
Stimmt das so? Welche Unterschiede gibt es noch?
Wäre nett, wenn mir jemand helfen könnte....
Liebe Grüße, Ann-Kathrin :wink: Moderiert von UGrohne: Topic aus Sonstiges (Delphi) verschoben am Mi 30.05.2007 um 16:02
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mi 30.05.07 15:04
Hallo!
Mit dem Formular hat das nix zu tun. Sowohl Prozeduren als auch Funktionen gibt es mit und ohne Formular. Eigentlich nennt man Prozeduren und Funktionen, die zu einer Klasse gehören (z.B. TForm1), sowieso Methoden.
Prozeduren und Funktionen unterscheiden sich eigentlich nur dahingehend, dass Funktionen einen Rückgabewert besitzen. Sonst ist's eigentlich dasselbe.
Grüße
Christian
P.S.: www.christian-stelzm...zedurenundfunktionen
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
UGrohne
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Mi 30.05.07 15:04
Es gibt eigentlich nur einen Unterschied: Funktionen haben einen Rückgabewert, Prozeduren haben keine, das wars.
Was meinst Du mit verschachtelbar? Gib mal bitte ein Beispiel
Zu Deinem alten Nick: Wenn Du die EMail-Adresse hast, können wir den Account vielleicht ausfindig machen.
|
|
azubi_20
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Mi 30.05.07 15:07
zu den Grundlagen von Prozeduren und Funktionen siehe auch : Unterprogramme: Prozeduren und Funktionen
|
|
applecoast 
Hält's aus hier
Beiträge: 9
|
Verfasst: Mi 30.05.07 15:15
Wow, das ging aber schnell^^
was genau meint ihr mit Rückgabewert?
| Zitat: | | Was meinst Du mit verschachtelbar? |
in der schule haben wir das nicht gemacht, kann also leider kein konkretes Beispiel geben, bei mir im Buch steht aber: Funktionen können miteinander kombiniert und ineinander geschachtelt werden.
Mhh gibt es da wirklich nur den einen Unterschied? Mein Lehrer hat gesagt, dass wir für die Arbeit die Unterschiede von Prozeduren und Funktionen können müssen...nur leider weiß keiner aus unserem Kurs, welche Unterschiede es da groß gibt...Gibt es vielleicht in der Anwendung noch unterschiede? Oder ist mit Unterschied evt. die Parameterliste und der Ergebnistyp gemeint?
Liebe Grüße, Ann-Kathrin 
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mi 30.05.07 15:18
applecoast hat folgendes geschrieben: | | Oder ist mit Unterschied evt. die Parameterliste und der Ergebnistyp gemeint? |
Bei der Parameterliste gibt es keinen Unterschied zwischen Prozeduren und Funktionen. Und was den Ergebnistyp angeht: Prozeduren haben einen und Funktionen nicht.
zum Rückgabewert: Folge einfach mal den Links, die Dir gegeben wurden 
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
UGrohne
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Mi 30.05.07 15:23
Ich glaube, ich weiß was Du mit Verschachteln meinst: Das Übergeben eines Funktionsrückgabewertes an eine neue Funktion, z.B.: Delphi-Quelltext 1: 2: 3: 4:
| var test:string; begin test := IntToStr(StrToInt(Edit1.Text))); end; | Hier habe ich die beiden Funktionen IntToStr und StrToInt verschachtelt, d.h. der Rückgabewert von StrToInt wird direkt der Funktion IntToStr als Parameter übergeben. Das kannst Du mit Prozeduren natürlich nicht machen, weil sie keinen Wert direkt zurückgeben. Aber Du solltest Dir wirklich die Links anschauen, da steht auch einiges drin. Bei den Parametern gibt es, wie gesagt, keine Unterschiede, da kommt es darauf an, wie die Parameter übergeben werden. Aber das dürfte jetzt zu tief gehen.
Zuletzt bearbeitet von UGrohne am Mi 30.05.07 15:34, insgesamt 1-mal bearbeitet
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mi 30.05.07 15:26
UGrohne hat folgendes geschrieben: | | Das kannst Du mit Funktionen natürlich nicht machen, weil sie keinen Wert direkt zurückgeben. |
Du meinst Prozeduren.
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
applecoast 
Hält's aus hier
Beiträge: 9
|
Verfasst: Mi 30.05.07 15:27
ich bin grade am lesen der links^^ so könnte das bei uns im buch auch mal erklärt werden  das versteht man wenigstens....
| Zitat: | | Und was den Ergebnistyp angeht: Prozeduren haben einen und Funktionen nicht. |
Meinen wir bei den Ergebnistypen vll unterschiedliche sachen, denn die funktion hat doch einen, oder??
die allgemeine Form einer Funktion ist doch:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| function <Funktionsname>(<Parameterliste>): <Ergebnistyp>; begin ... <Funktionsname> := <Ergebnisterm>; ... end; |
liebe grüße, ann-kathrin
|
|
UGrohne
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Mi 30.05.07 15:32
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mi 30.05.07 15:36
applecoast hat folgendes geschrieben: | | Meinen wir bei den Ergebnistypen vll unterschiedliche sachen, denn die funktion hat doch einen, oder?? |
Ich hab das einfach vertauscht. Scheint heute ansteckend zu sein. 
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
applecoast 
Hält's aus hier
Beiträge: 9
|
Verfasst: Mi 30.05.07 17:39
Also ich hab jetzt noch mal in meinem Buch gestöbert und doch noch was dazu gefunden:
| Zitat: | Das Beispiel macht die Unterschiede zwischen Funktionen und Prozeduren bzw. Funktions- und Prozedurmethoden deutlich.
1. Prozeduren entsprechen selbständigen Anweisungen, Funktionen entsprechen Termen, Prozedurmethoden entsprechen Aufträgen, die das angesprochene Objekt selbstständig erledigt, Funktionsmethoden eptsprechen Anfragen an ein Objekt.
2. Funktionen und Funktionsmethoden liefern genau einen Ausgabewert, Prozeduren und Prozedurmethoden nur, wenn sie über Ausgabeparameter definiert werden.
3. Die Ausgabewerte von Funktionen und Funktionsmethoden werden über den Funktionsnamen zurückgegeben, die Ausgabewerte von Prozeduren und Prozedurmethoden über Ausgabeparameter (=Referenzparameter) in der Parameterliste. |
stimmt das, was im buch steht???
liebe grüße, Ann-Kathrin 
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mi 30.05.07 17:48
Das ist schon richtig, aber im Wettbewerb "Wie erkläre ich möglichst unverständlich" bekommt das bei mir den ersten Preis.
Man sollte jedoch beachten, dass man auch bei Funktionen und "Funktionsmethoden" Ausgabeparameter verwenden kann und nicht nur, wie es hier angedeutet wird, bei Prozeduren und "Prozedurmethoden".
Zu den Ausgabeparameter findest Du in dem Link von mir was unter dem Stichwort "call by reference".
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
applecoast 
Hält's aus hier
Beiträge: 9
|
Verfasst: Mi 30.05.07 17:57
unser ganzes buch is so aufgebaut  ....deswegen raffts auch keiner mehr :'( eigentlich macht mir informatik spaß, aber die projekte (die an sich nicht schwer sind) bekomm ich einfach nicht mehr hin.....
| Zitat: | | Zu den Ausgabeparameter findest Du in dem Link von mir was unter dem Stichwort "call by reference". |
Irgendwie bin ich zu blöd, das zu finden...
oh man, ich schreib morgen die arbeit und raff die hälfte net...
Liebe Grüße, Ann-Kathrin
Edit: Kann mir vielleicht jemand das , was bei uns im Buch steht übersetzten? Wäre echt toal lieb, weil ich raff da nur die Hälfte...
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Mi 30.05.07 19:08
Zu Punkt Zwei & Drei:
Proceduren können nur über Referenzen Werte zurückgeben (Call By Reference):
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure volumen(a,b,c: real; var v: real); begin v := a*b*c; end;
volumen(1,2,3,d); |
V ist nichts anderes als ein Zeiger auf "d" in unseren Beispiel.
D.h. nicht der Wert des V's wird verändert, sondern der Wert von "d".
V "zeigt" auf d.
Selbes Beispiel nur als Funktion:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| function volumen(a,b,c: real): real; begin volumen := a*b*c; end;
d := volumen(1,2,3); |
Wie du an dem Beispiel gut erkennen kannst, wird die Funktion mit ihrem Namen aufgerufen und gibt einen Wert zurück. In diesem Falle das Volumen.
Hoffe, dass dir das weiter hilft.
grüße
Zuletzt bearbeitet von Marc. am Mi 30.05.07 19:42, insgesamt 1-mal bearbeitet
|
|
applecoast 
Hält's aus hier
Beiträge: 9
|
Verfasst: Mi 30.05.07 19:35
so das hat mir bis jetzt schon ganz schön weiter geholfen! ihr seit echt total nett!!!
Ich habe allerdings noch eine Frage und zwar ob das stimmt...
Funktionen werden ohne Anweisungen aufgerufen, prozeduren jedoch mit Anweisungen.
Stimmt daS?
Liebe Grüße, Ann-Kathrin
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Mi 30.05.07 19:41
Was meinst du mit Anweisungen? Wenn du Parameter meinst, nein.
_________________ Markus Kinzler.
|
|
applecoast 
Hält's aus hier
Beiträge: 9
|
Verfasst: Mi 30.05.07 19:46
| Zitat: | | Was meinst du mit Anweisungen? |
also damit meine ich:
Prozeduren unterscheiden sich von Funktionen, die in Ausdrücken (und nicht in Form einer eigenen Anweisung) aufgerufen werden...
mhh stimmt das oder ist das jetzt falsch?
lg, Ann-Kathrin
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Mi 30.05.07 19:48
Es handelt sich hier um eine komsiche leicht mißverständliche Erklärung.
_________________ Markus Kinzler.
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Mi 30.05.07 19:51
Vllt wird sowas gemeint? (Im vorherigen Beispiel war Volumen eine Funktion):
Delphi-Quelltext 1:
| foo := power(Volumen(1,2,3),2); |
Also eine ineinander Schachtelung von Funktionen.
Eine Prozedur könnte ich ja nicht in "power" aufrufen.  Sonst kp.
Aber irgendwie glaube ich nicht, dass das gemeint war.... 
|
|