📄 unit1.~pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,unit2;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button1: TButton;
Memo1: TMemo;
MmList1: TMemo;
Button2: TButton;
Button3: TButton;
BtClose: TButton;
Bevel1: TBevel;
bt7: TButton;
bt8: TButton;
bt9: TButton;
bt4: TButton;
bt5: TButton;
bt6: TButton;
bt1: TButton;
bt2: TButton;
bt3: TButton;
bt0: TButton;
btOK: TButton;
EdLCD: TEdit;
btjia: TButton;
btJian: TButton;
btChu: TButton;
btCheng: TButton;
EdNumber: TEdit;
btClr: TButton;
btChongLei: TButton;
btShow: TButton;
Bevel2: TBevel;
LbShow: TLabel;
BtAbout: TButton;
MmList2: TMemo;
LbDaTi: TLabel;
LbTiMu: TLabel;
Bevel3: TBevel;
LbDaAn: TLabel;
BtnLeft: TButton;
BtnRight: TButton;
btnBackSpace: TButton;
Bevel4: TBevel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure BtCloseClick(Sender: TObject);
procedure btOKClick(Sender: TObject);
procedure btClrClick(Sender: TObject);
procedure btChongLeiClick(Sender: TObject);
procedure btShowClick(Sender: TObject);
procedure BtAboutClick(Sender: TObject);
procedure BTnToBTn9Click(Sender: TObject);
procedure btnBackSpaceClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//加括号:根据运算优先级,给运算表达式加上括号
function JiaKuoHao(num1,num2,num3,num4:real;f1,f2,f3:char):string;
var
s1,s2,s3,s4:string;
begin
s1:=FloatTostr(num1);
s2:=FloatTostr(num2);
s3:=FloatTostr(num3);
s4:=FloatTostr(num4);
if ((f2='+')or (f2='-')) and ((f3='*')or( f3='/')) then
result:='('+s1+f1+s2+f2+s3+')'+f3+s4+'='
else if ((f1='+')or (f1='-')) and ((f2='*') or (f2='/')) then
result:='('+s1+f1+s2+')'+f2+s3+f3+s4+'='
else
result:= s1+f1+s2+f2+s3+f3+s4+'=';
end;
//运算:num1,num2,num3,num4,经过 怎样的四则运算得到 TheResult,并把符合条件的结果
//添加到mem1中去
procedure YunSuan(num1,num2,num3,num4,TheResult:real;mem1:Tmemo);
var
i,j,k:integer;
value:real;
res:string;
flag:array[1..3] of char;
begin
value:=0;
for i:=1 to 4 do
for j:=1 to 4 do
for k:=1 to 4 do
begin
case i of
1: begin
value:=num1+num2;
flag[1]:='+';
end;
2: begin
value:=num1-num2;
flag[1]:='-';
end;
3: begin
value:=num1*num2;
flag[1]:='*';
end;
4: begin
value:=num1/num2;
flag[1]:='/';
end;
end;
case j of
1: begin
value:=value+num3;
flag[2]:='+';
end;
2: begin
value:=value-num3;
flag[2]:='-';
end;
3: begin
value:=value*num3;
flag[2]:='*';
end;
4: begin
value:=value/num3;
flag[2]:='/';
end;
end;
case k of
1: begin
value:=value+num4;
flag[3]:='+';
end;
2: begin
value:=value-num4;
flag[3]:='-';
end;
3: begin
value:=value*num4;
flag[3]:='*';
end;
4: begin
value:=value/num4;
flag[3]:='/';
end;
end;
if value=TheResult then
begin;
//在mem1中显示加了括号的结果
res:=JiaKuoHao(num1,num2,num3,num4,flag[1],flag[2],flag[3])+FloatToStr(TheResult);
mem1.Lines.Add(res);
//添加‘------------------’是为了美观
mem1.Lines.Add('------------------------------');
end;
end;
end;
procedure YunSuan2(n1,n2,n3,n4,res:real;list:Tmemo);
var
v, v1,v2:real;
s1,s2,s3,s4,s5:string;
begin
s1:=FloatToStr(n1);
S2:=FloatToStr(n2);
s3:=FloatToStr(n3);
s4:=FloatToStr(n4);
s5:=FloatToStr(res);
//------------------------
// n1+n2+n3/n4
v1:=n1+n2;
v2:=n3/n4;
v:=v1+v2;
if v=res then
list.Lines.Add(s1+'+'+s2+'+'+s3+'/'+s4+'='+s5);
// n1+n2+n3*n4
v1:=n1+n2;
v2:=n3*n4;
v:=v1+v2;
if v=res then
list.Lines.Add(s1+'+'+s2+'+'+s3+'*'+s4+'='+s5);
// n1+n2-n3/n4
v1:=n1+n2;
v2:=n3/n4;
v:=v1-v2;
if v=res then
list.Lines.Add(s1+'+'+s2+'-'+s3+'/'+s4+'='+s5);
// n1+n2-n3*n4
v1:=n1+n2;
v2:=n3*n4;
v:=v1-v2;
if v=res then
list.Lines.Add(s1+'+'+s2+'-'+s3+'*'+s4+'='+s5);
//----------------------
// n1-n2+n3/n4
v1:=n1-n2;
v2:=n3/n4;
v:=v1+v2;
if v=res then
list.Lines.Add(s1+'-'+s2+'+'+s3+'/'+s4+'='+s5);
// n1-n2+n3*n4
v1:=n1-n2;
v2:=n3*n4;
v:=v1+v2;
if v=res then
list.Lines.Add(s1+'-'+s2+'+'+s3+'*'+s4+'='+s5);
// n1-n2+n3*n4
v1:=n1-n2;
v2:=n3/n4;
v:=v1-v2;
if v=res then
list.Lines.Add(s1+'-'+s2+'-'+s3+'/'+s4+'='+s5);
// n1-n2-n3*n4
v1:=n1-n2;
v2:=n3*n4;
v:=v1-v2;
if v=res then
list.Lines.Add(s1+'-'+s2+'-'+s3+'*'+s4+'='+s5);
//----------------------
// n1*n2+n3/n4
v1:=n1*n2;
v2:=n3/n4;
v:=v1+v2;
if v=res then
list.Lines.Add(s1+'*'+s2+'+'+s3+'/'+s4+'='+s5);
// n1*n2+n3*n4
v1:=n1*n2;
v2:=n3*n4;
v:=v1+v2;
if v=res then
list.Lines.Add(s1+'*'+s2+'+'+s3+'*'+s4+'='+s5);
//n1*n2+n3/n4
v1:=n1*n2;
v2:=n3/n4;
v:=v1-v2;
if v=res then
list.Lines.Add(s1+'*'+s2+'-'+s3+'/'+s4+'='+s5);
// n1*n2-n3*n4
v1:=n1*n2;
v2:=n3*n4;
v:=v1-v2;
if v=res then
list.Lines.Add(s1+'*'+s2+'-'+s3+'*'+s4+'='+s5);
//-------------------
// n1/n2-n3/n4
v1:=n1/n2;
v2:=n3/n4;
v:=v1+v2;
if v=res then
list.Lines.Add(s1+'/'+s2+'+'+s3+'/'+s4+'='+s5);
// n1/n2-n3*n4
v1:=n1/n2;
v2:=n3*n4;
v:=v1+v2;
if v=res then
list.Lines.Add(s1+'/'+s2+'+'+s3+'*'+s4+'='+s5);
// n1/n2-n3/n4
v1:=n1/n2;
v2:=n3/n4;
v:=v1-v2;
if v=res then
list.Lines.Add(s1+'/'+s2+'-'+s3+'/'+s4+'='+s5);
// n1/n2-n3*n4
v1:=n1/n2;
v2:=n3*n4;
v:=v1-v2;
if v=res then
list.Lines.Add(s1+'/'+s2+'-'+s3+'*'+s4+'='+s5);
//*******************
// n1+n2*n3*n4
v2:=n2*n3*n4;
v:=n1+v2;
if v=res then
list.Lines.Add(s1+'+'+s2+'*'+s3+'*'+s4+'='+s5);
// n1-n2*n3*n4
v2:=n2*n3*n4;
v:=n1-v2;
if v=res then
list.Lines.Add(s1+'-'+s2+'*'+s3+'*'+s4+'='+s5);
//*********************
// n1+n2*n3/n4
v2:=n2*n3/n4;
v:=n1+v2;
if v=res then
list.Lines.Add(s1+'+'+s2+'*'+s3+'/'+s4+'='+s5);
// n1-n2*n3/n4
v2:=n2*n3/n4;
v:=n1-v2;
if v=res then
list.Lines.Add(s1+'-'+s2+'*'+s3+'/'+s4+'='+s5);
//***********************
// n1+n2/n3*n4
v2:=n2/n3*n4;
v:=n1+v2;
if v=res then
list.Lines.Add(s1+'+'+s2+'/'+s3+'*'+s4+'='+s5);
// n1-n2/n3*n4
v2:=n2/n3*n4;
v:=n1-v2;
if v=res then
list.Lines.Add(s1+'-'+s2+'/'+s3+'*'+s4+'='+s5);
//***********************
// n1+n2/n3/n4
v2:=n2/n3/n4;
v:=n1+v2;
if v=res then
list.Lines.Add(s1+'+'+s2+'/'+s3+'/'+s4+'='+s5);
// n1-n2*n3*n4
v2:=n2*n3*n4;
v:=n1-v2;
if v=res then
list.Lines.Add(s1+'-'+s2+'/'+s3+'/'+s4+'='+s5);
//????????????????????????????
// n1+n2/(n3*n4)
v1:=n3*n4;
v2:=n2/v1;
v:=n1+v2;
if v=res then
list.Lines.Add(s1+'+'+s2+'/'+'('+s3+'*'+s4+')'+'='+s5);
// n1-n2/(n3*n4)
v1:=n3*n4;
v2:=n2/v1;
v:=n1-v2;
if v=res then
list.Lines.Add(s1+'-'+s2+'/'+'('+s3+'*'+s4+')'+'='+s5);
//??????????????????????????????????????
// n1+n2*(n3/n4)
v1:=n3/n4;
v2:=n2*v1;
v:=n1+v2;
if v=res then
list.Lines.Add(s1+'+'+s2+'*'+'('+s3+'/'+s4+')'+'='+s5);
// n1-n2*(n3/n4)
v1:=n3/n4;
v2:=n2*v1;
v:=n1-v2;
if v=res then
list.Lines.Add(s1+'-'+s2+'*'+'('+s3+'/'+s4+')'+'='+s5);
//>>>>>>>>>>>>>>>>>>>>>>>>>>>
// n1*n2+(n3+n4)
v1:=n1*n2;
v2:=n3+n4;
v:=v1*v2;
if v=res then
list.Lines.Add(s1+'*'+s2+'*'+'('+s3+'+'+s4+')'+'='+s5);
// n1*n2+(s3-s4)
v1:=n1*n2;
v2:=n3-n4;
v:=v1*v2;
if v=res then
list.Lines.Add(s1+'*'+s2+'*'+'('+s3+'-'+s4+')'+'='+s5);
// n1/n2*(n3+n4)
v1:=n1/n2;
v2:=n3+n4;
v:=v1*v2;
if v=res then
list.Lines.Add(s1+'/'+s2+'*'+'('+s3+'+'+s4+')'+'='+s5);
// n1/n2*(n3-n4)
v1:=n1/n2;
v2:=n3-n4;
v:=v1*v2;
if v=res then
list.Lines.Add(s1+'/'+s2+'*'+'('+s3+'-'+s4+')'+'='+s5);
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// n1*n2/(n3+n4)
v1:=n1*n2;
v2:=n3+n4;
v:=v1/v2;
if v=res then
list.Lines.Add(s1+'*'+s2+'/'+'('+s3+'+'+s4+')'+'='+s5);
// n1*n2/(n3-n4)
v1:=n1*n2;
v2:=n3-n4;
if v2 <>0 then
begin
v:=v1/v2;
if v=res then
list.Lines.Add(s1+'*'+s2+'/'+'('+s3+'-'+s4+')'+'='+s5);
end;
// n1/n2+(n3+n4)
v1:=n1/n2;
v2:=n3+n4;
v:=v1/v2;
if v=res then
list.Lines.Add(s1+'/'+s2+'/'+'('+s3+'+'+s4+')'+'='+s5);
// n1/n2/(s3-s4)
v1:=n1/n2;
v2:=n3-n4;
if v2 <> 0 then
begin
v:=v1/v2;
if v=res then
list.Lines.Add(s1+'/'+s2+'/'+'('+s3+'-'+s4+')'+'='+s5);
end;
//&&&&&&&&&&&&&&&&&&&
// n1*n2-(n3-n4)
v1:=n1*n2;
v2:=n3-n4;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -