AGB  ·  Datenschutz  ·  Impressum  







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

Auto hält nicht an roter Ampel

Ein Thema von snears · begonnen am 12. Nov 2010 · letzter Beitrag vom 15. Nov 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

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

AW: Auto hält nicht an roter Ampel

  Alt 13. Nov 2010, 20:07
Ein Boolean ist 1 Byte groß und kann somit 256 Werte annehmen.

die Konstanten sind dabei so definiert:

für den delphieigenen Boolean
True = 1
False = 0

für die Windowstypen ByteBool (ShortInt), WordBool (SmallInt) und LongBool (Integer/LongInt)
True = -1
False = 0

wobei es bei der Prüfung aber so lautet
True <> 0
False = 0


Tja, nun fällt auch auf, warum es zu Problemen kommen kann
if myBoolean = True then ergibt if Byte(myBoolean) = 1 then ,
wärend if myBoolean then intern so if Byte(myBoolean) <> 0 then aussieht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#12

AW: Auto hält nicht an roter Ampel

  Alt 13. Nov 2010, 22:19
Ja, das ist schon klar; was ich meine ist auch bloß, dass hier das Zweiwertigkeitsprinzip der Aussagenlogik in der Delphi-Aussagenlogik nicht mehr erfüllt ist, zumindest dann nicht, wenn es mehr Wahrheitswerte als true und false gibt, oder wenn man mit true und false nicht alle ("2") Fälle abdecken kann. Als Unwissender kann man darüber stolpern. Vor allem als Mathematiker.
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#13

AW: Auto hält nicht an roter Ampel

  Alt 14. Nov 2010, 01:52
Zitat:
Vor allem als Mathematiker.
Ich verstehe nicht was einen Mathematiker hier von einem Normalbürger unterscheidet.
Eine Variable die auf einem Bit abgebildet werden müsste wird für TRUE je nach Gusto als $FFFFFFFF oder als 1 abgebildet, ein <> 0 dürfte in jedem Fall der Überprüfung standhalten. Interessanter finde ich dass folgende Konstrukte funktionieren...
Delphi-Quellcode:
const
 true=0=1;
var
  b:Boolean;
begin
  b := true;
  if b then Showmessage('true') else Showmessage('False');
end;

wenn man sich vorstellt ein Drittanbieter könne eine derartige Deklaration verwenden....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#14

AW: Auto hält nicht an roter Ampel

  Alt 14. Nov 2010, 09:48
Ok, das ist schon heftig .
Und es wird ein bisschen off-topic...
Interessant finde ich, dass true offenbar kein reserviertes Wort ist. Die Frage ist: verwendet Delphi jetzt lokal immer Dein selbstdefiniertes true? Sollte es eigentlich, gel?

Naja, für logische Ausdrücke kann man ja immerhin stets die Ausdrücke (1=1) für wahr und (0=1) für falsch verwenden, natürlich ohne cast...

Caps
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Auto hält nicht an roter Ampel

  Alt 14. Nov 2010, 09:57
True und False sind Konstanten.
Und innerhalb eines anderen Gültigkeitsbereich kann man Typen, Konstanten und Variablen lokal neu deklarieren.

PS: Es gibt doch 2 Zustände?
False und not False aka =0 und <>0.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#16

AW: Auto hält nicht an roter Ampel

  Alt 15. Nov 2010, 10:01
PS: Es gibt doch 2 Zustände?
False und not False aka =0 und <>0.

Ja, aber hier (Delphi) kann gelten:
Code:
a := 2; // (a = not false) ist wahr
b := 1; // (b = not false) ist wahr

c := (a = b);
// c ist falsch, in der Aussagenlogik wäre c aber wahr (nur wenn a, b Wahrheitswerte sind),
// weil immer gilt (not false = not false).
// Weil es in der Aussagenlogik keine verschiedenen "not false" geben kann.
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

AW: Auto hält nicht an roter Ampel

  Alt 15. Nov 2010, 10:15
PS: Es gibt doch 2 Zustände?
False und not False aka =0 und <>0.

Ja, aber hier (Delphi) kann gelten:
Code:
a := 2; // (a = not false) ist wahr
b := 1; // (b = not false) ist wahr

c := (a = b);
// c ist falsch, in der Aussagenlogik wäre c aber wahr (nur wenn a, b Wahrheitswerte sind),
// weil immer gilt (not false = not false).
// Weil es in der Aussagenlogik keine verschiedenen "not false" geben kann.
Hier werden aber gerade Birnen mit Äpfel verglichen.
Code:
a := 2
Bool( a ) => not false

( a = b ) => false
( Bool( a ) = Bool( b ) ) => true
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#18

AW: Auto hält nicht an roter Ampel

  Alt 15. Nov 2010, 10:52
Klar, mit einem expliziten Cast funktioniert's natürlich.
Aber ohne Cast kriegt man Probleme, das ist eigentlich schon alles.
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#19

AW: Auto hält nicht an roter Ampel

  Alt 15. Nov 2010, 11:26
Wenn es schon ein Auto Objekt gibt, warum gibt es kein Ampel Objekt?
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Auto hält nicht an roter Ampel

  Alt 15. Nov 2010, 12:11
Und vergiß das Straßenobjekt nicht.

es geht auch mit rein logischen Mitteln
if a <> b then = if a xor b then if a = b then = if (a and b) or (not a and not b) then , if not (a xor b) then
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 07:53 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