Java :: Aufgabe #55 :: Lösung #5

5 Lösungen Lösungen öffentlich
#55

Matrizen um 90 Grad drehen

Anfänger - Java von pocki - 11.11.2013 um 16:38 Uhr
Erstelle ein Programm, welches als Eingabe eine Matrix beliebiger Größe entgegennimmt und diese dann um 90 Grad dreht.

Beispiel an einer 4x4 Matrix:
Eingabematrix mit den Elementen:
a11 a12 a13 a14
a21 a22 a23 a24
a31 a32 a33 a34
a41 a42 a43 a44

sollte diese Ausgabematrix erzeugen:
a41 a31 a21 a11
a42 a32 a22 a12
a43 a33 a23 a13
a44 a34 a24 a14

Das Programm sollte für unterschiedlich großen und auch mit nicht quadratischen Matrizen funktionieren.
#5
vote_ok
von klhlubek19 (550 Punkte) - 16.07.2015 um 13:39 Uhr
Quellcode ausblenden Java-Code
import java.util.Scanner;

public class Matrix {

	private int[][] matrixBelegen(int[][] matrix){
		Scanner scan = new Scanner(System.in);
		int[][] matrixBelegt = matrix;
		for( int i = 0; i < matrix.length; i++){
			for( int u = 0; u < matrix[0].length; u++) {
				System.out.printf("Geben sie das Element, dass in der Reihe %s und in der Spalte %s sein soll %n", i + 1, u + 1);
				matrixBelegt[i][u] = scan.nextInt();
			}
		}
		System.out.printf("\n");
		scan.close();
		return matrixBelegt;
	}
	
	private int[][] matrixDrehen90(int[][] matrix) {
		int[][] matrix90 = new int[matrix[0].length][matrix.length];	//Es sollen nur rechteckige Matrizen sein. Wenn auch nicht rechteckige gefordert werden, 
																		//bitte ich Sie, mir darüber bescheid zu sagen.
		
		for(int i = 0; i < matrix90[0].length; i++) {
			for( int n = 0 , u = matrix90.length-1; n < matrix90.length; n++){
				matrix90[u--][i] = matrix[i][n];
			}
		}
		matrixAusgeben(matrix90);
		return matrix90;
	}
	
	public void matrixAusgeben(int[][] matrix){
		System.out.println("Matrix: \n");
		for(int i = 0; i < matrix.length; i++){
			for( int u = 0; u < matrix[0].length; u++){				// matrix[0].length, da es, wie schon gesagt, ein rechteckiges Array sein soll
				System.out.printf(matrix[i][u] + "\t");
			}
			System.out.println("");
			System.out.println("");
		}
	}
	
		public static void main( String[] args) {
			
			Matrix m = new Matrix();
			int[][] matrix = new int[4][2]; 
			int [][] m2 = m.matrixBelegen(matrix);
			m.matrixAusgeben(matrix);
			m.matrixDrehen90(m2);
			
			
		}
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben