VirusXP » 08 июн 2005, 12:29
лОви). за 15 минут налабал... осталось впаять проверки на переменные...
--------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;
var
Form1: TForm1;
implementation
type TArr = array of Extended;
{$R *.dfm}
function GetFinishDigit(AExtended: extended): extended;
begin
result := AExtended - 10 * Int(AExtended / 10);
end;
function GetDigit(AExtended: extended; i: integer): extended;
begin
if i = 0 then
result := GetFinishDigit(AExtended)
else
result := GetFinishDigit(Int(AExtended / Power(10, i)));
end;
procedure InitArray(AExtended: extended; var Arr: TArr);
var i: integer;
begin
if Assigned(Arr) then
for i := 0 to length(Arr) - 1 do
Arr := GetDigit(AExtended, i);
end;
function InvertExtended(Arr: TArr): extended;
var i:integer;
begin
result := 0;
if Assigned(Arr) then
for i := 0 to length(Arr) - 1 do
result := result + Arr * Power(10, length(Arr) - i - 1);
end;
procedure TForm1.Button1Click(Sender: TObject);
var lExtended, lResult: extended;
lArr: TArr;
st: string;
begin
lExtended := StrToInt(Edit1.Text);
Str(strtoint(Edit1.Text), st);
SetLength(lArr, length(st));
InitArray(lExtended, lArr);
lResult := InvertExtended(lArr);
Str(lResult, st);
Edit2.Text := st;
end;
end.
лОви). за 15 минут налабал... осталось впаять проверки на переменные...
--------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;
var
Form1: TForm1;
implementation
type TArr = array of Extended;
{$R *.dfm}
function GetFinishDigit(AExtended: extended): extended;
begin
result := AExtended - 10 * Int(AExtended / 10);
end;
function GetDigit(AExtended: extended; i: integer): extended;
begin
if i = 0 then
result := GetFinishDigit(AExtended)
else
result := GetFinishDigit(Int(AExtended / Power(10, i)));
end;
procedure InitArray(AExtended: extended; var Arr: TArr);
var i: integer;
begin
if Assigned(Arr) then
for i := 0 to length(Arr) - 1 do
Arr[i] := GetDigit(AExtended, i);
end;
function InvertExtended(Arr: TArr): extended;
var i:integer;
begin
result := 0;
if Assigned(Arr) then
for i := 0 to length(Arr) - 1 do
result := result + Arr[i] * Power(10, length(Arr) - i - 1);
end;
procedure TForm1.Button1Click(Sender: TObject);
var lExtended, lResult: extended;
lArr: TArr;
st: string;
begin
lExtended := StrToInt(Edit1.Text);
Str(strtoint(Edit1.Text), st);
SetLength(lArr, length(st));
InitArray(lExtended, lArr);
lResult := InvertExtended(lArr);
Str(lResult, st);
Edit2.Text := st;
end;
end.