Raven unregistriert
|
|
Matrix Spalten und Zeilen vertauschen |
|
Meine Frage:
In einem PASCAL-Programm soll eine 5×5 Matrix transponiert werden. Das heisst, die Zeilen und Spalten der Matrix sind zu vertauschen, wie im folgenden Beispiel gezeigt ist:
15 8 1 24 17
16 14 7 5 23
22 20 13 6 4
3 21 19 12 10
9 2 25 18 11
rauskommen soll das
15 16 22 3 9
8 14 20 21 2
1 7 13 19 25
24 5 6 12 18
17 23 4 10 11
Wir geben folgende Typdefinition und Variablendeklaration an:
const
GROESSE = 5;
type
tMatrix = array [1..GROESSE,1..GROESSE] of integer;
var
A : tMatrix;
tauschPuffer,
i,
j : integer;
Das Lesen der Matrixwerte in A wird folgendermaßen durchgeführt:
{ Lesen der Matrixwerte in A: }
for i := 1 to GROESSE do
for j := 1 to GROESSE do
readln (A[i,j]);
Welche der fünf folgenden Programmstücke führen das Transponieren der Matrix A korrekt aus?
A
begin
for i := 1 to GROESSE-1 do
for j := i+1 to GROESSE do
begin
tauschPuffer := A[i,j];
A[i,j] := A[j,i];
A[j,i] := tauschPuffer
end
end;
B
begin
for i := 1 to GROESSE do
for j := 1 to i do
begin
tauschPuffer := A[i,j];
A[i,j] := A[j,i];
A[j,i] := tauschPuffer
end
end;
C
begin
for i := 1 to GROESSE do
for j := 1 to GROESSE do
begin
tauschPuffer := A[i,j];
A[i,j] := A[j,i];
A[j,i] := tauschPuffer
end
end;
D
begin
for i := 1 to GROESSE do
for j := 1 to GROESSE-i do
begin
tauschPuffer := A[i,j];
A[i,j] := A[j,i];
A[j,i] := tauschPuffer
end
end;
E
begin
for i := 1 to GROESSE-1 do
for j := i+1 to GROESSE do
begin
tauschPuffer := A[i,j];
A[j,i] := A[i,j];
A[j,i] := tauschPuffer
end
end;
Meine Ideen:
Ich habe leider noch keine eigenen ANsätze, hoffe das mir hier jemand helfen kann.
|
|
25.10.2016 21:31 |
|
|