You are on page 1of 19

FUNKCIJE

Osnovni pojmovi
• Funkcija je programska celina koja uzima neke
ulazne podatke, izvršava određeni niz naredbi i
vraća rezultat svog izvršavanja pozivnom
programu.
• Pomoću funkcija razbijamo složene programske
zadatke na niz jednostavnijih celina. Time
postižemo veću jasnoću programa i olakšavamo
buduće modifikacije.
Definisanje funkcije
tip_podatka ime_funkcije (tip1 arg1, tip2 arg2, ... , tipN argN)
{
telo funkcije
}

• tip_podatka je tip podatka koji će funkcija vratiti kao rezultat svog


izvršavanja
Definisanje funkcije
• Unutar zagrada () se nalazi deklaracija formalnih argumenata funkcije.
Prvi argument arg1 je promenljiva tipa tip1 itd. Deklaracije pojedinih
argumenata međusobno se odvajaju zarezom.
• Unutar vitičastih zagrada {} pojavljuje se telo funkcije koje se sastoji od
deklaracija promenljivih i izvršnih naredbi.
• Funkcija vraća rezultat svog izvršavanja pomoću naredbe return. Opšti
oblik te naredbe je
return izraz;
• Vrednost izraza se vraća delu programa koji poziva funkciju.
• Funkcija ne može vratiti drugu funkciju ili niz!
Formalni i stvarni argumenti
• Argumenti deklarisani u definiciji funkcije nazivaju
se formalni argumenti. Izrazi koji se pri pozivu
funkcije nalaze na mestima formalnih argumenata
nazivaju se stvarni argumenti.
• Prilikom poziva funkcije, stvarni argumenti se
izračunavaju (ako su izrazi) i kopiraju u formalne
argumente. Funkcija prima kopije stvarnih
argumenata što znači da ne može izmeniti stvarne
argumente.
Primer 1. Definicija funkcije koja sabira dva
cela broja
int zbir(int a, int b)
{
int c;
c=a+b;
return c;
}
Pozivom ove funkcije u glavnom programu sa Z=zbir(3,5); vraća se
vrednost Z=8!
• a, b – formalni argumenti
• 3, 5 – stvarni argumenti
• Broj i tip formalnih i stvarnih argumenata mora biti isti!
Deklaracija funkcije
tip_podatka ime_funkcije (tip1 arg1, tip2 arg2, ... , tipN argN);

• Deklaracija informiše prevodilac o imenu funkcije, broju i tipu


argumenata i tipu povratne vrednosti.
• Deklaracija se koristi kada želimo da funkcije koje koristimo
definišemo nakon main () funkcije ili uopšte iza mesta na kojem
se pozivaju.
Primer 2. Deklaracija funkcije
int zbir(int a, int b); <- deklaracija funkcije
#include <stdio.h>
main () {
int Z;
Z=zbir(3,5); <- poziv funkcije
printf(“%d”, S);
}

int zbir(int a, int b)


{
int c;
c=a+b; definisanje funkcije
return c;
}
Deklaracija funkcije

• Deklaracija funkcije MORA biti iznad main ()


funkcije, dok definicija MOŽE biti i ispod, ali u
prostijim programima je lakše upisati
definiciju funkcije odmah iza deklaracije.
Zadatak 1.
Napisati funkciju za izračunavanje površine
pravougaonika a zatim pozivom te funkcije u
glavnom programu izračunati površinu
pravougaonika čije stranice unosi korisnik.
Zadatak 1 – Rešenje
Float povrsina_pravougaonika(float a,float b)

float P;

P=a*b;

return P;

#include <stdio.h>

int main() {

float a,b,P;

printf("Unesite stranicu a\n");

scanf("%f",&a);

printf("Unesite stranicu b\n");

scanf("%f",&b);

P=povrsina_pravougaonika(a,b);

printf("Povrsina pravougaonika je %.2f",P);

return 0;

}
Zadatak 2.
Napisati funkciju za izračunavanje zapremine kocke
ivice a, a zatim pozivom te funkcije u glavnom
programu izračunati zapreminu kocke ivice a, pri
čemu vrednost ivice a unosi korisnik.
Zadatak 2 - Rešenje
float zapremina_kocke(float a)
{
float V;
V=a*a*a;
return V;
}
#include <stdio.h>
int main(){
float a,V;
printf("Unesite ivicu kocke: \n");
scanf("%f",&a);
V=zapremina_kocke(a);
printf("Zapremina kocke iznosi: %.2f",V);
return 0;
}
Zadatak 3.
Napisati funkciju za izračunavanje dijagonale
kvadrata. Pozivom te funkcije u glavnom programu
izračunati dijagonalu kvadrata stranice a koju unosi
korisnik.
Zadatak 3 - Rešenje
#include <math.h>
float dijagonala_kvadrata(float a)
{
float d;
d=a*sqrt(2);
return d;
}
#include <stdio.h>
int main(){
float a,d;
printf("Unesite stranicu kvadrata: \n");
scanf("%f",&a);
d=dijagonala_kvadrata(a);
printf("Dijagonala kvadrata iznosi: %.2f",d);
return 0;
}
Zadatak 4.
Napisati funkciju za izračunavanje površine
jednakostraničnog trougla. Pozivom te funkcije u
glavnom programu izračunati površinu
jednakostraničnog trougla stranice a koju unosi
korisnik.
Zadatak 4 - Rešenje
#include <math.h>
float povrsina_jednakostranicnog_trougla(float a)
{
float P;
P=a*a*sqrt(3)/4;
return P;
}
#include <stdio.h>
int main(){
float a,P;
printf("Unesite stranicu jednakostranicnog trougla: \n");
scanf("%f",&a);
P=povrsina_jednakostranicnog_trougla(a);
printf("Povrsina jednakostranicnog trougla iznosi: %.2f",P);
return 0;
}
Zadatak 5
Napisati funkciju za izračunavanje površine trougla
pomoću Heronovog obrasca. U glavnom programu
korisnik unosi stranice trougla a, b i c, a zatim računa
površinu trougla ako se od unetih stranica može
formirati trougao. Ukoliko se od unetih stranica ne
može formirati trougao, na ekranu se ispisuje
poruka: „Od unetih stranica se ne može konstruisati
trougao!“
Zadatak 5 - Rešenje
#include <math.h>
float povrsina_trougla(float a, float b, float c)
{
float P,s;
s=(a+b+c)/2;
P=sqrt(s*(s-a)*(s-b)*(s-c));
return P;
}
#include <stdio.h>
int main(){
float a,b,c,P;
printf("Unesite stranice trougla: \n");
scanf("%f%f%f",&a,&b,&c);
if (((a+b)>c) && ((b+c)>a) && ((a+c)>b)) {
P=povrsina_trougla(a,b,c);
printf("Povrsina trougla iznosi: %.2f",P); }
else printf("Od unetih stranica se ne moze konstruisati trougao!");
return 0;}

You might also like