Dr. Andreas Borchert Abteilung Angewandte Informationsverarbeitung 10.11.2004
Norbert Heidenbluth Blatt 4


Uni Logo



Allgemeine Informatik I für Mathematiker/Wirtschaftsmathematiker
(WS 2004/2005)



Abgabetermin: 17. November 2004

Aufgabe 7: Strafarbeit von Root (6 Punkte)

Diejenigen, die bereits Erfahrungen mit Linux haben, kennen ihn bereits: den allmächtigen User, der alles darf und (hoffentlich) alles mitbekommt: root!

Auch auf unseren Rechnern hat root ein wachsames Auge, und unter anderem kontrolliert er regelmäßig die Größe Ihres Heimatverzeichnisses. Wenn dort mehr als 50 MB an Daten liegen, so wird er Ihnen eine entsprechende E-Mail zukommen lassen, mit der Bitte, ein wenig aufzuräumen.

Für diese Aufgabe unterstellen wir nun mal, daß Ihr Kumpel sämtliche Mails dieser Art ignoriert und root ihm daraufhin die folgende Strafarbeit gegeben hat:

``Schreibe mir eine Textdatei, die für jede Datei und jedes Unterverzeichnis Deines Heimatkataloges den Satz

Ich darf keine nnn Kilobytes fuer name verbrauchen!

enthält, wobei nnn die exakte Größe der Datei / des Verzeichnisses name bedeutet. Der besseren Übersicht halber sollten die Zeilen nach Dateigröße absteigend sortiert sein!''

Da Ihr Kumpel recht ratlos ist und Sie soeben etwas über das Unix-Tool du sowie über reguläre Ausdrücke gelernt haben, können Sie diese Aufgabe nun mit minimalem Zeitaufwand für Ihren Kumpel lösen. (Mehr als drei Ersetzungsbefehle sind auf keinen Fall nötig!)

Wichtig:

Für diese Aufgabe müssen Sie unbedingt den vim benutzen, denn der ``normale'' VI kennt keine regulären Ausdrücke in der in den Übungen vorgestellten Form!

Aufgabe 8: Hot-Button-Runde (4 Punkte)

Geben Sie es zu: Auch Sie haben schonmal in den ``Quizsender'' hereingeschaut, und versucht, anzurufen, ``bevor der Hot-Button zuschlägt$\ldots$''.

Naja -- egal! Jedenfalls orientieren wir uns an einem dort häufig gestellten Aufgabentyp, um Ihnen eine allererste Programmieraufgabe in Oberon zu stellen:

a)

Gegeben sei der Ausdruck

\begin{displaymath}6+8:2+5*3\end{displaymath}

Schreiben Sie ein Oberon-Programm, das Ihnen das Ergebnis dieses Ausdrucks ausgibt.

b)

Erweitern Sie Ihr Programm aus Teilaufgabe a) so, daß es zusätzlich noch eine Zeile mit dem Ergebnis

\begin{displaymath}6\end{displaymath}

ausgibt. Dazu sollten Sie den obigen Ausdruck entsprechend klammern.

c)

Und noch eine Erweiterung Ihres Programms:

Nehmen Sie nun nur die Ziffern des obigen Ausdrucks, also

\begin{displaymath}6,8,2,5,3\end{displaymath}

und setzen Sie die Operatoren und Klammern so, daß Sie als Ergebnis

\begin{displaymath}51\end{displaymath}

erhalten.

Viel Erfolg!



Norbert Heidenbluth 2004-11-11