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.
Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung
Jan G. Wieners // jan.wieners@uni-koeln.d...
Kurzwiederholung
[…]
int addiereArabisch(int a, int b);
int main() {
[…]
ergebnis=addiereArabisch( zahl1, zahl2 );
[…]
}
int addiereArabisc...
[…]
int addiereArabisch(int a, int b);
int main() {
[…]
ergebnis=addiereArabisch( zahl1, zahl2 );
[…]
}
int addiereArabisc...
Variablen
 int ganzzahligerWert=13;
 char einzelnesZeichen=‘A‘;
 int[50] eindimensionalesArray;
 int[5][5] zweidimensi...
*
Beispiel:
int wert = 23;
int *zeigerAufWert = NULL;
zeigerAufWert = &wert;
cout << "Vorher: " << endl << wert << endl <<...
Call by value  Der Compiler fertigt eine Kopie des Variableninhalts an:
#include <iostream>
using namespace std;
int func...
Call by reference  Compiler fertigt keine Kopie des
Variableninhalts an; wir arbeiten unmittelbar mit der Variablen:
#inc...
Schreiben Sie eine Funktion (und das
Hauptprogramm dazu), die:
 zwei Zahlen vom Datentyp int einliest,
 die Zahlen verta...
char *zeigeBegruessung(char *name1) {
cout << "Bitte geben Sie Ihren Namen ein:" << endl;
cin >> name1;
return name1;
}
Strukturen
Kapselung / Information Hiding / Objektorientierung
struct nameDerStruktur
{
// Elemente der Struktur
};
Strukturen – so funktioniert‘s
struct
struct nameDerStruktur
{
// Elemente der Struktur
};
Beispiel:
struct person
{
char vorname[100];
char nachname[100]
} ;
S...
struct personenDB {
char vorname[100];
char nachname[100];
};
Deklaration:
personenDB meineDatenbank;
Mit mehren Elementen...
#include <iostream>
using namespace std;
struct EineStruktur
{
int Zahl;
};
int main()
{
EineStruktur Werte[5];
for(int i=...
#include <iostream>
using namespace std;
struct EineStruktur
{
int Zahl;
int Funktion(int a, int b) // gehoert zu EineStru...
Übungsaufgabe
Eine Filmdatenbank
Die ultimative Konkurrenz zur Internet Movie Database (IMDb): Erstellen
Sie Ihre eigene Filmdatenbank. Ihre Datenbank soll...
Eigene Bibliotheken /
Headerdateien
 Vom System bereitgestellte Headerdateien:
#include <dateiname>
 Analog: Definition eigener Bibliotheken
(*.cpp + *.h)
...
/
WiSe 2014 | Softwaretechnologie I _ Funktionen, Zeiger, Strukturen, Bibliotheken
Nächste SlideShare
Wird geladen in …5
×

WiSe 2014 | Softwaretechnologie I _ Funktionen, Zeiger, Strukturen, Bibliotheken

921 Aufrufe

Veröffentlicht am

WiSe 2014 | Softwaretechnologie I _ Funktionen, Zeiger, Strukturen, Bibliotheken

Veröffentlicht in: Bildung
  • Als Erste(r) kommentieren

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

WiSe 2014 | Softwaretechnologie I _ Funktionen, Zeiger, Strukturen, Bibliotheken

  1. 1. Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Jan G. Wieners // jan.wieners@uni-koeln.de Softwaretechnologie I Wintersemester 2014 / 2015 18. November 2014 – Funktionen, Strukturen und Bibliotheken
  2. 2. Kurzwiederholung
  3. 3. […] int addiereArabisch(int a, int b); int main() { […] ergebnis=addiereArabisch( zahl1, zahl2 ); […] } int addiereArabisch(int a, int b) { int resultat; resultat=a+b; a=0; b=0; return resultat; }
  4. 4. […] int addiereArabisch(int a, int b); int main() { […] ergebnis=addiereArabisch( zahl1, zahl2 ); […] } int addiereArabisch(int a, int b) { int resultat; resultat=a+b; a=0; b=0; return resultat; } Deklaration: „In meiner Anwendung existiert eine Funktion, die ich zu einem späteren Zeitpunkt definiere“ Deklaration  Funktionskopf, der mit einem Semikolon abgeschlossen wird. Definition: „Auf diese bestimmte Art und Weise verfährt meine Funktion“
  5. 5. 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: Zeiger
  6. 6. * 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! Zeiger
  7. 7. 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; } Funktionen: Call by value  Ausgabe?
  8. 8. 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; } Funktionen: Call by reference  Ausgabe (und Unterschied)?
  9. 9. Schreiben Sie eine Funktion (und das Hauptprogramm dazu), die:  zwei Zahlen vom Datentyp int einliest,  die Zahlen vertauscht  und an das Programm zurückgibt Übung
  10. 10. char *zeigeBegruessung(char *name1) { cout << "Bitte geben Sie Ihren Namen ein:" << endl; cin >> name1; return name1; }
  11. 11. Strukturen
  12. 12. Kapselung / Information Hiding / Objektorientierung
  13. 13. struct nameDerStruktur { // Elemente der Struktur }; Strukturen – so funktioniert‘s struct
  14. 14. struct nameDerStruktur { // Elemente der Struktur }; Beispiel: struct person { char vorname[100]; char nachname[100] } ; Strukturen struct
  15. 15. struct personenDB { char vorname[100]; char nachname[100]; }; Deklaration: personenDB meineDatenbank; Mit mehren Elementen / Instanzen der Struktur arbeiten: personenDB zehnDatenbanken[10]; Dynamisch: personenDB *dynamischeDB = new personenDB; Zugriff auf Elemente der Struktur:  struct.vorname (Punkt-Operator)  struct->vorname (-> Operator) Strukturen
  16. 16. #include <iostream> using namespace std; struct EineStruktur { int Zahl; }; int main() { EineStruktur Werte[5]; for(int i=0; i<5; i++) { Werte[i].Zahl=i; cout << Werte[i].Zahl << endl; } return 0; } struct - Arrays
  17. 17. #include <iostream> using namespace std; struct EineStruktur { int Zahl; int Funktion(int a, int b) // gehoert zu EineStruktur (inline definiert) { Zahl = a + b; return Zahl; } }; int main() { EineStruktur Wert; cout << "Returnwert: " << Wert.Funktion(1,2) << endl; return 0; } struct - Methoden
  18. 18. Übungsaufgabe Eine Filmdatenbank
  19. 19. 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:  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. Filmdatenbank
  20. 20. Eigene Bibliotheken / Headerdateien
  21. 21.  Vom System bereitgestellte Headerdateien: #include <dateiname>  Analog: Definition eigener Bibliotheken (*.cpp + *.h)  Einbinden von Headerdateien: #include “meineHeaderdatei.h" Funktionalität auslagern: Headerdateien
  22. 22. /

×