Programozás Alapjai 2.

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

Download "Programozás Alapjai 2."

Átírás

1 Programozás Alapjai 2. A C alapú nyelvek alapjai, keretrendszer elvű felépítés, a Visual C# nyelv alapjai Kis Balázs

2 .NET keretrendszer I. A.Net keretrendszer ötlete visszanyúlik egészen a Windows 2000 idejéig. Mikor is rájöttek, hogy az új kernel alapú operációsrendszerekben érdemesebb lenne egy dinamikus futtatókörnyezetet kialakítani, az addigi natív futtatás helyett. Az ötlet nem volt új keletű, a Java programozási nyelv ekkor már régen alkalmazta a technológiát. Kis Balázs 2

3 .NET keretrendszer II. A rendszer létrejöttével leegyszerűsödtek addig igen komplikált funkciók: Frissítés Az új.net alapú rendszer frissítéséhez nem kell a rendszermagban, vagy a rendszerben jelentősen módosítani. Fordítás Mikor egy programot fordít a rendszer, nem kell a külső forrásokat is a programba fordítani (mint pl.: Borland Delphi esetén) hiszen az a gépen van. Kis Balázs 3

4 .NET keretrendszer III. Így a.net keretrendszerben fejlesztett program bármilyen rendszeren képes futni, ahol a keretrendszer telepítve van. Ezzel elérhető a platform függetlenség Hiszen a program nem végleges kódot, hanem úgynevezett köztes nyelven írt kódot tartalmaz, mely már ellenőrzött, szintaktikailag helyes, és a keretrendszer tudja továbbfordítani a program elindításakor. A keretrendszer pedig akár több operációs rendszeren is működhet. Kis Balázs 4

5 Köztes nyelv Köztes nyelvnek nevezzük azt a nyelvet, mely alapján a keretrendszer elvű programozási technológiák létrehozzák a végleges programot. IL, CIL, MSIL Intermediate Language Common Intermediate Language Microsoft Intermediate Language Kis Balázs 5

6 Programfordítási folyamat II. Természetesen mivel a programunk nem végleges kódot tartalmaz a felhasználó gépének a feladata előállítani a natív, futtatható kódot. Ez természetesen több energiát igényel és időveszteség is felléphet indítás közben. Azonban a fordító megjegyzi, hogy melyik részek lettek lefordítva a kódból, így ha újra arra a részre van szükség, azt már nem kell újra lefordítani. Kis Balázs 6

7 Ismerkedés a Visual C# nyelvvel Keretrendszerek működése, C nyelvi alapok Kis Balázs 7

8 Nyelvi alapok A Visual C# alapvetően egy Objektum orientált C alapú nyelv, melyet a Microsoft fejleszt. A C nyelvhez hasonlóan itt is az elsődleges alapszabály, hogy minden egyes parancs lezárásaként ; -t kell rakni. Amennyiben elmarad nem fordul le a program, mivel nem értelmezhető az. Kis Balázs 8

9 Operátorok I. A nyelvben a C nyelvben használatos operátorok használatosak: Értékadás <változó> = <érték> Érték tesztelés Egyenlő-e <változó> == <érték> Nem egyenlő-e <változó>!= <érték> Kisebb-e, nagyobb-e <változó> < <érték>, <változó> > <érték> Kisebb, vagy egyenlő, nagyobb, vagy egyenlő <változó> <= <érték>, <változó> >= <érték> Kis Balázs 9

10 Operátorok II. Mindezek mellett sok egyszerűsítés is adott a nyelvben: Algoritmusban láthattuk, hogyan kell értéket növelni, vagy csökkenteni (c := c + 1, c := c - 1) c++; c--; ++c; --c; Különbség a két parancs között a műveleti sorrend: c = 2; d = c++; d = 2, c = 3 d = ++c; d = 4, c = 4 Kis Balázs 10

11 Operátorok III. Ha nem eggyel szeretnénk a változó értékét növelni, vagy csökkenteni (c := c + 5, c := c - 5) c += 5; c -= 5; Ugyan így a többi matematikai alapművelet is elvégezhető c *= 3; c /= 2; Természetesen mindegyikre igaz, hogy az algoritmusban alkalmazott formula is használható: c += 5; c = c + 5; c *= 3; c = c * 3; Kis Balázs 11

12 Operátorok IV. Természetesen logikai műveletekhez is tartoznak logikai operátorok: És kapcsolat: && a jelölése Vagy kapcsolat: a jelölése Not jelölése:! Kis Balázs 12

13 Típusok Ahogy már láthattuk Pszeudokódban minden változónak meg van adva még deklarációnál, hogy milyen típusú értéket tárolhat. Mivel a Visual C# is szigorúan típusos nyelv, így itt is kötelezően be kell tartani a típusdeklarációkat, így pl.: egy szám értéket tároló változó nem képes egy szöveges típust eltárolni. Kis Balázs 13

14 Típusok Visual C#-ban Primitív típusok: Karakter tárolására alkalmas primitív típus char Szöveg tárolására alkalmas primitív típus string Egész szám tárolására alkalmas primitív típus byte (2 8 ) int (2 32 ) - ~ ~ Nagy szám tárolására: long (2 64 ) Tizedes tört tárolására alkalmas primitív típus float (7 számjegyes tizedes törtig) Nagyobb pontosság esetén: double (15-16 számjegyes tizedes törtig) Kis Balázs 14

15 Konstans és változó Mivel szigorúan típusos nyelv, így minden egyes használatban lévő tárolót, változót előre definiálni kell: Konstans deklaráció: const int konstans = 0; Szabványosan: const <típus> <név> = érték; Változó deklaráció: int i; Szabványosan: <típus> <név>; Opcionálisan azonnal adható a változónak érték is: int i = 5; Kis Balázs 15

16 Tömb és mátrix Tömböt és mátrixot C# környezetben a következőképpen tudunk deklarálni: Tömb deklarálása: int[] tomb = new int[20]; <típus>[] <név> = new <típus>[<tömbméret>]; Mátrix deklarálása: 2 dimenziós tömb: int[,] tomb = new int[20,10]; 3 dimenziós tömb: int[,,] tomb = new int[20,10,30]; Kis Balázs 16

17 Jelölések Mint a legtöbb programnyelvben itt is, kötelezően jelölni kell az egyes típusok értékeit, különben összeolvadna a programkóddal értelmezhetetlenné téve azt. Szöveg (string) jelölése: szöveg Karakter (char) jelölése: c Lebegőpontos (float) jelölése: 3.7F Mivel az F jelzi, hogy a pontosság nem double Kis Balázs 17

18 Típus konverziók I. A szigorú típusossághoz az is hozzájárul, hogy két típus között nem feltétlenül egyértelmű a konverzió pl.: string a = 23 ; int b = a; Ez így hibás, hiszen string típusú anyagot akarunk int változóba átvenni. A szöveg és a számok között például nem egyértelmű a konverzió. Kis Balázs 18

19 Típus konverziók II. Amikor két primitív típus közti átmenet nem implicit, az külön konvertálást igényel, hogy az egyik típusú adatból a másik típust elérjük. Visual C#-ban minden konvertálást a Convert osztály segítségével tudunk majd végrehajtani. Az előző példán bemutatva: string a = 23 ; int b = Convert.ToInt32(a); Kis Balázs 19

20 Kommentezés Lehetőségünk van a programban elhelyezni magyarázatokat, kommenteket. Egy sor kommentezése: //Ez egy sornyi komment Több sor kommentezése: /*Ez egy többsoros komment*/ Kis Balázs 20

21 Programozás megkezdése Első program elkészítése, konzol használata, nyelv megismerése Kis Balázs 21

22 Első program elkezdése I. Mikor Visual Studio-ban fejlesztünk, 2 fontos fogalommal találjuk magunkat szembe, melyet a Microsoft fejlesztői, kényelmi, csoportos fejlesztési szempontokat figyelembe véve hoztak létre: Solution Project Mára szinte mindegyik modern fejlesztőkörnyezet, IDE (Integrated Development Environment) támogat hasonló szintű felosztást. Kis Balázs 22

23 Solution vs. Project I. Project Olyan részegység, mely egy bizonyos feladatot lát el egy programcsomagon belül. Ilyen lehet például egy önálló program is, de akár egy a projektek között megosztott osztálykönyvtár is. Kis Balázs 23

24 Solution vs. Project II. Solution Olyan egybefoglaló egység, mely alá több project tartozhat. Valójában a moduláris programozás egy modern kivitelezése, miszerint minden programozó(csoport) megkap egy kisebb project-et a teljes programból, melyeket a fejlesztés során folyamatosan egymás mellett lehet kialakítani. Ezzel az elkészítési időt és hatékonyságot is javítva. Kis Balázs 24

25 Első program elkezdése II. Természetesen egy Solution csak akkor indulhat el, ha minimum egy Project szerepel benne, így nekünk is New Project menüvel kell kezdjük programunk fejlesztését. Mikor kiválasztjuk ezt a menüt (File New Project ) felugrik egy ablak mely a Project, Solution beállításait végzi el. Kis Balázs 25

26 Feladat I. Hozzunk létre egy FirstProgram nevű Solution-t és egyben Project-et is, mely egy Console Application legyen. Figyeljük meg, hogy mit hozott létre a program. Solution Explorerben Alap programkódban Fájl szinten Kis Balázs 26

27 Console használata I. A konzol alapú programozás esetén, a programnak a régi Pascal-os időkből ismeretes kinézete lesz, így tehát Console Application esetén kizárólag egy konzol áll rendelkezésünkre, hogy tartsuk a felhasználóval a kapcsolatot. Kisebb, nem kifejezettem felhasználói programok, vagy kiszolgáló alkalmazások megírásához a mai napig hasznos lehet. Kis Balázs 27

28 Console használata II. A Console-ban alapvetően két dolgot tudunk megtenni beolvasni és kiírni: Beolvasni tudunk a felhasználótól adatokat Kiírni pedig eredményeket, vagy felszólításokat. Minden Console műveletet a Console osztállyal tudunk elérni Beolvasás: Console.ReadLine(); Kiíratás: Console.WriteLine( Szöveg ); Kis Balázs 28

29 Feladat II. Az előzőek alapján készítsük el első programunkat Visual C#- ban! Írassuk ki konzolban, hogy Helló Világ! ; Futtassuk a programot! Mit tapasztalunk? Megoldás: A Console egészen addig fut, amíg végrehajtandó feladat maradt, vagy felhasználói interakcióra várunk. Így a kód végére szúrjunk be egy Console.ReadKey();-t Kis Balázs 29

30 Feladat III. Módosítsuk a programot úgy, hogy azt írja ki, hogy kérek egy számot, majd ugyan azt a számot írjuk vissza a képernyőre! Tipp: Minden beolvasott anyag, alapvetően string. Kis Balázs 30

31 Feladat IV. Újra módosítsuk a programot úgy, hogy a visszaadott érték ne a szám legyen, hanem annak a négyzete (mint az algoritmusos feladatban) Tipp: A négyzet kiszámolására több eszközünk is van: szám*szám Math.Pow(szám,hatvány); Kis Balázs 31

32 Elágazások I. Hasznuk ugyan az mint algoritmusokban. Pl.: if (a < b) { Console.WriteLine( A b nagyobb! ); } else { Console.WriteLine( Az a nagyobb! ); } Kis Balázs 32

33 Feladat V. Készítsünk programot, mely ha páros számot kap, akkor a négyzetét, ha páratlan számot, a köbét adja vissza! Tipp: Maradékos osztást a % jel segítségével tudunk végeztetni pl.: 5%3=2 Kis Balázs 33

34 Elágazások II. Az értékszerinti többszörös elágazás egy speciális elágazás, mely több opciót szolgáltat: Pl.: int a = 10; switch(a) { case 1: Console.WriteLine( egy ); break; case 10: Console.WriteLine( tíz ); break; default: Console.WriteLine( nem tudom ); break; } Kis Balázs 34

35 Feladat VI. Készítsünk programot, mely bekér egy jegyet és visszaadja a magyar iskolarendszerben használt szöveges értéket! 1 elégtelen 2 elégséges 3 közepes 4 jó 5 jeles Kis Balázs 35

36 Ciklusok A ciklusok ugyan úgy iterálásra szolgálnak Visual C#-ban is, mint algoritmusban. A ciklusoknak itt is több típusa létezik: Elöl tesztelős ciklus Hátul tesztelős ciklus Számlálós ciklus Bejáró ciklus (speciális) Kis Balázs 36

37 Elöl tesztelős ciklus (WHILE) Az elöl tesztelős ciklus működése úgy zajlik, hogy előbb megnézi, hogy igaz-e a feltétel amit adtunk neki, majd ha igen, akkor belép a ciklusmagba. Ezt egészen addig csinálja, amíg teljesül a feltétel. Pl.: int i = 0; while (i < 10) { i++; } Console.WriteLine(i); Kis Balázs 37

38 Hátul tesztelős ciklus (DO WHILE) Működése hasonló az elöl tesztelős ciklushoz, mindössze a vizsgálat helye különbözik, ugyanis a hátul tesztelős ciklus először lefut majd ellenőrzi, hogy igaz-e még a feltétel. Pl: int i = 0; do { i++; Console.WriteLine(i); } while (i < 10); Kis Balázs 38

39 Számlálós ciklus (FOR) A számlálós ciklus működése is hasonló a while ciklushoz, azonban ebben az esetben a ciklusváltozót maga a ciklus vezeti. Pl.: for (int i = 1; i <= 10; i++) { Console.WriteLine(i); } Kis Balázs 39

40 Bejáró ciklus (FOREACH) A bejáró ciklus egy speciális ciklus, mivel nem minden programozási nyelvben található meg, illetve a használata sem egységes a nyelvekben. Használni csak és kizárólag olyan adatszerkezeteken tudjuk, amelyek bejárhatók, mint pl.: egy tömb. Pl.: foreach (int elem in <adatszerkezet>) { Console.WriteLine(elem); } Kis Balázs 40

41 Feladat VII. Készítsünk programot amely bekér 5 számot egymás után, és kiírja a számok összegét és szorzatát. Kis Balázs 41

42 Programozási tételek Alapvető algoritmusok Kis Balázs 42

43 Programozási tételek I. A programozásban a legfőbb cél az, hogy a lehető legoptimálisabban hajtsuk végre az adott feladatokat. Ez a cél még a régebbi időkből maradt meg, de manapság is célnak lehet venni. Manapság már elmondható, hogy a szoftvergyártó cégek alapvetően nem feltétlenül erre törekednek. 640KB memória mindenre elég Kis Balázs 43

44 Programozási tételek II. A programozásban persze az is relatív, hogy mi számít optimalizáltnak és mi nem, hiszen, már azzal is lehet javítani az optimalizáltságot ha ugyan azt a programot adott rendszerre másik programfejlesztési technika, vagy másik környezet segítségével implementáljuk. Így definiálni kell, hogy pontosan mit értünk optimális szoftver alatt. Kis Balázs 44

45 Programozási tételek III. Optimális program ismérvei: Az adott feladat megoldásához a lehető legkevesebb memóriát használ. Nincsenek benne fölöslegesen futó részek. A program a többi erőforrásból is csak annyit használ, amennyi feltétlen szükséges a futásához. Mára természetesen a számítógépek magas teljesítménye miatt ezek tág korlátok lettek. Kis Balázs 45

46 Programozási tételek IV. Az optimalizáltság megtartása érdekében, matematikusok és programozók, kisebb, de annál fontosabb és gyakoribb feladatokra, a lehető legoptimálisabb, bármely nyelvbe implementálható, általános algoritmusokat hoztak és folyamatosan hoznak létre. Ezeket az algoritmusokat nevezzük programozási tételeknek. Kis Balázs 46

47 Programozási tételek V. Alapvető programozási tételek: Maximum/Minimum kiválasztás Átlag számítás Kiválasztás Szétválogatás Lineáris keresés Bináris keresés Eldöntés Megszámlálás Kis Balázs 47

48 Maximum kiválasztás A maximum kiválasztás tétele, egy tömbből kiválasztja a maximumot. Előfeltétel: Létezik egy tetszőleges, de összehasonlítható adatokkal feltöltött tomb nevű tömb és elemszáma egy n nevű változóban van tárolva. max, i : egész max := 1 Ciklus i := 2-től n-ig Ha tomb[max] < tomb[i] akkor max := i EV. CV. Kis Balázs 48

49 Minimum kiválasztás A minimum kiválasztás tétele, egy tömbből kiválasztja a minimumot. Előfeltétel: Létezik egy tetszőleges, de összehasonlítható adatokkal feltöltött tomb nevű tömb és elemszáma egy n nevű változóban van tárolva. min, i : egész min := 1 Ciklus i := 2-től n-ig Ha tomb[min] > tomb[i] akkor min := i EV. CV. Kis Balázs 49

50 Átlagszámítás Az átlag számítás tétele, egy tömbből képes kiszámolni az átlagot. Előfeltétel: Létezik egy számokkal feltöltött tomb nevű tömb és elemszáma egy n nevű változóban van tárolva. atlag : valós i : egész atlag := 0 Ciklus i := 1-től n-ig atlag := atlag + tomb[i] CV. atlag := atlag / n Kis Balázs 50

51 Kiválasztás A kiválasztás tétel, egy bizonyos feltételnek elsőnek eleget tevő elemet választ ki a tömbből. Előfeltétel: Létezik egy tetszőleges, de összehasonlítható adatokkal feltöltött tomb nevű tömb és elemszáma egy n nevű változóban van tárolva, illetve adott egy T feltétel. elem, i : egész i := 1 Ciklus amíg i <= n ÉS NEM(T feltétel) i := i + 1 CV. Ha i <= n akkor elem := tomb[i] EV. Kis Balázs 51

52 Lineáris keresés A kiválasztáshoz hasonló tétel, mindösszesen a pozíciót mondja meg, hol található az elem. Előfeltétel: Létezik egy tetszőleges, de összehasonlítható adatokkal feltöltött tomb nevű tömb és elemszáma egy n nevű változóban van tárolva, illetve adott egy T feltétel. index, i : egész i := 1 Ciklus amíg i <= n ÉS NEM(T feltétel) i := i + 1 CV. Ha i <= n akkor index := i EV. Kis Balázs 52

53 Eldöntés Csak úgy ahogy a lineáris keresés, és a kiválasztás tétele, ez is egy elemet keres a sorozatban, azonban csak megmondja, hogy létezik-e az elem. Előfeltétel: Létezik egy tetszőleges, de összehasonlítható adatokkal feltöltött tomb nevű tömb és elemszáma egy n nevű változóban van tárolva, illetve adott egy T feltétel. i : egész van : logikai van := hamis i := 1 Ciklus amíg i <= n ÉS NEM(T feltétel) i := i + 1 CV. van := i <= n Kis Balázs 53

54 Szétválogatás A szétválasztás tétele, egy tömb elemeit szeparálja egy bizonyos feltétel szerint. Előfeltétel: Létezik egy tetszőleges, de összehasonlítható adatokkal feltöltött tomb nevű tömb és elemszáma egy n nevű változóban van tárolva, illetve adott egy T feltétel. a, b, i : egész atomb : egész[1..n] btomb : egész[1..n] a := 1 b := 1 Ciklus i := 1-től n-ig Ha (T feltétel igaz tomb[i]-re) akkor atomb[a] := tomb[i] a := a + 1 Különben btomb[b] := tomb[i] b := b + 1 EV. CV. Kis Balázs 54

55 Bináris keresés I. Más néven Logaritmikus keresés Olyan keresési metódus, mely folyamatosan felezi az intervallumot, ezzel közelítve az értéket. Fontos, hogy a tömbnek rendezettnek kell lennie, mivel a rendezettség alapelve a keresési metódusnak. A keresést úgy végzi el, hogy megfelezi az intervallumot, majd megnézi, hogy melyik fél intervallumba esik az érték, majd amelyikbe esik, azt újrafelezi Kis Balázs 55

56 Bináris keresés II. Előfeltétel: Létezik egy tetszőleges, de összehasonlítható adatokkal feltöltött rendezett tomb nevű tömb és elemszáma egy n nevű változóban van tárolva, illetve létezik egy keresett nevű érték, melyben a keresett érték szerepel. e, u, k, index : egész e := 1 u := n Ciklus k := [(e + u) / 2] Ha tomb[k] < keresett akkor e := k + 1 Különben Ha tomb[k] > keresett akkor u := k 1 EV. Amíg (e <= u) ÉS (keresett <> tomb[k]) Ha e <= u akkor index := k EV. Kis Balázs 56

57 Megszámlálás Megszámolja, hogy hány előfordulása van egy tömbben egy bizonyos feltételnek eleget tevő értéknek. Előfeltétel: Létezik egy tetszőleges, de összehasonlítható adatokkal feltöltött tomb nevű tömb és elemszáma egy n nevű változóban van tárolva, illetve adott egy T feltétel. ossz : egész ossz := 0 Ciklus i := 1-től n-ig akkor Ha (T feltétel igaz tomb[i]-re) akkor ossz := ossz + 1 EV. CV. Kis Balázs 57

58 Programozási tételek VI. Természetesen ezek az alapvető programozási tételek, ezeken kívül még igen sok tétel létezik. Kis Balázs 58

59 Feladat VIII. Készítsünk programot, mely bekér egy számot, majd annyi nevet és jegyet kér be, amennyit beírtunk. Ezeket letárolja és kiírja a képernyőre az átlagot, illetve kiírja a képernyőre a legjobb és a legrosszabb jegy tulajdonosát. Kis Balázs 59

60 Feladat IX. Írjunk programot, amely bekér neveket egymás után és a következőkre válaszol: Hány M betűvel kezdődő név van Van-e Jakab nevű ember A program keresse meg az első M betűvel kezdődő nevet, és az előtte lévőket válogassa ki egy külön tömbbe, az utána lévőket ugyancsak. Kis Balázs 60

61 Feladat X. A Lineáris keresés és a Bináris keresés egymáshoz képest más lefutási idővel rendelkezik. Írjunk programot, mely egy rendezet tömböt tartalmaz, és futtatja mindkét keresést rajta ugyan arra az elemére. A program számolja meddig fut a két keresés. Tipp Stopwatch osztály Kis Balázs 61

62 Procedurális programozás A Procedurális programozási technika tulajdonságai, használata. Kis Balázs 62

63 Procedurális programozás A Procedurális programozás, egy a szoftverkrízis után kifejlődött programozási technika, mely elősegítette a szoftver termékek minőségének emelését, illetve az újrahasznosíthatóságot is. Elmélete alapján, a programot kisebb alprogramok (metódusok és funkciók) építik fel, melyek egymástól különállóan vannak implementálva, azonban együttes működésük adja a szoftver működését. Kis Balázs 63

64 Metódus Olyan különálló programblokk, mely műveleteket végez a beadott paraméterek alapján. Pl.: A WriteLine egy olyan metódus, ami kiír valamit a konzolra Kis Balázs 64

65 Metódusok C#-ban C#-ban az alábbiak szerint épülnek fel a metódusok: void <metódusneve>(<paraméterek>) { //programkód.. } Pl.: void OsszeadesKiir(int szam1, int szam2) { Console.WriteLine(szam1 + szam2); } Kis Balázs 65

66 Funkció Olyan különálló programblokk, mely műveleteket végez a beadott paraméterek alapján, majd valamilyen típusú visszatérési értékkel térnek vissza. Fontos, hogy szigorúan típusos nyelvek esetén mindig kell visszatérése legyen egy funkciónak. A fejlesztőkörnyezet, addig nem hajlandó fordítani a programot, míg nincs minden esetben visszatérési érték. Kis Balázs 66

67 Funkciók C#-ban C#-ban az alábbiak szerint épülnek fel a funkciók: <visszatérési típus> <funkcióneve> (<paraméterek>) { //programkód és visszatérés } Pl.: int Osszead(int szam1, int szam2) { return szam1 + szam2; } Kis Balázs 67

68 Metódusok és Funkciók I. A fejlesztés során megírt funkcióinkat könnyedén használhatjuk a program futása során az alábbi szabályok szerint: A meghíváskor, minden esetben kell () a függvény, vagy metódus végére, még akkor is ha nincs paraméter! Pl.: Az előző Osszead funkció használata gyakorlatban: Console.WriteLine(Osszead(3,6)); int szamom = Osszead(3,6); Kis Balázs 68

69 Metódusok és Funkciók II. Természetesen, metódusoknak nincs visszatérési értékük, így azokat ily módon nem használhatjuk. Metódusokat olyan esetben használjuk, mikor nincs szükségünk visszajelzésre a lefuttatott programkód után. Kis Balázs 69

70 Feladat XI. Készítsünk funkciót, mely a négy matematikai alapműveletet képes végrehajtani két szám között. Készítsünk programot, mely bekér 2 számot és a műveletet, majd elvégezteti a funkcióval azt, és kiírja az eredményt a képernyőre. Kis Balázs 70

71 Feladat XII. Készítsünk funkciót, mely bekér egy szöveget, melyet ékezetmentessé alakít. Kis Balázs 71

72 Rekurzió I. Ahhoz, hogy megértsük a rekurziót, előbb meg kell értenünk a rekurziót. A rekurzió olyan alprogramhívás, mely során az alprogram saját magát hívja meg egy bizonyos feltétel szerint. Ez egészen addig megy, míg egy bizonyos feltétel ki nem ugrasztja a meghívási körből. Valamilyen feltételre szükség van, különben mindig visszahívná önmagát. Általában a paraméter(ek) értéke(i) változik. Kis Balázs 72

73 Rekurzió II. Példa: <visszatérési típus / void> <alprogramneve>(<paraméterek>) { //programkód <alprogramneve>(<paraméterek>); } Valójában olyan, mint egy alprogramhívásokkal összerakott ciklus. Használata hasznos lehet egyes esetekben, mikor ciklussal túlságosan körülményes lenne megoldani egyes feladatokat. Pl.: Fibonacci számsorozat egy elemének megadása. Kis Balázs 73

74 Rekurzió III. A rekurzió megjelenik a grafikában is. A fraktálok rekurzív grafikai alakzatok: Kis Balázs 74

75 Feladat XIII. Készítsünk rekurzív funkciót, mely a Fibonacci számsorozat n-dik elemét képes visszaadni. Tipp: Fibonacci számsornak hívjuk azt a számsort, melynek minden eleme az előző két elem összege. Tehát a Fibonacci n- edik eleme az n-1 és az n-2 elemek összege. 1,1,2,3,5,8,13,21,34,55,89 Kis Balázs 75

76 Önállófeladat Készítsünk programot, mely képes autókat rendszámuk alapján letárolni, illetve hozzájuk tartozó állapot értéket (0..100) A rendszerbe lehessen őket felvinni kézileg A végén adja meg, hogy melyik autó van a legrosszabb állapotban. A számítást egy funkció végezze el! Kis Balázs 76

C# tanfolyam I. A.Net keretrendszer, programozási technikák és alapismeretek. Kis Balázs

C# tanfolyam I. A.Net keretrendszer, programozási technikák és alapismeretek. Kis Balázs C# tanfolyam I. A.Net keretrendszer, programozási technikák és alapismeretek .Net keretrendszer I. A.Net keretrendszer ötlete visszanyúlik egészen a Windows 2000 idejéig. Mikor is rájöttek, hogy az új

Részletesebben

A C# programozási nyelv alapjai

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

Részletesebben

A C# PROGRAMOZÁSI NYELV

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Bánsághi Anna 2014 Bánsághi Anna 1 of 68 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 3. ELŐADÁS - PROGRAMOZÁSI TÉTELEK 2014 Bánsághi Anna 1 of 68 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

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

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK, Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás OE-NIK, 2013 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk

Részletesebben

INFORMATIKA javítókulcs 2016

INFORMATIKA javítókulcs 2016 INFORMATIKA javítókulcs 2016 ELMÉLETI TÉTEL: Járd körbe a tömb fogalmát (Pascal vagy C/C++): definíció, egy-, két-, több-dimenziós tömbök, kezdőértékadás definíciókor, tömb típusú paraméterek átadása alprogramoknak.

Részletesebben

Programozás alapjai 9.Gy: Struktúra 2.

Programozás alapjai 9.Gy: Struktúra 2. Programozás alapjai 9.Gy: Struktúra 2. Ördögi részletek P R O A L A G 35/1 B ITv: MAN 2018.11.10 Euró árfolyam statisztika Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR).

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

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

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

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

Részletesebben

1. 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! 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észletesebben

Felvételi tematika INFORMATIKA

Felvételi tematika INFORMATIKA Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.

Részletesebben

Szoftvertervezés és -fejlesztés I.

Szoftvertervezé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észletesebben

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

Internet programozása. 3. előadás Internet programozása 3. előadás Áttekintés Hogyan használjuk az if szerkezetet arra, hogy bizonyos sorok csak adott feltételek teljesülése mellett hajtódjanak végre? Hogyan adhatunk meg csak bizonyos

Részletesebben

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

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 8. előadás Visszatekintés A Windows Console alkalmazások egy karakteres képernyőt biztosítottak, ahol a kimenet a kiírt szöveg, míg a bemenet a billentyűzet volt.

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

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok. Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 4. előadás Procedurális programozás: iteratív és rekurzív alprogramok Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 3. gyakorlat Tömbök, programozási tételek Surányi Márton PPKE-ITK 2010.09.21. ZH! PlanG-ból papír alapú zárthelyit írunk el reláthatólag október 5-én! Tömbök Tömbök Eddig egy-egy

Részletesebben

Algoritmizálás + kódolás C++ nyelven és Pascalban

Algoritmizálás + kódolás C++ nyelven és Pascalban Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb 1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb #include main() { int a, b; printf( "a=" ); scanf( "%d", &a ); printf( "b=" ); scanf( "%d", &b ); if( a< b ) { inttmp = a; a =

Részletesebben

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Mit 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észletesebben

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"

Részletesebben

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

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

Részletesebben

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 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. 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észletesebben

Java II. I A Java programozási nyelv alapelemei

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

Részletesebben

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

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok 6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok 1. feladat: Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR). Írjon C programokat az alábbi kérdések

Részletesebben

Mintavételes szabályozás mikrovezérlő segítségével

Mintavé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észletesebben

Maximum kiválasztás tömbben

Maximum kiválasztás tömbben ELEMI ALKALMAZÁSOK FEJLESZTÉSE I. Maximum kiválasztás tömbben Készítette: Szabóné Nacsa Rozália Gregorics Tibor tömb létrehozási módozatok maximum kiválasztás kódolása for ciklus adatellenőrzés do-while

Részletesebben

Objektum Orientált Programozás VII.

Objektum Orientált Programozás VII. Objektum Orientált Programozás VII. Összetett programozási tételek Programozási tételek összeépítése Feladatok ÓE-NIK, 2011 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk

Részletesebben

Programozás alapjai 8.Gy: Program struktúra

Programozás alapjai 8.Gy: Program struktúra Programozás alapjai 8.Gy: Program struktúra Elvarázsolt matekóra P R O A L A G 32/1 B ITv: MAN 2018.11.02 Programozás történelem Kezdetben egy program egyetlen kódsorozat volt (ún. monolitikus program)

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

Vezérlési szerkezetek

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

Részletesebben

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió BME MOGI Gépészeti informatika 3. 1. feladat Végezze el a következő feladatokat! Kérjen be számokat 0 végjelig, és határozza meg az átlagukat! A feladat megoldásához írja meg a következő metódusokat! a.

Részletesebben

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

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

Részletesebben

Programozási alapismeretek 3.

Programozási alapismeretek 3. Programozási alapismeretek 3. Szöveges fájlok kezelése, Szöveges funkciók, a PHP nyelv alapjai Kis Balázs Fájlkezelés Szöveges fájlok kezelése Kis Balázs 2 Fájlkezelés I. A legtöbb program használ fájlokat

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek középszint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM

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

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

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

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

Részletesebben

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

Algoritmusok, adatszerkezetek, objektumok

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

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek középszint 0811 ÉRETTSÉGI VIZSGA 2008. május 26. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI ÉS KULTURÁLIS MINISZTÉRIUM

Részletesebben

Objektumorientált Programozás V.

Objektumorientált Programozás V. Objektumorientált Programozás V. A Microsoft Visual Studio 2010 használata Műveletek tömbökkel Érték- és referenciatípusú változók Feladatok 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok,

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Bánsághi Anna 2014 Bánsághi Anna 1 of 33 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 7. ELŐADÁS - ABSZTRAKT ADATTÍPUS 2014 Bánsághi Anna 1 of 33 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

Részletesebben

10. gyakorlat Tömb, mint függvény argumentum

10. gyakorlat Tömb, mint függvény argumentum 10. gyakorlat Tömb, mint függvény argumentum 1. feladat: A 6. gyakorlat 1. feladatát oldja meg a strukturált programtervezési alapelv betartásával, azaz minden végrehajtandó funkciót külön függvényben

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

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki. Számítás:. Olvassuk be két pont koordinátáit: (, y) és (2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki. 2. Olvassuk be két darab két dimenziós vektor komponenseit: (a, ay) és (b, by). Határozzuk

Részletesebben

OOP: Java 1.Gy: Java alapok

OOP: 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észletesebben

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai Kémiai elemek felfedezése A kémiai elemek kémiailag tovább már nem bontható, egyszerű anyagok. Jelenleg 118 különböző kémiai elemet ismerünk, közüliik a Földön 94 található meg a természetben, ezeket természetes

Részletesebben

BME MOGI Gépészeti informatika 5.

BME MOGI Gépészeti informatika 5. BME MOGI Gépészeti informatika 5. 1. feladat Készítsen alkalmazást, mely feltölt egy egydimenziós tömböt adott tartományba eső, véletlenszerűen generált egész értékekkel! Határozza meg a legkisebb és a

Részletesebben

Készítette: Nagy Tibor István

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

Részletesebben

Objektum Orientált Programozás V.

Objektum Orientált Programozás V. Objektum Orientált Programozás V. A Microsoft Visual Studio 2010 használata Műveletek tömbökkel Érték- és referenciatípusú változók Feladatok 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok,

Részletesebben

Programozás III A JAVA TECHNOLÓGIA LÉNYEGE. Többlépcsős fordítás JAVA PLATFORM. Platformfüggetlenség

Programozá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észletesebben

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Programozá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észletesebben

Adatbázis rendszerek Gy: Algoritmusok C-ben

Adatbázis rendszerek Gy: Algoritmusok C-ben Adatbázis rendszerek 1. 1. Gy: Algoritmusok C-ben 53/1 B ITv: MAN 2015.09.08 Alapalgoritmusok Összegzés Megszámlálás Kiválasztás Kiválasztásos rendezés Összefésülés Szétválogatás Gyorsrendezés 53/2 Összegzés

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás? Bevezetés Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések Forráskód Hibajegyzék p2p.wrox.com xiii xiii xiv xiv xvi xvii xviii

Részletesebben

Programozási nyelv Java

Programozási nyelv Java Programozási nyelv Java 1. gyakorlat Félév tematikája Bevezetés, alapok Vezérlési szerkezetek Eljárások, függvények Csomagok Tömbök, adatbevitelek Osztályok, objektumok, Interfészek Öröklődés, absztrakt

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

C# feladatok gyűjteménye

C# feladatok gyűjteménye C# feladatok gyűjteménye Készítette: Fehérvári Károly I6YF6E Informatika tanár ma levelező tagozat 1) Feladat: ALAPMŰVELETEK Készítsünk programot, amely bekér két egész számot. Majd kiszámolja a két szám

Részletesebben

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos OOP I. Egyszerő algoritmusok és leírásuk Készítette: Dr. Kotsis Domokos 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. Ismeretük

Részletesebben

Adatbázis és szoftverfejlesztés elmélet

Adatbázis és szoftverfejlesztés elmélet Adatbázis és szoftverfejlesztés elmélet Témakör 4. Összefoglalás 1. A kódolás eszközei Általános szövegszerkesztő Programozói szövegszerkesztő Fejlesztői környezet Vizuális fejlesztői környezet Általános

Részletesebben

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból ÜTEMTERV Programozás-elmélet c. tárgyhoz (GEMAK233B, GEMAK233-B) BSc gazdaságinformatikus, programtervező informatikus alapszakok számára Óraszám: heti 2+0, (aláírás+kollokvium, 3 kredit) 2019/20-es tanév

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 5. gyakorlat Surányi Márton PPKE-ITK 2010.10.05. C++ A C++ egy magas szint programozási nyelv. A legels változatot Bjarne Stroutstrup dolgozta ki 1973 és 1985 között, a C nyelvb

Részletesebben

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás Algoritmusok Tervezése 4. Előadás Visual Basic 1. Dr. Bécsi Tamás Bevezetés A BASIC (Beginner s All-purpose Symbolic Instruction Code) programnyelvet oktatási célokra hozták létre 1964-ben. Az általános

Részletesebben

Programozási alapismeretek 1. előadás

Programozási alapismeretek 1. előadás Programozási alapismeretek 1. előadás Tartalom A problémamegoldás lépései programkészítés folyamata A specifikáció Az algoritmus Algoritmikus nyelvek struktogram A kódolás a fejlesztői környezet 2/33 A

Részletesebben

Szoftvertervezés és -fejlesztés I.

Szoftvertervezés és -fejlesztés I. Szoftvertervezés és -fejlesztés I. Microsoft Visual Studio 2013 Hello C# World! Változók típusai Gyakorló feladatok Algoritmus alkotási feladatok ÓE-NIK-AII, 2017 1 Hallgatói Tájékoztató A jelen bemutatóban

Részletesebben

Szövegek C++ -ban, a string osztály

Szövegek C++ -ban, a string osztály Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string

Részletesebben

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával) Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával) I. A nyelv története C++ C (ős: B???) 1972 Ritchie AT&T Bell laboratórium UNIX 1978 Kernighan & Ritchie az első tankönyv,

