Kezdőoldal » Számítástechnika » Programozás » Hogy kell megírni ezt a...

Hogy kell megírni ezt a pascal programot? (kétdimenziós tömb)

Figyelt kérdés

Adott egy n sorból és n oszlopból álló kétdimenziós tömb, melynek elemei legtöbb négy számjegyet tartalmazó természetes számok. Írjatok Pascal programot, amely beolvassa a billentyűzetről az n (2≤n≤23) természetes számot és a tömb n*n elemét, majd kiírja a tomb külső koncentrikus négyzetén lévő elemeit, szóközzel elválasztva őket egymástól. A kiírást a bal felső sarokban lévő elemmel kezdjük és az óramutató járásával megegyező irányba folytatjuk, mint a példában. A tömb külső koncentrikus négyzetén lévő elemek az első és utolsó sor, valamint első és utolsó oszlop elemei.

Például: n=5 és a mellékelt kétdimenziós tömb esetén

1 2 3 4 5

6 7 8 9 1

2 3 4 5 6

7 8 9 1 2

3 4 5 6 7


a kiírt értékek:

1 2 3 4 5 1 6 2 7 6 5 4 3 7 2 6



2013. nov. 3. 17:43
 1/5 anonim ***** válasza:
63%
Meddig jutottál el vele, hol akadtál el?
2013. nov. 3. 18:21
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:
:D
2013. nov. 3. 19:54
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:

"melynek elemei legtöbb négy számjegyet tartalmazó természetes számok."

Ez mi a fenét akar jelenteni????

2013. nov. 4. 10:20
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:
65%

Program NxN;

Uses Crt;

Const

MaxN=23;

Var

szamok:Array[1..MaxN,1..MaxN] of Integer;

n,x,y:Byte;


begin

ClrScr;


Repeat

Write('Dimenzió? (2..',MaxN,'): ');

ReadLn(n);

Until (n>=2) and (n<=MaxN);


for y:=1 to n do

for x:=1 to n do

repeat

Write('Kérem a következő számot [',x,',',y,']: ');

ReadLn(szamok[x,y]);

until (szamok[x,y]>=0) and (szamok[x,y]<=9999);


for y:=1 to n do begin

for x:=1 to n do Write(szamok[x,y],' ');

WriteLn;

end;


for x:=1 to n do Write(szamok[x,1],' ');

for y:=2 to n do Write(szamok[n,y],' ');

for x:=n-1 downto 1 do Write(szamok[x,n],' ');

for y:=n-1 downto 2 do Write(szamok[1,y],' ');


WriteLn;

WriteLn('Nyomj le egy billentyűt a folytatáshoz!');

ReadKey;

end.

2013. nov. 4. 11:18
Hasznos számodra ez a válasz?
 5/5 SimkoL ***** válasza:

Kicsit átírtam az előző válaszolóét :)


program NxN;

uses Crt;

type tomb2D = array of array of Word;

var tomb : tomb2D;

x, y : Byte;

hiba : Integer;

k, n : Longint;

s : string;


begin

ClrScr;

hiba := 1;

while (hiba <> 0) or (n < 2) or (n > 23) do

begin

Write('Kerem a tomb elemszamat: ');

ReadLn(s);

Val(s, n, hiba);

end;

SetLength(tomb, n, n);

for y := 0 to n - 1 do

begin

for x := 0 to n - 1 do

begin

hiba := 1;

while (hiba <> 0) or (k < 0) or (k > 9999) do

begin

k := -1;

Write('Kerem a(z) ', y + 1, ' sor ', x + 1, ' elemet: ');

ReadLn(s);

Val(s, k, hiba);

end;

tomb[y, x] := k;

end;

end;

for y := 0 to n - 1 do

begin

for x := 0 to n - 1 do Write(tomb[y, x]:5, ' ');

WriteLn;

end;

WriteLn;

for x := 0 to n - 1 do Write(tomb[0, x], ' ');

for x := 1 to n - 1 do Write(tomb[x, n-1], ' ');

for x := n - 2 downto 0 do Write(tomb[n - 1, x], ' ');

for x := n - 2 downto 1 do Write(tomb[x, 0], ' ');

WriteLn;

WriteLn('Befejezeshez nyomj le egy billentyut !');

ReadKey;

Finalize(tomb);

end.

2013. nov. 4. 16:54
Hasznos számodra ez a válasz?

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!