Institut für Informatik Lehr- und Forschungseinheit für Kommunikationssysteme und Systemprogrammierung Systempraktikum - Wintersemester 2009/2010
Prof. Dr. Dieter Kranzlmüller |
Blatt 2- Grundlagen II: Modularisierung, Strukturen, Adressarithmetik |
Abgabedatum theor. Aufgaben | Abgabedatum prakt. Aufgaben | Deadline Projektaufgaben |
---|---|---|
05.11. | 05.11. | - |
int a;
int f(int x) { return x+1; }
struct S;
int f(int);
enum { up, down };
extern int a;
extern const int c = 1;
extern const int c;
Listing 1: |
|
const
-deklarierten Parametern.
const
-deklarierte Parameter.
fak
oder
fib
, gefolgt von dem numerischen Argument erfolgen. Zum Beispiel:
prog-2-1 fib 10
.Listing 2: |
|
main
-Modul für die
main()
-Funktion. Modifizieren Sie das Makefile so, dass es das iterative und das rekursive Modul beim Übersetzen automatisch zum Hauptprogramm bindet.
libMyMath.a
zusammen, und verwenden Sie diese Bibliothek bei der Übersetzung des Hauptprogramms. Informieren Sie sich dazu über das Kommando
ar
. Passen Sie ggf. das Makefile an.
struct
definiert und haben eine gewisse Ähnlichkeit mit Tupeln in einer relationalen Datenbank.
struct student
und geben Sie ihm (mindestens vier) sinnvolle Attribute (z.B. Matrikelnummer als Integer, Nachname als String, ...).
getMatrNr()
mit der folgenden Signatur:
int getMatrNr(struct student s)
. Ihr wird ein Objekt vom Strukturtyp
student
übergeben. Der Rückgabewert ist die Matrikelnummer des jeweiligen Studenten oder -1 im Fehlerfall. Verwenden Sie zum Zugriff auf ein Feld die Punkt-Notation, also z.B.
s.matrnr
.
setMatrNr()
mit der folgenden Signatur:
int setMatrNr(struct student s, int mnr)
. Ihr wird ebenfalls ein Objekt vom Strukturtyp
student
und ein Integer-Wert übergeben. Die Funktion soll die Matrikelnummer des jeweiligen Studenten auf den übergebenen Wert setzen und im Erfolgsfall 0 zurückgeben. Verwenden Sie zum Manipulieren eines Feldes wieder die Punkt-Notation, also z.B.
s.matrnr = mnr;
.
main()
-Funktion. In ihr soll mindestens ein Objekt des Strukturtyps
student
erzeugt werden. Weisen Sie den Attributen dieses Objekts sinnvolle Werte zu, ohne die Funktion
setMatrNr()
zu verwenden. Lassen Sie sich den Wert der Matrikelnummer durch Aufruf der Funktion
getMatrNr()
auf der Konsole ausgeben.
main()
-Funktion hinzu: Versuchen Sie, den Wert der Matrikelnummer durch Aufruf der Funktion
setMatrNr()
neu zu setzen. Testen Sie durch ein erneutes
getMatrNr()
. Warum funktioniert das so nicht?
for
-Schleife). Verwenden Sie keine Funktionen aus
string.h
.
Bitte denken Sie an ein Makefile!