Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

QB Schneeflocke fallen lassen
Gehe zu Seite Zurück  1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4709
Wohnort: ~/

BeitragVerfasst am: 06.12.2008, 19:44    Titel: Antworten mit Zitat

Das wäre so etwas, genau. Auch z. B. die Koch-Kurve, die von ihrem Aussehen her einer Schneeflocke ähnelt.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
GRaf



Anmeldungsdatum: 04.12.2008
Beiträge: 23

BeitragVerfasst am: 06.12.2008, 20:35    Titel: Antworten mit Zitat

und was müsste ich an meinem programm verändern damit es ein fraktal ist?


Eig ist es doch ungefähr wie beim Baum
Der Baum geht erst nach oben,dann dreht sich der winkel und der nächste wird drann gezeichent.

Und bei mir
Ist eine Schneeflocke, dann dreht sich der winkel und eine Schneeflocke wird 50cm dadrunter gezeichent.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4709
Wohnort: ~/

BeitragVerfasst am: 07.12.2008, 10:35    Titel: Antworten mit Zitat

Zitat:
Und bei mir
Ist eine Schneeflocke, dann dreht sich der winkel und eine Schneeflocke wird 50cm dadrunter gezeichent.

Wenn die neu gezeichnete Schneeflocke nicht Teil der ursprünglichen Schneelflocke ist, dann ist es kein Fraktal, sondern eine Symmetrie. Für ein Fraktal muss sich die Schneeflocke aus anderen Schneeflocken zusammensetzen, die sich wiederum aus Schneeflocken zusammensetzen, die sich wiederum ...
Siehe Kochkurve.

Bei dem Baum (zumindest wie ich ihn mir deiner Beschreibung nach vorstelle) hast du genau diesen Fall: Der gedrehte Ast ist eben ein Ast, also ein Teil des Baumes, und besitzt wieder einen Ast, der wiederum usw. Wenn du dagegen nur irgendwo einen anderen gedrehten Baum hinzeichnest, dann ist das ein neuer Baum (der ja ohne Äste einfach nur aus einer Strecke besteht).
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
GRaf



Anmeldungsdatum: 04.12.2008
Beiträge: 23

BeitragVerfasst am: 07.12.2008, 12:28    Titel: Antworten mit Zitat

also bei meiner schneeflocke zeichne ich einfach eine neue,also ist es doch ein teil der ursprünglichen oder nicht? Oder soll ich die danach ein bisschen vergrößern?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4709
Wohnort: ~/

BeitragVerfasst am: 07.12.2008, 16:00    Titel: Antworten mit Zitat

k. A. ob du das richtige meinst; dazu müsste ich den Quellcode sehen (ich kann wie gesagt die binärverschlüsselte Speicherung nicht lesen).
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
GRaf



Anmeldungsdatum: 04.12.2008
Beiträge: 23

BeitragVerfasst am: 07.12.2008, 18:11    Titel: Antworten mit Zitat

muss ich da was bei dem programm verändern,damit du das lesen kannst?

Ich erklärs aber nochmal
Ich geb 10 ein dann kommen oben 10 Schneeflocken nebeneinander.
Dann geb ich wieder 10 ein dann zeichnet qb dadrunter 10 neue und dadrunter noch 10 neue und immer so weiter, bis nach unten.


http://uploaded.to/?id=zxo06t
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 957
Wohnort: Austria

BeitragVerfasst am: 07.12.2008, 18:40    Titel: Antworten mit Zitat

@nemored: Die Datei kann mit QBasic 7.1 PDS ohne Probleme geöffnet werden. Mit QBasic 4.5, 1.1, o.ä, hingegen nicht, da die Datei im Binärformat gespeichert ist.

@GRaf: Es is möglicherweise besser, wenn du die Datei im Textformat abspeicherst. Dann kann sie von jedem gelesen werden. Wähle dazu unter QB7.1 PDS "File"-"Save As..." und dann in der Box "Format" die Option "Text - Readable by other programs" und gib den Dateinamen an, unter dem du die Datei abspeichern willst.
(Alternativ kannst du auch hier im Forum den Code einfügen, wenn er nicht zu lang ist.)
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 07.12.2008, 19:03    Titel: Antworten mit Zitat

@St_W:
Das ist nemored wohl bewusst, deswegen weißt er auch extra darauf hin, dass er die binär gespeicherten QB-Sourcen nicht lesen kann; mit der indirekten Forderung das ganze doch mal als reinen Text zu speichern.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
GRaf



Anmeldungsdatum: 04.12.2008
Beiträge: 23

BeitragVerfasst am: 07.12.2008, 20:41    Titel: Antworten mit Zitat

Hier:
http://uploaded.to/?id=6aym0r
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 957
Wohnort: Austria

BeitragVerfasst am: 07.12.2008, 21:47    Titel: Antworten mit Zitat

[ot]
Mao hat Folgendes geschrieben:
er die binär gespeicherten QB-Sourcen nicht lesen kann


Also das kann ich mir nicht vorstellen.

QB 7.1 PDS kann man kostenfrei vom Internet herunterladen und es läuft unter DOS, Windows, MacOS, OS/2, FreeBSD, RiscOS, BeOS, Linux - sprich: jedem verbreiteten Betriebssystem (mithilfe der DosBox). Und am Wissen wird es auch nicht scheitern, also ist die Chance, dass man die Datei nicht öffnen kann verschwindend klein.
[/ot]
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4709
Wohnort: ~/

BeitragVerfasst am: 07.12.2008, 22:12    Titel: Antworten mit Zitat

Tut mir leid, ich finde in deinem Programm keine Rekursion. Der Programmablauf scheint mir folgender zu sein:
vorbereitung -> schneee -> (schneeflocke -> schneevor) (beide letzten evtl. mehrmals hintereinander)
secvor -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvora -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvorb -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvorc -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvord -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvore -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvorf -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvorg -> schneee -> (schneeflocke -> schneevor) (s. o.)
secvorh -> schneee -> (schneeflocke -> schneevor) (s. o.)

Keine einzige Funktion, die sich selbst aufruft und daher auch keine Rekursion. Ich vermute mal, dass es dann auch kein Fraktal ist, aber ich bekomme bei der Ausführung nichts angezeigt; ist vielleicht irgendwas nicht zu FreeBASIC kompatibel.

@ST_W: Schon mal auf den Gedanken gekommen, dass ich nicht erst ein passendes Programm suchen und installieren möchte, um eine (auch) an mich gerichtete Frage beantworten zu können? lächeln
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
GRaf



Anmeldungsdatum: 04.12.2008
Beiträge: 23

BeitragVerfasst am: 07.12.2008, 22:23    Titel: Antworten mit Zitat

hää also recursion heißt doch, wenn man in einer sub ne andere aufruft oder nicht? So hab ich das verstanden.

Wie soll ich das den ändern, damit es deiner meinung nach rekursiv ist?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4709
Wohnort: ~/

BeitragVerfasst am: 07.12.2008, 23:17    Titel: Antworten mit Zitat

Rekursion (siehe Link oben) ist eine Funktion, die sich selbst aufruft. Ein klassisches Beispiel wäre die Berechnung der Fakultät (die leider sehr schnell an die Grenzen der Variablengröße stößt happy ).
Code:
FUNCTION fakultaet(n)
  IF n = 1 THEN RETURN n
  RETURN n * fakultaet(n-1)
END FUNCTION

Die Funktion ruft sich so lange immer wieder selbst auf, bis sie das Ergebnis ermittelt hat.

Ich fürchte, du musst dein Programm völlig anders aufbauen. Ich gebe dir mal ein Beispiel für die Kochkurve in Pseudocode:
Code:
sub kochkurve(startX, startY, endeX, endeY, verschachtelungsstufe)
  wenn obersteVerschachtelungsstufe = erreicht dann
    zeichne strecke von start zu ende
  sonst
    punkt1 = punkt auf 1/3 der Strecke von start bis ende
    punkt2 = punkt auf 2/3 der Strecke von start bis ende
    spitze = dritter Punkt des gleichseitigen Dreiecks punkt1-punkt2-spitze
    ' hier kommt die Rekursion ins Spiel
    kochkurve(startX, startY, punkt1X, punkt1Y, verschachtelungsstufe-1)
    kochkurve(punkt1X, punkt1Y, spitzeX, spitzeY, verschachtelungsstufe-1)
    kochkurve(spitzeX, spitzeY, punkt2X, punkt2Y, verschachtelungsstufe-1)
    kochkurve(punkt2X, punkt2Y, endeX, endeY, verschachtelungsstufe-1)
  ende wenn
ende sub

_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 08.12.2008, 08:58    Titel: Antworten mit Zitat

Falls jemand einen Code für die Kochkurve sucht:

http://beilagen.dreael.ch/QB/KOCHKURV.BAS
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
GRaf



Anmeldungsdatum: 04.12.2008
Beiträge: 23

BeitragVerfasst am: 08.12.2008, 19:03    Titel: Antworten mit Zitat

Ich habs rekursiv
http://uploaded.to/?id=0ji7fp


Brauch nur noch Hilfe wieder beim fallen von den Schneeflocke ich muss ja unter jede flocke noch eine flocke.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4709
Wohnort: ~/

BeitragVerfasst am: 08.12.2008, 20:01    Titel: Antworten mit Zitat

Mal so als Warnung:
Code:
CALL eingabe(generation!)

SUB eingabe (generation!)
PRINT "gib bitte die schneeflocken an"
INPUT generation
END SUB

wird nicht funktionieren, weil die Variable generation nur innerhalb der SUB gültig ist. Will heißen: Du kannst damit schon einen Wert eingeben, aber wenn du die SUB verlässt oder während du eine andere aufrufst, ist er wieder weg.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 957
Wohnort: Austria

BeitragVerfasst am: 08.12.2008, 20:10    Titel: Antworten mit Zitat

@nemored: Nein, das dürfte nicht so sein, denn:
- Beim Aufrufen (CALL) wird die Variable "generation" als SINGLE angelegt
- Die Adresse der Variable wird an die Sub übergeben (By Reference!!)
- In der Sub wird an der Adresse der Variable der neue Wert gespeichert
- Rücksprung aus der Sub

@GRaf: Ich kann keine Rekursion in deinem Programm finden. Welche Sub ist da rekursiv?
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4709
Wohnort: ~/

BeitragVerfasst am: 08.12.2008, 20:19    Titel: Antworten mit Zitat

Achso, ist BYREF Standard? Dann sorry, meine QB-Zeiten sind wohl inzwischen doch schon zu lange her. verlegen
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
GRaf



Anmeldungsdatum: 04.12.2008
Beiträge: 23

BeitragVerfasst am: 08.12.2008, 20:40    Titel: Antworten mit Zitat

Ich krieg das einfach nicht hin...
Muss morgen meine Arbeit abgeben und schaff es einfach nicht.
Mein einziges Problem ist , wenn ich die Schneeflocken rekursiv machen will, dann sagt er immer "Außerhalb des Stapelsbereich". Nur wie krieg ich das jetzt hin?


EDIT

Habs happy
FERTIG !!!
Ich denke jetzt ist es recursiv und da es rekursiv ist , denke ich , dass es auch ein fraktal ist.
http://uploaded.to/?id=wi996a Hoffe es ist rekursiv Zunge rausstreckenhappy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 09.12.2008, 12:34    Titel: Antworten mit Zitat

Ja, logisch: Wenn Du eine Sub rekursiv unendlich oft aufrufst, ist irgendwann der Stapel voll.

Wie wäre es, wenn Du ein Array für die Schneeflocken anlegst und dann jede Schneeflocke per Index zählst und nacheinander berechnen läßt.
_________________
Und die Grundgebihr is aa scho drin- DOS is jo nett.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3  Weiter
Seite 2 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz