18
Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, Datentypen: integer, char, string, boolean boolean Vergleichsoperatoren, Wahrheitswerte und boolesche Variablen Zusammengesetzte if-then-else-Anweisungen

Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

Embed Size (px)

Citation preview

Page 1: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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

Page 2: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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

Page 3: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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

Page 4: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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

Page 5: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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'

Page 6: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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

Page 7: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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

Page 8: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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

Page 9: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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

Page 10: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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

Page 11: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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

Page 12: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

• Datentypen: integer, char, string, boolean

• Vergleichsoperatoren, Wahrheitswerte und Vergleichsoperatoren, Wahrheitswerte und boolesche Variablenboolesche Variablen

• Zusammengesetzte if-then-else-Anweisungen

Page 13: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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

Page 14: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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

Page 15: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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

Page 16: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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

Page 17: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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

Page 18: Agenda für heute, 13. April, 2006 Datentypen: integer, char, string, booleanDatentypen: integer, char, string, boolean Vergleichsoperatoren, Wahrheitswerte

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