Also ich muss für die Uni die folgende Aufgabe lösen: http://www.angewandteinformatik.de/s...v?id=swt000896
Also brauche ich eine Fachkonzeptklasse und eine GUI die darauf zugreift.
Der nächste Schritt wäre dann eine lesende Operation in der Form, das man als Eingangsatribute X und Y wählt und jeweils die Zeilen abrastert und die Atributwerte abfragt. Diese sollen in die Textarea der GUI rein. Wie gebe ich denn in der Textarea an, das er in die nächste Zeile springen soll, damit ich die zweite Zeile schreiben kann ?
Also ich denke mal ich gehe die Zeilen von 1 bis n und dann jeweils die Spalten von 1 bis n durch und lasse nacheinander die Zahlen von 1 bis n*n eintragen. Dazu nehme ich das schreiben natürlich ins Applett und die Lesende Operation welche Zahl an der zweiten Stelle steht natürlich aus der Fachkonzeptklasse.
Denke mal das muss so laufen:
- while (n*n <= laufn)
- wert = lese (zeile 1,spalte 1)
- setze laufn = laufn+1
- schreibe wert + " "
Und dann muss er aber den nächsten Wert dahinter schreiben. Macht er das oder löscht er das Feld ?
- Und wenn die mit den Spalten bei n bin, muss er umschalten auf Zeile 2, also in die nächste Zeile des TextBereichs springen.
Wie macht man das ?
Die GUI muss auch noch prüfen ob die Zahl n ungerade ist. Wie frage ich das denn ab ? if (n ungerade) {...}
Wie gebe ich das an ?
Hier mal meine Fachkonzeptklasse (erst mal nur mit der Matrixberechnung):
public class magischesQuadrat
{
int n;
int laufn = 1;
int [][]Matrix;
public void berechneQuadrat(int zahl)
{
int MerkeSpalte;
int MerkeZeile;
int halbn;
n = zahl;
halbn = n/2;
Matrix = new int [n][n];
MerkeSpalte = halbn;
MerkeZeile = 1;
Matrix[MerkeSpalte][MerkeZeile] = 1;
while (laufn <= n)
{
{if (MerkeZeile == 1)
MerkeZeile = n;
else
MerkeZeile = MerkeZeile - 1;}
{if (MerkeSpalte == n)
MerkeSpalte = 1;
else
MerkeSpalte = MerkeSpalte + 1;}
{if ((Matrix[MerkeSpalte][MerkeZeile]) == 0)
{if (MerkeZeile == n)
MerkeZeile = 1;
else
MerkeZeile = MerkeZeile - 1;}
Matrix[MerkeSpalte][MerkeZeile] = laufn;}
}
}
}
Hoffe das ist in Ordnung so.
Lesezeichen