Upload
rupprecht-hennen
View
106
Download
3
Embed Size (px)
Citation preview
Agenda für heute, 13. April, 2006
• Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean
• Vergleichsoperatoren, Wahrheitswerte und boolesche Variablen
• Zusammengesetzte if-then-else-Anweisungen
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Der Datentyp integer
Var i: integer;
Teilbereich der ganzen Zahlen, mit Wertebereich –2 N-1 ... 2 N-1 – 1
z.B.: -2'147'483'648 .. 2'147'483'647 (N = 32 Bit, mit Vorzeichen)
Operationen: +, –, *, DIV, MOD
1/15
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Weitere Integertypen (Delphi)
Typ Wertebereich Format
Shortint -128 .. 127 8 Bit, mit Vorzeichen
Smallint -32'768 .. 32'767 16 Bit, mit Vorzeichen
Longint -2'147'483'648 .. 2'147'483'647 32 Bit, mit Vorzeichen
Int64 -263 .. 263 -1 64 Bit, mit Vorzeichen
Byte 0 .. 255 8 Bit, ohne Vorzeichen
Word 0 .. 65'535 16 Bit, ohne Vorzeichen
Longword 0 .. 4'294'967'295 32 Bit, ohne Vorzeichen
2/15
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Der Datentyp char (Abk. für character)
Var ch:char;
Für die Speicherung und Verarbeitung von Textzeichen.
Wertebereich: definiert durch ANSI-Standard
Operationen: ORD, CHR, Vergleichsoperationen
3/15
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Der Datentyp char, Beispiele
4/15
Ord('k') = 107
Chr(107) = 'k'
var ch: char;
ch:= '=';
Ord(ch) = 61
'B' < 'C' < 'c'
Chr(Ord('C') + 34) = 'c'
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
ANSI-Zeichensatz (American National Standards Institute)
Der ANSI-Zeichensatz enthält 256 (28) Zeichen.
Beispiele
Ordinalzahl Zeichen
13 <CR>
36 $
56 8
107 k
137 ‰
174 ®
223 ß
252 ü
Die Zeichen 0 bis 127 entsprechen dem ASCII-Zeichensatz (American Standard Code for Information Interchange).
5/15
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Textverarbeitung
varS: string;
Um die Programmierung von Zeichenfolgen zu vereinfachen, stellt Pascal den Datentyp string zur Verfügung, mit speziellen, auf die Verarbeitung von Text zugeschnittenen Operationen.
Variablen vom Typ string können bis zu 255 Zeichen enthalten.
Es können aber kürzere Strings deklariert werden:
var
S1: string[10];
S2: string[135];
6/15
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Textverarbeitung
Eine String-Variable kann aber auch indiziert werden:
var
S: string;
i: integer;
Die Variable S[i] stellt das i-te Zeichen von S dar.
Die Anweisung S[3]:= 'C' weist dem dritten Zeichen von S den Wert C zu.
Einer String-Variablen kann man ganze Zeichenketten zuweisen:
S:= 'Geben Sie ein Datum ein: '; write(S)
7/15
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Operationen mit Strings
const ort = 'Zuerich';
var S1, S2: string;
Zuweisungsanweisungen:
S1:= 'ETH '; S2:= ort;
Verketten von String-Operanden mit + :
S1:= S1 + S2;
S1 enthält jetzt den Text: ETH Zuerich
8/15
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Operationen mit Strings
var S: string[15];
S:= 'ETH Zuerich';
11 E T H Z u e r i c hS
0 15
length(S) high(S)
S[13] = undefinierter Wert
S[16] = Kompilations- oder Laufzeitfehler
9/15
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Der Datentyp boolean
Wahrheitswerte, mit Wertebereich { TRUE (1), FALSE (0) }
Operationen: NOT, AND, OR, XOR
10/15
• Datentypen: integer, char, string, boolean
• Vergleichsoperatoren, Wahrheitswerte und Vergleichsoperatoren, Wahrheitswerte und boolesche Variablenboolesche Variablen
• Zusammengesetzte if-then-else-Anweisungen
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Fallunterscheidung
Grundlage für eine Verzweigung ist ein Wahrheitswert (wahr, falsch).
Das kann sein
a) der Wahrheitswert selbst true, false
b) der Wert einer booleschen Variable var b: boolean;
c) der Wert eines booleschen Ausdrucks x >= 0
11/15
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Boolesche Ausdrücke
Boolesche Konstanten
true, false
Ausdrücke mit Vergleichsoperatoren
x >= 0 x <> y
Ausdrücke mit booleschen Operanden und logischen Operatoren
var
a, b: boolean;
a and (true or b)
(x >= 0) and (a or b)
12/15
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Boolesche Variablen brauchen nicht ausgewertet zu werden
var b: boolean;
Gegeben: b:= true
Der Ausdruck (b = true) hat den Wahrheitswert "true"
Der Ausdruck (b = false) hat den Wahrheitswert "false"
Also können wir
statt if b = true then einfach if b then schreiben
und
statt if b = false then einfach if not b then schreiben
Gegeben: b:= false
Der Ausdruck (b = true) hat den Wahrheitswert "false"
Der Ausdruck (b = false) hat den Wahrheitswert "true"
13/15
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Zusammengesetzte Bedingungen
Mit booleschen Operatoren können mehrere Bedingungen für die Fallunterscheidung berücksichtigt werden:
if Bedingung1 and Bedingung2 or Bedingung3
then Anweisungsfolge1
else Anweisungsfolge2
14/15
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
• Datentypen: integer, char, string, boolean
• Vergleichsoperatoren, Wahrheitswerte und boolesche Variablen
• Zusammengesetzte if-then-else-AnweisungenZusammengesetzte if-then-else-Anweisungen
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Zusammengesetzte if-then-else-Anweisungen
Die then- und die else-Klausel einer if-Anweisung können beliebige Anweisungen enthalten, insbesondere auch if-Anweisungen:
if Bedingung1
then if Bedingung2
then Anweisungsfolge1
else Anweisungsfolge2
else Anweisungsfolge3
Mit "geschachtelten" if-AnweisungenKönnen mehr als zwei Verzweigungenprogrammiert werden.
15/15