Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Boolean-Werte addieren? (https://www.delphipraxis.net/126794-boolean-werte-addieren.html)

PeterPanino 2. Jan 2009 17:35


Boolean-Werte addieren?
 
Kann man Boolean-Werte eigentlich addieren? Und zwar so, dass aus der Summe ersichtlich ist, wie viele True- und wie viele False-Werte enthalten sind?

mkinzler 2. Jan 2009 17:37

Re: Boolean-Werte addieren?
 
Da würde ich nicht von Addition reden. da wird man eher Zählen müssen

Gentleman 2. Jan 2009 18:15

Re: Boolean-Werte addieren?
 
True entspricht 1 und false entspricht 0, wenn du also bei true immer mit 1 addierst, erhälst du die Anzahl der true-Werte. Dann müsstest du noch die Gesamtanzahl kennen, also mit true und false und daraus lässt sich dann ja alles weitere berechnen.

monta 2. Jan 2009 18:19

Re: Boolean-Werte addieren?
 
//ok, ich war zu langsam

Luckie 2. Jan 2009 18:51

Re: Boolean-Werte addieren?
 
Genau genommen ist False als null definiert und true als alles andere. Wenn jetzt eine Funktion 258 als wahr zurückgibt ...

Reinhard Kern 3. Jan 2009 13:03

Re: Boolean-Werte addieren?
 
Zitat:

Zitat von Luckie
Genau genommen ist False als null definiert und true als alles andere. Wenn jetzt eine Funktion 258 als wahr zurückgibt ...

Noch genauer genommen ist auf boolean die DeMorgansche Arithmetik anzuwenden, aber da kommt nicht das raus, was der Fragesteller sucht - da sind auch die Ergebnisse boolean.

Gruss Reinhard

SirThornberry 3. Jan 2009 13:10

Re: Boolean-Werte addieren?
 
Zitat:

Zitat von Luckie
Genau genommen ist False als null definiert und true als alles andere. Wenn jetzt eine Funktion 258 als wahr zurückgibt ...

Bei False stimme ich dir zu bei True nicht. Denn True ist als 1 definiert bei Delphi. True ist also immer 1 wahr ist alles ungleich 0

Cyf 3. Jan 2009 18:46

Re: Boolean-Werte addieren?
 
Jaein, also ein Integer(true) wird sicher immer 1 sein, aber Delphi hat bei WinApi-Funktionen durchaus schonmal einen Boolean als Rückgabe, die Funktion gibt aber -1 zurück.

Reinhard Kern 3. Jan 2009 19:26

Re: Boolean-Werte addieren?
 
Zitat:

Zitat von Cyf
Jaein, also ein Integer(true) wird sicher immer 1 sein, aber Delphi hat bei WinApi-Funktionen durchaus schonmal einen Boolean als Rückgabe, die Funktion gibt aber -1 zurück.

Hallo,

das ist bei bitweiser Logik auch konsequent, da not 1 = $FFFF ist bei einem word usw. Genaugenommen sind das aber 16/32/... boolsche Operationen.

Gruss Reinhard

quendolineDD 3. Jan 2009 19:54

Re: Boolean-Werte addieren?
 
Das resultiert aber in der Verwendung von BOOLEAN und BOOL, welche sich eben in dem unterscheiden.
Delphi-Quellcode:
var
  a : BOOLEAN;
  b : BOOL;
  c ,
  d : INTEGER;
begin
  a := TRUE;
  b := TRUE;

  c := INTEGER(a);
  d := INTEGER(b);
end;
Geht mal Schritt für Schritt darüber und schaut euch an was herauskommt. Die Variable a, welche BOOLEAN deklariert ist, enhält INT 1. Aber b, welche als BOOL deklariert ist enthält INT -1.

Edit:

Um also nochmal zu der Frage des Threaderstellers zurückzukommen. Inkrementiere einfach eine Variable so oft, wie ein Wahrheitswert auftritt. Willst du noch die Gesamtzahl aller Werte wissen, so inkrementiere stets noch eine zweite Variable mit.

Delphi-Quellcode:
var
  BoolVal : BOOLEAN;
  TrueVals,
  SumVals : INTEGER;
{...}
if BoolVal then inc(TrueVals);
inc(SumVals);


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:58 Uhr.
Seite 1 von 3  1 23      

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