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

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

Objektumorientált Programozás VI.

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

A függvények névvel rendelkező utasításcsoportok, melyeknek információkat adhatunk át, és van egy visszatérési értékük.

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

OOP #14 (referencia-elv)

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

Alprogramok, paraméterátadás

Osztályok. 4. gyakorlat

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

Programozási nyelvek Java

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

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

C++ programozási nyelv Konstruktorok-destruktorok

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Java programozási nyelv 4. rész Osztályok II.

Objektumorientált programozás C# nyelven

Java és web programozás

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

BME MOGI Gépészeti informatika 8.

Objektumorientált programozás IX. Osztályok, objektumok

Programozási nyelvek Java

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

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

Járműfedélzeti rendszerek II. 4. előadás Dr. Bécsi Tamás

C++ programozási nyelv

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

C++ programozási nyelv Struktúrák a C++ nyelvben

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

Eljárások, függvények

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

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

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

BME MOGI Gépészeti informatika 4.

GenerikusOsztály<objektumtípus> objektum = new GenerikusOsztály<objektumtípus>();

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

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

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

Java és web programozás

Bevezetés a programozásba. 9. Előadás: Rekordok

Java és web programozás

Alkalmazott Modul III 3. előadás. Procedurális programozás: alprogramok, kivételkezelés

Informatika terméktervezőknek

Szoftvertechnolo gia gyakorlat

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Web-technológia PHP-vel

C++ programozási nyelv

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Alkalmazott Modul III 3. előadás. Procedurális programozás: alprogramok, kivételkezelés. Alprogramok Szükségessége

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

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

Programozási nyelvek Java

Objektumok inicializálása

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

JAVA PROGRAMOZÁS 2.ELŐADÁS

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

Bánsághi Anna

Objektumelvű programozás

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

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

Programozás C++ -ban

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

GYAKORLATIAS JAVA MINTA

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

Pénzügyi algoritmusok

Programozás C++ -ban 2007/7

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

Pénzügyi algoritmusok

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

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

Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás

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

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

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

Már megismert fogalmak áttekintése

Globális operátor overloading

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

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

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Java III. I I. Osztálydefiníció (Bevezetés)

Java II. I A Java programozási nyelv alapelemei

Bevezetés a Programozásba II 3. előadás. Biztonságos adattípusok megvalósítása

Java III. I I. Osztálydefiníció (Bevezetés)

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

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

INFORMATIKAI ALAPISMERETEK

Segédanyag: Java alkalmazások gyakorlat

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

C++ programozási nyelv Konstruktorok Gyakorlat

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

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

INFORMATIKAI ALAPISMERETEK

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

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

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

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Átírás:

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

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

Struktúrák Hozzáférési szintek: private csak struktúrán belülről érhető el public bárki elérheti ezt a mezőt internal programon belülről (assembly) elérhető struct pont ; public int x; public int y; 2016. 10. 19. Programozás 5. Előadás 3

Struktúrák A struktúra elemeihez hozzáférni a. struktúratag operátorral tudunk. A struktúra tag operátor a legmagasabb precedenciájú, csak a [],() zárja ki. A struktúrák esetében csak az értékadás operátort használhatjuk. A struktúrák érték típusok, értékadásnál másolás történik Pont p, p1; p = new Pont(); p.x = 1; p.y = 2; p1 = p; 2016. 10. 19. Programozás 5. Előadás 4

Függvények Bevezetés Egy idő után az egyetlen Main()függvénnyel megírt programunk túl nagy méretű lesz. Vannak programrészek, amelyekre több helyen is szükségünk lehet. A túl bonyolult algoritmusok a teljes program átláthatóságát csökkentik. A fentiek miatt célszerű a program tagolása, ahol az egyes alfeladatokat el tudjuk különíteni, így strukturálva a programot. 2016. 10. 19. Programozás 6. Előadás 5

Függvények, metódusok A függvények, illetve metódusok azt a célt szolgálják, hogy egy - adott esetben többször felhasználandó - kódrészletet összefoglaljuk, és azt a programunk több pontján is meghívjuk. A függvények rendelkezhetnek visszatérési értékkel. A függvények vehetnek át értékeket (paramétereket), az őket meghívó programrésztől. A függvények definíciója az alábbi: <láthatóság> <visszatérési típus> név(<paraméterek>) <függvény kód> 2016. 10. 19. Programozás 6. Előadás 6

Függvények paraméterei A függvények paraméterei a paraméterlistában kerülnek átadásra. A paraméterlista vesszővel ellválasztott, típus paraméternév párosok, amelyet a függvény belül változóként kezel. Az objektumorientált programozás bevezetéséig a függvények és metódusok Console Application-ön belüli, program class-hoz tartozó kezelését tanuljuk. Ennek megfelelően a függvényeink static kulcsszóval kell bevezetnünk. A visszatérési érték nélküli függvények visszatérési típusa void. static void szamkiir(int a) Console.WriteLine(a); 2016. 10. 19. Programozás 6. Előadás 7

4. Függvények visszatérés A hívott függvény a hívó függvénynek a return utasítással adhat vissza értéket, melyet tetszőleges kifejezés követhet: Formája: return kifejezés; Ha szükséges, a kifejezés típusa a visszatérési típusra konvertálódik. A return utáni kifejezés opcionális. Adott esetben a return is elhagyható. A return utasítás a meghívásának pontján tér vissza a hívott függvényből, akkor is ha utána még más kódrészletek találhatóak. 2016. 10. 19. Programozás 6. Előadás 8

4. Függvények példa static int add(int a, int b) return a + b; 3 1 2 static void Main(string[] args) int x = 1, y = 2; 1 2 Console.WriteLine("", add(x, y)); 3 2016. 10. 19. Programozás 6. Előadás 9

4. Függvények Paraméterátadás A függvények a paramétereket érték szerint veszik át, azaz amennyiben a paraméter értéke a függvényen belül változik, ez nincs hatással az átadott változó értékére. 2016. 10. 19. Programozás 6. Előadás 10

4. Függvények Érték szerinti paraméterátadás példa static void swap(int a, int b) 1 2 int k = a; a = b; b = k; static void Main(string[] args) int x = 1, y = 2; Console.WriteLine("x:0 y:1", x, y); 1 2 a=2, b=1, de csak a függvényen belül swap(x, y); Console.WriteLine("x:0 y:1", x, y); Console.ReadLine(); x:1 y:2 Tehát nem cserélődött fel A két változó értéke 2016. 10. 19. Programozás 6. Előadás 11

4. Függvények Paraméterátadás (tömb típus) Az érték szerinti paraméterátadás máshogy működőnek tűnik tömb típusok esetén, hiszen a tömb elemeinek módosítása ténylegesen módosítja ezeket az értékeket. Ennek oka, hogy a tömb referencia típus. Lásd mintapélda 2016. 10. 19. Programozás 6. Előadás 12

Referencia szerinti paraméterátadás Amennyiben azt szeretnénk, hogy egy függvény változtathasson az átvett paraméteren, akkor referencia szerinti átadást alkalmazunk, ekkor a paraméterlistában a paramétert ref kulcsszóval látjuk el: static void swap(ref int a, ref int b) Ugyanezt a ref kulcsszót kell használnunk, a függvény meghívásakor is: swap(ref x,ref y); 2016. 10. 19. Programozás 6. Előadás 13

4. Függvények Referencia szerinti paraméterátadás példa static void swap(ref int a, ref int b) int k = a; a = b; b = k; static void Main(string[] args) int x = 1, y = 2; Console.WriteLine("x:0 y:1", x, y); swap(ref x, ref y); Console.WriteLine("x:0 y:1", x, y); Console.ReadLine(); x y a és b függvényen belül x és y szerepét viszi x:2 y:1 Tehát a két változó értéke felcserélődött 2016. 10. 19. Programozás 6. Előadás 14

j és x hatóköre i hatóköre a hatóköre Változók hatóköre Egy változó deklarálható osztályszinten, metódus szinten, vagy beágyazott szinten. Ezen változók mindig csak az adott szinten belül érvényesek. class Program static int a = 1; //osztályszintű változó static void Main(string[] args) int i=10;//függvény szinten deklarált változó for (int j = 0; j < i; j++) int x = 3; a += x + j; j = 3;//HIBÁS, nem elérhető x = 4;//HIBÁS, nem elérhető static void add_a() a++;//osztályszintű változó elérhető 2016. 10. 19. Programozás 6. Előadás 15