Grundlagen der Informatik 5. Kontrollstrukturen II

Ähnliche Dokumente
Grundlagen der Informatik 4. Kontrollstrukturen I

Grundlagen der Informatik 6. Arrays I

5. Elementare Befehle und Struktogramme

Grundlagen der Informatik 2. Typen

Kontrollstrukturen -- Schleifen und Wiederholungen

Grundlagen der Informatik 8. Funktionen I

Vom Problem zum Programm

1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt?

Einführung in die Programmierung Wintersemester 2011/12

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Gestrige Themen. Benutzung des Compilers und Editors. Variablen. Ein- und Ausgabe mit cin, cout (C++) Verzweigungen. Schleifen

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 25

Grundlagen der Informatik 11. Zeiger

Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)

Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben!

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

Auswahlen (Selektionen)

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

1.8 Kontrollstrukturen 73. default : ziffer = 0; if (ziffer > 0) { cout << "Ziffer = " << ziffer; else { cout << "keine römische Ziffer!

2 Teil 2: Nassi-Schneiderman

2.5 Programmstrukturen Entscheidung / Alternative

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Programmieren in C/C++ und MATLAB

Objektorientierte Programmierung

Informatik 1 ( ) D-MAVT F2010. Logik, Schleifen. Yves Brise Übungsstunde 4

BKTM - Programmieren leicht gemacht.

Vorlesungsprüfung Programmiersprache 1

Vorlesung Programmieren

Funktionales C++ zum Ersten

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

3. Anweisungen und Kontrollstrukturen

Annehmende Schleife do while

Pseudo-Programmiersprache

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

Einführung in die Programmierung

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/

Vorlesung Programmieren

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Algorithmen zur Datenanalyse in C++

Dieser Teil führt in die Kontrollstrukturen von C++ ein. Eine Kontrollstruktur definiert, wie die einzelnen Anweisungen ausgeführt werden, z.b.

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

Kontrollstrukturen Blöcke / Schleifen / Bedingungen

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5

Tag 3 Repetitorium Informatik (Java)

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 23

4 Schleifen und Dateien

C- Kurs 04 Anweisungen

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Klausur: Informatik, am 11. Juli 2013 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Schleifen in C/C++/Java

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Variablen, Konstanten und Datentypen

Klausur Informatik I WS 2006/2007

Lösung Übungsblatt 5

Programmiertechnik Kontrollstrukturen

Informatik für Elektrotechnik und Informationstechnik

Grundlagen der Programmierung

6. Iteration (Schleifenanweisungen)

Gestrige Themen. Erste Schritte in Linux. Benutzung des Compilers und Editors. Variablen. Ein- und Ausgabe mit cin, cout (C++) Verzweigungen

Übungen zur Vorlesung EINI (WS 2010) Blatt 11

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Grundlagen der Programmierung

C++ - Einführung in die Programmiersprache Schleifen

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Einführung in die Programmierung

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Einführung in die Programmierung Wintersemester 2016/17

Verzweigungen. Prof. Dr. Markus Gross Informatik I für D-MAVT (FS 2014)

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Hochschule Darmstadt Informatik-Praktikum SS 2017 EIT Bachelor 5. Aufgabenblatt Datenstruktur, Dateieingabe und -ausgabe

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

6. Iteration (Schleifenanweisungen)

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung

Informatik für Mathematiker und Physiker Woche 6. David Sommer

Ausdrücke und Anweisungen Übungen

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Grundlagen der Programmierung in C++ Kontrollstrukturen

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht:

Kleine Anekdote. Schleifen in C

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16

Ein- und Ausgabe (I/O)

Klausur Informatik WS 2012/13

ios fstream ifstream

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Kap 4. Befehle und Struktogramme

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 16

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15

C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole. Leibniz Universität IT Services Anja Aue

Transkript:

5. Kontrollstrukturen II Schleifen Sprünge Grundlagen der Informatik (Alex Rempel) 1

Schleifen Schleifen allgemein und in C++ Schleifen (Loops) ermöglichen die Realisierung sich wiederholender Aufgaben (z.b. Durchschnittberechnung) 3 Arten von Schleifen in C++ 'while' kopfgesteuert, abweisender Charakter 'do while' 'for' fußgesteuert, nicht abweisender Charakter Zählschleife, Schleife mit fester Schrittweite Grundlagen der Informatik (Alex Rempel) 2

while Schleifen while Schleife ist kopfgesteuert Ablauf while (expression) statement expression als Wahrheitswert auswerten wenn true führe statement aus und prüfe wieder wenn false überspringe statement statement wird also solange (engl. while) ausgeführt wie expression true ist Grundlagen der Informatik (Alex Rempel) 3

while Schleifen while Flussdiagramm und Struktogramm expression expression true statement statement false Grundlagen der Informatik (Alex Rempel) 4

while Schleifen while Beispiel gib ASCII code zu Character aus Abbruch bei Eingabe von 'q' solange char nicht 'q' Eingabe als char Ausgabe als (int)char Grundlagen der Informatik (Alex Rempel) 5

while Schleifen while Beispiel gib ASCII code zu Character aus Abbruch bei Eingabe von 'q' #include <iostream> #include <iomanip> using namespace std; void main() { unsigned char ucinput = '0'; while (ucinput!= 'q') { cout << "Character input: "; cin >> ucinput; cout << "\n\t'" << ucinput << "' == ASCII " << (int)ucinput << endl; Grundlagen der Informatik (Alex Rempel) 6

while Schleifen while Beispiel gib ASCII code zu Character aus Abbruch bei Eingabe von 'q' #include <iostream> #include <iomanip> using namespace std; void main() { unsigned char ucinput = '0'; while (ucinput!= 'q') { cout << "Character input: "; cin >> ucinput; cout << "\n\t'" << ucinput << "' == ASCII " << (int)ucinput << endl; Grundlagen der Informatik (Alex Rempel) 7

while Schleifen while Fehlerquelle: unendliche Schleife Die Abbruchbedingungen in einer Schleife müssen stets gültig bleiben, sonst terminiert das Programm nicht #include <iostream> using namespace std; Für welche Eingaben terminiert das Programm nicht so wie geplant? void main() { int iinput = 0; cout << "Integer input i = "; cin >> iinput; while (iinput * iinput > 0) { cout << "i * i = " << iinput * iinput << endl; iinput--; Grundlagen der Informatik (Alex Rempel) 8

do while Schleifen do while Schleife ist fußgesteuert Ablauf statement ausführen expression als Wahrheitswert auswerten wenn true führe statement aus und prüfe wieder do statement while (expression) wenn false beende Schleife statement wird also solange ausgeführt wie expression true ist, aber mindestens ein Mal Grundlagen der Informatik (Alex Rempel) 9

do while Schleifen do while Flussdiagramm und Struktogramm statement statement expression false true expression Grundlagen der Informatik (Alex Rempel) 10

do while Beispiel do while Schleifen gib zu einer Zahl innerhalb eines vorgegebenen Wertebereichs die Wurzel aus Eingabe als double solange double nicht innerhalb von min und max Ausgabe Wurzel aus double Grundlagen der Informatik (Alex Rempel) 11

do while Beispiel do while Schleifen gib zu einer Zahl innerhalb eines vorgegebenen Wertebereichs die Wurzel aus #include <iostream> #include <math.h> using namespace std; void main() { double dmin = 3.5, dmax = 25.3; double dinput = 0; do { cout << "Double input (" << dmin << " < d < " << dmax << ") = "; cin >> dinput; while (dinput <= dmin dinput >= dmax); cout << "Square root sqrt(" << dinput << ") = " << sqrt(dinput) << endl; Grundlagen der Informatik (Alex Rempel) 12

do while Beispiel do while Schleifen gib zu einer Zahl innerhalb eines vorgegebenen Wertebereichs die Wurzel aus #include <iostream> #include <math.h> using namespace std; void main() { double dmin = 3.5, dmax = 25.3; double dinput = 0; do { cout << "Double input (" << dmin << " < d < " << dmax << ") = "; cin >> dinput; while (dinput <= dmin dinput >= dmax); cout << "Square root sqrt(" << dinput << ") = " << sqrt(dinput) << endl; Grundlagen der Informatik (Alex Rempel) 13

Schleifen in Schleifen Schleifen können auch verschachtelt werden Beispiel: Fakultätberechnung Aufgabe: Fakultät für Zahlen von 1 bis 9 ausgeben Verfahren: Fakultät von n ist 'n!' n! = 1 * 2 * 3 *... * n Beispiel: 4! = 1 * 2 * 3 * 4 = 24 Grundlagen der Informatik (Alex Rempel) 14

Schleifen in Schleifen Schleifen können auch verschachtelt werden Beispiel: Fakultätberechnung (n! = 1*2*3*...*n) min=1, max=9, nr=min solange nr <= max factorial=1, counter=1 solange counter <= nr factorial = factorial * counter counter = counter+1 Ausgabe factorial nr = nr+1 Grundlagen der Informatik (Alex Rempel) 15

Schleifen in Schleifen Schleifen können auch verschachtelt werden Beispiel: Fakultätberechnung (n! = 1*2*3*...*n) #include <iostream> using namespace std; void main() { int imin = 1, imax = 9; int inumber = imin; while (inumber <= imax) { // for all numbers in range unsigned long ulfactorial = 1; int icounter = 1; while (icounter <= inumber) { // calculate factorial ulfactorial = ulfactorial * icounter; ++icounter; cout << "Factorial(" << inumber << ") = " << ulfactorial << endl; ++inumber; // prepare next number Grundlagen der Informatik (Alex Rempel) 16

Schleifen in Schleifen Schleifen können auch verschachtelt werden Beispiel: Fakultätberechnung (n! = 1*2*3*...*n) #include <iostream> using namespace std; void main() { int imin = 1, imax = 9; int inumber = imin; while (inumber <= imax) { // for all numbers in range unsigned long ulfactorial = 1; int icounter = 1; while (icounter <= inumber) { // calculate factorial ulfactorial = ulfactorial * icounter; ++icounter; cout << "Factorial(" << inumber << ") = " << ulfactorial << endl; ++inumber; // prepare next number Grundlagen der Informatik (Alex Rempel) 17

for Schleifen for Zählschleife mit festen Schritten Ablauf for (statement_init; expression; statement_step) statement statement_init ausführen expression als Wahrheitswert auswerten wenn true führe statement aus wenn false beende Schleife statement_step ausführen zurück zur expression Prüfung Grundlagen der Informatik (Alex Rempel) 18

for Schleifen for Flußdiagramm und Struktogramm statement_init statement_init expression statement_step expression true statement statement statement_step false Grundlagen der Informatik (Alex Rempel) 19

for Beispiel Grundlagen der Informatik for Schleifen Aufgabe: ASCII Code und Zeichen ausgeben (32 bis 255) #include <iostream> #include <iomanip> using namespace std; void main() { int ifrom = 32, ito = 255; for (int i = ifrom; i <= ito; ++i) { cout << setw(5) << i << "=" << (char)i; if (i%10 == 0) // new line after 10 values cout << endl; cout << endl; Grundlagen der Informatik (Alex Rempel) 20

for Beispiel Grundlagen der Informatik for Schleifen Aufgabe: ASCII Code und Zeichen ausgeben (32 bis 255) Grundlagen der Informatik (Alex Rempel) 21

for Schleifen Hinweis: die temporäre Variable i in... for (int i = imax; i > imin; --i)......darf nicht außerhalb der for Schleife genutzt werden Hinweis: Äquivalenz von for und while for (statement_init; expression; statement_step) statement statement_init; while (expression) { statement; statement_step; Grundlagen der Informatik (Alex Rempel) 22

for Schleifen Mehrere Ausdrucke innerhalb von for Kommaoperator expression_1, expression_2... expressions werden von links nach rechts gewertet Das Resultat hat den Typ der letzten expression Beispiel: Summe von 1 bis 10 #include <iostream> using namespace std; void main() { int inumber = 0, isum = 0; for (inumber=1, isum=0; inumber <= 10; isum += inumber, ++inumber); cout << "Sum of 1 to 10 = " << isum << endl; Grundlagen der Informatik (Alex Rempel) 23

for Schleifen Mehrere Ausdrucke innerhalb von for Kommaoperator expression_1, expression_2... expressions werden von links nach rechts gewertet Das Resultat hat den Typ der letzten expression Beispiel: Summe von 1 bis 10 #include <iostream> using namespace std; void main() { int inumber = 0, isum = 0; for (inumber=1, isum=0; inumber <= 10; isum += inumber, ++inumber); cout << "Sum of 1 to 10 = " << isum << endl; Kommaoperator kein Kommaoperator Kommaoperator Grundlagen der Informatik (Alex Rempel) 24

Sprünge Grundlagen der Informatik Sprünge break aktueller Schleifenblock wird verlassen while (epxression_1) { statement_1 if (expression_2) break; statement_2 statement_3 Grundlagen der Informatik (Alex Rempel) 25

Sprünge Grundlagen der Informatik Sprünge continue springe zur Überprüfung der aktuellen Schleife while (epxression_1) { statement_1 if (expression_2) continue; statement_2 statement_3 Grundlagen der Informatik (Alex Rempel) 26

Sprünge Grundlagen der Informatik Sprünge goto springe zu einer Marke for (...) for (...) for(...) goto label_name... label_name:... Im Labor sind goto Anweisungen verboten! Sehr fehleranfällig und schwer wartbar C++ bietet bessere Alternativen (Ausnahmebehandlung) Grundlagen der Informatik (Alex Rempel) 27

for Schleifen for kann im Prinzip alle Schleifen abbilden oft sehr trickreich, aber schwer lesbar Beispiel für for Mächtigkeit: for (Datei öffnen, lese Daten; kein Dateiende; lese Daten) verarbeite Daten Grundlagen der Informatik (Alex Rempel) 28