Što je funkcija u programskom jeziku C?
Izdvojeni dio programa koji obavlja određeni zadatak.
Kako nazivamo parametre zapisane u zaglavlju funkcije?
Formalni parametri.
int Zbroj(int a, int b)
{
return a + b;
}
printf("%d", Zbroj(4, 6));
Što će program ispisati?
10
float Povrsina(float a, float b)
{
float p;
p = a * b;
}
Što nedostaje?
Nedostaje return p;
Napiši funkciju Zbroj koja prima dva cijela broja i vraća njihov zbroj.
int Zbroj(int a, int b)
{
return a + b;
}
Što je prototip funkcije i čemu služi?
Prototip je deklaracija funkcije kojom se funkcija najavljuje prije njezina prvog korištenja. Primjer: float Povrsina(float a, float b);
Kako nazivamo vrijednosti koje predajemo funkciji prilikom poziva?
Stvarni parametri odnosno argumenti
float Kub(float x)
{
return x * x * x;
}
printf("%.0f", Kub(3));
Što će program ispisati?
27
float Zbroj(float a, float b)
{
return a + b;
}
Zbroj(5);
Pronađi grešku!
Funkcija zahtijeva dva argumenta, a predan je samo jedan. Ispravno npr. Zbroj(5, 3);
Napiši funkciju Kvadrat koja prima jedan float broj i vraća njegov kvadrat.
float Kvadrat(float x)
{
return x * x;
}
Koja je razlika između lokalne i globalne varijable?
Lokalna varijabla poznata je samo unutar funkcije u kojoj je deklarirana. Globalna je deklarirana izvan funkcija i dostupna je svim funkcijama.
Što mora odgovarati između stvarnih i formalnih parametara?
Broj, redoslijed i tipovi.
int Fja(int a, int b)
{
if(a > b)
return a;
else
return b;
}
printf("%d", Fja(12, 8));
Što će program ispisati?
12
int Kub(int x)
{
int rezultat;
rezultat = x * x * x;
}
printf("%d", Kub(4));
U čemu je pogreška?
Nedostaje return rezultat;
Napiši funkciju koja prima dva cijela broja m i n i vraća umnožak svih neparnih brojeva između njih.
int umnozak (int m, int n)
{
int umn = 1;
for(int i = m; i <= n; i++)
{
if(i % 2 == 1)
umn *= i;
}
return umn;
}
Objasni razliku između funkcije koja vraća rezultat i funkcije tipa void.
Funkcija s povratnim tipom (npr. int, float) vraća vrijednost pomoću return. Funkcija void ne vraća vrijednost.
Što će se dogoditi ako funkciju pozovemo s manjim brojem argumenata nego što ih ima u definiciji?
Nastaje pogreška jer broj argumenata u pozivu mora odgovarati broju parametara u definiciji.
int Funkcija(int m, int n)
{
int suma = 0;
for(int i = m; i <= n; i++)
{
if(i % 2 == 0)
suma += i;
}
return suma;
}
printf("%d", Funkcija(2, 10));
Što će program ispisati?
30
void Poruka(void)
{
return "Pozdrav!";
}
Zašto je ovaj kod pogrešan? Kako bi ga trebalo napisati ako želimo samo ispisati poruku?
Void funkcija ne vraća tekst. Ispravno:
void Poruka(void) {
printf("Pozdrav!");
}
Napiši program koji koristi funkcije za računanje površine kruga.
Program treba imati:
- Pi(void) – vraća vrijednost π
- Upisi(float r) – služi za unos polumjera
- Poruka(void) – ispisuje tekst
- main – računa površine n krugova.
double Pi(void) {return 3.141592;}
void Poruka(void) {printf("Povrsina kruga je ");}
float Upisi(float r) {
printf("Unesi polumjer:");
scanf("%f", &r);
return r; }
int main(){
int n;
float r, povrsina;
printf("Unesi broj krugova: ");
scanf("%d", &n);
for(int i = 0; i < n; i++){
r = Upisi(r);
povrsina = Pi() * r * r;
Poruka();
printf("%.2f\n", povrsina);
}
return 0; }