Kezdőoldal » Számítástechnika » Programozás » Egy Pascal feladat, amit nem...

Egy Pascal feladat, amit nem tudok megoldani. Segitene valaki?

Figyelt kérdés

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.


2012. febr. 10. 19:41
 1/6 anonim válasza:

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.

2012. febr. 10. 20:18
Hasznos számodra ez a válasz?
 2/6 anonim válasza:
Az elv jó, csak a ciklusokat le kell zárni, rég nem programoztam pascalban, szintaktikailag lehet hibás...
2012. febr. 10. 20:21
Hasznos számodra ez a válasz?
 3/6 coopper ***** válasza:

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.

2012. febr. 10. 20:25
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:

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.

2012. febr. 11. 19:28
 5/6 coopper ***** válasza:

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.

2012. febr. 11. 20:42
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Koszonom ;)
2012. febr. 12. 16:11

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!