Deutsch
Forum

For to step Do ...

 
Hallo,
hab grad die Syntax-Erweiterungen in der xpse-Beschreibung getestet,
komme aber mit dem beschriebenen
For ... to... step .. do
nicht klar. Oder war das eine Ankündigung für die nächste Version?
Es wird ein fehlendes Begin angemotzt...
Wo gehört das hin, und wie beende ich den Block? EndFor ??
 
21.08.2008  
 



for x=0 to 200 do begin
blub
end

oder

for x=0 to 200 step 20 do begin
blub
end

for x=200 downto 0 do begin
blub
end

...
 
22.08.2008  
 




Jörg
Sellmeyer
Wobei man dazusagen muß, daß XPSE da auch nichts anderes als die gute alte WhileLoop-Schleife raus macht:
KompilierenMarkierenSeparieren
WhileLoop 0, 200

    Blub()

Wend

WhileLoop 0,200,20

    Blub()

Wend

WhileLoop 200,0,-1

    Blub()

Wend

 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
22.08.2008  
 




Frank
Abbing
Ja, deren Schreibweise viel kürzer und simpler ist...
... auch wenn zum Schluss besser ein EndWhile dort stände!
 
22.08.2008  
 



ähm... danke, aber mit einem nackten X geht da garnix, lässt sich auch nicht declaren. Es geht bei mir aber aus anderen Gründen auch nicht, zumindest nicht oft:

{$iq}
declare x&
for x& = 0 to 200 step 20 do begin
print "0";
end
for x& = 0 to 200 step 20 do begin
print "1";
end
waitinput
end

...liefert eine Fehlermeldung in der .xpia Datei, die ein undeclaretes INC betrifft.
Vielleicht mag der Precompiler das Semikolon nicht - aber wie bitte bring ich dann die Ziffern aneinander ran, ohne erst kompliziert einen Sammelstring mit + aufzubauen? Inzwischen kenn ich zwar den MkStr$()-Befehl, aber es geht um die prinzipielle Anwendung von ";" wie im guten alten BASIC
Gruss
P. Specht
 
22.08.2008  
 



XPSE macht da überhaupt gar keine WhileLoop-Schleifen draus. Wie sollte man denn damit mit einer Variable (z.B. X) zählen können, und das auch verschachtelt. "Wegen" XProfan11 hat XPSE im Bezug auf die ForSchleifen grad einen BUG, diese "INC-Meldung" die Du dort ansprichst muss ich erst korrigieren. Das Semikolon ist kein Problem. Siehe  [...]  bzw.  [...] 

Wenn ich wieder zurück bin, so hab ichs ja versprochen, gibts natürlich zeitnah ein Update. (Aber erst nach Auspacken meiner Zahnbürste.)
 
22.08.2008  
 




Jörg
Sellmeyer
Wie man hier schön sieht, sind die beiden letzten WhileLoop-Varianten schneller. Dagegen ist die einfache WhileLoop-Schleife langsamer als die von XPSE erzeugt While-Schleife.
Ich hätte eher das Gegenteil vermutet.
KompilierenMarkierenSeparieren
 $IFNDEF INTERPRETER
 {$cleq}
 $ENDIF
ClearClip
Set("Decimals", 0)
Declare x&
Cls
Sleep 3000
Var c& = &GetTickCount
for x&=0 to 10000 do begin
Locate 1,1:print x&
end
C& = &GetTickCount - c&
print c&
PutClip Str$(c&) + "
"
c& = &GetTickCount
for x&=0 to 10000 step 1 do begin
Locate 4,1:print x&
end
C& = &GetTickCount - c&
print c&
PutClip Str$(c&) + "
"
c& = &GetTickCount
for x&=10000 downto 0 do begin
Locate 7,1:print x&
end
C& = &GetTickCount - c&
print c&
PutClip Str$(c&) + "
"
Print "###############################"
c& = &GetTickCount

WhileLoop x&, 10000

    Locate 10,1:print &Loop

Wend

C& = &GetTickCount - c&
print c&
PutClip Str$(c&) + "
"
c& = &GetTickCount

WhileLoop x&,10000,1

    Locate 13,1:print &Loop

Wend

C& = &GetTickCount - c&
print c&
PutClip Str$(c&) + "
"
c& = &GetTickCount

WhileLoop 10000,x&,-1

    Locate 16,1:print &Loop

Wend

C& = &GetTickCount - c&
print c&
PutClip Str$(c&) + "
"
WaitInput


Ergebnisse:
1922
2578
2578
2484
2469
2484

Die Greenbox wollte ich doch auch mal anbringen

[offtopic]
Warum sieht die denn so seltsam aus?

[/offtopic]



Ergebnisse: 1922 2578 2578 2484 2469 2484
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
22.08.2008  
 




Frank
Abbing
Das Testprogramm sollte zuerst alle Laufwerksaktivitäten abwarten, wobei ein vorangestelltes Sleep 3000 ungemein hilft. Hier mein (abweichendes) Ergebnis, wobei alle XPSE-Schleifen langsamer arbeiten:

1140
1110
1093
####
1047
1094
1047
 
22.08.2008  
 




Jörg
Sellmeyer
Wow! Was hast Du denn für einen Rechner. Ich dachte mein neuer Intel Dualcore 4600 @2.4GH wäre schnell. Meine Ergebnisse jetzt:
2547
2578
2547
2468
2469
2453

Sind aber einige Schwankungen drin:
2578

1859

2531

2469

2453

2469


Besonders iFs erste Schleife wird langsamer, wenn das Hauptfenster vor dem ersten Print schon da ist. Hätte ich auch nicht mit gerechnet...
Ich hab Sleep und Cls mal eingebaut.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
22.08.2008  
 




Frank
Abbing
Hüstel, mein oller AMD Athlon 64 mit 2.2 GHz und 1 GB RAM ist schon fast antique...
 
22.08.2008  
 



Weiss nicht, warum meine Mühle heute so langsam ist...
Von 3,4 GHz HT ist jedenfalls nix zu merken:
2907
2906
2891
####
2797
2812
2813

Also die ENDs der BEGIN blöcke gefallen mir gar nicht. Bei END denke ich stets an den letzten compilierten Befehl. Wie wärs mit FEND bei For-Schleifen? oder BEND für BLOCK-END? Gibts andere Einsatzmöglichkeiten für BEGIN, oder gehört der zur FOR-Schleife?

Gruss
 
22.08.2008  
 




Frank
Abbing
Naheliegender wäre vielleicht Next gewesen...
 
22.08.2008  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

16.621 Betrachtungen

Unbenanntvor 0 min.
p.specht21.08.2018
lange-jens22.05.2012
Roland Schäffer06.01.2011

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie