C++ Programmierkurs. Variablen. Wintersemester 04 / 05. Christian Hagemeier. mittwochs 17 18:30 Uhr Hörsaal II der Physikalischen Institute

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "C++ Programmierkurs. Variablen. Wintersemester 04 / 05. Christian Hagemeier. mittwochs 17 18:30 Uhr Hörsaal II der Physikalischen Institute"

Transkript

1 C++ Programmierkurs Wintersemester 0 / 05 Christian Hagemeier Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln 1 Variablen Stelle im Speicher, wo ein Wert von einem bestimmten Datentyp gespeichert werden kann Variablen müssen vor deren Nutzung mit Name und Datentyp definiert werden: int zahl1; int zahl2; 3 mittwochs 17 18:30 Uhr Hörsaal II der Physikalischen Institute NEU: Gültigkeitsbereich von Variablen: Variablen sind immer vom Ort der Definition bis zum Ende dieses Programmblocks (siehe {} ) gültig! Beispiel folgt auf Folie 52f. (Programmcode zum Befehl break) Gliederung der Vorlesung 2 Fehlerarten : Organisatorisches und Einführung : Einführung und Kontrollstrukturen : Kontrollstrukturen : Funktionen : Vektoren, Zeiger und Strings 2.11.: Klassen und Datenabstraktion : Klassen : Überladen von Operatoren : Vererbung : Polymorphismus : Stream Ein /Ausgabe : Datei Ein /Ausgabe : Standard Template Library : Templates : Diverse Feinheiten Syntaxfehler Compilerfehler tritt dann auf, wenn der Compiler einen Befehl nicht erkennen kann Häufigste Ursachen (neben Tippfehlern): vergessenes Semikolon am Ende eines Befehls vergessene Klammern benutzte Variable nicht definiert logische Fehler Laufzeitfehler fatale logische Fehler führen zum Programmabbruch Beispielsweise Division durch 0 nichtfatale logische Fehler führen nicht zum Programmabbruch, resultieren aber meist in fehlerhaften Ergebnissen häufig bei Verwendung von = an Stelle von ==

2 2. Kontrollstrukturen 5 Kontrollflußdiagrammumsetzung Einführung 2.2 Arten von Kontrollstrukturen 2.3 if Auswahlstruktur 2. if/else Auswahlstruktur 2.5 while Wiederholungsstruktur 2.6 Zählergesteuerte Wiederholung 2.7 Wiederholung mit Abbruchwert 2.8 Zuweisungen in C for Wiederholungsstruktur 2.10 switch Mehrfachauswahl Struktur 2.11 do/while Wiederholungsstruktur 2.12 break und continue 2.13 Logische Operatoren 2.1 Zusammenfassung Entscheidung kann auf Grund eines jeden Ausdrucks gefällt werden. Null falsch (false) Nichtnull wahr (true ) Beispiel: 3 - ist wahr (true) 2.2 Arten von Kontrollstrukturen 6 Kontrollflußdiagrammumsetzung 8 Sequentielle Ausführung Befehle werden in vorgegebener Reihenfolge abgearbeitet Kontrollflußsprünge Nächster ausgeführter Befehl nicht nächster Befehl in Quelltext 3 Kontrollstrukturen: 1. sequentielle Struktur Programm führt aufeinanderfolgende Befehle in angegebener Reihenfolge aus 2. Auswahlstrukturen if, if/else, switch 3. Wiederholungsstrukturen while, do/while, for

3 Gruppierung von Befehlen 9 Kontrollflußdiagramm while 11 durch mehrere Befehle in einem paar geschweifter Klammern: if ( punkte > 60 ) cout << Bestanden. << endl; else { cout << Durchgefallen. << endl; cout << Der Kurs muß wiederholt werden. << endl; } 2.5 while Wiederholungsstruktur Zählergesteuerte Wiederholung 12 Wiederholungsstruktur: Aktion wird solange ausgeführt wie Bedingung wahr bleibt Pseudocode: Solange noch Gegenstände auf meinem Einkaufszettel stehen Kaufe nächsten Gegenstand und streiche ihn vom Zettel while Bedingung bricht ab, sobald Bedingung nicht mehr erfüllt ist Beispiel in C++: int product = 2; while ( product <= 1000 ) product = 2 * product; Schleife wird durchlaufen bis Zähler bestimmten Wert erreicht Anzahl an Wiederholungen ist fest vorgegeben Beispiel: Eine Kurs mit 10 Studenten hat einen Test geschrieben. Die Punktzahlen (ganze Zahlen zwischen 0 und 100) der Bewertung sind verfügbar. Ermittle die durchschnittliche Punktzahl aller Kursteilnehmer in diesem Test.

4 Pseudocode für Durchschnittspunktzahl 13 C++ Code für Durchschnittspunktzahl (2) 15 Setze Summe auf Null Setze Anzahl auf Null Solange Anzahl kleiner oder gleich Zehn ist Lies nächste Punktzahl ein Füge ihn Summe hinzu Zähle Anzahl eins hoch Setze Kursdurchschnitt auf Summe / 10 Ausgabe Kursdurchschnitt 21 // Verarbeitungsphase 22 while ( anzahl <= 10 ) { // 10 Schleifendurchläufe 23 cout << Gibt Punktzahl ein: "; // Eingabeaufforderung 2 cin >> punkte; // lies Punkte vom Benutzer 25 summe = summe + punkte; // addiere Punkte zu Summe 26 anzahl = anzahl + 1; // erhöhe Zähler 27 } 28 Der Zähler wird bei jedem Schleifen - 29 // Beendigung durchlauf erhöht. Nach dem durchschnitt = summe / 10; Durchlauf // ganzzahlige beendet er division die Schleife // Ergebnis anzeigen 33 cout << Durchschnittspunktzahl ist " << durchschnitt << endl; 3 35 return 0; // indicate program ended successfully } // end function main C++ Code für Durchschnittspunktzahl (1) 1 Ausgabe von Durchschnittspunktzahl 16 1 // Fig. 2.7: fig02_07.cpp 2 // Class average program with counter-controlled repetition. 6 using std::cin; 7 using std::endl; 8 9 // function main begins program execution 10 int main() 11 { 12 int summe; // Summe der bisher eingegebenen Punktzahlen 13 int anzahl; // Nummer der nächsten eingegebenen Punktzahl 1 int punkte; // gerade eingegebene Punktzahl 15 int durchschnitt; // Durchschnitt der Punktzahlen // Initialisierungsphase 18 summe = 0; // initialisiere Summe 19 anzahl = 1; // initialisiere Schleifenzähler 20 Gib Punktzahl ein: 98 Gib Punktzahl ein: 76 Gib Punktzahl ein: 71 Gib Punktzahl ein: 87 Gib Punktzahl ein: 83 Gib Punktzahl ein: 90 Gib Punktzahl ein: 57 Gib Punktzahl ein: 79 Gib Punktzahl ein: 82 Gib Punktzahl ein: 9 Durchschnittspunktzahl ist 81

5 2.7 Wiederholung mit Abbruchwert 17 Verfeinerungsschritte 19 Sei das Problem nun wie folgt: Entwickle ein Durchschnittsermittlungsprogramm das eine nicht vorher bekannte Menge an Punktzahlen bearbeitet. Probleme: Unbekannte Anzahl an Punktzahlen Wie soll Programm wissen, wann Ende ist? Abbruchwert bedeutet Ende der Daten Schleife bricht nach Eingabe des Abbruchwerts ab Abbruchwert muß so gewählt werden, daß er nicht mit regulärer Eingabe verwechselt werden kann! Hier z.b. -1 Verfeinere Initialisierungsphase: Initialisiere Variablen wird zu Initialisiere Summe auf Null Initialisiere Anzahl auf Null Verarbeitungsphase: Lies Punkte ein, summiere und zähle sie wird zu Lies erste Punktzahl ein (evtl. Abbruchwert) Solange Benutzer noch nicht Abbruchwert eingegeben hat Füge diese Zahl in Gesamtsumme ein Zähle eins zur Anzahl hinzu Lies nächste Punktzahl ein (evtl. Abbruchwert) Algorithmenentwurf: Top Down 18 Verfeinerungsschritte 20 schrittweise Verfeinerung Beginne mit Pseudocode für oberste (=ungenaueste) Ebene: Ermittle den Kursdurchschnitt des Test Verfeinere in kleinere Teile: Initialisiere Variablen Lies Punkte ein, summiere und zähle sie Durchschnitt berechnen und ausgeben Beendigung Durchschnitt berechnen und ausgeben wird zu Wenn der Zähler nicht Null ist Setze Durchschnitt auf Punktzahl / Anzahl Ausgabe Durchschnitt Sonst Ausgabe Es wurden keine Punktzahlen eingegeben!

6 Quellcode Durchschnittsberechnung 2 (1) 21 Quellcode Durchschnittsberechnung 2 (3) 23 1 // Fig. 2.9: fig02_09.cpp 2 // Class average program with sentinel-controlled repetition. 6 using std::cin; 7 using std::endl; 8 using std::fixed; // Fließkommaausgabe im Format #include <iomanip> // Stream-Manipulatoren using std::setprecision; // Setzt numerische Ausgabeprzision 13 1 // function main begins program execution 15 int main() 16 { Datentypdouble zum Speichern 17 int summe; // Summe der Punkte von Dezimalzahlen. 18 int anzahl; // Anzahl eingegebener Punktezahlen 19 int punkte; // aktuelle Punktzahl double durchschnitt; // Fließkommazahl zur Durchschnittsberechnung 22 2 // Beendigung 3 // Wenn Benutzer mindestens eine Punktzahl eingegeben hat... if ( anzahl > 0 ) { 5 6 // berechne Durchschnitt aller eingegebenen Punktzahlen 7 durchschnitt = static_cast<double>( summe ) / anzahl; 8 9 // zeige Durchschnitt mit zwei Nachkommastellen Genauigkeit an 50 cout << Durchschnittspunktzahl ist " << setprecision( 2 ) 51 << fixed << durchschnitt << endl; } // end if part of if/else 5 55 else // wenn keine Punktzahlen eingegeben wurden gib entspr. aus 56 cout << Es wurden keine Punktzahlen eingegeben!" << endl; return 0; // indicate program ended successfully } // end function main Quellcode Durchschnittsberechnung 2 (2) 23 // Initialisierungsphase 2 summe = 0; // initialisiere Summe 25 anzahl = 0; // initialisiere Anzahl // Verarbeitungsphase 28 // lies erste Zahl vom Benutzer ein 29 cout << Gib Punkte ein, -1 zum Beenden: "; // Eingabeaufforderung 30 cin >> punkte; // Lies Punkte vom Benutzer // wiederhole solange eingegeben Abbruchwert nicht 33 while ( punkte!= -1 ) { 3 summe = summe + punkte; // füge Punkte zur Summe hinzu 35 anzahl = anzahl + 1; // erhöhe Zähler cout << Gib Punkte ein, zum Beenden: "; // Eingabeaufforderung cin >> punkte; // Lies Punkte vom Benutzer 39 0 } // end while 1 22 Quellcode Durchschnittsberechnung 2 (3) static_cast<double>() behandelt summe 2 // Beendigung 3 // Wenn Benutzer mindestens temporär eine Punktzahl als double eingegeben (casting). hat... if ( anzahl > 0 ) { Benötigt, da ganzzahlige Division Rest abschneidet. 5 6 // berechne Durchschnitt aller eingegebenen Punktzahlen 7 durchschnitt = static_cast<double>( summe ) / anzahl; 8 9 // zeige Durchschnitt mit zwei Nachkommastellen Genauigkeit an 50 cout << Durchschnittspunktzahl ist " << setprecision( 2 ) 51 << fixed << durchschnitt << endl; 52 setprecision(2)gibt zwei Ziffern nach 53 } // end if part of if/else Dezimalpunkt aus (entsprechend gerundet) else fixed // wenn zwingt keine zur Ausgabe Punktzahlen eingegeben wurden gib entspr. aus 56 im cout fixed << point Es wurden Format keine für Zur Benutzung <iomanip> einbinden. Punktzahlen eingegeben!" << endl; 57 Dezimalzahlen (nicht 58 return wissenschaftliches 0; // indicate Format). program ended successfully } // end function main <iostream> einbinden. 2

7 Ausgabe Durchschnittsberechnung 2 25 Inkrement und Dekrement Operatoren 27 Gib Punkte ein, -1 zum Beenden: 75 Gib Punkte ein, -1 zum Beenden: 9 Gib Punkte ein, -1 zum Beenden: 97 Gib Punkte ein, -1 zum Beenden: 88 Gib Punkte ein, -1 zum Beenden: 70 Gib Punkte ein, -1 zum Beenden: 6 Gib Punkte ein, -1 zum Beenden: 83 Gib Punkte ein, -1 zum Beenden: 89 Gib Punkte ein, -1 zum Beenden: -1 Durchschnittspunktzahl ist Statt c += 1 (bzw. c -= 1) kann auch Inkrement Operator (++) (bzw. Dekrement Operator --) verwendet werden Preinkrement Operator: Operator wird vor Variablen benutzt (++c bzw. --c) Variable wird modifiziert, bevor Ausdruck ausgewertet wird Postinkrement Operator: Operator wird nachvariablen benutzt (c++ bzw. c--) Ausdruck wird ausgewertet bevor Variable modifiziert wird Inkrement Operator erhöht Variable um 1 Dekrement Operator verringert Variable um Zuweisungen in C++ 26 Beispiele Inkrement /Dekrement Operator 28 Abkürzende Schreibweise: c = c + 3; c += 3; Generell wird variable = variable operator ausdruck; zu variable operator= ausdruck; weitere Beispiele: d -= (d = d - ) e *= 5 (e = e * 5) f /= 3 (f = f / 3) g %= 9 (g = g % 9) Sei c=5, dann gibt cout << c++ die Zahl 6 aus. gibt cout << ++c die Zahl 5 aus. Als separate Befehle haben sie die gleiche Wirkung: ++c; cout << c; und c++; cout << c; geben beide 6 aus.

8 Beispiel Inkrement /Dekrement Operator for Wiederholungsstruktur 31 1 // Fig. 2.1: fig02_1.cpp 2 // Preincrementing and postincrementing. 6 using std::endl; 7 8 // function main begins program execution 9 int main() 10 { 11 int c; // deklariere Variable // demonstriere Postinkrement 1 c = 5; // setze c auf 5 15 cout << c << endl; // gib 5 aus 16 cout << c++ << endl; // gib 5 aus, dann postinkrement 17 cout << c << endl << // gib 6 aus endl; // demonstriere Preinkrement 20 c = 5; // setze c auf 5 21 cout << c << endl; // gib 5 aus 22 cout << ++c << endl; // Preinkrement dann gib 6 aus 23 cout << c << endl; // gib 6 aus allgemeines Format der for Schleife for ( initialisierung; SchleifenFortsetzungstest; Erhöhung ) Befehl; Beispiel: for ( int counter = 1; counter <= 10; ++counter ) cout << counter << std::endl; Gibt Zahlen von 1 bis 10 aus. for Schleife kann meist als while Schleife umgeschrieben werden: initialisierung; while ( SchleifenFortsetzungstest ) { } Befehl; Erhöhung; Beispiel Inkrement /Dekrement Operator 30 Beispiel for return 0; // indicate successful termination } // end function main // Fig. 2.17: fig02_17.cpp 2 // Zählergesteuerte Wiederholung mit for 6 using std::endl; 7 8 // Anfang der Programmausführung 9 int main() 10 { for ( int counter = 1; counter <= 10; counter++ ) 13 cout << counter << endl; 1 15 return 0; // signalisiere erfolgreiche Ausführung } // main

9 Ausgabe des Beispiels 33 Weiteres einfaches Beispiel // Fig. 2.20: fig02_20.cpp 2 // Summembildung mit for 6 using std::endl; 7 8 // Ausführungsanfang 9 int main() 10 { 11 int sum = 0; // initialisiere Summe // summiere gerade 100 zahlen von 2 bis 1 for ( int number = 2; number <= 100; number += 2 ) 15 sum += number; // addiere Zahl zu Summe cout << "Summe ist endl; // Ausgabe der Summe " << sum << 18 return 0; } // main Summe ist 2550 Kontrollflußdiagramm for Schleife 3 Beispiel: Zinsberechnung 36 Eine Person investiert Euro in einer festverzinslichen Anlage zu 5 Prozent Zinsen pro Jahr. Angenommen die Zinsen verbleiben nach Gutschrift auf dem Konto, berechne und gib den Kontostand nach jedem der ersten 10 Jahre aus. Folgende Formel kann dafür verwendet werden: kontostand = betrag * (1+zins) jahre

10 Programmcode: Zinsberechnung 37 Ausgabe: Zinsberechnung 39 1 // Fig. 2.21: fig02_21.cpp 2 // Zinsberechnung 6 using std::endl; 7 using std::fixed; #include <iomanip> using std::setw; 13 using std::setprecision; 1 15 #include <cmath> // zur Benutzung der Funktion pow() // Programmausführungsanfang 18 int main() 19 { 20 double amount; // aktueller Geldbestand 21 double principal = ; // anfangs Geldbestand 22 double rate =.05; // Zinsrate 23 <cmath> Header wird für pow Funktion benötigt (sonst: Syntaxfehler). Jahr aktueller Geldbestand Zahlen sind rechtsb ündig wegen setw (an Positionen und 2). Programmcode: Zinsberechnung (2) 38 switch Mehrfachauswahl Struktur 0 2 // Tabellenüberschriften ausgeben 25 cout << Jahr << setw( 2 ) << aktueller Geldbestand << endl; // Fließkommaausgabeformat festlegen 28 cout << fixed << setprecision( 2 ); // berechne Knotostand für die ersten 10 Jahre 31 for ( int year = 1; year <= 10; year++ ) { // berechne neuen Stand 3 amount = principal * pow( rate, year ); // Gib eine Zeile der Tabelle aus 37 cout << setw( ) << year 38 << setw( 2 ) << amount << endl; 39 0 } // Ende for-schleife 1 2 return 0; 3 } // main Setzt Spaltenbreite auf mind. 21 Zeichen. Falls Ausgabe kürzer: Ausrichtung rechts. pow(x,y) = x y Testet Variable auf mehrere Werte: switch ( variable ) { case <wert1>: Befehle1; case <wert>: break; leitet einen Fall case <wert2>: ein. case <wert3>: default: Befehle2_3; break; BefehleD; break; break beendet einen Fall Alternative zu folgendem Ausdruck: if ( variable == <wert1> ) Befehle1; else if (variable == <wert2> ) Befehle2_3; else if ( variable == <wert3> ) else Befehle2_3; } BefehleD; default ist optional und wird dann benutzt, wenn kein anderer Fall zutrifft.

11 Kontrollflußdiagramm 1 Programmcode: Notenberechnung 3 1 // Fig. 2.22: fig02_22.cpp 2 // Notenberechnung 6 using std::cin; 7 using std::endl; 8 9 // function main begins program execution 10 int main() 11 { 12 int grade; // aktuelle Note 13 int count1 = // Anzahl an 1 en 0; 1 int count2 = 0; // Anzahl an 2 en 15 int count3 = 0; // Anzahl an 3 en 16 int count = 0; // Anzahl an en 17 int count5_6 = 0; // Anzahl an 5 en und 6 en cout << Gib die Noten ein. << endl 20 << 0 zum Beenden. << endl; 21 Beispielprogramm: Notenberechnung 2 Programmcode: Notenberechnung (2) Beispiel zur Anwendung von switch: Das Programm soll solange Noten von 1 6 einlesen, bis eine 0 eingegeben wird. Abschließend soll zu jeder Note ausgegeben werden, wie häufig sie genannt wurde. 22 // lies erste Note ein und wiederhole 23 cin >> grade; 2 while ( grade!= 0 ) { 25 // welche Note wurde eingegeben? 26 switch ( grade ) { // switch, das in while-struktur geschachtelt ist // 1 wurde eingegeben: 29 case 1: 30 ++count1; // zähle hoch 31 break; // notwendig um switch zu verlassen wurde eingegeben: // 3 case 2: 35 ++count2; // zähle hoch 36 break; // beende switch wurde eingegeben: // 39 case 3: 0 ++count3; // zähle hoch 1 break; // beende switch 2

12 Programmcode: Notenberechnung (3) 5 Programmausgabe: Notenberechnung 7 3 // wurde eingegeben: case : 5 ++count; // zähle count hoch 6 break; // beende switch 7 8 case 5: // 5 oder 9 case 6: // 6 wurde eingegeben 50 ++count5_6; // zähle count5_6 hoch 51 break; // beende switch default: // wenn etwas anderes eingegeben wurde: 5 cout << Falsche Note eingegeben." 55 << " Bitte neue Note eingeben." << endl; 56 break; // optional; will exit switch anyway } 59 cin >> grade; // lies nächste Note ein 60 } Gib die Noten ein. 0 zum Beenden r Falsche Note eingegeben. Bitte neue Note eingeben Anzahl an Noten: 1 en: 2 2 en: 2 3 en: 3 en: 2 5 en und 6 en: 2 Programmcode: Notenberechnung () do/while Wiederholungsstruktur 8 67 // Ergebnisse ausgeben 68 cout << Anzahl an Noten: << endl 69 << 1 en: << count1 << endl // Anzahl an 1 70 << 2 en: << count2 << endl // Anzahl an 2 71 << 3 en: << count3 << endl // Anzahl an 3 72 << en: << count << endl // Anzahl an 73 << 5 en und 6 en: << count5_6 // Anzahl an 5 oder 6 7 << endl; return 0; // erfolgreiche Beendigung } // main Ähnlich der while Wiederholungsstruktur Schleifenfortsetzungstest am Ende und nicht am Anfang der Schleife Schleifenkörper wird also mindestens einmal ausgeführt! Syntax: do { Befehle; } while ( bedingung ); Im Gegensatz zu while: while ( bedingung ) { }; Befehle;

13 Kontrollflußdiagramm break und continue 51 break Befehl sofortige Beendigung von while, for, do/while, switch Programm wird mit erster Anweisung nach beendeter Struktur fortgesetzt Übliche Anwendung: Vorzeitiges Beenden einer Schleife Rest von switch überspringen continue Befehl Nächste Iteration in while, for, do/while Überspringt Rest des Schleifenkörpers Bei while und do/while: Schleifenbedingung wird direkt nach continue überprüft Bei for: Inkrementierung wird direkt vorgenommen dann wird Schleifenbedingung überprüft Beispiel für do/while 50 Beispiel break 52 1 // Fig. 2.2: fig02_2.cpp 2 // Beispiel für Verwendung von do/while 6 using std::endl; 7 8 // Programmstart 9 int main() 10 { 11 int counter = 1; // initialisiere Zähler do { 1 cout << counter << " "; // Zeige Zähler an 15 } while ( ++counter <= 10 ); // Ende von do/while cout << endl; return 0; } // main Beachte Preinkrement Operator in Bedingung 1 // Fig. 2.26: fig02_26.cpp 2 // Verwendung der break-anweisung in for-schleife 6 using std::endl; 7 8 // Programmstart 9 int main() 10 { int x; 13 1 // 10 Schleifendurchläufe 15 for ( x = 1; x <= 10; x++ ) { // wenn x 5 ist, beende Schleife 18 if ( x == 5 ) 19 break; // beende Schleife genau dann, wenn x 5 ist cout << x << " "; // gib Wert von x aus } // for x wird bereits hier definiert, damit es auch außerhalb der for Schleife genutzt werden kann. Beendet for wennbreak ausgeführt wird.

14 Beispiel break (2) 53 Beispiel continue (2) cout << Abbruch als x 5 wurde: << x << endl; return 0; } // main 2 25 cout << Mittels continue wurde der Wert 5 übersprungen << endl; return 0; } // main Abbruch als x 5 wurde: Mittels continue wurde der Wert 5 übersprungen Beispiel continue Logische Operatoren 56 1 // Fig. 2.27: fig02_27.cpp 2 // Verwendung der continue-anweisung in for-schleife 6 using std::endl; 7 8 // Programmstart 9 int main() 10 { int x; 13 1 // 10 Schleifendurchläufe 15 for ( x = 1; x <= 10; x++ ) { // wenn x 5 ist, fahre mit nächster Schleifeniteration fort 18 if ( x == 5 ) 19 continue; // überspringe restlichen Code in Körper cout << x << " "; // gib Wert von x aus } // for Beendet for wennbreak ausgeführt wird. zur Verwendung in Bedingungen in Schleifen und if Befehlen Syntax: ( bedingung1 ) operator ( bedingung2 ) && (logisches und) wahr, wenn beide Bedingungen wahr sind Beispiel: if ( geschlecht == 1 && alter >= 65 ) ++maennlichersenior; (logisches oder) wahr, wenn mindestens eine der beiden Bedingungen wahr ist

15 Logische Operatoren (2) 57 Verwechselung von = und == (2) 59! (logisches nicht, Negation) hier Syntax:!( bedingung ) liefert wahr, falls Bedingung falsch ist (und umgekehrt) if (! ( note == abbruchwert ) ) cout << nächste Note << grade << endl; Alternativ: if (note!= abbruchwert) cout << nächste Note << grade << endl; Beispiel: if ( paycode == ) cout << Bonus zugeteilt << endl; wenn paycode ist, wird Bonus zugeteilt Ersetzung von == durch =: if ( paycode = ) cout << Bonus zugeteilt << endl; paycode wird auch gesetzt (unabhängig vom Wert zuvor) Bedingung ist wahr (da nichtnull ist) Bonus wird in jedem Fall zugeteilt Verwechselung von = und == 58 Lvalues und Rvalues 60 Erzeugt meist keinen Syntaxfehler Problemaspekte: Ausdrücke, die einen Wert haben, können zur Entscheidung genutzt werden (Null = falsch, Nichtnull = wahr) Zuweisungen besitzen in diesem Sinne einen Wert (nämlich der, der zugewiesen wird) Lvalues Ausdrücke, die auf der linken Seite eines Ausdrucks benutzt werden können Können modifiziert werden (Variablen) x = Rvalues Dürfen nur auf rechter eines Ausdrucks verwendet werden! Konstanten (wie beispielsweise Zahlen) = x darf daher nicht geschrieben werden Lvalues können als Rvalues verwendet werden, jedoch nicht umgekehrt!

16 Zusammenfassung Strukturierte Programmierung Programme einfacher zu verstehen, testen, debuggen und modifizieren Regeln für strukturierte Programmierung nur vorgestellte Kontrollstrukturen verwenden Regeln: 1. Fange mit einfachstem Flußdiagramm an 2. Jedes Quadrat (Aktion) kann durch zwei Quadrate (Aktionen) in Sequenz ersetzt werden 3. Jedes Quadrat (Aktion) kann durch beliebige Kontrollstruktur (if, if/else, switch, while, do/while, for) ersetzt werden. Regeln 2 und 3 können in beliebiger Reihenfolge und Anzahl ausgeführt werden 62

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

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22 C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven

Mehr

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

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Einführung in die Programmierung Wintersemester 2011/12

Einführung in die Programmierung Wintersemester 2011/12 Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while

Mehr

C++ Programmierkurs. Wintersemester 04 / 05. Christian Hagemeier. Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln

C++ Programmierkurs. Wintersemester 04 / 05. Christian Hagemeier. Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln C++ Programmierkurs 1 Wintersemester 04 / 05 Christian Hagemeier Lehrstuhl Prof. Dr. Schrader Institut für Informatik Universität zu Köln mittwochs 17 18:30 Uhr Hörsaal II der Physikalischen Institute

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr

5. Elementare Befehle und Struktogramme

5. Elementare Befehle und Struktogramme 5. Elementare Befehle und Struktogramme Programmablauf Beschreibung des Programmablaufs mittel grafischer Symbole Beispiel : Flussdiagramme ja nein Besser : Struktogramme Dr. Norbert Spangler / Grundlagen

Mehr

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

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)

Mehr

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

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Kontrollstrukturen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Kontrollstrukturen Wichtig: bedingte Ausführung

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH 1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),

Mehr

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue Java - Schleifen Bedingung wiederhole ja Anweisung Anweisung Anweisung Leibniz Universität IT Services Anja Aue Anweisung int zahl; zahl = 2; zahl = zahl * 10; int zahl; ; Jede Anweisung endet mit einem

Mehr

Java: Eine kurze Einführung an Beispielen

Java: Eine kurze Einführung an Beispielen Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 2 SS 2016

Mehr

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3 Michael Jugovac Dominik Kopczynski Jan Quadflieg Till Schäfer Stephan Windmüller Dortmund, den 30. Oktober 2014 Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3 Es können 12 (+5

Mehr

3. Anweisungen und Kontrollstrukturen

3. Anweisungen und Kontrollstrukturen 3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen

Mehr

Annehmende Schleife do while

Annehmende Schleife do while Annehmende Schleife do while Schleife mit nachfolgender Bedingungsprüfung: annehmende Schleife B S Mit B wird eine Bedingung (logischer Ausdruck) bezeichnet, S ist ein Strukturblock. Zuerst wird S ausgeführt,

Mehr

Programmiertechnik Kontrollstrukturen

Programmiertechnik Kontrollstrukturen Programmiertechnik Kontrollstrukturen Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was sind Kontrollstrukturen? Kontrollstrukturen erlauben es, ein Programm nicht nur Zeile für Zeile auszuführen,

Mehr

Funktionales C++ zum Ersten

Funktionales C++ zum Ersten Funktionales C++ zum Ersten WiMa-Praktikum 1, Teil C++, Tag 1 Christoph Ott, Büro: Helmholtzstr.18, E22 Tel.: 50-23575, Mail: christoph.ott@uni-ulm.de Institut für Angewandte Informationsverarbeitung 26.08.08

Mehr

Auswahlen (Selektionen)

Auswahlen (Selektionen) 1 Anhang 10.3 Ein/Ausgaben Eingabe mit Prompt (Beispiel) cout ; // Prompt ohne endl cin

Mehr

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

1 Aufgaben 1.1 Objektorientiert: (extended-hamster) Sammel-Hamster 1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 8. Vorlesung 25.05.2016 1 Ausdrücke "Befehle", die ein Ergebnis liefern 3 + 4 sin(x) x < 10 getchar() Ausdrücke können Teil eines anderen Ausdrucks sein x = sin( x + y ) Auswertung:

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 4-1 Übung 1) Schreiben Sie ein Programm, das die Fläche unter einer Parabel, also das Integral

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere

Mehr

Grundlagen der Informatik 5. Kontrollstrukturen II

Grundlagen der Informatik 5. Kontrollstrukturen II 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

Mehr

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

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Kontrollstrukturen Was sind Kontrollstrukturen Kontrollstrukturen erlauben es, ein Programm nicht nur Zeile für Zeile auszuführen,

Mehr

Informationsverarbeitung

Informationsverarbeitung 1/23 Informationsverarbeitung Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2011/2012 Vorlesung 4 (alle Quelldateien

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,

Mehr

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C Einfache Programmstrukturen in C 4-1 Welche einfache Programmstrukturen sind zu unterscheiden? Arithmetische und logische Ausdrücke und Zuweisungen Verzweigungen Unvollständige bedingte Anweisungen Vollständige

Mehr

3. Grundanweisungen in Java

3. Grundanweisungen in Java 3. Grundanweisungen in Java Die Grundanweisungen entsprechen den Prinzipien der strukturierten Programmierung 1. Zuweisung 2. Verzweigungen 3. Wiederholungen 4. Anweisungsfolge (Sequenz) Die Anweisungen

Mehr

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

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32 Steueranweisungen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder Programmblöcken)

Mehr

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

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15 EINI LW/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

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

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if

Mehr

ModProg 15-16, Vorl. 5

ModProg 15-16, Vorl. 5 ModProg 15-16, Vorl. 5 Richard Grzibovski Nov. 18, 2015 1 / 29 Übersicht Übersicht 1 Logische Operationen 2 Priorität 3 Verzweigungen 4 Schleifen 2 / 29 Logische Werte Hauptkonzept: Besitzt ein C-Ausdruck

Mehr

Labor Software-Entwicklung 1

Labor Software-Entwicklung 1 Labor Software-Entwicklung 1 Übereinkunft zu Programmablaufplänen PAP - Grundlagen Wintersemester 2015/2016 Seite 1 von 9 Inhalt DIN 66 001: Sinnbilder für Programmablaufplan... 3 Grenzstelle... 3 Ablauflinie...

Mehr

Vom Problem zum Programm

Vom Problem zum Programm Aussagenlogik Vom Problem zum Programm Kontrollstrukturen der prozeduralen Programmierung Grundprinzipien: Sequenz Alternative Iteration Beschreibungsformen Ablaufpläne Struktogramme Pseudocode Programmentwicklung

Mehr

C++ - Einführung in die Programmiersprache Schleifen

C++ - Einführung in die Programmiersprache Schleifen C++ - Einführung in die Programmiersprache Schleifen Bedingung wiederhole ja Anweisung Anweisung Anweisung Leibniz Universität IT Services Anja Aue Schleifen Iterationsanweisungen. Wiederholung von Anweisungsblöcken.

Mehr

2.5 Programmstrukturen Entscheidung / Alternative

2.5 Programmstrukturen Entscheidung / Alternative Entscheidung, ob der folgende Anweisungsblock ausgeführt wird oder ein alternativer Block Entscheidung ob die Bedingung wahr oder falsch (True / False) ist Syntax: 2.5 Programmstrukturen 2.5.1 Entscheidung

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur

Mehr

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

Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht: Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht: o Klasse 0: kein Rabatt o Klasse 1: 4,5 % Rabatt o Klasse 2: 8,75% Rabatt

Mehr

Schleifenanweisungen

Schleifenanweisungen Schleifenanweisungen Bisher: sequentielle Abarbeitung von Befehlen (von oben nach unten) Nun: Befehle mehrfach ausführen (= Programmschleife): for-anweisung - wenn feststeht, wie oft z.b.: eine Berechnung

Mehr

Die Programmiersprache C Eine Einführung

Die Programmiersprache C Eine Einführung Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 C-Anweisungen...4-2 4.1 Ausdrucksanweisungen...4-3 4.2 Zusammengesetzte Anweisungen (Anweisungsblöcke)...4-3 4.3 Schleifenanweisungen...4-4 4.3.1 while - Schleife...4-4 4.3.2 do - Schleife...4-5

Mehr

9 Anweisungen und Kontrollstrukturen

9 Anweisungen und Kontrollstrukturen 9 Anweisungen und Kontrollstrukturen Hier beziehen wir uns auf Kapitel 6 von Go To Java 2. Die Steuerung des Programmablaufs geschieht durch sogenannte Anweisungen. Jede Anweisung bewirkt irgendwelche

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität

Mehr

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

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort then S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert

Mehr

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen

Mehr

Tag 3 Repetitorium Informatik (Java)

Tag 3 Repetitorium Informatik (Java) Tag 3 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2016/2017 Willkommen zum Informatik-Repetitorium!

Mehr

Kontrollstrukturen Blöcke / Schleifen / Bedingungen

Kontrollstrukturen Blöcke / Schleifen / Bedingungen Kontrollstrukturen Blöcke / Schleifen / Bedingungen 1 Einfache Anweisungen und Blöcke einfache Anweisung abgeschlossen mit Semikolon ; typische Fälle: o Deklaration, Zuweisung, Funktionsaufruf Sonderfall

Mehr

Algorithmen zur Datenanalyse in C++

Algorithmen zur Datenanalyse in C++ Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 05: Weitere Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Weitere Kontrollstrukturen Wiederholungsstrukturen (Schleifen) While-,do-,for-Schleifen

Mehr

4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan)

4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan) 4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan) 4. Ablaufsteuerung 4-1 4.1 Anweisungen Ein Programm besteht

Mehr

Wie entwerfe ich ein Programm?

Wie entwerfe ich ein Programm? Wie entwerfe ich ein Programm? Welche Objekte brauche ich? Flussdiagramme für Programmablauf Vorcode Testcode Hauptcode Wir spielen Lotto! Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 5 +

Mehr

BKTM - Programmieren leicht gemacht.

BKTM - Programmieren leicht gemacht. BKTM Programmieren leicht gemacht. + Struktogramm Das Struktogramme ist eine Entwurfsmethode für die strukturierte Programmierung. Es ist nach der DIN 66261 genormt. Es ist 1972/73 von Dr. Isaac Nassi

Mehr

6. Iteration (Schleifenanweisungen)

6. Iteration (Schleifenanweisungen) 6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 9. Nov. 2015 2 Schwerpunkte While-Anweisung: "abweisende"

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Kapitel 1: Einführung

Kapitel 1: Einführung 10 Kapitel 1: Einführung 1.1 Was ist eine Programmiersprache? 1.2 Details zu C++ 1.3 Phasen der Programmierung 1.4 Ein erstes Programm: Hello World! 1.5 Addition zweier Zahlen 1.6 Entscheidungen 1.1 Was

Mehr

Operatoren (1) Operatoren (2)

Operatoren (1) Operatoren (2) Operatoren (1) Binäre Operatoren + - * / % < = > & ^ > && Addition Subtraktion Multiplikation Division Divisionsrest Vergl. auf kleiner Vergl. auf kleiner oder gleich Vergl. auf gleich Vergl.

Mehr

Informatik für Elektrotechnik und Informationstechnik

Informatik für Elektrotechnik und Informationstechnik Informatik für Elektrotechnik und Informationstechnik Praktikum 1 Wintersemester 2013/14 1 Kennenlernen der Entwicklungsumgebung Netbeans Netbeans ist eine moderne Entwicklungsumgebung für mehrere Programmiersprachen,

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

Schleifen in C/C++/Java

Schleifen in C/C++/Java Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.

Mehr

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011 Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 Operatoren für elementare Datentypen 2 Bedingte Anweisungen 3 Schleifen Zuweisungsoperator Die Zuweisung von Werten an

Mehr

FB Informatik. Fehler. Testplan

FB Informatik. Fehler. Testplan Fehler #include int i,n,summe; int summe (int); cout 0) cin>n; i=summme(n); cout

