Übungen

Aufgabe 1

Ziel ist es, eine Druckerwarteschlange zu simulieren. Dabei sollen Python-Protokolle der folgenden Art entstehen.

>>> simuliereDrucken()
S: ['Eine']
S: ['Eine', 'Warteschlange']
S: ['Eine', 'Warteschlange', 'bildet']
S: ['Eine', 'Warteschlange', 'bildet', 'sich,']
Eine
S: ['Warteschlange', 'bildet', 'sich,', 'wenn']
S: ['Warteschlange', 'bildet', 'sich,', 'wenn', 'mehr']
Warteschlange
S: ['bildet', 'sich,', 'wenn', 'mehr', 'Anforderungen']
bildet
sich,
wenn
S: ['mehr', 'Anforderungen', 'pro']
S: ['mehr', 'Anforderungen', 'pro', 'Zeiteinheit']
S: ['mehr', 'Anforderungen', 'pro', 'Zeiteinheit', 'an']
mehr
S: ['Anforderungen', 'pro', 'Zeiteinheit', 'an', 'ein']
S: ['Anforderungen', 'pro', 'Zeiteinheit', 'an', 'ein', 'System']
Anforderungen
S: ['pro', 'Zeiteinheit', 'an', 'ein', 'System', 'gerichtet']
pro
Zeiteinheit
an
ein
System
gerichtet
S: ['werden,']
S: ['werden,', 'als']
S: ['werden,', 'als', 'dieses']
werden,
als
dieses
S: ['in']
in
S: ['der']
der
S: ['selben']
S: ['selben', 'Zeit']
selben
Zeit
S: ['verarbeiten']
verarbeiten
S: ['kann.']
kann.

Der folgende (noch unfertige) Quelltext liefert ein entsprechendes Simulationsorogramm.

from schlange import *
from random import *

def simuliereDrucken():
    f = open("warteschlange.txt", 'r')
    text = f.read()
    liste = text.split()
    s = Schlange()
    i = 0
    while (len(liste) > 0) or not s.istLeer():
        z = randint(0, 1)
        if z == 0:
            # Auftrag drucken
        else:
            # Auftrag erteilen

Analysiere zunächst den Quelltext und kläre folgende Fragen:

  • Woher stammen die als Druckaufträge dienenden Zeichenketten?
  • Welche Rolle spielt der Zufallsgenerator bei der Simulation?

Vervollständige den Quelltext und teste das Simulationsprogramm.

X

Fehler melden

X

Suche