Автор: Пользователь скрыл имя, 29 Мая 2015 в 17:00, курсовая работа
Целью курсового проекта является создание математической модели и программного приложения перевода чисел из десятичной в шестнадцатеричную, восьмеричную и двоичную системы счисления. Программный продукт написан на
языке программирования Delphi, имеет простой и удобный интерфейс, понятный даже начинающему пользователю.
4 Программа на алгоритмическом языке
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TmainForm = class(TForm)
Label1: TLabel;
txt10: TEdit;
Label2: TLabel;
txt2: TEdit;
Label3: TLabel;
txt8: TEdit;
Label4: TLabel;
txt16: TEdit;
btnRun: TButton;
procedure btnRunClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function ConvertDecToBin(dec: longint): string;
function ConvertDecToOct(dec: longint): string;
function ConvertDecToHex(dec: longint): string;
var
mainForm: TmainForm;
implementation
{$R *.dfm}
function ConvertDecToBin(dec: longint): string;
var
bin: string;
i, j: longint;
begin
if dec = 0 then
bin := '0'
else
begin
bin := '';
i := 0;
while (1 shl (i + 1)) <= dec do
i := i + 1;
for j := 0 to i do
begin
if (dec shr (i - j)) = 1 then
bin := bin + '1'
else
bin := bin + '0';
dec := dec and ((1 shl (i - j)) - 1);
end;
end;
ConvertDecToBin := bin;
end;
function ConvertDecToOct(dec: longint): string;
const
octdigts: string[8] = '01234567';
var
oct: string;
i, j: longint;
begin
if dec = 0 then
oct := '0'
else
begin
oct := '';
i := 0;
while (1 shl ((i + 1) * 3)) <= dec do
i := i + 1;
for j := 0 to i do
begin
oct := oct + octdigts[(dec shr ((i - j) * 3)) + 1];
dec := dec and ((1 shl ((i - j) * 3)) - 1);
end;
end;
ConvertDecToOct := oct;
end;
function ConvertDecToHex(dec: longint): string;
const
hexdigts: string[16] = '0123456789abcdef';
var
hex: string;
i, j: longint;
begin
if dec = 0 then
hex := '0'
else
begin
hex := '';
i := 0;
while (1 shl ((i + 1) * 4)) <= dec do
i := i + 1;
for j := 0 to i do
begin
hex := hex + hexdigts[(dec shr ((i - j) * 4)) + 1];
dec := dec and ((1 shl ((i - j) * 4)) - 1);
end;
end;
ConvertDecToHex := hex;
end;
procedure TmainForm.btnRunClick(Sender: TObject);
var x:integer;
begin
x:=StrToInt(txt10.Text);
txt2.Text:=ConvertDecToBin(x);
txt8.Text:=ConvertDecToOct(x);
txt16.Text:=ConvertDecToHex(x)
end;
end.