PDA

View Full Version : سوال: رفع اشکال در ++C



essi-2013
دوشنبه 11 آبان 1394, 14:25 عصر
سلام دوستان
برنامه با ++C نوشتم ولی خطا میده:
"Illegal use of floating points"
لطفا راهنمایی کنید اشکال برنامه چیه
*ریشه های معادله y=(x^2.1)+(5*x)-6.3 را در بازه [0.8,1.4] به دست اورید.




#include<math.h>
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
main()
{
float x,y,a,b,e,f;
a=0.8;
b=1.4;
e=10^-6;
f=0.0001;
x=a;
y=0;
y=(x^2.1)+(5*x)-6.3;
if (y<=e)
{
cout<<x;
}
else
{
while ((x<b)&(y<=e))
{
x=x+f;
y=(x^2.1)+(5*x)-6.3;
}
if (y<=e)
cout<<x;
}
return 0;
}

AliBahar
پنج شنبه 14 آبان 1394, 15:24 عصر
عملگر ^ مال xor هست نه توان. برای توان می تونید از تابع pow در کتابخونه math.h استفاده کنید. توی شرطی که برای while گذاشتین از && برای عطف منطقی استفاده کنید چون & عملگر بیتی هست.
در ضمن من خیلی متوجه نشدم این کد چه جوری مسئله رو حل میکنه اصلا اون f کجا مقداردهی میشه. معمولا در حل این مسائل از الگوریتم ژنتیک استفاده می کنن. البته این پیشنهاد منه.

essi-2013
جمعه 15 آبان 1394, 22:03 عصر
مرسی از راهنماییتون. مقدار f رو توی برنامه فراموش کردم بنویسم که اصلاح شد. الگوریتم ژنتیک نشنیده بودم. در موردش مطالعه میکنم .