Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. J. O. Blech Dipl.-Inform. M. J. Gawkowski Dipl.-Inform. N. Rauch
TU Kaiserslautern
Fachbereich Informatik AG Softwaretechnik
L¨ osungvorschlag zum ¨ Ubungsblatt 1: Software-Entwicklung I (WS 2006/07)
Aufgabe 1 Formalisiertes Beschreiben (10 Punkte)
a) Beschreibung:
• Karte nehmen (von Stapel ...)
• Kartennummer kleiner als ... wenn ja ... wenn nein ...
• Karte legen auf Stapel ...
• wiederhole f¨ur alle Karten von Stapel ...
b) Beschreibung:
• wiederhole Folgendes f¨ur alle Karten auf dem ersten Stapel:
1. nimm oberste Karte
2. pr¨ufe, ob die Karte eine gerade Nummer hat:
– wenn ja: lege die Karte auf den zweiten Stapel – wenn nein: lege die Karte auf den dritten Stapel
c) Beschreibung:
• wiederhole Folgendes f¨ur alle Karten auf dem ersten Stapel:
– lege oberste Karte vom ersten auf den zweiten Stapel – wiederhole Folgendes f¨ur alle Karten auf dem ersten Stapel:
1. nimm oberste Karte
2. pr¨ufe, ob die aktuelle Kartennummer (oberste Karte vom ersten Stapel) kleiner ist als die oberste Karte vom zweiten Stapel:
∗ wenn ja, lege die oberste Karte vom zweiten auf den dritten Stapel und die aktuelle Karte auf den zweiten Stapel
∗ wenn nein, lege die aktuelle Karte auf den dritten Stapel – Vertausche den ersten mit dem dritten Stapel
d) Ja
Aufgabe 2 Bedienschnittstellenbeschreibung (5 Punkte)
a) Link zum Wechseln auf eine andere Webseite Texteingabefeld zur Eingabe von Text Schaltfl¨ache zum Ausl¨osen einer Aktion
b) Diverse Beschreibungen der einzelnen Links und Schaltfl¨achen.
Aufgabe 3 Funktionsdefinitionen und Ausdr¨ ucke (10 Punkte)
a) Welche Ergebnisse liefert die Auswertung folgender Ausdr¨ucke?
1. isempty(pop([42])) =true 2. top(pop(push(5,[3,4]))) = 3
3. ifthenelse(isempty(pop(push(5, x))),
push(top([2,4,6]),pop([1,3,5])), push(2,[3,5])) = [2,3,5]
b) [2,3,5]
c) Die Funktion k¨onnte folgendermaßen aussehen:
three elements(s) =
ifthenelse (isempty(s)),f alse,
ifthenelse (isempty(pop(s)),f alse, ifthenelse (isempty(pop(pop(s))),f alse,
ifthenelse ((isempty( pop(pop(pop(s)) )) ,true,f alse))) Die Definition
three elements(s) =isempty( pop(pop(pop(s)))
gibt nicht die volle Punktzahl. Bei s=[] ist pop(s) undefiniert. Das n¨achste pop erwartet aber einen Stack und keinen undefinierten Wert.
d) Eine M¨oglichkeiten:
step (A,B,C) =
ifthenelse (lessthan(top(A),top(B)), (pop(A),push(top(A),pop(B)),push(top(B), C)), (pop(A), B,push(top(A), C)))
Zus¨atzlich wird Rekursion bzw. eine Formalisierung der Wiederhole Anweisung ben¨otigt.
Aufgabe 4 Die UNIX-Shell (praktisch) (3 Punkte)
a) fgrep -iv "path" ~/.cshrc (Wir gehen davon aus, dass es kein Path, pAth, etc. gibt).
Ansonsten:
fgrep -v "path" test | grep -v "PATH"
b) • cd ~
• ls -l
• mkdir tmp
• rmdir tmp
Aufgabe 5 Der Editor (praktisch) (2 Punkte)
Zu dieser Aufgabe ist kein schriftlicher L¨osungsvorschlag erforderlich.