Lerne und übe ABAP – Kindergarten Garten

Trainiere Deine ABAP-Kenntnisse mit der Übung „Kindergarten Garden“. Die Aufgabe besteht darin, ein ABAP-Programm zu erstellen, das die Verantwortung jedes Kindes für eine bestimmte Pflanze im Kindergarten ermittelt. Auf der Plattform exercism stehen über 40 unterhaltsame ABAP-Übungen zur Verfügung. Du kannst sie entweder direkt in Deinem SAP-System ausprobieren oder Dich kostenlos registrieren und die Übung online bearbeiten. Zusätzlich hast Du die Möglichkeit, die Lösungen anderer Benutzer einzusehen und Deine eigene Lösung damit zu vergleichen.

Aufgabenstellung

Bestimme anhand eines Diagramms, für welche Pflanzen jedes Kind in der Kindergartenklasse zuständig ist.

Die Kindergartengruppe lernt gerade, wie man Pflanzen anbaut. Die Lehrerin hielt es für eine gute Idee, den Kindern echte Samen zu geben, sie in echte Erde zu pflanzen und echte Pflanzen wachsen zu lassen.

Du hast Dich dafür entschieden, Gras, Klee, Radieschen und Veilchen anzubauen.

Zu diesem Zweck haben die Kinder kleine Tassen auf die Fensterbänke gestellt und in jede Tasse eine Pflanzenart gepflanzt, wobei sie zufällig aus den verfügbaren Samenarten ausgewählt haben.

[window][window][window]
........................ # each dot represents a cup
........................

Es gibt 12 Kinder in der Klasse:

  • Alice, Bob, Charlie, David,
  • Eve, Fred, Ginny, Harriet,
  • Ileana, Joseph, Kincaid, and Larry.

Jedes Kind bekommt 4 Becher, zwei in jeder Reihe. Der Lehrer ordnet die Becher den Kindern alphabetisch nach ihren Namen zu.

Das folgende Diagramm stellt die Pflanzen von Alice dar:

[window][window][window]
VR......................
RG......................

In der ersten Reihe, die den Fenstern am nächsten ist, hat sie ein Veilchen und einen Rettich. In der zweiten Reihe hat sie ein Radieschen und etwas Gras.

Dein Programm erhält die Pflanzen von links nach rechts, beginnend mit der Reihe, die den Fenstern am nächsten ist. Daraus sollte es in der Lage sein, zu bestimmen, welche Pflanzen zu den einzelnen Schülern gehören.

Wenn man ihm zum Beispiel sagt, dass der Garten wie folgt aussieht:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

Wenn man dann nach Alices Pflanzen fragt, sollte es liefern:

  • Violets, radishes, violets, radishes

Fragt man hingegen nach Bobs Pflanzen, so erhält man:

  • Clover, grass, clover, clover

Beispiel Programmierung

CLASS zcl_kindergarten_garden DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC .

  PUBLIC SECTION.
    METHODS plants
      IMPORTING
        diagram        TYPE string
        student        TYPE string
      RETURNING
        VALUE(results) TYPE string_table.

  PROTECTED SECTION.
  PRIVATE SECTION.
    DATA students TYPE string_table.

ENDCLASS.


CLASS zcl_kindergarten_garden IMPLEMENTATION.

 METHOD plants.
    DATA(lv_pos) = find( val = sy-abcde sub = student(1) ) * 2.
    SPLIT diagram AT '\n' INTO TABLE DATA(lt_rows).
    LOOP AT lt_rows ASSIGNING FIELD-SYMBOL(<fs_row>).
      DO 2 TIMES.
        DATA(lv_plant) = SUBSTRING( val = <fs_row> off = lv_pos + sy-index - 1 len = 1 ).
        CASE lv_plant.
          WHEN 'V'.
            APPEND 'violets' TO results.
          WHEN 'R'.
            APPEND 'radishes' TO results.
          WHEN 'G'.
            APPEND 'grass' TO results.
          WHEN 'C'.
            APPEND 'clover' TO results.
        ENDCASE.
      ENDDO.
    ENDLOOP.
  ENDMETHOD.

ENDCLASS.

Erklärung

Die Methode plants ist Teil der Klasse zcl_kindergarten_garden und wird verwendet, um die Pflanzen für ein bestimmtes Kind in einem Kindergartenprogramm zu bestimmen.

Die Methode hat zwei Eingabeparameter:

  • diagram: Eine Zeichenkette, die das Diagramm der Pflanzen darstellt, wobei die Pflanzen von links nach rechts und von oben nach unten aufgelistet sind.
  • student: Eine Zeichenfolge, die den Namen des Schülers enthält, für den die Pflanzen bestimmt werden sollen.

Die Methode liefert als Ergebnis eine Tabelle mit Strings, die die Namen der Pflanzen für das Kind enthalten.

Innerhalb der Methode wird zunächst die Position des Kindes im Diagramm berechnet, indem die Position im Alphabet seines Namens bestimmt wird. Dann wird das Diagramm in Zeilen unterteilt und jede Zeile durchlaufen. Für jede Zeile werden die Pflanzen für das Kind bestimmt, indem jeweils ein Zeichen aus dem Diagramm gelesen und in einen Pflanzennamen umgewandelt wird. Die Pflanzennamen werden dann in die Ergebnistabelle eingetragen.

Ü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