Hallo
Das mit dem Tabs und Leerzeichen hab ich schon gelöst. Aber ich schaffs
einfach nicht die 4 Rekursionen in einem zu unterbringen.
Und kann mir jemand dieses Programm:
(http://paste.pocoo.org/show/22789/)
in python umschreiben oder nur die Rekursion weil ich versteh diese Programmiersprache nicht.
Danke Leute
Sierpinski-Kurve
Das sind keine "4 Rekursionen".BeneCrack hat geschrieben:Das mit dem Tabs und Leerzeichen hab ich schon gelöst. Aber ich schaffs einfach nicht die 4 Rekursionen in einem zu unterbringen.
Eine rekursion hast du z.B. dann, wenn eine Funktion sich selber aufruft, das typische Beispiel ist da die fakultät: !3 = 3 * !2
Es wäre hier vmtl besser, wenn du erstmal, unabhängig von der Programmiersprache das konzept "Rekursion" zu verstehen versuchst.
Das ist so ziemlich der einzige weg, sich hier böse kommentare einzufangen.Und kann mir jemand dieses Programm:
(http://paste.pocoo.org/show/22789/)
in python umschreiben oder nur die Rekursion weil ich versteh diese Programmiersprache nicht.
Die populären Antworten dürften sein:
"Was bietest du denn als Bezahlung dafür, dass ich deine Arbeit mache?"
oder einfach
"Wir machen dir nicht deine Hausaufgaben".
Python ist recht leicht zu lernen, aber man muss (wie bei Mathe) nicht versuchen, nur das zu verstehen, was man gerade für die Aufgabe braucht, das Funktioniert nie.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
"The Little Schemer" lehrt beispielsweise Rekursion. Mehr als dass es Scheme lehrt.keppla hat geschrieben:Das sind keine "4 Rekursionen".BeneCrack hat geschrieben:Das mit dem Tabs und Leerzeichen hab ich schon gelöst. Aber ich schaffs einfach nicht die 4 Rekursionen in einem zu unterbringen.
Eine rekursion hast du z.B. dann, wenn eine Funktion sich selber aufruft, das typische Beispiel ist da die fakultät: !3 = 3 * !2
Es wäre hier vmtl besser, wenn du erstmal, unabhängig von der Programmiersprache das konzept "Rekursion" zu verstehen versuchst.
Oh, jetzt wollt ich doch grad das sagenkeppla hat geschrieben:Das ist so ziemlich der einzige weg, sich hier böse kommentare einzufangen.
Die populären Antworten dürften sein:
"Was bietest du denn als Bezahlung dafür, dass ich deine Arbeit mache?"
oder einfach
"Wir machen dir nicht deine Hausaufgaben".

My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hallo Leute
Habs heute geschafft. Morgen muss ich die Aufgabe abgeben und alles
funktioniert.
Achja ich hab es mit PYX gemacht weil es so verlang ist.
Hier der Sourcecode:
Datei Ausfuehren_sierKurve.py:
Datei sierKurve.py:
Ein grosses dankeschön an euch, weil Ihr ein wenig geholfen habt.

Habs heute geschafft. Morgen muss ich die Aufgabe abgeben und alles
funktioniert.
Achja ich hab es mit PYX gemacht weil es so verlang ist.
Hier der Sourcecode:
Datei Ausfuehren_sierKurve.py:
Code: Alles auswählen
# erstellt am: 24.01.2008
# Projektname: Sierpinski Kurve
# Dateiname: Ausfuehren_sierKurve.py
# Autor: Benedek Benjamin, 2BHDV, d06035, 03
# (C) Copyright 2007-2008 Benedek Benjamin
import sierKurve
level = 1
kurve = sierKurve.SierpinskiKurve()
kurve.generate(level)
kurve.save("SierpinskiKurve_Stufe" + str(level))
Code: Alles auswählen
# erstellt am: 24.01.2008
# Projektname: Sierpinski Kurve
# Dateiname: sierKurve.py
# Autor: Benedek Benjamin, 2BHDV, d06035, 03
# (C) Copyright 2007-2008 Benedek Benjamin
from pyx import *
class SierKurve():
thisX = 0
thisY = 0
def __init__(self): #Zeichenfläche wird erstellt
self.img = canvas.canvas()
def goToXY(self, x, y):
SierKurve.thisX = x
SierKurve.thisY = y
def lineRel(self, deltaX, deltaY): #Linie wird gezeichnet
self.img.stroke(path.line(SierKurve.thisX, SierKurve.thisY, SierKurve.thisX+deltaX, SierKurve.thisY+deltaY))
SierKurve.thisX += deltaX
SierKurve.thisY += deltaY
def save(self, filename): #Die Zeichnung wird als PDF abgespeichert
self.img.writeEPSfile(filename)
self.img.writePDFfile(filename)
print 'Gespeichert als: %s' % filename
class SierpinskiKurve(SierKurve):
dist = 1
dist0 = 1
def __init__(self):
SierKurve.__init__(self)
def generate(self, level): #Hier beginnt alles
print "Einen Moment bitte, Daten werden verarbeitet..."
SierpinskiKurve.dist = SierpinskiKurve.dist0
#Grundmuster besteht aus dem aufruf von den A B C D Funktionen
self.goToXY(2*SierpinskiKurve.dist,SierpinskiKurve.dist)
self.sierpA(level) #Rekursion wird gestartet
self.lineRel(+SierpinskiKurve.dist,+SierpinskiKurve.dist)
self.sierpB(level) #Rekursion wird gestartet
self.lineRel(-SierpinskiKurve.dist,+SierpinskiKurve.dist)
self.sierpC(level) #Rekursion wird gestartet
self.lineRel(-SierpinskiKurve.dist,-SierpinskiKurve.dist)
self.sierpD(level) #Rekursion wird gestartet
self.lineRel(+SierpinskiKurve.dist,-SierpinskiKurve.dist)
#So ensteht einfach erklärt eine Sierpinski Kurve:
#A: aufruf von A B D A
#B: aufruf von B C A B
#C: aufruf von C D B C
#D: aufruf von D A C D
# Bei jedem Rekursionsaufruf wird die Rekursionstiefe um 1 vermindern
#In den Rekursionsfunktionen wird auch die Zeichen Funktion (lineRel) mit den entsprechenden Koordinaten aufgerufen
def sierpA (self, level):
if (level > 0):
self.sierpA(level-1)
self.lineRel(+SierpinskiKurve.dist,+SierpinskiKurve.dist)
self.sierpB(level-1)
self.lineRel(+2*SierpinskiKurve.dist,0)
self.sierpD(level-1)
self.lineRel(+SierpinskiKurve.dist,-SierpinskiKurve.dist)
self.sierpA(level-1)
def sierpB (self, level):
if (level > 0):
self.sierpB(level-1)
self.lineRel(-SierpinskiKurve.dist,+SierpinskiKurve.dist)
self.sierpC(level-1)
self.lineRel(0,+2*SierpinskiKurve.dist)
self.sierpA(level-1)
self.lineRel(+SierpinskiKurve.dist,+SierpinskiKurve.dist)
self.sierpB(level-1)
def sierpC (self, level):
if (level > 0):
self.sierpC(level-1)
self.lineRel(-SierpinskiKurve.dist,-SierpinskiKurve.dist)
self.sierpD(level-1)
self.lineRel(-2*SierpinskiKurve.dist,0)
self.sierpB(level-1)
self.lineRel(-SierpinskiKurve.dist,+SierpinskiKurve.dist)
self.sierpC(level-1)
def sierpD (self, level):
if (level > 0):
self.sierpD(level-1)
self.lineRel(+SierpinskiKurve.dist,-SierpinskiKurve.dist)
self.sierpA(level-1)
self.lineRel(0,-2*SierpinskiKurve.dist)
self.sierpC(level-1)
self.lineRel(-SierpinskiKurve.dist,-SierpinskiKurve.dist)
self.sierpD(level-1)


