WiSe 2013 | Programmierpraktikum C++ - 01_Basics

Post on 05-Dec-2014

357 views 4 download

description

 

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

Universität zu Köln. Historisch-Kulturwissenschaftliche InformationsverarbeitungJan G. Wieners // jan.wieners@uni-koeln.de

Programmierpraktikum C++Wintersemester 2013 / 2014

21. Oktober 2013 – Grundlagen & Co.

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

Erste „Hallo Welt“ Applikation:

#include <iostream>using namespace std;

int main(){

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

}

Softwaretechnologie I – 14.10.2013

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

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

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

[…]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;}[…]

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

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

Dienen dazu, Anweisungen wiederholt auszuführen

zahl=0while(zahl <= 23)

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

Schleifen: while

Kontrollvariable der Schleife: zahl

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

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;

}

*

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

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

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

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

/