Egy Pascal feladat, amit nem tudok megoldani. Segitene valaki?
Olvassunk be egy N egész számot (1<=N<=10), majd egy NxN-es kétdimenziós tömbbe olvassunk be természetes számokat.
- Írjuk ki a tömböt a képernyőre, pl. N=4-re és a következő számokra ilyen formában:
1 58 19 20
10 5 17 16
9 25 50 70
33 91 80 17
- Cseréljük ki a tömbben az első és az utolsó sorban levő elemeket, majd írjuk ki a tömböt újra a képernyőre:
33 91 80 17
10 5 17 16
9 25 50 70
1 58 19 20
Igy kezdtem en neki=>>
program yeeah;
uses crt;
var a:array[1..10,1..10] of integer;
i,j,n,x,seged:integer;
procedure kiir;
begin
for i:=1 to n do begin
for j:=1 to n do
write(a[i,j],' ');
writeln;
end;
end;
begin
clrscr;
write('n=');readln(n);
for i:=1 to n do
for j:=1 to n do begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;
kiir; {elso kiiartas}
for i:=1 to n do
for j:=1 to n do
if ??? then??? begin
end;
kiir;
readln;
end.
Valahogy így menni fog, nem futtattam, de jónak kell lennie...
program yeeah;
uses crt;
var a:array[1..10,1..10] of integer;
i,j,n,x,seged:integer;
procedure kiir;
begin
for i:=1 to n do begin
for j:=1 to n do
write(a[i,j],' ');
end;
writeln;
end;
begin
clrscr;
write('n=');readln(n);
for i:=1 to n do
for j:=1 to n do begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;
kiir; {elso kiiartas}
for j:=1 to n do
seged := a[1,j];
a[1,j] := a[n,j];
a[n,j] := seged;
end;
kiir;
readln;
end.
Szia.
"Cseréljük ki a tömbben az első és az utolsó sorban levő elemeket, majd írjuk ki a tömböt újra a képernyőre:"
Sima csere csak nem kell feltételhez kötni :
For I:=1 to N do begin
Seged:=A[I,1]; { Első sor elemeit elmented }
A[I,1]:=A[I,N] { Utolsó sor elemeit átrakod az első sorba }
A[I,N]:=Seged; { Az elmentett elemet berakod az utolsó sorba }
end ;
Sok sikert.
Üdv.
coopper, a te megldasod n=3-ra =>> 1 2 3
4 5 6
7 8 9
Ezt csinalja=>> 3 2 1
6 5 4
9 8 7
Azert koszi, legalabb megtudtam, hogy kell megforditani a sorokat.
Szia.
Igazad van a beirt kód nem az első sor és utolsó sor, hanem az első oszlop és utolsó oszlopot csréli meg.
Meg kell fgorditani az indexeket és akkor sorokat cserél. :
For I:=1 to N do begin
Seged:=A[1,I]; { Első sor elemeit elmented }
A[1,I]:=A[N,I] ; { Utolsó sor elemeit átrakod az első sorba }
A[N,I]:=Seged; { Az elmentett elemet berakod az utolsó sorba }
end ;
Viszont most hogy kipróbáltam a programodat, a kiirási részen nem igazán úgy működött ahogyan szeretném itt van javitva :
procedure kiir;
begin
for i:=1 to n do begin
for j:=1 to n do begin
write(a[i,j],' ');
end;
writeln;
end ;
end;
Üdv.
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!