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.

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

Kezdő programozók hibái

Programozási nyelvek Java

Programozás C++ -ban 2007/7

Objektum Orientált Programozás. 5. JAVA osztályok 21/1B IT MAN

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

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

4. Gy: JAVA osztályok

OOP: Java 1.Gy: Java alapok

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

Java Programozás 1. Gy: Java alapok. Ismétlés ++

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

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

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Osztályok. 4. gyakorlat

2. Rekurzió. = 2P2(n,n) 2 < 2P2(n,n) 1

Java és web programozás

3. Osztályok II. Programozás II

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Kezdő programozók hibái Azok a buktatók, amikről ha nem tudsz, napokat töprenghetsz hiába programozás-tanulás közben

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

Alprogramok, paraméterátadás

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

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

Java IX. telkezelés a Java-ban

Objektumorientált Programozás VI.

Java IX. telkezelés a Java-ban

Programozási nyelvek Java

C++ programozási nyelv

Java és web programozás

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

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

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

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

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

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

Kivételkezelés a C++ nyelvben Bevezetés

BME MOGI Gépészeti informatika 4.

Programozás II gyakorlat. 8. Operátor túlterhelés

Szoftvertechnolo gia gyakorlat

Programozás módszertan

és az instanceof operátor

OOP: Java 8.Gy: Abstract osztályok, interfészek

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

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.

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

Eljárások, függvények

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

Szoftvertechnológia alapjai Java előadások

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

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

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Programozási nyelvek Java

Objektumok inicializálása

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

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

C++ programozási nyelv

BME MOGI Gépészeti informatika 8.

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

Programozási nyelvek Java

OOP: Java 8.Gy: Gyakorlás

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

Java és web programozás

Java és web programozás

OOP: Java 1.Gy: Java alapok

Java és web programozás

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

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

GYAKORLATIAS JAVA MINTA

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

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

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

OOP: Java 4.Gy: Java osztályok

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

Abstract osztályok és interface-ek. 7-dik gyakorlat

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

OOP: Java 5.Gy: Osztály, referencia, konstruktor

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

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

OOP #14 (referencia-elv)

BME MOGI Gépészeti informatika 6.

C++ programozási nyelv Konstruktorok-destruktorok

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

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

Kivételek, kivételkezelés a C++ nyelvben

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:

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

Objektumorientált programozás C# nyelven

Segédanyag: Java alkalmazások gyakorlat

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

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

Java II. I A Java programozási nyelv alapelemei

A C# programozási nyelv alapjai

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

Programozási alapismeretek 4.

Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák

Öröklés és Polimorfizmus

Java és web programozás

Java II. I A Java programozási nyelv alapelemei

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag

Átírás:

Függvények 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. Mint egy dzsinn: Hogyan is "használunk" egy dzsinnt? megszólítjuk megmondjuk, hogy mit akarunk tőle megvárjuk a választ Képzeljük el, hogy a csodalámpából egy selejtes dzsinn bújik elő, aki csak egyetlen dolgot tud csinálni, mondjuk meghatározni egy szám négyzetgyökét. Játsszuk le a beszélgetést: Ó, Hatalmas Négyzetgyökszámoló Dzsinn! Miért zavartál fel évezredes álmomból, halandó? Mondd meg kérlek, mennyi 5 négyzetgyöke? 2,23606797749978969640917366873... Ha a programozási függvényeket nézzük, nekik is van: nevük (négyzetgyökszámítás, Javásan: Math.sqrt() ) paraméterük vagy paramétereik, azaz adatok, amik kellenek a működéshez (a szám, aminek a négyzetgyökét vettük) visszatérési értékük (a 2,23606...) Függvény meghívása Összegezve Javásan: double gyok = Math.sqrt(5); 1/5

