Hogy oldjam meg Pascalban? (mátrixok)
Adott egy n*n mátrix. Az alábbi módon kell kicserléni két sorát:
1 2 3 9 2 7
4 5 6 --> 6 5 4
7 8 9 3 8 1.
Úgy képzeltem el, hogy az első és utolsó sort tárolom egy-egy egydimenziós tömbben, de sehogy sem sikerül kicserélnem úgy a sorokat, csak simán. Előre is köszi!
1 2 3 9 2 7
4 5 6 6 5 4
7 8 9 3 8 1
Ha csak ennyi a feladat, akkor így:
(úgy emlékszem 1-től kezdődik a tömbök indexe, és úgy láttam, hogy te inkább oszlopokat akarsz kicserélni)
for i:=1 to n do swap(a[i][1], b[n-i+1][n])
„az első és utolsó sort tárolom egy-egy egydimenziós tömbben”
Minek? Elég egyetlen byte. Mielőtt SimkoL megelőz:
var
i, csere : byte;
tomb : array[0..2, 0..2] of byte = ((1,2,3),(4,5,6),(7,8,9));
procedure kiiras;
begin
for i := 0 to 2 do WriteLn(tomb[i,0]:2, tomb[i,1]:2, tomb[i,2]:2);
end;
BEGIN
kiiras;
for i := 0 to 2 do
begin
csere := tomb[i,0];
tomb[i,0] := tomb[2-i, 2];
tomb[2-i, 2] := csere;
end;
WriteLn;
kiiras;
ReadLn;
END.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!