Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C funkcije, zbunjen

[es] :: C/C++ programiranje :: C/C++ za početnike :: C funkcije, zbunjen

[ Pregleda: 2803 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

cisco89

Član broj: 160062
Poruke: 89
*.tpgi.com.au.



+9 Profil

icon C funkcije, zbunjen30.03.2010. u 07:16 - pre 170 meseci
Pozdrav ljudi

Pocetnik sam u C-u, i treba mi pomoc. Tek smo sada krenuli sa funkcijama, tj modularnom programiranju, i mene zbunjuje par stvari.
1 - Kada se pravi funkcija, kada treba da bude int, kada char, kada void itd...
2 - int Display_Menu (int x, int y) kada se pise ovo u zagradama, cemu to sluzi, i zasto se nekad ostavljaju prazne zagrade?
3 - Na kraju funkcije ide nekad return (0), nekada return(x, y), a nekada samo return.

Jeli moze neko da mi pojasna kada se sta koristi i zasto sta sluzi...


pozzz
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: C funkcije, zbunjen30.03.2010. u 09:06 - pre 170 meseci
Bolje pitaj svog nastavnika, jer teško je početniku to objašnjavati ovako preko foruma. Ali evo za početak:

Zamisli da imaš matematičku funkciju koja ti služi da crtaš grafik na X-Y ravni. Ta funkcija bi bila oblika float y(float x), i ti bi u nekoj petlji pozivao tu funkciju sa raznim vrednostima x, funkcija bi ti vraćala razne rezulatate i onda sa mnogo takvih rezultata imao bi tačke za svoj 2D grafik.

E sad zamisli da crtaš grafik X-Y-Z prostoru. Ta funkcija bi recimo bila oblika float z(float x, float y), i ti bi u nekoj dvostrukoj petlji morao da potražuješ rezultat funkcije sa raznolikim vrednostima x i y, i sa mnogo takvih rezultata imao bi tačke za svoj 3D grafik.

Zamisli da ti treba funkcija koja vraća slovo koje ide 13 slova posle datog slova. To se zove ROT-13, ali nema veze. Ta funkcija bi recimo bila oblika char rot13(char original), i kad god pozoveš funkciju sa svojim slovom onda ti funkcija vrati odgovarajuće "šifrirano" slovo.

Ako funkcija ne treba nikakav rezultat da vrati, nego samo nešto da uradi onda se to piše sa void funkcija(..neki parametri..). To recimo imaš kad hoćeš da nacrtaš neku liniju na ekranu, pa bi funkcija izgledala ovako void crtaj_liniju(int x1, int y1, int x2, int y2).

Ako funkcija nema nikakve parametre ali recimo vraća neku vrednost onda se to piše recimo ovako int funkcija(void). To ti recimo treba ako hoćeš funkcijom da generišeš neki slučajan broj, onda bi funkcija izgledala ovako int slucajan_broj(void).
 
Odgovor na temu

Struja01
Beograd

Član broj: 166347
Poruke: 190



Profil

icon Re: C funkcije, zbunjen30.03.2010. u 09:32 - pre 170 meseci
Citat:
cisco89: Pozdrav ljudi
Pocetnik sam u C-u, i treba mi pomoc. Tek smo sada krenuli sa funkcijama, tj modularnom programiranju, i mene zbunjuje par stvari.
1 - Kada se pravi funkcija, kada treba da bude int, kada char, kada void itd...
2 - int Display_Menu (int x, int y) kada se pise ovo u zagradama, cemu to sluzi, i zasto se nekad ostavljaju prazne zagrade?
3 - Na kraju funkcije ide nekad return (0), nekada return(x, y), a nekada samo return.

Jeli moze neko da mi pojasna kada se sta koristi i zasto sta sluzi...
pozzz


E ovako druze:
1. int, char, void - na pocetku su tip vrednosti koje funkcija vraca kao svoj rezultat, void kad je na pocetku tada fukcije ne vraca nista uopste se na kraju ne stavlja naredba 'return' , ako se stavi kompajeler to prijavi kao gresku, jer je definisano da funkcija ne vraca nista.
2. u tvom gornjem primeru, definisao si na pocetku da fukcija vraca neku vrednost na kraju tipa int, pa onda ide ime fukcije preko koje se poziva i jos dva argumenta x i y tipa int. Da bi neko upotrebio tu fukciju iz tvog primera, treba da pozove m = Display_Menu (a,b) - ovako je ispravno, ako bi u zagradama bio samo jedan clan, ili vise clanova od dva, sve je to prijavljeno kao greska.
3. ja koliko znam moze samo jedna vrednost da se vrati preko funkcije npr. return 0, return x.

Primer:

int saberi(int x, int y)
{
int z;
z = x + y;
return z;
//ili moze bez clana 'z' sto se obicno radi, samo ovako: return x+y;
}

main() {

int a,b,c; //da napomenem da nema veze sto se tice clanova, ovde u glavnoj fukciji mogao si definisati : int x,y,z; , oni clanovi su u fukciji, tako da se ne //smatraju kao isti...

printf("Unesi dva broja: ");
scanf("%d%d" ,a,b);

z = saberi(x,y);
}


//------------------------------------------
//jos jedan primer, citav program preko fukcija


int citaj() {
int x;
printf("Unesi broj: ");
scanf("%d", x);
return x;
} //u ovoj fukciji je definisano da samo vraca vrednost tipa int, funkciji ne treba nijedna vrednost da bi citala broj, to smo definisali u funkciji, samo treba da //vrati neki broj. Citanje neke vrednosti moze da se uradi i na drugi nacin, preko pokazivaca.

void pisi_1(int x) {
printf("Vrednost broja je: %d \n");
}

//cak si mogao i definisati ovakvu funkciju da govori koji je broj, samo pored argumenta unes i neki znak koji je to broj, primer ispod
void pisi_2(int x, char c)
{
printf("\n %c = %d \n", c,x );
} // ova funkcija ne vraca nikakvu vrednost, nego stampa vrednosti na ekran.

int saberi(int x, int y)
{
return x+y;
}

main() {
int a,b,c;

a = citaj();
b = citaj();
c = saberi(a,b);
pisi_1(c);
pisi_2(c, 'C');

}

//u zagrada su argumenti sa kojima funkcija barata, i vraca odgovarajuci rezultat, ili mozda ne vraca nista, sve zavisi za sta tebi treba..

Nadam se da ti je malo jasnije.










 
Odgovor na temu

cisco89

Član broj: 160062
Poruke: 89
*.tpgi.com.au.



+9 Profil

icon Re: C funkcije, zbunjen30.03.2010. u 11:51 - pre 170 meseci
Hvala vam obadvojici na trudu, ukapirao sam dosta toga, trebace mi jos malo vezbe da se usavrsim :D

hvala jos jednom
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: C funkcije, zbunjen

[ Pregleda: 2803 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.