Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#29
  Alt 4. Jul 2003, 07:42
Zitat von Chewie:
Hä? Du hast die 5 nicht als Konstante deklariert
Das war vielleicht nicht leicht zu verstehen, ich meine das hier:

Code:
function Test : integer;
begin
  result := 5;
end;
Das ist nicht als CONST deklariert, stimmt, aber trotzdem nicht variabel, außerdem macht es keinen Sinn solch eine Funktion zu verwenden. Es ist halt ein Beispiel.

Worauf ich hinaus wollte ist folgendes:

Angenommen es muß eine Zahl berechnet werden in einem konkreten Fall, z.B. die Mehrwertsteuer. Wo liegt da hier ein Unterschied ?

Zwischen dem hier:

Delphi-Quellcode:
procedure MWSTproc (netto : real;var brutto : real);
  begin
    brutto := netto * 1.16;
  end;
und dem :

Delphi-Quellcode:
function brutto (netto : real) : real;
  begin
    brutto := netto * 1.16;
  end;
Im Endeffekt wird die Zahl berechnet und basta. Und, wie man sieht ist die eigentliche Berechnung genau dieselbe. Ob das nun im AX Register oder sonstwo gespeichert wird, wen interessiert das ?

In beiden Fällen muß sowieso noch eine globalere Variable deklariert werden, um mit dem berechneten Wert zu hantieren.

Code:
var BruttoVar : real;
Bei Prozeduren würde das hier den Wert liefern (gespeichert in BruttoVar):

Code:
MwstProc (netto,BruttoVar
bei Funktionen:

Code:
BruttoVar := brutto (netto);
Der Nachteil von Funktionen ist halt, daß man nur einen Wert zurück erhält, während man bei Prozeduren mehrere VAR - Parameter übergeben kann. Um beim Beispiel zu bleiben:

Delphi-Quellcode:
procedure BerechneBruttoRabatt (netto, rabatt: real; var BruttoOhneRabatt,BruttoMitRabatt : real);
  begin
    BruttoOhneRabatt := netto * 1.16;
    BruttoMitRabatt := (netto - rabatt) * 1.16;
  end;
Diese Prozedur würde ZWEI Zahlen zurückliefern, die man verwenden könnte !

@Assarbad:
Zitat von Assarbad:
C wurde nämlich erfunden um Programmierern das Leben schwer zu machen.
Ist das Dein Ernst oder ironisch gemeint? C hat meiner Meinung nach gegenüber Delphi folgende Nachteile:
1. kryptische Schreibweise (wegen Steinzeit)
2. Groß- und Kleinschreibung
3. ganz gravierend folgender Code wäre möglich (in Delphi Syntax):

Delphi-Quellcode:
procedure Test;
begin
  showmessage (st);
  VAR st : string;
end;
4. usw.
Gruß
Hansa
  Mit Zitat antworten Zitat