السلام عليكم ورحمة الله وبركاته :
أخوتي الأعضاء عند كتابتي لبرنامج حل معادلة من الدرجة الثانية وعند كتابتي للكود التالي
# include <iostream>
# include <math.h>
using std::cout;
using std::cin;
using std::endl;
float main()
{
int b;
int a;
int c;
float d;
float q1;
float q2;
float dsqr;
cout<<"Enter a,b,c";
cin>>a;
cin>>b;
cin>>c;
d=b*b-4*a*c;
if (d<0 )
{
dsqr=sqrt(-d);
cout<<"solution Q1= "<<b/2*a<<"+"<<dsqr/2*a<<"i "<<endl;
cout<<"Q2= "<<b/2*a<<"-"<<-dsqr/2*a<<"i "<<endl;
}
if (d=0)
{
q1=-b/(2*a);
cout<<"solution is "<<q1<<endl;
}
if (d>0)
{
q1=-b-(sqrt(d))/(2*a);
q2=-b+(sqrt (d))/(2*a);
cout<<" Solution Q1="<<q1<<" Q2="<<q2<<endl;
}
return 0;
}
فإن البرنامج لا ينفذ في حال كانت دلتا أكبر أو يساوي الصفر وإنما فقط ينفذ في حال كانت الدلتا أصغر من الصفر ، لا أدري ما هو السبب ، هل يدخل في باقي الحلقات أم لا ....
الرجاء المساعدة
وهناك سؤال آخر ، كنت أتعلم على لغة الباسكال ومن جديد أتعلم لغة ال c++
في لغة الباسكال هناك أمر يقوم بتنفيذ البرنامج خطوة خطوة وسطر سطر ، وهذا ما كان يساعدني على تفهم البرنامج وتنفيذه خطوة خطوة ، فهل هناك شبيه لهذا الأمر في لغة الc++ أم لا ....
ولكم جزيل الشـــــــــــــــكر !!!!!!!!!