Hogy kell megírni ezt a pascal programot? (kétdimenziós tömb)
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
"melynek elemei legtöbb négy számjegyet tartalmazó természetes számok."
Ez mi a fenét akar jelenteni????
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.
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.
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!