Sign in Join
Wiki copytemporary

Const/de: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-Zurück zu den [[Data type/de|Datentypen]].
2-Zurück zu den [[Reserved words/de|reservierten Wörtern]].
3-
1+Zurück zu den [[Data type/de|Datentypen]].\
2+Zurück zu den [[Reserved words/de|reservierten Wörtern]].\
43
5-## Contents
4+=const=
65
7- * 1 const
8- * 1.1 Allgemeines zu Konstanten
9- * 1.2 Unypisierte Konstanten
10- * 1.3 Typisierte Konstanten
11- * 1.4 Verwendung **function** /**procedure** -Kopf
6+## Allgemeines zu Konstanten
127
13-
8+Mit dem Schlüsselwort **const** beginnt die Deklaration der Konstanten.\
9+Es gibt zwei Arten von Konstanten:\
10+* untypisierte Konstanten\
11+* typisierte Konstanten\
1412
15-# const
13+==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.\
14+Für untypisierte Konstanten können einfache Datentypen verwendet werden.\
1615
17-## Allgemeines zu Konstanten
16+Beispieldeklaration untypisierter Konstanten:
1817
19-Mit dem Schlüsselwort **const** beginnt die Deklaration der Konstanten.
20-Es gibt zwei Arten von Konstanten:
18+``` pascal
19+ const
20+ IntegerZahl = 210; // Konstante vom Datentyp Integer
21+ FliesskommaZahl = 2.1; // Konstante vom Datentyp Fliesskomma
22+ TextString = 'Änderung'; // Konstante vom Datentyp String
23+ Buchstabe = 'F'; // Konstante vom Datentyp String und vom Datentyp Char
24+```
2125
22- * untypisierte Konstanten
26+## Typisierte Konstanten
2327
24- * typisierte Konstanten
28+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.\
29+Im Gegensatz zu untypisierten Konstanten kann der Wert einer typisierten Konstanten zur Laufzeit des Programms geändert werden.\
30+Damit bietet unter Pascal die typisierte Konstante eine ähnliche Funktionalität, wie es in anderen Programmiersprachen der Befehl static bietet.\
2531
26-
32+Beispieldeklaration typisierter Konstanten:
2733
28-## Unypisierte Konstanten
34+``` pascal
35+ const
36+ Steuersatz: Single = 18.0;
2937
30-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.
31-Für untypisierte Konstanten können einfache Datentypen verwendet werden.
32-
33-Beispieldeklaration untypisierter Konstanten:
34-```
35-const
36- IntegerZahl = 210; // Konstante vom Datentyp Integer
37- FliesskommaZahl = 2.1; // Konstante vom Datentyp Fliesskomma
38- TextString = 'Änderung'; // Konstante vom Datentyp String
39- Buchstabe = 'F'; // Konstante vom Datentyp String und vom Datentyp Char
38+ // Konstante Array aus 6 Buchstaben.
39+ Alpha: array[1..6] of Char = ('A', 'B', 'C', 'D', 'E', 'F');
40+
41+ // Andere Variante für Char.
42+ Ziffer: array[0..5] of char = '123456';
43+
44+ // Als record.
45+ rec: record
46+ x, y, z: integer;
47+ end
48+ = (x: 123; y: 456; z: 789);
49+
50+ // Verschachtelt
51+ rec2: record
52+ x, y, z: integer;
53+ f: record
54+ a, b: single;
55+ end;
56+ c: array[0..5] of char;
57+ end
58+ = (x: 123; y: 456; z: 789;
59+ f: (a: 1.2; b: 3.4);
60+ c: '123456');
4061```
4162
42-
63+## Verwendung **function**/**procedure**-Kopf
4364
44-## Typisierte Konstanten
65+Wird **const** im **function**/**procedure**-Kopf verwendet, dann wird (regelmäßig, nicht zwingend) nur ein Zeiger der Variable übergeben. Bei dem Beispiel mit dem String, würde es ohne **const** den ganzen String bei der Übergabe kopieren.
4566
46-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.
47-Im Gegensatz zu untypisierten Konstanten kann der Wert einer typisierten Konstanten zur Laufzeit des Programms geändert werden.
48-Damit bietet unter Pascal die typisierte Konstante eine ähnliche Funktionalität, wie es in anderen Programmiersprachen der Befehl **static** bietet.
49-
50-Beispieldeklaration typisierter Konstanten:
51-```
52-const
53- Steuersatz: Single = 18.0;
54-
55- // Konstante Array aus 6 Buchstaben.
56- Alpha: array[1..6] of Char = ('A', 'B', 'C', 'D', 'E', 'F');
57-
58- // Andere Variante für Char.
59- Ziffer: array[0..5] of char = '123456';
60-
61- // Als record.
62- rec: record
63- x, y, z: integer;
64- end
65- = (x: 123; y: 456; z: 789);
66-
67- // Verschachtelt
68- rec2: record
69- x, y, z: integer;
70- f: record
71- a, b: single;
72- end;
73- c: array[0..5] of char;
74- end
75- = (x: 123; y: 456; z: 789;
76- f: (a: 1.2; b: 3.4);
77- c: '123456');
78-```
67+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.
7968
80-## Verwendung **function** /**procedure** -Kopf
69+Dafür kann die Variable in der function/procedure **nicht** geändert werden.
8170
82-Wird **const** im **function** /**procedure** -Kopf verwendet, dann wird (regelmäßig, nicht zwingend) nur ein Zeiger der Variable übergeben. Bei dem Beispiel mit dem String, würde es ohne **const** den ganzen String bei der Übergabe kopieren.
71+``` pascal
72+procedure Ausgabe(const s :String);
73+begin
74+ WriteLn(s);
75+end;
8376
84-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.
77+var
78+ s1: string;
8579
86-Dafür kann die Variable in der function/procedure **nicht** geändert werden.
87-```
88-procedure Ausgabe(const s :String);
89- begin
90- WriteLn(s);
91- end;
92-
93- var
94- s1: string;
95-
96- begin
97- s1 := 'Ein String';
98- Ausgabe(s1);
99- Ausgabe('Hello World !'); // Auch als Konstante möglich.
100- end.
80+begin
81+ s1 := 'Ein String';
82+ Ausgabe(s1);
83+ Ausgabe('Hello World !'); // Auch als Konstante möglich.
84+end.
10185```
10286
10387---
104-*From the Free Pascal wiki, page "Const/de", as the Internet Archive kept it on 2023-10-07. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
88+*From the Free Pascal wiki, page "Const/de", as it stood on 2020-02-12 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history