Difference between revisions of "Const/de"

From Free Pascal wiki
Jump to navigationJump to search
m
Line 6: Line 6:
 
__TOC__
 
__TOC__
 
<br>
 
<br>
=Allgemeines zu Konstanten=
+
=const=
 +
==Allgemeines zu Konstanten==
 
Mit dem Schlüsselwort '''const''' beginnt die Deklaration der Konstanten.<br>
 
Mit dem Schlüsselwort '''const''' beginnt die Deklaration der Konstanten.<br>
 
Es gibt zwei Arten von Konstanten:<br>
 
Es gibt zwei Arten von Konstanten:<br>
Line 12: Line 13:
 
* typisierte Konstanten<br>
 
* typisierte Konstanten<br>
 
<br>
 
<br>
=Unypisierte Konstanten=
+
==Unypisierte Konstanten==
 
Einer untypisierten Konstanten kann nur einmal und zwar zum Zeitpunkt ihrer Deklaration (Bekanntmachung, Erstellung) ein Wert zugewiesen werden. Dieser Wert kann während der Laufzeit des Programmes nicht mehr geändert werden.<br>
 
Einer untypisierten Konstanten kann nur einmal und zwar zum Zeitpunkt ihrer Deklaration (Bekanntmachung, Erstellung) ein Wert zugewiesen werden. Dieser Wert kann während der Laufzeit des Programmes nicht mehr geändert werden.<br>
 
Für untypisierte Konstanten können einfache Datentypen verwendet werden.<br>
 
Für untypisierte Konstanten können einfache Datentypen verwendet werden.<br>
Line 19: Line 20:
 
<syntaxhighlight>
 
<syntaxhighlight>
 
  const
 
  const
   IntegerZahl = 210;           // Konstante vom Datentyp Integer
+
   IntegerZahl     = 210;       // Konstante vom Datentyp Integer
   FliesskommaZahl = 2.1;       // Konstante vom Datentyp Fliesskomma
+
   FliesskommaZahl = 2.1;       // Konstante vom Datentyp Fliesskomma
   TextString = 'Änderung';     // Konstante vom Datentyp String
+
   TextString     = 'Änderung'; // Konstante vom Datentyp String
   Buchstabe = 'F';             // Konstante vom Datentyp String und vom Datentyp Char
+
   Buchstabe       = 'F';       // Konstante vom Datentyp String und vom Datentyp Char
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
  
=Typisierte Konstanten=
+
==Typisierte Konstanten==
 
Bei typisierten Konstanten wird der Konstanten ein bestimmter Datentyp zugewiesen. Damit ist es möglich neben einfachen Datentypen, einer typisierten Konstanten z.B. auch Records und Arrays zuzuweisen.<br>
 
Bei typisierten Konstanten wird der Konstanten ein bestimmter Datentyp zugewiesen. Damit ist es möglich neben einfachen Datentypen, einer typisierten Konstanten z.B. auch Records und Arrays zuzuweisen.<br>
 
Im Gegensatz zu untypisierten Konstanten kann der Wert einer typisierten Konstanten zur Laufzeit des Programms geändert werden.<br>
 
Im Gegensatz zu untypisierten Konstanten kann der Wert einer typisierten Konstanten zur Laufzeit des Programms geändert werden.<br>
Line 35: Line 36:
 
  const
 
  const
 
   Steuersatz: Single = 18.0;
 
   Steuersatz: Single = 18.0;
   // konstantes Array aus 6 Buchstaben
+
   // Konstante Array aus 6 Buchstaben.
   Alpha: array[1..6] of Char = ('A', 'B', 'C', 'D', 'E', 'F');
+
   Alpha: array[1..6] of Char = ('A', 'B', 'C', 'D', 'E', 'F');
 +
  // Andere Variante für Char.
 +
  Ziffer: array[0..5] of char = '123456';
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
 
<br>
 
<br>
 
--[[User:Olaf|Olaf]] 17:38, 28 November 2012 (UTC)
 
--[[User:Olaf|Olaf]] 17:38, 28 November 2012 (UTC)
 +
 +
==Verwendung '''function'''/'''procedure'''-Kopf==
 +
Wird '''const''' im '''function'''/'''procedure'''-Kopf verwendet, dann wird nur ein Zeiger der Variable übergeben. Bei dem Beispiel mit dem String, würde es ohne '''const''' den ganzen String bei der Übergabe kopieren.
 +
 +
Dies könnte man auch mit [[Var/de|'''var''']] machen, aber dann wäre es nicht möglich eine Konstante der function/procedure zu übergeben.
 +
 +
Dafür kann die Variable in der function/procedure '''nicht''' geändert werden.
 +
<syntaxhighlight>
 +
procedure Ausgabe(const s :String);
 +
begin
 +
  WriteLn(s);
 +
end;
 +
 +
var
 +
  s1: string;
 +
 +
begin
 +
  s1 := 'Ein String';
 +
  WriteLn(s1);
 +
  WriteLn('Hello World !'); // Auch als Konstante möglich.
 +
end.
 +
</syntaxhighlight>

Revision as of 21:40, 16 February 2018

Deutsch (de) English (en) español (es) suomi (fi) français (fr) 中文(中国大陆)‎ (zh_CN)

Zurück zu den Datentypen.
Zurück zu den reservierten Wörtern.


const

Allgemeines zu Konstanten

Mit dem Schlüsselwort const beginnt die Deklaration der Konstanten.
Es gibt zwei Arten von Konstanten:

  • untypisierte Konstanten
  • typisierte Konstanten


Unypisierte Konstanten

Einer untypisierten Konstanten kann nur einmal und zwar zum Zeitpunkt ihrer Deklaration (Bekanntmachung, Erstellung) ein Wert zugewiesen werden. Dieser Wert kann während der Laufzeit des Programmes nicht mehr geändert werden.
Für untypisierte Konstanten können einfache Datentypen verwendet werden.

Beispieldeklaration untypisierter Konstanten:

 const
   IntegerZahl     = 210;        // Konstante vom Datentyp Integer
   FliesskommaZahl = 2.1;        // Konstante vom Datentyp Fliesskomma
   TextString      = 'Änderung'; // Konstante vom Datentyp String
   Buchstabe       = 'F';        // Konstante vom Datentyp String und vom Datentyp Char


Typisierte Konstanten

Bei typisierten Konstanten wird der Konstanten ein bestimmter Datentyp zugewiesen. Damit ist es möglich neben einfachen Datentypen, einer typisierten Konstanten z.B. auch Records und Arrays zuzuweisen.
Im Gegensatz zu untypisierten Konstanten kann der Wert einer typisierten Konstanten zur Laufzeit des Programms geändert werden.
Damit bietet unter Pascal die typisierte Konstante eine ähnliche Funktionalität, wie es in anderen Programmiersprachen der Befehl static bietet.

Beispieldeklaration typisierter Konstanten:

 const
   Steuersatz: Single = 18.0;
   // Konstante Array aus 6 Buchstaben.
   Alpha:  array[1..6] of Char = ('A', 'B', 'C', 'D', 'E', 'F');
   // Andere Variante für Char.
   Ziffer: array[0..5] of char = '123456';



--Olaf 17:38, 28 November 2012 (UTC)

Verwendung function/procedure-Kopf

Wird const im function/procedure-Kopf verwendet, dann wird nur ein Zeiger der Variable übergeben. Bei dem Beispiel mit dem String, würde es ohne const den ganzen String bei der Übergabe kopieren.

Dies könnte man auch mit var machen, aber dann wäre es nicht möglich eine Konstante der function/procedure zu übergeben.

Dafür kann die Variable in der function/procedure nicht geändert werden.

procedure Ausgabe(const s :String);
begin
  WriteLn(s);
end;

var
  s1: string;

begin
  s1 := 'Ein String';
  WriteLn(s1);
  WriteLn('Hello World !'); // Auch als Konstante möglich.
end.