2. modul Python bevezetés

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

Download "2. modul Python bevezetés"

Átírás

1 2. modul Python bevezetés Horváth Árpád március 4. A modul célja A hallgatók ismerjék meg a Python nyelv alapjait olyan szinten, hogy a hálózatok vizsgálatára szolgáló függvényeket képesek legyenek írni. A hallgatók ismerjék a hálózatok éllistás megadását. 1. lecke A használt szoftverek bemutatása Tervezett id tartam 90 perc. Követelmények: A hallgató tudja felsorolni és elmagyarázni a Python négy f jellemz jét, párosítani tudja, hogy melyik programozási nyelv illetve programcsomag mire való: Python, pylab, matplotlib, numpy, igraph, ismerje az alábbiak szoftverek használatának jogi feltételeit: Debian, Python, matplotlib, numpy, igraph, tudja felsorolni a Python nyelv legalább három alkalmazási területét, képes telepíteni a VirtualBox alá a tanuláshoz szükséges Debiant, és azt elindítani, szabályosan leállítani, ismeri a python3, ipython3 és IDLE3 parancsértelmez k alapvet jellemz it, képes használni az ipython3 parancsértelmez t, képes a Python oktató példáit lefuttatni benne, képes használni az IDLE3 fájlszerkeszt jét vagy a Vim (gvim) szövegszerkeszt t Python programok szerkesztésére. A Python programozási nyelv 4 f jellemz je Objektumorientált Dinamikusan típusos A változóneveket nem kell külön bevezetni, és típust rendelni hozzá. Az értékadáskor lesz az adott változónak konkrét típusa, és ez a típus kés bb az értékkel együtt változhat. Interpretált Nem szükséges külön fordítás. A Python platformfüggetlen bytekódot készít a forrásból, és minden futtatáskor vizsgálja, hogy a forráskód nem frisebb-e mint a bytekód. Ha frisebb újra fordít. (Forráskód nélkül csak a bytekód is futtatható.) Platformfüggetlen A Python értelmez számos operációs rendszerhez elérhet lényegében azonos lehet ségekkel. A Python pár modulja numpy els sorban tömb és mátrixm veleteket végz modul, mivel a m veletek C-nyelven hajtódnak végre, gyorsak, matplotlib függvények kirajzolására használható modul. A függvények képerny n is megjeleníthet k és el is menthet k különböz formátumokban. A numpy-ra épül. pylab A matplotlib csomag telepítésekor hívható a matplotlib és a pylab csomag is. A pylab modul betöltésekor a MATLAB-éhoz hasonló függvényeket használhatunk, ahhoz hasonló módon rajzoltathatunk ki függvényeket. igraph Egy hálózatkezel modul, amely gyors, mivel C függvényeket hívogat. 1

2 Szoftverjog Szabad szoftvernek (Free Software) nevezzük azt a szoftvert, amely szabadon használható, tanulmányozható és módosítható, és a módosított változat is szabadon továbbadható. Ezekhez szükséges a forráskód ismerete. Nyílt forráskódúnak nevezzük azokat a programokat amelyeknél a forrás tanulmányozható, de nem feltétlenül teljesül a többi kikötés. A Debian, a Python, a pylab, a matplotlib, az igraph, az ipython parancsértelmez (és a kés bb használandó cxnet), nyílt forrású szoftverek. A Debian, az igraph és a cxnet szabad szoftverek, de a többi is szabadon használható még kereskedelmi célokra is. VirtualBox A félév során használhatnak egy Debian rendszert, amelyre az félév összes szükséges szoftvere telepítésre került. Ez a rendszert VirtualBox alá lehet telepíteni. Természetesen használhatnak saját telepítés rendszert (Ubuntu vagy Debian ajánlott) is. Nézze meg a VirtualBox használatáról szóló videót! Elérhet az elearning oldalon a kurzus az els blokkban (az 1. modul felett)! Python parancsértelmez k A Python nyelv kényelmesen használható parancssorból, azaz olyan felületr l, amelyben minden egyes parancs a begépelése után rögtön végrehajtódik, hasonlóan a Linux/Unix parancsértelmez ihez. A parancsértelmez t másképpen shellnek is hívják. A Pythonnak van egy hivatalos parancsértelmez je, amelyet legalábbis az általunk használt 3-as verzióét a python3 paranccsal indíthatunk. Ennél fejlettebb az IPython értelmez. Mindkett t lehet Linux/Unix/Windows parancssorból indítani. Az IDLE3 parancsértelmez ként is szolgáló integrált fejleszt eszköz. ok Nézze meg a parancsértelmez kr l és a Python-oktató használatáról szóló kisvideókat! A 2. modulban találhatóak. A video alapján futtasson le az oktatóban található programkódokat az ipythonban illetve az IDLE3- ban! A továbbiakban gyakran fogunk forráskódot szerkeszteni. Az IDLE3 használata egyszer bb, de a Vim illetve gvim különösen ahogy a Debian alatt be van állítva sok hasznos tulajdonsággal rendelkezik a Python-fájlok szerkesztéséhez. A Vim a parancssorból a vim parancsal indítható. A gvim a Debian alatt a felül található tálcáról elérhet. Használata tanulás nélkül nem könny, de a vimtutor paranccsal elindítva a f bb dolgokat meg lehet tanulni. Számunkra az IDLE3 használata is megfelel. Oldja meg az elearning oldalon található tesztet, amely ehhez a leckéhez tartozik. 2. lecke A Python nyelv alapjai Tervezett id tartam 90 perc. 2

3 Követelmények: A hallgató képes megjegyzést adni a programhoz, parancssorhoz, képes karakterláncokat létrehozni, összevonni, indexelni, szeletelni, képes létrehozni int és float típusú számokat, képes alkalmazni a 4 alapm velet és a // és ** és % m veleteket, képes használni az alulvonás _ változót, képes létrehozni karakterláncokat, képes alkalmazni a karakterláncok összef zésének lehet ségeit, a nyers karakterláncokat és a háromszoros idéz jeles formát, képes a karakterláncok indexelésére, szeletelésére, képes listák létrehozására, indexelésére, szeletelésére, összef zésére, Követelmények (folytatás): A hallgató képes listák adott index elemének és adott szeletének megváltoztatására értékadással, meg tudja magyarázni, hogy mit jelent, hogy a listák megváltoztathatóak, a karakterláncok pedig nem, képes a listák append és count metódusainak használatára, képes a print kulcsszavas paramétereinek (end, sep) használatára. képes feltételes elágazás létrehozására, az elif és else ágak használatára, képes while és for ciklus értelmezésére és létrehozására, akár break és continue utasítások használatával is, képes a range() függvény használatára for-ciklusban. ok Mint láthatja, ebben a leckében rengeteg apró dolgot kell megtanulnia a Python nyelvr l! PyOkt Ezek nagy része az oktató 3. és 4. fejezetében található. Olvassa el gyelmesen az oktató magyar vagy angol változatának alább megadott fejezeteit, és bátran kísérletezzen az ipython3-ban vagy az IDLE3-ban. A itt leírtak nagy része lépten-nyomon el fog fordulni a félév anyagában. Megtanulandók a 3. fejezet, a 4. fejezet de a 4.6-os és utána lév már nem kell egyel re. Az 5.1. fejezetben találhatóak a listák metódusai, amelyek közül az append és count metódusok ismerete fontos. A print utarítás két kulcsszavas argumentumát a következ kben magyarázzuk el. A print kulcsszavas argumentumai Alapból a print utasítás minden felsorolt argumentuma között egy szóközt kihagy, és a sor végén sort emel. Ez a viselkedés megváltoztatható a sep és end kulcsszavas argumentumokkal. A sep alapesetben szóköz, az end értéke soremelés. Az alábbi példában az elválasztó " + " (szóköz+plusz+szóköz) lesz, a sor végét " =" (szóköz+egyenl ) fogja zárni, és nem lesz soremelés. print(1,5,3,7,3, sep=" + ", end=" =") Hogyan lehetne úgy kiíratni ugyenezt, hogy ezen kívül még két soremelés legyen? Hogyan lehetne úgy kiíratni ugyenezeket a számokat, hogy mindegyik külön sorban legyen, és legalul a sort egy - (minusz) jel zárja? Megoldások print(1,5,3,7,3, sep=" + ", end=" =\n\n") print(1,5,3,7,3, sep="\n", end=" =\n-") Egyéb argumentumok, ajánlott feladat A további kérdéseket gyakorlásképp megoldhatja, de nyugodtan áttérhet a következ leckére. Milyen kulcsszavas argumentumai vannak még a print-nek? Próbálja meg kideríteni az ipython3 segítségével! 3

4 Megoldás ipython3-ban a print? beírásával, IDLE3-ban a help(print) utasítással vagy ha várunk egy kicsit a print( beírása után: In [1]: print? (...) print(value,..., sep=' ', end='\n', file=sys.stdout) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. Van tehát egy argumentum, ami fájl, vagy fájl-szer objektum lehet. Meg lehet tehát adni, hogy ne a képerny re, hanem fájlba írjon a print. (3.3-tól van egy ush is.) Ajánlott feladat Hogyan lehet olyan ciklust készíteni, amelyben a evszazad változó végig megy 900-tól 2000-ig százasával, és ki is írja a változót úgy, hogy az egymás utáni értékek vessz vel lesznek elválasztva? Megoldás for evszazad in range(300, 2001, 100): print(evszazad, end=",") 2001 helyett bármilyen egész lehet 2001 és 2100 között. Oldja meg az elearning oldalon található tesztet, amely ehhez a leckéhez tartozik. 3. lecke Az éllista Tervezett id tartam 90 perc. Követelmények: A hallgató el tudja magyarázni, hogyan tárolhatóak irányítatlan és irányított hálózatok éllistában, létre tud hozni egyszer bb függvényeket a return utasítás helyes használatával és dokumentációs karakterlánccal, tesztelni tudja assert utasítással függvények visszatérési értékeit, létre tud hozni olyan függvényeket, amelyek éllistából meghatározza a hálózat éleinek számát, egy csúcs fokszámát, egy csúcs szomszédainak a számát. Éllisták A hálózatokat többféle módon tárolhatjuk a számítógépen. Ezek egyike az éllista. Ebben az esetben az éleket soroljuk fel olyan módon, hogy az éleket a végpontjaival azonosítjuk. Mi a továbbiakban az csúcsok azonosítására egész számokat fogunk használni. Ha N csúcsa van a hálózatnak, akkor az csúcsokat 0 és N 1 közé es egészek fogják jelölni. Az éllista elemei tehát számpárok lesznek. 4

5 ok Megtudható-e egy éllistából a hálózat csúcsainak a száma? Lehet-e éllistában hurokéleket és többszörös éleket tárolni? 2 1 hurokél 0 többszörös él Megoldások Az alábbi esetben nem tudható meg az éllistából, hogy három csúcs van. Legalább két csúcsnak lennie kell, de lehetne akár ezer is Többszörös éleket úgy lehet tárolni, hogy többször felsorolom az adott élt, hurokéleket pedig úgy, hogy a számpár kétszer tartalmazza ugyanazt a számot. Élek megadása Csúcspárokat a listához hasonló adatszerkezetben, a kés bb részletezett tuple-okban tároljuk. Lényegében attól tér el a listától, hogy módosíthatatlan: nem lehet hozzáf zni, elemét módosítani... Az el z feladatban szerepl hálózat éllistája így a következ lesz: edge_list = [(0,1), (0,1), (0,2), (1,2), (1,1)] PyOkt Olvassa el a Python-oktató 4. fejezetének 4.6 Függvények deniálása alfejezetét! Meghatározható-e a csúcsok fokszáma az éllistából? Írjon olyan függvényt, amely éllistát kapva az élek számával tér vissza! Megoldások A fokszámok meghatározhatóak az éllistából. Kivéve esetleg néhány nullás fokszámú csúcsot, mert nem tudjuk, hogy van-e olyan nagy index csúcs.. Alább (az igraph jelöléséhez igazodva ecount-tal (edge count) jelölve) megadtam az élszámot megadó függvényt. A függvényt elég könnyen létrehozhatjuk: def ecount(edge_list): return len(edge_list) print(ecount([(0,1), (0,1), (0,2), (1,2), (1,1)])) A fenti példában meg is hívtam a függvényt, és kiirattam a visszatérési értékét. Ebben a példában 5-öt ír ki. 5

6 Az assert utasítás A programok tesztelésére és argumentumainak vizsgálatára alkalmas az assert utasítás. Ha utána egy feltételt írok, akkor igaz érték esetén változatlanul megy tovább a program, hamis érték esetén pedig egy AssertionError kivétel lép fel. A feltétel után még vessz vel elválasztva írhatunk egy szöveget is, amit kiír a program az AssertionError kiírásával együtt. Például szeretnénk egy fokszámot visszaadó függvényt készíteni, akkor többek között a következ vizsgálatot írhatjuk hozzá: assert degree(0, [(0,1), (2,0)]) == 2, "hibás a fokszám" Hálózatos nyelvlecke A programok fejlesztése során az angol nyelvet fogjuk használni a saját változóink elnevezésére is. Pár szó angolul, amire hamarosan szükségünk lesz. magyar angol csúcs vertex, többes száma vertices él edge fokszám degree gráf graph hálózat network hurokél loop A csúcs másik angol neve a node, de mi az igraph-hoz igazodva a vertexet használjuk. Típusvizsgálat A Python nyelvben egy változó típusának szoktuk nevezni, hogy melyik osztály példányai. Pythonban minden érték valamilyen osztályból származik, az egész típus is. A típus megvizsgálására az isinstance függvény szolgál. Els paramétere a kifejezés, aminek a típusát vizsgáljuk, a második argumentuma egy osztály vagy több osztály tuple-ként. Nevezzük a degree függvény két paraméterét a következ képpen: vertex és edge_list. Az edge_list esetén engedjük meg a lista mellett a tuple alakot is. Ekkor a következ képpen vizsgálhatjuk meg a függvényen belül, hogy helyes típusú értéket kaptunk-e: assert isinstance(vertex, int), "vertex must be integer" assert isinstance(edge_list, (list, tuple)) Tesztelés A programok tesztelését egyel re assert utasítással fogjuk végezni. A teszteket egy test nev függvénybe gy jtjük össze, majd teszteléskor meghívjuk ezt a függvényt. def test(): assert degree(0, [(0,1), (2,0), (2,3)]) == 2 assert degree(1, [(0,1), (2,0), (2,3)]) == 1 assert degree(2, [(0,1), (2,0), (2,3)]) == 2 assert degree(3, [(0,1), (2,0), (2,3)]) == 1 print("a tesztek sikerültek") test() ok Hogyan lehetne rövidebben írni az el z test függvényt? Egészítse ki a test függvényt további feltételvizsgálatokkal! 6

7 Megoldás A két feladat megoldását összevontan mutatom meg. A példa második fele persze csak egy lehet ség a sok közül. def test(): edge_list = [(0,1), (2,0), (2,3)] degrees = [2,1,2,1] for i in range(4): assert degree(i, edge_list) == degrees[i] assert degree(20, edge_list) == 0 for i in range(3): assert degree(i, [(0,1), (0,2), (1,2)]) == 2 print("a tesztek sikerültek") Másolja be egy fájlba a teszteket és hozza létre a degree függvényt, hogy helyesen m ködjön! A létrehozott fájlt (benne a m köd függvénnyel) töltse fel az elearning oldalra! A következ feladat egy olyan neighbors függvény létrehozása, amely egy csúcs esetén a csúcs szomszédaival (egészek halmazával) tér vissza. A függvény m ködjön hurokélekre is, ilyenkor a csúcs legyen saját szomszédja. El ször hozzon létre egy fájlban teszteket! Hozza létre a függvényt, hogy helyesen m ködjön! A létrehozott fájlt (benne a tesztekkel és a m köd függvénnyel) elküldheti a kurzus oktatójának, aki szívesen ellen rzi és javaslatokat ad esetleges változtatásokra! Irányított hálózat éllistája Vajon hogyan lehet megadni éllistával egyirányított hálózatot? Az élek esetén mindig gyelünk rá, hogy elöl legyen az él forrása, és másodiknak szerepeljen a célja (ahol a nyíl van). 4. lecke A Python adatszerkezetei Tervezett id tartam 90 perc. Követelmények: A hallgató használni tudja a listaértelmezést, feltételekkel is és tuple-ekb l álló listák létrehozására is, képes gyakorlatban alkalmazni a tuple-ok és általában a sorozatok általános tulajdonságait, alkalmazni tudja a sorozatok szétpakolását, képes létrehozni halmazokat (üreset is), ellen rizni tudja, hogy egy objektum benne van-e a halmazban, létrehozni tudja hozni két halmaz különbségét, metszetét, unióját, alkalmazni tudja a halmazértelmezést, képes függvényt írni egy éllistában szerepl csúcsok számának meghatározására, ismeri a tanult típusokhoz tartozó osztályok neveit. PyOkt Olvassa el a Python-oktató 5. Adatszerkezetek cím fejezetét az Listaértelmezés fejezett l az 5.6. Ciklustechnikák fejezetig (azt is beleértve). A Python hasznos adatszerkezeteivel ismerkedhet meg, és egy hasznos nyelvi elemmel (listaértelmezés, halmazértelmezés, szótárértelmezés). Megismerkedik a listák nem-módosítható párjával, a tuple-lal. A nem-módosítható objektumok hasznosak lesznek számunkra, mert olyan helyeken, ahol gyorsan meg kell keresnünk elemeket egy sokaságból, ott olyan adatszerkezeteket használunk, amelyekhez egy számot (hash érték) lehet rendelni, és ezalapján sorbarakni. Ilyenek a halmazok és a szótárak kulcsai. Egy 7

8 halmazban általában sokkal hamarabb meg lehet találni, hogy egy elem benne van-e, mint egy azonos elemszámú listában. Fontosabb típusok összesítve Az egyes blokkokban a számtípusok, a sorozattípusok és a gy jteményes típusok találhatóak. Az utolsó oszlopban az argumentum nélkül példányosított érték található. Például a dict() az üres {} szótárpéldánnyal tér vissza. int egész 0 oat lebeg pontos 0.0 complex komplex szám 0j str karakterlánc, sztring "" list lista [] tuple tuple (nem megváltoztatható lista) () set halmaz set() frozenset nem megváltoztatható halmaz frozenset() dict szótár {} Értékek logikai értékei A Pythonban a feltételek helyén nem csak logikai érték állhat, hanem az el z oldalon szerepl osztályból származó adatok is. A táblázat utolsó oszlopa azért is fontos, mert az ott szerepl értékeket a Python hamisnak tekinti, a többit igaznak. lista = [] if lista: print("van eleme.") else: print("nincs eleme.") Azt írja ki, hogy Nincs eleme. 5. lecke Szótárak, függvények b vebben Tervezett id tartam 90 perc. Követelmények: A hallgató létre tud hozni szótárakat hagyományos módon, szótárértelmezéssel és kulcsszavas argumentumokkal, ellen rizni tudja, hogy egy kulcs szerepel-e a szótárban, meg tudja változtatni adott kulcsú elemek értékét, képes végigmenni for ciklussal egy szótár kulcsain, illetve kulcs-érték párjain, képes meghatározni egy szótár kulcsainak a számát, képes függvényt írni a legnagyobb fokszámú csúcs meghatározására, meg tud adni alapértelmezett értékeket a függvény argumentumlistájában, használni tudja a kulcsszavas argumentumokat, létre tud hozni függvényt a tetsz leges hosszúságú argumentumlistákkal. PyOkt Olvassa el a Python-oktató fejezeteit a függvények deniálásáról, valamint az 5.5. Szótárak és 5.6. Ciklustechnikák fejezeteket, valamint a következ kiegészítéseket. A végén a követelmények, a következ feladatok és a teszt segítségével ellen rizze, hogy sikerült-e mindent megértenie. 8

9 Írjon egy olyan függvényt, amely meghatározza egy éllistában egy csúcs fokszámát! Pár teszt: edge_list = [(2,3), (1,2), (0,2)] assert degree(edge_list, 1) == 1 assert degree(edge_list, 2) == 3 assert degree(edge_list, 3) == 1 assert degree(edge_list, 4) == 0 Találjon ki további teszteket a függvény megírása el tt, vagy írjon tömörebb tesztkódot! M Megoldás jön! Lapozás el tt próbálja megoldani a feladatot! Megoldás (egy lehet ség) def degree(edge_list, vertex): degree = 0 for edge in edge_list: if vertex == edge[0]: degree += 1 if vertex == edge[1]: degree += 1 return degree A függvényen belül a változó értéke megegyezhet a függvény nevével (más névtérben vannak). Célszer lehet a visszatérési érték nevét a függvény nevével azonosnak választani. Megoldás: a tesztesetek egyszer sítése A sok hasonlóság miatt a teszteseteket jelent en átalakíthatjuk, és így könnyebben b víthetjük is. Az eredeti 4 esettel szemben itt hatot vizsgál. Természetesen lehetne több éllistára is vizsgálni egy dupla for-ciklussal. edge_list = [(2,3), (1,2), (0,2)] degrees = [1, 1, 3, 1, 0, 0] for vertex in range(len(degrees)): assert degree(edge_list, vertex) == degrees[vertex] Kulcsszavas paraméterek Kiegészítések A kulcsszavas paraméterek használata akkor praktikus, ha egy függvénynek rengeteg paramétere van, és azokat nem akarjuk mindet megadni függvényhíváskor, csak azokat, amelyek eltérnek az alapértelmezett l. Hasznosak azért is, mert ekkor nem kell tudni a paraméterek sorrendjét, és könnyebben módosítható a függvény úgy, hogy a függvényt felhasználó korábbi kódok érvényesek maradnak. Látjuk majd, hogy a függvények és gráfok kirajzolásakor a grakon és a gráf rengeteg paraméterét fogjuk tudni befolyásolni kulcsszavas paraméterrel. A kulcsszavas paramétereket ahogy a következd oldalon látjuk összegy jthetjük egy szótárban, a függvényünkben feldolgozhatjuk egy részüket, és a maradékot átadhatjuk más függvényeknek. Függvények csillagos paraméterei Kiegészítések Ha egy függvénydeníció els sora ez: def fv(x, *y, **z): akkor az els megadott paraméter az x változóba kerül, a többi kulcsszó nélküli paraméter az y nev tuple-ba, a kulcsszavas argumentumok pedig a z nev szótárba. 9

10 Kiegészítések Az el bb deniált függvényt ha így hívjuk meg: fv(1,2,3,4, color="red", width=5) akkor az x, y és z paraméterek értékei a következ ek lesznek: x = 1 y = (2,3,4) z = {"color": "red", "width": 5} Csillagok a függvényhívásban Kiegészítések A kulcsszó nélküli paramétereket (vagy azok egy részét) kicsomagolhatjuk listából vagy tuple-b l a * el ttaggal, a kulcsszavasakat pedig szótárból a ** el taggal. A fenti függvényhívással egyeznek a következ ek is: L = [1,2,3,4] d = {"color": "red", "width": 5} fv(*l, **d) fv(1, 2, *(3,4), **{"color": "red", "width": 5}) ok Mik lesznek az egyes paraméterek értékei az fv függvényt alábbi hívásai esetén? fv("alma", 2, 4, start=2, stop=5) fv(2, size=2, width=5) fv(2) ok fv("alma", 2, 4, start=2, stop=5) esetén x="alma" y=(2,4), z={"start":2, "stop":5} fv(2, size=2, width=5) esetén x=2, y=(), z={"size":2, "width":5} azaz y üres tuple lesz fv(2) esetén x=2, y üres tuple, z üres szótár lesz ok Legyen az esemenyek a következ képp létrehozva: esemenyek = {1421:'muhi csata', 1456:'nándorfehérvári viadal', 1848:'szabadságharc kezdete', 1956:'forradalom', } Határozza meg egy kifejezéssel a szótár kulcsainak számát! Írassa ki kétféleképpen az értékpárokat: (a) a kulcsokon menjen végig a ciklussal, (b) az értékpárokon menjen végig a ciklussal! Hozzon létre üres szótárat és üres halmazt. 10

11 Megoldások len(esemenyek) vagy len(esemenyek.keys()) for ev in esemenyek: print(ev, esemenyek[ev]) for ev, esemeny in esemenyek: print(ev, esemeny) Üres szótár: {} vagy dict() Üres halmaz: set() Jó módszer Az alábbi szótárban az utolsó elem után is áll egy vessz. esemenyek = { 1848:'szabadságharc kezdete', 1956:'forradalom', } Ez felesleges, de ha tovább akarom folytatni a szótárat, akkor egyszer bb, mert rögtön a következ sorban kezdhetem. Ugyanez m ködik listával, tuple-lel és halmazzal is. edge_list = [ (0, 1), (0, 3), ] Válassza ki, mi lehet kulcs egy szótárban az alábbiak közül? 1 "alma" [1,2] (1,2) {1,2} {1:0, 2:1} Megoldás Megváltoztatható objektumok nem lehetnek. 1 lehet "alma" lehet [1,2] nem lehet (van append metódusa) (1,2) lehet {1,2} nem lehet (van add metódusa) {1:0, 2:1} nem lehet (új kulcs-érték párt adhatunk hozzá) A halmazoknak is van egy nem megváltoztatható változata, ami lehet kulcs: frozenset({1, 2}) frozenset("alma") 11

12 Az alább létrehozunk egy függvényt, majd a függvényt többször meghívjuk, melyik lesz helyes, mit ír ki akkor? def szorzat(eredmeny, *tenyezok, **szotar): print(*tenyezok, sep=' * ', end=' = ') print(eredmeny) print(set(szotar)) szorzat(10, 5, 2, x=10) szorzat(10) szorzat(10, x=10, 5, 2) szorzat(10, *(5, 2), primtenyezok=true) szorzat(10, 5, 2, eredmeny=10) szorzat(10, 5, 2, **dict(alma=7)) Megoldás szorzat(10, 5, 2, x=10) ezt írja: 5 * 2 = 10 {"x"} szorzat(10) ezt írja: = 10 set() szorzat(10, x=10, 5, 2) hibás, kulcsszavasoknak a végén kell állniuk szorzat(10, *(5, 2), primtenyezok=true) ezt írja: 5 * 2 = 10 {"primtenyezok"} szorzat(10, 5, 2, eredmeny=10) hibás, eredmeny-nek két értéke van szorzat(10, 5, 2, **dict(alma=7)) ezt írja: 5 * 2 = 10 {"alma"} Gratulálunk! Ezzel a modul leckéit sikeresen teljesítette. Ami még modulzáró feladatként hátra van: a modulzáró teszt megoldása és a Python alkalmazási területei fórumfeladat. 12

Az Összetett hálózatok vizsgálata elektronikus tantárgy részletes követeleményrendszere

Az Összetett hálózatok vizsgálata elektronikus tantárgy részletes követeleményrendszere Az Összetett hálózatok vizsgálata elektronikus tantárgy részletes követeleményrendszere Horváth Árpád 2014. február 7. A tárgy célja: Az összetett hálózatok fogalomrendszerének használata a tudomány több

Részletesebben

A Python alapjainak áttekintése

A Python alapjainak áttekintése A Python alapjainak áttekintése 2016. február 29. Vázlat 1 A Python adatszerkezetei A Python vezérlési szerkezetei 2 Modulok kezelése Példák modulokra Vázlat 1 A Python adatszerkezetei A Python vezérlési

Részletesebben

Python tanfolyam Python bevezető I. rész

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

Részletesebben

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

Mi a Python? A Python alapjainak áttekintése. Példaprogram feladatkit zés. Példaprogram megvalósítás

Mi a Python? A Python alapjainak áttekintése. Példaprogram feladatkit zés. Példaprogram megvalósítás Mi a Python? A Python alapjainak áttekintése Általános célú programnyelv rengeteg beépített és egyéb modullal. 2016. február 29. Dinamikusan típusos (egyszer egész másszor lista) Objektumorientált (adattípusoknak

Részletesebben

Szkriptnyelvek. 1. UNIX shell

Szkriptnyelvek. 1. UNIX shell Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek

Részletesebben

Programozási nyelvek Python

Programozási nyelvek Python Programozási nyelvek Python A nyelv története és jellemzői 2 A nyelv története Tervező Guido van Rossum (1956, Hollandia) Befolyásoló nyelvek ABC (pl. blokkok jelölése behúzással); Modula-3; C; C++; Unix

Részletesebben

Imperatív programozás

Imperatív programozás Imperatív programozás 2. Előadás Python alapok Elérhetőség Tejfel Máté Déli épület, 2.616 matej@elte.hu http://matej.web.elte.hu Python Script nyelv Értelmezett (interpretált) Dinamikus típusrendszer Gyors

Részletesebben

PYTHON. Avagy hosszú az út a BioPythonig

PYTHON. Avagy hosszú az út a BioPythonig PYTHON Avagy hosszú az út a BioPythonig Miért a Python? Mert ez áll a legközelebb az ember által beszélt nyelvhez. Mert ez a leggyorsabb az ismert script nyelvek közül Mert rengeteg modul érhető el hozzá

Részletesebben

Matematikai programok

Matematikai programok Matematikai programok Mátrixalapú nyelvek octave Wettl Ferenc Algebra Tanszék B U D A P E S T I M Ű S Z A K I M A T E M A T I K A É S G A Z D A S Á G T U D O M Á N Y I I N T É Z E T E G Y E T E M Wettl

Részletesebben

BASH script programozás II. Vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

Matematikai programok

Matematikai programok Matematikai programok Mátrixalapú nyelvek MatLab Wettl Ferenc diái alapján Budapesti M szaki Egyetem Algebra Tanszék 2017.11.07 Borbély Gábor (BME Algebra Tanszék) Matematikai programok 2017.11.07 1 /

Részletesebben

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában Programozás alapjai C nyelv 8. gyakorlat Szeberényi mre BME T Programozás alapjai. (C nyelv, gyakorlat) BME-T Sz.. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény

Részletesebben

1. Alapok. #!/bin/bash

1. Alapok. #!/bin/bash 1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk

Részletesebben

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

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

Részletesebben

Bevezetés a programozásba I.

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

Részletesebben

A Python programozási nyelv

A Python programozási nyelv A Python programozási nyelv Takács Gábor Széchenyi István Egyetem Matematika és Számítástudomány Tanszék 1 / 47 Jellemzők + értelmezett nyelv + típusai dinamikusak + szintaxisa tömör,

Részletesebben

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Ismerkedés a Python programnyelvvel. és annak micropython változatával Ismerkedés a Python programnyelvvel és annak micropython változatával A Python programozási nyelv története Az alapötlet 1980-ban született, 1989 decemberében kezdte el fejleszteni Guido van Rossum a CWI-n

Részletesebben

S z á m í t ó g é p e s a l a p i s m e r e t e k

S z á m í t ó g é p e s a l a p i s m e r e t e k S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Ami

Részletesebben

Flex tutorial. Dévai Gergely

Flex tutorial. Dévai Gergely Flex tutorial Dévai Gergely A Flex (Fast Lexical Analyser) egy lexikáliselemz -generátor: reguláris kifejezések sorozatából egy C/C++ programot generál, ami szövegfájlokat képes lexikai elemek sorozatára

Részletesebben

2018, Diszkrét matematika

2018, Diszkrét matematika Diszkrét matematika 3. előadás mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia 2018, őszi félév Miről volt szó az elmúlt előadáson? számtartományok: természetes

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa

Részletesebben

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi. Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód

Részletesebben

Python bevezető foglalkozás Python bevezető foglalkozás

Python bevezető foglalkozás Python bevezető foglalkozás Python bevezető foglalkozás program, programozás, programnyelvek a Python nyelv és az IDLE környezet változók és adattípusok konzol input és output (input(), print()) vezérlési szerkezetek (if/else, while)

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

Imperatív programozás

Imperatív programozás Imperatív programozás 6. Előadás Python típusok (folytatás) Függvények Típusok + műveleteik Listák - mutable (változtatható) - heterogén lista >>> lista = ["szo", 12, 3.5] >>> lista[1] 12 >>> lista[1:3]

Részletesebben

Java és web programozás

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

Részletesebben

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

Mi a Python? A Python alapjainak áttekintése. Példaprogram feladatkit zés. Példaprogram megvalósítás

Mi a Python? A Python alapjainak áttekintése. Példaprogram feladatkit zés. Példaprogram megvalósítás Mi a Python? A Python alapjainak áttekintése Általános célú programnyelv rengeteg beépített és egyéb modullal. Óbudai Egyetem Alba Regia Egyetemi Központ (AREK) Székesfehérvár 2011. szeptember 16. Objektumorientált,

Részletesebben

van neve lehetnek bemeneti paraméterei (argumentumai) lehet visszatérési értéke a függvényt úgy használjuk, hogy meghívjuk

van neve lehetnek bemeneti paraméterei (argumentumai) lehet visszatérési értéke a függvényt úgy használjuk, hogy meghívjuk függvények ismétlése lista fogalma, használata Game of Life program (listák használatának gyakorlása) listák másolása (alap szintű, teljes körű) Reversi 2 Emlékeztető a függvények lényegében mini-programok,

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

Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs

Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs Fordított és szkript nyelvek összehasonlító elemzése Sergyán Szabolcs IEEE: The 2016 Top Programming Languages IEEE: The 2016 Top Programming Language (Enterprise) Kutatás-fejlesztésben használt nyelvek

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

Hálózatok építése és üzemeltetése

Hálózatok építése és üzemeltetése Hálózatok építése és üzemeltetése Python 1 Python nyelv Alapok 2 Általános jellemzők A Python programozási nyelv egy általános célú magas szintű nagyon széles körben elterjedt ingyenes program nyelv, amely

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

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,

Részletesebben

22. GRÁFOK ÁBRÁZOLÁSA

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

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás

Részletesebben

Összetett hálózatok vizsgálata november 1.

Összetett hálózatok vizsgálata november 1. 4. modul Az igraph és a pylab modulok használata Összetett hálózatok vizsgálata Horváth Árpád Óbudai Egyetem Alba Regia M szaki Kar (AMK) Székesfehérvár 2016. november

Részletesebben

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv PHP A PHP rövidítés jelentése hivatalosan: PHP Hypertext Preprocessor. Ez egy kiszolgáló-oldali parancsnyelv, amit jellemzően HTML oldalakon használnak. A különbség a két nyelv között az, hogy a kiszolgáló

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

Smalltalk 2. Készítette: Szabó Éva

Smalltalk 2. Készítette: Szabó Éva Smalltalk 2. Készítette: Szabó Éva Blokkok Paraméter nélküli blokk [műveletek] [ x := 5. 'Hello' print. 2+3] Kiértékelés: [művelet] value az értéke az utolsó művelet értéke lesz, de mindet kiírja. x :=

Részletesebben

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

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

Részletesebben

Bevezetés a Python programozási nyelvbe

Bevezetés a Python programozási nyelvbe Bevezetés a Python programozási nyelvbe 8. Gyakorlat modulok random számok (utolsó módosítás: 2017. aug. 3.) Szathmáry László Debreceni Egyetem Informatikai Kar 2017-2018, 1. félév Modulok Amint a programunk

Részletesebben

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK Mérési Utasítás Linux/Unix jogosultságok és fájlok kezelése Linux fájlrendszerek és jogosultságok Linux alatt, az egyes fájlokhoz való hozzáférések szabályozása érdekében a fájlokhoz tulajdonost, csoportot

Részletesebben

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

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

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. november 20. 10. El adás SQLite SQLite: Adatbázis kezel rendszer SQL standardokat nagyrészt követi Nagyon elterjedt, pl böngész kben is használt Nehéz olyan programnyelvet

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

Adatszerkezetek és algoritmusok

Adatszerkezetek és algoritmusok 2012. október 18. Ismétlés El z órai anyagok áttekintése Ismétlés Specikáció Típusok, kifejezések, m veletek Adatok ábrázolása a memóriában Vezérlési szerkezetek Függvények Osztályok, objektumok Paraméterátadás

Részletesebben

Apple Swift kurzus 3. gyakorlat

Apple Swift kurzus 3. gyakorlat Készítette: Jánki Zoltán Richárd Dátum: 2016.09.20. Apple Swift kurzus 3. gyakorlat Kollekciók: Tömb: - let array = [] - üres konstans tömb - var array = [] - üres változó tömb - var array = [String]()

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

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

A Python programozási nyelv

A Python programozási nyelv A Python programozási nyelv Takács Gábor Széchenyi István Egyetem Matematika és Számítástudomány Tanszék 1 / 1 Jellemzők + értelmezett nyelv + típusai dinamikusak + szintaxisa tömör, elegáns

Részletesebben

Operációs Rendszerek II. labor. 2. alkalom

Operációs Rendszerek II. labor. 2. alkalom Operációs Rendszerek II. labor 2. alkalom Mai témák (e)grep Shell programozás (részletesebben, példákon keresztül) grep Alapvető működés: mintákat keres a bemeneti csatorna (STDIN vagy fájl) soraiban,

Részletesebben

Java és web programozás

Java és web programozás Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:

Részletesebben

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozási nyelvek JAVA EA+GY 1. gyakolat Programozási nyelvek JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2018/2019. tavaszi félév Tartalom 1 A Java alapjai 2 Java program

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

Vezérlési szerkezetek Vezérlési szerkezetek: feltételes elágazás és ciklusok

Vezérlési szerkezetek Vezérlési szerkezetek: feltételes elágazás és ciklusok : feltételes elágazás és ciklusok töbszörös elágazás (if-elif-else) kilépés while ciklusból (break), ciklus folytatása (continue), és a while ciklus feltételéhez tartozó else ág a for ciklus és a range()

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

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik

Részletesebben

Szkriptnyelvek II. Perl programok

Szkriptnyelvek II. Perl programok Szkriptnyelvek II. Perl programok Perl Practical Extraction and Report Language Interpreteres nyelv alkalmas szövegfeldolgozó alklmazások készítésére strukturált programszerkezet Szubrutinok támogatása

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

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

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) közönséges felhasználók SQL*Plus Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP dolgozó), DEPT osztály) "közönséges" felhasználók Adatszótár: metaadatokat tartalmazó, csak olvasható táblák táblanév-prefixek:

Részletesebben

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?

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

BASH SCRIPT SHELL JEGYZETEK

BASH SCRIPT SHELL JEGYZETEK BASH SCRIPT SHELL JEGYZETEK 1 TARTALOM Paraméterek... 4 Változók... 4 Környezeti változók... 4 Szűrők... 4 grep... 4 sed... 5 cut... 5 head, tail... 5 Reguláris kifejezések... 6 *... 6 +... 6?... 6 {m,n}...

Részletesebben

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17 Adatbázisok 8. gyakorlat SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT 2015. október 26. 2015. október 26. Adatbázisok 1 / 17 SQL nyelv Structured Query Language Struktúrált lekérdez

Részletesebben

Gyakorló feladatok Gyakorló feladatok

Gyakorló feladatok Gyakorló feladatok Gyakorló feladatok előző foglalkozás összefoglalása, gyakorlató feladatok a feltételes elágazásra, a while ciklusra, és sokminden másra amit eddig tanultunk Változók elnevezése a változók nevét a programozó

Részletesebben

2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér

2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér Funkcionális programozás 2. el adás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2019, tavaszi félév Mir l volt szó? Követelmények, osztályozás Programozási

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

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

Bisonc++ tutorial. Dévai Gergely. A szabály bal- és jobboldalát : választja el egymástól. A szabályalternatívák sorozatát ; zárja le.

Bisonc++ tutorial. Dévai Gergely. A szabály bal- és jobboldalát : választja el egymástól. A szabályalternatívák sorozatát ; zárja le. Bisonc++ tutorial Dévai Gergely A Bisonc++ egy szintaktikuselemz -generátor: egy környezetfüggetlen nyelvtanból egy C++ programot generál, ami egy tokensorozat szintaktikai helyességét képes ellen rizni.

Részletesebben

Listák, szótárak, fájlok Listák, szótárak, fájlok

Listák, szótárak, fájlok Listák, szótárak, fájlok lista fogalma, használata listák másolása (alap szintű, teljes körű) szótárak fogalma, használata adatbázis alkalmazás fejlesztése műveletek fájlokkal (megnyítás, írás, olvasás, lezárás) rejtjelező alkalmazás

Részletesebben

AWK programozás Bevezetés

AWK programozás Bevezetés 09 AWK programozás Bevezetés AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa és feldolgozhatóvá

Részletesebben

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >> I. Alapok Interaktív shell-ben vagy shell-scriptben megadott karaktersorozat feldolgozásakor az első lépés a szavakra tördelés. A szavakra tördelés a következő metakarakterek mentén zajlik: & ; ( ) < >

Részletesebben

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán Keresés Rendezés Feladat Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán 2016. november 7. Farkas B., Fiala

Részletesebben

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

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

Részletesebben

Gráfelméleti feladatok. c f

Gráfelméleti feladatok. c f Gráfelméleti feladatok d e c f a b gráf, csúcsok, élek séta: a, b, c, d, e, c, a, b, f vonal: c, d, e, c, b, a út: f, b, a, e, d (walk, lanţ) (trail, lanţ simplu) (path, lanţ elementar) 1 irányított gráf,

Részletesebben

Imperatív programozás

Imperatív programozás Imperatív programozás 7. Előadás Függvények, láthatóság (folytatás) Modulok Kivételkezelés Beágyazott függvény def lnko(x, y): def kivon(m, n): return m - n while not (x == y) : if x > y : x = kivon(x,y)

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

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. 7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. A gyakorlat célja: 1. A shell vezérlő szerkezetei használatának gyakorlása. A használt vezérlő szerkezetek: if/else/fi, for, while while, select, case,

Részletesebben

Hardver és szoftver követelmények

Hardver és szoftver követelmények Java-s Nyomtatványkitöltő Program Súgó Telepítési útmutató Hardver és szoftver követelmények A java-s nyomtatványkitöltő program az alábbi hardverigényt támasztja a számítógéppel szemben: 400 MHz órajelű

Részletesebben

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével

Részletesebben

2018, Diszkrét matematika

2018, Diszkrét matematika Diszkrét matematika 5. előadás mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia 2018, őszi félév Miről volt szó az elmúlt előadáson? Python alapfogalmak:

Részletesebben

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I. Keresés Rendezés Feladat Keresés Rendezés Feladat Tartalom Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

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

1. Egyszerű (primitív) típusok. 2. Referencia típusok

1. Egyszerű (primitív) típusok. 2. Referencia típusok II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget

Részletesebben

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

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2019. augusztus 29. Feladat: írjuk ki az els 10 természetes szám négyzetét! #i n c l u d e i n t main ( v o i d ) { p r

Részletesebben

Adatszerkezetek II. 1. előadás

Adatszerkezetek II. 1. előadás Adatszerkezetek II. 1. előadás Gráfok A gráf fogalma: Gráf(P,E): P pontok (csúcsok) és E P P élek halmaza Fogalmak: Irányított gráf : (p 1,p 2 ) E-ből nem következik, hogy (p 2,p 1 ) E Irányítatlan gráf

Részletesebben

Programozás Minta programterv a 1. házi feladathoz 1.

Programozás Minta programterv a 1. házi feladathoz 1. Programozás Minta programterv a 1. házi feladathoz 1. Gregorics Tibor 1. beadandó/0.feladat 2008. december 6. EHACODE.ELTE gt@inf.elte.hu 0.csoport Feladat Egy osztályba n diák jár, akik m darab tantárgyat

Részletesebben

Gráfelméleti alapfogalmak

Gráfelméleti alapfogalmak 1 Gráfelméleti alapfogalmak Gráf (angol graph= rajz): pontokból és vonalakból álló alakzat. pontok a gráf csúcsai, a vonalak a gráf élei. GRÁ Irányítatlan gráf Vegyes gráf Irányított gráf G H Izolált pont

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

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

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód:

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód: Szerző Név: Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: vp.05@hotmail.com Kurzuskód: IP-08PAEG/27 Gyakorlatvezető neve: Kőhegyi János Feladatsorszám: 20 1 Tartalom Szerző... 1 Felhasználói dokumentáció...

Részletesebben

Informatika terméktervezőknek

Informatika terméktervezőknek Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások

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