HA4 7

Benutzeravatar
s!mon
Computerversteher
Computerversteher
Beiträge: 373
Registriert: 20. Okt 2007 18:24
Wohnort: Höchst i. Odw

HA4 7

Beitrag von s!mon »

Hallo. Ja es geht mal wieder weiter mit einer neuen Übung :). Sie läuft bei mir schon so weit, bin eigentlich fertig. Das einzige was ich wissen will: Wie muss der Vertrag von draw-lsystem aussehen?

Die Prozedur gibt mir ja quasi eine Liste von voids zurück:

(list-of-symbols) number number -> (list-of-voids) ??

Und was ist damit, dass er etwas auf dem Turtle-Bildschirm ausgibt? Gehört das nicht in den Vertrag? Bei dem Beispiel mit Ball aus der Folie stands jedenfalls nicht drin.

Mein Example sieht jetzt so aus:
(draw-lsystem '(F + G F) 50 50) -> (list (void) (void) (void) (void))

Außerdem würde ich gerne wissen wie die Tests hier aussehen sollen. Wenn ich das Beispiel ans Ende des Programms setze malt er mir ja in meinem Lindenmayer-System rum.

ciao, Simon.

Benutzeravatar
giftnudel
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 112
Registriert: 3. Mai 2005 11:26

Beitrag von giftnudel »

Du kannst dir ja schöne Beispiele ausdenken, die das Bild nicht kaputtmachen, dann freut sich der Tutor.

ChRiZz88
Mausschubser
Mausschubser
Beiträge: 87
Registriert: 7. Nov 2007 18:09
Kontaktdaten:

Beitrag von ChRiZz88 »

Bei draw-lsystem muss noch nicht ersetzt werden oder? Also es gibt keinen Bezug zu den Ersetzungsregeln, sondern nur zu der Tabelle mit draw, move und turn, oder?

Edit: Also ich find' das Sierpinkski-Triangle sensationell =) Aber mit L=20 siehts viel geiler aus, größer halt.. Dauert des bei euch auch bald 20 Sekunden, bis er des zeichnet?

Benutzeravatar
Demmi
Kernelcompilierer
Kernelcompilierer
Beiträge: 423
Registriert: 1. Okt 2007 12:56
Wohnort: Darmstadt

Beitrag von Demmi »

da draw-lsystem ja im prinzip ne liste von turtle befehlen zurückgibt würde ich das genau so in den vertrag schreiben. Die werden von Ccheme halt nur gleich ausgewertet... hmm und dann wirds direkt zu void...
Kann sich mal jemand dazu äußern, der was definitives weiß? Ein Tutor, Prof oder noch ein höheres Wesen!? ;)

@ChRiZz88: Bei mir zeichnet es gleich alles, wenn ich draw-lsystem aufrufe.
Das Ding sieht geil aus. Bei mir dauert es mit den geforderten Parametern relativ genau 30 Sekunden (Core Duo T2050 @ 1.6GHz, Notebook).
Ich finde man hätte das eher 4 x expand, l=25 und a=60 machen sollen, sonst rechnet sich ne langsamere Kiste ja halb tot. Außerdem verwirrt es vielleicht den ein oder anderen, der dann vermutet, dass sein Prog in ner Endlosschleife hängt.

Übrigens lastet DrScheme nur 1 Kern aus. Bedeutet man könnte die ganze Sache noch für Mehrkernprozessoren optimieren, dann würde es nicht so lang dauern ^^

evel
Erstie
Erstie
Beiträge: 19
Registriert: 16. Nov 2007 11:08

Beitrag von evel »

hi.
hab eine frage:
was bedeutet es, wenn in einer liste quote auftaucht. ist mir bisher nicht begegnet, aber jetzt hab ich bei einem meiner tests so was da stehen:
(list 'quote 1 2 4 'quote 'd 'e 'f 'I).
ich weiß nicht was ich damit anfangen soll. kann mir da jemand helfen?

i3oot
Erstie
Erstie
Beiträge: 12
Registriert: 24. Okt 2004 20:54
Wohnort: Darmstadt

Beitrag von i3oot »

was bedeutet es, wenn in einer liste quote auftaucht
gib mal

Code: Alles auswählen

'(a 'b)
in DrScheme ein... ich hoffe dann wird klar, woher die 'quote kommen.

evel
Erstie
Erstie
Beiträge: 19
Registriert: 16. Nov 2007 11:08

Beitrag von evel »

oh... ja klar! ich muss ja gar keine ' innerhalb der liste mehr machen um eine geschachtelte liste zu bekomen... da hab ich wohl auf dem schlauch gestanden. danke!

Stumpf.Alex
Nerd
Nerd
Beiträge: 643
Registriert: 1. Okt 2007 12:40
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von Stumpf.Alex »

Demmi hat geschrieben:Bei mir dauert es mit den geforderten Parametern relativ genau 30 Sekunden (Core Duo T2050 @ 1.6GHz, Notebook).
Echt ?? Hmm hab den T5500 @ 1,66GHz und bei mir dauerts genau 4 Sekunden (natürlich beachte ich, dass es eine Weile dauert, bis das Programm durchgelaufen ist, obwohl alles schon gezeichnet ist. Am besten zu erkennen, wenn die Zeichenoberfläche von grau zu weiß wechselt).

Mein "alter" PC mit einem Sempron 2400+ schafft es in 6 Sekunden. ^^

Was die Rückgabe betrifft. Bei konsumiert die Funktion nur die Liste und verarbeitet sie zu einer Grafik. Der Output (void) ist ja nur ein Nebenefffekt von turtel. Ich hab daher erstmal keine Rückgabe definiert.

ChRiZz88
Mausschubser
Mausschubser
Beiträge: 87
Registriert: 7. Nov 2007 18:09
Kontaktdaten:

Beitrag von ChRiZz88 »

Hmm, die Sache mit den Voids ist nur für den Vertrag oder?? Weil für das Programm ist es ja egal, was da zurückgegeben wird, solange ordnungsgemäß gezeichnet wird...

evel
Erstie
Erstie
Beiträge: 19
Registriert: 16. Nov 2007 11:08

Beitrag von evel »

ich hab noch eine frage.. diesmal zu draw-lsystem:
ich muss ja meine F, G, +, - durch die turtle befehle ersetzen. aber wenn ich die in eine liste schreibe, dann werden die ja schon ausgewertet bevor ich sie ersetzt habe und dann zeichnet er nichts... bzw nur einmal das was in der liste steht und setzt dann (void) in die liste ein.
weiß grad nicht was ich tun soll.
hilfe wäre super! danke.

Stumpf.Alex
Nerd
Nerd
Beiträge: 643
Registriert: 1. Okt 2007 12:40
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von Stumpf.Alex »

Probier mal erstens eine korrekte Liste mit den G, F, +, - zu erzeugen. Dann kannste diese Liste mit map durcharbeiten und dabei jeden Befehl durch einen turtle Befehl ersetzen bzw. da ersetzen ja gleich ausführen bedeutet, ausführen lassen.

ChRiZz88
Mausschubser
Mausschubser
Beiträge: 87
Registriert: 7. Nov 2007 18:09
Kontaktdaten:

Re: HA4 7

Beitrag von ChRiZz88 »

s!mon hat geschrieben:Hallo. Ja es geht mal wieder weiter mit einer neuen Übung :). Sie läuft bei mir schon so weit, bin eigentlich fertig. Das einzige was ich wissen will: Wie muss der Vertrag von draw-lsystem aussehen?

Die Prozedur gibt mir ja quasi eine Liste von voids zurück:

(list-of-symbols) number number -> (list-of-voids) ??
Hat da nun jemand eine Antwort drauf? Vertrag bei z.B. draw-lsystem?

Benutzeravatar
s!mon
Computerversteher
Computerversteher
Beiträge: 373
Registriert: 20. Okt 2007 18:24
Wohnort: Höchst i. Odw

Beitrag von s!mon »

Mein Tutor meint, dass da einfach eine Liste von voids zurückgegeben wird.

Benutzeravatar
Skylo
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 149
Registriert: 7. Nov 2006 20:08
Wohnort: Darmstadt (Woogsviertel)
Kontaktdaten:

Beitrag von Skylo »

(list 'G '+ '+ (list '+ 'F))
(list '+ '+ 'F '+ '+ '+ (list '+ 'F))
Sofern meine Ausgabe...

Leider wird das letzte Element nicht ausgewertet bei (expand-ntimes)

expand-once funktioniert soweit, aber ich musste im cond etwas verändert damit kein Fehler entsteht.

Jemand ein ähnliches problem gehabt?
Junge, geh kacken! Echt jetzt!

Schalli
Mausschubser
Mausschubser
Beiträge: 97
Registriert: 24. Okt 2006 21:50
Wohnort: Bayern

Beitrag von Schalli »

Demmi hat geschrieben:Bei mir dauert es mit den geforderten Parametern relativ genau 30 Sekunden (Core Duo T2050 @ 1.6GHz, Notebook).
Hmm, ich hab den Centrino Duo T2050 @1.60GHz in meinem Notebook, bei mir dauert es 2 Sekunden bis das Bild fertig ist und weitere 3 Sekunden bis das Programm beendet ist :D

Antworten

Zurück zu „Archiv“