You are on page 1of 4

FUNKCIJE

Funkcije koje vraćaju vrijednost pozivajućoj funkciji i funkcije koje ne vraćaju


vrijednost pozivajućoj funkciji

U složenim programima se često pojavljuje niz operatora koji se ponavljaju na više


mjesta. C- omogućuje kreiranje funkcija koje se sastoje iz takvih grupa naredbi.
Funkcije se dijele na dvije kategorije: funkcije koje vraćaju vrijednost(rezultat) i funkcije
koje ne vraćaju vrijednost pozivajućoj funkciji.Funkcija ima sledeći oblik:

tip_rezultata ime_funkcije(tip param1, tip param2,..., tip paramN)


{ definicije i deklaracije
operator1;

operator N;
}

Kod funkcija koje ne vraćaju vrijednost kao tip rezultata navodi se void. Ako je
izostavljen tip_ rezultata podrazumijeva se int.
Među operatorima u tijelu funkcije se može naći operator povratka u pozivajuću funkciju
return. Ako se on ne navede funkcija se završava izvršavanjem poslednjeg operatora u tijelu
funkcije. Ako se navede samo return;funkcija u kojoj se on nalazi prekida izvršavanje i prelazi
se na izvršavanje sledećeg operatora pozivajuće funkcije.Ako se navede: return izraz;tada
funkcija predaje vrijednost izraza pozivajućoj funkciji.
Poziv funkcije koja daje rezultat realizuje se navođenjem:
ime_funkcije(spisak stvarnih parametara)
dok se u slučaju da funkcija ne daje rezultat dopisuje još ;čim ona postaje operator.
ime_funkcije(spisak stvarnih parametara);
Parametri navedeni pri obraćanju nazivaju se stvarni, a operatori navedeni u zaglavlju
definicije funkcije nazivaju se formalni.
Unutrašnje promjenljive funkcije su nedostupne pozivajućoj funkciji.Stvarni i formalni
parametri moraju biti istog tipa. Stvarni parametri mogu biti i izrazi.
Lokalne promjenljive jedne funkcije su nedostupne drugoj, te programer može pri
definisanju funkcije uvoditi različita imena ne vodeći računa o drugim funkcijama.
Kroz nekoliko primjera će mo pokazati funkcije koje vraćaju vrijednost pozivajućoj funkciji.

Primjer:
/*Napisati program koji racuna povrsinu pravougaonika pomocu funkcije.*/
#include <stdio.h>
int pravougaonik(int a, int b)
{return a*b;}
int main() {
int a,b;
printf("Unesi stranice pravougaonika:");
scanf("%d%d",&a,&b);
printf("Povrsina pravougaonika je %d\n",pravougaonik(a,b));
return 0; }
Primjer:
#include <stdio.h>
int kvadrat(int n)
{return n*n;}
int main() {
printf("Kvadrat broja %d je %d\n", 5, kvadrat(5));
printf("Kvadrat broja %d je %d\n", 9, kvadrat(9));
return 0;
}

Primjer:
/* Napisati program koji ispisuje veci od dva broja pomocu funkcije*/
#include<stdio.h>
int max( int a,int b)
{

return (a>b)?a:b;
}
int main()
{
int a,b,c;
printf("Unesi dva broja:");
scanf("%d%d",&a,&b);
c=max(a,b);
printf("veci broj je %d\n",c);
return 0;
}
Primjer:

/*Napisati funkciju za izracunavanje n-tog stepena cijelog broja a i main() funkciju koja je
testira. */
#include<stdio.h>
int stepen(int a,int n)
{
int i;
int an=1;
for(i=1;i<=n;i++)
an*=a;
return(an);
}
int main()
{
int a,n;
scanf("%d %d",&a,&n);
printf("%d na %d=%d\n",a,n,stepen(a,n));
return 0;
}

/* Ucitati prirodan broj i naci sumu njegovih cifara.Za odredjivanje sume koristiti
funkciju. */
#include<stdio.h>
int suma(int a)
{
int s=0;
while(a)
{
s=s+a%10;
a/=10;}
return(s);}
int main()
{
int x,s;
printf("Unesi prirodan broj:");
scanf("%d",&x);
s=suma(x);
printf("Suma cifara broja %d je %d\n",x,s);
return 0;
}

You might also like