A környezetünkből érkező, a befogadó személyre ható impulzusok az adatok: mindaz, amit látunk, hallunk, érzünk (akár szaglás útján, akár tapintással, akár emócionális úton). Az adat az által válik információvá, hogy a befogadó az észlelésen túl jelentéssel ruházza fel. Ez azt jelenti, hogy az a tény, hogy süt a nap (ha egyébként nem érdekel bennünket, csak éppen tudomásul vesszük, hogy nem kell villanyt gyújtanunk): adat, ami akkor válik információvá, ha ez a tény számunkra valamilyen jelentéssel bír (pl. azzal, hogy akkor most biztosan nincs éjfél). Egy másik (a két fogalom viszonyával foglalkozó szakirodalmi forrásokban gyakran említett) példával élve, ha meglátunk egy kínai nyelvű feliratot, érzékeljük az írásjeleit (adat), de - tisztelet a kivételnek - nem tudjuk, mit jelent a felirat, tehát nincs információ-tartalma - számunkra. Ebben a megközelítésben tehát az adat részhalmaza az információ. A második megközelítés szerint a környezet ingerei közül a számunkra nem fontos ingerekről úgysem veszünk tudomást, következésképpen ezeket felesleges is kategorizálni. Maradnak a környezetünk azon impulzusai, amelyeket figyelembe veszünk - azaz számunkra valamilyen oknál fogva fontosak, jelentéssel bírnak: ezek az információk. Ebben a megközelítésben az információnak azt a jellemzőjét szokás hangsúlyozni, hogy megszerzésével az érzékelő személy „tudása" bővül - az információ tehát érték(es észlelés). Az adat pedig nem más, mint az információ tárolt (rögzített vagy rögzítésre alkalmas) formája. Tehát az előző gondolatmenet kínai feliratánál maradva, ha nem tudunk kínaiul, akkor a fent említett táblán látható ákombákomok még csak nem is információk. Ha viszont el tudjuk olvasni a tábla feliratát, akkor ugyanazok az álombákomok máris információvá válnak - sőt, adattá is (hiszen rögzített módon állnak rendelkezésre). Vegyük észre, hogy e szerint a megközelítés szerint a rész-egész viszony pont a fordítottja az előzőnek: itt az információ a nagyobb halmaz, az adat pedig annak részhalmaza.
A két megközelítésben - látszólagos ellentmondásosságuk dacára is - van egy közös vonás: az információt mindkét megközelítés olyasvalaminek tekinti, ami a befogadó számára jelentéssel bír, fontos, értékes. (A továbbiakban az egyszerűség kedvéért nem teszünk különbséget az adat és az információ között - ahol mégis lényeges, ott hangsúlyozzuk, hogy melyik értelmezésben használjuk egyik vagy másik fogalmat.)
Természetesen az információ nem „csak úgy van" (persze, vannak ilyen típusú információk is, de a számítástechnika szempontjából ezek kevésbé jelentősek): azt valamilyen módon elő kell állítani (pl. méréssel, számítással, kutatással), értelmezni kell tudni (ld. az előző példát!), esetleg szükség lehet a tárolására (holnap ne kelljen már újra kiszámolni), stb. Azoknak az eszközöknek és módszereknek az összességét, amelyek az információ előállításával, tárolásával, feldolgozásával és továbbításával foglalkoznak, információtechnológiának nevezzük. Amennyiben ezt leszűkítjük egy konkrét feldolgozási folyamatra (azaz meghatározható a szóba jöhető információk köre, a feldolgozásukra szolgáló módszerek összessége, a tárolásuk módja, stb.), akkor beszélhetünk információ (-technológiai) rendszerről (IT rendszer).
Végül pedig azt a tudományágat, amely a fentieknek megfelelő IT rendszerek fejlesztési, üzemeltetési, elemzési kérdéseivel foglalkozik, informatikának hívjuk. (Fontos: a fentiekből természetesen következik, hogy az informatika nem azonos a számítástechnikával: ez utóbbi az informatika egyik részterülete, amely egy konkrét eszközrendszerre vonatkozóan végzi a fentebb megfogalmazott feladatokat!)
Előfordul, hogy az információ a keletkezési helyén kerül feldolgozásra, de (manapság már) nem ez az általános: az információt (általában) el kell juttatni egyik rendszerből a másikba, az ezzel kapcsolatos eljárásokat nevezzük összefoglaló néven kommunikációnak. A kommunikációs folyamatban legalább két fél vesz részt: az információt közlő (adó) és az információt fogadó (vevő). A kommunikáció csak akkor lehet sikeres, ha az adó által közölt információ ugyanazzal a jelentéstartalommal jelenik meg a vevőnél - ez pedig csak akkor biztosítható, ha a kommunikáció során mindkét fél betart bizonyos (előre meghatározott) szabályokat. Protokollnak nevezzük a kommunikációs folyamatra vonatkozó előírások gyűjteményét. Amennyiben egy kommunikációs folyamatban a részt vevő ICT eszközök összetartozását szeretnénk hangsúlyozni (vagyis azt a tényt, hogy az adott eszközök nem véletlenszerűen továbbítanak és fogadnak információt egymás között, hanem ezt valamilyen céllal teszik), akkor beszélünk kommunikációs hálózatokról.
Nos, vannak tehát információink, amelyek kommunikációs protokollok biztosításával jutnak el egyik informatikai eszköztől a másikig. Ezek az eszközök aztán valamit csinálnak az információval. Azt, hogy pontosan mit, azt nyilvánvalóan az információt értelmező személy határozza meg, jelen esetben a hangsúly az automatizálhatóságon van. Algoritmusnak nevezzük valamely feladat megoldását eredményező, véges számú, elemi (további műveleti részre már nem bontható) tevékenységek szabályokkal definiált sorozatát. Ha egy algoritmusra a következő feltételek teljesülnek, akkor az az algoritmus gépesíthető:
egyértelműen meghatározott kezdőtevékenységgel rendelkezik (azaz pontosan egy „eleje" van),
determinisztikus és rendezett (minden egyes tevékenység elvégzése után egyértelműen meghatározható a következő - elvégzendő - tevékenység),
van legalább egy olyan tevékenysége, amelyet újabb tevékenység már nem követ (azaz van vége - figyelem: amíg a kezdetre kikötés az egyértelműség, végállapotból több is lehet!).
Azokat az információ-technológiai eszközöket, amelyek képesek az információ és a velük műveletet végrehajtó algoritmusok tárolására és automatikus végrehajtására, számítógépeknek nevezzük. A számítógép által értelmezhető algoritmusok neve program, a számítógépen tárolt és feldolgozott információ neve (egyértelműen!) adat - ez a két komponens együttesen alkotja a számítógép szoftver rétegét. Ezen kívül a számítógép részét képezi az adott eszközt ténylegesen alkotó (egyes megfogalmazások szerint: „kézzel fogható") „fizikai" elemek (elektronikai eszközök, vezetékek, csavarok, tokok, stb.) összessége, amelyet hardvernek nevezünk.
Összefoglalásként tehát azt mondhatjuk, hogy számítógép =
hardver: alaplap, memória, processzor, merevlemezes meghajtó, kábel, billentyűzet, stb,
szoftver:
adat: az adatokat kategorizálhatjuk
jellegük szerint: azaz milyen típusú információt tárolnak: numerikus (szám), szöveges, logikai, esetleg dátum értékű, stb,
belső szerkezetük szerint: az adatot alkotó információ összefüggése alapján (mező, rekord, állomány, stb.).
program: a programokat általában feladatuk szerint csoportosítjuk:
operációs rendszerek, rendszerprogramok,
rendszerközeli programok (segédprogramok),
felhasználói programok (alkalmazások),
fejlesztő eszközök (programozási nyelvek).
(egyes források szerint a számítógép mint IT rendszer részét képezi a számítógépet használó személy (mint emberi erőforrás) is, ebben az értelmezésben az elnevezése „manware").
Napjainkban a matematikában a tízes számrendszert alkalmazzuk a mindennapokban. A kettes számrendszer 0-kból, és 1-esekből álló jelsorozat. A helyi értékek a kettő hatványait fogják jelenteni 1=20; 2=21; 4=22; 8=23;... tehát itt egyesek, kettesek, négyesek, nyolcasok.. vannak a tízes számrendszerben megszokott egyesek, tízesek, százasok... helyett. Például a tízes számrendszerbeli 4 kettes számrendszerbeli ábrázolása: 100.
Az elektronikus rendszerekben a kétfázisú állapotok fizikai létrehozására az informatikában a kettes számrendszert használják. Ez lehet az elektromos áram által okozott mágnesezettség létrehozásáról és megszüntetéséről, vagy a kettős fényvisszaverő tulajdonság könnyű és gyors cseréjéről, és más fizikai megvalósítás.
Az információ mértékegysége a bit.
A bit két diszkrét érték (egyértelmű) megkülönböztetését lehetővé tevő jel-pár.
Megállapodás kérdése, hogy értékeit a kettes számrendszer jegyeivel (0, 1) jelöljük - lehetne akár a piros-kék színpár is (mint az általános iskolában használt számolókorongok). A dolog szépséghibája, hogy a fentiekből az következik, hogy 1 bit összesen két állapot megkülönböztetését teszi lehetővé. Ha ennél több állapotunk van, akkor több bitre lesz szükségünk. n bittel pontosan 2n különböző értéket tudunk jelölni.
Célszerűségi okokból a számítógépek felépítése és működése ezen bitcsoportok közül a 8 bitet tartalmazó csoportok köré szerveződött. A memória minden egyes tárolási egysége pontosan ennyi bit tárolására képes. 8 bit együttesét bájtnak nevezzük. (ilyen módon 1 bájton 28=256 különböző érték ábrázolható.)
A bájt az információ-tárolás egysége.
A számítástechnikában a mértékek váltószámai (hasonlóan a tízes számrendszerhez) nagyságrendileg ezresenként követik egymást, de fontos tudni, hogy nem pontosan 1000 a váltószám, hanem 210=1024! (Írásban - a bevett gyakorlat szerint - a bitet „b", a bájtot „B" jelöli.) Ennek megfelelően
1 kilobájt (KB) = 1024 bájt (nagyjából ezer, 103),
1 megabájt (MB) = 1024 kilobájt = 10242 (=220) bájt (nagyjából 1 millió, 106),
1 gigabájt (GB) = 1024 megabájt = 10243 (=230) bájt (nagyjából 1 milliárd, 109),
a további váltószámok növekvő sorrendben: tera (T, 1012), peta (P, 1015), exa (E, 1018).
A bit (illetve bájt) alapú adattárolásnak (pontosabban a kettes számrendszer kizárólagosságának) van egy másik hatása is: gondoljuk csak el, hogy hogyan magyarázzuk el a számítógépnek, hogy 29? Az ötlet egyszerű: váltsuk át kettes számrendszerbe, és kész. Rendben, működik. És hogy tároljuk le a 299-et? Az átváltással itt sincs gond, azonban a 299 kettes számrendszerbeli alakja hosszabb, mint 8 jegy (azaz 1 bájt, márpedig az előbb leszögeztük, hogy a memória bájtokat tárol)... És a gondok csak fokozódnak, ha az is felmerül bennünk, hogy hogyan tároljuk le azt a szót, hogy ALMA? Ezt még csak át se lehet váltani kettes számrendszerbe...
A számítógépek az adatot minden esetben kettes számrendszerbeli alakjukban (ún. bináris kódban) tárolják!
A számok esetében a bináris kód
fixpontos ábrázolás esetén megegyezik a szám kettes számrendszerbeli alakjával (amennyiben a szám értéke olyan nagy, hogy egy bájton nem fér el a neki megfelelő kettes számrendszerbeli szám, akkor az egymást követő sorszámú rekeszekben tárolódik).
Példa: fixpontos ábrázolás esetén ha a memória egyik rekeszébe a 99-es értéket írjuk be, akkor a rekesz tartalma 01100011 lesz.
A fixpontos ábrázolás alapvetően két korlátozó tulajdonsággal rendelkezik: ábrázolási tartománya viszonylag kicsi és nem képes tárolni valós számokat.
lebegőpontos ábrázolás esetén megegyezik a szám kettes számrendszerbeli alakjának normálalakjával.
Példa: lebegőpontos alakban a 99 érték tárolása helyett a 9,9*101 felírási mód egyes elemeit tároljuk, azaz a memóriarekesz(ek) tartalma a 99 és az 1 (amennyivel el kell tolnia tizedesvesszőt ahhoz, hogy az eredeti értéket megkapjuk) bináris kódja lesz. (Megjegyezzük, hogy természetesen a normálalak is kettes számrendszerben képződik és az eltolást is 2 hatvány alakban kell érteni, a fenti példa csak az alapelv szemléltetését célozza!)
BCD (binárisan kódolt decimális) ábrázolás esetén megegyezik a szám jegyeinek kettes számrendszerbeli alakjainak sorozatával.
Példa: BCD ábrázolás esetén a 99 minden egyes jegyét külön-külön tároljuk (azaz nem a szám értéke, hanem az „alakja" kerül letárolásra): a memóriában 0000 1001 0000 1001 lesz található.
Szöveges értékek esetén a bináris kód
valamilyen kódrendszer alapján az adott szöveges szimbólumot (karaktert, betűt) jelölő sorszám. Ismertebb kódolási rendszerek:
ASCII: eredetileg 7 bites kódolási rendszer, a karaktereket egy kódtáblázat alapján sorszámokkal látja el (pl. az „A" betűnek a 65 felel meg). A 7 bites kódolásnak köszönhetően (27=128) legfeljebb 128 szimbólum megkülönböztetését teszi lehetővé - ami az angol nyelv karakterkészletét tekintve elegendő, de ha figyelembe vesszük a nemzeti karaktereket is (pl. a magyar ékezetes betűket), akkor már nem. A kiterjesztett ASCII 8 bites kódolást használ olyan módon, hogy az első 128 sorszámhoz minden nyelvben ugyanazok (a 7 bites ASCII szabványnak megfelelő) szimbólumok tartoznak, míg a 129-255 közötti sorszámokhoz az egyes nyelvek (szabványokban rögzített) eltérő karakterei kaptak helyet - ezeket a kiegészítéseket nevezzük kódlapnak.
MIME: ezt a kódolást elsősorban az elektronikus levelezési rendszerek alkalmazzák, hogy a levélben szereplő tetszőleges karaktereket a 7 bites ASCII kódtábla szimbólumaival le lehessen írni.
UNICODE: manapság legjelentősebb és legelterjedtebb kódolási rendszer az ASCII filozófiáját követi, de 2 bájtos kódolási rendszerének köszönhetően (2 bájt = 16 bit → 216) hozzávetőlegesen 64 000 karakter különböztethető meg a segítségével.
Ebből az következik, hogy a számítógép számára egy memóriarekesz 8 bites tartalma bármi lehet: akár szám, akár egy karakter sorszáma, akár egy számsorozat egyik eleme - a számítógépnek nem tudja (és nem is tudja eldönteni!), ezért lényeges, hogy az adatokat feldolgozó programokat helyesen készítsük el!
Aritmetikai műveletek: számokon végezzük, eredményül szintén számot kapunk. (hatványozás, gyökvonás, szorzás, osztás, összeadás, kivonás).
A logikai műveleteket logikai változóknak nevezzük. Minden logikai változónak két lehetséges értéke van. Ha bekövetkezik az esemény akkor igaz, ha nem következik be akkor hamis az értéke. 4 lehetséges művelet van:
NOT=NEM (negálás): Az állításunk ellentettje lesz igaz. Tehát ha A állítás igaz volt akkor NOT A hamis, ha A hamis volt akkor NOT A igaz lesz. Halmazműveleteknél a komplementer képzésnek felel meg,
AND=ÉS (logikai szorzás) A AND B állítás csak akkor igaz, ha A és B állítások is igazak voltak. Metszetképzésnek felel meg a halmazműveletek esetén,
OR = VAGY (logikai összeadás): A OR B állítás igaz, ha A és B közül legalább az egyik igaz volt. Ha mind a kettő hamis volt akkor az eredmény is hamis. Halmazműveletek esetén a z unió műveletnek felel meg,
XOR=KIZÁRÓ VAGY (logikai kivonás): A XOR B akkor igaz ha A és B közül csak az egyik állítás teljesül. Ha mind a kettő teljesül akkor hamis, és akkor is ha egyikük sem teljesül.
Relációs műveletek: számokkal végezzük, eredményül logikai értéket kapunk. Lehetséges műveletek: egyenlő (=), nem egyenlő (<>); kisebb (<), nagyobb(>), kisebb vagy egyenlő(<=>), nagyobb vagy egyenlő(>=)
Műveletei precedenciák és szabályok
A precedenciák megadják, hogy mivel kell kezdeni a kiértékelését a műveleteknek Minél nagyobb egy művelet precedenciája annál hamarabb kell elvégezni a műveletet.
Aritmetikai műveletek precedenciája: (nagyobb precedenciához kisebb szám tartozik!)
hatványozás, gyökvonás,
szorzás, osztás,
összeadás, kivonás.
Logikai műveletek precedenciája (nagyobb precedenciához kisebb szám tartozik!)
NOT,
AND,
OR.
A XOR művelet átalakítható OR és AND műveletekké a következő szabályok szerint:
A XOR B =(A OR B) AND (NOT (A AND B))
Az informatikában a programok bizonyos adatokkal végeznek különböző műveleteket. Egy adattípus definiálása annyit jelent, hogy megadjuk hogy mi az értékkészlet (értelmezési tartomány) és milyen műveleteket végezhetünk velük, mely művelet mit jelent.
Az adattípusok segítségével definiálhatunk aztán változókat (program futása során változik az értéke) és konstansokat (program futása során az értéke változatlan, állandó.)
Az adattípusok jellemzői:
Integer (egész szám):
Méret: 2 bájton ábrázoljuk (azaz 2*8biten) amiből az első bit előjelbit. Ha az első bit 1 akkor a szám negatív ha az első bit 0 akkor a szám pozitív.
Intervallum: -32768 és 32767 közötti számok lehetnek.
Műveletek: összeadás (+), kivonás (-), szorzás (*), egész osztás =maradékos osztás (DIV), maradékképzés =egész osztás utáni maradék (MOD), negálás (-1 -el való szorzás), hatványozás (^).
Relációs műveletek: kisebb (<), nagyobb (>), egyenlő (=), kisebb vagy egyenlő(<=) , nagyobb vagy egyenlő (>=), nem egyenlő (< >).
REAL, FLOAT, DOUBLE... (valós számok):
Ábrázolás (méret): általában 4*8 biten (4bájt) ábrázolják, de ez változó a kívánt pontosságtól függően. Az első bit az előjelbit, ezt követi a kettedes egészrész (mantissza) végül a kettedes kitevő (exponens). Így ±m*2e alakú számot kapunk. (ahol m-mantissza, e-exponens).
Intervallum: a mérettől függ és a választott számábrázolási módtól.
Műveletek: összeadás(+), kivonás(-), szorzás(*), osztás(/), hatványozás(^), negálás(~)
Relációs műveletek: kisebb (<), nagyobb (>), egyenlő (=), kisebb vagy egyenlő(<=) , nagyobb vagy egyenlő (>=), nem egyenlő (< >).
BOOLEAN (logikai típus):
Méret: elég lenne egyetlen bit. 0=hamis, 1=igaz. Gyakorlatilag mégis a legkisebb foglalási egység a bájt, ezért 1 logikai változó esetén is kénytelenek vagyunk minimum 1 bájtot lefoglalni. (De ha van 8 logikai változónk akkor is elég 1 bájt, a különböző helyi értékeit más-más logikai változó értékének tekinthetjük, helytakarékos megoldásként.).
Intervallum: igaz/hamis. Összesen két értéket vehet fel.
Műveletek: AND (és), OR (vagy), NOT(nem, negálás), XOR(kizáró vagy).
Relációs műveletek: kisebb (<), nagyobb (>), egyenlő (=), kisebb vagy egyenlő(<=) , nagyobb vagy egyenlő (>=), nem egyenlő (< >).
CHAR (karakter típus):
Ábrázolás (méret):
ASCII kódtábla szerint 1 bájton 0-255 kódú jelek,
UNICODE-16 szerint 2 bájt,
UNICODE-32 szerint 4 bájt,
UNICODE-64 szerint 8 bájt.
Intervallum: ASCII 0-255 kódú jelek. Tartalmazzák az angol abc kis és nagybetűit, néhány ékezetes betűt (pl nem az Ő,Ű betűket). A tartalmazott betűket sem abc sorrendben, mert külön tartományt képez a kis és a nagybetűk. Ezen kívül tartalmazzák az írásjeleket, és néhány speciális karaktert.
Műveletek: nincs karakterspecifikus művelet.
Relációs műveletek: vannak, (kód alapján) de ez nem logikus csak egy résztartományon belül (pl. A<B<a).
A két megközelítésben - látszólagos ellentmondásosságuk dacára is - van egy közös vonás: az információt mindkét megközelítés olyasvalaminek tekinti, ami a befogadó számára jelentéssel bír, fontos, értékes. (A továbbiakban az egyszerűség kedvéért nem teszünk különbséget az adat és az információ között - ahol mégis lényeges, ott hangsúlyozzuk, hogy melyik értelmezésben használjuk egyik vagy másik fogalmat.)
Természetesen az információ nem „csak úgy van" (persze, vannak ilyen típusú információk is, de a számítástechnika szempontjából ezek kevésbé jelentősek): azt valamilyen módon elő kell állítani (pl. méréssel, számítással, kutatással), értelmezni kell tudni (ld. az előző példát!), esetleg szükség lehet a tárolására (holnap ne kelljen már újra kiszámolni), stb. Azoknak az eszközöknek és módszereknek az összességét, amelyek az információ előállításával, tárolásával, feldolgozásával és továbbításával foglalkoznak, információtechnológiának nevezzük. Amennyiben ezt leszűkítjük egy konkrét feldolgozási folyamatra (azaz meghatározható a szóba jöhető információk köre, a feldolgozásukra szolgáló módszerek összessége, a tárolásuk módja, stb.), akkor beszélhetünk információ (-technológiai) rendszerről (IT rendszer).
Végül pedig azt a tudományágat, amely a fentieknek megfelelő IT rendszerek fejlesztési, üzemeltetési, elemzési kérdéseivel foglalkozik, informatikának hívjuk. (Fontos: a fentiekből természetesen következik, hogy az informatika nem azonos a számítástechnikával: ez utóbbi az informatika egyik részterülete, amely egy konkrét eszközrendszerre vonatkozóan végzi a fentebb megfogalmazott feladatokat!)
Előfordul, hogy az információ a keletkezési helyén kerül feldolgozásra, de (manapság már) nem ez az általános: az információt (általában) el kell juttatni egyik rendszerből a másikba, az ezzel kapcsolatos eljárásokat nevezzük összefoglaló néven kommunikációnak. A kommunikációs folyamatban legalább két fél vesz részt: az információt közlő (adó) és az információt fogadó (vevő). A kommunikáció csak akkor lehet sikeres, ha az adó által közölt információ ugyanazzal a jelentéstartalommal jelenik meg a vevőnél - ez pedig csak akkor biztosítható, ha a kommunikáció során mindkét fél betart bizonyos (előre meghatározott) szabályokat. Protokollnak nevezzük a kommunikációs folyamatra vonatkozó előírások gyűjteményét. Amennyiben egy kommunikációs folyamatban a részt vevő ICT eszközök összetartozását szeretnénk hangsúlyozni (vagyis azt a tényt, hogy az adott eszközök nem véletlenszerűen továbbítanak és fogadnak információt egymás között, hanem ezt valamilyen céllal teszik), akkor beszélünk kommunikációs hálózatokról.
Nos, vannak tehát információink, amelyek kommunikációs protokollok biztosításával jutnak el egyik informatikai eszköztől a másikig. Ezek az eszközök aztán valamit csinálnak az információval. Azt, hogy pontosan mit, azt nyilvánvalóan az információt értelmező személy határozza meg, jelen esetben a hangsúly az automatizálhatóságon van. Algoritmusnak nevezzük valamely feladat megoldását eredményező, véges számú, elemi (további műveleti részre már nem bontható) tevékenységek szabályokkal definiált sorozatát. Ha egy algoritmusra a következő feltételek teljesülnek, akkor az az algoritmus gépesíthető:
egyértelműen meghatározott kezdőtevékenységgel rendelkezik (azaz pontosan egy „eleje" van),
determinisztikus és rendezett (minden egyes tevékenység elvégzése után egyértelműen meghatározható a következő - elvégzendő - tevékenység),
van legalább egy olyan tevékenysége, amelyet újabb tevékenység már nem követ (azaz van vége - figyelem: amíg a kezdetre kikötés az egyértelműség, végállapotból több is lehet!).
Azokat az információ-technológiai eszközöket, amelyek képesek az információ és a velük műveletet végrehajtó algoritmusok tárolására és automatikus végrehajtására, számítógépeknek nevezzük. A számítógép által értelmezhető algoritmusok neve program, a számítógépen tárolt és feldolgozott információ neve (egyértelműen!) adat - ez a két komponens együttesen alkotja a számítógép szoftver rétegét. Ezen kívül a számítógép részét képezi az adott eszközt ténylegesen alkotó (egyes megfogalmazások szerint: „kézzel fogható") „fizikai" elemek (elektronikai eszközök, vezetékek, csavarok, tokok, stb.) összessége, amelyet hardvernek nevezünk.
Összefoglalásként tehát azt mondhatjuk, hogy számítógép =
hardver: alaplap, memória, processzor, merevlemezes meghajtó, kábel, billentyűzet, stb,
szoftver:
adat: az adatokat kategorizálhatjuk
jellegük szerint: azaz milyen típusú információt tárolnak: numerikus (szám), szöveges, logikai, esetleg dátum értékű, stb,
belső szerkezetük szerint: az adatot alkotó információ összefüggése alapján (mező, rekord, állomány, stb.).
program: a programokat általában feladatuk szerint csoportosítjuk:
operációs rendszerek, rendszerprogramok,
rendszerközeli programok (segédprogramok),
felhasználói programok (alkalmazások),
fejlesztő eszközök (programozási nyelvek).
(egyes források szerint a számítógép mint IT rendszer részét képezi a számítógépet használó személy (mint emberi erőforrás) is, ebben az értelmezésben az elnevezése „manware").
Napjainkban a matematikában a tízes számrendszert alkalmazzuk a mindennapokban. A kettes számrendszer 0-kból, és 1-esekből álló jelsorozat. A helyi értékek a kettő hatványait fogják jelenteni 1=20; 2=21; 4=22; 8=23;... tehát itt egyesek, kettesek, négyesek, nyolcasok.. vannak a tízes számrendszerben megszokott egyesek, tízesek, százasok... helyett. Például a tízes számrendszerbeli 4 kettes számrendszerbeli ábrázolása: 100.
Az elektronikus rendszerekben a kétfázisú állapotok fizikai létrehozására az informatikában a kettes számrendszert használják. Ez lehet az elektromos áram által okozott mágnesezettség létrehozásáról és megszüntetéséről, vagy a kettős fényvisszaverő tulajdonság könnyű és gyors cseréjéről, és más fizikai megvalósítás.
Az információ mértékegysége a bit.
A bit két diszkrét érték (egyértelmű) megkülönböztetését lehetővé tevő jel-pár.
Megállapodás kérdése, hogy értékeit a kettes számrendszer jegyeivel (0, 1) jelöljük - lehetne akár a piros-kék színpár is (mint az általános iskolában használt számolókorongok). A dolog szépséghibája, hogy a fentiekből az következik, hogy 1 bit összesen két állapot megkülönböztetését teszi lehetővé. Ha ennél több állapotunk van, akkor több bitre lesz szükségünk. n bittel pontosan 2n különböző értéket tudunk jelölni.
Célszerűségi okokból a számítógépek felépítése és működése ezen bitcsoportok közül a 8 bitet tartalmazó csoportok köré szerveződött. A memória minden egyes tárolási egysége pontosan ennyi bit tárolására képes. 8 bit együttesét bájtnak nevezzük. (ilyen módon 1 bájton 28=256 különböző érték ábrázolható.)
A bájt az információ-tárolás egysége.
A számítástechnikában a mértékek váltószámai (hasonlóan a tízes számrendszerhez) nagyságrendileg ezresenként követik egymást, de fontos tudni, hogy nem pontosan 1000 a váltószám, hanem 210=1024! (Írásban - a bevett gyakorlat szerint - a bitet „b", a bájtot „B" jelöli.) Ennek megfelelően
1 kilobájt (KB) = 1024 bájt (nagyjából ezer, 103),
1 megabájt (MB) = 1024 kilobájt = 10242 (=220) bájt (nagyjából 1 millió, 106),
1 gigabájt (GB) = 1024 megabájt = 10243 (=230) bájt (nagyjából 1 milliárd, 109),
a további váltószámok növekvő sorrendben: tera (T, 1012), peta (P, 1015), exa (E, 1018).
A bit (illetve bájt) alapú adattárolásnak (pontosabban a kettes számrendszer kizárólagosságának) van egy másik hatása is: gondoljuk csak el, hogy hogyan magyarázzuk el a számítógépnek, hogy 29? Az ötlet egyszerű: váltsuk át kettes számrendszerbe, és kész. Rendben, működik. És hogy tároljuk le a 299-et? Az átváltással itt sincs gond, azonban a 299 kettes számrendszerbeli alakja hosszabb, mint 8 jegy (azaz 1 bájt, márpedig az előbb leszögeztük, hogy a memória bájtokat tárol)... És a gondok csak fokozódnak, ha az is felmerül bennünk, hogy hogyan tároljuk le azt a szót, hogy ALMA? Ezt még csak át se lehet váltani kettes számrendszerbe...
A számítógépek az adatot minden esetben kettes számrendszerbeli alakjukban (ún. bináris kódban) tárolják!
A számok esetében a bináris kód
fixpontos ábrázolás esetén megegyezik a szám kettes számrendszerbeli alakjával (amennyiben a szám értéke olyan nagy, hogy egy bájton nem fér el a neki megfelelő kettes számrendszerbeli szám, akkor az egymást követő sorszámú rekeszekben tárolódik).
Példa: fixpontos ábrázolás esetén ha a memória egyik rekeszébe a 99-es értéket írjuk be, akkor a rekesz tartalma 01100011 lesz.
A fixpontos ábrázolás alapvetően két korlátozó tulajdonsággal rendelkezik: ábrázolási tartománya viszonylag kicsi és nem képes tárolni valós számokat.
lebegőpontos ábrázolás esetén megegyezik a szám kettes számrendszerbeli alakjának normálalakjával.
Példa: lebegőpontos alakban a 99 érték tárolása helyett a 9,9*101 felírási mód egyes elemeit tároljuk, azaz a memóriarekesz(ek) tartalma a 99 és az 1 (amennyivel el kell tolnia tizedesvesszőt ahhoz, hogy az eredeti értéket megkapjuk) bináris kódja lesz. (Megjegyezzük, hogy természetesen a normálalak is kettes számrendszerben képződik és az eltolást is 2 hatvány alakban kell érteni, a fenti példa csak az alapelv szemléltetését célozza!)
BCD (binárisan kódolt decimális) ábrázolás esetén megegyezik a szám jegyeinek kettes számrendszerbeli alakjainak sorozatával.
Példa: BCD ábrázolás esetén a 99 minden egyes jegyét külön-külön tároljuk (azaz nem a szám értéke, hanem az „alakja" kerül letárolásra): a memóriában 0000 1001 0000 1001 lesz található.
Szöveges értékek esetén a bináris kód
valamilyen kódrendszer alapján az adott szöveges szimbólumot (karaktert, betűt) jelölő sorszám. Ismertebb kódolási rendszerek:
ASCII: eredetileg 7 bites kódolási rendszer, a karaktereket egy kódtáblázat alapján sorszámokkal látja el (pl. az „A" betűnek a 65 felel meg). A 7 bites kódolásnak köszönhetően (27=128) legfeljebb 128 szimbólum megkülönböztetését teszi lehetővé - ami az angol nyelv karakterkészletét tekintve elegendő, de ha figyelembe vesszük a nemzeti karaktereket is (pl. a magyar ékezetes betűket), akkor már nem. A kiterjesztett ASCII 8 bites kódolást használ olyan módon, hogy az első 128 sorszámhoz minden nyelvben ugyanazok (a 7 bites ASCII szabványnak megfelelő) szimbólumok tartoznak, míg a 129-255 közötti sorszámokhoz az egyes nyelvek (szabványokban rögzített) eltérő karakterei kaptak helyet - ezeket a kiegészítéseket nevezzük kódlapnak.
MIME: ezt a kódolást elsősorban az elektronikus levelezési rendszerek alkalmazzák, hogy a levélben szereplő tetszőleges karaktereket a 7 bites ASCII kódtábla szimbólumaival le lehessen írni.
UNICODE: manapság legjelentősebb és legelterjedtebb kódolási rendszer az ASCII filozófiáját követi, de 2 bájtos kódolási rendszerének köszönhetően (2 bájt = 16 bit → 216) hozzávetőlegesen 64 000 karakter különböztethető meg a segítségével.
Ebből az következik, hogy a számítógép számára egy memóriarekesz 8 bites tartalma bármi lehet: akár szám, akár egy karakter sorszáma, akár egy számsorozat egyik eleme - a számítógépnek nem tudja (és nem is tudja eldönteni!), ezért lényeges, hogy az adatokat feldolgozó programokat helyesen készítsük el!
Aritmetikai műveletek: számokon végezzük, eredményül szintén számot kapunk. (hatványozás, gyökvonás, szorzás, osztás, összeadás, kivonás).
A logikai műveleteket logikai változóknak nevezzük. Minden logikai változónak két lehetséges értéke van. Ha bekövetkezik az esemény akkor igaz, ha nem következik be akkor hamis az értéke. 4 lehetséges művelet van:
NOT=NEM (negálás): Az állításunk ellentettje lesz igaz. Tehát ha A állítás igaz volt akkor NOT A hamis, ha A hamis volt akkor NOT A igaz lesz. Halmazműveleteknél a komplementer képzésnek felel meg,
AND=ÉS (logikai szorzás) A AND B állítás csak akkor igaz, ha A és B állítások is igazak voltak. Metszetképzésnek felel meg a halmazműveletek esetén,
OR = VAGY (logikai összeadás): A OR B állítás igaz, ha A és B közül legalább az egyik igaz volt. Ha mind a kettő hamis volt akkor az eredmény is hamis. Halmazműveletek esetén a z unió műveletnek felel meg,
XOR=KIZÁRÓ VAGY (logikai kivonás): A XOR B akkor igaz ha A és B közül csak az egyik állítás teljesül. Ha mind a kettő teljesül akkor hamis, és akkor is ha egyikük sem teljesül.
Relációs műveletek: számokkal végezzük, eredményül logikai értéket kapunk. Lehetséges műveletek: egyenlő (=), nem egyenlő (<>); kisebb (<), nagyobb(>), kisebb vagy egyenlő(<=>), nagyobb vagy egyenlő(>=)
Műveletei precedenciák és szabályok
A precedenciák megadják, hogy mivel kell kezdeni a kiértékelését a műveleteknek Minél nagyobb egy művelet precedenciája annál hamarabb kell elvégezni a műveletet.
Aritmetikai műveletek precedenciája: (nagyobb precedenciához kisebb szám tartozik!)
hatványozás, gyökvonás,
szorzás, osztás,
összeadás, kivonás.
Logikai műveletek precedenciája (nagyobb precedenciához kisebb szám tartozik!)
NOT,
AND,
OR.
A XOR művelet átalakítható OR és AND műveletekké a következő szabályok szerint:
A XOR B =(A OR B) AND (NOT (A AND B))
Az informatikában a programok bizonyos adatokkal végeznek különböző műveleteket. Egy adattípus definiálása annyit jelent, hogy megadjuk hogy mi az értékkészlet (értelmezési tartomány) és milyen műveleteket végezhetünk velük, mely művelet mit jelent.
Az adattípusok segítségével definiálhatunk aztán változókat (program futása során változik az értéke) és konstansokat (program futása során az értéke változatlan, állandó.)
Az adattípusok jellemzői:
Integer (egész szám):
Méret: 2 bájton ábrázoljuk (azaz 2*8biten) amiből az első bit előjelbit. Ha az első bit 1 akkor a szám negatív ha az első bit 0 akkor a szám pozitív.
Intervallum: -32768 és 32767 közötti számok lehetnek.
Műveletek: összeadás (+), kivonás (-), szorzás (*), egész osztás =maradékos osztás (DIV), maradékképzés =egész osztás utáni maradék (MOD), negálás (-1 -el való szorzás), hatványozás (^).
Relációs műveletek: kisebb (<), nagyobb (>), egyenlő (=), kisebb vagy egyenlő(<=) , nagyobb vagy egyenlő (>=), nem egyenlő (< >).
REAL, FLOAT, DOUBLE... (valós számok):
Ábrázolás (méret): általában 4*8 biten (4bájt) ábrázolják, de ez változó a kívánt pontosságtól függően. Az első bit az előjelbit, ezt követi a kettedes egészrész (mantissza) végül a kettedes kitevő (exponens). Így ±m*2e alakú számot kapunk. (ahol m-mantissza, e-exponens).
Intervallum: a mérettől függ és a választott számábrázolási módtól.
Műveletek: összeadás(+), kivonás(-), szorzás(*), osztás(/), hatványozás(^), negálás(~)
Relációs műveletek: kisebb (<), nagyobb (>), egyenlő (=), kisebb vagy egyenlő(<=) , nagyobb vagy egyenlő (>=), nem egyenlő (< >).
BOOLEAN (logikai típus):
Méret: elég lenne egyetlen bit. 0=hamis, 1=igaz. Gyakorlatilag mégis a legkisebb foglalási egység a bájt, ezért 1 logikai változó esetén is kénytelenek vagyunk minimum 1 bájtot lefoglalni. (De ha van 8 logikai változónk akkor is elég 1 bájt, a különböző helyi értékeit más-más logikai változó értékének tekinthetjük, helytakarékos megoldásként.).
Intervallum: igaz/hamis. Összesen két értéket vehet fel.
Műveletek: AND (és), OR (vagy), NOT(nem, negálás), XOR(kizáró vagy).
Relációs műveletek: kisebb (<), nagyobb (>), egyenlő (=), kisebb vagy egyenlő(<=) , nagyobb vagy egyenlő (>=), nem egyenlő (< >).
CHAR (karakter típus):
Ábrázolás (méret):
ASCII kódtábla szerint 1 bájton 0-255 kódú jelek,
UNICODE-16 szerint 2 bájt,
UNICODE-32 szerint 4 bájt,
UNICODE-64 szerint 8 bájt.
Intervallum: ASCII 0-255 kódú jelek. Tartalmazzák az angol abc kis és nagybetűit, néhány ékezetes betűt (pl nem az Ő,Ű betűket). A tartalmazott betűket sem abc sorrendben, mert külön tartományt képez a kis és a nagybetűk. Ezen kívül tartalmazzák az írásjeleket, és néhány speciális karaktert.
Műveletek: nincs karakterspecifikus művelet.
Relációs műveletek: vannak, (kód alapján) de ez nem logikus csak egy résztartományon belül (pl. A<B<a).
Nincsenek megjegyzések:
Megjegyzés küldése