Mehr

C- Kurs 04 Anweisungen

C- Kurs 04 Anweisungen C- Kurs 04 Anweisungen Dipl.- Inf. Jörn Hoffmann jhoffmann@informa@k.uni- leipzig.de Universität Leipzig Ins@tut für Informa@k Technische Informa@k Ausdrücke Institut für Informatik Anweisungen C-Programm

Mehr

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Herzlich Willkommen. Über mich Termine Literatur Über PHP

Herzlich Willkommen. Über mich Termine Literatur Über PHP Über mich Termine Literatur Über PHP Herzlich Willkommen Über mich Termine Literatur Über PHP Wer ist das da vorne? Mario Lipinski Über mich Termine Literatur Über PHP Wer ist das da vorne? Mario Lipinski

Mehr

System.out.println("TEXT");

System.out.println(TEXT); Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Praxisorientierte Einführung in C++ Lektion: "Kontrollstrukturen"

Praxisorientierte Einführung in C++ Lektion: Kontrollstrukturen Praxisorientierte Einführung in C++ Lektion: "Kontrollstrukturen" Christof Elbrechter Neuroinformatics Group, CITEC April 24, 2014 Christof Elbrechter Praxisorientierte Einführung in C++ April 24, 2014

Mehr

Grundlagen von C# - 2

Grundlagen von C# - 2 Grundlagen von C# - 2 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Arrays 2. Kontrollstrukturen 3. Verzweigungen Bedingte Verzweigung (if else) 4. Schleifen Kopfgesteuerte Schleife (while) Fußgesteuerte

Mehr

Eine kleine Befehlssammlung für Java Teil1

Eine kleine Befehlssammlung für Java Teil1 Eine kleine Befehlssammlung für Java Teil1 Definition einer Klasse public class Klasse{ Hier wird der Name der Klasse definiert. In diesem Fall ist das Klasse. Der Name muss mit dem Namen der.class Datei

Mehr

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2 Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen

Mehr

Einfache Rechenstrukturen und Kontrollfluss II

Einfache Rechenstrukturen und Kontrollfluss II Einfache Rechenstrukturen und Kontrollfluss II Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.informatik.uni-muenchen.de/lehre/ss06/infoii/ SS 06 Ziele Lernen imperative

Mehr

Programmierkurs Python I

Programmierkurs Python I Programmierkurs Python I Michaela Regneri 2009-11-05 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater) Übersicht Variablen Datentypen Werte Operatoren und Ausdrücke Kontrollstrukturen: if, while

Mehr

Flussdiagramm / Programmablaufplan (PAP)

Flussdiagramm / Programmablaufplan (PAP) Flussdiagramm / Programmablaufplan (PAP) Basissysmbole Grenzstelle (Anfang, Zwischenhalt oder Ende des Programms/Algorithmus) Verbindung Zur Verdeutlichung der Ablaufrichtung werden Linien mit einer Pfeilspitze

Mehr

Kontrollanweisungen: Teil Pearson Education, Inc. All rights reserved.

Kontrollanweisungen: Teil Pearson Education, Inc. All rights reserved. 1 3 Kontrollanweisungen: Teil 1 2 3.1 Einführung 3.2 Algorithmen 3.3 Pseudocode 3.4 Euklidscher Algorithmus 3.5 Kontrollstrukturen 3.6 if Auswahlanweisung 3.7 if...else Zweifach-Auswahlanweisung 3.8 while

Mehr

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54 PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten

Mehr

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

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Geben

Mehr

4 Schleifen und Dateien

4 Schleifen und Dateien 4 Schleifen und Dateien 4.1 Übungsaufgabe 4.1.1 Aufgabe 1 Schreiben Sie drei C++ Programme: pword_for.cxx, pword_while.cxx, pword_do.cxx. Die Programme sollen den Benutzer höchstens 5 Mal nach einem Passwort

Mehr

Ein- und Ausgabe (I/O)

Ein- und Ausgabe (I/O) Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Überblick 1 2 / 14 Motivation Computer arbeiten

Mehr

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn November 2016 Algorithmen und Programme Algorithmus = Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man

Mehr

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Daher ist y = x + 5.6; keine Gleichung, sondern die Anweisung den Wert

Mehr

Programmieren für Wirtschaftswissenschaftler SS 2015

Programmieren für Wirtschaftswissenschaftler SS 2015 DEPARTMENT WIRTSCHAFTSINFORMATIK FACHBEREICH WIRTSCHAFTSWISSENSCHAFT Programmieren für Wirtschaftswissenschaftler SS 2015 Lucian Ionescu Blockveranstaltung 16.03 27.3.2015 3. Verzweigungen und Schleifen

Mehr

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

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

4. Ablaufsteuerung (Kontrollstrukturen)

4. Ablaufsteuerung (Kontrollstrukturen) 4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan) 4. Ablaufsteuerung 4-1 4.1 Anweisungen Ein Programm besteht

Mehr

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen Neben der Aneinanderreihung von Anweisungen (Sequenz)

Mehr

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

C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Ein- und Ausgabe in die Konsole Leibniz Universität IT Services Anja Aue Eingabe (input) und Ausgabe (output) In diesem Kapitel wird nur das Lesen von und das

Mehr

Webbasierte Programmierung

Webbasierte Programmierung Webbasierte Programmierung Eine Einführung mit anschaulichen Beispielen aus der HTML5-Welt apl. Prof. Dr. Achim Ebert Inhalt Kapitel 6: JavaScript Kontrollstrukturen Verzweigungen Einseitig, zweiseitig,

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

Mehr