Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

rekurzivna funkcija moze li nekio help ??????

[es] :: C++ programiranje :: C++ za početnike :: rekurzivna funkcija moze li nekio help ??????

[ Pregleda: 1162 | Odgovora: 13 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

KoKuZ
Novi Travnik

Član broj: 140089
Poruke: 99
*.Global-Internet.ba.



Profil

icon rekurzivna funkcija moze li nekio help ??????16.04.2007. u 14:48

Napisati program koji ce na osnovu unesenog broja, koristeci koristeci rekurzivnu funkciju, izracunati sumu parnih brojeva izmedju unesenog i broja 100. Napomena: korisnik moze unijeti broj koji je veci ili manji od broja 100.


Windows is Hell!!!
16.04.2007. u 14:48 

Milos Zobenica
Sombor / Beograd

Član broj: 13465
Poruke: 1050
*.rcub.bg.ac.yu.

ICQ: 177616268


Profil

icon Re: rekurzivna funkcija moze li nekio help ??????16.04.2007. u 16:40
Code:

int zbir = 0;
int f(int i){
if (i < 100) zbir = zbir + f(i+1);
else return zbir
}


To bi trebalo da je ta funkcija.
16.04.2007. u 16:40 

Mali Misha
Mihajlo Anđelković

Član broj: 79396
Poruke: 311
89.190.198.*

ICQ: 195487525


Profil

icon Re: rekurzivna funkcija moze li nekio help ??????16.04.2007. u 16:54
To nije funkcija..
Može biti njeno telo ili njegov deo.

KoKuZ, zašto ne napraviš ikakav pokušaj?
Dim di dam...
16.04.2007. u 16:54 

belegija
sarajevo

Član broj: 141988
Poruke: 22
*.pmf.unsa.ba.



Profil

icon Re: rekurzivna funkcija moze li nekio help ??????16.04.2007. u 17:03
To definitivno nije fja. Trebala bi biti rastavljena na 2 dijela: za brojeve vece od 100 i brojeve manje od 100. I ovdje sabira sve brojeve a ne samo parne.
C++er
16.04.2007. u 17:03 

Milos Zobenica
Sombor / Beograd

Član broj: 13465
Poruke: 1050
*.rcub.bg.ac.yu.

ICQ: 177616268


Profil

icon Re: rekurzivna funkcija moze li nekio help ??????16.04.2007. u 21:03
Nisam video da trebaju parni brojevi da se saberu
Ovo je onda ta rekurzivna funkcija.

Code:

int f(int i){

if ((i < 100) & (i % 2 == 0))return (i + f(i+2));
if ((i < 100) & ( i % 2 == 1)) {
    i++;
    return f(i);
}
if (i > 100) return i;
}


16.04.2007. u 21:03 

SuPeR_MaSteR
Mladen Krstic
Loznica

Član broj: 88590
Poruke: 114
*.inffo.net.

Sajt: mladen.krsticc.net


Profil

icon Re: rekurzivna funkcija moze li nekio help ??????16.04.2007. u 21:14
Evo f-je:
Code:

int sum = 0;
int f(int num)
{
   if (num == 100)
       return sum;
    if (num % 2 == 0)
        sum += num;
    if (num < 100)
        f(++num);
    else
        f(--num);
}

Ako ne mozes da pobedis, mozes poraz da prihvatis kao deo procesa dobijanja.
16.04.2007. u 21:14 

Mali Misha
Mihajlo Anđelković

Član broj: 79396
Poruke: 311
89.190.198.*

ICQ: 195487525


Profil

icon Re: rekurzivna funkcija moze li nekio help ??????16.04.2007. u 22:30
KoKuZ nisi rekao da li u sumu ulaze dat broj i 100.

@ Milos Zobenica:
Pa nije baš. Probaj recimo sa nekim brojem većim od 100.

@ SuPeR_MaSteR
Ja bih tvoju f-ju zapisao ovako: (Ne zbog ternarnih operatora, nego zbog lepše postavljenog return i nepostojanja globalne promenljive)
Code:
int f1(int num)
{    
    if(num==100) return 0;
    
    return
        ( num&1 ? 0 : num )
        + ( (num<100) ? f1(num+1) : f1(num-1) );
}

Dim di dam...
16.04.2007. u 22:30 

Milos Zobenica
Sombor / Beograd

Član broj: 13465
Poruke: 1050
147.91.1.*

ICQ: 177616268


Profil

icon Re: rekurzivna funkcija moze li nekio help ??????16.04.2007. u 22:36
U pravu si za broj veci od 100, resenje je da se umesto
Code:
if (i > 100) return i;


stavi

Code:
if (i > 100) return 0;
16.04.2007. u 22:36 

KoKuZ
Novi Travnik

Član broj: 140089
Poruke: 99
*.Global-Internet.ba.



Profil

icon Re: rekurzivna funkcija moze li nekio help ??????17.04.2007. u 20:54
cccc ja sam sebi ev govorim kako sam glup jer sam pokusavo nesto drugo...mislim da bi sada uradio ovako kao kolega Mali Misha
Code:

int f1(int num)
{    
    if(num==100) return 0;
    
    return
        ( num&1 ? 0 : num )
        + ( (num<100) ? f1(num+1) : f1(num-1) );
}


posto sam skontao u cemu je point :D

hvala :D
Windows is Hell!!!
17.04.2007. u 20:54 

Mali Misha
Mihajlo Anđelković

Član broj: 79396
Poruke: 311
89.190.198.*

ICQ: 195487525


Profil

icon Re: rekurzivna funkcija moze li nekio help ??????18.04.2007. u 19:03
@ Milos Zobenica
Sumljam da će to popraviti stvar. Funkcija treba da radi i za brojeve veće od sto, znači nešto kao ovo:

f(80) = 80 + 82 + 84 + 86 + ... + 98 = 890
f(120) = 120 + 118 + 116 + 114 + ... + 102 = 1110

Probaj da ispisuješ rezultate funkcija zajedno i upoređuj rezultate dok ne budeš zadovoljan:
Code:
  cout << f(2000) << '\n' << f1(2000);

Dim di dam...
18.04.2007. u 19:03 

Milos Zobenica
Sombor / Beograd

Član broj: 13465
Poruke: 1050
*.rcub.bg.ac.yu.

ICQ: 177616268


Profil

icon Re: rekurzivna funkcija moze li nekio help ??????18.04.2007. u 19:42
Izgleda da ja vise nisam procitao iz prvog topica nego sto sam procitao, evo ispravio sam resenje, tacnije samo dodao za brojeve > 100, isprobao, radi.

Code:


int f(int i){

if ((i < 100) & (i % 2 == 0))return (i + f(i+2));
if ((i < 100) & ( i % 2 == 1)) {
    i++;
    return f(i);
}


if ((i > 100) & (i % 2 == 0))return (i + f(i-2));
if ((i > 100) & ( i % 2 == 1)) {
    i--;
    return f(i);
}

if ((i = 100) | ( i = 99) | ( i = 101)) return 0;
}
18.04.2007. u 19:42 

Trantor

Član broj: 100930
Poruke: 60
77.46.253.*

ICQ: 199139277


Profil

icon Re: rekurzivna funkcija moze li nekio help ??????02.05.2007. u 22:31
Pozdrav svima.

Imam i ja jedan problem koji nije direktno u vezi sa rekurzivnom funkcijom, mada se u ovom programu ona pojavljuje.
Naime treba da napišem program koji diže broj na stepen ako se i broj i stepen zadaju sa tastature. Traži se da se to
odradi rekurzivnom funkcijom što sam ja i odradio ali mi kompajler non stop javlja grešku. Fora je u tome da sam već
imao slučan problem i program je odjednom proradio bez ikakvog objasnjenja. Da li je moguće da je upitanju kompajler
Dev C++ v 4.9.9.2? Inače evo koda pa ako neko ima malo vremena bilo bi lepo ako može da mi pomogne. Hvala unapred.

// Program koji trazi broj i stepen i koristi rekurzivnu
// funkciju "Stepenovanje" za dizanje broja na stepen.

#include <iostream>

using namespace std;

unsigned long Stepenavanje(unsigned short broj, unsigned short stepen);

int main()
{
unsigned short x, y;
unsigned long rezultat;
cout << "Unesite broj koji zelite da stepenujete: " << endl;
cin >> x;
cout << "Unesite broj kojim zelite da stepenujete: " << endl;
cin >> y;
rezultat = Stepenovanje(short unsigned x, short unsigned y);
cout << "Trazeni broj je: " << rezultat << endl;
system("PAUSE");
return 0;
}

unsigned long Stepenovanje(unsigned short x, unsigned short y)
{
if ( y == 0)
return 1;
if ( y == 1)
return x;
else
return (x * Stepenovanje(x, y - 1);
}


[Ovu poruku je menjao Trantor dana 03.05.2007. u 00:29 GMT+1]
The truth is out there and I want to believe.
02.05.2007. u 22:31 

pcaca
Aleksandar
Makedonija

Član broj: 5333
Poruke: 79
62.162.179.*



Profil

icon Re: rekurzivna funkcija moze li nekio help ??????03.05.2007. u 03:03
Evo ispravan kod:
Code:
#include <iostream>

using namespace std;

unsigned long Stepenovanje(unsigned short broj, unsigned short stepen);

int main()
{
    unsigned short x, y;
    unsigned long rezultat;
    cout << "Unesite broj koji zelite da stepenujete: " << endl;
    cin >> x;
    cout << "Unesite broj kojim zelite da stepenujete: " << endl;
    cin >> y;
    rezultat = Stepenovanje(x, y);
    cout << "Trazeni broj je: " << rezultat << endl;
    system("PAUSE");
    return 0;
}

unsigned long Stepenovanje(unsigned short x, unsigned short y)
{
    if ( y == 0)
        return 1;
    if ( y == 1)
        return x;
    else
        return (x * Stepenovanje(x, y - 1));
}

Imao si nekoliko gresaka:
1. Ime funkcije kod deklaracije bilo je napisano Stepenavanje.
2. Kada zoves funkciju ne trebaju tipovi. Ispravno je Stepenovanje(x, y); bez short unsigned.
3. Falila je jedna zagrada u zadnjem redu funkcije, kod return-a.
03.05.2007. u 03:03 

Trantor

Član broj: 100930
Poruke: 60
77.46.253.*

ICQ: 199139277


Profil

icon Re: rekurzivna funkcija moze li nekio help ??????03.05.2007. u 10:40
Aleksandre hvala ti puno.

Znam ja da u pozivu funkcije nije potrebno stavljati tip promenljive koje se predaje funkciji po vrednosti.
ali sam bio očajan i nisam znao šta vise da probam. Sad mi je čak i smešno kako sam bio tako slep.
Hvala još jednom.
The truth is out there and I want to believe.
03.05.2007. u 10:40 

[es] :: C++ programiranje :: C++ za početnike :: rekurzivna funkcija moze li nekio help ??????

[ Pregleda: 1162 | Odgovora: 13 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.