1d in ein 2d array < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Aufgabe | Vervollständigen Sie schließlich die Methode int[][] convertArrayTo2D(int[]) so,
dass sie ein einfaches Feld in ein möglichst “quadratisches” 2D-Feld transformiert. Die sich
ergebende 2D-Matrix darf höchstens eine Spalte breiter sein, als sie Zeilen hat, falls sie nicht
quadratisch sein kann. Die letzte “Zeile” darf in diesem Fall auch “kürzer” als die anderen
sein. |
also ich versuche grad java zu lernen und eine Übungsaufgabe ist die obenstehende. Das hintendran habe ich glaube ich soweit verstanden nur die umsetzung in Code macht Probleme.
Hier mal mein Ansatz:
Wäre nett, wenn ihr den mal korrigieren könnt und vielleicht schreibt wieso was falsch ist und was noch dazu muss.
[code]Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
public static int[][] convertArrayTo2D(int[] input) {
int count;
for (int i = 0; i < input.length; i++) {
if (input[i]==0) {
continue;
int length=(int)Math.sqrt(input.length);
array[i].length;
return new int[0][0];}}
LG
|
|
|
|
Status: |
(Antwort) noch nicht fertig | Datum: | 18:55 Mo 08.11.2010 | Autor: | jarling |
moin,
ich denke die Schleife brauchst du, um die Werte des einen Arrays in das andere zu übertragen. Zuvor musst du die Größe des zweidimensionalen Arrays ermitteln. Ich denke die Wurzel als integer zu berechnen ist nicht ganz so gut, da der Algorithmus dann nicht entscheiden kann, ob die 2d-Arraygröße genau, oder etwas größer sein muss, als die von sqrt() berechnete Zahl.
Da die Feldgröße nur aus ganzen Zahlen bestehen kann, muss nach der Wurzelberechnung auf- oder abgerundet werden. Die erste Breite muss in jedem Fall aufgerundet werden, die zweite kann erst abgerundet werden, dann folgt der Test, ob die anzahl der Zellen in der 2d-matrix ausreicht (Multiplikation). Ist das nicht der Fall, wird auch die zweite Zelle aufgerundet, bzw. es reicht aus, den aufgerundeten wert von oben zu verwenden.
nachher hätte ich noch zeit, etwas java zu programmieren... falls du es nicht hinbekommst.
Gruß, Jarling
|
|
|
|