скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Вычисление квадратного корня (итерационный аналитический алгоритм)



Автор: Fenik

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Вычисление квадратного корня (итерационный аналитический алгоритм)

Зависимости: нет
Автор:       Fenik, chook_nu@uraltc.ru, Новоуральск
Copyright:   Автор: Федоровских Николай
Дата:        20 апреля 2003 г.
***************************************************** }

function MySqrt(x: Double; n: Byte): Double;
{ x - аргумент
  n - точность вычисления (советую брать 7-8) }
var
  i: Integer;
begin
  if x <= 0 then
  begin
    Result := 0;
    Exit;
  end
  else
    Result := 4;
  for i := 0 to n do
  begin
    Result := (Result + x / Result) / 2;
  end;
end;

Пример использования:

procedure TForm1.FormCreate(Sender: TObject);
var
  n: Double;
begin
  //Тест (сверить с калькулятором)
  n := 29.7665342;
  Caption := 'Sqrt(' + FloatToStrF(n, ffFixed, 10, 5) + ') = ' +
    FloatToStrF(MySqrt(n, 7), ffFixed, 10, 10);
end;





Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook