Programozás elmélet tananyag

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

Download "Programozás elmélet tananyag"

Átírás

1 < Programozás elmélet Programozás elmélet tananyag Szerző: Sallai András Copyright Sallai András, 2011, 2013, 2014 Licenc: GNU Free Documentation License 1.3 Web: [ Bevezetés A programozás során felmerülő, nyelvtől független elméleti témák. A leírás jegyzet jellegű. Minden visszajelzést szívesen várok. A programozás egy olyan művészet, ahol folyamatosan megfogjuk a kódot és átgyúrjuk újra és újra. A programozásról Fogalmak Mit értünk programozás alatt? Hétköznapi és speciális feladatok modellezése a számítógépen. Cél: Célunk új program létrehozása, illetve a meglévők továbbfejlesztése. Mik a programozás eszközei? Folyamatleíró eszközök, fordítók, interpreterek és mesterséges programozási nyelvek, szerkesztők, hibakövetők. A programozási nyelvek elhelyezése a nyelvek világában: A mesterséges nyelvek feloszthatók formális és kommunikációra szánt nyelvre. Mi ebből a formális nyelvekkel foglalkozunk. Programozás szakaszai elemzés (analízis) tervezés kódolás tesztelés dokumentálás 1/30

2 terjesztés karbantartás Gyakorlat Mi a programozás? Milyen szakaszokra osztható a programozás? Hogyan csoportosíthatjuk a nyelveket? Milyen eszközei vannak a programozásnak? Elemzési szakasz Az elemzési szakaszban felmérjük a helyzetet. Megnézzük modellezhető e a probléma számítógépen. Ha igen, milyen eszközök alkalmasak a megoldásra. Dokumentálom. Megnézzük milyen adatok vannak? Bemenő adatok típusok mennyiségek bevitel befejezése feltételek Kimenő adatok adatok közötti kapcsolatok típus megjelenítendő tárolandó Tervezési szakasz A tervezési szakaszról A tervezési szakaszban fokozatosan elemeire bontjuk a problémát, meghatározzuk a megoldás algoritmusát. Egy feladatot több kisebb egységre osztunk fel. Maximálisan annyi egységre osztjuk fel amit még képesek vagyunk átlátni. Van aki ezt maximálisan 7 egységben adja meg, van aki 30. Maximálisan 10 egységre való felbontást ajánlom. A felbontott egységeket újabb egységekre bonthatjuk. Eldöntjük milyen programozási nyelvet választunk. Algoritmus Az algoritmus egyértelműen előírt módon és sorrendben végrehajtandó tevékenységek véges sorozata Az algoritmusról tehát elmondhatjuk, hogy véges számú lépesben kell végrehajtani. Kapunk valamilyen eredményt. Az egyes lépések egyértelműek. Azonos jellegű feladatokra is használható. Determinisztikus, vagyis ugyanazokra a bemenő adatokra, ugyanazokat a kimenő adatokat kapjuk. A programok algoritmusokból állnak. Az algoritmusok tulajdonképpen matematikai minták. Az algoritmus szót egy arabul író perzsa tudós és matematikus nevéhez fűzzük: Abu Abdalláh Muhammad ibn Músza al Hvárizmi ( ), aki kidolgozta a matematikai algoritmus fogalmát. Az algoritmus szó tulajdonképpen az al Hvárizmi név rossz fordítása. Az algoritmusok egyes lépéseit tevékenységként szoktuk emlegetni. A tevékenységet a következő ábra alapján osztályozhatjuk. 2/30

3 A szekvenciális tevékenység, az amikor a egymás után vesszük lépéseket. A szelekciós tevékenység estén bizonyos utasítások végrehajtását feltételhez kötjük. Ha feltétel teljesül, akkor végrehajtjuk az utasításohalmazt, ha nem akkor nem csinálunk semmit, vagy egy másik utasításhalmazt hajtunk végre. A szelekciós tevékenységet szokás még elágazás vagy döntés néven emlegetni. Az iteráció, másként ciklus vagy ismétlés. Egy adott lépést többször szeretnénk végrehajtani. A iterációk osztályozása: Növekményes Iteráció (ciklus) Amíg típusú Tudjuk hányszor ismétlünk Nem tudjuk hányszor ismétlünk Osztályozás másként: Elől tesztelő előbb tesztelünk utána hajtjuk végre az utasításokat Iteráció (ciklus) előbb tájékozódunk kell e még dolgoznunk ha igen, dolgozunk utána megint megnézzük Algoritmizálás eszközei Hátul tesztelő egyszer végrehajtjuk az utasításokat és csak utána tesztelünk előbb dolgozunk, utána tájékozódunk, kell e még mondatszerű leírás pszeudokód folyamatábra struktogram Jackson ábra Mondatszerű leírás Szövegesen leírom az algoritmust Szekvenciális tevékenység 2 szám összeadása: Program indul Bekérünk egy számot Bekérünk egy másik számot Összeadjuk az első és második számot, majd eltároljuk egy harmadik helyen Kiírjuk a harmadik hely értékét Program vége 3/30

4 Szelekciós tevékenység Kisebb vagy nagyobb mint 10: Program indul Beérünk egy számot Ha az "A" nagyobb akkor a következőt tesszük: Kiírjuk: nagyobb ellenkező esetben a következőt tesszük: Kiírjuk: kisebb Ha vége Program vége Iterációs tevékenység Összeadás 0 végjelig: Program indul A legyen egyenlő 1-el B legyen egyenlő 0-l ismétlés amíg A nem egyenlő 0-l bekérünk A helyre egy új számot Az A értékét B-hez adjuk, majd az összeget B-ben tároljuk ismétlés vége Kiírjuk B értékét Program vége Iterációs tevékenység hátul tesztelve Összeadás 0 végjelig: Program indul A legyen egyenlő 1-el B legyen egyenlő 0-l csináld bekérünk A helyre egy új számot Az A értékét B-hez adjuk, majd az összeget B-ben tároljuk ismétlés amíg A nem egyenlő 0 értékkel Kiírjuk B értékét Program vége Pszeudókód 2 szám összeadása Bekér egy A számot, majd egy B t. Összeadom, az eredményt C változóban helyezem el. Kiíratom a C értékét. Készen vagyok. Szekvenciális tevékenység 2 szám összeadása: Start Be A Be B C = B + A Ki B Stop Szelekciós tevékenység Kisebb vagy nagyobb mint 10: Start Be A Ha A>10 akkor Ki nagyobb ellenben Ki kisebb Ha vége Stop 4/30

5 Iterációs tevékenység Összeadás 0 végjelig: Start A=1 B=0 ismétlés (A <> 0) bekér A B=B+A ismétlés vége Kiír B Stop Iterációs tevékenység hátul tesztelve Összeadás 0 végjelig: Start A=1 B=0 csináld bekér A B=B+A ismétlés (A <> 0) Kiír B Stop Folyamatábra A folyamatábra még néhány ismert magyar és angol elnevezése: blokkdiagram végrehajtási gráf Control Flow Graph (CFG) flowchart [floucsát] A folyamatábra alakzatai: A folyamatábra alakzatainak felhasználása: 5/30

6 Szekvenciális tevékenység 2 szám összeadása: Szelekciós tevékenység Kisebb vagy nagyobb mint 10: Iterációs tevékenység Összeadás 0 végjelig: 6/30

7 Alternatív alakzatok a folyamatábrákban Folyamatábra példák 7/30

8 8/30

9 Struktogram A struktogram grafikus alapú algoritmus ábrázolási módszer ben Isaac Nassi és Ben Shneiderman tette először közzé. Nevük után Nassi Shneiderman (NSD) ábra néven is ismert ben Chapin is közé tette ezért chapin ábra (chapin chart) néven is ismert. Magyarországra a struktogram szó a német struktogramm szóból eredeztethető, amelyet struktúradiagramm néven szokás fordítani. Angol nyelvterületen inkább Nassi Shneiderman diagram néven használják. Ha magyarosabban szeretnénk leírni, akkor talán a szerkezetrajz lenne a legjobb. Az oktatásban a struktogram szót használják. A leírása sajnos nem egységes. Egyesek r nélkül írják, mások két m el a végén. A helyesírás ellenőrzők a három közül egyiket sem fogadják el. Felszokott még merülni a blokk diagram, de ezt nevet használják a folyamatábra jelölésére is. A struktogramban a folyamatok leírására téglalapot használunk. 9/30

10 Szekvenciális tevékenység Szelekciós tevékenység Iterációs tevékenység Szekvenciális tevékenység példa Két szám összeadása: 10/30

11 Szelekciós tevékenység példa Kisebb vagy nagyobb mint 10 Iterációs tevékenység példa Összeadás 0 végjelig: Jackson ábra A Jackson ábrát Michael Anthony Jackson brit számítógéptudós találta ki, a nevét is róla kapta. Szekvenciális tevékenység Szekvencia esetén a tevékenységeket mindig balról jobbra bontjuk ki. 11/30

12 Szelekciós tevékenység Iterációs tevékenység Programtervezési stratégiák Felülről lefele (top down) tervezés Lépésenként finomítjuk a programot. A programot előbb nagyobb egységere bontjuk, majd minden lépést finomítunk. Előnye: A belső megoldások elrejthetők Nem lehet hibázni Alulról felfelé (down top) tervezés Téglánkénti építkezés elve. A legegyszerűbből kiindulva egyre bonyolultabb megoldást hozunk létre. Látszólagos előnyei: Ugyanazt az elemet több helyen felhasználhatjuk. Ha mégis hiányzik valami, még utólag meg lehet tervezni. Gyakorlat Mit jelent a programozásban az elemzési szakasz? Mi az algoritmius? Milyen szakaszai vannak a programozásnak? Mire jó folyamatábra? Mi a különbség a mondatszerű leírás és a pszeudókód között? 12/30

13 Mik a programozás alaptevékenységei? Mik a programozásban a vezérlőtevékenységek? Magas szintű nyelveken nem ajánlott az ugróutasítás használata. Miért? Milyen alakzattal ábrázoljuk a szelekció feltételét? Kódolási szakasz A kódolás számítógép számára érthető utasítások létrehozása. Programozói környezet Szövegszerkesztő Fordító (compiler) Összeszerkesztő (linker) hibakövető (debugger) Programozói könyvtárak Operációs Rendszer IDE Integrált Development Environment azaz IDE, magyarul Integrált Fejlesztői Környezet. Ez általában egy olyan speciális szövegszerkesztő, amely képes egyben a fordításra, összeszerkesztésre, hibakövetésre, esetleg sok más kényelmi szolgáltatást nyújt. Vizuális Fejlesztőeszköz Általában GUI (grafikus felhasználó felület) tervezésénél használható tervező eszköz, ahol a kinézetet nem a forráskódban állítjuk elő, hanem egér húzzással kattintással egy vizuális felületen. Programozói könyvtárak Előre elkészített programokban felhasználható komponensek. Úgy is mondhatnánk előre megírt utasítások, megvalósítások. Debugger Egy program, amelyet hibakövetésre, a szemantikai hibák felderítésére találtak ki. Néhány debugger Környezet Debugger GCC gdb Java jdb Program Utasítások sorozata a számítógép számára. Olyan mint a recept és a szakács. A recept utasítások sorozat, amit a szakács végrehajt. Gépikód A gép számára végrehajtható utasítások sorozata. Ez az az eset, amikor a recept például magyarul íródott és a szakács is beszéli. A programozó ma már nem gépi kódban írja a programjait a kényelem előtérbe helyezése miatt. A programozó által használt nyelvet így le kell fordítani még gépikódra. Ez az az eset, amikor a recept például kínai nyelven íródott, a szakács viszont csak magyarul tud. Valakinek le kell fordítani. A gépikód elemi utasításokból áll, amelyek binárisan vannak kódolva, azaz 1 és 0 k sorozatából áll. A program szó használata 13/30

14 Szűkebb értelemben Csak a gépikód. Tágabb értelemben A gépikód és a programozási nyelvben megfogalmazott utasítások. A kódolás menete nyelv választás gépelés (az algoritmus kódolása) szintaktikai hibák javítása futtatás szemantikai hibák javítása (tesztelés) Ábécé A nyelv jelkészlete A nyelvben használt betűk, számok, karakterek Szintaxis A mondatalkotási szabályok Szemantika Az a mód, ahogyan az utasításokhoz jelentést rendelünk Hivatkozási nyelv Egy magas szintű nyelv definíciója, leírása. A definíció általában szabvány. Nem konkrét megvalósítás. Nyelv implementációja Egy nyelv megvalósítása, bármilyen rendszerben. A hivatkozási nyelvvel nem szokott teljesen kompatibilis lenni. Mi lehet programozási nyelv? Bármilyen mesterséges nyelv, amely megfelelő eszközökkel rendelkezik az adatszerkezetek és az azokat kezelő, átalakító eljárások egyértelmű leírására. Programozási nyelvek mellett követelmény: fordító vagy értelmező 14/30

15 Alacsony szintű nyelvek Gépközeli nyelvek Például: gépikód, assembly Magasszintű nyelvek Hasonlítanak az emberi gondolkodásra, nagyobb az elvonatkoztatás (absztrakció) mértéke. Az nagyobb elvonatkoztatás következménye a platformfüggetlenség. Egy ilyen magas szintű nyelv létrehozásának célja a könnyebb és gyorsabb kódolás. Ha például a képernyőre akarok írni egy szöveget, nem kell nekem azt 4,5 vagy akár több utasítással megtennem, helyette egyetlen utasítást kell kiadnom. Imperatív nyelvek Utasításszerkezetűek alapeszközei az utasítások és a változók minden utasítás mögött gépi kód áll algoritmikus nyelvek azt az algoritmust írom le, amelyet a gép végrehajt a program a hatását a memóriában elhelyezett értékeken hajtja végre Imperatív nyelvek osztályozása Eljárás orientált Objektum orientált Fortran C++ Cobol Java C Simula67 Ada Eiffel Pascal Smalltalk PL/1 C# 15/30

16 Algol60 Az eljárás orientált nyelvek között vannak persze olyanok amelyeknek van objektum orientált megvalósításuk. Ilyen a C és Pascal nyelv. Deklaratív nyelvek nem algoritmikusak csak a problémát fogalmazzuk meg, a megoldást nem nincs utasítás az algoritmikus nyelvbe van építve a programozó a memória értékeivel nem dolgozik Deklaratív nyelvek osztályozása Funkcionális nyelvek Logikai nyelvek Lisp Prolog Lisp Rekurzív függvények absztrakt ábrázolására tervezték. Prolog Alain Colmerauer fejlesztett ki A mesterséges intelligencia kutatás előszeretettel alkalmazza. Más elvű nyelvek Nem deklaratív és nem imperatív, azok elveit tagadja. Más elvű nyelvek Apl Matematikai problémák megoldására használjuk. Nyelvek osztályozásának összefoglalása Ha precízebbek akarunk lenni akkor a mesterséges nyelveket feloszthatjuk még formális és beszélt nyelvre. A programozási nyelvek természetesen a formális nyelvekből eredeztethető. A kódolás eszközei 16/30

17 clear text szövegszerkesztő programozói szövegszerkesztő fejlesztői környezet vizuális fejlesztői környezet clear text szövegszerkesztő Egy clear text szövegszerkesztő bármely nyelven való programozáshoz jók. Ilyenek lehetnek Windowson a Jegyzettömb, a Notepad2, Notpad++, stb. Linuxon mcedit, nano, gedit, stb. programozói szövegszerkesztő Általában olyan szövegszerkesztő, amelyet kifejezetten programozók számára készítettek. Sok olyan funkciót találunk benne, amely megkönnyíti a programok írását. Több platformos, sok nyelvet támogató ilyen szövegszerkesztő például a Scite. A Scite az útvonalba lévő fordítókat, interpreterekt felismeri, így azok azonnal használhatók. A programok fordítás után futtathatók. Fejlesztői környezet Általában valamely programozási nyelvhez tartozó olyan program, amely a programozói munkát a lehető legkönnyebbé igyekszik tenni. Általában tartalmaz hibakövető eszközöket. A fordítás és a futtatás néhány kattintással történik. CodeBlock (C, C++, D, de bármely nyelv integrálható) Dev C++ FreePascal IDE stb. Vizuális fejlesztői környezet A program felületét vizuális eszközökkel tudjuk megtervezni, a felület egyes elemeihez eseményeket tudunk rendelni. CodeBlock (wxwidget projektel) MS Visual Studio xxxx Delphi Lazarus Programkészítési technikák Fordító Egy program készítése és használata három szakaszra osztható 1. A programot megfogalmazzuk egy programozási nyelven (Ez a forráskód) 2. Gépikódú utasításra lefordítjuk 3. Futtatjuk A program futtatását az operációs rendszer végzi. Az ilyen programot szokás natív kódnak is nevezni. Értelmező Az implementált programozási nyelvek egy részéhez nem fordítót készítenek hanem értelmezőt. Az értelmező használata esetén a programot csak a futtatással egy időben fordítjuk le gépkódú utasítok sorozatára. Így magát a forráskódot futtatjuk. Az így előállított program természetéből adódóan lassabban fut, mivel előbb le kell azt fordítani. A program futtatásához kell egy értelemező az operációs rendszerre. Bájtkód A bájtkód előállításánál a fordító és az értelmezős technika együtt kerül alkalmazásra. A forráskódot lefordítjuk, de nem gépikódra. Egy köztes kódra fordítjuk, melynek neve bájtkód. Ha futtatni akarjuk előbb az értelmezővel fordítjuk gépikódra, 17/30

18 ami elindul. Ez elvileg gyorsabb mint a szimpla értelmezős technika, mivel az eredeti forrást már előfordítottuk. A fordítás lépései A fordítás nem egy meneteben történik. Először egy ún. tárgykódot (objekt fájl) készítünk. Ez Windowsos rendszereken.obj, Linuxos rendszereken.o kiterjesztésű fájlt jelent. Ez után szerkesztővel elkészítjük a futtatható állományt. Ennek haszna több forrásfájlnál mutatkozik meg. Először minden forrásfájlt tárgykódú állománnyá fordítunk, majd ezeket összeszerkesztjük egyetlen futtatható állománnyá. A fordításhoz tehát két programra van szükség: fordító szerkesztő A fejlesztői környezetek, és ma már a legtöbb fordító parancs ezt a két műveletet egyben megcsinálja. Kódszöveg szerkesztése Karakter A legelemibb alkotórész. Megjelenései az adott kódtáblától is függ. Betűk számjegyek egyéb karakterek pl.: * _ # $ A program lexikális egységei azonosítók fenntartott szavak címkék elválasztó jelek megjegyzések változók konstansok Azonosítók A programban saját objektumainknak valamilyen nevet adunk azonosítás céljából. Az azonosítók jellemzői: betűvel kezdődik 18/30

19 betűvel vagy számmal folytatódhat saját objektumaink megnevezésére használjuk Fenntartott szavak A nyelvben már valamilyen céllal felhasznált nevek azonosító jellegű és felépítésű a nyelv rendel hozzá jelentést csak az adott célra használhatók Címkék utasítások azonosítására használható valahol számmal is kezdődhet lehet azonosító jellege Elválasztó jelek régen: egy sorba egy utasítás szabad formátumú: utasítás szeparátor (elhatároló jelek): ;, : ( ) Megjegyzés A megjegyzések nem a fordítónak vagy az interpreternek szólnak, hanem a programozónak. Saját programjainkat gyakran látjuk el megjegyzésekkel, hogy később gyorsan kiderüljön mit is csinál az adott kód. Példák: PL/1, C, C++, C# /* több soros megjegyzés */ //megjegyzés Pascal { megjegyzés } Shell, Perl # megjegyzés Néhány programozási nyelvben csak egy soros megjegyzések alkalmazhatók, valamelyik több sorosat is megenged. Változó A változók olyan memóriaterületek, amelyeken valamilyen értéket tárolunk, de azok értékét bármikor megváltoztathatjuk. Egy változó felépítése név attribútum cím érték Név Egyedi azonosító 19/30

20 Attribútum Az attribútumoknak a következő típusai léteznek: explicit deklaráció programozó végzi Pl.: char a; vagy var a : char; C nyelvben implicit deklaráció programozó végzi Pl.: ab Ha a hoz már rendelve volt egy típus A Fortran nyelvben van ilyen automatikus a fordító határozza meg a típust Fortran, C nyelvben is van, stb. Cím A memória címe, ahol a változó van. Címhozzárendelés lehet: statikus Futás előtt rendelődik a változóhoz, majd állandó dinamikus futási időben kap hozzárendelést futás közben változhat a hozzárendelést a futtató rendszer végzi kézi (programozó végzi) abszolút címet a változó nevéhez rendeljük relatív címet a változó nevéhez rendeljük, már a memóriában elhelyezett objektum címéhez képest a futtató rendszert kérjük segítségül A C nyelv mind a hármat ismeri, de hangsúlyt kap a programozó által vezérelt címzés Érték az adott memória helyen elhelyezett szám a típus megadja, hány byteon van tárolva Konstansok A konstans szintén egy a memóriában lefoglalt terület egy érték számára. A konstansok esetén a programozó azonban azt vállalja, hogy annak értékét a továbbiakban nem változtatja meg. Osztályozás nevesített konstans literál konstans Nevesített konstansok felépítése név típus érték (címkomponens hiányában nem változtatható meg) 20/30

21 Literál konstansok felépítése típus érték A literálkonstansnak tehát nincs neve. Az értéket egyszerűen leírjuk. A számokat általában önmagában, a karaktersorozatokat általában idézőjelek, vagy aposztrófok között. A literálkonstans önmagát deklarálja. A programba fix értékkel kerülnek. Például: "alma" A példa első sora egy egész típusú literális konstanst határoz meg. A második és a harmadik egy valós típusú konstanst. A negyedik egy karaktersorozat típusú konstanst. Gyakorlat Mit jelent a szemantika? Mit jelent a szintaktika? Mi az a gépikód? Hogyan osztályozhatjuk a programozási nyelveket? Hogyan osztályozhatjuk a magas szintű programozási nyelvek? Mondjon példát deklaratív nyelvre. Hogy épül fel egy változó? Mi az a konstans? Milyen részekből áll egy konstans? Mi az a hivatkozási nyelv? Sorolja fel a kódolás eszközeit. Mit értünk fenntartott szavak alatt? Mondjon példát a szemantikai hibára. Tesztelési szakasz A tesztelés biztosítja program minőségét. fehérdobozos tesztelés feketedobozos tesztelés A fehérdobozos tesztelés azért fehér mert a tesztelő a forráskóddal dolgozik. A feketedobozos tesztelés esetén a tesztelőnek nem áll rendelkezésre a forráskód. Szintaktikai tesztelést már a kódolási szakaszban is végzünk, hiszen e nélkül nem tudnánk továbbhaladni a program lekódolásában. Ugyanakkor tesztelnünk kell folyamatosan szemantikailag is, másként a program működése kétséges lesz. Ha a program elkészült ez után átadjuk a programot olyan felhasználóknak, akiket azért alkalmazunk, hogy teszteljék a programot. Az ilyen állapotban lévő programot szokás béta verziónak nevezni. A béta verziók még nem a végfelhasználók számára készült programok. A tesztelők feljegyzik a talált hibákat, majd elküldik azt a programozóknak. Egy program persze sosem készül el, így ha azt kiadjuk használatra a felhasználók is fognak hibajelzéseket visszaküldeni. 21/30

22 Dokumentálás szakasza Mit dokumentálunk? Két fajta dokumentációt szokás készíteni. fejlesztői felhasználói Fejlesztői dokumentáció A kódolási szakaszban a programozó írhat megjegyzéseket a forráskódba és ez is a programozói dokumentáció része. Azonban a jó programozó olyan függvény és változó és más azonosító nevekkel dolgozik, amelyek önmagában, mindenféle megjegyzés nélkül olvashatóvá teszik a forráskódot. Ha nem ilyen a forráskódot, akkor valamit újra kell tervezni. A programozók számára készített dokumentáció azonban külön dokumentumok készítését is jelenti. Későbbi továbbfejlesztés esetére dokumentáljuk a programban alkalmazott függvényeket és eljárásokat, azok be és kimenő adatait, a fontos változókat. Leírjuk melyik fájlban mit találunk. Továbbfejlesztés során a dokumentáljuk a változásokat. 22/30

23 Felhasználói dokumentáció Az adott program használatának leírása, segítség. A program a felületén milyen adatokat vár, mit fog előállítani. Szélső értékek. Hibalehetőségek, korlátozások. A program továbbfejlesztése vagy javítása esetén dokumentáljuk a változásokat, új funkciókat. Ez a változat leírás, angolosan Changelog. A változat leírásban egy dátum, alatt leírjuk a programunk melyik verziónál tart és felsoroljuk milyen változtatásokat hajtottunk végre a programban. A változatleírás egy program életében nagyon fontos, mert a legtöbb végfelhasználó ennek elolvasása után akarja a programunk következő verzióját beszerezni. 23/30

24 Gyakorlat Milyen dokumentációkat készítünk a programkészítés során? A változatleírást milyen nevű fájlban szokás elkészíteni? Terjesztés szakasza A terjesztésről A terjesztés előtt át kell gondolnunk milyen engedéllyel szeretnénk terjeszteni az elkészített alkalmazásunkat. Ennek megfelelően meg kell írnunk a terjesztési engedélyt, azaz a licencet. Egyes programozók a licencet magában a programban is elhelyezik, ahol valamely menüpont meghívása után elolvashatjuk. Fontos jeleznünk a program szerzői jogi védelmét. Ennek módja a programban és annak forráskódjában elhelyezett védjegy, amelynek körülbelül így kell kinézni: Copyright (C) Nagy József, 2010 A fenti sorok azt mondják számunkra, hogy azt a művet amihez csatolva ezt olvassuk Nagy József birtokolja a szerzői jogait 2010 től. Választanunk kell egy terjesztési formát. Amely lehet forrás, vagy bináris a licenctől függően. A terjesztett állomány egyszerű tömörített állomány lesz vagy telepítő programba építjük, vagy egy adott operációs rendszer számára telepítőt készítünk. Mivel szoftverről van szó, amit terjeszteni fogunk az egy vagy több állomány lesz, attól függően a programot hogyan írtuk meg. A program kódja mellé minimális követelmény egy licenc nevű fájl, amiben a leírjuk a terjesztés licencét. Szokás még egy readme.txt vagy egy olvasd.txt fájl elhelyezése. Ebben leírhatjuk mit lehet tudni a programról. Szokásos fájlok Állományok terjesztésnél 24/30

25 programállomány vagy állományok Licenc.txt Readme.txt Install.txt ChangeLog Todo.txt Bug.txt A Licenc.txt fájlba értelemszerűen a felhasználás feltételei kerülnek. A Readme.txt fájlba a programról rövidebb, vagy hosszabb leírást adhatunk. Ki készítette, mire jó a program, hol érhető el az Interneten. De használati utasítás is ide kerülhet. Az Install.txt állományban leírjuk hogyan mik a telepítés feltételei, milyen osztott könyvtárak (.dll,.so) szükségesek a futtatáshoz. A ChangeLog fájlba írjuk le a változásokat, a változás dátumával, és mit változtattunk, mit javítottunk. A Todo.txt állományban leírjuk milyen tennivalók vannak még a továbbfejlesztés tekintetében. A Bug.txt fájlba írjuk le az ismert, de még nem javított hibákat. A fájlokat használhatjuk kiterjesztés nélkül is. Esetleg magyarítva. Szoktak például Readme.txt helyett readme vagy README, esetleg magyarosan olvasd.txt, vagy olvasd nevű fájlt használni. A következő példa az kisbetű nagybetű használatban más a fentiekkel szemben: LICENC README INSTALL TODO BUG USING Esetleg magyarosan: licenc.txt olvasd.txt telepites.txt tennivalo.txt hibak.txt hasznalat.txt Nagyobb terjedelmű használati útmutatót, amely több állományból áll célszerű külön könyvtárba tenni, amelyet doc néven hozunk létre. Unix alapú rendszerekben a parancsok számára úgynevezett kézikönyvet hozunk létre (manual, vagy röviden man). A kézikönyveknek speciális formátuma van, amit itt nem tárgyalunk. Web A program terjedését nagyban segíti egy weblap, amelyről letölthető a program, vagy annak demója, változásokat követhetünk. A weblapon elhelyezhetjük a program dokumentációit, segítséget és támogatást adhatunk a felhasználóknak. Esetleg fórumot hozhatunk létre, ahol a programal kapcsolatos problémákat a felhasználók megvitathatják. A weboldalba építhetünk hibakövető rendszert, vagy nyelvi fordító rendszert. Gyakorlat Sorolja fel milyen állományokat szokás létrehozni a programállomány mellett, ha terjeszteni szeretnénk egy programot. Mi a szerepe a Bug.txt fájlnak egy terjesztett program mellett? Mit tartalmaz a Licenc.txt állomány? Mit tartalmaz a Readme.txt állomány? Mit szokás írni a Todo.txt állományba? Mire használjuk a manualokat? Írjon példát egy jogi nyilatkozat sorról. Karbantartási szakasz Hibátlan programot készíteni szinte lehetetlen. A jól megírt programok esetén is előjönnek előbb utóbb hibák. A program élete 25/30

26 során változhatnak a bemenő paraméterek. Esetleg más, vagy több kimenő paraméterre van szükség. A programot ilyenkor továbbfejlesztjük, és egy újabb verziószámon adjuk ki. A programozás ezen szakaszának legfontosabb része a változat leírás (ChangeLog) elkészítése, amiről fentebb szó volt. Adatszerkezetek Adattípusok elemi Nincs belső szerkezetük összetett Elemi adattípusokból épülnek fel Elemi adattípusok egész valós logikai karakteres Összetett adatszerkezetek azonos típusból álló (homogén) különböző típusból álló (heterogén) alternatív adaszerkezetek Összetett adatszerkezetek tömb szöveg verem (Last In First Out) sor (First In First Out) lista szekvenciális állomány direkt állomány rekord gráf fa halmaz Az összetett adatszerkezeteken elvégezhető műveletek tetszőleges számú elem felhasználása, változtatása a sorozat első elemének felhasználása, változtatása a sorozat utolsó elemének felhasználása, változtatása a sorozat következő elemének felhasználása, változtatása a sorozat elemszámának meghatározása új elem felvétel a sorozat elejére új elem felvétel a sorozat végére új elem felvétel a sorozat két adott elem közzé a sorozat első elemének kivétel a sorozatból a sorozat utolsó elemének kivétel a sorozatból a sorozat adott elemének kivétel a sorozatból 26/30

27 a sorozat ürességének vizsgálata a sorozat részhalmazának felhasználása vagy változtatása Összetett adatszerkezetek szerkezet szerinti csoportosítása Homogén adatszerkezetek (homogén) struktúra nélkül asszociatív adatszerkezet szekvenciális adatszerkezet hierarchikus adatszerkezet hálós adatszerkezet Heterogén adatszerkezet rekord Memóriában történő helyfoglalása alapján csoportosítás Statikus adatszerkezet tömb rekord halmaz Véges számú adatelemből épül fel. Hosszúk nem változik csak az értékük. Dinamikus adatszerkezet Lista Fa Gráf Az adatelemek száma tetszőleges és változhat Ha a dinamikus adatszerkezetek önmagára mutat, akkor rekurzívnak hívjuk. Ha több ilyen hivatkozás is van, akkor nem lineáris. Listák Láncolt Gyűrűs Kétirányú Összetett (multi) Listákról A programozás során használt adatszerkezet. fej elem1 elem2 NIL Adott egy kezdő elem a fej. Egy mutató mutat az elem1 re. Az első elemet egy újabb mutató követi, ami a második elem2 re mutat. Ha egy mutató nem mutat sehova (ezt a NIL el jelezzük), akkor vége a láncnak. A példában egy láncolt listát látunk. A láncot az elemek közötti mutatók biztosítják. Láncolt lista esetén az elemek fizikailag lehetnek egészen más sorrendben, a mutatók biztosítják a számunkra kívánt rendezettséget. Ebből következik, hogy egy láncolt listából könnyebb törölnie egy tömbbel ellentétben, mivel csak át kell állítani a mutatót a törölt elemről, a törölt elem utáni elemre. Gyűrűs lehet egy lista, ha az utolsó elem a kezdőpontba mutat. 27/30

28 fej elem1 elem2 NIL A lista kétirányú, ha visszafele is lépkedhetek a listában, mert visszafele is mutat. fej elem1 elem2 NIL Hogy egy adatszerkezetben megtaláljak egy elemet, vagy címezhető helyen kell legyen, vagy léteznie kell egy sornak, amelyen végig tudok menni. Ha tehát nem címezhetjük meg egy adott elem helyét, akkor csak úgy tudjuk tárolni, hogy fizikailag egymás után sorba rakom. Láthatjuk, hogy a láncolt lista használata előnyösebb a tömböknél. Ha egy tömb esetén törölünk egy elemet, a tömbben az elem helye ott marad üresen. Egy láncolt listában azonban nincs ilyen problémánk. Fák bináris nem bináris kiegyensúlyozott kereső Bináris fa Ha minden elemének legfeljebb két rákövetkező elem van. Egy bal és egy jobboldali részfa. Bináris fa: Nem bináris fa Kettőnél több leágazásaik is lehetnek Kiegyensúlyozott fa Ha minden szintjén az egyes részfák magassága nem ingadozik többet egy szintnél. Kereső fa Definiálható egy rendezési sorrend Minden csúcsra igaz: balra a nála kisebb elemek helyezkednek el jobbra a nagyobb elemek helyezkednek el Speciális bináris fa 28/30

29 Kupac ha a B csúcs fia az A csúcsnak és A nagyobb vagy egyenlő, mint B. Gráf Csomópontok és azok kapcsolatainak halmaza. Címkézett gráf: Irányított gráf: Gyakorlat Mit értünk gráf adatszerkezet alatt? Rajzoljon példát a nem bináris fára. Rajzoljon egy bináris fát. Paraméterátadás A paraméterátadásról A függvények az átadott értéket két módon kezelhetik. Vagy érték szerint veszik át vagy cím szerint. érték szerint átvett (pass by value) cím szerint átvett (pass by reference) 29/30

30 A megértéshez tisztázzuk a formális paraméter és az aktuális paraméter fogalmát. Amikor meghívok egy függvényt a meghíváskor paraméterként megadott változók az aktuális változók. Azok a változók, amelyek egy függvényen belül paraméterként jelennek meg a formális változók. Érték szerint átvett paraméter A formális paraméterváltozók új változóként jelennek meg a memória verem területén, ideiglenesen jönnek létre. A formális paraméterváltozó és az aktuális paraméterváltozó két különböző változó lesz. A formális paraméterváltozók értékének változtatása nincs hatással az aktuális paraméterváltozókra. Cím szerint átvett paraméter A függvényben a formális paraméter cím szerint veszi át az aktuális paraméter értékét. Vagyis nem jön létre új változó, ami azt is jelenti, hogy ha megváltoztatom a formális paraméterváltozó értékét, az az aktuális paraméterváltozóban is változik. Mindkét változó ugyanazt a memóriaterületet használja. Gyakorlat Milyen módon vehetünk át paramétereket függvényekben? Mit értünk aktuális változó alatt? Rekurzió A rekurzióról Rekurzióról metódusok, függvények, illetve eljárások esetén beszélhetünk. Ha például egy metódus (vagy akár függvény és/vagy eljárás) önmagát hívja, akkor a metódus rekurzív. Rekurzív metódusok esetén gondoskodnunk kell a rekurzió megszakításáról, mert máskülönben végtelen ciklusba kerülünk. A következő C program 1 től 10 ig a képernyőre írja a számokat. Iterációt nem használunk benne, helyett rekurzívan oldottuk meg a feladatot. main.c #include <stdio.h> kiir(int a) { printf("%d\n", a); if(a < 10) { a++; kiir(a); } } main() { kiir(1); } Mivel egy rekurzív program önmagát hívja, ezért egy hurok keletkezik. Vagyis ciklust hoztunk létre ciklus utasítás nélkül. Gyakorlat Mitől lesz egy metódus rekurzív? Miről kell gondoskodnunk a rekurzív algoritmusok esetén? oktatas/programozás/programozás_elmélet_tanany ag.txt Utolsó módosítás: 2014/06/06 11:31 szerkesztette: admin Hacsak máshol nincs egyéb rendelkezés, ezen wiki tartalma a következő licenc alatt érhető el: GNU Free Documentation License 1.3 [ 1.3.html] 30/30

Programozás elmélet tananyag

Programozás elmélet tananyag 2016/04/01 01:25 1/41 Programozás elmélet tananyag < Programozás elmélet Programozás elmélet tananyag Szerző: Sallai András Copyright Sallai András, 2011, 2013, 2014 Licenc: GNU Free Documentation License

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

Programozás alapjai Bevezetés

Programozás alapjai Bevezetés Programozás alapjai Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Programozás alapjai Bevezetés SWF1 / 1 Tartalom A gépi kódú programozás és hátrányai A magas szintÿ programozási nyelv fogalma

Részletesebben

Programozás alapjai (ANSI C)

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

Részletesebben

Programzás I. - 1. gyakorlat

Programzás I. - 1. gyakorlat Programzás I. - 1. gyakorlat Alapok Tar Péter 1 Pannon Egyetem Műszaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 15, 2007 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS)

