Témakörök. Szoftverfejlesztés: Algoritmizálás: Programozási nyelvek:

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

Download "Témakörök. Szoftverfejlesztés: Algoritmizálás: Programozási nyelvek:"

Átírás

1 2014/2015 v0.8

2 Célok Bemutatni a programozás alapvető fogalmait. Algoritmizálási képesség fejlesztése. Az eljárásorientált programozási módszer megtanulása. A Turbo Pascal programozási nyelv elsajátítása. Objektum orientált programozási elvek megismerése. 2

3 Témakörök Szoftverfejlesztés: Program, szoftver Elemzés, tervezés, kódolás, tesztelés, dokumentálás, karbantartás Algoritmizálás: Algoritmus Algoritmus leíró eszközök Programozási nyelvek: Fejlődés Eljárásorientált, objektumorientált 3

4 Témakörök Programkészítés menete: Forrásszöveg szerkesztés Fordítás Kapcsolatszerkesztés Hibakeresés, debugolás Turbo Pascal programozási nyelv: Nyelvi elemek, adattípus, egyszerű adattípusok Nevesített konstans, Változó, kifejezés 4

5 Témakörök Vezérlési szerkezetek: Szekvencia Szelekció Iteráció Karakterlánc Összetett adattípusok (tömb, rekord, halmaz) Alprogramok: Eljárás Függvény 5

6 Témakörök Egyéb algoritmusok: Rendezés Keresés Összefésülés Fájlkezelés: Szöveges Típusos Típus nélküli Objektum-orientált alapfogalmak 6

7 7

8 Program - Szoftver Program: A mikroprocesszor számára végrehajtható utasítások sorozata. Szoftver: A számítógépet működtető programok összessége. 8

9 CPU utasítás végrehajtás lépési 9

10 Szoftverfejlesztés Egy adott problémának számítógép segítségével való megoldása egy hosszú és bonyolult munkafolyamat végeredménye. A program elkészítésének munkafolyamatát a felmerülő problémától a késztermékig programfejlesztésnek nevezzük. Nagy feladat esetén, amikor több programból álló rendszerről van szó, rendszerfejlesztésről beszélünk. 10

11 Szoftverfejlesztés lépései Elemzés (analízis) Tervezés Kódolás Tesztelés Dokumentálás Karbantartás 11

12 Nagy rendszerek esetén Stratégiai tervezés projekt létrehozás Pl. PRINCE (Projektirányítási Módszertan) A stratégiának része lehet egy számítógépes szoftver létrehozása. Pl. SSADM (Strukturált Rendszer Elemzési és Tervezési Módszertan) Magát a szoftvert valamilyen szoftverfejlesztő eszközzel készítik. Pl. Visual C++, Delphi, NetBeans, Oracle 12

13 Igény, Ötlet Specifikáció Első lépésként valakinek kipattan a fejéből a nagy ötlet, hogy valamilyen probléma megoldása mennyivel egyszerűbb lenne egy számítógépes programmal. Ezt az igényt meg is kell tudnunk fogalmazni. A specifikáció nem más mint a megoldandó, megvalósítandó feladat megfogalmazása. 13

14 Elemzés I. Van-e pénz? Van-e idő? Van-e ember? Az elemzés során felmérjük a helyzetet: mire van szükség, mik a lehetőségek. A probléma megoldásának ebben a szakaszában a szóban forgó problémát minden szempontból egyértelműen definiálni kell, ezzel a problémamegoldás többi fázisát időben lényegesen lecsökkenthetjük és hibamentesebbé tehetjük. Ehhez az szükséges, hogy a feladat megfogalmazása legyen teljes, érthető, egyértelmű, pontos, tömör, szemléletes, előrelátó, jól felépített és tagolt. 14

15 Elemzés II. A fejlesztés e szakaszában tisztázni kell többek között, hogy milyen adatokat vár a program, és milyen adatokat kell annak produkálnia. A beviteli (input) adatokkal kapcsolatban a következő kérdések merülhetnek fel: Mik az input adatok? Milyen a beviteli formájuk? Milyen kapcsolatok vannak a beviteli adatok között? 15

16 Elemzés III. A kiviteli (output) adatoknál többek között a következőket kell megállapítani: Milyen adatokat kell megőrizni? Milyen formában kell az adatokat megőrizni? Mennyi adatról van szó? Hogyan tudjuk ezeket az adatokat előállítani? 16

17 Elemzés IV. Az elemzés fázisának dokumentuma kisebb feladatok esetén a feladatspecifikáció, vagyis a feladat pontos megfogalmazása. Nagyobb rendszerek esetén rendszertervet kell készíteni. 17

18 Tervezés I. Adatmodell Funkcionálismodell A programtervezés feladata, hogy az analízis során összegyűjtött információkat és adatokat alapul véve logikailag véglegesen kialakítsa az adatstruktúrákat és az adatokon manipuláló algoritmusokat. Hogy milyen tervezési módszert választ az ember, az a következő dolgoktól függhet: Milyen számítógépre készül a program? Mekkora a megoldandó feladat? Milyen módszerek állnak rendelkezésre? Mik a tervező lehetőségei szoftverekben, felkészültségben? 18

