evo patim se i mucim s rekurzijom...tek shto mislim da sam shvatio pojavi se neki primjer koji ne kontam...kao npr. slijedeci:
Code:
#include <iostream>
using namespace std;
void prikaziUnazad()
{
char znak;
cin>>znak;
if(znak!='.')
{
prikaziUnazad();
cout<<znak;
}
else
{
cout<<"\nObrnutim redosljedom ste unijeli: ";
}
}
void main()
{
cout<<"\t\t::REKURZIJA::\n\n";
cout<<"Unesite vas tekst: ";
prikaziUnazad();
}
#include <iostream>
using namespace std;
void prikaziUnazad()
{
char znak;
cin>>znak;
if(znak!='.')
{
prikaziUnazad();
cout<<znak;
}
else
{
cout<<"\nObrnutim redosljedom ste unijeli: ";
}
}
void main()
{
cout<<"\t\t::REKURZIJA::\n\n";
cout<<"Unesite vas tekst: ";
prikaziUnazad();
}
Tekst zadatka glasi :
Koristeći rekurziju, napisati program koji korisniku omogućava da unese željeni tekst. Uslov za završetak programa je da uneseni tekst sadrži najmanje jednu tačku (.). Nakon unosa, program treba obrnutim redosljedom ispisati sve znakove koji su uneseni do prvog znaka tačke.
eh posto je najlakse krenuti shta mi je jasno....dakle...jasno mi je to da on krene provjeravati znakove iz buffera i ako znak nije tacka ponovo poziva funkciju...i tu nastaju problemi u mojoj glavi :D. Dakle on ponovo poziva istu funkciju u logika je da je krece od pocetka...eh zasto mi ponovo onda ne nudi da unosim karaktere....zbog onoga cin>>znak; ???? eh dalje...pretpostavljam da to 'nekako' radi....eh kada dodje do znaka '.' preskace if i ide na else...eh tu nastaju zestoki problemi u mojoj glavi...kako to da on u tome else ispise obrnuto...ustvari kako uopste ispise obrnuto??...mislim znam da svaka 'kopija' funkcije zauzima mjesto na stacku i kada se stack prazni (a posto je stack LIFO) treba da se ispisuje posljednji...to je ono u mojoj glavi kako sam zamislio...ali kako ispisuje kada on nije nijednom uradio cout??? jer kad pogledamo on je ulazio u if uslov i samo izvrsavao prvu liniju koda u uslovu, odnosno rekurziju (prikaziUnazad();)...dakle nije nijedno izvrsio cout<<znak; jer je s znakom '.' odmah otisao na else :S:S:S :D:D:D