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

📄 unit1.~pas

📁 给你4 个随机数
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
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 + -