Algoritmusok. Matematika BSc, 2. félév. Dr. Szikszai Márton
|
|
- Frigyes Csonka
- 5 évvel ezelőtt
- Látták:
Átírás
1 Algoritmusok Matematika BSc, 2. félév Dr. Szikszai Márton Debreceni Egyetem Természettudományi és Technológiai Kar Matematika Intézet Algebra és Számelmélet Tanszék Debreceni Egyetem 2018/19/II. félév
2 Kurzus információk Oktató elérhetőségei fogadóóra: péntek 9:00-11:00 ( ben egyeztetni) Oktatási segédanyagok oktató honlapja (diasor, mintakódok, stb...) ajánlott irodalom Allen B. Downey, Chris Mayfield, Think Java: How to Think like a Computer Scientist, Michael T. Goodrich, Roberto Tamassia, and Michael H. Goldwasser, Data Structures and Algorithms in Java, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Introduction to Algorithms, Java, IntelliJ IDEA, Codingground vagy Trinket (órai használat) Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 2 / 100
3 Kurzus információk Órai munka a gyakorlaton való részvétel kötelező (maximálisan 3 hiányzás) a példaprogramok és példafeladatok otthoni megírása elvárt a csoportos feladatmegoldásba bekapcsolódás ajánlott az előadáson való részvétel nem kötelező, de a gyakorlat megértését nagyban segíti Számonkérés Értékelés félévközi írásbeli tesztek (5 darab, egyenként maximálisan 4 pont) félév végi írásbeli dolgozat (maximálisan 20 pont) összpontszám = tesztek + dolgozat érdemjegy: 0-19 elégtelen (1); elégséges (2); közepes (3); jó (4); jeles (5). Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 3 / 100
4 Témakörök 1 Bevezető 2 Változók és kifejezések 3 Feltételes végrehajtás 4 Ciklikus végrehajtás 5 Metódusok 6 Primitív adatszerkezetek 7 Objektum-orientált programozás 8 Algoritmusok analízise 9 Algoritmusok tervezése 10 Rekurziók 11 Rendezési algoritmusok
5 1 Bevezető Miért algoritmusok és adatszerkezetek? Objektum-orientált programozás Java progamozási nyelv Első program Kommentelés és dokumentáció Megjegyzések
6 Miért algoritmusok és adatszerkezetek? Algoritmus - informális definíció Egy probléma- vagy problémaosztály megoldására adott, egyértelműen definiált számítási lépések véges sorozata. Absztrakt adattípus - informális definíció Adatok tárolásának, rendszerezésének és manipulációjának matematikai modellje. Adatszerkezet - informális definíció Egy absztrakt adattípus fizikai megvalósítása. Az algoritmusok és adatszerkezetek elsajátításának előnyei magas szintű absztrakciót igénylő, nem intuitív problémamegoldás platform- és nyelvfüggetlen problémamegoldási minták idő- és memóriahatékony számítások Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 6 / 100
7 Objektum-orientált programozás Az objektum-orientált programozás (OOP) központi szereplői az objektumok. Minden objektum egy osztály esete. Az osztály sablonként szolgál, definiálja az objektum által tárolt osztályszintű adatokat és metódusokat ezek elérésére és módosítására. Ezen túlmenően minden objektumnak lehetnek példányszintű adatai és metódusai. Az OOP tervezése során megkövetelt célok robosztusság hordozhatóság újrahasznosíthatóság Az OOP megvalósítása során követett elvek absztrakció egységbezárás modularitás Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 7 / 100
8 Java progamozási nyelv Az algoritmusok és adatstruktúrák az OO paradigmát támogató magas szintű programozási nyelvek alapvető eszközei. A Java nyelv eredendően objektum-orientált osztály-alapú szintaxist használ magas szintű További jellemzői hibrid értelmezésű (fordítással generált bájtkód interpretációja) automatikus memóriakezelés A kurzus során a Java alapszintű elsajátítása szükséges. A tárgyalás bevezető szintű a nyelvi elemeket a kurzushoz elégséges szinten vezeti be lehetőség szerint kapcsolódik a párhuzamosan hallgatott Programnyelvek kurzushoz Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 8 / 100
9 Java progamozási nyelv A Java program egy azonos elnevezésű osztály, amely minden más kódot tartalmaz. class <fájlnév> { <programkód> A Java osztályai jellemzően nem önálló programok. A futás során végrehajtásra kerülő utasítások egy speciális main metódus törzsében állnak. public static void main(string[] args) { <törzs> A String[] argumentum a felhasználói inputok sorozata (parancssor argumentum). Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 9 / 100
10 Java progamozási nyelv A public, void szavak módosítók. Módosítókat helyezhetünk változók, metódusok és osztályok elé is. Hozzáférés módosítók public: tetszőleges osztály hozzáférhet protected: az osztály alosztályai és az őt tartalmazó csomag osztályai férhetnek hozzá private: kizárólag az osztályon belül engedélyezett hozzáférés További módosítók static: osztályszintű értékek és metódusok abstract: implementáció nélküli, de hozzáférhető final: változók értékének zárolása, osztály felülírásának és öröklésének blokkolása A kurzus során szinte kivétel nélkül public és static módosítókat használunk. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 10 / 100
11 Első program A System.out osztály print és println metódusa a standard output stream felületen (kimenetfolyam) jeleníti meg az argumentumot. class PrintDemo { public static void main(string[] args) { System.out.print("My first Java program!"); class PrintDemo { public static void main(string[] args) { System.out.println("My second Java program!"); System.out.println("My second line!"); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 11 / 100
12 Kommentelés és dokumentáció Programok írása során megjegyzéseket fűzhetünk a kódhoz komment formájában. A komment // jelet követően, azzal egy sorban áll. //This is an inline comment. A komment nem kerül végrehajtásra a tárgykód futtatása során. Ha többsoros megjegyzést akarunk írni (blokkoment), akkor / elválasztók közé, minden sort * jellel kezdve van lehetőség. /* *This is a block comment. */ A blokkoment speciálisan /** módon is kezdődhet. Az így írt kommentekből a JavaDoc alkalmazás automatikus dokumentációt képes előállítani. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 12 / 100
13 Megjegyzések Az OOP során számos további cél és elv megfogalmazható. A Java neve eredetileg Oak volt. A Java számos eleme korábbi nyelvek problémáinak kiküszöbölését célozza, azok ismerete nélkül nem tűnik indokoltnak. A main metódust a java.exe nevű indító olvassa be. Lehetséges egyedi indító implementálása, ahol a main metódus más nevet kap. Java kód írása során a bekezdések, sorközök és egyéb stilisztikai eszközök használata nem kötelező, de ajánlott. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 13 / 100
14 2 Változók és kifejezések Literálok és konstansok Aritmetikai operátorok Típuskonverzió Változók Kifejezések Csomagoló osztályok Megjegyzések
15 Literálok és konstansok A literál a nyelv önálló jelentéssel bíró értéke. egész szám: 2 lebegőpontos szám: 3.14, logikai érték: true, false A Java a következő primitív adattípusokat kínálja. üres: null logikai: boolean karakter: char egész szám: byte, short, int, long lebegőpontos szám: float, double Az egész, illetve lebegőpontos számok esetén az int és a double az alapértelmezett. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 15 / 100
16 Aritmetikai operátorok Alapműveletek összeadás: + kivonás: - szorzás: * osztás: / További aritmetikai operátorok modulus: % Zárójelezés van, a műveleti sorrend standard (PEMDAS). A Java az osztás operátort maradékos osztásként értelmezi egész értékű operandusokon. Az aritmetikai operátorok értelmezettek különböző numerikus típusok között. Az eredmény típusa minden esetben a bővebb osztály. System.out.print( * 6 / 7 % 4); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 16 / 100
17 Típuskonverzió A Java statikus és erős típusrendszert használ a típus fordítási időben kerül deklarálásra az utasítások típus-dependensek (általában) Bizonyos esetekben lehetséges típuskonverzió. A típuskonverzió implicit, ha a típusváltozás automatikus. int x = 2; double y = x; System.out.print(y); A típuskonverzió explicit, ha a típusváltást újradeklarálással végezzük int x = 2; System.out.print((double) x); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 17 / 100
18 Változók A változó értékre való hivatkozás. A változó típusát deklarálni kell, érték a hozzárendelés utasítással adható meg. <típus> <változónév> = <érték> A deklarált típus meg kell egyezzen az érték típusával. int x = 2; Változót lehetséges érték megadása (inicializálás) nélkül is deklarálni. int x; A változónév Unicode karaktereket tartalmaz, betűvel (kis- és nagybetű megkülönböztetett), $, _ jellel kezdődik (utóbbiak kerülendők) nem lehet kulcsszó Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 18 / 100
19 Változók Java kulcsszavak abstract assert booelan break byte case catch char class const continue default do double else enum extends false final finally float for goto if implements import isinstanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient true try void volatile while Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 19 / 100
20 Kifejezések A kifejezés literálok, változók és operátorok kompozíciója. int x = 3; int y = 4; System.out.print(x + 2 * y - 1); A literál és a változó önmagában is kifejezés, melyet atomnak mondunk. Atomnak tekinthető minden zárójeles kifejezés is. Kifejezések és utasítások között elvi különbséget teszünk. Előbbiek értékeket reprezentálnak, utóbbiak értékekkel hajtanak végre cselekvéseket. int x = 2; System.out.print(x); Itt a hozzárendelés (=) és a print utasítás, de valójában x is felfogható kifejezés utasításként is. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 20 / 100
21 Csomagoló osztályok A Java adatszerkezetei és metódusai többnyire objektumokkal manipulálnak, nem értelmezettek a primitív adattípusok esetén. Minden primitív adattípus rendelkezik csomagoló osztállyal, amelynek eseti változójaként objektumként kezelhető. Boolean Character Byte, Short, Integer, Long Float, Double int x = new Integer(0); System.out.print(x); A new utasítás létrehozza az osztály új eseti változóját. Az Integer argumentuma az inicializált érték. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 21 / 100
22 Megjegyzések A Java kizárólag a felsorolt primitív adattípusokat kínálja. Minden további adattípus vagy adatszerkezet ezekből képzett. A byte, short, int és long típusok rendre 8, 16, 32, illetve 64 biten kerülnek tárolásra. A float és double típusok 32 és 64 biten kerülnek tárolásra. Egész számokat lehet float vagy double típusként deklarálni, de kerülendő (kerekítés). A Java nem támogatja a szimultán hozzárendelést. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 22 / 100
23 3 Feltételes végrehajtás Logikai értékű operátorok Feltételes végrehajtás Alternatív végrehajtás Láncolt feltételek Egymásba ágyazott feltételek Esetváltás Kivételkezelés Megjegyzések
24 Logikai értékű operátorok Logikai operátorok és: && vagy: tagadás:! Reláció (összehasonlító) operátorok kisebb: < nagyobb: > egyenlő: == nem egyenlő:!= kisebb vagy egyenlő: <= nagyobb vagy egyenlő: >= A reláció operátorokat teljes biztonsággal csak primitív típusok esetén lehet alkalmazni. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 24 / 100
25 Feltételes végrehajtás Az if (összetett) utasítás a törzsében lévő kód végrehajtását adott feltétel teljesülésétől teszi függővé. if (<feltétel>) <törzs> A törzs kiértékelésre kerül, ha a fejlécben szereplő feltétel logikai értéke igaz. if (1 < 2) { System.out.print("OK"); A Java feltételes szerkezeteiben a { elválasztók használata opcionális. if (1 < 2) System.out.print("OK"); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 25 / 100
26 Alternatív végrehajtás Az if-else utasítás fejlécében szereplő feltétel hamis logikai értéke esetén a kiértékelés az else ág törzsében történik. if (<feltétel>) <törzs1> else <törzs2> Ha a feltétel értéke igaz, az else ág nem kerül végrehajtásra. if (2 < 1) { System.out.print("OK"); else { System.out.print("KO"); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 26 / 100
27 Láncolt feltételek Az if-else if utasítás során több, egymást nem szükségképpen kizáró, feltételtől tehető függővé a végrehajtás. if (<feltétel1>) <törzs1> else if (<feltétel2>) <törzs2> A kiértékelés sorfolytonos, az első igaz feltétel ágában történik. if (2 < 1) { System.out.print("OK"); else if (1 < 2) { System.out.print("KO"); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 27 / 100
28 Láncolt feltételek Az if-else if utasításban tetszőleges számú feltétel megjelenhet. A láncolt feltételes szerkezet kombinálható az alternatív végrehajtással is, az else ág a legutolsó. if (1 == 3) { System.out.print("branch1"); else if (2 == 3) { System.out.print("branch2"); else { System.out.print("branch3"); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 28 / 100
29 Egymásba ágyazott feltételek A feltételes szerkezetek egymásba is ágyazhatók. if (1 < 2) { System.out.print("if"); if (2 < 3) { System.out.print("ifnested"); Az egymásba ágyazott feltételes szerkezetek kerülendők. if (1 < 2 && 2 < 3) { System.out.print("OK"); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 29 / 100
30 Esetváltás A switch utasítás egy kifejezés értékétől függően hajtja végre egy ágát. switch (<kifejezés>) case <érték1>: <törzs1> break;. int semester = 2; switch (semester) { case 1: System.out.println("First semester"); break; case 2: System.out.println("Second semester"); break; Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 30 / 100
31 Kivételkezelés A try-catch utasítás lehetővé teszi, hogy a kód végrehajtását megtörő nem szintaktikai hibákat futási időben kiszűrjük. try <törzs1> catch (Exception <kivételnév>) <törzs2> try { String[] inp = {; System.out.print(inp[10]); catch (Exception myexpection) { System.out.print("error"); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 31 / 100
32 Megjegyzések A Java csak a boolean típusnak tulajdonít logikai értéket. A Java nem támogatja a láncolt összehasonlítást. A Java alkalmazza a rövidzárlatos kiértékelést. Egy egymásba ágyazott feltételes szerkezet mindig átírható láncolt feltételes szerkezetté. A Java fordító az esetválasztó szerkezetből 18 eset alatt láncolt feltételes szerkezetet generál bájtkódként. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 32 / 100
33 4 Ciklikus végrehajtás Határozott lépésszámú ciklus Határozatlan lépésszámú ciklus Poszt-teszt ciklus Ciklusvezérlők Megjegyzések
34 Határozott lépésszámú ciklus A for utasítás a fejlécében definiált ciklusváltozó értéktartományának minden elemére végrehajtja a törzsében szereplő kódot. for (<inicializáció>;<feltétel>;<növekmény>) <törzs> for (int i = 1; i < 10; i++) { System.out.println(i); A Java alkalmazza a prefix és postfix inkrementálás (++) és dekrementálás (--) operátorokat. int i = 5; System.out.println(++i); System.out.print(i++); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 34 / 100
35 Határozott lépésszámú ciklus A ciklusban definiált változók lokálisak. for (int i = 1; i < 10; i++) { int x = i; System.out.print(x); Későbbi felhasználás esetén még a ciklus előtt deklarálni kell. int x = 0; for (int i = 1; i < 10; i++) { x = i; System.out.print(x); A ciklusváltozó mindig lokális. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 35 / 100
36 Határozatlan lépésszámú ciklus A while utasítás végrehajtja a törzsben szereplő kódot mindaddig, amíg a fejlécben szereplő feltétel logikai értéke igaz. while (<feltétel>) <törzs> int i = 5; while (i > 0) { System.out.println(i); i--; Ha a feltétel mindig igaz, akkor a törzs folytonos iterálásra kerül, végtelen ciklust eredményezve. A feltétel teljesülését a ciklus előtt deklarált változóval kontrollálhatjuk. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 36 / 100
37 Poszt-teszt ciklus Amennyiben legalább egy végrehajtást megkövetelünk, úgy a feltétel tesztelését a fejlécből a törzs után mozgathatjuk. A do-while utasítás ezt a poszttesztelést valósítja meg. do <törzs> while (<feltétel>) int i = 1; do { System.out.println(i); i++; while (i < 5); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 37 / 100
38 Ciklusvezérlők A ciklusok végrehajtása megállítható a break utasítás használatával. while (true) { System.out.print("That s enough!"); break; Egy adott iteráció végrehajtása megállítható a continue utasítás használatával. for (int i = 1; i < 5; i++) { if (i == 3) { continue; System.out.println(i); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 38 / 100
39 Megjegyzések A Java speciális határozott lépésszámú ciklust kínál tároló adatszerkezetek bejárására. A for ciklus a ciklusváltozót inkrementáló és dekrementáló while ciklus, jellemzően fordított sorrendben kerülnek bevezetésre. A posztteszt ciklust számos programozási nyelv támogatja. A continue utasítás poszttesztelés esetén a feltétel ellenőrzésére ugrik. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 39 / 100
40 5 Metódusok Függvény vagy metódus? Importálás Felhasználói input Metódusok definiálása Megjegyzések
41 Függvény vagy metódus? A függvény utasítások előre definiált sorozata, mely a függvény hívása során végrehajtásra kerül a megadott argumentumok felhasználásával. A metódus olyan függvény, amely egy adott osztály objektumaira hívható. A Java kizárólag metódust értelmez, általános függvényfogalmat nem. A Java számos beépített metódust tartalmaz. numerikus: constructor, toexponential, toprecision,... logikai: tosource, tostring, valueof,... string: replace, search, split,... tömb: pop, push, reserve,... dátum: Date, getday, todatestring,... matematikai: abs, cos, log,... A fenti lista nem kimerítő. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 41 / 100
42 Importálás További metódusok érhetők el az azokat tartalmazó osztályok importálásával. Azonos típusú osztályok általában egy csomag részei. import <osztálynév> Az import utasítás mindig az osztálydefiníció előtt helyezkedik el. import java.util.scanner; class.... Itt a java egy csomag, a java.util ennek egy alcsomagja, a Scanner pedig a java.util egy osztálya. További hasznos csomagok: java.lang, java.io, java.awt, java.swing, java.net, java.applet, etc... Hasznos osztályok: java.lang.math, java.util.scanner, java.util.arrays. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 42 / 100
43 Itt az input objektumon alkalmazva a nextint metódust, a következő felhasználói bemenetet int típusként értelmezve (ha lehetséges), az hozzárendelésre kerül a number változóhoz. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 43 / 100 Felhasználói input A System.in osztály használatával elérhető a standard input stream. Ennek olvasását a java.util csomag Scanner osztálya teszi lehetővé. import java.util.scanner; class InputDemo { public static void main(string[] args) { Scanner input = new Scanner(System.in); System.out.print("Write your favorite number"); int number = input.nextint(); System.out.print(number);
44 Metódusok definiálása Metódus definiálása a main metódus mintájára, egy szinten történik. <módosítók> <érték> <metódusév>(<paraméterek>) { <törzs> Az érték void amennyiben a metódusnak nincs visszatérési értéke. public static void myprint() { System.out.println("myPrint works") Egyéb esetben az érték típusa, melyet a return utasítás előz meg. public static int mynumber() { return 2; Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 44 / 100
45 Metódusok definiálása A paraméterek a metódus argumentumait hivatkozó lokális változók. A metódus hívását követően a hozzárendelés automatikus. A paraméter típusát deklarálni kell a metódus definiálása során. public static int mynumber(int favorite) { return favorite; Tetszőleges számú paraméter megadható. public static int myadd(int a, int b) { return a + b; Különböző típusú paraméterek megadása lehetséges. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 45 / 100
46 Megjegyzések A visszatérési értékkel rendelkező metódusokat produktívnak mondjuk. Metódusok definiálása során a törzs mindenképpen { jelek között áll. A Java támogatja a metódus túltöltést (overloading), amennyiben a paraméterek megkülönböztetik az egyébként egyező elnevezésű metódusokat. A Java nem használ kulcsszó argumentumokat, amelyek már a függvény hívása előtt hozzárendelésre kerülnek a paraméterekhez. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 46 / 100
47 6 Primitív adatszerkezetek Tartalmazó típusok Tömbök Stringek Megjegyzések
48 Tartalmazó típusok A tartalmazó típus értékek egy kollekciója. Minimális modelljét alábbi tulajdonságai írják le. tárolás: elemek hozzáadása és törlése hozzáférés: elemek elérése bejárás: elemeken való iteráció Általában elvárás, hogy a következő függvények rendelkezésre álljanak. konstruktor: üres tároló létrehozása hozzáadás: egy vagy több elem hozzáadása törlés: egy vagy több elem törlése tartalmazás: tagság ellenőrzése rákövetkezés: iteráció lehetővé tétele hossz: elemek száma Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 48 / 100
49 Tartalmazó típusok A Java tartalmazó típusok bejárására értelmez egy speciális for ciklust. for (<változó>:<tartalmazó>) törzs Az alkalmazás feltétele, hogy a típus iterálható legyen. int[] container = {1,2,3,4,5; for (int i : container) { System.out.println(i); A ciklusváltozó típusát minden esetben deklarálni kell és egyeznie kell a tároló típusban található elemek típusával. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 49 / 100
50 Tömbök A tömb azonos típusú értékek egy sorozata. Deklarálása a típust követő [] jelekkel történik. <típus>[] <név>; Értékeket a new utasítással inicializálhatunk. int[] myarray = new int[3]; Itt a tömb elemei mind 0 értéket vesznek fel, csak a hossz kerül egyértelműsítésre. A tömb megadható elemeivel is { jelek között,,-vel elválasztva. int[] myarray = {1,2,3; Egy tömb tetszőleges, nem feltétlen primitív, típus esetén értelmezett. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 50 / 100
51 Tömbök A tömb megjelenítése nem lehetséges közvetlenül. int[] myarray = {1,2,3; System.out.print(myArray); A java.util.arrays osztály tostring metódusa a kívánt eredményt adja. import java.util.arrays;. int[] myarray = {1,2,3; System.out.print(Arrays.toString(myArray)); Itt a megjelenítés [] határolókkal történik, nem { jelekkel. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 51 / 100
52 Tömbök A tömb elemeihez indexeik segítségével férhetünk. A Java null-indexelt. int[] myarray = {1,2,3; System.out.print(myArray[1]); A tömb mutábilis, elemeit újradefiniálhatjuk. int[] myarray = {1,2,3; myarray[0] = 0; System.out.print(myArray[0]); A tömb hosszát annak length attribútumával kérhetjük le. int[] myarray = {1,2,3; System.out.print(myArray.length); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 52 / 100
53 Tömbök Egy tömb bejárható mindkét for és a while ciklus használatával is. int[] data = {1,2,3; for (int i = 0; i < data.length; i++) { System.out.println(data[i]); for (int item : data) { System.out.println(item); int i = 0; while (i < data.length) { System.out.println(data[i]); i++; Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 53 / 100
54 Stringek A string karakterek "" jelek közé írt elválasztók nélküli sorozata. Deklarálása a String kulcsszóval lehetséges. String <név> = "<karakterek>"; A string elemeit a charat metódussal érthetjük el, indexelése a tömbökével egyező. String word = "bird"; System.out.println(word.charAt(0)); A Java Unicode karakterkészletet használ, így nem-alfabetikus nyelvek szimbólumait is képes megjeleníteni. System.out.print((char) 915); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 54 / 100
55 Stringek Tetszőleges részstring lekérhető a substring metódus használatával. String word = "bird"; System.out.print(word.substring(1,2)); A string támogatja a konkatenáció műveletet + operátor formájában. System.out.print("first" + "second"); A string immutábilis, nem változtatható meg karakterei újradefiniálásával. Az immutábilis tulajdonság megkerülhető a substring és a + használatával. String word = "bird"; System.out.print(word.substring(0,2) + "th"); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 55 / 100
56 Stringek Egy string bejárható mindkét for és a while ciklus használatával is. String mystring = "bird"; for (int i = 0; i < word.length(); i++) { System.out.println(word.charAt(i)); A második típusú for közvetlenül nem alkalmazható. A string objektum tochararray metódusával karakterekből álló tömbbé konvertáljuk. String word = "bird"; for (char letter : word.tochararray()) { System.out.println(letter); Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 56 / 100
57 Megjegyzések A Java számos tároló típust kínál a java.util.collections osztály részeként. A Java közvetlenül nem értelmezi a { jelek közé írt,-vel elválasztott azonos típusú elemeket tömbként. A string nem karakterek egy tömbje. Az egy elemű string nem karakter, karakterek megadása során határolókat használunk. Dr. Szikszai Márton (DE-TTK MI) Algoritmusok 2018/19/II. félév 57 / 100
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észletesebbenJava 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észletesebben1. 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észletesebbenOBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek
OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető
RészletesebbenSzoftvertechnoló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észletesebbenProgramozás I. Első ZH segédlet
Programozás I. Első ZH segédlet Ezen az oldalon: kiírás az alapértelmezett (hiba) kimenetre, sztring konkatenáció, primitív típusok, osztály létrehozás, példányosítás, adattagok, metódusok Kiíratás alapértelmezett
RészletesebbenAz osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java
Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:
RészletesebbenJava 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észletesebbenA 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észletesebbenOOP: Java 8.Gy: Abstract osztályok, interfészek
OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus
RészletesebbenC# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem
C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real
RészletesebbenProgramozási nyelvek II. JAVA EA+GY 1. gyakolat
Programozási nyelvek II. JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2017/2018. őszi félév Tartalom 1 Amit tudni kell a félévről
RészletesebbenProgramozá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észletesebbenHelyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?
A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály
RészletesebbenProgramozási nyelvek Java
Programozási nyelvek Java 2. gyakorlat Függvények Általános prototípus Módosítószavak Láthatóság: public, protected, private. Ha nem definiált, akkor úgynevezett package-private láthatóság. Lehet abstract
RészletesebbenObjektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN
Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.
Részletesebbené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észletesebbenProgramozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 1. Előadás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu Programozás
RészletesebbenJava 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észletesebbenInformatika 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észletesebbenJava bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o
Miért Java? széleskörben elterjedt Micro Edition - beágyazott rendszerek, régi telefonok Standard Edition - PC, android ezen alapul Enterprise Edition - vállalati programok, web service-ek multiplatform
RészletesebbenSzámítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás
Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási
RészletesebbenJava 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észletesebbenOOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN
OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás
RészletesebbenProgramozási nyelvek II.: JAVA, 4. gyakorlat
Programozási nyelvek II.: JAVA, 4. gyakorlat 2017. október 2-6. Programozási nyelvek II.: JAVA, 4. gyakorlat 1 / 32 A 4. gyakorlat tematikája Tömbök A java.util.arrays osztály A String osztály A StringBuffer
RészletesebbenOsztá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észletesebbenProgramozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double
Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,
RészletesebbenKarakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!
A PL/SQL alapelemei Karakterkészlet Az angol ABC kis- és nagybetűi: a-z, A-Z Számjegyek: 0-9 Egyéb karakterek: ( ) + - * / < > =! ~ ^ ; :. ' @ %, " # $ & _ { }? [ ] Szóköz, tabulátor, kocsivissza A kis-
RészletesebbenMit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)
Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,
RészletesebbenOsztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;
PHP5 objektumok 1 Osztályok class, new book.php: construct () destruct() $b=new Book(); törlés: $b=null; vagy unset ($b); -elnevezési konvenciók private $isbn; public $title; function
RészletesebbenProgramozás III A JAVA TECHNOLÓGIA LÉNYEGE. Többlépcsős fordítás JAVA PLATFORM. Platformfüggetlenség
A JAVA TECHNOLÓGIA LÉNYEGE Programozás III Többlépcsős fordítás JAVA ALAPOK Platformfüggetlenség A JAVA TECHNOLÓGIA LÉNYEGE JAVA PLATFORM Két komponense: Java Virtual Machine (JVM) Java Application Programming
RészletesebbenOOP: Java 1.Gy: Java alapok
OOP: Java 1.Gy: Java alapok Eclipse alapok O O P Objektum Orientált Programozás 31/1 B ITv: MAN 2019.02.25 Feladat Írja meg a 4 alapműveletet megvalósító Kalkulátor programot Java nyelven. Az elvégzendő
RészletesebbenSzoftvertervezés és -fejlesztés I.
Szoftvertervezés és -fejlesztés I. Operátorok Vezérlési szerkezetek Gyakorlás 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik.
RészletesebbenJava é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észletesebbenList<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error
Generics Egyszerűbb példák (java.util csomagból): public interface List { void add(e x); Iterator iterator(); public interface Iterator { E next(); boolean hasnext(); E - formális típusparaméter,
RészletesebbenGYAKORLATIAS JAVA MINTA
Java SE programozási alapok - alapelemek viszont a Javadoc-ban nem fog megjelenni. */ 4.2. Egyszerű és összetett típusok A programozás során az adatainkat (legyen az csak átmeneti is) ún. változókban tárolunk.
RészletesebbenJAVA 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észletesebbenKivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés
Kivételek kezelése (exception handling) Hibakezelés old style class Szamolo { void szamol( String s, int i ) { int d; if (i!= 0) d = (i+1)/i; else if (s!= null) d = s.length(); else if (i > 10) // applikációs
RészletesebbenPelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;
Java 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. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely
RészletesebbenJava programozási nyelv
Szoftvertechnológia sáv Java programozási nyelv Dirk Louis-Peter Müller: Java (Belépés az internet világába) Panem kiadó, Budapest, 2002. Webvilág sorozat Készítette: Gregorics Tibor Vázlatos áttekintés
RészletesebbenApple 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észletesebbenProgramozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 2. előadás Szintaktikai alapok Alapvető típusok, ismétlés C# típus.net típus Méret (byte) Leírás byte System.Byte 1Előjel nélküli 8 bites egész szám (0..255) char
RészletesebbenA Java nyelv. Bevezetés, alapok Elek Tibor
A Java nyelv Bevezetés, alapok Elek Tibor A Java nyelv jellemzıi Interpreteres Forrás file fordítás Bytekódú file-ok (class fileok, nem gépikód, nem futtatható, egy új forrásnyelv) Interpreter: betölti,
RészletesebbenWeb-technológia PHP-vel
Web-technológia PHP-vel A PHP programnyelv 2, futtatókörnyezet beálĺıtások Erős Bence February 26, 2013 Erős Bence () Web-technológia PHP-vel February 26, 2013 1 / 19 Szuperglobális változók $ GET : request
Részletesebben1. Jelölje meg az összes igaz állítást a következők közül!
1. Jelölje meg az összes igaz állítást a következők közül! a) A while ciklusban a feltétel teljesülése esetén végrehajtódik a ciklusmag. b) A do while ciklusban a ciklusmag után egy kilépési feltétel van.
RészletesebbenJava programozási nyelv 4. rész Osztályok II.
Java programozási nyelv 4. rész Osztályok II. 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/17 Tartalomjegyzék
RészletesebbenA C# PROGRAMOZÁSI NYELV
A C# PROGRAMOZÁSI NYELV 2010.02.23. Bevezetés C# nyelv jellemzői 2 Kis és NAGY betű érzékeny Minden utasítást pontos vessző zár. Utasítás zárójel a:,. .NET Framework keretrendszerek 3 Microsoft.NET Framework
RészletesebbenA 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észletesebbenC# gyorstalpaló. Készítette: Major Péter
C# gyorstalpaló Készítette: Major Péter Adattípusok Logikai változó Egész szám (*: előjel nélküli) Lebegőponto s szám Típus Típusnév másképpen (egyenértékű) Helyigény (bit) Példa bool Boolean 8 (!) true,
RészletesebbenProgramozási nyelvek II. JAVA EA+GY 1. gyakolat
Programozási nyelvek II. JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2017/2018. őszi félév Tartalom 1 Amit tudni kell a félévről
RészletesebbenJárműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás
Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás A tárgy órái Előadás hetente (St101) csüt. 8:15 Bécsi Tamás C elmélet Ajánlott irodalom Dennis Ritchie: A C programozási nyelv Gyakorlat hetente
RészletesebbenBASH 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észletesebbenProgramozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is
RészletesebbenMagas szintű programozási nyelvek 2 Előadás jegyzet
Magas szintű programozási nyelvek 2 Előadás jegyzet 1. Rendszerfejlesztés 0. lépés: Elemzés (analízis) 1. lépés: Tervezés a, technológia független rész b, technológia függő rész 2. lépés: Megvalósítás
RészletesebbenA 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észletesebbenBevezeté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észletesebbenProgramozási nyelvek II.: JAVA
Programozási nyelvek II.: JAVA 6. gyakorlat 2017. október 16-20. 6. gyakorlat Programozási nyelvek II.: JAVA 1 / 1 Az 6. gyakorlat tematikája Túlterhelés - összefoglalás statikus adattagok és metódusok
RészletesebbenA 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észletesebbenJava III. I I. Osztálydefiníció (Bevezetés)
Java III. I I. Osztálydefiníció (Bevezetés) Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 02. 27. Java III.: Osztály definíció JAVA3 / 1 Szintaktikai jelölések A továbbiakban
RészletesebbenProgramozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.
Programozás III CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van a fejlesztő környezet és az osztálykönyvtárak is: rt.jar fájl
RészletesebbenMintavételes szabályozás mikrovezérlő segítségével
Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés
RészletesebbenProgramozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 8. előadás Öröklődés - megnyitunk egy osztályt egy másik előtt zárt egységeket szeretünk készíteni (láthatósági kérdés:
RészletesebbenJava III. I I. Osztálydefiníció (Bevezetés)
Java III. I I. Osztálydefiníció (Bevezetés) Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 02. 27. Java III.: Osztály definíció JAVA3 / 1 Szintaktikai jelölések A továbbiakban
RészletesebbenImperatí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észletesebbenProgramozási nyelvek II.: JAVA, 4. gyakorlat
Programozási nyelvek II.: JAVA, 4. gyakorlat 2017. október 2-6. Programozási nyelvek II.: JAVA, 4. gyakorlat 1 / 29 A 4. gyakorlat tematikája Tömbök A java.util.arrays osztály A String osztály StringBuilder
RészletesebbenProgramozá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észletesebbenSzkriptnyelvek. 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észletesebbenProgramozási nyelvek II.: JAVA
Programozási nyelvek II.: JAVA 6. gyakorlat 2017. október 16-20. 6. gyakorlat Programozási nyelvek II.: JAVA 1 / 24 Az 6. gyakorlat tematikája túlterhelés - összefoglalás statikus adattagok és metódusok
RészletesebbenOOP: Java 8.Gy: Gyakorlás
OOP: Java 8.Gy: Gyakorlás 43/1 B ITv: MAN 2019.04.10 43/2 Egy régebbi beszámoló anyaga 1. Feladat: Készítsen egy Szemely nevű osztályt a szokásos konvenciók betartásával, amely tárolja egy ember nevét
Részletesebben3. Gyakorlat Ismerkedés a Java nyelvvel
3. Gyakorlat Ismerkedés a Java nyelvvel Parancssori argumentumok Minden Java programnak adhatunk indításkor paraméterek, ezeket a program egy tömbben tárolja. public static void main( String[] args ) Az
RészletesebbenSzámítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás
Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás 2. előadás Console I/O bővebben Lásd mintaprogram 2015.09.21. Számítástechnika I. 2. Előadás 2 Számábrázolásról
RészletesebbenKészítette: Nagy Tibor István
Készítette: Nagy Tibor István Operátorok Műveletek Egy (vagy több) műveleti jellel írhatók le A műveletet operandusaikkal végzik Operátorok fajtái operandusok száma szerint: egyoperandusú operátorok (pl.:
RészletesebbenProgramozási technológia
Programozási technológia Generikus osztályok Gyűjtemények Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Generikus osztályok Javaban az UML paraméteres osztályainak a generikus (sablon) osztályok felelnek
RészletesebbenC# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18
C# Nyelvi Elemei Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 1 / 18 Tartalomjegyzék 1 Object 2 Típusok 3 String 4 RegEx Tóth Zsolt (Miskolci Egyetem) C# Nyelvi
RészletesebbenJava 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észletesebbenJava programozási nyelv 6. rész Java a gyakorlatban
Java programozási nyelv 6. rész Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október A Java programozási nyelv Soós Sándor 1/16 Tartalomjegyzék
RészletesebbenAbstract osztályok és interface-ek. 7-dik gyakorlat
Abstract osztályok és interface-ek 7-dik gyakorlat Abstract metódusok és osztályok Az OO fejlesztés során olyan osztályokat is kialakíthatunk, melyeket csak továbbfejlesztésre, származtatásra lehet használni,
RészletesebbenGenerikus osztályok, gyűjtemények és algoritmusok
Programozási, gyűjtemények és algoritmusok bejárása Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 bejárása 2 bejárása 2 Java-ban és UML-ben bejárása Az UML-beli paraméteres osztályok a Java
RészletesebbenProgramozási technológia I 1. gyakorlat. A Java nyelvi alapjai, a NetBeans környezet
Eötvös Loránd Tudományegyetem Informatikai Kar Programozási technológia I 1. gyakorlat A Java nyelvi alapjai, a NetBeans környezet 2012.02.16. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
RészletesebbenGlobá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észletesebbenOperá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észletesebbenProgramozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked
RészletesebbenKé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észletesebbenA 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észletesebbenMechatronika é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észletesebbenFelhasználó által definiált adattípus
Felhasználó által definiált adattípus C++ Izsó Tamás 2017. február 24. Izsó Tamás Felhasználó által definiált adattípus/ 1 Irodalom Izsó Tamás Felhasználó által definiált adattípus/ 2 Programtervezési
RészletesebbenSzéchenyi István Egyetem. Programozás III. Varjasi Norbert
Programozás III. Varjasi Norbert varjasin@sze.hu 1 A Java nyelv fő jellemzői Egyszerű Objektumorientált Elosztott Robusztus (hibatűrő, megbízható): Biztonságos Hordozható Architektúra-független (gépfüggetlen):
RészletesebbenKifejezések. Kozsik Tamás. December 11, 2016
Kifejezések Kozsik Tamás December 11, 2016 Kifejezések Lexika Szintaktika Szemantika Lexika azonosítók (változó-, metódus-, típus- és csomagnevek) literálok operátorok, pl. + zárójelek: (), [], {},
RészletesebbenSZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS
SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS 2.ELŐADÁS A VB programozási nyelv Az Excel programozása 2 A VB programozási nyelv Adattípusok Adatok kezelése Vezérlőszerkezetek Adattípusok és műveletek Egész adattípusok
RészletesebbenProgramozá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észletesebbenA Java és a C++ összehasonlítása
A Java és a C++ összehasonlítása 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) A Java és a C++
RészletesebbenOccam 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észletesebben1. 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észletesebben7. K: JAVA alapok Konzultáció
Objektum Orientált Programozás 7. K: JAVA alapok Konzultáció 35/1B IT MAN B IT v: 2017.05.03 MAN Hiba, biztonságos program 01. Szintaktikai hiba imt i = 0; system.out.println( alma ); for (int i = 0, i
RészletesebbenJava adattípusok Java programozás alapjai Egyszerű adattípusok (int, float) Osztályokkal objektumok Nincs külön mutató, referencia, címe operátor, helyette: objektumok csak dinamikusan hozhatok létre és
RészletesebbenJava VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1
Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum
RészletesebbenVezérlési szerkezetek
Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását
RészletesebbenBánsághi Anna anna.bansaghi@mamikon.net
ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 2. ELŐADÁS - C# ÁTTEKINTÉS - 2 2015 Bánsághi Anna 1 of 64 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 64
RészletesebbenMi a különbség az extends és az implements között. Mikor melyiket kell használni? Comperable-t megvalósító oasztályokban össze lehet hasonlitani
Mi a legabsztraktabb típus a JAVA-ban? Object Mikor preferált interface-ek használata a konkrét típusok helyett? Ha egy osztály több interfacet is használhasson, vagy ha fvek implementálását a az osztályra
RészletesebbenAdatszerkezetek é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