Español
Bugs y vermeintliche

XProfan X2

Alle Bedingungen en If-Elseif-Más-Endif voluntad aufgerufen, egal si sinnvoll oder no.

 
- Página 1 -



Nico
Madysa

KompilierenMarcaSeparación
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



Das XProfans boolsche Operatoren no Kurzschlussauswertung [...]  hacer, es una Sache.
Aber dass Yo no una vez algo como el Folgende escribir kann, macht el Arbeit con XProfan wirklich unnötig kompliziert.
KompilierenMarcaSeparación

11 kB
Hochgeladen:23.02.2014
Ladeanzahl180
Descargar
 
23.02.2014  
 



 
- Página 1 -



Michael
Wodrich
Öhhhmm

Wenn uno sowohl en el IF-Teil como auch en allen otro Zweigen el gleichen Valor benutzt, entonces auch Yo en el Schleudern kommen...

y en Funktionsaufrufen fehlt XProfan bastante offensichtlich el Glaskugel - also aufrufen y schauen qué esta heraus kommt...

Welche Lenguaje de programación va porque hier anders antes - y cómo genau...

Saludo
Michael Wodrich
KompilierenMarcaSeparación
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,
pero la Elektriker muss como wirklich veces ran...
KompilierenMarcaSeparación
' 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
¡Hola Michael,

así bastante jede Lingua, el me spontan einfällt, führt el Ausdrücke en un elseif-Zweig sólo de, si todos Ausdrücke davor falso ergeben haben.

En el C-artigen Idiomas es el automáticamente el Fall, porque deren elseif sí gerade nichts Anderes como verschachtelte Ifs son.

Posesiones auch eben 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 no de. Como el erste Condición ya erfüllt es, se el zweite nada sólo getestet. Das analoge Gegenstück bajo XProfan stürzt con un Division-por-Null-Fehler de.
 
24.02.2014  
 




Michael
Wodrich
Hier arbeitet XProfan also genau anders herum como C:

- en el If-ElseIf fällt XProfan por para nächsten Block
- y en el Select-Case es dies en C el Fall
(deshalb muss hay en el Block siempre con BREAK gestoppt voluntad)

Solange el Bedingungen vollkommen unterschiedlich son, fällt lo en efecto niemandem en, que aquí algo de el Ruder se ejecuta.

In gewollter Form debería dies aber sólo en el einzeiligen CASE(NOT) así ser - hier puede entonces mehrere ähnliche oder gleiche Fälle abgehandelt voluntad.

Roland hat's se sí ya 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
¡Hola,
auch si una erfolgreichen IF el Vergleich beim darauffolgenden ELSEIF tatsächlich todavía una vez ausgeführt se, se él todavía no ausgewertet. Das heißt, el Programa verhält se como esperado y führt sólo el código después de el ersten erfolgreichen Vergleich de:
KompilierenMarcaSeparación
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
Hola Roland,

dass de los entsprechenden Befehlsblöcke sólo el erste ausgeführt se, dessen Condición zutrifft, es selbstverständlich.
Alles Andere wäre sí wirklich una Skandal.

Worum lo me viel mehr va, es, wann genau el Bedingungen ausgewertet voluntad. Es en zwei Situationen wichtig:

1. Wenn una Función en el Condición es, el irgendwelche Nebenwirkungen ha.
KompilierenMarcaSeparación
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

KompilierenMarcaSeparación
trabajo en XProfan no.

Kurz y bien: In If-Elseif-Estructuras halte Yo para muy  sinnvoll, todos más Bedingungen a ignorieren, sobald una verdadero ergibt.

En boolschen Operatoren halte Yo auch para sinnvoll, aber como puede el Meinungen unterschiedlich ser.

Wichtig es sólo, dass el Documentación irgendwo erwähnt, como XProfan se verhält. Damit uno no en el Dunkeln tapst.
 
25.02.2014  
 




RGH
Sí, actualmente wertet XProfan tatsächlich auch el otro Bedingungen de. Pero esto es ya siempre así gewesen, auch si en el Tat no notwendig es y anders incluso vermutlich algo flotter wäre. (Das macht el entspechenden Delphi-Code en XProfan sólo deutlich einfacher. Sorry.)
Hier es una Änderung aber sicher posible.
Aunque halte Yo Code, el deratige Características con "Nebenwirkungen" en Bedingungen oder Boolschen Ausdrücken enthält no para sonderlich übersichtlich.

Zu el Boolschen Operatoren: In Delphi puede ser tatsächlich por Compilerschalter einstellen, si siempre todos Argumente ausgewertet voluntad oder sólo así weit, a el Ergebnis feststeht. Yo lo siempre en "alle Argumente" eingestellt y XProfan es auch así realisiert.
Aber auch hier wäre lo sicher posible, beide Varianten anzubieten.

Yo versuche veces, me beide Dinge para el kommende Versión X3 a merken.

Saludo
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 klar, danke para la respuesta rápida. Como ya dijo, letztendlich son beide Vorgehensweisen (vollständige y Kurzschlussauswertung) gangbare Alternativen. Aber wichtig es sólo, dass el Programmierer auch irgendwo darüber aufgeklärt se.

Saludo,

Nico
 
26.02.2014  
 




RGH
... y el Sache con el ELSEIF se en el nächsten XProfan-Versión (X3) y FreeProfan korrigiert! Sobald una Zweig erfüllt wurde, voluntad el übrigen Bedingungen no mehr abgefragt.

Saludo
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 no, el gleiche Comportamiento auch para Select einzubauen. Sombrero zwar absolut Null Anwendungsorientierung, aber el Letzte, qué wir brauchen, son todavía mehr Inkonsistenzen.
 
26.02.2014  
 




RGH
... y en SELECT nun entsprechend adaptado!

Saludo
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  
 



 
- Página 2 -



Michael
W.
RGH (25.02.14)
Zu el Boolschen Operatoren: In Delphi puede ser tatsächlich por Compilerschalter einstellen, si siempre todos Argumente ausgewertet voluntad oder sólo así weit, a el Ergebnis feststeht. Yo lo siempre en "alle Argumente" eingestellt y XProfan es auch así realisiert.
Aber auch hier wäre lo sicher posible, beide Varianten anzubieten.


RGH (25.02.14)
Yo versuche veces, me beide Dinge para el kommende Versión X3 a merken.


Ein Compilerschalter sería entonces sí el obige Kurzschluß-Ejemplo auch erledigen...
 
XProfan X3
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
21.12.2014  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

20.188 Views

Untitledvor 0 min.
Sven Bader05.07.2021
p.specht09.06.2021
Joerg15.06.2016
Wilfried21.05.2016
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie