Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button13: TButton;
Button16: TButton;
Button17: TButton;
ComboBox1: TComboBox;
Button18: TButton;
Button19: TButton;
Button20: TButton;
Button21: TButton;
Button22: TButton;
Button23: TButton;
Button24: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormShow(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button23Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
procedure Button21Click(Sender: TObject);
procedure Button22Click(Sender: TObject);
procedure Button24Click(Sender: TObject);
private
{ Private declarations }
OneVod: Integer; One: integer;
Oper: Byte;
Valuel1: String;
function BinToInt (Value: integer): double; //обьявляемздесьнашифункции.
function IntToBin(x: Integer): string;
function IntToHex(a:integer):string;
function HexToInt(HexNum: string): LongInt;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function TForm1.BinToInt (Value: integer): double; //функцияпереводаиздвоичнойсистемывдесятичную.
var i,x,g,h,u,kol:integer; f,k: double;
begin
kol:=0;
u:=Value;
while u>0 do //выполняемпокапер. u большенуля.
begin
u:=u div 10; // считаем в счетчик Kol сколько раз наше число u сможет поделиться на (10).
kol:=kol + 1;
end;
begin
f:=0; x:=0;
for i:=1 to kol do // запускаем For выполняет пока i не будет равно kol.
Begin
g:=Value mod 10; // делим наше число на 10 и присваиваем g остаток деления.
h:=Value div 10; // делим наше число на 10 и присваиваем h целую часть после деления.
Value:=h;
k:=g*exp(x*ln(2)); // умножаем g на 2 в степени x.
f:=f+k; // суммируем все значения.
x:=x+1; // счетчик степени x.
end;
end;
BinToInt:=f; // присваиваем конечное значение функции BinToInt.
end;
function TForm1.IntToBin(x: Integer): string; // Функция перевода из десятичного числа в двоичную систему счисления.
const t:array[0..1] of char = ('0','1'); // Массив с 2 уже заполнеными ячейками 1 и 0, когда мы будем делить наше число mod 2 в переменную res будет + записывать 0 либо 1.
var res:string;
d: integer;
begin
res:='';
d:=0;
while (x<>0) do // выполняем пока наше число x неравно 0.
begin
d:=x mod 2; // делим наше число x на 2, и присваимваем остаток после деления пер. d.
res:=t[d]+res; // присваиваем строковому типо res 1 или 0.
x:=x div 2; // берем целую часть после деления на 2.
end;
IntToBin:=res; // присваиваем конечное значение функции Bin.
end;
function TForm1.IntToHex(a:integer):string; // функция перевода из десятичной в шестнадцатиричную систему счисления.
const figures:array[1..15] of char = ('1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'); // Описываем массив и заполняем его значениями шестнадцатиричной системы счисления.
begin
result:='';
while a>0 do // выполняется пока наше значение a больше нуля.
begin
result:=figures[a mod 16] +