Pascal tömb átlói cseréje?
5x5-ös tömböt kell feltölteni 1-1000-ig random számokkal és a főátló szerint kell tükrözni majd a mellékátló szerint de csak idáig jutottam:
program tomb;
uses crt;
var a: array [1..5,1..5] of integer;
var q,i,j,s: integer;
begin
clrscr;
randomize;
for i:=1 to 5 do
for j:=1 to 5 do a[i,j]:=random(999)+1;
writeln;
writeln;
writeln('Az eredeti:');
for i:=1 to 5 do begin writeln;
for j:=1 to 5 do write (a[i,j]:5,' ');
end;
readln;
writeln;
writeln;
writeln('A fo atlo szerint tukrozve:');
writeln;
writeln;
writeln('A mellek atlo szerint tukrozve:');
readln;
end.
Főátlóra tükrözés: végigmész a felsőháromszög mátrixon (ahol i megy 1-től 5-ig, és j megy i+1-től 5-ig), és a[i, j]-t megcseréled a[5 - i + 1, 5 - j +1]-el.
Mellékátló az erre merőleges átló, találgass, hogy arra hogy kell tükrözni, javaslom, hogy rajzold le, 5x5 mátrixnál ez kicsi ábra lesz, jelöld be, hogy melyik elemnek hanyas az indexe, és nézd meg, tükrözés után hova kerül, melyik elemmel cserél helyet.
A tükrözés 1 for ciklus, a kiíratás még 1.
Így összesen lesz 4 for ciklusod, kettő amivel tükrözöl és kettő amivel kiíratsz.
A csereléshez pedig:
X, Y a megcserélendők, M pedig a munkaváltozó:
M:=X;
X:=Y;
Y:=M;
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!