Отпремање презентације траје. Молимо да сачекате

Отпремање презентације траје. Молимо да сачекате

Uvod u funkcije Kolegij: Programski jezik C++ Ak. god. 2018/19

Сличне презентације


Презентација на тему: "Uvod u funkcije Kolegij: Programski jezik C++ Ak. god. 2018/19"— Транскрипт презентације:

1 Uvod u funkcije Kolegij: Programski jezik C++ Ak. god. 2018/19
Izv. Prof. Dr. Sc. Marko Maliković

2 Što su funkcije? Funkcije (ili metode) su nizovi naredbi koji opisuju neki postupak zajednički nizu ulaznih vrijednosti Funkcije se pišu kao zasebni blokovi naredbi prije ili poslije glavne funkcije main (main je također funkcija) Dakle: nasa_funkcija int main () { ... }

3 Primjer #include <iostream> using namespace std; const double pi= ; double opseg_kruga (double r) { return 2.*r*pi; } int main() { cout << opseg_kruga(5); return 0; Funkcija s nazivom opseg_kruga čiji argument je radijus r Uporaba funkcije opseg_kruga u glavnom dijelu programa

4 Deklaracija i definicija funkcija
povratni_tip ime_funkcije (tip arg_1, ..., tip arg_n) { naredbe; return povratna_vrijednost; }

5 Deklaracija i definicija funkcija
povratni_tip ime_funkcije (tip arg_1, ..., tip arg_n) { naredbe; return povratna_vrijednost; } Crveno = Deklaracija funkcije

6 Deklaracija i definicija funkcija
povratni_tip ime_funkcije (tip arg_1, ..., tip arg_n) { naredbe; return povratna_vrijednost; } Crveno = Deklaracija funkcije Plavo = Definicija funkcije

7 Deklaracija i definicija funkcija
povratni_tip ime_funkcije (tip arg_1, ..., tip arg_n) { naredbe; return povratna_vrijednost; } Oprez: Ako je tip povratne vrijednosti funkcije različit od povratnog tipa funkcije onda se rezultat pravilima pretvorbe svodi na povratni tip funkcije

8 Pozivanje funkcija Kada se iz glavnog programa poziva neka funkcija tada se izvođenje glavnog programa trenutno prekida i tijek izvođenja se prenosi na funkciju Nakon što se kôd u funkciji izvede, glavni program se nastavlja od slijedeće naredbe iza poziva funkcije nasa_funkcija int main () { ... nasa_funkcija; }

9 Pozivanje funkcija Funkcije se ponašaju kao zasebne cjeline
Njihovo unutarnje ustrojstvo ne mora biti poznato korisniku funkcije Pozivatelj funkcije mora znati što funkcija čini, ali mu ne mora biti važno kako ona to čini Funkcije imaju parametre (argumente) koje pozivatelj zadaje prilikom poziva Funkcije vraćaju povratnu vrijednost Neka funkcija može pozivati i samu sebe (o tome više kasnije →)

10 Pozivanje funkcija Iz neke funkcije može se pozvati i neka druga funkcija Nasa_funkcija_1 () { ... Nasa_funkcija_2; } Nasa_funkcija_2 int main () { Nasa_funkcija_1;

11 Zašto koristiti funkcije?
Razbijanjem programa u funkcije doprinosi se njegovoj modularnosti Modularni program – program koji je razbijen na manje cjeline koje je lakše koristiti Primjer: Za program za izračunavanje binomnih koeficijenata odnosno: ... možemo iskoristiti program za izračunavanje faktorijela kojeg smo već napisali tako da od njega napravimo funkciju

12 Program za izračunavanje binomnih koeficijenata
Već smo imali: //Program za računanje faktorijela #include <iostream> using namespace std; int main() { int n; cout << "Upisi prirodan broj: "; cin >> n; long fjel = 1; for (int i = 2; i <= n; ++i) {fjel = fjel * i;} cout << n <<"! = " << fjel << endl; return 0; }

13 Program za izračunavanje binomnih koeficijenata
#include <iostream> using namespace std; int fact(int n) { long fjel = 1; for (int i = 2; i <= n; ++i) {fjel = fjel * i;} cout << n <<"! = " << fjel << endl; return fjel; } int main() { int p, r; cout << "Upisi broj p: "; cin >> p; cout << endl << "Upisi broj r: "; cin >> r; int bk = fact(p) / (fact(r) * fact(p-r)); cout << "Binomni koeficijent brojeva " << p << " i " << r << " je: " << bk << endl << endl; return 0; Ako ne bismo koristili funkcije tada bismo zasebno u programu morali izračunati p!, r! i (p-r)!

14 Funkcija kao argument Moguće je i poziv funkcije smjestiti kao argument poziva funkcije Na primjer: ... int fact(int n) { … float Kvadrat(x) = x*x; float factNa2 = Kvadrat(fact(x));

15 Funkcije koje ne vraćaju nikakvu konkretnu vrijednost
Funkcija ne mora vraćati nikakvu konkretnu vrijednost To se može naznačiti tako da se funkcija deklarira tipom void Na primjer: void IspisiKvadrat(double x) { cout << (x*x) << endl; return; } U takvom slučaju naredba return ne sadrži nikakav podatak (može se i izostaviti)

16 Povratak iz funkcije u glavni program
Povratak je moguć s bilo kojeg mjesta unutar funkcije Zato se naredba return može pojavljivati na više mjesta Izvršiti će se jedna naredba return – ovisno o tome do koje kôd dođe

17 Više naredbi return - primjer
#include <iostream> using namespace std; bool pravokutan(int a,int b,int c) { if (a*a+b*b==c*c || b*b+c*c==a*a || a*a+c*c==b*b) return true; else return false; } int main() { int a, b, c; cout << "Upisi a: "; cin >> a; cout << "Upisi b: "; cin >> b; cout << "Upisi c: "; cin >> c; if (pravokutan(a,b,c)) cout << "Trokut je pravokutan!"; cout << "Trokut nije pravokutan!"; return 0;


Скинути ppt "Uvod u funkcije Kolegij: Programski jezik C++ Ak. god. 2018/19"

Сличне презентације


Реклама од Google