widerstands farbcode ausrechnen / c++ programm



  • Hallo, ich möchte (bzw. muss) ein Programm in c++ schreiben, welches mir den 4er Farbcode von Widerständen ausrechnet.
    So weit bin ich bis jetzt gekommen:

    #include "stdafx.h"
    #include <iostream>
    using namespace std;

    int main()
    {
    cout << "Bitte geben Sie die Farbe des ersten Ringes ein!"; //Eingabe der Farbcodes
    cin >> farbcode1;
    cout << "Bitte geben Sie die Farbe des zweiten Ringes ein!";
    cin >> farbcode2;
    cout << "Bitte geben Sie die Farbe des dritten Ringes ein!";
    cin >> farbcode3;
    cout << "Bitte geben Sie die Farbe des vierten Ringes ein!";
    cin >> farbcode4;

    return 0;
    }

    Weiter weis ich mit meinem c++ Wissen nicht.

    Vorgestellt habe ich mir das Programm so:
    User gibt den Farbcode von links nach rechts ein
    Programm muss Wissen das z.B. rot den Wert 2 hat, grün den Wert 5 usw...
    Und eigentlich muss das Programm dann die ersten drei Farben einfach nur aneinanderhängen und die vierte extra ausgeben.


  • Mod

    Was genau ist deine Frage?

    Hast du technische Schwierigkeiten? Funktioniert dein Programm nicht korrekt? Lässt es sich nicht übersetzen? (Tipp: Es lässt sich derzeit nicht übersetzen, da es unvollständig ist)

    Hast du Probleme bei der Ablaufplanung? Weißt du nicht, mit welchen geheimen Grundschulrechenoperationen man von den Zahlen 2 und 5 auf die Zahl 25 kommen kann?

    Stell konkrete Fragen! Siehe: Du brauchst Hilfe?



  • die map M mußt du noch erweitern um die restlichen Farben. Nach dem Start die Farben eingeben und nach jeder Farbe <return> drücken. Ende der Farbeingabe durch Eingabe einer ungültigen Farbe.

    #include <iostream>
    #include <map>
    using namespace std;
    map<string, int> M = { { "schwarz", 0 }, { "rot", 2 }, { "grün", 5 } };
    int convert(string Color){
        auto i = M.find(Color);
        if (i == M.end()){ cout << "Unbekannte Farbe" << endl; return -1; }
        else return i->second;
    }
    
    int main()
    {
        string Ring;
        int Wert;
        while (cin >> Ring && convert(Ring) >= 0)
            Wert = 10*Wert + convert(Ring);
        cout << "Wert=" << Wert << endl;
    }
    

Anmelden zum Antworten