Pomoc oko rekurzije

poruka: 22
|
čitano: 2.452
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
13 godina
neaktivan
offline
Pomoc oko rekurzije

Napraviti rekurzivnu funkciju koja ce omoguciti unos karaktera sve do momenta dok korisnik ne unese tacku (.) . Nakon unosenja tacke ,program treba obrnutim redosljedom da ispise sve unesene znakove i koliko je znakova uneseno. 

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Pomoc oko rekurzije

I u cemu je problem? Znas li sto je rekurzija? Ajde da cujem tvoju definiciju?

My computer once beat me at chess, but we got even after a round of boxing.
15 godina
offline
Re: Pomoc oko rekurzije
Ja neznam sta je, ali mislim da znam o cemu je rijec
treba upisivati dok se neupise .
Kad se upise onda ispisati sve samo naopacke
Jesam shvatio?
Autoclimb kills more people than AIDS
14 godina
offline
Pomoc oko rekurzije

#include <cstring>

#include <iostream>

#include <algorithm>

using namespace std;

 

char upis( string& x)

{

   char C;

  cin >> C;

   x += C;

   if(C != '.')

       upis(x);

 

}

 

 

   int main()

   {

 

   string x ="";

 

       upis( x ) ;

 

       reverse(x.begin(),x.end());

 

 

       cout << endl << endl<<  "Obrni me njezno:" << endl << endl;

 

 

       for(string :: iterator it = x.begin(); it < x.end(); it++)

       cout << *it << endl; // malo preseravanja

 

       cout << endl << "Velicina:" <<  x.size() << endl;

       return 0;

 

       }

 

LoL NordicEU : Heineken01
Poruka je uređivana zadnji put ned 11.3.2012 2:37 (KKristijan).
 
3 0 hvala 0
17 godina
offline
Pomoc oko rekurzije

Ja ti ne vidim ovdje da tvoja funkcija koja je deklarirana kao char ima povratnu vrijednost, to ne može raditi, a druga stvar, čemu reverse i iteratori, kad rekurzija sa stoga skida obrnutim redosljedom.

Potrebno je samo sa stoga poskidati postavljene znakove od vrha prema dolje i pribrojiti ih stringu.

 

 


#include<iostream>
#include<string>
using namespace std;
 
string ObrnutiIspis(string rijec)
{
    char znak;
    cin>> znak;
    if(znak == '.') return "";
    return  ObrnutiIspis(rijec) + znak;

}
int main()
{
    string rijec = "";
    string obrnuto  = ObrnutiIspis(rijec);
    cout<< obrnuto;
   
    return 0;
}

Poruka je uređivana zadnji put ned 11.3.2012 22:16 (Floki).
 
0 0 hvala 0
16 godina
neaktivan
offline
Re: Pomoc oko rekurzije

evo ti još jedna verzija:

 

#include <iostream>
#include <string>
using namespace std;

void giveString()
{
  cout<< "upisi neki karakter : ";
  string karakter;
  cin>> karakter;
  if(karakter == ".")
  {
     cout<< "." << endl << endl;        
     return;          
  }
 
  giveString();
  cout<< "obrnuto : " << karakter << endl;
}



int main()
{
 giveString();
 return 0;
}

Poruka je uređivana zadnji put pon 12.3.2012 0:01 (nik_02).
14 godina
offline
Re: Pomoc oko rekurzije
Floki kaže...

Ja ti ne vidim ovdje da tvoja funkcija koja je deklarirana kao char ima povratnu vrijednost, to ne može raditi, a druga stvar, čemu reverse i iteratori, kad rekurzija sa stoga skida obrnutim redosljedom.

Potrebno je samo sa stoga poskidati postavljene znakove od vrha prema dolje i pribrojiti ih stringu.

 

 


#include<iostream>
#include<string>
using namespace std;
 
string ObrnutiIspis(string rijec)
{
    char znak;
    cin>> znak;
    if(znak == '.') return "";
    return  ObrnutiIspis(rijec) + znak;

}
int main()
{
    string rijec = "";
    string obrnuto  = ObrnutiIspis(rijec);
    cout<< obrnuto;
   
    return 0;
}

Dobro ovo za stack je istina, debil sam ( samo sam tipkao, da sam 1 min dulje razmislio napisao bih to), no ovo da funkcija mora nešto vraćati...? Koliko ja znam mogao sam staviti int i ovo bi radilo.

LoL NordicEU : Heineken01
Poruka je uređivana zadnji put pon 12.3.2012 0:02 (KKristijan).
17 godina
offline
Pomoc oko rekurzije

char upis( string& x)

{

   char C;

  cin >> C;

   x += C;

   if(C != '.')

       upis(x);

}

 

 

