next up previous
Next: About this document ... Up: Sestevanje clenov zaporedja Previous: Sestevanje clenov zaporedja

Z rekurzijo

Uporabili bomo nove funkcije. Definirali bomo eno samo funkcijo, ki bo izracunala vsoto - vrnila celo stevilo. Glava definicije funkcije bo tako int sestej_zaporedje1.

Kako bomo to naredili? Ce znamo sesteti preostanek (clene od drugega naprej) zaporedja, znamo sesteti zaporedje. Preostanek zaporedja je neko novo zaporedje. Sestejemo ga z isto funkcijo a z novimi parametri.

Zaradi boljse preglednosti damo konec in zacetek definicij funkcij se crto: /* --------- */.

V komentarjih smo napisali vse, kar smo naredili.

Ostale clene zaporedja sestejemo tako, da klicemo funkcijo

\begin{displaymath}\texttt{sestej\_zaporedje1(zacetni clen + korak, korak, stevilo\_clenov - 1)}
\end{displaymath}

ki stoji v 48 vrstici in enaindvajsetem stolpcu. Rezultat dobimo kot vrednost funkcije, moramo ga shraniti v spremenljivko: int vsota; v 47 vrstico in drugi stolpec. Vsoti pristejemo se prvi clen in dobimo vsoto zaporedja. To vsoto vrnemo kot rezultat.

Podobno kot v podprogramu, tudi v glavnem programu definiramo vsoto:

int main(void) {
  int vsota;
  ...
  vsota = sestej_zaporedje1( ... );
  ...
} /* main */
Spremenljivko vsota potrebujemo (kot v podprogramu), da v njo shranimo vrednost, ki jo vrne funkcija.

V primeru, da se program ne izvaja, uporabimo debug. Pogledamo zacetni clen in parametre ter tako ugotovimo, zakaj ne dela, kakor bi moral.


next up previous
Next: About this document ... Up: Sestevanje clenov zaporedja Previous: Sestevanje clenov zaporedja
Andrej Brodnik (Andy)
1998-12-30