Forum: Mikrocontroller und Digitale Elektronik Basic Stamp Hilfe!!


von joschi (Gast)


Lesenswert?

Hallo,

arbeite seit kurzem mit Basic Stamp (BS2sx)und muss ein "einfaches" 
Mittelwertbildungs-Programm schreiben. Da ich sehr neu und unwissend in 
diesem Gebiet bin, tue ich mir da sehr schwer...

Dabei werden Werte von extern eingespeist (im Wertebereich von insgesamt 
bis max. 10 Words, also 10*65536) und ich muss dann ein Programm 
schreiben, der ein Mittelwert davon bildet.
Mit der Doppelmultiplikation (**) muss ich ja dort zwangsweise auch 
arbeiten, da die Werte wie schon oben genannt größer als nur ein Word 
sind. Zudem wurde mir gesagt, dass es eine IF-Schleife sein soll.

Im Vordergrund steht die "Mittelwertbildung", der Weg dorthin, also wie 
das Programm aussieht, ist Nebensache.

Kann mir da jemand helfen???? Ich verzweifle sonst!

von Karl H. (kbuchegg)


Lesenswert?

joschi schrieb:

> sind. Zudem wurde mir gesagt, dass es eine IF-Schleife sein soll.

If ist keine Schleife.

Ein if wählt aus, ob Aktionen abhängig von einer Bedingung ausgeführt 
werden oder nicht.

Das Wesen einer Schleife besteht aber darin, dass Anweisungen wiederholt 
abgearbeitet werden. Das ist aber etwas vollkommen anderes als das was 
ein if macht.

Und ich sehe ehrlich gesagt auch nicht, wie ein if bei einer 
Mittelwertbildung eine wesentliche Rolle spielen könnte.

> Im Vordergrund steht die "Mittelwertbildung", der Weg dorthin, also wie
> das Programm aussieht, ist Nebensache.

Das ist es nie! Es ist nie Nebensache! In einer Autowerkstatt ist es 
auch nicht Nebensache, ob da viel Klumpert rumliegt oder nicht.

Aber mal davon abgesehen: Wie berechnest DU denn einen Mittelwert, wenn 
du diese Aufgabe gestellt bekommst?
Du wiegst 10 Säcke Erdäpfel ab. Die Waage zeigt nacheinander an:
   9.87kg, 10.02kg, 9.91kg, 10.2kg, 9.78kg,
   9.89kg,  9.95kg, 9.92kg, 10.4kg, 10.21kg

Welches ist der Mittelwert? Wie schwer ist 'im Mittel' ein Sack 
Kartoffel? Was tust du? Was rechnest du? Wie lautet deine Antwort auf 
die Frage: Der Bauer behauptet, dass seine Säcke 'im wesentlichen' 10kg 
wiegen, aber natürlich nicht alle gleich schwer sind und es Ausreißer 
nach oben und nach unten geben kann, die sich aber aus seiner Sicht 
ausgleichen. Stimmt das basierend auf den vorliegenden Daten, oder 
betrügt er?

Um ein Programm schreiben zu können, musst du selbst erst mal in der 
Lage sein das Problem händisch zu lösen. Und anhand dieses händischen 
Lösungsweges ergibt sich oft eine ganz gute Idee, wie man dieselbe 
Problemlösestrategie in einem Programm umsetzen kann. Daher ist es immer 
gut, sich zunächst die Frage zu stellen: Wie löse ICH eigentlich so ein 
Problem mit nichts anderem als Papier und Bleistift.

von joschi (Gast)


Lesenswert?

Erst mal vielen Dank Herr Buchegger!

Sie haben Recht - ich korrigiere mich - ich benötige eine 
Mittelwertbildung evtl. mittels einer Schleife beim Basic Stamp.

Eine Mittelwertbildung ist nicht das Problem - Werte zusammenaddieren 
und durch die Anzahl (in Ihrem Fall 10) dividieren. Mittelwert von Ihrem 
Bsp. ist 10.015kg.

Diese Schleife, die ich meinte, kann eine if Anweisung beinhalten. Man 
könnte sie z.B. so einbinden (hier mit Word Variablen):

A=50 000
B=20 000
C=30 000
D=98 000usw.

wenn ich A(=50 000) und B(=20 000) zusammen addiere, dann kommt 
(70000-65536=) 4464 raus, da der max. Wert eines Words 65536 ist und ab 
dort fängt er wieder von Null an und das ist ja falsch.
Beim Schreiben der Schleife, in der das zusammenaddiert werden soll, 
kann man dann aber sagen:
Zähle A und B zusammen, wenn (if) der Wert 65536 überschritten wird, 
soll eine 1 (wenn 1 mal überschritten), oder eine 2 (wenn zwei Mal 
überschritten) usw. dazu ausgegeben werden.

z.B. für (A+B)
E=4464
W=1.
Jetzt kann ich sagen
((W*65536)+E)/2 und habe somit den Mittelwert von A und B.
So müsste es gehen soweit ich weiß...und hier schreibe ich euch an.

Mit dem "Im Vordergrund steht die "Mittelwertbildung", der Weg dorthin, 
also wie das Programm aussieht, ist Nebensache" habe ich einfach sagen 
wollen, dass, wenn jemand eine andere Art hat sowas zu schreiben (also 
nicht mit einer Schleife), soll er es einfach tun. Mir ist vollkommen 
bewusst, dass das nicht UNWICHTIG ist. Ich möchte aber einfach mal so 
ein Beispielprogramm sehen und mir für mich wichtige Sachen daraus 
ziehen.

Können Sie mir hier konkret helfen oder nicht?

von Karl H. (kbuchegg)


Lesenswert?

joschi schrieb:

> Können Sie mir hier konkret helfen oder nicht?

http://www.emesystems.com/BS2math6.htm

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.