GONDOLATOK ÉS TAPASZTALATOK

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

Download "GONDOLATOK ÉS TAPASZTALATOK"

Átírás

1 ÁTTÉRÉS LAZARUSRA GONDOLATOK ÉS TAPASZTALATOK EGY ÚJ NYELV BEVEZETÉSE KAPCSÁN SZLÁVI PÉTER NOVEMBER

2 Tartalom 0. Bevezetés A múlt kiindulópontok Módszertani Programozás-fogalmi Programozás-nyelvi Paradigmaváltás osztály vs. típus Fogalmi bemelegítés Mankó a rutin megszerzéséhez Tapasztalatok...16 Hivatkozott irodalom...17

3 3 nyomás 0. BEVEZETÉS Programozás(módszertan) tárgyunk oktatására három nyomás nehezedett: (1) programozás nyelv használati jog (license-ek száma); (2) használati nehézségek (XP kontra Turbo Pascal); (3) a fejlődés (vizuális nyelv igénye). próbálkozások Jó kiútnak tűnt a Borland Delphi, azonban a próbálkozásaink meghiúsultak: a kellő számban megvenni túl sokba kerülne, az adatbázis motor nélküli változat ingyenességére tett Borland ígéret szertefoszlott. módszertani elv Fontos kimondani a tárgy egyik alap tézisét: az oktatás nyomatéka a feladatspecifikáción és (főleg) a megoldó program algoritmusán fekszik, és nagyon kicsi súllyal a kódon. Azaz a programkészítési folyamat első két lépése a domináns. Látszólag tehát a kérdés, mi legyen a programozási nyelv, nem is kérdés. Közismert azonban, hogy oktatási szempontból különösen a közoktatásban a megoldás kódolása nem hagyható el, ui. nem igazán létezik más módszer arra, hogy a helyes működésről meggyőződjön a programozó 1, mint a futtatás alapú tesztelés. Ily módon kaphat bizonyítékot vagy éppen cáfolatot a program helyességére a programozni tanuló. Így lehet sikerélmény forrása, vagy a továbbgondolkodásnak útmutatója a kód. új Pascal variáns Az ezredforduló táján 2 bukkant fel az informatikai köztudatban egy új Pascal nyelvjárás a Free Pascal, egy újabb, szabadon terjeszthetett, és használható 32-bites változat. Ez felszabadítás lehetőségével kecsegtet a korábban említett (1) és (2) nyomás alól. Free, azaz nincs akadálya a kellő számú változat laborokban való installálásának, remélhetőleg (nagyobb) harmóniában van az XP-vel. És nem elhanyagolható előny: fenntarthatók a nyelvi és módszertani előnyök (pl. keretprogramok). Nem sokkal a Free Pascal után születik meg az a projekt, amely névadója egy Free Pascal-ra alapított vizuális nyelvi fejlesztői környezetnek: a Lazarus-nak. 3 E fejlesztői környezet mintául a Borland Delphi-jét választották, ami Pascal alapú, így értelmes gondolatnak látszik a felület alá a Free Pascal fordítóját illeszteni. Ezen elképzelések megvalósításáért küzdenek a fejlesztők egyre bővülő tábora. Mára a Free Pascal 2.0 változatáig jutottak el (2005. május 15.), illetve a Lazarus verziójáig ( ). 4 A Lazarus oktatásunkba való bevitele a (3) nyomást szűntetné meg. 1 A formális, matematikai módszereket még felsőoktatásban is csak kisméretű programok esetében szokás alkalmazni dikáig vezetik vissza a Free Pascal hivatalos élettörténetét: 3 Lásd 4 Free Pascal 2.0 (Win32): ftp://ftp.freepascal.org/pub/fpc/dist/i386-win /fpc i386-win32.exe Lazarus (Win32): win32.exe?download. 3

4 0. Bevezetés didaktikai kérdőjelek A Lazarus legfrissebb változatát még β-nak minősítik a szerzők. Ez rossz hír. Egy bizonytalan működésű rendszer oktatásba bevitele igen kockázatos vállalkozás. Ha a tanár nem lehet biztos abban, hogy egy hallgatói/tanulói program rossz működése mögött a program hibája áll, amelynek kijavítása ifjú szerző feladata, az nagyon megnehezíti az oktatási folyamatot. Lépten-nyomon ellenőrizni kell a hiba természetét, és szerencsétlen esetben a környezetet kell okolni a hibáért. Ez a leendő programozóra kimondhatatlanul károsan hat: elveszti az esetleg még meg sem szerzett biztonságérzetét. Ilyen körülmények között igen nehéz programozni, tanulni meg egyenesen lehetetlen. Egy másik természetű didaktikai probléma is megfogalmazható. Az eddig hagyományos környezethez szokott hallgató hogyan fogadja a 4GL programkészítési szolgáltatásokat. Ez egy teljesen más programfejlesztési módszertant kíván. Továbbá az eddigi objektum-steril programozás után az OOP-s szemléletre áttérés módszertani kihívásaira is választ kell találni. döntés-előkészítés Az elmúlt nyarat többek közt arra szántam, hogy kiderítsem: mennyire β az akkori legújabb (0.9.8) változat; elgondolkozzam a 4GL-ség újdonságain, és megszelídítsem azt a hallgatóim számára egy előadás (ill. kézirata) formájában; végiggondoljam az előttünk álló félév tematikájához való illeszkedést, azaz megbecsüljem, hogy mennyire lehet a módszertani hangsúlyt megtartva nyelvet, környezetet, sőt némileg fejlesztési módszert is váltani. A konkrét és átvitt értelembe véve egyaránt izzasztó nyári munka után megszületett a döntés: áttérünk a Lazarus-ra. Kiderült jó néhány β-sága a Lazarusnak, de akkori megítélésem szerint kordában tarthatóak a kezdő programozók számára precízen kidolgozott, fejlesztési mankó segítségével (és persze a hallgatók fegyelmezettsége mellett), azaz egy olyan leírt lépéssorozattal, amely követése esetén a problémák elkerülhetők, vagy röviden orvosolhatók. 4

5 1. A MÚLT KIINDULÓPONTOK Ahhoz, hogy megértsük, mit miért éppen úgy gondoltam helyesnek, tudnunk kell pár dolgot arról, a tárgy megelőző két félévében milyen programozási tudást, rutint szerzetek a hallgatóink. Ismereteiket három szempontból tartom fontosnak csoportosítani: módszertani, programozás-fogalmi és -nyelvi. 1.1 Módszertani mit? hogyan? mivel? Ez alatt a program-gyártástani tudásukra gondolok, vagyis hogy valójában mit?, hogyan? és mivel? tudnak készíteni. Hagyományos, vagyis nem grafikus operációs rendszerben futó programot Hagyományos programkészítési elvekkel, mint a strukturált programozás, a felülről-lefelé tervezés, a lépésenkénti finomítás és az ezekhez kapcsolódó taktikai, technológiai, technikai, illetőleg ergonómiai elvek; valamint a funkcionalitás elve és a struktúraszerinti feldolgozás elve, valamint számos, kódolási szabállyal A programkészítési elvek irányítják a programozót az algoritmus tervezés egyes lépéseinek megtétele közben, vagy szempontokat adnak ahhoz, hogy mit kell és hogyan meggondolnia a minél kevesebb kudarc melletti algoritmustervezéshez és kódoláshoz. A struktúraszerinti feldolgozás elv vezérfonalat ad kezükbe az adatokból kiinduló algoritmus finomtervezéséhez. A funkcionalitás elvének figyelembe vételével a hármas tagolással (adatbeolvasás+feldolgozás+ adatmegjelenítés) születnek kezdettől a programok. A kódolási szabályok az éppen kiválasztott, konkrét programozási nyelvhez adnak gyorsan megérthető és mechanikusan alkalmazható sablonokat. Ily módon kívánjuk lerövidíteni a mélyebb programozási nyelvi ismeretek megszerzésére szükséges időt. Olyan hagyományos, azaz nem grafikus, egérmentes, billentyű-orientált programfejlesztő eszközzel, mint a Borland-ék Turbo környezete: programszerkesztő, nyomkövető és futtató rendszerek integrált környezete. 1.2 Programozás-fogalmi A programozás sajátos gondolkodásrendszeréből hallgatóink ismerik a programozási tételek fogalmát és egy sereg reprezentánsát. Ez a tárgy első félévének legfontosabb témája. A második félév a típus fogalmát járja körül. E közben ismerik meg a típusorientált programozás jellegzetességeit. Itt kerülnek szóba az alapvető adatszerkezetek néven jól ismert: tömbök, listák, vermek, sorok, táblázatok és különféle fájlcsaládok. A mi szóhasználatunk szerint ezek egy-egy konkrét reprezentánsa a típus fogalmának általánosításaként létrejött típuskonstrukcióknak. 5

6 1. A múlt kiindulópontok 1.3 Programozás-nyelvi Röviden szólva: rutinjuk a Turbo Pascal nyelvhez köthető. A Pascal standard nyelvi elemein túl megismertek számos kellemetlen nyelvi kötöttséget, úm. IO-korlátozások a típusok vonatkozásában (pl. absztrakt felsorolási típusú adat beolvashatatlansága, az alprogramok előfeltételellenőrzésének bonyolult módja stb.), a függvény korlátozott értéktípusa tekintetében, vagy a tömb igen szűkös mérete. A típusmegvalósítás nyelvi lehetőségeként (is) felkínált unit, illetőleg include hozzátartozik aktív szókincsükhöz. Ezekhez is kapcsolódik jó néhány nyelvi nehézség (pl. a unitok paraméterezhetetlensége stb.). 6

7 2. PARADIGMAVÁLTÁS OSZTÁLY VS. TÍPUS OOP típus egybevetés Tudjuk, hogy a Lazarus, mint afféle Delphi-klón, objektum-orientált programozás elveinek ismeretét és alkalmazását kívánja a programozótól. Eddig hallgatóink erről nem sokat tudhatnak. Kétségtelen tehát, hogy a programozás szemléletét is érinti a tervezett nyelvi áttérés. Mivel ahogy láttuk a tárgy szellemiségétől távol áll, hogy a nyelv legyen meghatározó, meg kellett gondolni e szellemiségmódosítás, divatos szóval élve: paradigmaváltás hogyan tehető minél könnyebbé. Mit is takar az objektum-orientált programozás (OOP) kifejezés? Idézetek következnek az OOP lényegének megragadása céljából Vég Csaba és dr. Juhász István tollából származó Objektum-orientált világ c. könyvéből [VCsJI]. Az objektum diszkrét entitás, amelyet adott időpillanatban adott tulajdonságokkal írhatunk le és amely tulajdonságok az időben változhatnak. Adott pillanatban az objektumot a tulajdonságaival, más néven attribútumaival jellemezzük, amelyeket együttesen állapotnak nevezünk. Az objektum állapotát a korábbi állapotok vagy bizonyos külső hatások függvényében változtathatja, amely változások együttesen a működést, a viselkedést alkotják. A módszertanok az összetett viselkedést műveletekre bontják. Az implementált műveletek a módszerek (methods). azonos attribútumokkal és műveletekkel rendelkező objektumok osztályokba (class) csoportosíthatók. Egy osztály objektumai, amelyeket az osztály példányainak nevezzük, minden egyes értékkel töltenek fel. Helyezzük e mellé Varga László a típushoz írt tömör matematikai definícióját [V]: A típus absztrakt fogalma alatt egy négyest értünk: T=(A,R,Σ,Κ), ahol adatelemek (nem üres) A halmaza (bázistípusok értékhalmazai), az adatelemeket egy struktúrává egyesítő R szerkezeti összefüggés, } a teljes struktúra részeit kiválasztó ún. szelekciós műveletek Σ halmaza, teljes struktúrát eredményező ún. konstrukciós műveletek Κ nem üres halmaza. } a típus statikus meghatározói asszociált műveletek, a típus dinamikus meghatározói A típus fenti, elvont megközelítéséből a kezdő programozók számára annyi felfogható és a jó programozási stílus kialakítása szempontjából elegendő, hogy a típushoz ismerni (megalkotásához definiálni) kell az értékhalmazt és az asszociált műveleteket. Az előbbit a típus reprezentációjának nevezzük, az utóbbiak megvalósítását (a lerögzített reprezentáció mellett) pedig implementációjának. A két idézetből számomra a lényeg a következőképpen sommázható. Párhuzamosíthatók a fogalmak: az objektum állapothalmaza az adat bázistípusainak egyesített halmaza; az objektumhoz tartozó műveletek az adathoz asszociált műveletek halmaza; végülis: az objektum osztály adattípus. 7

8 2. Paradigmaváltás OOP vs. típus Be kell ismernem a szokásos objektumjellemzők közül eltitkoltam (nem idéztem) az objektumok között kommunikációt lehetővé tevő üzenetek fogalmát. Ezt a fogalmat a legtöbb OOP-s rendszer visszavezeti a szóba hozott műveletekre. Így lényegi dolgot mégsem hagytam el. További OOP-s jellemzők közt emlegetik: az egységbe zárást és az öröklődést is. A típus precíz fogalmának bevezetésekor már eleve olyan leíró nyelvet használunk (a jól ismert algoritmikus nyelv kibővítéseként), amelyben az egységbe zárás teljesen természetes velejárója a típusnak. [SzP1] Így valójában az OOP-nek ez sem lesz a típushoz képest újdonsága. Az öröklődés valóban nóvum. Erre a vonásra természetesen fel kell hívni a figyelmet, de a hangsúlyt arra kell helyezni, hogy általa jutunk bizonyos leírási egyszerűséghez. Megspórolhatjuk azon kóddarabok újraprogramozását, amelyek a szülőosztályból változatlan formában továbbvihetők. Megjegyzem: e megjegyzés is csak annyiban lényeges, hogy a grafikus ablakokat megvalósító formok, mint osztályok automatikusan létrejövő kódjait megérthessék a hallgatók. következtetés Megállapíthatjuk, hogy a típusfogalom jó előkészítése után nem várhatók nagy nehézségek az OOP osztályfogalmának megértése, elfogadása körül. Ami az osztályfogalom őséből a típusfogalmából hiányzik, az öröklés, az a kitőzött céljaink szempontjából súlytalannak minősíthető. 8

9 3. FOGALMI BEMELEGÍTÉS Lássuk, mit terveztem elmondani egy előadáson a Lazarus bevezetése elé. [SzP2] madártávlatból A 4GL lényege Szómagyarázat (4GL); Egy mondatban, A grafikus kezelőfelület elemei és szervei, A működés filozófiája, Ablakkellékek és események Két példa és némi magyarázat Grafikus környezet és OOP Szómagyarázat (OOP), Néhány grafikus komponens bemutatása mint objektum (jellemzői, operációi) Az újszerű programozási stílusról Felülettervezés, esemény-kiválasztás, eseménykezelők megvalósítása Programfelépítés Az alkalmazások fejlesztéséhez szükséges információk és fájlok kapcsolata GUI A fejlesztői környezet ablakai, (minimális) funkciói Praktika A kezdőlépések, pontokba szedve; A grafikus paletta kezdetben szükséges komponenseinek rövid áttekintése; Pozitív és negatív praktikák (a Lazarus β-ságai) 9

10 4. MANKÓ A RUTIN MEGSZERZÉSÉHEZ A tárgyhoz kapcsolódó gyakorlatokon igyekeztünk olyan feladatokat kitűzni, amelyek lépésenként bővíti a Lazarus-szal kapcsolatos tárgyi ismereteiket. 5 Ezek a következők voltak: o egy skalár-inputú és egyszerű algoritmusú alkalmazás (form, label, edit, button ); pl. másodfokú egyenlet gyökei Első Lazarus alkalmazás A cél az volt, hogy általa (1) a gyakorlatban is megismerkedjenek a 4GL környezettel, (2) alapvető programozási felismerésekhez jussanak. Felismerendő egyrészt például az I/O komponensek string-alapúsága, ennek következtében elkerülhetetlen a típuskonverzió; másrészt a funkcionalitás elvének betartásával készült program könnyedén ültethető át, ui. elegendő az I/O újraalkotása: Input StrToTípus konverzió belső I-változók feldolgozó rutin belső O-változók TípusToStr konverzió Output. o egy sorozat-inputú (memo, stringgrid) egyszerű algoritmusú alkalmazás; pl. egy számsorozat páros elemeinek kiválogatása Második Lazarus alkalmazás 5 Lásd: 10

11 4. Mankó a rutin megszerzéséhez o egy tipikus, menüvezérelt, egyszerű logikájú, textfájlt használó alkalmazás; Harmadik Lazarus alkalmazás Kézenfekvő lehetőség a memo, ui. ekkor sokszor olcsón megúszható a paraméterbeolvasás, ill. -kiírás (LoadFromFile, SaveToFile memo-műveletek miatt). Bár meg kell jegyezzem, a hallgatóink az előző félévben már a fájltípusokkal megismerkedtek, így a fájlkezelés sem okozhat különösebb gondot. (Tudnivaló, hogy a Delphi fájlkezelése igen közel áll a megszokott Pascaléhoz.) o egy fájlból olvasott tájékoztatóval rendelkező alkalmazás; pl. valamely korábbi alkalmazás kibővítése egy külön ablakban megjelenő tájékoztatóval Ezt követő gyakorlatok már a félév fő témájához kapcsolódtak, nevezetesen a szövegfeldolgozáshoz és az (szekvenciális) adatfeldolgozáshoz. E gyakorlatokon már kisebb hangsúlyt kap az alkalmazás felhasználói felülete. Elsősorban a témánk középpontjába helyezett típusokat megvalósító unitokra kellett összpontosítani. A témához tartozó alkalmazások kimondott célja a unitok megmozgatása, kipróbálása volt. Így időnként azt is megtettük, hogy a GUI-t magunk terveztük meg, s mintegy keretalkalmazásként vittük a gyakorlatra. Az elkövetkező gyakorlatok feladataiban elegendő egy (vagy több) unitba elkülönített rutinok megvalósítása. Alig van vagy egyáltalán nincs szükség az ablakok kezelését végző form unitjához nyúlni. Mondanivalónk bemutatásául álljon itt az alkalmazott unitok egy-egy jellemző részlete. 11