Részletesebben

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget Hiányzások Ebben a feladatban egy általános iskola 2017 szeptemberi hiányzásai tartalmazó szövegfájlt kell feldolgoznia. Az adatok a szeptember.csv állomány tartalmazza. Az állomány egy sorában egy tanuló

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

PASzSz. Dr. Kotsis Domokos

PASzSz. Dr. Kotsis Domokos PASzSz Készítette: Dr. Kotsis Domokos Első témakör: Lazarus terminál alkalmazás készítése. Lazarus terminál alkalmazás készítése. Egyszerű algoritmusok leírása, megvalósítása. Free Pascal A Turbo Pascal

Részletesebben

Objektumorientált Programozás III.

Objektumorientált Programozás III. Objektumorientált Programozás III. Vezérlési szerkezetek ismétlés Matematikai lehetőségek Feladatok 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

Gyakorló feladatok az 1. nagy zárthelyire

Gyakorló feladatok az 1. nagy zárthelyire Gyakorló feladatok az 1. nagy zárthelyire 2012. október 7. 1. Egyszerű, bevezető feladatok 1. Kérjen be a felhasználótól egy sugarat. Írja ki az adott sugarú kör kerületét illetve területét! (Elegendő

Részletesebben

Kalapácsvetés 2016 szöveges

Kalapácsvetés 2016 szöveges Kalapácsvetés 2016 Ebben a feladatban a 2016. évi nyári olimpiai játékokon az atlétika férfi kalapácsvetés döntőjének eredményeit kell feldolgoznia. A döntő 6 dobási sorozatból állt, de a 3. sorozat utá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

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

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

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10. Összetett programozási tételek Sorozathoz sorozatot relő feladatokkal foglalkozunk. A bemenő sorozatot le kell másolni, s közben az elemekre vonatkozó átalakításokat lehet végezni rajta: Input : n N 0,

Részletesebben

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

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

Részletesebben

A szerzõrõl... xi Bevezetés... xiii

A szerzõrõl... xi Bevezetés... xiii TARTALOMJEGYZÉK A szerzõrõl...................................................... xi Bevezetés...................................................... xiii I. rész A Visual Basic 2005 környezet 1. óra Irány

Részletesebben

Podoski Péter és Zabb László

Podoski Péter és Zabb László Podoski Péter és Zabb László Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök előnyeit és hiányosságait Kidolgoztunk egy saját megjelenítő

Részletesebben

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

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

Részletesebben

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás Számítástechnika II. BMEKOKAA153 1. Előadás 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 Tanszék www.kjit.bme.hu A tantárgyi

Részletesebben

Algoritmizálás és adatmodellezés tanítása 1. előadás

Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az

Részletesebben

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

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

Részletesebben

1. Alapok. Programozás II

1. Alapok. Programozás II 1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph

Részletesebben

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 4. gyakorlat PLanG: 2011.10.04. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Fájlok

Részletesebben

Programozási tételek. Dr. Iványi Péter

Programozási tételek. Dr. Iványi Péter Programozási tételek Dr. Iványi Péter 1 Programozási tételek A programozási tételek olyan általános algoritmusok, melyekkel programozás során gyakran találkozunk. Az algoritmusok általában számsorozatokkal,

Részletesebben

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

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

Részletesebben

Összetett programozási tételek

Összetett programozási tételek Összetett programozási tételek 3. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. szeptember 19. Sergyán (OE NIK) AAO 03 2011. szeptember

Részletesebben