Forum: Mikrocontroller und Digitale Elektronik And Or Prioritäten


von Bascom311 (Gast)


Lesenswert?

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

von Dussel (Gast)


Lesenswert?

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.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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...

von Klaus W. (mfgkw)


Lesenswert?

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.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Klaus Wachtler schrieb:
> Wenn man nicht klammern kann, würde ich eine andere Sprache nehmen.

Wenn er sich aber an BASCOM klammert...?

von Klaus W. (mfgkw)


Lesenswert?

:-)

Wenn er es braucht, sollte er LISP nehmen

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Klaus W. (mfgkw)


Lesenswert?

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...

von Bascom311 (Gast)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.