19 Tervezés II. A programtervezés alapja a részekre bontás. A feladatot - bonyolultságától függően - részekre kell szedni. A törekvés az hogy a részek minél függetlenebbek legyenek egymástól, hiszen így a program sokkal áttekinthetőbb, a hibakeresés, karbantartás, továbbfejlesztés sokkal könnyebb, egyértelműbb. 19

20 Tervezés III. Programtervezési módszerek: Moduláris: Lényege, hogy a programot felülről lefelé funkcionálisan egyre kisebb lépésekre (modulokra, eljárásokra) bontjuk. Jackson: Szintén felülről lefelé bontja a programot, de itt a programszerkezet felépítését az adatok szerkezete határozza meg. Objektum-orientált: Az egyes objektumok adataikkal és funkcióikkal együtt a program többi részétől függetlenek, és teljes mértékben felelősek a rájuk bízott feladatért. 20

21 Kiegészítés A moduláris programozást bonthatjuk: Horizontálisan Alkalmazói program Operációs rendszer BIOS, Firmware Vertikálisan: A programon belüli tagolás, amely szintén lehet horizontális és vertikális. 21

22 Tervezés IV. A tervezési szakasz dokumentációja a programterv. A program megtervezésével a probléma lényegileg meg van oldva, már csak a kódolás van hátra a megvalósításhoz. 22

23 Kódolás I. Ha a terv elkészült, akkor jöhet annak implementálása (kivitelezése). Az implementáció első szakasza a programterv kódolása egy adott programnyelven, vagyis a forrásprogram elkészítése. A forrásprogramból a fordító- és a kapcsolatszerkesztő program készíti el a processzor által értelmezhető gépi kódot. 23

24 Kódolás II. A kódolási szakasz dokumentációja a forrásnyelvi lista. Egy forrásnyelvi lista akkor jó, ha pontosan a programterv alapján készül, áttekinthető, olvasható, tömör és egyértelmű megjegyzésekkel van megtűzdelve. 24

25 Tesztelés I. Próbafuttatáskor még sok hibát észlelünk, ez természetes. Azonban minél alaposabbak voltak az előző fázisok, annál nagyobb a valószínűsége, hogy a program úgy fog működni, ahogy elképzeltük. A tesztelés folyamán különböző próbaadatokkal futtatjuk a programot, amelyeket úgy kell összeállítani, hogy minden lehetséges értéket felvegyenek. 25

26 Tesztelés II. A program tesztelésekor a következőkre kell figyelni: Pontosan úgy működik a program, ahogy az a feladat leírásában szerepel? Nem lehet elrontani? Elég hatékony? Biztonságos a használata? A program felhasználóbarát (kényelmes a használata, esztétikus, nem idegesítő)? A tesztelési fázis dokumentációja a kész program és a tesztadatok listája. 26

27 Dokumentálás I. Minden fázisnak megvan a maga terméke", dokumentációja. A program fejlesztésének befejeztével a teljes dokumentációt (vagyis mind a négy fázis dokumentációját) meg kell őrizni. Csak a teljes dokumentáció birtokában lehet később a programon változtatásokat végezni. 27

28 Dokumentálás II. A program fejlesztését végigkísérő dokumentációk összességét fejlesztői dokumentációnak nevezzük. Részei: a feladatspecifikáció, a programterv, a forrásprogram, a kész program, a tesztadatok listája, a program használatának ismertetése. 28

29 Dokumentálás III. A felhasználói dokumentáció részei: a feladat leírása, a szükséges hardver környezet, a szoftver környezet (operációs rendszer, a futtatáshoz szükséges egyéb szoftverek), a program betöltése, indítása, a program használatának részletes leírása: billentyűk, menük stb. használata, működési leírás, képernyőtervek, listatervek, hibalehetőségek, a hibaüzenetek felsorolása, biztonsági előírások (pl. adatok időszakos mentése). 29

30 Rendszerbevezetés A letesztelt programok üzemeltetésre készek. A rendszerbevezetés az installálással kezdődik. Az üzemeltetőket, felhasználókat ki kell képezni a program kezelésére, hibák elhárítására. A program üzemeltetése során szükség lehet apró módosításokra karbantartás. 30

31 31

32 Algoritmus I. Amikor egy problémát meg akarunk oldani, ajánlatos először a konkrét programozási nyelvet félretenni, és azon gondolkodni, milyen lépéseket kell megtenni a probléma megoldásának érdekében. A legjobb, ha egyszerűen leírjuk a megoldáshoz vezető út lépéseit. A szoftverfejlesztés tervezési fázisához tartozik. 32

33 Algoritmus II. Definíció: Azon tevékenységek sorozatát, amelyek egy feladat megoldásához vezetnek algoritmusnak nevezzük. Definíció: Egy feladat megoldására irányuló, véges számú jól definiált elemi lépések egyértelműen megadott sorozata, melyek véges időn belül véget érnek, s elérik a kitűzött célt. Definíció: Algoritmusnak nevezzük az aritmetikai, logikai, stb... műveletek olyan célszerűen összeállított sorozatát, amely a kitűzött feladat egyértelmű megoldásához vezet. 33

34 Algoritmusra példa Sobri Jóska betyárbandája egy csárdában ütötte fel tanyáját. A vezér utasította egyik betyárját, hogy: menjen ki az útkereszteződéshez, rejtőzzék el, és várjon. Ha jön egy kereskedő, üsse le, vegye el minden pénzét, majd nézze meg, hogy mennyi az idő. Ha már elmúlt este 8 óra, térjen vissza a csárdába, ha nem, várjon tovább. 34

35 Algoritmusra példa Persze, az algoritmusnak van némi hibája! (A betyár éhen halhat!) 35

36 Algoritmusra példa I. Az algoritmus tehát egy út a felvetődött probléma megoldásához. Nézzünk egy példát az algoritmusra: Hogyan tudnánk krétát szerezni az egyetemen? 36

37 Algoritmusra példa II. Lehet, hogy az algoritmus néhány elemi tevékenység egymás után végrehajtódó (szekvenciális) sorozata. Például: Menj be a tanszékre! Keresd meg az adminisztrátort! Kérj tőle két darab krétát! Hozd be a krétát az előadóba! 37

38 Algoritmusra példa III. Lehet, hogy a megoldás bizonyos pontokon nem látható előre és feltételektől (szelekció) függően más és más megoldást kell választanunk. Például: Menj be a tanszékre! Keresd meg az adminisztrátort! Ha megtalálod, akkor Kérj tőle két darab krétát! Különben Keress máshol krétát! Gyere vissza az előadóba! 38

39 Algoritmusra példa IV. Előfordulhat, hogy egy tevékenységet nem lehet egyből végrehajtani. A lépést részletezni (összetett tevékenység) kell. Például a Menj be a tanszékre! : Menj ki az előadóból! Menj el a C/1 épületbe! Az első emeleten keresd meg a 104-es ajtót! Kopogtass! Lépj be az ajtón! 39

40 Algoritmusra példa V. Előfordulhat, hogy a megoldás érdekében valamely tevékenységet többször is végre kell hajtani, vagyis ismételni (iterálni) kell. Például Kérj tőle két darab krétát! Csináld kétszer: Kérj tőle egy darab krétát! 40

41 Algoritmus III. Az algoritmus szerkezetét (struktúráját) tehát szekvenciák, szelekciók illetve iterációk adják, amelyeket tetszőleges mélységben egymásba lehet ágyazni. 41

42 Algoritmus tulajdonságai I. Az algoritmus lépésekből (elemi tevékenységekből, utasításokból) áll. Minden lépésnek egyértelműen végrehajthatónak kell lenni. Egy algoritmusban hivatkozhatunk összetett lépésekre is, melynek részletezését később adjuk meg. A végrehajtásnak mindig van valamilyen tárgya. Kell valami, amin az utasításokat végrehajthatjuk. Ezeket a programozásban adatoknak nevezzük. 42

43 Algoritmus tulajdonságai II. A végrehajtandó tevékenységnek mindig valamilyen célja van. Az algoritmusnak vannak bemenő (input) adatai, melyeket felhasznál. Az algoritmusnak legalább egy kimenő (output) adatot eredményeznie kell. Az algoritmus legyen hatékony! Az utasítások legyenek könnyen követhetők, pontosak, egyszerűek és azokat minél rövidebb idő alatt végre lehessen hajtani. Az algoritmus legyen elronthatatlan! Az algoritmus legyen felhasználóbarát! 43

44 Az algoritmus legyen Helyes Teljes Hatékony Egyértelmű Célorientált Elronthatatlan 44

45 Algoritmus tervezése Top Down (Felülről Lefelé) A megoldást felülről lefelé fokozatosan, lépésenként finomítjuk és a kis feladatokat csak a végső fázisban oldjuk meg. Bottom Up (Alulról Felfelé) Először megoldjuk a kisebb feladatokat, és aztán gondolkodunk az összeállítás srtuktúráján. 45

46 Algoritmus IV. Egy tetszőleges algoritmus a következő elemekből építhető fel: Szekvencia: egymás után végrehajtandó tevékenységek sorozata. Szelekció: választás megadott tevékenységek közül. Iteráció: megadott tevékenységek ismételt, többszöri végrehajtása. Feltétel nélküli ugrás: vezérlés átadása a program egy megadott pontjára. 46

47 Strukturált program A csak szekvenciákból, szelekciókból és iterációkból építkező programot strukturált programnak nevezzük. A strukturált programozásban a ciklusból való kiugrás fogalma ismeretlen. Ebből következik, hogy a program minden szekvenciájának - és így az egész programnak is - egyetlen belépési és egyetlen kilépési pontja van, ennélfogva a program lényegesen áttekinthetőbb. 47

48 Algoritmus készítése Egy bonyolultabb algoritmust nem lehet fejben megtervezni, ahhoz eszközök kellenek. Olyan eszközre van szükség, mely általánosan elfogadott, és mások is ismerik, használják. Ilyen a mondatszerű leírás, a folyamatábra, vagy a struktogram. 48

49 A folyamatábra I. A folyamatábra segítségével a program dinamikus viselkedését, folyamatát részletekbe menően ábrázolni tudjuk. A program folyását nyilak mutatják, ahol történik valami, ott valamilyen csomópont van. Tevékenység-csomóponton áthaladva a tevékenység végrehajtódik. Döntéscsomóponthoz érkezve a Feltételtől függően a vezérlés az Igaz vagy a Hamis (Igen vagy Nem) ágon folytatódik. A gyűjtőcsomóponton való áthaladás mindig egyértelmű. 49

50 A folyamatábra II. 50

51 A folyamatábra III. Bármely program e három elem segítségével felépíthető, a többi jelölés csak ábrázolási könnyebbség. Kapcsolódási pontot akkor használunk, ha helyhiány miatt ábránkat egy másik lapon folytatjuk. Az adatbevitel és az adatkiírás jelölésére is külön elemeket használunk. 51

52 A folyamatábra IV. 52

53 A folyamatábra V. Az iterációkat a következőképpen építjük fel: a vezérlés ismételten visszatér a ciklusmag elé, de az újbóli végrehatás előtt egy döntéscsomópont található, mely megengedi a ciklus elhagyását. Alapvetően két fajta iteráció létezik - az egyik a ciklusmag előtt tesztel, a másik a ciklusmag után, ezek az előfeltételes (előltesztelő) illetve végfeltételes (hátultesztelő) ciklusok. 53

54 A folyamatábra VI. 54

55 A folyamatábra VII. A növekményes ciklus azt jelenti, hogy a ciklusmagban megadott tevékenység előre meghatározott számban, valamely változó (ciklusváltozó) növekvő értékeire hajtódik végre valamettől valameddig. Olyan iterációknál használjuk, amelyeknél pontosan tudjuk a végrehajtások számát. A növekményes ciklust folyamatábrán előltesztelő ciklussal tudjuk megvalósítani úgy, hogy az ábrába beépítjük a ciklusváltozó értékének beállítását, illetve módosításait. 55

56 Krétás példa Megkérdezem, vállalkozik-e valaki arra, hogy bemenjen krétáért a Tanszékre. Ha igen, Menjen be a Tsz-re. Kérje meg Editet, adjon egy darab krétát. Ha nincs Edit, Keressen valaki mást, s kérjen tőle krétát. Jöjjön vissza a krétával, adja ide. Ha nem talál senkit, jöjjön vissza üres kézzel. Ha nem vállalkozik senki a hallgatók közül, Bemegyek én. Kiveszek a szekrényből egy darab krétát. Visszajövök az előadóba, s folytatjuk az órát. 56

57 57

58 Sobri Józska helyes algoritmusa 58

59 Struktogram I. A struktogram egy strukturált ábrázolási módszer, megalkotója Chapin (ezért Chapin chart-nak is hívják). E jelölés annyiban hasonlít a folyamatábrához, hogy a tervezés itt is kívülről befelé történik. Ahogy a struktúrában lejjebb megyünk, úgy egyre kevesebb hely marad tevékenységeink leírásához. 59

60 Struktogram I. 60

61 Mondatszerű leírás I. A mondatszerű leírás lényege, hogy a programot mondatszerű elemekből építjük fel. Annyiban tér el a folyamatos írástól, hogy bizonyos szabályokat be kell tartanunk, a struktúrák képzésére megállapodás szerinti formákat és szavakat használunk. 61

62 Mondatszerű leírás II. Be- és kivitel Be:...felsorolás...[megszorítások] Ki:...felsorolás...[kiírási formák] Szekvencia Tevékenység1 Tevékenység2 Tevékenység3 62

63 Mondatszerű leírás III. Egyágú szelekció Ha Feltétel teljesül, akkor Tevékenység(ek) végrehajtásra kerül(nek), egyébként nem. A program az Elágazás vége után folytatódik: Ha Feltétel akkor Tevékenység(ek) Elágazás vége 63

64 Mondatszerű leírás IV. Kétágú szelekció Ha Feltétel teljesül, akkor Tevékenység(ek)1 kerül(nek) végrehajtásra, egyébként Tevékenység(ek)2. Mindkét esetben a program az Elágazás vége után folytatódik: Ha Feltétel akkor Tevékenység(ek)1 egyébként Tevékenység(ek)2 Elágazás vége 64

65 65

66 Kezdetek I ben készült el Neumann János tervei alapján az EDVAC nevet viselő számítógép, amely az első Neumannelvek alapján épített gép volt. Innen kezdődik a programozási nyelvek története. Az EDVAC volt az első számítógép, amelyen programot lehetett végrehajtani, elsősorban matematikai problémák megoldására specializálva. 66

67 Kezdetek II. A programozás kezdeti időszakára jellemző volt, hogy a programok általában csak azon a gépen futottak le, amely gépen elkészítették őket, azaz a programok gépfüggőek voltak. A továbbiakban bővült a számítógép által megoldandó problémák köre, egyre több területen kezdtek el számítógépet használni, és az újabb alkalmazási területek újabb problémákat vetettek fel. Az évek során a programozási munka könnyítése, gyorsítása érdekében a programozási technikák és eszközök (programozási nyelvek) is fejlődtek. 67

68 Kezdetek III. A 60-as években egyre több számítógép került a nagyvállalatokhoz, ahol már nem csak a számítások elvégzése volt az igény, hanem más nem számolást igénylő feladatot is meg szerettek volna oldani (adatkezelés). A hosszú nehéz munkával készített programok igen gyorsan elavultak, és máris lehetett hozzákezdeni következő írásához. Tehát új, gyorsabb, egyszerűbb programfejlesztési módszerekre volt szükség. 68

69 Programozási nyelvek generációi 0. GL: gépi kód, Assembly 1. GL: IBM ősnyelvei: FORTRAN, COBOL 2. GL: ALGOL60 és környéke 3. GL: PL/1, C, PASCAL, C++, JAVA 4. GL: Visual C++, Delphi, JBuilder Alacsony szintű nyelvek Magas szintű nyelvek 1:N típusú nyelvek, azaz egyetlen magas szintű programnyelvi utasítás több gépi kódú utasítást reprezentál. 69

70 Negyedik Generációs Nyelvek Tulajdonságai: Kezelői felület létrehozása Form Designer, Report Designer Kommunikációs felület létrehozása előre definiált környezetet tételeznek fel (pl. relációs adatbáziskezelő, ipari mérésadatgyűjtő, korházi betegfelügyelő, robotvezérlés), nyílt rendszerek illesztése (ODBC, JDBC) Alkalmazáslogika implementálására (létrehozására) magas szintű objektumorientált nyelveket használnak. 70

71 Programozási nyelvek osztályozása Imperatív nyelvek: Algoritmikus nyelvek: a programozó algoritmust kódol, és ez a kód működteti a processzort. A program utasítások sorozata. Legfőbb programozási eszköze a változó. Szorosan kötődik a Neumann- architektúrához. Alcsoportjai: Eljárás-orientált: C, Pascal Objektum-orientált: C++, Object Pascal, Java, C# 71

72 Programozási nyelvek osztályozása Deklaratív nyelvek: Nem algoritmikus nyelvek: A programozó csak a problémát adja meg, a nyelvi implementációkba van beépítve a megoldás megkeresésének módja. Alcsoportjai: Funkcionális nyelvek: LISP Logikai nyelvek: PROLOG, (MPROLOG) Egyéb nyelvek: Szimulációs nyelvek: SIMULA, GPSS 72

73 Programozási nyelvek hierarchiája 73

74 Assembly gépi kód példa MOV AX,1234h ;0B8h 34h 12h MUL WORD PTR [5678h] ;0F7h 26h 78h 56h MOV [5678h],AX ;0A3h 78h 56h Némi magyarázat a programhoz: az első sor egy számot (1234h) rak be az AX regiszterbe, amit most tekinthetünk mondjuk egy speciális változónak a második sor a fenti értéket megszorozza a memória egy adott címén (5678h) található értékkel a harmadik sor az eredményt berakja az előbbi memóriarekeszbe a pontosvessző utáni rész csak megjegyzés az első oszlop tartalmazza a mnemonikot a memóriahivatkozásokat szögletes zárójelek ( [ és ] ) közé írjuk 74

75 Az Assembly előnyei korlátlan hozzáférésünk van a teljes hardverhez, beleértve az összes perifériát (billentyűzet, nyomtató stb.) pontosan ellenőrizhetjük, hogy a gép tényleg azt teszi-e, amit elvárunk tőle ha szükséges, akkor minimalizálhatjuk a program méretét és/vagy sebességét is (ez az ú.n. optimalizálás) 75

76 Az Assembly hátrányai a forrás sokszor áttekinthetetlen még a szerzőnek is a kódolás nagy figyelmet, türelmet, és főleg időt igényel sok a hibalehetőség a hardver alapos ismerete elengedhetetlen a forrás nem hordozható, azaz más alapokra épülő számítógépre átírás nélkül nem vihető át (ez persze igaz a gépi kódra is) 76

77 77

78 Forrásprogram I. A processzornak saját nyelve van, csak azt beszéli! Ez a gépi kód (gépi utasítás) Utasításkészlet. A magas szintű nyelven megírt programot forrásprogramnak, forrásszövegnek nevezzük. Minden magas szintű nyelv egyben formális nyelv, amely meghatározott nyelvtan szerint használható. 78

79 Forrásprogram II. A program forrásszövegére vonatkozó formai, nyelvtani szabályok összességét szintaktikai szabályoknak hívjuk. A tartalmi, értelmezési, jelentésbeli szabályok alkotják a szemantikai szabályokat. Egy magasszintű programozási nyelvet szintaktikai és szemantikai szabályainak együttese határoz meg. 79

80 Programkészítés Egy magasszintű programozási nyelven megírt forrásszövegből elő kell állítani a processzor számára érthető gépi kódú programot. Erre két technika létezik: fordítóprogramos interpreteres 80

81 Fordítóprogramos technika Forrásszöveg + Fordítóprogram Fordítás Kapcsolat szerkesztés Tárgykód Egyéb tárgykód Kapcsolatszerkesztő + Futtatható program + Betöltő Betöltés a memóriába Folyamat, Process + Futtató rendszer 81

82 Fordítóprogram Fordítóprogram: Egy speciális szoftver. Előállít egy gépi kódú, a processzor által megérthető, de még nem futtatható programot. Mindig a teljes forrásszöveget elemzi és állítja elő belőle a tárgykódot. A tárgykód (object, *.obj) független az őt létrehozó programozási nyelvtől. Így támogatja a kevert nyelvű programfejlesztést is. A szintaktikai hibák mindig fordítás során derülnek ki. 82

83 A fordítás részletei lexikális elemzés: Szövegelemekre bontás. Az embernek szóló részt kihagyja (megjegyzések, szóközök, stb.), számára értelmezhető részekre bontja a forrásszöveget. Tokenizál, közbenső formára hoz. szintaktikai elemzés: Ellenőrzi, hogy teljesülnek-e a nyelv szintaktikai szabályai. Hiba esetén kiírja az üzeneteket és leáll a fordítás. szemantikai elemzés: Arra készíti fel a programot, hogy a szemantikai hibák kiderüljenek. kódgenerálás: Előállítja a tárgyprogramot. 83

84 További lépések Kapcsolatszerkesztő: Általában több tárgykódú programból állít elő egy futtatható programot. Betöltő: Egy speciális szoftver. Elhelyezi a memóriában a futtatható programot, és átadja neki a vezérlést. Futtató rendszer: A futtató rendszer felügyelete mellett fut a program. A futó program része, nem az operációs rendszeré! A program futása során derülnek ki a szemantikai hibák. 84

85 Interpreteres technika Nem a teljes forrásszöveget tekinti alapnak, mindig csak bizonyos szöveg elemekkel dolgozik (utasítások). Nem generál tárgykódot. Szövegelemenként végrehajt egy szövegelemzést, tokenizálást, szintaktikai elemzést. Ha a szintaktikai elemzés rendben volt, akkor jöhet a interpretálás. Az adott tevékenységet azonnal végrehajtja a processzor. Minden egyes szövegelem mögött van egy gépi kód. Az interpreter csak kiválasztja az adott szövegelemnek megfelelő gépi kódot. 85

86 Egyebek Előfordítás: Ha egy forrásszövegben vannak nem a nyelvhez tartozó elemek is, akkor egy előfordítás szükséges. Az előfordítás során csak nyelvi elemeket tartalmazó forrásszöveg keletkezik. Hivatkozási nyelv: Egy magas szintű programozási nyelv szabványa. Ebből minden időpillanatban egy aktuális létezik. Implementációk: A hivatkozási nyelvnek megfelelően, egy adott platformon (processzor, operációs rendszer) realizált fordítóprogramok, vagy interpreterek. Sok van belőlük. 86

87 IDE Az implementációk manapság egy integrált fejlesztői környezetben (Integrated Development Environment IDE) érhetők el. Részei: editor (szövegszerkesztő a forrásszöveg készítéséhez) compiler (fordító), interpreter (értelmező) linker (kapcsolat szerkesztő) debuger (nyomkövető, hibakereső) A szemantikai hibák feltárásában segít. 87

88 Egyéb fogalmak Paradigma: eljárásmód, eszközrendszer, gondolkodásmód. Absztrakció: adat absztrakció, procedurális absztrakció. Modellezés: A problématér leképezése a feladat szempontjából fontos, releváns modelltérre. 88

89 89

90 90

91 91

92 ASCII kódtábla 92

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

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

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

B I T M A N B I v: T M A N

B I T M A N B I v: T M A N Műszaki informatika IPA Tesztek+Megoldások B I v: T 2014.02.15 M A N 1/41 Ellenőrző kérdések Alapfogalmi kitérő kérdéssor IPA kérdéssor 2/41 Ellenőrző kérdések 1. 1. Melyik Neumann elv következménye a

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

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

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

AZ ALGORITMUS. az eredményt szolgáltatja

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

Részletesebben

Algoritmusok. Dr. Iványi Péter

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

Részletesebben

Az algoritmusok alapelemei

Az algoritmusok alapelemei Az algoritmusok alapelemei Változók Olyan programozási eszközök, amelynek négy komponense van: - Név - Egyedi azonosító, a program szövegében a változó mindig a nevével jelenik meg, ez hordozza a komponenseket.

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

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

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

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

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

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

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

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

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

Részletesebben

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

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

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

Részletesebben

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

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

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

Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek.

Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek. Tartalom 1. előadás programozás során használt nyelvek A specifikáció Algoritmikus nyelvek A problémamegoldás lépései 3/41 (miből?, mit?) specifikáció (mivel?, hogyan?) adat- + algoritmus-leírás 3. (a

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

AZ INFORMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI

AZ INFORMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI AZ INFORMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI A vizsga formája Középszinten: gyakorlati és szóbeli Emeltszinten: gyakorlati és szóbeli Az informatika érettségi vizsga célja Az informatika érettségi

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

Adatbázis- és szoftverfejlesztés elmélet

Adatbázis- és szoftverfejlesztés elmélet Adatbázis- és szoftverfejlesztés elmélet Informatikai rendszergazda 10. évfolyam Készítette: Nagy Zsolt Készült: 2015 Tartalom Bevezető... 4 Futtatható program elkészítése.... 5 IDE... 5 Adattípusok jellemzői...

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

INFORMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI

INFORMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI 1. oldal, összesen: 6 oldal INFORMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI A vizsga formája Középszinten: gyakorlati és szóbeli. Emeltszinten: gyakorlati és szóbeli. Az informatika érettségi vizsga

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

AZ Informatika érettségi VIZSGA ÁLTALÁNOS követelményei

AZ Informatika érettségi VIZSGA ÁLTALÁNOS követelményei AZ Informatika érettségi VIZSGA ÁLTALÁNOS követelményei A vizsga formája Középszinten: gyakorlati és szóbeli Emeltszinten: gyakorlati és szóbeli Az informatika érettségi vizsga célja Az informatika érettségi

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

Információtartalom vázlata

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

Részletesebben

A C# programozási nyelv alapjai

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

Részletesebben

A 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

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

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

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

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

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

B I T M A N B I v: T M A N

B I T M A N B I v: T M A N Műszaki informatika Tesztek+Megoldások B I v: T 2015.04.19 M A N 1/42 Tesztek + Megoldások Alapfogalmi kitérő kérdéssor IPA kérdéssor CPA kérdéssor 2/42 Ellenőrző kérdések 1. 1. Melyik Neumann elv következménye

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

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

Algoritmusok, adatszerkezetek, objektumok

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

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

Informatika tagozat osztályozóvizsga követelményei

Informatika tagozat osztályozóvizsga követelményei Tartalom 9. évfolyam... 1 10. évfolyam... 4 11. évfolyam... 6 12. évfolyam... 8 9. évfolyam Az informatikai eszközök használata Az egészséges munkakörnyezet megteremtése Neumann elvű számítógép felépítése

Részletesebben

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

Digitális technika VIMIAA01 9. hét

Digitális technika VIMIAA01 9. hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

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

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

A program valamilyen feladat, probléma megoldására készül, általános szerkezete: INPUT ALGORITMUS OTUPUT

A program valamilyen feladat, probléma megoldására készül, általános szerkezete: INPUT ALGORITMUS OTUPUT ELMÉLET I. Algoritmizálás A program valamilyen feladat, probléma megoldására készül, általános szerkezete: Ismert adatok Ismert adatok Keresett (kezdetben ismeretlen) adatok Más szavakkal: INPUT ALGORITMUS

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

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX

Részletesebben

Algoritmusok. Hogyan csináljam?

Algoritmusok. Hogyan csináljam? Algoritmusok Hogyan csináljam? 1 Az algoritmus fogalma Algoritmusnak olyan pontos előírást nevezünk, amely megmondja, hogy bizonyos feladat megoldásakor milyen műveleteket milyen meghatározott sorrendben

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

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

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

Nézzük tovább a lexikai egységeket!

Nézzük tovább a lexikai egységeket! Utasítások Osztályozásuk: Nézzük tovább a lexikai egységeket! - értékadó utasítások - ugró utasítások[vezérlő utasítások (a program vezérlési szerkezetét adják meg)] - feltételes utasítások - ciklusszervező

Részletesebben

INFORMATIKA ÉRETTSÉGI VIZSGAKÖVETELMÉNYEK AZ ÉRETTSÉGI VIZSGA RÉSZLETES TEMATIKÁJA

INFORMATIKA ÉRETTSÉGI VIZSGAKÖVETELMÉNYEK AZ ÉRETTSÉGI VIZSGA RÉSZLETES TEMATIKÁJA A témakörök előtt lévő számok az informatika tantárgy részletes vizsgakövetelménye és a vizsga leírása dokumentumban szereplő témaköröket jelölik. KÖVETELMÉNYEK 1.1. A kommunikáció 1.1.1. A kommunikáció

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

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

Objektum orientált programozás Bevezetés

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

Részletesebben

Adatstruktúrák Algoritmusok Objektumok

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

Részletesebben

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

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

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

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

Részletesebben

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin 1 A PROGRAMOZÁS ALAPJAI 3 Készítette: Vénné Meskó Katalin Információk 2 Elérhetőség meskokatalin@tfkkefohu Fogadóóra: szerda 10:45-11:30 Számonkérés Időpontok Dec 19 9:00, Jan 05 9:00, Jan 18 9:00 egy

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

DW 9. előadás DW tervezése, DW-projekt

DW 9. előadás DW tervezése, DW-projekt DW 9. előadás DW tervezése, DW-projekt Követelmény felmérés DW séma tervezése Betöltési modul tervezése Fizikai DW tervezése OLAP felület tervezése Hardver kiépítése Implementáció Tesztelés, bevezetés

Részletesebben

Miskolci Egyetem Általános Informatikai Tanszék

Miskolci Egyetem Általános Informatikai Tanszék Software tesztelés Miskolci Egyetem Általános Informatikai Tanszék Software tesztelés SWTESZT / 1 A tesztelés feladata Két alapvető cél rendszerben található hibák felderítése annak ellenőrzése, hogy a

Részletesebben

A tesztelés feladata. Verifikáció

A tesztelés feladata. Verifikáció Software tesztelés Miskolci Egyetem Általános Informatikai Tanszék Software tesztelés SWTESZT / 1 A tesztelés feladata Két alapvető cél rendszerben található hibák felderítése annak ellenőrzése, hogy a

Részletesebben

Bevezetés a Programozásba II 1. előadás. Szoftverfejlesztés, programozási paradigmák

Bevezetés a Programozásba II 1. előadás. Szoftverfejlesztés, programozási paradigmák Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 1. előadás, programozási paradigmák 2014.02.10. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

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

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

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc 4. fejezet Fordítók felépítése Grafikus Processzorok Tudományos Célú Programozása Fordítók Kézzel assembly kódot írni nem érdemes, mert: Egyszerűen nem skálázik nagy problémákhoz arányosan sok kódot kell

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

B I T M A N B I v: T 2014.02.15 M A N

B I T M A N B I v: T 2014.02.15 M A N Műszaki informatika 2. Ea: IPA Az Informatikai Problémamegoldás Alapjai B I v: T 2014.02.15 M A N 1/223 Probléma megoldás (erről szól a tananyag) 2/223 Ezt kell megtanulni! De nem így! Miért? Probléma

Részletesebben

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

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

Részletesebben

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

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

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

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

A program II. A program életútja 2

A program II. A program életútja 2 A program II. A program életútja 2 A program elkészítése egy gyártási folyamat, melynek több fázisát különböztetjük meg. A fázisokon való végighaladást a program életútjának szokás nevezni. Feladatmegfogalmazás

Részletesebben

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

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

Részletesebben

TANMENET 2018/2019. tanév

TANMENET 2018/2019. tanév Szolnoki Műszaki Szakképzési Centrum Pálfy-Vízügyi Szakgimnáziuma 5000 Szolnok, Tiszaparti sétány 2-3. Tel:06-56-424-955, Fax: 06-56-513-925 e-mail cím: titkarsag@palfy-vizugyi.hu TANMENET 2018/2019. tanév

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

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

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

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

Mikrovezérlők szoftverfejlesztése, az assembly alapjai

Mikrovezérlők szoftverfejlesztése, az assembly alapjai Mikrovezérlők szoftverfejlesztése, az assembly alapjai A mikrovezérlők programozásához először tekintsük át általánosan a szoftverfejlesztés alapjait. Mikrovezérlők szoftverfejlesztése A mikrovezérlős

Részletesebben

Informatika ismeretek érettségi szóbeli témakörök

Informatika ismeretek érettségi szóbeli témakörök Informatika ismeretek érettségi szóbeli témakörök Szent Benedek Általános Iskola, Középiskola, Alapfokú Művészeti Iskola és Kollégium Kiskunfélegyházi PG Tagintézménye 2019. május-júniusi vizsgaidőszak

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

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

Internet programozása. 1. előadás

Internet programozása. 1. előadás Internet programozása 1. előadás Áttekintés 1. Mi a PHP? 2. A PHP fejlődése 3. A PHP 4 újdonságai 4. Miért pont PHP? 5. A programfejlesztés eszközei 1. Mi a PHP? Egy makrókészlet volt, amely személyes

Részletesebben

Bevezetés a programozásba

Bevezetés a programozásba Bevezetés a programozásba A szoftverfejlesztés folyamata PPKE-ITK Tartalom A rendszer és a szoftver fogalma A szoftver, mint termék és készítésének jellegzetességei A szoftverkészítés fázisai: Az igények

Részletesebben

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport 10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)

Részletesebben

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14. Informatika 1 2011 Második előadás, vezérlési szerkezetek Szabó Adrienn 2011. szeptember 14. Tartalom Algoritmusok, vezérlési szerkezetek If - else: elágazás While ciklus For ciklus Egyszerű típusok Összetett

Részletesebben