KURZUS: Bevezetés a számítógépek használatába
MODUL: Informatikai alapismeretek
1. lecke: Alapok
Cél: Az informatikai tárgy keretein belül elsőként számrendszerekkel és adatábrázolással (kódolással) foglalkozunk. Ez szükséges már az alapszintű Excel feladatok értelmezésénél és megoldásánál, valamint a Visual Basic, ill. MATLAB tanulmányok megkezdésénél. (Számítási módszerek tárgy, Informatika II.) | |||||||||||||||||||||||||||
A lecke kisebb terjedelmű olvasmányos részeket is tartalmaz. | |||||||||||||||||||||||||||
Követelmények: Ön akkor sajátította el megfelelően a tananyagot, ha | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Időszükséglet: A tananyag elsajátításához (a feladatok megoldásával együtt) hozzávetőlegesen 3 órára lesz szüksége. | |||||||||||||||||||||||||||
Kulcsfogalmak | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Számrendszerek | |||||||||||||||||||||||||||
Út a helyi értékes számrendszerekig, a tízes és a kettes számrendszer | |||||||||||||||||||||||||||
A számolás kialakulása és (korai) fejlődésének története az emberi kultúra rendkívül fontos és érdekes fejezete. Jegyzetünkben nincs mód arra, hogy ezt az izgalmas periódust kifejtve tárgyaljuk, ezért csak felsorolásszerűen közöljük azokat a főbb mérföldköveket, amelyek elvezettek odáig, hogy a ma használt - alapszintű - számolási módszerek, jelölések és rendszerek az élet természetes részévé váltak: | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
A következőkben áttekintjük a helyiértékes számrendszerek fontos jellemzőit. | |||||||||||||||||||||||||||
Tekintsük először a decimális rendszert, azaz legyen a rendszer alapja a tíz. A számírás azon a tényen alapul, hogy minden nemnegatív valós szám felírható olyan tíz-hatványok összegeként, amelyben minden különböző tíz-hatvány maximum kilencszer szerepelhet. Ennek az összegnek a rövidített felírásából keletkezik a szám helyiértékes alakja (a képviselt érték tehát a sorban elfoglalt hellyel is meghatározott, ellentétben a római rendszerrel). | |||||||||||||||||||||||||||
Nem kell mást tenni, csak az összegben szereplő tíz-hatványok együtthatóját jelentő számjegyeket a kitevők nagyság szerinti sorrendjében leírni, figyelembe véve, hogy amelyik kitevő nem szerepel az összegben, annak az együtthatója nyilván nulla. A nulladik kitevő együtthatója után vesszőt teszünk, ezzel jelezve, hogy befejeződött az egészrész, és a törtrész következik. | |||||||||||||||||||||||||||
Példa: Az 1948,4 valójában az összeg rövidítése. Ebben valóban maximum kilencszer szerepel minden előforduló tíz-hatvány. | |||||||||||||||||||||||||||
Általánosan, ha a számot -val jelöljük, az előzőek képletben: , ahol az egész rész számjegyeinek számát, a törtrész számjegyeinek számát jelenti. Minden lehetséges indexre , azaz valamelyik számjegy. Az összeg segítségével az számot egyszerűen úgy lehet felírni, hogy az együtthatókat az indexek szerint csökkenő sorrendben egymás után írjuk, az után tizedesvesszőt teszünk. Azaz . | |||||||||||||||||||||||||||
Ha a szám negatív, akkor igaz, hogy , de az már nemnegatív, így a hatványok összegére való bontás az előzőek szerint elvégezhető, és . Ezzel a módszerrel tehát bármilyen valós szám tíz számjeggyel (plusz az esetleges előjellel és a tizedesvesszővel) felírható. Az alapműveletek a rendszer segítségével könnyen automatizálhatók, ezért elvégzésük könnyen tanulható (ez volt a tízes alapú számrendszer egyik igen nagy előnye a római számolással szemben, és ennek lett köszönhető elterjedése is). | |||||||||||||||||||||||||||
Jegyezzük meg: a tízes számrendszerben a számok jeleinek helyiértékes felépítéséhez pontosan tíz számjegy kell. | |||||||||||||||||||||||||||
Természetesen a helyiértékes felírási mód nemcsak a tízes, hanem tetszőleges számrendszer esetén is használható, csak a számjegyeket kell megfelelően megválasztani, továbbá meg kell mutatni, hogy az adott számrendszerben is felírható minden szám a számrendszer alapjának hatványait megfelelően összegezve; mégpedig úgy, hogy az összegben minden hatvány legfeljebb az alap értékénél eggyel kevesebbszer szerepelhet (azaz: a számjegyek száma minden számrendszerben pontosan az alapszám értékével egyezik meg). | |||||||||||||||||||||||||||
A számjegyek kiválasztása tíznél kisebb alap esetén nem okoz fejtörést, egyszerűen elhagyjuk a tízes rendszer számjegyei közül a feleslegeseket (az éppen vizsgált alapnál nagyobb vagy egyenlő értékű jegyeket). Ha azonban az alap tíznél nagyobb, akkor új számjegyekre van szükség. A mai gyakorlat szerint nem új jeleket szokás új számjegyként kreálni, hanem az latin ábécé elejéről választunk annyi nagybetűt, amennyit az alap értéke megszab. | |||||||||||||||||||||||||||
A kettes számrendszerben is - a tízes rendszerhez hasonlóan - igaz, hogy minden nemnegatív valós szám felírható az alap, azaz a kettő hatványainak olyan összegeként, amelyben minden kettőhatvány maximum egyszer szerepel. Képlettel: tetszőleges nemnegatív a valós számra igaz, hogy , ahol minden lehetséges -re . Az szám kettes számrendszerbeli alakja pedig: . Negatív szám esetén ugyanúgy járunk el, mint ahogyan a tízes számrendszernél láttuk. | |||||||||||||||||||||||||||
A kettes számrendszer számjegyeit (a 0-t és az 1-et) angol nevük (binary digit) rövidítéséből bitnek is szokás nevezni. | |||||||||||||||||||||||||||
Írja fel kettes számrendszerben a következő számokat: 1, 2, 3, 4, 5. | |||||||||||||||||||||||||||
Vizsgáljuk meg most a tizenhatos számrendszerbeli felírásokat! Alkalmazva a tízes és a kettes rendszernél már tárgyalt ismereteket, azt kapjuk, hogy minden nemnegatív valós számra , ahol minden lehetséges -re . Az A, B, C, D, E és F jelek tizenhatos rendszerben rendre a 10, 11, 12, 13, 14 és 15 tízes számrendszerbeli számnak megfelelő számot jelentik. Az szám tizenhatos számrendszerbeli alakja pedig: . Ha a szám negatív, akkor ugyanúgy járhatunk el, mint a tízes és kettes alapú rendszer esetében láttuk. | |||||||||||||||||||||||||||
Példa egy egyszerű összeadásra a tizenhatos számrendszerben: | |||||||||||||||||||||||||||
Írja fel tizenhatos számrendszerben a következő számokat: 14, 15, 16, 17, 18. | |||||||||||||||||||||||||||
Fontos leszögeznünk, hogy a számok helyiértékes leírása után a kapott jelsorozatból nem lehet egyértelműen eldönteni, hogy az milyen számrendszerben lett megadva (gyakran persze a környezet alapján ez mégis egyértelművé válik). Ezért - sok esetben - a számjegyek mellett fel kell tüntetni valamilyen módon azt is, hogy melyik számrendszert használtuk. | |||||||||||||||||||||||||||
Mi a következőkben - ha szükséges - a szám jegyei után alsóindexben és zárójelben a számrendszer alapját (tízes számrendszerben) megadva jelezzük a használt rendszert. Például: , tizenhatos, , kettes, , tízes számrendszerben megadott számok. Vigyázzunk arra, hogy nem egyenlő -zel és nem egyenlő -tal. | |||||||||||||||||||||||||||
A hétköznapi életben a tízes számrendszer a megszokott. Az alap nélkül leírt számokat mi is mindig tízes számrendszerben megadott számnak tekintjük, és a tízes alapot csak akkor írjuk ki, ha külön hangsúlyozni szeretnénk azt, hogy a szám ebben a rendszerben van megadva. | |||||||||||||||||||||||||||
A fentiek alapján gondolja át, hogy hogyan lehet leírni egy számot nyolcas (oktális) számrendszerben. | |||||||||||||||||||||||||||
Számok átírása egyik számrendszerről másik számrendszerre | |||||||||||||||||||||||||||
Ezek után felmerülhet az a kérdés, hogy hogyan kell - ha szükségessé válik - egyik számrendszerben leírt számot egy másik számrendszerbe átírni. | |||||||||||||||||||||||||||
Mivel tetszőleges számrendszerből tízes számrendszerre való átírás az egyszerűbb, először ezzel foglalkozunk. Az átalakításhoz egyszerűen fel kell írni azt az összeget, amelynek rövidítéséből a szám jelsorozatát kaptuk. Azokat a számjegyeket, amelyek a tízes rendszerben nincsenek benne, helyettesíteni kell az értékük tízes rendszerbeli alakjával. Az így kialakult összegben már minden tízes számrendszerben van felírva, és ha elvégezzük a műveleteket az eredmény is tízes számrendszerbeli lesz (és ez éppen a szám tízes számrendszerben megadott alakja). | |||||||||||||||||||||||||||
Példa: | |||||||||||||||||||||||||||
Adja meg a , , , számok tízes számrendszerbeli alakját! | |||||||||||||||||||||||||||
A feladat megoldása számológéppel, illetőleg számítógéppel (alkalmas programmal) automatizálható, felgyorsítható. | |||||||||||||||||||||||||||
Megemlítjük azt is, hogy a mostanra már széles körben elérhető és elterjedt tudományos számológépek is meg tudnak oldani ilyen típusú feladatokat, de ezekkel a számolást segítő ügyes kis gépekkel jegyzetünkben nem foglalkozunk. | |||||||||||||||||||||||||||
Átváltás kettes számrendszerbe | |||||||||||||||||||||||||||
Az algoritmus népszerű változata az úgynevezett akasztófa módszer. Ennél az eljárásnál az átváltandó számot kell folyamatosan a számrendszer alapjával (jelen esetben kettővel) osztani mindaddig, amíg el nem érjük a nullát. Az osztás hányadosát lefelé egészre kerekítve írjuk az akasztófa bal oldalára, a maradékát pedig a jobbra. Papír-ceruza módszerként alkalmazva: | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
A keletkezett nullákat és egyeseket alulról felfelé kell leírni a bináris számban. | |||||||||||||||||||||||||||
Így végül: | |||||||||||||||||||||||||||
Hasonlóan a tízesbe történő átváltáshoz, ez a feladat is automatizálható, felgyorsítható számológéppel, illetőleg számítógéppel (alkalmas programmal). Bemutatunk egy Excel-példát, amely megvalósítja az egyszerű átváltást tízes számrendszerből. | |||||||||||||||||||||||||||
Töltse le a gyak1.xls fájl, és nyissa meg az Excellel! Tanulmányozza a táblázatot. Az átváltandó szám az S6 (sárga hátterű) cellába írandó! | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Számítsa ki a 2015 kettes és tizenhatos számrendszerbeli alakját! | |||||||||||||||||||||||||||
Valamely valós szám tetszőleges alapról tetszőleges alapra való átalakítása, ha sem sem nem tíz, két menetben történhet. Először alakítsuk át a számot tízes alapú formára, majd ezt alakítsuk tovább -alapú alakra. | |||||||||||||||||||||||||||
Természetesen a számokkal minden számrendszerben lehet műveleteket végezni. A négy alapművelet elvégzése nem is olyan nehéz, ha felismerjük, hogy ugyanolyan szabályok érvényesek, mint amiket a tízes számrendszerben megismertünk. A problémát legfeljebb ezeknek a szabályoknak az adaptálása okozza. Nehezebb lehet ugyanis a bonyolultabb műveletek hozzáigazítása tetszőleges, de nem tízes alapú számrendszerhez. | |||||||||||||||||||||||||||
Kódolás | |||||||||||||||||||||||||||
A kódolás feladata, logikai és szöveges adatok kódolása | |||||||||||||||||||||||||||
Kódolásnak hívjuk - tágabb értelemben - azt a módszert, amely segítségével mások számára is elérhetővé, érthetővé tesszük gondolatainkat. Ilyen kódolás a beszéd, az írás bármilyen formája, így a számok leírása is. | |||||||||||||||||||||||||||
Szűkebb értelemben kódolásról akkor beszélünk, ha szokásos eszközökkel (számjegyekkel, írással, képpel, videóval, hanggal) megadott objektumokat valamilyen egységes rendszerben újra megadunk, leírunk. A továbbiakban a szűkebb értelmű kódolást értjük kódolás alatt. | |||||||||||||||||||||||||||
A következőkben a jelen eszközeinek használatához nélkülözhetetlen kódolásokkal fogunk foglalkozni. Ezeknek a kódolásoknak alapja a kettes számrendszer, mivel eszközeink elektronikus eszközök, és a kettes számrendszer két különböző bitje elektronikus eszközökkel könnyen megjeleníthető vagy könnyen továbbkódolható úgy például, hogy az 1-nek egy magas, míg a 0-nak egy alacsony feszültségszintet feleltetünk meg. | |||||||||||||||||||||||||||
A különböző kódrendszereket vizsgálva megkülönböztethetünk fix hosszúságú és változó hosszúságú kódokból álló kódrendszert. A kódok hosszát a kódban lévő jelek számával szokás definiálni. A számítástechnikában mindkét rendszert használják. | |||||||||||||||||||||||||||
A Boole-algebra objektumainak kódolása a lehető legegyszerűbb kódolás, hiszen csak két elemnek kell kódot választani (, ). Legfeljebb az okozhat fejtörést, hány jelből álljon a kód, ha ragaszkodunk ahhoz, hogy a kódokat bitekből építjük fel. Egyetlen jelből álló kód esetén például az objektumot 1-gyel, a objektumot 0-val kódolhatjuk, 8 bites kód esetén az kódja a 11111111 jelsorozat, a -é a 00000000 jelsorozat lehet. | |||||||||||||||||||||||||||
A betűk és egyéb jelek kódolására fix hosszúságú rendszert használunk, a kód hossza általában 8 vagy 16 bináris jel, ritkábban előfordul a 24 és 32 kódhossz is. | |||||||||||||||||||||||||||
Mivel 0 és 1 jelekből 8 hosszúságú kódot 256-féleképpen lehet előállítani, ezért ezzel a kódrendszerrel összesen 256 különböző jel kódolható. Ezeket a jeleket, illetve kódjaikat szabványok határozzák meg. A legelterjedtebb szabványok egyike az ASCII (American Standard Code for Information Interchange = amerikai szabványkód információcseréhez). Az első 128 kód sztenderd, azaz állandósult jeleket tartalmaz, a második 128 kód az ún. kiterjesztett jelek kódjai. A kiterjesztés többféleképpen is történhet, a bemutatott példa a Latin1 kiterjesztésű változat. A kódrendszert az 1. és 2. táblázat tartalmazza, amelyben a bináris kód mellett megtaláljuk a kód decimális és hexadecimális értékét is (a felesleges nullák nélkül). (A bináris kódban fontosak a kódok kezdő nullái is, mivel ezek nélkül a kód nem lenne egyértelműen visszafejthető!) | |||||||||||||||||||||||||||
Látható, hogy ebben a rendszerben összefüggő tömböt alkotnak az angol ábécé nagybetűi és a kisbetűi, valamint a számjegyek. Megtalálhatók a jelek között az írásjelek, a gyakran használt matematikai jelek, sok ékezetes betű jele és néhány speciális jel is. | |||||||||||||||||||||||||||
Az ASCII rendszerben nem kódolhatók a távol-keleti nyelvek betűi, sőt némely európai ábécé különleges betűje sem. Ennek a problémának a kiküszöbölésére alkották meg az Unicode, az UTF-8 rendszereket, Ezekben a kódok 16, 24, 32, 40, 48 hosszúságú 0 és 1 jelből álló sorozatok. Ezekben a rendszerekben 16 bittel 2562, 24 bittel 2563 különböző jelet lehet kódolni. | |||||||||||||||||||||||||||
Ha jeleket tudunk kódolni, akkor már szöveget is. Ekkor a szöveg betűit, számjegyeit, írásjeleit, betűközeit a jelek kódtáblázatát felhasználva kódoljuk, és a kódokat egymás mögé írva megkaphatjuk a kódolandó szöveg kódját. Vegyük észre, hogy a kapott kód hossza függ a jelek kódhosszától és a szöveg jeleinek számától is. Mivel a jelek száma más és más szövegben általában nem egyforma, ezért a szöveg ilyen kódolása változó hosszúságú kódot eredményez. | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Számok kódolása | |||||||||||||||||||||||||||
Természetesen az előző részben leírt kódolási módszer számok kódolására is jó, de az így kódolt számokkal a műveletvégzés nehézkes lesz, tehát alkalmasabb rendszert célszerű választani. Sokféle számkódolás lehetséges. A következőkben négyféle módszerrel fogunk foglalkozni. | |||||||||||||||||||||||||||
Nemnegatív egész számok kódolása | |||||||||||||||||||||||||||
Ezeket a számokat számítástechnikában előjeltelen (angolul unsigned) számoknak is szokás nevezni. Kódolásukra 8, 16, 32, 64 bites kódok a legelterjedtebbek. Nyolc bittel 0 és , 16 bittel 0 és , 32 bittel 0 és , 64 bittel 0 és közé eső számokat szokás kódolni. A kód megállapítása nagyon egyszerű. Írjuk fel a kódolandó számot kettes számrendszerben, írjunk eléje annyi nullát, amennyi ahhoz kell, hogy a kód hossza megfelelő legyen. Amit kaptunk az a szám kódja! Fontos megjegyezni, hogy a fenti módszerekkel a megadott intervallumokon kívüli egész számok nem kódolhatók! | |||||||||||||||||||||||||||
Egész számok kódolása kettes komplemens kóddal | |||||||||||||||||||||||||||
Ezeket a számokat számítástechnikában előjeles (angolul signed) számoknak szokás nevezni. Szintén 8, 16, 32, 64 bites kódokat használunk a kódoláshoz. Nyolc bittel a és , 16 bittel a és , 32 bittel a és , 64 bittel és közé eső számokat kódoljuk. A megadott intervallumokon kívül eső számok ezzel a módszerrel nem kódolhatók! | |||||||||||||||||||||||||||
A kódolás a következő (csak a nyolcbites változattal foglalkozunk, a másik három változatban ennek mintájára történik a kódok megállapítása). Ha a szám nemnegatív, akkor - ugyanúgy, mint az előző kódolási módszernél - vesszük a kettes számrendszerbeli alakot, eléje írunk annyi nullát, hogy nyolc jelből álljon, és már készen is van a kód. Ha a szám negatív, akkor hozzáadunk -ot. Az eredmény 127-nél nagyobb, 256-nál kisebb pozitív szám lesz. Ennek vesszük a kettes számrendszerbeli alakját, és az lesz a negatív számunk kódja. Vegyük észre, a nemnegatív szám kódja mindig nullával, a negatívé mindig eggyel kezdődik, ezért a kód vezető bitje megadja azt is, hogy kód negatív vagy nemnegatív számot jelent-e. Ez a bitet emiatt előjelet jelző bitnek hívjuk, hiszen nem direkt módon az előjel kódolására használjuk (ezért az elterjedt "előjelbit" megnevezés nem pontos). | |||||||||||||||||||||||||||
A negatív szám kódját kettes komplemens kódnak is nevezik. | |||||||||||||||||||||||||||
A kettes komplemens kód megállapítására egy kevesebb számolást igénylő módszert is lehet használni. A módszer azon alapul, hogy a szám kettes számrendszerben pontosan n darab egyesből áll, nulla nélkül. Ebből a számból könnyű kivonni bármilyen -nél kevesebb bitből álló pozitív bináris számot, hiszen nem kell mást tenni, csak 0-t írni arra a helyiértékre, ahol a kivonandóban 1 van, és 1-et arra, ahol 0 van. Az eredmény nem más, mint az a szám, amit úgy kapunk, hogy a kivonandóban minden bitet az ellentettjére - 0-t 1-re, 1-et 0-ra - cserélünk, más szóval negáljuk, és annyi 1-gyel kiegészítjük a szám elején, hogy n jegyű legyen. Ez a szám eggyel kisebb, mint a kivonandó -1-szeresének kettes komplemens kódja, ezért a kettes komplemens eléréséhez 1-et hozzá kell adni. Amit kaptunk, az nem más, mint a kivonandó (pozitív) szám -szeresének (ez már negatív) kódja. | |||||||||||||||||||||||||||
Példa: Számítsuk ki a kettes komplemens kódját (16 biten)! Az ún. 2-es komplemenst használjuk a következő módon: | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
A megoldás táblázatba foglalva: | |||||||||||||||||||||||||||
Érdemes megjegyezni, hogy a fenti módszert mechanikusan alkalmazva a kettes komplemens kódra, a kódhoz tartozó negatív szám abszolút értékének kettes számrendszerbeli alakját, azaz a kódját kapjuk. esetén: | |||||||||||||||||||||||||||
Számítsa ki a -1848 32 bites komplemens kódját! | |||||||||||||||||||||||||||
Most is bemutatunk egy Excel példát, amely automatizáltan végrehajtja a kettes komplemens kód előállítását. A szám pozitív alakjából kapjuk meg a negatív számot reprezentáló kódot. A Nem függvénnyel megfordítjuk a bináris jegyeket, a "plusz 1" művelethez viszont most egyszerűen kézi átírást használunk. | |||||||||||||||||||||||||||
A korábbiakhoz hasonlóan, erre a feladatra is biztosít az Excel beépített függvényt, de ennek az alkalmazhatósága is korlátozott (lásd később). | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
Ebben a kódrendszerben két szám összegének kódját rögtön megkaphatjuk, ha a kódokat összeadjuk, tehát nem kell az összeadás elvégzéséhez oda-vissza kódolgatni, a számok összeadása helyett elég a kódokat összeadni. Ezen kívül megspórolhatjuk a kivonást is, ugyanis tetszőleges és esetén, az és a kódjának összege ebben a kódrendszerben éppen az szám kódja lesz. A kódja pedig az előbb megismert mechanikus módszerrel könnyedén előállítható. | |||||||||||||||||||||||||||
Jegyezzük meg, hogy ha két szám összege vagy különbsége nagyobb, mint a kódolható számok intervallumának végpontja vagy kisebb, mint a kezdőpontja, akkor a kódok összege nem állít elő kódot, hiszen a kérdéses összeg vagy különbség ezzel a módszerrel nem kódolható! | |||||||||||||||||||||||||||
Példa: . Kódokkal: | |||||||||||||||||||||||||||
Ellenőrizze, hogy az eredmény valóban a kódja-e! | |||||||||||||||||||||||||||
Összetett objektumok (pl. képek) kódolása | |||||||||||||||||||||||||||
Nem célunk, hogy az összetett objektumok néha mélyebb ismereteket is igénylő kódolását és kódrendszereiket ismertessük, de annak érzékeltetéséhez, hogy milyen elveket alkalmaznak egy ilyen eljárás során, bemutatunk egy vázlatos példát. | |||||||||||||||||||||||||||
Legyen egy ilyen objektum egy kép. Az első lépés a kódolásban az, hogy a képet diszkrét egységek rendszerére bontjuk. Ezek az egységek az ún. képpontok (a képpont angolul pixel). Minden képpont egy-egy téglalap alakú képrész lesz. A felbontás annál jobb - és ennek következményeképpen a pontokból összerakott kép annál jobban hasonlít az eredeti képhez -, minél több pontból áll. Ezért szokás a felbontást egy adott hosszúságegységre (inch) eső pontok számával jellemezni. A mértékegység a pont per inch (angolul: Dot Per Inch), röviden DPI. Minél nagyobb a DPI érték, annál nagyobb és jobb a felbontás. Mivel a képek kétdimenziósak, és a vízszintes-függőleges irányú pontra bontás nem szükségképpen egyezik meg, ezért előfordulhat, hogy a vízszintes és a függőleges felbontást szorzat alakban adják meg, ahol az első tényező a vízszintes, a második a függőleges irányú egy inch-re eső pontszámot jelenti. | |||||||||||||||||||||||||||
Az eljárás során tehát egy, a képhez tartozó pontrendszer áll elő. Ennek a rendszernek a pontjait a méretük és a színük jellemzi. A méret a DPI értékből minden pontra egységesen megállapítható, a szín minden pontban más és más lehet. | |||||||||||||||||||||||||||
A kép bitekből álló kódját tehát úgy lehet megadni, hogy megadjuk a bitkódját annak, hogy hány pontból áll a kép vízszintesen, hány pontból függőlegesen, megadjuk a bitkódját a vízszintes és függőleges pontméretnek, majd egyenként kódoljuk a pontok színét is. A bitkódokat egymás után írva egy 0-1 sorozatot kapunk, és ez lesz a kép kódja. Érdemes megemlíteni, hogy ezzel a kódolási mechanizmussal visszakódoláskor az eredeti képnek egy egyszerűbb változatát kapjuk. Ennek megértéséhez elég azt látni, hogy más és más felbontásra más és más kód alakul ki ugyanarról a képről, és a visszaalakítás után a képek csak "hasonlítani" fognak egymásra is és az eredeti képre is. | |||||||||||||||||||||||||||
Azt a folyamatot, amely egy valós, folytonos objektumhoz diszkrét, legtöbbször bináris kódot állít elő, digitalizálásnak nevezzük. | |||||||||||||||||||||||||||
Természetesen ez a leírás egy elnagyolt leírása az egyik lehetséges kódolásnak (legjobban az úgynevezett pixelgrafikus, ill. rasztergrafikus kódoláshoz hasonlít), de ahhoz, hogy a bonyolultabb objektumok bináris kódolását megértsük - elegendő. | |||||||||||||||||||||||||||
A pixelgrafikus tárolással kapcsolatban célszerű vázlatosan megismerni az RGB modellt. Ebben a modellben minden színt három alapszín összetételével állítunk elő. Ezek a színek: vörös (Reed), zöld (Green) kék (Blue). 16 bites színkód esetén a vörös összetevő kódolására 5, a zöldére ugyancsak 5, a kékre 6 bitet szokás használni. Ez 65536-féle szín kódolását teszi lehetővé, ami az emberi szem teljesítőképességét figyelembe véve egy hétköznapi kép kódolására bőségesen elegendő. Sok ember a képpontok színének 8 bittel (256 féle szín) való kódolásakor kapott kódból visszaállított képről sem tudja megmondani, hogy mi a különbség az eredeti és a visszaállított kép között. | |||||||||||||||||||||||||||
A képpontokhoz tartozó direkt kódok mellett a kép kódjában általában még bizonyos kiegészítő vagy járulékos információt is kódolnak (pl. hibajavításra). Ez a kód végső hosszát, méretét csak minimális mértékben megnöveli. | |||||||||||||||||||||||||||
A pixelgrafikus kódolást elsősorban fényképszerű képek kódolására használják. A vonalakból összerakott képek kódolására nem célszerű módszer. Az ilyen típusú ábrákat matematikai módszerek - vektorok - segítségével lényegesen rövidebb kóddal lehet leírni (vektorgrafikus kódolás). | |||||||||||||||||||||||||||
Logikai kifejezések, Boole-algebra | |||||||||||||||||||||||||||
A 19. század közepétől a számokkal való műveletvégzés mellett megjelentek más objektumokon végezhető műveletek is, és kialakult az absztrakt algebra. Számítástechnikai szempontból ennek a tudományágnak legfontosabb területe a Boole-algebra, amit George Boole munkássága alapozott meg. | |||||||||||||||||||||||||||
A Boole-algebra egy olyan struktúra, amely egy kételemű (logikai) halmazból és a rajta elvégezhető műveletekből épül fel. A halmaz egyik elemét I(gaz), másik elemét H(amis) értéknek tekintjük, ezeken az értékeken maximum 4 egyoperandusú és 16 kétoperandusú művelet definiálható. Mi ezek közül egy egyoperandusú műveletet és három kétoperandusú művelet fogunk megismerni. | |||||||||||||||||||||||||||
A tárgyalandó egyoperandusú műveletet negációnak nevezzük. A műveleti jele jel legyen. A művelet elvégzése pedig a következő: ha az operandus értéke , akkor az eredmény legyen , ha az operandus értéke , akkor az eredmény . Formálisan: , . A művelet leírását ún. igazságtábla segítségével is megadhatjuk. | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
A kétoperandusú műveletek egyikét "és", a másikat "vagy", a harmadikat "kizáró vagy" műveletnek nevezzük, a műveleti jelük: , , valamint . A három művelet igazságtáblája: | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
A logikai műveletek számunkra a későbbiekben felhasználható fontosabb tulajdonságai: | |||||||||||||||||||||||||||
Az "és" valamint a "vagy" művelet: | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
A "kizáró vagy" kommutatív azaz , de nem asszociatív, azaz nem egyenlő -vel. | |||||||||||||||||||||||||||
Az "és" művelet disztributív a "vagy" műveletre, illetve a "vagy" az "és"-re, azaz: , illetve . | |||||||||||||||||||||||||||
Természetesen ezek csak a legegyszerűbb műveleti tulajdonságok, többre azonban nem lesz most szükségünk. Egy konkrét feladat megoldását tartalmazza a következő fájl: boole-példa.docx. | |||||||||||||||||||||||||||
Oldja meg önállóan is az alábbi kidolgozott feladatokat! | |||||||||||||||||||||||||||
Feladat: , , | |||||||||||||||||||||||||||
![]() | ![]() | ||||||||||||||||||||||||||
Feladat: , , | |||||||||||||||||||||||||||
![]() | ![]()
| ||||||||||||||||||||||||||
Feladat: , , , | |||||||||||||||||||||||||||
![]() | ![]() |
Önellenőrző kérdések | |||||||||||
1. Számítsa át tízes számrendszerre a következő előjeles számokat! = ![]() | |||||||||||
2. Alakítsa át a következő tízes számrendszerbeli számokat előjel nélküli 16 bites bináris alakba! = ![]() | |||||||||||
3. Alakítsa át a következő tízes számrendszerbeli számokat előjeles 16 bites bináris alakba! = ![]() | |||||||||||
4. Válassza ki a következő bináris számok közül a párosokat!
![]() | |||||||||||
5. Döntse el az alábbi állításokról, hogy igaz vagy hamis!
![]() | |||||||||||
6. Adja meg a C változó értékét! = IGAZ, = HAMIS ![]() | |||||||||||
7. Adja meg a C változó értékét! = IGAZ, = HAMIS ![]() | |||||||||||
8. Adja meg a D változó értékét! = IGAZ, = HAMIS, = IGAZ ![]() |