12 4. Mankó a rutin megszerzéséhez unit FoAblak; {$mode objfpc}{$h+} interface uses Classes, Buttons, Kar, Szoveg; type { TfmFoAblak } TfmFoAblak = class(tform) btvege: TButton; edkar1, edkar2, edkod1, edkod2, edszov1, edszov2, edujkod1, edujkod2: TEdit; lbcim, lbrendezes1, lbrendezes2, lbkar1, lbkar2, lbkisebbszov, lbkisebb1, lbkisebb2, lbkod1, lbkod2, lbujkod1, lbujkod2, lbszov1, lbszov2:tlabel; procedure btvegeclick (Sender: TObject); procedure edkar1editingdone (Sender: TObject); procedure edkar2editingdone (Sender: TObject); procedure edkod1editingdone (Sender: TObject); procedure edkod2editingdone (Sender: TObject); procedure edszov1editingdone (Sender: TObject); procedure edujkod1editingdone (Sender: TObject); procedure edujkod2editingdone (Sender: TObject); private { private declarations } public { public declarations } end; var fmfoablak: TfmFoAblak; implementation { TfmFoAblak } A karakter- és szövegtípus próba-alkalmazás formjához tartozó unit (részlet) unit Kar; {$mode objfpc}{$h+} interface uses Classes, SysUtils; type TKar=record fo:char; al:char end; Function CharToKar (const c:char):tkar; Function TKarToChar (const c:tkar):char; Function Sorszam (const c:tkar):longint; Function IntToKar (const k:longint):tkar; Function Kisebb (const c1,c2:tkar):boolean; Function Azonos (const c1,c2:tkar):boolean; const SorVegJel:TKar=(fo:#13; al:' '); LapVegJel:TKar=(fo:#12; al:' '); DokumentumVegJel:TKar=(fo:#26; al:' '); implementation unit Szoveg; {$mode objfpc}{$h+} interface uses Classes, SysUtils, Kar; const MaxHossz = 4095; type TSzoveg = record hossz:integer; jelek:array [1..MaxHossz] of TKar; end; const Ures:TSzoveg=(hossz:0{jelek:bármi}); function Vegere (const s:tszoveg; const k:tkar):tszoveg; function Elejere (const s:tszoveg; const k:tkar):tszoveg; function Hossz (const s:tszoveg):integer; function Kisebb (const s1,s2:tszoveg):boolean; function TolIg (const s:tszoveg; const tol,ig:integer):tszoveg; function Edik (const s:tszoveg; const i:integer):tkar; implementation A karakter- és szövegtípus próba-alkalmazás implementációs unitjai (részlet) 12

13 4. Mankó a rutin megszerzéséhez Negyedik Lazarus alkalmazás, amelyben a Karakter és Szöveg típus kipróbálása volt a cél E téma alkalmas arra is, hogy a TP egyik kényelmetlenségétől megmenekedjünk: a függvények értéktípusa Lazarus-ban már összetett típus is lehet. Most ez kapóra jön, hiszen a saját karakter típus bevezetésekor ábrázolást cseréltünk: minden jelhez kétbájtos kódot rendeltünk (kvázi UNICODE), amelyet kifejezőség növelése céljából rekorddal ábrázoltunk. Ekkor bizonyos függvényként megfogalmazható Karakter-értékű operáció függvény is maradhatott. Végezetül a további gyakorlatokra csak néhány képes emlékeztetővel utalunk: Ötödik Lazarus alkalmazás, a szövegigazításokról szól 13

14 4. Mankó a rutin megszerzéséhez Hatodik Lazarus alkalmazás, amellyel két hatékony szövegkereső algoritmust lehet összevetni sillabusz Hetedik Lazarus alkalmazás, egy makroprocesszor (2 fázisa) Gyakorlatról gyakorlatra bővültek a hallgatók Lazarus-os ismeretei és tapasztalatai. Ezen bővülő (kollektív) ismeretek tömör lenyomataként használható a hálóról letölthető: Első lépések dokumentum. [SzP3] Ebben pontokba szedve találhatók azok a minimális tudnivalók, amelyek a Lazarus-szal kapcsolatban okvetlenül ismerendők. Kezdve az új alkalmazásnyitás visszatérő tevékenységeitől, az újabb form vagy unit hozzávételén át, az egyes, felbukkant 14

15 4. Mankó a rutin megszerzéséhez komponensek legjellemzőbb tulajdonságainak beállításáig., és egyes Free Pascal-os újdonságokig. Itt szóba kerülnek (persze csak igen sűrű pontokba szedve, sillabusz-szerűen): o a legelemibb hogyan kezdjek hozzá? típusú kérdések, o mik a leggyakrabban használt komponensek, mely a komponenspalettán találhatók, és legfontosabb jellemzőik: StringGrid, Menu, OpenDialog, SaveAsDialog, Memo, PageControl, o módszertanhoz kapcsolódó, de az új nyelv eddigiektől eltérő megvalósítási lehetőségei, például: a hagyományos főprogram helyettesítése menüvezérlésű alkalmazással, az absztrakt felsorolási típus I/O-ja (ListBox felhasználásával), a sorozatok I/O-ja (StringGrid felhasználásával), fájlkezelés GUI-s módja (OpenDialog-ra, SavaAsDialog-ra vezetve), a tájékoztatókészítés legegyszerűbb módja (TextFile, második Formot használva), o nyelvi újdonságok (pl. a függvény értéktípusának általánosabb volta, konverziós függvények stb.) o és a problematikus szituációk, javasolt elkerülési módjuk 15

16 vizualitás β-ságok összefoglalás 5. TAPASZTALATOK Mindezek után pár mondat a megvalósulásról. Kedvező volt a vizualitás fogadtatása. Olyan hallgatók is, akik a múlt félévben egy kötetlen beszélgetésen őszintén bevallották, hogy a szak választásakor nem gondolták: ennyire hangsúlyos szerepet fog kapni a programozni tudás és egyébként a hátuk közepére sem hiányzik az a programozósdi nos ilyenek is örömmel gyártják a sikerélményeket gazdagabban nyújtó Lazarus alkalmazásokat. Megjegyzem, e hallgatók sikerélménynek tekintik már azt is, ha a program kellő esztétikával csinálja a semmit márpedig ilyen programot gyártani valóban nem kunszt. Hajlamos egy-egy fordítás közben a memo kezdőtartalmat elfelejteni; egy korábbi alkalmazás folytatólagos fejlesztésekor a form mérete visszaáll az opcionális méretére; a keretprogram bizonyos laborkörülmények (?) között elveszti a formra tett komponenseit Rosszul csinálja a string debug-ot (a karakterek sorszáma eggyel elcsúszik) Pozitív fogadtatás: hallgatói visszajelzések, kollégák motiváltsága megnyugtató pszichológiai érv lehet a Lazarus mellett. Haladó(bb) nyelvi közeget jelent az eddigieknél. Kimondható, hogy az OOP-gondolkodásmód módszertani szempontból, a 4GL-osztálybesorolás a praktika oldaláról egyértelműen előnyössé teszi. Gyermekbetegségei vannak és komolyan bosszantóak, de remélhetőleg hamarosan kinő belőle. 16

17 HIVATKOZOTT IRODALOM [SzP1] Szlávi Péter: Modul mint a típusmegvalósítás kerete, előadásjegyzet, ELTE IK, [SzP2] Szlávi Péter: Programozás Vizuális/Grafikus Fejlesztői Környezetben, előadásjegyzet, ELTE IK, [SzP3] Szlávi Péter: Első lépések, Lazarus segédanyag, [V] Varga László: Programok analízise és szintézise, Akadémiai Kiadó, 1981 [VCsJI] Vég Csaba dr. Juhász István: Objektum-orientált világ, IQSoft,

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

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

Adatszerkezetek I. 1. előadás

Adatszerkezetek I. 1. előadás Adatszerkezetek I. 1. előadás Adatok jellemzői ismétlés 1. Azonosító Az a jelsorozat, amellyel hivatkozhatunk a tartalmára, amely által módosíthatjuk tartalmát. 2. Hozzáférési jog Adatokat módosítani,

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

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

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

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010 Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010 Előadás tematika 1. Pascal ismétlés, kiegészítések 2. Objektum orientált programozás (OOP) 3. Delphi környezet 4. Komponensek bemutatása

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

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

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

Szakterületi modell A fogalmak megjelenítése. 9. fejezet Applying UML and Patterns Craig Larman

Szakterületi modell A fogalmak megjelenítése. 9. fejezet Applying UML and Patterns Craig Larman Szakterületi modell A fogalmak megjelenítése 9. fejezet Applying UML and Patterns Craig Larman 1 Néhány megjegyzés a diagramokhoz Ez a tárgy a rendszer elemzésről és modellezésről szól. Noha például egy

Részletesebben

Törley Gábor PROGRAMOZÁSI NYELVEK, KÖRNYEZETEK KIFEJEZŐEREJÉNEK VIZSGÁLATA

Törley Gábor PROGRAMOZÁSI NYELVEK, KÖRNYEZETEK KIFEJEZŐEREJÉNEK VIZSGÁLATA Törley Gábor (pezsgo@elte.hu) PROGRAMOZÁSI NYELVEK, KÖRNYEZETEK KIFEJEZŐEREJÉNEK VIZSGÁLATA Bevezetés Egy nyelv annál kifejezőbb, minél kevesebb szellemi befektetést, időt kíván a programozótól a kódolás

Részletesebben

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar Algoritmizálás Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 0.1. Az algoritmikus tudás szintjei Ismeri (a megoldó algoritmust) Érti Le tudja pontosan

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

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

Iman 3.0 szoftverdokumentáció

Iman 3.0 szoftverdokumentáció Melléklet: Az iman3 program előzetes leírása. Iman 3.0 szoftverdokumentáció Tartalomjegyzék 1. Az Iman rendszer...2 1.1. Modulok...2 1.2. Modulok részletes leírása...2 1.2.1. Iman.exe...2 1.2.2. Interpreter.dll...3

Részletesebben

Bevezetés a programozásba

Bevezetés a programozásba Bevezetés a programozásba 1. Előadás Bevezetés, kifejezések http://digitus.itk.ppke.hu/~flugi/ Egyre precízebb A programozás természete Hozzál krumplit! Hozzál egy kiló krumplit! Hozzál egy kiló krumplit

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

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama 10. évfolyam: 105 óra 11. évfolyam: 140 óra 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra 36 óra OOP 14 óra Programozási

Részletesebben

Programozási tételek általánosítása 2. Szlávi Péter 2015

Programozási tételek általánosítása 2. Szlávi Péter 2015 Programozási tételek általánosítása 2. Szlávi Péter szlavip@elte.hu 2015 Tartalom 1. Az általánosítás lehetőségei a) Sorozatok A Tömb-típuskonstrukcó b) Sorozatok A tömb indexmentesítése c) A Tulajdonság-függvények

Részletesebben

A feladat címe, rövid emlékeztetje

A feladat címe, rövid emlékeztetje A feladat címe, rövid emlékeztetje A szerz neve és drótposta-címe Tartalom I. Felhasználói dokumentáció... 3 1. A feladat... 3 2. Futási környezet... 3 2.1. Hardver... 3 2.2. Operációs rendszer... 3 3.

Részletesebben

C++ programozási nyelv

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

Részletesebben

Mindenki abból a három tantárgyból tesz szigorlatot, amelyet hallgatott.

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

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

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

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás? Bevezetés Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések Forráskód Hibajegyzék p2p.wrox.com xiii xiii xiv xiv xvi xvii xviii

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

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

Részletesebben

Programtervezés. Dr. Iványi Péter

Programtervezés. Dr. Iványi Péter Programtervezés Dr. Iványi Péter 1 A programozás lépései 2 Feladat meghatározás Feladat kiírás Mik az input adatok A megoldáshoz szükséges idő és költség Gyorsan, jót, olcsón 3 Feladat megfogalmazása Egyértelmű

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

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

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

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

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

NAGYPONTOSSÁGÚ EGÉSZ-ARITMETIKA TARTALOM

NAGYPONTOSSÁGÚ EGÉSZ-ARITMETIKA TARTALOM NAGYPONTOSSÁGÚ EGÉSZ-ARITMETIKA TARTALOM 0. A feladat... 2 1. Az Egész számok ábrázolásai... 2 2. A műveletek szignatúrája... 3 3. A keretprogram... 4 4. Technikai tanácsok... 7 5. Elegancianövelő lehetőségek

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

OOP #14 (referencia-elv)

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

Részletesebben

1. Bevezetés A C++ nem objektumorientált újdonságai 3

1. Bevezetés A C++ nem objektumorientált újdonságai 3 Előszó xiii 1. Bevezetés 1 2. A C++ nem objektumorientált újdonságai 3 2.1. A C és a C++ nyelv 3 2.1.1. Függvényparaméterek és visszatérési érték 3 2.1.2. A main függvény 4 2.1.3. A bool típus 4 2.1.4.

Részletesebben

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok A szemantikus elemzés helye Forrásprogram Forrás-kezelő (source handler) Lexikális elemző (scanner) A szemantikus elemzés feladatai Fordítóprogramok előadás (A, C, T szakirány) Szintaktikus elemző (parser)

Részletesebben

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Készítette: Gipsz Jakab Neptun-azonosító: ABC123 E-mail: gipszjakab@seholse.hu Kurzuskód: IT-13AAT1EG Gyakorlatvezető

Részletesebben

A szerzõrõl... xi Bevezetés... xiii

A szerzõrõl... xi Bevezetés... xiii TARTALOMJEGYZÉK A szerzõrõl...................................................... xi Bevezetés...................................................... xiii I. rész A Visual Basic 2005 környezet 1. óra Irány

Részletesebben

Szoftver-technológia I.

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:

Részletesebben

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Készítette: Gipsz Jakab Neptun-azonosító: ABC123 E-mail: gipszjakab@seholse.hu Kurzuskód: IT-13AAT1EG 1 A fenti

Részletesebben

Angolul: Extreme Programming, röviden: XP Agilis módszertan. Más módszertanok bevált technikáinak extrém módú (nagyon jó) használata

Angolul: Extreme Programming, röviden: XP Agilis módszertan. Más módszertanok bevált technikáinak extrém módú (nagyon jó) használata Angolul: Extreme Programming, röviden: XP Agilis módszertan. Más módszertanok bevált technikáinak extrém módú (nagyon jó) használata jelentése: gyors, fürge 1990-es évek vége Változás igénye Módszertan-család

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

Delphi programozás III.

Delphi programozás III. Delphi programozás III. A Delphi for ciklusa II. A Delphi újabb verziói egy olyan for ciklust vezettek be, amely a régebbi Delphi-verziókban vagy pl. a Turbo Pascalban még nem voltak ismertek. A for-element-in-collection

Részletesebben

Turbo Delphi használata az oktatásban

Turbo Delphi használata az oktatásban Turbo Delphi használata az oktatásban Törley Gábor (pezsgo@elte.hu) Bevezetés A Turbo márkanév ismerősen cseng a tapasztalt programozó fülében. Annak idején, ezen a néven adta ki a Borland a fejlesztőkörnyezeteit,

Részletesebben

Programozási technológia

Programozási technológia Programozási technológia Dinamikus modell Tevékenységdiagram, Együttműködési diagram, Felhasználói esetek diagramja Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Tevékenység diagram A tevékenység (vagy

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

SZAKDOLGOZAT. Kiss Albert

SZAKDOLGOZAT. Kiss Albert SZAKDOLGOZAT Kiss Albert Debrecen 2009 Debreceni Egyetem Informatikai Kar A VIZUÁLIS PROGRAMOZÁS TANÍTÁSA A DEBRECENI MECHWART ANDRÁS GÉPIPARI ÉS INFORMATIKAI SZAKKÖZÉPISKOLÁBAN Témavezető: Nyakóné dr.

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

A feladat. A főprogram

A feladat. A főprogram A feladat A magyar kártya típusának megvalósítása. Tisztázandók: 1. Milyen műveletek értelmesek a típussal kapcsolatosan? 2. Hogyan ábrázolható a típus? 3. Miként valósíthatók meg a műveletek figyelembe

Részletesebben

ETR Hallgatói webes alkalmazás

ETR Hallgatói webes alkalmazás ETR Hallgatói webes alkalmazás Az ETR elérhetősége: https://etr.kefo.hu Ill. a www.ketif.hu oldalról Gyorslinkek menüpont ETR link (jobb oldali menüsor) Bevezetés Tisztelt Felhasználó! Ön az Egységes Tanulmányi

Részletesebben

Podoski Péter és Zabb László

Podoski Péter és Zabb László Podoski Péter és Zabb László Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök előnyeit és hiányosságait Kidolgoztunk egy saját megjelenítő

Részletesebben

A Java EE 5 plattform

A Java EE 5 plattform A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11. 13. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési

Részletesebben

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

Programozási nyelvek a közoktatásban alapfogalmak II. előadás Programozási nyelvek a közoktatásban alapfogalmak II. előadás Szintaxis, szemantika BNF szintaxisgráf absztrakt értelmező axiomatikus (elő- és utófeltétel) Pap Gáborné. Szlávi Péter, Zsakó László: Programozási

Részletesebben

Grafikus felhasználói felület (GUI) létrehozása A GUI jelentése Egy egyszerű GUI mintaalkalmazás létrehozása

Grafikus felhasználói felület (GUI) létrehozása A GUI jelentése Egy egyszerű GUI mintaalkalmazás létrehozása Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0. MATLAB alapismeretek IX. A GUI jelentése Egy egyszerű GUI mintaalkalmazás létrehozása Alkalmazott Informatikai Intézeti

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

Programozás alapjai. 10. előadás

Programozás alapjai. 10. előadás 10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:

Részletesebben

Feladataink, kötelességeink, önkéntes és szabadidős tevékenységeink elvégzése, a közösségi életformák gyakorlása döntések sorozatából tevődik össze.

Feladataink, kötelességeink, önkéntes és szabadidős tevékenységeink elvégzése, a közösségi életformák gyakorlása döntések sorozatából tevődik össze. INFORMATIKA Az informatika tantárgy ismeretkörei, fejlesztési területei hozzájárulnak ahhoz, hogy a tanuló az információs társadalom aktív tagjává válhasson. Az informatikai eszközök használata olyan eszköztudást

Részletesebben

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Készítette: Gipsz Jakab Neptun-azonosító: A1B2C3 E-mail: gipszjakab@vilaghalo.hu Kurzuskód: IP-08PAED Gyakorlatvezető

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

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

Algoritmizálás és adatmodellezés tanítása 4. előadás Algoritmizálás és adatmodellezés tanítása 4. előadás Típusok osztályozása Összetettség (strukturáltság) szempontjából: skalár (más szóval elemi vagy strukturálatlan) összetett (más szóval strukturált)

Részletesebben

7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet

7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet 7. BINÁRIS FÁK Az előző fejezetekben már találkoztunk bináris fákkal. Ezt a központi fontosságú adatszerkezetet most vezetjük be a saját helyén és az általános fák szerepét szűkítve, csak a bináris fát

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

Adatbázis és szoftverfejlesztés elmélet

Adatbázis és szoftverfejlesztés elmélet Adatbázis és szoftverfejlesztés elmélet Témakör 4. Összefoglalás 1. A kódolás eszközei Általános szövegszerkesztő Programozói szövegszerkesztő Fejlesztői környezet Vizuális fejlesztői környezet Általános

Részletesebben

Számítógépes grafika

Számítógépes grafika Számítógépes grafika XXIX. rész Más OpenGL lehetőségek A GLUI A GLUI egy Paul Rademacher által fejlesztett GLUT alapú C++-ban felhasználói felületet megvalósító függvénykönyvtár, amely letölthető a http://www.cs.unc.edu/~rademach/glui/

Részletesebben

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E Követelmény A beadandó dokumentációját a Keszthelyi Zsolt honlapján található pdf alapján kell elkészíteni http://people.inf.elte.hu/keszthelyi/alkalmazasok_fejlesztese

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

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba Témavezető: Horváth Zoltán és Simon Thompson OTDK 2007, Miskolc Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK

Részletesebben

Algoritmizálás + kódolás C++ nyelven és Pascalban

Algoritmizálás + kódolás C++ nyelven és Pascalban Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban

Részletesebben

Programozási alapismeretek 1. előadás

Programozási alapismeretek 1. előadás Programozási alapismeretek 1. előadás Tartalom A problémamegoldás lépései programkészítés folyamata A specifikáció Az algoritmus Algoritmikus nyelvek struktogram A kódolás a fejlesztői környezet 2/33 A

Részletesebben

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása 1 Információk 2 A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin Elérhetőség mesko.katalin@tfk.kefo.hu Fogadóóra: szerda 9:50-10:35 Számonkérés időpontok Április 25. 9 00 Május 17. 9 00 Június

Részletesebben

Objektum orientált software fejlesztés (Bevezetés)

Objektum orientált software fejlesztés (Bevezetés) Objektum orientált software fejlesztés (Bevezetés) Lajos Miskolci Egyetem Általános Informatikai Tanszék Út az objektum orientált szemléletig 1. Klasszikus módszerek: program = adatszerkezetek + algoritmusok

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 18. 2. El adás Komplex szám public class Complex { private float repart_; private float impart_; public Complex() { repart_ = 0; impart_ = 0; public Complex(float

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

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

Érdekes informatika feladatok

Érdekes informatika feladatok A keres,kkel és adatbázissal ellátott lengyel honlap számos díjat kapott: Spirit of Delphi '98, Delphi Community Award, Poland on the Internet, Golden Bagel Award stb. Az itt megtalálható komponenseket

Részletesebben

22. GRÁFOK ÁBRÁZOLÁSA

22. GRÁFOK ÁBRÁZOLÁSA 22. GRÁFOK ÁBRÁZOLÁSA A megoldandó feladatok, problémák modellezése során sokszor gráfokat alkalmazunk. A gráf fogalmát a matematikából ismertnek vehetjük. A modellezés során a gráfok több változata is

Részletesebben

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein. Programozás C++ osztályok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. április 8. Csak bázisosztályként használt/értelmezhető

Részletesebben

ISA szimulátor objektum-orientált modell (C++)

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

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

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

Oktatási környezetek vizsgálata a programozás tanításához

Oktatási környezetek vizsgálata a programozás tanításához Oktatási környezetek vizsgálata a programozás tanításához Horváth Győző, Menyhárt László Gábor Zamárdi, 2014.11.21. Készült az "Országos koordinációval a pedagógusképzés megújításáért című TÁMOP- Tartalom

Részletesebben

Java I. A Java programozási nyelv

Java I. A Java programozási nyelv Java I. A Java programozási nyelv története,, alapvető jellemzői Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 02. 12. Java I.: Történet, jellemzők, JDK JAVA1 / 1 Egy kis történelem

Részletesebben

Web-programozó Web-programozó

Web-programozó Web-programozó Az Országos Képzési Jegyzékről és az Országos Képzési Jegyzékbe történő felvétel és törlés eljárási rendjéről szóló 133/2010. (IV. 22.) Korm. rendelet alapján. Szakképesítés, szakképesítés-elágazás, rész-szakképesítés,

Részletesebben

A szoftverfejlesztés eszközei

A szoftverfejlesztés eszközei A szoftverfejlesztés eszközei Fejleszt! eszközök Segédeszközök (szoftverek) programok és fejlesztési dokumentáció írásához elemzéséhez teszteléséhez karbantartásához 2 Történet (hw) Lyukkártya válogató

Részletesebben

INFORMATIKA - VIZSGAKÖVETELMÉNYEK. - négy osztályos képzés. nyelvi és matematika speciális osztályok

INFORMATIKA - VIZSGAKÖVETELMÉNYEK. - négy osztályos képzés. nyelvi és matematika speciális osztályok INFORMATIKA - VIZSGAKÖVETELMÉNYEK - négy osztályos képzés nyelvi és matematika speciális osztályok A vizsgák lebonyolítása A tanuló előre elkészített feladatkombinációkból húz véletlenszerűen. OSZTÁLYOZÓ

Részletesebben

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Magas szintű adatmodellek Egyed/kapcsolat modell I. Magas szintű adatmodellek Egyed/kapcsolat modell I. Ullman-Widom: Adatbázisrendszerek. Alapvetés. 4.fejezet Magas szintű adatmodellek (4.1-4.3.fej.) (köv.héten folyt.köv. 4.4-4.6.fej.) Az adatbázis modellezés

Részletesebben

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport TANMENET Informatika szakmacsoport Programozási gyakorlatok III. tantárgy 12. évfolyam A osztály 2013/2014 tanév Heti óraszám: Éves óraszám: 3 óra 96 óra Készítette: Szikszai Gusztáv tanár Ellenőrizte:.

Részletesebben

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv Image Processor BarCode Service Áttekintés CIP-BarCode alkalmazás a Canon Image Processor programcsomag egyik tagja. A program feladata, hogy sokoldalú eszközt biztosítson képállományok dokumentumkezelési

Részletesebben

Makrózás gyakorlat (GYAKORLAT)

Makrózás gyakorlat (GYAKORLAT) MAKRÓZÁS (GYAKORLAT) 0 MI A MAKRÓ? A makró egy tevékenység mintája, sablonja. 0.1 Egy kőkorszaki példa Makró-assembler Gyakori volt, hogy sokszor ismétlődő kóddarabokat kellett a programba beilleszteni.

Részletesebben

Programozás módszertan p.1/46

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

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

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

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek középszint 0721 ÉRETTSÉGI VIZSGA 2007. október 24. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI ÉS KULTURÁLIS MINISZTÉRIUM

Részletesebben

Verifikáció és validáció Általános bevezető

Verifikáció és validáció Általános bevezető Verifikáció és validáció Általános bevezető Általános Verifikáció és validáció verification and validation - V&V: ellenőrző és elemző folyamatok amelyek biztosítják, hogy a szoftver megfelel a specifikációjának

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

Értékelési útmutató a középszintű szóbeli vizsgához. Angol nyelv

Értékelési útmutató a középszintű szóbeli vizsgához. Angol nyelv Értékelési útmutató a középszintű szóbeli vizsgához Angol nyelv Általános jellemzők FELADATTÍPUS ÉRTÉKELÉS SZEMPONTJAI PONTSZÁM Bemelegítő beszélgetés Nincs értékelés 1. Társalgási feladat: - három témakör

Részletesebben