Agenda für heute, 14. April, 2005
• Wiederholte ProgrammausführungWiederholte Programmausführung
• Algorithmische Grundlagen
• Bedingungen zum Abbruch von Programmschleifen
• For-Anweisung
• While-Anweisung
• Repeat-Anweisung
• Geschachtelte Programmschleifen
• Syntaxdiagramme
• Datentypen: char
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Steuerung des Programmablaufs: Wiederholung
• Wiederholungen von Anweisungsfolgen können aus verschiedenen Gründen notwendig sein, z.B.:
- eine Berechnung wird solange ausgeführt, bis das Resultat eine gewünschte Genauigkeit erreicht
- Operationen werden solange ausgeführt, bis alle Daten verarbeitet sind
- eine Anwenderin möchte das Programm wiederholt solange wie sie will ausführen
• Ein Programm muss also
a) wissen was wiederholt ausgeführt werden muss und
b) entscheiden können wann anzuhalten ist
2/15
• Wiederholte Programmausführung
• Algorithmische GrundlagenAlgorithmische Grundlagen• Bedingungen zum Abbruch von Programmschleifen
• For-Anweisung
• While-Anweisung
• Repeat-Anweisung
• Geschachtelte Programmschleifen
• Syntaxdiagramme
• Datentypen: char
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Algorithmische Grundlagen: Zwei Arten der Wiederholung
Anweisungs-folge
Abbruch?
Anweisungsfolge wird nicht, 1 mal oder mehrmals ausgeführt
falsch Anweisungs-folgeAbbruch?
wahr falschwahr
Anweisungsfolge wird mindestens1 mal ausgeführt
3/15
• Wiederholte Programmausführung
• Algorithmische Grundlagen
• Bedingungen zum Abbruch von ProgrammschleifenBedingungen zum Abbruch von Programmschleifen• For-Anweisung
• While-Anweisung
• Repeat-Anweisung
• Geschachtelte Programmschleifen
• Syntaxdiagramme
• Datentypen: char
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Wie oft wird eine Schleife ausgeführt?
• Bei einer Wiederholung bewegt sich das Programm in einer Schleife indem es auf eine bereits ausgeführte Instruktion zurück "springt".
• Programmiersprachen stellen für diese Operation eine Anweisung zur Ver-fügung, die an der Stelle eingefügt wird, an welche die Schleife zurück kehrt.
• In Pascal sind dies die folgenden Schleifen-Anweisungen:
for Anfangswert to Endwert do Anweisungsfolge
while Bedingung do Anweisungsfolge
repeat Anweisungsfolge until Bedingung
Die for-Schleife führt eine vorgegebene Anzahl Wiederholungen aus.
Die Anzahl Wiederholungen der while- und repeat-Schleife wird durch Aktionen innerhalb der Schleife gesteuert.
4/15
• Wiederholte Programmausführung
• Algorithmische Grundlagen
• Bedingungen zum Abbruch von Programmschleifen
• For-AnweisungFor-Anweisung• While-Anweisung
• Repeat-Anweisung
• Geschachtelte Programmschleifen
• Syntaxdiagramme
• Datentypen: char
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Struktur der for-Anweisung
for Variable:= Ausdruck1 to Ausdruck2 do Anweisung
Beispiel:
for i:= 0 to 9 do write(i)
for Variable:= Ausdruck1 downto Ausdruck2 do Anweisung
Beispiel:
for i:= 9 downto 0 do write(i)
Kontrollvariable
5/15
• Wiederholte Programmausführung
• Algorithmische Grundlagen
• Bedingungen zum Abbruch von Programmschleifen
• For-Anweisung
• While-AnweisungWhile-Anweisung• Repeat-Anweisung
• Geschachtelte Programmschleifen
• Syntaxdiagramme
• Datentypen: char
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Struktur der while-Anweisung
while boolescher Ausdruck do Anweisung
Die Anweisung wird wiederholt solange ausgeführt wie eine Auswertung des booleschen Ausdrucks den Wahrheitswert "true" ergibt.
Beispiel: i:= 0; while i < 10 do begin
write(i); i:= i + 1
end;
6/15
• Wiederholte Programmausführung
• Algorithmische Grundlagen
• Bedingungen zum Abbruch von Programmschleifen
• For-Anweisung
• While-Anweisung
• Repeat-AnweisungRepeat-Anweisung• Geschachtelte Programmschleifen
• Syntaxdiagramme
• Datentypen: char
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Struktur der repeat-Anweisung
repeat Anweisung until boolescher Ausdruck
Führe Anweisung einmal aus und wiederhole solange bis eine Auswertung des booleschen Ausdrucks den Wahrheitswert "true" ergibt.
Beispiel: i:= 0;
repeat write(i); i:= i + 1 until i = 10
7/15
• Wiederholte Programmausführung
• Algorithmische Grundlagen
• Bedingungen zum Abbruch von Programmschleifen
• For-Anweisung
• While-Anweisung
• Repeat-Anweisung
• Geschachtelte ProgrammschleifenGeschachtelte Programmschleifen• Syntaxdiagramme
• Datentypen: char
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Schachtelung am Beispiel der for-Anweisung
for Variable1:= Ausdruck1 to Ausdruck2 do
for Variable2:= Ausdruck3 downto Ausdruck4 do Anweisung
Beispiele:
for i:= 1 to 3 dofor j:= 1 to 10 do write(i*j)
for i:= 1 to 3 dobegin
for j:= 1 to 10 do write(i*j);writeln;
end;
8/15
Die Anweisung innerhalb einer Schleife kann beliebige Anweisungen enthalten, insbesondere auch Wiederholungs-Anweisungen.
• Wiederholte Programmausführung
• Algorithmische Grundlagen
• Bedingungen zum Abbruch von Programmschleifen
• For-Anweisung
• While-Anweisung
• Repeat-Anweisung
• Geschachtelte Programmschleifen
• SyntaxdiagrammeSyntaxdiagramme• Datentypen: char
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Grundlagen der Syntaxdiagramme
Elemente der Syntaxdiagramme
Nicht-Terminalsymbole:
Terminalsymbole: ;
Nicht-Terminalsymbole können durch andere Nicht-Terminalsymbole oder durch Terminalsymbole nach vorgegebenen Syntaxregeln ersetzt werden.
Bezeichner
9/15
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Grundlagen der Syntaxdiagramme
Produktionsregeln (gelten für beide Arten von Symbolen)
BuchstabeFolge:
Auswahl: a b . . . Y Z
Buchstabe
Wiederholung: Bezeichner
Option:
Bezeichner
10/15
,
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Syntaxregeln am Beispiel "Programm"
11/15
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Syntaxregeln am Beispiel "Bezeichner"
12/15
• Wiederholte Programmausführung
• Algorithmische Grundlagen
• Bedingungen zum Abbruch von Programmschleifen
• For-Anweisung
• While-Anweisung
• Repeat-Anweisung
• Geschachtelte Programmschleifen
• Syntaxdiagramme
• Datentypen: charDatentypen: char
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
13/15
Programmieren und Problemlösen © Institut für Computational Science, ETH Zürich
Der Datentyp char, Beispiele
14/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.
15/15