Matrizen Operationen

Basha

Mitglied
Hallo,
habe folgendes Problem, für einen Beleg soll ich 2 Matrizen erstellen und Operationen mit denn durchführen.
Nur die Eingabe funktioniert ganz gut.
Aber wenn ich die beiden ausgeben will kommen nur lauter 0.
0 0
0 0
Ich habe mal mein Beleg Hoch geladen,
Das ist die Klasse pastebin.com/K9m6UDgu
und hier die Main pastebin.com/zE0vizeT
hoffe ihr könnt damit etwas anfangen und mir helfen.
 
Zuletzt bearbeitet:
Ich habe es auf der Website "pastebin.com" hoch geladen.
Hmm also ich kann das sehen, naja ich lade es einfach hier hoch.
Die Klasse
Java:
import static Prog1Tools.IOTools.*;

public class Matrix {

private int s;
private int z;
int [][] matrix;
    
Matrix(int spalte, int zeile){
    s=spalte;
    z=zeile;
    
    matrix = new int [z][s];
}

//Matrix mit Werten füllen
public void werte(){
    
    for(int i = 0; i<z; i++){
        for(int j = 0; j<s; j++){
            
        matrix[i][j] = readInteger("\t");
        
        
        }
       System.out.println();
    }
}


//Ausgabe der Matrix
public void ausgabe() {
    
    System.out.println("Matrix Ausgabe:  ");
        for (int i=0; i<z; i++){
            for(int j=0; j<s; j++){
              System.out.print("" + matrix[i][j] +"\t" );
            }
                System.out.println();
        }

    }



//Addition der Matrizen
public void madd (Matrix m1, Matrix m2){
    
    for(int i=0; i<z; i++){
        for(int j=0; j<s; j++){
            matrix[i][j] = m1.matrix[i][j] + m2.matrix[i][j];
            System.out.print(" " + matrix[i][j]);
             }
        System.out.println();
          }
     
      }

}
 
Java:
import static Prog1Tools.IOTools.*;

public class MatrixTest {

    public static void main(String[] args) {

        int s = 0;
        int z = 0;
        int s2 = 0;
        int z2 = 0;
        int s3 = 0;
        int z3 = 0;
        int abfrage = 1;
        int abfrage2 = 1;
        int abfrage3 = 1;
        
        

        int g;
        while (abfrage3 == 1) {
            
            Matrix m1 = new Matrix(z, s);
            Matrix m2 = new Matrix(z2, s2);
            Matrix m3 = new Matrix(z3, s3);
            
            System.out.println("\n\n\tMenü "
                    + "         \n|0|\tEingabe Matrizen.                      "
                    + "         \t|1|\tAusgabe Spalten/Zeilen.                "
                    + "         \t|2|\tEingabe Werte.                         "
                    + "         \n|3|\tAusagebe Werte.                        "         
                    + "         \t|4|\tMatrix eins und zwei addieren.         "
                    + "         \t|5|\tAusgabe der Addition.                  "
                    + "         \n|6|\t                                       "
                    + "         \t|7|\t                                       "
                    + "         \t|8|\tMenü verlassen.                        "
                    + "         \n\nBitte Wählen Sie einen Punkt aus:         ");
            
            g = readInteger("");
            switch (g) {

                case 0:

                    System.out.println("Bitte Geben sie Ihre erste Matrix ein: ");

                    while (abfrage == 1) {
                        z = readInteger("Bitte die Zeilenenanzahl für die erste Matrix eingeben (max. 7): \t ");
                        if (z > 1 && z < 8) {
                            abfrage = 0;
                        } else {
                            System.out.println("Die eingegebene Zahl ist Größer als das erlaubt Maximum, bitte wiederholen Sie ihre Eingabe! \n");
                        }
                    }
                    abfrage = 1;
                    while (abfrage == 1) {
                        s = readInteger("Bitte die Spaltenanzahl für die erste Matrix eingeben (max. 7): \t ");
                        if (s > 1 && s < 8) {
                            abfrage = 0;
                        } else {
                            System.out.println("Die eingegebene Zahl ist Größer als das erlaubt Maximum, bitte wiederholen Sie ihre Eingabe! \n");
                        }
                    }
                    
                    System.out.println("Bitte Geben sie Ihre zweite Matrix ein: ");

                    while (abfrage2 == 1) {
                        z2 = readInteger("Bitte die Zeilenenanzahl für die zweite Matrix eingeben (max. 7): \t ");
                        if (z2 > 1 && z2 < 8) {
                            abfrage2 = 0;
                        } else {
                            System.out.println("Die eingegebene Zahl ist Größer als das erlaubt Maximum, bitte wiederholen Sie ihre Eingabe! \n");
                        }
                    }
                    abfrage2 = 1;
                    while (abfrage2 == 1) {
                        s2 = readInteger("Bitte die Spaltenanzahl für die zweite Matrix eingeben (max. 7): \t ");
                        if (s2 > 1 && s2 < 8) {
                            abfrage2 = 0;
                        } else {
                            System.out.println("Die eingegebene Zahl ist Größer als das erlaubt Maximum, bitte wiederholen Sie ihre Eingabe! \n");
                        }
                    }
                    break;

                case 1:
                    System.out.println("Die eingegebene Zeilenanzahl der ersten Matrix beträgt: " + z);
                    System.out.println("Die eingegebene Spaltenanzahl der ersten Matrix beträgt: " + s);
                    System.out.println("\nDie eingegebene Zeilenanzahl der zweiten Matrix beträgt: " + z2);
                    System.out.println("Die eingegebene Spaltenanzahl der zweiten Matrix beträgt: " + s2);
                    break;

                case 2:
                    System.out.println("Bitte Die werte der ersten Matrix eingeben:  ");
                    m1.werte();
                    System.out.println("Bitte Die werte der zweiten Matrix eingeben:  ");
                    m2.werte();
                    break;

                case 3:
                    m1.ausgabe();
                    m2.ausgabe();
                    break;

                case 4:
                    m3.madd(m1, m2);
                    break;

                case 5:
                    m3.ausgabe();
                    break;
                 
                case 6:
                    
                   break;
                    
                case 7:
                    
                    break;
                    
                case 8:
                    abfrage3=0;
                    break;
                    
                default:
                    System.out.println("Ungültige Zahl, bitte um erneute Eingabe!");

            }
        }

    }

}
 
Moin,

Mit dem readInteger kann man eine Eingabe tätigen.
z.B s=readInteger(" "); // damit gebe ich s durch eine eingabe einen Wert.
und je nach datentyp kann man da auch andere werte eingeben z.B readString usw.
damit man den befehl benutzen kann muss man aber diese bibliothek importieren.

import static Prog1Tools.IOTools.*;

Mfg
Basha
 
Zuletzt bearbeitet:

Zurück
Oben