[ Fidelito_Castro @ 04.12.2007. 03:06 ] @
Code:

....
double stepen(double osnova,int eksponent)//korisnicka funkcija stepen
{

    double y;

    y=1.0;
    int i;

    for(i=0;i<eksponent;i++)
        y=y*osnova;
    return y;

}
...


Zamolio bih nekoga za pomoc?

1)zasto je vrednost y inicijalizovana na jedan
2)nije mi jasan deo sa for petljom
Code:

for(i=0;i<eksponent;i++)
        y=y*x;


3)da li se moze napisati funkcija za stepenovanje na neki drugi nacin???
Unapred zahvalan !
[ Fidelito_Castro @ 04.12.2007. 03:35 ] @
Malo sam eksperimentisao i iskoristio sam pretprocesorsku direktivu<math.h> i preko nje iskoristio funkciju pow().
Evo koda:

Code:

...
double stepen(double osnova,int eksponent)//korisnicka funkcija stepen
{

    double y;

    y=pow(osnova,eksponent);

    return y;

}
...

Ja mislim da cim program radi,da moze i na ovaj nacin?
Ali ipak bih hteo da shvatim i prethodni deo koda za stepenovanje??????????
[ X Files @ 04.12.2007. 06:31 ] @
y=1.0; je tzv. inicijalna vrednost za množenje. Kada bi y bilo nula onda bi se u petlji sve množilo na nulom i rezultat bi ostao nula, a ne umnožak serije brojeva.

Code:

for(i=0;i<eksponent;i++)
   y=y*osnova;

...ovo već moraš da znaš sam da protumačiš.

Recimo:
osnova=2
eksponent=4

osnovaeksponent = 24 = 2*2*2*2 = 16

Dakle, ČETIRI PUTA (eksponent) preba pomnožiti DVOJKU (osnova). Gore je data petlja koja upravo to radi.

Donji primer, sa pow() naravno da radi, samo što to nije poenta primera, i sva je prilika da zadatak neće biti adekvatno vrednovan kod nastavnika. Uopšte nemaš potrebu da onda praviš funkciju za stepenovanje ako koristiš pow() jer ona je već funkcija.


[Ovu poruku je menjao X Files dana 04.12.2007. u 08:00 GMT+1]
[ Fidelito_Castro @ 04.12.2007. 08:40 ] @
Hvala prijatelju razumeo sam nesto!
Ali me i dalje buni ovaj deo?
Code:

for(i=0;i<eksponent;i++)


Znam da je to petlja ali nije mi jasno kako uspe eksponent da se doda na osnovu.Buni me promenljva i???
[ idb @ 04.12.2007. 11:09 ] @
Code:
double stepen(double osnova,int eksponent)//korisnicka funkcija stepen
{
    double y;
    y = 1.0;
    int i;
    for(i=0;i<eksponent;i++){
        y=y*osnova;
        // UBACI OVAJ RED - i prati sta ti ispisuje - sve ce ti biti jasno
        printf("i=%d,  y=%f\n", i, y);
    }
    return y;
}
[ Fidelito_Castro @ 05.12.2007. 23:16 ] @
Hval ti Punoooo prijatelju!!!
Sve sam razumeo.