Pascal I.      Pascal II.      Delphi       Linkek     
Pascal I.
01. A program szerkez...
01. Gyakorló feladatok
02. Változók használata
02. Gyakorló feladatok
03. A FOR ciklus
03. Gyakorló feladatok
04. Egymásba ágyazo...
04. Gyakorló feladatok
05. Karakterláncok ...
05. Gyakorló feladatok
06. Az IF feltételvizsgálat
06. Gyakorló feladatok
07. A CASE elágazás
07. Gyakorló feladatok
08. A WHILE..DO ciklus
08. Gyakorló feladatok
09. A REPEAT..UNTIL ...
09. Gyakorló feladatok
10. Tömbök (ARRAY ...
10. Gyakorló feladatok
11. Műveletek tömbökkel
11. Gyakorló feladatok
12. Kétdimenziós töm...
12. Gyakorló feladatok
13. Műveletek kétdime...
13. Gyakorló feladatok
Programozás 1 (Pascal)
     
10 Tömbök (array of ...)
   
  • tömbök (array of ...)

  • konstansok használata

  • tömb elemeinek generálása

      
     10.1 Tömbök (array of ...)

     Eddigi programjainkban egyedi változókkal dolgoztunk, mindegyik változónak külön neve volt. Pl

var a,b,c,i,n:integer;

 
     Sok feladatot lehetetlen egyedi változókkal megoldanunk. Gondoljunk például egy névsor tárolására, melyben akár 100-200 név is lehet.

     Ehhez szükségünk van olyan adattípusra, melyben több adatot tárolhatunk. Az eddig megismert típusok elemi típusok voltak. Ezekből az elemi típusokból adatszerkezeteket, összetett típusokat építhetünk. Ilyen összetett típus a tömb is.

    A tömb típusát a következő képpen kell megadnunk:

 var tömb_neve : array [ indexhatárok ] of alaptípus ;

    Az indexhatárok megadják a tömb méretét (hogy hány elemet tárolhatunk benne), az alaptípus pedig az elemek típusát (ez lehet pl. integer, string, char, boolean, byte, stb).

    Például:

var a:array [1..7] of string;

 
    Ez létrehoz egy 7-elemű, stringekből álló tömböt. Ebben tárolhatunk például egy 7 elemből álló névsort. A tömb egyes elemeit az elemek indexén keresztül érhetjük el úgy, hogy a tömb neve után szögletes zárójelben megadjuk az elem indexét. A tömbünk tehát a következő elemekből áll: a[1], a[2], ..., a[7].

    A tömb beolvasása történhet például egy egyszerű ciklussal:

for i:=1 to 7 do begin
                 write('Add meg a(z) ',i,'. nevet: ');
                 readln(a[i]);
                 end;

    Hasonlóan történhet a tömb kiírása, feldolgozása is ciklusok segítségével.

Feladat: Készítsünk programot, amely beolvas 10 egész számot egy tömbbe, majd kiírja őket fordított sorrendben.

Megoldás: A programunk a következő képen néz ki:

program Pelda25a;
var a:array[1..10] of integer;
    i:integer;
begin
  for i:=1 to 10 do begin
                    write(i,'. szam: ');
                    readln(a[i]);
                    end;
  writeln('A szamok forditott sorrendben:');
  for i:=10 downto 1 do write(a[i]:6);
  writeln;
end.

   
     10.2 Konstansok használata

     Programunkban használhatunk konstansokat is. Ezeket a var előtt a const utasítással adhatjuk meg:

const konstansneve = értéke ;

    Például ha az előző programban 10 elem helyett 20-at szeretnénk beolvasni majd kiírni, több helyen meg kéne változtatnunk a programunkat - a 10-et átírni 20-ra. Ha program elején bevezetünk egy konstanst (állandót) a tömb elemeinek számára és a programban mindenhol ezt használjuk, akkor később ha meg akarjuk változtatni a programban a beolvasandó elemek számát elég ennek a konstansnak az értékét megváltoztatni a programunk elején. Az előző programunk például így is nézhetett volna ki:

program Pelda25b;
const tombmerete=10;
var a:array[1..tombmerete] of integer;
    i:integer;
begin
  for i:=1 to tombmerete do begin
                             write(i,'. szam: ');
                             readln(a[i]);
                             end;
  writeln('A szamok forditott sorrendben:');
  for i:=tombmerete downto 1 do write(a[i]:6);
  writeln;
end.

   
     10.3 Tömb elemeinek generálása

     Készítsünk programot, melyben egy tömb elemeit véletlenszerűen kigenerálja majd kiírja a képernyőre. A tömb elemeinek értéke 1 és 100 közötti szám legyen.

     Ehhez a már régebben megismert random függvényt fogjuk használni. Mivel egy tömbről van szó, a generálást ciklus segítségével fogjuk elvégezni, hasonlóan ahogy az elemek kiírását is a képernyőre. Programunk így néz ki:

program Pelda26;
const n=20;
{a tömb elemeinek a száma}
var a: array[1..n] of integer;
    i: integer;
begin
 randomize;
 for i:=1 to n do a[i]:=random(100)+1;
 for i:=1 to n do write(a[i],', ');
 writeln;
end.

    

(C) 2004-2013, PaedDr. Végh Ladislav, Komárno, Szlovákia