Seite 1 von 6
PB4 Interpretation bool'scher Ausdrücke
Verfasst: 13.04.2006 23:33
von jear
Code: Alles auswählen
a = 65
b = (a > 60)
Debug b ; Ergebnis 60, leider noch immer noch Nonsens !
Debug #False Or (a > 60) ; Ergebnis 1, richtig
Debug #False Or (a < 60) ; Ergebnis 0, richtig
Bin leicht geplättet!
Gegenüber PB 3.9 hat sich offenbar im Sinne des Themas überhaupt nichts getan.
Will PB nicht erwachsen werden?
Verfasst: 14.04.2006 10:01
von Kaeru Gaman
ich war so frei, die frage mal im englischen forum zu stellen.
http://www.purebasic.fr/english/viewtopic.php?t=20594
Ich erntete Spott von anderen Usern, Ignoranz von Freak, und
Fred hielt es offenbar für unter seiner Würde, überhaupt zu antworten.
...wahrscheinlich hat er aber einfach so sehr den Überblick verloren, dass er überhaupt nicht in der Lage wäre, das zu implementieren, selbst wenn er wollte. Dann hat er halt einfach nicht den Mumm, das zuzugeben.
Verfasst: 14.04.2006 12:54
von mk-soft
hat wohl im Englischen Forum eine welle ausgelöst.
Mein Englisch ist leider nicht so gut wie es sein müßte.
Nun zur Interpretation von Boolean. Es ist wohl besser den TRUE als ungleich Null zu betrachten. Ich habe die Erfahrung gemacht das verschiedene Systeme für den Wert TRUE unterschiedliche Werte zuweist.
In der Regel ist Boolen ein 32 Bit Wert. Somit kam folgende Werte zu Tage:
-1, +1, Variant Bool 65535, etc ...
FF

Verfasst: 14.04.2006 13:28
von jear
Die dortige Diskussion ist ziemlich unglücklich.
Die als Beweis gedachten Beispiele sind eher zum Beweis des Gegenteils geeignet.
Die trickreiche Vermischung von arithmetischen und Bool'schen Operationen führt auch nicht zu wirklich besser lesbarem Kode.
Außerdem ist sie tatsächlich abhängig davon, welche Werte #True und #False in einer Sprache annehmen.
Mir geht es vielmehr um ganz schlichte Steuerungsstrukturen wie sie immer und überall vorkommen und in denen #True und #False in ihrer ureigensten Bedeutung genutzt werden:
Code: Alles auswählen
If a > 60
DisableGadget(#ggg, #True)
Else
DisableGadget(#ggg, #False)
EndIf
Warum nicht einfach:
Verfasst: 14.04.2006 14:29
von Helle
@mk-soft: Da finde ich Microsofts Interpretation (bzw.Festlegung) logisch: TRUE = -1. Begründung (von Microsoft): Wahr ist, wenn ALLE Bits gesetzt sind (Byte, Word usw. egal) und bei vorzeichenbehafteter Auswertung ist das eben -1.
Weiterhin sollte man dann setzen: FALSE = NOT TRUE.
Damit müssten eigentlich alle gut leben können, aber leider...
Siehe dazu u.a. Microsoft-Artikel-ID 42980 (auch aus anderen Gründen lesenswert!).
Frohes Osterfest!
Helle
Verfasst: 14.04.2006 14:43
von Kaeru Gaman
was wirklich logisch ist, und nicht auf dem mist von Winzigweich gewachsen.
logische beweisführung:
1. Satz: #False = NOT #True
2. Satz: #False = 0
=> #True = NOT 0 = alle bits gesetzt = -1
...war auch schon aufm C64 so, aber anscheinend is das ja was, womit Fred nicht klar kommt...
nicht nur, daß bei ihm #True = 1 ist, er sieht sich ja außerstande auch nur eine fehlermeldung zu integrieren, geschweige denn die funktionalität...
Verfasst: 14.04.2006 14:55
von Leonhard
Kaeru Gaman hat geschrieben:...wahrscheinlich hat er aber einfach so sehr den Überblick verloren, dass er überhaupt nicht in der Lage wäre, das zu implementieren, selbst wenn er wollte. Dann hat er halt einfach nicht den Mumm, das zuzugeben.
Warum gibt es dann nicht ein Forumabschnitt im Englischen Forum, wo man verbesserungsvorschläge abgeben kann???
Verfasst: 14.04.2006 15:00
von Leonhard
Kann man für diese kleine änderung keinen Pearser schreiben???
Verfasst: 14.04.2006 15:03
von Green Snake
Gibts doch:
Feature Requests and Wishlists
Got an idea for enhancing PureBasic? New command(s) you'd like to see?
Verfasst: 14.04.2006 15:58
von Kaeru Gaman
Leonhard hat geschrieben:Warum gibt es dann nicht ein Forumabschnitt im Englischen Forum, wo man verbesserungsvorschläge abgeben kann???
wenn du dich mal bequemst, auf den link in meinem ersten post zu klicken,
wirst du bemerken, dass ich genau dort meine anfrage gestellt habe,
und dass es eben diese reaktion dort war, die mich zu meiner aussage hier bewegt hat.
da waren nur 6 posts über deinem, ich denke nicht, dass es zu viel verlangt wäre, die auch zu lesen.
außerdem gibt es einen edit-button, also ist es unnötig, zwei posts direkt hintereinander zu schreiben.
(außer, es ist einige zeit vergangen, und man will darauf hinweisen,
dass informationen im thread hinzugekommen sind)