Lásd még: int x = sc.nextint();, ahol az nextint() a függvény, aminek nincs paramétere, az sc. pedig azt mondja meg, hogy ez az sc nevű Scanner objektumhoz tartozik. Függvény írása A függvényesdiben az az igazán nagyszerű, ha mi is tudunk készíteni függvényeket. Fontos, hogy ezt a részt az osztályon belülre, de a main() függvényen kívülre tegye az ember. Javában a függvények egymás testvérei. A függvények az osztályon belül bármilyen sorrendben lehetnek. (Bár az áttekinthetőség kedvéért érdemes a legkorábbi meghívást tartalmazó függvény alá tenni a hívott függvényt) public class Main { public static void main(string[] args) { double gyok = negyzetgyok(4.0); public static double negyzetgyok(double param) { // megvalósítás Nézzük az egyes részeket: public static : később megmagyarázom az első double : a függvény visszatérési értékének típusa negyzetgyok : a függvény neve double param : a függvénye paramétere. Itt most egy van, ha több lenne, vesszővel kellene elválasztani őket egymástól. A négyzetgyök kiszámítása első feladatnak egy kicsit meredek lenne, úgyhogy a példa kedvéért legyen egy három szám közül a legnagyobbat kiszámító függvény írása a feladat: 2/5

public static int max(int a, int b, int c) { int m = a; if (b > m) { m = b; if (c > m) { m = c; return m; A return m; két dolgot csinál: beállítja a függvény visszatérési értékét kilép a függvényből Hívjuk meg az elkészült függvényünket: int f = 5; int g = 8; int z = 2; int mx = max(f, g, z); System.out.println("A legnagyobb: "+mx); A függvény hívásakor rendre behelyettesítjük az f, g és z változók értékeit. A függvény meghívásakor a változó értéke lemásolódik, tehát ha megváltoztatjuk a függvényben az értékét, akkor csak a másolat értéke változik meg. Lefut a függvény, a visszatérési értéke ( return után megadott m értéke) bemásolódik az mx változóba, mintha ezt írnánk le: int mx = 8; A függvény paramétereinek neve a, b, c nem kell, hogy megegyezzen a hívásban használt változókkal ( f, g, z ), de lehetnek azonosak is. 3/5

A függvényeken belül létrehozott ún. lokális változókat egy másik függvényből csak úgy érhetjük el, ha az visszatérési értéke a függvénynek. Másolás következményei Ez hibás: public static void hibascsere(int a, int b) { int c = a; a = b; b = c; majd a main() -ben: int x = 7; int y = 8; hibascsere(x, y); System.out.println("x="+x+"; y="+y); Próbáld ki! :-) void Visszatérési értékként használhatjuk a void kulcsszót is, amely azt jelenti, hogy az adott függvénynek nincs visszatérési értéke. void függvények esetében is használhatő a return, de csak így: return;, érték nélkül. Megjegyzések két függvénynek lehet azonos neve is, ekkor a paraméterek száma, típusa eltérő kell legyen. (A számítógépnek meg kell tudni különböztetni, hogy melyikre gondoltunk. Gondolatolvasás hiányában a függvény neve és paramétereinek típusa alapján teszi meg) 4/5

A Javás objektum-orientált terminológiában találkozhatunk a metódus fogalommal is. Itt most - az objektum-orientált programozás előtt - egyelőre függvénynek nevezem őket, adózva a struktúrált programozás és a C programozás nagyjainak. A legtöbb itt megtanult ismeret érvényes a metódusok esetén is, ami nem, azt külön jelzem majd ( static ). A return után állhat kifejezés is, nem csak változó, pl. return a+b+c; Ha olyan programot írunk, amelyben egy adott függvény visszatérési értékét több helyen használjuk fel, akkor a függvény visszatérési értékének eltárolása a megoldás. Akárhányszor leírod a függvény meghívását ( fuggvenynev(parameterek); ) a függvény annyiszor meghívódik! double ngyok = negyzetgyok(szam); if (5 <= ngyok && ngyok <= 6) {... Végezd el a 1-5. feladatokat! 5/5