Részletesebben

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

sallang avagy Fordítótervezés dióhéjban Sallai Gyula sallang avagy Fordítótervezés dióhéjban Sallai Gyula Az előadás egy kis példaprogramon keresztül mutatja be fordítók belső lelki világát De mit is jelent, az hogy fordítóprogram? Mit csinál egy fordító?

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

C programozás. 1 óra Bevezetés

C programozás. 1 óra Bevezetés C programozás 1 óra Bevezetés A C nyelv eredete, fő tulajdonságai 1. Bevezető C nyelv alapelemei többsége a BCPL (Basic Combined Programming Language {1963}) Martin Richards B nyelv Ken Thompson {1970}

Részletesebben

Algoritmizálási feladatok

Algoritmizálási feladatok 2018/09/02 15:58 1/8 Algoritmizálási feladatok < Programozási feladatok Algoritmizálási feladatok Szerző: Sallai András Copyright Sallai András, 2011, 2013 Licenc: GNU Free Documentation License 1.3 Web:

Részletesebben

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

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

Részletesebben

Egyirányban láncolt lista

Egyirányban láncolt lista Egyirányban láncolt lista A tárhely (listaelem) az adatelem értékén kívül egy mutatót tartalmaz, amely a következő listaelem címét tartalmazza. A láncolt lista első elemének címét egy, a láncszerkezeten

Részletesebben

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel

Részletesebben

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból

Részletesebben

Programozás I. gyakorlat

Programozás I. gyakorlat Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt

Részletesebben

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek. Linux fájlrendszerek. 4. Laborgyakorlat Előző gyakorlaton, már volt szó a fájlrendszerekről, mikor a mount parancs -t kapcsolójáról volt szó. Linux alatt, az egyes fájlokhoz való hozzáférések miatt, a

Részletesebben

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

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

Részletesebben

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

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

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.

Részletesebben

Adatszerkezetek 1. előadás

Adatszerkezetek 1. előadás Adatszerkezetek 1. előadás Irodalom: Lipschutz: Adatszerkezetek Morvay, Sebők: Számítógépes adatkezelés Cormen, Leiserson, Rives, Stein: Új algoritmusok http://it.inf.unideb.hu/~halasz http://it.inf.unideb.hu/adatszerk

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

Java programozási nyelv

Java programozási nyelv Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék

Részletesebben

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

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi C programozás Márton Gyöngyvér, 2009 Sapientia, Erdélyi Magyar Tudományegyetem http://www.ms.sapientia.ro/~mgyongyi 1 Könyvészet Kátai Z.: Programozás C nyelven Brian W. Kernighan, D.M. Ritchie: A C programozási

