Programozás módszertan p.1/110

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

Download "Programozás módszertan p.1/110"

Átírás

1 Programozás módszertan Alprogramok Pere László ( ) PÉCSI EGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK MAGYAR TUDOMÁNYOS AKADÉMIA SZÁMÍTÁSTECHNIKAI ÉS AUTOMATIZÁLÁI KUTATÓINTÉZET ELEARNING OSZTÁLY Programozás módszertan p.1/110

2 Bevezetés Programozás módszertan p.2/110

3 Bevezetés Az alprogramok több szempontból is javítják a szoftverminőséget: Újrafelhasználhatóság. Olvashatóság. Módosíthatóság. Karbantarthatóság. Programozás módszertan p.3/110

4 Eljárások és függvények Az alprogramokat két csoportba sorolhatjuk: Az eljárások a program környezetén vagy a változókon végeznek módosításokat. A függvények valamilyen értéket számítanak ki, a változókra és a program környezetére nincsenek hatással (nincs mellékhatásuk). Programozás módszertan p.4/110

5 Kapcsolattartás Programozás módszertan p.5/110

6 Kapcsolattartás Az alprogramok a számításokat a paraméterként átvett értékeken (bemenő paraméterek) végzik el. A függvények a kiszámított értéket visszatérési értékként adják át. Az eljárások a kimenő paraméterek értékének megváltoztatásával adhatnak vissza értéket (formális és aktuális paraméterek egymáshoz rendelése). Programozás módszertan p.6/110

7 Eljárások/függvények Sok nyelv (C, C++, Java, C#, CLU) nem tesz különbséget eljárások és függvények közt. Ezekben a nyelvekben minden alprogram függvény. Ezeknél a nyelveknél a visszatérési értéket sokszor figyelmen kívül hagyjuk (eldobjuk). Programozás módszertan p.7/110

8 Paraméterek típusa Fontos kérdés, hogy egy programozási nyelvben mi lehet paraméter és visszatérési érték. Ezek általában: értékek típusok alprogramok modulok Programozás módszertan p.8/110

9 a) Tömbök Programozás módszertan p.9/110

10 Meghatározatlan méretű tömb Sok programozási nyelv megengedi, hogy a formális paraméter nem teljesen meghatározott típusú legyen. Így olyan alprogram készíthető, amely többféle konkrét típussal is használható. E lehetőség tipikus használata a meghatározatlan méretű tömböt kezelő alprogram készítése. Programozás módszertan p.10/110

11 !. " % #/ - " " $# " & 0 Pascal A Standard Pascalban meghatározatlan méretű tömböt a következő formában adhatunk át: 1 % ')( *,+ " " 1 + " )4 " 1 Az alprogramon belül a low és high változók hordozzák a tömb felső és alsó indehatárát. Programozás módszertan p.11/110

12 Ada Adában a paraméterként átvett tömb felső és alsó indexhatárára attribútumként hivatkozhatunk. Ha az átvett tömb neve V, az alsó indexérték V First, a felső indexérték pedig V Last. Programozás módszertan p.12/110

13 2. ' 5 5 " ' 5 5 " C A C programozási nyelvben átadhatjuk a tömböket az első elem címével, a méretüket pedig külön paraméterként. A C szabvány külön foglalkozik a meghatározatlan méretű tömbök kezelésével és megengedi, hogy ilyen tömbök struktúrák elemei legyenek (de csak az utolsó elem lehet meghatározatlan méretű tömb). 1 3)4 2 3)4 Programozás módszertan p.13/110

14 Java A Java tömbjeinek tárolásakor a méretet is tároljuk, így a tömbök átadása után a méret lekérdezhető a tömbből. Programozás módszertan p.14/110

15 3 B?D ' ;8 78? C B?> =< :9 0 0 C B?< > = 3 G G 'F B : FORTRAN A FORTRAN 77 lehetővé teszi meghatározatlan méretű tömbök átadását. A méretet külön változóban adjuk át E? : A FORTRAN 77 meghatározatlan méretű tömbjei kizárólag paraméterátadásra használhatók, végső soron minden meghatározatlan méretű tömb valamely meghatározott méretű tömb hordozására használható. Programozás módszertan p.15/110

16 Többdimenziós tömbök Az egydimenziós tömb esetén csak annyit kell tudnunk, hogy nem lépjük át az indexhatárokat, nem feltétlen kell tudnunk, hogy mekkora a tömb pontos mérete. Többdimenziós tömb esetében mindenképpen ismernünk kell a tömb méretét ahhoz, hogy a tömb adott eleméhez hozzáférjünk (címfüggvény). Ha például kétdimenziós tömb esetén nem tudjuk az első index határait, nem tudjuk kiszámítani a második sor címét. Programozás módszertan p.16/110

17 Java A Java nyelvben a többdimenziós tömbök tömböket tartalmazó tömbök és mivel a tömbök kezelése referenciákon keresztül történik, nem okoz problémát a címfüggvény kezelése. Programozás módszertan p.17/110

18 Ada Adában a többdimenziós tömbök kezelése hatékony sor vagy oszlopfolytonos tárolással történik. Többdimenziós tömbök esetén a First, Last dimenziószámmal indexelt változataival kérdezhetjük le az alprogramban. Programozás módszertan p.18/110

19 FORTRAN A FORTRAN esetében a fordító nem fér hozzá a tömb méretéhez, erre azonban a címfüggvény miatt szükség van. FORTRAN nyelven tahát többdimenziós tömbök esetében mindenképpen a helyes méreteket kell átadnia a programozónak. Programozás módszertan p.19/110

20 H # 2 G G.F 2. ' 5 5 #" 5 0 C/C++ A C és C++ nyelvekben nehézkes a többdimenziós tömbök meghatározatlan méretű tömbként való átadása. A programozó előtt két út áll: vagy megvalósítja a címfüggvényt, vagy csak az oszlopok méretét hagyja definiálatlanul: 1 3)4 Programozás módszertan p.20/110

21 C/C++! 1 5 ' 6 5 " 0 " #/ 0 $ # 3 2 I 3 0 J 0 K G 4 4 L #" ' K G 4 M " #/ 4 N N 3 5 L #" ' J K G 4 J M $ # 4 N N J 3 6 N K 6 ' 5 " N 6 $ # N J 3 7 " " 4 8 O Programozás módszertan p.21/110

22 a) Alprogramok Programozás módszertan p.22/110

23 Alprogramok Sokszor hasznos lehet alprogramoknak paraméterként alprogramot átadni. Jellemző példa lehet a tetszőleges függvényt integráló vagy deriváló alprogram vagy az elemeket sorbarendező általános rendező alprogram (amely a rendezendő tömbön kívül megkapja az elemek összehasonlítására használható függvényt paraméterként). Programozás módszertan p.23/110

24 Alprogramok Korai programozási nyelvek nem tették lehetővé alprogramok paraméterként való átadását, újabb nyelvek (LISP, ALGOL 60, PL/I, SIMULA 67, ALGOL 68, Pascal, FORTRAN 77, Modula-2, Modula-3) megadják ezt a lehetőséget a programozónak. Néhány más nyelvben alprogramot nem adhatunk át, de a rájuk mutató pointert igen (C, C++, Ada 95). Említésre méltó a JavaScript, ahol nem teszünk különbséget függvények és változók közt, függvény elhelyezhető változóban. Programozás módszertan p.24/110

25 ! 4 L L 4 #/ " ( 0 G K K #" L #/ N + Programozás módszertan p.25/110 Pascal " 3 + " + ' # $ L ' 1 " # $ " 3 + " 1 " 5+ P 1 G P - 1 # ' L 5 K K 1 " %

26 ! ' % % #/ % % 0 I G % K I K M #/ / 3 #/ #/ O " O C C nyelven a függvény nevét () jelek nélkül írva a függvényt alkotó utasítások közül az első címét (a függvény címét) kapjuk. P # 3 P # % ' 3 L 6 P # % ' 1 " P # P # 1 P # G 4 5 P # 3 1 ' ' L 4 6 K N 5 4 K N 54 " Programozás módszertan p.26/

27 c) Címke Programozás módszertan p.27/110

28 Címke Bizonyos nyelvekben (ALGOL 60, PL/I, SIMULA 67, ALGOL 68) címkéket is átadhatunk paraméterként. Ez a lehetőség kitűnően használható kivételkezelésre. A címke segítségével megadhatjuk az alprogramnak hol folytatódjon a végrehajtás, ha hiba lépett fel. Programozás módszertan p.28/110

29 Alprogramok pecifikációja Programozás módszertan p.29/110

30 Specifikáció Az alprogram specifikációja az az interface, amelyet a hívó program ismer. A hívó számára mellékes, hogy milyen utasításokat tartalmaz az alprogram, számára csak az a lényeges, hogy milyen módon hívható. Az alprogram specifikációja tartalmazza az alprogram típusát (eljárás, függvény), nevét, a paraméterek típusát és a visszatérési érték típusát. Az alprogram specifikációja alapján a fordító ellenőrizheti és lefordíthatja az alprogram hívását, így az alprogram törzse egy másik fordítási egységben is lehet. Programozás módszertan p.30/110

31 Paraméterek száma Néhány programozási nyelv nem ellenőrzi a paraméterek számát (általában a script nyelvek). Ezen nyelvek esetében tetszőleges számú paraméterrel hívhatjuk az alprogramokat. A legtöbb programozási nyelv ellenőrzi a paraméterek számát, néhányukban többféle paraméterszámmal is hívhatjuk az alprogramokat. Programozás módszertan p.31/110

32 #" L 6 " $ L " 0 5 C A C programozási nyelvben a... (ellipsis) kifejezéssel jelezhetjük, ha tetszőleges számú paraméterrel szeretnénk hívni az alprogramot (variadic functions). 1 ' $ # 3)4 A paraméterekhez ilyen esetben a va_list, va_start, va_arg, stb. makrókkal férhetünk hozzá. Programozás módszertan p.32/110

33 I $ P C % # Q C++ C++ nyelvben azonos néven, különböző paraméterlistával több függvényt is készíthetünk, a fordító pedig eldönti, hogy melyik függvényt kell hívni az adott esetben: 1 " - 2 $ + 3 " - ' $ = $ 3)4 4 " - ' $ " - 3)4 5 " - ')( 3)4 Programozás módszertan p.33/110

34 D D 8> " $ " $ L 6 / $ K 0 0 G & SR K C++ Arra is lehetőséget ad a C++, hogy egyes paramétereket elhagyjunk a függvény hívásakor (default érték): 1 ' $ # # - 2 3)4 Ilyen esetben az elhagyható paraméterek a paraméterlista végén találhatók, az azonosítás pedig a sorrend alapján történik. Programozás módszertan p.34/110

35 Paraméterek típusa Bizonyos nyelvek esetében a fordító nem ellenőrzi azt, hogy a megfelelő típusú paraméterekkel hívtuk-e az alprogramot (pl. FORTRAN 77). A legtöbb modern nyelv ellenőrzi a formális paraméterek és az aktuális paraméterek típusát (FORTRAN 90, Ada, Pascal, Java). Programozás módszertan p.35/110

36 3 P ' " $ 0 0 I O C A C nyelv eredeti (K&R) változataiban a fordító a paraméterek típusának ellenőrzését nem végezte el. Ezt a változatot használva a függvény szerkezete: P 4 Programozás módszertan p.36/110

37 3 P ' " $ 0 I O C A C későbbi (ANSI) változataiban már ellenőrzi a fordító a paraméterek számát és típusát. Az előző példa modern változata: Ma már mindenki ezt a formát használja, de régi programokban még megtalálható a K&R változat is. Programozás módszertan p.37/110

38 Paraméterek neve A legtöbb nyelvben a formális paraméterek neve a hívás során nem jut szerephez, az csak az alprogramot író programozó számára lényeges. Ezen nyelvek esetében a paraméterek neve csak megkönnyíti a paraméterek szerepének megértését, a hívást nem befolyásolja. Más nyelvek esetében az aktuális paraméterek nem csak pozíció, hanem név alapján is megfeleltethető a hívás során. Ezen nyelvek esetében a formális paraméterek neve fontos szerepet kaphat a hívás során. Programozás módszertan p.38/110

39 " $ 6 " 6 " $ $ - 0 C A C programkönyvtár függvényeinek használatát könnyen megérhetjük a formális paraméterek nevének segítségével: 1 $ " ' $ % # 3)4 $ " 6 A C nyelvben a hívás során nem használhatjuk a formális paraméterek nevét. Programozás módszertan p.39/110

40 ! R T K L 0 U UV T K = " # 0 U T K # 5 W Programozás módszertan p.40/110 Ada Az Ada nyelv esetében a paraméterek neve felhasználható a híváskor: 7 ' #" 9 $ $ " / > 1 3 U 2

41 Alprogramok törzse Programozás módszertan p.41/110

42 Alprogramok törzse Az alprogramok törzse tartalmazza az utasításokat, amelyeket az alprogram hívásakor végre kell hajtani és a változódeklarációkat, amelyek a lokális változókat írják le. Az alprogramok utasításai és a lokális változók deklaráció egyes programozási nyelvekben elkülönülnek (Pascal, Ada), más nyelvekben kevésbé (C), egyesekben pedig egyáltalán nem (Java, C++). Programozás módszertan p.42/110

43 Visszatérés A függvényből való visszatérés során meg kell adnunk a visszatérési értéket. A legtöbb nyelvben erre a return utasítás használható, amely után a visszatérési értéket adjuk meg. Egyes korai nyelvekben (FORTRAN, ALGOL 60, Pascal) a függvény neve kap értéket a return utasítás végrehajtása előtt. Programozás módszertan p.43/110

44 Alprogramok hívása Programozás módszertan p.44/110

45 Alprogramok hívása Alprogramok hívása az alprogram nevének megadásával és az aktuális paraméterek megadásával történik (néhány régebbi nyelv esetében szükséges a CALL utasítás használata). Az aktuális paraméterek listáját általában () jelek közt adjuk meg, amelyek üres lista esetén sem hagyhatók el. Programozás módszertan p.45/110

46 Alapértelmezett paraméterek Néhány nyelvben alapértelmezett értéket rendelhetünk a paraméterekhez. Az ilyen esetekben a függvény paramétereinek száma állandó, de nem feltétlenül mindet kell megadnunk a függvény hívásakor. Programozás módszertan p.46/110

47 Belépési pontok Néhány programozási nyelvben (PL/I, FORTRAN 77) az alprogramot nem csak az elején lehet kezdeni, ahhoz több belépési pont is rendelhető. Ilyen nyelvekben általában minden belépési ponthoz saját paraméterlista rendelhető. Programozás módszertan p.47/110

48 Belépési pontok (példa)! 1 78 :9 ;8 =<?> = > XY = Z< ' V 0 D 3 2 = K D 3 E ; < ; F G 4? > :< [ = > X ' V 3 5 = K F 6 V K V N = 7 F G? A> Programozás módszertan p.48/110

49 G 'S - 1 Objektumorientált módszer Objektumorientált nyelvek esetében az alprogramok (metódusok) az objektumokhoz tartoznak. Az objektumot a híváskor meg kell adnunk, azt is mondhatnánk, hogy az objektum az első paraméter. 1 3)4 A metóduson belül külön kulcsszóval (this, self, Current, me) hivatkozhatunk az objektumra, amelyre meghívtuk a metódust. Programozás módszertan p.49/110

50 Rekurzív alprogramok Programozás módszertan p.50/110

51 Rekurzív alprogramok Az alprogramokat, amelyek önmagukat hívják, közvetlenül rekurzív alprogramoknak nevezzük. Az olyan alprogramokat, amelyek más alprogramokon keresztül hívják önmagukat, közvetetten rekurzív alprogramoknak hívjuk. Programozás módszertan p.51/110

52 Rekurzív alprogramok A rekurzív alprogramok a programvégrehajtás adott időpontjában több példányban is aktív lehet. A lokális változókat minden aktív alprogrampéldány számára biztosítani kell, ezért az olyan nyelvekben, amelyek lehetővé teszik a rekurzív alprogramhívást, a lokális változók kezelése költséges lehet. Programozás módszertan p.52/110

53 Rekurzív alprogramok Bizonyos nyelvekben egyáltalán nem lehet rekurzív alprogramokat írni (pl. FORTRAN 77), másokban lehet (pl. C, C++), ismét másokban lehet, de külön jelölni kell, ha a függvényben rekurzív hívást akarunk használni (FORTRAN 90). Programozás módszertan p.53/110

54 Makrók és inline alprogramok Programozás módszertan p.54/110

55 A makró A makró igen egyszerű alprogramszerkezet, olyan szöveges érték, amelyet más szöveg helyére illesztünk be a program fordítása előtt. A makróérték a forrásprogramba helyettesítődik, így a programfutás során megtakaríthatjuk az alprogram hívását és a visszatérését. Sok esetben éppen a gyors hívás értékében használunk makrót. Programozás módszertan p.55/110

56 Makróparaméterek A makrók paraméterezhetők, de a formális paraméterek típusellenőrzés nélkül helyettesítődnek be az aktuális paraméterek értékére szöveges másolással. A makrók paramétereit óvatosan kell kezelnünk, a makrók törzsének átírásakor az összes makróhívást ellenőriznünk kell. Programozás módszertan p.56/110

57 ! 3 3 P ' 3 ' 3 P ' 3 P ' ^ 3 ' L B \ T + 0 ` C A C programozási nyelvben a makrók az előfeldolgozó utasításai, a következő formában: 1 % Mi történik, ha a makrót paraméterrel hívjuk meg? Programozás módszertan p.57/110

58 Inline alprogram A makrókkal kapcsolatos problémák megoldására használhatók az inline alprogramok. Az inline alprogramok minden tekintetben megegyeznek az egyéb alprogramokkal, de a fordító nem a megszokott módon hívja őket, hanem behelyettesíti a hívások helyére az alprogram kódját. Programozás módszertan p.58/110

59 d b a c b a 3 P ' 5 0 I ^ P T + " " O C, C++ A C++ programozási nyelvben szabványos és a modern C fordítók által elfogadott kulcsszó jelzi, hogy a függvényt a hivatkozás helyére be kell helyettesíteni $ P 4 Programozás módszertan p.59/110

60 Paraméterátadás Programozás módszertan p.60/110

61 Paraméterátadás Az információáramlás irányának szempontjából a paramétereket három csoportra oszthatjuk: Bemenő paraméterek. Kimenő paraméterek. Be- és kimenő paraméterek. Programozás módszertan p.61/110

62 Paraméterátadási módok A paraméterátadás módszere alapján a következő csoportokat különböztethetjük meg: Érték szerinti paraméterátadás. Cím szerinti paraméterátadás. Eredmény szerinti paraméterátadás. Érték/eredmény szerinti paraméterátadás. Szövegszerű behelyettesítés. Név szerinti paraméterátadás. Programozás módszertan p.62/110

63 Érték szerinti paraméterátadás A bemenő paraméterek átadására használható módszer. A formális paraméter lokális változó, az aktuális paraméter értéke ide másolódik. Az alprogram megváltoztathatja a formális paraméter értékét, de ez nincs hatással az aktuális paraméter értékére. Ennek a módszernek a használatakor bármi lehet aktuális paraméter, aminek értéke van (pl. kifejezés). Programozás módszertan p.63/110

64 Érték szerinti paraméterátadás Mivel az aktuális paraméterek értéke egy adott pillanatban másolódik át a formális paraméterek területére, az aktuális paraméterek későbbi megváltozása nincs hatással a formális paraméterek értékére. (Az aktuális paraméter lehet egy globális változó, amelyet az alprogram megváltoztathat.) Programozás módszertan p.64/110

65 Pascal A Pascal nyelvben az érték szerinti paraméterátadás az alapértelmezett paraméterátadási mód. Programozás módszertan p.65/110

66 3 ' % # ( I 4 F N K O C A C programozási nyelvben kizárólag érték szerinti paraméterátadási mód létezik. A következő függvénynek nincs hatása, a megváltoztatott formális paraméter értéke a visszatéréskor megsemmisül: #( Programozás módszertan p.66/110

67 3 6 ' % # ( I 4 F N 6 6 K O C Ha olyan függvényt akarunk készíteni, amely megváltoztatja a paraméterként kapott értéket, a paraméter címét adjuk át: #( Programozás módszertan p.67/110

68 Cím szerinti paraméterátadás Cím szerinti paraméterátadást be- és kimenőparaméterek kezelésére használhatjuk. A cím szerinti paraméterátadás használatakor az alprogram egy hivatkozást kap az aktuális paraméterhez, így az alprogram és a hívó ugyanazt a memóriaterületet (ugyanazt a változót) érik el. A paraméternek olyan objektumnak kell lennie, amelyre hivatkozás (memóriacím) mutathat. Programozás módszertan p.68/110

69 `f e = " % + " $# " 4 F N + K Pascal A Pascal programozási nyelvben a kulcsszóval jelölhetjük, hogy az adott paramétert cím szerint szeretnénk átadni P 1 % 4 #( ')( 3)4 " 1 Programozás módszertan p.69/110

70 C A C programozási nyelv a tömböket cím szerinti paraméterátadással kezeli. A következő példa bemutatja hogyan fogadhatunk tömböket paraméterként: 1 ( # % #( ' I 3. G 2 K. G 2 N F 4 4.F 2 K.F 2 N F 4 5 O Programozás módszertan p.70/110

71 Eredmény szerinti paraméterátadás Eredmény szerinti paraméterátadással kimenő paramétereket adhatunk át. A formális paraméter az alprogram lokális változója, amelynek az értékét az alprogram az aktuális paraméter helyére másolja az alprogram végrehajtása után. Ez a paraméterátadási mód meglehetősen ritka. Programozás módszertan p.71/110

72 Érték/eredmény paraméterátadás Az érték/eredmény szerinti paraméterátadást be- és kimenő paraméterek átadására használhatjuk. Az érték/eredmény paraméterátadás az alprogram hívásakor érték szerinti paraméterátadás használ (aktuális paraméterek értékének másolása a formális paraméterek területére), az alprogram befejeződésekor eredmény szerinti paraméterátadást (ua. fordítva) használ. Programozás módszertan p.72/110

73 3 = # ' " % $# " 4 F K % Ada Az Ada nyelvben a következő mintára használhatjuk az érték/eredmény szerinti paraméterátadást: 1 + " 1 2 P #( Programozás módszertan p.73/110

74 Szövegszerű behelyettesítés A szövegszerű behelyettesítést makrók esetén használjuk, nem tekinthető valódi paraméterátadásnak. Szövegszerű behelyettesítés esetén a programszövegben a formális paramétereket jelző karakterláncokat lecseréljük az aktuális paramétereket jelző karakterláncokra. Programozás módszertan p.74/110

75 Többszörös kiértékelés (C) g 1 \ % L ' 0 J 3 ' ' 3 T ' J 3 ^ ' 3 + ' J K 5 ' N F 0 h h H 3)4 5 i j k 1 2 K ' ' N F 3 T ' h h H 3 ^ ' N F 3 + ' h h H 3 3)4 3 Programozás módszertan p.75/110

76 Zárójelezés (C) g 1 \ % L?> E l[? < ' 3 ' K?> E l[? < ' P N F 3 5 i j k 1 2 K P N F 6 P N F 4 3 Programozás módszertan p.76/110

77 Név szerinti paraméterátadás A név szerinti paraméterátadás be- és kimenő paraméterek átadására használható. A név szerinti paraméterátadás kifejlesztésének célja az volt, hogy a makróassemblerekben használt szövegszerű behelyettesítésnél fejlettebb eszközzel dolgozhassunk. A név szerinti paraméterátadás a program, a paraméterek jellege szerint különböző adatátadási módszereket használ. Programozás módszertan p.77/110

78 Név szerinti paraméterátadás Ha az aktuális paraméter literál vagy konstans kifejezés, érték szerint adódik át. Ha az aktuális paraméter változó, cím szerint adódik át. Ha az aktuális paraméter változót is tartalmazó kifejezés, a kifejezés újra és újra kiértékelődik, ahányszor a formális paraméterre hivatkozunk az alprogramban (szövegszerű paraméterátadás). Programozás módszertan p.78/110

79 ! % #/ " " #/ ( 0 #/ 0 0 " " + # % = K + #" L #/ " + % Jensen s device (ALGOL 60) 3)4 1 ' 5 " $# " " " 4 1 " 1 P 1 4 " G 4 K 1 4 " N " K 4 " K Az alapértelmezett paraméterátadási mód név szerinti. Programozás módszertan p.79/110

80 G F F S N 6 m 6 6 R ' 5 K + - h Jensen s device (ALGOL 60) Számítsuk ki y = 10 x=1 3x 2 5x + 2 értékét a következő hívással: 1 3)4 A második paraméter cím szerint adódik át. A ciklusban megváltoztatjuk x értékét és ahányszor hivatkozunk az első paraméterre, kiszámítjuk a kifejezés értékét. Programozás módszertan p.80/110

81 Példák A következő néhány oldalon programozási nyelveket vizsgálunk meg a paraméterátadás szempontjából. Megvizsgáljuk, hogy milyen válaszokat adnak az egyes nyelvek a gyakorlatban felmerülő problémákra. Programozás módszertan p.81/110

82 FORTRAN A FORTRAN paraméterkezelése be- és kimenőparaméterek használatát teszi szükségessé, a szabványok azonban nem írják elő milyen paraméterátadási módot kell használnia a fordítónak. Régebbi FORTRAN megvalósítások általában cím szerinti paraméterátadást használnak, az újabbak érték/eredmény szerinti paraméterátadást. Programozás módszertan p.82/110

83 FORTRAN Ha az aktuális paraméter literál vagy összetett kifejezés, a fordító ideiglenes változót hoz létre, amelyet cím vagy érték/eredmény szerint ad át. A FORTRAN fordító általában nem tekinti hibának, ha az alprogram megváltoztatja az ilyen eredetű formális paramétert, a változás azonban elveszik az alprogram futásának végén. Programozás módszertan p.83/110

84 ALGOL 60 Az ALGOL 60 alapértelmezett paraméterátadási módja a név szerinti, választható azonban az érték szerinti paraméterátadási mód is. A név szerinti paraméterátadást nem sok nyelv vette át, meglehetősen ritka. Ennek oka nyilván a név szerinti paraméterátadás bonyolultsága és viszonylag alacsony gyakorlati haszna. Jellemzően érték szerinti és cím szerinti paraméterátadást használ az ALGOL 68. Programozás módszertan p.84/110

85 C A C programozási nyelvben igen jellemző az érték szerinti paraméterátadás, amely világossá, kezelhetővé teszi az alprogramokat. Az egyetlen dolog, amit a C tervezői az egyszerűség elé helyeztek, a hatékonyság, ezért a tömbök paraméterként való átadása esetén cím szerinti paraméterátadást használunk. A C++ a referencia bevezetésével egyszerűsítette a mutatók átadását, alapvetően azonban nem változtatott a paraméterátadáson. Programozás módszertan p.85/110

86 n d f q op C# A C# paraméterátadása meglehetősen bonyolult. Alapértelmezett esetben bizonyos típusok hivatkozás (cím) szerint, bizonyos típusok pedig érték szerint adódnak át. A kulcsszóval elérhetjük, hogy az alprogram megváltoztathassa az aktuális paramétereket. Az kulcsszóval kényszeríthető a kimenő paraméterként való használat, melynek során a paraméter nem tekinthető inicializáltnak az alprogram elején és kötelezően inicializálandó az alprogramban. Programozás módszertan p.86/110

87 a q op b a b q op Ada Az Ada paraméterátadása esetén a programozó nem a paraméterátadás módját, hanem az irányát határozhatja meg az, kulcsszavakkal. Az alprogram az paramétereket nem változtathatja meg, az paramétereket nem olvashatja ki. Programozás módszertan p.87/110

88 Alprogramok környezete Programozás módszertan p.88/110

89 Külön fordíthatóság Csak azok a programozási nyelvek (és fordítóprogramok) alkalmasak nagy méretű programok készítésére, amelyek alkalmasak arra, hogy a fordítást részenként, fordítási egységenként végezzük el. Ha fordítási egységenként végezzük el a fordítást, a fordítóprogramnak csak az adott fordítási egység objektumait kell kezelnie, a fordítás kevesebb erőforrást igényel. Ha a fordítási egységenként végezzük el a fordítást, csak azokat az egységeket kell újrafordítani, amelyben módosítottunk. Ez drasztikusan csökkenti a fordítási időt. Programozás módszertan p.89/110

90 Külön fordítási egység Az alprogramok természetes határt jelölnek, kézenfekvőnek tűnik, hogy az alprogramok alkossanak fordítási egységet, azaz a program legyen fordítható alprogramonként. Igaz azonban az is, hogy sok programozási nyelv esetében nem alprogramonként történik a fordítás. Programozás módszertan p.90/110

91 ASA FORTRAN Az ASA FORTRAN esetében az alprogramok fordítási egységek, azaz a program fordítható alprogramonként. (Emlékezzünk a FORTRAN tanulmányainkra: a változók, címkék, függvények deklarációi az alprogramon belül érvényesek, így az alprogram a program többi része nélkül fordítható.) Programozás módszertan p.91/110

92 df q dr b x v u ts 4 C A C programozási nyelvben a fordítási egység az állomány, amelyben egy vagy több alprogram (függvény) lehet, az alprogram tehát a legkisebb fordítási egység. A C nyelvben az adott fordítási egység által használt származtatott típusokat és a függvények típusait ha azokat más fordítási egységben is használjuk header állományokból töltjük be. A C nyelvben a fordítási egységen kívüli globális változót az kulcsszóval kell deklarálni: w 1 " Programozás módszertan p.92/110

93 Egyéb nyelvek Az Ada nyelvben az alprogram lehet fordítási egység, a Modula-2, Java és Clean nyelvekben a fordítási egység összetettebb az alprogramnál. A FORTRAN II és a Pascal korai változatai csak egész programokat képesek fordítani. Bizonyos nyelvek esetében (pl. PL/I, C) a fordító nem képes az alprogramok deklarációit ellenőrizni, ha azok nem az aktuális fordítási egységben vannak. A PL/I és a C lehetővé teszi külső alprogram típusának deklarációját. Programozás módszertan p.93/110

94 Beágyazhatóság Bizonyos nyelvek lehetőséget adnak arra, hogy az alprogramokat (esetleg utasításblokkokat) egymásban ágyazzuk, azaz alprogramokon belül alprogramokat, utasításblokkon belül utasításblokkokat hozzunk létre. Programozás módszertan p.94/110

95 zy C A C programozási nyelv esetében a jelek segítségével utasításblokkot hozhatunk létre. Az utasításblokkok egymásba ágyazhatók. A C programozási nyelv nem teszi lehetővé alprogramok (függvények) egymásba ágyazását. A GNU C fordító tartalmaz ilyen bővítést (azaz kezeli a függvényeken belüli függvényeket), de ezt a lehetőséget humanoid programozók nem használják. Programozás módszertan p.95/110

96 Java A Java nyelvben osztályokat egymásba ágyazhatunk (az osztályokban természetesen lehetnek metódusok), osztályokat alprogramba ágyazhatunk, de alprogramokat nem ágyazhatunk alprogramokba. (Ha az osztályokat típusoknak tekintjük, a koncepció érthetővé válik.) Programozás módszertan p.96/110

97 Modula-2, Ada A Modula-2 és az Ada nyelvekben az alprogramokat alprogramba ágyazhatjuk, így a hatókör csökkenthető, az alprogram elrejthető, a bonyolultság csökkenthető. (Az alprogram és általában az információ elrejtésének elve azt mondja ki, hogy a program megértéséhez nem feltétlen szükséges elemeket rejtsük el, azok ne zavarják a programozót.) Programozás módszertan p.97/110

98 Statikus és dinamikus hatókör Statikus hatókörről beszélünk, ha a hatókör kizárólag a programegységek egymásba ágyazása alapján eldönthető. A statikus hatókört használó nyelvek esetén csak azokban a programsorokban érvényes az objektum, amelyek a hatókörét meghatározó programegységen belül találhatók. Dinamikus hatókör esetén a hatókört befolyásolja a hívási lánc, az objektum hatóköre kiterjed a hívott alprogramokra is. Programozás módszertan p.98/110

99 Statikus típusosság és hatókör A statikus típusosság megköveteli a statikus hatókört, mert dinamikus hatókör esetén csak a futáskor dönthető el, hogy két azonos nevű, de különböző típusú változó közül melyiknek érvényes a hatóköre az adott esetben. Nyilvánvaló, hogy a statikus hatókört használó nyelveken megírt programot sokkal könnyebb elolvasni, megérteni. Különösen igaz ez mély hívási lánc esetén a távol deklarált objektumok esetében. Programozás módszertan p.99/110

100 Élettartam Láttuk, hogy az alprogramok lokális változói és formális paraméterei általában dinamikus tárolási osztályúak, ami azt jelenti, hogy élettartamuk az alprogram aktív idejére korlátozódik. Addig léteznek, amíg az alprogram aktív. Léteznek statikus tárolási osztályt használó nyelvek is és olyanok is, ahol a programozó írhat elő statikus tárolási osztályt. Programozás módszertan p.100/110

101 Alprogramnevek túlterhelése Léteznek olyan nyelvek, ahol azonos néven több alprogramot is létrehozhatunk. Ezeknek a nyelveknek az esetében a fordító a híváskor eldönti, hogy melyik alprogramot kívánjuk hívni az adott ponton. A fordító a döntéshez az alprogram specifikációját használhatja, azaz a híváskor a specifikációban található információk alapján egyértelműen eldönthetőnek kell lennie, hogy melyik függvényt kell hívni. Ez természetesen azt jelenti, hogy a túlterhelés során a név megegyezik ugyan, de a specifikáció nem lehet azonos. Programozás módszertan p.101/110

102 Ada Az Ada programozási nyelvben a szokásos túlterhelés mellett az alprogramokat hívhatjuk minősített névvel. A minősítés a csomag nevéből áll. Ez a lehetőség hasznos, ha különböző csomagokban azonos nevű és specifikációjú alprogram van. Programozás módszertan p.102/110

103 Java, C++ A Java és C++ nyelvekben a függvények visszatérési értékét nem kötelező felhasználnunk, ezért két azonos nevű alprogram közt nem tehetünk különbséget a visszatérési értékkel. Következik ebből, hogy ezekben a nyelvekben nem készíthetünk azonos nevű függvényeket, amelyek csak a visszatérési érték típusában különböznek. Programozás módszertan p.103/110

104 Operátorok túlterhelése Az operátorok különleges alprogramok, amelyek különleges nyelvtan alapján hívhatók. Bizonyos nyelvek megengedik az operátorok túlterhelését, azaz lehetővé teszik, hogy a programozó megadja vagy megváltoztassa az operátorokat megvalósító alprogramokat adott típusra. A legtöbb programozási nyelvben, amelyben a beépített operátorok túlterhelhetők, új operátor nem hozható létre. Programozás módszertan p.104/110

105 C++ A C nyelvvel szemben a C++ lehetővé teszi, hogy a beépített operátorokat túlterheljük. Az objektumorientált módszertan és az operátorok túlterhelése jól együttműködő párosa igen nagy kifejezőerőt kölcsönöz a nyelvnek. A C++ nyelvvel szemben a Java nem teszi lehetővé az operátorok túlterhelését. Programozás módszertan p.105/110

106 Ada Az Ada operátorai túlterhelhetők, de újabb operátort nem lehet létrehozni. A túlterhelt operátor örökli a beépített operátor precedenciáját, ami ésszerű határt szab a programozó dühöngő kreativitásának (a precedenciát a legtöbb programozó percepcionális szinten tanulta meg). Programozás módszertan p.106/110

107 Alprogramok megvalósítása Programozás módszertan p.107/110

108 A végrehajtási verem Az program végrehajtása során az egyes alprogramok egymást hívják, azaz indítják el, egy időben tehát több alprogram is lehet aktív. Rekurzív hívás esetén ugyanaz az alprogram több példányban is aktív lehet. Az alprogramok hívási szerkezete a veremre emlékeztet: az az alprogram fejeződik be előbb, amely később indult. Ezért a programok az alprogramok kezelését veremmel (runtime stack) kezelik. Programozás módszertan p.108/110

109 Hívási lánc Amikor egy alprogramot hívunk adatok kerülnek a verembe, amikor pedig befejezzük az alprogram végrehajtását, az adatokat eltávolítjuk a veremből. A veremből mindig kideríthető, hogy melyek az aktív alprogramok, hogy melyik alprogram hívta a másikat. Az egymást hívó alprogramok sorozatát hívási láncnak, a veremben az alprogramról tárolt adatokat aktivációs rekordnak nevezzük. Programozás módszertan p.109/110

110 Aktivációs rekord Az aktivációs rekord tartalmazza: A memóriacímet, ahová vissza kell térni az alprogram befejezésekor. A regiszterek híváskori értékét. A legtöbb programozási nyelv esetében a lokális változók és a paraméterek értékét. Rekurzív függvényhívás esetében minden futó példány saját aktivációs rekorddal (és így saját lokális változókészlettel) rendelkezik. Programozás módszertan p.110/110

Alprogramok, paraméterátadás

Alprogramok, paraméterátadás ELTE Informatikai Kar, Programozási Nyelvek és Fordítóprogramok Tanszék October 24, 2016 Programozási nyelvek Alprogramok Függvények, eljárások Metódusok Korutinok stb. Alprogramok Alprogram: olyan nyelvi

Részletesebben

Bevezetés, a C++ osztályok. Pere László

Bevezetés, a C++ osztályok. Pere László Programozás módszertan II. p. Programozás módszertan II. Bevezetés, a C++ osztályok Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK

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

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

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék Speciális adattagok és tagfüek Miskolci Egyetem Általános Informatikai Tanszék CPP7 / 1 Statikus adattagok Bármely adattag lehet static tárolási osztályú A statikus adattag az osztály valamennyi objektuma

Részletesebben

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása Tömbök kezelése Példa: Vonalkód ellenőrzőjegyének kiszámítása A számokkal jellemzett adatok, pl. személyi szám, adószám, taj-szám, vonalkód, bankszámlaszám esetében az elírásból származó hibát ún. ellenőrző

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 5. előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 5. előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 5. előadás Tömbök átméretezése public static void Resize( ref T[] array, int newsize ) Példa: int[] a=new int[20]; Array.Resize(ref a, 22); 2016. 10. 19.

Részletesebben

Programozás módszertan p.1/46

Programozás módszertan p.1/46 Programozás módszertan Öröklődés Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK MAGYAR TUDOMÁNYOS AKADÉMIA SZÁMÍTÁSTECHNIKAI ÉS

Részletesebben

Programozási nyelvek (ADA)

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

Részletesebben

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

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

Részletesebben

Programozás módszertan

Programozás módszertan Programozás módszertan p. Programozás módszertan Operátorok túlterhelése a C++ nyelvben Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA TANSZÉK Bevezetés Programozás

Részletesebben

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

Programozás alapjai. 7. előadás 7. előadás Wagner György Általános Informatikai Tanszék Jótanács (1) Tipikus hiba a feladat elkészítésekor: Jótanács (2) Szintén tipikus hiba: a file-ból való törléskor, illetve a file-nak új elemmel való

Részletesebben

A programozás alapjai 1 Rekurzió

A programozás alapjai 1 Rekurzió A programozás alapjai Rekurzió. előadás Híradástechnikai Tanszék - preorder (gyökér bal gyerek jobb gyerek) mentés - visszaállítás - inorder (bal gyerek gyökér jobb gyerek) rendezés 4 5 6 4 6 7 5 7 - posztorder

Részletesebben

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás: Java V. szint lyszintű ű tagok A final minősítő Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 05. Java V.: szintű tagok JAVA5 / 1 Példányváltozó Az eddig megismert adattagokból

Részletesebben

Osztályok. 4. gyakorlat

Osztályok. 4. gyakorlat Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum

Részletesebben

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r Programozás I. Széchenyi István Egyetem, Gy r 2014. november 16. Áttekintés kel kapcsolatos fogalmak deklaráció Több, kompatibilis változat is elképzelhet. Meg kell el znie a fv. hívását. Mindenképp rögzíti

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

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Bevezetés a programozásba. 8. Előadás: Függvények 2.

Bevezetés a programozásba. 8. Előadás: Függvények 2. Bevezetés a programozásba 8. Előadás: Függvények 2. ISMÉTLÉS Helló #include using namespace std; int main() cout

Részletesebben

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu

Részletesebben

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

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

Részletesebben

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

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

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

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

A C programozási nyelv II. Utasítások. A függvény.

A C programozási nyelv II. Utasítások. A függvény. A C programozási nyelv II. Utasítások. A függvény. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv II (Utasítások, fuggvények) CBEV2 / 1 Kifejezés utasítás Kifejezés utasítás, blokk

Részletesebben

A verem (stack) A verem egy olyan struktúra, aminek a tetejéről kivehetünk egy (vagy sorban több) elemet. A verem felhasználása

A verem (stack) A verem egy olyan struktúra, aminek a tetejéről kivehetünk egy (vagy sorban több) elemet. A verem felhasználása A verem (stack) A verem egy olyan struktúra, aminek a tetejére betehetünk egy új (vagy sorban több) elemet a tetejéről kivehetünk egy (vagy sorban több) elemet A verem felhasználása Függvény visszatérési

Részletesebben

Programozás I gyakorlat

Programozás I gyakorlat Programozás I. - 9. gyakorlat Sztringkezelés, mutatók Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 2, 2009 1 tar@dcs.vein.hu Tar

Részletesebben

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. október 11. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja

Részletesebben

C programozási nyelv Pointerek, tömbök, pointer aritmetika

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,

Részletesebben

A C programozási nyelv III. Pointerek és tömbök.

A C programozási nyelv III. Pointerek és tömbök. A C programozási nyelv III. Pointerek és tömbök. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv III. (Pointerek, tömbök) CBEV3 / 1 Mutató (pointer) fogalma A mutató olyan változó,

Részletesebben

Gregorics Tibor Modularizált programok C++ nyelvi elemei 1

Gregorics Tibor Modularizált programok C++ nyelvi elemei 1 Gregorics Tibor Modularizált programok C++ nyelvi elemei 1 Függvények és paraméterátadás A függvény egy olyan programblokk, melynek végrehajtását a program bármelyik olyan helyéről lehet kezdeményezni

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

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények Dr. Bécsi Tamás 6. Előadás Bevezetés Egy idő után az egyetlen main(){ függvénnyel megírt programunk túl nagy méretű lesz. Vannak

Részletesebben

A C programozási nyelv III. Pointerek és tömbök.

A C programozási nyelv III. Pointerek és tömbök. A C programozási nyelv III. Pointerek és tömbök. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv III. (Pointerek, tömbök) CBEV3 / 1 Mutató (pointer) fogalma A mutató olyan változó,

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

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

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. Az osztály egy olyan típus leíró struktúra, amely tartalmaz adattagokat

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok

Részletesebben

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. március 3. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja Miért

Részletesebben

Globális operátor overloading

Globális operátor overloading Programozás II. 9. gyakorlat Operátor overloading 2: Unáris operátorok, globálisan megvalósított operátorok, > operátorok Kivételkezelés, IO library Globális operátor overloading Előző alkalommal

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

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

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

Részletesebben

Interfészek. PPT 2007/2008 tavasz.

Interfészek. PPT 2007/2008 tavasz. Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése 2 Már megismert fogalmak áttekintése Objektumorientált

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java -en objektumot tárolunk. Automatikus változók Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 3. előadás - végrehajtási vermen (execution stack) jönnek létre - alprogramok

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

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

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

OOP #14 (referencia-elv)

OOP #14 (referencia-elv) OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet

Részletesebben

Bevezetés a C++ programozási nyelvbe

Bevezetés a C++ programozási nyelvbe Bevezetés a C++ programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék CPP0 / 1 Története A C++ programozási nyelv a C programozási nyelv objektum orientált kiterjesztése. Az ANSI-C nyelvet

Részletesebben

Gregorics Tibor Tanácsok modularizált programok készítéséhez 1

Gregorics Tibor Tanácsok modularizált programok készítéséhez 1 Gregorics Tibor Tanácsok modularizált programok készítéséhez 1 Modularizált programon azt értjük, amely több, jól körülhatárolható részfeladat megoldásaiból épül fel. Egy-egy részfeladat gyakran szabványos

Részletesebben

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon 1. Template (sablon) 1.1. Függvénysablon Maximum függvény megvalósítása függvénynév túlterheléssel. i n l i n e f l o a t Max ( f l o a t a, f l o a t b ) { return a>b? a : b ; i n l i n e double Max (

Részletesebben

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

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

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

C programozás. 6 óra Függvények, függvényszerű makrók, globális és C programozás 6 óra Függvények, függvényszerű makrók, globális és lokális változók 1.Azonosítók A program bizonyos összetevőire névvel (azonosító) hivatkozunk Első karakter: _ vagy betű (csak ez lehet,

Részletesebben

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István A változó Egy memóriában elhelyezkedő rekesz Egy értéket tárol Van azonosítója (vagyis neve) Van típusa (milyen értéket tárolhat) Az értéke értékadással módosítható Az értéke

Részletesebben

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. november A C++ programozási nyelv Soós Sándor 1/12 Tartalomjegyzék Miért

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

JAVA PROGRAMOZÁS 2.ELŐADÁS

JAVA PROGRAMOZÁS 2.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 2.ELŐADÁS 2014-2015 tavasz Tömbök, osztályok, objektumok, konstruktorok Tömbök 2 Referencia típusú változó Elemtípus Primitív Referencia: osztály,

Részletesebben

Kifejezések. Kozsik Tamás. December 11, 2016

Kifejezések. Kozsik Tamás. December 11, 2016 Kifejezések Kozsik Tamás December 11, 2016 Kifejezés versus utasítás C/C++: kifejezés plusz pontosvessző: utasítás kiértékeli a kifejezést jellemzően: mellékhatása is van például: értékadás Ada: n = 5;

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

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök

Részletesebben

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

Programozás II. 4. Dr. Iványi Péter Programozás II. 4. Dr. Iványi Péter 1 inline függvények Bizonyos függvények annyira rövidek, hogy nem biztos hogy a fordító függvényhívást fordít, hanem inkább az adott sorba beilleszti a kódot. #include

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

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás Mérnöki programozás 7 Szerkesztette: dr. Vass Péter Tamás Függvények Függvény (function) egyedi azonosítónévvel ellátott számítási egység. A függvények formájában kidolgozott programkódok viszonylag egyszerűbb

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

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

C++ referencia. Izsó Tamás február 17. A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák:

C++ referencia. Izsó Tamás február 17. A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák: C++ referencia Izsó Tamás 2017. február 17. 1. Bevezetés A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák: Sokan összetévesztik a pointerrel. Keveset alkalmazzák

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

Objektumelvű programozás

Objektumelvű programozás Objektum, osztály Objektumelvű programozás Az elemzés együttműködő objektumok rendszereként fogalmazza meg a feladatot. Objektum-központú elemzés A tervezés a feladat tárgyköreit egy-egy objektum felelősségévé

Részletesebben

Bevezetés a programozásba Előadás: A const

Bevezetés a programozásba Előadás: A const Bevezetés a programozásba 2 6. Előadás: A const ISMÉTLÉS Interface - Implementation struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; }; void Particle::rajzol() { gout

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

Imperatív és procedurális programozás a Javában

Imperatív és procedurális programozás a Javában Imperatív és procedurális programozás a Javában Kozsik Tamás kto@elte.hu http://kto.web.elte.hu/ Eötvös Loránd Tudományegyetem Programozási Nyelvek és Fordítóprogramok Tanszék 2008. Kozsik Tamás (ELTE)

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

Memóriakezelés, dinamikus memóriakezelés

Memóriakezelés, dinamikus memóriakezelés Metódus: függvények és eljárások összefoglaló neve. Memóriakezelés, dinamikus memóriakezelés Nézzük végig, a C++ memóriakezelését. Alapvetően három fő memóriaterületet különböztetünk meg. Végrehajtási

Részletesebben

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor. Függvény pointer Több feladat közül futási időben döntöm el, hogy melyiket hajtom végre. A függvényre mutató pointer a függvény kódjának a címére mutat, azon keresztül meghívhatom a függvényt. A pointernek

Részletesebben

7. fejezet: Mutatók és tömbök

7. fejezet: Mutatók és tömbök 7. fejezet: Mutatók és tömbök Minden komolyabb programozási nyelvben vannak tömbök, amelyek gondos kezekben komoly fegyvert jelenthetnek. Először is tanuljunk meg tömböt deklarálni! //Tömbök használata

Részletesebben

Objektumorientált Programozás VI.

Objektumorientált Programozás VI. Objektumorientált Programozás Metódusok Paraméterek átadása Programozási tételek Feladatok VI. ÓE-NIK, 2011 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő

Részletesebben

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

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

Részletesebben

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés A C programozási nyelv V. Struktúra Dinamikus memóriakezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv V. (Struktúra, memóriakezelés) CBEV5 / 1 A struktúra deklarációja 1.

Részletesebben

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

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

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. április 4. Számok rendezése Feladat: Fejlesszük tovább úgy a buborék rendez algoritmust bemutató példát, hogy a felhasználó adhassa meg a

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

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016 Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS 2015-2016 Objektumorientált programozás OOP PHP-ben 2 A PHP az 5.0-as verziójától megvalósítja az OO eszközrendszerét OO eszközök:

Részletesebben

Objektum orientált kiterjesztés A+ programozási nyelvhez

Objektum orientált kiterjesztés A+ programozási nyelvhez Szegedi Tudományegyetem Informatikai Tanszékcsoport Objektum orientált kiterjesztés A+ programozási nyelvhez Diplomamunka terve Készítette: Bátori Csaba programtervező matematikus hallgató Témavezető:

Részletesebben

Programozás I. 5. Előadás: Függvények

Programozás I. 5. Előadás: Függvények Programozás I 5. Előadás: Függvények Függvény Egy alprogram Egy C program általában több kisméretű, könnyen értelmezhető függvényből áll Egy függvény megtalálható minden C programban: ez a main függvény

Részletesebben

Bevezetés a Python programozási nyelvbe

Bevezetés a Python programozási nyelvbe Bevezetés a Python programozási nyelvbe 7. Gyakorlat osztályok, objektumok (utolsó módosítás 2018. aug. 28.) Szathmáry László Debreceni Egyetem Informatikai Kar 2018-2019, 1. félév OO programozás Pythonban

Részletesebben

2. előadás Programegység, fordítási egység, könyvtári egység, beágyazás, blokkszerkezet, alprogramok, csomagok

2. előadás Programegység, fordítási egység, könyvtári egység, beágyazás, blokkszerkezet, alprogramok, csomagok 2. előadás Programegység, fordítási egység, könyvtári egység, beágyazás, blokkszerkezet, alprogramok, csomagok Szintaxis és szemantika A nyelv szintaxisa: azoknak a szabályoknak az összessége, amelyek

Részletesebben

A JavaScript főbb tulajdonságai

A JavaScript főbb tulajdonságai JavaScript alapok A JavaScript főbb tulajdonságai Script nyelv azaz futás közben értelmezett, interpretált nyelv Legfőbb alkalmazási területe: a HTML dokumentumok dinamikussá, interaktívvá tétele Gyengén

Részletesebben

Bevezetés a Programozásba II 2. előadás. Adattípusok megvalósítása egységbe zárással. Adattípusok megvalósítása egységbe zárással

Bevezetés a Programozásba II 2. előadás. Adattípusok megvalósítása egységbe zárással. Adattípusok megvalósítása egységbe zárással Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 2. előadás Adattípusok megvalósítása egységbe zárással 2014.02.17. Giachetta Roberto groberto@inf.elte.hu

Részletesebben

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1 Fordító részei Kód visszafejtés. Izsó Tamás 2016. szeptember 29. Izsó Tamás Fordító részei / 1 Section 1 Fordító részei Izsó Tamás Fordító részei / 2 Irodalom Izsó Tamás Fordító részei / 3 Irodalom Izsó

Részletesebben

Java programozási nyelv 5. rész Osztályok III.

Java programozási nyelv 5. rész Osztályok III. Java programozási nyelv 5. rész Osztályok III. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

Máté: Assembly programozás

Máté: Assembly programozás Paraméter másutt is előfordulhat a makró törzsben, nemcsak az operandus részen, pl.: PL macro p1,p2 mov ax,p1 P2 p1 PL mov INC Adat, INC ax,adat Adat A &, %,! karakterek továbbá a és ;; speciális szerepet

Részletesebben

A C programozási nyelv IV. Deklaráció és definíció

A C programozási nyelv IV. Deklaráció és definíció A C programozási nyelv IV. Deklaráció és definíció Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv IV. (Deklaráció és definíció) CBEV4 / 1 Definíció és deklaráció Definíció: meghatározza

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve

Részletesebben