Lerne und übe ABAP – Farbe des Widerstandes

Lerne und übe ABAP. In der ABAP-Übung „Resistor Color“ geht es darum, ein Mapping von Farbcodes in der Programmiersprache ABAP zu implementieren. Dabei sollen verschiedene Farben Ziffern zugeordnet und ausgelesen werden. Es gibt 40 geniale ABAP Übungen auf exercism. Du kannst diese Übung entweder in Deinem SAP-System ausprobieren oder Dich kostenlos auf der Plattform anmelden und die Übung absolvieren. Du kannst Dir sogar Lösungen von anderen Nutzen ansehen und dadurch Deine Lösung vergleichen.

Aufgabenstellung

Wenn Du etwas mit einem Raspberry Pi bauen willst, wirst Du wahrscheinlich Widerstände verwenden. Für diese Übung musst du zwei Dinge über sie wissen:

  • Jeder Widerstand hat einen Widerstandswert.
  • Widerstände sind klein – so klein, dass der Widerstandswert, wenn man ihn aufdrucken würde, nur schwer zu lesen wäre.

Um dieses Problem zu umgehen, drucken die Hersteller farbcodierte Streifen auf die Widerstände, um deren Widerstandswert zu kennzeichnen. Jeder Streifen hat eine Position und einen numerischen Wert.

Die ersten 2 Bänder eines Widerstands haben ein einfaches Kodierungsschema: jede Farbe entspricht einer einzigen Zahl.

In dieser Übung wirst Du ein hilfreiches Programm erstellen, damit Du Dir die Werte der Bänder nicht merken musst.

Diese Farben sind wie folgt kodiert:

  • Schwarz: 0
  • Braun: 1
  • Rot: 2
  • Orange: 3
  • Gelb: 4
  • Grün: 5
  • Blau: 6
  • Violett: 7
  • Grau: 8
  • Weiß: 9

Das Ziel dieser Übung ist es, eine Möglichkeit zu schaffen:

  • den Zahlenwert eines bestimmten Farbbandes nachzuschlagen
  • die verschiedenen Bandfarben aufzulisten

Mnemonics ordnen die Farben den Zahlen zu, die, wenn sie als Array gespeichert werden, zufällig ihrem Index im Array entsprechen: Besser, Du hast Recht, oder Deine großen Werte gehen schief.

Weitere Informationen über die Farbkodierung von Widerständen findest Du im Wikipedia-Artikel Elektronischer Farbcode.

Beispiel Programmierung

CLASS zcl_resistor_color DEFINITION PUBLIC CREATE PUBLIC.
  PUBLIC SECTION.
    METHODS resistor_color
      IMPORTING
        color_code   TYPE string
      RETURNING
        VALUE(value) TYPE i.
ENDCLASS.

CLASS zcl_resistor_color IMPLEMENTATION.

  METHOD resistor_color.
* add solution here
    value = SWITCH #( TO_LOWER( color_code )
      WHEN 'black'  THEN 0
      WHEN 'brown'  THEN 1
      WHEN 'red'    THEN 2
      WHEN 'orange' THEN 3
      WHEN 'yellow' THEN 4
      WHEN 'green'  THEN 5
      WHEN 'blue'   THEN 6
      WHEN 'violet' THEN 7
      WHEN 'grey'   THEN 8
      WHEN 'white'  THEN 9
    ).
  ENDMETHOD.

ENDCLASS.

Erklärung

Die Methode „resistor_color“ ist eine öffentliche Methode der Klasse „zcl_resistor_color“. Sie hat einen Importparameter „color_code“ vom Typ string, der die Farbe des Widerstandsbandes enthält. Die Methode gibt dann einen Rückgabewert „value“ vom Typ i zurück, der die numerische Darstellung dieser Farbe ist.

Die Methode verwendet eine SWITCH-Anweisung, um die Eingabefarbe in Kleinbuchstaben umzuwandeln und dann zu prüfen, welche numerische Darstellung dieser Farbe zugeordnet ist. Die Übereinstimmungen werden in der SWITCH-Anweisung definiert, wobei jedem Farbcode eine numerische Darstellung zugeordnet wird. Wenn eine Übereinstimmung gefunden wird, wird der numerische Wert an den Aufrufer zurückgegeben.

Über den Autor

Andreas Geiger

Mein Name ist Andreas Geiger und ich bin ein erfahrener Senior SAP Berater. Mit mehr als 10 Jahren Berufserfahrung habe ich mehrere SAP-Projekte erfolgreich abgeschlossen und umfangreiche Kenntnisse in verschiedenen Bereichen wie SAP FI, SAP MM und ABAP erworben. Nun möchte ich mein Wissen mit Dir teilen, um Dir einen Mehrwert zu bieten und Dich bei Deiner täglichen Arbeit mit dem SAP-System zu unterstützen.

Mehr zu ERP UP

ERP UP unterstützen

Wenn Du mit ERP UP zufrieden bist, kannst Du mich gerne unterstützen. Dabei gibt es unzählige Möglichkeiten, wie Du mich einfach und schnell unterstützen kannst. Wie Du genau ERP UP unterstützen kannst, erfährst Du hier. Vielen Dank.

Schreibe einen Kommentar