Részletesebben

Rekurzió. Dr. Iványi Péter

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

Részletesebben

Elemi adatszerkezetek

Elemi adatszerkezetek 2017/12/16 17:22 1/18 Elemi adatszerkezetek < Programozás Elemi adatszerkezetek Szerző: Sallai András Copyright Sallai András, 2011, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu

Részletesebben

Webprogramozás szakkör

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

Részletesebben

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

3. Osztályok II. Programozás II

3. Osztályok II. Programozás II 3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt

Részletesebben

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

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

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

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

Részletesebben

Adatszerkezetek 1. Dr. Iványi Péter

Adatszerkezetek 1. Dr. Iványi Péter Adatszerkezetek 1. Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot kódoltan tároljuk

Részletesebben

8. gyakorlat Pointerek, dinamikus memóriakezelés

8. gyakorlat Pointerek, dinamikus memóriakezelés 8. gyakorlat Pointerek, dinamikus memóriakezelés Házi ellenőrzés Egy számtani sorozat első két tagja A1 és A2. Számítsa ki a sorozat N- dik tagját! (f0051) Egy mértani sorozat első két tagja A1 és A2.

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

Történeti áttekintés

Történeti áttekintés Történeti áttekintés Előzmények A számítástechnika kezdetén elterjedt (egyeduralkodó) volt a mérnökpult használata, a gép és az ember kommunikációja bináris nyelven zajlott. A gépi kódú programozás nem

