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

Definisanje funkcija..... etc?

[es] :: C/C++ programiranje :: Definisanje funkcija..... etc?

[ Pregleda: 4104 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

xeron
Sarajevo

Član broj: 25909
Poruke: 133
*.dlp275.bih.net.ba.



Profil

icon Definisanje funkcija..... etc?18.09.2005. u 14:59 - pre 226 meseci
Koristim knjigu "K&R_Programski_jezik_C" Dennis M. Ritchie i
Brian W. Kernighan

Ne razumijem nacin definisanja funkcije ???

Citat:
Definicija funkcije ima ovaj oblik:
ime funkcije(deklaracija parametara, ukoliko postoje){
deklaracije internih varijabli funkcije
naredbe
}


nije mi jasna razlika između parametra i internih varijabli?
Moze li objasnjenje funkcija uz ovaj primjer(gdje je definisna f-ja,kada je pozvana,kako je definisana).


Code:

#include <stdio.h>
int power(int m, int n);
/* test power funkcije */
main(){
int i;
for(i=0;i<10;++i)

printf("%d %d %d", i, power(2,i), power(-3,i));
return 0;
}
/* power: podiže bazu na n-ti eksponent n>=0 */
int power(int base, int n){
int i,p;
p=1;
for(i=1;i<=n;++i)
p=p*base;
return p;
}


Posebno mi nije jasan ovaj dio

Code:
/* power: podiže bazu na n-ti eksponent n>=0 */
int power(int base, int n){
int i,p;
p=1;
for(i=1;i<=n;++i)
p=p*base;
return p;
}

if (argc > 1 && strcmp(argv[1], "-advice") == 0) {
printf("Don't Panic!n");
exit(42);
}
 
Odgovor na temu

sucur
Miljan Sucur
Web developer
Istocno Sarajevo

Član broj: 50035
Poruke: 411
*.so.pttrs.net.



+1 Profil

icon Re: Definisanje funkcija..... etc?18.09.2005. u 15:13 - pre 226 meseci
Pa fazon je da preko int base prosledjujes bazu, a preko n eksponent.
Unutar funkcije se vrsi ekponenciranje u for petlji, tj. p = p * base, i na kraju ti vraca rezultat base na n-tu.
Ove int i i p, koje su deklarisane unutar funkcije su pomocne vrijednosti koje sluze za izracunavanje onoga sto je nama potrebno u ovom slucaju to je rezultat stepenovanja.
 
Odgovor na temu

sucur
Miljan Sucur
Web developer
Istocno Sarajevo

Član broj: 50035
Poruke: 411
*.so.pttrs.net.



+1 Profil

icon Re: Definisanje funkcija..... etc?18.09.2005. u 15:20 - pre 226 meseci
Evo ti primjer sta se tu desava:
Ti u main-u prosledis preko funkcije bazu i eksponent, recimo power(2,3);
Unutar funkcije se vrsi to izracunavanje, dakle imas for petlju (i = 1;i <= n;i++);
Znaci ona ce se vrtiti 3 puta, jer ti je proslijedjeno n = 3;
I ide :
1. put: p = 1 * 2, to je p = 2;
2. put: p = 2 * 2, to je p = 4;
3. put: p = 4 * 2, to je p = 8;
Zavrsena petlja i funkcija vraca vrijednost p, to je u ovom slucaju 8.
Valjda je sad jasno .
 
Odgovor na temu

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon Re: Definisanje funkcija..... etc?18.09.2005. u 15:28 - pre 226 meseci
printf("%d %d %d", i, power(2,i), power(-3,i)); -ovdje imas poziv f-je power. Ti si joj posalo 2 parametra (koje si pri deklaraciji f-je naveo) u ovom slucaju 2 i "i"

ti si mogao npr. staviti u deklaraciji int power(int a,int b) a kasnije kad zoves f-ju da je pozoves sa: power(c,d) (gdje su c i d neki cijeli brojevi u glavnom programu)

i f-ja ce znati da je "c" zapravo "a" a da je "d" zapravo "b" po mjestima koje si im dodjelio pri deklaraciji, tj. pozivu...
takodje, promjenjive koje su deklarisane unutar f-je glavni program (main()) ne vidi!!!!! kao sto f-ja ne vidi ni promjenjive u glavnom programu!!!!znaci mozes totalno iste promjenjive koristiti u obe ove cjeline (istog imena i tipa)!! vazno je samo sta saljes f-ji...ona TO vidi...

posto je sama f-ja power(int a,int b) neki broj (vraca vrijednost INT) ti shvati tvoj poziv power(2,i) kao neki obicni broj, sto je zapravo njen rezultat...

uh, stvarno sam zurio, pa sam sve s brda- s dola napisao....nadam se da si bar ponesto shvatio...

pogledaj ovaj link ka jednom forumu gdje je malo objasnjeno oko f-ja takodje...:

http://www.taraba.org/forum/viewtopic.php?t=31&start=40
there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

xeron
Sarajevo

Član broj: 25909
Poruke: 133
*.dlp443.bih.net.ba.



Profil

icon Re: Definisanje funkcija..... etc?18.09.2005. u 18:25 - pre 226 meseci
Citat:
Evo ti primjer sta se tu desava:
Ti u main-u prosledis preko funkcije bazu i eksponent, recimo power(2,3);
Unutar funkcije se vrsi to izracunavanje, dakle imas for petlju (i = 1;i <= n;i++);
Znaci ona ce se vrtiti 3 puta, jer ti je proslijedjeno n = 3;
I ide :
1. put: p = 1 * 2, to je p = 2;
2. put: p = 2 * 2, to je p = 4;
3. put: p = 4 * 2, to je p = 8;
Zavrsena petlja i funkcija vraca vrijednost p, to je u ovom slucaju 8.
Valjda je sad jasno .


a sta radi u slucaju n=0
if (argc > 1 && strcmp(argv[1], "-advice") == 0) {
printf("Don't Panic!n");
exit(42);
}
 
Odgovor na temu

sucur
Miljan Sucur
Web developer
Istocno Sarajevo

Član broj: 50035
Poruke: 411
*.so.pttrs.net.



+1 Profil

icon Re: Definisanje funkcija..... etc?18.09.2005. u 20:03 - pre 226 meseci
Citat:
a sta radi u slucaju n=0

Ako je eksponent jednak 0, to je u matematici jednako 1, zbog toga u kodu i stoji prije for petlje u funkciji p = 1. Znaci vraca 1.

[Ovu poruku je menjao sucur dana 18.09.2005. u 21:04 GMT+1]
 
Odgovor na temu

xeron
Sarajevo

Član broj: 25909
Poruke: 133
*.dlp172.bih.net.ba.



Profil

icon Re: Definisanje funkcija..... etc?19.09.2005. u 19:17 - pre 226 meseci
ok thanx

if (argc > 1 && strcmp(argv[1], "-advice") == 0) {
printf("Don't Panic!n");
exit(42);
}
 
Odgovor na temu

[es] :: C/C++ programiranje :: Definisanje funkcija..... etc?

[ Pregleda: 4104 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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