ProgramozásMódszertan
2.
előadás’2002[SzP1] 
(vázlat)

1. Adatok jellemzői

1.1. Azonosító

Az a jelsorozat, amellyel hivatkozhatunk a tartalmára, amely által módosíthatjuk tartalmát.

Például:

            i, j, n, a

változók nevei (szimbólikus nevek)

            p, -128, 3.14, "Eredmény=",IGAZ

konstansokat azonosító jelsorozat

 

Megjegyzés:

x

:=

x+1

 

címhivatkozás

 

értékhivatkozás

vagy

Feldolgoz(x)

eljárás hívásnál nem látszik, hogy az adat címét vagy értékét jelenti

 

Eljárás Feldolgoz(Konstans x:TX):

Ez már világos beszéd!

1.2. Hozzáférési jog

Adatokat módosítani, illetve értéküket lekérdezni, használni lehet; eszerint egy adat hozzá­férés szempontjából négyféle lehet:

 

módosítható

lekérdezhető

 

Független

Nem

Nem

Független

Input

Nem

Igen

Konstans

Output

Igen

Nem

Virgin

I/O

Igen

Igen

Változó

Háttértár-adat

 

 

Memória-adat

1.3. Kezdőérték

A születéskor hozzárendelt érték. Változóknál deklarációban kaphat értéket, vagy eleve van típushoz rendelt kezdőérték, esetleg speciális 'nem definiált' érték, s így akkor mód van hivatkozás ellenőrzésre is (virgin)!

1.4. Hatáskör

A programszöveg azon tartománya, amelyben az adathoz hozzáférés megengedett.

Gondoljonk a blokkstruktúrájú programozási nyelvek egymásba ágyazódó adatdeklarációira! Így beszélhetünk: globális és lokális (sőt saját) adatokról.

A hatáskört „színezi” a láthatóság kérdése: ha egy adat azonosítója megegyezik egy olyan adatéval, amelynek hatáskörébe esik, akkor azt elérhetetlenné teszi a saját hatáskörében, hiszen az adott név alatt neki van elsősége.

Példa:


Változó

  x:TX
Konstans
  y:TY=(…)

  [
itt az x TX, az y TY típusú]

Eljárás E1(Változó x:TX2):
  Változó
    y:TY2
  [
itt az x TX2, az y TY2 típusú]
 
Eljárás vége.

  [
itt az x TX, az y TY típusú]

1.5. Élettartam

A futási időnek az az intervalluma, amelyben az adat azonosítója mindvégig ugyanazt az objektumot jelöli.

Meggondolandó a hatáskörrel való kapcsolat! (Globális, lokális adatok hatásköre és élettartama, továbbá a „dinamikus”, azaz futásközben a programozó döntése szerint születő és megszűnő adatok. L. később!)

1.6. Értéktípus

Az adatoknak az a tulajdonsága, hogy értékei mely halmazból származnak (értékhalmaz) és tevékenységeknek (eljárások függvények, operátorok) mely „készlete, amely létrehozza, felépíti, lerombolja és részekre bontja”, alkalmazható rá (asszociált műveletek).

2. Az értéktípus

2.1. Az értéktípusról általánosságban

Összetettség (struktúráltság) szempontjából:

Adatstruktúrálási módok:

Struktúrálási mód

Adatszerkezet

Keresztszorzat

AxB…

Rekord

(Megkülönböztetett) egyesítés

AxBx…(CxDÈExFÈ…)

Altarnatív rekord

Halmazképzés

2A

Halmaz

Iteráltképzés

A*

Sorozatfélék

2.2. Az asszociált műveletek osztályozása

Az asszociálható műveleteket csoportosítjuk:

·        típusátviteli függvények:

o       Konstrukciós műveletek (struktúrált érték létrehozása)

Példa:


Típus

  TPont=Rekord(x,y,z:Valós)
  TVárakozók=Sor(TEmber)   [l. később]
  TPMut=TPont’Mutató   [l.
később]
Változó
  p,q:TPont
  v:TVárakozók
  pm:TPMut

  p:=TPont(1.0,0.0,0.0)
  Üres(v)   [l. később]
  Létrehoz(pm,p); q:=TPMut(pm)   [l.
később]

o       Szelekciós operációk

Példa:


  hossz:=SQRT(p.x
^2+p.y^2+ p.z^2)
  vevő:=Sorból(v)   [l. később]

o       Azonosság és más relációk

Példa:


Típus
  TNap=(hétfő,kedd,szerda,csütörtök,péntek,
        szombat,vasárnap)
Konstans
  napSzám:Egész(Számosság’TNap) [l.
később]
Típus
  TNapNév=Tömb(1..napSzám:Szöveg)

Konstans
  SNapHu:TNapNév=
         (’hétfő’,’kedd’,’szerda’,’csütörtök’,
          ’péntek’,’szombat’,’vasárnap’)

  SNapEn=
         (’Monday’,’Tuesday’,’Wednesday’,
          ’Thursday’,’Friday’,
          ’Saturday’,’Sunday’)
Változó
  nN:TNapNév

  Ha c=’E’ és nN=SNapHu akkor nN:=SNapEn

o       Számosság-függvény

Példa:


Típus
  TNap=(hétfő,kedd,szerda,csütörtök,péntek,
        szombat,vasárnap)
Konstans
  napSzám:Egész(Számosság’TNap)
  SNap:Tömb(1..napSzám:Szöveg)=
       (’hétfő’,’kedd’,’szerda’,’csütörtök’,
        ’péntek’,’szombat’,’vasárnap’)

Példa:


Típus
  TNap=(hétfő,kedd,szerda,csütörtök,péntek,
        szombat,vasárnap)
Konstans
  SNap:Tömb(Min’TNap..Max’TNap:Szöveg)=
       (’hétfő’,’kedd’,’szerda’,’csütörtök’,
        ’péntek’,’szombat’,’vasárnap’)

Példa:


  első:=Sorszám(hétfő) [első:=0]
  utsó:=Sorszám(vasárnap) [utsó:=6]

o       Be/Ki műveletek (konverzió az input/output és belsőábrázolás között)

Példa:


Változó
  nap:TNap

  Be: nap   [nap<Max’TNap]
  Ki: Következő(nap)

Példa:


Típus
  TPont=Rekord(x,y,z:Valós)
Változó
  kövNap,nap:TNap
  p,q:TPont

  kövNap:=Következő(nap)
  táv:=Hossz(p)-Hossz(q)  [Hossz a programozó
                           által definiált fv.]

3. Egyszerű Adattípusok

Alábbiakban definiáljuk az „eredendően” szerkezetnélküli ún. skalár típusokat, megadva ezek értékhalmazát, a hozzátapadó műveletek, relációk halmazát. Két típus „lóg ki” ezek közül. A szöveg (string) és a mutató típus. A szöveg típust azért soroljuk ide, mert a programozási nyelvek majd mindegyike fölkínálja, s így hozzátartozik az ún. elemi (natív) típusokhoz, másrészt abban jócskán eltér a későbbiekben tárgyalt összetettektől (s így oda még kevésbé illik), hogy elemeinek típusa nem választható meg szabadon. A mutató típus valóban szerkezet nélküli, hisz értékhalmaza a memóriacímek egy részhalmaza (ezért tárgyaljuk itt), de az is kétségtelen, hogy oly szorosan tapad valamely összetett típushoz, amely címét tartalmazza, hogy anélkül értelme sem lenne bevezetni.

A tárgyalt típusokról a következőket adjuk meg:

A rövid leírás kedvéért időnként alkalmazni fogjuk a Típ jelölést az éppen tárgyalt típusra való hivatkozásra. (Értelemszerűen akkor, amikor a típus nevét a programozó feladata megadni.) Származtatott típus esetén pedig gyakorta a TB a bázistípusra (amelyből kiindulunk) utal.

3.1. Elemi adattípusok

3.1.1. Egész

Értékhalmaz

-32768..32767ÌZ
(Min'Egész..Max'Egész)

Kezdőérték

0

Műveletek

+, -, *, Div (egészosztás), Mod, - (unáris mínusz), ^ (pozitív egészkitevős hatványozás)
:=

= , <, , , >,
Be:, Ki:

Ábrázolás

ún. kettes komplemens kódú

Megjegyzés:

A programozási nyelvek többféle értékhalmazzal is felkínálnak efféle típusokat. Pl. a Turbo Pascal megkülönböztet BYTE, SHORTINT (8 bites); INTEGER, WORD (16 bites); LONGINT (24 bites)… Ennek ellenére nem tartjuk fontosnak az algoritmikus nyelvben ezeket megkülönböztetni, annál is inkább szükségtelennek gondoljuk, mert ha kell a „szélsőséges értékeire” tudunk hivatkozni a Min’Egész és Max’Egész típusfüggvénnyel anélkül, hogy letennénk a voksunkat bármyik konkrét értékhalmaz mellett.

3.1.2. Valós

Értékhalmaz

???..??? ÌR
(Min'Valós..Max'Valós)

Kezdőérték

0.0

Műveletek

+ , - , * , /, - (unáris mínusz), ^
:=

= , <, , , >,
Be:, Ki:

Ábrázolás

ún. lebegőpontos ábrázolás (pontosabb lenne, ha e típust racionálisnak neveznénk, mert csak racionális számot képes ábrázolni), vagy
ún. pakolt decimális ábrázolás

Megjegyzések:

Vegyük észre, hogy ugyanazok a műveleti jelek most –ha hasonló jelentéssel is, de– mégsem egyészen ugyanazzal a jelentéssel bírnak. (Polimorfizmus.)

Itt már föl sem vállaltuk az értékhalmaz pontosítását, mivel ez sokkal inkább implementáció függő, mint az egész számoké.

3.1.3. Logikai

Értékhalmaz

Hamis..Igaz ÌL
(Min'Logikai..Max'Logikai)

Műveletek

nem, és, vagy
:=

= , <, ≤, ≥, >, ≠
Be:, Ki:

Ábrázolás

0 ≡ Hamis, -1 ≡ Igaz – azaz (valamely) egész típusra visszavezetés;
néha 1 ≡ Igaz – ekkor 1 bites az ábrázolás

3.1.4. Karakter

Értékhalmaz

0..255 -kódú jelek
(Min'Karakter..Max'Karakter)

Kezdőérték

Min’Karakter

Műveletek

Karakter(.) Karakter: Egész→Karakter,
Sorszám(.) – Sorszám Karakter→Egész  (belső kód),
:=

= , <, ≤, ≥, >, ≠
Be:, Ki:

Ábrázolás

Valamely kódrendszer szerinti kód, mint előjelnélküli szám. (Fix bitszámú kód.)

Megjegyzés:

Sokfajta kód rendszer létezik (legismertebb az ASCII). Többségük fix bitszámú, de elképzelhető változó bitszámmal dolgozó is. (L. Huffman-kódolás.)

3.1.5. (Absztrakt)Felsorolástípus

Értékhalmaz

