Инженерный калькулятор

Автор работы: Пользователь скрыл имя, 11 Марта 2013 в 23:18, курсовая работа

Краткое описание

Эволюция технических средств персональных компьютеров привела к повсеместному вытеснению старой “доброй” ОС MS-DOS значительно более мощными системами Windows, программирование для которых существенно сложнее, чем программирование для MS-DOS. В 1993 году Microsoft выпустила первую визуальную среду программирования Visual Basic, и программирование для Windows стало даже проще, чем программирование для MS-DOS. В ответ на это Borland в 1995 году выпустила первую версию Delphi, а затем, с интервалом в 1 год, - еще 4 версии: 2, 3, 4 и 5. Наконец, в середине 2001 г. выпускается версия 6.

Содержание

Введение………………………………………………………………………..…..5
Теоретическая часть……………………………………………………………...10
Описание функций и процедур……………………………………………….....13
Руководство пользователя…………………………………………………….…17
Результат работы программы……………………………………………….…...24
Заключение………………………………………………………………….…….26
Список литературы……

Вложенные файлы: 1 файл

Работа.docx

— 1.65 Мб (Скачать файл)

   begin

    if ((strtofloat(memo1.Text)<=1) and (strtofloat(memo1.Text)>=(-1)) ) then

       memo1.Text:=floattostr(Arccos(strtofloat(memo1.text)))

    else

     memo1.Text:=net; end;

 

  if (Inv.Checked=false) and (Hyp.Checked=true) then begin

   memo1.Text:=floattostr(cosh(strtofloat((memo1.text)))); exit; end;

 

   if (Inv.Checked=true) and (Hyp.Checked=true) then

     if  strtofloat(memo1.Text)<1 then memo1.Text:=net;

   memo1.Text:=floattostr(Arccosh(strtofloat(memo1.text)));

END;

{-------------------------радианы___end------------------------------------}

 

{-------------------------градусы___begin----------------------------------}

 

if RadioButtonGradus.Checked=true then

BEGIN

 

  if (Inv.Checked=false) and (Hyp.Checked=false) then Begin

   if (frac(strtofloat(memo1.Text))=0 )then

   begin

    if (trunc(strtofloat(memo1.Text))=0)  then begin memo1.Text:='1'; end;

    if (trunc(strtofloat(memo1.Text))=90) then begin memo1.Text:='0'; end;

    if (strtofloat(memo1.Text)=270) then begin memo1.Text:='0'; end;

    if (strtofloat(memo1.Text)=180) then begin memo1.Text:='-1'; end;

    if (strtofloat(memo1.Text)=360) then begin memo1.text:='1'; end;

   end;

     memo1.text:=floattostr(cos(DegToRad(strtofloat(memo1.text))));

  End;

 

  if (Inv.Checked=true) and (Hyp.Checked=true) then

  if  strtofloat(memo1.Text)<1 then memo1.Text:=net;

  memo1.text:=floattostr(Arccosh(strtofloat(memo1.text)));

 

  if (Inv.Checked=true) and (Hyp.Checked=false) then begin

  if ((strtofloat(memo1.Text)<=1) and (strtofloat(memo1.Text)>=(-1)) ) then

   memo1.Text:=floattostr(180/pi*Arccos(strtofloat(memo1.text)))

else memo1.Text:=net;;  end;

 

  if (Inv.Checked=false) and (Hyp.Checked=true) then

     memo1.text:=floattostr(cosh(strtofloat(memo1.text)));

END;

{---------------------------градусы___end-------------------------------------}

 

{---------------------------грады___begin-------------------------------------}

 

if RadioButtonGrad.Checked=true then

BEGIN

 

if (Inv.Checked=false) and (Hyp.Checked=false) then

  memo1.text:=floattostr(cos(gradtorad(strtofloat(memo1.text))));

 

  if (Inv.Checked=true) and (Hyp.Checked=false) then begin

  if ((strtofloat(memo1.Text)<=1) and (strtofloat(memo1.Text)>=(-1)) ) then

   memo1.Text:=floattostr(200/pi*Arccos(strtofloat(memo1.text)))

else memo1.Text:=net;  end;

 

  if (Inv.Checked=false) and (Hyp.Checked=true) then

     memo1.text:=floattostr(cosh(strtofloat(memo1.text)));

 

   if (Inv.Checked=true) and (Hyp.Checked=true) then

  memo1.text:=floattostr(Arccosh(strtofloat(memo1.text)));

 

END;

 

{---------------------------грады___end---------------------------------------}

Except

End;

flag:=true;

end;

 

procedure TForm1.SpeedButtonCtgClick(Sender: TObject);

var t:real;

begin

TRY

{----------------------------радианы---begin----------------------------------}

 

   if (Inv.Checked=false) and (Hyp.Checked=false) then

   memo1.Text:=floattostr(cot(strtofloat(memo1.text))) ;

 

      if (Inv.Checked=true) and (Hyp.Checked=false) then begin

    if ((strtofloat(memo1.Text)<90) and (strtofloat(memo1.Text)>(-90)) ) then

   memo1.Text:=floattostr(Arccot(strtofloat(memo1.text)))

    else

     memo1.Text:=net;; end;

 

  if (Inv.Checked=false) and (Hyp.Checked=true) then

   memo1.Text:=floattostr(coth(t));

 

   if (Inv.Checked=true) and (Hyp.Checked=true) then begin

   if strtofloat(memo1.text)>1 then

   memo1.Text:=floattostr(Arccoth(strtofloat(memo1.text)))

  else begin memo1.Text:=net; exit; end; end;

{-----------------------------радианы---end----------------------------------}

 

{---------------------------градусы___begin-----------------------------------}

    if radiobuttonGradus.Checked=true then

BEGIN

   if  ((inv.Checked=true) and (hyp.Checked=false))then

     memo1.Text:=floattostr(180/pi*Arccot(strtofloat(memo1.Text)));

 

  if ((inv.Checked=true) and (hyp.Checked=true)) then   begin

   if (strtofloat(memo1.Text)<1) then   begin

   memo1.Text:=net; exit;   end

   else

    memo1.Text:=floattostr(ArcCotH(strtofloat(memo1.text)));

    end ;

 

  if ((inv.Checked=false) and ( hyp.Checked=true)) then

   memo1.Text:=floattostr(cotH(strtofloat(memo1.Text)));

 

  if ((inv.Checked=false) and ( hyp.Checked=false)) then  Begin

if (strtofloat(memo1.Text)=0)  then  memo1.Text:='0';

if (strtofloat(memo1.Text)=90) then  memo1.Text:=net;

if (strtofloat(memo1.Text)=270) then  memo1.Text:=net;

if (strtofloat(memo1.Text)=180) then  memo1.Text:='0';

if (strtofloat(memo1.Text)=360) then  memo1.text:='0';

   if ((strtofloat(memo1.Text)=90 ) or (strtofloat(memo1.Text)=(-90)) ) then

  begin

    memo1.Text:=net;

    inv.Checked:=false;

    hyp.Checked:=false;    exit;  end

else memo1.Text:=floattostr(DegToRad(strtofloat(memo1.text))) ;

   end;

END;

{---------------------------градусы___end-----------------------------------}

 

{---------------------------грады__begin--------------------------------------}

 

if RadioButtonGrad.Checked=true then

BEGIN

  if  ((inv.Checked=true) and (hyp.Checked=false))then

   memo1.Text:=floattostr(200/pi*Arccot(strtofloat(memo1.Text)));

 

  if ((inv.Checked=true) and (hyp.Checked=true)) then begin

  if strtofloat(memo1.text)>1 then memo1.Text:=net else

   memo1.Text:=floattostr(ArcCotH(strtofloat(memo1.Text))); end;

 

  if ((inv.Checked=false) and ( hyp.Checked=true)) then

  memo1.Text:=floattostr(Coth(strtofloat(memo1.Text)));

 

if ((inv.Checked=false) and ( hyp.Checked=false)) then

memo1.Text:=floattostr(Cot(gradtorad(strtofloat(memo1.Text))));

 

END;

{---------------------------грады__end--------------------------------------}

flag:=true;

except

END;

end;

 

procedure TForm1.SpeedButtonDatClick(Sender: TObject);

begin

  form2.ListBox1.Items.Add(form1.Memo1.Text);

  flag:=true;

  form2.labeln.Caption:='n= '+inttostr(form2.ListBox1.Items.Count);

end;

 

procedure TForm1.SpeedButtonDClick(Sender: TObject);

begin

  if flag=true then memo1.clear;

  memo1.Text:=memo1.Text+'D'; flag:=false;

end;

 

procedure TForm1.SpeedButtonDelClick(Sender: TObject);

begin

case ss of

      2:  memo1.Text:=inttostr((Rto10(memo1.text,2)));

      8:  memo1.Text:=inttostr((Rto10(memo1.text,8)));

     16: memo1.Text:=inttostr((Rto10(memo1.text,16)));

end;

 

if kol=1 then

  BEGIN

  if (klav='o') then SpeedButtonModClick(SpeedButtonMod);

  if (klav='l') then SpeedButtonLshClick(SpeedButtonLsh);

 

   if (klav='m') then

   begin

      memo1.Text:=floattostr((r-strtofloat(memo1.text)));

      R:=0; pk:=0; mk:=0; dk:=0; uk:=0;

   end;

 

    if (klav='u') then

    begin

      memo1.Text:=floattostr(r*strtofloat(memo1.Text));

      R:=0; pk:=0; mk:=0; dk:=0; uk:=0;

    end;

 

     if (klav='p') then

     begin

      memo1.Text:=floattostr(r+strtofloat(memo1.text));

      R:=0; pk:=0; mk:=0; dk:=0; uk:=0;

     end;

 

    flag:=true;

    if dk=0 then d:=strtofloat(memo1.Text);

    try

      if dk=1 then R:=d/strtofloat(memo1.text);

      if dk>1 then R:=R/strtofloat(memo1.Text);

      if dk>=1 then memo1.Text:=floattostr(r);

      R:=strtofloat(memo1.text);

    except

      on E:EZeroDivide do begin

      showmessage ('На нуль делить нелзя!');

      memo1.Text:=net;

    end;

    end;

    case ss  of

      2:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),2));

      8:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),8));

      16:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),16));

    end;

  END;

 

  Kol:=0; klav:='d'; inc(dk);

end;

 

procedure TForm1.SpeedButtonDMouseLeave(Sender: TObject);

begin

  SpeedButtonD.Font.Color:=clBlack;

end;

 

procedure TForm1.SpeedButtonDMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);

begin

  SpeedButtonD.Font.Color:=clred;

end;

 

procedure TForm1.SpeedButtonEClick(Sender: TObject);

begin

  if flag=true then memo1.clear;

  memo1.Text:=memo1.Text+'E'; flag:=false;

end;

 

procedure TForm1.SpeedButtonEMouseLeave(Sender: TObject);

begin

  SpeedButtonE.Font.Color:=clBlack;

end;

 

procedure TForm1.SpeedButtonEMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);

begin

  SpeedButtonE.Font.Color:=clred;

end;

 

procedure TForm1.SpeedButtonFacClick(Sender: TObject);

var p,q,r:integer;

begin

try p:=1;

for q := 1 to strtoint(memo1.Text) do

   p:=p*q;

   memo1.Clear; memo1.Text:=floattostr(p);

   flag:=true;

except

end;

end;

 

procedure TForm1.SpeedButtonFClick(Sender: TObject);

begin

if flag=true then memo1.clear;

  memo1.Text:=memo1.Text+'F'; flag:=false;

end;

 

procedure TForm1.SpeedButtonFMouseLeave(Sender: TObject);

begin

  SpeedButtonF.Font.Color:=clBlack;

end;

 

procedure TForm1.SpeedButtonFMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);

begin

  SpeedButtonF.Font.Color:=clred;

end;

 

procedure TForm1.SpeedButtonIntClick(Sender: TObject);

begin

memo1.Text:=FloatToStr(int(strtofloat(memo1.text)));

flag:=true;

end;

 

procedure TForm1.SpeedButtonLnClick(Sender: TObject);

begin

TRY

flag:=true;

if ss=10 then Begin

try

   memo1.Text:=FloatToStr(ln(strtofloat(memo1.Text)));

except

    on E:EZeroDivide do begin

    showmessage ('На нуль делить нелзя!');

    memo1.Text:=net; end;

  end; End;

 

  if ss<>10 then

  BEGIN

    case ss of

        2:  memo1.Text:=inttostr((Rto10(memo1.text,2)));

        8:  memo1.Text:=inttostr((Rto10(memo1.text,8)));

        16: memo1.Text:=inttostr((Rto10(memo1.text,16)));

     end;

 

        try

        memo1.text:=floattostr(int(Ln(strtofloat(memo1.text))));

        except

        on E:EZeroDivide do begin

        showmessage ('На нуль делить нелзя!');

        memo1.Text:=net; end;

        end;

 

     case ss  of

       2:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),2));

       8:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),8));

       16:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),16));

     end;

 

  END;

Except;

END;

end;

 

procedure TForm1.SpeedButtonLogClick(Sender: TObject);

begin

 

TRY

if ss=10 then

memo1.text:=floattostr(Log10(strtofloat(memo1.text)))

else

      case ss of

           2:  memo1.Text:=inttostr((Rto10(memo1.text,2)));

           8:  memo1.Text:=inttostr((Rto10(memo1.text,8)));

          16: memo1.Text:=inttostr((Rto10(memo1.text,16)));

       end;

 

  if radiobuttonBin.checked=true then

memo1.text:=floattostr(int(Log10(strtofloat(memo1.text))));

 

  case ss  of

      2:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),2));

      8:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),8));

      16:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),16));

    end;

 

EXCEPT

on E:EZeroDivide do begin

    showmessage ('На нуль делить нелзя!');

    memo1.Text:=net; end;

END;

end;

 

procedure TForm1.SpeedButtonLshClick(Sender: TObject);

begin

case ss of

      2:  memo1.Text:=inttostr((Rto10(memo1.text,2)));

      8:  memo1.Text:=inttostr((Rto10(memo1.text,8)));

     16: memo1.Text:=inttostr((Rto10(memo1.text,16)));

   end;

 

flag:=true;  klav:='l'; kol:=1;

if lk=0 then ls:=strtoint(memo1.Text);

if lk>0 then R:=rol32(ls,strtoint(memo1.Text));

 

if lk>=1 then memo1.Text:=floattostr(r);

inc(lk); kol:=0;

 

case ss  of

      2:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),2));

      8:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),8));

      16:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),16));

    end;

end;

 

procedure TForm1.SpeedButtonMCClick(Sender: TObject);

begin

  panel5.Caption:='';

  mem_s:=0;

end;

 

procedure TForm1.SpeedButtonMdelClick(Sender: TObject);

begin

  mem_s:=strtofloat(memo1.text)/mem_s;

    panel5.Caption:=floattostr(mem_s);

  flag:=true;

end;

 

procedure TForm1.SpeedButtonMinusClick(Sender: TObject);

begin

case ss of

      2:  memo1.Text:=inttostr((Rto10(memo1.text,2)));

      8:  memo1.Text:=inttostr((Rto10(memo1.text,8)));

     16: memo1.Text:=inttostr((Rto10(memo1.text,16)));

end;

 

  flag:=true;

if kol=1 then

  BEGIN

    if (klav='u') then

    begin

      memo1.Text:=floattostr(r*strtofloat(memo1.Text));

      R:=0; pk:=0; mk:=0; dk:=0; uk:=0;

    end;

 

     if (klav='d') then

     begin

      memo1.Text:=floattostr(r/strtofloat(memo1.text));

      R:=0; pk:=0; mk:=0; dk:=0; uk:=0;

     end;

    if (klav='p')  then

    begin

      memo1.Text:=floattostr((r+strtofloat(memo1.text)));

      R:=0; pk:=0; mk:=0; dk:=0; uk:=0;

    end;

 

     if (klav='o') then SpeedButtonModClick(SpeedButtonMod);

     if (klav='l') then SpeedButtonLshClick(SpeedButtonLsh);

 

    if(mk=0) then m:=strtofloat(memo1.Text);

    if mk=1  then R:=m-strtofloat(memo1.Text);

    if mk>1  then  R:=r-strtofloat(memo1.Text);

    if mk>=1 then memo1.Text:=floattostr(r);

    R:=strtofloat(memo1.Text);

 

    case ss  of

      2:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),2));

      8:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),8));

      16:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),16));

    end;

  END;

kol:=0; klav:='m';  inc(mk);

end;

 

procedure TForm1.SpeedButtonModClick(Sender: TObject);

begin

TRY

  flag:=true;  klav:='o';

  case ss of

      2:  memo1.Text:=inttostr((Rto10(memo1.text,2)));

      8:  memo1.Text:=inttostr((Rto10(memo1.text,8)));

     16: memo1.Text:=inttostr((Rto10(memo1.text,16)));

   end;

 

     if mok=0 then   mo:=strtoint(memo1.Text);

     if (mok=1) then  mb1:=strtoint(memo1.text);

     if (mok>=1) then memo1.Text:=inttostr(mo mod mb1);

     R:=strtofloat(memo1.Text);

 

   case ss  of

      2:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),2));

      8:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),8));

      16:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),16));

    end;

   kol:=1; inc(mok);

