PHP :: Aufgabe #44 :: Lösung #2

3 Lösungen Lösungen öffentlich
#44

Matrizen um 90 Grad drehen

Anfänger - PHP 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.
#2
1x
vote_ok
von paddlboot (3970 Punkte) - 08.08.2019 um 15:13 Uhr
Quellcode ausblenden PHP-Code
<?php
$zwischending;
$matrix = array();

$matrix[0][0] = 'a11';
$matrix[0][1] = 'a12';
$matrix[0][2] = 'a13';
$matrix[0][3] = 'a14';
$matrix[1][0] = 'a21';
$matrix[1][1] = 'a22';
$matrix[1][2] = 'a23';
$matrix[1][3] = 'a24';
$matrix[2][0] = 'a31';
$matrix[2][1] = 'a32';
$matrix[2][2] = 'a33';
$matrix[2][3] = 'a34';
$matrix[3][0] = 'a41';
$matrix[3][1] = 'a42';
$matrix[3][2] = 'a43';
$matrix[3][3] = 'a44';

foreach ($matrix as $key)
{
	foreach ($key as $inhalt)
	{
		echo $inhalt."__";
	}
	echo "<br>";
}

echo "<br><br>";

$y = 4;

for($i = 0; $i < 2; $i++)
{
	$y--;
	$zwischending = $matrix[$i][$i];
	$matrix[$i][$i] = $matrix[$y][$i];
	$matrix[$y][$i] = $matrix[$y][$y];
	$matrix[$y][$y] = $matrix[$i][$y];
	$matrix[$i][$y] = $zwischending;

}

for($i = 1; $i < 3; $i++)
{
	$zwischending = $matrix[0][$i];
	$matrix[0][$i] = $matrix[$y][0];
	$matrix[$y][0] = $matrix[count($matrix) - 1][$y];
	$matrix[count($matrix) - 1][$y] = $matrix[$i][count($matrix) - 1];
	$matrix[$i][count($matrix) - 1] = $zwischending;

	$y--;
}


foreach ($matrix as $key)
{
	foreach ($key as $inhalt)
	{
		echo $inhalt."__";
	}
	echo "<br>";
}
?>

Kommentare:

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

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