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

813 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Bildung
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

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

Keine Downloads
Aufrufe
Aufrufe insgesamt
813
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
431
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • ...etwas ist hier überflüssig
  • 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. /

    ×