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

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

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

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

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

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

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

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

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

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

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

Alprogramok, paraméterátadás

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

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

A programozás alapjai 1 Rekurzió

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

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

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás

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)

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

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

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

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

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

main int main(int argc, char* argv[]) { return 0; } main return 0; (int argc, char* argv[]) main int int int main main main

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

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

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

Java II. I A Java programozási nyelv alapelemei

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.

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. 9. Előadás: Rekordok

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

Programozás C++ -ban 2007/7

Rekurzió. Működése, programtranszformációk. Programozás II. előadás. Szénási Sándor.

Információs Technológia

Eljárások, függvények

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

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

A C programozási nyelv IV. Deklaráció és definíció

és az instanceof operátor

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

Java II. I A Java programozási nyelv alapelemei

Pénzügyi algoritmusok

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

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Függvények int, long 1. Adott a mellékelt f alprogram.

A programozás alapjai

A C++ szigorúbban kezeli a típuseltéréseket, mint a C nyelv Lehetséges típuskonverziók:

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

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7.

Bevezetés a C++ programozási nyelvbe

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

C programozási nyelv

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

A C programozási nyelv VI. Parancssori argumentumok File kezelés

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

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

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

12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás

1. Alapok. Programozás II

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

- 1 - Konstansok használata. Döntsük el, van-e fordítási idejű hiba az alábbi programrészletekben! a) const char * str="zh"; str[0]++;

Programozás 6. Dr. Iványi Péter

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

C++ programozási nyelv

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

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

Rekurzív algoritmusok

Programozás C és C++ -ban

Informatika terméktervezőknek

Programozási Nyelvek: C++

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

Objektumorientált Programozás VI.

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

Programozás C++ -ban

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

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

1. Bevezetés A C++ nem objektumorientált újdonságai 3

Programozás I. gyakorlat

Programozási nyelvek Java

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

2018, Funkcionális programozás

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

Rekurzió. Dr. Iványi Péter

Programozas 1. Strukturak, mutatok

INFORMATIKA javítókulcs 2016

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

3. Osztályok II. Programozás II

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

Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union

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

Bevezetés a programozásba Előadás: A const

A C programozási nyelv III. Pointerek és tömbök.

Szkriptnyelvek. 1. UNIX shell

84)Adott a következőképpen értelmezett f alprogram. Milyen értéket térit vissza f(1)? És f(100)? function f(x:integer):integer; begin

PROGRAMOZÁSI NYELVEK - CPP. ELŐADÁS JEGYZET

/* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ;

Átírás:

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

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.

Forma: visszatérési-típus függvénynév(argumentum deklarációk) { deklarációk és utasítások 2016.03.01. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 3

//függvény deklaráció (prototípus) void szamkiir(int szam); //A main fv int main(void) { szamkiir(10); return 0; //függvény definíció void szamkiir(int szam){ printf("%d",szam);

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.

példa int add(int a, int b) { return a+b; 1 2 3 int main(int argc, char *argv[]) { int x=1,y=2; printf("x+y=%d",add(x,y)); return 0; 3 1 2

return példa (Szignumfüggvény) int signum(int szam){ if (szam>0) return +1; if (szam<0) return -1; return 0; int main(void) { printf("%2d\n",signum(10)); printf("%2d\n",signum(-10)); printf("%2d\n",signum(0)); return 0; 1-1 0 -------------------------------- Process exited with return value 0 Press any key to continue...

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.

Érték szerinti paraméterátadás példa void swap(int a, int b) { 1 2 int c; c=a;a=b;b=c; return; int main(int argc, char *argv[]) { int x=1,y=2; swap(x,y); 1 2 printf("x:%d y:%d",x,y); return 0; a=2, b=1, de csak a függvényen belül x:1 y:2 Tehát nem cserélődött fel A két változó értéke

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, erre magyarázatot a következő előadás ad. void confuse(char s[]) { s[0]='m'; return; mamu int main(int argc, char *argv[]) { char s[]="hamu"; hamu printf("%s\n",s); confuse(s); printf("%s\n",s); return; hamu mamu

4.4. Az érvényességi tartomány szabályai Egy név érvényességi tartománya az a programrész, amiben a nevet definiálták. Lokális változók: Egy függvényen belül definiált változók. A helyi változók neve, értéke más függvényekben ismeretlen. Ide tartoznak a függvények argumentumai is. Külső változók: (globális változók) A függvényeken kívül definiált változók, hatókörük a deklarációjuk végén kezdődik, és az aktuálisan fordított fájl végéig tart. (beleértve a függvényeket.) 2016.03.01. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 11

4.3. A külső változók példa int kulso=0; //Külső változó deklarációja kulso: 1 kulso: 2 kulso: 3 kulso: 4 void inckulso(){ kulso++; return; int main(void) { int i; for (i=1;i<5;i++) { inckulso(); printf("kulso: %d\n",kulso); return 0; -------------------------------- Process exited with return value 0 Press any key to continue...

4.6. Statikus változók A belső változók a függvény minden egyes meghívásakor újra létrejönnek, és értéket kapnak. A statikus változók ezzel szemben a függvényre nézve lokálisak, de állandóan megtartják az értéküket két függvényhívás között is.

int counter(){ static int i=0; return ++i; int main()) { int i; for (i=5;i>0;i--) 4.6. Statikus változók példa main: 5 counter: 1 main: 4 counter: 2 main: 3 counter: 3 main: 2 counter: 4 main: 1 counter: 5 -------------------------------- Process exited with return value 0 Press any key to continue... printf("main: %d counter: %d\n", i,counter()); return 0;

Rekurzív hívás (megemlítés) int fakt (int i) { return (i<2)?1:i*fakt(i-1); 2016.03.01. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 15