Druckerwarteschlange in derive < Sonstige < Schule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 20:41 Mi 21.11.2007 | Autor: | k0r0nA |
Aufgabe | Geben Sie eine Funktion in Derive6.1 an, welche eine Drucker-Warteschlange nach Priorität ordnet. Machen Sie dies in einer Liste, welche aus Listen besteht, welche angeben, wer den Auftrag in Arbeit gegeben hat mit einer beliebigen Zahl gekennzeichnet, gefolgt von einer weiteren Zahl von 1 bis 5, welche die Priorität angibt. |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
meine frage ist nun: ich habe einige versuche gemacht, leider blicke ich jedoch bei der funktionalen programmierung nicht durch. deswegen bitte ich um einen denkanstoß, welcher mir hilft das oben genannte problem zu lösen.
danke im vorraus
fabian
|
|
|
|
Hallo,
wenn du die eingebaute Sortierfunktion benutzen darfst, dann musst du als Sortierkriterium nur definieren, dass die zweite Vektorkomponente kleiner ist als die erste. Schau dir dazu die Hilfe zu sort und zu sub an.
Falls du selbst eine Sortierfunktion programmieren sollst, dann hilft dir vielleicht mein Quicksort weiter:
qs(liste, pivot) :=
IF(DIM(liste) = 0,
RETURN [],
[pivot < FIRST(liste), RETURN APPEND(qs(SELECT(x < pivot, x, REST(liste))), [pivot], qs(SELECT(x >= pivot, x, REST(liste))))])
Diese Funktion arbeitet auf einfachen Listen. Für Listen von Listen musst du noch die Vergleiche umbauen, so dass jeweils die zweiten Vektorkomponenten verglichen werden.
Ach ja, du bekommst vielleich schneller eine Antwort, wenn du im hiesigen Derive-Forum postest.
Gruß
Martin
|
|
|
|