Hauptdiagonale Matrix berechnen

MrLong

Mitglied
Hey,

ich bin dabei ein Programm zu schreiben, welches erst zufallszahlen entwickelt, diese dann als string hintereinander schreibt und damit eine nxn matrix bildet. bsp eingabe 3 (3x3 matrix soll gebildet werden). damit erstellt das programm 9 zufallszahlen.
diese werden als ein string dann von der methode bildung an eine methode hauptdiagonale weiter gegeben. diese berechnet dann die hauptdiagonale.
Den quelltext füge ich gleich darunter ein, nachdem ich mein problem geschildert habe :)
also wenn ich das programm komplett mit den verschiedenen methoden laufen lasse kommt nur blödsinn raus. die einzelnen methoden sind aber richtig. wenn ich dieses alles in einer mainmethode laufen lassen funktioniert es. nur ist es dann total unübersichtliche. vllt könnt ihr mir helfen, dass ich das doch in verschiedenen methoden laufen lassen kann.

Java:
public class test1 {

	public static int eingabe(){
    	double anzahl=4 ;
    	double zeichen=Math.pow(anzahl,2);
    	int b=0;
    	b=(int)zeichen;
    	return b;
    }
			
			
			
	public static String bildung() { 

		
		String matrix=new String("");
		String b=new String("");
		int a=0;
		double i=eingabe();
		int zeichen=(int)i;
		while(a<zeichen){
		
		double dezimalZahl = Math.random(); 
		dezimalZahl=dezimalZahl*100-1;
	
		int ganzZahl = (int)Math.round( dezimalZahl);
		b= String.valueOf(ganzZahl+" ");
		matrix=matrix+b;
		a++;
		}
return matrix;
	}

		
	public static int hauptdiagonale() {
		String Matrix= new String("");
		Matrix=bildung();
		double zeichen=eingabe();
		zeichen=Math.pow(zeichen, 0.5);
		zeichen=(int)zeichen;
		int d=0;
		int summe=0;
		int b=0;
		int lauf=0;
		String[] test= Matrix.split("[ ]");
	
			while (lauf < test.length ) {				
						
				b=Integer.parseInt(test[lauf]);
				if (lauf==d*(zeichen+1)){
				summe=summe+b;
				d++;
				}
				else{}			
				
			lauf++;
			
		} 
		return summe;
		
	}
	
	public static int nebendiagonale(){
		String Matrix= new String("");
		Matrix=bildung();
	

		int zeichen=eingabe();
		int d=1;
		int summe=0;
		int b=0;
		int lauf=0;
		String[] test= Matrix.split("[ ]");
	
			while (lauf < test.length ) {				
						
				b=Integer.parseInt(test[lauf]);
				if (lauf==d*(zeichen-1)&&(d<=zeichen)){
				summe=summe+b;
				d++;
				}
				else{}			
				
			lauf++;
			
		} return summe;
	}
	
	public static void main(String[] args){
				
				int Summe=hauptdiagonale();
				System.out.println("Summe der Hauptdiagonalen: "+Summe);
				
				int nebensumme=nebendiagonale();
				System.out.println("Summe der Nebendiagonalen: "+nebensumme);
				
				String Matrix= new String("");
				Matrix=bildung();
				System.out.println(Matrix);
				double h=eingabe();
				int lauf=0;
				double d=1;
				String c= new String ("");
				String[] test=Matrix.split("[ ]");
				
				while (lauf<test.length){
					c=test[lauf];
			if (c.length()==1){
			
				if(lauf==d*(Math.pow(h, 0.5))-1){		
					
					System.out.println(test[lauf]+"  ");
			
					d=d+Math.pow(h, 1/2);
				}
				else System.out.print(test[lauf]+"  ");
				
				
				lauf++;
			}
			else {		
			if(lauf==d*(Math.pow(h, 0.5))-1){		
				
				System.out.println(test[lauf]+" ");
		
				d=d+Math.pow(h, 1/2);
			}
			else System.out.print(test[lauf]+" ");
			
			
			lauf++;}
		}	
	}
		}

also dann danke sehr

lg mrlong :D
 
Zuletzt bearbeitet von einem Moderator:

Michael...

Top Contributor
Für Code bitte Java Tags benutzten.
Dass Da nur "Blödsinn" raus kommt kann durchaus sein ;-) Du verwendest keine Objekte sondern nur statische Methoden und, dass für die Berechnung von Haupt- und Nebendiagonale jedesmal eine neue Matrix erzeugt wird, ist vermutlich auch nicht gewollt.
 

MrLong

Mitglied
hey, danke für die antwort. :)

asso, praktisch verwendet er für die haupt- und nebendiagonalen immer eine andere matrix? dachte er erstellt nur einen string mit den zahlen und dann kann man das an andere methoden weiter geben.
was könnte man deiner meinung nach ändern, damit es funktioniert?

lg
 

Michael...

Top Contributor
praktisch verwendet er für die haupt- und nebendiagonalen immer eine andere matrix?
Du rufst ja jedesmal
Code:
Matrix=bildung();
auf
dachte er erstellt nur einen string mit den zahlen und dann kann man das an andere methoden weiter geben.
Das könnte man, ja. Aber genau das machst Du ja nicht.

Im einfachsten Fall wird die Matrix durch einen einfachen String repräsentiert, den man zur Berechnung an Methoden weitergibt. Aber Java ist eine objektorientierte Sprache. Das kann man sich zu nutze machen - wenn man objektorientiert programmiert. Man kann z.B. für die Matrix eine eigene Klasse definieren, die entsprechende Methoden zur Berechnung von Diagonalensummen usw. bietet.
Java:
import java.util.Random;

public class MatrixAnalysis {
	
	public static void main(String[] args) {
		Matrix matrix = Matrix.createRandomMatrix(4);
		matrix.printMatrix();
		System.out.println("Summe der Hauptdiagonale: " + matrix.getSumOfMainDiagonal());
		System.out.println("Summe der Nebendiagonale: " + matrix.getSumOfSecondDiagonal());
	}
}

class Matrix {
	int[][] matrix;
	int sumOfMainDiagonal;
	int sumOfSecondDiagonal;
	
	public Matrix(int[][] matrix) {
		this.matrix = matrix;
		calculateMainDiagonal();
		calculateSecondDiagonal();
	}
	
	private void calculateMainDiagonal() {
		sumOfMainDiagonal = 0;
		int row=0, col=0;
		while(row<matrix.length && col<matrix[row].length) {
			sumOfMainDiagonal += matrix[row][col];
			row++;
			col++;
		}
	}
	
	private void calculateSecondDiagonal() {
		sumOfSecondDiagonal = 0;
		int row=0, col=matrix[row].length-1;
		while(row<matrix.length && col<matrix[row].length && col >=0) {
			sumOfSecondDiagonal += matrix[row][col];
			row++;
			col--;
		}
	}
	
	
	public int getSumOfMainDiagonal() {
		return sumOfMainDiagonal;
	}
	
	public int getSumOfSecondDiagonal() {
		return sumOfSecondDiagonal;
	}
	
	public void printMatrix() {
		for (int row=0; row<matrix.length; row++) {
			for(int col=0; col<matrix[row].length; col++)
				System.out.print("[" + matrix[row][col]+ "] ");
			System.out.println();
		}
	}
	
	public static Matrix createRandomMatrix(int size) {
		int[][] matrix = new int[size][size];
		Random rnd = new Random();
		for (int row=0; row<matrix.length; row++) {
			for(int col=0; col<matrix[row].length; col++)
				matrix[row][col] = rnd.nextInt(10);
		}
		return new Matrix(matrix);
	}
}
 

MrLong

Mitglied
hey :)

danke dir für die viele arbeit. echt super :)

da ich ja noch ein bisschen was lernen will, kann ich hoffentlich noch weiter fragen stellen. ;)

würde das denn eigentlich so funktionieren wie ich mir das gedacht habe. also eine methode programmieren, die eine matrix entwürft und dann diese einfach den string an andere methoden weiter gibt? meine damit, dass es einfach einen ausdruck gibt, der ein weiteres entwickeln eines neuen strings unterbindet?

mir ist gerade eine idee gekommen. praktisch dass man mit zufallszahlen einen string bildet, der diese an eine methode abgibt welche nur den sinn hat den string wiederum an andere methoden zu geben. so wird nur einmal ein string gebildet und ich hab das was ich will.
besser ist es natürlich wie du es hast, nur muss ich das programm presentieren und da ist es ja immer besser wenn man sein eigenes programm vorstellt ;)

lg
 

Michael...

Top Contributor
Prinzipiell würde das mit einem String auch funktionieren. Den müsste man halt einmal erstellen und global halten - oder in einem globalen Objekt halten. (zumindest in dem Kontext in dem die Methoden aufgerufen werden)
Den kann man dann beliebigen Methoden übergeben. Diese müssen den dann allerdings immer "auswerten". Entscheidend ist hier das Übergeben. In Deinem ursprünglichen Code übergibst Du nichts, sondern erzeugst in jeder Methode einen neuen String.
 

MrLong

Mitglied
super, ich probiere das einfach mal aus :)

mal schauen ob ich das hinbekomme ;)
also danke dir schon mal. echt super dass du mir geholfen hast :)

lg
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I matrix aufgabe Java Basics - Anfänger-Themen 22
L Zweidimensionaler Array; n x m - Matrix überprüfuen Java Basics - Anfänger-Themen 35
C Matrix mit Array ausgeben Java Basics - Anfänger-Themen 6
idontknow707 Matrix nach z.B. Variable durchsuchen Java Basics - Anfänger-Themen 4
F Adjunkte Matrix erstellen Java Basics - Anfänger-Themen 3
M Matrix Java Basics - Anfänger-Themen 3
F Matrix Multiplikation Java Basics - Anfänger-Themen 3
B Dünn besetzte Matrix Java Basics - Anfänger-Themen 7
Al3xand3r01 Matrix, Nachbarelemente Java Basics - Anfänger-Themen 16
E Rückwärtsmultiplikation einer invertierten matrix Java Basics - Anfänger-Themen 2
U Dreiecks-Matrix mit Array Java Basics - Anfänger-Themen 3
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
M Matrix auf 4 Elemente untersuchen mit offenen Enden Java Basics - Anfänger-Themen 8
B Diskrete Faltung (Matrix) Randfälle Java Basics - Anfänger-Themen 8
M Matrix Elemente vergleichen Java Basics - Anfänger-Themen 11
N Quadratische Matrix inkl Summe Java Basics - Anfänger-Themen 8
J Methoden Moving a n integer matrix Java Basics - Anfänger-Themen 3
D Methoden Matrix Multiplikation Java Basics - Anfänger-Themen 27
O Matrix, Vektor Java Basics - Anfänger-Themen 9
H 2D Array, Symmetrische Matrix Java Basics - Anfänger-Themen 12
S Matrix spaltenweise befüllen Java Basics - Anfänger-Themen 1
T Zufällige Matrix in neue Matrix schreiben Java Basics - Anfänger-Themen 6
C Matrix-Werte werden nicht wie erwartet ausgegeben Java Basics - Anfänger-Themen 7
C Matrix erstellen Spaltensumme, Zeilensumme, Diagonale Java Basics - Anfänger-Themen 1
S Methoden Transponierte Matrix Java Basics - Anfänger-Themen 3
N Vererbung Submatrix mit Verweis auf Matrix erstellen Java Basics - Anfänger-Themen 9
J Matrix erstellen Java Java Basics - Anfänger-Themen 7
B Transponiertes Matrix Java Basics - Anfänger-Themen 12
J Überprüfen, ob eine 2D Matrix ein Baum ist Java Basics - Anfänger-Themen 5
C Matrix transponieren - Hilfe Java Basics - Anfänger-Themen 1
D Ausgabe einer Matrix mit System.out.println Java Basics - Anfänger-Themen 6
T Art 4 Felder Matrix Memory Java Basics - Anfänger-Themen 2
U Ist diese Methode zur Matrix Vektor Multiplikation korrekt ? Java Basics - Anfänger-Themen 5
L Matrix(Array) minimieren... Java Basics - Anfänger-Themen 9
E Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 7
S eingegebene Matrix anzeigen Java Basics - Anfänger-Themen 4
J Matrix für Schachbrett Java Basics - Anfänger-Themen 6
G tga Datei lesen und in eine matrix umwandeln Java Basics - Anfänger-Themen 1
G Bilddaten in Matrix umwandeln Java Basics - Anfänger-Themen 1
T Eine String Matrix erstellen die eine boolean Funtion verwendet Java Basics - Anfänger-Themen 10
O Matrix Multiplizieren Java Basics - Anfänger-Themen 4
S LWJGL - Matrix vom Matrixstack laden Java Basics - Anfänger-Themen 3
T Matrix auf Symmetrie überprüfen Java Basics - Anfänger-Themen 6
V Matrix Transponieren Java Basics - Anfänger-Themen 3
V Methoden Matrix als 1D Array mit Werten füllen Java Basics - Anfänger-Themen 12
W Zweidimensionale Arrays als Matrix ausgeben Java Basics - Anfänger-Themen 8
R Matrix-Vektor-Multiplikation Java Basics - Anfänger-Themen 13
O Matrix ordnen Java Basics - Anfänger-Themen 4
M Symmetrische Matrix Java Basics - Anfänger-Themen 2
W Methoden Rang von einer Matrix mit Gauss Java Basics - Anfänger-Themen 0
U Matrix Subtrahieren Java Basics - Anfänger-Themen 12
E Input/Output convert string to two dimensional char and output = matrix Java Basics - Anfänger-Themen 2
A daten vom 1d array in 2d matrix speichern Java Basics - Anfänger-Themen 3
I Matrix überprüfen Java Basics - Anfänger-Themen 8
Z Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 13
K Methoden Einlesen einer unbegrenzten Matrix über Konsole Java Basics - Anfänger-Themen 6
O Einlesen einer Matrix von der Console Java Basics - Anfänger-Themen 18
N Matrix/Vektoren Java Basics - Anfänger-Themen 3
N Matrix Java Basics - Anfänger-Themen 14
T Methode, die eine 2 dimensionale Matrix kopiert. Java Basics - Anfänger-Themen 16
J Matrix Java Java Basics - Anfänger-Themen 3
D 2 mehrdimensionale Matrix einlesen Java Basics - Anfänger-Themen 2
A N*N Matrix Determinante berechnen Java Basics - Anfänger-Themen 47
K Quadratische Matrix um 90° drehen Java Basics - Anfänger-Themen 5
C Programm zur Berechnung der Spur einer Matrix Java Basics - Anfänger-Themen 4
B Zeilenumbruch (zweidim. Matrix) Java Basics - Anfänger-Themen 2
O Java Matrix mal Matrix über while Schleife... Java Basics - Anfänger-Themen 10
O Transponieren einer Matrix per While-Schleife Java Basics - Anfänger-Themen 3
M Matrix - Probelm Java Basics - Anfänger-Themen 7
O 2D Matrix befüllen mit geraden Zahlen!? Java Basics - Anfänger-Themen 14
J Java Matrix befüllen Java Basics - Anfänger-Themen 5
M Matrix Matrix Multiplikation Java Basics - Anfänger-Themen 6
F Matrix Java Basics - Anfänger-Themen 11
E Array als Matrix Java Basics - Anfänger-Themen 21
G OOP Parameter Matrix Java Basics - Anfänger-Themen 2
N Matrix Klasse Java Basics - Anfänger-Themen 4
B Maske an eine Matrix anpassen Java Basics - Anfänger-Themen 5
W Matrix übergeben Java Basics - Anfänger-Themen 7
T Matrix transponieren Java Basics - Anfänger-Themen 17
W Eine Methode schreiben, ob eine Matrix eine Diagonalmatrix ist.? Java Basics - Anfänger-Themen 3
M String Datei in Float-Matrix umwandeln Java Basics - Anfänger-Themen 8
D Problem: Werte eine Matrix vergleichen! Java Basics - Anfänger-Themen 5
B Matrix Java Basics - Anfänger-Themen 2
Semox Matrix multiplizieren Java Basics - Anfänger-Themen 4
N Matrix an toString Java Basics - Anfänger-Themen 7
C Diagonale in einem NxN Matrix Java Basics - Anfänger-Themen 6
F Einträgen von Matrix zu sotieren Java Basics - Anfänger-Themen 2
D JUnit auf Matrix anwenden Java Basics - Anfänger-Themen 5
J Spezielle Matrix ausgeben ! Java Basics - Anfänger-Themen 8
S Problem bei Matrix Addition Java Basics - Anfänger-Themen 5
F matrix werte übergeben Java Basics - Anfänger-Themen 5
M Klassenerstellung für Matrix mit Rechenopperationen Java Basics - Anfänger-Themen 42
D Matrix .bat datei erstellen und öffnen Java Basics - Anfänger-Themen 2
J Matrix ausgeben Java Basics - Anfänger-Themen 9
N Matrix Matrix Produkt Java Basics - Anfänger-Themen 7
N prüfe ob etwas in einer Matrix steht... Java Basics - Anfänger-Themen 14
L rechtecke zeichnen anhand von matrix Java Basics - Anfänger-Themen 27
J Matrix aus Datei einlesen mit StreamTokenizer Java Basics - Anfänger-Themen 3
K Transponiere Matrix Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben