Hallo Zusammen, ich bin soeben in einer Situation, wo es präzise darauf ankommt wie der Compiler von Bascom And/Or verknüpft. Theoretisch sollte er das nach den Regeln der Boolschen Algebra machen. Leider hab ich in Bascom schon öfters festgestellt das dies nicht so ist. Argument1 und Argument2 oder Argument3 und Argument4. Laut boolscher Algebra müsste Argument1 und 2 erfüllt sein damit der Ausdruck wahr wird oder Argument3 und 4. Wie schaut die Syntax dazu in Bascom aus? if argument1 and argument2 or argument3 and argument4 then ... oder löst der Compiler das von Links nach Rechts auf und ich müsste für argument3 und 4 eine weitere Instanz bilden. argument_sub = argument3 and argument4 if argument1 and argument2 or argument_sub then ... Hab zu dem Thema nichts gescheites gefunden. Hoffe ihr könnt mir eine eindeutige Aussage dazu machen. Lg
Eine eindeutige Aussage kann ich nicht machen, aber wenn es wirklich wichtig ist, probier es entweder in einem Beispielprogramm aus, am einfachsten mit Wertetabelle, oder einfacher ist es, einfach Klammern zu setzen.
Bascom311 schrieb: > Leider hab ich in Bascom schon > öfters festgestellt das dies nicht so ist Diese Aussage halte ich für gewagt... Bascom311 schrieb: > Hoffe ihr könnt mir eine > eindeutige Aussage dazu machen Was sagt den die BASCOM-Hilfe? Bascom311 schrieb: > Laut boolscher > Algebra Also ich kenn' es so, dass man immer um zwei Operanden eine Klammer setzt, da man ansonsten definieren müsste was stärker bindet...
Kann man in BASIC nicht klammern? Dann wäre der Code eindeutig und danach auch lesbar. Wenn man nicht klammern kann, würde ich eine andere Sprache nehmen.
Klaus Wachtler schrieb: > Wenn man nicht klammern kann, würde ich eine andere Sprache nehmen. Wenn er sich aber an BASCOM klammert...?
Klaus Wachtler schrieb: > Kann man in BASIC nicht klammern? In BASIC schon, aber Bascom ist ... da etwas eigenwillig, gerade was die "Komplexität" von Statements betrifft.
Ich hatte auch mal ein BASIC in der Hand, da konnte man in Anweisungen (Zuweisungen) zwar beliebig komplexe Ausdrücke mit Klammern hinschreiben, aber nicht in IF-Bedingungen. Deshalb mein Argwohn neben der üblichen BASIC-Antipathie...
Danke für die vielen schnellen Antworten. Wie schon gesagt wurde, ist mit Klammern in Bascom nicht weit her. Ergo in If-Anweisungen geht das nicht. In der Bascom Hilfe steht darüber auch nichts eindeutig bzw. konnte ich nichts finden. Ein Beispiel Programm wäre natürlich eine Möglichkeit. Jedoch lässt das nicht immer eindeutig auf die Arbeitsweise des Compilers schließen. Gerad bei vielen Operanten können dabei maskierte Ergebnisse entstehen. Zum Thema möchte ich IDE und Sprache wechseln. Keine Ahnung was das zur Sache tut. ;) Bascom hat viel Vor- und Nachteile. Das ist bei MP-Lab oder AVR-Studio auch nicht anders. Was wo Punktet kann man natürlich diskutieren, gehört aber sicher nicht in diesen Thread. Deswegen IDE: Bascom Sprach: Basic lg
Das Problem mit Bascom ist halt, daß es nur ein recht rudimentäres Subset von dem implementiert, was man so gemeinhin Basic nennt. Wenn man sich dessen bewusst ist, dann kann man sicherlich auch mit Bascom zu Ergebnissen gelangen, aber wenn einem diese Beschränkungen eben nicht bekannt sind, dann rennt man gelegentlich gegen eine Wand. Damit und mit der Tatsache, daß Bascom Inselwissen* ist, wirst Du leben müssen. *) Abgesehen von einer wohl nicht mehr besonders gepflegten Version für MCS-51 gibt es Bascom ausschließlich für AVRs. Andere Controller, seien es PICs, MSP430 oder irgendwelche ARMe, lassen sich damit nicht nutzen, und es existieren auch keine nur vage ähnlichen Werkzeuge.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.