Lerne und übe ABAP – Differenz der Quadrate

Lerne und übe ABAP. In der ABAP-Übung „Difference of Squares“ implementierst Du ein ABAP-Programm, um die Differenz zwischen dem Quadrat der Summe und der Summe der Quadrate der ersten N natürlichen Zahlen zu finden. 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

Finde die Differenz zwischen dem Quadrat der Summe und der Summe der Quadrate der ersten N natürlichen Zahlen.

Das Quadrat der Summe der ersten zehn natürlichen Zahlen ist (1 + 2 + … + 10)² = 55² = 3025.

Die Summe der Quadrate der ersten zehn natürlichen Zahlen ist 1² + 2² + … + 10² = 385.

Die Differenz zwischen dem Quadrat der Summe der ersten zehn natürlichen Zahlen und der Summe der Quadrate der ersten zehn natürlichen Zahlen ist also 3025 – 385 = 2640.

Es wird nicht von Dir erwartet, dass Du selbst eine effiziente Lösung aus den ersten Prinzipien entdeckst; Forschung ist erlaubt, ja sogar erwünscht. Den besten Algorithmus für das Problem zu finden, ist eine Schlüsselqualifikation in der Softwareentwicklung.

Beispiel Programmierung

CLASS zcl_difference_of_squares DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC.

  PUBLIC SECTION.
    METHODS:
      ret_difference_of_squares IMPORTING num         TYPE i
                                RETURNING VALUE(diff) TYPE i,
      ret_sum_of_squares        IMPORTING num                   TYPE i
                                RETURNING VALUE(sum_of_squares) TYPE i,
      ret_square_of_sum         IMPORTING num                  TYPE i
                                RETURNING VALUE(square_of_sum) TYPE i.
  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.



CLASS zcl_difference_of_squares IMPLEMENTATION.
  METHOD ret_difference_of_squares.
    "Implement solution
    diff = ret_square_of_sum( num ) - ret_sum_of_squares( num ).
  ENDMETHOD.
  
  METHOD ret_sum_of_squares.
    "Implement solution
    sum_of_squares = 0.
    DO num TIMES.
      sum_of_squares = sum_of_squares + sy-index * sy-index.
    ENDDO.
  ENDMETHOD.
  
  METHOD ret_square_of_sum.
    "Implement solution
    square_of_sum = 0.
    DO num TIMES.
      square_of_sum = square_of_sum + sy-index.
    ENDDO.
    square_of_sum = square_of_sum * square_of_sum.
  ENDMETHOD.
ENDCLASS.

Erklärung

Diese ABAP-Klasse (zcl_difference_of_squares) berechnet die Differenz zwischen dem Quadrat der Summe und der Summe der Quadrate.

Die Klasse besteht aus drei Methoden:

  • ret_difference_of_squares: Diese Methode berechnet die Differenz zwischen dem Quadrat der Summe und der Summe der Quadrate durch Aufruf der Methoden ret_square_of_sum und ret_sum_of_squares.
  • ret_sum_of_squares: Diese Methode berechnet die Summe der Quadrate, indem sie eine Schleife durchläuft und das Quadrat für jeden Wert in der Schleife berechnet.
  • ret_square_of_sum: Diese Methode berechnet das Quadrat der Summe, indem eine Schleife durchlaufen und die Summe berechnet wird, bevor das Ergebnis mit sich selbst multipliziert wird.

Ü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