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 1 von 3  1 23      
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#1

Boolean-Werte addieren?

  Alt 2. Jan 2009, 17:35
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Boolean-Werte addieren?

  Alt 2. Jan 2009, 17:37
Da würde ich nicht von Addition reden. da wird man eher Zählen müssen
Markus Kinzler
  Mit Zitat antworten Zitat
Gentleman

Registriert seit: 29. Sep 2004
302 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Boolean-Werte addieren?

  Alt 2. Jan 2009, 18:15
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.
Lennard
Der Vorteil der Klugheit besteht darin, dass man sich dumm stellen kann. Das Gegenteil ist schon schwieriger. (Kurt Tucholsky)
  Mit Zitat antworten Zitat
monta

Registriert seit: 18. Okt 2004
Ort: Dresden
141 Beiträge
 
#4

Re: Boolean-Werte addieren?

  Alt 2. Jan 2009, 18:19
//ok, ich war zu langsam
Johannes M.
.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Boolean-Werte addieren?

  Alt 2. Jan 2009, 18:51
Genau genommen ist False als null definiert und true als alles andere. Wenn jetzt eine Funktion 258 als wahr zurückgibt ...
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#6

Re: Boolean-Werte addieren?

  Alt 3. Jan 2009, 13:03
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
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Boolean-Werte addieren?

  Alt 3. Jan 2009, 13:10
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
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Cyf

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

Re: Boolean-Werte addieren?

  Alt 3. Jan 2009, 18:46
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.
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#9

Re: Boolean-Werte addieren?

  Alt 3. Jan 2009, 19:26
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
  Mit Zitat antworten Zitat
quendolineDD

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

Re: Boolean-Werte addieren?

  Alt 3. Jan 2009, 19:54
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);
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 22:08 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