Hogy oldjam meg Pascalban? (mátrixok)
Adott egy n természetes szám (n nulla és tiz között van). A program felépiti a memóriában azt a tömböt, amelynek a többi elemét úgy kapjuk meg, hogy minden egyes sor elemei egyenlők az előtte levő sor elemeinek a balról jobbra tartó cirkuláris permutációjával.
Egy hülyeséget sikerült összezagyválnom, de ez nem sokra jó:
Előre is köszi a segitséget!
Szia.
Ha jól értelmezem ezt a cikuláris permutációt akkor valahogy igy :
Begin
_ _ write('n=');
_ _ readln(n);
_ _ // elso sor adatbe kerese
_ _ for j:=1 to n do begin
_ _ _ _ write('a[1,',j,']=');
_ _ _ _ readln(a[1,j]);
_ _ end ;
_ _ // Cirkuláris permutació
_ _ for i:=2 to n do begin
_ _ _ _ // Az előző sor utolsó elemét kimenetjük x-be
_ _ _ _ x:=a[i-1,n];
_ _ _ _ // Az aktualis sorban az előző sorból minden elemet egyel balra viszünk
_ _ _ _ For j:=2 to n do begin
_ _ _ _ _ _ a[i,j]:=a[i-1,j-1];
_ _ _ _ end ;
_ _ _ _ // Az első elembe berakjuk a kimentett utolsó elemet
_ _ _ _ a[i,1]:=x;
_ _ end ;
_ _ // Mátrix kiiratása
_ _ for i:=1 to n do begin
_ _ _ _ for j:=1 to n do begin
_ _ _ _ _ _ write(a[i,j]:2);
_ _ _ _ end ;
_ _ _ _ writeln ;
_ _ end ;
_ _ readln;
end.
Sok sikert.
üdv.
Nem tudom ilyesmire gondoltál-e, de a kiíratást különvettem, a többi ugyanaz:
program asd;
uses crt;
var a: array [1..10, 1..10] of integer;
i,j,n:integer;
Begin clrscr;
write('n='); readln(n);
for j:=1 to n do begin
write('a[1,',j,']='); readln(a[1,j]);
end;
for i:=2 to n do begin
a[i,1]:=a[i-1,n];
for j:=2 to n do
a[i,j]:=a[i-1,j-1];
end;
for i:=1 to n do begin
for j:=1 to n do
write(a[i,j],', ');
writeln;
end;
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!