Adatábrázolás, algoritmusok Készítette: Pető László
Információ, kód Az információra sokféle meghatározást adtak már. Nevezik hírnek, új ismeretnek, megszüntetett bizonytalanságnak, értesülésnek, közlésnek, felvilágosításnak, tájékoztatásnak Kód alatt az információhoz kölcsönösen és egyértelműen hozzárendelt jelet, jelsorozatot értünk. Ilyen például az írott szó
Információközlés Az átviteli csatorna nagyon változatos lehet. Beszéd esetén ez a bennünket körülvevő levegő; elektronikus adattovábbításkor valamilyen vezeték (például telefon, számítógépes hálózatok) vagy az éter (rádióhullámok). A "zaj" minden csatorna jellemző tulajdonsága. Zajnak tekintünk minden olyan zavaró tényezôt, ami a csatornában az információ megsérüléséhez vezet.
Matematikai alapok minden adat és információ ki-be forgalmazása a kettes számrendszeren alapul A számítógép elemi cellájában az ilyen információt tárolja
Bit, byte Az ilyen elemi, tovább már nem osztható információt hívjuk 1 bitnek Sokan a bitet az információ alapegységének is hívják 8 darab bit egymásutánja egy byte Egy byte lehetséges értékei: 0 <= byte <= 255
Kettes számrendszer
Mértékváltás a további osztályozás is a 2 hatványai szerint történik! (Megjegyzés: 210 = 1024)
Logikai műveletek ÉS (AND) VAGY (OR) NEM (NOT) KIZÁRÓ VAGY (XOR)
ÉS (AND) Például: Ha egy természetes szám prímszám és páros, akkor az a kettő. 1. állítás: a szám prím. 2. állítás: a szám páros. Logikai művelet: ÉS. Következtetés: a szám a kettő.
VAGY (OR) Például: Mivel erős szemüveget hordasz, vagy kontaktlencséd van, ezért rossz a szemed. 1. állítás: erős szemüveged van. 2. állítás: kontaktlencséd van. Alkalmazott művelet: VAGY. Következtetés: rossz a szemed.
NEM (NOT) Például: Ha egy természetes szám páros és nem nulla és kisebb, mint tíz és hárommal osztható, akkor az a szám a hat. 1. állítás: a szám páros. 2. állítás: a szám NEM nulla. (Alkalmazott művelet: a NEM) 3. állítás: a szám kisebb, mint tíz. 4. állítás: a szám hárommal osztható. Alkalmazott művelet: ÉS - többszörösen, valamint a kiemelt esetben a NEM. Következtetés: a szám a hat
KIZÁRÓ VAGY (XOR)
Logikai műveletek Asszociativitás: a műveletek eredménye független a zárójelezéstől a V (b V c) = (a V b) V c a & (b & c) = (a & b) & c Kommutativitás: a műveletek eredménye független az operandusok sorrendjétől: a V b = b V a a & b = b & a
Logikai műveletek Disztributivitás: a közös művelettel kapcsolódó elem (a közös tényező) a zárójelen kívülre emelhető: a V (b & c) = (a V b) & (a V c) a & (b V c) = (a & b) V (a & c) Abszorbció: a V (a & b) = a a & (a V b) = a
Logikai műveletek BOOLE: a V nem a = igaz a & nem a = hamis a V hamis = a a & hamis = hamis a V igaz = igaz a & igaz = a nem ( nem a ) = a
Logikai műveletek DE MORGAN nem ( a & b ) = nem a V nem b nem ( a V b) = nem a & nem b
Összeadás kettes számrendszerben az eredmény kizárólag 0 vagy 1 lehet. 0 meg 0 nyilván valóan 0, 1 meg 0 valamint 0 meg 1 szintén egyértelműen 1. 1 meg 1 esetén viszont az eredmény 0 és keletkezik egy átvitel (carry), amit az előtte lévő helyiértékhez kell hozzáadni
Szorzás kettes számrendszerben hasonlít az iskolában megismert, tízes számrendszernél alkalmazott szorzáshoz. Érdekes és jellemző törvényszerűség, hogy ahány egyes van a szorzóban, annyiszor kell összeadnunk a szorzandót, amit értelem szerűen a szorzóban lévő helyiértékeknek megfelelően kell eltolnunk
Kettes komplemens 2110 értékét a kettes komplemensbeli ábrázolása alapján a következőképpen számíthatjuk ki: -2110 = -32 + 8 + 2 + 1
Kivonás kettes számrendszerben 30-26 művelet helyett 30+(-26) műveletet végezzük el
BCD kód A kettes számrendszerbeli számoknak van egy nagy hátrányuk: lebegőpontosan nem mindig ábrázolják pontosan a decimális számokat A számítógépes bűnözés első esetei is innen erednek: a banki programozó - sok kicsi sokra megy alapon - a saját számlájára utalta a kerekítés során keletkező tört- filléreket, pontosabban töredék centeket.
BCD kód minden decimális számjegyet a bináris megfelelőjével, azaz úgy mondjuk, hogy a BCD kódjával helyettesítünk Például az 168310 bináris megfelelője: 11010010011, azaz 11 számjegy, míg a BCD-kódja: 0001 0110 1000 0011, azaz 16 számjegy
Karakterek Az EBCDIC egy olyan 8-bites kódrendszer, amely a korábban elterjedt lyukkártyához hasonlóan zónákat és számokat használ; az ASCII-kódot azért fejlesztették ki, hogy számítógépek közötti kommunikációt - egy közösen használt kódtáblázattal - elősegítsék. Ez a kódrendszer terjedt el a mikrogépeken és mivel ma egyre nagyobb hangsúlyt kap az adatátvitelben, ezért ezt a kódrendszert részletesebben tárgyaljuk
ASCII kódtábla
Logikai értékek kontextustól függően nevezhetjük igaznak vagy hamisnak, sorrendben 1-nek vagy 0- nak, magasnak vagy alacsonynak az igaz értéket 1-nek, míg a hamisat 0-nak kódoljuk. Erre a kétjelentésű kódra épül matematikai logika gazdag eszköztára.
Nyolcas, tizenhatos számrendszer a számítógépek állapotára, adatok, programok elhelyezkedésére vonatkozó információkat gyakran nyolcas (oktális) vagy tizenhatos (hexadecimális) számrendszerben kapják meg A bináris számrendszerekben kifejezett számok ugyanis túl hosszúak, és nehezen olvashatók, a tízes számrendszerbe való átalakításuk pedig hosszadalmas, és esetenként pontatlanságra is vezethet.
Számrendszerek
Adat Az adatmező az a jelsorozat, amely az adatfeldolgozás szempontjából egységnek tekinthető. (Egy személyiadat-nyilvántartás állhat név, személyi szám, foglalkozás, iskolai végzettség, lakcím, stb. adatmezőkből.) A rekord (record, adatcsoport) az egymással kapcsolatban álló adatok egységként kezelt halmaza. (Az előző példa adatmezői egy személyre vonatkoztatva egy rekordot képeznek.)
Fájl Egy adott feladathoz szükséges, egymással kapcsolatban álló adatok szervezett halmazát, melyet valamilyen szempontból egységként kezelünk, fájlnak (file, adatállomány) nevezünk. (Például egy évfolyam személyi adatai rekordjainak összessége.) rendszerint rekordokból épül fel többnyire már nem fér el a számítógép központi memóriájában, ezért valamilyen külső tárolón helyezik el.
Adatbázis egymással kapcsolatban álló adatok szervezett halmaza magában foglalja az adatfeldolgozó rendszer működéséhez, az adatfeldolgozási folyamathoz szükséges információkat, az adatok közötti kapcsolatokat
Adatábrázolás a számítógép minden információt kétállapotú elemek sorozatával képes tárolni a gép egy számot a 0 és 1 számjegyekből álló véges sorozattal ábrázol 16 bites, 32 bites számábrázolás
Törtek ábrázolása Fixpontos (A kettedespont helye fix) Lebegőpontos (kettes számrendszerbeli normálalak)
Fixpontos ábrázolás a képzeletbeli kettedes vesszőt a 7. és a 6. bit közé tettük ki rendkívül összeszűkült az ábrázolható számtartomány igen pontatlan a számunk tört része
Lebegőpontos ábrázolás mantissza;(1/2 < m < 1 ) karakterisztika;
Lebegőpontos ábrázolás
Program utasítássorozat Valamely algoritmusnak, eljárásnak gépi utasításokkal vagy programozási nyelvek utasításaival történő ábrázolása, leírása, kódolása
Algoritmus Véges számú, előre ismert műveletek olyan sorozata, amely megadja egy feladat vagy problémakör megoldásának pontos leírását, a megoldáshoz vezető műveletek természetét és sorrendiségét.
Kódolás Valamely feladatot megoldó eljárás műveleteinek gépi utasítások vagy programozási nyelvek utasításai segítségével történő leírása adott számítógépen való végrehajtás céljából
Programkészítés lépései 1. A feladat megfogalmazása. - írásban, röviden, tömören, - egyértelműség, pontosság, teljesség 2. Az algoritmus elkészítése. Az algoritmus-leíró eszközök: - folyamatábra - struktogram - mondatszerű leírás - szöveggel, mondatokkal
Programkészítés lépései 3. A kódolás. A program megírása. 4. A tesztelés, hibakeresés, javítás. 5. A hatékonyság növelése. 6. A dokumentációk elkészítése. - felhasználói , - fejlesztői.
Programozási nyelvek A számítógép csak ún. gépi kódú utasításokat tud végrehajtani. Alacsonyszintű programnyelvek: - gépi nyelv, - assembly szintű nyelvek, assemblerek. Magasszintű programozási nyelvek: - olyan mesterséges nyelv, amely megfelelő eszközökkel rendelkezik adatstruktúrák és az azokat kezelő eljárások egyértelmű leírására; - szintaxis - nyelvtani szabályok; - szemantika: - nyelvi elemek tartalmi jelentése.
A program értelmezése 1. Fordítóprogram (Compiler) Olyan rendszerprogram, amely a fordítás műveletét végzi el. - szintaktikai, ill szemantikai elemzés, - memória-kiosztás, - kódgenerálás, - tárgyprogram készítés.
A program értelmezése 2. Értelmezőprogram (Interpreter) Utasításról utasításra értelmezi a lefordítandó szöveget, s minden utasítást azonnal végrehajt. A magasszintű nyelven írt programok csak fordítás vagy értelmezés útján hajthatók végre a számítógépen
Folyamatábra
Struktogram
Mondatszerű leírás Egyszerű: Mondatok sorozata írja le a feladatok megoldását Félig kódoló: A mondatokat matematikai formalizmusokkal egészítjük ki.
Programozási típusok Struktúrált: a program lényegében függvényhívások sorozata. (BASIC, PASCAL, C) Objektum Orientált: A program objektumokkal foglalkozik, és ezek eseményeit kezeli le. ( DELPHI, VISUAL C++, VISUAL BASIC)
VÉGE