[ Trantor @ 07.12.2007. 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;
}
} |
[ X Files @ 07.12.2007. 20:49 ] @
[ butcher87 @ 07.12.2007. 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;
}
[ Trantor @ 08.12.2007. 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.
[ perun_ @ 08.12.2007. 14:57 ] @
[ X Files @ 08.12.2007. 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
}
[ Trantor @ 08.01.2008. 17:56 ] @
X Files:
Hvala za predlog ovo što si ti napisao jeste daleko bolja i elegantnija struktura. :)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.