Anfängerfragen zum Programmieren mit PureBasic.
NicTheQuick
Ein Admin
Beiträge: 8809 Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200 Ubuntu 24.04.2 LTS GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Beitrag
von NicTheQuick » 03.04.2005 14:11
Komischerweise funktioniert eine Rekursion aber problemlos.
Code: Alles auswählen
a = 10
Gosub TestGosub
Debug a
End
TestGosub:
a - 1
If a > 1
Gosub TestGosub
EndIf
Return
Falko
Admin
Beiträge: 3535 Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit), Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1 HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:
Beitrag
von Falko » 03.04.2005 15:08
Rekursiv? Dann ist es mit Goto ähnlich.
Code: Alles auswählen
a = 10
Gosub TestGosub
Debug a
End
TestGosub:
Debug a
a - 1
If a > 1
Goto TestGosub
EndIf
Return
Win11 Pro 64-Bit, PB_6.11b1
freedimension
Admin
Beiträge: 1987 Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:
Beitrag
von freedimension » 03.04.2005 15:55
Die Rekursion mit Prozeduren zeichnet sich dadurch aus, dass du für jeden Prozeduraufruf "frisch" deklarierte Variablen zur Verfügung hast, dir also Werte rückwirkend auf's Einfachste merken kannst. Das a aus deinem Beispiel wird ja durchweg benutzt.
Versucht einmal mit Gosub eine wirklich nützliche rekursive Funktion zu schreiben! Da musst du alle wichtigen Werte selber auf einen Stack legen und verwalten.
Beginne jeden Tag als ob es Absicht wäre!
BILDblog
Kaeru Gaman
Beiträge: 17389 Registriert: 10.11.2004 03:22
Beitrag
von Kaeru Gaman » 03.04.2005 16:05
freedimension hat geschrieben: Da musst du alle wichtigen Werte selber auf einen Stack legen und verwalten.
sic!
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
ts-soft
Beiträge: 22292 Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43 CPU: AMD FX-6300 Six-Core Processor GraKa: GeForce GTX 750 Ti, 2 GB Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin
Beitrag
von ts-soft » 03.04.2005 16:05
Die Zeit, die man durch Gosub (UrBefehl aus den 60-ern) spart, die nächsten 50 Jahre addieren, es wird nicht reichen ne Tasse Kaffee zu trinken
Kaeru Gaman
Beiträge: 17389 Registriert: 10.11.2004 03:22
Beitrag
von Kaeru Gaman » 03.04.2005 16:10
im endeffekt ist ja GOSUB nix weiter als ein wrapper des ASM-Befehls JumpToSubroutine...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Falko
Admin
Beiträge: 3535 Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit), Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1 HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:
Beitrag
von Falko » 03.04.2005 18:47
Was sind dann wohl die anderen PB-Befehle?
Win11 Pro 64-Bit, PB_6.11b1
Kaeru Gaman
Beiträge: 17389 Registriert: 10.11.2004 03:22
Beitrag
von Kaeru Gaman » 03.04.2005 18:50
die anderen befehle sind mehr oder weniger komplexe ASM-Routinen.
lediglich GOTO und GUSUB entsprechen fast 1:1 ihren ASM-Kollegen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.