Wiederholte Programmausführung

Slides:



Advertisements
Ähnliche Präsentationen
Programme in C++.
Advertisements

Aufgabe: Wie stellt man eine for-Schleife durch eine while-Schleife dar ?
Invariante und Algorithmenentwurf
Hochschule Fulda – FB ET Sommersemester 2010
Zusammenfassung der Vorwoche
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
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Boolesche Ausdrücke Ist der Rückgabewert eines Ausdrucks vom Typ boolean, so wird dieser als Boolescher Ausdruck bezeichnet (nach dem Mathematiker George.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
DVG Ablaufsteuerung
Einführung in die Programmierung Datensammlung
Informatik Grundkurse mit Java
Grundkonzepte Java - Klassendefinition
Java programmieren mit JavaKara
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
INHALT INHALT Inhalt Delphi IDE ObjectPascal Hello World! Delphi IDE
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.
Einführung in die Programmierung
Willkommen... Studentinnen und Studenten der Studiengänge Umweltnaturwissenschaften Erdwissenschaften Agrarwissenschaften zur.
Konzept einer Programmiersprache!
Programiersprache Mustafa SÖYLEMEZ e
Permanente Datenspeicherung
Purga - Scriptengine Ein Einblick.
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 (1) Velorennen mit 5 TeilnehmerInnen Wie kann die durchschnittliche Rennzeit berechnet werden?
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
MODULA-2.
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.
PHP: Operatoren und Kontrollstrukturen
Hochschule Fulda – FB ET Sommersemester 2014
Vorkurs Programmierungstechnik Einführung in Pascal Michael Gellner Lehrstuhl für Softwaretechnik am Institut für praktische Informatik der Universität.
Programmiervorkurs WS 2014/15 Schleifen
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Schleifen
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.
Wiederholte Programmausführung
Programmieren und Problemlösen
Objektorientierte Programmierung
Strukturierte Variablen: Records
Datentypen: integer, char, string, boolean
Programmieren und Problemlösen
Prüfungsbesprechung Barbara Scheuner
Datentypen: integer, char, string, boolean
Wahrheitswerte und Logikfunktionen
GRUNDLAGEN WISSENSCHAFTLICHEN ARBEITENS MODULA-2 SONAY SUBAYAZ
The Programming Language Pascal
 Präsentation transkript:

Wiederholte Programmausführung Agenda für heute, 11. März, 2010 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

Zwei geschachtelte Schleifen Anweisungs- folge Anzahl Durchläufe multiplikativ 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 var zahl: string; 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