1140 farbcode Farbcodierung auf Wiederstaenden
Kategorie:ET
Klasse:mittel
Eingabe:Strings
Ausgabe:siehe Spez
Abzugebende Files: farbcode.txt, farbcode.java

Kurzbeschreibung:

Ein Widerstandswert wird in den entsprechenden Farbcode konvertiert.

Allgemeine Hinweise:

Aufgabenstellung:

Widerstände sind elektronische Bauteile, deren einzige Aufgabe darin besteht, dem elektrischen Strom Widerstand zu leisten (wie der Name schon sagt).

Der Wert eines Widerstands wird in Ohm ( ) gemessen und üblicherweise durch Farbstreifen gekennzeichnet:

Die ersten drei Stellen beinhalten die drei signifikantesten (am weitesten links stehenden) Ziffern des Widerstandswertes, die vierte den Multiplikator (vergleichbar der Exponent-Mantisse-Darstellung für Fließkommazahlen).

Dazu gibt es folgende Tabelle:

Bedeutung der Farben:

Farbe Abkürzung Ziffer Multiplikator
schwarz sw 0 1
braun br 1 10
rot rt 2 10^2
orange or 3 10^3
gelb ge 4 10^4
gruen gn 5 10^5
blau bl 6 10^6
violett vi 7 10^7
grau gr 8 10^8
weiss ws 9 10^9
gold go - 0.1
silber si - 0.01

Die Aufgabe Ihres Programmes ist es, einen Widerstandswert einzulesen und den entsprechenden Farbcode auszugeben.

Falls der Widerstandswert nicht genau kodiert werden kann, ist der nächstgrößere und der nächstkleinere Farbcode auszugeben.

Der erste Farbring muß immer <> 0 sein (100 Ohm ist also [br sw sw sw] und nicht [sw sw br rt] zu kodieren. In die Verlegenheit, 0 Ohmzu kodieren, werden Sie nicht kommen, da es derartige Widerstände nicht gibt (maximal als Supraleiter) und diese auch keinen Zweck hätten (siehe: Sinn eines Widerstands).

Eingabedaten:

Lesen Sie einen String ein, der den zu kodierenden Zahlenwert enthält. Dieser kann als normale Zahl, z.B. 147 4700 1000000 6.8, eingegeben werden oder in der Form "Ziffern(n) Multiplikator Ziffer(n)". Der Multiplikator kann "M" für Mega (10^6), "K" für Kilo (1000) oder "R" für 1 sein und erfüllt gleichzeitig die Aufgabe eines Kommapunktes.

Beispiele: 2M3 = 2.3*10^6 = 2300000; 4K55 = 4.55*1000 = 4550; 18R = 18*1 = 18.

Widerstandswerte kleiner als 1 Ohm sind nicht zulässig. Die obere Schranke ergibt sich aus dem maximal codierbaren Widerstand.

Ausgabedaten:

Bei korrekten Eingabesätzen soll Ihr Programm den Farbcode des eingelesenen Widerstands ausgeben. Dabei sollen die einzelnen Farben durch die oben aufgeführten Abkürzungen angegeben werden; die einzelnen Farben sind durch Leerzeichen zu trennen, der gesamte Code ist in eckige Klammern zu setzen.

Achtung: Zwischen eckiger Klammer und erster bzw. vierter Farbe darf kein Leerzeichen stehen!

Falls der Widerstand nicht genau codiert werden kann, so ist zuerst der nächsthöhere, dann der nächstniedrigere Farbcode auszugeben. Die beiden Codes sind durch ein Leerzeichen zu trennen.

Geben Sie zum Schluß einen Zeilenvorschub aus.

Fehlerbehandlung:

Sind die eingegebenen Daten inhaltlich nicht korrekt , so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.

Beispiele:

Eingabedaten
4K7

Ausgabedaten
[ge vi sw br]

Bemerkung: Diese Beispiele dienen nur zur Verdeutlichung der Spezifikation und müssen nicht korrekt formatiert sein. Die korrekte Formatierung entnehmen Sie bitte dem mitgelieferten Outputfile. Zum Testen Ihrer Lösung können Sie aus den mitgelieferten Eingabedaten wie folgt eine Ausgabedatei erzeugen:

java farbcode < farbcode.i1 > farbcode.out1

Das erzeugte File farbcode.out1 können Sie dann mit dem mitgelieferten Outputfile farbcode.o1 vergleichen.