Hogy oldjam meg Pascalban? (kétdimenziós tömbök)
Adott egy n szám. Töltsünk fel egy tömböt a megadott módon:
1 2 3
8 9 4
7 6 5.
Próbáltam végigmenni jópár for-ral, de sehogysem sikerül megfelelő sorrendbe rakni. Előre is köszi!
Ez nem az, hogy hogyan kell kinéznie, hanem a lényeg, a kb. a megoldás. De akkor itt van még egy kis segítség: Két ciklusváltozó kell, és azzal a kettővel indexelsz.
G.
Érdekes, hogy most igen kevés hozzászóló volt :)
program Csiga;
{$APPTYPE CONSOLE}
const MERET = 5;
var i, minX, maxX, minY, maxY, szam, x, y : integer;
tomb : array[1..MERET, 1..MERET] of integer;
begin
minX := 1;
minY := 1;
maxX := MERET;
maxY := MERET;
szam := 1;
repeat
//felső sor
for i := minY to maxY do
begin
tomb[minX, i] := szam;
Inc(szam);
end;
Inc(minX);
//jobb oldali oszlop
for i := minX to maxX do
begin
tomb[i, maxY] := szam;
Inc(szam);
end;
Dec(maxY);
//alsó sor
for i := maxY downto minY do
begin
tomb[maxX, i] := szam;
Inc(szam);
end;
Dec(maxX);
//bal oldali oszlop
for i := maxX downto minX do
begin
tomb[i, minY] := szam;
Inc(szam);
end;
Inc(minY);
until szam > MERET * MERET;
for x := 1 to MERET do
begin
for y := 1 to MERET do
Write(tomb[x, y]:4);
WriteLn;
end;
ReadLn;
end.
Az '{$APPTYPE CONSOLE}' csak a Delphi miatt van, Pascal alatt töröld ki.
Érdekességképpen megírtam egy kicsit látványosabbra is, Delphi-ben és Lazarusban, számokkal, színekkel és nyilakkal bemutatva. Ha érdekel valakit a forráskód is letölthető. - Ma nem kellett szüretelnem :) -
Klassz lett, a Lazarus-változat linuxon is simán lefordult:
Igaz, nem sikerült 1.2 mega alá vinnem, majdnem kétszer akkora, mint a windowsos exe :(
A Delphi-s exe, UPX-el összetolva 154.112 byte :) Érdekes, esetleg hasznos lehet az algoritmus később 'kisipari' grafikai megoldásokhoz, ezért is próbáltam a színátmeneteket belevinni. A Delphi-s és Lazarus-os megoldás között egyedül a színezés az eltérő, mivel a Lazarus nem eszi meg az RGB függvényt.
De a 'nyilas' változat mutatja leginkább hogyan is változnak a ciklusok tól-ig értékei.
Remélem 'bóklászik' erre valami informatika tanár is aki esetleg hasznát veszi :)
Viszont azt sajnálattal tapasztaltam, hogy Geniuseus-en kívül senki sem szólt hozzá a témához, holott máskor 'osztják az észt'.
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!