الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

مغلق
بدأه Nova في 27 يونيو 2004 · 3 رد · 1,528 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

الكود التالي هو لبرنامج حل معادلة من الدرجة الثانية على التيربو باسكال وهو برنامج بسيط جدا

ولكن الفكرة هنا هي في قراءة المعادلة . حيث يتم قراءة المعادلة بشكل كامل (سطر نصي واحد)

والبرنامج يقوم بتحليل المعادلة ومن ثم إسناد القيم للمتحولات وإعطاء النتيجة ..

طبعا يمكن كتابة نفس الكود على الديلفي ولكن مع بعض التعديل في الإدخال والإخراج .

أي سؤال عن هذا البرنامج أنا جاهز . وأسألكم دعوة صالحة .

Program Delta_Equality;

var
Equality:String;
Pointer:Integer;
X2Find:Boolean;
XFind:Boolean;
EqualFind:Boolean;
A:string; AI:Integer;
B:string; BI:Integer;
C:string; CI:Integer; Code:Integer; Delta:Integer;

Begin

Writeln('Enter the equality in the simple mode  ');
writeln('as the following   +- A X^ +- B X +- C = 0  ... X^ = X * X');
writeln('');
writeln('');
{Read the Equality} readln(Equality);
for Pointer:=1 to length(equality) do
Begin {Beginnig of the For}

case equality[Pointer] of

'X','x':
       if(equality[Pointer]+equality[Pointer+1]='X^')or(equality[Pointer]+equality[Pointer+1]='x^') then if Pointer=1 then
       begin
       A:=A+'1';
       X2Find:=true;
       end else  X2Find:=true else
       if X2Find=false then writeln('You did not enter the X^...') else XFind:=true;

'=':
       if X2Find=false then writeln('You did not enter the X^...') else
       if XFind=false then writeln('You did not enter the X ...') else equalfind:=true;

'0'..'9':
if (X2Find=true)and(XFind=true)and(equalfind=true)and(equality[Pointer]<>'0')
then
begin
writeln('You did not enter the equlity in the simple mode !!!!');
Equality:='';
readln(Equality);
end else
       if X2find=false then A:=A+equality[Pointer] else
       if (X2Find=true)and(XFind=false)then B:=B+equality[Pointer] else
       if (X2Find=true)and(XFind=true)and(equalfind=false)then C:=C+equality[Pointer];

'-','+':
       if X2Find=false then A:=Equality[Pointer] else
       if (X2Find=true)and(XFind=false)and(equalfind=false)then B:=Equality[Pointer] else
       if (X2Find=true)and(XFind=true)and(equalfind=false)then C:=Equality[Pointer];



end;{End of the Case}

if Pointer=length(Equality)then
begin
writeln('A = ',A,'  ','B =',B,'  ','C = ',C);
writeln('');
val(A,Ai,Code);val(B,Bi,Code);val(C,Ci,Code);
Delta:=sqr(Bi)-(4*Ai*Ci);
writeln('Delta = ',Delta);
if Delta<0 then writeln('There is no solution for this equality in real numbers ...')else
if Delta=0 then writeln('The answer is : ', 'X1 = X2 = ', - Bi/(2*Ai))else
if Delta>0 then
writeln('The answer is : ', 'X1 = ', (- Bi - sqrt(Delta))/(2*Ai),' ............ ','X2 = ', (- Bi + sqrt(Delta))/(2*Ai) );
end;

end;{End of the For}

readln;readln;
end.


{Programmed by : A.Kinan Sandouk  NOVA A320}
#2

كنت أتمنى أن أسمع رأيكم !!!!!

#3

بصراحة يا اخ Nova لا يوجد اشخاص كثر يفهمون هذا الكود في هذا المنتدى للاسف...

على كل هذا الكود يقوم بحل المعادلات (Power equations) وهو مفيد للاشخاص الذين يريدون صنع برنامج Scienctific calculator

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#4

الله يعطيك العافية أخي Nova على هذا الكود الجميل ، ونحن بانتظار المزيد .

- طريق الألف ميل يبدأ بخطوة -

- ألعاب من تصميمي:

المنقذ

/index.ph...st&id=91370

الأربع تربح

/index.ph...st&id=91369

المتاهة

/index.ph...st&id=91374

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…