Except

END;

   end;

 

procedure TForm1.SpeedButtonPlusClick(Sender: TObject);

begin klav:='p';

   case ss of

      2:  memo1.Text:=inttostr((Rto10(memo1.text,2)));

      8:  memo1.Text:=inttostr((Rto10(memo1.text,8)));

     16: memo1.Text:=inttostr((Rto10(memo1.text,16)));

 

 

 

 

 

 

 

 

   end;

flag:=true;

if kol=1 then

  BEGIN

    if (klav='m') then

    begin

      memo1.Text:=floattostr((r-strtofloat(memo1.text)));

      R:=0; pk:=0; mk:=0; dk:=0; uk:=0;

    end;

 

    if (klav='u') then

    begin

      memo1.Text:=floattostr(r*strtofloat(memo1.Text));

      R:=0; pk:=0; mk:=0; dk:=0; uk:=0;

    end;

 

     if (klav='d') then

     begin

      memo1.Text:=floattostr(r/strtofloat(memo1.text));

      R:=0; pk:=0; mk:=0; dk:=0; uk:=0;

     end;

 

     if (klav='o') then SpeedButtonModClick(SpeedButtonMod);

     if (klav='l') then SpeedButtonLshClick(SpeedButtonLsh);

 

 

    if pk=0    then a:=strtofloat(memo1.Text);

    if (pk=1)  then R:=a+strtofloat(memo1.text);

    if pk>1    then R:=R+strtofloat(memo1.Text);

    if (pk>=1) then memo1.Text:=floattostr(r);

    R:=strtofloat(memo1.Text);

 

    case ss  of

      2:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),2));

      8:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),8));

      16:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),16));

    end;

  END;

kol:=0; inc(pk);

end;

 

procedure TForm1.SpeedButtonMplusClick(Sender: TObject);

begin

  mem_s:=mem_S+strtofloat(memo1.text);

  Panel5.Caption:=floattostr(mem_s);

  flag:=true;

end;

 

procedure TForm1.SpeedButtonMRClick(Sender: TObject);

begin

  Memo1.Text:=floattostr(mem_s);

end;

 

procedure TForm1.SpeedButtonMSClick(Sender: TObject);

begin

mem_s:=strtofloat(memo1.text);

Panel5.Caption:=floattostr(mem_s);

flag:=true;

end;

 

procedure TForm1.SpeedButtonMumnClick(Sender: TObject);

begin

  mem_s:=mem_S*strtofloat(memo1.text);

  panel5.Caption:=floattostr(mem_s);

  flag:=true;

end;

 

procedure TForm1.SpeedButtonNotClick(Sender: TObject);

  var f:integer; c1:string;   pos_,c3:integer;

begin

c1:='-';

if ss=10 then

  Begin

     f:=strtoint(memo1.Text);

     f:=not f;

     memo1.Text:=inttostr(f);

End;

 

   if (ss<>10) and (ss<>16) and (strtofloat(memo1.text)>0) then

     Begin

      case ss of

        2:  memo1.Text:=inttostr((Rto10(memo1.text,2)));

        8:  memo1.Text:=inttostr((Rto10(memo1.text,8)));

      end;

 

       memo1.Text:=floattostr(strtofloat(memo1.text)+1);

 

      case ss  of

        2:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),2));

        8:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),8));

      end;

      memo1.Text:=floattostr(strtofloat(memo1.text)*-1);

    End

  else

  if (ss<>10) and (ss<>16)and (strtofloat(memo1.text)<0) then

   BEGIN

     memo1.Text:=floattostr(strtofloat(memo1.text)*-1);

      case ss of

        2:  memo1.Text:=inttostr((Rto10(memo1.text,2)));

        8:  memo1.Text:=inttostr((Rto10(memo1.text,8)));

      end;

 

        memo1.Text:=floattostr(strtofloat(memo1.text)-1);

 

      case ss  of

        2:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),2));

        8:  memo1.Text:=(ConvertToCs(strtoint(memo1.Text),8));

      end;

    End;

 

   if ss=16  then

   begin

     memo1.Text:=inttostr((Rto10(memo1.text,16)));

     memo1.Text:=floattostr(strtofloat(memo1.text)+1);

     memo1.Text:=floattostr(strtofloat(memo1.text)*-1);

     c3:=strtoint(memo1.Text);

Информация о работе Инженерный калькулятор