char array
-
moin moin erstmal,
ich bin im programmieren noch nicht so begabt und sitz seit stunden an dieser einen aufgabe und komme einfach nicht auf die loesung.
wir sollen ein programm schreiben, in dem der benutzer die farben eines widerstandes eingibt und der dazu entsprechende widerstandswert ausgegeben wird.
das wuerde ich soweit hinbekommen, doch der professor will:"Legen Sie die vorgegebenen Farbkürzel so in einem zweidimensionalen char-Array an, dass ihre
Position darin (also der Index, der bei 0 beginnt) direkt ihrem numerischen Wert entspricht
(Hinweis: Die Farbe „sw“ steht demzufolge an erster Stelle im Feld). Auf diese Weise können Sie
den numerischen Wert später einfach bestimmen, indem Sie in einer Schleife die Benutzereingabe
nacheinander mit den Feldinhalten vergleichen und bei einer Übereinstimmung anhand des
Schleifenzählers sofort wissen, welchem Wert die Farbe entspricht."das mit dem zweidimensionalen array bekomm ich einfach nicht hin. bzw. ich habe keine ahnung wie ich da ueberhaupt ansetzen soll.
die switches und so sollten kein problem darstellen. nur das mit dem feld treibt mich schier zur verzweiflung.ich habe mal die gesamte aufgabenstellung hochgeladen, falls aus meinem text nicht klar wurde, was ich meine

http://www.fh-augsburg.de/~ugod/Uebung5.pdf
vielen dank schonmal an alle.
gruß ugod
-
Grundlage: ein char, kann auch nur ein Buchstaben beinhalten, somit benötigst du zwei chars für einen Wert, d.h. eine zweite "Dimension", denn der Index soll ja der Wertziffer entsprechen,bsp.:
char Eingabe[12][2]; // somit sind zwölf mögliche Farben mit je zwei chars als Kennzeichen (Silber fehlte in der Aufzeichnung)das heißt, die init. sieht so aus:
char Eingabe[12][2]= {{'s','w'}, {'b','r'}, {'r','t'}; //usw.danach kannst du den User befragen, dann überprüfst du in einer Schleife ob es existiert, wenn ja speicherst du die zugehörige Kennziffer( zähler in der Zählschleife) in einer extra Variable, den Multiplikator nimmst du mit der funktion pow(zahl, exponent).
so müsste es ungefähr aussehen und funktionieren.
Die Aufgabe werde ich mir merken, ist eine schöne Übung
.
-
Du musst dann allerdings manuell (also immer beide Zeichen) vergleichen, strcmp funktioniert nur bei nullterminierten Strings.
-
Na ja nach dem folgenden Muster eig. leicht gelöst.:
string vergleichen; for (int i = 0; i <12 ; i++) { vergleichen=Eingabe[i][0]+Eingabe[i][1]; if (vergleichen==Eingegebenes) { Ring[0] = i; } }hierbei habe ich nicht ausprobiert ob es funktioniert, man müsste vom theoretischen her noch eine Schleife außen rumbauen, die die Ringnummer abspeichert.
-
erstmal vielen dank an euch beide.
das könnte der anstoß gewesen sein, den ich gebraucht hab.
werde mich gleich mal dransetzen und das ganze ausprobieren.
danke nochmal
gruß
ugod