• 0
rama

برنامج لحل معادلة من الدرجة الثانية

سؤال

السلام عليكم ورحمة الله وبركاته :

أخوتي الأعضاء عند كتابتي لبرنامج حل معادلة من الدرجة الثانية وعند كتابتي للكود التالي

# 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++ أم لا ....

ولكم جزيل الشـــــــــــــــكر !!!!!!!!!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

4 إجابة على هذا السؤال .

  • 0

السلام عليكم أختي rama

الكود مالش ما كان ياخذ حالة اذا كات الدلتا أكبر من الصفر أو يساوي الصفر يمكن علشان انتي ما استعملتي if else

# include <iostream>

# include <cmath>

using namespace std ;

float main()

{

int b, a, c;

float d;

float q1, q2, dsqr;

cout<<"Enter a,b,c";

cin>>a>>b>>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;

}

else if (d=0)

{

q1=-b/(2*a);

cout<<"solution is "<<q1<<endl;

}

else

{

q1=(-b - sqrt(d))/(2*a);

q2=(-b + sqrt(d))/(2*a);

cout<<" Solution Q1="<<q1<<" Q2="<<q2<<endl;

}

return 0;

}

اخوش تيمون .....

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا لك أخي

سؤالي الآخر هل هناك أمر يقوم بتتبع تنفيذ التعليمات في لغة c++

وهل يمكننا مراقبة تغير المتحولات اثناء التنفيذ كما في لغة باسكال

وشكــــــــــــــــــرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم rama

rama اسمحي لي ما اقدر اجاوب على سؤالش لان هذي اول مره استعمل فيها لغة c++ و انا طالب مستجد في كلية IT ..

و ما اعرف شو هي لغة باسكال ....

اخوك تيمون ....

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم,

سأحاول إجابتك عن السؤال الثاني.

أن قضية تنفيد البرنامج سطرا بسطر هي ما تسمى debug وهدا لا يتعلق بلغة أو بأخرى وإنما بالبرنامج الدي تستعمله للبرمجة إدا كان معاه Debugger أم لا .فمثلا إدا كنت تستعمل Visual c++ فالأمر سهل ويمكنك اتباع الخطوات التالية :

لتنفيد البرنامج خطوة خطوة ادهب إلى

build

start debug

go

أو اضغط على F5 أو انقر الإيقون الخاص بدلك في toolbar بعد هدا سيتوقف البرنامج عند السطر الأول ويمكنك أن تمشي سطرا بسطر باستعمال F10 أو الإيقونات الخاصة بدلك كما يمكنك أن تضع نقطة توقف في سطر ما بأن تدهب إلى السطر الدي تريد وتضغط على F9 وستضهر لك كرة حمراء صغيرة في هدا السطر تدل على نقطة التوقف كما يمكنك مشاهدة قيم المتغيرات وتغييرها وكل ما يصلح للديبوغاج وبعد شيء من التمرين يمكنك التحكم في جميع هده الأدوات.

أتمنى لك التوفيق وإلى اللقاء.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .