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
Antwort Antwort
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#1

AW: "if boolean then if" ersetzen

  Alt 5. Sep 2011, 10:20
Naja..das ursprüngliche konstrukt und die sehr kompakte variante reagieren aber gleich.
Deswegen ist noch die relevanz der zustände zu klären, ich sehe ansonsten auch keinen unterschied.

Ursprünglich:
Wenn showzero gesetzt -> Dann ShowValue
Wenn showzero aber nicht gesetzt und Y wenigstens > Null -> ShowValue

Keiner der beiden zustände schließt den anderen aus. Und wie Medium bereits gesagt(hui RoterKasten^^) wird bei beiden bedingungen dasselbe aufgerufen.
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: "if boolean then if" ersetzen

  Alt 5. Sep 2011, 10:29
Beide Varianten haben zumindest das selbe Ergebnis. Beweis durch Wahrheitstabelle:

Code:
showzero    |    y > 0    |    ((showzero) || (y > 0))   |    ((showzero) || ((-showzero) && (y > 0)))
   0        |      0      |                0              |                     0
   0        |      1      |                1              |                     1
   1        |      0      |                1              |                     1
   1        |      1      |                1              |                     1
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.338 Beiträge
 
Delphi 12 Athens
 
#3

AW: "if boolean then if" ersetzen

  Alt 5. Sep 2011, 10:37
Jupp, das zweite Statment {... else} if y > 0 then entspricht ja if not showzero and (y > 0) then .

Nun kann man die Beiden also zusammenfassen
if showzero or (not showzero and (y > 0)) then (wie xaromz es richtig gemacht hat)

Jetzt noch Kürzen, die Klammern auflösen usw.:
Delphi-Quellcode:
if showzero or (not showzero and (y > 0)) then

// beide AND-Teile in Klammern (damit der nächste Einfügeprozess einfacher zu erkennen ist)
if showzero or ((not showzero) and (y > 0)) then

// das OR auflösen, bzw. OR und AND austauschen ... also den linken OR-Teil in beide AND-Teile einfügen
if (showzero or not showzero) and (showzero or (y > 0)) then

// x or not x = true
if true and (showzero or (y > 0)) then

// nun nur noch "true and ..." rauskürzen und fertig
if showzero or (y > 0) then

[edit]
menno
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 5. Sep 2011 um 10:41 Uhr)
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
228 Beiträge
 
Delphi 12 Athens
 
#4

AW: "if boolean then if" ersetzen

  Alt 5. Sep 2011, 11:11
Falls es für die Diskussion noch erforderlich ist:

y ist eine Variable. Es soll nicht mehr passieren als dass alle Werte angezeigt werden, ausser eben der User will Null-Werte nicht angezeigt haben (und die Werte sind auch wirklich Null).

Ich hoffe, ich hab durch meine urpsrüngliche Problemstellung niemanden auf die falsche Fährte gelockt.

btw. "roter Kasten" wie/wo/was?
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#5

AW: "if boolean then if" ersetzen

  Alt 5. Sep 2011, 11:22
Der rote Kasten ist ein Hinweis, der eingeblendet wird, wenn während dem Schreiben einer Antwort neue Antworten anderer Benutzer hinzugekommen sind.
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:33 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