منتدى هواة البرامج
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

برمجة وبرامج


أهلا وسهلا بك زائرنا الكريم, أنت لم تقم بتسجيل الدخول بعد! يشرفنا أن تقوم بالدخول أو التسجيل إذا رغبت بالمشاركة في المنتدى

حل معادلة من الدرجة الأولى باستخدام ObjectPascal

اذهب الى الأسفل  رسالة [صفحة 1 من اصل 1]

Couade

Couade

نحن نعلم أن حل معادلة من الدرجة الأولى من الشكل
الكود:
A.x+B=0
هو كالتالي :
الكود:
X=-B/A
لكن كيف نكتب برنامج بلغة الباسكال وما هي التصريحات والعناصر اللازمة لكتابة هذا البرنامج:
حل معادلة من الدرجة الأولى باستخدام ObjectPascal 2d6pmpk
هناك طرق مختلفة وعديدة حسب الحاجة وحسب موقع الكود في البرنامج وهذه واحدة من الطرق المتبعة :
أولا : يلزمنا ثلاثة عناصر TLabel وعنصرين TEdit وعنصر TButton
ثانيا : نكتب الكود التالي في الحدث OnClick للعنصر TButton


unit Unit1;

{$mode objfpc}{$H+}

interface

uses
 
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

 
{ TForm1 }

 
TForm1 = class(TForm)
   
Button1: TButton;
   
Edit1: TEdit;
   
Edit2: TEdit;
   
Label1: TLabel;
   
Label2: TLabel;
   
Label3: TLabel;
   
procedure Button1Click(Sender: TObject);

 
private
   
{ private declarations }
 
public
   
{ public declarations }
 
end;

var
 
Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
 
x, A, B: real;
begin
 
X:=0;
 
if not TRYSTRTOFloat(EDIT1.Text, A) then
   
A := 0;
 
if not TRYSTRTOFloat(EDIT2.Text, B) then
   
B := 0;
 
if A <> 0 then
   
X := -B / A;
 
Label3.Caption := Format('X=%f', [X]);
end;
end.



عدل سابقا من قبل Couade في الثلاثاء مارس 08, 2016 11:06 am عدل 1 مرات

passager


زائر

حل معادلة من الدرجة الأولى باستخدام ObjectPascal 2016%2B-%2B1

Couade

Couade

يمكن تعديل هذا البرنامج بإضافة دالة دات وسيطين A و B بهذا الشكل :

الكود:
function Eq1Ord(A, B: double): double;
فيصبح البرنامج بالشكل التالي :

unit seqpdU;

{$mode objfpc}{$H+}

interface

uses
 
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

 
{ TForm1 }

 
TForm1 = class(TForm)
   
Button1: TButton;
   
Edit1: TEdit;
   
Edit2: TEdit;
   
Label1: TLabel;
   
Label2: TLabel;
   
Label3: TLabel;
   
procedure Button1Click(Sender: TObject);

 
private
   
{ private declarations }
   
function Eq1Ord(A, B: double): double;
 
public
   
{ public declarations }
 
end;

var
 
Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
 
X, A, B: double;
begin
 
X := 0;
 
if not TRYSTRTOFloat(EDIT1.Text, A) then
   
A := 0;
 
if not TRYSTRTOFloat(EDIT2.Text, B) then
   
B := 0;
 
X := Eq1Ord(A, B);
 
Label3.Caption := Format('X=%f', [X]);

end;

function TForm1.Eq1Ord(A, B: double): double;

begin
 
Result := 0;
 
if B <> 0 then
   
Result := -B / A;
end;
end.



عدل سابقا من قبل Couade في الثلاثاء مارس 08, 2016 11:02 am عدل 1 مرات

4حل معادلة من الدرجة الأولى باستخدام ObjectPascal Empty ما سر الحرف X في المعادلات الثلاثاء مارس 08, 2016 10:41 am

Couade

Couade

هل تساءلت يوما ، لماذا نستعمل المتغير x للرمز للمجهول في المعادلات ؟ هذا الفيديو يجيب على السؤال :
شاهد المقطع على يوتيوب

Couade

Couade

يمكن استعمال إجراء procedure  لحل المعادلة من الدرجة الأولى بالطريقة التالية :
 
الكود:
procedure Eq1Ord(A, B: double; var X: double); 

فيصبح البرنامج على الشكل التالي :
 
unit seqpdU;

{$mode objfpc}{$H+}

interface

uses
 
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

 
{ TForm1 }

 
TForm1 = class(TForm)
   
Button1: TButton;
   
Edit1: TEdit;
   
Edit2: TEdit;
   
Label1: TLabel;
   
Label2: TLabel;
   
Label3: TLabel;
   
procedure Button1Click(Sender: TObject);

 
private
   
{ private declarations }
   
procedure Eq1Ord(A, B: double; var X: double);
 
public
   
{ public declarations }
 
end;

var
 
Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
 
X, A, B: double;
begin
 
X := 0;
 
if not TRYSTRTOFloat(EDIT1.Text, A) then
   
A := 0;
 
if not TRYSTRTOFloat(EDIT2.Text, B) then
   
B := 0;
  
Eq1Ord(A, B,X);
 
Label3.Caption := Format('X=%f', [X]);

end;

procedure TForm1.Eq1Ord(A, B: double; var X: double);
begin
  if
B <> 0 then
   
x := -B / A;
end;
end.

الرجوع الى أعلى الصفحة  رسالة [صفحة 1 من اصل 1]

صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى