You are on page 1of 141

VIŠA TEHNIČKA ŠKOLA SUBOTICA

MŰSZAKI FŐISKOLA SZABADKA

Mgr. Boros István


főiskolai előadó

SZÁMÍTÁSTECHNIKAI
ALAPISMERETEK

Subotica / Szabadka 2006


Opinio magistri probabilis tantum.
Nihil probat qui nimium probat.

ELŐSZÓ
A SZÁMÍTÁSTECHNIKAI ALAPISMERETEK tárgy tartalma a gyorsan fejlődő
gyakorlat miatt állandóan változik. Főiskolánkon több számítástechnikai szakember volt a
tárgy oktatója, ám ez nem jelentette az alapkoncepció változását: mindig a legaktuálisabb
tartalmakkal ismertettük meg a hallgatót és arra törekedtünk, hogy minél jobban felkészítsük e
tárgy kereteiben szerzett tudásának alkalmazására a további villamosmérnöki, gépészmérnöki,
vagy a műszaki-informatikai mérnöki képzése folyamán. Pillanatnyi szerencsés egybeesése a
szakmának, hogy a Diszkrét Matematika és a Számítástechnikai Alapismeretek elsajátíttatását
egy oktató végzi az önmaga megírt segédkönyvek felhasználásával. Természetes, hogy ez az
egybeesés lehet szerencsétlen is, mert az egyik tárgy oktatásában elkövetet esetleges hibák
halmozódhatnak a másik tárgy oktatása folyamán. Minden igyekezetünkkel azon dolgozunk,
hogy ilyen hiányosságok ne jelentkezzenek. A két tárgy korábban meglévő tartalmi átfedése
megszűnt azzal, hogy a számítástechnika logikai alapjait képező ismeretek elméleti részeivel
a Diszkrét matematika keretein belül foglalkozunk, míg a számítástechnikai tartalmakhoz
szorosabban kapcsolódó logikai ismeretek jelen tanfolyamhoz tartoznak. A jugoszláviai
magyar ajkú főiskolai hallgatók kezébe első alkalommal kerül a helyi tantervi előírásoknak
megfelelő sorrendben és terjedelemben megírt magyar nyelvű tankönyv. A gyakorlásra még
mindig nincs megfelelő magyar nyelvű feladatgyűjtemény, de jelen könyv kereteiben
nagyszámú példát és gyakorlásra szánt feladatot talál az olvasó. A tankönyv elektronikus
kiadás formájában kerül a nyilvánosság elé: a Főiskola honlapján megfelelő élőkapocs
található a tankönyvek irányába. A könyv bármilyen gondos, többszörös átolvasásával sem
fedeztem fel minden hibát, ezért kérem az olvasót, hogy észrevételét azonnal közölje, hogy a
következő változatban már a fellelhető hibák száma elenyésző legyen. Kérem az olvasókat,
hogy észrevételeiket az iboros@vts.su.ac.yu címre juttassák el.

Szabadkán, 2001. április 26-án Boros István


TARTALOMJEGYZÉK

1. ÁLTALÁNOS ALAPOK 1
1.1. BEVEZETÉS 1
1.2. INFORMATIKAI ALAPFOGALMAK 1
1.3. SZÁMÍTÁSTECHNIKAI ALAPFOGALMAK 5
1.4. SZÁMÍTÁSTECHNIKAI ESZKÖZÖK 8
1.4.1. OBJEKTUMOK ÉS MATEMATIKAI MODELLJEIK 8
1.4.2. SZÁMÍTÁSTECHNIKAI ESZKÖZÖK OSZTÁLYOZÁSA 9

2. HARDVER ALAPOK 17
2.1. A MIKROSZÁMÍTÓGÉP 18
2.2. A MIKROPROCESSZOR 24
2.3. A SZÁMÍTÓGÉP-HÁLÓZATOK 27

3. SZOFTVER ALAPOK 33
3.1. BEVEZETÉS 33
3.2. AZ OPERÁCIÓS RENDSZEREK 34
3.2.1. AZ OPERÁCIÓS RENDSZER FOGALMA 34
3.2.2. A DOS OPERÁCIÓS RENDSZERRŐL 35
3.2.3. A WINDOWS OPERÁCIÓS RENDSZERRŐL 39
3.3. ALKALMAZÓI SZOFTVEREK 42
3.3.1. AZ MS OFFICE KÖZÖS ESZKÖZEIRŐL 43
3.3.2. A MATLAB-RÓL 54
3.4. PROGRAMFEJLESZTŐI RENDSZEREK 62
3.4.1. A GÉPI NYELV 62
3.4.2. AZ ASSEMBLY PROGRAMOZÁSI NYELV 63
3.4.3. A MAGAS SZINTŰ PROGRAMNYELVEK 64
3.4.4. A VHLL ÉS A MESTERSÉGES INTELLIGENCIA NYELVE 66
3.5. AZ INTERNET ALAPVETŐ SZOLGÁLTATÁSAI 67
3.5.1. AZ E-MAIL 69
3.5.2. A „BÖNGÉSZŐ” PROGRAMOK 71
3.5.3. WEB LAP SZERKESZTŐ PROGRAMOK 73
4. MATEMATIKAI ÉS LOGIKAI ALAPOK 77
4.1. SZÁMRENDSZEREK 77
4.1.1. A NEM-HELYIÉRTÉKŰ SZÁMRENDSZEREK 77
4.1.2. A HELYI ÉRTÉKŰ SZÁMRENDSZEREK 79
4.2. KÓDOK ÉS KÓDRENDSZEREK 95
4.2.1. KÓDOLÁS, KÓDKÉSZLET 95
4.2.2. A BINÁRIS KÓDOLÁS 97
4.2.3. A GRAY FÉLE KÓDRENDSZER 100
4.2.4. SZIMBOLIKUS KÓDRENDSZEREK 102
4.3. ALGORITMUSOK 113
4.3.1. AZ ALGORITMUS FOGALMA ÉS STRUKTÚRÁI 113
4.3.2. NUMERIKUS ALGORITMUSOK 119

FELHASZNÁLT IRODALOM 137


1. ÁLTALÁNOS ALAPOK

1.1. BEVEZETÉS

Még napjainkban is a számítógép szó hallatán sokan valamilyen csodálatos


masinára – sőt: titokzatos, misztikus szerkezetre gondolnak, és nem egy "közönséges"
eszközre, amelynek használata ma már teljesen szokványos. Mások mechanikus
gépezetre gondolnak és sokszor alulbecsülik lehetőségeit; ugyanilyen gyakori, de főleg
a "hozzáértők" között, a számítógép »mindenhatóságának« vélelmezése, tehát a
lehetőségeinek túlbecsülése. Feladatunk, ebben a könyvben, hogy a számítógépnek
mint eszköznek kijelöljük a valós helyét korunk emberének életében, és előkészületeket
tegyünk arra, hogy ezen a Főiskolán – mindenki szűkebb szakterületén belül –
részleteiben is megismerhesse ezt az eszközt. Ahhoz képest, hogy mennyien játszanak a
számítógéppel, sőt megtanulják valamely közismert programozási nyelv egyes könnyen
elsajátítható fogásait, még mindig kevesen tudják hétköznapi munkájuk támogatására
ténylegesen felhasználni őket. Ez is feladatunk e tantárgy keretében: hogy éppen ezt a
"hétköznapi" felhasználhatóság lehetőségeit felvillantsuk. A mérnökképzés további
folyamatában már a hallgató önmaga is belátja a számítógép ilyennemű szükségességét.
Az okok szerencsés összekapcsolódása a szakma amelyre készül a hallgató. A
villamosmérnöknek, az informatikai mérnöknek, vagy gépészmérnöknek ugyanolyan jól
kell ismernie eszközét, mint mondjuk a "kovács a kalapácsát"!

1.2. INFORMATIKAI ALAPFOGALMAK

A számítástechnika tekinthető önálló alkalmazott diszciplínának, de ez olyan tág


meghatározás, hogy mindenképen szükséges helyét pontosabban is megállapítani az
elméleti és az alkalmazott tudományok rendszerében. Kétségtelen, hogy a jelenkor
informatikai társadalma vetette felszínre a Számítástechnikát mint tudományos ágazatot.
Ismerjük meg tehát – igaz, csak vázlatosan (nem egzakt definiálással, hanem inkább
körülírással) – az informatika alapfogalmait.

Az információ – a legáltalánosabb értelemben – a nekünk új


ismereteket hozó jelek (hírek, üzenetek, adatok) tartalmi jelentése.

____________________________________________________________________________________
1
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Általános alapok

Ez a körülírás mindenképpen feltételezi a következő objektumok valamilyen


együttesét:
a jelek, hírek, üzenetek, adatok forrását,
a hordozó közeget, amelyen keresztül célba jut az információ,
az átvitelt zavaró körülmények, és
a cél, ahová az információ eljut, vagy el kellene hogy jusson.

Vizsgáljuk meg részlegesen, ezt az együttest fordított sorrendben. (Az


információátvitel tanulmányozása teljes részletességgel más tanfolyamok kereteibe
tartozik!) Ha olyan üzenetet kapunk, amely módosítja magatartásunkat (meglepetés,
öröm, megnyugvás, izgalom, stb.) akkor azt mondjuk, hogy "értékes" információt
kaptunk. Képzeljük el milyen hatást gyakorol egy részvénytulajdonosra a hír, hogy
részvényeinek értéke 50%-kal esett?! Másrészt ha az üzenet olyan híreket hoz amelyek
közömbösek számunkra, például ismert dolgokat közöl, vagy közömbösek számunkra,
akkor az információ "értéktelen". Mérlegeljük az előbb említett tőzsdei hírt mondjuk a
szomszéd kisfia szempontjából. Ezek szerint az információnak "mérhetőnek" kell
lennie. Az információ mennyiségének mérése a valószínűségszámítás elemeit használja.
Szemléljük a következő példát: Főiskolánk hallgatói a vizsgákon 5-től 10-ig
terjedő osztályzatot kapnak. A 6-os osztályzat valószínűsége (relatív gyakorisága) az
vizsgákon "kiosztott" hatosok számának és az összes vizsgázó hallgató számának az
aránya:
p6 = (a hatosok száma) / (a vizsgázók száma)
Nyilván a 10-es osztályzat valószínűsége:
p10 = (a tízesek száma) / (a vizsgázók száma)
Sajnos a hatos osztályzat sokkal gyakoribb mint a tízes, ezért ha valakitől az
osztályzata után érdeklődöm, akkor kapok érdekesebb, nagyobb értékű információt, ha a
kevésbé valószínű eseményről értesülök. Az információ értéke tehát fordítottan arányos
az esemény valószínűségével - a hír tatalmának várhatóságával. Mivel a valószínűség
mindig 0 és 1 közé eső szám (0 a valószínűsége a lehetetlen eseménynek, 1 a biztos
eseménynek), tehát a valószínűséget jelölő számoknak a logaritmusa negatív szám. Az
információ mennyiségének I mérésére az információelmélet megalkotója, Shannon által
bevezetett módot alkalmazzuk, amely ezt a tartalmat a így határozza meg:

I = – log2 p = log2(1/p)

Az ily módon definiált mérőszám pozitív. Mit jelent ez a szám?


Ha arról értesülünk, hogy a magasba dobott kő vissza fog zuhanni a talajra, akkor
ez az értesülés semmilyen "értékes" új ismeretet nem közöl velem – egy biztos esemény
bekövetkezéséről értesít. Mivel az esemény valószínűsége 1; ennek logaritmusa 0,
vagyis a közölt információ mennyisége zéró. Ha egy pénzérmét dobunk fel és
____________________________________________________________________________________
2
Általános alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

értesülünk arról hogy a "fej" oldalra esett, ismerve, hogy az esemény valószínűsége 1/2,
a kapott információ értéke I = –log2(1/2) = 1. Ha valamilyen váratlan körülmény miatt
az érme élére esik és úgy is marad, akkor ez rendkívül meglepő. Mivel az ilyen esemény
valószínűsége majdnem 0, az információértéke végtelen felé közelítő szám.
Az informatikai alapfogalmakról szóló bevezető mondatokban többször is leírtuk
az adat szót. Mit az adat? Valamik napilapban ezt olvassuk: "Az E-75-ös út jugoszláviai
szakaszának 75-ik kilométerénél lévő »fekete pontnak« nevezett kanyarban az elmúlt
évben 13%-kal csökkent a személyi sérüléseket okozó balesetek száma" Ez a közlemény
bizonyos információ értékkel rendelkezik mindenki számára. A 75-ös kilométerkő
közelében lakozók számára ez "jó" hír, a Tisza mentiek számára csak egy értesülés, de
így leírva, kinyomtatva vagy másképpen rögzítve: adat. Az adatok tehát olyan
információk, amelyek formája további feldolgozásra, értelmezésre, továbbításra
alkalmas. Nagyjából így határozza meg az adat fogalmát az IBM adatfeldolgozási
szótára is. Idézzük több számítástechnikai szótár és lexikon adat címszavának lényegét:

Az adat különféle dolgok vagy tények többnyire numerikus vagy


alfanumerikus megadása (kódolása).
Az adatok (data) formális módon való megadása lehetővé teszi a
azok további emberi vagy gépi feldolgozását és továbbítását.

Az informatikai alapfogalmak tárát a rendszer fogalmával bővítjük. A rendszer


keretein belül külön érdekes számunkra az információs rendszer fogalma!

A RENDSZER ÉS
KÖRNYEZETÉNEK
KAPCSOLATAI

RENDSZER
KÖRNYEZET

KÖRNYEZET

A RENDSZER ELEMEI
KÖZÖTTI KAPCSOLATOK

A RENDSZER ELEMEI

1.2.1. ábra

____________________________________________________________________________________
3
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Általános alapok

A rendszer (system) objektumok és tulajdonságaik (attribútumaik)


valamint a környezetük olyan egységbe foglalása, amely pontosan
körülhatárolt célkitűzések megvalósítására alkalmas.

Ebben az értelmezésben egy egyszerű rendszernek tekinthető mondjuk a diótörő.


Részletezés nélkül is megállapíthatjuk: a diótörőnek vannak alkotó elemei, ezek az
elemek valamilyen kapcsolatban vannak. Természetesen a rendszerhez tartozik a dió is
(nyilván a dió jelenti a környezet részesedését ebben a rendszerben). A cél a dióhéj
összeroppantása. Ennél jóval összetettebb rendszer egy gépkocsi, vagy egy automata
mosógép, de rendszer egy toronyház a lakóközösségével együtt.

Ezek után már nem nehéz meghatározni az információs rendszer és az


adatfeldolgozó rendszer fogalmát. Nyilvánvaló, hogy a más-más rendszerről van szó,
alkotóelemeik, kapcsolataik és környezetük szempontjából is.

ADATOK AMELYEK A RENDSZER


SZÁMÁRA ÉRTELMEZHETÕEK ÉS
POZITV AZ INFORMÁCIÓÉRTÉKÜK

INFORMÁCIÓS ADATFELDOLGOZÓ
RENDSZER RENDSZER

NEM ÉRTELMEZHETÕ VAGY


0 INFORMÁCIÓÉRTÉKÛ
NEM ADATFORMÁJÚ ADATOK
(NEM RÖGZITETT)
INFORMÁCIÓK

1.2.2. ábra

Az információs rendszer (information system) az információk


begyűjtésére, tárolására, feldolgozására, továbbítására és
felhasználására szolgáló eljárások, módszerek, folyamatok és
eszközök szervezett egysége.

Az adatfeldolgozó rendszer fogalmának meghatározásakor szó szerint meg


ismételhető a fenti definíció, csak az információ szót kell az adat szóval felcserélni!
Éppen ez jelenti a különbséget: az adat nem azonos az információval, az adatgyűjtés
nem azonos az információgyűjtéssel és így tovább. A két fogalom minden eleme mást
jelent, habár vannak átfedések is, de jelentős különbségek is. Sőt: adatokat
megsemmisíteni is lehet! (és az információkat?) A információs rendszerhez tartoznak
azok az információk is, amelyek nincsenek adat formájában rögzítve (tehát nem részei
az adatfeldolgozó rendszernek), ugyanakkor az adatfeldolgozó rendszer olyan adatokkal
is manipulál, amelynek nincs információs értéke (például a közismert tények) vagy az
értelmetlen adatokkal (mert ilyenek is vannak!)
____________________________________________________________________________________
4
Általános alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Mindeddig az informatikai alapfogalmak meghatározásával foglalkoztunk, de az


nem definiáltuk még az informatikát. Nem véletlenül maradt a végére, mert még ma is
éles viták folynak a pontos megfogalmazással kapcsolatban.

Álljon itt egy meghatározás, amely fedi ugyan a fogalom tartalmát, de szakmai
vita esetén pontosítani és némileg változtatni is lehetne. A következő fejezetben azonnal
szembeállítjuk az informatika fogalmát a számítástechnika fogalmával!

Az informatika (informatics) az információs rendszerek


megfigyelésével, fejlesztésével, módszereik és szerkezetük
tanulmányozásával, törvényszerűségeik felfedezésével,
hatékonyságuk növelésével (hasznosításukkal) foglalkozó
tudomány.

1.3. SZÁMÍTÁSTECHNIKAI ALAPFOGALMAK

Sokan összetévesztik (kiegyenlítik) az informatikát a számítástechnikával,


esetleg az egyiket a másik alá- vagy fölérendelik. Nem mondható, hogy az informatika
magába foglalja a számítástechnikát! Igaz, hogy az informatika alkalmaz
számítástechnikai eszközöket és módszereket, de azt is lehet mondani, hogy létezik
informatika számítástechnika (eszközei) nélkül. Kérdezhetnénk: és a számítástechnika
létezhet-e informatika nélkül. Ez már annyira részletező kérdés, hogy inkább
tanulmányozzuk a számítástechnika fogalmát – az segíteni fog felismerni a két
tudomány közötti különbségeket.

A számítástechnika (computer science) a számítógépek működési


elveit, azok szervezési és szerkezeti formáit ás alkalmazási módjait
tanulmányozó tudomány

Valóban, a számítástechnika az informatika eszköztárához tartozó elemek


megfigyelésével, működtetésével és fejlesztésével foglalkozik, tehát a számítástechnika
az informatika része. Tehát az előzőleg feltett "költői" kérdésre a válasz: nem létezhet
számítástechnika informatika nélkül! Minek létezne egy "mindentudó" komputer, ha
nincs adat amelyeket inputként használna, vagy ha önmaga input nélkül is termel
kimenő adatokat, mire jók azok, ha nem kellenek senkinek?

Úgy tűnik a definíciók szinte egymáshoz vannak láncolva. Vajon ismert-e a


számítógép fogalma. A számítástechnika értelmezésében ugyanis éppen a számítógép

____________________________________________________________________________________
5
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Általános alapok

körüli aktivitásokat tüntettük fel a tudomány alaptevékenységeként, a számítógép pedig


a kutatások tárgya.

A pontos válasz megadása céljából rövid történeti áttekintést kell adnunk és


megfogalmazunk néhány, a számítástechnika szempontjából kapitális jelentőségű
alapelvet.

Az emberi civilizáció fejlődése folyamán már korán jelentkeztek próbálkozások


olyan eszközök megszerkesztésére, amelyekkel könnyebbé tehető a számítások végzése.
Az egyik ősi eszközről, az abakuszról majd lesz még szó, most azonban a civilizációs
fejlődés 1642-ik évét említjük először. Ebben az évben szerkesztette meg B. Pascal az
úgynevezett mechanikus addiátort. (fából készült!). A szerkezet tovább élt és fejlődött,
és mondhatnánk, hogy a kis boltokban működő elektro-mechanikus (nem elektronikus!)
pénztárgépek még ma is a Pascal - féle addiátor alapelvén működnek.

1850. körül Ch. Babbage (angol matematikus) megtervezett egy gépet, amely
egyes függvények értékeit számolta volna ki, a másik terv pedig bizonyos mérnöki
számítások végzésére lett volna alkalmas, az előre elkészített adatokon szintén előre
elkészített utasításlista végrehajtásával. A tervek azonban magasan túlszárnyalták a kor
műszaki lehetőségeit. Mai ismereteinkkel belátható, hogy az áthidalhatatlan akadály az
adatok tárolása és áramoltatása volt.

1890. körül H. Hollerith a népszámlálással kapcsolatos óriási mennyiségű


számítások elvégzésének könnyítésére a Jacquard - féle (francia textilgyártó XIX. sz.
vége) lyukkártyás technológiáját használta fel. Az adatok tárolását lyukkártyákkal
oldotta meg és egy olyan gépet szerkesztett, amely a hasonló kártyák számlálását
végezte. Ezzel a tömeges adatfeldolgozást alapjait vetette meg.

Most időben nagyot lépünk. A múlt század (XX.) negyvenes éveinek elején dúló
második világháború katonai vezetői külön szakember csoportokat szerveztek a roppant
nagymennyiségű számítások gyors elvégzésére szolgáló szerkezet megépítésére. Most
már a mechanikus és elektromechanikus eszközökön túl a kutatók rendelkezésére álltak
az elektroncsövek is.

A legendás ENIAC (Electronic Numerical Integrator and Computer) nevezhető


a mai komputerek igazi elődjének, habár (mai szemmel nézve) számítástechnikai
teljesítménye igen szerény volt, ám energiaigénye annál nagyobb, óránként 800 kW
volt, hiszen kb. 18 000 elektroncsövet, 10 000 kondenzátort, 70 000 ellenállást stb.
tartalmazott a 30 méter hosszú, 1 méter magas és 3 méter széles "gyomrában". 1946-ban
készült el és 1955-ig működött.

Emlékezzünk Ch. Babbage megvalósítatlan tervére: a gép úgy működjön, hogy


az előre elkészített adatokon szintén előre elkészített utasításlistát hajtson végre! A
ENIAC köré tömörülő tudósgárda egyik tagja, Neumann János éppen az ENIAC

____________________________________________________________________________________
6
Általános alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

működését tanulmányozva megfogalmazta azokat az alapelveket amelyeken nyugszik a


mai számítástechnika. Az ENIAC utódja a BINAC már nagyrészt a megvalósítja a
Neumann elvet. A későbbi gépek már kizárólag ezeken az elveken nyugszanak.

Ismerkedjünk meg a Neumann elvekkel:

A modern számítógépek szerkezetének, felépítésének és


üzemeltetésének Neumann János által megfogalmazott alapelvei:
a tárolt program elve
a címezhetőség elve,
az önálló adat be/kiviteli egység, vezérlő egység és
művelet végrehajtó egység,
elektronikus gép a bináris számrendszerre alapozott
működéssel,
a soros utasítás-végrehajtás elve

A tárolt program elve Babbage álmának megvalósítását jelenti, azaz az előre


elkészített utasítások végrehajtását úgy, hogy azok már a gép tárolójában vannak Tehát
az utasításokat a megfelelő módon kódoltuk és elhelyeztük azokat a gép tárolójában. Az
ily módon előkészített műveletsort programnak nevezzük. Amikor a programnak
átadjuk a számítógép vezérlését a további történéseket már a program vezérli:

– beolvassa a tároló más szegmentumában elhelyezett, vagy más médiumon


tárolt adatokat,
– végrehajtja az operatív műveleteket a beolvasott, illetve a menet közben
előállított adatok felett,
– kijelzi a kért eredményeket.

A címezhetőség elve a számítógép egyik fontos komponensének, a tárnak olyan


módon való rendezettségét érti, hogy az adatok és az utasítások is azonos módon,
azonos terjedelmű memória szegmentumokban - rekeszekben - sorszámmal címezhető
egységekben helyezhetők el. Nincs megkülönböztetés adat és utasítás tárolásmódja és
tárolási helye között.

Az önálló funkcionális egységek létezésének megvalósított elvét részletesen


bemutatjuk a hardver alapismeretekről szóló 2. fejezetben.
– az adatok beolvastatása illetve kijelzése a számítógép pontosan erre a célra
épített részegységeivel történik (lásd például az adatbevitelre szolgáló
billentyűzetet, illetve az eredmények kijelzésére szolgáló képernyőt
vagy nyomtatót.
– a vezérlést a számítógép külön része végzi: a vezérlőegység (lásd: 2. fejezet, a
mikroprocesszor felépítése.) A vezérlőegység irányítja a gép működését a
tárolt programlépések végrehajtatásával.

____________________________________________________________________________________
7
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Általános alapok

– a műveleteket a vezérlőegység irányításával újabb külön egység végzi: ez az


ún. aritmetikai-logikai egység. Ezen az egységen belül hajtódnak végre a
műveletek amelyeket a tárolt programban előláttunk. (Ennek az egységnek
a megléte is jól látható, ha tanulmányozzuk a mikroprocesszor felépítését)

– végül a mikroszámítógép architektúrájában jól felismerhető funkcionális


egység a belső tároló. Itt tárolja a gép a pillanatnyilag végrehajtásra kerülő
programlépéseket és a szükséges adatokat, illetve részeredményeket.

A bináris számrendszert alkalmazó elektronikus eszköz elvének követelménye


szinte magától értődik. Korunk gyártástechnológiájának fejlettségi szintje az elektronika
terén szinte "nem ismer" lehetetlent. A bináris számrendszer alkalmazása az adatok és
programlépések tárolására szintén nyilvánvaló szükségesség. A bináris számrendszerről
részletesen egy külön fejezetben szólunk.

Az utasítások soros végrehajtásának elve a vezérlőegység által megkövetelt


sorrendet jelenti. Az algoritmus lépéseit (lásd az algoritmusokról szóló fejezetet!) a
végrehajtás sorrendjében tárolja a gép és szigorúan tiszteli ezt a sorrendet. Az egyik
végrehajtott utasítás után a vezérlőegység lépteti a programszámlálót, és az "rááll" a
fizikailag következő címre, az aritmetikai egység pedig végrehajtja az ott tárolt utasítást.

1.4. SZÁMÍTÁSTECHNIKAI ESZKÖZÖK

1.4.1. OBJEKTUMOK ÉS MATEMATIKAI MODELLJEIK

A valós világ folyamatait, és jelenségeit a természettudományok egyes ágazatai


tanulmányozzák. A műszaki szerkezetek tervezését, megalkotását, működését és
működtetését a műszaki tudományok vizsgálják. Az emberi társadalomban zajló
jelenségek és folyamatok a társadalomtudományok kutatási tárgyát képezik. (Nyilván ez
a besorolás eléggé sarkított, ám nagyjából fedi a tudományos kutatási területek
osztályozását). Mondható, hogy mindegyik kutatási területnek a tárgya valamilyen
objektumok halmaza, valamint az objektumok között fennálló relációk vizsgálata. Az
objektumok megismerése különböző eszközök felhasználásával és tudományos
módszerek alkalmazásával történik.

Az egyik tudományos módszer az objektum vizsgálatát felcseréli az objektum


matematikai modelljének tanulmányozásával. A cserét gyakran anyagi okok indokolják:
valamely valós folyamat vizsgálata túl nagy anyagi költségekkel járna – ám a folyamat
leírható mondjuk egy összetett egyenletrendszerrel. Az egyenletrendszer paramétereinek
variálásával a valós folyamat különböző lefolyásait "utánozhatjuk", – ezt szimulációnak
____________________________________________________________________________________
8
Általános alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

nevezzük – és a folyamat végét az egyenletrendszer megoldásából fel tudjuk becsülni.


Bizonyos hogy "olcsóbb" megoldani a terhelést leíró egyenletrendszert, mint valamely
merev gerendát addig terhelni, míg az el nem törik.

Más módon is "helyettesíthetjük a valóságot"! Maradjunk ennél az utolsó


példánál: a 20 méteres gerendát helyettesíthetjük egy 20 centiméteres rudacskával is!
Elvégezzük a megfelelő kísérleteket a kicsinyített másolaton, és a nyert eredményeket
"felnagyítjuk". Mindkét esetben modellen végeztük el a vizsgálatokat: az első mód a
matematikai modell vizsgálata volt, a második esetben a fizikai modellel való kísérlet
helyettesítette a valós folyamat vizsgálatát, de annak megismerését.

Nyilvánvaló, hogy a matematikai modellek, és a vizsgálatukra felhasználható


eszközök lesznek a továbbiakban a figyelmünk középpontjában.

Az objektum matematikai modelljén az objektum tulajdonságait


és viselkedését leíró relációk és formulák összességét értjük.

Az elsődleges kérdés: lehetséges-e megszerkeszteni az objektum matematikai


modelljét? Gyakran a vizsgált objektum annyira összetett, hogy sohasem állítható fel a
teljes matematikai modellje. Lehetséges, hogy nincs is szükség a teljes modellre, hanem
csak a tanulmányozás céljából egyes fontos tulajdonságokat kell modellezni.

A matematikai modellek alkalmazásához először is magát a modellt kell


megszerkeszteni a vizsgálat szempontjából legalkalmasabb formában. A második fázis:
"kicsikarni" a modellből explicite azokat az információkat, amelyeket implicite
magában hordoz. Ezt az információkiszűrést összetett modellek esetében lehetetlen
"papírral és ceruzával" megoldani. Az ilyen esetekben már valamilyen műszaki segéd
eszközökre vagyunk utalva. Ezeket a segédeszközöket nevezzük számítástechnikai
eszközöknek. A továbbiakban a számítástechnikai eszközök alapvető felosztásával,
fejlődésük legfontosabb fázisaival ismerkedünk meg. Kiemeljük még azt a tényt, hogy
ma már a számítógépnek a tudományos kutatáson túl sokkal "prózaibb", mindennapos
felhasználásai léteznek – ezekről a felhasználásokról is szót ejtünk majd.

1.4.2. SZÁMÍTÁSTECHNIKAI ESZKÖZÖK OSZTÁLYOZÁSA

A matematikai változók kezelése, tárolása és a velük való műveletek milyensége


szempontjából a számítástechnikai eszközök két osztályba sorolhatók:

az analóg, vagy kontinuális számítástechnikai eszközök, és


a diszkrét, vagy digitális számítástechnikai eszközök osztályába.
____________________________________________________________________________________
9
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Általános alapok

Ismerjük meg mindkét osztály, az analóg és a diszkrét számítástechnikai


eszközök osztályának alapvető tulajdonságait és működésének alapelveit!

1.4.2.1. KONTINUÁLIS SZÁMÍTÁSTECHNIKAI ESZKÖZÖK

A kontinuális számítástechnikai eszközök alapötlete a következő: olyan eszköz


megszerkesztése, amelynek a működését az a matematikai modell írja le amelyet éppen
vizsgálunk. Nyilvánvaló, hogy nagyon ritkán sikerül megszerkeszteni azt az eszközt,
amelynek a matematikai modellje azonos a vizsgált modellel, így mindig vannak a
vizsgálódásainkban bizonyos "közelítések", vagyis a vizsgálatok eredményei korlátozott
pontosságúak.

Legyen a vizsgált matematikai modell egy "közönséges" szorzás:

z = x·y

Másfelől, az elektrotechnika egyik alapfogalma az elektromos áramkör,


amelyben a feszültség U, az áramerősség I, és az ellenállás R között a következő
összefüggés áll fenn:

U = R·I

Nyilvánvaló, hogy a két matematikai modell azonos. Ezt az analógiát


felhasználhatnánk egy analóg (vagy kontinuális) "osztógép" megszerkesztésére: Olyan
áramkört kellene konstruálnunk, amelyben valamely számozott skálán tetszés szerint
változtathatnánk a feszültséget és az ellenállást és ugyancsak egy számozott skálán
leolvashatnánk U és R számértékének hányadosát.

Vizsgáljunk egy másik példát!


Legyen a matematikai modell:

y=3 x
.

Készítsük egy olyan kúpot, amelynek sugara és magassága közötti arány

r 3
= = 0.97720502380583984317276924567665.
H π
____________________________________________________________________________________
10
Általános alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

1
Mivel a kúp térfogata Vk = π r 2H , ha behelyettesítjük a sugár és a magasság
3
adott arányával, akkor a H = V k összefüggést nyerjük.
3

x=V y

1.4.2.1.a ábra

A kúp térfogatának és a beletöltött folyadék mennyiségének aránya a következő:

Vk:V=y3:H3.

Ha a betöltött folyadék mennyiségét egy menzúrában kimérjük és mérőszámát x-


szel jelöljük, akkor könnyű belátni hogy igaz az alábbi összefüggés: y = 3 x .

Úgy látszik, hogy a köbgyökvonásra alkalmas berendezést hoztunk létre.

A eszköz használatának lépései:

a) a menzúrába x mennyiségű folyadékot töltünk (ezt a számot a menzúra


oldalán feltüntetett skáláról olvassuk le)

b) áttöltjük a folyadékot a tölcsérbe és leolvassuk a tölcsér oldalán feltüntetett


skáláról az y számot, mint az x szám köbgyökét.

Nyilvánvaló, hogy ezt az analóg "számítógépet" nem gyakorlatiassága és


hatékonysága miatt mutattuk be, hanem azért hogy rámutassunk az analóg számítási
eljárások hiányosságaira (és előnyeire is).

A legfontosabb kérdés a számítási eljárás pontossága. Könnyű belátni, hogy a


mérések pontossága korlátozza az eredmények pontosságát is. A mérések pontosságát
pedig az eszközök pontossága korlátozza. Vajon milyen pontosan lehet olyan tölcsért
előállítani, amelynek a sugara és magassága az adott arányú? Vajon milyen pontosan
lehet a menzúra és a tölcsér falára rágravírozni a skálákat? Vajon milyen pontosan
____________________________________________________________________________________
11
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Általános alapok

olvassa le az egyén a skálákról a számértékeket? Éleslátású-e? Milyen szögben szemléli


a skálát? És így tovább sorakoznak a kérdések, amelyekre a válaszok csakis a
pontosságot teszik kétségessé. Van azonban egy nagy előnye az eljárásnak: nincs
időigénye. A modellben szereplő mennyiségek közötti relációk felállításának
pillanatában már az eredmény is megvan.(mondhatni: a számítási idő = 0).

Az előbbi fejtegetések nem az analóg számítási eszközök használhatatlanságát


bizonygatják, csak korlátozott lehetőségeikre mutatnak rá. Igen is alkalmazzuk ezeket
az eszközöket azokon a helyeken ahol a műszaki megoldások ezt megkövetelik.
Léteznek analóg számítógépek, amelyek funkciójával más tanfolyamok keretein belül
ismerkednek meg a hallgatók.

Az analóg számítástechnikai eszközök áttekintésének bizonyos teljessé tétele


miatt szólunk ezeknek az eszközöknek egy másik kategóriájáról: ezek a kézi analóg
számítástechnikai eszközök. Nem részletezzük a nomogramok népes családjának
használatát és az alkalmazásuk alapját képező matematikai modelleket, de a logarlécet
megemlítjük mert külön jelentősége van a korábbi mérnöki gyakorlatban és a
számítástechnikával hivatásszerűen foglalkozóknak érdemes részletesen is megismerni
a logarlécet! Meggyőződésem, hogy ennek a megismerésnek nemcsak fejlődéstörténeti
jelentősége van, hanem nagyon tanulságos a mérnöki szakmára készülő hallgatók
számára.

Újra visszatérünk a közismert szorzás matematikai modelljéhez: z = x·y

Tekintsük a logaritmálás és a szorzás jól ismert összefüggését:

log x·y = log x + log y

A logarléc működésének elve pontosan ezen a matematikai modellen alapul.


Tekintsünk két teljesen azonos skálát, amelyek egy-egy egymás mellett csúsztatható
lécekre rajzoltunk (1.4.2.1.b. ábra)

1 2 3 4 5 6 7 8 9 10

1 2 3 4 5 6 7 8 9 10

1.4.2.1.b. ábra

A skálán a számok logaritmusaik helyzete szerint vannak elhelyezve, vagyis az 1


és 2 közötti távolság log1 és log2 közötti távolsággal arányos, ugyanígy a 2 és 3 közötti
távolság log2 és log3 közötti távolsággal arányos, és így tovább. Tehát: ha "összeadjuk"
a skálán látható távolságokat, akkor a számok logaritmusait adjuk össze, vagyis a
____________________________________________________________________________________
12
Általános alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

logaritmus fent már említett tulajdonsága alapján a számokat összeszoroztuk. Figyeljük


meg az ábrán a két skála helyzetét. A felső skála (az úgynevezett csúszó léc, németül:
Schieber – innen a logarléc "beceneve" a síber) 1-gyel jelölt pontját az alsó skála x
pontjához csúsztatjuk. Az egyszerűség kedvéért az ábrán x = 2. Ezután a csúszón
megkeressük az y számot, és alatta, az álló skálán leolvassuk x és y szorzatát. Vegyük
észre következőket: mondjuk a 2·3 szorzat értékére voltunk kíváncsiak. Valóban a
csúszó skála 3-as jelzése alatt az álló skálán a 6 szám áll, de ott áll a csúszó kettese alatt
az álló 4-ese, vagy az 5 szám alatt a 10, stb. A skálák pontossága az eszköz
kidolgozásának igényességétől függ. Bizonyos, hogy egy 15 cm hosszúságú logarléc
skálái nem lehetnek olyan precízek, mint a 25 centiméteres eszközé (ez "volt" a
leggyakrabban használt méret, de éppen a pontosság növelése miatt voltak 50 cm-s
lécek is, amelyeken a leolvasható értékes számjegyek száma 5 sőt 6 is lehetett! )

Természetes, hogy a logarléccel többfajta számítást is el lehet végezni. A skálák


sokaságát találjuk mindegyiken: a trigonometriai függvények értékei (kis szögekre és
normál nagyságú szögekre), az inverz trigonometriai függvények értékei, az
exponenciális függvények (és inverzeik), és néhány hatványfüggvény értékei már eleve
leolvashatók, de nagyon sok egyéb számítási eljárás is elvégezhető vele), ezért érdemes
közelebbről is megismerkedni vele.

1.4.2.2. DISZKRÉT SZÁMÍTÁSTECHNIKAI ESZKÖZÖK

Amíg az analóg számítástechnikai eszközök "működése" a fizikai mennyiségek


kontinuális változásain alapul, a diszkrét eszközök működésének alapjait a fizikai
mennyiségek úgymond ugrásszerű (ez a "diszkrét" tulajdonság) változásai képezik. A
matematikában megismerkedtünk a kontinuális és diszkrét halmazokkal. A "diszkrét"
tulajdonságot a legkönnyebben a természetes számok halmazának és a valós számok
halmazának a következő módon történő összehasonlításával illusztrálhatjuk: Van-e
olyan természetes szám, amelyik nagyobb mondjuk 5-nél és kisebb 10-nél. Nyilvánvaló
a válasz: van, méghozzá pontosan négy ilyen szám létezik, a 6, a 7, a 8 és a 9. Most
tegyük fel ugyanezt a kérdést a valós számokkal kapcsolatban! Másként válaszolunk: az
5 és a 10 számok közötti köz folyamatosan (kontinuálisan) valós számokkal van
kitöltve. Nem található "hézag". A természetes számok "lépcsőzetessége" jelenti a
halmaz diszkrét tulajdonságát.

A diszkrét számítástechnikai eszközök alapelvét segít megérteni az egyik


legrégibb ilyen eszköz, az abakusz

Az abakusz kerete egy keresztléccel A és B részre van osztva. Az A részben


mindegyik huzalon egy-egy golyó van, a B részben a golyók négyesével sorakoznak.
(1.4.2.2. ábra.)

____________________________________________________________________________________
13
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Általános alapok

5 6 3 8 0 9 2 1 4

1.4.2.2. ábra

Ha az A szektor golyója a keret peremén van akkor "nem létezik" (értéke 0), ha
a választóléchez mozdítjuk, akkor értéke 5. A B rész golyóinak mindegyike 1-et jelent
ha a választóléchez csúsztatjuk. Ily módon mind a tíz általunk használatos számjegy
ábrázolható (mint ahogy azt megtettük az 1.4.2.2. ábrán is). A számtani műveletek az
abakuszon való végzésének külön "művészete" van. Érdekességként elmondjuk, hogy
az abakusz Kínában, Japánban, és más távol keleti országokban még ma is használatban
van (igaz, több helyen már csak érdekességként), és még versenyeket is szerveznek
annak a kérdésnek az eldöntésére: ki az ügyesebb és fürgébb abakusz-használó?

Az ábrázolt abakusz a tízes számrendszer műveleteinek végzésére szolgál (lásd a


számrendszerekről szóló fejezetet!). A keresztlécen elhelyezett jelölő gombocskák az
ábrázolt állapotban két tizedes jegy és 7 egész számjegy pontossággal végzett
műveleteket teszik lehetővé (az így ábrázolható legnagyobb szám 9 999 999,99).
Nyilvánvaló, hogy a csoportosítást jelölő gombocskák eltávolíthatók / áthelyezhetők és
a számítási korlátok már elmozdulnak (de nem változik meg az "értékes" számjegyek
száma – jelen esetben ez a szám 9, mert 9 huzal van). A huzalok száma lehet nagyobb,
de lehet kisebb is.

Most megállapíthatjuk a diszkrét számítási eszközök jellemző tulajdonságát,


amely megkülönbözteti őket a kontinuális eszközöktől. Mint láttuk, a kontinuális
eszközöknél időt igényelt a fizikai mennyiségeknek a matematikai modell szerinti
relációba állítása, de nem volt igény számítási időre. A diszkrét számítási eszközöknél
a számítási eljárás elvégzésére időre van szükség (miért is versenyeznének az abakusz
virtuózai?) Az igényelt idő alatt megtörténnek a számítástechnikai eszköz olyan
állapotváltozásai , amelyeket a bemenő mennyiségeknek a kimenő mennyiségekre való
átalakítását eredményezik.

____________________________________________________________________________________
14
Általános alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

1.4.2.3. A KORSZERŰ SZÁMÍTÁSTECHNIKAI ESZKÖZÖK

A korszerű számítástechnikai eszközöket műszaki megvalósításuk és


alkalmazásuk szempontjai alapján az alábbi négy osztályba sorolhatjuk:

az analóg számítógépek osztálya,


a digitális számítógépek osztálya,
a vegyes felépítésű, vagy hibrid számítógépek osztálya és a
kézi számítási eszközök osztálya.

Az első két osztályba sorolt számítógépek az 1.4.2.1. és az 1.4.2.2. fejezetben leírt


módon működő, modern technológiával megépített számítástechnikai eszközök.
Mindkét osztály példányait rendeltetésük szerint már eleve általános, vagy különleges
(speciális) célok megvalósítására fejlesztik ki és gyártják (sorozatban vagy egyedi
megrendelésekre). Hangsúlyozni kell, hogy az általános rendeltetésű számítógép nem
akkor válik "különlegessé" amikor egy speciális problémaosztályt megoldó programmal
szereljük fel, hanem ha az eszközt már eleve a különleges rendeltetés végzésére tervezik
és építik fel.

A hibrid számítógépek felépítményükben analóg és kontinuális (digitális) módon


működő részegységeket is tartalmaznak. Nyilvánvaló, az ilyen gépekben különösen
fontos szerephez jutnak az alapvetően különböző módon működő szervezeti részek
közötti kommunikációt megvalósító egységek az AD (analóg→digitális), illetve a DA
(digitális→analóg) konverterek vagy jelátalakítók. Ez a terület is szakmailag rendkívül
izgalmas és a hallgatók még sokat foglalkoznak majd a jelátalakítókkal.

A kézi számítástechnikai eszközök osztályába sorolhatók mindazok az eszközök,


amelyeket az ember mindennapi munkájában bármilyen számítási, memorizálási
(tárolási), üzenetközvetítői, stb. feladat elvégzésére szolgálnak. Jellemző ismérve
mindezeknek az eszközöknek, hogy a felhasználó lépésenként közli az eszközzel
utasításait és az eszköz minden utasításra azonnal "válaszol". Nem kell sok példát
mutatnunk a kézi számolóeszközök osztályából, elegendő mindössze a zsebszámológép
működését megfigyelni. Hogyan is végezzük el segítségével két szám összeadását?
"Bekopogjuk" az első összeadandó számjegyeit, majd következik a "+" jel begépelése,
ezután bekopogjuk a második összeadandó számjegyeit és végül az "=" jelet.
Folyamatos tehát az interaktív kapcsolat a felhasználó és az eszköz között. Ez a
felhasználási mód jellemző mindegyik kézi számítástechnikai eszközre. A kézi
eszközök működési elvüket tekintve lehetnek analóg és digitális típusúak is (a logarléc
is egy kézi analóg számítástechnikai eszköz).

Tagadhatatlan, hogy az műszaki lehetőségek fejlődésével és a mikroprocesszor


megjelenésével a számítástechnikai eszközök gyártása és felhasználása forradalmian új
alapokra helyeződött: a számítógépek lehetőségei a korábbi képességekhez viszonyítva
összehasonlíthatatlanul nagyobbak, fizikai méreteik majdnem hasonló arányban

____________________________________________________________________________________
15
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Általános alapok

zsugorodnak! (Hasonlítsuk csak össze a kb. 4 kB tárkapacitású az ENIAC tekintélyes


30×3×1 méteres testét valamint 18000 elektroncsövét mondjuk az 1997-ben megjelent
IBM Pentium II processzorjával, amelyben csekély 7,5 millió tranzisztor nyüzsög
egyetlen szilíciumlapkán amelynek mérete nem nagyobb mint 2×2 centiméter, és az
általa kezelhető tárkapacitást ne is szembesítsük az ENIAC képességeivel!)

A következő fejezetekben a mikroszámítógép működtetésének anyagi és


intellektuális alapjait jelentő hardver- és szoftver alapfogalmakkal ismerkedünk meg,
majd kissé részletesebben foglalkozunk a számítógépek működésének matematikai és
logikai alapjaival, és végül alapfokon megismerkedünk egy programozási nyelvvel is.

Ellenőrző kérdések:

1. Határozza meg az információ fogalmát!


2. Határozza meg az adat fogalmát!
3. Hogyan mérjük az információ mennyiségét?
4. Határozza meg a rendszer fogalmát!
5. Határozza meg az információs rendszer fogalmát!
6. Határozza meg az adatfeldolgozó rendszer fogalmát!
7. Magyarázza el az információs rendszer és az adatfeldolgozó rendszer
kapcsolatát!
8. Határozza meg az informatika fogalmát!
9. Határozza meg a számítástechnika fogalmát!
10. Magyarázza meg az informatika és a számítástechnika kapcsolatát!
11. Sorolja fel a Neumann elveket!
12. Mit jelent a tárolt program elve?
13. Mit jelent a címezhetőség elve?
14. Mit jelent az önálló be/kiviteli, vezérlő és művelet végrehajtó egység
létezésének elve?
15. Mit jelent az elektronikára és a bináris számrendszerre alapozott működés elve?
16. Mit jelent a soros utasítás-végrehajtás elve?
17. Mi az objektum és matematikai modelljének kapcsolata?
18. Osztályozza a számítástechnikai eszközöket működési elvük szerint!
19. Sorolja fel az analóg eszközök alapvető ismérveit!
20. Mutasson be egy jellemző analóg számítástechnikai eszközt!
21. Sorolja fel a diszkrét számítástechnikai eszközök alapvető ismérveit!
22. Mutassa be az abakuszt, mint a diszkrét eszközök jellemző képviselőjét!
23. Osztályozza a korszerű számítástechnikai eszközöket!
24. Jellemezze a "hibrid" eszközök működési elvét!
25. Jellemezze a kézi számítástechnikai eszközök alapvető tulajdonságait!
____________________________________________________________________________________
16
2. HARDVER ALAPOK

Az adatfeldolgozási technikában kétféle terméket különböztetünk meg: az egyik


oldalon áll az a tapintható, érzékelhető, látható anyagi eszköz, a hardver (hardware),
amely szó szerint "kemény árut", vagy "anyagi terméket" jelent, míg a másik oldalon a
szoftver (software) "lágy árut" illetve "szellemi terméket" jelent. A szoftverről a 3.
fejezetben szólunk majd, most tanulmányozzuk részletesebben a hardver fogalmát!

Hardveren egy adatfeldolgozó berendezés


. (számítógép) összes műszaki (fizikai) alkatrészét értjük.

A felhasználóval közvetlen kapcsolatban lévő hardver-elemek tömkelegéből


összeállított számítógépek osztályozási szempontjai lehetnek:
• működési sebességük szerint,
• tárkapacitásuk szerint,
• szóhosszúságuk szerint,
• perifériák száma szerint és
• adatátviteli sebességük szerint

Az osztályozási szempontok figyelembevételével az első helyen említhetjük


világon rendkívül csekélyszámú – rendszerint hadi célokra kifejlesztett és működtetett
szuperszámítógépeket. A CRAY-féle számítógép műszaki tulajdonságainak sorolása
jelen tanfolyamunk kereteiben teljesen felesleges lenne (elérhetetlensége, ára, és
természetesen titkossága miatt is). Az úgynevezett mainframe számítógépek még
mindig meghaladják a közepes felhasználhatóság szükségleteit: ezek is még óriásgépek,
nyugati nagy biztosítási cégek, repülőterek, állami statisztikai hivatalok stb. céljaira
készülnek. (Például az egész világra kiterjedő hálózatokat is irányíthatnak). A
mainframe gépekből is aránylag kevés van használatban. Ezt a "kevés" minősítést a
kisszámítógépek számához kell viszonyítani. A "kisszámítógép" nyugodtan elvégzi a
közepes és nagyvállalatok kiszolgálását és például egyetemi számítógépként is
használható. Működési sebessége, tárkapacitása és gyors perifériái lehetővé teszik, hogy
helyi hálózatokat irányítson.

Elterjedtségüket tekintve mindenképpen a mikroszámítógépek uralják a területet.


A különböző specializált feladatokra készülő számítógépeket (a zseb-kalkulátorokat, a
____________________________________________________________________________________
17
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Hardver alapok

fordító-automatákat, a specifikus vezérlő berendezéseket, a menedzser-kalkulátorokat, a


szöveg-automatákat, stb.) jelen tanfolyamunk keretei között nem tanulmányozzuk.
Figyelmünket a szabadon programozható – úgynevezett személyi számítógépekre
összpontosítjuk.

Az alapfogalmak amelyeket megismerünk elsősorban a személyi számítógép


(mikroszámítógép) központi feldolgozó egységével a mikroprocesszorral kapcsolatosak,
megismerkedünk a mikroszámítógép egészének működési alapelveivel (tehát a
processzort körülvevő felépítménnyel) és szó lesz a számítógép-hálózatokról is.

2.1. A MIKROSZÁMÍTÓGÉP

A mikroszámítógép funkcionális részeit és azok kapcsolatát a 2.1.1. ábrán


láthatjuk:

MEMÓRIABUSZ
BEMENETI KIMENETI

OUTPUT
PROCESSZOR

INPUT
MEMÓRIA
MIKRO

CIMBUSZ

OUTPUT INPUT

I/O BUSZ vagy RENDSZERBUSZ

2.1.1. ábra

A mikroszámítógép alapvető funkcionális egységei:

• A bemeneti egység (INPUT) – az adatok és a programok bevitelére,


• A memória (főtár) – a műveletek elvégzéséhez szükséges utasítások és
adatok tárolására,
• A mikroprocesszor – amely elvégzi a műveleteket a memóriától kapott
adatokon,
• A kimeneti egység (OUTPUT) – amely a mikroprocesszor által
előállított eredményeket visszajuttatja a felhasználónak.
____________________________________________________________________________________
18
Hardver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Vizsgáljuk meg a 2.1.1. ábrán a négy funkcionális egység közötti


kapcsolatrendszert! A valóságban ez elektromos vezetékek tömege. Ezek a vezetékek
szállítják az információk tömegét. Nyugodtan állíthatjuk, hogy ez a vezetékrendszer a
mikroszámítógép négy funkcionális egysége mellett az ötödik – és ugyanolyan
kimaradhatatlan alkotó elem mint az első négy. Ezt a vezetékrendszert nevezik busz-
nak, sínrendszernek de gyakori a magisztrális elnevezés is.

A mikroszámítógép sínrendszerének van egy szegmense, amely a


mikroprocesszoron belül működik (erről majd a 2.2. fejezetben szólunk). Ez a belső
busz.

A memóriabusz a mikroprocesszort köti össze a memóriával. Az információk


áramlásának irányától függően beszélhetünk bemeneti buszról, kimeneti buszról
(adatbusz) és a címbuszról. A címbusz az egyes eszközök regisztereinek címét szállítja,
az adatbuszon pedig a feldolgozás adatai áramlanak. A buszok "szélessége" hatással van
az adatfeldolgozás sebességére, mert 8, 16, 24 vagy 32 vonalon (ma már több vonalon
is) párhuzamosan történik az információk áramlása.

Az I/O busz vagy rendszerbusz az INPUT/OUTPUT egységek és a mikro


processzor közötti kommunikációt szolgálja.

A mikroszámítógép funkcionális egységeit és az egységeket összekötő


sínrendszert fizikailag egy lapra, az alaplapra (Motherboard) helyezik el (A 2.1.2.a ábra)

I/O INTERFÉSZEK
BÕVITÕHELYEK

A PROCESSZOR
ALJZATA

SÍNRENDSZER

MEMÓRIAMODULOK
BIOS ALJZATAI

2.1.2. a. ábra

____________________________________________________________________________________
19
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Hardver alapok

A 2.1.2.a. ábrán egy egyszerűbb alaplap fényképe látható, amelyen rámutattunk


a legfontosabb részekre, a 2.1.2. b ábrán pedig egy "sok mindent tudó" kétprocesszoros
összetett alaplap látható a gyártó cég gyakorlati útmutatójából.

2.1.2. b ábra

1. Az egér csatlakozója 16. Telep (elem)


2. A billentyűzet csatlakozója 17. Rendszer BIOS
3. Soros port 2 18. RDM csatlakozók
4. Párhuzamos port 19. 1. csatorna Ultra-2 SCSI (68 pin)
5. Soros port 1 20. 2. csatorna Ultra-2 SCSI (68 pin)
6. USB csatlakozó 21. 2. csatorna SCSI cstlakozó (50 pin)
7. RJ-45 csatlakozó 22. FDD (flopi) csatlakozója
8. LAN-lontroller 23. EIDE csatlakozó (2)
9. AGP aljzat 24. EIDE csatlakozó (1)
10. PCI aljatok 25. DIMM memóriamodul aljazok
11. ISA aljzat 26. Intel system controller
12. PCI-ISA bridge (Intel) 27. Elektromos hálózati csatlakozás (1)
13. PCI-ISA bridge (DEC) 28. Elektromos hálózati csatlakozás (2)
14. Csipogó 29. Elektromos hálózati csatlakozás (3)
15. SCSI kontroller 30. "Slot 1" CPU aljzatok

A 2.1.2.b ábra magyarázó táblázata

Fontos az alaplapon elhelyezett komponensekről néhány tényt közölni (már


többször említettük, a részletes megismerés a szakma szükségletei szerint más-más
tárgy keretein belül és különböző elmélyültséggel történik majd).

A mikroprocesszorról szól a teljes 2.2. fejezet.

A memória (operatív memória – Operating Memory: OM, vagy Main Memory:


MM) tárolja a feldolgozáshoz szükséges adatokat és a feldolgozás folyamán keletkező
részeredményeket és eredményeket, valamint az adatokon elvégzendő műveleteket leíró
programokat is. A memóriák rekeszekből tevődnek össze, a rekeszek alkotóelemei a
____________________________________________________________________________________
20
Hardver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

cellák (2.1.2. ábra). Általában nyolc cella egységét nevezzük egy rekesznek, ez azt
jelenti, hogy az egy rekeszben tárolható információ 1 bájt. A Neumann elvek egyike a
címezhetőség elve – nos a rekesz a memória legkisebb címezhető egysége, vagyis
minden rekesznek pontosan meghatározott címe van. (Más kérdés az, hogy a gép a
feldolgozás folyamán hány rekesz tartalmát – hány bájtot – kezel egy szónak. A szó
lehet egy, kettő, négy vagy akár nyolc bájt hosszúságú is. A nyolc bájt hosszúságú
szavakat 64 bit alkotja!)

CÍMEK REKESZEK

00000000 0 1 0 0 1 0 1 1

00000001

MEMÓRIA MODUL
1 1 0 1 0 1 0 0

00000010
1 0 0 0 1 1 1 0

11111110 0 1 0 1 0 1 1 0

11111111
1 0 0 0 0 0 0 0

2.1.3. ábra

A 2.1.3. ábrán egy feltételezett (nyilván, nagyon leegyszerűsített) memória


szerkezetet ábrázoltunk. A rekeszek nagyobb egységekbe vannak tömörítve: ezeket az
egységeket memória moduloknak nevezzük. A 4. fejezetben az olvasó majd
részletesebben is megismerkedik a bináris számrendszerrel (ez a számítógép belső
jelrendszere). Az ábrázolt modul 256 rekeszt tartalmaz, ezért egy-egy rekesz címe (a
modulon belül) szintén 1 bájt hosszúságú. Ha a modul rekeszeinek száma nagyobb 256-
nál, akkor ezekre a rekeszekre vonatkozó cím bitjeinek száma több mint 8. De a
memória nem csak egy modulból áll! Bizonyos, hogy egy konkrét rekesz címének első
része utal a modulra, amelyben a rekesz található, a cím második része pedig a rekesz
modulon belüli helyére mutat.

Szemléljünk egy példát! Legyen 16 bites a memóriacímzés. Legyen az első hat


bit a modulra mutató címrész. Ez azt jelenti, hogy a 000000 címjelzésű modultól
kezdve az 111111 című modulig terjed a memória. (Összesen ez 26 = 64 modult jelent).
Mivel a rekeszre mutató címrész 10 bites, ez azt jelenti, hogy 210 = 1024 rekesz létezik
mindegyik modulon belül.
____________________________________________________________________________________
21
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Hardver alapok

MODULCÍM REKESZCÍM
1 1 0 0 1 1 1 1 1 0 0 0 1 0 1 1

A címezhető rekeszek száma tehát 216 = 65536. (Hozzáértő körökben így


mondjuk: 64K kapacitású memóriával van dolgunk).

A memória műszaki megvalósításáról nem szólunk, ám ismernünk kell a két


alapvető memória változatot:

A ROM memóriába azok az információk vannak beírva (kitörölhetetlenül és


megváltoztathatatlanul), amelyeket a gép alapműködtetéséhez szükségesek. Ezek az ún.
csak olvasható tárak (ROM = Read Only Memory).

A RAM tárak tartalma változtatható, tehát írhatók és olvashatók is. A


médiumok, amelyeken az ilyen tárak elhelyezhetők különbözők: mágneslemezek,
optikai lemezek, mágnesszalagok, stb. (RAM = Random Access Memory).

A számítógép működését egy belső óra "ketyegése" szabályozza. Az óra által


folyamatosan leadott egyenletes ritmusú jelek alapján a történik a memóriából a "sorban
álló és várakozó" következő programlépés lekérése (a programlépésnek is van címe!),
majd a programlépésben megjelölt címről (címekről) a processzor bekéri az adatokat,
elvégzi a kijelölt műveletet és az eredményt visszahelyezi más (szintén adott) címre. Ezt
a műveletsort nevezzük gépi ciklusnak. Nyilvánvaló, egy gépi ciklus lezajlásához a
belső óra által kiadott órajel több ütemére van szükség. Hány ütem szükséges egy gépi
ciklus végrehajtáséra? Ezek a számok nagyon változók. A számítógépek gyártás-
technológiájának fejlődésével egyrészt növelik a belső óra által vezérelt frekvenciát (ez
az a szám, amit a modern számítógépeknél elsősorban említünk: 200 MHz, vagy
400MHz esetleg 800Mhz, - vannak már olyan számítógépek is amelyek órajelének
frekvenciája 1GHz felett van!), másrészt egyre kevesebb ütem szükséges egy gépi
ciklus befejezéséhez. Mindez a számítógépek sebességét szinte hihetetlen határokon
túlra növeli

A be- és kiviteli egység (Input/Output unit – I/O) tartja a kapcsolatot a


mikroprocesszor és a perifériák között. A 2.1.1. ábrán elkülönítve ábrázoltuk az
alaplapon elhelyezett INPUT Unit (röviden IU) és az OUTPUT Unit (röviden OU)
egységeket. Értelemszerűen ezek csak az adatok befelé illetve azok kifelé áramlására
figyelő egységek. Az adatok forrásai, illetve célállomásai az alaplapon kívül létező
fizikai objektumok sokasága. Ezek a számítógép perifériái.

____________________________________________________________________________________
22
Hardver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

A számítógép perifériáival műszaki szempontból nem foglalkozunk az


Alapismeretek tanfolyam keretein belül, mindössze a teljes áttekinthetőség kedvéért
felsoroljuk a mikroszámítógépet kiszolgáló leggyakoribb perifériákat:

4
2

3
F

5 E

6 G
C

A B
D

2.1.4. ábra

(1) BEVITELI PERIFÉRIÁK:


• billentyűzet (A),
• egér (B),
• szkenner (optikai letapogató – scanner) (C),
• fényceruza vagy más fényérzékeny olvasó (D),
• mikrofon, stb.

(2) KIVITELI PERIFÉRIÁK:


• képernyő (monitor, display) (1)
• nyomtató (printer) (2),
• rajzoló (plotter) (3),
• hangszóró és egyéb akusztikus kiviteli eszközök (4).
____________________________________________________________________________________
23
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Hardver alapok

(3) VEGYES RENDELTETÉSŰ (I/O) PERIFÉRIÁK:


• mágneslemezes tárak (merevlemez – winchester,
hajlékonylemez – floppydiszk) (5-E),
• mágnesszalagos tár (sztrímer) (6-G),
• optikai lemezes tár (CD ROM és újraírható, DVD ROM és
újraírható) (F).

A 2.1.4. ábrán a mikroszámítógép egy lehetséges konfigurációját ábrázoltuk. Az


ábra nem jelöli külön a merevlemezt, mert az a számítógép "házában" van elhelyezve és
egy esetleges villogó lámpácskától eltekintve nincs semmilyen külső, látható jele fizikai
ittlétének. A külső egységek úgynevezett illesztőkkel (interfész) csatlakoznak az alaplap
megfelelő komponenséhez (tehát a kimeneti perifériák az OU-hoz a bemeneti perifériák
a IU-hoz). A csatlakoztatási technológiákról is későbbi tanfolyamokon lesz szó.

Szükségesnek látjuk felhívni az olvasó figyelmét arra, hogy nem az "extrákkal"


felszerelt számítógép-konfigurációról szóltunk, hanem egy a mindennapi szükségleteket
kielégítő eszköz összetételét ismertettük. Minimális igény mindenképpen egy olyan
számítógép, amely a "házba" elhelyezett alaplap és az azt kiszolgáló felszerelés mellett
rendelkezik merevlemezzel, floppymeghajtóval, billentyűzettel, egérrel és nyomtatóval.
Az egyéb perifériák már a munka specifikussága miatt szükségesek, de lehetnek a
felhasználó anyagi lehetőségeinek jelei is.

2.2. A MIKROPROCESSZOR

A mikroprocesszor a mikroszámítógép központi feldolgozó egysége. Az angol


nyelvű elnevezésének (Central Processing Unit) kezdőbetűiből alakult ki a közismert
hárombetűs rövid neve a CPU.

A mikroprocesszor – a CPU – három részre bontható:


• Vezérlő egység – Control Unit – CU
• Aritmetikai és logikai egység – Arithmetic and Logic Unit – ALU
• Regiszterek

____________________________________________________________________________________
24
Hardver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

adatbusz bemenet akkumulátor kimenet

regiszterek ALU

CPU
vezérlõegység

2.2.1. ábra

A vezérlőegység (CU) irányítja a mikroprocesszorban zajló folyamatokat –


ütemezi a számítógép működését a belső órajel segítségével. (A MHz-ben mért órajel-
frekvencia fontos jellemzője a mikroszámítógépnek, erről már szóltunk az előző
fejezetben.) Ez a felügyelet a folyamatoz tartozó lépések sorrendjének és időtartamának
betartatását jelenti, valamint az adatok megjelentetését a megfelelő sorrendben, a
megfelelő helyen és a megfelelő időben. A vezérlőegység utasításszámlálójának
tartalma mindig a memória azon rekeszének címét tartalmazza, amely az éppen soron
következő utasítást tartalmazza. A gépi utasítás (szerkezetét a szoftverről szóló
fejezetben ismerjük meg alaposabban) műveleti részének értelmezésével a CU
"megtudja", hogy mit kell tenni, az utasítás címrészében pedig az operandusok címei
állnak. Ezek alapján a CU "berendeli" adott címeiről az adatokat a regiszterekbe és
"megparancsolja" az ALU-nak a művelet végrehajtását. Az eredményt elhelyezteti a
megfelelő címen és "lépteti" a programszámlálót a következő programlépést tartalmazó
címre, stb.

Az aritmetikai-logikai egység (ALU) csak "robotol". Ennek az egységnek nem


kell "gondolkodnia", mindent a CU utasításai alapján végez. Alapjában véve az ALU
csak kevés művelet végrehajtására képes – de azokat szinte csodálatos gyorsasággal
végzi el. Ezek a műveletek a következők:

• a bináris összeadás,
• a logikai műveletek,
• a komplementálás,
• a siftelés (a teljes bitsorozat léptetése bitenként jobbra/balra).
____________________________________________________________________________________
25
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Hardver alapok

A számrendszerekről szóló fejezetben meglátjuk majd, hogyan végezhető el


bármelyik aritmetikai művelet lebontva a felsorolt négy lehetséges műveletre. Az
elvégzendő műveletekre az ALU-nak külön részegységei vannak. Létezik tehát az ALU-
ban az összeadó, a komplementáló, a léptető és a logikai műveleteket végző rész.

A regiszterek különlegesen gyors működésű tárolók. A CU parancsára a adatok


az operatív tároló megfelelő címeiről a regiszterekbe kerülnek. Nyilvánvaló, hogy egy-
egy regiszter befogadóképessége nem egy rekesz (bájt), hanem a konkrét számítógép
által használt szó hosszának felel meg. Hasonlíthatjuk a regisztereket várótermekhez is,
de funkciójuk inkább műtők rendeltetésére emlékeztet. A regiszterbe került adat a
helyszínen változik meg, vagy az ALU felhasználja valamely más regiszterben lévő adat
megváltoztatására. Ebből kiviláglik, hogy a regisztereknek különböző funkcióik vannak.
Soroljuk fel a legfontosabb típusokat!

• Az akkumulátor (Accumulator – A vagy ACC: ez az a bizonyos


"műtő", ha az adat az akkumulátorba került, akkor az valamelyik
művelet operandusa: vagy vele történik valami, vagy felhasználódik
arra, hogy más adattal történjen valami),

• Az utasításszámláló vagy programszámláló (Program Counter – PC


vagy IP: a CU tárgyalásakor már az utasításszámlálóról szóltuk, ez a
regiszter tartalmazza a mindenkori következő utasítás címét,

• A memória címregiszter (Memory Adress Register – MAR: a


beolvasandó vagy a kiírásra várakozó adat címét tartalmazza),

• A memória adatregiszter (Memory Data Register – MDR: az előző


hasonlatot újra felhasználva – ez igazi várószoba: a feldolgozás
váltakozó ütemének kiegyenlítése végett a leendő operandusokat a CU
már előre sorba állítja, illetve a kész eredmények "elszállítás" előtt
ideiglenesen itt várakoznak. Puffer regiszternek is nevezik).

Néhány szót szóltunk már a CPU és a perifériát ellenőrző interfészek közötti


kommunikációról, ám fontossága miatt szót kell ejtenünk a periféria interfészek és a
perifériák közötti kommunikációról is. Ez az adatátvitel a jelenlegi elterjedt technológiai
megoldások szerint kétféle lehet:

• az adatok bitjei "felsorakoznak" és egyenként vonulnak az áramlás célja


felé – ezt az adatátvitelt soros adatátvitelnek nevezzük. Az egyike a
legelterjedtebb soros adatátviteli interfész szabványnak az RS232
jelzésű illesztés mód (modem, PC2PC vagy egyéb perifériák felé).

____________________________________________________________________________________
26
Hardver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

• a párhuzamos adatátvitel esetén az adatok párhuzamos csatornákon


áramlanak. A párhuzamos csatlakoztatás műszakilag összetettebb és
drágább – természetes, hogy csak közeli perifériákat csatlakoztatnak
így, pl. nyomtatót (az egyik ismert párhuzamos csatlakoztatási mód az
ún. Centronics technológia).

A soros csatlakoztatás az újabb technológiáknak köszönhetően egyre gyorsabb


működésű, sőt lassan kezdi kiszorítani a párhuzamos interfészeket is. Példa erre az USB
szabvány (Universal Serial Bus), amellyel megoldható az általunk alkalmazott, nem
túlságosan nagy terjedelmű kommunikációt igénylő perifériák csatlakoztatása. Ma a
személyi számítógépek rendszerint rendelkeznek már mindhárom csatlakoztatási
aljzatokkal, de a fejlődés irányát tekintve az USB dominanciája egyre kifejezettebb.

2.3. A SZÁMÍTÓGÉP-HÁLÓZATOK

Az előző fejezet néhány utolsó sora utal arra a lehetőségre, hogy két számítógép
között esetleg valamilyen kommunikáció alakulhat ki: adatok áramolhatnak mindkét
irányba. Ha csak ezzel a gondolattal foglalkozunk egy kicsit elmélyültebben, máris
felmerül több számítógépnek összekötésének lehetősége – szinte észrevétlenül kialakul
a számítógép hálózat kiépítésének lehetősége (szükségessége).

Ha a számítógép használata forradalmasította a civilizációs fejlődést és korunkat


az informatikai társadalom korára változtatta, akkor a számítógép hálózatok kialakulása
és fejlődése forradalmasította a számítógépek alkalmazását, és a hálózatok világává
alakította az információs társadalmat. Mire is jó egy hálózat? Nyilvánvaló, hogy a
hálózat nem kellene egyszerű elektromos vezetékekkel összekötött számítógépek
sokaságának lennie! Ha két gépen ugyanaz a szoftver fut, ugyanazokkal a perifériákkal
rendelkeznek, akkor mindkét gép felhasználója ugyanazokat a feladatokat tudja
elvégezni a másik segítsége nélkül. A hálózatba foglalás alapfeladata elsősorban
ezeknek a lehetőségeknek a közös kihasználása, de a gyorsabb információáramlás és a
közös állományhasználat is indokolja az összekapcsolást.

Két számítógép összekapcsolása, és a kommunikációs problémák megoldása


olyan lehetőségeket villantott fel a felhasználók előtt, amely a mesebeli kisgömböc
étvágyához hasonló óhajokat váltott ki. A hálózatok egyre csak nőttek – terjedtek.

Kiterjedtségüket tekintve ma a következő hálózat-típusok élnek:

____________________________________________________________________________________
27
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Hardver alapok

Helyi hálózat – LAN – Local Area Network. Ezek a hálózatok egy-egy


intézményen belül működnek, esetleg 10 km távolságon belüli telephelyeket
is összekapcsolnak,

Városi hálózat – MAN – Metropolitan Area Network. Egy városra kiterjedő


hálózat, amely ma úgy tűnik a háttérbe szorul, mert a nagyobb kiterjedésű
hálózatok egyszerűen "bekebelezik" ezeket az elvileg 10-100km kiterjedésű
hálózatokat,

A nagy kiterjedésű hálózat – WAN – Wide Area Network, a 100 km-nél


nagyobb kiterjedésű hálózat.

INTERNET – a világhálózat a WAN egyik megvalósítása,

Már említettük, hogy a hálózatok kialakításához nem elegendő csak a gépek


egyszerű sokaságának kommunikációs csatornákkal való összekötése. Rendkívül fontos
a közös nyelv: a hálózat elemei meg kell hogy értsék egymást. A hálózati protokoll
kialakítását már nemzetközi szabványok szabályozzák. Az ISO-OSI (International
Standard Organization – Open System Interconnection) szabvány lehetővé teszi, hogy a
RÉTEGES FELÉPÍTÉSŰ HÁLÓZATI RENDSZER mindegyik rétege a hozzárendelt
feladatnak megfelelő módon kommunikálhasson. A különböző gyártók által előállított
hardver és szoftver a következő hálózati rétegek egymás közötti (majdnem tökéletes és
zavarmentes) információcseréjét teszi lehetővé:

alkalmazási réteg, Application layer


megjelenítési réteg, Presentation layer
viszonyréteg, Session layer
szállítási réteg, Transport layer
hálózati réteg Network layer
adatkapcsolati réteg és Datalink control layer
fizikai réteg. Physical layer

– az alkalmazási réteg fő feladata a rendszerek közötti állománytovábbítás,


– a megjelenítési réteg feladata a kódrendszerek közötti különbségek áthidalása,
– a viszonyréteg építi ki a kapcsolatokat a gépek között és szinkronizálja azokat,
– a szállítási réteg gondoskodik az elküldendő csomagok előkészítéséről és az
érkező csomagok fogadásáról,
– a hálózati réteg gondoskodik az útkiválasztásról,
– az adatkapcsolati réteg valósítja meg a hibátlan adat-továbbítást,
– a fizikai réteg pedig a bitek hibátlan kibocsátásáról és megérkezéséről
gondoskodik.
____________________________________________________________________________________
28
Hardver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

A számítógépek összekapcsolása több módon is megvalósítható – az


összekapcsolás módja meghatározza a hálózat topológiáját.

Nevezzük a hálózatba kapcsolt számítógépet közkedvelt angol elnevezésével


host-nak (hoszt). A hosztokat alapvetően két módon kapcsolhatjuk egymáshoz: az
egyik a pont-pont kapcsolat, a másik pedig az üzenetszórásos kapcsolat.

A pont-pont kapcsolású rendszerben a hosztok közvetlen kapcsolatban vannak a


hálózat más hosztjaival. A pont-pont kapcsolású topológia változatait a 2.3.1. ábrán
rajzoltuk meg.

2.3.1.a. ábra 2.3.1.b. ábra 2.3.1.c. ábra

2.3.1.d. ábra 2.3.1.e. ábra

A 2.3.1.a. - 2.3.1.e. ábrákon a következő topológiákat ábrázoltuk:

a) csillag topológia,
b) gyűrű topológia,
c) teljes gráf topológia,
d) szabálytalan topológia és
e) fa topológia.
____________________________________________________________________________________
29
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Hardver alapok

A pont-pont kapcsolásos rendszerben csak azok a gépek látják egymást, amelyek


közvetlen kapcsolatban vannak. Más gépek kapcsolatát csak a közbeeső számítógépek
szolgáltatásaira támaszkodva lehet megvalósítani.

Az üzenetszórásos rendszerben létezik egy központi gerinckábel és a hálózat


minden tagja csatlakozik ehhez a kábelhez. A kábelen áramló információkat minden
rákapcsolódó készülék "hallhatja", maga választja ki azokat az információkat, amelyek
neki szólnak, a többi információt ignorálja.

Az üzenetszórásos rendszernek is létezik több változata. Ezeket a topológiákat a


2.3.2. ábrán mutatjuk be. Jellemző a 2.3.2.a. ábrán megrajzolt busz (sín, vagy soros)
elrendezés. A legfontosabb jellemzői: nincs központi eszköz, emiatt a hibakeresés és
elhárítás nehézkes, az adatforgalom bármely pontról megfigyelhető, vezetékszakadás
esetén az egész hálózat leáll, kiépítése gazdaságos.

Az üzenetszórásos gyűrű topológia a 2.3.2.b. ábrán látható. A jellemzői: egy


állomás kiesése is megbénítja a rendszert, valamint költséges a kiépítése.

2.3.2..a. ábra 2.3.2.b. ábra

Az üzenetszórásos csillag topológia


(2.3.2.c. ábra) fontos jellemzői: a hibákat egyszerű
felkutatni és elhárítani, az egyes végpontok leállása
nem bénítja meg a rendszert, de a központi
intelligens vezérlőegység (hub, switch)
meghibásodása valóban leállítja a rendszert, sok
kábelezést igényel.

2.3.2.c. ábra

Végül a számítógép hálózatok még egy rendszerezési formáját ismertetjük. Ez a


rendszerezés a hálózatot vezérlő operációs rendszer (tehát a szoftver) alapján történik.
____________________________________________________________________________________
30
Hardver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Mivel a szoftverről a következő fejezetben lesz szó, de a hálózati szoftverekről


egyáltalán nem szólunk, így indokoltnak véljük most felsorolni ezt az osztályozást:

Az egyenrangú hálózatban (peer-to-peer hálózatban) minden gép azonos


rangú. Minden szabályozás elvégezhető minden gépről: milyen módon
használhatók a saját adat állományok a többiek részéről, de önállóan is úgy
működtethető a gép "mint ha egyedül lenne",

A dedikált szerveres hálózatban léteznek számítógépek (legalább egy),


amelyek semmilyen más feladattal nem foglalkoznak, mint a többi gép
kiszolgálásával. Ezeket a kiszolgáló gépeket szervereknek nevezzük és
ezeket a gépeket csak a kiemelt jogosultságú "rendszergazda" (supervisor)
kezelheti. A többi felhasználó (user) a pontosan meghatározott és
engedélyezett módon használhatja a rendszer elemeit. (Az ilyen típusú
hálózati operációs rendszer pl. Novell NetWare változatai).

Az ügyfél kiszolgáló vagy kliens szerver (client-server) rendszerben az


adatfeldolgozás tekinthető többfokozatúnak: ezekben a rendszerekben a
kliensek (felhasználók) nem az eredmény előállításához szükséges adatokat,
hanem magát az eredményt kapják meg a szervertől. Jelenleg ez a technika
számít korszerűnek. Az operációs rendszerek közül a MS Windows NT és
változatai tekinthetők ezen technika megvalósítójának.

A hálózatok felépítésével kapcsolatos részletező kérdések nem az Alapismeretek


tanfolyam kereteibe tartoznak. A hálózatok felépítésével és működtetésével kapcsolatos
területek a következők (Közülük csak az első két pont tartalmáról szóltunk):

1. A hálózatok kiterjedése,
2. A hálózati topológiák,
3. Az adatátvitel jellemzői és csatornái (a soros szinkron és a soros aszinkron
adatátvitel, szimplex, félduplex és duplex csatornák - későbbi tanfolyamok),
4. Az adatátviteli közeg (vezetékes vagy vezeték nélküli),
5. Az adatátvitel vezérlése (véletlen, osztott vagy központosított),
6. A kapcsolási módok és eszközeik,
7. Protokollok.

Külön tanulmányozandó kérdéskör a hálózatok használata és üzemeltetése:


konfigurálás, hibakezelés, teljesítmény felügyelet, jogosultságok és hozzáférések
felügyelete, az adatbiztonság fenntartása és a költségek kezelése (accounting).
Feltételezhető, hogy a hallgatók nagyobb részaránya inkább felhasználói lesznek a
hálózatoknak (főleg a világhálónak) és csak kisebb részük foglalkozik majd
üzemeltetési kérdésekkel.
____________________________________________________________________________________
31
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Hardver alapok

Ellenőrző kérdések:

1. Mit értünk a számítógép hardverén?


2. Osztályozza a számítógépeket hardver-felépítésük szerint!
3. Mely funkcionális egységekkel rendelkezik a mikroszámítógép?
4. Mi a rendeltetése az alaplapra szerelt I/O egységeknek?
5. Mi a rendeltetése a mikroprocesszornak?
6. Mi szolgálja az adatáramlást a mikroprocesszor funkcionális részei között?
7. Hogyan történik a memóriarekeszek címzése?
8. Sorolja fel a mikroszámítógép legfontosabb beviteli perifériáit és azok funkcióit!
9. Sorolja fel a mikroszámítógép legfontosabb kiviteli perifériáit és azok funkcióit!
10. Sorolja fel a mikroszámítógép legfontosabb vegyes rendeltetésű perifériáit!
11. Mely részekre bontható a mikroprocesszor?
12. Mi a rendeltetése a mikroprocesszor vezérlő egységének?
13. Mi a rendeltetése a mikroprocesszor aritmetikai-logikai egységének?
14. Mi a rendeltetése a mikroprocesszor regisztereinek?
15. Osztályozza a számítógép hálózatokat kiterjedésük szerint!
16. Sorolja fel az ISO szabvány ajánlását a hálózatok réteges felépítésére!
17. Mely pont-pont kapcsolatú számítógépes hálózati topológiák használatosak?
18. Mely üzenetszórásos kapcsolatú számítógépes hálózati topológiák használatosak?
19. Mi a különbség a peer-to-peer hálózat és a dedikált szerveres hálózat között?
20. Melyek a jellemző tulajdonságai a kliens-szerver hálózatnak?

____________________________________________________________________________________
32
3. SZOFTVER ALAPOK

3.1. BEVEZETÉS

A hardver alapismeretekről szóló fejezetben már szóltunk arról, hogy az


adatfeldolgozási technikában kétféle terméket különböztetünk meg: az egyik oldalon áll
a hardver (hardware), amely szó szerint "kemény árut", vagy "anyagi terméket" jelent,
míg a másik oldalon a szoftver (software) "lágy árut" illetve "szellemi terméket" jelent.
A hardver önmagában egy működésképtelen fém és műanyag halmaz.

A számítógép hardver elemeinek működtetését végző


programokat nevezzük szoftvernek.

Újabban gyakran egy harmadik kategóriát is említenek, ez a firmware. A


számítógép megvásárlásával az alapvető működést biztosító programokat "beépítve"
megkapjuk. Ezt a "beépítettséget" úgy értelmezzük, hogy a nem felülírható, csak
olvasható tárban (a ROM-ban) a hardvergyártó elhelyezi az alap be- és kiviteli
rendszert, a BIOS-t. (Basic Input / Output System). Ezeket a programokat a tárral együtt
nevezik firmware-nek.

A szoftver alapvetően három kategóriába sorolható:

Operációs rendszerek,
Alkalmazói szoftverek,
Fejlesztő rendszerek.

Jelen fejezet keretein belül a három szoftverkategória mindegyikéről néhány


részletet megismerünk, de ezek a részletek a számítástechnikai alapismeretek szintjén
maradnak. Az olvasónak a kategóriák alapos tanulmányozására és megismerésére a
felsőbb évfolyamok megfelelő tanfolyamainak kereteiben adódik majd lehetősége.

Az operációs rendszerekkel kapcsolatban inkább "történelmi" okokból szólunk a


DOS-ról, másrészt jelenlegi elterjedtsége miatt a Windows-ról. (A Windows NT, a
Linux, az OS/2 és más rendszerekről itt nem szólunk.)
____________________________________________________________________________________
33
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

Az alkalmazói szoftverek is több alosztályba sorolhatók:

o Irodai szoftvercsomag (szövegszerkesztő, táblázatkezelő, adatbáziskezelő,


prezentációs grafika) – ilyen például a Microsoft Office. A szövegszerkesztés, és a
táblázatkezelés alapfokú ismerete számítástechnikai alapismeretnek számít, emiatt az
MS Office Word, Excel és Access nevű komponenséről is szó lesz.

o Ügyviteli rendszerek (bérelszámolás, raktárnyilvántartás, könyvelői rendszerek)


most teljesen figyelmen kívül maradnak.

o Tervező rendszerek: pl CAD (Computer Aided Design), MATLAB, és még sok más
rendszer. Mindössze ezt a két rendszert említettük, mert alapfokon ezekkel
foglalkozunk majd a későbbiek folyamán pedig alkalmazási szinten is. Ez a könyv
nem tér ki egyik szoftverre sem, de a hallgatók a gyakorlatokon megismerkednek a
CAD-del és a MATLAB-bal is.

o A számítógép hálózatok működtetését szolgáló szoftverek ismertetése szintén a


magasabb szintű számítástechnikai tanfolyamokon történik

o A segédprogramokkal egyszerűen nem foglalkozunk. (tömörítők, víruskeresők,


rendszerkarbantartók, s. i. t. Ilyenek például a következők PKZIP, ARJ, FPROT,
MCAFFE, NORTON UTULITIES, NUTS&BOLTS.) Ezeket a programokat
felhasználók önállóan kényszerülnek megismerni.

A fejlesztői rendszerek (magas szintű programozási nyelvek: Pascal, C, Java


Bilder, Visual Basic s. i . t) közül valamelyiknek alapfokon való elsajátítja a hallgató
kötelezettsége. Jelen könyv írásakor a C programozási nyelv tartozik a Számítás-
technikai alapismeretek tárgyhoz.

3.2. AZ OPERÁCIÓS RENDSZEREK

3.2.1. AZ OPERÁCIÓS RENDSZER FOGALMA

A számítógépeket bizonyos feladatok elvégeztetésére használjuk. Ezen feladatok


megoldására készülnek a felhasználói szoftver kategóriába tartozó programok. Ezekkel
a programokkal az a "probléma" hogy nemcsak az XX cég által gyártott YY típusú
____________________________________________________________________________________
34
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

számítógépen szeretnénk futtatni őket, hanem más gyártók által gyártott és más típusú
gépeken is, – a munkahelyen és otthon is. Nem a programhoz vásárolunk gépet, hanem
a meglévő gépet szereljük fel a számunkra szükséges programokkal (esetleg magunk
készítjük el a mi különleges igényeinket kielégítő szoftvert).

Szükség van tehát a szoftvereknek egy olyan kategóriájára is, amelyek a


felhasználói szoftver és a hardver közötti együttműködést teszik lehetővé és támogatják
is azt a számítógépek széles körében. Ez a szoftver az operációs rendszer.

Az operációs rendszer a programok olyan csoportja, amely számítógép


működésének folyamatát irányítja:
a) ellenőrzi a felhasználók programjainak végrehajtását,
b) meghatározza a végrehajtás sorrendjét,
c) kommunikál a felhasználóval (információkat nyújt és kér a számítógép és
a perifériák működésével kapcsolatban),
d) információkat szolgáltat a meghibásodásokról, a programhibákról, s. í. t.

Az operációs rendszerhez tartozó programokat a hardvergyártó cégek


rendszerint a vásárolt számítógéppel együtt szállítják, de egy-egy operációs rendszer
megvásárolható külön szoftvercsomagként is és felszerelhető a már működő gépekre:
lecserélve a gépen telepített elsődleges operációs rendszert, vagy alternatív alkalmazást
téve lehetővé.

3.2.2. A DOS OPERÁCIÓS RENDSZERRŐL

Az 1981-ben megjelent IBM PC számítógépek operációs rendszere a DOS (Disk


Operating System) volt. Ez az operációs rendszer tipikusan egyfeladatos,
egyfelhasználós (single user , single tasking). A DOS környezetben működő számítógép
képernyőjén a jellemző prompt után (például a C:\>_ után) a villogó kurzor helyén
szöveges formában várja a parancs bekopogását. A parancs beírása után az Enter
billentyűt kell leütni. Ezzel "közöltük" a géppel óhajunkat. Az Enter leütése után a gép
parancsértelmezője megvizsgálja utasításunkat és ha az értelmezhető, akkor végrehajtja,
ellenkező esetben a "unalmas" Bad command or file name választ kapjuk. A
DOS parancsainak használatát meg kell ismerni, mert ezzel a gép működését ismerjük
meg. A DOS teljes parancslistájának valamilyen logikai sorrendben való felsorolása és
magyarázása nem célja ezen könyvnek, ám fontosnak tartom a parancsok egy
válogatásának közlését bizonyos magyarázatokkal.

Az elsőször is a fájlkezelő (állománykezelő) parancsokról lesz szó – ezzel együtt


a DOS fájlrendszerének alapjaival is megismerkedünk.
____________________________________________________________________________________
35
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

A fájl (állomány, file) a háttértárolón tárolt adatok együtt


kezelt, névvel rendelkező összefüggő csoportja.

Az MS DOS fájlnév két részből áll:

o Az első rész a név, amely legalább 1 karakter, legfeljebb 8 karakterből áll.


A név első karaktere kizárólag az angol ábécé 26 betűjének az egyike (a
DOS nem különbözteti meg a nagybetűket és a kisbetűket, tehát a "Boby"
név teljesen azonos a "bOBy" névvel – a DOS mindegyik betűt nagybetűvé
változtatja), a név többi karaktere szintén csak betű vagy számjegy lehet –
valamint néhány speciális karakter (de ezeket most elhanyagoljuk). A
névben tehát nem maradhat szóköz, nem lehet pont vagy vessző!

o A második rész a nem kötelező kiterjesztés (extenzió) amely legfeljebb 3


karakterből állhat. A név és a kiterjesztés között egy pont áll. A kiterjesztés
a fájl jellegére utalhat. Például az exe vagy a com kiterjesztés végrehajtható
programokat jelöl, a txt vagy doc szöveget tartalmazó dokumentum fájlok
nevében szerepel, a pas, a bas, vagy a c kiterjesztés Pascal, BASIC, illetve
C programnyelven írott forrásprogramot jelöli, és így tovább.

Néhány megfelelő állománynév:


A1234567.EXE ALLOMAS.DOC P1A3.C
SSSS.PAS R.DAT WAX

Az állományokat valamilyen közös ismérv, logikai egybetartozás, vagy egyéb


okok alapján csoportosíthatjuk és az így egységbefoglalt fájloknak összefoglaló nevet
adunk.

Az egy csoportba sorolt állományokat katalógusnak


(könyvtár, directory) nevezzük.

A katalógusok elnevezésére ugyanazok a szabályok vonatkoznak mint az


állománynevekre. Természetesen, egy katalóguson belül létezhetnek alkönyvtárak is
(subdirectory).

A kötet (meghajtó, volume, drive) az a névvel ellátott logikai


egység, mely segítségével a DOS a háttértárolóit kezeli.

____________________________________________________________________________________
36
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

A DOS operációs rendszer az angol ábécé 26 betűjét használja erre a célra


amelyhez egy kettőspontot csatol. Az a: és a b: a hajlékonylemez (floppy)
meghajtókat jelöli, c: jelenti az első (és leggyakrabban egyetlen) merevlemezt, majd
következik a d: , az e: az f:, ...stb. meghajtó. Nyilvánvaló, ezek a meghajtó nevek
csak akkor "élnek", ha a számítógépben valóban felszereltünk több lemezt - (vagy
virtuális meghajtókat alkottunk, ezek a partíciók).

Egy állomány teljes neve tartalmazza az elérési útvonalat (path) és az elsődleges


nevet is. Tehát, ha a CX.DAT állomány a BANDI könyvtárának ADATOK nevű
alkönyvtárában helyezkedik el a D: meghajtón, akkor erre így hivatkozunk:

D:\BANDI\ADATOK\CX.DAT

A könyvtár és alkönyvtárak névelválasztása a \ karakterrel történik.

A DOS mindig jelzi az úgynevezett aktuális könyvtárat Ezt úgy képzeljük el,
hogy mi is a többi állománnyal együtt abban a könyvtárban vagyunk, amelyet a prompt
mutat. Ha a prompt a már egyszer említett C:\>_ formájú, akkor az gyökérkatalógus-
ban vagyunk, ha a prompt pl. E:\PROGS\PAS\FIZET\>_ alakú, akkor az E:
meghajtó PROGS könyvtárában a PAS alkönyvtárának FIZET katalógusa az aktuális.

Lemezművelet Fájlművelet
formázás format futtatás név
visszaállítás unformat szövegfájl edit név
címkézés label keresés dir név /s
ellenőrzés chkdsk törlés del név
lemezmásolás diskcopy visszaállítás undelete
Könyvtárművelet másolás copy honnan/név hova
létrehozás md név mozgatás move honnan/név hova
törlés rd név tartalom kiírás type név
váltás cd név nyomtatás print név
szerkezet tree átnevezés ren réginév újnév
tartalom dir jellemző állítás attrib név jelzők

3.2.2. táblázat

A 3.2.2. táblázatban a néhány fontos, a lemezkezelésre, könyvtárkezelésre és


fájlkezelésre vonatkozó parancsot sorolunk fel. Az olvasónak a gyakorlatban kell
____________________________________________________________________________________
37
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

megismernie ezeknek a parancsoknak a hatását. Vigyázat, néhánynak a hatása rendkívül


veszélyes (nem a gépet, hanem elvégzett munkánkat teheti tönkre!).

A táblázatba foglalt parancsokon kívül feltétlen ismerjük meg a következő


parancsokat és állományokat is:

cls, time, date, ver, help, vol, label, ...


autoexec.bat és config.sys

A DOS-ról szóló rövid áttekintésben közel sem érintettük a rendszer minden


lehetőségét: például a beállításokat és egyéb vezérlő utasításokat meg sem említettük.
Ám mindezekkel együtt is a rendszer szegényes és koránt sem elégíti ki a kor
követelményeit. Ajánlom az olvasónak, hogy ismerkedjen meg a DOS születésének és
fejlődésének történetével (attól a pillanattól kezdve, hogy William /Bill/ Gates
megvásárolta az 1976-ban kifejlesztett CPM operációs rendszert és átalakította azt úgy,
hogy 1981-ben az IBM cég megjelentethette a IBM PC számítógépet amelyet már DOS
irányított. Az operációs rendszer további fejlődése szorosan egybefonódik a Gates
vezette Microsoft cég fejlődésével).

Feladatok:
1. A laboratóriumi (számítógépes) gyakorlatokon DOS operációs rendszerrel működő
gépen (vagy Windows rendszer alatt az úgynevezett DOS-prompt behívása után)
gyakorolja a DOS parancsait, a help-rendszer (a súgó) felhasználásával hívja meg a
parancslistát, a parancsokat egyenként tanulmányozza, nyisson új katalógusokat,
nyisson új állományokat, végezze el azok átnevezését, mozgatását, egybekapcsolását,
törlését (vigyázat! ez veszélyes.) A szövegfájlok megalkotása, megnyitása, szerkesztése,
változtatása és törlése nem feltétlenül szükséges, mert az nem az operációs rendszer
lényeges tulajdonságait érinti. Fontos még egyszer megjegyezni, hogy a DOS
megismerése nem felhasználói szempontból fontos, hanem ez a számítástechnikai
ismeretek alapjait érintő mechanizmusok megismerését jelenti. Ma már a DOS a múlt,
de a DOS-ra támaszkodva fejlődtek, izmosodtak az alternatív operációs rendszerek,
elsősorban ugyanezen szoftverfejlesztő cég grafikus operációs rendszere a Windows.

2. A DOS operációs rendszer "nehézkességét" sokféle módon megkísérelték


kiküszöbölni. Születetett egy "félig grafikus" kezelő környezet is a MS DOS Shell,
amelynek nem nagy sikere volt. Annál sikeresebb lett a Peter Norton által kifejlesztett
Norton Commander nevű kezelő környezet. Ez a környezet (az egyéb lehetőségek
rendkívüli gazdagsága mellett) a felhasználó számára elsősorban a lemezkezelést, a
könyvtárkezelést és fájlkezelést teszi rendkívül kényelmessé. Ismerje meg a Norton
Commander használatát!
____________________________________________________________________________________
38
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

3.2.3. A WINDOWS OPERÁCIÓS RENDSZERRŐL

Az MS Windows operációs rendszer az MS


DOS operációs rendszerből fejlődött ki. Túlságosan is
leegyszerűsítenénk a jelentőségét, ha csak azt
mondanánk, hogy mindazt, amit a DOS ismer és tesz
úgynevezett "textuális" környezetben, ugyanazt ismeri
és teszi a Windows "grafikus" környezetben.
Alapvetően az operációs rendszerek alapfeladatát
végzi a Windows is, de a segédprogramok száma,
lehetőségei, felhasználói "kényelme", esztétikai
hatása, ergonómiai adottságai és még sok más
tulajdonsága toronymagasan a "kis" DOS fölé emelik.
Igaz, hogy léteznek más operációs rendszerek is,
amelyek hasonló jó tulajdonságokkal rendelkeznek,
ám elterjedtsége (egyes becslések szerint a világ
személyi számítógépinek 80-90%-án a Windows
valamely változata él) miatt mi mégis ezt a rendszert
ismerjük meg valamivel alaposabban.
3.2.3.1. ábra

A számítógép indítása után (ha nincs másképp beállítva) a Windows kezelő


felülete jelentkezik . A kezelőfelület háttér mintázata, a megjelenő ikonok sokasága
vagy éppen kis száma, a színek gazdagsága, vagy egyszínűség – minden a felhasználó
által választott beállításoktól függ. A 3.2.3.1. ábrán a START MENU egy lehetséges
változatot mutatjuk be. Ez a menü akkor jelenik meg, ha a START gombra mozgatjuk
az egér kurzorát és rákattintunk. (Megjegyzés: a laboratóriumi gyakorlatokon a kezdő
számítógép kezelők meg kell hogy ismerjék a billentyűzet használatét, az egér
kurzorának mozgatását, a bal gombbal való egyszeres vagy kétszeres kattintást, a jobb
gombbal való kattintás eredményeként megjelenő "beugró" menü használatát.

Lehetetlen e könyv egyetlen alfejezetében leírni egy ilyen gazdag operációs


rendszert. A gyakorlatokon a hallgató majd elsajátítja a szükséges ismereteket.

Az ismeretek elsajátítását rendkívül megkönnyíti a bőséges tartalmú súgó (help).


Ha a hallgató angol nyelvtudása kicsit szerényebb, a help akkor is segít. A segítség
kétirányú: nyelvtanulást is előmozdítja és a Windows ismereteket is bővíti. A 3.2.3.2.
ábrán egy súgó képernyőt mutatunk be.
____________________________________________________________________________________
39
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

3.2.3.2 ábra

Most lássunk egy tipikus Windows-képernyőt – ismerjük meg a szerkezetét!

vezérlő menü címke menüsor címsor állapot gombok:


bezár
eszközsor visszaállít
ikonok (Toolbar) minimalizál

3.2.3.3. ábra
A képernyő alján elhelyezkedő sort (a jobb helykihasználás végett ezt "levágtuk"
az ábráról) állapotsornak nevezzük (Status Bar). A 3.2.3.3. .ábrán az ablakot teljesen
"kitártuk" - illetve nincs telezsúfolva ikonokkal, emiatt nem jelenik meg sem a
vízszintes, sem a függőleges gördítő sáv a megfelelő csúszkával (Scroll Bar). Felhívjuk
a figyelmet arra is, hogy a menüsorban felfedezhető View menüpont felhasználásával az
aktuális tartalom másképpen is megjeleníthető: az ábrán látható nagy-ikonos láttatás
mellett létezik a kis-ikonos illetve listás megjelenítés is.
____________________________________________________________________________________
40
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Az ikonokon történő balgombos kettős


kattintással futtatjuk a megfelelő programot, illetve ha
könyvtár-ikonra kattintunk (a Windows ezt folder-nek
nevezi), akkor ez a könyvtár megnyílik. Ha az ikonra az
egér jobb gombjával kattintunk, akkor a 3.2.3.4. ábrán
látható "beugró menü" jelenik meg, amelyen a megfelelő
menüpontot kiválasztva továbbléphetünk. Kezdő
felhasználóknak elsősorban a Cut, Copy, Delete és
Rename opciókat ajánlom kivizsgálásra. (Vigyázat,
ezek között is vannak "veszélyesek"!). A Properties
menüpont újabb képernyőt jelentet meg, amellyel a
kiválasztott ikonnal kapcsolatos beállításokat
végezhetjük el.
3.2.3.4. ábra
A rendszer beállításaival külön foglalkoznia kell az olvasónak! (Időzóna, nyelv,
dátum, színek, betűtípusok, kommunikáció, nyomtató, billentyűzet, és még sok-sok más
beállítási lehetőség létezik) Ezeket a rendszerbeállításokat végző eszközök a Start
menu (3.2.3.1. ábra) Settings (Beállítások) menüpontjának a Control Panel (Vezérlőpult)
alpontjában találjuk meg. (3.2.3.5. ábra)

3.2.3.5. ábra

____________________________________________________________________________________
41
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

A segédprogramokról nem szólunk. (Accessories). Ezekkel a programokkal a


felhasználónak egyenként kell megismerkedni. Van ezen segédprogramok között
rajzoló program, egyszerű szövegszerkesztő, hálózat üzemeltető program, és még
nagyon sok más eszköz, amelyek a Windows operációs rendszer köré csoportosulnak,
de nem részei az operációs rendszernek! Ne felejtsük el az operációs rendszer
definícióját és alapfeladatait!)

Feladatok:

1. A laboratóriumi gyakorlatok folyamán végezzenek lemezkezelő, könyvtár-kezelő és


fájlkezelő műveleteket. Gyakorolják a Shortcut (a programelérést biztosító
nyomógombok megalkotását, változtatását, törlését. Indítsa el és rajzoljon a rajzoló
Paint programmal, próbálja használni a Notepad és a Wordpad programokat,
kísérletezzen a beállításokkal: változtassa meg az óra és a dátum beállítását, stb.

2. A DOS második feladatához hasonlóan a Windows használatához is ajánlott olyan


segédprogram ismerete, amely a "navigálást" (a lemezek, a könyvtárak és a fájlok
kezelését és áttekintéséét) segíti. Ilyenek az Explorer és a Windows Commander.
Ismerjük meg használatukat!

3.3. ALKALMAZÓI SZOFTVEREK

Az alkalmazói szoftvereket több alosztályba soroltuk be. Mérnökképzésünk alatt


több szoftverrel is alaposabban megismerkedik majd az olvasó, de a számítástechnikai
alapképzés elengedhetetlen tartozékénak véljük kezdeti fokon megismerni egy-egy
programot szövegszerkesztésre, táblázatkezelésre és adatbázis kezelésre. A rajzoló
programok közül a hallgatók többsége a szakmájukhoz illő CAD programot ismer meg
valamely szaktárgy keretein belül. Mivel az első három komponens rendszerint
valamely irodai programcsomag része, így választható lehetne például bármely
szövegszerkesztő. A Windows operációs rendszer gyártója is rendelkezik ilyen irodai
programcsomaggal, ez az MS Office. Mivel az alkalmazások használata azonos az
operációs rendszer elemeinek használatával, ezért döntöttünk úgy, hogy az MS Office
megfelelő komponenseit tárgyaljuk (3.3.a. ábra). Megismerkedünk a szövegszerkesztő
WINWORD-el, a táblázatkezelő EXCEL-lel és az adatbázis kezelő MSACCESS-el. A
programcsomag egyéb komponenseiről más tárgyak kereteiben lesz szó (a mellékelt
ábra nem közli az MS Office minden komponensének jelét!)

____________________________________________________________________________________
42
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

3.3.a. ábra

Matematikai és mérnöki számításokra rendkívül alkalmas a MATLAB program-


csomag. Általános matematikai számításokon kívül nagyszámú specializált mérnöki
apparátussal rendelkezik. A MATLAB ezen különleges eszközeit (toolbox) a
megfelelő szakmai tárgykörben ismeri meg a hallgató. Mi itt a MATLAB-ról csak
alaptájékoztatást adunk )3.3.b. ábra).

3.3.b. ábra

3.3.1. AZ MS OFFICE KÖZÖS ESZKÖZEIRŐL

Az MS Office minden összetevője az eszközök azonos alapkészletével


rendelkezik. Ezeket az eszközöket elérhetjük a menüsor menüpontjaival (a képernyő
struktúrája azonos a Windows operációs rendszerrel kapcsolatban ismertetett képernyő
szerkezettel - 3.2.3.3. ábra, például a File, Edit, View stb) Az egyes alkalmazások
különleges lehetőségeit (illetve azok meghívásának lehetőségeit) az olvasó az illető
program részletes megismerésekor sajátítja majd el. Most csak a közös eszközöket
soroljuk fel.

____________________________________________________________________________________
43
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

A File, Edit, View menüpontok a lehívás után általában a következő


lehetőségeket nyújtják:

Ikon Név Jelentés


Új dokumentum megnyitása
New Blank Document (szöveg, táblázat, prezentáció...)

Open Meglévő dokumentum megnyitása

Save A dokumentum mentése

A dokumentum nyomtatása az
Print installált nyomtatón

Print Preview Nyomtatási kép bemutatása

Spelling and Grammar A helyesírás ellenőrzése

A kijelölt szövegrészt a vágólapra


Cut helyezi (innen törli)
A kijelölt szövegrészt a vágólapra
Copy helyezi (innen NEM törli)

Paste A vágólap tartalmát ide másolja

Format Painter Formátum másolás

Az utolsó lépés visszavonása, a


Undo, Redo visszavonás megsemmisítése

Help Súgó –segítség

Align left, Center, Align A szöveg elrendezése: balra


igazítva, középre, jobbra igazítva,
Right, Justify illetve kétoldali igazítás

Bold, Italic, Underline Félkövér, dőltbetűk, aláhúzott

3.3.1. táblázat

Nyilvánvaló, mindegyik program rendelkezik még saját specifikus eszközeivel


is, amelyek közül a legfontosabbakat a hallgató a gyakorlatokon megismeri.

Megjegyzés: Létezik az MS Office keretprogram is, amely a különálló progra-


mokat egy keretbe foglalja, de a programok mindegyike önállóan is létezhet és korrekt
alkalmazásként működtethető. Most térjünk át néhány részletre a három kiemelt Office
komponenssel kapcsolatban.

____________________________________________________________________________________
44
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

3.3.1.1. A WINWORD

A WINWORD általános célú szövegszerkesztő:


az egyszerű levelek készítésétől kezdve égészen bonyolult
tudományos könyvek megírására is alkalmas.

A kezdő felhasználó bármelyik, WINWORD -ről szóló tankönyvet használhatja


a program sokrétű alkalmazásának elsajátítása céljából. Tanuláskor a fokozatosság
elvének betartásával először a legalapvetőbb lehetőségekkel ismerkedjen meg az olvasó,
és lépésről lépésre (a szükségleteknek megfelelő mélységig) fokozza a programban való
jártasságának szintjét. Jelen könyv az itt tárgyalt szoftvernek nem tankönyve, csak
alapvető útmutatásokat és a szoftvercsomagok összehasonlításait tárgyaljuk. A
programok használatának elsajátítására a gyakorlatokon kap az olvasó kimerítőbb
útmutatást – de az alapos megismeréshez mindenképpen szükség van egy idevágó
tankönyv beszerzésére (szerencsére ezeknek a tankönyveknek magyar és szerb nyelven
is bőséges választéka létezik).

A WINWORD egy jellegzetes képernyőjét szemlélhetjük a 3.3.1.1. ábrán.

3.3.1.1. ábra

____________________________________________________________________________________
45
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

Hasonlítsuk össze a WINWORD képernyőjét a WINDOWS képernyőjével!


(3.2.3.3. ábra).

A vezérlő menü gombja jelen van (de éppen a jelenleg működő program jelét
viseli) A címsorban a címke az aktuális dokumentum nevét és a Microsoft Word
szavakat tartalmazza). A program állapotgombjain kívül a dokumentumnak is léteznek
állapotgombjai, amelyekkel a dokumentum minimalizálható, bezárható, visszaállítható,
anélkül, hogy maga a futó program ablakával történne ez. A menüsorban a WINDOWS
menüsoránál gazdagabb listát látunk – nyilvánvaló, hogy a program specifikus feladatait
ezekkel a menüpontokkal vagy alpontokkal lehet elvégezni.

A 3.3.1. táblázatban minden felsorolt eszközgombot megtalálunk. Mindezeken


kívül a stílus (Style), a betűtípus (Font), a betűnagyság (Font Size) és egyéb
formázó eszközöket találunk a most már kétsoros eszköztárban (Ezek még bővíthetők
is: nyissuk meg a View menü Toolbars menüpontját és láthatjuk, hogy mely
eszköztárak vannak 'kihelyezve" a képernyőre, és melyek állnak még készenlétben.
Természetes, hogy ezeket az eszközöket a "kipipázás" megszüntetésével eltüntethetjük).

A mérnökhallgatónak mindenképpen érdekes a különleges jelek (szimbólumok)


beiktatásának lehetősége. Próbálják ki az Insert menü Symbol menüpontját. ( A
haladók már "kihelyezik" a nyomógombot azt az "omegát" (a második eszközsorban
látható). Ezenkívül a hatványozás és indexelés lehetőségei is fennállnak. Természetesen,
az összetettebb matematikai vagy műszaki formulák megszerkesztésére külön
segédprogram áll rendelkezésünkre. Ez a segédprogram meghívható az Insert menü
Object... menüpontjával, ha a Microsoft Equation 3 opciót választjuk – de gyakori
használatra jó, ha kihelyezzük az eszközsorba a "négyzetgyök alfa" gombot (ez szolgál
a formulaszerkesztő meghívására). Az egyéb lehetőségeket csak önálló
próbálkozásokkal lehet megismerni. A betűtípusok változtatását, színezését, nagyságát,
díszítését (WordArt) csak gyakorlatokon lehet elsajátítani.

Külön felhívjuk az olvasók figyelmét a fájlkezelés ismeretének fontosságára: a


New, Open, Close, Save, Save As, Save as Web Page, Versions
menüpontok alkalmazását feltétlenül ismerni kell! Az Insert menü Picture, Text
Box, File..., Object..., Hyperlink menüpontjainak ismerete egy
szemináriumi dolgozat vagy diplomadolgozat igényesen való elkészítése során
kikerülhetetlen!

Az eddigiek folyamán már két WINWORD "kiszolgáló" programot említettünk:


az egyik az egyenletszerkesztő Microsoft Equation a másik a "díszbetű" szerkesztő
WordArt, de van statisztikai ábrákat, (pl. hisztogramokat stb.) rajzoló program is – ez a
____________________________________________________________________________________
46
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Microsoft Graph Chart, vagy a közönséges kis ábrácskákat, vonalakat, nyilakat, stb.
rajzoló eszközökön kívül a Microsoft Word Picture rajzolóprogram is használható.

Legkevesebbet szóltunk a szövegről, amelyet betűnként kell bekopogni. Lám-


lám, erre is szükség van! (Mégiscsak szövegszerkesztővel dolgozunk!)

Környezetünkben fontos ismerni a különböző nyelvi lehetőségeket: hogyan


szerkeszthető magyar nyelvű szöveg korrekt magyar írásjelekkel, de azt is tudnunk kel,
hogyan szerkeszthető szerb nyelvű szöveg korrekt latin betűs írásmóddal (mondjuk így:
Šimiš, đavo, žurka, de a cirill betűs szövegekkel is boldogulnunk kell mondjuk így:
Шимиш, ђаво, журка.)

Feladatok:

1. Gyakorolja a WINWORD program megnyitását, néhányszavas szöveg begépelése


után a Save As.. opcióval a dokumentum elmentését valamely saját könyvtárba,
majd annak újra megnyitását, javítását és újabb mentését.

2. Összetettebb szövegek: Írjon égy féloldalas önéletrajzot. Ügyeljen a szöveg esztétikai


formájára. Legyen új bekezdés, aláhúzás, dőlt betűk, félkövér betűk, 14-es nagyságú,
13-as nagyságú és 10-es nagyságú betű is. A betűk Times New Roman és Arial
mintájúak legyenek.

3. Szerkessze meg a 3.2.2. táblázatot önállóan!

4. Az egyenletszerkesztővel szerkessze meg a következő formulát:


10
 10 
B= +x 2 log x
x .

 ( x)5 log x

5. Illesszen be a dokumentumba valamilyen előkészített ábrát (.wmf formátummal),


rajzot (.bmp formátummal), képet (.jpg , .gif vagy .tif formátummal). Illessze
be a szövegbe például ezt az ábrát (megtalálható a ClipArt katalógusban):

____________________________________________________________________________________
47
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

6. Másolja át a következő szöveget (esetleg saját elképzelése szerint változtasson a


részleteken):

Tétel (Heaviside):
Jelölje F(p) valamely f(t) függvény Laplace-transzformáltját
Az inverz Laplace transzformáció a HEAVISIDE-tétel alapján történik:

P( p)
Ha F ( p) = , ahol P(p) és R(p) polinomokat jelöl, és
R( p)
a) ha R(p) polinomnak csak a p1 , p 2 ,..., p n egyszeres gyökei léteznek, akkor:

n
P ( pk ) t ⋅ p k
L−1 [F ( p)] = ∑ e .
k =1 R ' ( pk )

b) ha R(p) polinomnak m különböző gyöke van p1 , p 2 ,..., p m amelyek r1 , r2 ,..., rm


fokúak, akkor:
d rk −1
( )
m
1
L−1[F( p)] = ∑ lim rk −1 ( p − pk )rk F( p) ⋅ e pt .
k =1 (rk −1)!
p→pk dp

3.3.1.2. AZ EXCEL

Az irodai alkalmazások mindegyikének (így az MS Office programcsomag


komponenseinek is) pontosan körülhatárolt feladatai vannak, tehát a táblázatkezelők
feladatai is jól körülhatárolhatók. Ha válaszolunk az első kérdésre: mit nevezünk
táblázatnak? akkor már könnyű válaszolni arra a kérdésre, hogy mire szolgál egy
táblázatkezelő program?

A táblázat az adattárolás alapja. A táblázatban névvel ellátott csoportok


szerepelnek: függőlegesen oszlopokba és vízszintesen sorokba rendezve.

Ha adatainkat táblázatba foglaltuk, akkor célunkat még nem értük el: bizonyos,
hogy az adatok táblázatba rendezése fontos szakasza a feladatunk megoldásának, ám
ugyanilyen fontos ezeket az adatokat feldolgozni! Ez a feldolgozás azt jelenti, hogy az
adathalmazzal végzett gyakori számítási feladatokat a számítógépre bízhassuk, és ezeket
a számításokat többször, más-más értékekkel megismételhessük. Tehát számolótáblát
kell készítenünk, amelyet sokszor felhasználhatunk – csak az adatokat változtatjuk meg.
Ha jól használjuk a táblázatkezelő szolgáltatásait, akkor sok időt takaríthatunk meg és
temérdek fáradságtól kíméljük meg magunkat.
____________________________________________________________________________________
48
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Az EXCEL egy jellegzetes képernyőjét szemlélhetjük a 3.3.1.2. ábrán

3.3.1.2. ábra

Hasonlítsuk össze az EXCEL képernyőjét (3.3.1.2. ábra) a WINDOWS


képernyőjével (3.2.3.3. ábra), de a WINWORD képernyőjével is (3.3.1.1. ábra).
Fedezzük fel a hasonlóságokat (találjuk meg az azonos eszközöket), de keressük meg a
specifikus eszközöket is!

A 3.3.1.2. ábrán a K-val jelölt oszlop első sorában lévő K1-es cellától az R21-es
celláig látható a táblázat (egyébként a táblázat "kiterjedései" igen tiszteletreméltóak: a
kezelhető sorok száma 65536, az oszlopok pedig A,B, .., majd AA, AB, stb
jelölésűektől egészen az IA, IB, ..., IV-ig használhatók). A fenti ábra a Szabadkai
Műszaki Főiskola 2000/2001 tanévi vizsgarendjének egy részletét ábrázolja. (Az ábrán
ugyan nem látható, de a cellák amelyek dátumot mutatnak azok nem bekopogott, hanem
kiszámított értékek. A cellák tartalma tehát egy formula, amely a látható értékeket
valamely más cellákban elhelyezett értékekre való hivatkozással kiszámítja!

Az L14-es cella (láthatóan megkülönböztetve a többi cellától - a címe ki is van


írva az úgynevezett Referenc Box-ban) az aktív cella. Ebben a cellában "vagyunk" –
itt dolgozunk most, a továbblépést (a cella elhagyását) bármilyen "közlekedési
eszközzel" (egér, Enter, kurzorgomb) megtehetjük.
____________________________________________________________________________________
49
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

Az EXCEL megismerésének fázisairól némileg részletesebben szólunk mint az a


szövegszerkesztőnél tettük, mert valóban több erőfeszítés is szükséges ezen a feladat
megoldásához. Egy feltételt és egy tényt hangsúlyozni kell:

(I) Feltételezzük, hogy a szövegszerkesztés alapvető technikáit ismeri az olvasó


(azért mert az EXCEL használata ezt megköveteli),

(II) EXCEL formuláiban, illetve függvényeiben már a "programírás" alap


lépéseit alkalmazzuk.

Ajánlatos a program megismerésére végigjárni a következő fázisokat:

Ismerjük meg a programkörnyezetet: a felhasználói eszközöket, és az


elnevezéseket: mi a munkafüzet, mi a munkalap és mi a cella? Hogyan
történik ezeknek az objektumoknak az elnevezése, átnevezése, törlése
(vagy tartalmának törlése) és bezárása?
Hogyan történik a tartalom (az adatok) bevitele, szerkesztése, formázása?
Milyen típusú adatokkal dolgozhatunk? (Nyissuk ki a Format menüpont
Cells... alpontját és a megnyíló ablakban kattintsunk a Number
"fülre")
Hogyan készíthetünk képleteket? Hogyan másolhatjuk a képleteket? (Ez
kapcsolatban van a cellatartalomra való abszolút és relatív
hivatkozásokkal).
Hogyan használjuk az EXCEL beépített függvényeit?
Hogyan készítsünk egyszerű diagramokat?

Az oldalbeállítással és a nyomtatással kapcsolatos kérdések (és a válaszok is)


szinte teljesen azonosak a WINWORD azonos tárgyú kérdéseivel.

Feladatok:
1. Töltsük ki egy 10 oszlopos és 10 soros táblázat celláit találomra egész számokkal.
Végezzük el a következő formázási feladatokat:
a) Keretezzük be a cellákat 1/2 p stílusú folyamatos kék vonallal,
b) A páros oszlopok celláit töltsük ki világoskék alapozó színnel,
c) A 11-edik sorban alakítsuk ki az oszlopok összegeit,
d) A 11-edik oszlopban (K-adik oszlop) számítsuk ki a sorokban található
számok szorzatait.

____________________________________________________________________________________
50
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

2. a) Az 1. feladat összegző sorának adatait ábrázolja oszlopdiagrammal,


vonaldiagrammal, tortadiagrammal, stb. Válasszon néhányat az előkészített diagram-
mintákból, adjon címet a diagramnak, lássa el feliratokkal a tengelyeket, színezze az
oszlopokat (színezze a szeleteket – ha a tortadiagramot választotta)
b) Az 1. sz. feladat 10×10-es táblázatrészét ábrázolja "háromdimenziós" oszlop
diagrammal. Formázza ezt a diagramot tetszése szerint!

3. ECDL feladat (4. modul TÁBLÁZATKEZELÉS, 14. sz. feladat):

1. Szerkessze meg a fenti táblázatot!


2. Formázza meg a cellákat beleértve a számformátumokat, a szegélyezéseket, az
árnyékolásokat és a betűformátumokat is!
3. Számítsa ki a dőltbetűs cellákba a megfelelő értékeket!
4. A jobboldali segédtáblázatból a maximális pontszám felhasználásával számítsa
ki a ponthatárokat.
5. Az osztályzatok a ponttábla értékeinek felhasználásával készüljenek úgy, hogy
elegendő legyen csak a maximumot megváltoztatni az új értékek megjelení
téséhez!
6. Szúrjon be két nevet a sor közepére és adjon nekik tetszőleges pontszámot!
7. Rendezze a táblázatot pontszám szerint!
8. Készítsen hasábdiagramot az egyes tanulók pontszámáról!
9. Mentse el a táblázatot és a diagramot a floppy lemezre monogram_dátum néven!
10. Nyomtassa ki a táblázatot a telepített nyomtatón! A lap közepére nyomtasson,
fej és lábléc is legyen (vizsgázó neve, oldalszám, dátum)!

____________________________________________________________________________________
51
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

3.3.1.3. AZ MSACCESS

Az MSACCESS adatbázis-kezelő rendszer. Az EXCEL-lel kapcsolatban is


megjegyeztük már, hogy az MS Office programcsomag komponenseinek pontosan
körülhatárolt feladatai vannak. Jelen bekezdés első mondata – rövidsége ellenére is – a
most tárgyalt komponens korrekt definíciója, de nem sokat mond, ha nem ismerjük az
adatbázis fogalmát. Mit nevezünk adatbázisnak? Ez utóbbi kérdés megválaszolása után
az MSACCESS rendeltetése is tisztázódik.

Nem támaszkodhatunk az adatbázis "hivatalos" definíciójára sem , amely csak


annyit állít, hogy az adatbázis az azonos tárgykörű vagy azonos rendeltetésű adatok
rendezett halmaza. Az ACCESS megalkotói az adatbázist sokkal többnek tartják az
adatok egyszerű, begyűjtött és tárolt sokaságánál:

Az adatbázis olyan szervezett módon tárolt adatok rendszere,


amely az integrált segédinformációkkal együtt biztosítja az
adatokhoz való hatékony hozzáférést, azok egységét és védelmét

Mindegyik adatbázis-kezelő rendszerrel (így az MSACCESS-el is) feltétlenül


elvégezhetőnek kell lenni az alábbi feladatok sora:
• új adatbázis létrehozása,
• az adatbázis tartalmának és szerkezetének definiálása,
• az adatok befogadása, tárolása és lekérdezése
• az adatok védelme (hozzáférési jogok kezelése)

A hálózatok esetében a fenti


feladatokhoz még egy rendkívül fontos
funkció járul: a hálózat különböző
pontjairól befutó hozzáférési kérelmek
sorrendjének kezelése és teljesítése.

Nyilvánvaló, ez a jegyzet sem


terjedelménél fogva, de rendeltetése miatt
sem foglakozik az MSACCESS
adatbázis-kezelő rendszer teljes
mélységeivel.

3.3.1.3.a. ábra

____________________________________________________________________________________
52
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

A gyakorlott felhasználó – úgy egyedi számítógépen mint hálózati gépen ismeri


az ACCESS megkötéseit és tiszteletben tartja azokat. A Számítástechnikai
Alapismeretek tárgy kereteiben az alapfogalmakat feltétlenül tisztáznia kell az
olvasónak, ismernie kell egy szerény méretű adatbázist megszerkesztenie – nem
feltétlenül az Blank Access database módon, hanem a "varázsló" segítségével
(tehát az Access database wizards,...) szolgáltatásainak igénybevételével. A
3.3.1.3.a ábra a program megnyitása után jelentkező "érdeklődő" ablakot mutatja.

Az MSACCESS képernyője a már megszokott hasonlóságot mutatja a többi


WINDOWS-os képernyővel: A szokásos eszközsor mellett jelen van (mint más
program esetében is) néhány új eszköz is, ezen kívül az adatbázis-kezelő központi
műhelye, az úgynevezett adatbázis ablak (3.3.1.3.b. ábra) (Megjegyzés: az ábrán az
adatbázis ablak a teljesen kiterjesztett formájában látható, a megszokott megjelenési
formája egy kisebb méretű ablak a képernyő közepén ugyanezekkel a komponensekkel.
Az állapotsort a képernyő aljáról elhagytuk, mert a szokásos jelentését már ismerjük.)

3.3.1.3.b. ábra

Az adatbázis objektumokból tevődik össze. Az objektum-osztályok az adatbázis


ablak bal szegélyén választhatók ki (Objects)
• Tables (táblázatok) az adatok tényleges raktározására szolgálnak,
• Queries (lekérdezések) a táblázatokból a felhasználó által megfogalmazott
kritériumok alapján kiválasztják a kért adatokat,
• Forms (űrlapok) az adatokhoz való kényelmesebb, esztétikailag megfelelőbb
hozzáférést nyújtják a felhasználónak,
• Reports (jelentések) a lekérdezések eredményeiről nyomtatott formában
megjeleníthető dokumentumok,
• Pages (lapok) az adatbázis jelentései WEB-lapokon,

____________________________________________________________________________________
53
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

• Macros (makrók) ha valamely (néhány lépésből álló) feladatot gyakran kel


ismételni, akkor ezt automatizáljuk: "programba foglaljuk",
• Modules (modulok) az MS Office komponenseinek belső programnyelvén a
VBA (Visual Basic for Applications) írott programok, amelyek az adatokon
elvégzendő összetettebb feladatokat hajtják végre és általában a kezelőfelület
fejlesztésére is alkalmazhatók.

Az adatbázis ablak még látható opcióiról nem szólunk, alkalom és szükség


esetén az olvasó azoknak a pontoknak a jelentésével és felhasználásával is megismer
kedik majd.

Feladat: Varázsló segítségével szerkesszen meg egy adatbázist, amelyben


legalább két táblázat, egy lekérdezés, két-három űrlap és egy jelentés van. A
táblázatokban legalább 5 rekord legyen, és az applikáció működjön is!

3.3.2. A MATLAB-RÓL

Világszerte az egyetemi oktatásban leginkább alkalmazott programcsomag a


MATLAB. Nem véletlen ez a széleskörű alkalmazás, mert a matematikai és műszaki
számítások rendkívül széles körében felhasználható. Grafikus megjelenítési lehetőségei
a magas műszaki követelményeket is kielégítik. Mindenképpen hangsúlyozni kell a
programcsomag úgynevezett interaktív tulajdonságát: a felhasználó minden parancsát,
utasítását azonnal teljesíti és várja a következő utasítást. Ezzel párhuzamosan a
MATLAB egy sajátos programnyelvvel is rendelkezik. Ezen a nyelven különálló
programok írhatók, azok elmenthetők és tetszőleges időpontban, tetszőleges aktuális
argumentumokkal futtathatók.

Különösen nyomós érv a MATLAB-nak az egyetemi és főiskolai oktatásba való


bevezetésére a SIMULINK nevű grafikus modul, amellyel a rendszerek dinamikája
szimulálható.

A gyártó cég, a The Math Works Inc. a programdokumentáció mindegyikén


így definiálja a programot:

MATLAB® The Language of Technical Computing


Computation – Visualisation – Programming

MATLAB® A műszaki számítások nyelve


Számítás – Megjelenítés – Programozás

____________________________________________________________________________________
54
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

A Számítástechnikai Alapismeretek tárgy feladatkörébe a MATLAB alapjainak


megismertetése tartozik. Ez azt jelenti, hogy ismerni kell a program futtatásának módját,
egyszerű matematikai számításokat kell interaktív módon végezni, ismerni kell egy-egy
beépített matematikai függvény meghívásának módját (pl. a trigonometriai függvények
és inverzeik, az exponenciális és a logaritmus függvény, stb.). A "toldalékos" modulok
sokaságának megismerése a későbbiek folyamán, a szaktantárgyak kereteiben történik
majd. Mivel valóban bőséges a Toolbox kollekció, ezért csak a számunkra fontos és
érdekes modulokat említjük meg:

a) Control System Toolbox a lineáris rendszerek analízisére és irányítására


vonatkozó problémák megoldására szolgál,
b) Signal Processing Toolbox a digitális jelfeldolgozás eszköztárát valamint
az adatszűrés és azok spektrális analízisének eszközeit tartalmazza,
c) System Identification Toolbox tartalma a rendszerazonosító funkciók és a
paraméteres modellezés eszközei,
d) Optimization Toolbox általános lineáris és nemlineáris függvények
optimalizálására szolgál,
e) Neural Network Toolbox a neurális hálózatok optimalizálását segítő
eszközöket tartalmazza,
f) Robust-Control Toolbox automatikus irányítástechnikai rendszerek
tervezését segítő eszközök tára,
g) Statistics Toolbox a statisztikai számításokra szolgál,
h) Symbolic Math Toolbox a szimbolikus matematikai számítások végzésére
(például az ax2 + bx + c = 0 másodfokú algebrai egyenlet
megoldására a középiskolából jól ismert "megoldó képletet" adja).

A felsoroltakon kívül még valóban sok, egyéb nagyon szűk területre vonatkozó,
specializált eszköztár áll a felhasználó rendelkezésére. Az érdeklődők mindegyik modul
teljes kézikönyvének .pdf formátumú változatát is olvashatják, mivel a gyártó cég sok-
sok megabájt terjedelemben mellékeli ezt a dokumentációt is. Tisztán tájékoztatás
céljaira íme még néhány Toolbox neve:
Fuzzy Logic Toolbox
Wavelet Toolbox
Real-Time Workshop®
Partial Differential Equation Toolbox
Higher-Order Spectral Analysis Toolbox
... és így tovább, még sok más modul.

A 3.3.2. ábrán a MATLAB parancs-ablakát látjuk néhány soros utasítással,


amely megrajzolta a sinus-görbét
____________________________________________________________________________________
55
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

3.3.2. ábra

Mellékeljük az alapvető aritmetikai, logikai és halmazelméleti műveletek


jegyzékét valamint néhány elemi és speciális függvény listáját. A válogatás a MATLAB
eszköztáraiból kiragadott tartalomjegyzékek igénybevételével történt.

Nyilvánvaló, az olvasónak a gyakorlatokon kell megismerni ezen jelrendszer


valamint a függvények meghívásának és alkalmazásának módját.

1. Műveletjelek és speciális karakterek.

a) Aritmetikai műveletek
plus - számok vagy tömbök összeadása +
minus - számok vagy tömbök kivonása -
mtimes - mátrix szorzás *
times - tömb-szorzás .*
mpower - mátrix hatvány ^
power - tömb-hatvány .^
mldivide - baloldali mátrix osztás \
mrdivide - jobboldali mátrix osztás /
ldivide - baloldali tömb-osztás .\
rdivide - jobboldali tömb-osztás ./

____________________________________________________________________________________
56
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

b) Relációs operátorok (összehasonlítások).


eq - egyenlő? ==
ne - nem egyenlő? ~=
lt - kisebb? <
gt - nagyobb? >
le - kisebb vagy egyenlő? <=
ge - nagyobb vagy egyenlő? >=

c) Logikai operátorok (műveleti jelek).


and - konjunkció (ÉS) &
or - diszjunkció (VAGY) |
not - negáció (NEM) ~
xor - kizáró diszjunkció (VAGY-VAGY)
any - igaz, ha a vektornak van
nem-nulla eleme
all - igaz, ha a vektor minden eleme
nem-nulla

d) Speciális jelek.
colon - kettőspont :
paren - zárójelek és index-zárójelek ( )
paren - mátrix zárójelek [ ]
paren - index-zárójelek { }
punct - decimális pont .
punct - vessző (szeparátor) ,
punct - pontosvessző ;
punct - operációs rendszer parancshívás !
punct - hozzárendelés =
transpose - transzponálás .'
horzcat - vízszintes konkatenació [,]
vertcat - függőleges konkatenáció [;]
subsasgn - indexes hozzárendelés ( ),{ },.
subsref - indexes hivatkozás ( ),{ },.

e) Halmazműveletek.
union - halmazok uniója.
intersect - halmazok metszete.
setdiff - halmazok különbsége.
setxor - halmazok szimmetrikus differenciája.
ismember - eleme-e a halmaznak?

2. Mátrixok és lineáris algebra.

a) Mátrix-számítások.
norm - mátrix vagy vektor norma.
rank - mátrix rang.
det - determináns.
trace - az átlós elemek összege.
inv - mátrix inverze.
eig - sajátértékek, sajátvektorok.
poly - karakterisztikus polinom.
____________________________________________________________________________________
57
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

b) Elemi mátrixok
zeros - zéró-mátrix vagy null-mátrix
ones - egyesek mátrixa (nem egységmátrix!).
eye - egységmátrix.
repmat - mátrix(vagy tömb) ismétlése.
rand - egyenletes eloszlású véletlen számok
randn - normál-eloszlású véletlen számok
linspace - lineáris növekményű vektor.
logspace - logaritmikus növekményű vektor.
: - mátrix index-határok elválasztójele.

c) Alapvető információk a tömbökről.


size - a mátrix típusa (dimenziói).
length - a vektor dimenziószáma.
ndims - a dimenziók száma.
disp - a mátrix vagy szöveg megjelenítése.
isempty - igaz-e hogy a mátrix "üres"?
isequal - igaz-e hogy a tömbök azonosak?
isnumeric - igaz-e hogy a tömb numerikus?
islogical - igaz-e hogy a tömb elemei logikai
változók?
logical - numerikus értékeket logikai
értékekre konvertál.

d) Mátrix manipulációk.
diag - a mátrix átlójának kiválasztása.
blkdiag - tömbök diagonális konkatenációja.
tril - felső háromszögmátrix elkülönítése.
triu - alsó háromszögmátrix elkülönítése.
rot90 - a mátrix 90 fokban való elforgatása.
: - a mátrix index-határok elválasztása
find - kikeresi a nem nulla elemeket.
end - az utolsó index.
sub2ind - a többdimenziós tömb lineáris
átindexelése.
ind2sub - a lineáris index többdimenziós
megfeleltetése.

e) Speciális változók és állandók (konstansok).


ans - válasz (az utolsó kérdésre).
eps - legkisebb pozitív "epszilon" szám.
realmax - legnagyobb lebegőpontos valós szám.
realmin - legkisebb lebegőpontos valós szám.
pi - 3.1415926535897....
i, j - az imaginárius egység.
inf - a végtelen nagy szám.
NaN - Not-a-Number – "nem-szám".
isnan - igaz-e hogy nem szám?
isinf - igaz-e hogy végtelen nagy szám?
isfinite - igaz-e hogy véges nagy szám?

____________________________________________________________________________________
58
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

f) Speciális mátrixok.
compan - társmátrix.
gallery - Higham mátrix.
hadamard - Hadamard mátrix.
hankel - Hankel mátrix.
hilb - Hilbert mátrix.
invhilb - inverz Hilbert mátrix.
magic - "bűvös négyzet".
pascal - Pascal mátrix.
rosser - klasszikus szimmetrikus sajátérték
teszt mátrix.
toeplitz - Toeplitz mátrix.
vander - Vandermonde mátrix.
wilkinson - Wilkinson's sajátérték teszt mátrix.

3. Elemi matematikai függvények.

a) Trigonometriai függvények és inverzeik.


sin - szinusz.
asin - inverz szinusz.
cos - koszinusz.
acos - inverz koszinusz.
tan - tangens.
atan - inverz tangens.
atan2 - négy negyedes inverz tangens.
cot - kotangens.
acot - inverz kotangens.
sec - szekáns.
asec - inverz szekáns.
csc - koszekáns.
acsc - inverz koszekáns.

b) Exponenciális és logaritmus függvények.


exp - ("e" alapú) exponenciális függvény.
log - természetes logaritmus ("e" alapú).
log10 - közönséges (10 alapú) logaritmus.
log2 - a 2 alapszámú logaritmus.
sqrt - négyzetgyök.
nextpow2 - a 2 azon kitevője, amelyre a 2k
meghaladja az adott számot
____________________________________________________________________________________
59
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

c) Hiperbolikus függvények és inverzeik.


sinh - hiperbolikus szinusz.
asinh - inverz hiperbolikus szinusz.
cosh - hiperbolikus koszinusz.
acosh - inverz hiperbolikus koszinusz.
tanh - hiperbolikus tangens.
atanh - inverz hiperbolikus tangens.
coth - hiperbolikus kotangens.
acoth - inverz hiperbolikus kotangens.
sech - hiperbolikus szekáns.
asech - inverz hiperbolikus szekáns.
csch - hiperbolikus koszekáns.
acsch - inverz hiperbolikus koszekáns.

d) Komplex számok.
abs - a komplex szám abszolút értéke.
angle - a komplex szám argumentuma.
complex - komplex szám alkotása adott valós és
imaginárius részből.
conj - a konjugált komplex szám.
imag - a komplex szám imaginárius része.
real - a komplex szám valós része.
isreal - igaz, ha a tömb elemei valós számok.

e) Kerekítés és maradék.
fix - egész számra kerekítés (a tizedes
jegyek egyszerű elhagyása).
floor - kerekítés lefelé.
ceil - kerekítés felfelé.
round - kerekítés legközelebbi egész számra.
mod - modulus (a maradék adott számmal
való osztás után).
rem - az osztás maradéka (nem ugyanaz mint
a mod!).
sign - Szignum.

Lehetséges, hogy a fenti táblázatok tartalmának válogatása szubjektív, de


könyvünk terjedelme nem teszi lehetővé a szélesebb körű ismertetést. Bizonyos, hogy
ha a listát tovább folytathatnánk, akkor a 2D-s és 3D-s ábrák rajzolására vonatkozó
parancsokat és utasításokat sorolnánk.

Különösen fontos a változókkal, állandókkal, részeredményekkel megtöltött


WORKSPACE (a memóriának a számunkra igénybevett munkaterület) elmentése
illetve a munka újrakezdésekor a betöltése – ily módon, úgymond, ott folytathatjuk a
munkát, ahol abbahagytuk. Ezek a .mat kiterjesztésű fájlok.
____________________________________________________________________________________
60
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

A másik fájltípusnak .m az extenziója. Már említettük azt a lehetőséget, hogy a


MATLAB programnyelvén hosszabb-rövidebb programokat írjunk, azokat elmentjük és
szükség esetén futtathatjuk. Az így elmentett programok kiterjesztése az .m. Ajánlatos
jól megismerkedni a MATLAB beépített szövegszerkesztőjével, az Editor/Debugger
segédprogrammal, amely a "közönséges" szövegszerkesztőktől eltérően viselkedik: ezt
a viselkedést más magasabb szintű programnyelv saját szövegszerkesztőjénél szintén
észlelhető. (A hibák azonnali kijelzése, a szöveg sajátos módon való tördelése, stb.)

Figyeljük meg a 3.3.2. ábrán a szinuszgörbe mögötti kis programocskát,


amelyet az alábbi táblázatban elemezhetünk.
% Az első utastás egy sorozatot (vektort) definiál
% amelynek az első eleme 0, az utolsó pedig 2*pi,
% a lépés pedig a pi századrésze.
% A sor végén elhelyezett pontosvessző azt jelenti
% a programnak, hogy még nem kell "megmutatni" az eredményt.

t = 0:pi/100:2*pi;

% A második sor kiszámitja a t sorozat mindegyik


% elemének szinuszát - tehát az y sorozatot.

y = sin(t);

% A harmadik utasítás MEGRAJZOLJA mindegyik (t,y)


% párhoz a pontot. Nincs pontosvessző, tehát azonnal megjelenik
% a képernyőn. A plot a grafikai utasítások egyike, amelyekről a
% válogatásban nem szóltunk.

plot(t,y)

% A negyedik utasítás a rácsot rajzolja meg a


% grafikon mögé. Nincs pontosvessző, tehát azonnal megjelenik!

grid on

% A százalékjellel kezdődő sorok kommentárok,


% ezek a sorok "csak olvasásra" szolgálnak.
%-----------------------------------------------------------------
-
% MEGJEGYZÉS - az alábbi programszegmensnek semmi köze a fenti
% rajz programocskához, csak a színek miatt mellékeljük:
%
% A MATLAB Editor/Debugger szinek
% zöld szín = kommentár
% kék szin = programfolyamat irányító parancs
% piros szin = szövegkonstansok
% fekete szín= függvénynevek és változók neve.

for i = 1:nargin
if isempty(varargin{i})
error ('Invalid Argument - Input matrix is empty');
end
end

____________________________________________________________________________________
61
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

3.4. PROGRAMFEJLESZTŐI RENDSZEREK

A 3. fejezet eddigi teljes terjedelmét a szoftverek tanulmányozására szántuk.


Különböző elvek alapján osztályoztuk a számítógépekben "nyüzsgő", dolgozó, teremtő,
segítő (és sajnos: sokszor romboló) programokat. Az egyik szempont szerint az
operációs rendszerekre, a felhasználói szoftverekre és a fejlesztői rendszerekre tagoltuk
a rendelkezésre álló programokat. Nem foglalkoztunk a felhasználói szoftverek
tervezést támogató példányaival (pl. CAD, PCAD) és az ügyviteli rendszerek (pl. a
bérelszámolást végző) programjaival sem, mert azok nem feltétlenül szükséges részei a
számítástechnikai alapismereteknek. Ám a programfejlesztői rendszerekről feltétlenül
szólnunk kell.

3.4.1. A GÉPI NYELV

A hardver ismeretekről szóló fejezetben már láttuk, hogy a számítógép nyelve


igen "egyszerű". Mindössze két jelet (vagy állapotot) alkalmaz: {0, 1}, az információk
tömege a számítógépen belül, valamint közötte és közvetlen perifériái között ezen két
jel "végtelen" áramlatával sodródik, valahogy így:

→... 00110011 10100011 11101011 11110001 1001010 ....→


Ha a felhasználó a számítógép nyelvén szeretne a géppel kommunikálni, akkor
meg kellene tanulnia a gépi nyelvet.

Gépi nyelvnek nevezzük a számítógép utasításainak bináris


kódban írt alakját, amely a gépbe közvetlenül bevihető és amelyek
alapján a gép az utasításokat végre tudja hajtani.

A gépi nyelv lényegében egyszerű, ugyanis szegényes betűkészlete mellett a


"szókincse" sem bőséges, ám ez a beszélgetés mindenekfelett unalmas lenne, de csak az
egyik fél számára (nem kérdéses, hogy melyik számára). Például az összeadást a
következő "szó" jelenti: 10011100. Legyen mondjuk az egyik összeadandónak címe a
tárban 00001010 11101110, a másik pedig a 00001010 00110001 címen
helyezkedik el. Ha utasítani szeretnénk a számítógépet arra, hogy az érintett számokat
adja össze, akkor a következő kellene vele közölnünk:
10011100 00001011 11101110 00001010 00110001
vagy hexadecimális "átírással": 9C 0B DD 0A 31.

____________________________________________________________________________________
62
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Ez az utóbbi felírás rövidebb ugyan, de a felhasználó szempontjából ugyanolyan


kényelmetlen és nem igazán áttekinthető.

Általában a gépi nyelven írt utasítások sorozata mindig két részből áll: az első
rész a műveleti kód (mit kell csinálni?), a második rész pedig a címrész (hol
helyezkednek el azok az adatok, amelyekkel a kijelölt műveletet el kell végezni?).

A számítógép megjelenésétől eltelt évek folyamán a fejlesztéssel foglalkozó


mérnökök egyre tökéletesebb módszereket találtak amelyek egyre barátságosabbá teszik
a számítógép↔felhasználó kommunikációt.

3.4.2. AZ ASSEMBLY PROGRAMOZÁSI NYELV

A számítógép "anyanyelvével" szoros rokonságban álló nyelv. A jellemző


különbség az úgynevezett mnemonikus utasítások bevezetése. Ezért:

Az assembly nyelvet gépre orientált szimbolikus


programozási nyelvnek nevezzük

A gépre orientáltság azt jelenti, hogy utasítási azonosak az adott számítógép


utasításaival, mindössze annyi történik, hogy a műveleti kódokat a beszélt nyelvben
használatos szavak töredékeivel helyettesítjük, az adatok címe helyett nevet kapnak.
Mondjuk gépi kódnál említett példában az összeadás 10011100 kódját az ADD
rövidítés helyettesíti, a 00001010 11101110 címen elhelyezkedő adatot nevezzük el
VAS1-nek, a 00001010 00110001 címen lévőt pedig VAS2-nek. Ezek után a
szemlélt összeadást assembly nyelven így írjuk:

ADD VAS1, VAS2

Nyilvánvaló, hogy "valakinek" tudnia kell hogy mit is jelent az ADD és mi is a


VAS1, valamint a VAS2 címe? Ezeket a jelentéseket be kell helyettesíteni a megfelelő,
a gép számára érthető bináris számjegy-kombinációkkal. Valójában: a szimbolikus,
assembly nyelven írt programot le kell fordítani gépi nyelvre! Ezt a fordítást is program
végzi, amely ismeri ezeket a hozzárendeléseket és megszabadítja a programozót a
nehézkes gépi nyelv közvetlen alkalmazásától. Most már nem szükséges minden
alkalommal pontosan beírni a VAS1 adat nyolcbites címét, megteszi ezt a
fordítóprogram.

____________________________________________________________________________________
63
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

Az assembly nyelven írt programok gépi nyelvre


való fordítását az assembler végzi.

Mai szemmel nézve az assembly is még túlságosan kényelmetlen, nehézkes, ám


a kezdeti fázisban rendkívül jelentős volt hozzájárulása a programfejlesztéshez. A
további fejlődési fázisok már a magas szintű programozási nyelvek felé közelítenek.

3.4.3. A MAGAS SZINTŰ PROGRAMNYELVEK

Az előző két paragrafusban körvonalaztuk gépi nyelv jellemzőit, amely abszolút


címekkel működött. Az assembly már szimbolikus nyelv ugyan, de gépre orientált,
vagyis szorosan a gépi nyelv struktúrájához igazodnak. A feladatra, vagy eljárásra
orientált (problémaorientált) nyelvek lehetővé teszik például a matematikai problémák
képletekkel való megoldását. Továbbra is az előző két paragrafusban tárgyalt összeadást
véve példaként, egy problémaorientált nyelvben elegendő leírni a következő utasítást:

SUM=VAS1+VAS2

Mindazokon túl, hogy ez az utasítás elvégzi a nevezett számok összeadását, az


összeget elhelyezi a tárban egy címen, nevet is ad neki, és a továbbiakban már erre
hivatkozhatunk is. Mindegyik magas szintű programozási nyelv mögött is ott áll tehát a
saját fordítóprogramja. Tekintsük az alábbi definíciókat:

Forrásprogramnak (pszeudo kódnak, szimbolikus kódnak)


nevezzük a programozó által valamely magas szintű
programozási nyelven leírt programkódot.

A forrásprogramnak egy meghatározott számítógép gépi nyelvére


való fordítását a fordítóprogram végzi. A feladatorientált magas szintű
programozási nyelvek fordítóprogramját compiler-nek nevezzük.

A fordítóprogram a programfordításon kívül ellenőrzi és kijelzi a forrásprogram


olyan hibáit amelyek ellenkeznek az illető programozási nyelv szabályaival. Ezeket a
hibákat szintaktikai hibáknak nevezzük. A logikai (szemantikai) hibákat sajnos még
egyetlen fordítóprogram sem fedezi fel. Elkészülhet tehát egy olyan program, amely
mindenben megfelel a programozási nyelv szabályainak, csak "nem azt csinálja" amit a
programozó elképzelt.
____________________________________________________________________________________
64
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

A kód, amelyet a fordítóprogram generál vagy azonnal tölthető és futtatható,


vagy modulként egy másik program segítségével a programfejlesztő rendszerhez tartozó
egyéb modulok könyvtárából a szükséges rutinokkal összekapcsolva lesz futáskész.

A programfejlesztő rendszerkönyvtárához tartozó moduloknak a


forrásprogram fordításakor nyert modullal való kapcsolását végző
programot kapcsolóprogramnak vagy linker-nek nevezzük.

Megemlítünk néhány ilyen magas szintű (problémaorientált) nyelvet, amelyek


kialakulása és fejlődése az 1950-es évek elején jön lendületbe, és ma már igen népes
családot alkotnak.

FORTRAN

A matematikai képletek leírására épülő (FORmula TRANslation) programozási


nyelv, elsősorban tudományos számítások elvégzésére alakították ki (1954.). Még ma is
nagyon sok FORTRAN alapú felhasználói szoftver működik.

ALGOL

Algoritmikus nyelv (ALGOrithmic Language) amely tudományos publikáci


ókban az algoritmusok leírására fejlesztettek ki (1960.), de a FORTRAN-hoz hasonlóan
alkalmazható feladatorientált programnyelvként is.

COBOL

Üzleti problémaorientált programozási nyelv (COmmon Business Oriented


Language, 1959.), mert adatfeldolgozásra szolgál, és általában az üzleti szférában
(bankok, biztosítok) alkalmazták/alkalmazzák

BASIC

A nagyon egyszerű feladatra orientált programozási nyelv (a kezdők általános


szimbolikus utasításkódja: Beginners All-purpose Symbolic Instruction Code, 1964.)
Az első változatok könnyen tanulható, azonnal alkalmazhatóak voltak. Elsősorban az
egyszerűbb tudományos és műszaki problémák megoldására szolgált. Egyszerűségén túl
még egy rendkívül jelentős előnye volt a megjelenése idején: képes volt úgynevezett
párbeszédes módon dolgozni: Az utasítás begépelése után azonnal értelmezte azt és
végre is hajtotta (figyeljünk fel a MATLAB használatakor jelentkező azonos
üzemmódra!)

____________________________________________________________________________________
65
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

PASCAL

Ezen magas szintű nyelv megalkotása (1968.) Niklaus Wirthnek, a zürichi


egyetem professzorának a nevéhez fűződik (A programnyelvet nagy francia
matematikusról, Blaise Pascalról nevezte el). Nem szorította ugyan ki a nagynevű
elődöket, de a mikroszámítógépek egyik legelterjedtebb programozási nyelvévé vált.
Létezik az úgynevezett integrált környezetű változata ("turbo").

PL/1

A nevéből ítélve (Programming Language 1) megalkotói minden korábbi


nyelvet helyettesíteni óhajtottak vele, de ez nem sikerült teljes mértékben: a nyelvnek
matematikai-tudományos orientáltságúnak, üzleti használatra alkalmasnak, általánosan
könnyednek kellett volna lenni - és éppen emiatt sikeredett nehézkesre – és nem is
aratott általános sikert.

CLIPPER

A dBASE adatbázis kezelő rendszer belső programozási nyelvéből önállósult


probléma orientált nyelv (1986-1987.). Elsősorban adatbázisok kezelésre és üzleti
programok fejlesztésére szolgáló, igen széles körben alkalmazott fejlesztőrendszer.

Nem véletlen, hogy a felsorolásból kimaradt a C programozási nyelv.


A C nyelv leírásával az 5. fejezetben foglakozunk részletesebben.

3.4.4. A VHLL ÉS A MESTERSÉGES INTELLIGENCIA NYELVE

A számítógépek működtetését szolgáló szoftverek fejlesztésével foglalkozó


szakemberek, illetve a számítógépek egyre nagyobb hatékonyságát kutató tudósok már
túlhaladtak a problémaorientált nyelvek (vagy nevezzük őket procedurális nyelveknek)
alkalmazásán. Ma már ezek a nyelvek nem elégítik ki az egyre növekvő és
terebélyesedő követelményeket. A procedurális nyelvekre épülő, újabb programozási
nyelv-generáció a nem-procedurális nyelvek rétege. Ezeket a nyelveket már a VHLl
(Very High Level Language – nagyon magaszintű nyelvek) kategóriájába soroljuk.

A nem-procedurális (nonprocedual language) nyelven csak a kért


eredményeket definiáljuk, de nem adjuk meg az eredményhez vezető
lépések sorozatát (a procedúrát).

Ha a gépi nyelvet első generációnak tekintjük, az assemblyt másodiknak, akkor


a problémaorientált nyelvek a harmadik generációhoz tartoznak, a nem-procedurális

____________________________________________________________________________________
66
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

nyelvek pedig már a negyedik generációt alkotják. Mindezek után már felsejlik az
ötödik generáció is: a mesterséges intelligencia nyelve.

A mesterséges intelligenciával (Artifical Intelligence) foglalkozó


tudomány olyan programok konstruálásának lehetőségeivel foglalkozik,
amelyek az emberi intelligencia valamelyik elemét igyekszenek
lemásolni: adott bemenő adatokról adott szabályok alkalmazásával
következtetéseket vonnak le, és azokat közlik a felhasználóval.

A nagyon magas szintű programozás elemeivel és a mesterséges intelligenciával


foglalkozó tudomány alapjaival Főiskolánk magasabb évfolyamain ismerkedhet meg az
olvasó.

3.5. AZ INTERNET ALAPVETŐ SZOLGÁLTATÁSAI

Az Internet a szolgáltatások tömegével árasztja el felhasználóit. Ezek a


szolgáltatások (minőség, teljesítmény, fejlettségi szint, felhasználási kényelem, és nem
utolsósorban az ár szempontjából is) rendkívül gyorsan fejlődnek, változnak. A
számítástechnikai alapismeretek szempontjából fontos tudni az alapvető szolgáltatások
meglétéről és azok jellemző tulajdonságairól. A hallgatók személyenként más-más
szoftvergyártó cég programját választják majd és szükségleteik szerint azt a
szolgáltatást ismerik majd meg legalaposabban, amelyik egyéni érdeklődési területükön
a legmegfelelőbb.

Az Internet alapvető szoláltatásai a következők:


• E-mail vagy elektronikus levelezés;
• World Wide Web gyakran csak WWW – a „világhálón” való barangolás;
• Fájl átvitel, vagy FTP – távoli gépek és helyi gépek közötti fájlcserék;
• IRC (Internet Relay Chat) - sok felhasználó egyidejű „társalgása” ;
• Telnet – távoli gépekre való közvetlen bejelentkezés és erőforrásainak
használata.

A felsorolt szoláltatások közül mindössze a levelezésről és a WWW-ről lesz szó


röviden, de elengedhetetlen szólni a „másik oldal” alapvető műveletéről is: a WWW-n
szemlélt dokumentumok túlnyomó többsége az úgynevezett „hipertext” formátumban
van szerkesztve, tehát illik a számítástechnikával valamilyen fokon foglalkozó
egyénnek a .html formátumú dokumentumok szerkesztését is megismerni. Igaz, a már
tanulmányozott MSWord, vagy Excel és az Access is ismeri a .html formátumban
való mentés lehetőségét, de „igazi” .html szerkesztővel is meg kell ismerkednünk.

A korábbiakban az irodai alkalmazások közül az MS Office programcsomag


elemeit ismertettük. Az Internet szolgáltatásaira is léteznek Microsoft szoftverek, de
____________________________________________________________________________________
67
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

egyesek szerint a színvonal és minőség tekintetében azonos szinten, sőt egyes elemeiben
jobb is a Netscape csomag.

Szóljunk tehát néhány szót a két cég programcsomagjainak a következő három


szolgáltatást végző eleméről:

html dokumentumok szerkesztése;


E-mail vagy elektronikus levelezés és
WWW vagy „böngészés” – „barangolás” – „szörfözés”

Az utolsóként sorolt elem a valójában egy keretprogram is, amely elsősorban a


világhálóra való kapcsolódást és barangolást szolgálja, de a felhasználó óhaja szerint
behívja azokat a komponenseket, amelyek egyéb célok megvalósítását szolgálják.

Lássuk a két programcsomag megfelelő elemeit!

3.5. ábra

A Microsoft cég központi Internet szolgáltatásokat végző programja az Internet


Explorer vagy röviden: IE. A két „bedolgozó” program (amelyek egyébként teljesen
önálló programok és meghívhatók az IE-től teljesen függetlenül is) a levelezéssel
kapcsolatos minden akciót elvégző Outlok Express és a .html dokumentumok
szerkesztésére szolgáló FrontPage.

A másik program a Netscape cég gyártmánya amely teljesítményében nem


marad el a Microsoft programcsaládjától a Netscape Communicator. A szemlélt két
szolgáltatás (a levelezés és a .html dokumentumok szerkesztése) „beépített”, tehát
igénybevételük a Communicator kezelőfelületéről lehetséges. A Navigator szolgálja a
világhálón való barangolást, a Messenger a levelezést, a Composer pedig .html
dokumentumok szerkesztését.

____________________________________________________________________________________
68
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

3.5.1. Az E-mail

Levelezni papíron manapság? Semmiképp! No nem ilyen sarkított a kérdés, de


valóban egyre többen választják az elektronikus levelezést. Két okból is:

Az üzenet napok helyett akár másodperceken belül a címzetthez jut!


A második már „érzékenyebb” ok: az e-levelezés jó ismerője távoli gépek
adatbázisait, fájl-archívumokat és egyéb erőforrásait is kihasználhatja!

Az elektronikus levelezés komponensei:


o az elküldendő levelek szerkesztése
o a megszerkesztett levelek küldése
o a beérkező levelek olvasása
o a beérkezett levelek (szükség szerinti) törlése
o automatikus válasz (reply)
o a beérkező levelek „továbbítása” (forward)
o a beérkező levelek archiválása
o a beérkező levelek kinyomtatása.

A Microsoft és a Netscape csomagok levelezőprogramjai rendkívül nagy


hasonlatosságot mutatnak. (Itt jegyezzük meg, hogy a rendkívül dinamikus szoftver
kínálatban sok más cég is tetszetős és kényelmes programokat kínál). Lássuk az ablakot,
amely megjelenik az Microsoft Outlook Express és a Netscape Messenger indításakor:
Mindkettő először is a célszemély e-mail címét kéri. Az e-mail cím szabványos alakja:

egyeni_nev@domain_nev

A mi iskolánk esetében (és máshol is) az egyeni_nev a felhasználó nevének


valamilyen rövidítése ( az angol ábécé 26 betűjének, a pontnak, a kötőjelnek és az
aláhúzó jelnek valamilyen kombinációjával). Következik az elengedhetetlen @ jel,
amelyet sokféleképpen neveznek: „kukac”, „majom”, „masterspace” stb. A jelet követő
domain_nev már az Internet szolgáltatótól függ, illetve eleve adott mert a szolgáltató
bejegyzésekor azt meghatározták úgy, hogy egyértelműen jelzi a világháló valamely
alrendszeréhez való tartozását. Vizsgáljuk meg iskolánk hálózatán a világhálóra
kapcsolódó e-mail címeket.

tomika@vts.su.ac.yu

____________________________________________________________________________________
69
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

Jobbról balra: a yu jelzés az országot jelöli – ez nemzetközileg rögzített betűpár.


Az országok jelölésének táblázata könnyen hozzáférhető az Interneten. A következő
betű pár már országonként változó jelentésű. Az ac jelzés a jugoszláviai akadémiai
hálózatot jelöli. A következő betű pár már Szabadkát jelöli. Az utolsó két betű iskolánk
jele. A címzett e-mail címét az első sorban (mindkét programban a To: után) írjuk be:

3.5.1.1. ábra
A Microsoft Outlook Express levelezőprogramjának ablaka.

3.5.1.2. ábra
A Netscape Messenger levelezőprogramjának ablaka

____________________________________________________________________________________
70
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

A második fontos elem, amely az elektronikus levelezés „bontonjához” tartozik


a Subject mező kitöltése. Ez a mező a levél jellegét vagy jelentését jelzi. A fogadó ezt a
mezőt látja már a levél megnyitása előtt. Alapvető illendőség beírni, hogy ez szülinapi
gratuláció vagy szerződésajánlat. A legnagyobb otrombaság üresen hagyni. (Ha szabad
személyes véleményt is ide írni, akkor elmondom, hogy az üresen hagyott Subject
rubrikájú levelet fel sem nyitom – mondjuk azért mert félek a vírusoktól).

A harmadik elem amelyre felhívjuk a figyelmet az Attach rubrika, ami


mellékletet jelent. Képek, dokumentumok, fájlok, táblázatok, hangfelvételek és egyéb
mellékletet lehet csatolni a levélhez.

És végül marad a tartalom. A munkafelületen egy .html szövegszerkesztővel


dolgozunk. (Igaz, választhatunk hipertext és közönséges textformátum között. Ez utóbbi
ajánlott, ha nem tudjuk, hogy a fogadó fél levelezőprogramja „megbirkózik-e” az
általunk megírt dokumentummal. Ilyenkor válasszuk az egyszerűbb formátumot – azt
minden levelezőprogram elolvassa!) Lehetőség van más .html szövegszerkesztővel
előre elkészített dokumentum beillesztésére is (vigyázat: nem az Attach módon való
csatolásról van szó, hanem a kész dokumentum minden „díszítőelemével” való egyenes
beillesztésére gondolunk).

Érdemes megismerni valamely levelezőprogramot részleteiben! Sok örömünk és


hasznunk is lesz belőle.

A levelezőprogramok egyéb lehetőségeit (pl. körlevelek írását, vagy


levéltovábbítást, a levelek archiválását, törlését, és í. t.) most nem részletezzük. A
felhasználó mindenképpen megismeri majd azokat. (Az Outlook Express vagy a
Netscape Messenger számos lehetőséggel rendelkezik a levelek egyszerű fogadásán
és küldésén túl!) Ez a megismerés nem a számítástechnikai alapismeretek tárgy
követelménye – ez a kor elengedhetetlen imperatívusza.

3.5.2. A „böngésző” programok

Az Internet böngésző programokból is több jó program létezik. A fenti két cég


terméke mellett minősége miatt, de romantikus neve miatt is megemlítem az Opera
nevű programot. A olvasó próbálja ki ez utóbbi szolgáltatásait is!

Az e-mailhoz hasonlóan a WWW-n is elengedhetetlen tartozéka egy-egy


„látogatható helynek” a címe. Ezt a címet honlap címnek, vagy WWW címnek
nevezzük. Szakmai körökben ezt a címet URL címnek nevezzük. Ezt a címet kell
bekopogni az Internet Explorer esetében az Adress ablakban, illetve a Netscape
Communicator esetében a Location ablakba (3.5.2.1. és 3.5.2.2. ábra).

____________________________________________________________________________________
71
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

3.5.2.1. ábra
A Microsoft Internet Explorer böngésző program főablaka
a meghívott About („névjegykártya”) ablakkal

3.5.2.2. ábra
A Netscape Communicator böngésző program főablaka
a meghívott About („névjegykártya”) ablakkal

A böngészők használatát az olvasó csak gyakorlattal sajátíthatja el. A leg


érdekesebb (és leghasznosabb dolog) a „meglátogatott” címeken (azok tartalmán kívül)
az úgynevezett élőkapcsok vagy linkek sokasága. Mindegyik dokumentum legalább egy
vagy két másik dokumentumra (vagy URL címre) hívja fel figyelmünket. Ha az
egérkurzorral áthaladunk ezen a hivatkozáson (amely rendszerint más színnel van
elölve), a kurzor egy mutató újjá változik. Ha „oda klikkelünk” akkor mentesülünk a
WWW cím bekopogásától – a hálón máris az új lokáció felé vágtatunk, és hamarosan
megjelenik a képernyőn annak tartalma.

A WWW cím szerkezete hasonló az e-mail cím szerkezetéhez:

____________________________________________________________________________________
72
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Főiskolánk honlapjának a címe például a következő:

www.vts.su.ac.yu

A böngésző program akaratunkon kívül az alábbi módon „kiegészíti ezt a címet :

http://www.vts.su.ac.yu

Ha valamely lokáció URL címét nem ismerjük, akkor különböző keresési


lehetőségekkel rátalálunk a számunkra érdekes honlapokra. Tematikus keresést is
végezhetünk olymódon, hogy az ilyen keresésre specializálódott web címek kereső
ablakába beírjuk a megfelelő szót, szótöredéket, mondatot, nevet és a keresőprogram a
„találatok” tömegével áraszt el bennünket. Például: elegendő csak ennyit beírni a kereső
ablakba: Szabadka (vagy: Subotica), és mindkét esetben többtíz – esetleg több száz
web cím jelenik meg, amelyekre rákattintva olyan lokációra költözünk, amelyen
valamilyen módon említve van a keresett szó. Nincs szándékomban egyetlen kereső
programot sem reklámozni, az érdeklődők úgyis rábukkannak azokra, úgy szerb nyelven
mint magyar nyelven (az angol nyelvű keresőprogramokat már nem is említem).

3.5.3. WEB lap szerkesztő programok

A WEB lap szerkesztésre az egységes programcsalád áttekintés miatt a


Microsoft FrontPage programját és a Netscape Composer-ét mutatjuk be, de
elmondjuk, hogy szakmai körökben az utóbbi időben a Macromedia Dreamweaver
programot helyezik az első helyre.

A WEB lap szerkesztés emlékeztet a már ismertetett szövegszerkesztésre, habár


jóval összetettebb annál. Ezt az összetettséget a felhasználó ma már nem érzékeli, mert
a programok úgynevezett WYSWYG típusúak (valós kép bemutatása – a háttérkódok
eltüntetése). Tudni kell, hogy a .html formátum valójában egy programozási nyelv, és
mindaddig, amíg nem léteztek a WYSWYG programok, addig a .html dokumentumok
szerkesztőinek ezen a nyelven kellett megírniuk minden web-lapot!

Bemutatjuk, hogyan „fest” egy egyszerű web-lap a böngészőben (vagyis: mit


látunk?), és hogyan festene az a .html kód, amelyet meg kellene szerkesztenünk, ha nem
léteznének a WYSWYG .html szerkesztők. Tűzzük ki feladatul azt, hogy a távoli gép
előtt ülő, a világhálón szörföző egyénnek mindössze egyetlen szót kellene látnia kék, 36
pont nagyságú, félkövér dőlt Arial betűkkel, sárga alapon: Szervusz!

Két ábrázolásmód a Microsoft FrontPage eszközeivel a 3.5.3.1. ábrán (Normal


View) és a 3.3.3.2. ábrán (HTML view) látható:
____________________________________________________________________________________
73
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

3.5.3.1. ábra

<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>New Page 1</title>
</head>

<body>

<p style="background-color: #FFFF00; color: #0099CC"


align="center"><font face="Arial"
size="7"><i><b><u>Szervusz!</u></b></i></font></p>

</body>

</html>

3.5.3.2. ábra

A 3.5.2.1. ábra egyúttal bemutatja a FrontPage munkakörnyezetét. Felesleges


felhívni a figyelmet a Microsoft eszköztárának jelenlétére és a szerkesztés folyamán
alkalmazott eljárásoknak pl. az MSWord-ben már megismert lehetőségeire.

Most lássuk ugyanezen feladat megoldását a Netscape Composer eszközeivel!


A látható effektusokat a 3.5.3.3. ábra mutatja, a HTML-kód pedig a 3.5.3.4. ábrán
látható.

3.5.3.3. ábra

____________________________________________________________________________________
74
Szoftver alapok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">


<html>
<head>
<meta name="Author" content="X.Y.">
<meta name="GENERATOR" content="Mozilla/4.75 [en] (Win95; U)
[Netscape]">
<title>Untitled</title>
</head>
<body text="#33CCFF" bgcolor="#FFFF00" link="#0000FF"
vlink="#008000" alink="#00FFFF">

<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote><b><i><u><font face="Arial,Helvetica"><font
color="#33CCFF"><font
size=+4>Szervusz!</font></font></font></u></i></b></blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>

</body>
</html>

3.5.3.4. ábra

Feladatok:
1. Szerkessze meg a saját honlapját! Alkalmazza a rendelkezésére álló HTML
szerkesztő programot.
2. Szerkessze meg az XYZ vállalat bemutatkozását szolgáló web-lapot. Legyen
a lapon fénykép és alkalmazzon hanghatásokat is!

Ellenőrző kérdések:
1. Mit nevezünk szoftvernek?
2. Milyen programtípusokkal találkozunk a személyi számítógépeken?
3. Osztályozza az alkalmazói szoftvereket!
4. Mi az operációs rendszer alapfeladata?
5. Melyek a DOS operációs rendszer jellemzői?
6. Mit értünk a DOS operációs rendszerben a fájl fogalma alatt?
7. Mit nevezünk katalógusnak a DOS operációs rendszerben?
8. Mit értünk a kötet (volume) fogalma alatt?
9. Melyek a legfontosabb lemezműveletek?
10. Melyek a legfontosabb könyvtárműveletek?
11. Melyek a legfontosabb fájlműveletek?

____________________________________________________________________________________
75
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Szoftver alapok

12. Mi a különbség a DOS és a WINDOWS operációs rendszer között?


13. Ismertesse a WINDOWS képernyő jellemző elemeit!
14. Hogyan végezzük a WINDOWS lemezműveleteket ?
15. Hogyan végezzük a WINDOWS könyvtárműveleteket?
16. Hogyan végezzük a WINDOWS fájlműveleteket?
17. Miben különbözik valamely ikonra való jobb- illetve balgombos kattintás?
18. Melyek a WINDOWS legfontosabb kiegészítő programjai?
19. Melyek az irodai alkalmazói szoftverek számunkra legfontosabb fajtái?
20. Mik a jellemző közös vonásai az MS Office irodai programcsomag elemeinek?
21. Mire szolgál és mely alapfunkciókkal rendelkezik a szövegszerkesztő?
22. Mely segédprogramok szolgálják a WINWORD hatékonyabb működését?
23. Mire szolgál és mely alapfunkciókkal rendelkezik a táblázatkezelő?
24. Mely programozási elemeket hordozza az EXCEL?
25. Mi a hasonlóság az EXCEL cellája és az MSWORD munkafelülete között?
26. Mire szolgál és mely funkciókkal rendelkezik az adatbáziskezelő?
27. Mely objektumok alkotják az MSACCESS adatbázisát?
28. Milyen segédeszköz áll rendelkezésünkre az MSACCESS használatakor?
29. Mire szolgál és mely funkciókkal rendelkezik egy matematikai programcsomag?
30. Mely alapvető jellegzetességekkel rendelkezik a MATLAB?
31. Soroljon fel néhány MATLAB-eszköztárat!
32. Csoportosítsa a MATLAB műveleti jeleit és speciális karaktereit!
33. Mi a neve a MATLAB beépített szövegszerkesztőjének?
34. Mi a funkciója a MATLAB .m fájljainak?
35. Mi a funkciója a MATLAB .mat fájljainak?
36. Mire szolgálnak a programfejlesztői rendszerek?
37. Melyek a gépi nyelv jellemző tulajdonságai?
38. Mi az assembly és mi az assembler?
39. Mely magaszintű programozási nyelveket véli fontosnak?
40. Melyek a jellemző tulajdonságai a magas szintű programozási nyelveknek?
41. Mi a fordítóprogram (compiler) funkciója?
42. Mi a kapcsolóprogram (linker) funkciója?
43. Sorolja fel a programozási nyelvek generációit!
44. Mi a nagyon magas szintű programozás alapvető tulajdonsága?
45. Mit nevezünk a mesterséges intelligenciának?
46. Melyek a legfontosabb Internet szolgáltatások?
47. Melyek az elektronikus levelezés fő komponensei?
48. Melyek az Internet-szörfözés legismertebb szolgáltató programjai és azok
jellemző tulajdonságai?
49. Melyek az e-mail és a web-címek szerkezetének főbb jellemzői?
50. Jellemezze a web-lap szerkesztő programokat!

____________________________________________________________________________________
76
4. MATEMATIKAI ÉS LOGIKAI ALAPOK

4.1. SZÁMRENDSZEREK

4.1.1. A NEM-HELYIÉRTÉKŰ SZÁMRENDSZEREK

Az emberi civilizáció fejlődése során a számok írása és a számokkal végzett


műveletek is jelentős változásokon mentek keresztül. Nem célunk jelen könyv keretei
között ezt a fejlődést leírni, ám a ma használatos számírás alapjainak megértése miatt
feltétlen szükséges a korábbi számírások néhány alapvető tulajdonságának ismertetése.

A nem-helyiértékű számírás minden "jelentős" szám lejegyzésére egy külön jelet


alkalmazott. A jelek mindegyikének egyetlen jelentése a hozzárendelt szám volt. A
számot jelölő szimbólum az egyéb jelek sorában csakis "önmagát", vagyis a
hozzárendelt számot jelentette – függetlenül az egyéb jelek között elfoglalt helyétől. A
külön jellel nem rendelkező egyéb számok lejegyzése az alábbi elvek szerint történt:

• az ismétlés (repetívitás) elve, és az


• összeadás (additívitás) elve

A nem-helyiértékű számrendszerek jellemzésére bemutatunk egy modellt, amely


a szemlélt számírás minden ismérvével rendelkezik. (Ezek az ismérvek jellemzők
például az óegyiptomi, a kínai vagy a római számírás korai változatára):

Legyen a modell jelkészlete a következő:

* & ' E F
1 10 100 1000 10000
4.1.1.1. ábra

Ezzel a jelkészlettel (tisztelve a nem-helyiértékű számírás alapelveit) íme


néhány szám lejegyzése a számunkra használatos számírással és a fenti ábra jeleivel:

____________________________________________________________________________________
77
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

3467 = E E E ' ' ' ' & & & & & & * * * * * * *
1999 =E ' ' ' ' ' ' ' ' ' & & & & & & & & & * * * * * * * **
2001 = E E *
33333 = FFFE E E ' ' ' & & & * * *

4.1.1.2. ábra

A lejegyzéshez tehát annyiszor kell ismételni a leírandó számba "beleférő"


lehetséges legnagyobb egységet jelentő szimbólumot ahányszor lehet, majd áttérni a
kisebb jel alkalmazására. A jel ismételt leírása jelenti a repetívitás elvét. Leolvasáskor a
leírt jelek jelentését összeadjuk – ez az additívitás elve.

Azonnal felismerhető a lejegyzés hosszadalmassága és a műveletek végzésére


való alkalmatlansága. Használatuk azonban igen elterjedt volt, sőt ma is gyakran
alkalmazzuk a római számírást (igaz inkább dekoratív célokra). Hangsúlyozni kell,
hogy a ma alkalmazott római számírás már rendelkezik némi tulajdonságokkal, amelyek
a helyi értékes rendszerekre jellemző.

Az esetleges konvertáló programok könnyebb megszerkesztése céljából leírjuk a


ma is használatos római számírás alapszabályait (megjegyzés: ez az írásmód már
jelentősen különbözik a korai, alapvetően nem-helyiértékű számírástól)..

Nevezzük alapjeleknek a római számírás következő jelkészletét:

I X C M
1 10 100 1000
4.1.1.3. ábra

A jelkészlet további elemeit segédjeleknek nevezzük:

V L D
5 50 500
4.1.1.4. ábra

A számírás szabályai (a repetívitás és az additívitáson kívül) a következők.


• csak az alapjelek ismételhetők addíciós célokra – legfeljebb háromszor,
• segédjel kizárólag nagyobb alapjel után állhat kizárólag egyszer,
• alapjel csak nálánál nagyobb alapjel és segédjel után állhat,
• KIVÉTEL: alapjel kizárólag egyszer állhat nálánál közvetlenül nagyobb
alapjel illetve segédjel előtt – de ekkor értékét KIVONJUK.
____________________________________________________________________________________
78
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Az alábbi táblázat néhány szám római számírását mutatja. Bemutatunk a gyakori


téves felírások közül is valamennyit.

1956 = MCMLVI
2001 = MMI
999 = CMXCIX és nem: IC
990 = CMXC és nem: XM
49 = XLIX és nem: IL
1234 = MCCXXXIV

4.1.1.5. ábra
A továbbiakban áttérünk a korszerű, helyi értékes számírások tárgyalására
elsősorban a számítástechnikai felhasználás szempontjait tartva szem előtt.

4.1.2. A HELYI ÉRTÉKŰ SZÁMRENDSZEREK

4.1.2.1. A TÍZES ALAPSZÁMÚ (DECIMÁLIS) SZÁMRENDSZER

A nem-helyiértékű számírásnál is jelentkezett már hallgatólagosan egy elv, amelyet


most külön kiemelünk: ez a csoportosítás elve. Ezen elv szerint a számírásnak és a
számolásnak általánosan van egy kiválasztott alapszáma, és mihelyt megjelenik annyi
kisebb egység amennyi az alapszám, az azonnal egy magasabb fokú egységbe foglaljuk
(csoportosítjuk). Számunkra ez az alapszám a tíz. Már kisiskolás korunkban tanuljuk
azt, hogy tíz pálcikát összekötünk egy kévébe és azt elnevezzük egy tízesnek. Ha tovább
folytatjuk a számlálást és már adódik tíz tízesünk, akkor azt egy nagyobb kévébe kötjük
és azt elnevezzük százasnak. Természetes, hogy tíz százasból már egy nagyobb,
mondjuk óriáskévét köthetünk, amelynek a neve ezres. A végén számba vesszük, hogy
hány kévénk van egy-egy fajta kötésből.

Például: 7 pálcikát semmiképpen nem tudtunk csoportosítani – azt mondjuk van


7 egyesünk. Van 3 "egyszeri kötéssel" rendelkező kévénk is, amelyekből nem lehetett
kialakítani százas kötéseket – tehát van 3 tízesünk. Százasokat is ezresekké
csoportosítottuk, de 4 százas "árván maradt" vagyis van 4 százasunk. Az egész
műveletben mondjuk 2 ezrest is kialakítottunk, de ezzel kimerítettük készletünket.
Ezután megállapítjuk állományunkat:

____________________________________________________________________________________
79
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

2 ezres + 4 százas + 3 tízes + 7 egyes


2‚103 + 4‚102 + 3‚101 + 2‚100
az utóbbi felírásban megállapodás (konvenció) alapján
elhagyjuk az alapszám hatványainak és a művelet
jeleinek kiírását és csak ezt jegyezzük le:
2431

Az utóbbi felírásmód elemzése a következő megállapításokhoz vezet bennünket:


A kiválasztott alapszámnál (tíz) kisebb számok mindegyikének külön jele van. Ez a
jelkészlet a következő:
C = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

A számok írásakor kizárólag ezeket jeleket alkalmazzuk, ám felfigyelünk arra,


hogy ezek a jelek nem csak önmagukat jelentik! Például a szemlélt 2431 számban a 2
jel – nevezzük ezeket a jeleket most már számjegyeknek – nem 2 egyest jelent hanem a
szám lejegyzésében elfoglalt pozíciója alapján az alapszám (a tíz) harmadik
hatványának a kétszeresét, és így tovább.

A 23571 számnak az általunk alkalmazott tízes számrendszerben tehát a


következő a jelentése:
23571 = 2‚104 + 3‚103 + 5‚102 + 7‚101 + 1‚100.

Nyilvánvaló, hogy a törtszámok írására "folytatjuk" ezt az elvet az egész résztől


jobbra is. Mit jelent tehát a 1254,239 szám a tízes számrendszerben?

1254,239 = 1‚103 + 2‚102 + 5‚101 + 4‚100 + 2‚10-1 + 3‚10-2 + 9‚10-3

4.1.2.2. A NEM-TÍZES ALAPSZÁMÚ SZÁMRENDSZEREK

Most gondolkodjunk el azon, hogy mi lenne, ha megváltoztatnánk a "játékszabályt" és a


csoportosítást (a pálcikák kévébe kötését) nem tízesével, hanem mondjuk nyolcasával
végeznénk. Nyilvánvaló, hogy nem tíz, hanem csak nyolc számjegyre volna
szükségünk, mert a "nyolc" számot már így írnánk 10, ugyanis van egy kévénk amiben
nyolc pálcika van és nincs egység amelyet nem kötöttünk össze.

A nyolcas alapszámú számrendszer számjegykészlete tehát:

C(8) = {0, 1, 2, 3, 4, 5, 6, 7}

____________________________________________________________________________________
80
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Adott valamely szám felírása a nyolcas alapszámú számrendszerben. Nem


tudjuk becsülni értékét, mert nem vagyunk járatosak a nyolcas számrendszerben.
Minden értékbecslésünk, gondolatunk (szokásból) a tízes számrendszerhez kötődik.
Végezzük el a 7265.23(8) szám felírásának konverzióját a tízes alapú számrendszerbe.
Ehhez csak a helyi értékes számrendszerek alap tulajdonságát kell alkalmaznunk és
elvégezni a kijelölt műveleteket?

7265.23(8) = 7‚83 + 2‚82 + 6‚81 + 5‚80 + 2‚8-1 + 3‚8-2 =


= 7‚512 + 2‚64 + 6‚8 + 5 + 2‚0,125 + 3‚0,015625 =
= 3584 + 128 + 48 + 5 + 0,25 + 0.046875 = 3765,296875(tíz)

Nem sok bizonygatás szükséges arra, hogy az olvasó meggyőződjön arról, hogy
a tízes számrendszernek semmilyen kiváltsága nincs! Bármelyik szám választható
alapszámként, és kizárólag a felhasználók megszokása tenné ezt a rendszert más
rendszerekkel szemben rokonszenvesebbé, vagy alkalmasabbá. Sőt, a civilizáció
fejlődése folyamán az emberek alkalmaztak más alapszámú számrendszereket is. Az
egyik ilyen korábban használatos számrendszernek még ma is vannak felismerhető
nyomai: ez a "tizenkettes" számrendszer. Nyilvánvaló, hogy nem alkalmazható az
alapszámra a "tizenkettő" elnevezés, mert az a tízes számrendszer alkotó eleme. Ezért
ennek a számrendszernek az alapszámát külön névvel kell illetni! Ez a név a "tucat".
Ismerős, úgy-e? De akkor tucat számú számjegy is kell, azokat meg is kellene nevezni!

Az egyszerűség céljából fogadjuk el az alábbi jelkészletet:

C(T) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B}

ahol az A számjegy a tucatnál 2-vel kisebb, a B pedig a tucatnál 1-gyel kisebb számot
jelöli. A tízes számrendszerben ez a tíz illetve a tizenegy szám. Nyilvánvaló, hogy a
tucat írása a tucat rendszerben 10. Végezzük el a tucat alapszámú számrendszerben
felírt 34A,0B(T) szám konverzióját a decimális számrendszerbe. Mivel a tízes
számrendszer felé haladunk, ezért a tucat most már tizenkettőnek mondandó és 12-nek
írandó, az A tíz, a B pedig tizenegy.

34A,0B(T) =3‚122 + 4‚121 + 10‚120 + 0‚12-1 + 11‚12-2 =


=3‚144 + 4‚12 + 10 + 0 + 11‚0,00694444... =
= 432 + 48 + 10 + 0,07638888... = 490,0763888..

. Megállapodunk a következő jelölésmódban:


Ha valamely számot a decimális számrendszerben írtunk fel,
akkor a szám után NEM TÜNTETJÜK FEL az alapszámot
____________________________________________________________________________________
81
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

A tízes számrendszeren kívül általában a tíznél kisebb alapszámú számrend-


szerekkel foglalkozunk majd. Tíznél nagyobb alapszámú rendszer a már ismert tucat
alapszámú, ezt a szám lejegyzése utáni indexben a (T) jel mutatja, de fontos
alkalmazása lesz még a hexadecimális rendszernek is, amelyet majd a (H) jellel látjuk
el. Ez az utóbbi a "tizenhat" alapszámú számrendszer. A hexadecimális számrendszer
számjegykészlete a következő:

C(H) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}

– nyilvánvalók a következő jelölések:

A = "tíz", B = "tizenegy", C = "tizenkettő",


D = "tizenhárom", E = "tizennégy", F = "tizenöt",

Legyen adott NÉGY szám X, Y, Z és W. Állítsuk növekvő sorrendbe ezeket a


számokat!

X = 12345 Y = 12345(7) Z = 12345(T) W = 12345(H)

Mivel X eleve a decimális rendszerben van felírva – nincs vele tennivalónk. A


többi számot konvertáljuk a decimális számrendszerbe:

Y = 12345(7) = 1‚74 + 2‚73 + 3‚72 + 4‚71 + 5‚70 = 3267


Z = 12345(T) = 1‚124 + 2‚123 + 3‚122 + 4‚121 + 5‚120 = 24677
Y = 12345(H) = 1‚164 + 2‚163 + 3‚162 + 4‚161 + 5‚160 =74565

Most már összehasonlíthatók a számok: Y < X < Z < W.

A bemutatott példák a más nem-tízes alapszámú számrendszerben felírt


számoknak a tízes számrendszerbe való átalakítását mutatták be.

Most térjünk át a megfordított feladatra: a szám decimális felírását konvertáljuk


valamely más alapszámú számrendszerbe.

A decimális számrendszer ismertetéséről szóló fejezetben (4.1.2.1.) a 2431


számon ismertettük a pozíciós számrendszerek jellegzetességeit. Konvertáljuk most ezt
a számot az ötös számrendszerbe. A számjegykészletünk tehát:

C(5) = {0, 1, 2, 3, 4}

____________________________________________________________________________________
82
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Feltűnik, hogy az öttel való osztáskor a maradékok ugyanezek a számjegyek


lehetnek. Különösebb magyarázás nélkül (a pálcikák kévébe kötésének szabályának
alkalmazásával) megérthető a következő eljárás:

1. Elosztjuk a 2431 számot 5-tel, a maradék az egyesek számát jelöli,


2. Elosztjuk az előző pontban nyert hányadost 5-tel, a maradék az ötösök (51) száma,
3. Elosztjuk az előző pontban nyert hányadost 5-tel, a maradék az huszonötösök (52)
számát jelenti,
4. Elosztjuk az előző pontban nyert hányadost 5-tel, a maradék az százhuszonötösök
(53) számát jelenti, és így tovább...
5. Az eljárás befejeződik, ha az előző pontban nyert hányados 0.

Lássuk ezt az eljárást a gyakorlatban is!

Ezeket a műveleteket végezzük Röviden így írjuk

2431 = 5 ‚ 486 + 1 2431 1


486 = 5 ‚ 97 + 1 486 1
97 = 5 ‚19 + 2 97 2
19 = 5 ‚ 3 + 4 19 4
3= 5‚ 0+3 3 3
0
Állításunk tehát a következő:
2431 = 34211(5)

Valóban: 34211(5) = 3 ‚ 54 + 4 ‚ 53 + 2 ‚ 52 + 1 ‚ 51 + 1 ‚ 50 =
= 3 ‚ 625 + 4 ‚ 125 + 2 ‚ 25 + 1 ‚ 5 + 1 = 2431.

Konvertáljuk most a 2431 decimális számot hexadecimális alakra! Most arra


kell figyelnünk, hogy a maradékok "tizenhat"-nál kisebb számok, amelyeket egyetlen
számjeggyel kell jelölnünk!

Ezeket a műveleteket végezzük Röviden így írjuk

2431 = 16 ‚ 151 + 15 2431 F


151 = 16 ‚ 9 + 7 151 7
9 = 16 ‚ 0 + 9 9 9
0

____________________________________________________________________________________
83
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

A számításaink szerint tehát:

2431 = 97F(H)

Ellenőrzés: 97F(H) = 9 ‚162 + 7 ‚161 + 15‚160 =


= 9 ‚256 + 7 ‚16 + 15 = 2431.

Ezek után megismerjük a törtszámok konverzióját is. Mivel a decimális számot


felbonthatjuk az egész és a tört részére, ezért csak az 1-nél kisebb számokkal
foglalkozunk (mert az egész rész konverzióját már megismertük).

Szemléljük a 0,2431 decimális számot. "Véletlenül" újra az ötös számrend-


szerbe kell átalakítanunk a számot! Nyilvánvaló: bármely 1-nél kisebb szám öttel való
szorzata kisebb 5-nél (a szorzat egész része tehát pontosan az ötalapú számrendszer
számjegye!) A műveletsor a következő:

1. A törtrészt megszorozzuk 5-tel, a szorzat egész részét leválasztjuk: ez a -1 pozíció


számjegye,
2. Az előző lépésben nyert törtrészt megszorozzuk 5-tel, a szorzat egész részét
leválasztjuk: az a -2 pozíció számjegye, és így tovább...
Az eljárás befejeződött, ha:
a) az egész rész leválasztása után a fennmaradó törtrész 0,
b) az egész rész leválasztása után fennmaradó törtrész már korábban jelentkezett. Ezt
az eset azt jelenti, hogy a következő számjegyek már ismétlődnek

Bemutatjuk ezt az eljárást is gyakorlatban:

Ezeket a műveleteket végezzük Röviden így írjuk

0,2431 ‚ 5 = 1,2155 0,2431 1


0,2155 ‚ 5 = 1,0775 0,2155 1
0,0775 ‚ 5 = 0,3875 0,0775 0
0,3875 ‚ 5 = 1,9375 0,3875 1
0,9375 ‚ 5 = 4,6875 0,9375 4
0,6875 ‚ 5 = 3,4375 0,6875 3
0,4375 ‚ 5 = 2,1875 0,4375 2
0,1875 ‚ 5 = 0,9375 0,1875 0
0,9375 ‚ 5 = 4,6875 0,9375 4
............ 0,6875 3
.... ...

A konverzió eredménye tehát:

0,2431 = 0,1101(4320)(5)

____________________________________________________________________________________
84
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

A zárójelben lévő számjegycsoport ismétlődik. Az ellenőrzést az olvasó végezze


el az ellenkező irányú átalakítással!

Most bemutatunk egy teljes példát. Végezzük el a 56404,126 decimális szám


konverzióját hexadecimális felírásra.

Egész rész Tört rész


56404 4 0,126 2
3525 5 0,016 0
220 C 0,256 4
13 D 0,096 1
0 0,536 8
0,576 9
.... ....

Az átalakítást nem fejeztük be mert sem a konverzió végességét, sem a számje-


gyek periodikus ismétlődését nem fedeztük fel (BIZONYOS, HOGY CSAKIS A KÉT
LEHETŐSÉG EGYIKE ÁLL FENN, CSAK MI VOLTUNK TÜRELMETLENEK ÉS
MEGSZAKÍTOTTUK A MUNKÁT.) Ily módon csak közelítő átalakítást végeztünk,
de a számjegyek számát tekintve ez a pontosság igen nagy (a hiányzó rész értéke nem
haladja meg 16-6≈ 0,000000059 számot. Tehát:

56404,126 ≈ DC54,204189...(H) .

Most is az olvasóra bízzuk számításaink pontosságának ellenőrzését.

4.1.2.3. A 2n (N=1,2,3,4) ALAPSZÁMÚ SZÁMRENDSZEREK

A 2n (N=1,2,3,4) alapszámú számrendszerek különösen nagy fontossággal


rendelkeznek a számítógépek felhasználása terén. Ezek a számrendszerek a következők:

n=1 esetén 2n = 2, ez a bináris számrendszer, számjegykészlete C(2) = {0, 1}


n=2 esetén 2n = 4, ez a kvartális számrendszer, számjegykészlete C(4) = {0, 1, 2, 3}
n=3 esetén 2n = 8, ez az oktális számrendszer, számjegykészlete C(8) és
n=4 esetén 2n = 16, ez a hexadecimális számrendszer, számjegykészlete C(H).

Az oktális és a hexadecimális számrendszer számjegykészletét már ismertettük a


4.1.2.2. fejezetben.

____________________________________________________________________________________
85
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

Most bemutatjuk, hogy ezen számrendszerek


0 0 0 0 0 egymás közötti konverziója sokkal egyszerűbben
1 0 0 0 1
történik mint más számrendszerek között. A
2 0 0 1 0
decimális számrendszer kényszerű közvetítőként
3 0 0 1 1
4 0 1 0 0 jelen van, ha például a hetesalapú számrendszerbeli
5 0 1 0 1 felírást a hatosalapú számrendszerbe óhajtjuk
6 0 1 1 0 konvertálni, akkor a hetesből előbb a decimális
7 0 1 1 1 számrendszerbe térünk át majd a decimális számot
8 1 0 0 0 átalakítjuk hatos számrendszerbeli számmá. A 2, 4, 8
9 1 0 0 1
és a 16 alapszámú számrendszerek közötti
A 1 0 1 0
B 1 0 1 1 közlekedésre is alkalmazható a már leírt eljárás, de
C 1 1 0 0 létezik egy jóval kényelmesebb módszer is, amely a
D 1 1 0 1 bináris számrendszert használja közvetítőként.
E 1 1 1 0 Vegyük észre a következő tényeket: A kvartális
F 1 1 1 1 számrendszer számjegyeinek leírására legfeljebb két
4.1.2.3. ábra bináris számjegy szükséges, az oktális számrendszer
számjegyeit legfeljebb három bináris jeggyel tudjuk
kifejezni, a hexadecimális számjegyek leírására legfeljebb négy bináris számjegyet kell
alkalmazni.

A mellékelt táblázatból például a következő tények olvashatók le:

Helyettesítsük az alábbi táblázat első sorában lévő kvartális számjegyeket a két-


két bináris számjeggyel – ahogyan azokat kiolvashatjuk a 4.1.2.3. ábra kékkel keretezett
jobb felső sarkából:

1 3 2 0 3 1 1 2
01 11 10 00 11 01 01 10

Az olvasónak nem kell túlságosan nagy erőfeszítést kifejtenie ahhoz, hogy belássa :
13203112(4) = 01 11 10 00 11 01 01 10(2)

Természetesen, az eljárás visszafelé is működik: két-két bináris számjegy helyet-


tesíthető egy kvartális számjeggyel – és a konverziót elvégeztük Például:
101011011011111(2) =101011011011111(2) = 11123133(4)

A CSOPORTOSÍTÁST AZ EGYESEKTŐL KEZDJÜK ÉS A MAGASABB HELYI


ÉRTÉKEK FELÉ HALADVA PÁROSÍTJUK A SZÁMJEGYEKET! HA LÉTEZIK A
SZÁMNAK TÖRT RÉSZE, AKKOR A TÖRTRÉSZT ELVÁLASZTÓ PONTTÓL
(VAGY VESSZŐTŐL) CSOPORTOSÍTUNK BALRA ILLETVE JOBBRA!

____________________________________________________________________________________
86
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Az oktális számrendszer esetében a számjegyek három-három bináris jeggyel


helyettesítendők (4.1.2.3. ábra, piros keretezés) – fordított esetben pedig három-három
bináris jegy helyettesítendő egy oktális számjeggyel. Például:
76543210(8) = 111 110 101 100 011 010 001 000(2)

Fordított esetre válasszunk egy bináris számot amelynek van tört része is:

110101100,10101101(2) = 110101100,10101101(2) = 654,532(8)

Nyilvánvaló, hogy a felesleges 0 jegyeket a számok felírásának elején vagy


végén elhagyjuk, illetve szükség esetén pótoljuk a számjegycsoportot .

Hátra van még egy illusztráció a hexadecimális számokkal kapcsolatosan. Most


egy-egy hexadecimális számjegyet a táblázatból kiolvasható bináris számnégyessel
helyettesítjük – illetve négy bináris jegyet helyettesítünk egy hexadecimális jeggyel:

AB012,C1(H) = 1010 1011 0000 0001 0010,1100 0001(2)

Binárisból hexadecimálisba:
1111110101,11011(2) = 1111110101,11011(2) = 3F5,D8(H)

Az utolsó példa ebben a fejezetben két átalakítást igénylő feladat: Konvertáljuk az


oktálisan felírt 7453,657(8) számot hexadecimális alakra! Nyilvánvaló, hogy
közvetítőként a bináris számrendszert alkalmazzuk :

7453,657(8) = 111 100 101 011,110 101 111(2) =


= 111100101011,110101111(2) =
= F2B,D78(H).
Feladatok:
Végezzük el a következő kijelölt konverziókat:
a) X(7) = 6201,32(7) → X(10)
b) X(7) = 6201,32(7) → X(9)
c) Y(T) = A4B,101(T) → Y(8)
d) W(H) = 1CC,DD(H) → W(8) → W(4)
e) Z(8) = 6271,555(8) → Z(4) → Z(H)
f) Q (T) = 1111,AB(T) → Q(H)

Ha az átalakítás nem fejeződik be néhány lépésen belül, akkor kísérelje meg


felfedezni az ismétlődő számjegycsoportot – de az eljárást legfeljebb 10 lépés után
fejezze be!

____________________________________________________________________________________
87
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

4.1.2.4. MŰVELETEK A SZÁMRENDSZEREKBEN

Már megállapítottuk, hogy a számrendszerek között semmilyen elvi különbség nincs.


Mindössze a "játékszabály" más: más alapszám szerint végezzük a csoportosítást.
Próbáljunk meg számlálni (sorakoztatni a természetes számokat 1-től) például a 6-os
számrendszerben (a hatos számrendszerben felírt számok alá odaírtuk a decimális
megfelelőket is):

A hatos számrendszerben:
1,2,3,4,5,10,11,12,13,14,15,20,21,22, ... ,42,43,44,45,50,51,52,53,54,55,100,...
A decimális számrendszerben:
1,2,3,4,5, 6, 7, 8, 9,10,11,12,13,14, ... ,26,27,28,29,30,31,32,33,34,35, 36,...
Miért is lesz 12(6) = 8, vagy 26 = 42(6), vagy miért is igaz, hogy 36 = 100(6) ?

Ha az olvasó megérti a fenti számsorozatok logikáját, akkor megérti a követ-


kező néhány "összeadótáblát" vagy "szorzótáblát" is! (Gyakorlati meggondolásból
kihagytuk a 0 számjeggyel való szorzatok oszlopát illetve sorát)

+(3) 0 1 2
+(2) 0 1
0 0 1 2
0 0 1
1 1 2 10
1 1 10
2 2 10 11
A bináris összeadó tábla A ternáris összeadó tábla

+(5) 0 1 2 3 4 ×(6) 1 2 3 4 5
0 0 1 2 3 4 1 1 2 3 4 5
1 1 2 3 4 10 2 2 4 10 12 14
2 2 3 4 10 11 3 3 10 13 20 23
3 3 4 10 11 12 4 4 12 20 24 32
4 4 10 11 12 13 5 5 14 23 32 41

Az ötalapú összeadó tábla A hatosalapú szorzótábla

Felhívjuk az olvasó figyelmét az általános iskola 3. osztályában elsajátított


műveleti eljárásokra. Az írásbeli összeadást az úgynevezett helyi értékek táblázatában
tanulta meg a következő sémák alapján ( a részletes magyarázatokat kihagyjuk, az ábrák
önmagukért beszélnek):

____________________________________________________________________________________
88
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

SZ T E SZ T E
2 7 8 5 12 11
+ 3 5 3 6 3 2 1
1 1 – 3 5 3
6 13 11 5-3 12-5 11-3
6 3 1 2 7 8

A decimális összeadás táblázata A decimális kivonás táblázata

Az alábbi példákban minden felesleges magyarázat nélkül bemutatunk néhány


összeadást és kivonást különböző alapszámú számrendszerekben. Felhívjuk az olvasó
figyelmét arra, hogy a műveletek "technikája" teljesen azonos a decimális
számrendszerben az általunk megszokott és naponta alkalmazott technikával.

N=3 N=6 N=9


21202 543032 868777616
+11120 +541013 +151272333
110022 1524045 1131161050

N = "tucat" hexadecimális N=2


45A0B5 ABCD102 101110101110101
+ 32B0A + F2345 1101001110101
491003 ACBF447 + 111101110111
1000011101100001

N=3 N=5 N=2


211222212 32343244 1000100010001000
– 22222222 – 4434332 – 10010010010010
111222220 22403412 110001111110110

Két nyomós okunk van arra hogy a kivonásra valamilyen más eljárást találjunk: az
egyik a nehézkesség (az összeadással még valahogy elbánunk, de a kivonással már
sokkal nehezebben boldogulunk), a másik ok (nagyon leegyszerűsítve) az, hogy a
számítógép "csak összeadni tud" (?!). Erre a látszólagos lehetetlenségre a későbbiek
folyamán (más tantárgy tanulmányozásakor) kap az olvasó kielégítő magyarázatot.
Próbáljuk meg hát mi is a kivonást valamilyen módon összeadással "helyettesíteni"!

Vezessük be a negatív számok ábrázolására a szám komplementumát.


A decimális számrendszerben a szám kilences komplementumának nevezzük azt a
számot, amelynek a számjegyei az adott szám számjegyeit 9-re egészítik ki. A szám
tízes komplementumának számjegyei az adott szám számjegyeit 10-re egészítik ki.

____________________________________________________________________________________
89
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

Példák:

A decimális 45689 235,123 0,0365 000236,1200


szám
A szám 9-es
komplementuma
54310 764,876 9,9634 999763,8799
A szám 10-es
komplementuma
54311 764,877 9,9635 999763,8800

Két észrevételünk van:

a) A 10-es komplementum olymódon is meghatározható, hogy 1-gyel


növeljük 9-es komplementum legalacsonyabb helyi értékű számjegyét. Ha
egész számról van szó, akkor a legalacsonyabb helyi értékű pozíció az
egyesek helye, ha a számnak van tört része is akkor az utolsó tizedes jegyet
növeljük 1-gyel.

b) A szám tetszőlegesen megtoldható zérusokkal jobbról és balról is.


Nyilvánvaló, hogy komplementáláskor ezeket a "pótszámjegyeket" is
figyelembe kell venni. Ennek a ténynek külön jelentősége lesz a későbbiek
folyamán.

Természetesen átvezethető a komplementum fogalma más helyi értékű


számrendszerekbe is. Ha a számrendszer alapszáma N, akkor az első komplementum a
számjegyeket N-1-re egészíti ki, a második pedig N-re. Lássunk két példát:

Az 5-ös alapszámú 43214 234,123 0,03112 000233,1200


szám
A szám 4-es
komplementuma
01230 210,321 4,41332 444211,3244
A szám 5-es
komplementuma
01231 210,322 4,41333 444211,3300

A hexadecimális ABC034 34,123 0,03112 00023F,1200


szám
A szám 15-ös
komplementuma
543FCB CB,EDC F,FCEED FFFDC0,EDFF
A szám 16-os
komplementuma
543FCC CB,EDD F,FCEEE FFFDC0,EE00

Most megmutatjuk a komplementum szerepét a számok kivonásának összeadással való


helyettesítésében. Az bemutató példát újra a tízes számrendszerből választottuk. Először
figyeljük meg azt az esetet amikor a különbség pozitív lesz:

____________________________________________________________________________________
90
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

A kivonást a szokásos A kivonást 9-es A kivonást 10-es


módon végezzük el komplementum komplementum
hozzáadásával végezzük hozzáadásával végezzük
5879,123 5879,123 5879,123
– 0345,110 + 9654,889 + 9654,890
5534,013 pozitív 15534,012 pozitív 15534,013
szám +1 szám .
5534,013 elhanyagoljuk .

Az eljárás leírása:

a) előállítjuk a kivonandó komplementumát. FONTOS: A kisebbítendőnek és a


kivonandó komplementumának azonos számú számjeggyel kell rendelkeznie! Szükség
esetén a megfelelő számjegypótlásokat el kell végezni és akkor végezni a
komplementálást.
b) Ha az összegben a TÚLCSORDULÁS jelentkezik. akkor POZITÍV számot
nyertünk. A kilences komplementum alkalmazásakor a legalacsonyabb helyi értékű
számjegyet eggyel megnöveljük és a túlcsordulást elhanyagoljuk , a tízes
komplementum alkalmazásakor a túlcsordulást egyszerűen elhanyagoljuk. Az így nyert
szám az adott két szám KÜLÖNBSÉGE.
Most a negatív különbség esetét vizsgáljuk meg!

A kivonást a A kivonást 9-es A kivonást 10-es


szokásos módon komplementum komplementum
végezzük el hozzáadásával végezzük hozzáadásával végezzük
0345,110 0345,110
345,110 + 4120,876 + 4120,877
– 5879,123 negatív 04465,986 negatív 04465,987
– 5534,013 szám – 5534,013 szám 5534,012
+1
9-es komplementuma – 5534,013
10-es komplementuma

Az eljárás leírása:
a) előállítjuk a kivonandó komplementumát. FONTOS: A kisebbítendőnek és a
kivonandó komplementumának itt is azonos számú számjeggyel kell rendelkeznie!
Szükség esetén a megfelelő számjegypótlásokat el kell végezni és akkor végezni a
komplementálást.
b) Ha az összegben a NINCS TÚLCSORDULÁS akkor az eredmény NEGATÍV
SZÁM. A kilences komplementum alkalmazásakor előállítjuk a kapott összeg 9-es
komplementumát és befejeztük a munkát. A tízes komplementum alkalmazásakor az
eredmény tízes komplementumát kell előállítani és befejeztük a munkát! Az így nyert
szám az adott két szám KÜLÖNBSÉGE.

Alkalmazzuk ezt a technikát más alapszámú számrendszerben is!


____________________________________________________________________________________
91
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

a) Példa az N = 8 alapszámú számrendszerből:

A 7-es A 8-as
Az oktális kivonás
komplementummal komplementummal
7654,130 7654,130 7654,130
–6666,555 +1111,222 +1111,223
765,353 10765,352 10765,353
+1
765,353
546,653 00546,653 00546,653
–65472,110 +12305,667 +12305,670
-64723,235 013054,542 013054,543
-64723,235 64723,234
+1
-64723,235

b) Példa az N = 2 alapszámú (bináris) számrendszerből:

Az 1-es
Az bináris kivonás A 2-es komplementummal
komplementummal
11001100,10001 11001100,10001 11001100,10001
–10111111,11111 +01000000,00000 +01000000,00001
1100,10010 100001100,10001 100001100,10010
+1
1100,10010
1111,11111 000001111,11111 000001111,11111
–100000000,01101 +011111111,10010 +011111111,10011
-11110000,01110 0100001111,10001 0100001111,10010
-11110000,01110 011110000,01101
+1
-11110000,01110

c) Példa az N = "tizenhat" alapszámú (hexadecimális) számrendszerből:

A hexadecimális A 15-ös A 16-os


kivonás komplementummal komplementummal
A0F,130 A0F,130 A0F,130
–166,5C5 +E99,A3A +E99,A3B
8A8,B6B 18A8,B6A 18A8,B6B
+1
8A8,B6B
546,653 546,653 546,653
–B29,110 +4D6,EEF +4D6,EF0
-5E2,ABD 0A1D,542 0A1D,543
-5E2,ABD 5E2,ABC
+1
-5E2,ABD

____________________________________________________________________________________
92
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

A helyi értékű számrendszerekben végzett műveletek közül a szorzást és az


osztást kizárólag a bináris számrendszerben tárgyaljuk. Ennek az oka az, hogy a
számítógépek a bináris aritmetikát alkalmazzák, és a komolyabb felhasználónak illik ezt
az aritmetikát ismerni! Az említett két műveletre csak egy-egy példát mutatunk, mert a
"logikája" az eljárásnak rendkívül egyszerű: szorzás esetében 1-gyel vagy 0-val
szorzunk (úgy-e hogy ez egyszerű?), az osztás esetében pedig a "bennfoglalás" kérdése
ugyanilyen könnyen eldönthető: "benne foglaltatik?" – "igen!" - akkor 1. "Nincs meg
benne?" – "Nincs!" - akkor 0. Szemléjük tehát a példákat, amelyek a következő formájú
műveleteket tartalmazzák: Ha A⋅ B = C, akkor C:A = B és C:B = A.
Legyen A = 11011011, B = 11011 és C = 1011100011001

1011100011001 : 11011 = 1101101


-11011↓↓↓↓↓↓↓
100110↓↓↓↓↓↓ Mert: 11011011 ⋅ 11011
-11011↓↓↓↓↓↓ 11011011
=10110↓↓↓↓↓ 11011011
101101↓↓↓↓ 11011011
-11011↓↓↓↓ 11011011
=100101↓↓↓ 111 1 111
-11011↓↓↓ 11 1
=10100↓↓ 1011100011001
101000↓
-11011↓ És: 1011100011001 : 11011011 = 11011
=11011 -11011011↓↓↓↓
-11011 =100101101↓↓↓
=0 -11011011↓↓↓
==10100100↓↓
=101001000↓
-11011011↓
=11011011
-11011011
=0
A bemutatott példa elegendő arra, hogy az olvasó önállóan is további feladatokat
oldjon meg a bináris szorzással és osztással kapcsolatban.

Feladatok:
Végezzük el a kijelölt műveleteket a megfelelő számrendszerben, az elvégzett
műveletek pontosságát a decimális számrendszerben ellenőrizzük!
a) 256,512(7) + 616,16(7) = b) 656,512(7) – 416,16(7) =
c) 256,512(9) + 616,16(9) = d) 656,512(9) – 416,16(9) =
e) 256,512(8) + 616,16(8) = f) 656,512(8) – 416,16(8) =
g) 2B6,512(T) + 616,16(T) = h) 656,512(T) – A16,16(T) =
i) 2EF,512(H) + 616,16(H) = j) 656,512(H) – EF6,16(H) =
A kivonást mindhárom módon: az adott számrendszerben, az ú. n. nem teljes
(alapszám–1) komplementum és a teljes komplementum alkalmazásával is végezzük el!

____________________________________________________________________________________
93
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

Ellenőrző kérdések.

1. Mely ismérvekkel rendelkeznek a nem helyi-értékű számrendszerek?


2. Mit jelent az ismétlés (repetívitás) elve?
3. Mit jelent az összeadás (additívitás) elve?
4. Melyek a római számírás ma is alkalmazott szabályai?
5. Mi a legjellemzőbb tulajdonsága a helyi értékű számírásnak?
6. Mit jelentenek a helyi-értékű számrendszerek számjegyei?
7. Melyek a számjegyei a nyolcas alapszámú számrendszernek?
8. Hogyan írjuk le az alapszámot bármelyik helyi értékű számrendszerben?
9. Hogyan történik a decimális egész szám konverziója valamely más, nem-tízes
alapszámú számrendszerbe.
10. Hogyan történik az 1-nél kisebb pozitív decimális szám konverziója valamely
más nem-tízes alapszámú számrendszerbe?
11. Milyen történelmi szerepe volt a tizenkettes alapszámú számrendszernek?
12. Mely kapcsolat áll fenn a 2, 4, 8 és 16 alapszámú számrendszer számjegyei
között?
13. Hogyan történik a bináris és a kvartális számok egymás közötti konverziója?
14. Hogyan történik a bináris és az oktális számok egymás közötti konverziója?
15. Hogyan történik a bináris és a hexadecimális számok egymás közötti
konverziója?
16. Hogyan történik két ugyanazon alapszámú pozíciós számrendszerbeli szám
összeadása?
17. Mit nevezünk az N alapszámú helyi értékű számrendszer nem teljes (N–1)
komplementumának?
18. Mit nevezünk az N alapszámú helyi értékű számrendszer teljes (N)
komplementumának?
19. Mi a nem teljes komplementum szerepe a számok kivonásában?
20. Mi a teljes komplementum szerepe a számok kivonásában?
21. Mutassa meg a szorzás technikáját helyi értékű számrendszerek számai között (a
bináris rendszert vegye például)!
22. Mutassa meg az osztás technikáját helyi értékű számrendszerek számai között (a
bináris rendszert vegye például)!

____________________________________________________________________________________
94
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

4.2. KÓDOK ÉS KÓDRENDSZEREK

4.2.1. KÓDOLÁS, KÓDKÉSZLET

Az információ és az adat fogalmáról már korábban szóltunk. Most azt vizsgáljuk


meg, hogy valamely adott B = {b1, b2, b3, ... , bN} információ-halmazt (adat-halmazt)
hogyan lehetséges megőrizni, feldolgozni vagy továbbítani. A részletkérdések közül
most elsősorban az adatok lejegyzésének módját vizsgáljuk (mert ez a tevékenység
elsőrangú fontosságú ugyanúgy az adatok biztonságos megőrzése mint, hatékony
feldolgozhatósága és gyors átvitele szempontjából is).

Az első feladat bevezetni egy rögzített jelkészletet, és csak ezen halmaz


elemeiből - szintén rögzített szabályok szerint – alkotott kombinációival lejegyezni a B
adathalmaz elemeit.

Az alkalmazott rögzített jelkészlet elemeit karaktereknek nevezzük.

A mindennapos adatlejegyzésben ezek a karakterek betűk, számjegyek, és egyéb


jelek. Állapodjunk meg a következőben: a | jelet nevezzük elválasztójelnek (és
kényszerből most nem tekintjük a jelkészlethez tartozó elemnek). Jelöljük a jelkészlet
A-val. Az A elemei tehát:

• |A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z| nagybetűk
• |a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z| kisbetűk
• |0|1|2|3|4|5|6|7|8|9| számjegyek
• |+|–|*|/|\|^|[|{|(|)|}|]|_|!|?|<|>|~|#|$|%|&|:|;|"|.| |,| egyéb jelek.

A karakterek egy-egy véges sorozatát szónak nevezzük. A csak betűkből álló


szavak az alfabetikus karaktersorozatok (például: alma, perEc, MateMatiKa), a csak
számjegyekből álló karaktersorozatok a numerikus szavak (pl. 23 vagy 999), a vegyes
karaktersorozatokat (például H2O+ecet=3,1415 vagy U2) alfanumerikus szavaknak
nevezzük.

Ha a B = {b1, b2, b3, ... , bN} információ-halmaz elemeihez egyértelműen hozzá-


rendelünk egy-egy szót amelyet az A halmaz elemeiből alkotottunk, akkor kódoltuk az
információ-halmaz elemeit. Az írott szövegek (könyvek, újságok, levelek) mindegyike
____________________________________________________________________________________
95
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

egy-egy információ-halmaz kódolt formája. Mi a kódolásnak a számítástechnikában


általánosan alkalmazott formáival ismerkedünk meg.

Először is pontosítjuk a szó fogalmát: Mindenképpen rögzíteni kell annak


hosszúságát. Ezek szerint az A jelkészletből alkotott k hosszúságú rendezett
jelsorozatokat tekintjük kódkészletnek.

Szemléljük a következő példát: Legyen jelkészletünk igen szegényes, és


tartalmazza mindössze a következő két karaktert:

A ={ ‘, { }.

A szavaink legyenek hárombetűsek. Mivel két elemből (a kombinatorikai


ismereteink szerint) nyolc szó (különböző, ismétléses variáció) alkotható, így a
kódkészletünk a következő:

A3 = { ‘‘‘, ‘‘{, ‘{‘, {‘‘, {{‘, {‘{, ‘{{, {{{ }

Ebben a példában bemutatott fiktív rendszer szegényes karakterkészletével és


rövid szavaival mindössze nyolc adat vagy információ rögzítésére alkalmas. Mégis, a
számítástechnika pontosan a kétkarakterű jelkészletet alkalmazza (természetesen a
szavak hosszúsága nem három, mert akkor ez a kódrendszer nem lenne széleskörűen
alkalmazható).

Mit nevezünk tehát kódrendszernek? A kódolás során használt jelkészletet


és formai szabályrendszert nevezzük együttesen kódrendszernek.

Most egy nagyon fontos gyakorlati kérdésre válaszolunk majd: miért választotta
a számítástechnika a számítógépek működtetéséhez a kételemű ábécét? A két karaktert
jelölhetjük bárhogyan (úgy is ahogyan az előző példában tettük), de alkalmasabb a {0,1}
jelölés.

Válasszunk egy N elemű jelkészletet és legyen a kódkészlet szavainak hossza n.


Nyilvánvaló, hogy a megalkotható szavak száma m = Nn. Figyelembe véve azt, hogy a
hosszú szavakhoz nagy tárkapacitás kell, de a sokbetűs ábécé műszaki megvalósítása is
drága, így két ellentétes szempontot kell összebékíteni:

Adott n szóhosszúság mellett minél nagyobb legyen a kódolható információk


száma (m) ám ezt minél kevesebb jellel (N) tegyük meg.

____________________________________________________________________________________
96
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Ez azt jelenti hogy a f(N) = n ⋅ N függvény minimumát keressük konstans m


esetén. Tehát: kijelölt m számú információt szeretnénk kódolni

rövid szavakkal és kevés betűvel.

Az óhaj csak akkor teljesül, ha kicsi az n is és az N is, tehát ha az n ⋅ N szorzat


minimális. Határozzuk meg az f(N) = n ⋅ N függvény minimumát! (m = const)

Mivel m = Nn ezért logNm = n. Innen f(N) = n ⋅ N = N logNm. Végezzük el a


következő helyettesítést: logNm = (ln m)/(ln N):

f(N) = N(ln m)/(ln N).

Ha nem vesszük figyelembe azt, hogy az N diszkrét változó, és a matematikai


analízis eszközeivel (a derivált alkalmazásával) megállapítjuk f(N) függvény szélső
értékét, akkor minimumot találunk ln N = 1 esetén, vagyis ha N = e ≈ 2,71...

Nyilvánvaló, hogy olyan jelkészlet, amelynek 2,71.. jele van, nem létezik.
Marad a legközelebbi természetes szám, a 3, vagy a valamivel kedvezőtlenebb 2. Végül
mégis a kétjelű készlet került be a számítógépek vérkeringésébe. Hogy miért? Mert ez a
rendszer (még a matematikai bizonyítás ellenére is) mégiscsak olcsóbb és racionálisabb.

4.2.2. A BINÁRIS KÓDOLÁS

A bináris kódolás jelkészlete kételemű: A = {0,1} A 4.1. fejezetben már láttuk,


hogyan lehetséges a számok felírását konvertálni a bináris számrendszerbe. Ám itt nem
erről a konverzióról van szó! Most bemutatjuk azt a bináris kódrendszert, amely a
decimális számrendszer számjegyeit kódolja (és nem konvertálja!). A kódolás oka most
maradjon figyelmen kívül, a későbbiek folyamán más tanfolyam kereteiben az olvasó
részletesen megismerkedik azokkal az okokkal, amelyek miatt a számítógépek nem a
bináris számrendszerbe konvertált decimális számokat alkalmazzák, hanem a binárisan
kódolt decimális számokat

A decimális szám felírását nem konvertáljuk a bináris


számrendszerbe, hanem csak a számjegyeit kódoljuk →
helyettesítjük azokat egy adott kódrendszer szabályaiban
rögzített bináris számjegycsoportokkal.

____________________________________________________________________________________
97
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

Az így nyert kódolt számokat binárisan kódolt decimális számoknak nevezzük


(BCD – Binary Coded Decimals). A következő oldalon tanulmányozható 4.2.2.
táblázatban a decimális számjegyek bináris kódolásának több lehetőségét is
tanulmányozhatjuk. Mindegyik kódrendszerre vonatkoznak az alábbi megállapítások: A
kódolandó információk száma 10 (a tíz számjegy). Ez azt jelenti, hogy a szókészletnek
legalább tízeleműnek kell lennie. Ha kétbetűs ábécéből alkotunk 3 hosszúságú szavakat,
akkor a szókészletünk mindössze 8 elemű, tehát kevés. Ha a szavak négybetűsek – ezek
az úgynevezett tetrádok – akkor még "felesleges" szavak is jelentkeznek, mert 16 tetrád
alkotható és csak 10-et foglalunk le. A 10 számjegyhez a 16 elemű halmazból több mint
29 milliárd módon választhatunk kódokat (16 elem tizedosztályú ismétlésnélküli
variációja)
Most felsoroljuk a tetrádok halmazát:

A = {0,1}
T = A4 = {0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111,
1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111}

Példa: Adott az A = 7916,25 decimális szám.


A szám bináris konverziója:
A(2) = 1111011101100,01(2)

Binárisan kódolva (az egyik BCD lehetőség) az NBC kódrendszerben:


A(BCD) = 0111 1001 0001 0110.0010 0101

Azért mutatjuk be pontosan ezeket a kódrendszereket, mert nem teljesen


önkényes hozzárendelés történik a kódszavak és a számjegyek között, hanem bizonyos
alapvető feltételeket is kielégít egy-egy oszlop. Az alapvető követelmények az alábbi
négy pontban foglalhatók össze.

• A hozzárendelés egyértelmű legyen! Különböző számjegyeknek különböző


kódok feleljenek meg. Ezt a követelményt minden bemutatott kódrendszer
teljesíti.
• A legnagyobb decimális számjegynek a legnagyobb bináris értékű kódszó
feleljen meg. Ezt a feltételt 4 kódrendszer teljesíti.
• A páros, illetve páratlan decimális számjegyeknek szintén páros, illetve
páratlan bináris értékű kódszavak feleljenek meg. Ezt a feltételt is csak néhány
kódrendszer teljesíti, a többi nem.
• Ha α és β decimális számjegyekre teljesül, hogy α + β = 9 (tehát egymásnak
kölcsönösen a 9-es komplementumai), akkor a hozzájuk rendelt kódszavak

____________________________________________________________________________________
98
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

egymásnak kölcsönösen az 1-es komplementumai legyenek. Erre is van


teljesülő példa, de a többség ezt sem elégíti ki.

Hangsúlyozzuk, hogy ezek kívánatos követelmények, de (az első kivételével) nem


elengedhetetlenül fontosak. A válogatás az úgynevezett "súlyzott" kódrendszereket
ábrázolja.

DDEECCIIMMÁÁ LLIISS SSZZÁÁ MMOOKK BBIINNÁÁ RRIISS KKÓÓ DDOOLLÁÁ SSAA

3321 5211 2421 8421 7321 5421 753-6 74-2-1 XS-3


Aiken NBC Stibitz

0000 0000 0000 0000 0000 0000 0000 0000 0011


0

0001 0001 0001 0001 0001 0001 1001 0111 0100


1
0010

0010 0011 0010 0010 0010 0010 0111 0110 0101


2
0100 1000

0011 0101 0011 0011 0100 0011 0010 0101 0110


3
0100 0110 1001 0011
1000

0101 0111 0100 0100 0101 0100 1011 0100 0111


4
1001 1010 1011

0110 1000 0101 0101 0110 1000 0100 1010 1000


5
1010 1011

0111 1001 0110 0110 0111 1001 1101 1001 1001


6
1011 1010 1100
1100

1101 1011 0111 0111 1000 1010 1000 1000 1010


7
1100 1101

1110 1101 1110 1000 1001 1011 0110 1111 1011


8
1110

1111 1111 1111 1001 1010 1100 1111 1110 1100


9

4.2.2. táblázat

____________________________________________________________________________________
99
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

A 3321 jelzés például azt jelenti, hogy a balról jobbra az első helyen álló
számjegy súlya 3, a másodiké szintén 3, a harmadiké 2 és a jobb szélső szám súlya 1.
Ezért jelentkezik a látszólagos ellentét az 1 ponttal szemben, illetve: mintha a
hozzárendelés nem volna egyértelmű. Lássuk csak a 6-nak megfelelő három kódszavat:

0111=0⋅3+1⋅3+1⋅2+1⋅1=0+3+2+1=6
1011=1⋅3+0⋅3+1⋅2+1⋅1=3+0+2+1=6
1100=1⋅3+1⋅3+0⋅2+0⋅1=3+3+0+0=6

Magyarázzuk meg a 74-2-1 kódrendszert is. Vegyük a 4 és a 6 kódjait:


0100=0⋅7+1⋅4-0⋅2-0⋅1=0+4-0-0=4
1011=1⋅7+0⋅4-1⋅2-1⋅1=7+0-2-1=4
1001=1⋅7+0⋅4-0⋅2-1⋅1=7+0-0-0=6.

Érthető tehát a 753-6 kódrendszer törvényszerűsége is: az utolsó számjegy


súlya –6. A XS-3 rendszernél a kódszó bináris értékéből ki kell vonni háromat. A NBC
(Natural Binary Code) vagy 8421 "egyszerűen" konvertálja a decimális számjegyeket
bináris felírásukra.

A binárisan kódolt decimális számokkal az aritmetikai műveletek is végezhetők,


de azok technikára különbözik a már megismert módszerektől és nem célunk e könyv
keretein belül ismertetni ezeket a technikákat.

4.2.3. A GRAY FÉLE KÓDRENDSZER

A bemutatott ködrendszereknek van egy nagy hiányossága, amely csak bizonyos


(ám nem jelentéktelen alkalmazások esetén jelentkezik) Ez a hiányosság abban
mutatkozik meg, hogy az egymásután következő decimális számjegyeknek megfelelő
kódszavakban több mint egy bit változik meg. Például az NBC kódnál 1-ről 2-re
"lépve" a 0001 kódszó 0010-ra változik, tehát két bit is megváltozott. Legkirívóbb eset
a 7-es szintről 8-ra való átlépéskor történik: a 0111 kódszó 1000-ra változik, tehát
megváltozik mind a négy bit (Egyébként azt a számot, amely két bináris kódszó
különböző bitjeinek számát jelenti Hamming távolságnak nevezzük.) A Gray kód
kiküszöböli ezt a hiányosságot, és az egymásután következő decimális számjegyek
bináris kódjainak Hamming-távolságát 1-re csökkenti.

A Gray kódot az NBC kódra alapozva definiáljuk.

Jelölje gN, gN–1, ... , g2, g1 a Gray kód számjegyeit balról jobbra (N a
szó hossza, gi ∈{0,1}.
____________________________________________________________________________________
100
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Jelölje bN, bN–1, ... , b2, b1 az NBC kód számjegyeit szintén balról
jobbra, bi ∈{0,1}.
ahol ⊕ az exkluziv ⊕ 0 1
b ha k = N diszjunkciót , vagyis
gk =  N , 0 0 1
b k +1 ⊕ b k ha k < N "XOR" műveletet
jelenti:
1 1 0

SZINT NBC kód Gray - 3 Gray - 4 Gray - 5


0 00000 000 0000 00000
1 00001 001 0001 00001
2 00010 011 0011 00011
3 00011 010 0010 00010
4 00100 110 0110 00110
5 00101 111 0111 00111
6 00110 101 0101 00101
7 00111 100 0100 00100
8 01000 1100 01100
9 01001 1101 01101
10 01010 folytassa! 01111
11 01011 ↓ 01110
12 01100 folytassa!
13 01101 ↓
14 01110
15 01111
16 10000
17 10001
18 10010
folytassa! folytassa!
↓ ↓

31 11111

4.2.3.1. táblázat

A Gray–3 kódszótára 8 elemű, a Gray–4 kódtáblájának 16 tagja van, a Gray–5


táblázatát a 32-ik elemig kell folytati! A folytatás előtt tanulmányozza a példát, amelyet
a 4.2.3.2. táblázat ábrázol!

____________________________________________________________________________________
101
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

NBC 1 0 1 1 0 1 1 0 0 1 1 0

⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕

Gray 1 1 1 0 1 1 0 1 0 1 0 1

⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕ ⊕

NBC 1 0 1 1 0 1 1 0 0 1 1 0

4.2.3.2. táblázat

A táblázat az 101101100110 tizenkét betűs NBC-kódszó Gray-féle kódszóra


való "fordítását" és a "visszafordítását" ábrázolja. Az exkluzív diszjunkció (az XOR)
műveletnek az ábrázolt módon való alkalmazásával a "fordítás" könnyedén elvégezhető.

4.2.4. SZIMBOLIKUS KÓDRENDSZEREK

A szimbolikus kódrendszerek az élő nyelvek írásjeleinek kódolására szolgálnak.


Már szóltunk arról, hogy egy-egy információ (jel, betű, számjegy) kódolására szolgáló
kódszavak hosszúsága függ az elemi információk számától. Láttuk azt, hogy a tíz
számjegyet tetrádokkal kódolhattuk (és még maradt is kihasználatlan tetrád). Most
számoljuk össze a legszükségesebb jeleket, amelyeket kódolni kell, ha egy egyszerű,
írott szöveget óhajtunk "lefordítani". A kódrendszer megalkotóinak logikáját követve
így gondolkodunk: az angol ábécének 26 betűje van, tehát 26 nagybetű + 26 kisbetű az
már 52 jel. A tíz számjegy, az úgynevezett interpunkciós jelek (a pont, a vessző, a
zárójelek, a felkiáltójel, a kérdőjel, a kettőspont, a pontosvessző, a gondolatjel, és így
tovább) összesen mondjuk 25 jel, az legkevesebb 87 jel. Ehhez a hatbetűs bináris
kódszavak száma kevés (26 = 64). Ezért a fenti jelkészlethez hétbetűs bináris
kódszavakat kellett hozzárendelni. Nyilvánvaló, hogy a hozzárendelések most is
lehetnek teljesen önkényesek, vagy követhetnek valamilyen sajátságos logikát, de az
egyértelműséget feltétlenül tiszteletben kell tartaniuk! Íme az egyik kiosztás: az ASCII
kódtábla (American Standard Code for Information Interchange).

A 4.2.4.1. táblázat a legközismertebb kódkiosztást ábrázolja. A 0-val és az 1-


gyel jelölt vízszintes sorokban álló hárombetűs rövidítéseknek speciális jelentése van –
____________________________________________________________________________________
102
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

ezek teljes neve, illetve a név alapján a funkciója is kiolvasható a mellékelt ASCII
Chart című táblázatból (4.2.4.4. táblázat).

* 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 NUL SOH STX ETX EOT ENQ ACK BEL BS TAB LF VT FF CR SO SI
1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2 ! " # $ % & ' ( ) * + , - . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4 @ A B C D E F G H I J K L M N O
5 P Q R S T U V W X Y Z [ \ ] ^ _
6 ` a b c d e f g h i j k l m n o
7 p q r s t u v w x y z { | } ~

4.2.4.1. táblázat

A bináris kódszavak helyett a fenti a táblázatból a hexadecimális értékek


olvashatók ki. Például: az A betű a 4-gyel jelölt vízszintes sorban és az 1-gyel jelölt
oszlopban áll, tehát:

A → 41(H) = 0100 0001(2) = 65(decimális)

Azonnal feltűnik, hogy ezek nem is hét hanem nyolcbites kódszavak. Az eleve
"feleslegesnek" tűnő nyolcadik bitnek egy nagyon fontos funkciót szántak: a kódszó
helyességét ellenőrző funkciót! Nevezzük ezt a bitet paritásbitnek. Ha a paritásbitnek
az 1 értéket adjuk amikor a kódszó többi hét bitje között páros számú 1-es van, illetve
0-ra állítjuk amikor a többi hét bit között az 1-esek száma páratlan, akkor a nyolc bit
között mindig páratlan számú 1-es van. Nyilvánvaló, hogy a paritásbit megfordított
alkalmazása is lehetséges (0 ha az egyesek száma a többi hét bit között páros, és 1 ha az
egyesek száma a többi hét bit között páratlan) úgy a nyolcbites kódszóban az 1-esek
száma mindig páros lesz. A kétfajta paritás alkalmazását a

az 1-esek 8- bites kód 8- bites kód


Karakter 7- bites kód
száma páratlan páros
E 100 0101 3 0100 0101 1100 0101
e 110 0101 4 1110 0101 0110 0101

4.2.4.2. táblázat

A nyolcbites kódszavakat a közhasználatban bájtnak nevezzük.

____________________________________________________________________________________
103
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

A számítógépek rohamos elterjedése az angol nyelvterületen kívül "szűkössé"


tette az angol ábécé 26 betűje alapján meghatározott karakterkészletet, és a hétbites
kódszavak száma egyszerre kevésnek bizonyult. A nemzetközi jelkészleten kívül egyéb
grafikus, úgynevezett "tipográfiai" jelek alkalmazása is elterjedt. Mindezek
szükségessé tették az ASCII eredeti kódtáblájának bővítését. A mellékelt táblázatok
között a DOS operációs rendszer által alkalmazott bővítést is megtalálható, de
WINDOWS rendszerek által használt ANSI karaktertábla is. Az EBCDIC kódtáblát
főleg az IBM cég által gyártott nagyszámítógépeken használatos.

Az ASCII kódtáblára épül az egyik igen hatékony titkosítási módszer W. Diffie


és M Hellman (az MIT egyetemen 1975-ben) kifejlesztették az úgynevezett
prímszámkód titkosítási módszert. A módszer lényegét kis számokkal mutatjuk be.
(Igaz, így is "megfejthetetlen" ám ha az alapul vett két prímszám nagy, akkor valóban
lehetetlen feltörni a kódot – de nagyteljesítményű számítógép segítsége nélkül nem is
használható!)

A kódrendszert használó egyéneknek kiosztanak két-két prímszámot. Legyenek


ezek a számok p-vel és q-val jelölve. A felhasználó kiszámítja az p és q szorzatát,
legyen ez a szám A amelyet közzétesz – ezt a számot tehát a rendszerhez tartozók
mindegyike ismeri. Most keres még két számot, e és f számot, amelyekre igaz, hogy az
e⋅f–1 szám osztható p–1 és q–1 számmal is. Az A szám mellett az e számot is
közzéteszi a felhasználó. Ezek szerint mindenki mindegyikük A és e számát. Adott egy
példa (hangsúlyozzuk még egyszer: kis számokkal és még egy egyszerűsítés végett csak
a nagybetűket használjuk a következő módon: ASCII kódjuk decimális felírásából
kivonunk 64-et. (Ezek után az A betű "rövidített ASCII" kódja 01-lesz, és így tovább -
lásd a ASCII Chart című táblázatot, ahol a decimális kódok is leolvashatók).

Adott két egyén: BB és CC. A táblázat tartalmazza a számok mindegyikét két


egyénre, de csak a megbeszélt két szám A és e a közismert.

Név p q A e f
BB 3 11 33 3 7
CC 5 7 35 5 17

Feltételezzük, hogy BB üzeni CC-nek: KUTYABB. (BB az üzenet végén az


aláírás!) Az üzenet teljes decimális ASCII kódja:

75 85 84 89 65 66 66. A "rövidített" ASCII kód: 11 21 20 25 01 02 02.

____________________________________________________________________________________
104
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

A kódolás folyamata (ezt BB, a feladó végzi):

BB a címzett CC nyilvános A=35 és e=5 számát használja)


115 = 161051 = 4601⋅35 + 16
5
21 = 40841001 =116688⋅35 + 21
205 = 3200000 = 91428⋅35 + 20
255 = 9765625 =279017⋅35 + 30
015 = 1= 0⋅35 + 01

Az aláíráshoz a saját nyilvános A=33 és titkos f=7 számát használja:


027 = 128 = 3⋅33 + 29
7
02 = 128 = 3⋅33 + 29

A titkosan kódolt üzenet a maradékokból áll elő: 16 21 20 30 01 29 29.

A dekódolás folyamata ( ezt a címzett CC végzi):

CC a feladó nyilvános A=35 és saját titkos f=17 számát használja:

1617 = 295147905179352825856 = 8432797290838652167⋅35 + 11


17
21 = 30041942495081691894741 = 858341214145191196992⋅35 + 21
17
20 = 13107200000000000000000 = 374491428571428571428⋅35 + 20
17
30 =12914016300000000000000000 = 368971894285714285714285⋅35 + 25
0117 = 1= 0⋅35 + 01

Az aláírás dekódolása a feladó nyilvános A=33 és nyilvános e=3 számával történik:

293 = 24389=739⋅33 + 02
293 = 24389=739⋅33 + 02.

A dekódolt titkos kódolt üzenet is a maradékokból áll elő:

11 21 20 25 01 02 02.

Most már csak a 65 hozzáadása szükséges és kiolvasni az ASCII táblázatból az


üzenetet amely megegyezik a feladó által küldött karakterekkel: KUTYABB.

____________________________________________________________________________________
105
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

ASCII Chart
ASCII stands for "American Standard Code for Information Interchange".

Standard ASCII Chart (7 bit = 27)

The "A" key sends a Binary equivalent of 65d to the CPU

─────────────────────────────────────────────────────────────────────────────────
Dec Hx Oct Char Dec Hx Oct Char Dec Hx Oct Char Dec Hx Oct Char
─────────────────────────────────────────────────────────────────────────────────
0 00 000 NUL (null) 32 20 040 SPACE 64 40 100 @ 96 60 140 `
1 01 001 SOH (start of heading) 33 21 041 ! 65 41 101 A 97 61 141 a
2 02 002 STX (start of text) 34 22 042 " 66 42 102 B 98 62 142 b
3 03 003 ETX (end of text) 35 23 043 # 67 43 103 C 99 63 143 c
4 04 004 EOT (end of transmission) 36 24 044 $ 68 44 104 D 100 64 144 d
5 05 005 ENQ (enquiry) 37 25 045 % 69 45 105 E 101 65 145 e
6 06 006 ACK (acknowledge) 38 26 046 & 70 46 106 F 102 66 146 f
7 07 007 BEL (bell) 39 27 047 ' 71 47 107 G 103 67 147 g
8 08 010 BS (backspace) 40 28 050 ( 72 48 110 H 104 68 150 h
9 09 011 TAB (horizontal tab) 41 29 051 ) 73 49 111 I 105 69 151 i
10 0A 012 LF (NL line feed,new ln) 42 2A 052 * 74 4A 112 J 106 6A 152 j
11 0B 013 VT (vertical tab) 43 2B 053 + 75 4B 113 K 107 6B 153 k
12 0C 014 FF (NP form feed,new pg) 44 2C 054 , 76 4C 114 L 108 6C 154 l
13 0D 015 CR (carriage return) 45 2D 055 - 77 4D 115 M 109 6D 155 m
14 0E 016 SO (shift out) 46 2E 056 . 78 4E 116 N 110 6E 156 n
15 0F 017 SI (shift in) 47 2F 057 / 79 4F 117 O 111 6F 157 o
16 10 020 DLE (data link escape) 48 30 060 0 80 50 120 P 112 70 160 p
17 11 021 DC1 (device control 1) 49 31 061 1 81 51 121 Q 113 71 161 q
18 12 022 DC2 (device control 2) 50 32 062 2 82 52 122 R 114 72 162 r
19 13 023 DC3 (device control 3) 51 33 063 3 83 53 123 S 115 73 163 s
20 14 024 DC4 (device control 4) 52 34 064 4 84 54 124 T 116 74 164 t
21 15 025 NAK (negative acknowledge)53 35 065 5 85 55 125 U 117 75 165 u
22 16 026 SYN (synchronous idle) 54 36 066 6 86 56 126 V 118 76 166 v
23 17 027 ETB (end of trans. block) 55 37 067 7 87 57 127 W 119 77 167 w
24 18 030 CAN (cancel) 56 38 070 8 88 58 130 X 120 78 170 x
25 19 031 EM (end of medium) 57 39 071 9 89 59 131 Y 121 79 171 y
26 1A 032 SUB (substitute) 58 3A 072 : 90 5A 132 Z 122 7A 172 z
27 1B 033 ESC (escape) 59 3B 073 ; 91 5B 133 [ 123 7B 173 {
28 1C 034 FS (file separator) 60 3C 074 < 92 5C 134 \ 124 7C 174 |
29 1D 035 GS (group separator) 61 3D 075 = 93 5D 135 ] 125 7D 175 }
30 1E 036 RS (record separator) 62 3E 076 > 94 5E 136 ^ 126 7E 176 ~
31 1F 037 US (unit separator) 63 3F 077 ? 95 5F 137 _ 127 7F 177 DEL
─────────────────────────────────────────────────────────────────────────────────

4.2.4.3. táblázat

____________________________________________________________________________________
106
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Extended Ascii Codes (8th bit => 28)


These were added later & are not true ASCII. There are different extended sets, but this is the most common.

4.2.4.4. táblázat

____________________________________________________________________________________
107
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

The ANSI Character Set


The following table shows characters 128-255 of the ANSI character set.

Code Chr Name Code Chr Name Code Chr Name


128 € unused 171 « left double guillemet 214 Ö O diaeresis
129 unused 172 ¬ not 215 × multiply symbol
130 ‚ baseline single quote 173 soft hyphen 216 Ø O with oblique stroke
131 ƒ florin 174 ® registered trademark 217 Ù U grave
132 „ baseline double quote 175 ¯ macron 218 Ú U acute
133 … ellipsis 176 ° ring (also degrees) 219 Û U circumflex
134 † dagger (single) 177 ± plus/minus 220 Ü U diaeresis
135 ‡ dagger (double) 178 ² superscript 2 221 Ý Y acute
136 ˆ circumflex 179 ³ superscript 3 222 Þ Icelandic Thorn
137 ‰ per mil 180 ´ acute 223 ß German sharp s
138 Š S caron 181 µ micro symbol (or mu) 224 à a grave
139 ‹ left single guillemet 182 ¶ pilcrow (paragraph symbol) 225 á a acute
140 Œ OE ligature 183 · bullet (small) 226 â a circumflex
141 unused 184 ¸ cedilla 227 ã a tilde
142 Ž unused 185 ¹ superscript 1 228 ä a diaeresis
143 unused 186 º masculine ordinal 229 å a ring
144 unused 187 » right double guillemet 230 æ ae ligature
145 ‘ open single quote 188 ¼ one-fourth 231 ç c cedilla
146 ’ close single quote 189 ½ one-half 232 è e grave
147 “ open double quote 190 ¾ three-fourths 233 é e acute
148 ” close double quote 191 ¿ Spanish inverted ? 234 ê e circumflex
149 • bullet (large) 192 À A grave 235 ë e diaeresis
150 – en dash 193 Á A acute 236 ì i grave
151 — em dash 194 Â A circumflex 237 í i acute
152 ˜ tilde 195 Ã A tilde 238 î i circumflex
153 ™ unregistered trademark 196 Ä A diaeresis 239 ï i diaeresis
154 š s caron 197 Å A ring 240 ð Icelandic eth
155 › right single guillemet 198 Æ AE ligature 241 ñ n tilde
156 œ oe ligature 199 Ç C cedilla 242 ò o grave
157 unused 200 È E grave 243 ó o acute
158 ž unused 201 É E acute 244 ô o circumflex
159 Ÿ Y diaeresis 202 Ê E circumflex 245 õ o tilde
160 non-breaking space 203 Ë E diaeresis 246 ö o diaeresis
161 ¡ Spanish inverted ! 204 Ì I grave 247 ÷ divide symbol
162 ¢ cents 205 Í I acute 248 ø o with oblique stroke
163 £ pounds 206 Î I circumflex 249 ù u grave
164 ¤ intl. monetary symbol 207 Ï I diaeresis 250 ú u acute
165 ¥ yen 208 Ð Icelandic Eth 251 û u circumflex
166 ¦ broken bar 209 Ñ N tilde 252 ü u diaeresis
167 § section symbol 210 Ò O grave 253 ý y acute
168 ¨ diaeresis 211 Ó O acute 254 þ Icelandic thorn
169 © copyright 212 Ô O circumflex 255 ÿ y diaeresis
170 ª feminine ordinal 213 Õ O tilde

4.2.4.5. táblázat

____________________________________________________________________________________
108
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

EBCDIC Codes
Extended Binary-Coded Decimal Interchange Code .

Decimal Hexadecimal Character Decimal Hexadecimal Character


129 81 a 194 C2 B
130 82 b 195 C3 C
131 83 c 196 C4 D
132 84 d 197 C5 E
133 85 e 198 C6 F
134 86 f 199 C7 G
135 87 g 200 C8 H
136 88 h 201 C9 I
137 89 i 209 D1 J
145 91 j 210 D2 K
146 92 k 211 D3 L
147 93 l 212 D4 M
148 94 m 213 D5 N
149 95 n 214 D6 O
150 96 o 215 D7 P
151 97 p 216 D8 Q
152 98 q 217 D9 R
153 99 r 226 E2 S
162 A2 s 227 E3 T
163 A3 t 228 E4 U
164 A4 u 229 E5 V
165 A5 v 230 E6 W
166 A6 w 231 E7 X
167 A7 x 232 E8 Y
168 A8 y 233 E9 Z
169 A9 z 64 40 blank
240 F0 0 75 4B .
241 F1 1 76 4C <
242 F2 2 77 4D (
243 F3 3 78 4E +
244 F4 4 79 4F |
245 F5 5 80 50 &
246 F6 6 90 5A !
247 F7 7 91 5B $
248 F8 8 92 5C *
249 F9 9 93 5D )
122 7A : 94 5E ;
123 7B # 96 60 -
124 7C @ 97 61 /
125 7D ' 107 6B ,
126 7E = 108 6C %
127 7F " 109 6D _
193 C1 A 110 6E >
111 6F ?

4.2.4.6. táblázat

____________________________________________________________________________________
109
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

A nemzetközi jelek párhuzamos


ANSI – ASCII – HTML kódtáblája

Character ANSI ASCII HTML Character ANSI ASCII HTML


¡ 0161 173 ¡ ì 0236 141 &igrave;
¿ 0191 168 ¿ í 0237 161 &iacute;
Ä 0196 142 &Auml; î 0238 140 &icirc;
Å 0197 143 &Aring; ï 0239 139 &iuml;
ä 0228 132 &auml; Ñ 0209 165 &Ntilde;
ª 0170 166 ª ñ 0241 164 &ntilde;
À 0192 &Agrave; ô 0244 147 &ocirc;
Á 0193 &Aacute; º 0186 167 º
à 0195 &Atilde; Ò 0210 &Ograve;
à 0224 133 &agrave; Ó 0211 &Oacute;
á 0225 160 &aacute; Ô 0212 &Ocirc;
ã 0227 &atilde; Õ 0213 &Otilde;
å 0229 134 &aring; Ö 0214 153 &Ouml;
Æ 0198 146 &AElig; Ø 0216 157 &Oslash;
æ 0230 145 &aelig; ò 0242 149 &ograve;
Ç 0199 128 &Ccedil; ó 0243 162 &oacute;
ç 0231 135 &ccedil; õ 0245 &otilde;
È 0200 &Egrave; ö 0246 148 &ouml;
É 0201 144 &Eacute; ø 0248 155 &oslash;
Ê 0202 &Ecirc; ß 0223 225 &szlig;
Ë 0203 &Euml; Û 0219 &Ucirc;
è 0232 138 &egrave; Ù 0217 &Ugrave;
é 0233 130 &eacute; Ú 0218 &Uacute;
ê 0234 136 &ecirc; Ü 0220 154 &Uuml;
ë 0235 137 &euml; ù 0249 151 &ugrave;
Ì 0204 &Igrave; ú 0250 163 &uacute;
Í 0205 &Iacute; û 0251 150 &ucirc;
Î 0206 &Icirc; ü 0252 129 &uuml;
Ï 0207 &Iuml; ÿ 0255 152 &yuml;

4.2.4.7. táblázat

Feladatok:
1. Alakítson ki egy kódrendszert, amely a ternáris (a 3-as alapszámú)
számrendszerre támaszkodik. Nevezze ezt a kódolást "NTC" rendszernek, amely az
NBC kódrendszer logikáját követve csak a decimális számjegyekre vonatkozik. Hány
betűsek ezek a kódszavak? Hány "szabad" kódszó marad a tíz számjegy kiosztása után?

2. Végezze el a következő decimális számok bináris kódolását a 4.2.2.


táblázatban adott mindegyik kódkiosztással:
a) 325,333... b) 962.0101 c) 546576.23 .

____________________________________________________________________________________
110
Számrendszerek SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

3. Adott egy bináris szám: 1101101101111:


a) Ha ez a szám nem kódolt, akkor mi a Gray kódja?
b) Ha ez a szám Gray kódolt, akkor mi nem kódolt formája?

4. Végezze el a MIKROPROCESSZOR szó ASCII kódolását olymódon, hogy


a nem kibővített kódtáblát alkalmazza (tehát paritásbit + a 7 bites változatot):
a) páratlan paritású kódolással,
b) páros paritású kódolással.

5. Végezze el a Hordót görget Ödön mondat ASCII kódolását a bővített kódok


figyelembevételével. (4.2.4.3. és 4.2.4.4. táblázatok)
a) bináris (nyolcbites kódszavak = bájtok),
c) oktális,
d) hexadecimális formában.

6. DOS környezetben C:\> prompt után jelenítse meg az Ödönről szóló


mondatot de kizárólag az <Alt> billentyű és a "numerikus billentyűzet"
alkalmazásával.
Megjegyzés: Az ASCII és a bővített ASCII karaktereket az <Alt> billentyű tartásával
és a numerikus billentyűzeten a karakter decimális ASCII kódjának bekopogásával
jelenítjük meg.

7. WINDOWS környezetben a WORD szövegszerkesztővel jelenítsen meg


Ödönről egy másik mondatot: Ödönről azt mondják hogy zöldfülű – ezt is kizárólag az
<Alt> billentyű és a "numerikus billentyűzet" alkalmazásával.
a) Megjegyzés: A WINDOWS az ANSI táblát "ismeri". A 0-127 (dec) ANSI kódok
megegyeznek ugyan a megfelelő ASCII kódokkal, de a 128-255 (dec) ANSI kódok nem
azonosak a bővített ASCII-val (vesse össze a 4.2.4.4 és a 4.2.4.5. táblázatokat!) .
b) Megjegyzés: Az ANSI az <Alt> billentyű tartásával és a numerikus billentyűzeten
először egy 0 (zérus) beütésével, majd a karakter decimális ANSI kódjának
bekopogásával jelenítjük meg.

8. Az ASCII kódtáblára épülő Diffie-Hellman módszerrel kiosztott prímszámok p=5,


q=13. Számítsa ki a nyilvános A és e számot, és a titkos f számot is. Legyen az aláírás
AA. Küldje el az ALMA üzenetet az AA aláírással együtt BB-nek és CC-nek is. (A
példában megadtuk mindkét személy megfelelő adatait. A valamivel "kisebb" számok
használata céljából most is alkalmazza az ASCII kód 64-gyel való csökkentést).

____________________________________________________________________________________
111
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Számrendszerek

Ellenőrző kérdések:

1. Mit értünk karakteren?


2. Milyen típusú karaktereket ismer?
3. Mit jelent a kódolás?
4. Mit nevezünk kódrendszernek?
5. Melyek a kódolás és a kódrendszerek létezésének alapvető indokai?
6. Sorolja fel a BCD "súlyzott" tetrádjainak jellemző tulajdonságait!
7. Indokolja meg a bináris kódrendszerek alkalmazását!
8. Mit nevezünk két kódszó Hamming-távolságának?
9. Definiálja a Gray-féle kódalkotás módját.
10. Mire használható és mit jelent az ASCII kód?
11. Mennyi az ASCII kód jelkészlete és egy karaktert hány bittel kódolunk?
12. Mi a paritásbit?
13. Mi a Diffie-Hellman féle prímszámkód titkosítási módszer lényege?
14. Miért volt szükség az ASCII kód bővítésére.
15. Hol használatos az ANSI kódrendszer?
16. Mit jelent és hol használatos az EBCDIC kódrendszer?

____________________________________________________________________________________
112
Algoritmusok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

4.3. ALGORITMUSOK

4.3.1. AZ ALGORITMUS FOGALMA ÉS STRUKTÚRÁI

Algoritmusnak nevezzük valamely feladat megoldására szolgáló lépések


véges számú sorozatát. Lépésnek egy-egy egyértelműen megfogalmazott
szabály alkalmazását tekintjük.

Tekintsünk egy mindannyiunk számára jól ismert feladatot: megoldandó az

ax + by = c
dx + ey = f

lineáris algebrai egyenletrendszer.

Feltételezzük, hogy problémamentesen elvégezhetők a következő lépések:


1. Vegyük fel az a,b,c,d,e,f számokat
2. Meghatározzuk a D = ae-bd számot,
3. Meghatározzuk a Dx = ce-bf számot,
4. Meghatározzuk a Dy = af-cd számot
5. Kiszámítjuk az x = Dx/D és az y =Dy/D hányadosokat
6. Kiírjuk az (x,y) számpárt - ez az adott egyenletrendszer megoldása.
7. A munkát befejeztük.

A problémamentesség a D≠0 feltételt jelenti. A hat lépés egyértelműen


elvégezhető bármely (a kikötésnek megfelelő) egyenletrendszer esetén. A megoldások
nem függenek az egyéntől, aki az utasításokat pontosan végrehajtja, a végrehajtás pedig
nem függ a számok nagyságától vagy jelétől: adott a,b,c,d,e,f bemenet esetén
mindig ugyanaz az x,y kimenetet nyerjük. Az egyenletrendszer megoldására irányuló
algoritmus szóbeli leírása ez a 6 pont.

A bemutatott példa alapján megállapítható, hogy minden (D≠0) egyenlet-


rendszerre alkalmazható az eljárás. Az algoritmusokra vonatkozó jellemző követelmény
egyike ez. Mely ismérvekkel kell rendelkeznie minden algoritmusnak?

____________________________________________________________________________________
113
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Algoritmusok

A követelmények a következők:

Végesség, Meghatározottság, Kimenet, Bemenet, Hatékonyság.

A végesség azt jelenti, hogy véges számú lépésben véget kell érnie azzal, hogy
meghatározta a kiinduló feladat megoldását. Ez a lépésszám lehet nagyon nagy is, de
nem lehet "végtelen".

A meghatározottság az egyértelműséget jelenti, illetve megköveteli a


félreérthető, vagy kétes megfogalmazások kiküszöbölését.

A bemenet a feladathoz megoldásához szükséges információkat, a kimenet pedig


az algoritmus folyamán meghatározott eredményeket, illetve válaszokat jelöli. Az
algoritmusnak nem feltétlenül szükséges hogy legyen bemenete, de feltétlenül léteznie
kell legalább egy kimenetnek.

A hatékonyság a célratörő, rövid megfogalmazást jelenti, kerülni kell a


felesleges és időpazarló, haszontalan lépéseket

A számítógép a működése közben a programozó által megfogalmazott, alkalmas


és érhető módon leírt (a számítógép számára érthető módon leírt) algoritmusokat hajt
végre.

A továbbiakban az algoritmusok szerkezeti formáival és azok leírásával


ismerkedünk meg. A programírást feltétlen megelőzi a problémát megoldó algoritmus
pontos áttekintése és valamilyen módon való rögzítése. Csak ezután kezdődhet el a
programírás folyamata.

Az algoritmusok szóbeli leírása logikailag éppoly helyénvaló, mint egyéb


jelekkel való rögzítése. Most mégis áttérünk az algoritmusok grafikus ábrázolására,
mert ezzel a folyamatok zajlását vizuálisan is láthatjuk, valamint a beszélt nyelv
esetleges akadályait is kikerüljük.

Ismerkedjünk meg az algoritmusok grafikus ábrázolására használt


szimbólumokkal. A fő szimbólumok a bemenet, a kimenet, az értékadó utasítás és a
döntések meghozatalát jelölő alakzatok. A segédszimbólumok az algoritmus kezdetét és
végét jelölő alakzatok, valamint a lépéseket összekötő kapcsolóvonal, a megszakítási
pontot jelentő csatlakozó és a részalgoritmust (részprogramot) jelölő téglalap. (4.3.1.1.
ábra)
____________________________________________________________________________________
114
Algoritmusok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

in out
1
a,b,c,d,e,f x, y ae-bd → D D=0
0

START SUBROU(A1 ,A2 ,...,An )


STOP 3

4.3.1.1. ábra

A szimbólumok jelentése:

► felső sor, balról jobbra:

– bemenet (in = input), a bemenő adatok az a,b,c,d,e és f változók értékei,


– kimenet (out= output), a kimenő adatok az x és y értékei,
– értékadó lépés: kiszámítandó az ae–bd kifejezés értéke és azt a D változóhoz
rendeljük,
– döntés az algoritmus további menetéről: ha D=0, akkor a logikai "igaz" = 1
irányába folytatjuk, ha D≠0 akkor a logikai "hamis" = 0 vonalat követjük.

► alsó sor, balról jobbra:

– az algoritmus kezdetét a "START", befejezését a "STOP" jel jelenti.


– a megszakítási pontot, illetve a folytatást a megfelelő betűvel vagy számmal jelöljük.
Terjedelmes ábrák esetén a lap szélén vagy alján kénytelenek vagyunk megszakítani
az ábrát és azt a másik lapon folytatni.
– a részprogram jelölését a program nevével és argumentumainak felsorolásával
tesszük.

Tekintsünk egy egyszerű feladatot: adott öt szám: a,b,c,d és e. Állítsunk elő


újabb öt számot, amelyek közül az első megegyezik az adott első számmal. A második
kimenő szám az első és második bemenő szám összege legyen. A harmadik kimenet az
első három bemenet összege, a negyedik kimenet az első négy bemenet összege, és
végül az ötödik kimenet az öt bemenő szám összege legyen!

A feladatot megoldását a 4.3.1.2. ábrán láthatjuk. Az algoritmus kezdetét jelölő


szimbólum után következik az első lépés: a számok értékeinek beolvasása. Figyeljük
____________________________________________________________________________________
115
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Algoritmusok

meg a második lépést: az a és b számokat összeadjuk és az összeget a b változóhoz


rendeljük. Ezzel elveszítettük b bemenő értékét, helyette már az első két szám összege
jelentkezik. Tehát már előállítottuk a második kimeneti számot is. A harmadik lépésben
hasonló módon számítjuk ki az első három szám összegét: összeadjuk a c számot a b
számmal (amely már az első két szám összege) és az eredményt a c-hez rendeljük.
Ezúttal is elveszítünk egy bemenő mennyiséget, de az értékét már beépítettük a kime-
netbe. Azonos módon számítjuk ki d és e új értékét is.

START START
in in

a,b,c,d,e a,b,c,d,e

a+b → b a>b
1

0
b+c → c
1
a<b
c+d → d
0

c+d+e → r c*d*e → r (c+d)e → r


d+e → e

out out
a,b,c,d,e a,b,c,d,e,r

STOP STOP

4.3.1.2. ábra 4.3.1.3. ábra

A hatékonyság követelménye felismerhető: 5 változót alkalmazunk és azokat kimenő


mennyiségekként is felhasználjuk.

A bemutatott algoritmus (igaz, rendkívül egyszerű feladat megoldására szolgál),


jó illusztráció a legegyszerűbb algoritmus-struktúra a lineáris , vagy vonalstruktúra
bemutatására. A vonalstruktúra jellemző ismérvei:
• minden lépés sorra végrehajtódik,
• minden lépést pontosan egyszer végzünk el.

Az újabb egyszerű feladat megoldása az ágazó vonal-struktúrát hívatott


bemutatni. Számítsuk ki az r számot! A szám kiszámításának módja függ az a és b
számok összehasonlításának eredményétől:

____________________________________________________________________________________
116
Algoritmusok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Ha a > b, akkor r = (c + d)e,

ha a < b, akkor r = c + d + e,
és végül,
ha a = b, akkor r = c*d*e.

A feladatot megoldó algoritmus a 4.3.1.3. ábrán tanulmányozható.

Az ágazó vonalstruktúra jellemzői:


• az elágazáson hozott döntés útvonalán a lépések pontosan egyszer végrehajtódnak,
• a nem kiválasztott vonalon sorakozó lépések egyszer sem hajtódnak végre.

A következő algoritmus struktúra a START

ciklikus struktúra. A ciklikus struktúra in


A, n
A∈R
n∈N
ismérve a következő:
1→S
• A ciklus magban elhelyezkedő
lépéseket a végrehajtás folya-
1
mán többször is elvégezzük. n=0

0
S=An
Most szemléljünk az előző n-1→n
feladatokhoz hasonlóan egyszerű out
S
problémát. Adott az A valós szám és n A*S → S

természetes szám. Határozzuk meg az A STOP


szám n-edik hatványát An számot!
4.3.1.4. ábra

Az algoritmus bemenő adatai az A és az n szám. Az első lépésben az S változó


értékét 1-re állítjuk (S lesz a kimenet). Ezután belépünk a ciklusba, és az első dolgunk
megkérdezni, hátha az n=0. Ha így van, akkor befejeztük a munkát, mert Ao = 1, és S
is éppen 1. Ha n nem zérus, akkor "vissza számlálással" csökkentjük n értékét 1-gyel,
valamint S számot az S*A szorzattal helyettesítjük. Most újra megkérdezzük, hogy n
zérus-e már? Ha igen, akkor az előbb még 1 volt, tehát A első hatványát kellett
kiszámítanunk, és S most éppen annyi!

Folytatva az algoritmus elemzését, (próbáljuk meg "lejátszani" például A = 5


és n = 6 esetén) belátható, hogy a kimenő adat valóban An.(4.3.1.4. ábra).

A ciklikus algoritmusok tulajdonságainak jobb megismerése céljából most


tanulmányozzunk egy némileg összetettebb algoritmust: Számítsuk ki valamely pozitív
szám négyzetgyökét a NEWTON - féle iterációs képlet segítségével. Az olvasó a
matematikai analízis eszközeinek megismerése folytán találkozhat a következő
sorozattal:
____________________________________________________________________________________
117
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Algoritmusok

xn+1=(xn+z/xn)/2, n=0,1,2,...

START A sorozat első elemét ismernünk


in kell, minden további elemet a megelőző
Z ≥0
Z, ε felhasználásával számíthatjuk ki. Ezt az
ε>0
eljárást iterációnak nevezzük. Az
Z+1 → a iterációval még találkozunk egy másik
algoritmus kapcsán. Legyen xo= z + 1.
(a+Z/a)/2 → V A sorozat a z szám négyzetgyökéhez
konvergál, vagyis:
1 lim x n = z .
|a-V|<ε V≈√ Z n →∞

Határozzuk meg a sorozatnak


0
out annyi elemét, hogy azok egymástól való
V→a V
különbsége már nem haladja meg az adott,
tetszőlegesen kicsiny pozitív ε számot.
STOP
Most nem tudjuk előre, hogy hányszor
kell ismételni a sorozat újabb elemének
4.3.1.5. ábra kiszámítását. A munkát akkor fejeztük be,
ha az elemek különbsége nem nagyobb az
adott ε-nál..

Ezzel már felismertük a ciklikus algoritmusok egyik osztályozási módját: az


egyik csoportba azok az algoritmusok tartoznak, amelyeknél a ciklus "körbejárását"
számláljuk, és pontosan ismert hányszor kell elvégezni a ciklusmag lépéseit. Erre volt
példa a hatványozás algoritmusa. A másik típusnál nem ismert előre a körbejárások
száma, hanem az elért pontosság után léphetünk ki a ciklusból. Ez a szám lehet igen
nagy is sőt, hibás feltételezés alapján végzett nem konvergens iteráció esetén az
algoritmus sohasem fejeződne be ha nem építünk be ellenőrző pontot, amely
megszakítja a végrehajtást, ha a
kívánt pontosságot nem értük el
? 1
.......
bizonyos behatárolt lépésszám
.......
0 után.A 4.3.1.6. ábrán a ciklikus
....... ....... algoritmusok más elv alapján való
.......
.......
.......
megkülönböztetését mutatjuk be.
A baloldali ábrán a kilépési
1
....... ?
kritériumot a ciklusmag előtt
....... 0 .......
ellenőrizzük, ez az úgynevezett
előtesztelés (lehetséges, hogy
4.3.1.6. ábra

____________________________________________________________________________________
118
Algoritmusok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

egyetlen lépést sem végzünk el a ciklusmagból.) Az utótesztelés esetében a ciklusmag


lépéseit legalább egyszer elvégezzük.

Több ciklikus részalgoritmusból összetevődő terjedelmesebb algoritmus


megszerkesztésekor ügyelni kell a ciklusok helyes szervezésére:

.......

0
.......
?
0
?
1
0
1
?
0
? 1
1
0 .......
?

0
?
1
0
?

9
1 1

0
4.3.1.8. ábra 4.3.1.9. ábra
?

A baloldali és a fenti középső ábra a ciklusok helyes

9
szervezési formáit jelképezik. A 4.3.1.7. ábra az úgynevezett
soros szervezést mutatja, míg a 4.3.1.8. ábrán a koncentrikus
ciklusokat rajzoltuk meg. A 4.3.1.9. ábrán a leggyakoribb hibás
4.3.1.7. ábra ciklusszervezés látható. A ciklusok metszik egymást és ez
konfliktust okoz: az ilyen algoritmuson alapuló program vég-
telen hurokba "fullad".

Feladatok: Rajzoljuk meg a következő feladatok megoldására szolgáló


algoritmusok ábráit:
1. Az ax2+bx+c=0 másodfokú algebrai egyenlet megoldása. Bemenő adatok
az a,b,c számok, kimenő adatok az x1 és x2 gyökök.
2. Az y=3x+5 függvény táblázatát "kinyomtató" algoritmust az x=-10
kezdő értéktől a befejező x=10 értékig minden x egész számra. (Az algoritmusnak
bemenő adata nincs, de 21 kimenő adat keletkezik!)

4.3.2. NUMERIKUS ALGORITMUSOK

4.3.2.1. POLINOMOK

A továbbiakban bemutatunk néhány numerikus algoritmust a legszükségesebb


kommentárokkal ellátva, ám az olvasónak önállóan is elegendő erőt kell bevetnie ahhoz,
____________________________________________________________________________________
119
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Algoritmusok

hogy az algoritmusok működését megértse. Ha programírásra kerül a sor, természetes,


hogy a bemenetet és a kimenetet a megfelelő szövegkísérettel is ellássa a programozó.
Fontos még megjegyezni, hogy a bemenő adatok szükséges ellenőrzését, a véletlen,
vagy szándékos hibák "kivédését" ezek az algoritmusok nem ábrázolják – mindezeket a
lépéseket a programozónak önállóan kell beépítenie a forráskódba.

Tekintsük az alábbi két polinomot:


Pn(x) = anxn + an-1xn-1+ ... + a2x2 + a1x + ao
Qm(x) = bmxm + bm-1xm-1+ ... + b2x2 + b1x + bo
1

START 0→i
in

n,m,j in
bi
0
n< m

1 0
i=m i+1 → i
m→ k n→k
1

0
j=1
0→i
1

1→s −1 → s
0 → ai

0 → bi 0→i

0
i=k i+1 → i
a i +s*b i → ci
1

0→i i=k 0
i+1 → i
1
in
ai 0→i

o ut
0 ci
i=n i+1 → i
1
0
i=k i+1 → i
1
1

STOP

4.3.2.1.a. ábra

Nyilvánvaló, az általános esetben n ≠ m. Az itt megrajzolt algoritmus szerint


előbb beolvassuk a polinomok fokát, m és n számokat valamint a j számot ( ha j=1,
akkor a polinomokat összeadjuk, ha j bármilyen más értékű – mondjuk 0, akkor Pn(x)
polinomból kivonjuk Qm(x) polinomot.) Az összeg vagy különbség-polinom foka
k=max(n,m), együtthatóit ci jelöli (i = 0,1,2, ... , k) (4.3.2.1.a ábra)
____________________________________________________________________________________
120
Algoritmusok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Az előző feladatban szemlélt polinomok szorzatának foka k=n+m. Az olvasóra


bízzuk, hogy a 4.3.2.1.b. ábra tanulmányozásával a polinomok szorzására működő
programot írjon valamely magas szintű programozási nyelven.

START
in

n,m

0→i

in
ai
0→i

0
i=n i+1 → i 0→j
1

0→i a i *b j +ci +j → ci +j

0
in j=m j+1 → j
bi
1

0
0
i=m i+1 → i i=n i+1 → i

1 1

n+m → k 0→i

out
0→i ci

0 → ci i=k
0
i+1 → i

1
0
i=k i+1 → i STOP
1

4.3.2.1.b. ábra

Feladat: Adott a Pn(x) polinom együtthatóinak halmaza (bemenet). Rajzolja


meg a polinom értékének kiszámítását végző algoritmust a HORNER elrendezés alapján
az x=a helyen (az a szám a bemenet, V=Pn(a) kimenet).

____________________________________________________________________________________
121
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Algoritmusok

4.3.2.2. SOROZATOK ÉS MÁTRIXOK

A polinomok együtthatóinak halmazát is


MATRIXIN( a, n, m)
tekinthetjük sorozatoknak (különös az, hogy a
in
n,m
kezdő index 0 és nem 1. Sorozatok esetében
rendszerint 1-től indulunk, a mátrix dimenziói is
1→i 1-től n-ig illetve 1-től m-ig terjednek.
Vezessünk be a "számláló" ciklikus a
1→j
algoritmusok ábrázolására egy egyszerűbb
in
ai j jelölésmódot. Ez a mód egyébként a magas
szintű programozási nyelvek utasítás készletének
j=m
0
j+1→j is megfelel. Az ábrázolás-módot egy rész
1 algoritmus rajzán mutatjuk be amely egy n×m
i+1→i
0
i=n típusú mátrix elemeinek beolvastatására, illetve
kiírására alkalmazható. A 4.3.2.2.a. ábrán a
RET
feladatot az eddigi "szokásos" módon oldottuk
meg, míg a 4.3.2.2.b. ábrán a mátrix elemeinek
4.3.2.2.a. ábra beolvasását, a 4.3.2.2.c. ábrán pedig a kiírását
ábrázoltuk a rövidebb módon.

MATRIXIN( a, n, m) MATRIXOUT( a, n, m)
in in
n,m n,m

i = 1,n i = 1,n

j = 1,m j = 1,m

in
o ut
ai j ai j

RET RET

4.3.2.2.b. ábra 4.3.2.2.c. ábra

Most már nem nagy probléma megrajzolni két n×m típusú mátrix összegének,
illetve egy n×m és egy m×k típusú mátrix szorzatának kiszámítását végző algoritmust.

A mátrixok összeadását a 4.3.2.2.d. ábrán rajzoltuk meg, a szorzást pedig a


4.3.2.2.e. ábrán mutatjuk be.
____________________________________________________________________________________
122
Algoritmusok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

START

MATRIXIN(A,N,M)

START
MATRIXIN(B,M,K)
MATRIXIN(A,N,M)

MATRIXIN(B,N,M) i = 1,N

j = 1,K
i = 1,N
0 → Ci j
j = 1,M
p = 1,M

Aij +Bij → Cij


Aip* Bpj +Cij → Cij

MATRIXOUT(C,N,M)

STOP MATRIXOUT(C,N,K)

4.3.2.2.d. ábra STOP

4.3.2.2.e. ábra
Feladatok:
1. Rajzolja meg az elemi mátrixtranszformációk részalgoritmusait:
a) Az adott n×m típusú mátrix adott k-adik sorának adott A≠0 számmal való osztása,
b) Az adott n×m típusú mátrix adott i-edik sorának a k-adik sorával való cseréje,
c) Az adott n×m típusú mátrix adott i-edik sorának hozzáadása a k-adik sorához

2. Rajzolja meg az adott n×n típusú négyzetes mátrix felső háromszög-mátrixra való
átalakítását az 1. feladat részalgoritmusainak beépítésével (GAUSS-algoritmus).

3. Rajzolja meg az adott n×m típusú mátrix oszlopait (sorait) összegző algoritmust.
A kimenet az oszlopösszegek sorvektora (sorösszegek oszlopvektora).

4. Rajzolja meg az adott n×n típusú négyzetes mátrix főátlóján ( aii , i=1,2,...,n)
elhelyezkedő elemeket összegző algoritmust. (A mellékátló elemei: ai,n+1-i)

5. Rajzolja meg az adott n×m típusú mátrix transzponálását végző algoritmust.

6. Adott két n×n típusú négyzetes mátrix A=[aij]n,n és B=[bij]n,n. (n≤50). Rajzolja
meg a C=[ci]n sorozatot (sorvektort) előállító algoritmust, ha a sorozat elemei az A
mátrixnak a B mátrix transzponáltjával való szorzata után nyert mátrix oszlopainak
maximális elemei
____________________________________________________________________________________
123
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Algoritmusok

4.3.2.3. SZÁMHALMAZOK RENDEZÉSE ÉS A KÖZÉPÉRTÉK

A tömeges adatfeldolgozás egyik sarkalatos feladata az adatok (számok, szavak


vagy egyéb egymással összehasonlítható objektumok) emelkedő vagy csökkenő
sorrendbe való rendezése. Már három bemenő szám esetén is legalább két
összehasonlítás szükséges, de legfeljebb három összehasonlítással megoldható a feladat.
Kedvező esetben (a számok már növekedő sorrendben adottak) nincs szükség az értékek
felcserélésére, a legkedvezőtlenebb pedig az,
START
amikor az értékek sorrendje éppen fordított. Ez in

utóbbi esetben három összehasonlítás és három N

értékcsere történik. A memória racionális


1→i
kihasználása érdekében a bemenő változók és a
in
kimenő változók jelölése azonos: a, b, c. Ai

(4.3.2.3.a. ábra).
0
i=N i+1 → i

1
START
1→i
a
in
?
a,b,c b c Ai → min

0 i +1 → j
b<a

1
1
a→m j>N

0
min → Ai
b→a 0
Aj < min

m→ b 1

Aj → r
0
c<b
min → Aj
1

c→m r → min

i +1 → i
b→c j +1 → j

0 1
m<a i<N
0
1
1→i
m→ b a→b
out
Ai
m→ a

0
out
i +1 → i i=N
a,b,c a≤b≤c 1

STOP
STOP

4.3.2.3.a. ábra 4.3.2.3.b. ábra


____________________________________________________________________________________
124
Algoritmusok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

A rendezés legegyszerűbb ( ám az algoritmusok racionális megszerkesztése


szempontjából nem a legjobb) rendezési algoritmust a 4.2.3.2.b. ábrán rajzoltuk meg. A
ciklus első körében az n szám legkisebbikét az első helyre hozzuk, a második körben
(az 1. elemet már kihagyva) a következő n-1 elem legkisebbikét hozzuk a második
helyre. Nyilvánvaló, hogy közben a szükséges cseréket elvégezzük! A folytatás logikája
azonos: most mér a harmadik elemtől kezdjük a legkisebb elem keresését és azt a
harmadik helyre cseréljük, és így tovább.

START
START
in
in

N N

1→i 1→i

in
in
Ai Ai

0
i=N
0
i+1 → i i=N i+1 → i

1
1

1→i 1→i

i→m 0 → sig

i +1 → j i +1 → j

1
1 j>N
j>N
0
0
Am → r sig > 0
1
0
0
Aj < Am Aj < Ai
0
Ai → Am 1
1
1→i
Aj → r
j→m r → Ai
out
Ai → Aj Ai
j +1 → j i +1 → i

r → Ai
0
1 i=N i +1 → i
i<N
sig +1 → sig 1
0
STOP
1→i

i +1 → i
o ut
Ai

0
4.3.2.3.d ábra
i +1 → i i=N

STOP

4.3.2.3.c ábra

____________________________________________________________________________________
125
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Algoritmusok

A 4.3.2.3.c ábrán bemutatott algoritmus az előbbinek egy racionalizáltabb


változata (összehasonlítgatás közben csak az elemek indexét jegyzi meg és csak a ciklus
végén cseréli az elemek értékét.) A 4.3.2.3.d. ábrán egy "intelligensebb" algoritmust
tanulmányozhat az olvasó. Az előző két algoritmus "szorgalmasan" elvégzi az n(n-1)/2
összehasonlítást akkor is ha történetesen a számok már jó sorrendben vannak és
egyetlen cserét sem kell elvégezni. Ez az utóbbi algoritmus a ciklus egy átfutásával már
érzékeli az esetleges jó sorrendet és leáll.

A legegyszerűbb (és legalapvetőbb) statisztikai számítási eljárás egy adott


alaphalmaz számtani középértékének és szórásnégyzetének (esetleg a szórásának)
meghatározása.
START
in

n
START
0→E
0→E
0→D
0→D
1→i
0→n
in
in
ai
a
a*a + D → D
ai + E → E
n+1 → n a+E→ E
a i *a i + D → D
0
a=0
0
i=n i+1 → i 1

1 E/n → E

E/n → E
D/n + E2 → D

D/n + E2 → D
D1/2 → D

D1/2 → D ou t
E, D, n
ou t
E, D
STOP

STOP

4.3.2.3.e. ábra. 4.3.2.3.f. ábra

____________________________________________________________________________________
126
Algoritmusok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Valamely {a1, a2, a13 ,... , an} halmaz számtani középértékén az

n
E(a) = ā =( ∑ a i )/n
i =1

számot értjük. Ugyanezen halmaz szórását a következőképpen számítjuk ki:

n
D(a) = σ =[( ∑ a i2 )/n – (ā)2] .
1/2
i =1

Ha a halmaz elemeit meg kell őrizni további vizsgálatok miatt, akkor a


beolvastatást egy sorozat elemeiként végezzük. (4.3.2.3.e. ábra). Ezzel szemben
lehetséges az is, hogy a halmaznak csak középértékére és szórására vagyunk kíváncsiak,
az egyéni értékek a továbbiakban feleslegesek. Ezért a számok egyenkénti beolvasása és
kumulálása utén azonnal "elfelejtjük" azokat (ez is a tár kapacitás racionális
kihasználása végett. 4.3.2.3.f. ábra.)

4.3.2.4. TRIGONOMETRIA ÉS A π
A az egyváltozós függvények analízisének tanulmányozása közben találkoztunk
a függvények TAYLOR illetve MACLAURIN sorával. Két sorbafejtéssel foglalkozunk,
természetesen az algoritmusok végességének követelménye alapján meghatározott ε>0
pontosságig számítjuk majd ki az összeadandókat.

Az alábbi sorokat alkalmazzuk majd:

x1 x 3 x 5 x 7
sin(x) ≈ – + – +... (– ∞ < x < ∞)
1! 3! 5! 7!

és a James Gregory által 1671-ben felfedezett

x1 x 3 x 5 x 7
arctg(x) ≈ – + – +... (–1 ≤ x ≤ 1).
1 3 5 7

Szemléljük a 4.3.2.4.a. és 4.3.2.4.b. ábrát. Az első tetszőleges X bemenő értékre


kiszámítja az arctg(X) számot. A ciklus mindaddig ismétlődik míg az újabb kiszámított
tag abszolút értéke nem csökken az adott ε szám alá. A második ábra a π szám
kiszámításának egyik módját mutatja.

____________________________________________________________________________________
127
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Algoritmusok

ARCTG( X )

in
START
X, ε
ARCTG(1/8)
0 → atgx
24*atgx → A
X→ Z
ARCTG(1/57)
1→n
8*atgx → B

1
|Z|<ε ARCTG(1/239)

o ut
0
atgx 4*atgx → C
atgx + Z → atgx
A+B+C → pi
n+2→n
RET
out
pi π
Shanks & Wrench
(-1)*Z*X → B
2

B/n→Z
STOP

4.3.2.4.a. ábra 4.3.2.4.b. ábra


X+Y
A Gregory féle sort az arctg(X) + arctg(Y) = azonossággal
1 + XY
kombinálva a π kiszámolására szolgáló képleteket nyerjük:

π
a) = 5 arctg(1/7) + 2 arctg(3/79) (Georg von Vega)
4
π
b) = arctg(1/2) + arctg(1/5) + arctg(1/8) (Zaharias Dahse)
4
π
c) = 4 arctg(1/5) – 2 arctg(1/239) (John Machin)
4
d) π = 24 arctg(1/8) + 8 arctg(1/57) +4 arctg(1/239).

Az utolsó azonosságot Störmer fedezte fel 1896-ban. Shanks és Wrench ezt a


képletet alkalmazták (1967) egy IBM 7090 típusú számítógépen és a π számot százezer
tizedes jegyig számították ki, majd számításaikat ellenőrizték a GAUSS-tól származó

π = 48arctg(1/18) + 32arctg(1/57) – 20 arctg(1/239)

képlettel és a 70695 tizedes jegy után hibát találtak. Gondolkodjon el az olvasó azon,
hogyan lehetne a tizedes jegyek valamilyen sorozatban való tárolásával eljutni mondjuk
a 200 000-dik tizedes jegyig.
____________________________________________________________________________________
128
Algoritmusok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

SINDEG(d, m , s) Nyilvánvaló, hogy az itt tárgyalt két sor


o
0≤ d < 90 kiszámítására szolgáló algoritmusok beépítésével
d, m, s, ε
0≤ m'< 60 kiszámítható bármely szögfüggvénynek és
0≤ s''< 60
ε >0 inverzének értéke, például:
3.14159265...→ pi
cos(X) = sin(π/2 – X) ,
d+(m+s/60)/60 → xdeg
tg(X)=sin(X) / cos(X),
X
(xdeg*pi)/180 → X arcsin(X) = arctg .
1- X2
0 → sinx
A 4.3.2.4.c. ábra a sin(X) kiszámításának
X→ Z algoritmusát ábrázolja. Ezen az ábrán a bemenet
fokokban - percekben - másodpercekben van
1→n
feltüntetve. Nyilvánvaló, ha a szög ívmértékkel
adott (radián), akkor csak X és ε a bemenő adat és
|Z|< ε kimarad az algoritmus első három értékadó lépése,
out
amelyek a fokokat konvertálják ívmértékre.
sinx
sinx + Z → sinx

n+2→n Feladatok: A fejezetben több kérdés is


RET felvetődött. Az olvasó rajzolja meg például a
n * (n-1) → D
cos(X), a tg(X) és az arcsin(X) vagy arccos(X)
(-1)*Z*X2 → B kiszámítására szolgáló algoritmust.

B/D→Z

4.3.2.4.c. ábra

4.3.2.5. PRÍMSZÁMOK ÉS BŰVÖS NÉGYZETEK

Végezetül bemutatunk még néhány algoritmust a számelmélet vagy csak az


úgynevezett "szórakoztató" (?) matematika területéről. A példák tanulmányozása segít
az olvasónak, hogy könnyebben elsajátítsa ezt a sajátságos gondolkodásmódot, amelyet
programírás alkalmával mindenképpen alkalmazni kell.

A. feladat: Bontsuk az N számot prímtényezők szorzatára! A megoldás folyamán


az úgynevezett ERATOSZTÉNESZI szitát alkalmazzuk. Az első prímszámtól (2)
indulunk és addig próbáljuk a számot ezzel osztani, amíg csak lehet. Miután már ez nem
lehetséges, bizonyos, hogy a szám nem osztható az éppen alkalmazott prímosztó
többszörösével sem. A próbálkozásokat az N szám négyzetgyökéig végezzük, mert

____________________________________________________________________________________
129
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Algoritmusok

ennél nagyobb prímosztója nincs egyetlen számnak sem (kivéve ha a szám prímszám –
akkor pedig a felbontás triviális) Lásd: 4.3.2.5.a. ábra.

START B. feladat: Gyakori


in
probléma az is, amikor egy
N
adott X számról azt kell
1→j megállapítani, hogy eleme-e
az adott A1, A2, ..., AN
2→i
növekvő sorrendbe rende-zett
N→ m halmaznak. Mivel ez a
halmaz lehet igen terjedel-
0 → cj
mes is, bizonyos, hogy az X
0 → dj számnak a halmaz
mindegyik elemé-vel való
1→Q összehasonlítása hossza-
dalmas és nem hatékony.
Q +1 → Q
1
Q*i<m Ilyenkor az ú.n. bináris
keresést alkalmazzuk:
0

Q*i=m
0
Megkeressük a 2 legkiseb
hatványát, amely nagyobb
1 dj = 0
Q→m
az elemek N számánál.
0

i → dj j+1→j Tehát k = 2n ≥ N Ezután


a felezés módszerével
1 + cj → c j i+1→i
végezzük az összehasonlítást.
0 d1 = 0
0 A keresés legfeljebb n
m=1
összehasonlítás után
1

1→k
befejeződik: vagy úgy hogy
0
i > N1/2 megtaláljuk azt a k indexet
out
d k, ck o ut
1
amelyre Ak = X, vagy Ak-1
N "prime" < X ≤ Ak vagy Ak ≤ X <
k+1→k k<j
0
Ak+1 . A bináris keresés
STOP algoritmusa a 4.3.2.5.b. ábrán
tanulmányozható.

4.3.2.5.a. ábra

____________________________________________________________________________________
130
Algoritmusok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

START
in

1
A1 > X

A1≤ A2≤ A3≤ ... ≤ AN 0

1 X <A 1 | A N < X
AN < X

0 ou t
"error"
1→k

STOP
2k → k

1
k<N

k/2 → k

k→L

1
Ak < X

Ak > X 1

0 1
1
L=1 L=1

0
0
L/2 → L
L/2 → L

k+1 → k k-1 → k k-L → k


k+L → k

X=A k A k ≤ X < A k+1


0
k>N

1 A k -1 < X ≤ A k
o ut

L/2 → L k

k-L → k
STOP

4.3.2.5.b. ábra

____________________________________________________________________________________
131
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Algoritmusok

C. feladat: A bűvös négyzet kitöltése, amelynek mezőszáma páratlan. Legyen a


bemenő adat n, a bővös négyzet mezőszáma pedig m2=(2n+1)2. Kitöltésre bármelyik
számtani sorozatot felhasználhatjuk (az ábrázolt algoritmus az 1,2,3,...,m2 sorozatot
használja). A kitöltés szabályait és az algoritmust a 4.3.2.5.c. ábra mutatja – de
mindenekelőtt tudni kell, hogy az első sor középső mezőjéből indulunk! "Játsszuk" el
ezt a játékot!
1 2a

k+1 k+1

k k

2b 3a

k 3b ?

k
START k
in k+1
M k+1

k+1
2*M+1 → N

i=1,N

1
j>N
j=1,N
1→j 0

0→Ai j

1
Aij=0

k→1 1
j>N

0
1→i i+2→i

N→ i
m+1→ j j-1→j

k→ Ai j

k +1 → k

1
k > N2
i=1,N 0

i -1 → i
j=1,N
j +1 → j
o ut
Ai j

1
i=0

STOP

4.3.2.5.c. ábra

____________________________________________________________________________________
132
Algoritmusok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

D. feladat: Most egy olyan probléma következik, amely nincs eldöntve: véges-e
ez az algoritmus minden bemenő adat esetén, esetleg van olyan szám, amelyre
"eltéved". Mindenesetre, az eddigi próbálkozások mindegyike még befejeződött.
Kísérletezzen az olvasó is! A feladat a következő: Számítsuk ki annak a sorozatnak az
elemeit, amelynek első tagja a bemenő adat. A további tagokat a következőképp
határozzuk meg: ha az i-edik tag páros szám, akkor az i+1-edik tag az előzőnek a fele.
Ha az i-edik tag páratlan szám, akkor a következő elemet úgy nyerjük, hogy az i-edik
tagot megszorozzuk hárommal és még hozzáadunk 1-et. A sorozat befejeződik, ha a
következő elem értéke 1. (4.3.2.5.d. ábra)

START
in
M

M→k

1→n

k → cn max(cn )=?

1→q

1
q+1 → q 2*q < k

1
2*q = k

3*k+1 → k q→k

0
n+1→n k=1

1→i

out
ci

?( n < ∞ )?
0
i+1→i i<n

STOP

4.3.2.5.d. ábra

____________________________________________________________________________________
133
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Algoritmusok

E. feladat: Az algoritmusokról szóló fejezet befejező illusztrációja mág egy


iterációs algoritmus. A nevezetes FIBONACCI sorozat is ezen algoritmus speciális
eseteként állítható elő. A feladat lényege a következő:
– adott N szám (konstans – állandó): b1,b2,b3, ... , bN , és
– adott az An sorozat első N eleme: A1,A2,A3, ... , AN.

A sorozat további tagjait a következő rekurzív képlettel határozzuk meg:


Ak+1 = b1 Ak-N-1 +b2 Ak-N-2 +b3 Ak-N-3 +... + bN-1 Ak-1 + bN Ak,
ahol k=N+1, N+2, ...

A FIBONACCI sorozatnál N=2, b1=b2=A1=A2=1. Vagyis Ak+1=Ak+Ak-1.


A sorozat első néhány eleme tehát 1,1,2,3,5,8,13,21,34,55,...Az
általános algoritmust a 4.3.2.5.e. ábrán rajzoltuk meg.

START
in Fibonacci
N= 2
N, M A 1 = A 2 = b1 = b2 = 1
M = 3,4,5,...

1→i

in
Ai , b i

1
i<N i+1 → i

0
i<M

i+1 → i 1→i

ou t
0 → Ai Ai

1→j 1
i<M i+1 → i

0
Ai + bj * Ai-N+j → Ai
STOP

1
j=N

j+1 → j

4.3.2.5.e. ábra

____________________________________________________________________________________
134
Algoritmusok SZÁMÍTÁSTECHNIKAI ALAPISMERETEK

Feladatok:

Az alábbi feladatok sorszáma után a kerek () zárójelben lévő szám a [10] forrás-
munkában található feladatok sorszámaira utal. a {..} zárójelben található szám a [23]
könyvben található feladatot jelöli. Egyszerűség és rövidség kedvéért elhagytuk a
feladatokból a "Rajzolja meg az algoritmus folyamatábráját, amely ..." szövegrészt, és
csak a bemenő adatokat (ha léteznek) és a kimenő adatokat soroltuk fel , valamint a
megoldandó probléma lényegét, illetve a kiszámítandó formulát adtuk meg.
1. (7) Bemenet az N szám, kiszámítandó a Z=N(N+1)(N+2) szám, kimenet az N és
a Z szám.
2. (10) Bemenet a pont (x,y) koordinátái a Descartes féle koordináta rendszerben,
kimenet a pont polár koordinátái (ρ,ϕ), ahol ρ=(x2+y2)1/2, ϕ=arctg(y/x).
3. (15) Bemenet: négy szám, kimenet a négy szám, a számok négyzetei és a
négyzetek összege.
4. (19) Bement a k egész szám, ha k negatív szám akkor még bekéri az n számot is
és előállítja az m=n3–k3, a kimenet k, n és m. Ha k pozitív szám akkor csak
előállítja az m=k2+k+1 számot, kimenet a k és az m szám. Ha k=0 akkor nem
végez semmilyen számítást az algoritmus.
5. (23) Bemenet az A, B, C és D logikai változók, kimenet a Z=(A+B′ +C)⋅D.
6. (25) Bemenet nélkül előállítani a Z=(A+B⋅C) ⋅D′ logikai függvény táblázatát.
7. (43) Bemenet egy háromjegyű szám, kimenet a szám középső számjegye.
8. {1.4.5} Bemenet az X és az Y halmaz elemei: kimenet a két halmaz uniójának
valamint metszetének elemei: X={x1, x2, ..., xm} és Y={y1, y2, ..., yn}.
9. {1.4.6} A bemenet 1 ≤ N ≤ 3999 természetes szám, kimenet a szám római
számírással. Oldja meg a fordított feladatot is!
10. (67) Bemenet N1 és N2 természetes szám, kimenet a két szám közé eső páratlan
természetes számok összege S.
11. (72) Bemenet összesen 80 egyjegyű szám, kimenet: a 0-tól 9-ig terjedő
számjegyek megjelenésének gyakorisága a 80 szám között.
12. (79) Bemenet az n természetes szám, kimenet az első n 3-mal osztható szám
négyzeteinek összege: S=32 + 62 + 92 +122 +... + (3n)2 .
13. (88) Bemenet y, x1, x2 és x3. Előállítani az Z=f(x,y) függvény táblázatát x1-től
x2 -ig x3 nagyságú lépésekkel, ha x+y>0 ⇒ Z=x2+3y, x+y=0 ⇒ Z=x2–2y és
x+y<0 ⇒ Z=x2–y.
14. (112) Kísérletezéssel keressük meg mindazokat a derékszögű háromszögeket,
amelyek oldalainak mérőszáma 100-nál nem nagyobb egész szám. Kimenet a
megtalált számhármasok sorozata.
15. (128) Számítsa ki az ex szám értékét a következő sor alapján:
ex = 1 + x + (x2)/(2!) +(x3)/(3!) +(x4)/(4!) +(x5)/(5!) + ... A bemenő értékek az x
és a pontosság ε.
16. (141) A bemenő adat az X decimális szám, kimenet a szám bináris felírása. A
legnagyobb bináris szám nem haladhatja meg a 111111(2) számot.
17. {1.4.7} Bemenet az A n×n típusú négyzetes mátrix (n ≤ 20).
• adjuk meg az A mátrix főátlóján lévő elemek összegét,
• adjuk meg az A mátrix mellék átlóján lévő elemek összegét,
• adjuk meg az A mátrix főátlója feletti elemek összegét,
• adjuk meg az A mátrix mellékátlója alatti elemek összegét.
____________________________________________________________________________________
135
SZÁMÍTÁSTECHNIKAI ALAPISMERETEK Algoritmusok

Ellenőrző kérdések.

1. Határozza meg az algoritmus fogalmát!


2. Mely követelményeket kell teljesítenie minden algoritmusnak?
3. Mit jelent az algoritmus végességének követelménye?
4. Mit jelent az algoritmus meghatározottságának követelménye?
5. Mit jelent az algoritmus bemenet/kimenet követelménye?
6. Mit jelent az algoritmus hatékonyságának követelménye?
7. Mely szabványosított grafikus szimbólumokat alkalmazzuk az algoritmus
ábrázolására?
8. Mely alapvető algoritmus-struktúrákat különböztetjük meg?
9. Mi jellemzi az egyszerű vonalstruktúrájú algoritmusokat?
10. Mi jellemzi az ágazó struktúrájú algoritmusokat?
11. Mi jellemzi a ciklikus struktúrájú algoritmusokat?
12. Osztályozza a ciklikus algoritmusokat a ciklusból való kilépés kritériuma
alapján.
13. Osztályozza a ciklikus algoritmusokat a ciklusból való kilépés kritériumának
helyzete alapján.
14. Melyek a ciklikus algoritmusok helyes szervezési formái, illetve melyik a
leggyakoribb hibás szervezési forma?
15. Mely és milyen kezdőértékek beállítása kötelező az "összegző" ciklikus
algoritmusoknál?
16. Mely és milyen kezdőértékek beállítása kötelező a "szorzatkiszámító" ciklikus
algoritmusoknál?
17. Hogyan oldható meg az A egész számnak B számmal való oszthatóságának
kérdése (a maradék meghatározásával együtt) az osztás műveletének
alkalmazása nélkül?
18. Mit jelent az algoritmusban (illetve az ekvivalens programlépésben) az f(a)→a,
hozzárendelés, ahol ugyanaz a változónév szerepel az értékadó és az értékfogadó
oldalon is?
19. Mutasson egy egyszerű példát amikor az algoritmus "végtelen hurokba" fullad!
20. Tudja-e, hogy hány tizedes jegy pontosságig számolták ki a hírneves cégek a
"mindent tudó" számítógépeiken a π számot? Gondolkodjon el a kérdésen: a
számítógép "kapacitása" mégis csak véges. Ha "végtelen kapacitású"
számítógépe lenne, hogyan számítaná ki a π számot tetszőlegesen sok tizedes
jegy pontosságig? Szerkessze meg az algoritmust!

____________________________________________________________________________________
136
A FELHASZNÁLT IRODALOM

1 Bodnár I., Nagy Z. PC hálózatok és Internet


PC-START STÚDIÓ Budapest, 2000.
2 Boroš I. Računske mašine i osnovi programiranja
Građevinski Fakultet, Subotica, 1979.
3 Ćalasan L. Petkovska M. MATLAB i dodatni moduli
Mikro Knjiga Beograd, 1997.
Organizacija i funkcionisanje digitalnih
4 Čuljat K.
kompjutera
Stvarnost Zagreb, 1971.
Cullman G., Denis-Papin M.,
5
Kaufmann A.
A hír tudománya
Gondolat, Budapest, 1978.
6 Farkas Miklós szerkesztő Matematikai Kislexikon
Műszaki Könyvkiadó, Budapest, 1972.
7 Gluškov. V.M. Sinteza cifarskih automata
Zavod za izdavanje udžbenika Beograd, 1967.
8 Gluškov. V.M. Uvod u kibernetiku
Zavod za izdavanje udžbenika Beograd, 1967.
9 Hansen A. Programiranje na jeziku C
Mikro knjiga Beograd, 1991.
10 Jegeš Z. i ostali Zbirka zadataka iz programiranja
VTS Subotica, 1988.

Priručnik za praktikum iz pedagoške


11 Kakašić-Milošević-Ćetković-Boroš
informatike i računarstva
Pedagoška Akademija, Subotica, 1991.
12 Kakašić-Milošević-Ćetković-Boroš Matematika sa metodikom
Pedagoška Akademija, S. Mitrovica, 1991.
13 Kekić Zlatko Kibernetika
Privreda Zagreb, 1962.
14 Kovács Magda és mások Bevezetés a számítástechnikába
LSI Oktatóközpont, Budapest, 1999.

You might also like