Universität Ulm - Abteilung Angewandte Informationsverarbeitung
Aufgabe 1: Einfacher Primzahltest (4 Punkte)
Schreiben Sie ein C-Programm, das testet, ob eine
Zahl
, die über die Kommandozeile eingegeben wird,
eine Primzahl ist oder nicht.
Dabei soll geprüft werden, ob
von einer Zahl
im Intervall von
bis
geteilt wird.
Teilen Sie dieses Intervall in weitere Bereiche auf
und erzeugen sie für jeden dieser Bereiche einen neuen
Prozeß. Findet ein Prozeß einen Teiler, so ist
keine Primzahl.
Achten Sie darauf, daß die Bereiche nicht allzu
groß werden, d.h. Ihr Programm sollte nicht mehr
als 20 neue Prozesse erzeugen.
Aufgabe 2: Matrizen (6 Punkte)
Schrieben Sie ein Programm, das als Eingabe zwei quadratische
-Matrizen erhält und diese in
Kindprozessen
miteinander multipliziert (
). Jeder Kindprozess berechnet
ein Element der Ergebnismatrix und liefert den Wert als Exit-Status
an den Erzeugerprozess, welcher die Teilergebnisse zusammenfügt
und die Ergebnismatrix ausgibt. Es kann davon ausgegangen werden,
dass alle Teilergebnisse (d.h. Elemente der Ergebnismatrix)
im Bereich
enthalten sind.
Tipp: Damit Sie wissen, wohin welches Ergebnis gehört,
müssen Sie sich merken, welcher Kindprozess (PID!) welches Matrixelement
berechnet. Dann können Sie aus der PID, die wait() liefert,
darauf schließen, wohin das Teilergebnis (in der Ergebnismatrix)
gehört.
Viel Erfolg!