Pa da, funkcija mora vraćati onu vrijednost koja joj je dekarirana kao povratna vrijednost, ovoj je definirana char vrijednost kao povratna, a ne vraća ništa.

 
0 0 hvala 0
17 godina
protjeran
offline
Pomoc oko rekurzije

Jel ovo OK?

 

 

#include <vector>

#include <iostream>

using namespace std;

std::vector<char> vector1;

 

void rekurzivnaFun()

{

char c;

cin >> c;

if (c == '.') return

vector1.push_back(c);

rekurzivnaFun();

}

 

int main()

{

rekurzivnaFun();

for (int i = vector1.size() ; i>0; --i)

cout<< vector1.at(i-1);

return 0;

}

 

 

Nemojte mi zamjeriti ako moji primjeri nisu prema vašem nastavnom planu al' me jednostavno zahvatio C++11 val i sada ga malo jašem i usput obnavljam svoje cpp znanje.

Programko http://programko.bloger.hr
 
1 0 hvala 0
17 godina
offline
Pomoc oko rekurzije

Sviđa mi se, samo, onda treba iskoristiti drugi stupanj rekurzije, odnosno skidanje sa stoga za ispis elemenata, umjesto iteracije.

A onda nije loše usput i skinuti elemente iz vektora. Pošto već postoji jedna globalna varijabla, onda uvaliti i brojač.

 

#include <vector>
#include <iostream>
using namespace std;
std::vector<char> vector1;
int brojac = 0;
 
void rekurzivnaFun()
{
char c;
cin >> c;
if (c == '.') return;
vector1.push_back(c);
rekurzivnaFun();
brojac++;
cout<< vector1.back();
vector1.pop_back();
}
 
int main()
{
rekurzivnaFun();
cout<< "Broj elemenata: " << brojac << endl;
return 0;
}
 
 

 
1 0 hvala 1
17 godina
neaktivan
offline
Pomoc oko rekurzije

Zašto komplicirate bezveze ?

 

#include<stdio.h>

 

void rek(){

   char c;

   c=getchar();

   if(c != '.'){

     rek();

     printf("%c",c);

   }

}

 

int main(){

   rek();

   return 0;

}

 

All religions are the same: religion is basically guilt, with different holidays.
Poruka je uređivana zadnji put pon 12.3.2012 22:13 (drnde).
 
2 0 hvala 0
16 godina
neaktivan
offline
Re: Pomoc oko rekurzije
drnde kaže...

Zašto komplicirate bezveze ?

 

#include<stdio.h>

 

void rek(){

   char c;

   c=getchar();

   if(c != '.'){

     rek();

     printf("%c",c);

   }

}

 

int main(){

   rek();

   return 0;

}

 

 

Ajde ne budi nadobudan.

Samo brisajući neke dijelove  prvobitnog koda novi je dug 11 linija u usporedbi s 10 gore citiranih.

Da je if(karakter == ".")
  return; 

 

promijenjeno u

 

if(karakter != ".") // bez return ispod

 

kod bi nam bio istovjetan u dlaku s tim da je tvoj postan dan iza.

 

#include <iostream>

void giveString()
{
  std::string karakter;
  std::cin>> karakter;
  if(karakter == ".")
  return;          
  giveString();
  std::cout<< "obrnuto : " << karakter << std::endl;
}

int main()
{
 giveString();
 return 0;
}

 


Ovo su osnove osnova pa nema potrebe za bijesnom retorikom kaj se komplicira a nakon toga postaš identičan kod u C-u s jednom lajnom manje.

Ako si već sklon takvim istupima , predlažem da ubuduće snimiš letimično postove jer ti blamaža kao starom forumašu nije potrebna.

 

17 godina
offline
Pomoc oko rekurzije

Iskreno, nije mi baš bilo svejedno za ono "zašto komplicirate bezveze?", a samo sam na traženje čovjeka dao mišljenje o njegovoj implementaciji vector containera u ovu svrhu. Smatram da nisam pisao da nešto napišem, nego dao nešto konstrutivno, a u krajnjoj liniji podložno evaluaciji svih na forumu. A bit će mi drago ako je čovjeku pomoglo u razumjevanju i implementaciji vector containera.

 

Međutim, namjerno nisam htio reagirati, prepuštajući to pravo autoru koda čiju je on varijaciju napisao. Da, u tom slučaju kad se piše varijacija u stvari istog koda, kulturno je naglasiti: "ovo je varijacija koda kojeg je dotični forumaš napisao".

Ali u tom slučaju bi ulet izgubio na teatralnosti, zar ne.{#}

Poruka je uređivana zadnji put uto 13.3.2012 12:19 (Floki).
 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Pomoc oko rekurzije
nik_02 kaže...

 

Ajde ne budi nadobudan.

Samo brisajući neke dijelove  prvobitnog koda novi je dug 11 linija u usporedbi s 10 gore citiranih.

 

...

 

Ovo su osnove osnova pa nema potrebe za bijesnom retorikom kaj se komplicira a nakon toga postaš identičan kod u C-u s jednom lajnom manje.

Ako si već sklon takvim istupima , predlažem da ubuduće snimiš letimično postove jer ti blamaža kao starom forumašu nije potrebna.

 

 

Po tebi sam znači zaslužio da mi se obračaš nepristojno, jer šta? Osjećaš se osobno napadnuto mojim postom ?

I sad mi još reci kako da te uzimam za ozbiljnio ubuduće ?

A i Floki se naravno slaže da sam zaslužio jer mu smeta moja teatralnost {#}

 

 

Jeste logika je očito ista ali vjerovao ili ne i ti kompliciraš, koristiš string umjesto char, return umjesto da pravilno napišeš uvjetni izraz, "<< endl << endl;" ? , ... , ali naravno ispričavam se što nisam u detalje proučio sav obfuscirani "C++" kod u temi prije što sam išta napisao da nebi slučajno nekoga uvrijedio. 

 

btw. razlika je u ~ 170 ili ~ 250lajni koda u prvom slučaju, tako da molim vas okanite me se {#}

 

All religions are the same: religion is basically guilt, with different holidays.
17 godina
offline
Pomoc oko rekurzije

jednostavno rečeno, ukrao si čovjeku kod, što nisi naglasio da si napisao inačicu već napisanog, zapitaj se sam

pošto nisi naglsio da si napisao inačicu istog koda, to jest kopija, što drugo, što nisi naglasio gdje vidiš izmjene u njegovom kodu, umjesto što nešto prodavaš pod svoje

uostalom, i jedna i druga inačica uvjetnog izraza izvode taj return, bio on napisan ili ne, kod se u dlaku izvodi na isti način uz varijaciju u uvjetu, ništa drugo.

Poruka je uređivana zadnji put uto 13.3.2012 13:32 (Floki).
 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Pomoc oko rekurzije
Floki kaže...

jednostavno rečeno, ukrao si čovjeku kod, što nisi naglasio da si napisao inačicu već napisanog, zapitaj se sam

pošto nisi naglsio da si napisao inačicu istog koda, to jest kopija, što drugo, što nisi naglasio gdje vidiš izmjene u njegovom kodu, umjesto što nešto prodavaš pod svoje

Vjerovao ili ne nisam čovjeku ništa ukrao, ono je slučajno najednostavniji način na koji se može izvesti onaj prvi zahtjev.

Niti je moje ni njegovo, samo je logično. Obfuscirate kod i onda ljude optužujete da vam ga ne čitaju. Give me a break.

All religions are the same: religion is basically guilt, with different holidays.
17 godina
offline
Pomoc oko rekurzije

u čemu je tvoj način jednostavniji od njegovog, to je potpuno ista stvar, a to nisi naglasio

ja ti sad ovdje otvoreno kažem da je to ista stvar, a izvođenje toga returna svejedno imaš, napisao ga ili ne

 
0 0 hvala 0
16 godina
neaktivan
offline
Re: Pomoc oko rekurzije
drnde kaže...
nik_02 kaže...

 

Ajde ne budi nadobudan.

Samo brisajući neke dijelove  prvobitnog koda novi je dug 11 linija u usporedbi s 10 gore citiranih.

 

...

 

Ovo su osnove osnova pa nema potrebe za bijesnom retorikom kaj se komplicira a nakon toga postaš identičan kod u C-u s jednom lajnom manje.

Ako si već sklon takvim istupima , predlažem da ubuduće snimiš letimično postove jer ti blamaža kao starom forumašu nije potrebna.

 

 

Po tebi sam znači zaslužio da mi se obračaš nepristojno, jer šta? Osjećaš se osobno napadnuto mojim postom ?

I sad mi još reci kako da te uzimam za ozbiljnio ubuduće ?

A i Floki se naravno slaže da sam zaslužio jer mu smeta moja teatralnost {#}

 

 

Jeste logika je očito ista ali vjerovao ili ne i ti kompliciraš, koristiš string umjesto char, return umjesto da pravilno napišeš uvjetni izraz, "<< endl << endl;" ? , ... , ali naravno ispričavam se što nisam u detalje proučio sav obfuscirani "C++" kod u temi prije što sam išta napisao da nebi slučajno nekoga uvrijedio. 

 

btw. razlika je u ~ 170 ili ~ 250lajni koda u prvom slučaju, tako da molim vas okanite me se {#}

 

 

 

 

 

 

Po tebi sam znači zaslužio da mi se obračaš nepristojno, jer šta? Osjećaš se osobno napadnuto mojim postom ?

 

Apsolutno si to zaslužio jer napisavši  ""Zašto komplicirate bezveze ?"" a potom objavivši u globalu repliku mog koda zapravo si mi rekao da ti je doma dosadno i ideš na forum demonstrirati svoju "moć" na tako jednostavnom  zadatku a zapravao nije ništa pametnije bilo na TV-u za tebe mi se čini.Ovdje smo da pomognemo čovjeku koji je postao pitanje a ne se praviti div pred bedastoćom od par linija koda.

 

I sad mi još reci kako da te uzimam za ozbiljnio ubuduće ?

 

Jednostavno se pravi da ne postojim. Ne vrijedi vice-versa.

 

Jeste logika je očito ista ali vjerovao ili ne i ti kompliciraš, koristiš string umjesto char, return umjesto da pravilno napišeš uvjetni izraz, "<< endl << endl;" ? , ... 

 

Pa da si ubacio u compiler vidio bi svrhu endl<<endl -> ljepši prikaz u CMD-u , nadam se da znaš da string posprema i po jedan karakter kao i char... ma čini mi se da nisi ti to niti kopi pejstao pa build-run nego eto pišeš da se čuje za tebe.

 

ali naravno ispričavam se što nisam u detalje proučio sav obfuscirani "C++" kod u temi prije što sam išta napisao da nebi slučajno nekoga uvrijedio. 

 

Uvažavam ispriku i odi odmah ga sad prouči jer ako je par kristalno jasnih linija koda za tebe obfuscirano , onda istog časa otvori žirac da ti se uplaćuje na njega kako bi imao za tečaj osnova kodiranja u nekoj školi.

Rado ću ti i ja uplatiti koju kunu.

 

 

btw. razlika je u ~ 170  ili ~ 250

 

Pa ti stvarno ne odustaješ , jasno je da sam mislio na lajne pisanog texta koda.

Dodajem i za instrukcije iz matematike.

 

 

 

 

 

Poruka je uređivana zadnji put uto 13.3.2012 14:05 (nik_02).
16 godina
neaktivan
offline
Pomoc oko rekurzije

Ja kada sam pitao profu što je rekurzija , rekao mi je pogledaj pod rekurzija {#}

 
0 0 hvala 0
17 godina
offline
Pomoc oko rekurzije

Ja znam što bih ja napravio na njegovom mjestu, pozvao bi se na tvoju inačicu i naglasio da sam ubacio obrnuti uvjet.

Ali, njegovo ponašanje, njegova stvar.

End of story.

 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Pomoc oko rekurzije
drnde kaže...
Floki kaže...

jednostavno rečeno, ukrao si čovjeku kod, što nisi naglasio da si napisao inačicu već napisanog, zapitaj se sam

pošto nisi naglsio da si napisao inačicu istog koda, to jest kopija, što drugo, što nisi naglasio gdje vidiš izmjene u njegovom kodu, umjesto što nešto prodavaš pod svoje

Vjerovao ili ne nisam čovjeku ništa ukrao, ono je slučajno najednostavniji način algoritam s kojim se može izvesti onaj prvi zahtjev.

Niti je moje ni njegovo, samo je logično. Obfuscirate kod i onda ljude optužujete da vam ga ne čitaju. Give me a break.

Bolje? Ili moram posegnuti za pintom {#}

 

P.S.  jeste me ispljuvali na osobnoj razini, al nisam ni bolje zaslužio kad kradem kod,  jao ...

All religions are the same: religion is basically guilt, with different holidays.
Poruka je uređivana zadnji put uto 13.3.2012 14:14 (drnde).
16 godina
neaktivan
offline
Re: Pomoc oko rekurzije
drnde kaže...
drnde kaže...
Floki kaže...

jednostavno rečeno, ukrao si čovjeku kod, što nisi naglasio da si napisao inačicu već napisanog, zapitaj se sam

pošto nisi naglsio da si napisao inačicu istog koda, to jest kopija, što drugo, što nisi naglasio gdje vidiš izmjene u njegovom kodu, umjesto što nešto prodavaš pod svoje

Vjerovao ili ne nisam čovjeku ništa ukrao, ono je slučajno najednostavniji način algoritam s kojim se može izvesti onaj prvi zahtjev.

Niti je moje ni njegovo, samo je logično. Obfuscirate kod i onda ljude optužujete da vam ga ne čitaju. Give me a break.

Bolje? Ili moram posegnuti za pintom {#}

 

P.S.  jeste me ispljuvali na osobnoj razini, al nisam ni bolje zaslužio kad kradem kod,  jao ...

 

 

 

Sarkazam ti ne ide od ruke pa i njega treniraj.

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice