Lerne und übe ABAP. In der ABAP-Übung „Matrix“ implementierst du ein ABAP-Programm zur Darstellung einer Matrix. Für eine Zeichenkette, die eine Zahlenmatrix darstellt, werden die Zeilen und Spalten der Matrix zurückgegeben. 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 machen. Du kannst sogar die Lösungen anderer Benutzer ansehen und so Deine Lösung vergleichen.
Aufgabenstellung
Gib eine Zeichenkette, die eine Zahlenmatrix darstellt, die Zeilen und Spalten dieser Matrix zurück.
Bei einer Zeichenkette mit eingebetteten Zeilenumbrüchen wie:
9 8 7
5 3 2
6 6 7
die diese Matrix darstellt:
1 2 3
|---------
1 | 9 8 7
2 | 5 3 2
3 | 6 6 7
Sollte Dein Code in der Lage sein, auszuspucken:
- Eine Liste der Zeilen, wobei jede Zeile von links nach rechts gelesen wird, während man sich von oben nach unten durch die Zeilen bewegt,
- eine Liste der Spalten, wobei jede Spalte von oben nach unten gelesen wird, während man sich von links nach rechts bewegt.
Die Zeilen für unsere Beispielmatrix:
- 9, 8, 7
- 5, 3, 2
- 6, 6, 7
Und die Spalten:
- 9, 5, 6
- 8, 3, 6
- 7, 2, 7
Beispiel Programmierung
CLASS zcl_matrix DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. TYPES integertab TYPE STANDARD TABLE OF i WITH EMPTY KEY. METHODS matrix_row IMPORTING string TYPE string index TYPE i RETURNING VALUE(result) TYPE integertab. METHODS matrix_column IMPORTING string TYPE string index TYPE i RETURNING VALUE(result) TYPE integertab. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS zcl_matrix IMPLEMENTATION. METHOD matrix_row. " add solution here SPLIT string AT '\n' INTO TABLE DATA(lt_string). READ TABLE lt_string ASSIGNING FIELD-SYMBOL(<fs_string>) INDEX index. SPLIT <fs_string> AT space INTO TABLE DATA(lt_result). LOOP AT lt_result ASSIGNING FIELD-SYMBOL(<fs_result>). APPEND <fs_result> TO result. ENDLOOP. ENDMETHOD. METHOD matrix_column. " add solution here SPLIT string AT '\n' INTO TABLE DATA(lt_string). LOOP AT lt_string ASSIGNING FIELD-SYMBOL(<fs_string>). SPLIT <fs_string> AT space INTO TABLE DATA(lt_column). READ TABLE lt_column ASSIGNING FIELD-SYMBOL(<fs_column>) INDEX index. APPEND <fs_column> TO result. ENDLOOP. ENDMETHOD. ENDCLASS.
Erklärung
Die Methode matrix_row nimmt einen String und einen Index als Eingabe. Der String repräsentiert eine Matrix, in der jede Zeile durch einen Zeilenumbruch (\n) getrennt ist. Die Methode liest die Zeile an der Stelle des angegebenen Index aus dem String und teilt sie in ihre einzelnen Spalten (durch Leerzeichen getrennt) auf. Die einzelnen Spalten werden als Integer in einer Tabelle zurückgegeben.
Die Methode matrix_column nimmt einen String und einen Index als Eingabe. Der String repräsentiert eine Matrix, in der jede Zeile durch einen Zeilenumbruch (\n) getrennt ist. Die Methode zerlegt jede Zeile des Strings in ihre einzelnen Spalten (durch Leerzeichen getrennt) und liest die Spalte an der Stelle des angegebenen Index. Die Werte der ausgewählten Spalte werden als Integer in einer Tabelle zurückgegeben.
Über den Autor
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.
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.