ورود

View Full Version : معدله درجه دو



ali_1369
جمعه 11 دی 1388, 17:03 عصر
سلام...این برنامه ریشه های یه معادله درجه دو رو به روش دو بخشی حساب میکنه ؛ولی نمیدونم چرا خروجی نداره ؛ممنون میشم کمک کنید


#include <iostream.h>
#include <conio.h>
int main(){
float a,b,c,mid,e;
cout<<"enter a,b,c";
cin>>a>>b>>c;
float h,k,p,q,r;
cout<<"baze ra vared nemiaeed";
cin>>h>>k;
cout<<"enter amount for e";
cin>>e;
mid=(h+k)/2;
p=a*mid*mid+b*mid+c;
while(p>e)
{ mid=(h+k)/2;

q=a*h*h+b*h+c;
r=a*k*k+b*k+c;
if(p*q<0)
{
h=h;
k=mid;}
else if(p*r<0)
{
a=mid;
h=h;
}
}


cout<<"the answer is"<<mid;
getch();
return 0;
}

mabbaszadegan
جمعه 11 دی 1388, 17:37 عصر
سلام
من که اصلا کدتو متوجه نشدم ،
اگه میخوای ریشه های معادله درجه دو رو حساب کنی :
1. 0=ax2+bx+c : باید a,b,c رو از ورودی بگیری
2. حالا خیلی راحت از روش دلتا معادله رو حل کن :

delta=b2-4ac
if (delta>0 ) : x= ..... hamoon formool maroof :D
if (delta=0 ) : x= -b/2a
if (delta<0 ) : moadele rishe nadare

اگه سوالی بود درخدمتم

Salar Ashgi
جمعه 11 دی 1388, 22:02 عصر
اینطور که به نظر میاد شما از روش مقدار میانی و روش نصف کردن برای پیدا کردن ریشه ها ، استفاده

کرده اید ولی شرط حلقه while شما نادرسته چون تو حالتی که شما نوشتید ممکنه شرط حلقه هیچ

وقت به اتمام نرسه و تو یه loop بی نهایت بیافتیم و تو داخل حلقه باید مقدار p نیز تغییر کند .

موفق باشید .