Részletesebben

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)

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

Részletesebben

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

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

Részletesebben

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

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

Részletesebben

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő

Részletesebben

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Bemutatkozás. Bemutatkozás. Bemutatkozás. Bemutatkozás. 1. előadás. A tárgy címe: A programozás alapjai 1

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Bemutatkozás. Bemutatkozás. Bemutatkozás. Bemutatkozás. 1. előadás. A tárgy címe: A programozás alapjai 1 Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1 Ajánlott irodalom A programozás fogalma Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu 2012. február 7. A tárgy címe: A tárgy adminisztratív

Részletesebben

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Tömb Ugyanolyan típusú elemeket tárol A mérete előre definiált kell legyen és nem lehet megváltoztatni futás során Legyen n a tömb mérete. Ekkor:

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

Adatbázis rendszerek. dr. Siki Zoltán

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

Részletesebben

Fordítóprogramok. Aszalós László. 2009. szeptember 7.

Fordítóprogramok. Aszalós László. 2009. szeptember 7. Fordítóprogramok Aszalós László 2009. szeptember 7. 1. Bemelegítés Honlap: www.inf.unideb.hu/ aszalos/diak.html (Fordítóprogramok, 2009) Jegymegajánló: utolsó hét előadásán. PótZH (csak gyakorlat) vizsgaidőszak

Részletesebben

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Reguláris kifejezések - alapok, BASH Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor

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

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával) Adatszerkezetek I. 7. előadás (Horváth Gyula anyagai felhasználásával) Bináris fa A fa (bináris fa) rekurzív adatszerkezet: BinFa:= Fa := ÜresFa Rekord(Elem,BinFa,BinFa) ÜresFa Rekord(Elem,Fák) 2/37 Bináris

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

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk. JSON tutorial Készítette: Cyber Zero Web: www.cyberzero.tk E-mail: cyberzero@freemail.hu Msn: cyberzero@mailpont.hu Skype: cyberzero_cz Fb: https://www.facebook.com/cyberzero.cz BEVEZETÉS: A JSON (JavaScript

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 dokumentáció felépítése

A dokumentáció felépítése A dokumentáció felépítése Készítette: Keszthelyi Zsolt, 2010. szeptember A szoftver dokumentációját az itt megadott szakaszok szerint kell elkészíteni. A szoftvert az Egységesített Eljárás (Unified Process)

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

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

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

Részletesebben

Formális nyelvek és automaták

Formális nyelvek és automaták Formális nyelvek és automaták Nagy Sára gyakorlatai alapján Készítette: Nagy Krisztián 2. gyakorlat Ismétlés: Megjegyzés: Az ismétlés egy része nem szerepel a dokumentumban, mivel lényegében a teljes 1.

Részletesebben

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED BASH recap, reguláris kifejezések Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor

Részletesebben

Programozás II. 2. Dr. Iványi Péter

Programozás II. 2. Dr. Iványi Péter Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c

Részletesebben

Széchenyi István Szakképző Iskola

Széchenyi István Szakképző Iskola A SZAKKÖZÉPISKOLAI SZAKMACSOPORTOS ALAPOZÓ OKTATÁS EMELT SZINTŰ ISKOLAI PROGRAMJA 11-12. évolyam Érvényes a 2003-2004-es tanévtől felmenő rendszerben Átdolgozva, utolsó módosítás: 2004. április 26. Az

Részletesebben

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3 Darvay Zsolt Típusok és nevek a forráskódban Állandók és változók Hatókörök és az előfeldolgozó Bevitel és kivitel Kifejezések Utasítások Mutatók Függvények Struktúrák és típusok Állománykezelés C programozás

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

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

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

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

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

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

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

A NetBeans IDE Ubuntu Linux operációs rendszeren

A NetBeans IDE Ubuntu Linux operációs rendszeren A NetBeans IDE Ubuntu Linux operációs rendszeren Készítette: Török Viktor (Kapitány) E-mail: kapitany@lidercfeny.hu 1/10 A NetBeans IDE Linux operációs rendszeren Bevezető A NetBeans IDE egy Java-ban írt,

Részletesebben

C programozási nyelv

C programozási nyelv C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György

Részletesebben

Eljárások, függvények

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

Részletesebben

A PiFast program használata. Nagy Lajos

A PiFast program használata. Nagy Lajos A PiFast program használata Nagy Lajos Tartalomjegyzék 1. Bevezetés 3 2. Bináris kimenet létrehozása. 3 2.1. Beépített konstans esete.............................. 3 2.2. Felhasználói konstans esete............................

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

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

Programozási nyelvek (ADA)

Programozási nyelvek (ADA) Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 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

Részletesebben

Objektumorientált paradigma és a programfejlesztés

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

Részletesebben

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

Webprogramozás szakkör

Webprogramozás szakkör Webprogramozás szakkör Előadás 4 (2012.03.26) Bevezető Mi is az a programozási nyelv, mit láttunk eddig (HTML+CSS)? Az eddig tanult két nyelven is mondhatni programoztunk, de ez nem a klasszikus értelemben

Részletesebben

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

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

Részletesebben

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

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

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok Számítógépes szimulációk 1. Bevezetés BME Fizika Intézet 2015. szeptember 9. Bevezetés A félév menete C-ismétlés, 1. rész Oktatók: Nagyfalusi Balázs: nagyfalusi@phy.bme.hu, F3 211. : tcsaba@eik.bme.hu,

Részletesebben

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS 2.ELŐADÁS A VB programozási nyelv Az Excel programozása 2 A VB programozási nyelv Adattípusok Adatok kezelése Vezérlőszerkezetek Adattípusok és műveletek Egész adattípusok

Részletesebben

A C# programozási nyelv alapjai

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

Részletesebben

Occam 1. Készítette: Szabó Éva

Occam 1. Készítette: Szabó Éva Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 6. gyakorlat C++ alapok, szövegkezelés Surányi Márton PPKE-ITK 2010.10.12. Forrásfájlok: *.cpp fájlok Fordítás: a folyamat, amikor a forrásfájlból futtatható állományt állítunk

Részletesebben

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism) Programozás alapjai C nyelv 8. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény

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

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez Pásztor Attila Algoritmizálás és programozás tankönyv az emeltszintű érettségihez 3. ADATTÍPUSOK...26 3.1. AZ ADATOK LEGFONTOSABB JELLEMZŐI:...26 3.2. ELEMI ADATTÍPUSOK...27 3.3. ÖSSZETETT ADATTÍPUSOK...28

Részletesebben

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek: A programozás alapjai 1 Dinamikus adatszerkezetek:. előadás Híradástechnikai Tanszék Dinamikus adatszerkezetek: Adott építőelemekből, adott szabályok szerint felépített, de nem rögzített méretű adatszerkezetek.

Részletesebben

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

Programozás alapjai. 2. előadás 2. előadás Általános Informatikai Tanszék A számítógépes feladatmegoldás eszközei Adatok (Amiken utasításokat hajtunk végre) Utasítások (Amiket végrehajtunk) Program struktúra Adatok Konstans (a programon

Részletesebben

Adatszerkezetek 7a. Dr. IványiPéter

Adatszerkezetek 7a. Dr. IványiPéter Adatszerkezetek 7a. Dr. IványiPéter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér () Nincsennek hurkok!!! 2 Bináris fák Azokat a

Részletesebben

Szoftver alapfogalmak

Szoftver alapfogalmak Szoftver alapfogalmak Azon a programok algoritmusok, eljárások, és hozzájuk tartozó dokumentációk összessége, melyek a számítógép működéséhez szükségesek. (nem kézzel fogható, szellemi termékek) Algoritmus

Részletesebben

Programozási nyelvek 6. előadás

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

Részletesebben

Python tanfolyam Python bevezető I. rész

Python tanfolyam Python bevezető I. rész Python tanfolyam Python bevezető I. rész Mai tematika Amiről szó lesz (most): Interpretált vs. fordított nyelvek, GC Szintakszis Alaptípusok Control flow: szekvencia, szelekció, iteráció... Függvények

Részletesebben

ME 306-2 Szoftverfejlesztés

ME 306-2 Szoftverfejlesztés Programozási nyelvek kialakulása, fejlődése. Eljárás és objektumorientált nyelvek jellemzői, alapfogalmai. Grafikus fejlesztői környezetek kialakulása, eseményorientált programozás. 1. Programozási nyelvek

Részletesebben

5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E

5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E 5. SOR A sor adatszerkezet is ismerős a mindennapokból, például a várakozási sornak számos előfordulásával van dolgunk, akár emberekről akár tárgyakról (pl. munkadarabokról) legyen szó. A sor adattípus

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

Vezérlési szerkezetek

Vezérlési szerkezetek Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását

Részletesebben

Regionális forduló november 18.

Regionális forduló november 18. Regionális forduló 2017. november 18. 9-10. osztályosok feladata Feladat Egy e-mail kliens szoftver elkészítése lesz a feladatotok. Az elkészítendő alkalmazásnak az alábbiakban leírt specifikációnak kell

Részletesebben

A programozás alapjai

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

Részletesebben

Webes alkalmazások fejlesztése

Webes alkalmazások fejlesztése Webes alkalmazások fejlesztése 3. gyakorlat Authentikáció, adatok feltöltése Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu Authentikáció Manapság már elvárás, hogy a felhasználó regisztrálni

Részletesebben