1 / 11

Funkcie

Funkcie. Funkcie. Funkcia je základným stavebným blokom C++ Aj samotný program je funkciou – funkcia main () Vytvorenie ďalších funkcií má zmysel, ak sa nejaká časť kódu často opakuje Do funkcie môžeme poslať parametre, funkcia môže vracať výsledok. Funkcie - syntax. Deklarácia funkcie

Télécharger la présentation

Funkcie

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Funkcie

  2. Funkcie • Funkcia je základným stavebným blokom C++ • Aj samotný program je funkciou – funkcia main() • Vytvorenie ďalších funkcií má zmysel, ak sa nejaká časť kódu často opakuje • Do funkcie môžeme poslať parametre, funkcia môže vracať výsledok

  3. Funkcie - syntax Deklarácia funkcie (pomoc kompilátoru) floatMocnina3(float); intmain() { float x=1,y; y = Mocnina3(x); ... return 0; } float Mocnina3(float a) { return a*a*a; } Volanie funkcie (hodnota x sa odovzdá funkcii) (vrátená hodnota sa priradí do y) Začiatok kódu funkcie (vytvorí sa nová premenná a,naplní sa prijatou hodnotou) Jadro funkcie - výpočet (vracia sa 3. mocnina)

  4. Funkcie – príklad (kombinačné číslo) longdoubleFaktorial(int); intmain() { intn,k; cout << “Zadaj n,k oddelene medzerou: “; cin >> n; cin >> k; cout << Faktorial(n)/Faktorial(n-k)/Faktorial(k); return 0; } longdoubleFaktorial(intn) { int i; longdoublevysledok = 1; for(i=1;i<=n;i++) vysledok*= i; returnvysledok; }

  5. Funkcie – príklad (kombinačné číslo) longdoubleFaktorial(int); longdoubleKombinacneCislo(int,int); intmain() { intn,k; cout << “Zadaj n,k oddelene medzerou: “; cin >> n; cin >> k; cout << KombinacneCislo(n,k); return 0; } longdoubleKombinacneCislo(int n, int k) { returnFaktorial(n)/Faktorial(n-k)/Faktorial(k); } longdoubleFaktorial(intn) { int i;longdoublevysledok = 1; for(i=1;i<=n;i++) vysledok*= i; returnvysledok; }

  6. Funkcie – lokálne premenné • Všetky premenné vo funkcii sú novovytvorené, aj pre odovzdanie argumentov funkcie sa vytvorí kópia premennej. • Vo funkcii sa dokonca môžu používať premenné s tým istým názvom, ako v hlavnom programe – neovplyvňujú sa intmain() { inti=5, j; cout << i << endl; j = Funkcia(i); cout << j<< endl; cout << i << endl; return 0; } int Funkcia(int n) { int i = 2,vysledok; vysledok = i*n; n = 0; cout << “Vo funkcii: i= “ << i << “ n= “ << n << endl; returnvysledok; }

  7. Funkcie – globálne premenné • Globálna premenná – deklarovaná mimo akejkoľvek funkcie • Globálne premenné „sú viditeľné“ všetkým funkciám z daného *.cpp súboru • Ak vo funkcii deklarujeme lokálnu premennú s rovnakým menom, ako má nejaká globálna premenná, vždy platí lokálna premenná (globálna premenná sa neovplyvní). • V ukážke funkcia neovplyvní globálnu premennú i:

  8. Funkcie – globálne premenné int i = 5; //globálna premenná – deklarovaná mimo funkcií intmain() { intj; //lokálna premenná – platí v main() cout << i << endl; j = Funkcia(i); cout << j<< endl; cout << i << endl; return 0; } int Funkcia(int n) { int i = 2; //meni sa obsah globalnej premennej cout << i << endl; returni*n; }

  9. Funkcie – návratový typ void • Funkcia nemusí dostať a ani vracať žiadnu hodnotu. Môže slúžiť iba ako časť kódu, ktorý sa často opakuje, alebo pracuje s globálnymi premennými (ako v ukážke). Je to však nezvyklé a neodporúča sa to. inti,j; intmain() { i=2; j=3; Funkcia(); return 0; } void Funkcia() { j = i*j; return; }

  10. Lokálne premenné v rámci bloku • Premenná môže mať aj ešte menšiu oblasť platnosti (angl. scope), než je funkcia. Ak je deklarovaná vo vnútri bloku { ... }, platí iba v ňom: intmain() { intj; //lokálna premenná – platí iba v main() j = 2; for(int i=0; i<j; i++) // i platí iba v cykle for { j = j + i; } if(j>3) { int i = 2; //toto i plati iba v if, nemanic // spolocne s i z for j = j*i; } }

  11. Funkcie a premenné - zhrnutie • Funkcia je oblasť kódu, ktorá sa obvykle často opakuje • Do funkcie vstupuje jedna alebo viac premenných, vracia sa jedna alebo žiadna premenná • Funkciu treba na vrchu programu deklarovať (pomôcka pre kompilátor a pre nás) • Premenné platia iba v rámci bloku (scope), kde boli deklarované. Lokálne premenné neovplyvňujú obsah vyššie deklarovaných premenných, aj keď majú rovnaké meno. • Globálne premenné (deklarované mimo funkcií) platia v celom súbore *.cpp • Globálnepremennésaneodporúča používať, ťažko sa počas behu programu ustráži, aby nedošlo k jej neželanej zmene. • Ak potrebujete, aby funkcia zmenila obsah premennej deklarovanej vo volajúcej funkcii, použite referencie.

More Related