Lerne und übe ABAP – Isogramm

Lerne und übe ABAP, indem Du die Übung „Isogram“ absolvierst. Hierbei implementierst Du ein ABAP-Programm, das bestimmt, ob ein Wort oder ein Satz ein Isogramm ist. Nutze die 40 anspruchsvollen Übungen auf der Plattform exercism. Du kannst die Übungen entweder direkt in Deinem SAP-System absolvieren oder Dich kostenlos auf der Plattform registrieren. Überprüfe Deine Lösungen mit denen anderer Nutzer und verbessere Deine Fähigkeiten.

Aufgabenstellung

Bestimme, ob ein Wort oder ein Satz ein Isogramm ist.

Ein Isogramm (auch bekannt als „Nicht-Muster-Wort“) ist ein Wort oder ein Satz ohne einen sich wiederholenden Buchstaben, Leerzeichen und Bindestriche dürfen jedoch mehrfach vorkommen.

Beispiele für Isogramme:

  • lumberjacks
  • background
  • downstream
  • six-year-old

Das Wort isograms ist jedoch kein Isogramm, da sich das s wiederholt.

Ausführliche Informationen zu Isogrammen findest Du im Wikipedia-Artikel.

Beispiel Programmierung

CLASS zcl_isogram DEFINITION PUBLIC.

  PUBLIC SECTION.
    METHODS is_isogram
      IMPORTING
        VALUE(phrase)        TYPE string
      RETURNING
        VALUE(result) TYPE abap_bool.
  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.



CLASS zcl_isogram IMPLEMENTATION.

  METHOD is_isogram.
    " add solution here
    DATA: lv_length TYPE i,
          lv_index  TYPE i,
          lv_count  TYPE i,
          lv_phrase TYPE string.
    result = 'X'.

    lv_phrase = phrase.
    TRANSLATE lv_phrase TO UPPER CASE.
    lv_length = strlen( lv_phrase ).

    DO.
      IF lv_index = lv_length.
        EXIT.
      ENDIF.

      FIND ALL OCCURRENCES OF lv_phrase+lv_index(1) IN lv_phrase MATCH COUNT lv_count.
      IF lv_count > 1 AND lv_phrase+lv_index(1) <> '-'.
        CLEAR result.
        EXIT.
      ENDIF.
      lv_index += 1.
    ENDDO.
  ENDMETHOD.

ENDCLASS.

Erklärung

Die Methode is_isogram der Klasse zcl_isogram ermittelt, ob ein Satz oder ein Wort ein Isogramm ist. Ein Isogramm ist ein Wort oder ein Satz, in dem kein Buchstabe mehr als einmal vorkommt.

Die Methode nimmt einen String als Eingabe (phrase) und gibt einen booleschen Wert (result) zurück, der angibt, ob das gegebene Wort ein Isogramm ist (true) oder nicht (false).

Innerhalb der Methode wird zunächst eine lokale Kopie des Eingabewortes (lv_phrase) erstellt und in Großbuchstaben umgewandelt. Die Länge des Wortes wird in der Variablen lv_length gespeichert.

Dann wird in einer Schleife jeder Buchstabe des Wortes überprüft. Jeder Buchstabe wird mit der Funktion „FIND ALL OCCURRENCES“ im Wort gesucht und die Anzahl der Übereinstimmungen (lv_count) ermittelt. Wenn lv_count größer als 1 ist und der Buchstabe kein Bindestrich ist, dann ist das Wort kein Isogramm und result wird auf false gesetzt. Wenn die Schleife beendet ist, ist das Wort ein Isogramm und result wird auf true gesetzt.

Ü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