KERESŐALGORITMUSOK OBJEKTUMORIENTÁLT IMPLEMENTÁCIÓJA A MESTERSÉGES INTELLIGENCIA TÁRGY GYAKORLATI KURZUSAIN

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "KERESŐALGORITMUSOK OBJEKTUMORIENTÁLT IMPLEMENTÁCIÓJA A MESTERSÉGES INTELLIGENCIA TÁRGY GYAKORLATI KURZUSAIN"

Átírás

1 KERESŐALGORITMUSOK OBJEKTUMORIENTÁLT IMPLEMENTÁCIÓJA A MESTERSÉGES INTELLIGENCIA TÁRGY GYAKORLATI KURZUSAIN OBJECT-ORIENTED IMPLEMENTATION OF SEARCH ALGORITHMS AT THE INTRODUCTORY COURSE OF ARTIFICIAL INTELLIGENCE Kósa Márk, Pánovics János Debreceni Egyetem, Informatikai Kar, Információ Technológia Tanszék Összefoglaló Az elmúlt években a hallgatói létszám gyors emelkedésének következtében szükségessé vált az egyetemünkön 1989 óta oktatott Mesterséges intelligencia bevezető kurzushoz kapcsolódó gyakorlatok tematikájának, követelmény rendszerének és számonkérési módjának az áttekintése, újragondolása. Az elmúlt öt év során sikerült kialakítani egy hatékony, a tényleges gyakorlati feladatmegoldáson alapuló számonkérési rendszert, melynek során a problémák számítógéppel támogatott dokumentálását és megoldását kérjük hallgatóinktól. Igazodva a korszerű informatika által támasztott követelményekhez, a hallgatóktól ma már valamilyen objektumorientált programozási nyelven várjuk ezeket a megoldásokat. Előadásunkban ismertetjük a kurzus gyakorlatainak oktatásával kapcsolatos tapasztalatainkat, és bemutatunk egy olyan Java osztályhierarchiát, amely megkönnyíti a tárgy előadásain ismeretett algoritmusok működésének megértését, és segíti hallgatóink vizsgára történő felkészülését. Az osztályhierarchia két fő részből áll: az állapottér-reprezentáció komponenseinek absztrakt elemeiből, valamint a reprezentációs gráfok csúcsainak reprezentációjából és a keresőalgoritmusok vezérlőinek implementációjából. Kulcsszavak Mesterséges intelligencia, állapottér-reprezentáció, keresőalgoritmusok, objektumorientált programozás, osztálydiagram. Abstract Due to an increase in the number of students of the last few years, it became necessary to review the topics, requirements and the way of examination in the practical lessons of the introductory course of Artificial Intelligence at the University of Debrecen. In the last five years, we managed to create an efficient examination system that is based on actual practical problem solving, i.e. documenting and solving problems using computers. In accordance with the demands of modern informatics, we require students to make these solutions using an object-oriented programming language. In this paper we present a possible object-oriented approach to implement search algorithms discussed at the seminars of the Artificial Intelligence course. It is about a Java class hierarchy which makes it easier to understand the operation of the algorithms described at the lectures of this subject, and helps our students prepare for their exams. This class hierarchy consists of two main parts: the abstract elements of the state space representation components, and the representation of nodes in the representation graphs together with the implementation of search strategies of the different algorithms. Keywords Artificial intelligence, state space representation, search algorithms, object-oriented programming, class diagram. 1

2 1. Bevezetés Az elmúlt években a hallgatói létszám gyors emelkedésének következtében szükségessé vált az egyetemünkön 1989 óta oktatott Mesterséges intelligencia bevezető kurzushoz kapcsolódó gyakorlatok tematikájának, követelmény rendszerének és számonkérési módjának az áttekintése, újragondolása. Előadásunkban ismertetjük a kurzus gyakorlatainak oktatásával kapcsolatos tapasztalatainkat. Az elmúlt öt év során sikerült kialakítani egy hatékony, a tényleges gyakorlati feladatmegoldáson alapuló számonkérési rendszert, melynek során a problémák számítógéppel támogatott dokumentálását és megoldását kérjük hallgatóinktól. Igazodva a korszerű informatika által támasztott követelményekhez, a hallgatóktól ma már valamilyen objektumorientált programozási nyelven várjuk ezeket a megoldásokat. A Mesterséges intelligencia bevezető kurzusa egyetemünkön három nagyobb témakört ölel föl: problémák állapottér-reprezentációja, megoldáskeresés állapottérgráfokban, problémaredukciós reprezentációs technika, megoldáskeresés hipergráfokban, kétszemélyes, zérusösszegű, véges, determinisztikus, teljes információjú játékok elmélete. A gyakorlati kurzusokon e témakörökhöz kapcsolódóan a hallgatóknak 4 5 Java nyelven elkészített programot kell bemutatniuk a félév során A gyakorlati foglalkozások A szorgalmi időszak 14 gyakorlati foglalkozásából általában alkalommal a problémák állapottér-reprezentációjával és az állapottérgráfokban történő megoldáskereséssel foglalkozunk. Ezeken a gyakorlatokon egy konkrét problémát elemzünk, és azon keresztül mutatjuk be a különböző megoldáskeresési stratégiákat. Első lépésként reprezentáljuk, azaz valamilyen matematikai modellben (általában elsőrendű logikai nyelv segítségével) formalizáljuk a problémát. Ezután egymás után implementáljuk az előadáson tárgyalt megoldáskereső algoritmusokat, így a nem módosítható keresőket, a visszalépéses keresőalgoritmusok különböző fajtáit, valamint a keresőgráffal kereső szisztematikus (szélességi, mélységi, optimális) és heurisztikus (best-first, A-algoritmuscsalád) algoritmusokat. Az elkészített programok mindegyikét teszteljük is, a konkrét problémán szemléltetve működésüket. Hallgatóinknak a félév során egy önállóan választott feladatot kell állapottérreprezentálniuk és megoldaniuk az ismertetett algoritmusokkal. A gyakorlati aláírás feltétele, hogy az elkészült reprezentációt és programokat a gyakorlatvezetőknek bemutassák, és a felmerülő kérdésekre válaszoljanak. A gyakorlatot sikeresen teljesítő hallgatók csak akkor vizsgázhatnak a tárgyból, ha a házi feladatként beadott programokon túl ellenőrzött körülmények között számítógépes laborjainkban megadott idő alatt elkészítenek egy adott állapottér-reprezentációhoz tartozó valamilyen (előre meghatározott) megoldáskereső programot. 2

3 2. Az osztályhierarchiák Az állapottérgráfokban történő megoldáskereséshez az elmúlt időszakban kifejlesztettünk két olyan Java csomagot, amelyek ügyesen felparaméterezve lehetőséget biztosítanak tetszőleges probléma bármely kívánt algoritmussal történő megoldására. A házi feladatként és a vizsga előfeltételeként megírandó programok elkészítése ezek után nem jelent mást, mint a gyakorlatokon ismertetett algoritmusok otthoni implementálását, és alkalmazásukat a választott problémára. A következőkben bemutatjuk a gyakorlatainkon használt osztályhierarchiát. Az általunk javasolt két Java csomag egyike az állapottér-reprezentációval, a másik pedig a megoldáskereső algoritmusokkal kapcsolatos osztályokat tartalmazza (1. ábra). 1. ábra A csomagstruktúra 2.1. Az állapottér-reprezentáció csomagja Ebben a csomagban két osztályt találunk (2. ábra). Az Operator osztály az egyes problémákhoz tartozó operátorok, míg az Allapot osztály a problémákhoz tartozó állapotok absztrakt ősosztálya. Mivel egy állapot jellemzői mindig a konkrét problémától függnek, ezért ez utóbbi osztályban csak egyetlen adattagot definiáltunk, amely nem más, mint a probléma állapotaira alkalmazható összes operátor halmaza. Természetesen függetlenül a problémától minden állapotnak meg kell tudnia mondani magáról, hogy célállapot-e, hogy alkalmazhatóe rá egy adott operátor, illetve hogy egy operátor alkalmazásával milyen új állapot jön létre belőle. A heurisztikus keresők olyan állapotokat használnak, amelyek a fentebb felsorolt jellemzőkön kívül még egy heurisztikaértéket is tartalmaznak. Ehhez nyújt segítséget a HeurisztikusAllapot interfész azáltal, hogy az ezt megvalósító állapotok rendelkezni fognak egy heurisztikus értéket szolgáltató módszerrel. Ehhez hasonlóan a KoltsegesOperator 3

4 interfészt azok az operátorok fogják implementálni, amelyeket az operátorok költségét figyelembe vevő keresőalgoritmusok használnak. 2. ábra Az állapottér-reprezentáció osztálydiagramja 2.2. A megoldáskereső algoritmusok csomagja A megoldáskereső algoritmusok csomagjában lévő osztályok két különálló hierarchiába rendeződnek. Az egyik (3. ábra) az állapottérgráfok csúcsainak, a másik (4. ábra) a különböző keresőalgoritmusoknak a modellezésére szolgál. 3. ábra Az állapottérgráf-csúcsok osztálydiagramja A csúcsokra vonatkozó csaknem minden információ a különböző csúcstípusok közös ősosztályában, a Csucs osztályban található. Itt tároljuk a csúcs által szemléltetett állapotot, a csúcsnak a startcsúcstól mért távolságát (mélységét), a szülő csúcsát, illetve azt az operátort, amellyel a szülőjében tárolt állapotból az adott csúcsban tárolt állapotot előállítottuk. A Csucs 4

5 osztály leszármazottai ezeken az attribútumokon túl a konkrét keresőalgoritmusok által igényelt további adattagokat tartalmaznak. 4. ábra A keresőalgoritmusok osztálydiagramja A keresőalgoritmusok ősosztálya az absztrakt Kereso osztály, amely éppen a legfontosabb metódusát nem implementálja, nevezetesen azt, hogy milyen stratégiával kell működnie a megoldáskeresés vezérlőjének. Ennek a metódusnak a kódját a leszármazott osztályok tartalmazzák majd. Ugyanakkor lehetőséget biztosít arra, hogy tároljuk a terminális csúcsokat, kiírjuk a megoldásokat, illetve hogy beállítsuk az egyes keresők algoritmustól független jellemzőit. A BacktrackKereso osztály új jellemzői között találjuk az aktuális utat, valamint a körfigyelés és az úthosszkorlát opcionális lehetőségét. Az AgEsKorlatKereso osztály annyiban tér el ettől, hogy az úthosszkorlát helyett költségkorláttal dolgozik, amely itt nem opció, hanem az algoritmus szerves részét képezi. A KeresografosKereso osztály a kereső adatbázisában tárolt csúcsok nyilvántartásához két listát használ. Ezen osztály leszármazottai (a konkrét gráfkereső algoritmusok) egyrészt a keresési stratégiában, másrészt pedig az adatbázisukban tárolt csúcsok osztályában térnek el egymástól Egy konkrét példa: Hanoi tornyai Lássuk ezek után, hogy hogyan lehet felhasználni a bemutatott csomagokat konkrét feladatok megoldására. Megoldandó feladatnak válasszuk a mindenki által jól ismert Hanoi tornyai problémát. Az alábbiakban definiáljuk a feladatot, és megadjuk az állapottér- 5

6 reprezentációjának leglényegesebb elemeit. Megjegyezzük azonban, hogy a megoldáskeresés szempontjából a feladat ismerete másodlagos, mivel a kódok elkészítéséhez elegendő a feladat állapottér-reprezentációja. A legenda szerint egy szerzetesek lakta távol-keleti kolostor udvarán áll három rúd, amelyeken 64 különböző átmérőjű aranykorong található. Eredetileg mind a 64 korong egyetlen rúdra volt rárakva úgy, hogy minden korong alatt egy nála nagyobb volt. A szerzeteseknek az a céljuk, hogy mind a 64 korongot áthelyezzék az első rúdról a harmadik rúdra, naponta mindig csak egy korongot mozgatva úgy, hogy sohase rakjanak egy korongot nála kisebbre. Amint az összes korongot átpakolják a harmadik rúdra, eljön majd az általuk várva várt világvége. Leegyszerűsített állapottér-reprezentációnkban legyen N = 3 a korongok száma, jelöljük a három rudat sorrendben A, B és C betűkkel, a korongokat pedig számozzuk 1-től N-ig, átmérőik szerint növekvő sorrendben. Tekintsük a probléma jellemző tulajdonságának azt, hogy melyik korong melyik rúdon található. Mivel minden korong elvileg előfordulhat bármely rúdon, ezért a korongok mindegyikéhez azonos alaphalmazokat rendelhetünk: H 1 = H 2 = = H N = {A, B, C} A probléma világának állapotai elemei ezen alaphalmazok Descartes-szorzatának elemei lesznek: A = H 1 H 2 H N Mivel a kiinduló helyzetben minden korong az első, A-val jelölt rúdon található, a problémának a kezdő = (A, A, A) A állapot lesz a feladatban meghatározott kezdállapota. A célállapotok halmazát egyetlen elem alkotja: az, amely azt a helyzetet írja le, amikor az összes korong a harmadik, C-vel jelölt rúdon található: C = {(C, C, C)} A Operátorunk a Mozgat(mit, hova) kétparaméteres operátor lesz, ahol a mit egy korongot, a hova pedig egy rudat jelöl. A mozgatás akkor hajtható végre, ha a mit korong nincs a hova rúdon; a mit korong a legkisebb a saját rúdján; a hova rúd vagy üres, vagy nincs rajta a mit korongnál kisebb korong. Az operátor alkalmazásának hatására a mit korong pozíciója megváltozik: a hova rúdra kerül. A feladat implementációját az operátor leprogramozásával érdemes kezdeni. Ehhez származtatunk az absztrakt Operator osztályból egy HanoiMozgat nevű konkrét osztályt, amelynek két adattagja a Mozgat(mit, hova) operátor két paramétere lesz. Ha olyan keresőt szeretnénk használni, amelyben az operátorok alkalmazása nem konstans költségű, akkor a HanoiMozgat osztálynak implementálnia kell a KoltsegesOperator interfészt, azaz meg kell adnunk a koltseg() metódus törzsét is. Ezután rátérhetünk az állapotteret leíró osztály elkészítésére. Ebben az osztályban először is az állapotok komponenseinek megfelelő adattagokat kell megadnunk. Jelen esetben ez az N értéket és a korong nevű N elemű tömböt jelenti. A korong tömb elemei az A, B vagy C karakterek lehetnek. Ezeket felhasználva már csak az Allapot osztályból örökölt absztrakt metódusokat kell implementálnunk a reprezentációnak megfelelően. A kezdőállapotot a 6

7 HanoiAllapot osztály paraméter nélküli konstruktorával hozzuk létre. Ha olyan keresőt szeretnénk használni, amely valamilyen reprezentáción kívüli plusz információt, heurisztikát használ a megoldás kereséséhez, akkor a HanoiAllapot osztálynak implementálnia kell a HeurisztikusAllapot interfészt, azaz meg kell adnunk a heurisztika() metódus törzsét is. Ezeknek a kódoknak az elkészítése minimális programozói ismeretekkel is gyorsan megoldható, mindössze a reprezentációban megfogalmazott formulákat kell átültetni Java nyelvű kódra. A probléma osztálydiagramja az 5. ábrán látható. 5. ábra A Hanoi tornyai probléma osztálydiagramja package hanoi; import kereso.*; import kereso.keresografos.szisztematikus.melysegikereso; public class HanoiMain { public static void main( String[] args ) { Kereso kereso = new MelysegiKereso( new HanoiAllapot(), MelysegiKereso.OSSZES_MEGOLDAS ); System.out.println( kereso ); kereso.keres(); for ( Csucs cs : kereso.getterminalisok() ) { System.out.println( "Egy megoldás:" ); kereso.kiirmegoldas( cs ); } System.out.println( "Megoldások száma: " + kereso.getterminalisok().size() ); } } 6. ábra A főprogram egy lehetséges megvalósítása Utolsó teendőnk a keresőalgoritmus kiválasztása és a főprogram megírása. A főprogramban példányosítanunk kell a megfelelő keresőalgoritmus osztályát, amelynek paraméterként átadjuk a megoldandó probléma kezdőállapotát és a keresés jellemzőit, majd 7

8 meg kell hívnunk a keresés vezérlését megvalósító keres() metódust. A keresés befejeződése után megjeleníthetők a megoldások. A 6. ábrán látható a HanoiMain osztály kódja, amely a Hanoi tornyai problémát mélységi keresővel oldja meg. Hasonlóan egyszerű a többi keresőalgoritmus használata is: a MelysegiKereso helyett a kívánt keresőalgoritmus osztályát kell példányosítani. 3. Oktatási tapasztalatok Az elmúlt félévek során A mesterséges intelligencia alapjai című tárgy keretében hallgatóinknak különböző problémák állapottér-reprezentációját kellett elkészíteniük, majd az itt bemutatott osztályhierarchiákat és kódokat felhasználva implementálni azt. Tapasztalataink alapján elondhatjuk, hogy az itt bemutatott csomagok, osztályok és forráskódok nagy segítséget nyújtottak egyrészt az órák tervezésében, másrészt a tárgy előadásain ismertetett algoritmusok elsajátításában, legfőképpen azon hallgatók számára, akik rendelkeztek a szükséges elméleti háttérrel (logikai és programozási alapismeretekkel). Ezek a hallgatók önállóan is sokat kísérleteztek a kódok bővítésével és javításával, eredményeiket felhasználva a jövőben tovább tudjuk emelni a gyakorlati foglalkozásaink színvonalát. 8

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008 Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 007/008 Az Előadások Témái Bevezető: mi a mesterséges intelligencia... Tudás reprezentáció i stratégiák Szemantikus hálók / Keretrendszerek

Részletesebben

OOP: Java 8.Gy: Abstract osztályok, interfészek

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.

SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb. SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.hu Mesterséges intelligencia oktatás a DE Informatikai

Részletesebben

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008 Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008 Az Előadások Témái Bevezető: mi a mesterséges intelligencia... Tudás reprezentáció Gráfkeresési stratégiák Szemantikus hálók

Részletesebben

List of Publications (Pánovics János)

List of Publications (Pánovics János) List of Publications (Pánovics János) Book 1. Juhász István, Kósa Márk, Pánovics János: C példatár, Panem, Budapest, 2005. Peer-Reviewed Papers 1. Kádek Tamás, Pánovics János: Some Improvements of the

Részletesebben

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 1/363

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 1/363 1/6 Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 Az Előadások Témái 46/6 Bevezető: mi a mesterséges intelligencia... Tudás reprezentáció stratégiák Szemantikus hálók

Részletesebben

Publikációs jegyzék (Pánovics János)

Publikációs jegyzék (Pánovics János) Publikációs jegyzék (Pánovics János) Könyv 1. Juhász István, Kósa Márk, Pánovics János: C példatár, Panem, Budapest, 2005. Referált cikkek 1. Kádek Tamás, Pánovics János: Some Improvements of the Extended

Részletesebben

Java programozási nyelv 5. rész Osztályok III.

Java programozási nyelv 5. rész Osztályok III. Java programozási nyelv 5. rész Osztályok III. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

Abstract osztályok és interface-ek. 7-dik gyakorlat

Abstract osztályok és interface-ek. 7-dik gyakorlat Abstract osztályok és interface-ek 7-dik gyakorlat Abstract metódusok és osztályok Az OO fejlesztés során olyan osztályokat is kialakíthatunk, melyeket csak továbbfejlesztésre, származtatásra lehet használni,

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt

Részletesebben

Java programozási nyelv 6. rész Java a gyakorlatban

Java programozási nyelv 6. rész Java a gyakorlatban Java programozási nyelv 6. rész Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október A Java programozási nyelv Soós Sándor 1/16 Tartalomjegyzék

Részletesebben

Modellezés Gregorics Tibor Mesterséges intelligencia

Modellezés Gregorics Tibor Mesterséges intelligencia Modellezés 1. Állapottér-reprezentáció Állapottér: a probléma leírásához szükséges adatok által felvett érték-együttesek (azaz állapotok) halmaza az állapot többnyire egy összetett szerkezetű érték gyakran

Részletesebben

OOP: Java 8.Gy: Gyakorlás

OOP: Java 8.Gy: Gyakorlás OOP: Java 8.Gy: Gyakorlás 43/1 B ITv: MAN 2019.04.10 43/2 Egy régebbi beszámoló anyaga 1. Feladat: Készítsen egy Szemely nevű osztályt a szokásos konvenciók betartásával, amely tárolja egy ember nevét

Részletesebben

V. Kétszemélyes játékok

V. Kétszemélyes játékok Teljes információjú, véges, zéró összegű kétszemélyes játékok V. Kétszemélyes játékok Két játékos lép felváltva adott szabályok szerint. Mindkét játékos ismeri a maga és az ellenfele összes választási

Részletesebben

Szoftvertechnolo gia gyakorlat

Szoftvertechnolo gia gyakorlat Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot

Részletesebben

Mesterséges intelligencia. Gregorics Tibor people.inf.elte.hu/gt/mi

Mesterséges intelligencia. Gregorics Tibor people.inf.elte.hu/gt/mi people.inf.elte.hu/gt/mi Szakirodalom Könyvek Fekete István - - Nagy Sára: Bevezetés a mesterséges intelligenciába, LSI Kiadó, Budapest, 1990, 1999. ELTE-Eötvös Kiadó, Budapest, 2006. Russel, J. S., Norvig,

Részletesebben

Már megismert fogalmak áttekintése

Már megismert fogalmak áttekintése Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak

Részletesebben

A mesterséges intelligencia alapjai

A mesterséges intelligencia alapjai A mesterséges intelligencia alapjai Az előadások mellé vetített anyag Várterész Magda A mesterséges intelligencia alapjai: Az előadások mellé vetített anyag Várterész Magda A tananyag a TÁMOP-4.1.2-08/1/A-2009-0046

Részletesebben

Mesterséges Intelligencia MI

Mesterséges Intelligencia MI Mesterséges Intelligencia MI Problémamegoldás kereséssel ha sötétben tapogatózunk Dobrowiecki Tadeusz Eredics Péter, és mások BME I.E. 437, 463-28-99 dobrowiecki@mit.bme.hu, http://www.mit.bme.hu/general/staff/tade

Részletesebben

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Enterprise JavaBeans 1.4 platform (EJB 2.0) Enterprise JavaBeans 1.4 platform (EJB 2.0) Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans

Részletesebben

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans Enterprise JavaBeans Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans (EJB) server oldali komponens, amely Az üzleti

Részletesebben

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,

Részletesebben

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv

Részletesebben

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv

Részletesebben

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg. KIINDULÁS Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg. Programozás III Az egyszerűség kedvéért mindegyiket a nevük alapján regisztráljuk,

Részletesebben

2. Visszalépéses stratégia

2. Visszalépéses stratégia 2. Visszalépéses stratégia A visszalépéses keres rendszer olyan KR, amely globális munkaterülete: út a startcsúcsból az aktuális csúcsba (ezen kívül a még ki nem próbált élek nyilvántartása) keresés szabályai:

Részletesebben

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás

Részletesebben

Kétszemélyes játékok Gregorics Tibor Mesterséges intelligencia

Kétszemélyes játékok Gregorics Tibor Mesterséges intelligencia Kétszemélyes játékok Kétszemélyes, teljes információjú, véges, determinisztikus,zéró összegű játékok Két játékos lép felváltva adott szabályok szerint, amíg a játszma véget nem ér. Mindkét játékos ismeri

Részletesebben

Interfészek. PPT 2007/2008 tavasz.

Interfészek. PPT 2007/2008 tavasz. Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése 2 Már megismert fogalmak áttekintése Objektumorientált

Részletesebben

Intelligens Rendszerek Elmélete IRE 4/32/1

Intelligens Rendszerek Elmélete IRE 4/32/1 Intelligens Rendszerek Elmélete 4 IRE 4/32/1 Problémamegoldás kereséssel http://nik.uni-obuda.hu/mobil IRE 4/32/2 Egyszerű lények intelligenciája? http://www.youtube.com/watch?v=tlo2n3ymcxw&nr=1 IRE 4/32/3

Részletesebben

JAVA PROGRAMOZÁS 2.ELŐADÁS

JAVA PROGRAMOZÁS 2.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 2.ELŐADÁS 2014-2015 tavasz Tömbök, osztályok, objektumok, konstruktorok Tömbök 2 Referencia típusú változó Elemtípus Primitív Referencia: osztály,

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 6. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

Problémamegoldás kereséssel. Mesterséges intelligencia március 7.

Problémamegoldás kereséssel. Mesterséges intelligencia március 7. Problémamegoldás kereséssel Mesterséges intelligencia 2014. március 7. Bevezetés Problémamegoldó ágens Kívánt állapotba vezető cselekvéseket keres Probléma megfogalmazása Megoldás megfogalmazása Keresési

Részletesebben

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Bánsághi Anna 2014 Bánsághi Anna 1 of 33 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 7. ELŐADÁS - ABSZTRAKT ADATTÍPUS 2014 Bánsághi Anna 1 of 33 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt

Részletesebben

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Programozási nyelvek II. JAVA EA+GY 1. gyakolat Programozási nyelvek II. JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2017/2018. őszi félév Tartalom 1 Amit tudni kell a félévről

Részletesebben

Collections. Összetett adatstruktúrák

Collections. Összetett adatstruktúrák Collections Összetett adatstruktúrák Collections framework Előregyártott interface-ek és osztályok a leggyakoribb összetett adatszerkezetek megvalósítására Legtöbbször módosítás nélkül használhatók Időt,

Részletesebben

Programozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 5. gyakorlat 1 Objektumorientáltság Egységbezárás és információ elrejtése (absztrakt adattípus) Adatok és rajtuk végzett műveletek egységbezárása (osztályok írása, múlt hét) Öröklődés Polimorfizmus

Részletesebben

A PROGRAMOZÁSI TECHNOLÓGIA TANTÁRGY OKTATÁSA A GÁBOR DÉNES FŐISKOLÁN

A PROGRAMOZÁSI TECHNOLÓGIA TANTÁRGY OKTATÁSA A GÁBOR DÉNES FŐISKOLÁN A PROGRAMOZÁSI TECHNOLÓGIA TANTÁRGY OKTATÁSA A GÁBOR DÉNES FŐISKOLÁN THE TEACHING OF TECHNOLOGY OF PROGRAMMING IN DENNIS GABOR COLLEGE Kaczur Sándor 1 Összefoglaló: A Gábor Dénes Főiskola mérnök-informatikus

Részletesebben

BME MOGI Gépészeti informatika 8.

BME MOGI Gépészeti informatika 8. BME MOGI Gépészeti informatika 8. 1. feladat Készítse beosztottak és vezetők munkahelyi adatait kezelő alkalmazást! A feladat megoldásához hozza létre a következő osztályokat! Beosztott osztály: adatmező

Részletesebben

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1 Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

Objektumorientált paradigma és programfejlesztés Bevezető

Objektumorientált paradigma és programfejlesztés Bevezető Objektumorientált paradigma és programfejlesztés Bevezető Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Ficsor Lajos (Miskolci Egyetem) prezentációja alapján

Részletesebben

HALLGATÓI KÉRDŐÍV ÉS TESZT ÉRTÉKELÉSE

HALLGATÓI KÉRDŐÍV ÉS TESZT ÉRTÉKELÉSE HALLGATÓI KÉRDŐÍV ÉS TESZT ÉRTÉKELÉSE EVALUATION OF STUDENT QUESTIONNAIRE AND TEST Daragó László, Dinyáné Szabó Marianna, Sára Zoltán, Jávor András Semmelweis Egyetem, Egészségügyi Informatikai Fejlesztő

Részletesebben

Java VII. Polimorfizmus a Java nyelvben

Java VII. Polimorfizmus a Java nyelvben Java VII. Polimorfizmus a Java nyelvben Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 19. Java VII. Polimorfizmuss JAVA7 / 1 A kötés (binding( binding) ) fogalma Kötés (binding)

Részletesebben

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és Függvénysablonok Gyakorlatorientált szoftverfejlesztés C++ nyelven Visual Studio Community fejlesztőkörnyezetben

Részletesebben

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

Öröklés és Polimorfizmus

Öröklés és Polimorfizmus Öröklés és Polimorfizmus Egy létező osztályból egy (vagy több) újat készítünk A létező osztályt ősnek, az újakat utódnak nevezzük Az utódok öröklik az ős minden tagját Az utódok az öröklött tagokat újakkal

Részletesebben

OOP. Alapelvek Elek Tibor

OOP. Alapelvek Elek Tibor OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós

Részletesebben

SZOFTVEREK A SORBANÁLLÁSI ELMÉLET OKTATÁSÁBAN

SZOFTVEREK A SORBANÁLLÁSI ELMÉLET OKTATÁSÁBAN SZOFTVEREK A SORBANÁLLÁSI ELMÉLET OKTATÁSÁBAN Almási Béla, almasi@math.klte.hu Sztrik János, jsztrik@math.klte.hu KLTE Matematikai és Informatikai Intézet Abstract This paper gives a short review on software

Részletesebben

III. OOP (objektumok, osztályok)

III. OOP (objektumok, osztályok) III. OOP (objektumok, osztályok) 1. Természetes emberi gondolkozás Az Objektumorientált paradigma alapelvei nagyon hasonlítanak az emberi gondolkozásra. Érdemes ezért elsőként az emberi gondolkozás elveit

Részletesebben

Programozási alapismeretek 4.

Programozási alapismeretek 4. Programozási alapismeretek 4. Obejktum-Orientált Programozás Kis Balázs Bevezetés I. Az OO programozási szemlélet, egy merőben más szemlélet, az összes előző szemlélettel (strukturális, moduláris, stb.)

Részletesebben

Kereső algoritmusok a diszkrét optimalizálás problémájához

Kereső algoritmusok a diszkrét optimalizálás problémájához Kereső algoritmusok a diszkrét optimalizálás problémájához A. Grama, A. Gupta, G. Karypis és V. Kumar: Introduction to Parallel Computing, Addison Wesley, 2003. könyv anyaga alapján A kereső eljárások

Részletesebben

Java VII. Polimorfizmus a Java nyelvben

Java VII. Polimorfizmus a Java nyelvben Java VII. Polimorfizmus a Java nyelvben Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 19. Java VII. Polimorfizmuss JAVA7 / 1 A kötés (binding( binding) ) fogalma Kötés (binding)

Részletesebben

2. Visszalépéses keresés

2. Visszalépéses keresés 2. Visszalépéses keresés Visszalépéses keresés A visszalépéses keresés egy olyan KR, amely globális munkaterülete: egy út a startcsúcsból az aktuális csúcsba (az útról leágazó még ki nem próbált élekkel

Részletesebben

Objektum orientált programozás Bevezetés

Objektum orientált programozás Bevezetés Objektum orientált programozás Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 03. 04. OOPALAP / 1 A program készítés Absztrakciós folyamat, amelyben a valós világban

Részletesebben

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:

Részletesebben

Eloadó: Dr. Várterész Magdolna

Eloadó: Dr. Várterész Magdolna Eloadó: Dr. Várterész Magdolna Tartalomjegyzék: 1. Bevezetés 1.1. A jegyzet megtekintéséhez ajánlott környezet 1.2. Információ a mesterséges intelligencia kurzusról 1.3. Röviden a mesterséges intelligenciáról

Részletesebben

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás: Objektum orientált programozás Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 03. 04. OOPALAP / 1 A program készítés Absztrakciós folyamat, amelyben a valós világban

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net. 2014 Bánsághi Anna 1 of 31

Bánsághi Anna anna.bansaghi@mamikon.net. 2014 Bánsághi Anna 1 of 31 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 9. ELŐADÁS - OOP TERVEZÉS 2014 Bánsághi Anna 1 of 31 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív paradigma

Részletesebben

A MESTERSÉGES INTELLIGENCIA KÉRDÉSEI A KÖZÉPISKOLAI OKTATÁSBAN

A MESTERSÉGES INTELLIGENCIA KÉRDÉSEI A KÖZÉPISKOLAI OKTATÁSBAN Eszterházy Károly Főiskola Matematikai és Informatikai Intézet A MESTERSÉGES INTELLIGENCIA KÉRDÉSEI A KÖZÉPISKOLAI OKTATÁSBAN DR. KOVÁSZNAI GERGELY ÉS DR. KUSPER GÁBOR JEGYZETE Tartalomjegyzék 1. Bevezetés...4

Részletesebben

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék Speciális adattagok és tagfüek Miskolci Egyetem Általános Informatikai Tanszék CPP7 / 1 Statikus adattagok Bármely adattag lehet static tárolási osztályú A statikus adattag az osztály valamennyi objektuma

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelők Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát

Részletesebben

OOP és UML Áttekintés

OOP és UML Áttekintés OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés

Részletesebben

Programozási nyelvek II. JAVA

Programozási nyelvek II. JAVA Programozási nyelvek II. JAVA 8. gyakorlat 2017. november 6-10. Általános tudnivalók A feladatmegoldás során fontos betartani az elnevezésekre és típusokra vonatkozó megszorításokat, illetve a szövegek

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály

Részletesebben

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error Generics Egyszerűbb példák (java.util csomagból): public interface List { void add(e x); Iterator iterator(); public interface Iterator { E next(); boolean hasnext(); E - formális típusparaméter,

Részletesebben

SZAKDOLGOZAT. Szatmári László

SZAKDOLGOZAT. Szatmári László SZAKDOLGOZAT Szatmári László Debrecen 2010 Debreceni Egyetem Informatika Kar Kereső algoritmusok hatékonyságának összehasonlítása a Hanoi problémán keresztül Témavezető: Dr. Várterész Magda egyetemi docens

Részletesebben

7. K: JAVA alapok Konzultáció

7. K: JAVA alapok Konzultáció Objektum Orientált Programozás 7. K: JAVA alapok Konzultáció 35/1B IT MAN B IT v: 2017.05.03 MAN Hiba, biztonságos program 01. Szintaktikai hiba imt i = 0; system.out.println( alma ); for (int i = 0, i

Részletesebben

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*; Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely

Részletesebben

Osztályok. 4. gyakorlat

Osztályok. 4. gyakorlat Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum

Részletesebben

Bevezetés a Python programozási nyelvbe

Bevezetés a Python programozási nyelvbe Bevezetés a Python programozási nyelvbe 7. Gyakorlat osztályok, objektumok (utolsó módosítás 2018. aug. 28.) Szathmáry László Debreceni Egyetem Informatikai Kar 2018-2019, 1. félév OO programozás Pythonban

Részletesebben

Kereső algoritmusok a diszkrét optimalizálás problémájához

Kereső algoritmusok a diszkrét optimalizálás problémájához Kereső algoritmusok a diszkrét optimalizálás problémájához A. Grama, A. Gupta, G. Karypis és V. Kumar: Introduction to Parallel Computing, Addison Wesley, 2003. könyv anyaga alapján A kereső eljárások

Részletesebben

Mesterséges Intelligencia I. kötelező program

Mesterséges Intelligencia I. kötelező program 1. Feladat kiírás Mesterséges Intelligencia I. kötelező program A feladat az Othello (más neveken Reversi, Fonákollós, Színcserélő) játékot játszó ágens írása. A játékot egyik oldalán világos, a másikon

Részletesebben

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus

Részletesebben

Struktúra nélküli adatszerkezetek

Struktúra nélküli adatszerkezetek Struktúra nélküli adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli (Nincs kapcsolat az adatelemek között.) Halmaz Multihalmaz Asszociatív 20:24 1 A

Részletesebben

Alkalmazott Modul III 6. előadás. Objektumorientált programozás: öröklődés és polimorfizmus

Alkalmazott Modul III 6. előadás. Objektumorientált programozás: öröklődés és polimorfizmus Eötvös Loránd Tudományegyetem Természettudományi Kar Alkalmazott Modul III 6. előadás Objektumorientált programozás: öröklődés és polimorfizmus 2011.10.24. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Java és web programozás

Java és web programozás Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:

Részletesebben

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás Számítástechnika II. BMEKOKAA153 5. Előadás Dr. Bécsi Tamás Kivételkezelés try Azon utasítások kerülnek ide, melyek hibát okozhatnak, kivételkezelést igényelnek catch( típus [név]) Adott kivételtípus esetén

Részletesebben

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,

Részletesebben

JNDI - alapok. Java Naming and Directory Interface

JNDI - alapok. Java Naming and Directory Interface JNDI - alapok Java Naming and Directory Interface Naming Service Naming service: nevek hozzárendelése objektumokhoz, elérési lehetőség (objektumok/szolgáltatások lokalizálása), információk központosított

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 8. előadás Öröklődés - megnyitunk egy osztályt egy másik előtt zárt egységeket szeretünk készíteni (láthatósági kérdés:

Részletesebben

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.

Részletesebben

Mesterséges intelligencia 2. laborgyakorlat

Mesterséges intelligencia 2. laborgyakorlat Mesterséges intelligencia 2. laborgyakorlat Keresési módszerek A legtöbb feladatot meg lehet határozni keresési feladatként: egy ún. állapottérben, amely tartalmazza az összes lehetséges állapotot fogjuk

Részletesebben

Gyakorlati vizsgatevékenység A

Gyakorlati vizsgatevékenység A Gyakorlati vizsgatevékenység A Szakképesítés azonosító száma, megnevezése: 481 04 0000 00 00 Web-programozó Vizsgarészhez rendelt követelménymodul azonosítója, megnevezése: 1189-06 Web-alkalmazás fejlesztés

Részletesebben

Programozási módszertan. Mohó algoritmusok

Programozási módszertan. Mohó algoritmusok PM-08 p. 1/17 Programozási módszertan Mohó algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu PM-08 p. 2/17 Bevezetés Dinamikus programozás

Részletesebben

A TANTÁRGY ADATLAPJA

A TANTÁRGY ADATLAPJA A TANTÁRGY ADATLAPJA 1. A képzési program adatai 1.1 Felsőoktatási intézmény Babeș-Bolyai Tudományegyetem 1.2 Kar Matematika és Informatika 1.3 Intézet Magyar Matematika és Informatika 1.4 Szakterület

Részletesebben

MESTERSÉGES INTELLIGENCIA DR. KOVÁSZNAI GERGELY JEGYZETE. Verziószám: 1.0 2008. május 19.

MESTERSÉGES INTELLIGENCIA DR. KOVÁSZNAI GERGELY JEGYZETE. Verziószám: 1.0 2008. május 19. MESTERSÉGES INTELLIGENCIA DR. KOVÁSZNAI GERGELY JEGYZETE Verziószám: 1.0 2008. május 19. 1 Tartalomjegyzék 1. A mesterséges intelligencia története...4 1.1. Korai lelkesedés, nagy elvárások (az 1960-as

Részletesebben

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"

Részletesebben

Objektumelvű programozás

Objektumelvű programozás Objektum, osztály Objektumelvű programozás Az elemzés együttműködő objektumok rendszereként fogalmazza meg a feladatot. Objektum-központú elemzés A tervezés a feladat tárgyköreit egy-egy objektum felelősségévé

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

bujdoso@inf.unideb.hu, http:www.inf.unideb.hu/~bujdoso 2 Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma, 4029 Debrecen, Csengı u. 4.

bujdoso@inf.unideb.hu, http:www.inf.unideb.hu/~bujdoso 2 Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma, 4029 Debrecen, Csengı u. 4. Problémák a szövegszerkesztés verseny- és ECDL vizsgafeladataival kapcsolatban Problems in tests papers on word processing of ECDL exams and competitions BUJDOSÓ Gyöngyi 1, Ph.D., egyetemi adjunktus CSERNOCH

Részletesebben

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető

Részletesebben

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék Programozás Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. február 11. Tantárgy célja, szükséges ismeretek Tantárgy célja,

Részletesebben

A DEBRECENI MÉRNÖK INFORMATIKUS KÉPZÉS TAPASZTALATAIRÓL. Kuki Attila Debreceni Egyetem, Informatikai Kar. Összefoglaló

A DEBRECENI MÉRNÖK INFORMATIKUS KÉPZÉS TAPASZTALATAIRÓL. Kuki Attila Debreceni Egyetem, Informatikai Kar. Összefoglaló A DEBRECENI MÉRNÖK INFORMATIKUS KÉPZÉS TAPASZTALATAIRÓL TEACHING EXPERIENCES OF THE IT ENGINEERING COURSE OF UNIVERSITY OF DEBRECEN Kuki Attila Debreceni Egyetem, Informatikai Kar Összefoglaló A Debreceni

Részletesebben

Mesterséges intelligencia 3. laborgyakorlat

Mesterséges intelligencia 3. laborgyakorlat Mesterséges intelligencia 3. laborgyakorlat Kétszemélyes játékok - Minimax A következő típusú játékok megoldásával foglalkozunk: (a) kétszemélyes, (b) determinisztikus, (c) zéróösszegű, (d) teljes információjú.

Részletesebben

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha ALAPFOGALMAK 1 Á l l a p o t t é r Legyen I egy véges halmaz és legyenek A i, i I tetszőleges véges vagy megszámlálható, nem üres halmazok Ekkor az A= A i halmazt állapottérnek, az A i halmazokat pedig

Részletesebben

A controlling és az értékelemzés összekapcsolása, különös tekintettel a felsőoktatási és a gyakorlati alkalmazhatóságra

A controlling és az értékelemzés összekapcsolása, különös tekintettel a felsőoktatási és a gyakorlati alkalmazhatóságra A controlling és az értékelemzés összekapcsolása, különös tekintettel a felsőoktatási és a gyakorlati alkalmazhatóságra Dr. Szóka Károly Nyugat-magyarországi Egyetem Közgazdaságtudományi Kar Egyetemi docens

Részletesebben

Bevezető. Servlet alapgondolatok

Bevezető. Servlet alapgondolatok A Java servlet technológia Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 03. 06. Servlet Bevezető Igény a dinamikus WEB tartalmakra Előzmény: CGI Sokáig

Részletesebben