Einführung in die Programmierung mit C++ Übung 2

Werbung
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
Professur für Verkehrsbetriebslehre und Logistik
Dipl.-Verk.wirtsch. Konstanze Winkler
Stephan Hocke (SHK)
Organisation
Inhalt der heutigen Veranstaltung:
•
•
•
•
Operatoren
Typumwandlung mit static_cast
Kontrollstrukturen
Arrays
Programmierung mit C++
Übung 2
Folie Nr. 2 von 21
Operatoren
Arithmetische Operatoren
++
-+
*
/
%
+
-
Inkrement-Operator
Dekrement-Operator
Vorzeichen
Vorzeichen
Multiplikation
Division
Modulo
Addition
Subtraktion
Zuweisungsoperator
Einfache Zuweisung: ordnet einer
Variablen den Wert eines Ausdrucks
zu
Programmierung mit C++
Übung 2
Inkrement-/Dekrement-Operator:
Erhöht/reduziert den Operanden
um 1, z.B. Variable i: i++  i=i+1
Modulo: Gibt den ganzzahligen Rest an,
der bei der Division zweier ganzer
Zahlen entsteht
i = 3.2
n = 1.3 + 2.0 * i
Der Zuweisungsoperator = hat die niedrigste
Priorität, erst wird die rechte Seite berechnet, dann
das Ergebnis der linken Seite zugewiesen
Folie Nr. 3 von 21
Operatoren
Vergleichsoperatoren:
==
!=
<=
>=
<
>
identisch
ungleich
kleiner oder gleich
größer oder gleich
kleiner
größer
Boolesche Variablen für Vergleiche:
• Ausdruck vom Typ bool, kann den Wert true oder false besitzen
• true („wahr“): Vergleich trifft zu
• false („falsch“): Vergleich trifft nicht zu
• Beispiele:
5 >= 6
false
1.7 < 1.8
true
2 + 4 == 5
false
Programmierung mit C++
Übung 2
Folie Nr. 4 von 21
Operatoren
Logische Operatoren  zur Formulierung zusammengesetzter Bedingungen
 Programmverzweigungen können von mehreren Bedingungen abhängig
gemacht werden
||
&&
!
ODER
UND
NICHT
 true, wenn mindestens ein Operand wahr ist
 true, wenn beide Bedingungen wahr sind
 true, wenn sein Operand falsch ist
Beispiel für || - Operator:
hoehe < 5.6 || hoehe > 8.2 ist true, wenn hoehe kleiner als 5.6 oder
größer als 8.2 ist.
Programmierung mit C++
Übung 2
Folie Nr. 5 von 21
Typumwandlung
Die Variable a wird mit static_cast in eine Variable
vom Typ double umgewandelt.
Hier wird die Nachkommastelle abgeschnitten!
Nach der Umwandlung mit static_cast wird der Quotient
aus 10 und 4 korrekt dargestellt!
Programmierung mit C++
Übung 2
Folie Nr. 6 von 21
Kontrollstrukturen
… ermöglichen, eine Auswahl zwischen mehreren Anweisungen zu
treffen oder eine Anweisung mehrfach auszuführen.
Verzweigungen: im Programm wird eine Bedingung definiert, deren
Erfüllung bzw. Nichterfüllung entscheidet, welcher Programmabschnitt
ausgeführt wird.
Schleifen: Ein Anweisungsblock wird immer wieder ausgeführt, bis
eine vorab definierte Abbruchbedingung erfüllt ist.
Programmierung mit C++
Übung 2
Folie Nr. 7 von 21
if
Anweisungen werden nur dann ausgeführt, wenn bestimmte Voraussetzungen
erfüllt sind.
Aufgabe 1:
Legen Sie ein neues Projekt „P1_Ü2“ an, welches in einer Projektmappe
„Übung 2“ liegt.
Schreiben Sie nun ein Programm „if“, in welchem der Nutzer zur Eingabe
zweier Zahlen aufgefordert wird.
Im weiteren Verlauf prüft das Programm, ob die beiden eingegebenen Werte
identisch sind. Ist das der Fall, soll der Nutzer auf diesen Umstand aufmerksam
gemacht werden. In jedem Fall soll im Ausgabefenster ein kurzer Text
erscheinen, mit dem Sie sich für die Eingabe der Zahlen bedanken.
Programmierung mit C++
Übung 2
Folie Nr. 8 von 21
if/else/else if
Diese Anweisungen werden nur ausgeführt,
wenn die dazugehörige Bedingung erfüllt ist.
Diese Anweisung wird nur ausgeführt,
wenn beide Bedingungen NICHT erfüllt sind.
Diese Anweisung wird immer ausgeführt.
Programmierung mit C++
Übung 2
Folie Nr. 9 von 21
Schleifen
•
zur wiederholten Ausführung von einzelnen Anweisungen oder
Anweisungsblöcken
3 Formen: for, while, do while
•
werden mittels einer Schleifenvariablen kontrolliert (es wird eine Variable
definiert, welcher zu Beginn der Schleife ein Wert zugewiesen wird)
Schleifenrumpf wird wiederholt ausgeführt, bei jedem Mal wird
Schleifenvariable verändert
vor Beginn jeder Rumpfausführung wird der Wert der Schleifenvariable
durch eine Bedingung überprüft (bei do while nach der ersten
Rumpfausführung)
nur wenn die Bedingung erfüllt ist, wird der Rumpf erneut ausgeführt,
sonst Ende der Schleife
Gefahr einer Endlosschleife, z.B. wenn Abbruchbedingung fehlt oder nie
erreicht wird
•
•
•
•
Programmierung mit C++
Übung 2
Folie Nr. 10 von 21
for
Definition und Initialisierung
der Schleifenvariable
Schleifenbedingung: wird zu Beginn
jeder Iteration überprüft;
die nächste Iteration wird nur durchgeführt,
wenn sie true ergibt, ansonsten wird die
Schleife verlassen
for (int n = 1; n <= 10; n++)
{
//Anweisungen;
}
Der Schleifenkopf umfasst drei Abschnitte,
durch Semikolon getrennt:
Initialisierung; Bedingung; Veränderung;
Schleifenkopf nicht mit Semikolon abschließen!
Veränderungsteil; wird bei jeder Iteration ausgeführt
hier: Inkrementieren der Variable n
Der Schleifenrumpf wird ausgeführt,
solange die Bedingung im Schleifenkopf
true ergibt
Programmierung mit C++
Übung 2
Folie Nr. 11 von 21
while
Auf Schlüsselwort while folgt nur die Schleifenbedingung; Initialisierung und
Veränderung können an anderen Stellen im Code platziert werden ( viel
Flexibilität, aber Gefahr der Unübersichtlichkeit)
Definition der Schleifenvariable;
oft wird auch eine bereits bestehende
Variable zur Steuerung der Schleife benutzt.
int n = 1;
while (n <= 10)
{
Schleifenbedingung; ergibt sie false, dann wird die Schleife beendet
//Anweisungen;
n++;
}
Veränderung der Schleife erfolgt im Schleifenrumpf
Programmierung mit C++
Übung 2
Folie Nr. 12 von 21
do while
int n = 1;
do
{
//Anweisungen;
n++;
}
while (n <= 10);
Der Schleifenrumpf wird mindestens einmal ausgeführt,
da die Schleifenbedingung am Ende der Schleife steht
Hinter der Bedingung muss ein Semikolon stehen
Programmierung mit C++
Übung 2
Folie Nr. 13 von 21
Beispiel: Summe berechnen
Summe der Zahlen von 0 bis 100 berechnen
Programmierung mit C++
Übung 2
Folie Nr. 14 von 21
Arrays
Beispiel:
Speicherung eines Temperaturwertes  Variable
double temperatur
Speicherung von drei Temperaturwerten
drei Variablen:
double temperatur1
double temperatur2
double temperatur3
Speicherung von 1000 Temperaturwerten  1000 Variablen?
Lösung: Definition eines Arrays für alle 1000 Werte
Name des Arrays
Datentyp der enthaltenen Elemente
Größe des Arrays in [ ]: Anzahl der Elemente
im Array  positive ganze Zahl
double temperatur[1000]
Alle enthaltenen Elemente müssen vom selben Datentyp sein!!
Programmierung mit C++
Übung 2
Folie Nr. 15 von 21
Arrays initialisieren
Der Name des Arrays darf noch nicht an eine
Variable oder ein anderes Array vergeben sein!
Auflistung der Werte der einzelnen Elemente im Array in { }
int alter[5] = {23, 40, 27, 33, 31};
int alter[] = {23, 40, 27, 33, 31};
Wird eine Initialisierungsliste angegeben, dann kann auf die Größenangabe verzichtet werden
Programmierung mit C++
Übung 2
Folie Nr. 16 von 21
Arrays: Zugriff auf Elemente
Ein Array vom Typ int mit dem Namen zahlen wird erzeugt. Es hat 10 Elemente.
int zahlen[10];
Zugriff auf ein Element durch Angabe der Position
in [ ] hinter dem Namen des Arrays
Wertzuweisung: dem 6. Element wird der Wert 32 zugewiesen
zahlen[5] = 32;
Aufpassen!! Das erste Element hat Index 0, Wertzuweisung hier also an 6. Element
zahlen[6] = 3 * zahlen[5];
dem 7. Element im Array wird der dreifache Wert des 6. Elements zugewiesen
Ein Array hat n Elemente, diese sind von [0] bis [n-1] durchnummeriert
Programmierung mit C++
Übung 2
Folie Nr. 17 von 21
Aufgabe 2
Legen Sie eine neue Quelldatei „Array“ in einem Projekt P2_Ü2
(Projektmappe Übung 2) an!
Schreiben Sie nun ein Programm, in welchem die Werte der 6
Elemente {7, 1, 4, 3, 2, 5} eines Arrays namens „feld“
a. ausgeben werden;
b. der Wert jedes zweiten Elements ausgegeben wird (beginnend mit
dem ersten Element);
c. nur die Elemente ausgegeben werden, deren Wert gerade ist!
Programmierung mit C++
Übung 2
Folie Nr. 18 von 21
Mehrdimensionale Arrays
int zahlen[3][10];
// 3 x 10 Matrix
Definition einer Matrix zahlen mit drei Zeilen und zehn Spalten
alle 30 Elemente sind vom Typ int
zahlen[0][9] = 56
// Zeile 1, Spalte 10
Das letzte Element der ersten Zeile erhält den Wert 56
Programmierung mit C++
Übung 2
Folie Nr. 19 von 21
Mehrdimensionale Arrays
Wertzuweisung:
int arr[2][3] = {{5,3,3},{8,3,4}};
Einer Matrix mit dem Namen arr mit zwei Zeilen und drei Spalten bekommt ihre Werte zugewiesen.
Die erste Zeile wird mit den Werten 5, 3, 3 belegt, die zweite Zeile mit 8, 3, 4.
Programmierung mit C++
Übung 2
Folie Nr. 20 von 21
Beispiel: Mehrdimensionale
Arrays/verschachtelte Schleifen
Ein zweidimensionales Array mit dem Namen matrix wird erzeugt und mit den Ziffern von 1 bis 9 belegt.
Ausgabe:
Programmierung mit C++
Übung 2
Folie Nr. 21 von 21
Herunterladen