Hallo zusammen.,
ich habe grade angefangen ABAP zu lernen.
Bisher habe ich Java, C und PHP programmiert. Mit SQL habe ich auch erfahrungen, will heissen Tabellen sind mir nicht fremd.
und wie ich da ein simples 2-dimensionales Array erzeuge is mir klar, zumindest in den genannten sprachen.
Letztens habe ich mir in PHP einen Sudoku-Generator geschrieben und den wollte ich zu Übungszwecken in ABAP portieren in Form eines Reports.
Also erzeugen des 9x9 Feldes, paar Eingabefelder einfügen und dann die Eingaben überprüfen.
Allerdings scheitere ich schon am 9x9 Feld. ich krieg in die Y-Tabelle immer nur die letzte Zahl von X rein und nicht das ganze X. Liegt der fehler in der Definition von Y, der Übergabe oder in der Ausgabe?
REPORT Z_SUDOKU .
data:
begin of X occurs 0,
x1 type i,
end of X,
begin of Y occurs 0,
y1 like X,
end of Y.
data: a type i.
************************************************************************
* Initialisierung
************************************************************************
initialization.
do 9 times.
* X füllen mit zufälligen a in X
do 9 times.
perform rand using a.
append a to X.
enddo.
* X ausgeben
write: / 'X:'.
loop at X from 1 to 9.
write X.
endloop.
* X in Y einfügen
append X to Y.
* X wieder leeren
loop at X from 1 to 9.
delete X.
endloop.
enddo.
************************************************************************
* Ausgabe des Ergebnisses
************************************************************************
start-of-selection.
write: /, / 'Y:'.
loop at Y from 1 to 9.
write Y.
endloop.
************************************************************************
* Zufallsgenerator 1-9 (aus dem Fachinformatiker-Forum)
************************************************************************
form rand using number.
data: ergebnis LIKE QF00-RAN_INT.
CALL FUNCTION 'QF05_RANDOM'.
CALL FUNCTION 'QF05_RANDOM_INTEGER'
EXPORTING
RAN_INT_MAX = 9
RAN_INT_MIN = 1
IMPORTING
RAN_INT = ergebnis.
number = ergebnis.
endform.
die ganzen überprüfungen ob zahlen schon vorhanden oder nicht sind da natürlich noch nicht drin, weil es bringt ja nix ein 9x9 feld überprüfen zu wollen,w enn ich nichtmal eins erzeugen kann
ich hab mit dem gedanken gespielt eine interne tabelle zu machen mit 9 spalten, aber eigentlich wäre mir meine variante lieber, da ich das ganze eventuel auch mit 4x4, 16x16 oder 25x25 machen möchte... also dynamisch indem ich eine zahl ändere, nämlich die Größe... bei PHP hat das wunderbar geklappt.
MfG und danke fürs nachdenken
Ifrit