Farbcodierung: Widerstände Variablen auswählen
-
Hallo Commmunity,
ich bin ein blutiger Anfänger, was C++ angeht. Mache zu Zeit mein Abitur und im Fach Anwendungsentwicklung sollen wir ein Programm programmieren, welches ein immer auftauchendes Problem beseitigt. Mir ist da die Farbcodierung eines Widerstandes eingefallen (Die Ringe auf dem Widerstand). Ich habe das Grundgerüst dieses programs bereits programmiert, doch ich stoße auf eine Hürde wobei ihr mir vielleicht helfen könnt. Ich habe für jede Farbe eine Variable und Ihren Wert fesgelegt. Z.B. rot=2
So nun wollte ich, dass der benutzer die erste linke Farbe eingibt. Die Eingabe dieser Variable soll das Programm behalten und nachdem die dritte Farbe eingegeben wurde, soll er die 3 eingegebenen Variablen wieder ausgeben.
Hier mal ein Beispiel:
Bitte geben Sie die erste Farbe ein: rot
Nun bitte die zweite Farbe: gelb
Und nun die letzte Farbe: blau
Der Widerstand beträgt: 24000000 OhmIch muss dazusagen, dass wir nur Konsolenanwendungen programmieren. Wir machen das alles mit CodeBlocks.
Ich hoffe Ihr könnt mir helfen.
Gruß Alex
-
Du hast beschrieben, was dein Programm machen soll, aber die Hürde habe ich jetzt nicht gesehen.
Ich verstehe auch nicht, wieso das Programm die Farben wieder ausgeben soll. Suchst Du nach einem Container, welcher Dir die einzelnen Eingaben speichert?
-
Hallo,
die Hürde für mich ist die Aufforderung zur Eingabe einer Farbe sowie deren Speicherung. Ich habe wie gesagt jeder Farbe als Variable definiert. d.h. rot=2.
Nun wenn die erste Farbe rot ist soll der Benutzer nach Aufforderung rot eingeben können. Das Programm speichert diese Eingabe und wenn die 3. Farbe (der Multiplikator) eingegeben wurde rechnet das Programm es aus und gibt es wieder also: (farbe 1 Farbe 2)*Multiplikator Farbe 3Edit: Ich möchte, dass der Benutzer mit cin >> eine der vorher von mir definierten Farben und Wertigkeiten eingeben kann.
-
Um Zeichenketten zur Laufzeit mit Zahlenwerten zu verknüpfen bietet sich ein assoziativer Container wie
std::map<std::string, int>
an. Hier kannst du eine Referenz mit vielen Beispielen zum map-Template finden:
http://www.cplusplus.com/reference/stl/map/
-
alextreme89 schrieb:
die Hürde für mich ist die Aufforderung zur Eingabe einer Farbe sowie deren Speicherung.
Entscheide dich wie du es machen willst, entweder du fragst nach Wörtern (std::cin >> std::string-variable) und anschließend benutzt die die Methoden der std::string Klasse um die Eingabe auszuwerten, oder du bietest eine Art Menü an und speicherst die Eingaben zB in einem std::vector<int> (alternativ wenn ihr das hattet als int eingaben[6];
Mögliche Farben: schwarz(0), braun(1), rot(2), orange(3), gelb(4),grün(5),blau(6),violett(7),grau(8),weiß(9),silber(11),gold(10) Bitte Ringfarbe von links nach rechts als Nummer eingeben, beliebieger Buchstabe startet die Kalkulation - nach 5 Ringen startet Kalkulation alleine.
Schleife von n=1 bis 5, Ausgabe
Ausgabe n + "1.Ring:" und Eingabe mit cin, testen ob cin noch gültig (wenn nicht dann wars wohl ein Buchstabe) sonst speichern per push_back oder array
Wenn schon 3,4 oder 5 Eingaben kamen bevor cin ungültig wurde, ausrechnen + ausgeben - falls an erster oder zweiter eingabe gold/silber kommt-> fehler.usw...