LFüggvények Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20./0. lFüggvények deklarációja és prototípusa lA függvénydefiníció lHivatkozás.

Slides:



Advertisements
Hasonló előadás
Kifejezések 2+3 Egy egyszerű kifejezés… © Pasztuhov Dániel, www.programozas-oktatas.hu.
Advertisements

LEgyméretű tömbök, vektorok Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 17./0. lVektorok definiálása lVektorok definiálása kezdőértékekkel.
Típusok, változók, konstansok
Kifejezések, operandusok, operátorok
LRendezés minimális elem kiválasztással Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 19./0. lAz algoritmus működése lRávezető feladat.
8. előadás (2005. április 19.) Pozicionálás fájlban (folyt.) I/O mechanizmus váltás Hibakezelő függvények Változók tárolási osztályai Parancssor-argumentumok.
Számítástechnika Levelezőknek
Dinamikus tömbök.
Sztringek.
Bevezetés a Java programozásba
1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék.
5. előadás (2005. március 22.) Függvények definíciója, deklarációja, hívása Enumerációs adattípus 1.
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Függvények, mutatók Csernoch Mária.
Mutatók, tömbök, függvények
C A C nyelv utasításai. Ismétlés Utasítások csoportosítása.
Borland C/C++ mintapéldák
Borland C/C++ mintapéldák függvényekre. 1. példa Írjunk olyan függvényt amely egy számot kiirat.
Borland C/C++ mintapéldák mutatókra
Programozás I. Horváth Ernő.
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
A C++ programozási nyelvSoós Sándor 1/10 C++ programozási nyelv Gyakorlat - 5. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
LDinamikus tömbök, kétdimenziós tömbök Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 21./0. lVektorok létrehozása futásidőben, dinamikusan.
Utasítások, elágazás- és ciklusszervezés C nyelvi utasítások
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Programozás I. Ciklusok
Programozás I Függvények általános jellemzői
További vektor, mátrix algoritmusok
Ficsor Lajos Template-ek CPP8/ 1 Template-ek. Ficsor Lajos Template-ek CPP8/ 2 A template fogalma Kiindulási probléma: tetszőleges típusokon kellene ugyanolyan.
Microsoft Excel Függvények VII..
Tömbök Csernoch Mária.
Megszámlálás, kiválasztás alapalgoritmusok
Programozási Nyelvek (C++) Gyakorlat Gyak 02.
Alprogramok deklarációja, definíciója és meghívása Páll Boglárka.
Készítette: Csíki Gyula
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Java programozási nyelv Metódusok
Objektum orientált programozás 3. Függvények Nagy Szilvia.
Objektum orientált programozás
Programozás I. Típus algoritmusok
A Visual Basic nyelvi elemei
Funkciós blokkok A funkciós blokkok áttekintése Az alkalmazás előnyei.
Függvények a C nyelvben 1 Függvényeket a következő esetekben szokás írni: Ha ugyanazt a tevékenységet többször is el kell végeznünk ugyanolyan típusú,
C Programozási alapok.
CUDA C/C++ programozás CUDA C bevezetés A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
2012. március 21. Paulik Áron.  Ha a függvényünk feladata olyan, hogy nem lenne értelme a visszatérési értéknek, vagy csak nincs rá szükség, void típusúként.
Ficsor Lajos A C++ programozási nyelv I. CPP1/ 1 Osztály és objektum fogalma.
Programtervezés, programozás I. 2.5 tömbök,stringek
Struktúrák a C nyelvben 1 Akkor használjuk, ha az egy egyedre jellemző különböző típusú adatokat együtt akarjuk tárolni. Lényegében típusdeklaráció. A.
1 Függvények használata – az első függvénynél a formulát háromszor be kell írni, rendre az x, x+h, x-h argumentumokkal, – a második függvénynél az új (feltételes.
Az 5,6,7 laborok VBA anyagának összefoglalása
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
Informatikai gyakorlatok 11. évfolyam
A C++ programozási nyelv
a programegységek között
Kifejezések C#-ban.
A C++ programozási nyelv
Beépített függvények használata programozáskor
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
A struct, az union és az enum típus
Könyvtári függvények I. Input / output kezelés függvényei
Konverziós operátorok
Az objektum-orientáltság
Típusok, változók, konstansok
Függvénysablonok használata
Előadás másolata:

lFüggvények Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20./0. lFüggvények deklarációja és prototípusa lA függvénydefiníció lHivatkozás függvényre lMintaprogram függvénydefiniálással lCímszerinti argumentumátadás lVektorok átadása függvénynek

lFüggvények deklarációja és prototípusa A C nyelvben a függvény központi fogalom. Egy függvénynek a main()-nek minden programban egyszer és csak egyszer szerepelnie kell. Egy függvény egy általában többször kiszámítandó értéket határoz meg, vagy logikailag egységet képező feladatot végez el. A fejlesztőrendszer részét képező könyvtári függvényeket, vagy az általunk készítetteket egyaránt használhatjuk. A függvényeket felhasználás (hivatkozás) előtt deklarálni kell, és saját függvényeinket egy helyen a programban teljesen meg kell adni, azaz definiálni szükséges. A korszerűbb prototípus a deklarációtól abban több, hogy megadja a függvény paramétereit is: függvénynév ( ) ; Pl.: int minimum( int a, int b) ; A határozza meg a függvény által visszaadott érték típusát. Ez egyszerű, struct és union típus lehet, valamint void, amely értéket vissza nem adó függvényt (eljárást) eredményez. A függvény visszatérési értékét a függvény definíciós blokkjában elhelyezett return utasítás után álló kifejezés értéke adja. A return void függvényeknél elmaradhat. Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20./1.

A megadásánál ügyelni kell arra, hogy minden paraméter előtt meg kell adni a típusát, amely az eddig tanultak bármelyike lehet. A prototípust a végén álló ; különbözteti meg a függvénydefiníció fejlécétől. A prototípusok a program, vagy a blokkok deklarációs részében helyezhetők el. lA függvénydefiníció a prototípusra emlékeztető fejlécből és egy blokkból áll: függvénynév ( ) { // lokálisak, blokkon belül érvényesek // köztük lehet a return utasítás } Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20 /2.

A paraméterek csak érték szerinti átadásúak. A cím szerinti átadást mutatóval kell megvalósítani. A függvénydefiníciók általában a program végén helyezkednek el, a prototípusok és a hivatkozások után. Amennyiben a definíció megelőzi a hivatkozásokat, akkor a prototípus elmarad. Függvénydefiníció nem adható meg más függvény blokkjában, csak deklaráció. A függvénydefiníciók egymás mellé rendeltek, a main() függvénnyel azonos szinten, moduláris módon. Példa egy függvénydefiniálásra: int minimum( int a, int b) { return (a < b) ? a : b ; } Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20 /3.

lHivatkozás függvényre A C nyelv nem void függvényei pontosvessző nélkül függvénykifejezésként kifejezésben alkalmazhatók, de sok esetben pontosvesszővel lezárva utasításként kerülnek felhasználásra. A függvényhívás formája: függvénycímkifejezés ( ) A függvénycímkifejezés lehet a konstans mutatóként viselkedő függvénynév, vagy más, a függvény címét szolgáltató kifejezés. Az vesszővel elválasztott kifejezések, melyek számban és (esetleges automatikus konvertálás után) típusban egyeznek a prototípus, vagy a definíció paramétereivel. Amennyiben a paraméterlista helyén a void (=üres) szó szerepelt, nem adható meg argumentum. Az érték szerinti átadás miatt a függvény nem tud visszaadni megváltoztatott értéket az argumentumváltozóknak. Példa függvényhivatkozásra: printf("k és m közül a kisebb értéke= %d", minimum( k, m ) ); Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20 /4.

lMintaprogram függvénydefiniálással: hatványozás Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20./5. #include #include // pow( ), exp( ), log( ) miatt #include double hatvany(double x, double y); // prototípus void main() { double alap, kitevo; clrscr(); printf("Hatványalap = "); scanf( "%lf", &alap ); printf("Hatványkitevö = "); scanf( "%lf", &kitevo ); printf("\nEredmény= %lf", hatvany(alap,kitevo) ); printf("\nPow-rel= %lf\n", pow(alap,kitevo) ); getch(); } double hatvany(double x, double y) // definíció { return exp(y*log(x)); }

lCímszerinti argumentumátadás Írjunk alprogramot kör területének és kerületének számítására a sugár ismeretében. A terület és kerület argumentumváltozók másolata jön létre a függvénybe való belépéskor, melyek megváltozott értéküket a függvényből való kilépéskor elveszítik, változatlanul hagyva eközben a terület és kerület változókat. Megoldás: a változók címét adjuk át a függvénynek, melyet, mint mutatóértéket használva módosítja a mutatott terület és kerület változókat. Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20 /6. r

lCímszerinti argumentumátadás.. Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20 /7. #include void kor ( float r, float* ter,float* ker ); // prototípus main() { float sugar, t, k; printf( "Sugar =" ); scanf( "%f", &sugar ); kor(sugar, &t, &k); // hivatkozás printf("Terulet= %10.2f, kerulet= %10.2f ", t, k); } void kor( float r, float* ter,float* ker ) // definíció { float Pi = ; *ter = r * r * Pi; *ker = 2 * r * Pi; }

lVektorok átadása függvénynek A vektorelem típusának megfelelő típusú mutató értékét kell átadni, mely a vektor első elemére mutat, majd pointeraritmetikával lépegetni a vektor elemein. Hogy ki ne lépjünk a vektorból, át kell adni a függvénynek a vektor elemeinek a számát is, vagy észlelni kell az elem értékéből, hogy az az utolsó, mint ahogy mutatja ezt a szövegtárolásra használt karaktervektorok '\0' értékű utolsó eleme. Pl.: // Definíciók: Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20 /8. float vektor[ 7 ], atlag; int elemszam = 7; float szum( float * vekt, int db) // vagy float vekt[ ] { float sv; int i ; for ( sv = 0., i = 0; i < db; i++) sv += *(vekt + i ); // vagy vekt[ i ]; return sv; } atlag = szum(vektor, elemszam) / elemszam; // Hivatkozás: