Sektion Angewandte Informationsverarbeitung
Übungen zu Systemnahe Software I, Wintersemester 1996/97
Blatt 5
Abgabe: Donnerstag, 28.11.96
Aufgabe 7 (5 Punkte)
Erweitern Sie ihr Programm aus Aufgabe 6 oder das
der Musterlösung um die korrekte Behandlung der
Escapes. Betrachten Sie z.B. "\n" als ein
Zeichen, das überlesen werden kann.
Aufgabe 8 (10 Punkte)
Kennzahlen spielen in der Softwareentwicklung eine immer
wichtigere Rolle in der Bewertung der Qualität. Eine
bekannte und leicht bestimmbare Größe ist die
Zyklomatische Komplexität nach McCabe,
definiert als
v(G) = Anzahl der Verweigungsanweisungen + 1.
Schreiben Sie auf Basis des Lösung von Aufgabe 7 ein
Programm, das für ein syntaktisch
korrektes C-Programm, das bereits vom Preprozessor bearbeitet
wurde (Makrosubstitutionen, Includes, ...), v(G) bestimmt.
Dieses Programm mit Namen mccabe liest von der Standardeingabe.
Behandeln Sie "while" und "for" genauso wie "if" als
eine Verzweigungsanweisung. Bei einem "switch" zählen Sie
die "case"-Anweisungen. Das heißt:
v(G) = Anzahl "while" + Anzahl "for" + Anzahl "if" +
Anzahl "case" in "switch"es
Aufgabe 9 (5 Punkte)
Bestimmen Sie v(G) von Hand und mit ihrem Programm für
die (vom Präprozessor bearbeiteten) Quelltexte ihrer
Lösungen der Aufgaben 6, 7 und 8. Schicken Sie das
Ergebnis als kleine ASCII-Tabelle per email an ihren Tutor.
Viel Erfolg!