1 / 10

Egydimenzi ós tömbök(Vektorok)

Egydimenzi ós tömbök(Vektorok).

Download Presentation

Egydimenzi ós tömbök(Vektorok)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Egydimenziós tömbök(Vektorok) • Megfigyelhető, hogy amikor több elem közötti összehasonlítás történik, akkor szükség van egyszerre több értékre is, főleg akkor, ha ezek az értékek jóval hamarabb, sokkal előbb lettek beolvasva, akár egy ismétlődő struktúrán belül ugyanazon segédváltozó segítségével. • Vagy ha az elemeken végzett művelet késleltetve van, azaznem a beolvasás pillanatában kell elvégezni. Lásd a szemléltetőt

  2. Elemekbejárása. • Keressük meg egy osztályban hány első tanuló van, úgy, hogy nem ismerjük a legjobb médiát csak a diákok médiáit egyenként. • A naplóban az utolsó tanuló felel. • A tornasorban a középső álljon ki. • Hogyan készűl a képen látható hajfonat? • Hol törtük ketté az eredeti botot, hát a következőt? Rendelj hozzá tetszőlegesen egy koordináta rendszert.

  3. Tömbök (array of ...) • Eddigiprogramjainkbanegyediváltozókkaldolgoztunk, mindegyikváltozónakkülönneve volt. Pl • vara,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.

  4. 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;

  5. Mikor használjuk a következő deklarálásokat vektorok esetén? • const n:integer=100; {a ntípusoskonstansértékemegváltoztatható} • const n=100; {a nszimbolikuskonstansértékenemváltoztatható meg} program Pelda25b;const tombmerete=10;var a:array[1..tombmerete] of integer;    i:integer;begin

  6. A vektor elemeinek a feltöltése! • 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. ? Hol találkoztál ilyen adatszerkezettel?

  7. type     ShortInt = -128..127;     Byte     = 0..255;     Integer  = -32768..32767;     Word     = 0..65535;     Char     = #0..#255; {karakteres konstansok}     Boolean  = (false, true);type     ShortInt = -128..127;     Byte     = 0..255;     Integer  = -32768..32767;     Word     = 0..65535;     Char     = #0..#255; {karakteres konstansok}     Boolean  = (false, true); Így az alábbi tömbdeklarációk mind megengedettek:    type  {itt definiálunk néhány típust a fentiekből}     Lotto    = 1..90;     Honap    = (jan, feb, mar, apr, maj, jun, jul, aug, szep, okt, nov, dec);     Kimenet  = (HighLevel, LowLevel, ThreeState);   var  {változókat deklarálunk}     HanyszorHuztak : array[Lotto] of Word;     HaviAtlag      : array[Honap] of Real;     Fajsuly        : array[-273..1000] of Double;     Beirhato       : array['A'..'Z'] of Boolean;     Impedance      : array[Kimenet] of Real;     MikorErik      : array[(alma, korte, szilva)] of Honap;     BUFF           : array[Byte] of Byte; {256 bájtos puffer}     EBCDIC         : array[Char] of Byte; {kódkonverziós táblához}     Magyarul       : array[Boolean] of String; {a logikai értékek magyar nevét tárolhatjuk benne} Beolvasás. Kiítatás. deklarálás • 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 szamokforditottsorrendben:'); •   for i:=tombmeretedownto 1 do write(a[i]:6);writeln;end. beolvasás kiíratás

  8. Tömbelemeinekgenerá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;beginrandomize; for i:=1 to n do a[i]:=random(100)+1; for i:=1 to n do write(a[i],', '); writeln;end.

  9. Tömbelemeinekfeltöltése az elem indexével 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  for i:=1 to n do a[i]:=i; for i:=1 to n do write(a[i],', '); writeln;end. program Pelda26;const n=20; var a: array[1..n] of integer;i: integer;begina[1]:=1; a[n]:=n; a[2]:=2; a[3]:=3; for i:=???? to ??? do a[i]:=i; for i:=1 to n do write(a[i],', '); writeln;end. Vagy??! Indexelés (jövőórán!)

  10. Elemek kiíratása • for i:=1 to n do write(a[i],', '); • for i:=n downto 1 do write(a[i],', '); • Irasd ki fordított sorrendben az elemeket, anélkül, hogy a downto-t használnád. Alkoss képlete. • ', ‘ –mi ennek a szerepe a kiíratásban? • Sorolj fel más elemelválasztókat is. • Ha kicserélem a write utasítást writeln-ra mi fog történni?

More Related