Sign in Join
Wiki copytemporary

Const/de: what changed

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

OldNewLine
1-\
2-Zurück zu den [[Data type/de|Datentypen]].\
3-Zurück zu den [[Reserved words/de|reservierten Wörtern]].\
4-\
5-\
6-=const=
1+Zurück zu den [[Data type/de|Datentypen]].
2+Zurück zu den [[Reserved words/de|reservierten Wörtern]].
3+
74
8-## Allgemeines zu Konstanten
5+## Contents
96
10-Mit dem Schlüsselwort **const** beginnt die Deklaration der Konstanten.\
11-Es gibt zwei Arten von Konstanten:\
12-* untypisierte Konstanten\
13-* typisierte Konstanten\
14-\
15-==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.\
16-Für untypisierte Konstanten können einfache Datentypen verwendet werden.\
17-\
18-Beispieldeklaration untypisierter Konstanten:
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
1912
20-``` pascal
21- const
22- IntegerZahl = 210; // Konstante vom Datentyp Integer
23- FliesskommaZahl = 2.1; // Konstante vom Datentyp Fliesskomma
24- TextString = 'Änderung'; // Konstante vom Datentyp String
25- Buchstabe = 'F'; // Konstante vom Datentyp String und vom Datentyp Char
26-```
13+
2714
28-\
15+# const
2916
30-## Typisierte Konstanten
17+## Allgemeines zu Konstanten
3118
32-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.\
33-Im Gegensatz zu untypisierten Konstanten kann der Wert einer typisierten Konstanten zur Laufzeit des Programms geändert werden.\
34-Damit bietet unter Pascal die typisierte Konstante eine ähnliche Funktionalität, wie es in anderen Programmiersprachen der Befehl <b>static</b> bietet.\
35-\
36-Beispieldeklaration typisierter Konstanten:
19+Mit dem Schlüsselwort **const** beginnt die Deklaration der Konstanten.
20+Es gibt zwei Arten von Konstanten:
3721
38-``` pascal
39- const
40- Steuersatz: Single = 18.0;
22+ * untypisierte Konstanten
4123
42- // Konstante Array aus 6 Buchstaben.
43- Alpha: array[1..6] of Char = ('A', 'B', 'C', 'D', 'E', 'F');
44-
45- // Andere Variante für Char.
46- Ziffer: array[0..5] of char = '123456';
47-
48- // Als record.
49- rec: record
50- x, y, z: integer;
51- end
52- = (x: 123; y: 456; z: 789);
53-
54- // Verschachtelt
55- rec2: record
56- x, y, z: integer;
57- f: record
58- a, b: single;
59- end;
60- c: array[0..5] of char;
61- end
62- = (x: 123; y: 456; z: 789;
63- f: (a: 1.2; b: 3.4);
64- c: '123456');
24+ * typisierte Konstanten
25+
26+
27+
28+## Unypisierte Konstanten
29+
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:
6534```
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
40+```
6641
67-## Verwendung **function**/**procedure**-Kopf
42+
6843
69-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.
44+## Typisierte Konstanten
7045
71-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.
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+```
7279
73-Dafür kann die Variable in der function/procedure **nicht** geändert werden.
80+## Verwendung **function** /**procedure** -Kopf
7481
75-``` pascal
76-procedure Ausgabe(const s :String);
77-begin
78- WriteLn(s);
79-end;
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.
8083
81-var
82- s1: string;
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.
8385
84-begin
85- s1 := 'Ein String';
86- Ausgabe(s1);
87- Ausgabe('Hello World !'); // Auch als Konstante möglich.
88-end.
86+Dafür kann die Variable in der function/procedure **nicht** geändert werden.
8987```
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.
101+```
90102
91103---
92-*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).*
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).*

Back to history