Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Programmierpraktikum C++
Wintersemester 2013 / 2014
18. November 2013 – Strukturierung von Anwendungen

Universität zu Köl...
Kurzüberblick


Strukturierung von Anwendungen I
 Funktionen
 Call by Value
 Call by Reference

 Auslagerung von Funk...
[…]

int addiereArabisch(int a, int b);
int main() {
[…]
ergebnis = addiereArabisch(zahl1, zahl2);
[…]

}

int addiereArab...
[…]

Deklaration: „In meiner
Anwendung existiert eine
Funktion, die ich zu einem
späteren Zeitpunkt definiere“

int addier...
Generieren beide Anwendungen dasselbe Ergebnis?
#include <iostream>
using namespace std;

#include <iostream>
using namesp...
Funktionen: Call by value
Call by value  Der Compiler fertigt eine Kopie des
Variableninhalts an:
#include <iostream>
usi...
Funktionen: Call by reference
Call by reference  Compiler fertigt keine Kopie des Variableninhalts
an; wir arbeiten unmit...
Zeiger
Bis dato: Variablen





int ganzzahligerWert = 13;
char einzelnesZeichen = ‘A‘;
int[50] eindimensionalesArray;...
Beispiel:
int wert = 23;
int *zeigerAufWert = NULL;
zeigerAufWert = &wert;
cout << "Vorher: " << endl << wert << endl << z...
...Funktonalität auslagern...?
Zusammenfassen von Variablen
char roemischeZiffern[8] = "ivxlcdm";
int ziffernWert[7] = {1, 5, 10, 50, 100, 500, 1000};
Ve...
Zusammenfassen von Variablen
Struct roemisch
{
char roemischeZiffer;
int arabischerWert;
};
struct roemisch werte[7];

0

...
Übungsaufgabe: Filmdatenbank
Die ultimative Konkurrenz zur Internet Movie Database (IMDb): Erstellen
Sie Ihre eigene Filmd...
/
WiSe 2013 | Programmierpraktikum C++ - 05_Strukturierung von Anwendungen
WiSe 2013 | Programmierpraktikum C++ - 05_Strukturierung von Anwendungen
WiSe 2013 | Programmierpraktikum C++ - 05_Strukturierung von Anwendungen
Nächste SlideShare
Wird geladen in …5
×

WiSe 2013 | Programmierpraktikum C++ - 05_Strukturierung von Anwendungen

512 Aufrufe

Veröffentlicht am

  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

WiSe 2013 | Programmierpraktikum C++ - 05_Strukturierung von Anwendungen

  1. 1. Programmierpraktikum C++ Wintersemester 2013 / 2014 18. November 2013 – Strukturierung von Anwendungen Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Jan G. Wieners // jan.wieners@uni-koeln.de
  2. 2. Kurzüberblick  Strukturierung von Anwendungen I  Funktionen  Call by Value  Call by Reference  Auslagerung von Funktionalität in Headerdateien   Zeiger, Adressoperator Strukturierung von Anwendungen II  Strukturen  Objektorientierung: Klassen Wiederholung 02.11.2010
  3. 3. […] int addiereArabisch(int a, int b); int main() { […] ergebnis = addiereArabisch(zahl1, zahl2); […] } int addiereArabisch(int a, int b) { return a + b; }
  4. 4. […] Deklaration: „In meiner Anwendung existiert eine Funktion, die ich zu einem späteren Zeitpunkt definiere“ int addiereArabisch(int a, int b); int main() { Deklaration  Funktionskopf, der mit einem Semikolon abgeschlossen wird. […] ergebnis = addiereArabisch(zahl1, zahl2); […] } int addiereArabisch(int a, int b) { return a + b; } Definition: „Auf diese bestimmte Art und Weise verfährt meine Funktion“
  5. 5. Generieren beide Anwendungen dasselbe Ergebnis? #include <iostream> using namespace std; #include <iostream> using namespace std; int addition(int operandA, int operandB) { return operandA+operandB; } int addition(int,int); int main() { int zahl1=1; cout<<addition(zahl1,4)<<endl; } ==? int main() { int zahl1=1; cout<<addition(zahl1,4)<<endl; } int addition(int zahl1, int zahl2) { return zahl1+zahl2; }
  6. 6. Funktionen: Call by value Call by value  Der Compiler fertigt eine Kopie des Variableninhalts an: #include <iostream> using namespace std; int function(int wert) { wert += 5; return wert; } int main() { int zahl = 10; cout << zahl; func(zahl); cout << endl << zahl; return 0; }  Ausgabe?
  7. 7. Funktionen: Call by reference Call by reference  Compiler fertigt keine Kopie des Variableninhalts an; wir arbeiten unmittelbar mit der Variablen: #include <iostream> using namespace std; void func(int *wert) { *wert += 5; } int main() { int zahl = 23; cout << zahl; func(&zahl); cout << zahl; return 0;  Ausgabe? } &  Adressoperator *  Zeigeroperator (auch: Inhalts-/Dereferenzierungsoperator)
  8. 8. Zeiger Bis dato: Variablen     int ganzzahligerWert = 13; char einzelnesZeichen = ‘A‘; int[50] eindimensionalesArray; int[5][5] zweidimensionalesArray; Beispiel:  unsigned int i;  i=1; Interne Repräsentation der Variable i:
  9. 9. Beispiel: int wert = 23; int *zeigerAufWert = NULL; zeigerAufWert = &wert; cout << "Vorher: " << endl << wert << endl << zeigerAufWert; *zeigerAufWert = 42; cout << "nNachher: " << endl << wert << endl << zeigerAufWert;  Zeiger dürfen nur auf Variablen verweisen, die denselben Datentyp haben!
  10. 10. ...Funktonalität auslagern...?
  11. 11. Zusammenfassen von Variablen char roemischeZiffern[8] = "ivxlcdm"; int ziffernWert[7] = {1, 5, 10, 50, 100, 500, 1000}; Verbindung der Werte aufgrund der Arrayposition 0 1 2 3 4 5 6 I V X L C D M 1 5 10 50 100 500 1000
  12. 12. Zusammenfassen von Variablen Struct roemisch { char roemischeZiffer; int arabischerWert; }; struct roemisch werte[7]; 0 1 2 3 I, 1 V, 5 X, 10 L, 50 4 5 C, 100 D, 500 6 M, 1000
  13. 13. Übungsaufgabe: Filmdatenbank Die ultimative Konkurrenz zur Internet Movie Database (IMDb): Erstellen Sie Ihre eigene Filmdatenbank. Ihre Datenbank soll maximal 100 Einträge speichern und folgende Elemente aufnehmen können:  Deutscher Name des Films  Originaltitel  Veröffentlichungsjahr  Regie Aufgabe 1.1: Überlegen Sie, wie Sie die Datenbank umsetzen können – welche Datenstruktur bietet sich für die zu repräsentierenden Informationen an? Aufgabe 1.2: Implementieren Sie folgenden Programmablauf (vgl. den oben angeführten Screenshot):  wird das Zeichen "j" eingegeben, so wird ein neuer Datensatz angelegt.  wird das Zeichen "n" eingegeben, so wird die Applikation mit einer Abschiedsmeldung beendet.  wird das Zeichen "p" eingegeben, so werden alle bislang in der Datenbank gespeicherten Einträge angezeigt. Aufgabe 1.3: Lagern Sie relevante Teile Ihrer Filmdatenbank in eine eigene Headerdatei bzw. Bibliothek aus.
  14. 14. /

×