⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.pas

📁 本程序是一个简易的计算器源代码。具有一般计算器的所有功能。
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  num:real;
begin
  num:=strtofloat(edit1.text);
  edit1.text:=floattostr(1/num);
end;

procedure TCalculator_Form.Button7Click(Sender: TObject);
begin
    num1:=strtonum(edit1.text,haob);
    sign:=1;
    edit1.text:='0';
    start_flag:=false;
    n1_flag:=true;
end;

procedure TCalculator_Form.Button13Click(Sender: TObject);
begin
    num1:=strtonum(edit1.text,haob);
    sign:=2;
    edit1.text:='0';
    start_flag:=false;
    n1_flag:=true;
end;

procedure TCalculator_Form.Button19Click(Sender: TObject);
begin
    num1:=strtonum(edit1.text,haob);
    sign:=3;
    edit1.text:='0';
    start_flag:=false;
    n1_flag:=true;
end;

procedure TCalculator_Form.Button25Click(Sender: TObject);
begin
    num1:=strtonum(edit1.text,haob);
    sign:=4;
    edit1.text:='0';
    start_flag:=false;
    n1_flag:=true;
end;

procedure TCalculator_Form.Button26Click(Sender: TObject);
var
  i:real;
begin
    num2:=strtonum(edit1.text,haob);
    if sign=1 then
    begin
        if num2=0 then
            application.MessageBox('除数为零,不能运算!','提示信息',mb_ok)
        else
        begin
            num3:=num1 / num2;
            edit1.Text:=numtostr(num3,haob);
        end;
    end
    else if sign=2 then
    begin
        num3:=num1*num2;
        edit1.text:=numtostr(num3,haob);
    end
    else if sign=3 then
    begin
        num3:=num1-num2;
        edit1.text:=numtostr(num3,haob);
    end
    else if sign=4 then
    begin
        num3:=num1+num2;
        edit1.text:=numtostr(num3,haob);
    end
    else if sign=5 then
    begin
        num3:=num1-int(num1/num2)*num2;
        edit1.text:=numtostr(num3,haob);
    end
    else if sign=6 then
    begin
        num3:=1;
        i:=1;
        while i<=num2 do
        begin
            num3:=num3*num1;
            i:=i+1;
        end;
        edit1.text:=numtostr(num3,haob);
    end
    else if sign=7 then
    begin
        if num1*num2=0 then
            num3:=0
        else
            num3:=1;
        edit1.text:=numtostr(num3,haob);
    end
    else if sign=8 then
    begin
        if num1+num2=0 then
            num3:=0
        else
            num3:=1;
        edit1.text:=numtostr(num3,haob);
    end
    else if sign=9 then
    begin
        if (num1=0) and (num2<>0) then
            num3:=1
        else if (num1<>0) and (num2=0) then
            num3:=1
        else
            num3:=0;
        edit1.text:=numtostr(num3,haob);
    end
    else
        application.MessageBox('1111除数为零,不能运算!','提示信息',mb_ok);
    n1_flag:=false;
end;

procedure TCalculator_Form.Button23Click(Sender: TObject);
var
  num:real;
begin
  num:=strtofloat(edit1.text);
  num:=-num;
  edit1.text:=floattostr(num);
end;

procedure TCalculator_Form.Button2Click(Sender: TObject);
begin
  edit1.text:='0';
  start_flag:=false;
  float_flag:=false;
end;

procedure TCalculator_Form.Button54Click(Sender: TObject);
begin
  mem_flag:=false;
end;

procedure TCalculator_Form.Button56Click(Sender: TObject);
begin
  mem:=strtofloat(edit1.text);
  mem_flag:=true;
end;

procedure TCalculator_Form.Button55Click(Sender: TObject);
begin
    if mem_flag=true then
      edit1.text:=floattostr(mem)
    else
      application.MessageBox('没有数据存储,请检查!','提示信息',mb_ok);
end;

procedure TCalculator_Form.Button57Click(Sender: TObject);
begin
  if mem_flag=true then
    mem:=mem+strtofloat(edit1.text)
  else
  begin
    mem:=strtofloat(edit1.text);
    mem_flag:=true;
  end;
end;

procedure TCalculator_Form.Button60Click(Sender: TObject);
begin
  num1:=strtofloat(edit1.text);
  sign:=5;
  edit1.text:='0';
  start_flag:=false;
  n1_flag:=true;
end;

procedure TCalculator_Form.RadioButton2Click(Sender: TObject);
begin
    CheckAlgorism;
end;

procedure TCalculator_Form.RadioButton1Click(Sender: TObject);
begin
  checkHex;
end;

procedure TCalculator_Form.RadioButton3Click(Sender: TObject);
begin
  CheckOctavo;
end;

procedure TCalculator_Form.RadioButton4Click(Sender: TObject);
begin
  CheckBinary;
end;

procedure TCalculator_Form.N10Click(Sender: TObject);
begin
  checkHex;
end;

procedure TCalculator_Form.N11Click(Sender: TObject);
begin
  CheckOctavo;
end;

procedure TCalculator_Form.N12Click(Sender: TObject);
begin
  CheckOctavo;
end;

procedure TCalculator_Form.N13Click(Sender: TObject);
begin
  CheckOctavo;
end;

procedure TCalculator_Form.RadioButton5Click(Sender: TObject);
begin
    N15.Checked:=true;
    N16.Checked:=false;
end;

procedure TCalculator_Form.RadioButton6Click(Sender: TObject);
begin
    N15.Checked:=false;
    N16.Checked:=true;
end;

procedure TCalculator_Form.N15Click(Sender: TObject);
begin
    N15.Checked:=true;
    N16.Checked:=false;
    RadioButton5.Checked:=true;
end;

procedure TCalculator_Form.N16Click(Sender: TObject);
begin
    N15.Checked:=false;
    N16.Checked:=true;
    RadioButton6.Checked:=true;
end;

procedure TCalculator_Form.Button41Click(Sender: TObject);
var
  t1:real;
  t2:extended;
  s:string;
begin
  t1:=strtofloat(Edit1.text);
  if radiobutton5.Checked then
      t1:=t1 * 3.14159 /180;
  t2:=sin(t1);
  str(t2:6:4,s);
  edit1.text:=s;
end;

procedure TCalculator_Form.Button42Click(Sender: TObject);
var
  t1:real;
  t2:extended;
  s:string;
begin
  t1:=strtofloat(Edit1.text);
  if radiobutton5.Checked then
      t1:=t1 * 3.14159 /180;
  t2:=cos(t1);
  str(t2:6:4,s);
  edit1.text:=s;
end;

procedure TCalculator_Form.Button43Click(Sender: TObject);
var
  t1:real;
  t2:extended;
  s:string;
begin
  t1:=strtofloat(Edit1.text);
  if radiobutton5.Checked then
      t1:=t1 * 3.14159 /180;
  t2:=tan(t1);
  str(t2:6:4,s);
  edit1.text:=s;
end;

procedure TCalculator_Form.Button45Click(Sender: TObject);
var
  s1:real;
  s2:string;
begin
  s1:=strtofloat(edit1.text);
  s1:=exp(s1);
  str(s1:8:5,s2);
  edit1.text:=s2;
end;

procedure TCalculator_Form.Button48Click(Sender: TObject);
var
  s:real;
begin
  s:=strtonum(edit1.Text,haob);
  s:=s*s;
  edit1.text:=numtostr(s,haob);
end;

procedure TCalculator_Form.Button47Click(Sender: TObject);
var
  s:real;
begin
  s:=strtonum(edit1.Text,haob);
  s:=s*s*s;
  edit1.text:=numtostr(s,haob);
end;

procedure TCalculator_Form.Button52Click(Sender: TObject);
var
  s,s1:real;
  i:integer;
begin
  s:=strtonum(edit1.text,haob);
  s:=int(s);
  s1:=1;
  i:=1;
  while i<=s do
  begin
    s1:=s1*i;
    i:=i+1;
  end;
  edit1.text:=numtostr(s1,haob);
end;

procedure TCalculator_Form.Button51Click(Sender: TObject);
var
  s:real;
  s1:string;
begin
  s1:=edit1.text;
  s:=strtonum(s1,haob);
  if s>0 then
  begin
    s:=log10(s);
    edit1.text:=numtostr(s,haob);
  end
  else
    application.MessageBox('数值错误,请检查!','提示信息',mb_ok);
end;

procedure TCalculator_Form.Button50Click(Sender: TObject);
var
  s:real;
begin
  s:=strtonum(edit1.text,haob);
  if s>0 then
  begin
    s:=ln(s);
    edit1.text:=numtostr(s,haob);
  end
  else
    application.MessageBox('数值错误,请检查!','提示信息',mb_ok);
end;

procedure TCalculator_Form.Button58Click(Sender: TObject);
begin
  edit1.text:=numtostr(3.14159,haob);
end;

procedure TCalculator_Form.Button27Click(Sender: TObject);
var
  s:real;
begin
  s:=strtonum(edit1.text,haob);
  s:=int(s);
  edit1.text:=numtostr(s,haob);
end;

procedure TCalculator_Form.Button21Click(Sender: TObject);
var
  s,x:real;
begin
  s:=strtonum(edit1.text,haob);
  if s=0 then
      x:=1
  else
      x:=0;
  edit1.text:=numtostr(x,haob);
end;

procedure TCalculator_Form.Button46Click(Sender: TObject);
begin
    num1:=strtonum(edit1.text,haob);
    sign:=6;  //x^y
    edit1.text:='0';
    start_flag:=false;
    n1_flag:=true;
end;

procedure TCalculator_Form.Button9Click(Sender: TObject);
begin
    num1:=strtonum(edit1.text,haob);
    sign:=7;   //and
    edit1.text:='0';
    start_flag:=false;
    n1_flag:=true;
end;

procedure TCalculator_Form.Button14Click(Sender: TObject);
begin
    num1:=strtonum(edit1.text,haob);
    sign:=8;    //or
    edit1.text:='0';
    start_flag:=false;
    n1_flag:=true;
end;

procedure TCalculator_Form.Button15Click(Sender: TObject);
begin
    num1:=strtonum(edit1.text,haob);
    sign:=9;//xor
    edit1.text:='0';
    start_flag:=false;
    n1_flag:=true;
end;

procedure TCalculator_Form.Button28Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='A';
        start_flag:=true
    end
    else
        edit1.text:=edit1.text+'A';
end;

procedure TCalculator_Form.Button29Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='B';
        start_flag:=true
    end
    else
        edit1.text:=edit1.text+'B';
end;

procedure TCalculator_Form.Button30Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='C';
        start_flag:=true
    end
    else
        edit1.text:=edit1.text+'C';
end;

procedure TCalculator_Form.Button31Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='D';
        start_flag:=true
    end
    else
        edit1.text:=edit1.text+'D';
end;

procedure TCalculator_Form.Button32Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='E';
        start_flag:=true
    end
    else
        edit1.text:=edit1.text+'E';
end;

procedure TCalculator_Form.Button33Click(Sender: TObject);
begin
    if start_flag=false then
    begin
        edit1.text:='F';
        start_flag:=true
    end
    else
        edit1.text:=edit1.text+'F';
end;

procedure TCalculator_Form.Button34Click(Sender: TObject);
begin
    button35.Enabled:=true;
    button36.Enabled:=true;
    button37.Enabled:=true;
    button38.Enabled:=true;
    stat_count:=0;
end;

procedure TCalculator_Form.Button38Click(Sender: TObject);
begin
    stat_count:=stat_count+1;
    stat_mem[stat_count]:=strtonum(edit1.text,haob);
end;

procedure TCalculator_Form.Button36Click(Sender: TObject);
var
    s:real;
    i:integer;
begin
    s:=0;
    for i:=1 to stat_count do
        s:=s+stat_mem[i];
    Edit1.text:=numtostr(s,haob);
end;

procedure TCalculator_Form.Button35Click(Sender: TObject);
var
    s:real;
    i:integer;
begin
    s:=0;
    for i:=1 to stat_count do
        s:=s+stat_mem[i];
    s:=s /stat_count;
    Edit1.text:=numtostr(s,haob);
end;

procedure TCalculator_Form.Button37Click(Sender: TObject);
var
    s1,s2:real;
    i:integer;
begin
    s1:=0;
    for i:=1 to stat_count do
        s1:=s1+stat_mem[i];
    s1:=s1 /stat_count;
    s2:=0;
    for i:=1 to stat_count do
        s2:=s2+(stat_mem[i]-s1)*(stat_mem[i]-s1);
    s2:=sqrt(s2);
    Edit1.text:=numtostr(s2,haob);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -