Français
Bugs et vermeintliche

XProfan X2

Alle Bedingungen dans Si-Elseif-D'autre-Endif volonté aufgerufen, égal si sinnvoll ou bien pas.

 

Nico
Madysa

KompilierenMarqueSéparation
proc Test

    inc counter
    return 1

endproc

var int counter = 0
var int branch = 0

if Test()

    branch = 1

elseif Test()

    branch = 2

elseif Test()

    branch = 3

else

    branch = 4

endif

print "Abgearbeiteter Zweig:", branch
print "Aufrufe Test:", counter
waitinput
end



cela XProfans boolsche Operatoren aucun Kurzschlussauswertung [...]  faire, ist une l'affaire.
mais dass je pas einmal quelque chose comment cela Folgende écrivons peux, pouvoir qui travail avec XProfan wirklich unnötig compliqué.
KompilierenMarqueSéparation

11 kB
Hochgeladen:23.02.2014
Downloadcounter185
Download
 
23.02.2014  
 




Michael
Wodrich
Öhhhmm

si on sowohl im IF-partie comme aussi dans allen anderen Zweigen den gleichen Wert benutzt, ensuite serait aussi je ins Schleudern venons...

et chez Funktionsaufrufen fehlt XProfan entier offensichtlich qui Glaskugel - alors appel et regarder quoi dabei heraus venez...

quelle Programmiersprache allez car ici anders avant - et comment oui c'est ca...

Salut
Michael Wodrich
KompilierenMarqueSéparation
XProfan X2
Windows (TM) Vista Ultimate, Core(TM) i7 920 @ 2.67GHz, 9206,26 MB

Programmieren, das spannendste Detektivspiel der Welt.
24.02.2014  
 




Michael
Wodrich
Wow,
mais qui Elektriker muss là wirklich la fois ran...
KompilierenMarqueSéparation
' kurzschluss
var int A = 0
var int B = 10

if (A <> 0) and ((B / A) >= 5)

    messagebox("An dieser Stelle im Algorithmus konnte B durch A geteilt werden.","Erfolg",0)

else

    messagebox("An dieser Stelle ist der Quotient (B / A) echt kleiner als 5 oder eine Division durch 0 wurde verhindert","F E H L E R",0)

endif

XProfan X2
Windows (TM) Vista Ultimate, Core(TM) i7 920 @ 2.67GHz, 9206,26 MB

Programmieren, das spannendste Detektivspiel der Welt.
24.02.2014  
 




Nico
Madysa
allô Michael,

so assez chacun Discours, qui mir spontan einfällt, führt qui Ausdrücke dans einem elseif-Zweig seulement aus, si alle Ausdrücke devant faux ergeben avons.

chez den C-artigen Sprachen ist cela automatisch qui le cas, weil en elseif oui justement rien Anderes comme imbriquées Ifs sommes.

Habe aussi plan Python getestet:
a = 0
if a == 0:
	print "Division durch Null verboten!"
elif 3 / a > 8:
	print "Dieser Zweig wird nie erreicht, da a Null

stürzt pas ab. là la première Condition déjà erfüllt ist, wird qui zweite gar pas seulement getestet. cela analoge Gegenstück sous XProfan stürzt avec einem Division-par-zéro-faute ab.
 
24.02.2014  
 




Michael
Wodrich
ici arbeitet XProfan alors oui c'est ca anders herum comme C:

- chez den Si-ElseIf fällt XProfan par zum prochain Block
- et chez den Select-Cas ist ca chez C qui le cas
(c'est pourquoi muss là im Block toujours avec BREAK gestoppt volonté)

Solange qui Bedingungen vollkommen unterschiedlich sommes, fällt es oui aussi niemandem sur, que voici quelque chose aus dem Ruder fonctionne.

dans gewollter forme sollte ca mais seulement chez den einzeiligen CASE(NOT) so son - ici peut ensuite plusieurs ähnliche ou bien gleiche Fälle abgehandelt volonté.

Roland hat's sich oui déjà durchgelesen...
 
XProfan X2
Windows (TM) Vista Ultimate, Core(TM) i7 920 @ 2.67GHz, 9206,26 MB

Programmieren, das spannendste Detektivspiel der Welt.
25.02.2014  
 




RGH
Salut,
aussi si pour einem erfolgreichen IF qui comparaison beim darauffolgenden ELSEIF réellement encore einmal fonctionnement wird, wird il toutefois pas ausgewertet. cela est, cela Programme verhält sich comment erwartet et führt seulement den Code pour dem ersten erfolgreichen comparaison aus:
KompilierenMarqueSéparation
if 5 = 5

    print "5=5"

elseif 6 = 6

    print "sechs"

else

    print "nix"

endif

XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
25.02.2014  
 




Nico
Madysa
allô Roland,

dass de den entsprechenden Befehlsblöcke seulement qui erste fonctionnement wird, dessen Condition zutrifft, ist bien sûr.
Alles autre wäre oui wirklich un Skandal.

Worum es mir viel plus allez, ist, quand oui c'est ca qui Bedingungen ausgewertet volonté. c'est dans deux Situationen important:

1. si une Funktion dans qui Condition steht, qui irgendwelche Nebenwirkungen hat.
KompilierenMarqueSéparation
if SomeAPICall()' gibt 0 aus, falls was schief gegangen ist.

    print "Juchuu, alles in Ordnung!"

elseif MessageBox("Hat nicht geklappt. Beenden?", "", ~MB_YESNO) = ~IDNO

    print "Trotz Fehler weitermachen."

else

    print "Programm wird beendet."
    end

KompilierenMarqueSéparation
return gespeicherterWert or LangeRechnung("Dauert très longtemps.")

marcher dans XProfan pas.

Kurz et bien: dans Si-Elseif-Strukturen halte je es pour très  sinnvoll, alle weiteren Bedingungen trop ignorer, sobald une véritable ergibt.

chez boolschen Operatoren halte je es aussi pour sinnvoll, mais là peut qui Meinungen unterschiedlich son.

important ist seulement, dass qui Documentation irgendwo erwähnt, comment XProfan sich verhält. avec cela on pas im Dunkeln tapst.
 
25.02.2014  
 




RGH
oui, derzeit wertet XProfan réellement aussi qui anderen Bedingungen aus. c'est mais déjà toujours so gewesen, aussi si es dans qui acte pas notwendig ist et anders sogar probablement quelque chose flotter wäre. (cela fait den entspechenden Delphi-Code dans XProfan arrêt deutlich einfacher. Sorry.)
ici ist une Changement mais sûrement possible.
Allerdings halte je Code, qui deratige Funktionen avec "Nebenwirkungen" dans Bedingungen ou bien Boolschen Ausdrücken contient pas pour sonderlich übersichtlich.

trop den Boolschen Operatoren: dans Delphi peux on réellement per Compilerschalter einstellen, si toujours alle Argumente ausgewertet volonté ou bien seulement so large, jusqu'à cela Ergebnis feststeht. j'ai es toujours sur "alle Argumente" eingestellt et dans XProfan ist es aussi so realisiert.
mais aussi ici wäre es sûrement possible, beide Varianten anzubieten.

je versuche la fois, mir beide Dinge pour qui kommende Version X3 trop merken.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
25.02.2014  
 




Nico
Madysa
Alles bien sûr, merci pour qui schnelle Antwort. comment bereits dit, letztendlich sommes beide Vorgehensweisen (vollständige et Kurzschlussauswertung) gangbare Alternativen. mais important ist arrêt, dass qui Programmierer aussi irgendwo par-dessus aufgeklärt wird.

Salut,

Nico
 
26.02.2014  
 




RGH
... et qui l'affaire avec dem ELSEIF wird dans qui prochain XProfan-Version (X3) et dans FreeProfan korrigiert! Sobald un Zweig erfüllt wurde, volonté qui übrigen Bedingungen pas plus abgefragt.

Salut
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
26.02.2014  
 




Nico
Madysa
Vergiss pas, cela gleiche Verhalten aussi pour Select einzubauen. Hat zwar absolu zéro Anwendungsorientierung, mais cela dernier, quoi wir brauchen, sommes encore plus Inkonsistenzen.
 
26.02.2014  
 




RGH
... et chez SELECT eh bien entsprechend angepasst!

Salut
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
25.09.2014  
 




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

20.620 Views

Untitledvor 0 min.
Sven Bader05.07.2021
p.specht09.06.2021
Joerg15.06.2016
Wilfried21.05.2016
plus...

Themeninformationen



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