01. Adatszerkezetek

Az adatok mennyisége, mértékegysége

Az adatok bérmilyen módon tároljuk, helyezzük el őket helyet foglalnak. A helyfoglalás mértékegyére az alábbiakat használjuk:

bit - egy daran igaz-hamis állítás, az adattárolás legkisebb egysége.Két féle értéket vehet fel egy bit mennyiségű adat.

byte (bájt) - 8 db bit. Mivel minden bit két féle értéket vehet fel, ezért 8 bit 2*2*2*2*2*2*2*2 = 256 féle értéket vehet fel vagy másképpen ennyi féle adatot tárolhatunk nyolc biten.

Kbyte (kilobyte) - 1024 bájt = 2*2*2*2*2*2*2*2*2*2 bájt = 210 bájt

MByte  (megabyte) = 1024 Kbyte

GByte (gigabájt) = 1024 Mbyte

TByte (Terabyte) = 1024 Gbyte

Egy pár száz oldalas könyvben lévő szöveg mennyisége 100-200 kbyte

Egy telefon memóriája 32-64 GByte

A mai modern merevlemezek 1-2 Tbyte adatot tudnak tárolni.

Az adatok típusai

Az informatikában az adatok tárolása nem ömlesztve, hanem rendszer szerint történik. Az adatokat a tárolóterületeken egymás után sorban (sorfolytonosan) helyezzük el. Fontos az elhelyezett adatok típusa is, mert egy szám, egy szöveg, vagy egy logikai érték (igen-nem) több-kevesebb helyet foglal el a tárolóhelyen. Az adat által elfoglalt tárolóhely mértéke függ az illető adat típusától.

Az informatikában tehát az adatokat típusokra osztjuk és egy adott típusnak mindig ugyanannyi tárolóhelyet biztosítanak az informatikai rendszerek.( Ez a mondatom persze nem mindig igaz, mert különböző programozási nyelvek kicsit másképp kezelik a típusokat, de egy nyelven belül azért ez következetesen igaz)

Az adatok fontos tulajdonságai

  • típusa (előre megadott típusok közül választhatunk)
    • mérete (helyfoglalása) - ami általában következik a típusból
    • A típus által felvehető lehetséges értékek (értéktartomány)
  • A letárolt adat helye (címe)
  • értéke

Amikor egy programozási nyelven adatokat akarunk tárolni, akkor el kell döntenünk, hogy milyen típusokat használunk, mert minden adattípusnak vannak jellemző felhasználási területei. Amikor egy adatot tárolunk a memóriában vagy a háttértáron, akkor az adat tárolásának helyét az adat címének hívjuk.A programozás hajnalán az adatok címét közvetlenül egy memóriacímmel jelezték, de a modern programozási nyelvekben van egy adatkezelési mechanizmus, ami biztosítja azt, hogyha egy adatnak nevet adunk, akkor a rendszer gondoskodik arról, hogy az adat címe is megfelelően legyen kezelve. Ha egy adatnak nevet adtunk és a rendszerünk ismeri a program futása közben az adat címét, akkor azt az adatot később el tudjuk érni, a tartalmát ki tudjuk ioratni, törölni tudjuk az értékét vagy módosítani is tudjuk.

Változó

Ha egy adatot elnevezünk és utána tudjuk módosítani az értékét, akkor azt változónak hívjuk (variable)

Konstans (Állandó)

Olyan adat, amelyet névvel nevezünk el, de a program futása során az értéke nem váltizik. Általában csupa nagybetűből álló kifejezéssel nevezzük el a konstansokat.

Elemi adattípusok

Logikai (boolean)

  • Mérete: 1 bit (1 byte)
  • Lehetséges értékei: Igen-nem, igaz-hamis, yes-no

Egész (Integer, int)

  • Mérete: 2 byte
  • Lehetséges értékei: -32768....0...32767 (=-28 ...0....27), egész számok

Lebegőpontos (Float)

  • Mérete: 5-6 byte
  • Lehetséges értékei:10-11 ....0 ......1011 nagyságrendú pozitív és negatív tizedes törtek.

Karakter (betű)

  • Mérete: 1 vagy 2 byte ( a karakterek kódolásától függően)
  • Lehetséges értékei: 256 féle vagy 65536 (=-216) féle írásjel (betű)

Szöveg (String)

  • Mérete: A szöveget alkotó karakterek hosszának összege. Általában nem lehet korlátlan méretű, de szokásosan maximált a mérete, pl: 256 karakter, 65536 karakter, std.
  • Lehetséges értékei: tetszőleges (!) hosszúságú betűkből álló szöveg. Általában van felső korlátja.

Összetett adattípusok

Tömb

  • Definíció: Azonos típusú adatokból álló sorozat.
  • A tömb elemei: a tömböt alkotó adatok
  • A tömb indexe: egy sorszám, amely általában 0-tól a tömb elemszáma-1 -ig terjedő egész szám lehet. Általában i, j,k stb.-vel jelöljük.
  • A tömb elemeinek elérése: A tömb nevével és az indexével lehetséges. T[i]
  • A tömb mérete: A tömb elemeit alkotó adatok méreteinek az összege

A tömbök adatainak feldolgozását általában ciklusokkal oldjuk meg. A ciklusok általában a tömb első elemével indulnak és végiglépkednek a tömb összes elemén.

Egy dimenziós tömbről bezsélünk, ha csak egy indexxel hivatkozunk a tömb elemeire. Ezt egy vonal mentén lévő adatokkal lehet elképzelni

Két dimenziós tömbről beszélünk, ha akét indexet használunk az adatok eléréséhez. ezt egy sík pontjaival lehet ábrázolni

Rekord

  • Definíció: Különböző típusú adatokból álló adatszerkezet
  • A rekord mezői: Az adatszerkezetet alkotó adattípusok.
  • A rekord mezőinek elérése: A mezőkre a nevükkel hivatkozunk: pl. r.nev
  • A rekord mérete: Azrekordot alkotó adatok méreteinek összege

Az adatbázisokban rekordokban tároljuk az összetartozó adatokat

Lista

  • Definíció: Olyan adatszerkezet, amikor a lista adatelemein kívül minden elemben van egy hivatkozás a lista következő elemére. Ezt mutatónak hívják.
  • A lista adatainak típusa: Legegyszerűbb esetben a lista azonos típusú adatokból áll, de gyakan különböző adattípusok alkotják
  • Listafej: Az a hely a memóriában, amelyet az informatikai rendszer mindig ugyanott talál meg. A listafejből egy "muttaó" mutat a lista első elemére.
  • Egy irányú lista: Ha csak az első elemtől indulva lehet bejárni a laistát, azaz a lista elemeiben csak a lista következő elemére hivatkozó mutató van. A lista utolsó eleme esetén egy lehetetlen értékre hivatkozó mutató van
  • Kétirányú lista: Ha az elemekben a következő elemre és az előző elemre is hivatkozik egy mutató. 

Lista adatszerkezetet használunk például a merevlemezek fájljainak tárolásához.

Osztály

Objektum-orientált programozásnál használjuk. Az osztály hasonlít a rekordhoz, de nem csak adatokat tárolunk benne, hanem az adatok feldolgozásához használható programrészeket - metódusokat - is.

Speciális adattípusok

Mutató

  • Definíció: A memória vagy egyéb tárolóeszköz címét tároló adat. Segítségével el lehet érni a megadott helyen lévő adatot
  • Mérete: Az éppen használt fizikai (vagy logikai) eszköz címzéséhez használható adat mérete. Általában 2, 4, 8, 16 byte.

A magas szintű programozási nyelvek általában kerülik a mutatók programozó általi közvetlen használatát, mert a helytelen használat program futási hibákhoz vezet. Valójában a programok futás közben mindig mutatókat használnak csak ezt eldugják a programozók elől.

Egyes programozái nyelvek esetén (pl. C) a mutatónak is lehet típusa. Ekkor a típus egyúttal azt is jelenti, hogy milyen típusú adatra mutat az érték.

Erőforrás

  • Definíció: Speciális mutató típus. Ebben az esetben a mutató egy összetett adattípusra mutat, amely a programozási környezet vagy futtató rendszer speciális erőforrásának elérését biztosítja.

Például egy File megnyitásakor ilyen mutató áll rendelkezésünkre.