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

Problem sa funkcijom if koja se ne poziva iako je uslov za njeno pozivanje ispunjen

[es] :: C programiranje :: C za početnike :: Problem sa funkcijom if koja se ne poziva iako je uslov za njeno pozivanje ispunjen

[ Pregleda: 576 | Odgovora: 6 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Trantor

Član broj: 100930
Poruke: 60
91.150.111.*

ICQ: 199139277


Profil

icon Problem sa funkcijom if koja se ne poziva iako je uslov za njeno pozivanje ispunjen07.12.2007. u 20:42

Zašto dole navedeni kod ne radi kako treba? Naime sve radi dobro dok ne ubacim vrednost za x preko 1.5 kada bi trebalo da se aktivira treća eksponencijalna funkcija a umesto nje se aktivira logaritamska funkcija. Hvala unapred.

#include <iostream>
#include<cmath>

using namespace std;

int main()
{
float x, y;
cout << "Unesite parametar funkcije (x):" << endl;
cin >> x;

if (x<=0.5)
{
y=sqrt (fabs(pow(x,2)+3*x+2));
cout << "Za x=" << x <<" funkcija y=koren|x*x+3*x+2|=" << y << endl;
system("PAUSE");
return 0;
}

if (0.5<x<=1.5)
{
y=log(x+1);
cout << "Za x=" << x <<" funkcija y=ln(x*x+5)=" << y << endl;
system("PAUSE");
return 0;
}

if (x>1.5)
{
y=exp(3*x+1);
cout << "Vrednost funkcije je: " << y <<endl;
system("PAUSE");
return 0;
}


}
The truth is out there and I want to believe.
07.12.2007. u 20:42 

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 2668
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: Problem sa funkcijom if koja se ne poziva iako je uslov za njeno pozivanje ispunjen07.12.2007. u 20:49
Citat:

if (0.5<x<=1.5)

if (x<=1.5)

FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
07.12.2007. u 20:49 

butcher87

Član broj: 148902
Poruke: 30
*.3dnet.co.yu.



Profil

icon Re: Problem sa funkcijom if koja se ne poziva iako je uslov za njeno pozivanje ispunjen07.12.2007. u 23:07
Izvoli...

Code:

#include <iostream>
#include<cmath>

using namespace std;

int main()
{
float x, y;
cout << "Unesite parametar funkcije (x):" << endl;
cin >> x;

if (x<=0.5)
{
y=sqrt (fabs(pow(x,2)+3*x+2));
cout << "Za x=" << x <<" funkcija y=koren|x*x+3*x+2|=" << y << endl;
system("PAUSE");
return 0;
}

if (x>0.5 && x<=1.5) //<<<<<<<<<<<<<<<<<<<<<<
{
y=log(x+1);
cout << "Za x=" << x <<" funkcija y=ln(x*x+5)=" << y << endl;
system("PAUSE");
return 0;
}

if (x>1.5)
{
y=exp(3*x+1); 
cout << "Vrednost funkcije je: " << y <<endl; 
system("PAUSE");

}
return 0;

}
07.12.2007. u 23:07 

Trantor

Član broj: 100930
Poruke: 60
91.150.111.*

ICQ: 199139277


Profil

icon Re: Problem sa funkcijom if koja se ne poziva iako je uslov za njeno pozivanje ispunjen08.12.2007. u 10:58
Hvala vam puno. Sad radi kako treba. Samo još nešto. Zašto čak i kad sam ispravio kod programa opet nije radio kako treba sve dok ga nisam ponovo napisao iz početka? Ovo mi se ne dešava prvi put da ispravim kod i da ne radi dok ga lepo ponovo ne napišem sve iz početka. Da li je problem možda u kompajleru? Ja korisim Bloodshed v4.9.9.2. I još nešto "butcher87" zašto si u zadnjoj "if" funkciji izbacio "return 0" izvan tela funkcije? Milsim sve radi OK ali radi i kad je telu funkcije kao što sam je ja stavio. Hvala još jednom.
The truth is out there and I want to believe.
08.12.2007. u 10:58 

perun_
Nemanja Andjelkovic
Banglades

Član broj: 151779
Poruke: 109
212.62.55.*

Sajt: 127.0.0.1


Profil

icon Re: Problem sa funkcijom if koja se ne poziva iako je uslov za njeno pozivanje ispunjen08.12.2007. u 14:57
int main() znaci da main vraca int. Ukoliko ovo return 0; stoji u poslednjem if-u, main vraca nulu samo za x>1.5. Sta vraca za ostale vrednosti x-a? Main se transformise iz int-a u void, mozda?
Ne treba ciljati u metu vec metati u cilj
08.12.2007. u 14:57 

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 2668
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: Problem sa funkcijom if koja se ne poziva iako je uslov za njeno pozivanje ispunjen08.12.2007. u 15:07
Cela ta if struktura je lose projektovana.

Dakle, treba nesto kao:
Code:

if ( x <= 0.5 )
{
   // nesto
}
else if ( x > 1.5 )
{
   // nesto drugo
}
else
{
   // ostalo
}


FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
08.12.2007. u 15:07 

Trantor

Član broj: 100930
Poruke: 60
77.46.199.*

ICQ: 199139277


Profil

icon Re: Problem sa funkcijom if koja se ne poziva iako je uslov za njeno pozivanje ispunjen08.01.2008. u 17:56
X Files:

Hvala za predlog ovo što si ti napisao jeste daleko bolja i elegantnija struktura. :)
The truth is out there and I want to believe.
08.01.2008. u 17:56 

[es] :: C programiranje :: C za početnike :: Problem sa funkcijom if koja se ne poziva iako je uslov za njeno pozivanje ispunjen

[ Pregleda: 576 | Odgovora: 6 ]

Postavi temu Odgovori

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