(konstans1, konstans2, ... , konstansN)  (Típ jelölje a típus azonosítóját)
(Min'Típ=konstans
1..Max'Típ=konstansN)

Kezdőérték

Min’Típ vagy NemDef

Műveletek

Következő(TF-típusbeli kifejezés), Következő: TF→TF U {NemDef},
Előző(Tip-típusbeli kifejezés), Előző: Tip→Tip U {NemDef},
Sorszám(Típ-típusbeli kifejezés), Sorszám: Tip→Egész,
Típ(egész típusú kifejezés), Típ: [0..Sorszám(Max'Tip)]→Tip,
:=

= , <, ≤, ≥, >, ≠ (a felsorolás sorrendje egyben rendezés is)
Be:, Ki:

Ábrázolás

A minimálisan szükséges bitszámú (»log2(Számosság’Tip)) kód, mint előjelnélküli szám.

Megjegyzések:

Az értékhalmazban szereplő szimbólikus nevek (a típus konstansai) nem lehetnek más típus (pl. egy másik felsorolástípus) értékhalmazában, ez a feltétel amiatt szükséges, mert a fordítóprogram így mindig egyértelműen el tudja dönteni a konstans „hovatartozását”. Természetesen „…” nem szerepelhet a felsorolásban, mivel a fordítónak nincsenek „előzetes elképzelései” arról, hogy mik lehetnének ott a felsorolásban.

Mindazon típusokat, amelyek értékkészletét konstansainak egyszerű fölsorolásával adhatunk vagy adhatnánk meg diszkrét típusnak hívjuk. Tehát ilyen az Egész, a Logikai, a Karakter, de lehet bármilyen –a program írója által kreált– absztrakt konstansokat tartalmazó fenti absztrakt felsorolástípus is.

Példa:

Típus
  TNap=(hétfő, kedd, szerda, csütörtök, péntek, szombat,
       
vasárnap)
Változó
 
tegnap,ma,holnap: TNap
Konstans
 
ünnepnap: TNap(vasárnap)

  Ha ma=Min'TNap akkor  tegnap:=Max'TNap
               különben holnap:=Előző(ma)
  Ha ma=Max'TNap akkor  holnap:=Min'TNap
               különben holnap:=Következő(ma)
  első:=Sorszám(hétfő) [első:=0]
  utsó:=Sorszám(vasárnap) [utsó:=6]

3.1.6. (Rész)Intervallumtípus

Csak diszkrét típusból származtatható egyszerű típus. Jelöljük a bázistípust TB-vel.

Értékhalmaz

konstans1..konstans2 ÍTB
(Min'Típ= konstans
1..Max'Típ=konstans2)

Kezdőérték

Min’Típ vagy NemDef

Műveletek

TB-vel megegyező műveletek (korlátozva persze az értékhalmazra)

Ábrázolás

TB-vel megegyező ábrázolás

 

Példa:

Típus
  TNap=(hétfő, kedd, szerda, csütörtök, péntek, szombat,
       
vasárnap)
  TMunkanap=hétfő..péntek
  THétvége=szombat..vasárnap
Változó
 
tegnap,ma,holnap: TNap
Konstans
 
ünnepnap: TNap(vasárnap)

  Ha ma=Min'TNap akkor  tegnap:=Max'TNap
               különben holnap:=Előző(ma)
  Ha ma=Max'TNap akkor  holnap:=Min'TNap
               különben holnap:=Következő(ma)
  első:=Sorszám(hétfő) [első:=0]
  utsó:=Sorszám(vasárnap) [utsó:=6[SzP2]???
 ]

Megjegyzések:

1.      Érdekes anomáliára vezet a Sorszám és Típ típuskonstrukciós függvény következetes bevezetése. Miért?

2.      Ha a diszkrétségtől eltekintünk kiterjeszthető a Valósakra is az intervallumtípus-képzés. Ez persze csak azzal a többlettel képzelhető el, hogy egy lépésközt is megadunk a származtatáshoz (amelyre vannak persze elvárások).

3.      További általánosítás lehetséges: nem első és utolsó elem által meghatározott része egy értékhalmaznak, hanem valamilyen (predikátummmal definiált) tulajdonságnak elegettevő elemeinek részhalmaza.

Példa:

Típus
  TTermSzám=Egész
            [Típusinvariáns: i:TTermSzám : i>0]
  TPrímek=TTermSzám
          [Típusinvariáns: n:TPrímSzám : n
ÎTTermSzám Ù
                                         Prím?(n)]
          Függvény Prím?(Konstans x:Egész):Logikai
           
          Függvény vége.

3.1.7. Szövegtípus

Értékhalmaz

MaxHossz-szúságú jelekből álló karakterláncok halmaza ÌKarakter*
(Min'Szöveg..Max'Szöveg) – alfabetikus rendezés szerinti első és utolsó

Kezdőérték

’’ azaz Üres-szöveg (Min’Szöveg)

Műveletek

+, Hossz(.), Balrész(.), Jobbrész(.), Jele(.), :=

:=

= , <, ≤, ≥, >, ≠
Be:, Ki:

Ábrázolás

Rekord(hossz:Egész, jel:Tömb(1..MaxHossz:Karakter)) – Pascal-stílusú
Karakter*
x SzövegVégJel – C-stílusú

3.2. Mutató típusok

Az alcímbeli többes szám jogos, mert valójában tetszőleges (többnyire összetett) típushoz, mint bázistípushoz (TB) szervesen tartozhat egy-egy ilyen típus. Egy konkrét mutató típusú objektum csak egyfajta (nevezetesen TB-típusú) elemek kezdőcímeit hordozhatja. E szigorúság oka: az ellenőrizhetőség, biztonságosság.

Értékhalmaz

Memóriacím, amelyek valamely TB-típusú elem kezdőcíme, vagy Sehova
(rendezésnek nincs értelme
Þ Ø$Min'Típ, Max'Típ)

Kezdőérték

Sehova

Műveletek

Létrehoz(Változó m:Típ, Konstans e:TB) – az eljárás létrehoz a memóriában egy TB-elemet, amelynek értéke éppen ’e’, s címét teszi ’m’-be; ha nincs elegendő hely, akkor ’m’-be Sehova érték kerül. Elhagyható a kezdőértéket definiáló paraméter, ekkor a TB-beli iniciális értékű elem keletkezik.

Típ(Konstans m:Típ):TB – a függvény az ’m’-beli címnél kezdődő TB-elemet adja vissza értékként

:=

=,, <, £, ³, >

Be:, Ki:

Ábrázolás

Memóriacím

 

Példa:


Típus

  TBlokk=Tömb(1..MaxM:TElem)
  TBMut=TBlokk’Mutató
  TBlokkok=Tömb(1..MaxN:TBMut)
Változó
  e:TElem
  i:Egész
  b:TBlokk
  bk:TBlokkok
  bm:TBMut

  Ciklus i=1-től MaxN Div 2-ig
    Lefoglal(bm)  [bm-be kerül a lefoglalt TBlokk-nyi
                   terület címe]
    bk(i):=bm     [bk i. eleme egy dinamikusan lefoglalt
                   tömb címe]
   
  Ciklus vége
  bm:=TBlokk(bk(1))  [az első blokk címe bm-be]
  Ciklus
i=1-től MaxM-ig
   
TBlokk(bm)(i):=e  [TBlokk(bm) bm-nél kezdődő blokk
                       mint tömb
                       TBlokk(bm)(i) a tömb i. eleme]
  Ciklus vége
 
[vajon milyen értékek vannak a bk(2..MaxN) elemekben;
   és mit mond a TBlokk(bk(2..MaxN)) értékéről?]

4. Összetett adattípusok – típuskonstrukciók

Helyesebb összetett típusok helyett típuskonstrukciókról beszélni, mivel valahány összetevő típusból hozunk létre, konstruálunk egy újat; s az ilyeneket létrehozni képes eszközöket típuskonstrukciós eszközöknek hívni.

Többnyire nem magától értetődő az ilyen struktúrák rendezése, ezért sem a Min’, sem a Max’ típusfüggvényt nem jelezzük. (Megjegyezzük: természetesen nem elképzelhetetlen, sőt, hogy utólag valamyilen rendezést rájuk is definiáljuk. Erről majd később még szó eshet.)

A korábbi szokásos mondanivalók mellé bekerül a „konstrukció”, amelyben tisztázzuk az alkalmazás szintaxisát.

Rövitídés miatt a bázistípusokat sorszámozzuk és így jelöljük: TB1, TB2, …

4.1. Összetett típusok osztályozásai

A bázistípusok sokfélesége szerint –

Rákövetkezési reláció az elemei között –

4.2. Rekord

Konstrukció

Rekord(mező1: TB1, mező2: TB2)

Értékhalmaz

TB1xTB2x

Kezdőérték

Az egyes komponensekhez tartozó kezdőérték.

Műveletek

Típ(Konstans m1: TB1, m2:) – létrejön egy Típ típusú konstans m1, m2… mezőértékekből

objTip.mezői:TBi – a szokatlan szintaxisú művelet értéke az adott Típ típusú objektum (objTip) mezői mezőjének értéke…

objTip.mezői:TBi:=ei – a szokatlan szintaxisú értékadás eredménye az adott Tip típusú objektum (objTip) mezői mezőjének értékül adja ei-t…

:=

=, ≠

Be:, Ki:

Ábrázolás

A mezők folytonos memóriaterületre képezve, a felsorolás sorrendjében.

4.3. Alternatív rekord

Olyan rekordféléről van szó, amelynek valamely mezőjétől (mezőitől) függ további mezőinek típusbesorolása.

Konstrukció

Rekord(
  mező1
: TB1, … mezőK: TBK,
 
Alternatívák
    felt1(mező1,…)
esetén (mező-k sorozata),
   
    feltm(mező1,…)
esetén (mező-k sorozata)
Altarnatívák vége)

Értékhalmaz

TB1x…TBKxÈ(i=1..m)TBi,1x…TBi,ki

Kezdőérték

A nem egyértelműsége miatt NemDef.

Műveletek

A rekordhoz hasonlóan.

Ábrázolás

A mezők folytonos memóriaterületre képezve, a felsorolás sorrendjében, a hosszat a leghosszabb alternatívával számolva.

 

Példa:


Konstans
 
ffi: Egész(1)
 
: Egész(2)
Típus

  TDátum=...
  TNem=ffi..nő
  TKontroll=Függvény(TNem,Dátum,0..999):0..9
  Függvény
Kontroll(Konstans n:TNem,
                             d:Dátum,
                             x:0..999):0..9
    [Kontroll: egy TKontroll típusú konkrét függvény]
   
  Függvény vége.
Típus
 
TSzemSzám=Rekord(
    nem:TNem
    szülidő:TDátum
    sorszám:Egész
    ellenőr:TKontroll)
 
TSzemély=Rekord(
    szsz:TSzemSzám
    név:Szöveg
    Alternatívák
      nem=nő  esetén (lnév :Szöveg)
      nem=ffi esetén (katsz:Egész)
    Alternatívák vége)

Konstans
  Jézus:TSzemély((ffi,
                  1.12.25,
                  123,
                  Kontroll) [szsz mező tartalma],
                  ’Jézus Krisztus’ [név mező],
                  (123456) [nem=ffi
Þkatsz mező])

4.4. (Hatvány-)Halmaz

Csak véges (többnyire nagyonis korlátozott számosságú) típusnak definálhatjuk a hatványhalmaz-típusát.

Konstrukció

Halmaz(TB)

(Min'Típ=Æ..Max'Típ=TB-értékhalmaz) (a tartalmazás alapján rendezve)

Értékhalmaz

TB*

Kezdőérték

Üres halmaz

Műveletek

Î (eleme), Ç (metszet), È (egyesítés), \ (különbség), Æ vagy Üres (üres halmaz létrehozás), Üres? (logikai értékű függvény), :=

:=

= , < (Ì), ≤ (Í), ≥ (Ê), > (É), ≠

Be:, Ki:

Ábrázolás

Tömb(TB:Logikai) – azaz bitvektor az adott elem tartalmazása vagy nem tartalmazása szerint;

Lista(TB) – tartalmazott elemeinek felsorolása [l. később]

 

Példa:


Típus
 
TÓra=0..23
  TNap=Halmaz(TÓra)
Változó
 
ma,holnap:TNap
Konstans
 
munkanap:TNap(7..12,14..20)

  Üres(ma)  [ma „szabad”]
  Ha Üres?(holnap) akkor ma:=munkanap

4.5. Tömb

Konstrukció

Tömb(TIndex: TElem)

Értékhalmaz

TElemSzámoság(TIndex)

Kezdőérték

TElem típus kezdőértékei

Műveletek

objTip(index) (a Típ típusú objTip tömb i. eleme),
objTip
(index):=e (a Típ típusú objTip tömb i. eleme legyen ’e’ értékű)

:=

=,
Be:, Ki:

Ábrázolás

Az elemek folytonos memóriaterületre képezve, növekvő index sorrendben.

(L. később)

5. Sorozattípusok

Sorozattípusnak hívjuk azt a típust, amely

  1. homogén (azaz egyetlen bázistípusból vehetők elemei),
  2. egyértelmű rákövetkezési reláció van elemei között (az adott elemét legfeljebb egy elem követheti),
  3. egyetlen olyan eleme van, amelyet nem előz meg másik, s egyetlen olyan, amelyet nem követ.

5.1. Sorozatműveletek

Nagyon sokféle sorozattípus alkotható meg, mégha nem különböztetjük meg a különböző bázistípusúakat egymástól (azaz a strukturálisan aznosakat). Jellegzetes műveletegyüttest rendelve hozzájuk kapjuk a későbbiekben tárgyalt egyes, fontos alosztályait.

A legfontosabb műveletei, halmozva, a következők:

Művelet

Tevékenységleírás

Üres

Létrehoz, elemek nélkül.

Létrehoz

Létrehoz, struktúrától függő elemekkel.

Üres?/Teli?

Ellenőrzi, hogy ven-e eleme, ill. hogy bővíthető-e?

ElemSzám

Hány eleme van?

Beilleszt

Struktúrától függő helyre új elemet illeszt.

Kihagy

Struktúrától függő helyről elemet hagy el.

Első/Utolsó

Első, utolsó elemének értékét adja.

Elejéről/Végéről

Leválasztja a sorozat első, utolsó elemét, értékét is vissza adja.

ElsőUtániak/UtolsóElőttiek

Eldobja az első, utolsó elemet.

Elejére/Végére

A sorozat első eleme elé, utolsó eleme mögé illeszt egy újat.

Elem

Struktúrától függően meghatározott elemének értékét adja vissza.

ElemMódosít

Struktúrától függően meghatározott elemének új értéket ad.

Elsőre/Utolsóra

A struktúra első, utolsó elem lesz az aktuális (ha volt ilyen).

Előzőre/Következőre

A struktúra aktuális eleme (ha volt ilyen) legyen az eddigit megelőző, (valamelyik) követő.

Aszerint, hogy mely műveleteket engedjük meg egy sorozatfélénél beszélhetünk az alábbi típuskonstrukciókról. Nem jelöljük az „altípus-osztályokat”, továbbá a tevékenységeket nem a „hagyományos” nevüken említjük.

Típuskonstrukció

Tevékenységhalmaz

Tömb

(Létrehoz, ElemSzám,) Elem, ElemMódosít

Lista

Üres, Üres?, Teli?, Beilleszt, Kihagy, Elsőre, Utolsóra, Előzőre, Következőre, Elem, ElemMódosít

Sor

Üres, Üres?, Teli?, ElemSzám, Első, Elejéről, Végére

Verem

Üres, Üres?, Teli?, ElemSzám, Első, Elejére, Elejéről

Táblázat

Üres, Üres?, Teli?, ElemSzám, Elem, ElemMódosít…

InputSzekvenciálisFile

Létrehoz, Üres?, Elejéről

OutputSzekvenciálisFile

Üres, Üres?, Teli?, Végére

DirektFile

Üres, Létrehoz, Üres?, Teli?, ElemSzám, Elem, ElemMódosít…

AsszociatívFile

Üres, Üres?, Teli?, ElemSzám, Elem, ElemMódosít…

5.2. Sorozatok ábrázolásának lehetőségei

Folytonos ábrázolás, amikor az elemeket a memóriában a kezdőcímtől szorosan egymásután helyezzük el.

Memória

 

 

 

 

Elemsorszám:

 

1.

2.

3.

N.

 

 

kezdőcím

 

 

 

 

 

 

Láncolt ábrázolás, amelynél az elemek a memóriában elszórva helyezkednek el, a rákövetkezést mutatóval biztosítjuk.

Memória

 

m2

 

0

 

m3

 

m4

Elemsorszám:

 

1.

 

N.

 

2.

 

3.

 

 

kezdőcím=m1

 

 

mN

 

 

m2

 

 

m3

 

 

Blokkolt ábrázolás ötvözi az előbbi kettőt úgy, hogy láncothoz létre az elemek egy adott számú elemet tartalmazó tömbjéből.


 

Tartalom

ProgramozásMódszertan 2 előadás’2002 (vázlat) 1

1. Adatok jellemzői 1

1.1. Azonosító. 1

1.2. Hozzáférési jog. 1

1.3. Kezdőérték. 1

1.4. Hatáskör 1

1.5. Élettartam.. 2

1.6. Értéktípus. 2

2. Az értéktípus. 2

2.1. Az értéktípusról általánosságban. 2

2.2. Az asszociált műveletek osztályozása. 3

3. Egyszerű Adattípusok. 5

3.1. Elemi adattípusok. 6

3.1.1. Egész. 6

3.1.2. Valós. 6

3.1.3. Logikai 7

3.1.4. Karakter 7

3.1.5. (Absztrakt)Felsorolástípus. 8

3.1.6. (Rész)Intervallumtípus. 9

3.1.7. Szövegtípus. 10

3.2. Mutató típusok. 10

4. Összetett adattípusok – típuskonstrukciók. 11

4.1. Összetett típusok osztályozásai 11

4.2. Rekord. 12

4.3. Alternatív rekord. 12

4.4. (Hatvány-)Halmaz. 13

4.5. Tömb. 14

5. Sorozattípusok. 14

5.1. Sorozatműveletek. 14

5.2. Sorozatok ábrázolásának lehetőségei 15

 

 


 [SzP1]
dszeres programozás – Programozási bevezető (μlógia 18) [55-67, 68-74]

Módszeres programozás – Adattípusok (μlógia 34) [10-16, 17-35]

 [SzP2]
A Sorszám(vasárnap) melyik típushoz asszociált függvény a vasárnap helyen? (a TNap-é vagy a Thétvégé-é)