OSNOVNI POJMOVI
PARAMETRI I POZIV
ŠTO ĆE PROGRAM?
PRONAĐI GREŠKU
PROGRAMSKI IZAZOV
100

Što je funkcija u programskom jeziku C?

Izdvojeni dio programa koji obavlja određeni zadatak.

100

Kako nazivamo parametre zapisane u zaglavlju funkcije?

Formalni parametri.

100

int Zbroj(int a, int b)
{
    return a + b;
}
printf("%d", Zbroj(4, 6));

Što će program ispisati?

10

100

float Povrsina(float a, float b)
{
    float p;
    p = a * b;
}
Što nedostaje?

Nedostaje return p;

100

Napiši funkciju Zbroj koja prima dva cijela broja i vraća njihov zbroj.

int Zbroj(int a, int b)
{
    return a + b;
}

200

Š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);

200

Kako nazivamo vrijednosti koje predajemo funkciji prilikom poziva?

Stvarni parametri odnosno argumenti

200

float Kub(float x)
{
    return x * x * x;
}
printf("%.0f", Kub(3));

Što će program ispisati?

27

200

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);

200

Napiši funkciju Kvadrat koja prima jedan float broj i vraća njegov kvadrat.

float Kvadrat(float x)
{
    return x * x;
}

300

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.

300

Što mora odgovarati između stvarnih i formalnih parametara?

Broj, redoslijed i tipovi.

300

int Fja(int a, int b)
{
    if(a > b)
        return a;
    else
        return b;
}
printf("%d", Fja(12, 8));

Što će program ispisati?

12

300

int Kub(int x)
{
    int rezultat;
    rezultat = x * x * x;
}
printf("%d", Kub(4));

U čemu je pogreška?

Nedostaje return rezultat;

300

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;
}

400

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.

400

Š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.

400

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

400

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!");

}

400

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; }