Wiederholte Programmausführung

Slides:



Advertisements
Ähnliche Präsentationen
Aufgabe: Wie stellt man eine for-Schleife durch eine while-Schleife dar ?
Advertisements

9. Syntaxdiagramme und Backus-Naur-Form (BNF)
Ausdrücke bezeichnen Elemente eines Datentyps induktive Definition:
10. Grundlagen imperativer Programmiersprachen
der Universität Oldenburg
DINAMISCHE STRUKTUREN FACHBEGRIFFE 1. DER POINTERDER POINTER 2. DER BUFFERDER BUFFER 3. DER KNOTENDER KNOTEN DIE EINFACHVERKETTETE LISTE DEFINITION DEFINITION.
Schleifen-beobachtung
Boolesche Ausdrücke Ist der Rückgabewert eines Ausdrucks vom Typ boolean, so wird dieser als Boolescher Ausdruck bezeichnet (nach dem Mathematiker George.
DVG Ablaufsteuerung
Einführung in die Programmierung Datensammlung
Term {abstrakt} alsText(){abstrakt} berechnen(Belegung){abstrakt} Zahl alsText() berechnen(Belegung) double wert Variable alsText() berechnen(Belegung)
Agenda für heute, 8. Juni, 2006 Strukturierte Variablen: RecordsStrukturierte Variablen: Records Kombiniertes Strukturieren Bitmap-Dateien Datentypen:
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Wiederholte Programmausführung
Willkommen... Studentinnen und Studenten der Studiengänge Umweltnaturwissenschaften Erdwissenschaften Agrarwissenschaften zur.
Konzept einer Programmiersprache!
Programiersprache Mustafa SÖYLEMEZ e
Permanente Datenspeicherung
Das Heronverfahren arithmetisches Mittel geometrisches Mittel
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
Grundlagen Wissenschaftlichen Arbeitens Hilal Tekoglu
Mala Bachmann, Beispiel Velorennen Velorennen mit 5 TeilnehmerInnen Wie kann die durchschnittliche Rennzeit berechnet werden?
Mala Bachmann, Beispiel Velorennen (1) Velorennen mit 5 TeilnehmerInnen Wie kann die durchschnittliche Rennzeit berechnet werden?
Agenda für heute, 22. Juni, 2006 Direkte FilezugriffeDirekte Filezugriffe Datentypen: Mengen Individualisierbare Datentypen.
Willkommen... Studentinnen und Studenten der Studiengänge Umweltnaturwissenschaften Erdwissenschaften Agrarwissenschaften zur.
Agenda für heute, 18. Mai, 2006 Strukturierung von Programmen: ProzedurenStrukturierung von Programmen: Prozeduren Strukturierung von Programmen: Units.
Datentypen: integer, char, string, boolean
Agenda für heute, 20. April, 2006 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Willkommen... Studentinnen und Studenten der Studiengänge Umweltnaturwissenschaften Erdwissenschaften Agrarwissenschaften zur.
Agenda für heute, 12. Mai, 2005 ProzedurenProzeduren Funktionsprozeduren Prozedurparameter Lokale und globale Variablen Datentypen: Ordinaltypen.
Agenda für heute, 28. April, 2005 Strukturierte VariablenStrukturierte Variablen Arrays.
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
Agenda für heute, 14. April, 2005 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Agenda für heute, 26. Mai, 2005 Strukturierte Variablen: RecordsStrukturierte Variablen: Records Kombiniertes Strukturieren Individualisierbare Datentypen.
PHP: Operatoren und Kontrollstrukturen
Variablen. var meineZahl:Number = 7; meineZahl 7 Name TypWert = Zuweisung von Variablen.
Vorkurs Programmierungstechnik Einführung in Pascal Michael Gellner Lehrstuhl für Softwaretechnik am Institut für praktische Informatik der Universität.
Agenda für heute, 21. April, 2005 Interaktion mit Pascal-ProgrammenInteraktion mit Pascal-Programmen Dateneingabe Programmsteuerung Debugging Datentypen:
Extended Pascal ( Erweitreung von Pascal) Name: Mehmet CELIK Matr :
The Programming Language Pascal
Prüfungsbesprechung Barbara Scheuner Vorlesung: Programmieren und Problemlösen Prof. Hans Hinterberger.
Programmiersprache PASCAL
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Programmieren mit Lazarus. Die Programmoberfläche das Hauptfenster der Objektinspektor das Formular der Quelltexteditor Komponenten hier einfügen...
Programmieren und Problemlösen
Programmierparadigmen
Objektorientierte Programmierung
Strukturierte Variablen: Records
JavaKara programmieren: Verzweigungen
Datentypen: integer, char, string, boolean
Programmieren und Problemlösen
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Kontrollstrukturen von Algorithmen
Prüfungsbesprechung Barbara Scheuner
Strukturierte Variablen: Records
Datentypen: integer, char, string, boolean
Tutorium Programmieren I.
Parametrisierte Prozeduren und Funktionen
Wahrheitswerte und Logikfunktionen
Reihungen Prof. Dr. Christian Böhm In Zusammenarbeit mit Gefei Zhang
Unterschiedliche Kontrollstrukturen
SS 04 Christiane Rauh Christian Hellinger
Arten von Kontrollstrukturen
Unsere ganze Natur ist fraktal aufgebaut...
Unterschiedliche Arten von Kontrollstrukturen
Schleifen mit der Turtle
GRUNDLAGEN WISSENSCHAFTLICHEN ARBEITENS MODULA-2 SONAY SUBAYAZ
Allgemeine Iteration und Rekursion
Schleifen Datenfelder (Arrays) Verzweigungen
The Programming Language Pascal
 Präsentation transkript:

Wiederholte Programmausführung Agenda für heute, 5. März, 2009 Wiederholte Programmausführung Die Wiederholungsanweisungen von Pascal Geschachtelte Programmschleifen Syntaxdiagramme Lesen Sie den Begleittext Kapitel 4

Die Notwendigkeit für wiederholte Programmausführungen Aufgabe: Die Quadratwurzel einer positiven Zahl berechnen Einschränkung: Es stehen nur arithmetische Operationen zur Verfügung: *, /, +, - 2/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

Aufgaben für die Implementierung dieses Verfahrens: Darstellung der xn Beispiel: c = 2 x0 = 1 x1 = 1/2 + 2/2 = 1.5 x2 = 1.5/2 + 2/3 = 1.4166 x3 = 1.4166/2 + 2/2.8333 = 1.4141 und so weiter . . . Aufgaben für die Implementierung dieses Verfahrens: Darstellung der xn Wiederholung der Bildungsvorschrift Abbrechen der Wiederholung 3/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

Variablen, Anweisungen, Schleifen Die mathematischen Variablen xn stellen wir durch die Variable var x: real; dar und realisieren die Bildungsvorschrift für xn+1 mit x:= x/2.0+c/(2.0*x); Diese Anweisung muss für n = 1, 2, 3, . . . ausgeführt werden. Wir müssen sie also für jedes n wiederholen. Pascal bietet verschiedene Möglichkeiten dies zu tun: for-Anweisung, while-Anweisung, repeat-Anweisung 4/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

Die Wiederholungsanweisungen von Pascal Wiederholte Programmausführung Die Wiederholungsanweisungen von Pascal Bedingungen zum Abbruch von Programmschleifen Geschachtelte Programmschleifen Syntaxdiagramme

Die verschiedenen Wiederholungsanweisungen von Pascal for Anfangswert to Endwert do Anweisungsfolge for Anfangswert downto 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. 5/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

Struktur der for-Anweisung Kontrollvariable (muss deklariert sein) for Variable:= Ausdruck1 to Ausdruck2 do Anweisung Die Anweisung wird wiederholt solange ausgeführt wie der Wert der Kontrollvariablen kleiner als oder gleich dem Wert von Ausdruck2 ist. Beispiel: x:= 5; for i:= 0 to x do write(i*2) Output: 0 2 4 6 8 10 Einschränkungen: 1) Die Anweisung wird nicht ausgeführt wenn: oberer index < unterer index 2) Die Kontrollvariable und die beiden Ausdrücke müssen vom gleichen Typ sein, und für diesen Typ muss es die succ-Funktion geben. Dies schliesst eine Kontrollvariable vom Typ Real aus. 3) Wenn die for-Schleife terminiert, ist die Kontrollvariable undefiniert, d.h. ein gültiger Wert kann nicht erwartet werden. 6/16 Programmieren und Problemlösen © Departement Informatik, 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; Bem.: Jede for-Schleife könnte prinzipiell durch eine while-Anweisung ersetzt werden. For-Schleifen sind jedoch aussagekräftiger. Output: 0 1 2 3 4 5 6 7 8 9 7/16 Programmieren und Problemlösen © Departement Informatik, 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 Bem.: Eine zusammengesetzte Anweisung zwischen repeat und until benötigt kein begin und kein end. Output: 0 1 2 3 4 5 6 7 8 9 8/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

Newton-Verfahren mit einer while-Schleife program qwurzel; var c, x: real; begin x:= 1.0; write('Wurzel aus: '); readln(c); while abs(x*x - c) > 1.0E-6 do x:= x/2.0 + c/(2.0*x); writeln('Ergebnis = ',x:8:6); readln end. Wiederholung der Bildungsvorschrift Bem.: Eine zusammengesetzte Anweisung zwischen repeat und until benötigt kein begin und kein end. Die Schleife wird abgebrochen, wenn 9/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

Geschachtelte Programmschleifen Wiederholte Programmausführung Die Wiederholungsanweisungen von Pascal Geschachtelte Programmschleifen Syntaxdiagramme

Mehrere Abbruchbedingungen Anweisungs- folge wahr falsch Abbruch? 10/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

Schachtelung am Beispiel der for-Anweisung for i:= 1 to 3 do for j:= 1 to 10 do write(i*j) for i:= 1 to 3 do begin for j:= 1 to 10 do write(i*j); writeln; end; Einschränkungen: 1) Die Anweisung wird nicht ausgeführt wenn: oberer index < unterer index 2) Die Kontrollvariable und die beiden Ausdrücke müssen vom gleichen Typ sein, und für diesen Typ muss es die succ-Funktion geben. Dies schliesst eine Kontrollvariable vom Typ Real aus. 3) Wenn die for-Schleife terminiert, ist die Kontrollvariable undefiniert, d.h. ein gültiger Wert kann nicht erwartet werden. 11/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

