WiSe 2013 | Programmierpraktikum C++ - 01_Basics

18
Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Jan G. Wieners // [email protected] Programmierpraktikum C++ Wintersemester 2013 / 2014 21. Oktober 2013 – Grundlagen & Co.

description

 

Transcript of WiSe 2013 | Programmierpraktikum C++ - 01_Basics

Page 1: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

Universität zu Köln. Historisch-Kulturwissenschaftliche InformationsverarbeitungJan G. Wieners // [email protected]

Programmierpraktikum C++Wintersemester 2013 / 2014

21. Oktober 2013 – Grundlagen & Co.

Page 2: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

Kurzwiederholung und Erweiterungen: Präprozessordirektive. Funktionen (und ihre Rückgabewerte) Ausgabe (cout) und Eingabe (cin) Regeln & Co. Kontrollstrukturen: if Vergleichsoperatoren Schleifen: while, for Fallunterscheidung: switch / case

Praxis: Übungs-/Vertiefungsaufgabe Praxis: Hausaufgaben

Kurzüberblick

Page 3: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

Erste „Hallo Welt“ Applikation:

#include <iostream>using namespace std;

int main(){

cout << "Willkommen beim C++ Kurs!" << endl;return 0;

}

Softwaretechnologie I – 14.10.2013

Page 4: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

Erste „Hallo Welt“ Applikation:#include <iostream>

using namespace std;

int main(){

cout << "Willkommen beim C++ Kurs!" << endl;

return 0;}

Softwaretechnologie I – 14.10.2013

PräprozessordirektiveBindet die Quellcodedatei (iostream.h) ein

Gibt an, in welchem Namensbereich wiruns befinden („std“)

Die Hauptfunktion „main“Der Compiler erwartet einen ganzzahligen Rückgabewert (int)

Die Funktion cout leitet Zeichen an den Bildschirm / die Konsole weiter

Return 0; lässt die Funktion main() den Zahlenwert 0zurückgeben

Geschweifte Klammern geben den Funktionsrumpf (hier: main()) an

Page 5: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

Interaktion mit der Anwendung[…]char derBenutzer [80];

cout << "Wie heißen Sie?" << endl;cin >> derBenutzer;

cout << "Willkommen beim C++ Kurs " << derBenutzer << endl;

[…]

Softwaretechnologie I – 14.10.2013

Variable derBenutzer vom Typ „char“(Zeichen) wird angelegt, gleichzeitig wirdPlatz reserviert für 80 (von 0 bis 79)Unterelemente

Über die Funktion cin wird die Benutzer-eingabe in die Variable eingelesen…

…schließlich über cout wieder ausgegeben

Page 6: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

Anweisungen müssen mit Semikola (;) abgeschlossen werden Groß-/Kleinschreibung von Funktionen, Variablen, Konstanten,

etc. Jede Variable verfügt über einen Datentyp:

Datentypbezeichnung Variablenname Mehrere Variablen können als durch von Kommata getrennte

Liste definiert werden:int zahl1, zahl2, zahl3;

Variablen und Konstanten können mit einem Startwert initialisiert werden:int zahl = 23;

Zuweisungsoperator: Mit Hilfe von = weisen wir den Wert der rechts vom Operator stehenden Variable (o.ä.) der linken Variable (o.ä.) zu:summe = zahl1 + zahl2;

Merken: Trivia

Page 7: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

[…]int zahl1, zahl2, resultat;char aktion;cout << "Bitte geben Sie eine Zahl ein: “;cin >> zahl1;cout << "Bitte geben Sie noch eine Zahl ein: ";cin >> zahl2;cout << "Was soll damit geschehen?" << endl<< "(+ = Addieren)" << endl << "(- = Subtrahieren)„<<endl;cin >> aktion;if (aktion=='+')

resultat=zahl1+zahl2;else

resultat=zahl1-zahl2;cout << "Das Ergebnis lautet: " << resultat << endl;[…]

Kontrollstrukturen: if

Mit der if-Anweisung können wir den Programmablaufbeeinflussen: if (Bedingung) Anweisung 1;else Anweisung 2;Achtung: analog zu:if(Bedingung){Anweisung 1;}[…]

Page 8: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

A == BIst A genau gleich mit B? Achtung: ZWEI Gleichheitszeichen!

A != BA ist nicht gleich B

A < BIst A kleiner als B?

A <= BIst A kleiner oder gleich B?

A > BIst A größer als B?

A >= BIst A größer oder gleich B?

Vergleichsoperatoren

Page 9: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

Schachtelung möglich:if(zahlenwert == 15)

cout << “Zahl ist 15“;else

if(zahlenwert <= 14)cout << “Zahl ist kleiner als 15“;

elsecout << “Zahl ist größer als 15“;

if

Page 10: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

Dienen dazu, Anweisungen wiederholt auszuführen

zahl=0while(zahl <= 23)

{cout << “Zahl hat den Wert“ << zahl << endl;zahl++;}

Schleifen: while

Kontrollvariable der Schleife: zahl

Page 11: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

for(int i = 0; i <= 23; i++){

cout << i << endl;}

for(Initialisierung der Kontrollvariable,Definition der Endbedingung,

Veränderung derKontrollvariablein jedem Lauf)

Schleifen: for

Kontrollvariable der Schleife: i

Page 12: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

Anstatt:

int variable=23;if(variable == 15)

cout << "A";else if(variable == 16)

cout << "B";else if(variable == 17)

cout << "C";else

cout << "D";

Können wir schreiben:

Fallunterscheidung: switch / case

switch(variable){case 15:

cout << "A";break;

case 16:cout << "B";break;

case 17:cout << "C";break;

default:cout << "D";break;

}

Page 13: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

*

Page 14: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

Aufgabe 1:

Deklarieren Sie eine Variable vom Typ char und eine Variable vom Typ int Geben Sie eine Zahl ein und speichern sie die Zahl als ganzzahligen Wert (int) Weisen Sie den Wert der int-Variable der char-Variablen zu Geben Sie die char-Variable aus

Erweiterter Pseudocode:#include <iostream>using namespace std; int main(){    // Variable fuer alphanum. Zeichen    // Variable fuer ganze Zahlen        // Zahl eingeben        // char Variable bekommt den Wert der int Variablen        // char Variable ausgeben}

Übungsaufgaben

Page 15: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

Aufgabe 2:

Wir wollen nur Kleinbuchstaben zwischen a und z ausgeben. (Die liegen im ASCII-Code zwischen 97 und 122.) Dazu müssen wir mit einer if-Abfrage die Bedingung testen. Wenn eine Zahl jenseits und diesseits des beiden Werte eingegeben wurde, erscheint eine Fehlermeldung.

Erweiterter Pseudocode#include <iostream>using namespace std; int main(){    // Variable fuer alphanum. Zeichen    // Variable fuer ganze Zahlen        // Zahl eingeben        // wenn die Zahl groesser als 96 UND (&&) wenn die Zahl kleiner ist als 123

// char Variable bekommt den Wert der int Variablen// char Variable ausgeben  

// sonst          // Fehlerausgabe   }

Übungsaufgaben

Page 16: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

Aufgabe 3:

Bei der Fibonacci-Folge ergibt sich die jeweils folgende Zahl durch Addition der beiden vorherigen Zahlen (0, 1, 1, 2, 3, 5, 8, 13, etc.), vgl. http://de.wikipedia.org/wiki/Fibonacci-Folge. Lassen Sie die ersten 20 Zahlen der Fibonacci-Reihe berechnen und geben Sie die Zahlen über die Konsole aus:

Lauf 0: 1Lauf 1: 2Lauf 2: 3Lauf 3: 5Lauf n: x

Übungsaufgaben

Page 17: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

Aufgabe 4:

Stellen Sie das Zeichen "X" auf der Konsole dar, das sich über Eingabe des Zeichens "s" um eine Leerstelle nach rechts bewegt. Bei Eingabe des Zeichens "a" soll sich das "X" um eine Leerstelle nach links bewegen. Die Konsolenapplikation soll so lange laufen, bis das Zeichen "q" eingegeben wird. Tipp: Um das Konsolenfenster zu leeren, wird unter

MS Visual C++ der Befehl "system("cls");" verwendet. Um die Funktion system() benutzen zu können, muss die Headerdatei stdlib.h eingebunden werden: #include <stdlib.h>.

Übungsaufgaben

Page 18: WiSe 2013 | Programmierpraktikum C++ - 01_Basics

/