Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Klausur-Fragen (https://www.delphipraxis.net/164205-klausur-fragen.html)

Meflin 2. Nov 2011 17:40

AW: Klausur-Fragen
 
Zitat:

Zitat von p80286 (Beitrag 1134102)

Es gibt die Möglichkeit, daß eine Pocedure einen Wert zurück gibt, und zwar dann wenn ein oder mehrere Parameter als var übergeben werden.
z.B.
Delphi-Quellcode:
procedure DecodeDate(const DateTime: TDateTime; var Year, Month, Day: Word);
Gruß
K-H

Das ist KEIN Rückgabewert, sondern ein Seiteneffekt. Prozeduren haben keine Rückgabewerte, Funktionen MÜSSEN einen haben. Punkt.

Sir Rufo 2. Nov 2011 17:50

AW: Klausur-Fragen
 
Zitat:

Zitat von Meflin (Beitrag 1134106)
Zitat:

Zitat von p80286 (Beitrag 1134102)

Es gibt die Möglichkeit, daß eine Pocedure einen Wert zurück gibt, und zwar dann wenn ein oder mehrere Parameter als var übergeben werden.
z.B.
Delphi-Quellcode:
procedure DecodeDate(const DateTime: TDateTime; var Year, Month, Day: Word);
Gruß
K-H

Das ist KEIN Rückgabewert, sondern ein Seiteneffekt. Prozeduren haben keine Rückgabewerte, Funktionen MÜSSEN einen haben. Punkt.

Schauen wir uns die Ausgangssituation nochmal an:
Zitat:

Zitat von hotkey (Beitrag 1134073)
Eine Funktion liefert einen Wert zurück , eine Prozedur nicht , mein Lehrer : eine Prozedur auch => verunsichert.

Somit ist also die Frage:
Zitat:

Kann eine procedure einen Wert zurückliefern?
Die Frage ist nicht:
Zitat:

Hat eine procedure einen Rückgabewert?
Denn eine procedure kann durchaus einen Wert zurückliefern, hat aber keinen Rückgabewert, denn dann müsste diese als Funktion deklariert werden.

implementation 2. Nov 2011 17:56

AW: Klausur-Fragen
 
Zitat:

Zitat von p80286 (Beitrag 1134102)
Delphi-Quellcode:
procedure DecodeDate(const DateTime: TDateTime; var Year, Month, Day: Word);

Hier würde ich lieber
Delphi-Quellcode:
out
-Parameter verwenden, da der ursprüngliche Wert von Year, Month und Day keine Rolle spielt.

Delphi-Quellcode:
var
= Ein- und Ausgabeparameter
Delphi-Quellcode:
out
= reiner Ausgabeparameter

Meflin 2. Nov 2011 17:57

AW: Klausur-Fragen
 
Zitat:

Zitat von Sir Rufo (Beitrag 1134110)
Denn eine procedure kann durchaus einen Wert zurückliefern, hat aber keinen Rückgabewert, denn dann müsste diese als Funktion deklariert werden.

Wenn du einen Seiteneffekt als "zurückliefern" bezeichnen willst, ist das mindestens irreführend, und ich bezweifle auch, dass das irgendjemand "vom Fach" tut.

Sir Rufo 2. Nov 2011 18:05

AW: Klausur-Fragen
 
Zitat:

Zitat von Meflin (Beitrag 1134112)
Zitat:

Zitat von Sir Rufo (Beitrag 1134110)
Denn eine procedure kann durchaus einen Wert zurückliefern, hat aber keinen Rückgabewert, denn dann müsste diese als Funktion deklariert werden.

Wenn du einen Seiteneffekt als "zurückliefern" bezeichnen willst, ist das mindestens irreführend, und ich bezweifle auch, dass das irgendjemand "vom Fach" tut.

Es bringt dem Fragesteller hier aber nichts, dass wir hier in Haarspaltereien verfallen (auch wenn diese noch so fundiert sind).
Die Aussage kommt von einem Lehrer und in diesem Kontext sollte man auch diese Frage beantworten. ;)

hotkey 2. Nov 2011 19:52

AW: Klausur-Fragen
 
Eine Frage hätte ich noch : Was sind Parameter ? Bitte Bezug auf Funktionen/Prozeduren nehmen.


Danke schon im Voraus.

implementation 2. Nov 2011 20:05

AW: Klausur-Fragen
 
Parameter sind spezielle Variablen, die nur innerhalb einer Prozedur oder Funktion gültig sind, und deren Wert ("Argument") beim Aufruf festgelegt wird:
Delphi-Quellcode:
procedure Prozedur(param: Integer); // 1 Parameter: param
begin
  // Tu was mit param
  Writeln(param);
end;

// Aufruf
Prozedur(56); // 1 Argument: 56
              // param = 56
// Ausgabe: 56

cookie22 2. Nov 2011 20:17

AW: Klausur-Fragen
 
Zitat:

Zitat von Sir Rufo (Beitrag 1134113)
Es bringt dem Fragesteller hier aber nichts, dass wir hier in Haarspaltereien verfallen (auch wenn diese noch so fundiert sind).
Die Aussage kommt von einem Lehrer und in diesem Kontext sollte man auch diese Frage beantworten. ;)

Leider ist es aber oft so, dass Lehrer nicht richtig Bescheid wissen und Halbwissen verbreiten. Im Sinne der guten Noten, beantwortet man die Fragen dann besser doch so, wie es der Lehrer gerne hätte. :P


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

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