Schachtelung am Beispiel der while-Anweisung Quersumme solange berechnen bis ein "q" eingegeben wird read(zahl); while zahl <> 'q' do begin summe:= 0; i:= length(zahl); for j:= 1 to i do summe:= summe + ord(zahl[j]) - 48; writeln('Quersumme von ',zahl,': ',summe) end; Einschränkungen: 1) Die Anweisung wird nicht ausgeführt wenn: oberer index < unterer index 2) Die Kontrollvariable und die beiden Ausdrücke müssen vom gleichen Typ sein, und für diesen Typ muss es die succ-Funktion geben. Dies schliesst eine Kontrollvariable vom Typ Real aus. 3) Wenn die for-Schleife terminiert, ist die Kontrollvariable undefiniert, d.h. ein gültiger Wert kann nicht erwartet werden. 12/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

Syntaxdiagramme Wiederholte Programmausführung Die Wiederholungsanweisungen von Pascal Geschachtelte Programmschleifen Syntaxdiagramme

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 13/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

Grundlagen der Syntaxdiagramme Produktionsregeln (gelten für Terminal- und Nicht-Terminalsymbole) Auswahl: a b . . . Y Z Folge: Buchstabe Buchstabe Wiederholung: Bezeichner , Option: Bezeichner 14/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

Syntaxregeln am Beispiel "Programm" 15/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich

Syntaxregeln am Beispiel "Bezeichner" 16/16 Programmieren und Problemlösen © Departement Informatik, ETH Zürich