• Keine Ergebnisse gefunden

Aufgabe2Benutzungsschnittstellenbeschreibung (5Punkte) Aufgabe1AlgorithmischesBeschreiben (10Punkte) ¨Ubungsblatt1:Software-EntwicklungI(WS2007/08) TUKaiserslautern

N/A
N/A
Protected

Academic year: 2022

Aktie "Aufgabe2Benutzungsschnittstellenbeschreibung (5Punkte) Aufgabe1AlgorithmischesBeschreiben (10Punkte) ¨Ubungsblatt1:Software-EntwicklungI(WS2007/08) TUKaiserslautern"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

Ubungsblatt 1: Software-Entwicklung I (WS 2007/08) ¨

Ausgabe: 23. Oktober 2007 Abgabe: 29. Oktober 2007, 12.00 Uhr Abnahme praktischer Teil: 29. Oktober - 1. November 2007

Aufgabe 1 Algorithmisches Beschreiben (10 Punkte)

Gegeben sind 100 Karten, die von 1 bis 100 durchnummeriert sind. Diese liegen unsortiert auf einem Stapel, jeweils so, dass die Nummer der obersten Karte sichtbar ist.

Eine m¨ogliche Aufgabe ist, diesen Stapel so zu trennen, dass am Ende die Karte mit der Nummer 42 auf einem zweiten Stapel liegt, die restlichen Karten auf einem dritten Stapel. Eine Beschreibung eines solchen Verfahrens k¨onnte so aussehen:

• wiederhole Folgendes f¨ur alle Karten auf dem ersten Stapel:

1. nimm oberste Karte

2. pr¨ufe, ob die Karte die Nummer 42 hat:

– wenn ja: lege die Karte auf den zweiten Stapel – wenn nein: lege die Karte auf den dritten Stapel

a) Welche einzelnen Operationen k¨onnen unterschieden werden? (2 Punkte) b) Beschreiben Sie in der oben angegebenen Art ein Verfahren, das den unsortierten Kartensta- pel in drei Stapel ¨uberf¨uhrt: Einen Stapel, der Karten mit Nummern kleiner 20 enth¨alt. Einen zweiten Stapel, der Karten mit Nummern zwischen 20 und 80 enth¨alt und einen dritten Stapel, f¨ur Karten mit Nummern gr¨oßer 80. Sie d¨urfen eine weitere Vergleichsoperation zwischen Kar- tennummern benutzen.

(4 Punkte) c) Beschreiben Sie in der oben angegebenen Art ein Verfahren, das die Karten eines Kartenstapels auf einen zweiten Kartenstapel unter Beibehaltung der urspr¨unglichen Reihenfolge ¨uberf¨uhrt.

Sie haben zur Beschreibung Ihres Verfahrens nur die Operationen aus Aufgabenteil a) zur Verf¨ugung. Wieviele Stapel m¨ussen Sie mindestens nutzen? (4 Punkte)

Aufgabe 2 Benutzungsschnittstellenbeschreibung (5 Punkte)

Beschreiben Sie informell die Benutzungsschnittstelle der Webseite

http://softech.informatik.uni-kl.de/twiki/bin/view/Homepage/SeIWS0708

a) Identifizieren Sie die verschiedenen Bedienelement-Arten. Benennen Sie sie und erl¨autern Sie

ihre allgemeine Funktionalit¨at. (2 Punkte)

b) Beschreiben Sie 5 konkrete Bedienelemente der Webseite. Welche Aktionen und Eingabem¨oglich-

keiten stellen sie zur Verf¨ugung? (3 Punkte)

(2)

Aufgabe 3 Funktionsdefinitionen und Ausdr¨ ucke (10 Punkte)

In dieser Aufgabe geht es darum, Eigenschaften ¨uber die Stapel aus Aufgabe 1 mathematisch formalisiert auszudr¨ucken.

Sei bool = { true, false} die Menge der Wahrheitswerte, int die Menge der ganzen Zahlen. Auf int ist eine Vergleichsoperationisequal folgendermaßen definiert:

isequal:int×int→bool isequal(x, y) =

( true, falls x=y false, sonst

int stack bezeichne die Menge aller Stapel, die Elemente aus int enthalten. Wir notieren solche Stapel mit eckigen Klammern, z.B. [1,0,3,−6], wobei das letzte Element (−6) das unterste Ele- ment im Stapel ist, das erste (1) das oberste. Ein Stapel, der keine Elemente enth¨alt, wird mit [ ] bezeichnet.

Zum Bearbeiten solcher Stapel von Zahlen definieren wir folgende Funktionen:

isempty:int stack→bool isempty(s) =

( true, fallss= [ ] false, sonst push:int×int stack→int stack push(x, xs) =

( [x], fallsxs= [ ]

[x, xs1, . . . , xsn], sonst, wobei xs= [xs1, . . . , xsn], n≥1 top:int stack→int

top(xs) =

( x1, fallsxs= [x1, . . . , xn] undefiniert, sonst

pop:int stack→int stack pop(xs) =

( [x2, . . . , xn], fallsxs= [x1, . . . , xn] undefiniert, sonst

Mit Hilfe dieser Funktionen lassen sich nunAusdr¨ucke formulieren. Zum Beispiel erh¨alt man das zweite Element eines Stapels [1,2] durch Auswerten des Ausdrucks: top(pop([1,2]))

Des weiteren gibt es eine Funktion zur bedingten Auswertung von Ausdr¨ucken:

ifthenelse:bool×α×α→α, wobei α einer der Typenint,int stack oder boolist.

ifthenelse(b, e1, e2) =

( e1, falls b=true e2, sonst

a) Welche Ergebnisse liefert die Auswertung folgender Ausdr¨ucke? (2 Punkte) 1. isempty(pop([1,2,3,4,5]))

2. top(pop(push(42,[5,3,4])))

3. ifthenelse(isequal(top(pop(push(6,[x]))), top([5])), push(top([5,4,6]),pop([1,3,5])), push(5,[3,5]))

f¨urx= 0

b) Wie l¨aßt sich der dritte Ausdruck von Teilaufgabe a) deutlich k¨urzer aufschreiben, auch wenn der Wert vonx unbekannt ist? Begr¨unden Sie Ihre Antwort! (1 Punkt) c) Geben Sie einen Ausdruck an, der pr¨uft, ob ein Stapel s genau zwei oder genau drei Elemente

(3)

enth¨alt. Ist dies der Fall, solltrue zur¨uckgegeben werden, ansonsten false. Definieren Sie eine Funktion mit Hilfe der oben angegebenen Funktionsdefinitionen, die genau diese Anforderung

erf¨ullt. (2 Punkte)

d) Geben Sie zwei typische Schritte aus dem einf¨uhrenden Beispiel von Aufgabe 1 mit den Defini- tionen dieser Aufgabe an. Was brauchen Sie zus¨atzlich, um das komplette Beispiel anzugeben?

(5 Punkte)

Aufgabe 4 Die UNIX-Shell (praktisch) (3 Punkte)

W¨ahrend einer Sitzung am Terminal kommuniziert der Benutzer mit einem Kommandointerpre- ter, der unter UNIX meist Shell genannt wird. Dieser ist in der Lage, Befehle auszuf¨uhren (z.B.

einen Text mit Hilfe vonechoauszugeben) und Programme zu starten (z.B.lszum Anzeigen aller Dateien im aktuellen Verzeichnis). Zu (fast) jedem Befehl und Programm kann man sich mitman eine Handbuchseite, die sogenannte Manual-Page (auch Man-Page genannt), anschauen.

a) Machen Sie sich mit dem Programm fgrep vertraut. Benutzen Sie es, um sich aus der Datei .bashrc, die sich in Ihrem Homeverzeichnis befindet, alle Zeilen anzeigen zu lassen, die das

Wort path oder PATH nichtenthalten. (1 Punkt)

b) Die Befehlecd, ls,mkdir und rm interagieren mit dem Dateisystem. Lernen Sie diese Befehle anhand ihrer Handbuchseiten kennen. Geben Sie zu jedem Befehl eine Standardanwendung

an. (2 Punkte)

Aufgabe 5 Der Editor (praktisch) (2 Punkte)

Zum Erstellen und Bearbeiten von Textdateien ben¨otigt man einen Texteditor. Die bekanntesten UNIX-Editoren sind emacs (mit der st¨arker graphisch orientierten Variante xemacs) und vi (mit der komfortableren Variantevim).

Erstellen Sie mit einem Editor Ihrer Wahl eine Textdatei, die Ihre L¨osung zu Aufgabe 1 b enth¨alt.

Speichern Sie diese Datei in Ihrem Homeverzeichnis.

Hinweis: In dieser Aufgabe ist eine reine Textdatei ohne weitere Formatierungsinformationen verlangt!

Referenzen

ÄHNLICHE DOKUMENTE

Im computergestützten Buchungsystem agieren sowohl menschliche Kunden und Reisebüromitarbeiter als auch Terminals und Flugliniencomputer. Ein Terminal ist ein Computer, der von

∗ wenn nein: lege die Karte auf den vierten Stapel c) Beschreibung: Sie brauchen drei Stapel. • wiederhole Folgendes f¨ ur alle Karten auf dem

Ausserdem bleibt die Größe des Arrays konstant, während das

[r]

Das Theorem beschreibt die Korrektheit eines Verfahrens zum Vergleich von rotierten listen: statt der shift Funktionen kann auch eine “String”-like Suche

[r]

[r]

Aufgabe 3 Störe meine Kreise nicht 2. interface