Programozási Paradigmák

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

Download "Programozási Paradigmák"

Átírás

1 Programozási Paradigmák Programozási paradigmák, Számítási modellek előadás Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar

2 Programozási Paradigmák Számítási modellek Strukturált programozási paradigma Funkcionális programozási paradigma Logikai programozási paradigma Adatfolyam programozási paradigma Objektumorientált programozási paradigma

3 Programfejlesztés folyamata 3 A tárgy keretein belül a programfejlesztés folyamatából csak a tervezés lépéseivel foglalkozunk Ennek célja a kitűzött feladatot megoldó algoritmus (program) megtervezése Ez további szintekre bontható előzetes tervezés architektúra finom tervezés algoritmusok Ezen a szinten implementációs kérdésekkel nem foglalkozunk, így konkrét nyelvi megvalósítás sem kerül szóba (bár értelemszerűen olyan megoldást részesítünk előnyben, ami illeszkedik a fejlesztés későbbi fázisaihoz) Analízis Tervezés Implementáció Tesztelés

4 4 Számítási modell fogalma Számítási modellek Választási szempontjai Feladat jellege Hardver nyújtotta lehetőségek Részletesen foglalkozunk velük Neumann modell Objektumalapú modell Applikatív modell Predikátumlogikán alapuló modell Adatfolyam modell Nem foglalkozunk velük Turing modell Neurális modell Sejthálózatos modell Szabályalapú modell Stb.

5 5 Számítási modellek jellemzői Számítógép architektúrák és programozási nyelvek egymásnak általában megfeleltethetők, pl.: Neumann-féle számítógépek imperatív nyelvek Redukciós gépek funkcionális nyelvek A számítási modell egy ezek fölött álló fogalom, ami összeköti őket: Programozási nyelveket (nyelvcsaládokat) Számítógép architektúrákat Számítási modellek jellemzői Számítások alapelemei Adatok és rajtuk végrehajtható műveletek Objektumok és nekik küldhető üzenetek Argumentumok és azokon értelmezhető függvények Halmazok elemei és rajtuk deklarált predikátumok Problémaleírás jellege Imperatív problémaleírás hogyan? A feladatot megoldó algoritmust határozzuk meg Deklaratív problémaleírás mit? A megoldáshoz szükséges tényeket és összefüggéseket határozzuk meg

6 6 Számítási modellek jellemzői (2) Számítási modellek jellemzői (folyt.) Végrehajtási szemantika Állapotátmenet szemantika Adatfolyam szemantika Redukciós szemantika SLD-rezolúció Végrehajtás folyamata Közvetlen vezérlésű végrehajtás A végrehajtási sorrendet az utasítások sorrendje határozza meg Adatvezérelt végrehajtás (mohó kiértékelés) Egy-egy művelet azonnal végrehajtódik, ha a művelethez szükséges adatok rendelkezésre állnak Igényvezérelt végrehajtás (lusta kiértékelés) A műveletek csak akkor hajtódnak végre, ha azok a végeredmény eléréséhez szükségessé válnak Modellek különböző absztrakciós szintjei

7 7 Számítási modellek versenye Számítási modelleken alapuló architektúrák megjelenése Logikai alapú számítási modell Funkcionális számítási modell Adatfolyam számítási modell Neumann-féle számítási modell

8 Számítási modellek Neumann-féle modell Applikatív modell Predikátumlogika-alapú modell Adatfolyam modell Objektumalapú modell Programozási Paradigmák

9 9 Neumann-féle számítási modell Strukturált programozási paradigma kapcsolódik hozzá Legrégebbi és napjainkban is leginkább használt modell Általános számítási feladatokra nagyon jól használható Könnyen és hatékonyan implementálható Architekturális megvalósítások Neumann-féle számítógépek Számítások alapelemei az adatok, ahol számítás alatt az adatokon végzett műveleteket értjük Nevesített adatelemeket változónak nevezzük Meghatározott memória vagy regiszterhelyekben helyezkednek el Többszöri értékadás megengedett Változók aktuális értéke múltérzékeny Ez mellékhatásokhoz vezethet Problémaleírás imperatív, mivel a számítási feladatot utasítások sorozatával adjuk meg

10 10 Neumann-féle számítási modell (2) A programot alkotó utasítások végrehajtása állapotátmenet szemantikát követ A végrehajtás során az aktuális állapotot az összes deklarált változó (és további technikai adatok) aktuális értéke határozza meg Végrehajtás vezérlés módja közvetlen vezérlés Alapvetően soros végrehajtást feltételez Kiegészíthető a párhuzamosan futtatható részek megjelölésének lehetőségével (folyamat, szál fogalom) Kommunikáció biztosítása Szinkronizáció biztosítása Adatmegosztás biztosítása Konkrét nyelvi megvalósítások Fortran, Algol, C, Pascal

11 Relációalapú modell 11 Cél: Neumann-féle számítási modell viselkedésének bemutatása Állapottér Elemei tartalmazzák a lehetséges állapotokat Ezek komponensei a modellezni kívánt jellemzők Feladat Az állapottér minden pontjához hozzárendel egy vagy több pontot Példáinkban általában azt feltételezzük, hogy csak egy pontot rendelünk hozzá Nem feltétlenül determinisztikus, bár a gyakorlatban általában ezt feltételezzük (1, 4, 1) (1, 4, 2) (1, 4, 3) (1, 5, 1) (1, 5, 2) (1, 5, 3) (2, 4, 1) (2, 4, 2) (2, 4, 3) (2, 5, 1) (2, 5, 2) (,, )

12 Relációalapú modell (2) 12 Program Időben dinamikus folyamat Futását állapotok sorozataként tudjuk egyszerűen leírni Az állapottér minden pontjához hozzárendel egy ilyen sorozatot Működése nem feltétlenül determinisztikus Programfüggvény A gyakorlatban a program futásának menete lényegtelen, csak a kiinduló és a vég állapot lényeges számunkra Egy program programfüggvénye hozzárendeli a kiinduló állapothoz a vég állapotot (ha van ilyen) (1, 4, 1) (1, 4, 2) (1, 4, 3) (1, 5, 1) (1, 5, 2) (1, 5, 3) (2, 4, 1) (2, 4, 2) (2, 4, 3) (2, 5, 1) (2, 5, 2) (,, )

13 Relációalapú modell (3) 13 Feladat programfüggvény Látjuk, hogy a programfüggvény ugyanolyan típusú reláció, mint a feladat volt (az állapottér egy pontjához hozzárendelik az állapottér egy vagy több pontját) Ennek segítségével egyszerű kapcsolatot teremthetünk egy adott feladat és egy adott program között Megoldás Egy programot egy feladat megoldásának tekintjük, ha bármelyik lehetséges bemenethez a programfüggvény a feladat által meghatározott állapotokat rendeli (vagy annál szűkebb halmazt) (1, 4, 1) (1, 4, 2) (1, 4, 3) (1, 5, 1) (1, 5, 2) (1, 5, 3) (2, 4, 1) (2, 4, 2) (2, 4, 3) (2, 5, 1) (2, 5, 2) (,, )

14 14 Strukturált programozás paradigma Strukturált programnak tekintjük azokat a programokat, amelyek csak a megengedett elemi programokat tartalmazzák a megengedett programkonstrukciók alkalmazásával Relációs modellben értelmezhető elemi programok üres program hibás program/törlődés értékadás (állapot változtatás) Megengedett konstrukciók szekvencia elágazás ciklus Bizonyítható, hogy a fenti szabályok megtartásával minden algoritmussal megoldható feladatra adható megoldás

15 15 Szekvencia Egy programot közvetlenül egy másik után végzünk el S (, ) 1 S (, ) 2 (, ) Jelölése struktogramban S 1 S 2 Általunk használt pszeudokód S 1 S 2

16 16 Elágazás Adott N darab feltétel program páros, az igaz feltételekhez tartozó programok végrehajtása (, ) Gyakorlatban ennek csak egy egyszerűsítésével foglalkozunk, ahol N=2, és a feltételek diszjunktak Jelölése struktogramban S 1 S 1 (, ) Általunk használt pszeudokód L (, ) Ha L akkor S 1 Különben S 2 elágazás vége (, ) S 2 (, ) (, ) (, ) S 2 S 2 (, ) S 1 (, ) (, ) (, ) (, )

17 17 Ciklus Megadott feltétel teljesülése esetén egy program (ciklusmag) végrehajtása (L?) S (L?) S (L?) S (L?) S (, ) (, ) (, ) Jelölése struktogramban L S A programozási nyelvek általában többféle ciklust ismernek, ennek megfelelően a pszeudokódban is többfélét használunk: (, ) ciklus amíg L S ciklus vége ciklus S ciklus amíg L ciklus i i 0 -től i 1 -ig S(i) ciklus vége Mindhárom egyszerűen helyettesíthető az elsővel

18 Összetett feladatok megoldása 18 Funkció-orientált programtervezés Levezetés Analóg programozás Moduláris programozás Analóg levezetés Visszavezetés Levezetés A levezetés egy olyan módszer, amelyik a feladat megoldó programját lépésről lépésre alakítja át megengedett megoldássá, és ehhez a nevezetes programszerkezeteket használja fel A feladat triviális megoldásából indulunk ki, és folyamatosan felbontjuk a strukturált programozásnál megismert szerkezetek segítségével. Véget ér, ha egy megengedett programhoz érünk A levezetés menete biztosítja, hogy ez a program helyes lesz

19 Összetett feladatok megoldása 19 Funkció-orientált programtervezés Levezetés Analóg programozás Moduláris programozás Analóg levezetés Visszavezetés Analóg programozás A gyakorlatban általánosan használt technika Alapja, hogy ha olyan feladatot kell megoldanunk, amelyhez hasonlóhoz rendelkezünk már megoldással, akkor az előző megoldás módosításával próbáljuk előállítani a programot Ez nyilván számos megoldott feladat ismeretét igényli és nagy tapasztalatot, szakértelmet (gyakorlást)

20 Összetett feladatok megoldása 20 Funkció-orientált programtervezés Levezetés Analóg programozás Moduláris programozás Analóg levezetés Visszavezetés Analóg levezetés Az analóg programozási technikák jelentősen eltérhetnek egymástól aszerint, hogy milyen mértékben hagyatkoznak a már ismert megoldás levezetésére Az analóg levezetés alapelve, hogy a megoldandó feladat levezetését átvizsgáljuk, és az ott hozott döntéseket az új levezetés során felülvizsgáljuk, esetenként átvesszük

21 Összetett feladatok megoldása 21 Funkció-orientált programtervezés Levezetés Analóg programozás Moduláris programozás Analóg levezetés Visszavezetés Visszavezetés Az analóg levezetéshez képest jelentős különbséget jelent, hogy ebben az esetben nem a mintaprogram előállítási folyamatait ismételjük meg, hanem magát a mintaprogramot adaptáljuk az új feladatnak megfelelően Ez a technika kellő elővigyázatossággal a gyakorlatban jól használható Ehhez természetesen szükség van már levezett mintaprogramok gyűjteményére lásd programozási tételek

22 Összetett feladatok megoldása 22 Funkció-orientált programtervezés Levezetés Analóg programozás Moduláris programozás Analóg levezetés Visszavezetés Moduláris programozás A teljes feladatot részekre bontjuk, majd ezeket a visszavezetés módszerével megoldjuk A kész modulokból lehet összeépíteni egy működő új rendszert Minden felbontással egy alacsonyabb absztrakciós szintre léphetünk A modulok egymástól minél kevésbé függjenek A program felépítése így egyszerűbb és egyszerűbben karbantarthatóvá válik

23 Számítási modellek Neumann-féle modell Applikatív modell Predikátumlogika-alapú modell Adatfolyam modell Objektumalapú modell Programozási Paradigmák

24 24 Applikatív számítási modell Funkcionális programozási paradigma kapcsolható hozzá Az első funkcionális nyelvek alapja a λ-kalkulus. Ez alapvetően lambda kifejezésekkel dolgozik, amelyek lehetnek: absztrakció: λx.(x*x+1) applikáció (alkalmazás): λx.(x*x+1) 5 Ezek azonosan kezelhetők más objektumokkal (lehet paraméter, stb.) Számítások alapelemei argumentumok és függvények Nevek nem változókat azonosítanak, hanem kifejezések neveit Egy függvény lehet egy másik függvény paramétere és értéke is Problémaleírás deklaratív Típusdefiníciók (alaptípusok, párok, n-esek, listák) függvénydefiníciók függvény neve függvény paraméterei kifejezés érték, formális paraméter, absztrakció, applikáció Egy kiértékelhető kezdő kifejezés

25 25 Applikatív számítási modell (2) A végrehajtási szemantika a redukció Redukciós szabályok alkalmazása (behelyettesítés, átnevezés) Kiértékelés sorrendje nem mindig kötött Végrehajtás vezérlése lehet Mohó kiértékelés: a függvény hívásakor az argumentumok azonnal kiértékelődnek (ezt használják a szigorú funkcionális nyelvek) Lusta kiértékelés: a függvény argumentuma csak akkor értékelődik ki, ha arra ténylegesen szükség van (normál formát előállítja) Egyszerű funkcionális nyelvek Nincsenek mellékhatások A program végrehajtása nem feltétlenül szekvenciális Használhatósága Nyelvek szintaxisa közeli a matematikai modellekhez Egyszerű helyességbizonyíthatóság Mellékhatások hiánya miatt jól párhuzamosítható kiértékelés Gyakorlati nehézségek (I/O kezelés, monádok stb.) Konkrét nyelvi megvalósítások: Scheme, F#,

26 26 Funkcionális programozás példa Egy rendezést megvalósító funkcionális program(részlet) függvények rendez [ ] = [ ] rendez [első : többi] = egyesít ( rendez ( válogat (x x <= első) többi ) ) első ( rendez ( válogat (x x > első) többi ) ) válogat feltétel [ ] = [ ] válogat feltétel [ x : y ] ha (feltétel) = [ x : válogat feltétel y] különben = válogat feltétel y Kezdőkifejezés Start = rendez [ 5, 8, 9, 1, 7, 6 ]

27 Programozási Paradigmák Számítási modellek Neumann-féle modell Applikatív modell Predikátumlogika-alapú modell Adatfolyam modell Objektumalapú modell

28 28 Predikátumlogikán alapuló modell Logikai programozási paradigma kapcsolódik hozzá Számítások alapelemei tények és szabályok A logikai programozás alapja a Horn logika Horn-klóz: egy állítás igaz, ha zéró vagy több más feltétel igaz Következmény Feltétel 1 Feltétel 2... Problémaleírás deklaratív Tények felsorolása (feltétel nélküli klóz) Szabályok felsorolása (feltétellel rendelkező klóz) Célállítás meghatározása Következtető motor a szabályok és tények alapján dönt Pozitív válasz: a célállítás kikövetkeztethető a megadott tényekből Negatív válasz: a kezdeti cél nem következtethető ki Nincs válasz: végtelen ciklus vagy túl nagy a probléma tér Lehetséges kérdés típusok Egy feltevés igaz-e vagy sem Létezik-e valami ami a feltételnek megfelel Stb.

29 Predikátumlogikán alapuló modell (2) A végrehajtás szemantikája az SLD-rezolúció Igazolhat egy kérdést a szabályok és tények közötti kereséssel Általában indirekt bizonyítást végez Levezetési szabályokat alkalmaz addig, amíg ellentmondást talál, vagy további átírás nem lehetséges A pontos szemantikát a következtető gép határozza meg A végrehajtás vezérlési módja lusta kiértékelés Mintaillesztés: megpróbál a kérdésnek megfelelő mintákat keresni a tények és szabályok között ha az aktuális állapot csak konstansokat tartalmaz, akkor eldöntés egyébként megpróbál behelyettesíteni (változóknak értéket ad) Visszalépés: ha az adott úton elakad, akkor visszalépés (backtrack) A gyakorlatban jóval összetettebb (tagadás, vágás, rekurzió, stb.) Használhatósága Szakértői rendszerek, mesterséges intelligencia Nagy rendszerek esetén nehezen áttekinthető Konkrét nyelvi megvalósítások Prolog, egyéb Prolog leszármazottak szenasi.sandor@nik.uni-obuda.hu 29

30 30 Logikai programozás példa Rokonsági kapcsolatokon alapuló szabályok (a szülő nem Horn klóz!) Szabályok Szülő(X,Y) Apa(X,Y) Anya(X,Y) Testvér(X,Y) Szülő(Z, X) Szülő(Z, Y) Tények Anya(Klári, Jancsi) Apa(Péter, Jancsi) Apa(Péter, Ilona) Anya(Klári, Zoltán) Kérdések? Testvér(Jancsi, Ilona) Testvér Jancsi és Ilona?? Testvér(?, Ilona) Kik Ilona testvérei (ha vannak)?? Testvér(?,?) Kik testvérek (ha vannak)?

31 Számítási modellek Neumann-féle modell Applikatív modell Predikátumlogika-alapú modell Adatfolyam modell Objektumalapú modell Programozási Paradigmák

32 32 Adatfolyam-elvű számítási modell Adatfolyam-elvű programozási paradigmához kapcsolódik Az adaton van a hangsúly, a műveletek másodlagosak Számítások alapelemei az adatok és a hozzájuk rendelt adatműveletek Problémaleírás imperatív (más paradigmák) A végrehajtási szemantika az adatfolyam szemantika Adatok kiértékelése rendelkezésre álláskor Adatvezérelt (mohó kiértékelés) A bemenő adatok áthaladnak az adatáramlási diagramon, ennek eredményeképpen jönnek létre a kimenő adatok

33 33 Adatfolyamelvű számítási modell (2) Program felépítése Bemenet, kimenet Kettő közötti kapcsolatok (adatfolyam) kialakítása Tipikus felhasználási kör Adatgyűjtő eszközök Műszervezérlés Ipari automatizálás Jellemzői Jól párhuzamosítható Bizonyos feladatok látványosan leírhatóak segítségével Konkrét nyelv LabVIEW

34 Számítási modellek Neumann-féle modell Applikatív modell Predikátumlogika-alapú modell Adatfolyam modell Objektumalapú modell Programozási Paradigmák

35 35 Objektumalapú számítási modell Objektumorientált programozási paradigma kapcsolódik hozzá Számítások alapelemei az objektumok, amelyek egy előre definiált üzenetkészletet tudnak feldolgozni. Szintén adatorientált nyelv Az adatok és a rajtuk végezhető műveleteket rendeli össze objektumokká Az objektumok között üzenetek áramlanak Problémaleírás ebben az esetben is imperatív, mivel a megoldás algoritmusát kell megadnunk Utasítások végrehajtása állapotátmenet szemantikát követ Megadott üzenetsorozatot kell végrehajtani a rendelkezésre álló objektumokkal Nem feltételez soros végrehajtást

36 36 Objektumorientált paradigma főbb jellemzői Cél: minden adat és hozzátartozó funkció egy helyen OOP nyelvek jellemzői Modularizált Áttekinthető, karbantartható Gyorsabb és biztonságosabb szoftverfejlesztés Újrafelhasználhatóságot támogatja Alapfogalmak Objektum Mezők Metódusok Speciális metódusok Osztály Egy adott objektumtípust határoz meg Üzenet Objektumok közötti kommunikáció Példány osztály szintű tagok

37 37 Objektumorientált paradigma alapelvei Absztrakció Elemek meghatározása Elemek kapcsolatainak meghatározása Egységbezárás Adatok és műveletek szoros egysége Objektum felelős a feladatai elvégzéséért Adatrejtés Privát adattagok Nyilvános adatok Öröklés Meglévő típus alapján készíthetünk új típust Polimorfizmus Ugyanarra az üzenetre megvalósítástól függően másképp reagálhatnak különböző objektumok Kódújrafelhasználás

38 38 Programtervezési minták Gyakran előforduló problémákra adnak jól kidolgozott, a gyakorlatban már bevált válaszokat Tervezési idő csökkentése Hatékonyság és minőség növelése Fejlesztők által általánosan ismertek A minták vonatkozhatnak Objektumok közötti kapcsolatokra Osztályok közötti kapcsolatokra Egy lehetséges csoportosítás Létrehozási minták Objektumpéldányok létrehozására vonatkoznak Szerkezeti minták Objektumok közötti kapcsolatok Viselkedési minták Objektumok működésére vonatkozó minták

39 39 Irodalomjegyzék Javasolt/felhasznált irodalom Sergyán Szabolcs, Vámossy Zoltán és Miklós Árpád diasorozatai, Óbudai Egyetem, AAO tárgy Sima, Fountain, Kacsuk: Korszerű számítógép-architektúrák tervezésitérmegközelítésben, SZAK Kiadó, 1998 Fóthi Á.: Bevezetés a programozáshoz, ELTE Eötvös Kiadó, 2005 Pap, Szlávi, Zsakó: μlógia19 Módszeres programozás: Programozási tételek, ELTE TTK, 2002 Gregorics Tibor: A programozás alapjai Tervezés Papp Zoltán: Lambda-kalkulus Lehet Csató: Logikai és funkcionális programozás Magyar Attila: LabVIEW Túri József Attila: A logikai programozás és alkalmazásai a Prolog programozási nyelvben

Programozási tételek. PPT 2007/2008 tavasz.

Programozási tételek. PPT 2007/2008 tavasz. Programozási tételek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Strukturált programozás paradigma Alapvető programozási tételek Összetett programozási tételek Programozási

Részletesebben

Számítógép architektúra

Számítógép architektúra Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Számítógép architektúra Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Irodalmi források Cserny L.: Számítógépek

Részletesebben

Adatstruktúrák, algoritmusok, objektumok

Adatstruktúrák, algoritmusok, objektumok Adatstruktúrák, algoritmusok, objektumok 1. Számítási modellek és programozási paradigmák 1 Modellezési alapelvek A modellezés célja A modellezés célja a világ minél teljesebb körő megértése Elemek, folyamatok,

Részletesebben

Objektumorientált paradigma és a programfejlesztés

Objektumorientált paradigma és a programfejlesztés Objektumorientált paradigma és a programfejlesztés 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 Objektumorientált

Részletesebben

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs Programozás I. 1. előadás: Algoritmusok alapjai Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2015. szeptember 7. Sergyán

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

Algoritmusok, adatszerkezetek, objektumok

Algoritmusok, adatszerkezetek, objektumok Algoritmusok, adatszerkezetek, objektumok 1. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. szeptember 14. Sergyán (OE NIK) AAO 01 2011.

Részletesebben

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Programozási nyelvek a közoktatásban alapfogalmak I. előadás Programozási nyelvek a közoktatásban alapfogalmak I. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig)

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

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor. Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb

Részletesebben

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10. Programozás I. 1. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2012. szeptember 10. Sergyán (OE NIK) Programozás I. 2012. szeptember 10. 1 /

Részletesebben

Programozás II. előadás

Programozás II. előadás Nem összehasonlító rendezések Nem összehasonlító rendezések Programozás II. előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar Programozás II. 2 Rendezés

Részletesebben

Programozás alapjai (ANSI C)

Programozás alapjai (ANSI C) Programozás alapjai (ANSI C) 1. Előadás vázlat A számítógép és programozása Dr. Baksáné dr. Varga Erika adjunktus Miskolci Egyetem, Informatikai Intézet Általános Informatikai Intézeti Tanszék www.iit.uni-miskolc.hu

Részletesebben

Programozási nyelvek 6. előadás

Programozási nyelvek 6. előadás Programozási nyelvek 6. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig) Számítási modell (hogyan

Részletesebben

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás Elemi programok Definíció Az S A A program elemi, ha a A : S(a) { a, a, a, a,..., a, b b a}. A definíció alapján könnyen látható, hogy egy elemi program tényleg program. Speciális elemi programok a kövekezők:

Részletesebben

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10. Programozás I. 1. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2012. szeptember 10. Sergyán (OE NIK) Programozás I. 2012. szeptember 10. 1 /

Részletesebben

Rekurzió. Működése, programtranszformációk. Programozás II. előadás. Szénási Sándor.

Rekurzió. Működése, programtranszformációk. Programozás II. előadás.   Szénási Sándor. Rekurzió Működése, programtranszformációk előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Rekurzió Rekurzió alapjai Rekurzív

Részletesebben

Eljárások és függvények

Eljárások és függvények Eljárások és függvények Jegyzet Összeállította: Faludi Anita 2012. Bevezetés Ez a jegyzet elsősorban azoknak a diákoknak készült, akiket tanítok, ezért a jegyzet erőteljesen hiányos. Az olvasó egy percig

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

Java programozási nyelv

Java programozási nyelv Java programozási nyelv 2. rész Vezérlő szerkezetek 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/23 Tartalomjegyzék

Részletesebben

Összetett programozási tételek

Összetett programozási tételek Összetett programozási tételek 3. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. szeptember 19. Sergyán (OE NIK) AAO 03 2011. szeptember

Részletesebben

Egyszerű programozási tételek

Egyszerű programozási tételek Egyszerű programozási tételek 2. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. szeptember 15. Sergyán (OE NIK) AAO 02 2011. szeptember 15.

Részletesebben

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor Gráfok 2. Legrövidebb utak, feszítőfák előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar Legrövidebb utak keresése Minimális feszítőfa keresése Gráfok 2

Részletesebben

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai A programozás alapjai 1 1. előadás Híradástechnikai Tanszék Amiről szólesz: A tárgy címe: A programozás alapjai A számítógép részegységei, alacsony- és magasszintű programnyelvek, az imperatív programozási

Részletesebben

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } Funkcionális és logikai programozás { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi ` 1 Jelenlét: Követelmények, osztályozás Az első 4 előadáson

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

Programozási Módszertan definíciók, stb.

Programozási Módszertan definíciók, stb. Programozási Módszertan definíciók, stb. 1. Bevezetés Egy adat típusát az adat által felvehető lehetséges értékek halmaza (típusérték halmaz, TÉH), és az ezen értelmezett műveletek (típusműveletek) együttesen

Részletesebben

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás.  Szénási Sándor. B-fa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar B-fa Felépítése Beszúrás művelete Törlés

Részletesebben

Informatika tanítási módszerek

Informatika tanítási módszerek Informatika tanítási módszerek Programozás tanítási módszerek módszeres, algoritmusorientált; adatorientált; specifikációorientált; feladattípus-orientált; nyelvorientált; utasításorientált; matematikaorientált;

Részletesebben

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6. Programkonstrukciók Definíció Legyen π feltétel és S program A-n. A DO A A relációt az S-ből a π feltétellel képezett ciklusnak nevezzük, és (π, S)-sel jelöljük, ha 1. a / [π] : DO (a) = { a }, 2. a [π]

Részletesebben

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje 1. Alapfogalmak 1.1. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt

Részletesebben

Visszalépéses keresés

Visszalépéses keresés Visszalépéses keresés Backtracking előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Alapvető működése Továbbfejlesztési

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

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Programozás I. 3. előadás Egyszerű programozási tételek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2015. szeptember

Részletesebben

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar PROGRAMOZÁS tantárgy Gregorics Tibor egyetemi docens ELTE Informatikai Kar Követelmények A,C,E szakirány B szakirány Előfeltétel Prog. alapismeret Prog. alapismeret Diszkrét matematika I. Óraszám 2 ea

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

Adatstruktúrák, algoritmusok, objektumok

Adatstruktúrák, algoritmusok, objektumok Adatstruktúrák, algoritmusok, objektumok 2. Az objektumorientált programozási paradigma 1 A szoftverkrízis Kihívások a szoftverfejlesztés módszereivel szemben 1. A szoftveres megoldások szerepe folyamatosan

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 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

Adatstruktúrák Algoritmusok Objektumok

Adatstruktúrák Algoritmusok Objektumok Adatstruktúrák Algoritmusok Objektumok A számítógépes problémamegoldás modellezésének módszerei. Programozási elvek és módszerek: imperatív, strukturált, moduláris, objektumorientált programozás. Programozási

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

Programozási módszertan

Programozási módszertan 1 Programozási módszertan 1. Alapfogalmak Feldhoffer Gergely 2012 Féléves tananyag terve 2 Program helyességének bizonyítása Reprezentáció Logikai-matematikai eszköztár Programozási tételek bizonyítása

Részletesebben

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból ÜTEMTERV Programozás-elmélet c. tárgyhoz (GEMAK233B, GEMAK233-B) BSc gazdaságinformatikus, programtervező informatikus alapszakok számára Óraszám: heti 2+0, (aláírás+kollokvium, 3 kredit) 2019/20-es tanév

Részletesebben

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs Programozás I. 3. előadás Egyszerű programozási tételek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2015. szeptember

Részletesebben

A félév során előkerülő témakörök

A félév során előkerülő témakörök A félév során előkerülő témakörök rekurzív algoritmusok rendező algoritmusok alapvető adattípusok, adatszerkezetek, és kapcsolódó algoritmusok dinamikus programozás mohó algoritmusok gráf algoritmusok

Részletesebben

FUNKCIONÁLIS PROGRAMOZÁS

FUNKCIONÁLIS PROGRAMOZÁS FUNKCIONÁLIS PROGRAMOZÁS A funkcionális programozás néhány jellemzője Funkcionális programozás 1-2 Funkcionális, más néven applikatív programozás Funkcionális = függvényalapú, függvényközpontú Applikatív

Részletesebben

4. Programozási nyelvek osztályozása. Amatőr és professzionális

4. Programozási nyelvek osztályozása. Amatőr és professzionális 4. Programozási nyelvek osztályozása. Amatőr és professzionális programozási nyelvek. Számítási modellek (Neumann-elvű, automataelvű, funkcionális, logikai). Programozási nyelvekkel kapcsolatos fogalmak

Részletesebben

Rekurzió. Dr. Iványi Péter

Rekurzió. Dr. Iványi Péter Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(

Részletesebben

Interfészek. Programozás II. előadás. Szénási Sándor.

Interfészek. Programozás II. előadás.  Szénási Sándor. Interfészek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Polimorfizmus áttekintése Interfészek Interfészek alkalmazása

Részletesebben

Algoritmusok. Dr. Iványi Péter

Algoritmusok. Dr. Iványi Péter Algoritmusok Dr. Iványi Péter Egyik legrégebbi algoritmus i.e. IV század, Alexandria, Euklidész két természetes szám legnagyobb közös osztójának meghatározása Tegyük fel, hogy a és b pozitív egész számok

Részletesebben

Információtartalom vázlata

Információtartalom vázlata 1. Az Ön cégétől árajánlatot kértek egy üzleti portál fejlesztésére, amelynek célja egy online áruház kialakítása. Az árajánlatkérés megválaszolásához munkaértekezletet tartanak, ahol Önnek egy vázlatos

Részletesebben

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum. Programozási tételek Programozási feladatok megoldásakor a top-down (strukturált) programtervezés esetén három vezérlési szerkezetet használunk: - szekvencia - elágazás - ciklus Eddig megismertük az alábbi

Részletesebben

Algoritmizálás, adatmodellezés tanítása 6. előadás

Algoritmizálás, adatmodellezés tanítása 6. előadás Algoritmizálás, adatmodellezés tanítása 6. előadás Tesztelési módszerek statikus tesztelés kódellenőrzés szintaktikus ellenőrzés szemantikus ellenőrzés dinamikus tesztelés fekete doboz módszerek fehér

Részletesebben

Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás. Szénási Sándor

Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás.  Szénási Sándor Láncolt listák Egyszerű, rendezett és speciális láncolt listák előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Láncolt

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

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás Algoritmusok Tervezése 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás Mi az algoritmus? Lépések sorozata egy feladat elvégzéséhez (legáltalánosabban) Informálisan algoritmusnak nevezünk bármilyen jól definiált

Részletesebben

Programfejlesztési Modellek

Programfejlesztési Modellek Programfejlesztési Modellek Programfejlesztési fázisok: Követelmények leírása (megvalósíthatósági tanulmány, funkcionális specifikáció) Specifikáció elkészítése Tervezés (vázlatos és finom) Implementáció

Részletesebben

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Python Változók Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Név Érték Típus Memóriacím A változó értéke (esetleg más attribútuma is) a program futása alatt

Részletesebben

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat

Részletesebben

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 68 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 3. ELŐADÁS - PROGRAMOZÁSI TÉTELEK 2014 Bánsághi Anna 1 of 68 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

Részletesebben

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int

Részletesebben

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és

Részletesebben

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK 1. ELÁGAZÁSOK ÉS CIKLUSOK SZERVEZÉSE Az adatszerkezetek mellett a programok másik alapvető fontosságú építőkövei az ún. algoritmikus szerkezetek.

Részletesebben

Oktatási segédlet 2014

Oktatási segédlet 2014 Oktatási segédlet 2014 A kutatás a TÁMOP 4.2.4.A/2-11-1-2012- 0001 azonosító számú Nemzeti Kiválóság Program Hazai hallgatói, illetve kutatói személyi támogatást biztosító rendszer kidolgozása és működtetése

Részletesebben

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19. Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19. Programkészítés Megrendelői igények begyűjtése Megoldás megtervezése (algoritmuskészítés)

Részletesebben

Informatika Rendszerek Alapjai

Informatika Rendszerek Alapjai Informatika Rendszerek Alapjai Dr. Kutor László Alapfogalmak Információ-feldolgozó paradigmák Analóg és digitális rendszerek jellemzői Jelek típusai Átalakítás rendszerek között http://uni-obuda.hu/users/kutor/

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

A PhysioBank adatmegjelenítő szoftvereinek hatékonysága

A PhysioBank adatmegjelenítő szoftvereinek hatékonysága A PhysioBank adatmegjelenítő szoftvereinek hatékonysága Kaczur Sándor kaczur@gdf.hu GDF Informatikai Intézet 2012. november 14. Célok, kutatási terv Szabályos EKG-felvétel: P, Q, R, S, T csúcs Anatómiai

Részletesebben

Programozási technológia 1.

Programozási technológia 1. ngleton Sin ELTE-IK + st: boo ol Programozási technológia 1. 2. gyakorlat: Programozási paradigmák, az objektumorientált tált programozás Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Kiterjesztések sek szemantikája

Kiterjesztések sek szemantikája Kiterjesztések sek szemantikája Példa D Integer = {..., -1,0,1,... }; D Boolean = { true, false } D T1... T n T = D T 1... D Tn D T Az összes függvf ggvény halmaza, amelyek a D T1,..., D Tn halmazokból

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

AZ ALGORITMUS. az eredményt szolgáltatja

AZ ALGORITMUS. az eredményt szolgáltatja ALGORITMUSOK AZ ALGORITMUS Az algoritmus problémamegoldásra szolgáló elemi lépések olyan sorozata, amely a következő jellemzőkkel bír: Véges: véges számú lépés után befejeződik, és eredményt szolgáltat

Részletesebben

S0-02 Típusmodellek (Programozás elmélet)

S0-02 Típusmodellek (Programozás elmélet) S0-02 Típusmodellek (Programozás elmélet) Tartalom 1. Absztrakt adattípus 2. Adattípus specifikációja 3. Adattípus osztály 4. Paraméterátadás 5. Reprezentációs függvény 6. Öröklődés és polimorfizmus 7.

Részletesebben

Haladó rendezések. PPT 2007/2008 tavasz.

Haladó rendezések. PPT 2007/2008 tavasz. Haladó rendezések szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Alapvető összehasonlító rendezések Shell rendezés Kupacrendezés Leszámláló rendezés Radix rendezés Edényrendezés

Részletesebben

NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE. Szekvenciális programok kategóriái. Hoare-Dijkstra-Gries módszere

NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE. Szekvenciális programok kategóriái. Hoare-Dijkstra-Gries módszere Szekvenciális programok kategóriái strukturálatlan strukturált NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE Hoare-Dijkstra-Gries módszere determinisztikus valódi korai nem-determinisztikus általános fejlett

Részletesebben

Objektumorientált paradigma

Objektumorientált paradigma Objektumorientált paradigma Bevezető Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Objektumorientált paradigma BEVEZETŐ FOGALMAK 2/77 Bevezetés - Fogalom

Részletesebben

Kölcsönhatás diagramok

Kölcsönhatás diagramok Kölcsönhatás diagramok Célkitűzés Olvasni tudják az alap UML kölcsönhatás diagramok (kommunikáció és szekvencia) diagramok jelöléseit. 2 Bevezetés Miért léteznek az objektumok? Azért, hogy a rendszer valamilyen

Részletesebben

S01-8 Komponens alapú szoftverfejlesztés 2

S01-8 Komponens alapú szoftverfejlesztés 2 S01-8 Komponens alapú szoftverfejlesztés 2 Tartalom 1. Komponens megvalósítása: kölcsönhatás modell, viselkedési vagy algoritmikus modell és strukturális modell. 2. Komponens megtestesítés: finomítás és

Részletesebben

Térinformatikai algoritmusok Elemi algoritmusok

Térinformatikai algoritmusok Elemi algoritmusok Cserép Máté Analóg programozásnak nevezzük azt, amikor egy feladat megoldásához egy már ismert és megoldott feladat megoldását használjuk fel. Általában nem pontosan ugyanazt a feladatot oldottuk meg korábban,

Részletesebben

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI 1 A digitális áramkörökre is érvényesek a villamosságtanból ismert Ohm törvény és a Kirchhoff törvények, de az elemzés és a tervezés rendszerint nem ezekre épül.

Részletesebben

Algoritmizálás és adatmodellezés tanítása 1. előadás

Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az

Részletesebben

Az informatika kulcsfogalmai

Az informatika kulcsfogalmai Az informatika kulcsfogalmai Kulcsfogalmak Melyek azok a fogalmak, amelyek nagyon sok más fogalommal kapcsolatba hozhatók? Melyek azok a fogalmak, amelyek más-más környezetben újra és újra megjelennek?

Részletesebben

Térinformatikai algoritmusok Elemi algoritmusok

Térinformatikai algoritmusok Elemi algoritmusok Cserép Máté 2016. szeptember 14. Analóg programozásnak nevezzük azt, amikor egy feladat megoldásához egy már ismert és megoldott feladat megoldását használjuk fel. Általában nem pontosan ugyanazt a feladatot

Részletesebben

Programozási nyelvek (ADA)

Programozási nyelvek (ADA) Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 1. előadás Hasznos weboldal http://kto.web.elte.hu Program felépítése Programegységek (program unit) eljárások (procedure)

Részletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása A fordítóprogramok szerkezete Forrásprogram Forrás-kezelő (source handler) Kódoptimalizálás Fordítóprogramok előadás (A,C,T szakirány) Lexikális elemző (scanner) Szintaktikus elemző (parser) Szemantikus

Részletesebben

Rendezések. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar október 24.

Rendezések. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar október 24. Rendezések 8. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. október 24. Sergyán (OE NIK) AAO 08 2011. október 24. 1 / 1 Felhasznált irodalom

Részletesebben

Számítógép architektúrák záróvizsga-kérdések február

Számítógép architektúrák záróvizsga-kérdések február Számítógép architektúrák záróvizsga-kérdések 2007. február 1. Az ILP feldolgozás fejlődése 1.1 ILP feldolgozási paradigmák (Releváns paradigmák áttekintése, teljesítmény potenciáljuk, megjelenési sorrendjük

Részletesebben

OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_01-1 - E jegyzet másolata

Részletesebben

A programozás alapjai

A programozás alapjai A programozás alapjai Változók A számítógép az adatokat változókban tárolja A változókat alfanumerikus karakterlánc jelöli. A változóhoz tartozó adat tipikusan a számítógép memóriájában tárolódik, szekvenciálisan,

Részletesebben

Operációs rendszerek gyak.

Operációs rendszerek gyak. Operációs rendszerek gyak. AWK programozás Hirling Dominik Szegedi Tudományegyetem AWK AWK: a pattern scanning and processing language mintaelemző-és feldolgozó nyelv bármilyen szövegből minták alapján

Részletesebben

Szoftver-technológia II. Modulok és OOP. Irodalom

Szoftver-technológia II. Modulok és OOP. Irodalom Modulok és OOP Irodalom Steven R. Schach: Object Oriented & Classical Software Engineering, McGRAW-HILL, 6th edition, 2005, chapter 7. 2 Modulok és objektumok Modulok Lexikálisan folytonos utasítás sorozatok,

Részletesebben

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat Formális nyelvek a gyakorlatban Formális nyelvek, 1 gyakorlat Segédanyagok Célja: A programozási nyelvek szintaxisának leírására használatos eszközök, módszerek bemutatása Fogalmak: BNF, szabály, levezethető,

Részletesebben

Szoftver-mérés. Szoftver metrikák. Szoftver mérés

Szoftver-mérés. Szoftver metrikák. Szoftver mérés Szoftver-mérés Szoftver metrikák Szoftver mérés Szoftver jellemz! megadása numerikus értékkel Technikák, termékek, folyamatok objektív összehasonlítása Mér! szoftverek, programok CASE eszközök Kevés szabványos

Részletesebben

III. Alapfogalmak és tervezési módszertan SystemC-ben

III. Alapfogalmak és tervezési módszertan SystemC-ben III. Alapfogalmak és tervezési módszertan SystemC-ben A SystemC egy lehetséges válasz és egyben egyfajta tökéletesített, tovább fejlesztett tervezési módszertan az elektronikai tervezés területén felmerülő

Részletesebben

Gráfok 1. Tárolási módok, bejárások. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Gráfok 1. Tárolási módok, bejárások. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor Gráfok 1. Tárolási módok, bejárások előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Gráfok 1. Tárolási módok Szélességi

Részletesebben

Adatstruktúrák, algoritmusok, objektumok

Adatstruktúrák, algoritmusok, objektumok Adatstruktúrák, algoritmusok, objektumok 3. Az objektumorientált paradigma alapelemei Objektum Osztály Példányosítás A konstruktor és a destruktor Osztályok közötti kapcsolatok Miklós Árpád, BMF NIK, 2006

Részletesebben

OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat. Elemzés 1

OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat. Elemzés 1 OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat Különféle élőlények egy túlélési versenyen vesznek részt. A lények egy pályán haladnak végig, ahol váltakozó terep viszonyok vannak.

Részletesebben

Webprogramozás szakkör

Webprogramozás szakkör Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás

Részletesebben

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor A szotverarchitektúra fogalma A szoftverarchitektúra nagyon fiatal diszciplína. A fogalma még nem teljesen kiforrott. Néhány definíció: A szoftverarchitektúra

Részletesebben