Показать сообщение отдельно
  #14  
Старый 06.01.2013, 02:28
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Порылся по "сети" почитал про алгоритм (могли бы и сами это сделать )
Код:
type
  TForm1 = class(TForm)
    Label1: TLabel;
    SpinEdit1: TSpinEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure Quadratwurzel(Value : Single);
  end;

var
  Form1: TForm1;
  Zahl1 : Single;

implementation

const
  eps = 1.0E-100;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Zahl1 := StrToFloat(SpinEdit1.Text);
  if Zahl1 > 1 then
    Quadratwurzel(Zahl1);

  if Zahl1 < 1 then
    Quadratwurzel(Abs(Zahl1));
end;

procedure TForm1.Quadratwurzel(Value : Single);
var
  X, S : Single;
begin
  X := 1;
  S := 0;
  while Abs(S - X) >= eps do
  begin
    S := X;
    X := (X + Value / X) / 2;
  end;

  Label1.Caption := FloatToStr(X);
end;

end.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием