AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

"if boolean then if" ersetzen

Ein Thema von cltom · begonnen am 5. Sep 2011 · letzter Beitrag vom 5. Sep 2011
 
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#8

AW: "if boolean then if" ersetzen

  Alt 5. Sep 2011, 10:35
Das kommt immer darauf an, was gewollt ist. Die beiden Lösungen unterscheiden sich fundamental in ihrer Aussage. Wenn die einfache Variante gemeint ist, dann ist das in Ordnung, aber die Aussage, dass die beiden Statements praktisch gleichwertig sind ist grob falsch. So gesehen war auch der Ursprungscode falsch.
Falls y keine Funktion ist, sondern eine Variable gilt:
Die beiden Lösungen unterscheiden sich in keiner Weise, das Ergebnis ist exakt identisch.

Man kann sie auch ineinander umformen.
Vorraussetzung: y und showzero bleiben bei mehrfacher Auswertung konstant.
Ich definiere:
a := showzero
b := not showzero
c := y > 0

xaromz Statement wird damit zu
Code:
a or (b and c)
Und das Distributivgesetz sagt:
Code:
a or (b and c) = (a or b) and (a or c)
Es gilt:
Code:
a or b = a or (not a) = true
Damit wird die Formel zu:
Code:
true and (a or c) = a or c
q.e.d.

Mit teilweiser Boolescher Auswertung (standardmäßig aktiviert) entspricht der Code komplett den Ursprungscode, bei deaktivierter teilweiser Auswertung wird in jedem Fall (y>0) geprüft, falls y also eine Funktion ist wird diese immer ausgeführt und nicht nur falls showzero falsch ist.

Oha, roter Kasten. Aber das mit der teilweisen Auswertung hat noch keiner gesagt
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz