Калькулятор в кодиционных СС

Автор: Пользователь скрыл имя, 27 Сентября 2011 в 15:59, реферат

Описание работы

Delphi — язык программирования, который используется в одноимённой среде разработки. Сначала язык назывался ObjectPascal.Начиная со среды разработки Delphi 7, в официальных документах Borland стала использовать название Delphi для обозначения языка ObjectPascal.

Delphi — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в ObjectPascal — динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией — данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию.

Содержание

Содержание……………………………………………………2

Введение ………………………………………………………3

О калькуляторе и системе счисления………………………...5

Постановка задачи…………………………………………...10

Практическая часть, исходные данные…...………………...11

Список используемой литературы………………………….25

Работа содержит 1 файл

Sidirov.docx

— 297.73 Кб (Скачать)

    Help1: TMenuItem;

    AboutCalculator1: TMenuItem;

    RadioButton1: TRadioButton;

    RadioButton2: TRadioButton;

    RadioButton3: TRadioButton;

    RadioButton4: TRadioButton;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    BitBtn3: TBitBtn;

    BitBtn4: TBitBtn;

    BitBtn5: TBitBtn;

    BitBtn6: TBitBtn;

    BitBtn7: TBitBtn;

    BitBtn8: TBitBtn;

    BitBtn9: TBitBtn;

    BitBtn10: TBitBtn;

    BitBtn11: TBitBtn;

    BitBtn12: TBitBtn;

    BitBtn13: TBitBtn;

    BitBtn14: TBitBtn;

    BitBtn15: TBitBtn;

    BitBtn16: TBitBtn;

    BitBtn17: TBitBtn;

    BitBtn18: TBitBtn;

    BitBtn19: TBitBtn;

    BitBtn20: TBitBtn;

    BitBtn21: TBitBtn;

    BitBtn22: TBitBtn;

    BitBtn24: TBitBtn;

    BitBtn25: TBitBtn;

    Edit1: TEdit;

    BitBtn26: TBitBtn;

    BitBtn27: TBitBtn;

    BitBtn28: TBitBtn;

    BitBtn29: TBitBtn;

    Memo1: TMemo;

    BitBtn31: TBitBtn;

    OpenDialog1: TOpenDialog;

    BitBtn32: TBitBtn;

    SaveDialog1: TSaveDialog;

    BitBtn23: TBitBtn;

    BitBtn30: TBitBtn;

    procedure AboutCalculator1Click(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

    procedure BitBtn3Click(Sender: TObject);

    procedure BitBtn4Click(Sender: TObject);

    procedure BitBtn5Click(Sender: TObject);

    procedure BitBtn6Click(Sender: TObject);

    procedure BitBtn7Click(Sender: TObject);

    procedure BitBtn8Click(Sender: TObject);

    procedure BitBtn9Click(Sender: TObject);

    procedure BitBtn10Click(Sender: TObject);

    procedure BitBtn18Click(Sender: TObject);

    procedure BitBtn19Click(Sender: TObject);

    procedure BitBtn20Click(Sender: TObject);

    procedure BitBtn21Click(Sender: TObject);

    procedure BitBtn17Click(Sender: TObject);

    procedure BitBtn25Click(Sender: TObject);

    procedure BitBtn24Click(Sender: TObject);

    procedure BitBtn22Click(Sender: TObject);

    procedure BitBtn26Click(Sender: TObject);

    procedure BitBtn27Click(Sender: TObject);

    procedure BitBtn28Click(Sender: TObject);

    procedure BitBtn29Click(Sender: TObject);

    procedure BitBtn31Click(Sender: TObject);

    procedure BitBtn32Click(Sender: TObject);

    procedure BitBtn23Click(Sender: TObject);

    procedure BitBtn30Click(Sender: TObject);

    procedure BitBtn11Click(Sender: TObject);

    procedure BitBtn12Click(Sender: TObject);

    procedure BitBtn13Click(Sender: TObject);

    procedure BitBtn14Click(Sender: TObject);

    procedure BitBtn15Click(Sender: TObject);

    procedure BitBtn16Click(Sender: TObject);

    procedure RadioButton4Click(Sender: TObject);

    procedure RadioButton3Click(Sender: TObject);

    procedure RadioButton2Click(Sender: TObject);

    procedure RadioButton1Click(Sender: TObject);

    private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form1: TForm1;

  first,second:real;

  answer:real;

  factor:string;

  Memory:string;

  numeralSystem:string='dec';

Функциибудут :

// from hex to int

function HexToInt(HexNum: string): LongInt;

begin

   Result:=StrToInt('$' + HexNum) ;

end;

//from Bin to int

function BinToInt(bin: string): longint;

var i: integer;

    res: longint;

begin

  res:=0;

  For i:=1 to Length(bin) do begin

    res:=res shl 1;

    if bin[i]='1' then res:=res or 1;

  end;

  BinToInt:=res;

end; 

//from Oct to Int

function OctToInt(OctNum:string):Longint;

var

   Len:integer;

   counter:integer;

   base:integer;

   res:integer;

begin

  Counter:=1;

  res:=0;

  base:=1;

  for Len:=length(OctNum) downto counter do

  Begin

    If not (OctNum[Len] in ['0'..'7']) then

    Begin

      ShowMessage('This is not an Octal number!');

      Halt;

    end

    Else

      Res:=res+StrToInt(OctNum[len])*base;

      base:=base*8;

  end;

  result:=res;

end;

// from Int to Bin

function IntToBin(dec: longint; dig:integer): string;

  var i: integer;

    res: string;

begin

  if dec=0 then begin IntToBin:='0'; Exit; end;

  SetLength(res,32);

  for i:=32 downto 1 do begin

    res[i]:=Chr((dec and 1)+48);

    dec:=dec shr 1;

  end;

  Delete(res,1,Pos('1',res)-1);

  IntToBin:=res;

end;

// from Int to Oct

function IntToOct( value: LongInt; digits: integer ): string;

var dec,bin,i:integer;

    a:array[1..100]of integer;

    s:string;

begin

  s:='';

  dec := value;

  i:=0;

  repeat

    i:=i+1;

    a[i]:=dec mod 8;

    dec:=dec div 8;

  until(dec = 0); 

  for i:=i downto 1 do

  begin

   s:=s+IntToStr(a[i]);

  end;

  result:=s;

end;

// about calculator programming

procedure TForm1.AboutCalculator1Click(Sender: TObject);

begin

ShowmessagePos('Eta proqramma pozvolyaet scitat virajeniya sostoyashie iz chisel,lyuboy sistemi ischisleniya,postoyannie chisla p=3,14159265359,funkcii korney, faktorial, kvadrat, kub, polojitelnoe/otricatelnoe znacenie. ',350,350);

end;

  //code of number 1

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

If Edit1.Text='0'

  Then Begin

   Edit1.Text:='1'

  end

  Else Begin

    Edit1.Text:=Edit1.Text + '1';

end;

end;

// code of adding

procedure TForm1.BitBtn18Click(Sender: TObject);

begin

  Factor:='+';

  if (numeralSystem='dec') then

  First:=StrToFloat(Edit1.Text)

  else if (numeralSystem='hex') then

  First:=HexToInt(edit1.Text)

  else if (numeralSystem='bin') then

  First:=BinToInt(Edit1.Text)

  else if (numeralSystem='oct') then

  First:=OctToInt(Edit1.Text);

  Edit1.Clear;

   Memo1.Text:=Memo1.Text+FloatToStr(first)+factor;

end;

// code of minus

procedure TForm1.BitBtn19Click(Sender: TObject);

begin

  Factor:='-';

  if (numeralSystem='dec') then

  First:=StrToFloat(Edit1.Text)

  else if (numeralSystem='hex') then

  First:=HexToInt(edit1.Text)

  else if (numeralSystem='bin') then

First:=BinToInt(Edit1.Text)

  else if (numeralSystem='oct') then

  First:=OctToInt(Edit1.Text);

  Edit1.Clear;

   Memo1.Text:=Memo1.Text+FloatToStr(first)+factor;

end;

// code of multiply

procedure TForm1.BitBtn20Click(Sender: TObject);

begin

Factor:='*';

  if (numeralSystem='dec') then

  First:=StrToFloat(Edit1.Text)

  else if (numeralSystem='hex') then

  First:=HexToInt(edit1.Text)

  else if (numeralSystem='bin') then

  First:=BinToInt(Edit1.Text)

  else if (numeralSystem='oct') then

  First:=OctToInt(Edit1.Text);

  Edit1.Clear;

   Memo1.Text:=Memo1.Text+FloatToStr(first)+factor;

end;

// code of deviding

procedure TForm1.BitBtn21Click(Sender: TObject);

begin

Factor:='/';

   if (numeralSystem='dec') then

  First:=StrToFloat(Edit1.Text)

  else if (numeralSystem='hex') then

  First:=HexToInt(edit1.Text)

  else if (numeralSystem='bin') then

  First:=BinToInt(Edit1.Text)

  else if (numeralSystem='oct') then

  First:=OctToInt(Edit1.Text);

  Edit1.Clear;

   Memo1.Text:=Memo1.Text+FloatToStr(first)+factor;

end;

  // control of denominator

Function Div0Check (DivNum : Real) : Boolean;

Begin

If DivNum=0

  Then Begin

   Div0Check:=False;

  end

  Else Begin

   Div0Check:=True;

  end;

end;

// calculation of answer

procedure TForm1.BitBtn17Click(Sender: TObject);

Var Check : Boolean;

begin

   if (numeralSystem='dec') then

  Second:=StrToFloat(Edit1.Text);

  else if (numeralSystem='hex') then

  Second:=HexToInt(edit1.Text)

  else if (numeralSystem='bin') then

  Second:=BinToInt(Edit1.Text)

  else if (numeralSystem='oct') then

  Second:=OctToInt(Edit1.Text);

   If Factor='+'

    Then Begin

      Answer:=First + Second;

     end;

      If Factor='-'

        Then Begin

         Answer:=First - Second;

        end;

      If Factor='*'

      Then Begin

      Answer:=First * Second;

      end;

  If Factor='/'

Then Begin

               Check:=Div0Check(Second);

                If Check=True

                 Then Begin

                  Answer:=First / Second;

                 end

                 Else Begin

                  ShowMessage('You cannot divide by 0');

                 end;

                 end;

if (numeralSystem='dec') then

  Edit1.Text:=FloatToStr(Answer)

Информация о работе Калькулятор в кодиционных СС