Français
Wünsche et Anregungen

Wunsch: "Infinite" Rekursion aussi pour Funktionen

 
depuis XProfan-sans-Grenzen ist es possible une schier unendliche Prozedurrekursion zur Abarbeitung trop bewegen.

malheureusement trifft cela pas sur eigene Funktionen trop, mais seulement sur Prozeduren.

Hierbei ist qui Schreibweise entscheidend.
KompilierenMarqueSéparation
stürzt beispielsweise très vite ab wogegen
KompilierenMarqueSéparationunendlich (grenzenFrei comment versprochen) abgearbeitet wird.

je peux mir présenter cela Prf2CPP-Nutzer sowieso déjà toujours une unendliche Procédure/Funktionsrekursion abarbeiten laisser peut. @Sebastian: Ist dem so?

Büdde améliorer Roland.

ici encore un très anschauliches et simple Beispiel pour une Füll-Funktion quelle qui Rekursion utilise comme grenier.
KompilierenMarqueSéparation
CLS
USEPEN 0,0,0
RECTANGLE 1,1 - WIDTH(%HWND)-10,HEIGHT(%HWND)-10
LINE 10,10 - 200,20
LINE 200,20 - 50,300
LINE 50,300 - 100,50
LINE 100,50 - 10,10
ELLIPSE 300,200 - 500,400
F 120,100,GETPIXEL(120,100)
F 400,300,GETPIXEL(300,200)
PRINT bingo
WAITINPUT

proc F

    PARAMETERS X&,Y&,TOFILL&
    SETPIXEL X&,Y&,0

    IF GETPIXEL(X&+1,Y&)=TOFILL&

        F X&+1,Y&,TOFILL&

    ENDIF

    IF GETPIXEL(X&,Y&+1)=TOFILL&

        F X&,Y&+1,TOFILL&

    ENDIF

    IF GETPIXEL(X&-1,Y&)=TOFILL&

        F X&-1,Y&,TOFILL&

    ENDIF

    IF GETPIXEL(X&,Y&-1)=TOFILL&

        F X&,Y&-1,TOFILL&

    ENDIF

endproc


976 kB
Hochgeladen:13.02.2008
Downloadcounter148
Download
 
13.02.2008  
 




Sebastian
König
iF

je peux mir présenter cela Prf2CPP-Nutzer sowieso déjà toujours une unendliche Procédure/Funktionsrekursion abarbeiten laisser peut. @Sebastian: Ist dem so?

non, malheureusement pas - qui Aufruftiefe ist momentan sur 32 begrenzt. cela hat avec dem grenier-Management pour den Paramter-Stack trop 1faire...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
13.02.2008  
 



je comprends - et c'est très tant pis.

Zur 32: Erlaubte là Roland pas une deutlich höhere Rekursionstiefe?
 
13.02.2008  
 




Sebastian
König
iF
je comprends - et c'est très tant pis.

Zur 32: Erlaubte là Roland pas une deutlich höhere Rekursionstiefe?


là suis je mir maintenant pas sûrement... je dachte, je hätte mich chez qui numéro à XProfan orientiert...

qui Einschränkung gibt es incidemment encore garnicht so longtemps, mais seulement depuis je festgestellt habe, dass es pour den paramètre-Stack une Unterschied pouvoir, si une Procédure comme Befehl ou bien comme Funktion aufgerufen wird. dans dem Zusammenhang encore qui Hinweis, dass qui frontière seulement pour qui Funktions-variante gilt - comme Befehl ist qui erlaubte Tiefe réellement unendlich. EDIT: alors oui c'est ca comment dans XProfan, comment je justement vois - mon Nachbau ist évident wirklich bien...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
13.02.2008  
 



cette Testcode gibt une gewisse Auskunft: (unten qui exe)
KompilierenMarqueSéparation
//Version:0.0.3
 {$cleq}
randomize
long i
cls
usepen 0,0,0
rectangle 1,1 - width(hwnd)-10,height(hwnd)-10
line 10,10 - 200,20
line 200,20 - 50,300
line 50,300 - 100,50
line 100,50 - 10,10
ellipse 300,200 - 500,400
f 400,300,getpixel(400,300)
f 120,100,getpixel(120,100)
f 400,300,getpixel(300,200)
print bingo
waitinput
end

f(long x,y,tofill){

    i+
    locate 1,20
    print i
    setpixel x,y,0
    case getpixel(x+1,y)==tofill : f(x+1,y,tofill)
    case getpixel(x,y+1)==tofill : f(x,y+1,tofill)
    case getpixel(x-1,y)==tofill : f(x-1,y,tofill)
    case getpixel(x,y-1)==tofill : f(x,y-1,tofill)
    i-nt color=#0000FF>}


EDIT: Code et EXE révisée, es fehlte i- am Ende qui Funktion f.

avec dem neuen Code wird mir max 4.380 pour i angezeigt.

977 kB
Hochgeladen:13.02.2008
Downloadcounter155
Download
 
13.02.2008  
 




Sebastian
König
Ok, qui numéro peux je bestätigen. réellement finde je dans qui XProfan-Aider Angabe pour qui maximale Aufruf-Verschachtelung, qui 32 habe je alors wohl selbst gewählt... Schien mir irgendwie un entier bon Kompromiss entre Performance et grenier-la dépense trop son. technique wäre es ne...aucune allzu großes Problem, qui frontière abzuschaffen - je muss seulement la fois regarder, si et comment très qui Geschwindigkeit au-dessous leiden serait...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
13.02.2008  
 




Sebastian
König
encore un Nachtrag...

Beim Betrachten meines eigenen Codes vois je justement, dass qui erlaubte Tiefe im Prinzip  dans Profan2Cpp doch unendlich ist. Ab qui 33. plaine verhält sich qui Stack chez einem Aufruf comme Funktion allerdings ensuite genauso comment chez einem Aufruf comme Befehl. Soll appeler: qui übergeordnete Stack wird ensuite plus benutzt....
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
13.02.2008  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

4.242 Views

Untitledvor 0 min.
Jörg Sellmeyer12.05.2018

Themeninformationen

cet Thema hat 2 participant:

Sebastian König (4x)
iF (3x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie