ELTE IK, Programtervező BSC Szoftvertechnológia 1. gyakorlat: Programozási paradigmák
|
|
- Veronika Magyar
- 7 évvel ezelőtt
- Látták:
Átírás
1 ELTE IK, Programtervező BSC 1. gyakorlat: Giachetta Roberto Feladata Egy szoftvernek, mint terméknek gyártási technológiára van szüksége, amely garantálja a program funkcióit, minőségét, költségét és határidejét Wikipédia: a szoftvertechnológia a szoftverek rendszerezett, felügyelt, minősített fejlesztése, működtetése és karbantartása Ezek a szoftverek összetett programrendszerek, amelyek a méretből adódóan nagy bonyolultságúak, ezért a kód önmagában nem áttekinthető rendszerint csapatmunkában készülnek, mert az önálló fejlesztés túl hosszadalmas lenne hosszú élettartamúak, amely során folyamatosan karban kell tartani őket, illetve változtatni kell funkcióikat ELTE IK, 1:2 A projekt A szoftverterméket projektnek, előállításának felügyeletét projektmenedzselésnek nevezzük, a felelős személyt pedig projektmenedzsernek, neki kell biztosítania, hogy: a szoftver megfelel az előírt minőségnek, elkészül a megadott határidőre a megadott költségkereten belül, ehhez szerveznie, irányítania, ütemeznie kell a projektben részt vevő csapat munkáját, biztosítania a fejlesztéshez szükséges hardver és szoftver erőforrásokat, a módszerek és szabványok megfelelő alkalmazását, valamint gondoskodnia kell a projekt minden lépésének dokumentáltságáról A projektmenedzser a a vevő felé az ajánlatkészítés, a kész termék átadása, valamint a további támogatás biztosítás ELTE IK, 1:3 A szoftverfejlesztés folyamata A szoftverfejlesztés a kódoláson túl több lépésből áll, amely függ a bonyolultságától is: 1. A ot elemezni kell, és megadni a formális megfelelőjét, vagyis a specifikációt 2. A specifikációt alapján megtervezhető a program, amely egyszerű nál az absztrakt program,, míg bonyolult nál a programterv elkészítésével jár, amelyből elállítható a programmodell (a célprogram egyszerűsített változata) 3. A tervet implementáljuk a megfelelő programozási nyelven 4. Az implementált programot, illetve a programkódot tesztelésnek vetjük alá, ami módosításokat eredményezhet az implementációban (vagy a korábbi fázisokban) ELTE IK, 1:4 A szoftverfejlesztés folyamata egyszerű specifikáció absztrakt program elemzés tervezés implementálás program bonyolult specifikáció programterv programmodell tesztelés A elemzése Önmagában a elemezése is nagyban meghatározza a programfejlesztés folyamatát, a lehetséges elemzési lehetőségek: felülről lefelé (top-down): a főot részokra, majd azokat további részokra bontjuk, míg azonosítani nem tudjuk a részokat az utasításokkal és adatokkal alulról felfelé (bottom-up): a ban szereplő entitásokat, egységeket határozzuk meg, majd azokat kombináljuk össze olyan módon, hogy megadják a fő megoldását általában az alulról felfelé módszer az alsóbb szinteken felülről lefelé stratégiát igényel PPKE ITK, Bevezetés a programozásba I 1:5 ELTE IK, 1:6 1
2 A tervezés A tervezés során egy nyelv-független vázát kell elkészítenünk a szoftvernek, amely megadja annak közeli működését a tervezés valamilyen modell alapján történik, amely lehet formális, matematikai, vagy kevésbé formális kevésbé formális megközelítés megkönnyíti a tervezést, és növeli az átláthatóságot, de kevésbé garantálja a program helyességét bizonyos tervezési modellek támogatják a kódgenerálást, és verifikálást, könnyítve ezzel az implementáción fontos szempont a program be- és kimenetének meghatározása, amit specifikációnak nevezünk külön kell megtervezi a program szerkezetének felépítését, illetve futásának menetét, illetve felhasználási eseteit ELTE IK, 1:7 A szoftverfejlesztés optimalizálása A szoftverfejlesztés során a legfőbb cél, hogy a kész programrendszer megfeleljen a funkcionális és minőségi követelményeknek ennek érdekében folyamatosan kell vezetni a fejlesztői dokumentációt Emellett, a fejlesztők számára fontos, hogy a kész szoftver fejlesztése a lehető legoptimálisabb legyen a szoftverfejlesztési modell meghatározza a fejlesztés módját és menetét azt nem, hogy milyen legyen a fejlesztés stílusa, milyen absztrakciós szinten történjen a megvalósítás, hiszen ezek a tényezők nem határozzák meg a szoftvert önmagát, csak a fejlesztés folyamatát ELTE IK, 1:8 A paradigma jelentősége A szoftverek tervezésének és programozásának módszerét nevezzük programozási paradigmának meghatározza a programozás stílusát és az absztrakciós szintet vannak általános célú, és szűk körben alkalmazott paradigmák, minden ra megtalálható a legjobban alkalmazható paradigma, vagy paradigmák köre A fejlesztés során az elemzési szakasz végén célszerű meghatározni az alkalmazni kívánt paradigmákat a paradigma meghatározza az alkalmazható programozási nyelvek körét is, és fordítva sok programozási nyelv több paradigmát is támogatnak, ezek a multiparadigma nyelvek ELTE IK, 1:9 A paradigmák csoportosítása A programozási paradigmákat két csoportba soroljuk: imperatív: a program állapotváltozások sorozata, ahol egy állapotot a programban lévő összes változó együttes értéke adja fel, ennek megfelelően az utasításokat szekvenciálisan hajtja végre deklaratív: a program a tartalmát, megjelenését írja le, nem pedig a funkció módját, nem alkalmaz változókat, a program működéséhez csak konstans értékeket használ fel, az utasításokat nem szekvenciálisan hajtja végre Magához a gépi kódhoz az imperatív programozás áll közel, a deklaratív nagyobb absztrakciót igényel (mivel nem a hardvernek megfelelő működési elveken alapszik), ugyanakkor nagyobb kifejezőerővel is rendelkezik ELTE IK, 1:10 A jelentősebb paradigmák csak adatstruktúrák Turing-teljes ekvivalencia funkcionális λ-kalkulus relációs (logikai) tartományleíró adatfolyam eljárás folyam-alapú deklaratív rekord állapot procedurális strukturált objektum-orientált imperatív lokalizáció öröklődés ELTE IK, 1:11 Tartományleíró (DSL, Domain-Specific Language) a legdeklaratívabb nyelvek, amely egy adott kör eredményleírását végzi el nyelvek: XSLT (XML), HTML, XAML, CSS, SQL általában nem alkalmas teljes értékű programok írására, mert etnem Turing-teljes, gte rendszerint e kiegészítésként é t szolgál más paradigma használata mellett megszokott alkalmazási területe konfigurációs fájlok, interfész felületek programozására egyes funkcionális nyelvek is támogatják tartományleíró részek írását (pl. LISP, Erlang, Prolog), illetve imperatív nyelvekben is előfordulhatnak (pl..net-ben a LINQ) ELTE IK, 1:12 2
3 pl. (XAML, szövegcímke a felhasználói felület): <UserControl x:class="silverlight.x.page" Width="400" Height="300"> <Grid x:name="layoutroot" Background="White"> <! - rács definiálása --> <TextBlock x:name="text_box"/> </Grid> <! - rács vége --> </UserControl> pl. (SQL, adott oktatónál lévő hallgatók lekérdezése): select student_name, student_id, start_year from Seminars -- forrás where teacher='roberto' -- feltétel order by name; -- rendezés ELTE IK, 1:13 Funkcionális (Functional): a programfutás matematikai függvények kiértékelésének sorozata, alapja a lambda-kalkulus nincsenek benne állapotok és változó adatok, gyakori a rekurzió, könnyű a párhuzamosítás korábban csak kutatásokban alkalmazták, mostanság megjelenik a piaci szoftverekben is a nagyobb absztrakciós szint miatt magasabb az erőforrásigény, de rövidebb a programkód nyelvek: LISP, Erlang, Clean, Haskell egyes imperatív nyelvekben lehet szimulálni függvénymutatók és lambda-függvények segítségével (pl. C++, C#, Mathematica, Maple, Matlab) ELTE IK, 1:14 pl. (LISP, lista hossza): (defun length(x) ; függvény definiálás (cond ( (null x) 0 ) ; elágazás ( (atom x) 1 ) ( (listp x) (+ 1 (length (cdr x) ))) ) ; rekurzív hívás ) pl. (Clean, beszúró rendezés): InsertSort :: a [a] -> [a] Ord a //deklaráció InsertSort e [] = [e] // szabályok InsertSort e [x:xs] e<=x = [e,x:xs] // elágazás otherwise = [x: InsertSort e xs] ELTE IK, 1:15 Relációs, logikai: a program logikai kiértékelések sorozata, általában implikációkon keresztül, a programozó, hogy a program igaz legyen, és megfelelően hatékony nyelvek: Prolog, Oz, Castor for C++ pl. (Prolog, rokonsági kapcsolatok definiálása): mother_child(trude, sally). % axiómák father_child(tom, sally). father_child(mike, tom). sibling(x, Y) :- parent_child(z, X), % szabályok parent_child(z, Y). parent_child(x, Y) :- father_child(x, Y). parent_child(x, Y) :- mother_child(x, Y). ELTE IK, 1:16 Folyam-alapú (FBP, Flow-Based Programming): a program fekete doboz jellegű alkalmazások hálózata, amelyek üzenetküldéssel kommunikálnak egymással, az alkalmazások működése kívülről nem ismert az egyes folyamatok párhuzamosan, aszinkron módon futnak, és információs csomagokat fogadnak, illetve küldenek, az információ áramlása folyamszerű leginkább csak elv maradt, nincs olyan konkrét nyelv, amely megvalósítani, bizonyos rendszerekben előfordulhatnak folyam-alapú részek (pl. Linda), továbbá fontos alapja az objektum-orientált sze3mléletnek Procedurális (Procedural): a programot alprogramokra (subroutine) bontja, és minden alprogram meghatározott részot végez el, ezek lehetnek: eljárás (procedure): valamilyen utasítássorozatot futtat, végeredmény nélkül függvény (function): valamilyen matematikai számítást végez el, és megadja annak eredményét az alprogramok a vezérlési szerkezetek segítségével épülnek fel, meghívhatnak más alprogramokat, és kommunikálhatnak velük (azaz adatokat adhatnak át, paraméterek és visszatérési értékek segítségével) ELTE IK, 1:17 ELTE IK, 1:18 3
4 a vezérlést a főprogram szolgáltatja, az kezeli a teljes programban jelen lévő adatokat nyelvek: Fortran, C, BASIC, Pascal pl. (C++, vektor összegzése függvénnyel): int Sum(vector<int> values){ // a függvény paraméterben megkapja a vektort int sum = 0; for (int i = 0; i < value.size(); i++) sum += values[i]; // ciklussal minden elemet hozzáveszünk az // összeghez return sum; // visszatérési érték az összeg ELTE IK, 1:19 pl. (Maple, szám faktoriálisa): myfac := proc(n::nonnegint) local out, i; out := 1; for i from 2 to n do out := out * i end do; out end proc; ugyanez lambda-kifejezés segítségével (funkcionálisan): myfac := n -> product( i, i = 1..n ); ELTE IK, 1:20 pl. (Fortran, tömb átlaga): implicit none integer :: number_of_points real, dimension(:), allocatable :: points real :: average_points=0. read (*,*)*) number_of_points allocate (points(number_of_points)) read (*,*) points if (number_of_points > 0) average_points = sum(points)/number_of_points deallocate (points) write (*,'(''Average = '', 1g12.4)') average_points Strukturált (Structured): a program részegységekre (csomagokra, vagy blokkokra) tagolódik, minden egység rendelkezik egy belépési ponttal, és egy kilépési ponttal a programban használt adatstruktúrák a programegységeknek gy g megfelelően strukturálódnak támogatja a kivételkezelést (a program felmerülő problémák lekezelése a programfutás károsodása nélkül), tiltja a programkódban történő ugrálást (goto) nyelvek: Pascal, ADA ELTE IK, 1:21 ELTE IK, 1:22 pl. (Ada, verem csomag): package STACK_T is type Stack is limited private; procedure Push (v: in out Stack; e: Value); procedure Pop (v: in out Stack); function Top (v: Stack) return Value; private type Node; type Pointer is access Node; type Node is record data: Value; next: Pointer := null; end record; type Stack is record top: Pointer := null; end record; end STACK_T; ELTE IK, 1:23 Objektum-orientált (Object-oriented): a megoldásában az alulról-felfelé megközelítést alkalmazza, két alapgondolata az egységbe zárás és az öröklődés a programegységet egymással kommunikáló objektumok összessége adja, amelyek valamilyen relációban állnak egymással manapság a legnépszerűbb programozási paradigma, a programozási nyelvek jelentős része támogatja objektumorientált támogatással rendelkező nyelvek: C++, Object-C, Common LISP, Matlab, PHP, Python, Perl, objektumorientált nyelvek: Smalltalk, JAVA, C#, Eiffel, Ruby, ELTE IK, 1:24 4
5 pl. (C++, verem osztály): class Stack { private: // rejtett rész, implementáció int* values; // attribútumok int top; public: // látható rész, interfész Stack(){ values = new int[10]; top = 0; // konstruktor ~Stack() { delete[] values; // destruktor void Push(int v) { // metódus if (top < 10) { values[top] = v; top++; // további metódusok... ; pl. (Java, mobil felhasználói felület): public class HelloWorld extends MIDlet // a MIDlet osztály leszármazottja implements CommandListener { private Form form; // implementáció private Command exitcommand; public HelloWorld() { // konstruktor form = new Form("Welcome!", new Item[] { new StringItem("","Hello World!") ); form.addcommand(exitcommand); form.setcommandlistener(this); ELTE IK, 1:25 ELTE IK, 1:26 A másodlagos paradigmák Vannak úgynevezett másodlagos programozási paradigmák, amelyek a programozást stílusát nagyban befolyásolják, pl.: Eseményvezérelt (Event-driven programming): a programfutás mentetét az interfészeken keresztül érkező események vezérlik, az eseményeket több tényező válthatja ki, majd azokat megfelelő eseménykezelők feldolgozzák Sablonprogramozás (Generic programming): az algoritmusokat sablonos formában állítja elő, és az alkalmazáskor helyettesíti be a konkrét tényezőket Metaprogramozás (Metaprogramming): a folyamatot a program metainformációs (programmanipulációs) szinten vezérli, ezáltal a programkód szerkeszthetővé válik futás alatt ELTE IK, 1:27 5
Bevezetés a Programozásba II 1. előadás. Szoftverfejlesztés, programozási paradigmák
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 1. előadás, programozási paradigmák 2014.02.10. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
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
Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 5. előadás Objektumorientált programozás és tervezés 2014.03.10. Giachetta Roberto groberto@inf.elte.hu
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
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
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
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
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
Alkalmazott Modul III 4. előadás. Objektumorientált programozás: objektumok és osztályok. Procedurális programozás Koncepció
Eötvös Loránd Tudományegyetem Természettudományi Kar Alkalmazott Modul III 4. előadás : objektumok és osztályok 2011.10.10. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Koncepció
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
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
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
Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 4. előadás Procedurális programozás: iteratív és rekurzív alprogramok Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
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
Adatbázis-kezelő rendszerek. dr. Siki Zoltán
Adatbázis-kezelő rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati
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:
Programozási technológia 2.
Programozási technológia 2. Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Információk Képzés Programtervező Informatikus BSc, nappali tagozat, C szakirány Tárgykód: IP-17cPROGT2EG Előfeltétel (erős):
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
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
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
é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
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
Adatbázis rendszerek. dr. Siki Zoltán
Adatbázis rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati személyzeti
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
Objektumelvű alkalmazások fejlesztése 6. gyakorlat. Öröklődés, polimorfizmus. Öröklődés Kódismétlődés objektum-orientált szerkezetben
Eötvös Loránd Tudományegyetem Informatikai Kar Objektumelvű alkalmazások fejlesztése 6. gyakorlat, polimorfizmus 2011.10.27. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Kódismétlődés
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
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)
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
Eljárások, függvények
Eljárások, függvények Tartalomjegyzék Az alprogramok...2 Kérdések, feladatok...2 Kérdések, feladatok...3 Eljárások...3 Kérdések, feladatok...4 Érték és cím szerinti paraméterátadás...5 Kérdések, feladatok...6
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é
WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK
WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Ismétlés Ismétlés 3 Fájl/Adatbázis 3 4 Szerver 2 CGI
Bevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 11. előadás 2014.05.12. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Adatszerkezetek
Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs
Fordított és szkript nyelvek összehasonlító elemzése Sergyán Szabolcs IEEE: The 2016 Top Programming Languages IEEE: The 2016 Top Programming Language (Enterprise) Kutatás-fejlesztésben használt nyelvek
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
Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu
Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:
Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás
Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX
Bevezetés, a C++ osztályok. Pere László
Programozás módszertan II. p. Programozás módszertan II. Bevezetés, a C++ osztályok Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK
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
Mindenki abból a három tantárgyból tesz szigorlatot, amelyet hallgatott.
Szigorlati témakörök az Informatika (szigorlat) (BMEVIAU0181) c. tantárgyat felváltó Informatika (BMEGERIEEIS) tantárgyból az okleveles energetikai mérnökképzés (2N-0E) hallgatói számára 1. tantárgy: Programozás
Programozás módszertan p.1/46
Programozás módszertan Öröklődés Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK MAGYAR TUDOMÁNYOS AKADÉMIA SZÁMÍTÁSTECHNIKAI ÉS
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
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(
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
Bevezetés a Programozásba II 3. előadás. Biztonságos adattípusok megvalósítása
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 3. előadás Biztonságos adattípusok megvalósítása 2014.02.24. Giachetta Roberto groberto@inf.elte.hu
OOP #14 (referencia-elv)
OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22: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_14-1 - E jegyzet
Bevezetés. Dr. Iványi Péter
Bevezetés Dr. Iványi Péter Programozási készség Számos munka igényel valamilyen szintű programozási készséget Grafikus a képfeldolgozót, Zenész a szintetizátort, Programozó a számítógépet programozza.
Bevezetés az informatikába
Bevezetés az informatikába 8. 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.
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
Informatikai Kar. 3. fejezet. alapismeretek. Giachetta Roberto
Informatikai Kar 3. fejezet alapismeretek Giachetta Roberto Actually I made up the term 'Object-Oriented', and I can tell you I did not have C++ in mind. (Alan Kay) adottak) 3:3 Feladat: Stack) adatszerkezetet
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
KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA
KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA Szoftver Verifikáció és Validáció, 2015 Ősz Vaitkus Márton Tartalom Motiváció Maple MiniMaple MiniMaple típusellenőrzése MiniMaple formális specifikációja MiniMaple
Programozási nyelvek (ADA)
Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 3. előadás Programozási nyelv felépítése szabályok megadása Lexika Milyen egységek építik fel? Szintaktikus szabályok
Bevezetés a programozásba. 8. Előadás: Függvények 2.
Bevezetés a programozásba 8. Előadás: Függvények 2. ISMÉTLÉS Helló #include using namespace std; int main() cout
Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe
Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével
Komponens alapú fejlesztés
Komponens alapú fejlesztés Szoftver újrafelhasználás Szoftver fejlesztésekor korábbi fejlesztésekkor létrehozott kód felhasználása architektúra felhasználása tudás felhasználása Nem azonos a portolással
Alprogramok, paraméterátadás
ELTE Informatikai Kar, Programozási Nyelvek és Fordítóprogramok Tanszék October 24, 2016 Programozási nyelvek Alprogramok Függvények, eljárások Metódusok Korutinok stb. Alprogramok Alprogram: olyan nyelvi
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
Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Szoftverek tesztelése
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 11. előadás Szoftverek tesztelése 2014 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Programozás s 2. Alapok
Programozás s 2 Objektum Orientált Programozás Alapok utolsó változtatás s 2008.04.12. Alapok A programokat valamilyen "programozási nyelv"-en en írjuk A programozási nyelv formális (szintaktikai) és s
Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN
Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN B IT v: 2016.03.03 MAN Csomagok A DBMS csomagok a PL/SQL alkalmazások fejlesztését segítik, bennük tároljuk a létrehozott programok kódjait. A specifikációs
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.
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked
Csomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)
Csomagok Csomag Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll specifikáció törzs (opcionális) Csomagspecifikáció CREATE [OR REPLACE] PACKAGE csomagnév [AUTHID {DEFINER CURRENT_USER}]
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
Bevezetés a Programozásba II 3. előadás. Biztonságos adattípusok megvalósítása. Biztonságos adattípusok megvalósítása
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 3. előadás Biztonságos adattípusok megvalósítása 2014.02.24. Giachetta Roberto groberto@inf.elte.hu
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,
Java programozási nyelv 9. rész Kivételkezelés
Java programozási nyelv 9. rész Kivételkezelés 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/24 Tartalomjegyzék
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
Szoftver-technológia I.
Szoftver technológia I. Oktatók Sziray József B602 Heckenast Tamás B603 2 Tananyag Elektronikus segédletek www.sze.hu/~sziray/ www.sze.hu/~heckenas/okt/ (www.sze.hu/~orbang/) Nyomtatott könyv Ian Sommerville:
Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu
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
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
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:
2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér
Funkcionális programozás 2. el adás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2019, tavaszi félév Mir l volt szó? Követelmények, osztályozás Programozási
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
Programozási nyelvek JAVA EA+GY 1. gyakolat
Programozási nyelvek JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2018/2019. tavaszi félév Tartalom 1 A Java alapjai 2 Java program
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,
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:
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is
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;
Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016
Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS 2015-2016 Objektumorientált programozás OOP PHP-ben 2 A PHP az 5.0-as verziójától megvalósítja az OO eszközrendszerét OO eszközök:
A JavaScript főbb tulajdonságai
JavaScript alapok A JavaScript főbb tulajdonságai Script nyelv azaz futás közben értelmezett, interpretált nyelv Legfőbb alkalmazási területe: a HTML dokumentumok dinamikussá, interaktívvá tétele Gyengén
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
Adatbázis rendszerek 7. előadás State of the art
Adatbázis rendszerek 7. előadás State of the art Molnár Bence Szerkesztette: Koppányi Zoltán Osztott adatbázisok Osztott rendszerek Mi is ez? Mi teszi lehetővé? Nagy sebességű hálózat Egyre olcsóbb, és
Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit
Objektum Orientált Tervezés
Objektum Orientált Tervezés Felhasznált szakirodalom Sike Sándor-Varga László: Szoftvertechnológia és UML Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai Wikipédia Hibákkal kapcsolatban
Programozási technológia
Programozási technológia Generikus osztályok Gyűjtemények Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Generikus osztályok Javaban az UML paraméteres osztályainak a generikus (sablon) osztályok felelnek
PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19
PHP II. WEB technológiák Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19 Tartalomjegyzék Objektum Orientált Programozás 1 Objektum Orientált Programozás Öröklődés 2 Fájlkezelés
Concurrency in Swing
Concurrency in Swing A szálkezelés a swing alkalmazásokban is fontos. Cél egy olyan felhasználói felület készítése, amely soha nem fagy, mindig válaszol a felhasználói interakciókra, bármit is csináljon
C++ programozási nyelv
C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok
Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert
Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája Készítette: Urbán Norbert Szoftver-minőség A szoftver egy termelő-folyamat végterméke, A minőség azt jelenti,
Java programozási nyelv 4. rész Osztályok II.
Java programozási nyelv 4. rész Osztályok II. 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/17 Tartalomjegyzék
Pénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Sztringek Osztályok alapjai Sztringek Szöveges adatok kezelése Sztring Karakterlánc (string): Szöveges adat Karaktertömbként tárolva A szöveg végét a speciális
Bevezetés a Programozásba II 2. előadás. Adattípusok megvalósítása egységbe zárással. Adattípusok megvalósítása egységbe zárással
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 2. előadás Adattípusok megvalósítása egységbe zárással 2014.02.17. Giachetta Roberto groberto@inf.elte.hu
ISA szimulátor objektum-orientált modell (C++)
Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált
Objektumorientált programozás
JavaScript Objektumorientált programozás böngésző jó néhány objektumot bocsájt a rendelkezésünkre tulajdonságok var txt="hello World!" document.write(txt.length) Web programozás I. - Kecskeméti Fõiskola
Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok
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.)
Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből
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,