AGB  ·  Datenschutz  ·  Impressum  







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

Boolean-Werte addieren?

Ein Thema von PeterPanino · begonnen am 2. Jan 2009 · letzter Beitrag vom 4. Jan 2009
Antwort Antwort
Seite 3 von 3     123   
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#21

Re: Boolean-Werte addieren?

  Alt 4. Jan 2009, 03:10
omata, aus einem einfachen Grund:
Delphi-Quellcode:
var
  b : BOOLEAN;
  i : INTEGER;
begin
  b := BOOLEAN(2);
  i := ORD(BOOLEAN(b));
end;
Das klappt dann für jedwegen Boolean'schen Ausdruck, eben auf der Prämisse das FALSE = 0 und TRUE <> 0.
b ist in diesem Fall TRUE, da <> 0. Das könnte in deiner Berechnung erhebliche Fehler erzeugen ...

Desweiteren wollte der Threadersteller lediglich die Anzahl aller Ausdrücke und eben die Anzahl aller wahren Ausdrücke wissen.

Und alle hier geposteten Funktionen und Prozeduren sind meiner Meinung nach etwas Overhead für die eigentlich gestellte Frage.
Delphi-Quellcode:
if BoolVar then INC(TrueVals);
INC(SumVals);
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#22

Re: Boolean-Werte addieren?

  Alt 4. Jan 2009, 11:41
Hallo,

die Routine von omata funktioniert auch für ByteBool, WordBool und LongBool (=BOOL). Die notwendige Anpassung der Werte an den gewählten Elementtyp Boolean übernimmt der Delphi-Compiler. Die Routine darf also davon ausgehen, dass der Ordinalwert der Elemente entweder 0 oder 1 ist, so wie es auch in der Hilfedatei dokumentiert ist. Ärger gibt es nur dann, wenn man (mutwillig) als Boolean verkleidete Byte-Werte übergibt. Aber das wäre so, als würde man einen Texteditor eine ausführbare Datei laden lassen. Dafür ist der in der Regel nicht ausgelegt...

Gruß Hawkeye
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#23

Re: Boolean-Werte addieren?

  Alt 4. Jan 2009, 19:26
Ich denke ein simples Inc(n) in einer Schleife, die alle Bools überprüft (also <> 0) ist trotzdem schöner und kommt dann auch mit allem zurecht (und nebenbei ist es auchnoch unwesentlich kleiner im Code).
Aber die Diskussionm ob man Boolean jetzt sicher als 1 annehmen darf oder nichtm gabs hier schon ein paar mal.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 05:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz