Rekurzija - C jezik

1

Rekurzija - C jezik

offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1067
  • Gde živiš: Detroit Rock City

Trebaju mi rekurzivne funckije iz C programskog jezika, ukapirao sam da one mogu da posluže kao petlja jer pozivaju same sebe i tako prave loop, ali imam nejasnoća u vezi sintakse i pomalo logike. Može li neko da postavi neki najprostiji primjer na kojem bih mogao da to shvatim i da dalje napredujem? Smile



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14246
  • Gde živiš: Niš

Evo recimo funkcije za izračunavanje faktorijela: faktorijel(int x) {     if(x == 0)         return 1;     else return x * faktorijel(x - 1); } Dakle, kod rekurzije su dve stvari bitne:
- uslov za izlazak iz rekurzije odnosno za završetak rekurzije, i on je maltene najbitna stvar, a i najčešći uzrok grešaka
- rekurzivni poziv funkcije - funkcija poziva samu sebe, ali gotovo obavezno sa izmenjenim parametrom



offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1067
  • Gde živiš: Detroit Rock City

Da ali imam problem sad sa glavnim programom, kako da ga uklopim sa funkcijom?

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14246
  • Gde živiš: Niš

Auh. Shocked

Glavni program je takođe funkcija. Dakle, imaš dve funkcije jednu pored druge. Very Happy Nakon toga samo u glavnoj funkciji pozoveš funkciju za faktorijel sa konkretnim parametrom i dobiješ rezultat.

offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1067
  • Gde živiš: Detroit Rock City

Imaš li još neke primjere osim ovog faktorijela?

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14246
  • Gde živiš: Niš

Imam u glavi, da. Smile Ali ne bih da pišem sada sve to, pošto je, siguran sam, na netu sve to ispisano mali milion puta. Dakle, tastaturu u ruke i traži. Very Happy

offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1067
  • Gde živiš: Detroit Rock City

Dobio sam zadatak da izračunam preko rekurzivne funkcije koliko unijeti broj ima cifara . Neutral Help me. Neutral Nemam orijentacije.

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14246
  • Gde živiš: Niš

Ovo bi bila neka rekurzivna formula: brojCifara(1234) = 1 + brojCifara(123). Počni odatle.

offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1067
  • Gde živiš: Detroit Rock City

vasa.93 ::Ovo bi bila neka rekurzivna formula: brojCifara(1234) = 1 + brojCifara(123). Počni odatle.

Shocked Ne razumijem, kako da od zadatog broja prepoznam broj cifara, mislim da smo u školi dijelili zadati broj sa 100 ili sa 10 i to je bilo u glavnom programu, ali koja je sad fora sa rekurzivnom funkciom tu, ja ne znam.

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14246
  • Gde živiš: Niš

Samo brojiš jednu po jednu cifru. Dakle, broj cifara bilo kog broja jednak je zbiru jedinice i broja cifara tog istog broja bez poslednje cifre. Poslednju cifru broja "uklanjaš" tako što taj broj podeliš sa 10.

Ko je trenutno na forumu
 

Ukupno su 1012 korisnika na forumu :: 46 registrovanih, 2 sakrivenih i 964 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 1798 - dana 19 Sep 2019 18:42

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _Sale, A.R.Chafee.Jr., aleksandar_tatic, Alojz Hauptman, BlekMen, bondon46, cavatina, cicus91, Dimitrise93, djboj, Doca, Dorcolac, Dovla, Dragan Mačak Damljanović, Ehinacea, Futurama, Gargantua2, igorkozar83, ILGromovnik, JOntra2, Kubovac, lelemud, Maschinekalibar, Mercury2, MiGac, miljannis, NikolaGTR, NoOneEver Dreams, panonski mornar2, proka89, rovac, SAA fan, sasa.zoric, shmele2, Snorks, sosko2, SsssssNOVI, stokanovicm, tanakadzo, tmanda323, USSVoyager, voja64, yufighter, zgoljo, zoranis, zuxbg