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



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

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

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

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

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

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 6. Dr. Iványi Péter

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

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

Programozás C és C++ -ban

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

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

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

A programozás alapjai 1 Rekurzió

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

/* 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 ) ;

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

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

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

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

Programozás C++ -ban

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

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

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

Alprogramok, paraméterátadás

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

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

C programozási nyelv

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

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

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

Programozás alapjai 1. (BMEVIEEA100)

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

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

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)

Megoldott programozási feladatok standard C-ben

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.

Programozás I. gyakorlat

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

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

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

9.fejezet: Függvények és külső eljárások

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

Rekurzió. Dr. Iványi Péter

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

Programozás C++ -ban 2007/7

Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése

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

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. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

Osztály és objektum fogalma

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.

1. Alapok. Programozás II

Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt

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

C programozás. 1 óra Bevezetés

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

A programozás alapjai

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

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

Informatika terméktervezőknek

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

Országzászlók (2015. május 27., Sz14)

Programozas 1. Strukturak, mutatok

Bevezetés a programozásba I.

Programozás C++ -ban 2007/4

Megoldott programozási feladatok standard C-ben

Stack Vezérlés szerkezet Adat 2.

INFORMATIKA tétel 2019

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

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

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

Programozás C++ -ban

C++ programok fordítása

3. Osztályok II. Programozás II

Bevezetés a C++ programozási nyelvbe

Adatszerkezetek és algoritmusok

Programozás C++ -ban 2007/1

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.

Információs Technológia

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

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

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

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

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

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

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

Párhuzamos genetikus algoritmus

Bevezetés a programozásba Előadás: Fordítási egység

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

Programozás I gyakorlat

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

ISA szimulátor objektum-orientált modell (C++)

1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket.

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

Információs Technológia

Maximum kiválasztás tömbben

Átírás:

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

Függvény Egy alprogram Egy C program általában több kisméretű, könnyen értelmezhető függvényből áll Egy függvény megtalálható minden C programban: ez a main függvény void main()...

Függvények double osztas(int a, int b) double eredmeny; eredmeny=(double)a/b; return eredmeny; függvény definíciója függvény törzse

Függvények double osztas(int a, int b) double eredmeny; eredmeny=(double)a/b; return eredmeny; Nincs ; Paraméterek - változóértékeket adnak át a függvénynek - ezeket a függvény lokális változóként kezeli Függvény neve - ezzel lehet majd meghívni Visszatérési érték (a függvény eredménye) - lehet akármilyen típusú változó (int, char, double...) - ha nincs visszatérési érték: void

Függvények double osztas(int a, int b) double eredmeny; eredmeny=(double)a/b; return eredmeny; A return utasítás adja vissza a függvény eredményét A return utasítás rögtön kilép a függvényből

Függvényhívás double osztas(int a, int b) double eredmeny; eredmeny=(double)a/b; return eredmeny; double d; d=osztas(12,4); d=osztas(x,y);

Függvények deklarálása és prototípusa A függvényt mindig a meghívás előtt kell deklarálni int f1() return 1 int f2(int k) int j=f1(); return j+k; void main() int k=f2(3)+f1();

Függvények deklarálása és prototípusa Így nem fog menni: int f1(); int f2(int);...viszont van, amikor ez praktikusabb... Ilyenkor lehet a függvény prototípusát deklarálni: A prototípus ; -vel végződik és nem muszáj a paraméterek nevét deklarálni (csak típus) void main() int k=f2(3)+f1(); int f2(int k) int j=f1(); return j+k; int f1() return 1

A return használata A return adja vissza a függvény eredményét int teglalap_terulet(int h, int sz) return h*sz; A függvény mindig befejeződik a return után int primszam(int k) if(k<0) return 0; int i,v; v=0; for(i=0;i<k;i++) if(k%i==0) v=1; return v;

A return használata void típusú függvényeknél a return opcionális...de lehet használni a függvény befejezésére void primszam(int k) if(k<0) printf("rossz paraméter"); return; int i,v; v=0; for(i=0;i<k;i++) if(k%i==0) v=1; if(v==0) printf("primszam"); else printf("nem primszam");

Paraméterek és visszaadási értékek Egy függvénynek akárhány paramétere lehet Minden függvény csak egy változót adhat vissza később tanulunk egy módszert, hogy lehet több értéket visszaadni

Tömb paraméterek Tömböt is lehet paraméternek adni: void kiir(int a[20]); void kir(int a[]); Ha kétdimenziós tömb a paraméter, az első kivételével minden méretet meg kell adni void kiirmatrix(int a[][20]); void kir(int a[][]);

Lokális és globális változók Egy változó csak az adott blokkban érvényes A függvény csak a saját változóit látja paraméterek a függvényben deklarált változók int f1(int a) int t; t=a*10; t=a*k; return t; void main() int k=10; f1(20); A függvény látja a t és a változót A függvény nem látja a k változót

Lokális és globális változók Ha van olyan változó, amit az egész program kell használjon, azt lehet globálisan deklarálni a program elején double pi; double terulet(int r) return pi*r*r; double kerulet(int r) return 2*pi*r; void main() double k; pi=3.14159; k=kerulet(20);

Lokális és globális változók A globális változók esetében vigyázni kell, hogy hol változtatjuk meg int i,n; int primszam(int szam) n=0; for(i=0;i<szam;i++) if(szam%i==0) n=1; return n; void main() n=10; for(i=0;i<n;i++) primszam(i);

A main() függvény Általában void típusú és nincsenek paraméterei void main() Adhat viszont vissza értéket A program futása sikeres volt-e vagy sem Egyes kompilátorok ezt kötelezően kérik int main()... if(hiba) return 1;... return 0;

A main függvény Visszaadási érték: stdlib.h ban van meghatározva: EXIT_SUCCESS 0 EXIT_FAILURE 1 int main()... if(hiba) return EXIT_FAILURE;... return EXIT_SUCCESS;

A main függvény A programoknak is lehetnek paramétereik pl: winword.exe dokumentum.doc megfelel: void main(char s[]) A main függvénynek speciális standard paraméterei vannak stringtömb void main(int argc, char* argv[]) paraméterek száma Paraméterek: argv[0] program neve argv[...] program paraméterei

A main függvény Példa: int main(int argc, char *argv[]) int i; printf("az argumentumok száma: %d\n\n",argc); for(i=0;i<argc;i++) printf("%d. argumentum: %s\n",i,argv[i]); return 0; program.exe elso masodik Argumentumok szama: 3 0. argumentum: program.exe 1. argumentum: elso 2. argumentum: masodik

A main függvény Másik példa int main(int argc, char *argv[]) int i; if(argc!=3) printf("hibás paraméterszám"); return EXIT_FAILURE;...

Rekurzió Amikor egy függvény saját magát hívja meg

Rekurzió Egy függvény meg tudja hívni saját magát is FONTOS!!! Rekurzióban mindig kell legyen egy megállási feltétel! void rekurzivfuggveny(parameter) if (megallasi feltetel igaz) return; else rekurzivfuggveny(masik parameter);

Példa Hogy nő a fa? növessz_ágat(irány) ha(kicsi_az_ág) megáll; növessz_ágat(balra); növessz_ágat(jobbra); void main() növessz_ágat(fel);

Példa Faktoriális 5! = 5 * 4 * 3 * 2 * 1 5! = 5 * ( 4 * 3 * 2 * 1 ) 5! = 5 * 4! faktorialis n = 1 ha n = 1 n faktorialis(n 1) kulonben int faktorialis(int n) if (n==1) return 1; else return n*faktorialis(n-1);

Függvénykönyvtárak Hasonló funkciójú függvényeket csoportosítanak (lásd math.h) Hasznosak Gyakorta használt függvények tárolására A főprogram átláthatóvá tételéhez Állnak Egy fejléc-állományból (header file:.h) Forrás-állományból (cpp file) A fejléc tartalmazza a függvények prototípusát A forrás tartalmazza az implementációt

Példa //matek.h #ifndef matek_h #define matek_h int osszead(int,int) int kivon(int,int) int szoroz(int,int) double oszt(int,int) #endif //matek.cpp int osszead(int a,int b) return a+b; int kivon(int a,int b) return a-b; int szoroz(int a,int b) return a*b; double oszt(int a,int b) return (float)a/b; //program.cpp #include "matek.h" void main() int x; x=osszead(15,23); printf("%d",x); Az #ifdef #endif direktíva azért szükséges, hogy a függvényeket ne határozzuk meg többször (többszörös #include esetén) A.h és.cpp fileokat is hozzá kell adni a projekthez