Methoden Java Methoden - Hilfe :/

Eclipsenoob

Mitglied
Hallo liebes Java-Forum,

ich muss in der Uni in Informatik eine Hausaufgabe zu Methoden schreiben, jedoch komme ich nicht weiter und verstehe Methoden einfach nicht. Der Rest bis dahin war irgendwie einfacher verständlich.

Mein gecodeter Text sieht bis jetzt so aus, aber es klappt noch nicht wirklich. Der Test gibt mir mehr Fehler aus als "Pass" und ich verzweifel beim addieren von Arrayzeilen-Werten in Schritt 4 z.B.

Java:
import gdi.methods.*;

public class MyMethods {

    static double feld[][] = { { 6.2 }, { 1.0 }, { 5.2 }, { -2.0 } };

    public static void main(String[] args) {

        print(feld);

        multiply(feld, 10);

        rowMean(feld);

      // colMean(feld);

        //flatten(feld);

    

        MethodLauncher.prepare(args);

    }

    public static double[][] print(double[][] feld) {

        int x = 0;

        while (x < feld.length) {

            print(feld[x]);

            //print(feld);

            x++;

        }

        return feld;

    }

    privatestaticdouble [] print(double[] feld) {

        int x = 0;

        while (x < feld.length) {

            //System.out.print (feld[x] + " ");

            x++;

        }

        return feld;

    }


    public static double[][] multiply(double[][] feld, double a) {

        double arr[][] = new double[feld.length][feld[0].length];

        for (int i = 0; i < feld.length; i++) {

            for (int k = 0; k < feld.length; k++) {

                arr[k] = feld[k] * a;

                // System.out.println(arr [k]);

            }

        }

        return arr;

    }

    public static double[][] rowMean(double[][] feld) {

        double ping[] = new double[feld.length];

        for (int x = 0; x < feld.length; x++) {

            for (int y = 0; y < feld[x].length; y++) {

                //ping[0] += feld[x][y];

                //double Summe = feld[x][y] ;

                //System.out.println(feld [y]);

            }

            //ping[x] /= feld[x].length;

            //System.out.println(ping[x]);

        }

    

        return feld;

    }

    public static double[][] ColMean (double[][] feld) {

     

     

   

   

        return feld;

    }


}
Vielen Dank schonmal für jeden, der sich meinen schlechten Quellcode anschaut :D

MfG Eclipsenoob

Edit:
Bei der ersten Methode (
Punkt 2 im aufgabenblatt) stimmt die Ausgabe nicht. (Ich bekomme gar nichts ausgegeben, anstatt meiner feldwerte).
Bei der Methode RowMean weiß ich nicht wie ich Werte zusammenzählen lassen kann.
Ich muss jeden Wert in den Zeilen meines Arrays zusammenzählen lassen und dann den Durchschnitt der einzelnen Zeilen ausgeben.
 

Anhänge

  • 04_Methoden.pdf
    71,4 KB · Aufrufe: 5
Zuletzt bearbeitet:

JStein52

Top Contributor
Als erstes mal den Tip, den geposteten Code bitte als Java-Code einfügen. das macht das Ganze lesbarer. Und dann bezeichne mal die Stelle genauer wo du Probleme hast, und was genau ist das Problem
 

JStein52

Top Contributor
Ich habe mal die print-Methoden ein bisschen angepasst und die Definition deines Feldes war nicht korrekt (das mit dem studentischen Teil MethodLauncher habe ich weggelassen)

Java:
/**
*
* @author Juergen
*/
public class MyMethods {

    static double feld[][] = {{6.2, 5.2}, {1.0, -2.0}};

    public static void main(String[] args) {
        print(feld);
        multiply(feld, 10);
        rowMean(feld);
// colMean(feld);
//flatten(feld);
    }

    public static void print(double[][] feld) {

        int x = 0;
        while (x < feld.length) {
            print(feld[x]);
            x++;
        }
    }

    private static void print(double[] feld) {

        int x = 0;
        while (x < feld.length) {

            System.out.print (feld[x] + " ");
            x++;

        }
        System.out.println ("");  //Zeilenvorschub
    }

Warum willst du in feld etwas zurückkriegen ? Die Methoden sollen doch nur ausgeben
 

Eclipsenoob

Mitglied
hab jetzt verstanden was du meinst.
Vielen Dank schonmal. Habe eben die anderen Methoden gelöst.
Mir fehlt nun nur noch flatten, mal sehen ob das was gibt heute :D
Vielen vielen Dank dir
 

JStein52

Top Contributor
und das ist die multiply, da hattest du dich mit den Indizes verhauen !!!

Java:
    public static double[][] multiply(double[][] feld, double a) {

        double arr[][] = new double[feld.length][feld[0].length];
        for (int i = 0; i < feld.length; i++) {
            for (int k = 0; k < feld[i].length; k++) {
                arr[i][k] = feld[i][k] * a;
            }
        }
        return arr;
    }

Teste das ganze am besten immer mit einer nicht quadratischen Matrix, da siehst du sofort ob du zeilen, spalten immer richtig hast !

So z.B. :

Java:
    static double feld[][] = {{6.2, 1.0, 3.4}, {5.2, -2.0, 2.6}};

    public static void main(String[] args) {
        print(feld);
        print(multiply(feld, 10));
 

Neue Themen


Oben