Go Down

Topic: Neuling Grundlagen (Read 1 time) previous topic - next topic

upsinfonotice

Guten Abend,

ich beschäftige mich etwas mit dem Arduino. Die Vorlagen nachzubauen und zu modifizieren gehen recht gut, nur jetzt wollte ich etwas eigenes umsetzen und komm nicht so recht weiter.
Ich möchte die Zahlen 1 3 9 durchrechnen lassen. Jede Zahl darf nur einmal vorkommen aber immer unterschiedlich mit *-+/ zusammengesetzt.
Ich finde da keine Möglichkeit zwischen den Zahlen eine Variable zu setzen die nach jedem loop ausgetauscht wird.

Mein Ansatz wäre folgender:
Schritt 1
Die Zahlen haben eine fixe Reihenfolge und nur die Operatoren werden variabel deklariert. 
Nur wie kann ich diese untereinander austauschen?

Gibt es schon jemand der sich mit Möglichkeiten oder Wahrscheinlichkeiten bei Arduino auseinandergesetzt hat?

Gruß,
Peter

Joghurt


Ich möchte die Zahlen 1 3 9 durchrechnen lassen. Jede Zahl darf nur einmal vorkommen aber immer unterschiedlich mit *-+/ zusammengesetzt.

Ich hab KEINE Ahnung was Du damit gemeint hast.  ;)

upsinfonotice

Na alle Möglichkeiten die man errechnen kann aus 1_3_9 wenn immer nur der Operator getauscht wird.
Beispiel:
1+3+9= 13
1+3*9= 28
usw.

Pogg

hm...
ich würde eine zufallszahl generieren und es dann in einer switch case bedingung abarbeiten.. bisl aufwending aber würde gehen ^^


ungefähr so

switch (zufallszahl) {
case 1: ..... 


müsstest natürlich die zufallszahl begrenzen .. und mit + - / * haste 4^2 möglichkeiten falls ich mich nicht irre  (;

also zufallszahl bis 16 begrenzen
und dann jede case zeile einzeln schreiben...

denke das klappt so (;


Joghurt

#4
Jul 17, 2011, 08:09 pm Last Edit: Jul 17, 2011, 08:13 pm by Joghurt Reason: 1
Ich würd was in der Art machen:
Code: [Select]

double calculateResult(double a, double b, int operator) {
 if (operator%4==0)
   return a+b;
 if (operator%4==1)
   return a-b;
 if (operator%4==2)
   return a*b;
 if (operator%4==3)
   return a/b;
}

loop() {
 for (int t=0; t<16;t++) {
//...
   double result = calculateResult(calculateResult(1, 3, t/4), 9, t);
//...
 }
}

Pogg

Jo des vom Joghurt ist echt nice.. wär ich auch net drauf gekommen (;

upsinfonotice

danke für die Hilfe, nur hab ich meine Probleme das nachzuvollziehen.
Ich arbeite mit dem Buch Arduino Praxiseinstieg
Darin kommt ein teil der Befehle von die gar nicht vor.
Hat jemand ein Buchtip in dem alle oder nahezu alle Befehle stehen?

Du schreibst:
....(operator%4==0)
% und == kommen hier überhaupt nicht gemeinsam vor.
% = modulo / == ist gleich

Joghurt


% und == kommen hier überhaupt nicht gemeinsam vor.
% = modulo / == ist gleich

(t%4==0) bedeutet soviel wie "Wenn der Restwert der Ganzzahldivision von t durch 4 gleich Null ist, dann mache folgendes", was zutrifft wenn t 0, 4, 8 oder 12 ist.

Gleiches mit "==1", das trifft dann bei 1, 5, 9 und 13 zu.

Und so weiter... ;)

upsinfonotice

ok danke,  damit werde ich mich heute Abend in ruhe beschäftigen.
Hast du ein Buch-Tip für mich?

Gruß,
Peter

Joghurt

Eigentlich nicht, ich persönlich fand die Learing-Seite auf arduino.cc mehr als ausreichend, seither benutz ich zum Nachschlagen die Reference-Seite bzw. den entsprechenden Link im Menü der Entwicklungsumgebung...

Allerdings konnte ich schon vor dem Arduino programmieren, bin also nicht das beste Beispiel für einen Anfänger... ;)

Go Up