You are on page 1of 69

P

EURPAI UNI

STRUKTURLIS ALAPOK
T

M

R
N

K
I

I
N
F
O
R
M
A
T
I
K
A
BMEEOFTAT07 segdlet a BME ptmrnki Kar hallgati rszre

Az ptsz- s az ptmrnk kpzs szerkezeti s tartalmi fejlesztse

HEFOP/2004/3.3.1/0001.01
MSZAKI PROBLMK MEGOLDSA SZMTGPEN

1. elads: Mszaki problmk megoldsa szmtgpen


Tartalom:1. Mrnki feladatok tpusai; 1.1 Tervezs; 1.2 Analzis; 1.3 Szablyozs; 2. Szimulci;
2.1 Hasonlsgi trvnyek; 2.2 Folyamatok izomorfizmusa; 2.3 Matematikai analgia; 3.
Modellek; 3.1 Fizikai modell; 3.2 Matematikai modell; 3.3 Algoritmizls; 3.4 Szmtstechnikai
modell; 3.5 Szmtgpi program; 3.6 Modell validci.

1. Mrnki feladatok tpusai

Informatikai illetve rendszerelmleti szempontbl a mrnki feladatokat hrom csoportba


sorolhatjuk: tervezs, analzis s szablyozs.
Ez a feloszts termszetesen nknyes s nem diszjunkt, a valsgban gyakran tfeds van
kzttk. Nagyon fontos figyelembe venni, hogy egy mrnki feladatnak nem csupn tbb
megoldsa lehetsges, mint egy matematikai problmnak, hanem a megoldsa matematikai
rtelemben nem egyrtelm, szigoran tekintve nem algoritmizlhat. A feladat egyrtelmv
ttelvel a szaktrgyak foglalkoznak.

1.1 Tervezs

A tervezs egy olyan tevkenysg, amely egy j, mg meg nem lv objektum, berendezs,
rendszerjellemzinek (szerkezeti, geometriai, energetikai, szilrdsgi, eszttikai stb), megadott
krlmnyek melletti, elrt feltteleket kielgt meghatrozsra irnyul. Fontos szerepet kap a
megvalsthatsg (technikai s technolgiai lehetsgek) illetve valamilyen (mszaki illetve
gazdasgi) szempontbl val optimalizls krdse.

1.2 Analzis

Vagyis annak elemzse, vizsglata, hogy egy mr meglv illetve megtervezett berendezs
esetn, miknt vltoznak a tervezs sorn meghatrozott, a tervezsi krlmnyeket kielgt
rendszerjellemzk, ha a tervezsitl eltr krlmnyek lpnek fel.

1.3 Szablyozs

Annak a beavatkozsnak a megtervezst jelenti, amely biztostja, hogy a kls krlmnyek


vltozsa esetn a rendszerjellemzk csak olyan mrtkben vltozzanak, amely vltozs mg
nem veszlyezteti a rendszer zavartalan mkdst. Ezt a feladat tpus ptmrnkkrl lvn
sz nem vizsgljuk a tovbbiakban.

2. Szimulci

A szimulcit az analzis egy bonyolultabb formjnak tekinthetjk, alkalmazsa mindhrom


tpus mrnki feladat megoldsnl alapvet szerepet jtszik. Ebben az esetben maga a
rendszer igen bonyolult s vizsglata ltalban csak szmtgppel lehetsges (digitlis
szimulci). Fontos s gyakori jellemzje a szimulcinak az idtnyez, valamint a

Palncz Bla, 2007


1
MSZAKI PROBLMK MEGOLDSA SZMTGPEN

vletlenszersg. A szimulcival drga, hossz idtartamot ignyl s esetenknt


megvalsthatatlan vizsglatok vlthatk ki. Pl. egy rutazs szimulcija, egy atomermben
kialakul vszhelyzet elemzse stb.

A szimulci alatt egy olyan ksrleti eljrst rtnk, amelynek sorn az eredeti, valsgos vagy
elkpzelt mszaki, gazdasgi, biolgiai stb. rendszert, egy neki megfelel modellel helyettestjk
s a rendszer vizsglatt ezzel a modellel vgezzk. Magt a modellt szoks szimultornak is
nevezni. A szimulci clja ltalban tervezs, analzis vagy optimalizci.
Lnyeges, hogy a szimulci nemcsak szmtgppel trtnhet, br ez a leggyakoribb. Minl
mlyebb elmleti ismeretekkel rendelkeznk, annl sikeresebb lehet a szmtgppel trtn
modellezs. Az albbi bra egy fizikai - mszaki rendszer szimulcijval kapcsolatos elvi smt
szemlltet.

valsgos
vagy Eredeti
elkpzelt rendszer

Fizikai Fizikai Matematikai


Elvek
hasonlsg analgia analgia

Szimultor Modell

1.1 bra. Egy fizikai - mszaki rendszer szimulcijnak elve

2.1 Hasonlsgi trvnyek

A fizikai hasonlsgi trvny (elv) alkalmazsra plda lehet egy az eredetinl jelentsen kisebb
mret replgp modell szlcsatornban val vizsglata, amely alapjn azutn az eredeti gp
replsi tulajdonsgaira kvetkeztethetnk.
De ez a fizikai hasonlsgi trvnyen alapul szimulcis mdszer nemcsak a repliparban
megszokott, hanem alkalmazhat a gpkocsi s hajtervezs esetn is, st az j tpus elektromos
hajtsok az n. lineris motorok tervezsnl is, tovbb a vegyiparban, ahol az eredeti mret
zem tervezshez hozztartozik az n. pilot-plant (ksrleti zem) vizsglat, azaz a laboratriumi
mreteknl nagyobb, de az eredetinl kisebb mret berendezseken vgzett ksrlet.
Termszetesen, ezekben az esetekben jl kell ismerni azokat a hasonlsgi kritriumokat amelyek
azonossga esetn a valdi s a szimultorknt alkalmazott rendszerben a folyamatok ugyangy
zajlanak (pl. az ramlstani folyamatok hasonlsgi szma, a Reynolds szm = v d/, vagy a
kmia reakcik hasonlsgnak egyik hasonlsgi szma a Damkhler szm = k , stb).

Palncz Bla, 2007


2
MSZAKI PROBLMK MEGOLDSA SZMTGPEN

2.2 Folyamatok izomorfizmusa

Egy msik szimulcis elv a fizikai folyamatok analgijnak elve, azaz egy izomorfizmus
(klcsns megfeleltets) a klnbz fizikai folyamatok kztt. Pldul egy ilyen megfeleltets
adhat egy mechanikai rendszer (rglland + csillapts + kls erhats) ahol az er
tmadspontja elmozdulsnak idbeli alakulst vizsgljuk s egy strukturlisan ennek
megfelel elektromos hlzat (induktivits + vezetkpessg+ ramerssg) kztt, amely
utbbiban a feszltsg idbeli vltozst tekintjk. gy lehetsgess vlik pldul a mechanikai
rendszer dinamikjnak vizsglata az elektromos hlzat dinamikjnak a vizsglata alapjn.
Hasonl izomorfizmus adhat pldul egy htechnikai folyamat s egy elektromos hlzat kztt.
A szmtstechnika egy korbbi korszakban ezen az elven mkdtek az n. analg
szmtgpek illetve ezeknek s a digitlis gpeknek az egytteseknt mkd hibrid
szmtgpek.

2.3 Matematikai analgia

A harmadik szimulcis elv a matematikai analgia, amely azt jelenti, hogy klnbz
folyamatok lersnak matematikai modellje, a matematikai alakja, egyenletei egyezk. Ezen az
elven alkalmazhatunk digitlis szmtgpet, amellyel az eredeti folyamat matematikai
modelljnek megfelel folyamatokat produklunk a szmtgp hardware-jben.

3. Modellek

A szmtgppel trtn vizsglathoz teht, a rendszert ler matematikai sszefggsek


ellltsa szksges. Ennek meghatrozsa tbb lpsben trtnik. Ezek kzl az els a
rendszeranalzis. Ennek sorn az eredeti rendszert, fizikai, technolgiai vagy egyb
meggondolsok, megktsek figyelembevtelvel, annak krnyezettl elhatroljuk s
funkcionlisan kapcsold rszekre, objektumokra bontjuk

3.1 Fizikai modell

Ezutn definiljuk ezen objektumok fizikai modelljt, azokat a vltozkat, amelyek egyrtelmen
lerjk ezeknek a rszrendszereknek a mkdst, tovbb a szaktrgyakban megismert
fogalmak segtsgvel s a fizikai trvnyszersgek alapjn meghatrozzuk a rendszer
rendszervltoznak kapcsolatt, egymsra hatsukat. Ebben a fzisban fontos szerepe van a
mszaki meggondolsokon nyugv elhanyagolsoknak. A mrnki tevkenysg az
elhanyagolsok mvszete.

3.2 Matematikai modell

Az gy kapott fizikai modellnek megadjuk a matematikai lerst, amelyet matematikai


rendszermodellnek, vagy egyszeren csak matematikai modellnek neveznek. Ennek a matematikai
struktrnak elg kifinomultnak kell lennie ahhoz, hogy helyesen tkrzze a fizikai folyamatokat,
ugyanakkor elg egyszernek ahhoz, hogy kezelhet, megoldhat legyen. Itt a matematikai
ismeretek alkalmazsa az elsdleges fontossg.

Palncz Bla, 2007


3
MSZAKI PROBLMK MEGOLDSA SZMTGPEN

3.3 Algoritmizls

A matematikai modell ltalban implicit formban tartalmazza a keresett rendszervltzkat, pl.


egy egyenletrendszer ismeretlenjeinek vagy egy differencil egyenletrendszer ismeretlen
fggvnyeinek formjban. A matematikai modell megoldsa ezeknek az ismeretleneknek
explicit formban val megadsa. Ez trtnhet ritkn, egyszer modell esetn analitikus vagy
ltalnosan, numerikus formban. A megolds lpseit a matematika s a numerikus mdszerek
ismeretben kell meghatrozni, amelyek sszessgt nevezzk a megoldsi algoritmusnak.

3.4 Szmtstechnikai modell

A megolds algoritmusnak szmtgpen trtn vgrehajtsa rdekben, az algoritmust gy


kell talaktanunk, hogy az a szmtgp mkdsnek megfelel legyen, azaz szekvencikra,
elgazsokra s ismtlsekre (ciklusokra) kell bontanunk az eredeti algoritmus lpseit. Ebben a
fzisban az informatikai, szmtstechnikai ismereteinket kell felhasznlnunk.

3.5 Szmtgpi program

Ahhoz, hogy a szmtstechnikai modellnek megfelel algoritmust a szmtgppel


vgrehajtassuk, szksg van egy olyan reprezentcira, amelyet a szmtgp megrt. Ez
valamilyen programnyelv, amelynek szigor szintaktikja van. A szmtstechnikai modellnek
illetve a megolds algoritmusnak ezen reprezentcijt, amelyet a gp feldolgozni kpes
nevezzk szmtgpi programnak. A programrsnak, a programozsnak s ellenrzsnek kln
technolgija van lsd software engineering.

Modell-
validci
Szmtgpi
Eredeti
modell
rendszer
=Szimultor
Program-
verifikci

Rendszerelemzs
Modellalkots
Programozs

Matematikai
modell

1.2. bra A szimulci vgrehajtshoz szksges feladatok

3.6 Modell validci

A modellezsi folyamat zrkve, a modell alkalmazsa ltal kapott eredmnyek mrnki


kirtkelse s ellenrzse s ha szksges a kiindul fizikai modell mdostsa, ms
elhanyagolsok figyelembevtele.

Irodalom
Palncz B. (1992) : Mszaki problmk megoldsa formulaorientlt nyelven, BME, Budapest.

Palncz Bla, 2007


4
ALGORITMUS S JELLEMZI

2. elads: Algoritmus s jellemzi


Tartalom:1.Algoritmus fogalma. 2. Numerikus s nem-numerikus algoritmusok. 2.1 Numerikus
algoritmusok. 2.2 Nem-numerikus algoritmusok. 3. Algoritmusok jellemzi. 3.1 Hatsossg. 3.2
Hatkonysg. 3.3 Komplexits

Az informatika kt legfontosabb az adat s az algoritmus. Lttuk, hogy a problma


megoldsa megfelel az informci talaktsnak s j informci ellltsnak. Ennek sorn, a
kiindul informcibl, amelyeket az egyenletek s a mrt, szmszeren ismert rtkek
reprezentlnak, egy eljrssal, mveletek vges sorozatval el lltjuk a megoldst, az j
informcit. Az informci megjelensi formjt adatnak, az talaktshoz szksges lpsek
sorozatt algoritmusnak nevezzk. Ez a szemlletmd arra szolgl, hogy a megoldst
automatizlhassuk, azaz, szmtgppel elvgeztethessk. Ezzel kapcsolatban a kvetkez
krdsek megvlaszolsa alapvet :
- hogyan lehet egy algoritmust megadni s szmtgppel vgrehajtatni?
- hogyan lehet egy algoritmust elemezni, minsteni?
A kvetkezkben az algoritmus fogalmt vizsgljuk rszletesebben.

1. Algoritmus fogalma

A legegyszerbb algoritmusok, azok a szablyok, amelyek szerint a tzes szmrendszerben a


ngy alapmveletet elvgezzk. Ilyen szablyokat elszr a IX. szzadban lt arab matematikus
al-Kvarizmi javasolt, akinek a nevbl szrmaztatjk az algoritmus szt.

Algoritmusnak olyan egyrtelm elrst neveznk, amely meghatrozza, hogy egy adott
feladatosztlyhoz tartoz feladatok megoldsakor, milyen mveleteket, milyen sorrendben kell
vgrehajtanunk. Az algoritmusnak vges szm lpsben kell el lltania a megoldst.

Pldaknt tekintsk kt termszetes szm legnagyobb kzs osztjnak el lltst. Nyilvn annyi
ilyen feladat van ahny szm pr kpezhet . Elsknt nzzk a megoldst, amely a defincit
kveti. Tekintsnk kt szmot, mondjuk, 18 s 12.
1. Megolds: A definci alapjn: LKO (18,12) = max( metszet (oszti (18), oszti(12))) = max
(metszet({2,3,6,9},{2,3,4,6})) = max ({2,3,6}) = 6

2. Megolds: Euclides algoritmus: LKO(18,12) = LKO(18-12,12) =LKO(6, 12)= LKO(6, 12 - 6) =


LKO(6, 6) =6
Input : a,b

igen igen
a <>b a<b b=b-a

nem nem

Output : a
a=a-b

stop

1.bra Az Euklideszi algoritmus

Palncz Bla, 2007


5
ALGORITMUS S JELLEMZI

2. Numerikus s nem-numerikus algoritmusok

Az algoritmusok kt nagy csoportjt szoks megklnbztetni. Az n. numerikus algoritmusokat,


amelyek ltalban szmokkal vgeznek mveleteket, pl. egy nem-lineris egyenlet numerikus
megoldsa, s a nem-numerikus algoritmusokat, ahol az aritmetikai mveletek jelentsge
elenysz, pl. egy vektor maximlis elemnek kivlasztsa.

2.1 Numerikus algoritmusok

A numerikus algoritmusok szleskr elterjedsnek egyik oka, hogy nagyon sok ms mveletet
vissza lehet vezetni a ngy alapmveletre. Igaz, hogy ez a visszavezets nem mindig abszolt
pontos, de tetszleges, elre megadott pontossggal ( helyesebben hibval) elvgezhet.
Ezt jl mutatja a Heron ltal javasolt ngyzetgykvons algoritmusnak pldja, amellyel egy
szm a, ngyzetgykt csak kzeltleg, de tetszleges pontossggal lehet kiszmtani osztsok,
szorzsok s sszeadsok sorozatval. Az egymst kvet lpsek szmtsa a kvetkez
formulval trtnik:

xi+1 = (xi + a/xi)/2


ahol a kezdrtk pl.

x0 = a
az eljrst addig folytatjuk, amg

abs(xi+1 - xi ) >

ahol egy alkalmasan vlasztott hibakorlt. Konvergencia esetn ez biztostja a algoritmus vges
lpsszmt. Pl. legyen a = 31, ekkor = 0.00001 vlaszts esetn a sorozat:

31, 16, 8.96875, 6.2126, 5.60123, 5.560123, 5.56776

A modern matematika egy specilis ga a numerikus analzis, eljrsokat dolgozott ki arra, hogy
olyan bonyolultabb mveleteket, mint pldul az integrls, differencils stb. az
alapmveletekre vezessnk vissza.

2.2 Nem-numerikus algoritmusok

Az algoritmusok egy msik csoportja a numerikus feladatok (mennyi ?) megoldstl eltren n.


logikai feladatok megoldsra szolgl. Ezeket szoks nem-numerikus algoritmusoknak nevezni.
Ilyen problmk esetn a krds ltalban hogyan ?, melyik ?, milyen esetben ? stb.

Keressk meg egy halmaz legkisebb elemt (melyik ?). Legyen a halmaz H s elemei hi ,
sorszmozottak, i =1,2,...,n. Az algoritmus a kvetkez lehet:

Palncz Bla, 2007


6
ALGORITMUS S JELLEMZI

Input: H

s = h1

i=2

igen
hi < s s=hi
nem

i=i+1

igen
i>n Output :s

nem

Stop

2. bra Halmaz legkisebb elemnek keresse

3. Algoritmusok jellemzi

Miutn ugyanannak a feladatnak a megoldsra tbb algoritmus is adhat, clszer az


algoritmusokat minsteni. Az ehhez szksges szempontokat az algoritmus jellemzinek nevezzk.
Itt most csak a fogalmak ismertetsre szortkozunk.

Hatsossg

Ezzel a jellemzvel azt mrjk, hogy az algoritmus milyen mrtkben alkalmas arra, hogy vele, az
adott feladatosztlyhoz tartoz problmk minl szlesebb, teljesebb krt megoldjuk. Egy
algoritmus akkor hatsosabb egy msiknl, ha az ltala megoldhat feladatosztly bvebb mint
a msikkal megoldhat feladatosztly.

Pldaknt tekintsk a kvetkez algoritmust (kzvetlen behelyettests mdszere) az


x = g(x) tpus nemlineris egyenletek megoldsra,

xi+1 = g ( xi )

Legyen g(x) = (20 + 3 sqrt(x) 8 x)P. Vlasszuk P rtkt P = 0.3 ra. Ekkor konvergens eljrst
kapunk. Ha azonban P = 0.5 akkor mr a mdszer divergens, azaz az algoritmus mr nem
alkalmas a P = 0.5 esetre.
Az eredeti algoritmust mdostva azonban egy hatsosabb algoritmust kaphatunk, amely ebben
az esetben is konvergens, azaz mkdik:

xi+1 = g ( xi ) + (1 - ) xi

Palncz Bla, 2007


7
ALGORITMUS S JELLEMZI

ahol 0 < < = 1. = 1 vlaszts esetn az eredeti algoritmust kapjuk, azaz az j algoritmus
minden olyan feladatot megold amit a korbbi s mint lttuk olyat is amelyet az eredeti nem volt
kpes.

3.2 Hatkonysg.

Egy algoritmus hatkonysgt a vgrehajtshoz szksges idvel s trol kapacitssal


mrhetjk. Ezek kzl ltalban az id a fontosabb, a nagyobb sllyal figyelembeveend
tnyez. Egy algoritmus nyilvn annl hatkonyabb minl gyorsabban s minl kisebb
trolterlet felhasznlsval oldja meg a problmt. Gyakran azonos feladatosztly
problminak megoldsra szolgl algoritmusok egyike gyorsabb, de tbb helyet ignyel s
megfordtva. Nzznk egy pldt, egy polinom helyettestsi rtknek kiszmtst. Ezt
elvgezhetjk kzvetlen hatvnyozssal, de a Horner elrendezs alkalmazsval is. Legyen adott
egy negyedfok polinom,
y(x) = c4 x4 + c3 x3 + c2 x2 + c1 x +c0

Ennek a polinomnak a helyettestsi rtkt az x = xh helyen, azaz az y(xh) rtkt


meghatrozhatjuk n. kzvetlen hatvnyozssal,

yh = c0 + c1 xh + c2 xh xh + c3 xh xh xh + c4 xh xh xh xh

A mveletek szma : 4 sszeads s 10 szorzs. A Horner elrendezst alkalmazva

yh = c0 + xh (c1 + xh (c2 + xh (c3 + c4 xh )))

Most csupn 4 sszeadsra s 4 szorzsra van szksg, teht a Horner elrendezsen alapul
algoritmus a hatkonyabb.
Komplexits

Ezzel a jellemzvel azt mrjk, hogy miknt vltozik az algoritmus vgrehajtshoz szksges
mveletek szma a problma mretnek nvelsvel. (mveleti komplexits).

Pl. Termszetes szmok sszeadsa

a) Naiv mdszer, amikor a mveletek szma egyenes arnyban nvekszik az sszeadandk


szmval: 1 + 2 + 3 + ...+ n

b) Gauss mdszere, fggetlenl az sszeadandk szmtl mindig csak egy osztst , egy
szorzst s egy sszeadst kell elvgezni: n/2(1+n)

Polinomilis komplexits mg megoldhat szmtgpen nagy n esetn is: (nC ahol C lland s
n a feladat mrete). Vannak exponencilis komplexits algoritmusok is pl. Hanoi tornyai 2n-1,
vagy az utaz gynk problma. Ezeknl nagy n esetn kzelt algoritmusokat szoks
alkalmazni.

Irodalom

Trahtenbrot B.A. (1978) : Algoritmusok s absztrakt automatk, Mszaki Knyvkiad, Budapest.

Palncz Bla, 2007


8
SZMTGP S PROGRAM

3. elads: Szmtgp s program


Tartalom:1 Kzi s gpi szmts. 2.Elemi programszerkezetek. 2.1 Szekvencia 2.2 Elgazs 2.3.
Ismtlsek .3 Programnyelvek

1. Kzi s gpi szmts

Egy algoritmus elrsai szerint dolgoz ember a szmtsi folyamat sorn bizonyos tjkoztatst
(informcit) vesz fel, trol, dolgoz fel s bocst ki. Ezt az informcit rendszerint papron rja le
(brzolja) szmjegyek, betk vagy ms jelek felhasznlsval. Ezeknek a jeleknek a halmazt
clszer ABC-nek nevezni. Pldul az algebrban hasznlt ABC a szoksos betkn s
szmjegyeken kvl tartalmaz mg mveleti jeleket, zrjeleket stb. Az ember ltal vgzett
"kiszmtsi" eljrsra a kvetkezk jellemzk:

Papirlap

Utasitsok
Ember

Szmok
irsa
Szmol
eszkz

1.bra Kzi szmts

Az informcik trolsra a gpnek is szksge van egy ABC-re, azonban a grafikus jelek
helyett a gpben az ABC jeleit klnbz fizikai llapotokkal jellemzik, ltalban a fizikai
llapotokat 0-nak vagy 1-nek feleltetik meg. A gpbe belp s a gp mkdse kzben
talakul sszes informcit szmok formjban, kettes szmrendszerben kdoljk. gy tbbek
kztt magt az algoritmust is, amely a gp munkjt vezrli, szintn szmsorozat formjban
rjk fel.
Tr
Vezrl 1.
1 11 12 15
egysg 2

0 00 00 25 3

Aritmetikai
10
egysg

0 00 01 02

2. bra Gpi szmts

Palncz Bla, 2007


9
SZMTGP S PROGRAM

2. Elemi programszerkezetek

A szmtgpen vgrehajtand feladatok, utastsok sorozatt programnak nevezzk. A


leggyakrabban alkalmazott elemi utastsok a kvetkezk:
Aritmetikai utastsok: sszeads, kivons, szorzs, oszts.
Vezrlstad utastsok: felttel nlkli s felttellel vezrelt vezrls tads.
Az elemi programszerkezetek, a szekvencia, elgazs s az iterci felhasznlsval minden
algoritmus felpthet.

Szekvencia

A legegyszerbb esetben az adott feladatot megold algoritmusszerkezet az, amikor az egyes


utastsokat a lersuk sorrendjben kell vgrehajtani.

Elgazs

Az elbbi utastsokat kibvthetjk felttellel vezrelt utastsokkal. Ez azt jelenti, hogy az


algoritmus vgrehajtsa egy feltteltl fggen eltr utastsokkal folytatjuk.

Az elgazs smi eltr


brzolsi mdokban

Input: x
Input: x
igen
x>10
x>10 y=2x
igen nem
nem
y=2x y=-x

y=-x Output: y

Output: y

Folyamatbra Struktogram
3. bra Elgazs megvalstsa

2.3 Iterci

Az algoritmusok tbbsgnl elfordul, hogy bizonyos mveleteket tbbszr meg kell ismtelni.
Az ilyen jelleg algoritmus, illetve programszerkezeteket itercinak nevezzk. Klnbsget
szoks tenni, az n. szmllssal s felttellel vezrelt ismtlses szerkezetek kztt. A
szmllssal vezrelt esetben tudjuk, hogy hnyszor kell az ismtlst vgrehajtanunk. A felttellel
vezrelt ismtlsnl az ismtlsek szma ismeretlen. Ezzel szemben ismert valamilyen felttel,
amely igaz volta esetn a krdses mveletek megismtlendk. Ha a felttel hamiss vlik akkor
az ismtls (ciklus) befejezdik. A szmllssal s a felttellel vezrelt ismtlsek programnyelvi
megvalstsa alapjn szoks for illetve while ciklusokrl beszlni.

Palncz Bla, 2007


10
SZMTGP S PROGRAM

In pu t : N

i=0 In pu t : N

s= 0
s=0
i = 1 ..N

i =i +1 s=s+i
Ou tp ut : s
s=s+i

ig en
i <N
g oto
n em

Ou tp ut: s

4.bra Szmllssal vezrelt ismtls

3. Programnyelvek

A nyelvek egytt fejldtek a szmtgppel (hardware).


- Els genercis nyelv az n. gpi nyelv, az utastsok kzvetlen binris kdban val lersa. gy
a programrs idignyes s a program nehezen ttekinthet. Pl. kt szm sszeadsa gpi
nyelven:
010000110011101000111101010000010001011101000010.

- A msodik genercis nyelvek az n. assembly nyelvek, amelyek szimblumokat s szavakat


hasznlnak a program lersra.
Pl. a C = A + B mvelet elvgzse Assembly nyelven:
LOAD A hozd be az A rekesz tartalmt az akkumultorba (aritmetikai egysg),
ADD B add hozz a B rekesz tartalmt az akkumultor tartalmhoz,
STORE C az eredmnyt trold a C memriarekeszben.

- A harmadik genercis nyelvek sorba tartoznak pl. a BASIC, COBOL, FORTRAN s C nyelvek.
Ezeket a nyelveket magas szint nyelveknek hvjk.
-A negyedik genercis nyelvek egyik fejldsi irnynak jellemzje az adatszerkezet s a rajtuk
vgzett mveletek sszerendelse, az n. objektum orientlt nyelvek, pl. Visual Basic, C++.
A msik fejldsi irny a szmtgp-algebra alkalmazsa, az n. formula orientlt s szimbolikus
nyelvek kialakulsa, pl. MathCAD, Maple, Mathematica, MATLAB stb. Ezen utbbiak nagyszm
beptett fggvnnyel rendelkeznek, amelyek a szimbolikus szmtsok mellett a numerikus
feladatok megoldst is nagymrtkben tmogatjk, s lehetv teszik az n. funkcionlis
programozst s a vizualizcit.

Krlbell 1000-re becslhet a hasznlatos programnyelvek szma, s ebbl kb. 20 nyelv


tartozik a leginkbb elterjedt nyelvek csoportjba. Vannak kihal s szlet nyelvek, amelyeket
az j ignyek s kvetelmnyek hoztak ltre. Ilyen pl. a Java, amelyet a multimdia s az Internet
hlzat elterjedse hvott letre.

Irodalom

Cske - Garamhegyi (1997) : A szmtgp-programozs logikai alapjai, Nemzeti


Tanknyvkiad, Budapest.

Palncz Bla, 2007


11
PROGRAM S ALGORITMUS TERVEZS

4. elads: Program s algoritmus tervezs


Tartalom:1. Fokozatos finomts mdszere; 2. Modularits; 3. Rekurzi; 4. Megoszts mdszere;
5. Prhuzamosts;

Mint lttuk, a program az algoritmus (szemantika) lersa (reprezentcija) egy definilt


jelrendszerrel (ABC), megadott szablyok (szintaktika) szerint, amelyet a szmtgp rtelmez
(interpretl) s vgrehajt.
A program vltozkat hasznl a megfelel memria rekeszek azonostsra.
A memria rekeszek tartalmt a vltozhoz rendelt adatnak nevezzk. Lttuk azt is, hogy a
szmtgp n. bemen informcikat alakt t kimen informciv. Ezeket bemen illetve
kimen adatoknak nevezzk.
Az adatok s azok talaktst ler algoritmus, a program reprezentcija a szmtgpben
szmokkal, pontosabban binris kdok sorozatval trtnik. A vltozhoz hozzrendelt adatot a
vltoz rtknek nevezzk, amely a program vgrehajtsa sorn, futsa kzben ltalban
vltozik.
Az algoritmus s annak szmtgpi reprezentcija, a program kztt szoros kapcsolat van,
ezrt a program szerkezetben, felptsben tkrzdik az algoritmus jellege. Ennek
megfelelen, olyan mdszerek, eljrsok alakultak ki, amelyeket az algoritmus s
programtervezsnl egyarnt clszer kvetni az eredmnyessg (hatsos, hatkony s alacsony
komplexits algoritmus ill. program) rdekben.

1. Fokozatos finomts mdszere

A top - down technika lnyege, hogy elszr a megoldand problmnak egy tfog, nem
rszletes megoldst keressk, majd a rszfeladatok ismeretben, azok megoldsnak lpseit
fokrl fokra haladva egyre jobban mlytjk, finomtjuk.

Pldaknt tekintsk a legnagyobb kzs oszt meghatrozsnak problmjt. Prbljuk


megoldani a feladatot a definci alapjn, azaz

1. Tekintsk a kt szm osztit, mint kt sorozatot


2. Hatrozzuk meg ennek a kt sorozatnak a kzs rszt
3. Keressk meg a kzs rsz maximlis elemt

2. Modularits

A modularits mdszere logikailag a top - down technika kvetkezmnye, amennyiben az egyes


rszfeladatok megoldsai, a program felptse szempontjbl kln egysgknt jelentkeznek.

Az elz pldban egy szm osztinak meghatrozsa egy nll feladatknt tekinthet,
amelynek megoldst kt klnbz bemen adatra kell elvgezni. Clszernek ltszik ezt az
algoritmusrszt gy megadni, hogy csak egyszer legyen szksg a lersra.
Erre ad lehetsget a modul, amely egy nll algoritmusrsz programjnak ltalnos, azaz
tetszleges bemen adatokra rvnyes, lerst adja.

Palncz Bla, 2007


12
PROGRAM S ALGORITMUS TERVEZS

A modulris programszerkezet alkalmazsnak tbb elnye van :

1) egyszerre, egymstl fggetlenl tbben dolgozhatnak ugyanazon


feladat rszfeladatain.

2) a modul nmagban is tesztelhet, ellenrizhet, gy knnyebb a


hibkat megtallni.

3) a modul ms feladat rszfeladatnak megoldsnl is felhasznlhat,


modulknyvtrak hozhatk ltre.

A modulris technika alkalmazsval kapcsolatosan hrom fontos fogalomprt kell megismerni.

Ezek kzl az els, a modulok input illetve output vltozival (hasznlatos a


paramter elnevezs is) kapcsolatos. A modulokat ppen az nll, tbbszri felhasznlsuk
rdekben, valamilyen adott input s output vltozkkal rnak meg. Ezeket nevezzk a modul
formlis vltozinak, gyakran formlis paramtereinek.
A modul aktulis felhasznlsakor (a modul hvsakor) azonban alkalmazhatunk ms vltozkat
vagy ppen szmrtkeket is, amelyeket aktulis vltozknak illetve aktulis paramtereknek
neveznk. Amg az aktulis vltozk mindig rtkkel rendelkeznek (kivve a szimbolikus
szmtsoknl) addig a formlis vltozk csak arra valk, hogy definiljk a modul bemen s
kimen vltozit s ezeken keresztl magt a modul ltal megvalstand algoritmust.
A msik fogalom pr a modulok kztt trtn adattadssal kapcsolatos.
A modulok kztti adattads lehet n. rtk s cmszerinti adattads. Az rtk szerinti
tadsnl az aktulis vltoz rtke belekerl a formlis vltoz szmra a modul hvsakor
kijellt memriarekeszbe. A cmszerinti tadsnl pedig, a hvskor nem az aktulis vltoz
rtke, hanem a neki megfelel memriarekesz cme addik t a hvott modulnak, amely a hvs
alatt - ha a program futsnak vezrlse ebben a modulban van - az aktulis vltozt, mint a
megfelel formlis vltozt kezeli, majd a vezrlsnek a hv modulba visszaadsa utn az
aktulis vltoz visszanyeri eredeti szerept (maszkols).

Hiv program Modul

12.1 12.1 x
a rtk szerint

Aktulis
paramter
Formlis
paramter

12.1
cim szerint

1. bra A modulparamterek adattadsi formi

A harmadik fontos fogalom pr az n. vltozi hatskr krdsvel kapcsolatos.


A modulris programozs sorn megklnbztetnk loklis s globlis vltozkat. Itt rviden csak
annyit jegyznk meg, hogy egy adott modul szempontjbl csak a modulon bell rvnyes
vltozt loklis vltoznak, azt amely az adott modulon kvl is rvnyes, globlis vltoznak
nevezzk. Ilyenkor a globlis vltoz a modulon bell is felhasznlhat, attl fggetlenl, hogy

Palncz Bla, 2007


13
PROGRAM S ALGORITMUS TERVEZS

nem szerepel a modul formlis vltozi kztt. Ezzel lnyegben az adattads egy msik
formjt valsthatjuk meg a klnbz modulok kztt.

A loklis s globlis elnevezsek relatv viszonyokat tkrznek. Egy modul szmra, amely egy
msik modulba van gyazva (onnan kerl meghvsra), az t hv modul loklis vltozi, az
szempontjbl globlis vltozk.

3. Rekurzi

A rekurzit abban az esetben alkalmazzuk, amikor a rszfeladatok megegyeznek magval a


feladattal. A rekurzv technika jellemzje, hogy a modul sajt magt hvja csak ms aktulis
vltozval. Hogy az algoritmus a rekurzv hvs sorn ne kerljn vgtelen ciklusba, kt fontos
jellemzvel kell rendelkeznie

1) Lteznie kell egy n. bzis kritriumnak, vagy ms szval lellsi


felttelnek, amelynek teljeslsekor a modul mr nem hvja meg
nmagt

2) A rekurzv hvsok sorn az algoritmus egyre kzelebb kell, hogy


vigyen a bzis kritriumhoz

Szmoljuk ki pldul 3 faktorilist, azaz hatrozzuk meg a


3! = 1*2*3 rtkt. Ehhez az albbi lpsekre van szksg

3! = 3*2!
2! = 2*1!
1! = 1 (bzisrtk)
2! = 2*1=2
3! = 3*2 = 6

1. lps : definiljuk 3!-t a 2!- sal kifejezve, gy teht a 3! kiszmtst


el kell halasztani a 2! kiszmtsig

2. lps : definiljuk 2!-t az 1!- sal, ami explicit mdon adott.


Ez a bzisrtk.

3. lps : az 1! rtkvel kiszmtjuk a 2! rtkt

4. lps : a 2! rtkvel kiszmtjuk a 3! rtkt.

Vannak olyan esetek, amikor egy algoritmus nem rekurzv formban val megrsa a feladat
megoldst nagyon bonyolultt tenn, szemben a rekurzv megkzeltssel. Erre j plda a Hanoi
tornyai-nak nevezett problma.
Legyen adott hrom fggleges rd, amelyeket A, B s C-vel jellnk, s legyen az A rdon
alulrl felfel cskken mretben n darab korong. Az A-rl a C rdra kell eljuttatni a korongokat
az albbi szablyok szerint:

