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!