Kezdőoldal » Számítástechnika » Programozás » (Pacal) Készítsünk programot,...

(Pacal) Készítsünk programot, amely egy 10x10-es tömbbe beírja a számokat 1-től 100-ig?

Figyelt kérdés

Készítsünk programot, amely egy 10x10-es tömbbe beírja a számokat 1-től 100-ig a következő képpen:


1 2 3 4 5 6 7 8 9 10

11 12 13 14 15 16 17 18 19 20

21 22 23 24 25 26 27 28 29 30

31 32 33 34 35 36 37 38 39 40

41 42 43 44 45 46 47 48 49 50

51 52 53 54 55 56 57 58 59 60

61 62 63 64 65 66 67 68 69 70

71 72 73 74 75 76 77 78 79 80

81 82 83 84 85 86 87 88 89 90

91 92 93 94 95 96 97 98 99 100


A kigenerált tömböt írjuk ki a képernyőre.


2011. júl. 31. 15:25
1 2
 1/14 anonim ***** válasza:
Ez biztos? Kicsoda?
2011. júl. 31. 15:31
Hasznos számodra ez a válasz?
 2/14 anonim ***** válasza:

program sajt;


var

tomb : array [1..10,1..10] of integer;

i : integer;


begin

{tömb feltöltése}

for i := 1 to 100 do tomb[((i - 1) div 10 + 1),i mod 10 + (((i div 10) - ((i - 1) div 10)) * 10)] := i;

{tömb kiíratása}

for i := 1 to 100 do

begin

write(tomb[((i - 1) div 10 + 1),i mod 10 + (((i div 10) - ((i - 1) div 10)) * 10)]);

if i mod 10 = 0 then writeln else write(' ');

end;

readln;

end.

2011. júl. 31. 16:14
Hasznos számodra ez a válasz?
 3/14 anonim ***** válasza:

Na jó, az előzőt csak akkor használd, ha valami tanárt akarsz elkápráztatni az egysoros megoldással. Itt egy jóval egyszerűbb:


program sajtketto;


var

tomb : array[1..10,1..10] of integer;

i,j : integer;


begin

{tömb feltöltése}

for i := 1 to 10 do

for j := 1 to 10 do

tomb[i,j] := (i - 1) * 10 + j;

{tömb kiíratása}

for i := 1 to 10 do

begin

for j := 1 to 10 do

write(tomb[i,j],' ');

writeln;

end;

readln;

end.

2011. júl. 31. 16:24
Hasznos számodra ez a válasz?
 4/14 A kérdező kommentje:

Köszi szépen !


tomb[i,j] := (i - 1) * 10 + j;


tomb[i,j]:= i I j;


szoval igy is lehet értéket adni kulon kulon az oszlopnak és sornak. Idaig a pl.programokban csak pl.: tomb[i,j]:=0; ilyet lattam.

2011. júl. 31. 16:48
 5/14 A kérdező kommentje:

tomb[i,j] := (i - 1) * 10 + j;



ezt nem értem...hogyan jöttél rá?


A tömb i-dik elemét csökkentjük egyyel idáig lessz az i értéke ....majd * jellel elválasztva a 10 + j edik eleme...Idáig azért kb. kapizsgáltam,hogy mi is van..letudtam vezetni de ezt nem értem már.

2011. júl. 31. 19:41
 6/14 anonim ***** válasza:

Azt hiszem Te az alapokat nem látod még át, de ahogy ez meglesz majd rájössz, hogy egyszerű az egész.


tomb[i,j] := (i - 1) * 10 + j;


A tomb nevű változó most egy többdimenziós (jelenleg 2 dimenziós) tömb, amelyet így tekinthetünk kb egy táblázatnak, ha elképzeljük vizuálisan. Ekkor a tomb i-edik sorának j-edik elemét fogod átírni a (i - 1) * 10 + j értékre, ahol a * jel szorzást jelent (nem elválasztást, ha jól értettem amire céloztál). Tehát ha most pl. a 3. sor (i = 3) 2. értékét (j = 2) írod át az tomb[3,2] = (3 - 1) * 10 + 2 = 22 lesz. Remélem tudtam segíteni :)

2011. júl. 31. 21:49
Hasznos számodra ez a válasz?
 7/14 A kérdező kommentje:

Jól értetted hogy a * jel az elválasztó jel akart lenni,de visszaolvasva nagy marhaság lenne. Itt zavarodtam össze.


Azt értem már,hogy tom[sor,oszlop]:=érték; - egy sor oszlop kordinatanak csak egy erteke lehet {itt is mar csak a zavarodottsag gondolta belolem hogy meg kell adni 2 erteknek a i-nek és a j-nek valmivel elválasztva.}


Mivel így van felírva:

for i := 1 to 10 do

for j := 1 to 10 do


ezért ha jol gondolom,eloszor az elso sortol kezdi beolvasni a program az értékeket míg elnem jut az oszlopok végére vagyis nem addig amíg nem adott értéket az első sor tizedik oszlopának sem. Ezután jön a második sor és ezeknek az oszlopai {bár az oszlop szó most nem is annyira jó megnevezés most mint ahogy Te is írtad inkább érték. szoval akkor tomb[1,1],tomb[1,2],tomb[1,3]...igz tolti fel oket?}


de még mindig nem értem :S ezt:

tomb[i,j] := (i - 1) * 10 + j;

ez a szamitas hogy adhat 1 töl 100ig növekvő számsort?


(1 - 1) * 10 + 1 = 1

(1 - 1) * 10 + 2 = 2

(1 - 1) * 10 + 2 = 3


ez viszont jó...csak akkor a 0 zárójelben miben más(ha így tudunk vele szorzni anélkul hogy 0 értéket kapnánk) mint a 0 zárjel nélkul. Miért pont 10-t kell hozzáadni a j hez?



és az sem,hogy miért nem müködik pl. az Inc függvény?!

for i := 1 to 10 do

for j := 1 to 10 do

tomb[i,j] := Inc(1);


ennek az Inc nek növelni kéne az egyet minden egyes lefutásnál és akkor behelyettesítené tomb[1,1]..-be



Köszi szépen a segítséged!!(Y)

2011. júl. 31. 22:50
 8/14 anonim ***** válasza:

Na akkor még egyet egyszerűsítünk a programon:


program sajtharom;


var

tomb : array[1..10,1..10] of integer;

i,j,szamlalo : integer;


begin

szamlalo := 1;

{tömb feltöltése}

for i := 1 to 10 do

for j := 1 to 10 do

begin

tomb[i,j] := szamlalo;

szamlalo := szamlalo + 1;

end;

{tömb kiíratása}

for i := 1 to 10 do

begin

for j := 1 to 10 do

write(tomb[i,j],' ');

writeln;

end;

readln;

end.


Az Inc() pedig a következő képen működik (azt hiszem csak pascalban, ha delphiben írnál konzolos programot ott már nem biztos, hogy létezik):


var

valami : integer;


begin

valami := 1;

inc(valami);

write(valami); -> itt már a valami értéke 2 lesz.

inc(valami);

inc(valami);

write(valami); -> itt pedig már 4, ha jól számolok

...


Tehát a fenti programban is éppen ki lehet a


szamlalo := szamlalo + 1;


sort cserélni arra, hogy:


Inc(szamlalo);


Csak mivel ez nem mindenhol működik, ezért én nem szoktam használni az inc-et. :)

2011. júl. 31. 23:09
Hasznos számodra ez a válasz?
 9/14 anonim ***** válasza:

rosszul vagyok komolyan, ennél nehezebben már meg se tudtátok volna oldani :D


*****



* Automatikusan eltávolított tartalom.
2011. aug. 2. 04:30
Hasznos számodra ez a válasz?
 10/14 anonim ***** válasza:
hopp én már megírtam a jövőheti leckédet. sebaj,kcsiit elnéztem. XD
2011. aug. 2. 04:48
Hasznos számodra ez a válasz?
1 2

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!