Автор: Пользователь скрыл имя, 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
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):
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*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(
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+
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+
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+
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+
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)