1) Egyszerre csak egy korongot mozgathatunk


2) Nagyobb korongot nem helyezhetnk kisebb korongra

Palncz Bla, 2007


14
PROGRAM S ALGORITMUS TERVEZS

Az n korong thelyezst A-rl C-re az albbi rszfeladatokra bonthatjuk :


1) Az A rd legfels n-1 korongjnak thelyezse a B rdra
2) Az A rd legnagyobb korongjnak thelyezse a C-re
3) A B rd n-1 korongjnak thelyezse a C-re

A B C

Azaz, ha az eljrs neve Hanoi (n, A,B,C) vagyis n korongot helyezznk A-rl C-re a B-n keresztl,
akkor ez a kvetkez lpsekkel valsthat meg :
1) Hanoi (n-1,A,C,B)
2) Hanoi(1,A,B,C)
3) Hanoi(n-1,B,A,C)

Az algoritmus:
Hanoi (n, A,B,C) = Ha n = 1 then A C
klnben Hanoi (n-1,A,C,B);
A C;
Hanoi(n-1,B,A,C) ;

4. Megoszts mdszere

A mdszer lnyege, hogy a feladatot nem az eredeti halmazon, hanem annak kivlasztott
rszhalmazn oldjuk meg, azaz az eredeti halmazt lpsrl lpsre szktve kapjuk meg a
keresett megoldst.
Pldaknt nzzk a keress feladatt egy mr rendezett sorozatban. Idzzk fel a sztrak
hasznlatt, amikor nem az els vagy utols oldaltl indulva lapozzuk vgig a sztrat amg
megtalljuk a keresett szt, hanem feltjk a sztrat valahol kzpen s a keresett szt
sszehasonltjuk az ott tallt szval. Ha a keresett sz elbb van az ABC - ben akkor a keresett
sz a sztr els felben van, ellenkez esetben a msodik felben. Ezutn a megfelel rszben
folytatjuk tovbb a keresst az elz felezsi mdszerrel. Ezt a keressi mdszert binris vagy
logaritmikus keressnek nevezik. Vajon mirt?

5. Prhuzamosts

Az algoritmusok egyes lpseinek vgrehajtsa sorn elfordul, hogy kt vagy tbb lps
egymstl fggetlenl akr prhuzamosan, egyidejleg is vgrehajthat, mivel a lpsek
eredmnyei nem befolysoljk egymst. Ennek a lehetsgnek a kihasznlsa rdekben, a
prhuzamosts megvalstshoz, bizonyos hardware s szoftware feltteleknek kell eleget
tenni.

Irodalom

Naps - Nance (1992) : Introduction to Computer Science, West Publishing Company, New York

Palncz Bla, 2007


15
ADATTPUSOK S ELEMI ADATSZERKEZETEK

5. elads: Adattpusok s elemi adatszerkezetek

Tartalom: 1. Elemi adattpusok; 2. Elemi adatszerkezetek; 3. Adatok trolsa a memriban.


4. Adatllomny; 5. Text tpus adatllomny.

Az algoritmus fogalmnak bemutatsa sorn lttuk, hogy minden algoritmus adatokbl s


mveletekbl, vagy msknt tevkenysg szerkezetekbl pl fel. A tevkenysg- szerkezetek
utn fordtsuk figyelmnket az adatokra! Egy programban szerepl adatokra az azonostk,
ms nven programvltozk (rviden vltozk) segtsgvel hivatkozhatunk.

Mint lttuk, a szmtgpben minden informcit, adatot s programutastst egy bitsorozat r


le. Egy bitsorozat nmagban azonban mg nem egyrtelm. Pldul a 01000001
bitsorozat jelentheti az A bett, de a 65 rtk szmot is. A bitsorozathoz tartoz jelents
akkor tehet egyrtelmv, ha az adatokat osztlyokba soroljuk, vagyis ha megadjuk
tpusukat. Ha az elbbi bitsorozat egy egsz szmnak megfelel adattpus, akkor a 65-s
szmot, ha egy karakter tpus adat, akkor az A bett jelenti.

Az adat tpusa meghatrozza annak rtkhalmazt s a vele vgezhet mveleteket. A


vltoz tpust a hozzrendelt adat tpusa definilja.

1. Elemi adattpusok

Amelyek tovbb mr nem bonthatk egyszerbb elemekre.

1.1 Egsz: oszts kivezet (pl. 1, -23)

1.2 Racionlis: csak szimbolikus nyelvek esetn (pl. 2/13)

1.3 Vals adattpus: vges tizedes trt (pl. 0.0139), kerektsi hiba.

1.4 Komplex tpus: valjban sszetett, 2 elem vektor (pl. 2.2 3.4i)

1.5 Logikai: igaz (1) vagy hamis (0)

Mveletek igazsg tbli:


a b a AND b a OR b NOT a
0 0 0 0 1
0 1 0 1 1
1 0 0 1 0
1 1 1 1 0

Relci, mint logikai vltoz.

1.6 Karakter tpus: a vltoz nv de 'a' karakter tpus adat - ASCII kd


Elemeit az n. ASCII (American National Standard Code for Information Interchange)
kdtbla definilja. sszesen 0..255 klnbz karakter kzl vlaszthatunk. Minden
karakterhez egy numerikus (0..255) azonost szm tartozik. Modernebb vltozata Unicode.

Palncz Bla, 2007


16
ADATTPUSOK S ELEMI ADATSZERKEZETEK

2. Elemei adatszerkezetek

Az adatokat sokfle mdon szervezhetjk. Az adatszerkezet, vagy ms nven sszetett


adattpus egy bizonyos adatszervezs matematikai vagy logikai modellje. Az
adatszerkezeteket az egymssal logikailag sszetartoz egyszer adatok alkotjk. Ezek az
adatszerkezetek a fjl kivtelvel a memriban trtn adatszervezs klnbz
mdjait testestik meg. A legfontosabb elemi adatszerkezeteket ismertetjk az albbiakban.

2.1 Karakterlnc: karakterek sorozata, amely olyan egydimenzis tmbnek tekinthet


(lsd tmb) ahol az elemek karakterek.

2.2 Tmbk

Tudjuk, hogy minden adatszerkezet, mint sszetett adattpus, elemi tpusokbl pl fel, ezrt
annak megadsnl meg kell mondanunk, hogy milyen tpus elemekbl s hogyan kpezzk
ket. Az sszetett struktra kpzse abbl a problmbl fakad, hogy sokszor van szksgnk
olyan azonos tulajdonsg s szerkezet vltozkra, amelyeket valamilyen szempontbl
egytt kell kezelnnk. Magtl addik az tlet, hogy kzs nvvel hivatkozzunk rjuk, de gy,
hogy elemeik megklnbztethetk maradjanak.

A tmb azonos tpus, meghatrozott szm, sorrendbe helyezett elemekbl ll sorozat, ahol
az elemeket index (ltalban pozitv, de mindig egsz szmok) azonostjk. A szimbolikus
nyelvekben ezekbl a megktsekbl csak a sorrendisg marad.
Az egydimenzis tmbt vektornak, a ktdimenzis tmbt mtrixnak (vagy tblzatnak)
nevezzk s a kzttk elvgezhet mveletekre specilis szablyok rvnyesek. Bizonyos
rendszereknl a tmb akrhny dimenzis is lehet.

1 D Tmbk - vektor: egy nv de tbb adat. Jellemzk: azonos tpus adatok, vektor elem-
index: egszszm. sor s oszlop vektor, transzponlt. 3 mvelet a vektorok kztt: eredmny:
skalr, vektor s mtrix

2 D Tmbk - mtrix- sor s oszlop index: mtrix szorzsa vektorral, mtrix - mtrix
szorzsa, egysgmtrix s inverz mtrix.

Record: mezi vannak, amelyek eltr tpus elemeket tartalmazhatnak - MATLAB


megvalstsa a cella tmb (cell- array)

3. Adatok trolsa a memriban

A memrit gy kpzeljk el, mint egy sokfikos szekrnyt, amelynek minden fikjhoz, de
egyszerre csakis egyhez frhetnk hozz. Egy fikban lnyegben egyetlen szmot
helyezhetnk el, de nem akrmekkort. Ennek maximlis rtke 255 lehet. Ezt a kpzeletbeli
fikot nevezzk bjtnak.

Pl. 5 kettes szmrendszerben 1 bjton:

0*27 + 0*26 + 0*25 + 0*24 + 0*23 + 1*22 + 0*21 + 1* 20 = 5


Azaz
00000101

Palncz Bla, 2007


17
ADATTPUSOK S ELEMI ADATSZERKEZETEK

A bjt valsgban tovbb bonthat 8 kisebb egysgre, ezek a bitek. Egy bit kt rtket
vehet fel: 0-t vagy 1-et. Ha a troland szmot binris, azaz kettes szmrendszerben adjuk
meg, akkor vilgos, hogy mirt lehet az egy fikban elhelyezhet szm maximlis rtke 255.
Ha a 8 egymst kvet bitet a kettes szmrendszer helyrtkeinek feleltetjk meg, akkor a
legnagyobb szm alakja: 11111111. Ez pedig a tzes szmrendszerben:

Egsz

Ennl nagyobb egsz szm esetn tbb fikot fogunk ssze. Az egsz szmokat ltalban 2
bjton brzoljuk. Az els bit az eljel szmra szolgl, amely pozitv esetben 0, negatv
szmnl pedig 1.

Vals tpus

A vals szmokat norml alak segtsgvel brzoljuk:

x = m Re

alakban, ahol m a mantissza, e az exponens s R az alapszm. Ezzel a mdszerrel a vals


szm brzolst visszavezettk kt egsz szm (m s e) brzolsra.
A megvalstsnl az exponenst egy K eltolsi llandval eltoljk, hogy a kitev pozitv
maradjon.

c=e +K

A c-t nevezzk karakterisztiknak. Ebben az esetben a szmbrzols szerkezete :

eljel|karakterisztika|mantissza

A trols ltalban 6 illetve 8 bjton trtnik.

A 32 illetve 64 bites brzols esetn:


Single precision : eljel : 1 bit, exponent : 8 bit, mantissza : 23 bit
Double precision : eljel : 1 bit, exponent : 11 bit, mantissza : 52 bit, 16 jegy pontossgnak
felel meg.

Karakter : 1 byte

Logikai: 1 byte

Tmb tpus

Mint emltettk, a tmb lnyegben lineris adatszerkezet, azaz az elemek az egymst kvet
memriahelyeket foglaljk el. A szmtgp a tmb neve alapjn meghatrozza a tmb
kezd elemnek memria cmt (bziscm), majd az index, valamint az elemtpusnak
megfelel trolsi hossz ismeretben az indexnek megfelel elem helyt a memriban.

Az i -edik elem cme (memria rekesz azonost):

bziscm + (i -1) * elemtpus hossza

Palncz Bla, 2007


18
ADATTPUSOK S ELEMI ADATSZERKEZETEK

4. Adatllomny

Az adatllomny, vagy ms nven file ( llomny), a msodlagos troln elhelyezett adatok


nll nvvel azonostott halmaza. A file-t brmely adattpus sorozata alkothatja. Ennek a
sorozatnak az egymstl megklnbztetett rszeit a file komponenseinek nevezzk.

A file alkalmazsnak elnye, hogy pldul a tmbbel szemben, komponensenknt lehet


behozni vagy kivinni az elsdleges memribl, amg pl. a tmb minden eleme egyidejleg
bent kell, hogy legyen. Teht pl. a file-ban val keressnl mindig csak egy komponenst
hozunk be a memriba s azt vizsgljuk.
A msik elny, hogy nem kell elre megadni a mrett a memriban val helyfoglals miatt,
mint pl. a tmb esetn s mretnek csak a msodlagos memria szab hatrt.

5. Text tpus adatllomny

Specilis file-tpus az n. text file, ahol a komponensek vltoz hosszsg stringek, amelyeket
egy kocsivissza (Carrige Return) s egy soremels (Line Feed) zr le. Ezeket (CR+LF)
egyttesen nevezzk sorvgjelnek.
A MATLAB, amelyet tudomnyos mszaki szmtsok cljra terveztek, elssorban numerikus
adatokat tartalmaz adatllomnyok kezelsre alkalmas, amelyeknl a numerikus rtkek
karakter illetve karakterlnc formjban szerepelnek a file-ban s csak az aktulis MATLAB
vltozba val berskor, illetve a file-ba val kirskor konvertldnak automatikusan pl.
vals szmbl karakterlncc vagy karakterlncbl vals szmm.

Irodalom

Lipschutz (1993) : Adatszerkezetek, McGraw-Hill Inc. - Panem Kft. Budapest


Kaufmannn, A (1972) : Pontok,lek, vek...grfok, Mszaki Knyvkiad, Budapest

Palncz Bla, 2007


19
PROGRAMOZSI TTELEK

6. elads Programozsi ttelek

Tartalom: 1. Egyszer programozsi ttelek; 1.1 Eldnts; 1.2 Kivlaszts; 1.3 Keress; 1.4
Megszmlls; 2. sszetett programozsi ttelek; 2.1 Rendezs; 2.2 Kigyjts; 2.3
Sztvlogats; 2.4 Sorozatok egyestse; 2.5 Sorozatok kzs rsze;

A tmb, mint adattpus fontos szerepet jtszik a szmtstechnikban, ezrt ezek kezelsre
alapalgoritmusokat dolgoztak ki. Ezeket nevezzk programozsi tteleknek.
A programozsi ttelek tpusai, az algoritmusok bemenete s kimenete alapjn a kvetkez
csoportokba sorolhatk:
Bemenet Kimenet
sorozat skalr
sorozat sorozat
sorozat sorozatok
sorozatok sorozat

1. Egyszer programozsi ttelek

Az elemi programozsi ttelek, olyan feladatok megoldsra szolglnak segtsgl, amelyek


visszavezethetk az egy rtknek egy sorozathoz rendelsnek problmjra.

Eldnts
Ebben az esetben a sorozathoz egy logikai rtket rendelnk. Ha a sorozatban tallhat adott
tulajdonsg elem, akkor 1, klnben 0.

function y=eldont(s,T)
n=length(s);
i=1;
while and(i<n,not(T(s(i))))
i=i+1;
end
if or(T(s(n)),i<n)
y=1;
else
y=0;
end

ahol T(x) egy tulajdonsg fggvny, amely 1 ha x kielgti a tulajdonsgot, klnben 0.

Kivlaszts
Az algoritmus gondolatmenete nagyon hasonlt az eldnts szablyra, azzal a klnbsggel,
hogy most a keresett elem helyt, illetve magt az elemet kell megadni. A kivlaszts esetn
felttelezzk, hogy van mit kivlasztani, azaz a keresett adatnak benne kell lennie a
sorozatban.

function y=kivalaszt(s,T)
i=1;
while not(T(s(i)))
i=i+1;
end
y=i;

Palncz Bla, 2007


20
PROGRAMOZSI TTELEK

Keress
A lineris keress szablyt akkor alkalmazzuk, ha nincs biztostk arra, hogy a kivlasztand
elem benne van a halmazban. Ennek megfelelen ez a szably az eldnts s kivlaszts
szablyt tvzi egybe. A fggvny 0 ad vissza, ha nincs a vektorban keresett tulajdonsg
elem.

function y=keres(s,T)
n=length(s);
i=1;
while and(i<n,not(T(s(i))))
i=i+1;
end
if i<n
y=i;
elseif T(s(n))
y=n;
else
y=0;
end

Megszmlls
A megszmlls szablya azokban az esetekben alkalmazhat, ha rendelkezsnkre ll egy
sorozat s egy,a sorozat elemein rtelmezhet T tulajdonsg s az a feladatunk, hogy
szmoljuk meg a T tulajdonsggal rendelkez elemeket.

function y=szamlal(s,T)
n=length(s);
z=0;
for i=1:n
if T(s(i))
z=z+1;
end
end
y=z;

2. sszetett programozsi ttelek

A feladatok tbbsge esetn nem elegend a megoldshoz egyetlen elemi


programozsi ttel alkalmazsa, hanem azok kombinlsra van szksg.
Az sszetett programozsi ttelek krbe tartoz feladatok esetn a megolds
eredmnyeknt mindig egy vagy tbb sorozatot kapunk.

2.1 Rendezs

A rendezsre nagyon sokfle mdszer knlkozik. Ezek kzl nzzk a maximum kivlasztson
alapul rendezst. Ennek a mdszernek a lnyege, hogy kivlasztjuk a legnagyobb rtk
elemet, amit a sorozat vgre helyeznk, gy, hogy a legnagyobb elemet felcserljk a
sorozat utols elemvel, majd a vizsglt sorozat hosszt eggyel cskkentjk.

Palncz Bla, 2007


21
PROGRAMOZSI TTELEK

function y=rendez(x)
n=length(x);
nc=n;
for i=1:n-1
imax=1;
for j=1:nc
if x(imax)<x(j)
imax=j;
end
end
maxi=x(imax);
x(imax)=x(nc);
x(nc)=maxi;
nc=nc-1;
end
y=x;

2.2 Kigyjts

Ebben a esetben egy sorozatbl egy adott tulajdonsggal rendelkez sszes elemet ki kell
gyjteni, eltren a kivlasztstl, amikor csak egy ilyen elem kivlasztsa volt a cl.

function y=kigyujt(x,T)
n=length(x);
y=[];
for i=1:n
if T(x(i))
y=[y,x(i)];
end
end

2.3 Sztvlogats

Ebben az esetben egy sorozatbl kt sorozatot lltunk el. A bemen sorozat elemeit
valamilyen felttel alapjn kt diszjunkt sorozatra bontjuk.

function y=szetvalogat(x,T)
n=length(x);
i=1;
j=n;
for k=1:n
if T(x(k))
y(i)=x(k);
i=i+1;
else
y(j)=x(k);
j=j-1;
end
end

Palncz Bla, 2007


22
PROGRAMOZSI TTELEK

2.4 Sorozatok egyests

Adott kt sorozat, hatrozzuk meg azt a sorozatot, amely azokat az elemeket tartalmazza,
amelyek az egyik s msik sorozatban is benne vannak. De ezek csak egyszer szerepelnek az
egyestsben.
Az s1 sorozatot tmsoljuk s3 vektorba, majd minden s2 sorozatbeli elemrl eldntjk, hogy
benne van-e s1 sorozatban. Ha nincs, akkor beletesszk az s3 egyestst tartalmaz
vektorba.

function s3=egyesit(s1,s2)
n1=length(s1);n2=length(s2);
for i=1:n1
s3(i)=s1(i);
end
for i=1:n2
j=1;
while and(j<n2,not(s2(i)==s1(j)))
j=j+1;
end
if and(not(s2(i)==s2(j)),not(j<n2))
s3=[s3,s2(i)];
end
end

Tbb sorozat unijt gy lltjuk el, hogy az els kett unijt tekintjk, majd ennek s a
harmadik sorozatnak lltjuk el az unijt, s gy tovbb.

2.5 Sorozatok kzs rsze

Kt sorozat metszetnek meghatrozsnl azokat az elemeket keressk, amelyek az egyik


s msik sorozatban is szerepelnek. Az s1 sorozat minden elemt sszehasonltjuk az s2
sorozat minden elemvel. Ha s1(i) = s2(j), j = 1,,n2 valamelyik j-re igaz akkor s3(k) = s1(i),
azaz s1(i) beletesszk a kzs rszt kpvisel sorozatba.

function s3=kozos(s1,s2)
n1=length(s1);
n2=length(s2);
k=1;
for i=1:n1
j=1;
while and(j<n2,not(s1(i)==s2(j)))
j=j+1;
end
if or(s1(i)==s2(n2),j<n2)
s3(k)=s1(i);
k=k+1;
end
end

Irodalom

Ledgard H.F. (1996) : Az objektum orientlt programozs alapjai, Mszaki Knyvkiad,


Budapest.

Palncz Bla, 2007


23
LINERIS EGYENLETRENDSZEREK NUMERIKUS MEGOLDSA

7. elads: Lineris egyenletrendszerek numerikus megoldsa

Tartalom: 1. Az egyenletrendszerek tpusai 2. Megoldsi mdszerek MATLAB felhasznlsval

1. Az egyenletrendszerek tpusai

Legyen az egyenletek szma : n s az ismeretlenek szma : m.

1.1 Inhomogn egyenletrendszer (n = m)

Abban az esetben ha az n = m s az egyenletrendszer inhomogn, azaz

Ax=b

Kt eset lehetsges:

1.1.1 norml eset: det (A) ) 0

Kt egyenlet esetn grafikusan szemlltetve az ismeretlenek (x1, x2) skjn kt egymst


metsz egyenest kapunk, ahol a metszspont reprezentlja az egyrtelm megoldst:

1. bra Ltezik egyrtelm megolds

Azaz ilyenkor van megolds s egyrtelm!

1.1.2 szingulris eset: det(A) = 0

Ha az egyenletrendszer mtrixnak determinnsa zrus, akkor kt lehetsg van

1.1.2.1 rang(A) = rang (A:b)

Vagyis az egyenletrendszer mtrixnak rangja (pl. a mtrixban lv linerisan fggetlen


oszlopvektorok szma) egyenl a jobboldal vektorval, mint oszlop vektorral bvtett A
mtrix (A:b) rangjval. Ebben az esetben vgtelen sok megolds ltezik, mivel a kt
egyenletet reprezentl egyenes egybeesik:

Palncz Bla, 2007


24
LINERIS EGYENLETRENDSZEREK NUMERIKUS MEGOLDSA

2. bra Vgtelen sok megolds

Ekkor a vgtelen sok megolds kzl megoldsknt a legkisebb normj megoldst


tekinthetjk. Az albbi brn az

u =5 + v

megolds egyenletrendszer hibinak ngyzetsszege ngyzetgykt (hibavektor normjt)


ltjuk v fggvnyt,
sqrt((5+v)2+v2)

11

10

3
-5 -4 -3 -2 -1 0 1 2 3 4 5
v

3.bra A megoldsok normjnak minimuma

A legkisebb ngyzetek rtelmben kapott megolds, a minimumot ad v = -2.5 lesz, teht az

u=2.5 s v = -2.5

rtkeket tekintjk megoldsnak.

1.1.2.2 rang(A) <> rang (A:b)

Amennyiben a kt mtrix rangja nem egyenl, akkor a hagyomnyos rtelemben nincs


megolds, hiszen a kt egyenletet reprezentl egyenesnek nincs kzs pontja. Az albbi
brn ez az eset lthat:

Palncz Bla, 2007


25
LINERIS EGYENLETRENDSZEREK NUMERIKUS MEGOLDSA

4.bra Ha nincs megolds akkor hibavektorok normjnak minimumhoz


tartoz vektort tekintjk megoldsnak

Ekkor is definilhatunk egy legkisebb hibj megoldst, amely ugyan egyik egyenletet sem
elgti ltalban ki, azonban az egyes egyenletek hibinak ngyzetsszege minimlis lesz.
Teht most a minimlis normj hibavektorhoz tartoz vektort tekintjk megoldsnak.

1.2 Abban az esetben ha az n > m s az egyenletrendszer inhomogn, (rank(A) =m)

azaz az egyenletek szma tbb, mint az ismeretlenek szma (tlhatrozott egyenletrendszer).


A hagyomnyos rtelemben nincs egyrtelm megolds hiszen n egyenletbl m kivlasztva
ms- ms megolds addik. Itt megint a legkisebb ngyzetek elvt alkalmazva az egyenletek
hibira, kaphatjuk meg a megoldst.

1.3 Abban az esetben ha az m > n s az egyenletrendszer inhomogn,

Azaz a vltozk szma tbb, mint az egyenletek szma (alulhatrozott egyenletrendszer).


Most vgtelen sok megolds addik, hiszen az egyik fls vltozt paramternek tekintve,
annak minden rtkhez kapunk egy megoldst.

1.4 Homogn egyenlet, A x = 0

Ekkor a megolds felttele, hogy det(A) = 0. A megoldst az A mtrix nullternek bzist


alkot vektorok lineris kombincija adja. Azaz vgtelen sok megolds addik. Ezek kzl a
legkisebb normj vlaszthat, mint megolds.

2. Megoldsi mdszerek MATLAB felhasznlsval

2.1 kvadratikus mtrix (n = m) s det(A) 0

A= 52 -60 b = 260 325


39 -25

det(A) = 1040

x = linsolve(A,b)

x = 12.5
6.5

Palncz Bla, 2007


26
LINERIS EGYENLETRENDSZEREK NUMERIKUS MEGOLDSA

Tovbb alkalmazhat mg : x = inv(A) *b, x = A\ b, x = pinv(A) *b


2.2 det(A) = 0 s rank(A) = rank(A:b) vgtelen sok megolds

A = 52 -52 b = 260 195 det(A) = 0 Ab = 52 -52 260 rank(A) = 1


39 -39 39 -39 195 rank(Ab) = 1

x = pinv(A)*b adja a legkisebb normj megoldst.

x = 2.5
- 2.5

2.3 det(A) = 0 s rank(A) rank(A:b) a hagyomnyos rtelemben nincs megolds

A = 52 -52 b = 260 325 det(A) = 0 Ab = 52 -52 260 rank(A) = 1


39 -39 39 -39 325 rank(Ab) = 2

x = pinv(A)*b adja a legkisebb ngyzetek rtelmben a megoldst, azaz, azt az x vektort


amelyre norm ( A* x b) minimum.

x = 3.1
- 3.1

2.4 Inhomogn, tlhatrozott egyenletrendszer (n > m)

A = 2.0000 1.0000 b = 5 10 9 3 27 rank(A) = 2


2.5000 2.0000
1.0000 3.0000
4.0000 6.0000
7.0000 2.0000

x = pinv(A)* b vagy x = linsolve(A, b)

x = 4.0132 x = 4.0132
-1.2710 -1.2710

2.5 Inhomogn, alulhatrozott egyenletrendszer (m > n)

A = 6. 16.5 14. b = 54 100 x1 = pinv(A)*b vagy x2 = linsolve(A,b)


14. 48. 54. x1 = 3.665 x2 = 0
4.780 6.922
-3.347 -4.301

A pinv ltal adott megolds normja kisebb, norm(x1) = 6.891 s norm(x2) = 8.145

2.6 Homogn egyenletrendszer, A x = 0

A = 2 2 -19/33 det(A) = 0 az A nulltere: x1 = null(A) megolds: x2 = C x1.


12 9 -2 x1 = 1 ahol C = ll.
78 9 11 -32/13
-66/13
Irodalom

Stoyan G. (2005) MATLAB. Typotex kiad, Budapest.

Palncz Bla, 2007


27
LINERIS EGYENLETRENDSZEREK NUMERIKUS MEGOLDSA

Palncz Bla, 2007


28
NEMLINERIS EGYENLETEK, INTERPOLCI S REGRESSZI

8. elads: Nemlineris egyenletek, interpolci s regresszi

Tartalom: 1. Nemlineris egyenlet megoldsa; 1.1 Intervallumfelezs mdszere; 1.2 Newton


mdszer; 1.3 MATLAB fggvnyek 2. Interpolci; 2.1 Loklis interpolci; 2.2 Globlis
interpolci; 2.3 Spline interpolci; 3. Regresszi; 3.1 Regresszis egyenes; 3.2 Polinomilis
regresszi; 3.3 MATLAB fggvnyek.

1. Nemlineris egyenlet megoldsa

A feladat az f(x) = 0 egyenlet gykeinek meghatrozsa. Ehhez ltalban valamilyen


informcival kell rendelkeznnk ezen gykk kzelt rtkrl. Szerencsre a mrnki
gyakorlatban ez az informci ltalban adott. Gyakran tudjuk, hogy a gyk pl. vals,
pozitv s kzelten mekkora az rtke illetve milyen intervallumba esik.

Intervallumfelezs mdszere

Ebben az esetben tudjuk, hogy a keresett gyk milyen intervallumba esik. Itt mindig egy
gykre gondolunk, azaz
f(x1) f(x2) < 0

ahol x1 x2. A mdszer algoritmusa a kvetkez:

1) Vlasszuk meg x1 s x2 rtkeit gy, hogy az f(x1) f(x2) < 0 felttel igaz legyen.
2) Szmtsuk ki az intervallum felezpontjt:

xc = (x1 + x2)/2

3) Ha abs( f(xc)) < hibakorlt akkor befejezzk a szmtst.


Egybknt megvizsgljuk, hogy f(x1) f(xc) > 0 igaz -e!

4) Ha igaz, akkor x1 = xc s visszalpnk a 2) pontra


5) Ellenkez esetben x2 = xc s visszalpnk a 2) pontra.

Newton mdszer

Egy gykhz kzeli pontbl kiindulva a kvetkez itercis formult alkalmazzuk:

x i+1 = xi + f (xi)/f' (xi)


amelyet az albbi bra alapjn

f(x1)

x2 x1

f(x)
1.bra A Newton mdszer elve

tg () = f (x1)/(x1 - x2) = f' (x1)

Palncz Bla, 2007


29
NEMLINERIS EGYENLETEK, INTERPOLCI S REGRESSZI

Jellemzk:
- a konvergencia ngyzetes
- ha f'(x) ~ 0 oszcillci lp fel!
- ha f''(0) ~ 0, inflexis pont kzelben lv gyk esetn, lass konvergencia (divergencia).

MATLAB fggvnyek

Nemlineris egyenlet megoldsra a MATLAB az fzero() fggvnyt alkalmazza. Nzznk egy


polinomot:
f(x) = x3 - 2x 5
Hatrozzuk meg a vals gykt! Rajzoljuk fel!
>>ezplot('x^3 - 2*x - 5',[-2, 3])
0

10

-5

-10
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3
x

2.bra A polinom grbje

Definiljuk a fggvnyt:A vals gyk meghatrozsa:


>>f=@(x)x^3-2*x-5;

Egy pontbl kiindulva:

>>fzero(f, 2)
ans=2.09455148154233

Kt kzrezr pontot alkalmazva:

>> fzero(f,[1,3])
ans =
2.09455148154233

Polinom sszes gyknek numerikus meghatrozsra a roots() fggvny hasznlhat. Az


elbbi polinom esetn az egytthatk vektora:

>>p = [1 0 -2 -5];

A gykk pedig,

>> roots(p)

ans =

2.09455148154233
-1.04727574077116 + 1.13593988908893i
-1.04727574077116 - 1.13593988908893i

Palncz Bla, 2007


30
NEMLINERIS EGYENLETEK, INTERPOLCI S REGRESSZI

2. Interpolci

Ha ismerjk az yi = f(xi) sszetartoz (xi, yi) rtkeit, i = 1,n pontokban, krds mi lesz az
yt = f(xt) rtke, ahol xi < xt < xi+1?

2.1 Loklis interpolci

A legegyszerbb interpolci a lineris interpolci. Ekkor az xt rtke csak a szomszdos


rtkektl fgg:
y =yi + (yi+1-yi)/(xi+1-xi) (x-xi)

ahol xi < x < xi+1.


12

10

-2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

3.bra Interpolcis pontok

A MATLAB-ban a lineris interpolcira az interp1() fggvnyt alkalmazhatjuk,

y = @(x)interp1(X,Y,x)

formban, ahol X s Y az interpolcis pontok xi s yi koordintit tartalmaz vektorok.


interp1(X,Y,x)
12

10

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1


x

4.bra Lineris interpolci

2.2 Globlis interpolci

Ekkor f(x) -t valamilyen bzisfggvnyek lineris kombincijaknt kzeltjk! Ezek lehetnek


pldul algebrai vagy trigonometrikus polinomok de ms fggvnyek is. Az egytthatkat gy
kell meghatrozni, hogy yi = y(xi) teljesljn minden i-re! Azaz algebrai polinomok esetn

Palncz Bla, 2007


31
NEMLINERIS EGYENLETEK, INTERPOLCI S REGRESSZI

y1 = a2 x12 + a1 x1 + a0
y2 = a2 x22 + a1 x2 + a0
y3 = a2 x32 + a1 x3 + a0

azaz n-ed fok polinommal val kzelts esetn n+1 adat prra (xi,yi) van szksg!
Az a0, a1 s a2 ismeretlenekre add lineris egyenletrendszer mtrixa az n,.
Vandermonde mtrix. A gond, hogy a Vandermonde mtrix rosszul kondicionlt! Ezrt azutn
az egytthatkat clszerbb ms mdon szmolni. Pl. a Lagrange-fle alakban.
A MATLAB-ban a polinomilis interpolci fggvnyt a polifit() s a polival() fggvnyek
segtsgvel llthatjuk el:

>> n=length(X) % az interpolcis pontok szma


>> p=polyfit(X,Y,n-1); % az interpolcis polinom egytthatinak vektora
>> yp=@(x)polyval(p,x) % maga az interpolcis fggvny
polyval(p,x)
16

14

12

10

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1


x

5.bra A lineris s a polinomilis interpolci

Lthat, hogy a vgeken irrelis lengsek lpnek fel. Oka tl sok pont, tl magasfok
interpolcis polinom. Ezrt 7-8 pontnl tbb esetn nem alkalmazand!

2.3 Spline interpolci

Sok pont esetn az tmenetet a kett kztt! Szakaszonknt polinomilis.Pl. harmadfok


polinom. Az egytthatkat a pont prokbl illetve a sima tmenet felttelbl hatrozhatjuk
meg. A MATLAB-ban a spline() fggvnyt alkalmazhatjuk:

>> ys=@(x)spline(X,Y,x)
spline(X,Y,x)
12

10

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1


x

6.bra Spline interpolci

Palncz Bla, 2007


32
NEMLINERIS EGYENLETEK, INTERPOLCI S REGRESSZI

3. Regresszi

Az adatok hibval terheltek s ezekre akarunk egy modellt illeszteni, amelynek paramtereit
keressk. Az interpolcihoz kpest teht itt a grbe nem megy t a mrsi pontokon!

3.1 Regresszis egyenes

Legyen a kzelt modell


y(x) = b1*x + b0

A rendelkezsre ll adatok: (xi, yi) i=1,...,n > 2. Tbb egyenlet mint ismeretlen (b0, b1)
y1 = b1*x1 + b0
.
yn = b1*xn + b0

A vgtelen sok megolds kzl a megfelelt a legkisebb ngyzetek mdszere adja,


azaz amely minimalizlja az
F(b0, b1) = (yi - (b1*xi + b0))2

fggvnyt. Erre hasznlhatjuk a mr megismert polyfit() fggvnyt! Ha az adat prok szma n


akkor m< n-1 esetre polyfit(X,Y,m) fggvny az m-ed fok regresszis grbt adja! Teht
regresszis egyenes esetn:
p= polyfit(X,Y,1) % az egyenes paramterei
u=@(v)polyval(p,v) % pedig a regresszis egyenes fggvnye
polyval(p,v)

1050

1000

950

900

850

800

750
20 30 40 50 60 70 80 90 100
v

7.bra Regresszis egyenes


3.2 Regresszis polinom

Ebben az esetben a kzelt polinom nem elsfok, hanem magasabb fok polinom. Ennek
fokszma n adat esetn maximum m = n 2, hiszen m = n-1 mr interpolcit jelent.
polyval(p,v)

1050

1000

950

900

850

800

750
20 30 40 50 60 70 80 90 100
v

8.bra Harmadfok regresszis polinom


Irodalom

Zsak L. (1997) : Programozsi feladatok, Kossuth Kiad, Budapest..

Palncz Bla, 2007


33
A SZMTGPES GRAFIKA ALAPELEMEI

9. elads: A szmtgpes grafika alapelemei

Tartalom: 1.Felhasznlsi terlet; 2.Megjelentsi alapfogalmak; 2.1.A megjelents


mdja; 2.2. Sznezs; 3.Grafikus hardver eszkzk; 3.1.Input eszkzk; 3.2.Output
eszkzk; 3.2.1.Nyomtatk; 3.2.2.Monitorok

1. Felhasznlsi terlet

A mikroszmtgpek elterjedse, illetve ezek robbansszer fejldse alapveten


megvltoztatta a programozk, felhasznlk viszonyt a szmtgphez. Ennek a vlto-
zsnak a legszembetnbb jele a szmtgp s az ember kztti kommunikci tala-
kulsa. Az j kommunikcis forma a kp, illetve a kpeken keresztl trtn informci-
csere.
A szmtgpes grafika magba foglalja a grafikai cl eszkzk egyre bvl kr-
nek a ksztshez s mkdtetshez szksges ismereteket ppgy, mint a korszer
grafikai programcsomagok s grafikra orientlt programnyelvek ismerett. Az ember
s szmtgp gyors visszacsatolson alapul (un. interaktv) egyttmkdsben is els-
rend szerepet jtszanak a szmtgpes grafikai mdszerek.
A szmtgpes grafika az informatiknak azon terlete mely kpek, brk elllt-
sval, szerkesztsvel, feldolgozsval, felismersvel, rgztsvel foglalkozik.
Jellemz ipari, mszaki s egyb alkalmazsok:
- mszaki,
szmtgpes tervezs (Computer Aided Design) CAD,
szmtgpes gyrts (Computer Aided Manifacturing) CAM,
egysges szmtgpes tervezs s gyrts CAD / CAM,
szmtgpes ptszeti tervezs (Computer Aided Architecture Design) CAAD,
- folyamatirnyts,
- szmtgpes oktats (Computer Aided Education) CAE,
- trinformatika, trkpszet,
- orvostechnika,
- szemlltet grafika (mrsek, szmtsi eredmnyek, zleti grafika),
- szimulci (krnyezeti folyamatok, tevkenysgek tanulsi folyamata),
- jtkok, animcik,
- reklm, mvszeti grafika.
A felsorolt pldk korntsem mertik ki az alkalmazsi krt. A grafikai megjelents a
szmtstechnika minden szintjre behatolt. Jelenleg szoftverek, opercisrendszerek
megjelensi formja, felhasznli fellete is tbbnyire grafikus.

Koczka Gyrgy, 2007

34
A SZMTGPES GRAFIKA ALAPELEMEI

2. Megjelentsi alapfogalmak

2.1. A megjelents mdja

A szmtgpes grafika elsdleges clja kpek megjelentse. A kp elemi rszekbl


tevdik ssze akr hardveres, akr szoftveres oldalrl vizsgljuk.
Pont: Egyetlen ptty a megjelent eszkzn. A kpernyn pixelnek nevezik.
Vonal: Egyenes szakasz, illetve elemi grbedarab (ltalban v).
Folt: Mintval kitlttt tartomny. A homogn mintzatot tmr kitltsnek nevezik.
Karakter: Egy jelkszlet egyetlen eleme, ltalban bet vagy szmjegy.
A megjelents kt elvben s megvalstsi technikjban klnbz mdon trtnhet.
Vektoros mdszer esetn az objektumok kulcspontjait definiljuk, tulajdonsgai szab-
jk meg az alakjt. A kp jellemzje a folytonos vonalvezets s a minsgromls
nlkli nagythatsg.
Pixeles mdszer esetn az alakzat geometrijt pontokkal kzeltjk. Az objektumot
csak a kpi benyoms utn tudjuk azonostani az alakjt ler pontjai alapjn. A lt-
vny az emberi szem vges felbontkpessgn alapul.
A pixeles eszkzk jval nagyobb memrit ignyelnek, szoftveres szempontbl azon-
ban sokkal egyszerbbek. Az albbi bra szemllteti a kt megjelentsi mdszer kzt-
ti klnbsget.

Mindkt elv hasznlatos szoftver s hardver eszkzknl egyarnt.

2.2. Sznezs

A sznek a szembe jut klnbz hullmhossz fnysugarak rzkelse.


A lthat tartomny sszes sznt tartalmaz fnyt fehrnek, teljes hinyt feketnek
rzkeljk.
Az informatikban tbbfle elvet hasznlnak arra, hogy szubjektv rzetnket analitikus
formban lerhassuk.
A sznek lersra hasznlt modellek:
- Az RGB modell alapja hrom szn, a vrs a zld s a kk. E sznek klnbz arny
keversvel lehet a szntartomny ms rszt lerni. A szneket az alapsznek ssze-

Koczka Gyrgy, 2007

35
A SZMTGPES GRAFIKA ALAPELEMEI

adsval lltjuk el (additv sznkevers). Sugrz testek sznlersnak jellemz mo-


dellje (pl. monitor).
- A CMYK modell az elnyelt fny tulajdonsgain alapul. Alapja ngy szn, a cin a b-
bor a srga s a fekete. E sznek paprra festett klnbz arny keverse a fny
egy rszt elnyeli s a maradk szn kelt sznrzetet. A fekete komponens a festkek
tkletlensge miatt szksges, elvileg az els hrom komponens elegend a keve-
rshez. A szneket az alapsznek kivonsval lltjuk el (szubtraktv sznkevers). A
nyomtatk hasznlt sznmodellje.
- A HSB modell az ember sznrzkelst veszi alapul. Hrom sszetevje az rnyalat,
a teltettsg s a fnyer. Az rnyalat az rzkelt fny hullmhosszval arnyos
mennyisg. A teltettsg a szn tisztasga, azaz mennyi fehr komponens van beleke-
verve. A fnyer, pedig a vilgossga vagy sttsge.
- Az LAB eszkzfggetlen elmleti sznmodell. Hrom rtk, a vilgossg (L), egy zld-
magenta szntmenetben (A) s egy kk-srga szntmenetben (B) elfoglalt hely defi-
nilja a sznt.
Tallkozhatunk olyan sznezsi mdokkal (pl. nyomdatechnikban), ahol nem matemati-
kai ton definiljk, hanem egyedi szempont szerint vlogatjk ssze a szneket, amik
kzl vlaszthatunk (pl. Pantone Process sznskla).
A megjelent eszkzk klnbz sznmodelleket hasznlhatnak. Termszetesen a pixe-
lekhez rendelt szninformcit bitekkel reprezentljuk. Ennek megfelelen az elrhet
sznt a sznkomponensek bitszmbl add varicis lehetsgek hatrozzk meg.

3. Grafikus hardver eszkzk

A hardvereket tbb szempont szerint lehet csoportostani:


- az informci irnya szerint input s output eszkzk,
- a megjelents illetve az informci gyjtse szempontjbl vektoros s pixeles,
- a kp anyagi megjelensi formja szerint papr, film, vagy virtulis kp egy monito-
ron.
Vizsgljuk meg, illetve a fontosabbakat jellemezzk az els szempont szerint.

3.1. Input eszkzk

Diszkrt pontok bevitelre alkalmas eszkzk:


- Egr mutateszkz, hasznlata a vizulis visszacsatolson alapul. Fbb tpusai me-
chanikus grgs s az optikai. 2D-s pontok bevitelre alkalmas.
- Digitalizl tblval s preczis mechanikval elltott eszkz, mely sajt billenty-
zettel rendelkezik, gy 3D-s pontok s jelek bevitelre is alkalmas.
- Fnyceruza a kpernyre mutatva vihetjk be a kvnt pontot.
- Billentyzet ltalban kurzormozgat billentykkel s a kpen mozg szlkereszttel
pozcionlhatunk.
Kpek, ponthalmazok bevitelre alkalmas eszkzk:

Koczka Gyrgy, 2007

36
A SZMTGPES GRAFIKA ALAPELEMEI

- szkenner paprkpek digitalizlsa,


- digitlis fnykpezgp digitlis fnykpek ksztshez,
- CCD kamera digitlis videofilm ksztshez.
A fenti eszkzk tartalmaznak egy flvezet fnyrzkel elemet (CCD chip), mely a
berkez fnyt megfelel mdon elektromos jelekk alaktja.

3.2. Output eszkzk

Vektoros megjelent:
- Rajzgp kis kocsin mozg tollakkal, specilis papron trtnik a rajzols. Fbb tpu-
sok a sk, a tekercses s a dobos plotter. A 70-es, 80-as vek klasszikus megjelent
eszkze. A korltozott sznszm s a vonalorientlt rajzolsi md elavultt tette.
Pixeles megjelentk:
- nyomtat,
- monitor,
- mikrofilm a 70-es, 80-as vek nagy szn s pixelfelbonts outputja.

3.2.1. Nyomtatk
Gyakrabban hasznlt tpusok:
- Karakternyomtat hasonlak az elektromos rgpekhez. Elemi egysge a karak-
ter. Egyes technikai megoldsok (sornyomtatk) igen nagy sebessggel nyomtatnak,
azonban a formzsi ktttsgek s a nehzkes mechanika miatt elavultak.
- Mtrixnyomtat egy vagy tbb tsor festkszalagon keresztl hagy nyomot a pa-
pron. Egy karakter kpe pontmtrixbl ll ssze. E nyomtattpus grafikus zem-
mdban is hasznlhat. Megfelel festkszalaggal sznes nyomtats is lehetsges.
- Lzernyomtat specilis anyagbl kszlt hengerre lzer rja fel pontokkal a kpet.
Ahol a lzer a hengerhez r, a fellete elektrosztatikusan feltltdik s itt a festk
megtapad. A papron vgiggrdtve a festk a paprra tapad, amit rgetnek.
- Tintasugaras nyomtat tintacseppeket lvell a paprra. A nyomtatsi minsg er-
sen fgg a cseppek mrettl, a festk s a papr minsgtl. A nyomtattpus f
erssge a viszonylag olcs s j minsg sznes nyomtatsi lehetsg.
- Hnyomtat specilis, hrzkeny papron a kvnt pontok helye elsznezdik.
A kp minsgt az inch-enknt nyomtatott pontszmmal jellemezzk (dot/inch). Tipikus
rtksorozatok: 150, 300, 600, 1200 dpi illetve 180, 360, 720, 1440 dpi.

3.2.2. Monitorok
A manapsg hasznlt videomegjelentk a pixelgrafikus elvet hasznljk.
Jellemz technikai megvalstsok:
- Katdsugrcsves elektronsugr psztzza a fnyrzkeny foszforrteggel bevont
ernyt. Az elektron energijval arnyos intenzits fnykibocstsra kszteti a kp-
ernyt. A sznes monitorokban hrom szngy van, melyekbl kibocstott sugarak
egytt mozognak. A foszforrteg is hrom klnbz tpusbl pl fel, s egy sznh-
l tallhat a kpcsvn.

Koczka Gyrgy, 2007

37
A SZMTGPES GRAFIKA ALAPELEMEI

- Folyadkkristlyos kt tltsz lap kztt vkony folyadkkristly rteg tallhat.


A kristly molekuli elektromos tr hatsra elfordulnak, s nem minden irnyban
egyformn engedik t a fnyt.
- Gzplazms kt veglapbl ll, melynek felletre egymshoz kzel elektrdkat
helyeznek. A kzttk lv teret megfelel gzzal tltik fel. Feszltsg hatsra a
gz fny kibocsjtsra ksztethet, mely lnyegben a kt elektrda vonaln kis ki-
terjedsben trtnik.
A viderendszer kt rszre bonthat. A megjelent monitorra (kperny, vezrl rend-
szer) s egy direkt elrs memrira (grafikus krtya).
A videorendszer zemmdja karakteres vagy grafikus, egy idben csak az egyik
- Karakteres zemmdban a kp egy kivlasztott karakterkszlet elemeibl ll. Min-
den karakternek van egy ler pontmtrixa a memriban (egy pont egy bit). Kz-
vetlenl csak a karakter pontmtrixa rhet el, az egyes kppontok nem.
- Grafikus zemmdban a kphez pixelenknt frhetnk hozz, azaz a grafikus kr-
tyn kzvetlenl cmezhet. Egy pixel sznt a ler bitszm hatrozza meg.
Karakteres zemmdot mr csak igen kevs helyen hasznlnak. A korszer szvegszer-
kesztk is grafikus mdban dolgoznak, de sok elvet temeltek pl. karaktertbla. A ka-
raktert nem mindig egy pontmtrix r le, hanem egy vektortblzat (TrueType, Type 1
karakterkszletek).
A grafikus zemmdok ttekint jellemzse:
A grafikus mdok kt csoportra bonthatk, a paletts s a direkt sznmdra.
- Direkt sznmd: a sznler bitek kzvetlen tartalmazzk az RGB sznt.
- Paletts sznmd: a hasznlni kvnt szn sorszmhoz tartoz palettaregiszterek tar-
talmazzk az RGB sznt.
Egy pixel sznszmt a ler bitszma szabja meg: Sznszm=2bit/pixel . A TrueColor 32
bites zemmdja egy nem hasznlt bjtot tartalmaz.
A kp memriaignye az albbi kplettel szmthat:
mret = X irny pixelszm * Y irny pixelszm * (bit/pixel) / 8 [bjt]
A grafikus krtya lineris memria. A monitoron a kp egy pontmtrix. A kett kztt
egy-egy rtelm a hozzrendels. A videomemria kezdete (0. bjtjn kezdd bitek)
felel meg a kperny bal fels pixelnek. Az zemmdra jellemz cmfggvny adja
meg, hogy melyik pixelnek mely bitcsoport felel meg a memriban. A kperny koor-
dintarendszere is a bal fels sarokbl indul, jobbra s lefel pozitv irny (termsze-
tes kioszts).

Irodalom
Koczka Gyrgy: Bevezets a szmtgpes grafikba, Megyetemi kiad, 2002
Szirmay-Kalos Lszl: Szmtgpes grafika, ComputerBooks, 1999

Koczka Gyrgy, 2007

38
A SZMTGPES GRAFIKA ALGORITMUSAI

10. elads: A szmtgpes grafika algoritmusai

Tartalom: 1.Grafikai szoftverek; 1.1. Gpkzeli szint; 1.2. Fejleszti szint;


1.3.Alkalmazi szint; 2.Grafikus algoritmusok; 2.1.Vonal rajzolsa; 2.1.1.Egyszer
vonalrajzol (DDA); 2.2.Vgs s ablakozs; 2.2.1. Pont lthatsga; 2.2.2.Egyenes
vgsa; 2.3.Poligonfests; 2.4.Foltkitlts; 2.5.Kpfeldolgozs; 2.6.Mozgsrzkeltets

1. Grafikai szoftverek

Hardverek, szoftverek grafikus ignye igen sokrt. Az ignyek klnbz szint megva-
lstst ignyelnek. Egy digitalizl eszkzbl rkez jelek feldolgozsa vagy egy inte-
raktv vonalrajzol nyilvn ms jelleg program ksztst kveteli meg.
Hrom f szint jellemzi a grafikus igny programokat.

1.1. Gpkzeli szint

Tbbnyire eszkzk vezrlst, alapfunkcikat ellt eljrsokat ksztenek e szinten.


Jellemz programozsi eszkzk:
- kzvetlen memriacmzs (pl. videokrtya programozsa),
- portkezels (pl. hardver eszkz zemmd belltsa),
- vezrl szekvencik (pl. nyomtat, rajzgp vezrlse),
- alacsony szint fggvnyhvs (grafikus eszkzk tartalmazhatnak, vagy kln mell-
kelnek ezekhez alapfunkcikat ellt eljrsokat).
A klnfle hardver eszkzk vezrlsre, programozsra ms-ms mdot rszestenek
elnyben.
Plda:
PC-s krnyezetben a szabvnyos alapszint funkcikat a BIOS ltja el.
Nhny fontos video BIOS fggvny funkcija:
zemmd bellts,
videolap llts,
pixel kigyjts,
karakter kirs,
karaktertbla kivlaszts.
E funkcik szoftver megszaktshvssal hasznlhatk a programokban.

Koczka Gyrgy, 2007

39
A SZMTGPES GRAFIKA ALGORITMUSAI

1.2. Fejleszti szint

A magas szint programozsi nyelvek jelents rsze tartalmaz grafikus eljrscsomagot.


A grafikus feladatok szubrutinok hvsval oldhatk meg. Manapsg a funkcik kre
szabvnyosnak tekinthet, azonban hasznlatukban eltrs lehet.
Plda:
A Pascal grafikus unit nhny fontos szubrutinja nevvel s funkcijval:
InitGraph grafikus zemmd belltsa
Putpixel adott szn pont kigyjts
SetColor tinta sznnek megadsa
SetRGBPalette adott sorszm palettaregiszterek lltsa
Line vonal rajzolsa
Circle kr rajzolsa
OutTextXY szveg rs megadott pozcira
GetImage kp elmentse
PutImage kp beillesztse
FillPoly kitlttt sokszg rajzolsa
FloodFill adott szn vonallal hatrolt tartomny kitltse
CloseGraph grafikus zemmd zrs

1.3. Alkalmazi szint

Az informatika fejldsvel, a felhasznli kr bvlsvel indultak igazn fejldsnek


ezek a szoftverek.
Jellemz kpviseli e szintnek az integrlt programcsomagok s a mrnki tervezrend-
szerek. A grafikus felhasznli fellet, a menvezrelt interaktv kapcsolat szinte ktele-
z. A rajzols mvelete ltalban grafikus funkci kivlasztsval, pozcionl eszkzzel
trtnik.
A felhasznli interfsz ngy sszetevre bonthat.
- Felhasznli modell: ez a felhasznl ltal alkotott fogalom a munkja vgzshez
szksges program kezelsi tevkenysgrl. tfog kpet kell alkotnia a program
mkdsrl.
- Parancsnyelv: a felhasznl parancsok segtsgvel tudja kezelni a rendszert. Ezeket
ikonok, menk vagy parancssor segtsgvel lehet kiadni.
- Visszajelzs: a visszajelzs rvn gyzdhet meg a felhasznl arrl, hogy paran-
csait a program pontosan megrtette.
- Informci megjelentse: tevkenysgnk rdemi rsznek folyamatos megjelent-
se alapveten fontos. Ettl interaktv a tevkenysg.

Koczka Gyrgy, 2007

40
A SZMTGPES GRAFIKA ALGORITMUSAI

Plda:
Az AutoCAD rendszer fontosabb funkcii:
- rajzi krnyezet belltsa (paprmret, pozcionl hl, rajzi segdeszkzk, etc.),
- rajzelemek ltrehozsa,
egyszer rajzi entitsok: pont, vonal, kr, v, szveg,
sszetett rajzi entitsok: vonallnc, blokk, mintzat, mretvonal,
- rajzelemek mdostsa, transzformlsa,
- a rajz szervezse,
blokkok: fizikailag sszekapcsolt rajzelemek, melyek azonostval rendelkeznek,
flik: logikailag sszekapcsolt rajzelemek, melyek bizonyos helyzetekben kzsen
kezelhetk,
- a rajz nzetvltsa,
- rajzelemek lekrdezse,
- a rajz megjelentse hardver eszkzkn,
- kapcsolat az opercis rendszerrel.
A rajzot felpt grafikus elemeket a rendszer terminolgijval lve rajzelemeknek
(entity) nevezzk.

Jl rzkelhet a vlts, melyet a szoftverek szintjei adnak. Az elz kt szinten szm-


tstechnikaiprogramozsi megoldst kellett adni, s azt megfogalmazni. Az alkalmazi
szint biztostja, hogy a megszokott szerkesztsi fogsokkal dolgozhassunk. Termszete-
sen a szoftver hasznlatt megfelel mlysgben ismerni kell.

2. Grafikus algoritmusok

Ebben a fejezetben azokrl az algoritmusokrl lesz sz, melyek alapjul szolglnak


mind a megjelentsnek, mind pedig a grafikus modellezsnek.

2.1. Vonal rajzolsa

A szmtgppel ellltott kpeken gyakran van szksg egyenes szakaszokra. Rsz-


ben, mert rajzainkat is egyenesek alkotjk, rszben a grbk is jl kzelthetk kis
egyenes szakaszokkal. Tbb grafikus algoritmus is a hatkony vonalrajzol algoritmusra
pl.

2.1.1. Egyszer vonalrajzol (DDA)


A vonalat egysgnyi lpsekbl teszi ssze. (A pixelek
tvolsga egy egysg.) Elszr kiszmtjuk a lpssz-
mot.
dl = max(dx, dy)
Az x s y irny elemi nvekmnyek:

Koczka Gyrgy, 2007

41
A SZMTGPES GRAFIKA ALGORITMUSAI

x = dx/dl s y = dy/dl
x0 = x1, y0 = y1
i = 0, 1, , dl-re
a kirajzolt pont helye: round(xi, yi),
az elmleti egyenes lpsei: xi+1 = xi + x s yi+1 = yi + y .
A pixelek helye az elmleti egyenesbl kerektssel addik (nyomvonal). Igen egyszer
s rvid algoritmus. Lebegpontos mveleteket ignyel, ezrt csak a kis vonaligny
szoftverekhez alkalmas.

2.2. Vgs s ablakozs

Az alkalmazsok jelents rsze azt a benyomst kelti a felhasznlban, mintha ablakon


keresztl nzne egy igen nagymret kpet. Az opercis rendszerek felhasznli fel-
lete is ablakozsi technikn alapul. Az albbi algoritmusok tglalap alak ablakon m-
kdnek.

2.2.1. Pont lthatsga


A vgsi mveletek alapja egy egyszer egyenltlensgpr, mely eldnti, hogy a pont
bell van-e. Legyen xbal, xjobb, ybal, yjobb az ablak szlnek, x,y a pont kperny-
koordinti. A Lthatsg felttele:
xbal < x < xjobb ybal < y < yjobb
Vonalas alakzatoknl ez a mdszer nem alkalmazhat. A pontokra bonts, majd a fel-
ttelvizsglat igen lassv tenn az eljrst.

2.2.2. Egyenes vgsa


Figyeljk meg az egyenesek s az ablak klcsns helyzett. A konvex hatr mindig
csak egy lthat szakaszt llthat el.

A vzolni kvnt algoritmus Cohen s Sutherlandtl


szrmazik. Az alapelv, hogy minl gyorsabban
elhagyja azokat az egyeneseket, melyek nem 1001 1000 1010
lthatk.
Ablak
0001 0000 0010

Koczka Gyrgy, 2007 0101 0100 0110


42
A SZMTGPES GRAFIKA ALGORITMUSAI

A kperny hatrait meghosszabbtjuk gy, hogy a teljes kpet kilenc rszre osszk fel.
E tartomnyok egy 4-bites kdot kapnak az bra szerint. Az egyenes vgpontjai pedig
megkapjk azt a kdot, melyikben fekszenek.
A vgsi algoritmus lpsei:
- Nyilvnval, ha mindkt vgponthoz zrus tartozik az egyenes teljes terjedelmben
bell van.
- Amennyiben a kt kd logikai szorzata (logikai s) nem nulla, az egyenes kvl esik.
- Egybknt darabolni kell.
A darabols mdja, hogy megkeressk az egyenes s a kperny egyik lnek met-
szspontjt. Az brn pl. a C pontot. Ekkor az AC szakasz elhagyhat. A CB szakasz
vizsglatval megkapjuk a D pontot, gy a megjelenthet BD szakaszt.

2.3. Poligonfests

Az algoritmus clja, hogy tetszleges skidomot be tudjunk festeni egy megadott sznre.
Egy ltalnos skidomot tetszleges mrtkben kzelthetnk poligonnal. Legyen a
poligon oldalszma n. Egy kiszemelt pontjbl n-2 darab hromszgre vghatjuk. Ezzel
a feladatot visszavezettk hromszg festsre.
A hromszget vzszintes cskokra vgjuk a kperny sorai szerint, majd adott szn vz-
szintes vonalakkal kitltjk. A szakaszok vgpontjai a szmtott metszspontokbl add-
nak.
A gyakran hasznlt szntmenetes poligonkitltsnek is a fenti algoritmus szolglhat ala-
pot. Ekkor a vzszintes vonalat valamilyen interpolcival szmolva pixelenknt ms
sznnel kell rajzolni.

2.4. Foltkitlts

Sok esetben olyan alakzatot kell kifesteni, mely


poligonokra vgsa komoly nehzsgbe esik vagy
nem is igen kivitelezhet. Nevezzk az ilyen tbb-
szrsen sszefgg tartomnyt foltnak. Rendel-
kezzen meghatrozott szn hatrvonallal.
Indulsnak meg kell adni egy olyan [x,y] pontot,
amely a folt belsejbe esik. Az algoritmus vzszintes
vonalakkal prblja betlteni a zrt terletet.
A trbl kiolvas egy [x,y] koordintt. Az [x,y]
ponttl jobbra, majd az [x-1,y] ponttl balra haladva addig rajzolja be a vzszintes
vonal pontjait, amg mr berajzolt ponthoz, vagy hatrponthoz nem r. Ekzben figyeli
az egyel fljebb s egyel lejjebb lv vonal pontjait, s amikor ezeken a vonalakon
berajzolt pontot res pont kvet, az res pont koordintit a trba helyezi. Ilyen mdon
egy res pont minden szomszdos res pontja a kvetkez menetben be lesz rajzolva,

Koczka Gyrgy, 2007

43
A SZMTGPES GRAFIKA ALGORITMUSAI

hiszen vagy maga is bekerl a trba, vagy egy ilyen pontbl res pontokon keresztl,
vzszintes irnybl elrhet.

2.5. Kpfeldolgozs

Az alapelvet ismertetve, csupn rintlegesen foglalkozunk a tmval. Remek szoftverek


s kiterjedt irodalom ll a felhasznlk rendelkezsre.
A feldolgozs alapja az a bitmtrix amely a feldolgozand kpet lerja. Tekintsk az
albbi brt. A bal oldal a kperny egy rszlete, az a kprszlet, melyet vizsglni
fogunk. Vegyk azt az alapesetet, mikor a kp monokrom. Jellje 0 ahol a pixelek feh-
rek s 1 ahol feketk (bal fels bra). Ez megfelel egybknt a trolt kp bitjeinek. Az
bra egy 16 x 16 pixeles dobozban fr el. Ennek megfelelen mrete 2 x 16 bjt. V-
gezznk egy egyszer mdostst a teljes kpen. A 0-kat cserljk fel az 1-esekkel (bal
als bra). A kpernyn az bra inverze, azaz a negatvja jelenik meg.
000000000000000000
011100000000000000
011111000000000000
011111110000000000
011111111100000000
011111111111000000
011111111111110000
000000111100000000
000000011110000000
000000001111000000
000000000111100000
000000000011110000
000000000001111000
000000000000111100
000000000000011110
000000000000001110
000000000000000110
000000000000000000

111111111111111111
100011111111111111
100000111111111111
100000001111111111
100000000011111111
100000000000111111
100000000000001111
111111000011111111
111111100001111111
111111110000111111
111111111000011111
111111111100001111
111111111110000111
111111111111000011
111111111111100001
111111111111110001
111111111111111001
111111111111111111

Sznes kp esetn bonyoldik a helyzet. A grafikus zemmdnak megfelelen a bitmt-


rix nagyobb lesz. 256 szn zemmdnl egy pixelnek egy bjt felel meg. A kp mrete
gy 16 x 16 bjtosnak addik.
Termszetesen nem csak globlis manipulcikat vgezhetnk. Retuslhatjuk, mdosthat-
juk a kp tetszleges rszt.

Koczka Gyrgy, 2007

44
A SZMTGPES GRAFIKA ALGORITMUSAI

2.6. Mozgsrzkeltets

A mozgs rzkeltetse a szmtgpes grafika alapvet ignyv vlt. Hrom cso-


portba sorolhatk a klnbz megvalstsok.
Kpek egyms utni sorozata
Az ltalban elre elksztett kpeket folyamatosan, egyms utn msoljuk a
videomemriba. Egyszer mdszer, de csak igen gyors hardverrel lesz folyamatos a
mozgs. Vals idej mozgsrzkeltetsre csupn korltozottan alkalmas.
Kprszletek egyms utni sorozata
ltalban fix httrre helyezzk el a mr korbban elksztett alakzatokat. Folyamato-
san mentjk az eltakart rszleteket, majd visszarajzoljuk, s az alakzatokat j helyre
rakjuk. Az animcik kedvelt mdszere. Lpsekre bontva:
1. Alakzat, httr elksztse.
2. Az alakzat pozcijnak szmtsa.
3. Az alakzat htternek mentse.
4. Az alakzat megjelentse.
5. Vrakozs (legyen idnk ltni).
6. Httr visszatltse.
7. Felttteles ugrs 2-re.
Kppixelek folyamatos frisstse
Kpnk megvltozott pontjait rajzoljuk t, a tbbihez nem nylunk. A mdszerrel folya-
matosan psztzzuk a meglv s az j kp pontjait. Ahol eltrs van, frisstjk a
videomemrit. A mdszer csak akkor hatkony, ha az elksztett j kp trolt szerkeze-
te megegyezik a kperny szerkezetvel.
Lpsekre bontva:
1. A lthat kp elksztse.
2. Az j kp elksztse a trolra.
3. Frissts, szksg szerint vrakozs.
4. Feltteles ugrs 2-re.
A 2., 3. pont sszevonhat, ha a kp ksztsi folyamata nem zavarja a ltvnyt s
ez programozstechnikailag megoldhat.
Az animci a mozgs rzkeltetsnek specilis fajtja. Amennyiben egy grafikus ob-
jektum mozgst, vagy mozgskomponenst ismtld kpsorral le tudjuk rni, akkor e
fzisok elre elkszthetk. Az objektumot j helyn ekkor a kpsorozat egy megfelel
tagja jelenti meg.

Irodalom

Koczka Gyrgy, 2007

45
A SZMTGPES GRAFIKA ALGORITMUSAI

Koczka Gyrgy: Bevezets a szmtgpes grafikba, Megyetemi kiad, 2002


W. M. Newman R. F. Sproull: Interaktv szmtgpes grafika, Mszaki Knyvkiad,
1987

Koczka Gyrgy, 2007

46
SZMTGPES GRAFIKAI MODELLEZS I.

11. elads: Szmtgpes grafikai modellezs I.

Tartalom: 1.Grafikai modellezs; 1.1.Geometriai modell; 1.2.Geometriai tervezs;


1.3.Alaklers; 1.3.1.A lerssal szemben tmasztott kvetelmnyek; 1.3.2.Az
alaklersra hasznlt matematikai eszkzk; 1.4.A valszersg elrsre hasznlt
mdszerek

1. Grafikai modellezs

A szmtgpes grafika szorosan kapcsoldik a modellezshez. Ennek egyik oka az,


hogy a szmtgpes grafika igen knyelmes lehetsget nyjt a szmtgpes model-
lek viselkedsnek megfigyelshez. A kpi megjelents knnyebben tlthat s r-
telmezhet, mint a tblzatos forma. Msrszt az interaktv grafikt felhasznlhatjuk a
tervezsi alkalmazsokban is, ahol a grafikai modell a tervezsi folyamat jelents r-
szt teszi ki.

1.1. Geometriai modell

Ahhoz, hogy megjelenthessk a valsg egy kiszemelt rszt nevezzk szntrnek ezt
a gondolatban elhatrolt trrszt grafikus output eszkzn, a kvetkez lpseket kell
megtennnk:

Koczka Gyrgy, 2007

47
SZMTGPES GRAFIKAI MODELLEZS I.

szntr (a valsg elklntett rsze) a megjelentend alakzatok kiv-


lasztsa

geometriai modellalkots a fontos tulajdonsgok megtart-
sa


modelltr a trgymodellek elhelyezse

transzformcik a trgytr elksztse (a nzpont
vetts irny modelltr)
a nzpont irny ltvny elk-
sztse
kptr (az alakzatok ltvnya) alakzatok a kpskban a hozzjuk
tartoz mlysgi adatokkal
transzformci a hardver eszkz a ltvny rgztse
koordintarendszerbe

megjelent eszkz
A szoftverek, grafikus tervezk egykt fzist tvesznek a felhasznltl. Az AutoCAD
men szinten biztostja a modelltr kptr transzformcikat. Termszetesen biztos-
tottak a kptr monitor, nyomtat transzformcik is.
Az alakzatokat adatszerkezetben trolt koordinti, azok kapcsolati sszefggsei
teljes mrtkben meghatrozzk. Az ilyen tulajdonsggal rendelkez modelleket
geometriai modellnek nevezzk.
Plda:
Test felsznnek kzeltse s kpi megjelentsnek elksztse.
A felsznt diszjunkt p1, p2,..., pn poligonokkal kzeltjk, terletk rendre f1, f2,..., fn.
n n
Ezzel a kzelt polider p = U p i s felszne F = f i . Megfelel feloszts esetn a
i =1 i =1
test alakjnak kpe jl kzelti a valsgot s a szmtott felszn is megfelel pontoss-
g.
brzolshoz meg kell hatrozni a poligonok modelltrbeli cscsponti koordintit. A
megfelel nzpont szerinti transzformcit elvgezve, a cscsokat vonalakkal sszekt-
ve elll a test drtvzas kpe.
Legyen egy relcis adatbzis kt tblja a polidert ler adatszerkezet. Az egyik
tbla a cscsokat, a msik a cscsokat tartalmaz leket, azaz a kapcsolatokat tartal-
mazza.

Koczka Gyrgy, 2007

48
SZMTGPES GRAFIKAI MODELLEZS I.

Cscsok s koordintik:
azonost x y z
cscsp xp yp zp
lek s a hozz tartoz vgpontok:
azonost kezdpont vgpont
lk cscsp cscsq
A poligonok leivel sszerendelt cscsponti koordintk a test drtvzas geometriai mo-
delljt alkotjk.
Tmr megjelentshez meg kell adni a lapokat. A lapokat cscsaik megfelel sorrend
felsorolsval definiljuk. A krbejrst a jobbkz-szably konvenci betartsval gy
vgezzk, hogy a normlis a poliderbl kifel mutasson.
Vegyk az elz cscsok-koordintk tblhoz a lapok tblt:
azonost darab 1. cscs . K. cscs .
lapk K cscsp . cscsq
A darab oszlop megadja, hogy az adott lapnak hny cscsa van. (Ebben a tblban
elfordulhatnak res cellk.) A lapok takarsvizsglat utn megjelenthetk kontrjukkal,
festhetk vagy vilgtst hasznlva rnyalhatk.
A polider lapjaival sszerendelt cscsponti koordintk a test geometriai modelljt
alkotjk.

1.2. Geometriai tervezs

A geometriai tervezs a konstruktv geometria elvn alapszik. Ennek alapgondolata,


hogy minden vges hromdimenzis geometriai alakzat vges szm diszjunkt geomet-
riai testtel s vges szm kombinl mvelettel (logikai opertorok) lerhat. Az elvnek
megfelelen a tervez rendszerek sajt alaptest kszlettel rendelkeznek.
Plda:
Az AutoCAD szilrdtest modellezjben hrom, testeken vgrehajthat boole-mvelettel
dolgozhatunk, az egyestssel a kzsrsz-kpzssel s a kivonssal.

1.3. Alaklers
Egy grafikus programnak tbb, nha egymsnak ellentmond szempontnak kell megfe-
lelnie. Teljestenie kell a felhasznl kvetelmnyeit, matematikailag jl kezelhet mo-
dellt kell alkotnia, szmtsi munka s trigny szerint hatkonynak kell lennie. Vizsgljuk
meg e szempontokat.

1.3.1. A lerssal szemben tmasztott kvetelmnyek


Tbbnyire a felhasznl ignyei szabjk meg, hogy alaklersunknak mely tulajdons-
gokkal kell rendelkeznie. A grbetervezs legfontosabb szempontjai a kvetkezk.

Koczka Gyrgy, 2007

49
SZMTGPES GRAFIKAI MODELLEZS I.

- Tengelyfggetlensg: egy alakzat kpe nem vltozhat meg, ha egy ms koordinta-


rendszerben fogalmazzuk meg jellemz pontjait.
- Tbbrtksg: a lerand alak ltalban nem tekinthet valamely koordinta egy-
rtk fggvnynek.
- Tmpontok, csompontok: grbe alakjnak interaktv kijellsre szolglnak. Olyan
pontok, melyeken a grbnek keresztl kell haladnia, illetve amelyek elre lthat
mdon irnytjk a grbe alakjt.
- Globlis, loklis vltoztathatsg: a tervez ltal vgzett mdosts hatsa a vl-
toztatott krnyezetre, illetve a teljes grbre.
- Hullmzs kiegyenlts: igny lehet a loklis hullmzs cskkentsre, a zaj szrs-
re.
- Sokoldalsg: akadlyozhatja a felhasznlt, ha a grbelers csak meghatrozott
alakvltoztatsokat tesz lehetv. Pldul krvek rajzolsval nehzkes bonyolult
alakot megrajzolni.
- Folytonossgi kvetelmnyek: a bonyolult alakzatokat rendszerint klnfle, vgk-
nl sszeillesztett grbvel modellezik. Az illeszkeds rendje meghatrozza az ered
alakzat formjt.
A fellettervezs kvetelmnyei a fentiekhez nagyon hasonlak. Az esetek jelents r-
szben a grbkre alkalmazott mdszerek kiterjesztsvel oldhatk meg a problmk.

1.3.2. Az alaklersra hasznlt matematikai eszkzk

1.3.2.1. Grbk megadsa


Egyszer grafikus problmk esetn a koordintk fggvnykapcsolatba hozsa ele-
gend. Mrsek kirtkelsre, gazdasgi diagrammok brzolsra tbbnyire kiel-
gt.
Grbk modellezshez azonban a paramteres (vektorskalr) grbket hasznljk a
leggyakrabban.
A grbe pontjainak egy vektor felel meg r(t) = [x(t) y(t) z(t)] . Itt a koordintk a t pa-
ramter fggvnyei. A paramter egy meghatrozott intervallumban rendszerint 0 s
1 kztt mozoghat. A tbbrtksg kvetelmnye termszetesen kielgl.

1.3.2.2. Felletek megadsa


A ktvltozs fggvnyek korltozott felhasznlsi terlettel brnak. Jl hasznlhatk
egy terep bemutatsra, szintvonalai brzolsra.
ltalnos esetben ktparamteres (vektorskalr) fggvnyekkel tudjuk a felleteket
kezelni r(u,v)=[x(u,v) y(u,v) z(u,v)] . Mindhrom koordinta ktvltozs fggvny, u s v
egy meghatrozott tartomnyon mozoghat.

1.3.2.3. Vektor-vektor fggvny brzolsa


Ezek a fggvnyek olyan mennyisgek kezelsre alkalmasak, melyek a tr egy pontj-
hoz vektort rendelnek. Megjelentskre szemlletes a vektoros mdszer alkalmazsa,
mert gy a nagysg s az irny is bemutathat.

Koczka Gyrgy, 2007

50
SZMTGPES GRAFIKAI MODELLEZS I.

1.3.2.4. Az alaktervezs interpolcis eszkzei


Az alaklers mdja az alkalmazstl fgg. Analitikus s szintetikus alkalmazsokrl
beszlhetnk. Az analitikus alkalmazsokban a trgyak mrt adataibl indulunk ki.
Grbt vagy felletet illesztnk egy trgy jellemz pontjaihoz. Clunk a valszer illesz-
ts, a mrsek szmnak minimalizlsa stb. Szintetikus alkalmazsokkal a tervezsben
tallkozhatunk. A felhasznl interaktv mdon ltrehozza az alakzatot, s addig mdo-
stja, amg az elfogadhat nem lesz.
- Az analitikus mdszerek jellemz matematikai eszkze az alakzatot ler fggvny-
kapcsolatok ismerete.
- A szintetikus mdszerekre jellemz, hogy a modellezend alak tmpontjainak meg-
adsval alaktjuk ki a kvnt objektumot. E tmpontokon nem felttlen halad t az
alakzat, csupn jellemzi azt.
Amennyiben pontok defniljk az alakzatot, megjelentshez megfelel interpolcis
eljrst kell vlasztanunk. Vizsgljuk meg a gyakrabban hasznlt 2D-s mdszereket.
Interpolci polinommal
A mdszer korltai:
Magasabb fokszm esetn az egyenletrendszer rosszul kondcionltt vlhat.
A tapasztalat azt mutatja, hogy tdfoknl magasabb fokszmoknl nem vrt
szlsrtkek jelennek meg a fggvny menetben.
A fggvny csak globlisan vltoztathat.
A fentiek miatt grbetervezsre csak korltozottan alkalmas.
Regresszi
Gyakran elfordul problma, hogy ismerjk a fggvny tpust, de tbb a pont, mint a
hipotzisgrbe varilhat egytthatinak szma. Ebben az esetben valamilyen fgg-
vnykiegyenltst kell alkalmaznunk. Termszetesen a keresett fggvny nem halad t
az alappontokon, csupn megfelelen kzelti azt.
Az ltalnosan hasznlt legkisebb ngyzetek mdszere az egytthatkat az xi helyen
vett yi ( xi ) eltrsek ngyzetsszegnek minimalizlsval hatrozza meg.
Spline interpolci
A loklis vltoztathatsg s a nem vrt grbelefuts indokolja az alacsonyabb fok-
szm polinomokkal s intervallumok illesztsvel trtn kzeltst.
A spline az [xi-1, xi] szakaszokon olyan harmadfok polinomokbl ll, melyek a vgpont-
okon folytonosan, trsmentesen s simn csatlakoznak a szomszdos polinomokhoz.
Egy alappont kis elmozdtsa csupn kis mrtk globlis vltozst okoz.
Bzier- s a B-spline mdszer
Az elz eljrsok mindegyike egyenletrendszer megoldsra vezethet vissza. A s-
lyozsos mdszerek alapgondolata, hogy az alappontok kzelben dominljon maga a
pont, tvolodva legyen cskken a hatsa.
Tbb, erre az elvre pl interpolci hasznlatos. Elnyk a viszonylag egyszer, lta-
lban explicit vagy itercis megold algoritmus, s a szpen alakthat forma. A ht-

Koczka Gyrgy, 2007

51
SZMTGPES GRAFIKAI MODELLEZS I.

rny, hogy az alappontokon ltalban nem megy keresztl a megkonstrult fggvny.


Ilyenkor szoks az alappontokat tmpontoknak is nevezni.
Egy tmpont elmozdtsa adott pontnyi szles intervallumon okoz loklis vltozst.

1.4. A valszersg elrsre hasznlt mdszerek

A grafikus megjelentkn nem tudunk s nem is mindig clszer olyan kpet ellltani,
amely a valdi ltvny tkletes brzolsa lenne. Olyan mdszerekre van szksg,
amelyek figyelembe veszik az adott alkalmazs ignyeit, a kp ellltshoz szks-
ges munka mennyisgt s a megjelent hardver jellemzit, kpessgt.
A megjelentsi mdszerek alapproblmja a mlysg, azaz a harmadik dimenzi rz-
keltetse.
A megjelents fontosabb eszkzei:
Alak, forma rzkeltetse
- a kontrvonal rajzval (drtvzas megjelents),
- a terlet festsvel (sraffozs, rnyals).
A hromdimenzis ltvny ktdimenzis kpnek ellltshoz alapvet a vetts.
Gyakran hasznlt vettsi mdok:
- prhuzamosan skra,
- perspektven skra a tvlatot azzal rzkelteti, hogy a kzelebbi trgyakat na-
gyobbnak brzolja a tvolabbiaknl,
- nem sk felletre.
A trbelisg rzkeltetsnek fbb mdszerei:
- Merleges vetts
- Perspektv vetts
- Takart felletek elhagysa
- rnyals
- Kinetikus mlysgi hats

Irodalom
Bajcsai Pl: Numerikus analzis, Akadmia Kiad, 1985
Koczka Gyrgy: Bevezets a szmtgpes grafikba, Megyetemi kiad, 2002
W. M. Newman R. F. Sproull: Interaktv szmtgpes grafika, Mszaki Knyvkiad,
1987

Koczka Gyrgy, 2007

52
SZMTGPES GRAFIKAI MODELLEZS II.

12. elads: Szmtgpes grafikai modellezs II.

Tartalom: 1.Grafikai modellezs; 1.1.Transzformcik; 1.1.1.Homogn koordintk;


1.1.2.Transzformcis mtrix; 1.1.3.Transzformcik konkatencija; 1.2.Takart
felletek elhagysa; 1.2.1.Trgytr algoritmusok; 1.2.2.Kptr algoritmusok;
1.3.rnyals; 1.3.1.rnyalsi polider

1. Grafikai modellezs

1.1. Transzformcik

Egy grafikus rendszernek lehetv kell tennie, hogy a felhasznl az alakzatok elksz-
tse sorn klnbz transzformcikat alkalmazzon. Fel kell tudnia nagytani, mozgat-
nia kell, alkalmanknt tkrzsre s forgatsra is szksg lehet.
A szmtgpes grafika matematikai appartusa a lineris algebra eszkztrn alapul.
Az alaklerst vektoros, a koordinta transzformcikat mtrixos rsmddal trgyaljuk.

1.1.1. Homogn koordintk


A homogn trgyalsmd eredetileg a projektv geometria eszkztrba tartozott. Egy
n-dimenzis problmnak megfelel egy n + 1-dimenzis trbeli problma. Az gy defi-
nilt alakzatok lersnl nem szerepel explicit lland tag. Ebbl addik a homogn
kifejezs is.
A hromdimenzis transzformcikat ngy dimenziban knyelmesebb trgyalni.
Az r = [x y z] vektornak megfelel az r = [wx wy wz w] w 0 homogn vektor.
Knyelmes az r = [x y z 1] alak hasznlata (w = 1).

1.1.2. Transzformcis mtrix


Az r pontot mozgassuk el r' pontba. Vektorosan jellve r' = r T.
Az ltalnos hromdimenzis transzformci mtrixos alakja:

a e i 0
b f j 0
[x ' y ' z ' 1] = [x y z 1]
c g k 0

d h l 1

Koczka Gyrgy, 2007

53
SZMTGPES GRAFIKAI MODELLEZS II.

Hrom elemi hromdimenzis transzformcit rszleteznk. A tbbi transzformcit is


ltalban ezekre vezetjk vissza.
Eltols: D vektor irny eltols transzformcis mtrixa:

1 0 0 0
0 1 0 0

0 0 1 0

D x Dy Dz 1

Lptkezs: A lptkezsi transzformcival mindhrom koordintatengely irnyban


fggetlen mrtk nagytst vgezhetnk. Mtrixa:
S x 0 0 0
0 Sy 0 0
Sx, Sy, Sz 0
0 0 Sz 0

0 0 0 1
Forgats: A meghatrozott tengely krli szg elforgats mtrixa:
cos sin 0 0 cos 0 sin 0 1 0 0 0
sin cos 0 0 0 1 0 0 0 cos sin 0

0 0 1 0 sin 0 cos 0 0 sin cos 0

0 0 0 1 0 0 0 1 0 0 0 1
z tengely krl y tengely krl x tengely krl
A forgats pozitv irnya konvencionlisan a jobbkz-szably ltal megszabott. (Form-
lisan ezrt klnbzik az y tengely krli az x s z tengely krli forgatstl.)
Mindhrom transzformcinak van inverz prja, mely a fordtott transzformcit hajtja
vgre.

1.1.3. Transzformcik konkatencija


Tbb transzformci egyms utni alkalmazst helyettesthetjk egyetlen mtrix al-
kalmazsval. Amennyiben T1, T2, ... , Tn transzformcit egyms utn kell vgrehajtani,
akkor ugyanazt a hatst rhetjk el egyetlen Te transzformcival, ahol
Te = T1 T2 ... Tn .
A mtrixok sszeszorzsakor a transzformcik sorrendjt be kell tartani.
Plda:
Kzppontos tkrzs transzformcis mtrixnak elksztse.
Legyen [k1 k2 k3] a tkrzs kzppontja. Teendnk a kvetkez: eltols [-k1 -k2 -k3]
vektorral, tkrzs az orign keresztl, majd eltols [k1 k2 k3] vektorral. Az orign ke-

Koczka Gyrgy, 2007

54
SZMTGPES GRAFIKAI MODELLEZS II.

resztl trtn tkrzs mtrixt abbl az egyszer meggondolsbl rjuk fel, hogy min-
den koordinta eljele vlt a mveletnl!

1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0
0
1 0 0 0 1 0 0 0 1 0 0 0 1 0 0
=
0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0

k1 k2 k3 1 0 0 0 1 k1 k2 k3 1 2k1 2k 2 2k 3 1

1.2. Takart felletek elhagysa

A szmtgpes grafika egyik legizgalmasabb s egyben legnehezebb problmja a


tmr trgyak takart rszeinek elhagysa. A szntrben a tmr trgyak tltszatlan
anyaga elzrja a fnysugarak tjt, gy azok nem jutnak a szemnkbe, azaz nem lt-
szanak. Annak rdekben, hogy valszerbb kpet kapjunk, valamilyen takarsi algo-
ritmust kell alkalmazni.
A mdszerek kt csoportra bonthatk. Trgytr vagy kptr algoritmusok annak megfe-
lelen, hogy a takarsvizsglatot hol vgzik. A trgytr algoritmus a trgyak kztti
geometriai sszefggsek alapjn hatrozza meg, mely rszletek lthatk. A szmtso-
kat a lehet legnagyobb pontossggal, rendszerint a lebegpontos processzor pontos-
sgval vgzik. Ez sokkal nagyobb a megjelent eszkz pontossgnl, gy a kp tet-
szlegesen nagythat minsgromls nlkl. A kptr algoritmus a vgs kpnl vizs-
glja, hogy a pontokban mi ltszik. Egyenknt meghatrozza a kpet alkot pixelek
sznt, fnyerssgt. Pontossga megegyezik a megjelent eszkz felbontsval.
A kt elv eltr hatkonysg. Bonyolult szntr esetn a trgytr algoritmusok szmtsi
ignye ersen n. A kptr algoritmusok csak a kp lthat rsznek bonyolultsgtl
fggnek, gy lnyegesen lassabban n a szmtsok mennyisge. Az algoritmusok bo-
nyolultsga is a kptr mdszerek javra billenti a mrleget.

1.2.1. Trgytr algoritmusok


Trivilis vizsglat
A mdszer arra szolgl, hogy egy laprl eldnthessk, hogy lthat-e (szksges felt-
tel). Amennyiben a poligon normlisa a szemll fel nz, azt jelenti, ha nem takarja
egy msik poligon, akkor ltszik. Mskppen, ha a normlis vektora s a szemll ir-
nyba mutat vektor skalris szorzata pozitv, a lap kielgti a lthatsg szksges
felttelt. Statisztikusan a lapok felt kiszrhetjk az eljrssal. Amennyiben a trgytr-
ben egy test van, a test konvex s diszjunkt poligonokbl ll, ez a felttel elgsges is!

1.2.2. Kptr algoritmusok


Mlysgpuffer algoritmus
Ez az algoritmus a legegyszerbb a kptralgoritmusok kztt, de az elv mindegyiknl
megtallhat. A kperny nzetablaknak minden pixelhez feljegyezzk annak a
trgynak a kptrbeli mlysgt s sznt, mely a szemllhz a legkzelebb fekszik.

Koczka Gyrgy, 2007

55
SZMTGPES GRAFIKAI MODELLEZS II.

A gyakorlatban kt tmbt hasznlunk, egyet a mlysg, egyet a szn szmra. Mind-


kettt a nzetablak pixelkoordintival cmezzk.

1.3. rnyals

A hromdimenzis szntr raszterkpnek valszersge az rnyalst elidz fizikai


jelensgek sikeres szimulcijtl fgg. rnyalsi modellt hasznlunk a fellet megjelen-
tsekor a fnyerssg s a szn kiszmtshoz. A kt f alkotrsz a felleti s a meg-
vilgtsi tulajdonsgok.
Felleti jellemzk:
- Geometria: a res fny milyen irnyba verdik vissza.
- Visszaver kpessg: meghatrozza, hogy a res fnybl mennyi verdik vissza.
- ttetszsg: meghatrozza, hogy mennyit enged t a res fnybl.
Megvilgts:
- Szrt megvilgts: a szntr megvilgtsa minden irnybl egyenletes.
- Irnyfny: a szntrben pontszer fnyforrsok vannak. Ezek okozzk a trgyak
egyenetlen rnyaltsgt, a tkrzdsi s a csillogsi jelensget. A vgtelenbe he-
lyezett forrsrl prhuzamos sugarak rkeznek. Amennyiben tvolsgfggv kvn-
juk tenni a megvilgtst, vges tvolsgot kell adni a fnyforrsnak, a vilgts ir-
nyt s az intenzitst helyfggv kell tenni.
- rnyk: irnyfnyben az egyes trgyakra msok, illetve nmaga rszei is rnykot
vethetnek.

1.3.1. rnyalsi polider


Az elz kpletekkel kiszmthat egy tetszleges felleti pont szne. Br a szmts
nem tl bonyolult, mgis sokszor kell vgrehajtani. Cskkenthetjk a szmtsi munkt, ha
kihasznljuk, hogy a szomszdos pixelek fnyessge egymshoz kzeli (lektl megfele-
l tvolsgban). Ha egy felletet nem egyenletvel runk le, hanem geometriai modellel
kzeltjk, szintn nem ismerjk minden pixelhez a normlis rtkt.
Egy folytonos fellet poliderrnyalsa zavaran hathat a nzre. A folytonos rnyals
igen valszer ltvnyt nyjt. Vizsgljuk meg a klnbz mdszereket egy gmbn,
viszonylag durva feloszts geometriai modell esetn.

Koczka Gyrgy, 2007

56
SZMTGPES GRAFIKAI MODELLEZS II.

Drtvz modell
A geometriai modell hrom s ngyszgekbl ll.

Az rnyalsi polider
Megjelents a lapok fggetlen rnyalsval.

Gouraud mdszere a folytonos rnyalsra


Mindegyik lap cscspontjaiban meghatrozza a nor-
mlisokat, majd ezekbl a cscsok sznt. A lapon be-
lli rnyalst a cscsponti rtkekbl interpollja.

Phong mdszere a folytonos rnyalsra


Alapelve, hogy nem a szneket, hanem a normlvekto-
rokat interpollja s ebbl szmtja minden pixelnl a
sznt az rnyalsi modellel.
Phong mdszere tbb szmtst ignyel, de sok esetben
valszerbb eredmnyt ad.
Pontok fggetlen rnyalsa
Az rnyals pontos szmtshoz minden pontban
egyenknt meghatrozzuk a normlvektort s ebbl a
pixel sznt.

A gmbn bemutatott pldn is ltszik, hogy a folytonos rnyalsi modellek intenzits-


viszonyainak ltvnya csak kevss megklnbztethet. A polider sziluettje zavar
lehet, de ezt csak a feloszts finomtsval javthatjuk.
Irodalom
Koczka Gyrgy: Bevezets a szmtgpes grafikba, Megyetemi kiad, 2002
W. M. Newman R. F. Sproull: Interaktv szmtgpes grafika, Mszaki Knyvkiad,
1987
Pirk Jzsef: 3D Perspektivikus grafika, ComputerBooks, 1988

Koczka Gyrgy, 2007

57
INFORMCIS RENDSZEREK

13. elads: Informcis rendszerek

Tartalom: 1.Informcis rendszerek; 1.1.Az informcis infrastruktra sszetevi; 1.2.Az


informcis rendszerek rszei; 1.2.1. Adatok; 1.2.2. Hardver; 1.2.3.Szoftver;
1.2.4.Felhasznlk; 2. Adatbzisok; 2.1.Adatbzis; 2.2.Adatmodell; 2.3.Adattrolsi
eszkzk; 2.4. Adatbzis-kezels jellemz mveletei; 2.5.Adatbzis vdelem

1. Informcis rendszerek

Alapfogalmak egyszeren megfogalmazva:


Az informci valamely dologrl, jelensgrl, kapcsolatrl nyert hasznos ismeret.
Az adat az informci megjelensi formja.
Az informcis rendszereknek nem csak trolni kell az adatokat, hanem biztostani kell
azt is, hogy azok kell idben, a megfelel formban eljussanak az ket ignyl szem-
lyekhez, illetve az jonnan keletkez adatok is troldjanak a rendszerben.
Az informcis rendszerek clja az informci trolsa s feldolgozsa.
Trsadalmi szervezettsgnk, de mindennapi letnk is aligha kpzelhet el korszer
informcis rendszerek ltrehozsa s hasznlata nlkl. Az elektronika s szmtgpek
elterjedsvel a hatvanas vekben kialakult az informcis rendszerek infrastruktrja.

1.1. Az informcis infrastruktra sszetevi

Adatfeldolgozs:
A feladatot ltalban szmtgp ltja el. Irnyulhat tranzakcik vgzsre, vagy
akr vezeti dnts elksztsre is.
Telekommunikci:
Az informci tvolabbi helyekre val eljuttatsra szolgl. A telefon, telex, telefax
s termszetesen a szmtgpes hlzatok (LAN-ok, WAN-ok tartoznak ide).
Automatizlt irodai szolgltatsok:
rgpek, msolk, kpfeldolgozk, terminlok, szemlyi szmtgpek alkotjk.
Termszetesen a szmtstechnika mai fokn a fenti kategrik sszemosdnak. Azon-
ban ltszik, hogy egy informcis rendszer nem jelentheti egyetlen szoftver megalkot-
st s hasznlatt.

Koczka Gyrgy, 2007

58
INFORMCIS RENDSZEREK

1.2. Az informcis rendszerek rszei

Minden informcis rendszer ngy rszbl tevdik ssze:

1.2.1. Adatok
Adatszerkezetekben trolt informcik.

1.2.2. Hardver
Minden rendszer valamilyen konkrt hardveren valsul meg. Ennek rsze a szmtgp
(illetve szmtgpek elosztott rendszereknl), a terminlok, a trolk s a hozzjuk tar-
toz telekommunikci.

1.2.3. Szoftver
Az informcis rendszerek szoftver rszei:
Opercis rendszer
felgyeli az adatbzis-kezel mkdst.
Adatbzis-kezel rendszer
f feladata a file-mveletek s jogosultsgok kezelse.
Alkalmazi programok
a tnyleges tevkenysg megfogalmazsa egy programnyelv segtsgvel.
A hrom szint kialaktsa a rugalmassgot biztostja.
Plda:
UNIX, Oracle (kernel s fellet)
Sybase (op.-rendszerek, adatbzis-kezel, parancsrtelmez, gazdanyelvek)
Windows, Jet, Access
Windows, Microsoft SQL server (Sybase alap), Powerbuilder

1.2.4. Felhasznlk
A felhasznls mdjtl fgg csoportok:
Alkalmazsi programozk:
A megadott ignyek alapjn ksztik el az alkalmazs programjait.
Nem programoz alkalmazk:
A megrt programok alapjn lphetnek kapcsolatba a rendszerrel. A jogkrben, illet-
ve a hozzfrsben viszonylag bvek a lehetsgeik.
Men alapjn dolgoz felhasznlk:
A rendszeres tevkenysg vgzi. Elre programozott krdsekkel s ignyekkel for-
dulhatnak a rendszerhez.

Koczka Gyrgy, 2007

59
INFORMCIS RENDSZEREK

2. Adatbzisok

2.1. Adatbzis

Egy adatfeldolgozi krnyezetben lv hasznos adatok s kapcsolatok sszessge.


Tgabb rtelemben kt tpust klnbztetnk meg.
Tny-adatbzis: Objektumok tulajdonsgait tartalmazza.
Dokumentum tpus adatbzis: Szvegszer lersok alkotjk.
A gyakorlatban a tny-adatbzist szoks adatbzisnak tekinteni.
A tny-adatbzisnak biztostania kell:
ignyek hatkony kielgtst
adatok kztti kapcsolatok brzolst
redundancia-mentessget s konzisztencit
adatvdelmet
helyrellthatsgot
tbbfelhasznls rendszereknl az adatok egyidej elrhetsgt

2.2. Adatmodell

Az adatbzis-kezel rendszerek adatmodellekre plnek.


Az adatmodell egyedek, tulajdonsgok, kapcsolatok halmaza. Absztrakt mdon
tkrzi az objektumok informciegyedeit s kapcsolatait.
Tpusai:
Hierarchikus fa
Fa szerkezet grffal szemlltethet, ahol a csompontok az egyedek, az gak a
kapcsolatok. Az al- s flrendeltsg adatstruktrk kezelsre a legalkalma-
sabb. A kapcsolatok 1:1 illetve 1:N jellegek.

Hls grf

Koczka Gyrgy, 2007

60
INFORMCIS RENDSZEREK

ltalnostott hierarchikus szerkezet, egy elemnek tbb szlje lehet. A kapcsolatok


M:N jellegek.

Relcis - az adatokat logikailag relcikban, szemlletesen tekintve tblzatokban


brzoljuk. A kapcsolatok az egyedek tulajdonsgain keresztl plnek fel.

2.3. Adattrolsi eszkzk

sszetett adattpusok s adatszerkezetek sszevetse adattrolsi szempontbl:


Tpus Trolsi hely Trolsi md Adatelrs Elemek tpusa
tmb memria folytonos direkt egyforma
rekord memria folytonos direkt klnbz
file adattrol opercis rend- direkt, szek- egyforma, k-
szer definilt vencilis lnbz
kapcsolt lista memria, adat- elosztott szekvencilis egyforma, k-
trol lnbz

2.4. Adatbzis-kezels jellemz mveletei

Karbantarts: rgzts, mdosts, trls.


Informlis ignyek: keress, kigyjts.
Rendezs: fizikai, logikai mdon.

2.5. Adatbzis vdelem

Az informcis rendszer legrtkesebb s legsrlkenyebb rsze ltalban az adat.


Ezrt kiemelten fontos szempont a vdelem s a helyrellthatsg.
Adatvesztsi okok:

Koczka Gyrgy, 2007

61
INFORMCIS RENDSZEREK

Adatveszts fizikai okbl - hardver hiba esetn.


Tkrzsek, mentsek, tranzakcis szemllet.
Adatveszts logikai okbl - szoftver, felhasznli hiba okn.
Mentsek.
Kls okbl illetktelen felhasznlk betrsnl.
Jelsz belltsa.
Felhasznli szint vdelem.

Irodalom
Quittner Pl: Adatbzis-kezels a gyakorlatban, Akadmia Kiad, 1993

Koczka Gyrgy, 2007

62
RELCIS ADATBZISOK

14. elads: Relcis adatbzisok

Tartalom: 1.Relcis adatbzisok; 1.1.Tbla; 1.2.Kulcs; 1.3.Normalizls; 1.3.1.1NF;


1.3.2. 2NF; 1.3.3.3NF; 1.3.4. Magasabb NF; 1.4.Relcis mveletek; 2.SQL nyelv;
2.1.Az SQL szabvny; 2.2.Adattpusok; 2.3. Az utastsok csoportostsa;
2.3.1.Adatler utastsok; 2.3.2.Adatkezel utastsok; 2.3.3.Vezrl utastsok;
2.3.4.Egyb utastsok

1. Relcis adatbzisok

A relci azt fejezi ki, hogy halmazok, vagy bizonyos elemeik kztt valamilyen ssze-
fggs ll fenn.
Relci az aritmetikai relcik szkebb csoportja is: pldul a<b.
A relcis adatbzisoknl az egyedek tulajdonsgai kapjk a hangslyt. Szemlletesen

tblkba foglalt adataik s azok kapcsolatai adjk ki az adatbzist.

A relcik az az adatok logikai reprezentcii. Az adatstruktrt a trolsi s elrsi

mdtl fggetlenl rjk le.

1.1. Tbla
A tblnak sorai s oszlopai vannak. Egy sor, egy egyednek felel meg. Az oszlopok
nevei alkotjk a relci fejlct. Az oszlopokban lv adatok az egyed tulajdonsgai.
Ahhoz, hogy egy tblzat valban egy relcis adatbzis tblja lehessen a kvetkez
feltteleknek kell eleget tennie:
A sorokban lv oszlopok szma azonos.
Minden oszlopnak egyedi neve van.
A sorok celli csak egy rtket vehetnek fel.
A sorok egyrtelmen azonosthatk
A sorok s oszlopok sorrendje nincs megktve.

Koczka Gyrgy, 2007

63
RELCIS ADATBZISOK

1.2. Kulcs
Egy tbla brmely sorhoz ltezik legalbb egy oszlopkombinci, mely azt azonostja
s meghatrozza a tbbi rtket. Ezeket azonost, a tbbit ler tulajdonsgnak nevez-
zk.
Elsdleges kulcsnak nevezik ezt a kombincit.
Egyszer a kulcs, ha az egy tulajdonsg.
sszetett kulcs, amennyiben tbb tulajdonsgbl tevdik ssze.
Alternatv kulcs, ha egyb tulajdonsgcsoportbl is kialakthat sorazonost.
Idegen kulcs a relci azon tulajdonsgcsoportja, mely egy msik relci egyedre hi-
vatkozik.

1.3. Normalizls
Tervezsnl a cl, hogy relciink redundancia-mentesek legyenek. Ehhez bizonyos fel-
tteleket kell teljesteni. A felttelek folyamatos kielgtst normalizcis folyamatnak
nevezzk. Az llapotokat nvekv szmmal jellik, s norml formnak hvjk (NF).
A funkcionlis fggsg formlisan reprezentlja az egyrtk tnyeket. Azt mutatja,
hogy egy tulajdonsg egy vagy tbb msikat egyrtelmen meghatroz.

1.3.1. 1NF
Egy tblzat adatai 1NF-ban vannak, ha:
- kielgti az elz tbla defincit
- minden sorhoz tartozik egyedi kulcs, melytl a tbbi tulajdonsg funkcionlisan
fgg
- kulcs tulajdonsg nem hinyozhat

1.3.2. 2NF
- 2NF-ban van, ha 1NF s a nem kulcs tulajdonsgok teljesen fggnek az elsdle-
ges kulcstl.

1.3.3. 3NF
- 2NF-ban van s a funkcionlis fggs csak az elsdleges kulcsokbl indulhat ki.

1.3.4. Magasabb NF
Gyakorlatban elegend az adatokat a 3NF-ban esetleg a hatkonysg rdekben
alacsonyabb formban elhelyezni. Bonyolult helyzetben, vagy elmleti szinten tovbbi
finomtsokra is szksg lehet. Ezeket 4NF s 5NF-nak nevezi az elmlet.
Megjegyzs: a magasabb NF-ra trekvs tbbsgben elmleti jelleg s ltalban a
hatkonysg rovsra megy.

Koczka Gyrgy, 2007

64
RELCIS ADATBZISOK

Plda:
Adatbzis tervezse, normalizcis folyamat.
Egy cg dolgozinak, fizetsnek nyilvntartshoz szksges adatok:
Nv Cm Beoszts Osztly Fnk Pnz Dtum
Azonost: Nv, Dtum
A tblzat 1NF-ban van.
Problmk: adatredundancia, trlsnl egyb informcik elvesztse.

Nv Cm Beoszts Osztly Fnk


Azonost: Nv

Nv Pnz Dtum
Azonost: Nv, Dtum, Idegen kulcs: Nv
A tblzat 2NF-ban van.
Problmk: kisebb adatredundancia, j osztly csak j dolgozval lehetsges (tranzitv
fggsg meglte).

Nv Cm Beoszts Osztly
Azonost: Nv, Idegen kulcs: Osztly

Osztly Fnk
Azonost: Osztly

Nv Pnz Dtum
Azonost: Nv, Dtum, Idegen kulcs: Nv
A tblzat 3NF-ban van.
Megjegyzs: az adatbzis kt trzstblbl s egy forgalmi tblbl ll.

1.4. Relcis mveletek


Adatbzison vgzend feladatok vgeredmnyben relcikon elvgzend mveletekre
vezethetk vissza.
Jellemz, gyakran hasznlt mveletek:
- korltozs: felttelek megfogalmazsval a sorok szmnak cskkentse
- vetlet: kivlasztssal az oszlopok szmnak cskkentse

Koczka Gyrgy, 2007

65
RELCIS ADATBZISOK

- keresztszorzat: m+n fokszm s M*N sor j relci


- metszet: kt relci azonos sorai
- klnbsg: az els tbla azon sorai, melyek nincsenek a msodikban
- uni: kt relci sszes sora, az azonosak egyszer
- csoportkpzs: a relci azonos tulajdonsggal br csoportjaira adunk meg,
vagy kpeznk jellemz rtket

2. SQL nyelv

SQL a Structured Query Language rvidtse. Valjban tbb ennl, egy teljes relcis
adatbzis-kezel nyelv.

2.1. Az SQL szabvny


Sikernek alapja, hogy kifejlesztsben a szmtstechnika gyakorlati szakemberei s
elmleti tudsai lnyegben kzs ton jrtak. A nyolcvanas vek vgre mr megjelent
az els szabvnya. Manapsg a legtbb magasszint nyelv lehetsget ad az SQL uta-
stsok beptsre.
Formalizmust tekintve a nem-procedurlis nyelvek kz tartozik. A felhasznl csak azt
mondja meg mit akar, hogy ez hogyan trtnjen azt a fordt, vagy a parancsrtelmez
szabja meg.

2.2. Adattpusok
Ezen tpusokkal rhatjuk el a rendszer adatainak trolsi, illetve bels brzolsi md-
jt. Jellemz gyjt tpusok: numerikus, szveges, dtum jelleg, logikai. Ezek egyszer
tpusok, illetve kifel egyszer tpust mutat objektumok.

2.3. Az utastsok csoportostsa


Az SQL utastsokat ngy nagy csoportra osztjuk:
adatler utastsok,
adatkezel utastsok
vezrl utastsok,
egyb utastsok.

2.3.1. Adatler utastsok


Ide tartoznak az adatbzis szerkezett ler s mdost utastsok.
Legfontosabbak:
CREATE tbla, nzet s index ltrehozsa
DROP megszntet

Koczka Gyrgy, 2007

66
RELCIS ADATBZISOK

ALTER mdost

2.3.2. Adatkezel utastsok


A meglv tblkbl vlasztanak ki, trlnek, mdostanak, illesztenek be sorokat.
SELECT kivlaszt utasts alapformja:
SELECT miknt, mit
FROM honnan
WHERE kivlasztsi felttel
GROUP BY csoportosts
HAVING csoport-kivlasztsi felttel
ORDER BY oszlopnv ASC/DESC
oszlopfggvnyek: AVG, MAX, MIN, SUM, COUNT
kivlasztsi felttelek lersa: sszehasonlts, BETWEEN, IN, LIKE
DELETE trl:
DELETE
FROM honnan
WHERE kivlasztsi felttel
UPDATE mdost:
UPDATE hol
SET rtkadsi sorozat
WHERE kivlasztsi felttel
INSERT bvt
INSERT INTO hova (oszlopnevek sorozata)
VALUES (rtkek sorozata)

2.3.3. Vezrl utastsok


Engedlyezs, tranzakcik vezrlse.
GRAND jogosultsg
BEGIN tranzakci kezds
COMMIT vglegest
ROLLBACK visszallt

2.3.4. Egyb utastsok


Ezen utastsok ersen rendszer fggek. Ide sorolhatk az opertori parancsok is.
SHOW adminisztrtori informci mutat

Koczka Gyrgy, 2007

67
RELCIS ADATBZISOK

HELP segtsg
CANCEL megszakt

Plda:

Az 1.3-as fejezet 3NF tblibl ksztsnk lekrdezseket.


Listzzuk a mszaki osztly dolgozit nvsor szerint, beosztsukkal (relcis mveletek -
korltozs, vetlet):
SELECT Nv,Beoszts FROM Dolgozk WHERE Osztly="Mszaki" ODER BY Nv

Listzzuk a cg osztlyait, dolgozinak szmval (csoportkpzs szmllssal):


SELECT Osztly, count(Nv) FROM Dolgozk GROP BY Osztly

Listzzuk a mszaki osztly dolgozit fnkk nevvel (keresztszorzat, korltozs):


SELECT Nv,Fnk FROM Dolgozk,Osztlyok
WHERE Dolgozk.Osztly=Osztlyok.Osztly

Mdostsuk a mszaki osztly vezetjt (korltozs):


UPDATE Osztlyok SET Fnk="Vkony" WHERE Osztly="Mszaki"
Figyeljk meg, hogy itt egyetlen rekordban mdostunk. Az 1NF-s tblban is mkdik
a parancs, de tbb rekord vltozik.

Irodalom
Quittner Pl: Adatbzis-kezels a gyakorlatban, Akadmia Kiad, 1993
Stolniczki Gyula: SQL kziknyv, ComputerBooks, 1996

Koczka Gyrgy, 2007

68

You might also like