Adatbrzols algoritmusok Ksztette Pet Lszl Informci kd Az
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. Vb=b. Va –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ámrend szernél alkalmazott szorzáshoz. Érdekes és jellemző törvényszerűség, hogy ahány egyes van a szorzóban, annyiszor kell össze adnunk 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ódrend szer terjedt el a mikrogépeken és mivel ma egyre nagyobb hang sú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öz tá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
- Slides: 48