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

مساعدة في كود آلة حاسبة

بدأه نادين01 في 9 مارس 2014 · 1 رد · 756 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    TF,Signe,Erreur:Integer;
    N1,N2,N3:Real;
    S:String;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
    if (TF=0)then Edit1.Text:=Edit1.Text+'7'
             else begin
                   Edit1.Text:='7';
                   TF:=0;
                   end;


end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if (TF=0)then Edit1.Text:=Edit1.Text+'8'
             else begin
                   Edit1.Text:='8';
                   TF:=0;
                   end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
   if (TF=0)then Edit1.Text:=Edit1.Text+'9'
             else begin
                   Edit1.Text:='9';
                   TF:=0;
                   end;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
   if (TF=0)then Edit1.Text:=Edit1.Text+'4'
             else begin
                   Edit1.Text:='4';
                   TF:=0;
                   end;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  if (TF=0)then Edit1.Text:=Edit1.Text+'5'
             else begin
                   Edit1.Text:='5';
                   TF:=0;
                   end;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
   if (TF=0)then Edit1.Text:=Edit1.Text+'6'
             else begin
                   Edit1.Text:='6';
                   TF:=0;
                   end;
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
      if (TF=0)then Edit1.Text:=Edit1.Text+'1'
             else begin
                   Edit1.Text:='1';
                   TF:=0;
                   end;
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
      if (TF=0)then Edit1.Text:=Edit1.Text+'2'
             else begin
                   Edit1.Text:='2';
                   TF:=0;
                   end;
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
    if (TF=0)then Edit1.Text:=Edit1.Text+'3'
             else begin
                   Edit1.Text:='3';
                   TF:=0;
                   end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
   val(Edit1.Text,N1,Erreur);
   TF:=1;
   Signe:=1;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
   val(Edit1.Text,N1,Erreur);
   TF:=1;
   Signe:=2;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
     val(Edit1.Text,N1,Erreur);
   TF:=1;
   Signe:=3;
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
   val(Edit1.Text,N1,Erreur);
   TF:=1;
   Signe:=4;
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
   Edit1.Text:='';
   N1:=0;  
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
   val (Edit1.Text,N2,Erreur);
   case Signe of
      1:N3:=N1/N2;
      2:N3:=N1*N2;
      3:N3:=N1+N2;
      4:N3:=N1-N2;
   end;
   Str(N3, Edit1.Text);
   Edit1.Text:=S;
   TF:=1;

end;

end.

ما الخطأ في الكود

 

الكود لعمل آلة حاسبة

#2

السلام عليكم 

عفواً لم أحاول أن أبحث عن الخطأ في هذا الكود ولكن لدي طريقة تمكنك من تتبع الكود بشكل أفضل وذلك بإعادة بناء الحاسبة برمجياً بطريقة تمكنك من معرفة مكان الخطأ وبدقة كما يلي:

var n1,n2:Real;
Opr:Char;
Procedure Tform1.Button1onclick(Sender:Opject);
begin
IF (Trim(Edit1.text) = '0' )then
Edit1.text:=TButton(Sender).Caption
else
Edit1.text:=edit1.text+TButton(Sender).Caption;
end;
 

يتم إضافة هذا الكود في أول زر للأرقام الخاصة بالحاسبة ثم يتم ربط باقي أزرار الأرقام بهذا الكود حتى يقدم هذا الكود إختصار لكافة الإجراءات التي كتبتها لطباعة رقم بصندوق التحرير Edit1 ومن ثم تكتب كود الإشارات الحسابية بنفس الطريقة بإستخدام المتغير Opr ولكن عند تخصيص قيمة Caption الخاصة بالزر في المتغير OPR عليك بأخد حرف واحد فقط كالتالي:

Opr:=TButton?(Sender).Caption[1].

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

من جد وجد ومن زرع حصد

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