Szponzorált hirdetés

2007. június 13.

OKJ vizsga programozó - Feladatsor VI. tétel

1. Ismertesse az adattípus fogalmát! 10 pont

2. Ismertesse az Ön által tanult magasszintű programozási nyelvben az egyes adattípusokat! 10 pont

3. Ismertesse a tömbök rendezésének alapalgoritmusait! 10 pont

4. Ismertesse a szöveges állományok felépítését és műveleteit! 10 pont

5. Ismertesse az adatszerkezet fogalmát és az adatszerkezet műveleteit!

6. Ismertesse a moduláris programfelépítést (több programmodul) megvalósító eszközök használatát az Ön által tanult magasszintű programozási nyelvben! 12 pont

7. Ismertesse az első normálforma (1NF) fogalmát és egy relációs 1NF alakra hozásának módját! 8 pont

8. Ismertesse az OSI modell szerinti hálózati réteg feladatát! 10 pont

9. Ismertesse az operációs rendszerek alkalmazói programokkal kapcsolatos védelmi rendszerek jellemzőit! 10 pont

1. A nyelv előírója, hogy változókat tulajdonságaik szerint csoportosítsunk, azaz típusokba soroljuk őket. Minden változót egy (és csak egy) típusba sorolunk. A típus leszűkíti, meghatározza változókhoz hozzárendelt értékek halmazát.

2. A Pascal nyelv adattípusai:

Egész típusok:

Típusnév

Helyfoglalás (byte)

Értelmezési tartomány

Byte

1

0 .. 255

Shortint

1

-128 .. 127

Word

2

0 .. 65535

Integer

2

-32768 .. 32767

Longint

4

-2147483648 .. 2147483647

Comp

8

-9.22*10-18 .. 9.22*10-18

Valós típusok:

Típusnév

Helyfoglalás (byte)

Értelmezési tartomány

Single

4

7-8

Real

6

11-12

Double

8

15-16

Extended

10

19-20

Logikai típus (Boolean):

Ez a típus a következő két féle értéket veheti fel: logikai igaz: True és a logikai hamis: False. Ezek egy bájtot foglalnak a memóriában.

Szöveges típusok:

- Char típus. Értelmezési tartomány_ASCII karakterkészlet. A hossza pedig egyetlen karakter lehet.

- String típus. Ez a típus tulajdonképpen karakterek egymáshoz fűzött láncolata. Max. hossza 255 karakter lehet.

- Tömbök

- Felsorolt típus

- Sorszámozott típus

Felhasználó által definiált típus: A program deklarációs részében előre definiálhatunk típusokat. A típus definícióját a TYPE kulcsszó vezeti be. A típus azonosítója az egyenlőségjel baloldalán áll. A típus jobboldalán egy típusleírás vagy egy másik típusazonosító szerepel.

3. Tömbök rendszerezésének alapalgoritmusai:

A minimum-kiválasztásos rendezés:

- Először megkeressük az egész tömb legkisebb elemét! Ezt az elemet kicseréljük az első elemmel.

Következésképpen most az első helyen lesz a legkisebb elem, ahogy ezt szeretnénk is.

- Most már csak a maradék részt, vagyis a 2..NevekSzáma tömbrészt kell rendeznünk. Keressük meg itt is a legkisebb elemet! Ezt az elemet kicseréljük a második elemmel, és így most már két elemünk van jó helyen.

- Folytassuk ezt a procedúrát: tegyük a helyére a többi elemet is. Utolsó lépésként az utolsó előtti helyre kell kiválasztanunk a legkisebb elemet, hiszen ezzel az utolsó is a helyére kerül.

Beszúrásos rendezés:

Feltételezzük, hogy van egy szigorú sorrend. Megnézzük az első elemet. Majd megnézzük a másodikat és a helyére tesszük. Aztán felvesszük a harmadikat, helyére tesszük és így tovább. Minden esetben megkeressük a kérdéses kártyának a helyét a már rendezett sorban, és oda beszúrjuk.

A tömbök rendezése lehet közvetlen és indexes. A közvetlen elmozgatásánál a tömb elemeit fizikailag is módosíthatjuk a tárban. Indexes rendezésnél mindig van egy index tömb, amelyben csak rendezendő tömb indexeit tároljuk és módosítjuk fizikailag. Ezután pedig az index tömb elemei alapján hivatkozunk az eredetire.

4. A szöveges (text) állomány onnan kapta az elnevezését, hogy tartalma egy olvasható szöveg. Szövegek nem csak lemezen lehetnek, hanem egyéb perifériális eszközökön is, mint például terminálon vagy nyomtatón. Bizonyos eszközökről csak olvashatók másokra csak írhatók a szövegek.

Felépítése: A szöveges állomány sorokból áll, a sorok pedig karakterekből. Minden sor végén egy-egy sorvége jel (EOLN) található. Az állományt pedig az állomány vége jel (EOF) zárja. Az állomány szervezése soros, vagyis az egyes karaktereket csak egymás után lehet elérni, és az állományt nem lehet egyszerre írni és olvasni. Deklarációnál csak a szöveges állomány tényét kell megadni:

Var T: Text;

Nyitás, zárás: A szöveges állományt ugyanúgy hozzá kell rendelni egy fizikai állományhoz, mint bármely más állományt. Három megnyitási mód létezik:

- Reset(T); Az állományt csak olvasni lehet sorosan, az első pozíciótól kezdődően.

- Rewrite(T); Nyitáskor az állomány törlődik, vagy létrehozódik. Az állományba csak írni lehet sorosan, az első pozíciótól kezdődően.

- Append(T); Az állomány mutatója a fájl végén van, innen már csak írni lehet.

Szabványos eszközök:

CON: írás esetén a képernyő, olvasás esetén a billentyűzet.

LPT1, LPT2, LPT3: három nyomtató csatlakoztatható a számítógéphez, ezek bármelyikére lehet írni.

COM1, COM2: Soros kommunikáció.

NUL: ez egy kitalált eszköz, amely elnyeli a karaktereket. Általában tesztelési célra használatos.

Szabványos beviteli állomány

Assign(input,’CON’);

Reset(input);

Szabványos kiviteli állomány

Assign(output,’CON’);

Reset(output);

Szabványos kiviteli állomány a nyomtatóhoz

Assign(lst,’PRN’);

Reset(lst);

5. Adatszerkezet fogalma és műveletek:

egy számítógépes rendszer alapvetően kétféle modellből áll: adatmodellből és eljárásmodellből, melyek azonban nem választhatóak el egymástól. Mindkettő a rendszer szerves része. Az adatmodell a rendszer elemeinek adatokkal kifejezhető tulajdonságait írja le, és felállítja az elemek közötti kapcsolatokat is. Az eljárásmodell az adatmodellen bekövetkező változásokat írja le. Az adatszerkezetek egymással kapcsolatban álló adatok, objektumok összessége. A kapcsolatokban részt vevő struktúraelemeket csomóponti adatoknak szokás nézni.

Konstrukciós műveletek: Az adatszerkezeteket leíró és továbbépítő mechanizmusok.

Szelekciós műveletek: Az adatszerkezetet lebontó, megszüntető, valamint az adatelemek elérését biztosító mechanizmusok.

6. Pascal nyelv: UNIT

A unit első közelítésben speciális programkönyvtár, amely eljárások, függvények, konstansok, típusok és változók halmaza. Az e könyvtárban lévő, lefordított alprogramokat beépíthetjük az általunk írott programokba. Unitok alkalmazása nélkül csupán max. 64 Kbyte méretű lefordított programot lehet létrehozni. Ha unitokat is használunk, akkor más csak a memória mérete, illetve az operációs rendszer szab felső korlátot a lefordított programnak. A unit-okat – a programokhoz hasonlóan – forrásnyelven, írjuk meg, majd fordítjuk le.

A forrás unit-ok szerkezet:

Unit unitnev;

Interface

Uses unit1, unitn

Type

Const

Var

Label

Procedure

Function

Implementation

{privát deklarációk eljárások és függvények}

Begin

{inicializációs rész}

End.

Unitfej

Ezzel indul az unit. Az unit szó után megadjuk a unit nevét, amely egy tetszőleges azonosító.

Finterface rész

Az interface rész vezeti be ezt a részt. Ez után különböző deklarációk következnek. Az e részbeli deklarációk globálisak, szemben az implementációs részbeli lokális deklarációkkal. A globális tulajdonság esetünkben azt jelenti, hogy a deklarált elemek használhatók minden – e unitot használó – programban és unitban.

Implementációs rész

Ezt a részt az implementation szó vezeti be. Ebben a részben az interface-ben megnevezett függvényeket és eljárásokat definiáljuk. Az interface-ben már deklaráltuk ezek fejét.

Ebben a részben is állhatnak deklarációk, de azok csak lokálisak, azazcsak az unitban használhatók.

7. Első normálforma

Definíció. Egy R relációról azt mondjuk, hogy első normálformában (1NF-ben) van, ha minden sorában pontosan egy attribútumérték áll.

A reláció 1NF-re hozása

a) Első módszer

A több attribútumértéket tartalmazó sort annyi sorra bontjuk, amennyit benne az attribútumértékek száma.

b) Második módszer

Két relációra bontjuk az eredeti relációt, úgy hogy az egyikben a reláció kulcsának értékei mellé írjuk az egyszeres attribútumértékeket, másik relációban pedig a kulcshoz rendelt külső kulcs mellé annyi sort írunk, ahányszoros attribútum érétkek szerepelnek a többszörös attribútumokban.

8. Hálózati réteg: A réteg biztosítja a különböző hálózatok közötti kapcsolatot, az üzenetek irányítását, az érkező csomagok újraegyesítését. A réteg feladata az útvonalválasztás, idegen kifejezéssel routplás, amely meghatározza az optimális útvonalat az egyik számítógéptől a másik felé. Heterogén hálózatokban protokoll átalakulást végez.

9. A fejlettebb mikroprocesszorok a felhasználó számára különféle védelmi lehetőségeket biztosítanak. Ezek a lehetőségek részint egy felhasználói task-on belül fellépő hibák ellen nyújtanak védelmet, részint egy multitasking rendszerben kívánatos az egyik task megvédése egy másik task által okozott, hibáktól. Ez utóbbi probléma különösen élesen jelentkezik, akkor amikor az egyes taskok együttműködését is lehetővé kívánjuk tenni. Két alapvető problémát kell megoldani, nevezetesen, észlelni kell a védelem megsértését, másrészt a hibák hatását annak a tasknak a belsejére kell korlátozni, melyben a hiba fellépett. A legegyszerűbb rendszereknél olcsó és nagyon korlátozott hardver védelmet biztosítanak egy tárolóterület védelmével. A tárolót rögzített vagy változó méretű részekre bontják és az egyes részekhez védelmi attribútum-ok rendelhetőek, például egy terület csak olvasható. A védelmi hardver írási művelet esetén ellenőrzi, hogy a kiadott tárolócím a megengedett tartományba esik-e. Ezzel a módszerrel biztosítható, hogy egy programrészletet vagy kritikus adatokat ne írhassunk felül. Természetesen ez a védelem továbbfejleszthető úgy, hogy a felhasználókhoz, vagy a task egyes részeihez különböző prioritási számok (jogosultsági szintek) rendelhetőek és mondjuk egy védett tárolóterületre az a programrészlet írhat, melynek prioritási száma kisebb a területhez definiált érteknél. A módszer elvi problémája, hogy így egy tárolóterületet védünk, holott megoldandó feladatunk algoritmusa és adatai, azaz logikai egységei a védendő objektumok. Tekintsünk először egyetlen taskot. Egy task utasítások sorozatából, adatokból és speciális tárolóterületek (például stack) kezeléséből áll. A klasszikus Neumann-féle architektúra – éppen univerzalitása miatt – tárolócímeket kezel és nem törődik azzal, hogy a tárolórekeszeknek mi a tartalam. A tárolórekeszek tartalmának értelmezése az utasításokba van beépítve, ahol viszont alapesetben a processzor vezérlőegysége annak a tárolórekesznek a tartalmát értelmezi utasításnak, mely rekesz címét az utasításszámláló regiszter tartalmazza. Teljesen hasonló a helyzet a stack tárolóval is, ha a processzor csak egy mutatóregisztert tartalmaz, de a stack maga az operatív tárolóban helyezkedik el. Így hibás program esetén előfordulhat például egy olyan utasítás, mely egy művelet eredményét, mondjuk egy téves címszámítás eredményeként, egy olyan rekeszbe írja be, melynek tartalmát a vezérlőegység később adat helyett utasításnak értelmezi és a program „eltéved”. Ez a probléma az ún. szegmentálás bevezetésével oldható meg. Bontsuk fel a tárolót egy olyan területre, ahol csak a stack helyezkedhet el. Ezeket a területekre szegmenseknek nevezzük. A tárolóra vonatkozó címszámítást pedig bázisregiszterhez viszonyított (relatív) címzési móddal végezük úgy, hogy mindenegyes szegmenstípushoz egy-egy bázisregiszter tartozik (tehát esetünkben kódszegmens regiszter, adatszegmens regiszter és stack-szegmens regiszter). A szegmensregiszterek tartalma az illető szegmens kezdőcíme lesz. Például egy lehívandó utasítás címe tehát a kódszegmens regiszter tartalmának és az utasításszámláló tartalmának az összege lesz. Ha a szegmensek méretét korlátozzuk (vagy úgy, hogy egy-egy szegmenshossz regisztert használunk, vagy egy processzortípus esetén előre rögzített értékű), akkor ellenőrizhető, hogy a kiszámított című rekesz a megfelelő típusú szegmens belsejébe esik-e. Ezt az ellenőrzést a processzor hardver úton végzi és hiba esetén, például programmegszakítás kérést eredményez. Vegyük azonban észre, hogy a szegmentálás bevezetése egy task-on belül lehetőséget nyújt az eltévedés elleni védelmére, azonban az univerzalitás (a programmódosítási lehetőség) rovására. Az univerzalitás megtartása kétféleképpen biztosítható. Az egyik módszer az, hogy a szegmenseket a tárolóban tetszőleges helyre helyezhetjük el (tehát át is fedhetik egymást). Ezt a módszert egyébként meg kell valósítani amiatt is, mert az egyes számítógépek tárolókonfigurációja eltérhet egymástól. A másik módszer egy speciális utasítástípus (a prefix utasítás) bevezetése. Egy prefix utasítás címrésze azt adja meg, hogy a következő utasításlehívás és feldolgozás esetén az utasítás, illetve adatok címének kiszámításához az alapértelemzésben szereplő kódszegmens, adatszegmens, illetve stack-szegmens regiszterek helyett, mely szegmensregiszterek tartalmát kell a megfelelő helyeken használni. Természetesen a programozó által ilyenkor elkövetett esetleges hiba (ún. algoritmus hiba) ellen a védelem hatástalan. Multitasking rendszerben a védelmi rendszert célszerű kiegészíteni egy újabb – magasabb – logikai védelmi szinttel. Ilyenkor ugyanis meg kell oldani azt a további feladatot, hogy az egyik task futtatása ne okozzon hibát egy másik task-ban. Ezt azonban úgy kell megoldani, hogy lehetőség nyíljon arra, hogy az egyik task felhasználhassa egy vagy több másik task adatait és/vagy programrészleteit.

OKJ vizsga programozó - Feladatsor V. tétel

I/1. Határozza meg az alábbi mátrix inverzét!

-2

5

1

3

-1

4

2

0

7

I/2. Igaz-e a következő logikai összefüggés? Válaszát indokolja!

P és ( q vagy r ) = ( p és q ) vagy ( p és r )

I/3. Határozza meg az alábbi számsorozat szórását! 3; 1; 4; 3; 2; 4; 3; 4; 2; 2; 1; 3; 2; 2; 3; 2

II/1. Adott egy N elemű A=A[i] tömb. Keresse ki a tömbből a legnagyobb A[i] beli elemet!

II/2. Készítse el az alábbi feladat specifikációját, programtervét és megoldó algoritmusát az Ön által választott eszközzel! Kérjen be egy egész számot, és döntse el róla, hogy prímszám-e! A feladatot a lehető legoptimálisabban oldja meg.

III/1.Adottak a cikk (Cikk_kód, cikknév, cikkár) valamint a fogalom (Cikk_kód, forg_mennyiség, akt_dátum) adattáblák!

Adja meg azt az SQL utasítást, amely azoknak és csakis azoknak a cikkeknek a cikknév és cikkár mezőjét jeleníti meg, ahol a cikk_kód értéke „11”-el kezdődik!

Adja meg azt az SQL utasítást, amely azoknak és csakis azoknak acikkeknek a cikknév és forg_mennyiség mezőjét jelenítti meg, ahol a forgalmazás 2001.03. havi összesítését adja meg a cikk_kódok alapján!

III/2. Mikor mondunk egy relációt 2. normálformájúnak ( 2NF típusúnak )? Írjon példát erre!

IV/1. Mire szolgál a megjelenítési és a viszonyréteg az OSI modellben? Válaszát példával illusztrálja!

IV/2. Mit értünk megszakítás alatt és milyen főbb típusait különböztetjük meg?

IV/3. Mit értünk híd (bridge) alatt a hálózatoknál? Mit valósítanak meg?

I/1.Határozza meg az alábbi mátrix inverzét!

1/49*

-2

5

1

3

-1

4

2

0

7

I/2. Igaz, a bizonyítás igazságtáblával történhet Következtetés, vagy más megoldás nem elfogadható

I/3.Szórás = 0,93

II/1. A maximum kiválasztás klasszikus tételét kell megadni.

MAXIMUM eljárás
Sorszám:=1

Ciklus i:=1-től N-ig

Ha A[i]>A[sorszám] akkor Sorszám:=i

Elágazás vége

Ciklus vége

Eljárás vége

II/2. A program egy lehetséges megoldása a következő:

Program prim;

Deklarálás: var n:word;

Függvény használata function prime(n:word):boolean; var i:word;

Alapbeállítások: begin prime:=true;

Ciklus a megfelelő feltételig: fori:=2 to Round(Sqrt(n)) do

Oszthatóság vizsgálata: if n mod i=0 then prime:=false;

Ciklus vége: end;

Főprogram: szám bekérése: begin write(’A sz m:’); Read(n);

Szám vizsgálata: wtite(’A sz m prim? ’,prime(n));

Főprogram vége: end.

III/1. SELECT ciknév, cikkár FROM cikk
WHERE cikk_kód LIKE „11%”;

a) SELECT cikknév, SUM(forg_mennyiség) FROM cikk forgalom
WHERE cikk.cikk_kód=forgalom.cikk_kód
GROUP BY cikk.cikk_kód;

III/2. Egy reláció 2 NF, ha 1 NF-ú és ha minden másodlagos attribútum a reláció bármely kulcsától teljesen függ. Ha index kulcs egyetlen attribútumból áll, akkor ha a reláció 1 NF-ben van, egyúttal 2 NF típusú is. Ha a relációban nincsen másodlagos attribútum, akkor minden 1 NF típusú reláció 2 NF típusú is. A nem 2 NF-es relációt könnyen átalakíthatjuk ilyenné. Pld a III/1 feladat ilyen.

IV/1. A megjelenítési réteg fő feladata az eltérő adatábrázolással dolgozó gépek közötti kapcsolat biztosítása. Az egyszerű kódátalakítás mellett a gépek közötti kapcsolat kiépítése és szinkronizálása. Ez biztosítja a gépek közötti adatcsere hibamentességét.

IV/2. A megszakítások (interrupt) olyan eseményeket jeleznek, amelyekre az op. Rendszernek lehetőség szerint azonnal kell válaszolnia Típusai:

  • Megszakítás: egy periféria, mely jelezheti így egy régen várt adat megérkezését, de megszakítást okozhat a rendszer órája is.
  • Kivétel: a processzor generálja, ha valamilyen hibát, pld. Nullával való osztást tapasztal, vagy a címszámításnál tapasztal hibát
  • Nem maszkolható megszakítás: hardver hiba, pld. A memória hibája, vagy tápfeszültség hibája. Komoly hibalehetőség.
  • Csapda: olyan szoftver eredetű megszakítás, ahol a felhasználó közvetlenül az op. Rendszerhez fordul.

IV/3. Hálózati szegmensek összeköttetésére használt eszköz. Több, mint a jelismétlő, mert a hálózati torlódások kezelésében is segítkezik. Az OSI adatkapcsolati rétegéhez kapcsolódik. Képes összekötni különböző hálózati közeget, valamint közegférési metódust. A beérkező csomagokból kiolvassa a feladó és a címzett hardvercímét, megnézi az áthidalási táblázatot, és ennek megfelelően bánik az adott csomaggal.

OKJ vizsga programozó - Feladatsor IV. tétel

Ismertesse a konstans és a változó fogalmát és az Ön által tanult magas szintű programozási nyelvben való felhasználását! 10 pont

Ismertesse az algoritmus fogalmát és elemeit! 10 pont

Ismertesse az alábbi – adatbázis-kezeléssel kapcsolatos – fogalmakat: egyed, rekord, tulajdonság, kapcsolat! 10 pont

Ismertesse a minimum kiválasztásos rendezéselvi algoritmusát! 10 pont

Ismertesse az f(x)=0 tetszőleges, nemlineáris egyenlet megoldásának két lehetséges módszerét!10 pont

Ismertesse a statikus és dinamikus tesztelési módszereket! 12 pont

Adja meg a következő gráf fogalmak definícióját: teljes gráf, páros gráf, összefüggő gráf, feszítőfa, Hamilton-kör! 8 pont

Írja le – tetszőleges algoritmus-leíró eszköz használatával – egy bináris fa bejárási algoritmust! 10 pont

Ismertesse a DLL (Dynamic Link Library) fogalmát és feladatát! 10 pont

Ismertesse a következő, protokollal kapcsolatos fogalmakat: ARP, DHCP, DNS! 10 pont

A megoldási útmutatóban a feladatok egy lehetséges megoldásai vannak megadva. A megoldási útmutatóktól altérő algoritmus-leíró eszközt, programozási nyelvet stb. használó, a megoldási útmutatóban megadott megoldással egyenértékű (ugyanazt az eredményt, algoritmust stb. produkáló) megoldást is el kell fogadni.

Konstans és változó

Ezt a részt a cons szó vezeti be, utána a konstansok deklarálása következik. A konstansok a memória kódszegmensében vannak, ez egyúttal azt is jelenti, hogy a lefordított programban is benne vannak, a fordításkor abba belekerülnek.

A konstans helyett annak szinonimájaként egy azonosítót használunk.

Szintaxisa: az azonosítót egyenlőségjel, majd pedig a konstans követi. Ezt pontosvessző zárja le, így több konstanst is definiálhatunk. A konstans alapvetően kétféle lehet: numerikus és szöveges.

Tipizált konstans

A tipizált konstansok tulajdonképpen inicializált változók. A változók deklarálásakor ugyanis csak a változó helyigényének megfelelő hely foglalódik le a memóriában, valamint a változó neve kerül tárolásra egy belső táblázatban, amely a változók neveit, attribútumait és memóriabeli kezdőcímüket tartalmazza. Ezt szimbólumtáblának nevezzük, szerepét a programozásban általában nem érzékeljük, mivel a rendszer kezeli. A változók deklarálásakor tehát nem lesznek inicializálva, nem kaphatnak kezdőértéket.

Ezzel szemben a tipizált konstansok esetén a változók deklarálásához képest még egy művelet, az inicializálás is végrehajtásra kerül. A tipizált konstansok deklarálsa a konstansokkal együtt, a konstansdefiníciós részben történik.

Szintaxisa: a tipizált konstans azonosítóját kettőspont, majd a típus azonosítója, egyenlőségjel, érték és pontosvessző követi:

const

tipkonst: típusnév = érték;

Változó

A változókhoz tartozik több-kevesebb tárterület, amely tartalmazza a változó aktuális értékét. Ez mindig az értelmezési tartományának egy eleme. Tulajdonságaik szerint a változókat több típusba foglalhatjuk. A Turbo Pascal-ban minden változó valamilyen típusú. A típusok között vannak rendszerbe beépített típusok, valamint mi magunk is létrehozhatunk típusokat. Egy típus akkor ismert, ha azt a változó deklarálása előtt már deklaráltuk, illetve ha a típus: standard. Minden változót, amelyet a program használ deklarálni kell, tehát nincsen automatikus típusdeklaráció. A változók deklarációját a var szó vezeti be. Ezt követik egymástól ’;’-vel elválasztott deklarációk.

Szintaxisa: egymástól vesszővel elválasztva ferlsorolunk néhány változónevet, majd kettőspont, ezután pedig a felsorolt változók típusa következik.

var

i,j,k,l: integer;

p,o,q: real;

Értékadás

A változó az értékadó utasítás bal oldalán áll, és a jobb oldalon meghatározott értéket kapja meg. Értékadásra a:= értékadó operátor utasít. Az értékadó operátor bal oldalán mindig egy változó áll, jobb oldalán, pedig egy kifejezés:

kifizetes:= 50*(fejadag+letszam);

Amikor egy problémát meg akarunk oldani, ajánlatos először a konkrét programozási nyelvet félretenni, és azon gondolkodni, milyen lépéseket kell megtenni a probléma megoldásának érdekében. Ezen lépések (instrukciók) persze tartalmazhatnak feltételeket, ismétléseket is. Azon instrukciók halmazát, mely egy feladat megoldásához vezetnek, algoritmusnak nevezzük. Egy tetszőleges algoritmus felépíthető a következő elemekből:

  • szekvencia: egymás után végrehajtandó tevékenységek sorozata.
  • szelekció: választás megadott tevékenységek közül. A választás után nulla vagy egy tevékenység hajtódik végre.
  • iteráció: megadott tevékenységek ismételt végrehajtása. A ciklusmagot nullaszor, egyszer, vagy sokszor hajtjuk végre a ciklus feltételétől függően.
  • feltétel nélküli ugrás: vezérlés átadása a program egy megadott pontjára

Adatbázis fogalmak

Egyednek hívunk minden olyan dolgot (objektumot), ami minden más dologtól (objektumtól) megkülönböztethető, és amiről adatokat tárolunk.

Egy adott egyed által képviselt konkrét elemek halmazát egyedhalmaznak is szoktuk nevezni. Az egyed egy konkrét értékét az egyed egy előfordulásának nevezzük.

Az adatbázis-kezelő rendszerekben az egyedtípust rekordtípusnak hívjuk. Ez a legkisebb címezhető egység.

Az egyedeket tulajdonságokkal (attribútumokkal) írjuk le. A tulajdonság az egyed egy jellemzője, ami megadja, meghatározza az egyed egy részletét.

A tulajdonság is voltaképpen egy absztrakció, amely több elemet foglal egybe, tehát konkrét értékekből, előfordulásokból áll.

Kapcsolatnak nevezzük az egyedek közötti viszonyt. A kapcsolat mindig valóságos objektumok közötti viszonyt fejez ki, hiszen az egyed ilyen objektumokat képvisel.

A kapcsolat is absztrakció: két egyed értékei (előfordulási) közötti konkrét viszonyokat fejez ki. A konkrét kapcsolatokat a kapcsolat értékeinek (előfordulásainak) nevezzük.

Minimum kiválasztásos rendezés

- először megkeressük az egész tömb legkisebb elemét! Ezt az elemet kicseréljük az első elemmel. Következésképpen most az első helyen lesz a legkisebb elem, ahogy ezt szeretnénk is.

- most már csak a maradék részt, vagyis a 2. NevekSzáma tömbrészt kell rendeznünk. Keressük meg itt is a legkisebb elemet! Ezt az elemet kicseréljük a második elemmel, és így most már két elemünk van jó helyen.

- Folytassuk ezt a procedúrát: tegyük a helyére a többi elemet is. Utolsó lépésként az utolsóelőtti helyre kell kiválasztanunk a legkisebb elemet, hiszen ezzel az utolsó is a helyére kerül.

Grafikus, intervallumfelezés, Newton-Raphson módszer, húr módszer, szelő módszer, fokozatos közelítés. A megoldáshoz módszerek ismertetése is szükséges!

Statikus és dinamikus tesztelési módszerek

Statikus tesztelési módszerek:

- kódellenőrzés (algoritmus és kód összevetése)

- formai ellenőrzés, kereszthivatkozási táblázat készítése (szintaktika és szemantika)

- tartalmi ellenőrzés, ellentmondás keresése (szemantikus elemző kiszúrhatja)

- felhasználatlan „objektumok” keresése

- felhasználatlan változóérték

- érték nélküli változó

- értéket nem változtató utasítás

- azonosan igaz vagy hamis utasítások

- konstans értékű kifejezések

- végtelen ciklus

- érték nélküli függvény vagy operátor

- mellékhatással rendelkező függvény vagy operátor

Dinamikus tesztelési módszerek

Fekete doboz módszerek (adat vezérelt tesztelés, a program belső szerkezete nem ismert):

- ekvivalencia osztályok keresése

- határeset elemzés

Fehér doboz módszerek (logikai vezérelt tesztelés, a program belső szerkezetének ismerete):

- utasítások egyszeri lefedésének elve

- döntéslefedés elve

- a részfeltétel lefedés elve

- speciális tesztesetek elve

Gráf fogalmak:

  • teljes gráf: n pontú gráf, amelynek minden két pontja össze van kötve éllel
  • páros gráf: pontjait két diszjunkt halmazba választhatjuk szét úgy, hogy ugyanannak a halmaznak elemeit nem köti össze él
  • összefüggő gráf: bármely két pontját út köti össze
  • feszítőfa: olyan részgráf, ami fa és tartalmazza a gráf összes pontját
  • Hamilton-kör: olyan zárt élsorozat, amely a gráf egyetlen élén sem megy át egynél többször (vonal) és a gráf összes pontját tartalmazza

bináris fák bejárásának három lehetséges megoldása:

a) az irányítással egyező sorrendben:

- Az R gyökércsomópont feldolgozása

- Az R bal oldali részfájának bejárása az irányítással egyező sorrendben

- Az R jobb oldali részfájának bejárása az irányítással egyező sorrendben

Eljárás BinFaBejár (INFO, LEFT, RIGHT, ROOT)

Feldolgoz (INFO (PTR))

Ha LEFT (PTR) <> NULL akkor BinFaBejár (INFO, LEFT, RIGHT, LEFT (PTR))

Ha RIGHT (PTR) <> NULL akkor BinFaBejár (INFO, LEFT, RIGHT, RIGHT (PTR))

Eljárás vége

b) Szimmetrikus sorrendeben:

- Az R bal oldali részfájának bejárása szimmetrikus sorrendben

- Az R gyökércsomópont feldolgozása

- Az R jobb oldali részfájának bejárása szimmetrikus sorrendben

Eljárás BinFaBejár (INFO, LEFT, RIGHT, ROOT)

Ha LEFT (PTR) <> NULL akkor BinFaBejár (INFO, LEFT, RIGHT, LEFT (PTR))

Feldolgoz (INFO (PTR))

Ha RIGHT (PTR) <> NULL akkor BinFaBejár (INFO, LEFT, RIGHT, RIGHT (PTR))

Eljárás vége

c) Az irányítással ellentétes sorrendben:

- Az R bal oldali részfájának bejárása az irányítással ellentétes sorrendben

- Az R jobb oldali részfájának bejárása az irányítással ellentétes sorrendben

- Az R gyökércsomópont feldolgozása

Eljárás BinFaBejár (INFO, LEFT, RIGHT, ROOT)

Ha LEFT (PTR) <> NULL akkor BinFaBejár (INFO, LEFT, RIGHT, LEFT (PTR))

Ha RIGHT (PTR) <> NULL akkor BinFaBejár (INFO, LEFT, RIGHT, RIGHT (PTR))

Feldolgoz (INFO (PTR))

Eljárás vége

DLL (Dynamic Link Library). A könyvtárak összeszerkesztett állapotában tárolják a kódot. A DLL technika előnye, hogy a Windows alatt, párhuzamosan futó alkalmazások a közös kódrészletekből csak egy példányt hoznak be a tárba.

Fogalmak:

· ARP: Address Resolution Protocol, a TCP/IP protokollvermek az a része, mely a fizikai és logikai címeket rendeli egymáshoz.

· DHCP: Dynamic Host Configuration Protocol, a TCP/IP egyik protokollja, mely lehetővé teszi az IP cím és az alhálózati maszk automatikus beállítását.

· DNS Domain Name System, a TCP/IP azon protokollja, amely a számtógép nevét és IP számát hivatott összerendelni.

OKJ vizsga programozó - Feladatsor III. tétel

1. Ismertesse a lokális, a hálózati és a kereső meghajtó fogalmát! 10 pont

2. Ismertesse röviden az NDS fogalmát! 10 pont

3. Ismertesse a növekményes ciklus algoritmusát! 15 pont

4. Ismertesse röviden az Ön által tanult hálózati operációs rendszer jogosultsági rendszerét! 10 pont

5. Ismertesse az igazságtábla szerepét a kijelentés-kalkulusban és adja meg a diszjunkció igazságtábláját! 10 pont

6. Mit jelent a holtpont, ismertessen néhány módszert kialakulásának
elkerülésére! 10 pont

7. Ismertesse a vektor adattípus! 5 pont

8. Ismertesse részletesen a tanult adatbázis-szerkezeteket! 10 pont

9. Ismertesse az állományok szervezésének lehetőségeit! 10 pont

10. Bizonyítsa be, hogy a mátrixokon értelmezett szorzás nem kommutatív! 10 pont

megoldások:

1. Ismertesse a lokális, a hálózati és a kereső meghajtó fogalmát! 10 pont

Lokális meghajtó: a számítógépbe fizikailag beépített meghajtók, melyek lehetnek valóban fizikai (kislemez, CD, winchester) és logikai meghajtók (a winchester logikailag több részre osztható, particionálható).

Hálózati meghajtók: számítógépes hálózatba kapcsolt gépek a servert és egyéb osztott erőforrásokat közösen használnak. Ezen erőforrások között lehet egy winchester valamely partíciója, vagy egy könyvtár, esetleg fájl, de lehet kislemez meghajtó és CD olvasó is.

Kereső meghajtó: a hálózatba kapcsolt gépek esetén annak a meghajtónak a neve, melyről egy program bárhonnan elindítható.

2. Ismertesse röviden az NDS fogalmát! 10 pont

Az NDS a Novell NetWare 4. tulajdonsága. Egy olyan hálózati szinten egységes, osztottan tárolt, hierarchikus adatbázis, mely tárolja a hálózatban található erőforrásokat és az azokhoz való jogosultságokat.

3. Ismertesse a növekményes ciklus algoritmusát! 15 pont

A FOR-NEXT ciklusról van szó. Folyamatábrája:

A ciklusmagban van egy olyan változó, mely a ciklus végrehajtása után változik. Ebben a formában meghatározhatjuk, hányszor fusson le a ciklusmag. A program a ciklusmagot mindaddig végrehajtja, ameddig a feltétel igaz, tehát a ciklusváltozó meg nem haladja a végértéket.

Megvalósítás PASCALBAN:

PROGRAM osszegzes;

{az első 100 szám összegét írja ki};

USES crt;

VAR

szam,