Agenda fr heute 4 Mrz 2010 Datentypen integer

  • Slides: 20
Download presentation
Agenda für heute, 4. März, 2010 • Datentypen: integer, char, string, boolean • Bedingte

Agenda für heute, 4. März, 2010 • Datentypen: integer, char, string, boolean • Bedingte Programmausführung • Zusammengesetzte if-then-else-Anweisungen Lesen Sie den Begleittext Kapitel 3.

Datentypen • Pascal ist eine streng typisierte Programmiersprache • Für jeden Speicherplatz muss ein

Datentypen • Pascal ist eine streng typisierte Programmiersprache • Für jeden Speicherplatz muss ein Datentyp (Datenformat) definiert werden. • Nicht dem Datentyp entsprechende Verwendung der Speicherplätze führt zu Fehlermeldungen. Programmieren und Problemlösen 2/18 © Departement Informatik, ETH Zürich

Wie werden Daten dargestellt? Datenstruktur Eigenschaft Laufzeit Literal der zu verwendende Wert selbst nicht

Wie werden Daten dargestellt? Datenstruktur Eigenschaft Laufzeit Literal der zu verwendende Wert selbst nicht veränderbar Konstante ein Bezeichner (Name), der einen Wert repräsentiert nicht veränderbar Variable ein Bezeichner, dem Werte zugewiesen werden können veränderbar Siehe Begleittext, Seiten 9, 10 & 89 Programmieren und Problemlösen 3/18 © Departement Informatik, ETH Zürich

Wie werden Variablen und Konstanten definiert? • In der Variablendeklaration werden Variablen benannt und

Wie werden Variablen und Konstanten definiert? • In der Variablendeklaration werden Variablen benannt und über den Datentyp wird definiert, welche Werte eine Variable annehmen kann. var x, summe, quadrat: integer; • Jede Variable eines Programms muss deklariert werden. • Der Datentyp von Konstanten ist implizit durch das ihnen zugeordnete Literal gegeben. const a = 20; Programmieren und Problemlösen pi = 3. 1415; 4/18 quit = 'q'; © Departement Informatik, ETH Zürich

Wie werden Variablen verändert? Der Wert einer Variablen kann verändert werden durch: a) Zuweisungsanweisung

Wie werden Variablen verändert? Der Wert einer Variablen kann verändert werden durch: a) Zuweisungsanweisung Variable : = Ausdruck; b) Parameter einer Prozedur oder Funktion Prozedur(Variable); const a = 20; var x, summe, quadrat: integer; read(x); summe: = x + 5 * a; quadrat: = sqr(x); Programmieren und Problemlösen 5/18 © Departement Informatik, ETH Zürich

Der Datentyp integer Var i: integer; j: byte; Shortint: Integer: Longint: Byte: Word: -128.

Der Datentyp integer Var i: integer; j: byte; Shortint: Integer: Longint: Byte: Word: -128. . 127 -32768. . 32767 -2'147'483'648. . 2'147'483'647 0. . 255 0. . 65535 Symbol + Operation Addition – * DIV MOD Subtraktion Multiplikation ganzzahlige Division Rest einer ganzzahligen Division Programmieren und Problemlösen 6/18 Turbo Pascal © Departement Informatik, ETH Zürich

Arithmetische Ausdrücke Wir wollen: Fläche und Diagonale von Rechtecken berechnen Var flaeche, laenge, breite,

Arithmetische Ausdrücke Wir wollen: Fläche und Diagonale von Rechtecken berechnen Var flaeche, laenge, breite, diag: integer; read(laenge); read(breite); flaeche: = laenge * breite; {Diagonale berechnen} laenge: = sqr(laenge); breite: = sqr(breite); diag: = sqrt(laenge + breite); oder diag: = sqrt(sqr(laenge) + sqr(breite)); Programmieren und Problemlösen 7/18 © Departement Informatik, ETH Zürich

Der Datentyp char (Abk. für character) Var ch: char; • Für die Speicherung und

Der Datentyp char (Abk. für character) Var ch: char; • Für die Speicherung und Verarbeitung von Textzeichen • Wertebereich: Zeichensatz definiert durch ANSI-Standard Symbol Operationen ORD Ordinalwert CHR Textzeichen für gegebenen Ordinalwert =, >, < Vergleichsoperationen <=, >=, <> Vergleichsoperationen Programmieren und Problemlösen 8/18 © Departement Informatik, ETH Zürich

Der Datentyp char, Beispiele • Textzeichen sind normalerweise Symbole des Quellprogramms • Apostrophiert werden

Der Datentyp char, Beispiele • Textzeichen sind normalerweise Symbole des Quellprogramms • Apostrophiert werden sie zu Literalen für Textdaten const var A = 'A'; ch: char; ch: = 'A'; ch: = A; 'B' < 'C' < 'c' Ord('k') = 107 Ord('K') = 75 Chr(107) = 'k' Chr(75) = 'K' = Chr(Ord('k')+32) Programmieren und Problemlösen 9/18 © Departement Informatik, ETH Zürich

Der Datentyp string var S 1: string; S 2: string[12]; enthält bis zu 255

Der Datentyp string var S 1: string; S 2: string[12]; enthält bis zu 255 Zeichen enthält bis zu 12 Zeichen Erlaubt die Verarbeitung von Zeichenfolgen: S: = 'Geben Sie ein Datum ein: '; write(S) Programmieren und Problemlösen 10/18 © Departement Informatik, ETH Zürich

Textverarbeitung mit string-Variablen Die Variable S[i] stellt das i-te Zeichen von S dar. Die

Textverarbeitung mit string-Variablen 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. Der + Operator dient der Verkettung von Zeichenfolgen Programmieren und Problemlösen 11/18 © Departement Informatik, ETH Zürich

Operationen mit Strings const ort = 'Zuerich'; var S 1, S 2: string; Zuweisungsanweisungen:

Operationen mit Strings const ort = 'Zuerich'; var S 1, S 2: string; Zuweisungsanweisungen: S 1: = 'ETH '; S 2: = ort; Verketten von String-Operanden mit + : S 1: = S 1 + S 2; S 1 enthält jetzt den Text: ETH Zuerich Programmieren und Problemlösen 12/18 © Departement Informatik, ETH Zürich

Der Datentyp boolean Wertebereich: die Wahrheitswerte "TRUE" und "FALSE" Operationen NOT Negation AND Konjunktion

Der Datentyp boolean Wertebereich: die Wahrheitswerte "TRUE" und "FALSE" Operationen NOT Negation AND Konjunktion OR Disjunktion XOR exklusive Disjunktion Programmieren und Problemlösen 13/18 © Departement Informatik, ETH Zürich

Logische Ausdrücke Var laenge, breite: integer; kuerzer: boolean; kuerzer: = breite < laenge; Die

Logische Ausdrücke Var laenge, breite: integer; kuerzer: boolean; kuerzer: = breite < laenge; Die Variable kuerzer enthält den Wert "TRUE" falls breite kleiner als laenge ist Den gleichen Wert erhält man mit: kuerzer: = not (breite > laenge); Programmieren und Problemlösen 14/18 © Departement Informatik, ETH Zürich

 • Datentypen: integer, char, string, boolean • Bedingte Programmausführung • Zusammengesetzte if-then-else-Anweisungen

• Datentypen: integer, char, string, boolean • Bedingte Programmausführung • Zusammengesetzte if-then-else-Anweisungen

Bedingte Programmausführung Falls laenge länger als breite dann drucke laenge aus if laenge >

Bedingte Programmausführung Falls laenge länger als breite dann drucke laenge aus if laenge > breite then write(laenge) ? w kuerzer: = breite > laenge if not kuerzer then write(laenge) else begin write(‘laenge ist kürzer’); read(laenge, breite) end; Programmieren und Problemlösen 15/18 © Departement Informatik, ETH Zürich

Bedingte Programmausführung, zusammengesetzte Bedingungen Wir wollen Kleinbuchstaben durch Grossbuchstaben ersetzen: if Ord(ch) >= 97

Bedingte Programmausführung, zusammengesetzte Bedingungen Wir wollen Kleinbuchstaben durch Grossbuchstaben ersetzen: if Ord(ch) >= 97 then ch: = Chr(Ord(ch)-32) Verwendung logischer Ausdrücke als Bedingung: if (Ord(ch) >= 97) and (Ord(ch) < 123) then ch: = Chr(Ord(ch)-32) Programmieren und Problemlösen 16/18 © Departement Informatik, ETH Zürich

 • Datentypen: integer, char, string, boolean • Bedingte Programmausführung • Zusammengesetzte if-then-else-Anweisungen

• Datentypen: integer, char, string, boolean • Bedingte Programmausführung • Zusammengesetzte if-then-else-Anweisungen

Zusammengesetzte if-then-else-Anweisungen Die then- und die else-Klausel einer if-Anweisung können beliebige Anweisungen enthalten, insbesondere

Zusammengesetzte if-then-else-Anweisungen Die then- und die else-Klausel einer if-Anweisung können beliebige Anweisungen enthalten, insbesondere auch if. Anweisungen: if Bedingung 1 then if Bedingung 2 then Anweisungsfolge 1 else Anweisungsfolge 2 else Anweisungsfolge 3 Mit "geschachtelten" if-Anweisungen Können mehr als zwei Verzweigungen programmiert werden. Programmieren und Problemlösen 17/18 false true B 1 false A 3 A 2 true B 2 A 1 © Departement Informatik, ETH Zürich

Zu welchem if gehört das else? Ein Nachteil von Pascal: kein Abschlusssymbol für if-then-else

Zu welchem if gehört das else? Ein Nachteil von Pascal: kein Abschlusssymbol für if-then-else if Bedingung 1 then if Bedingung 2 then Anweisungsfolge 1 else Anweisungsfolge 2 Zu welchem "if" gehört das"else" Regel: die else-Klausel gehört zum nächstliegenden "if" das kein "else" hat if B 1 then if B 2 then A 1 else A 2 Programmieren und Problemlösen 18/18 © Departement Informatik, ETH Zürich