Вычисление квадратного корня (алгоритм Ньютона)
Falk0ner, вс, 06/07/2008 - 15:35.
Вычисление квадратного корня (алгоритм Ньютона)
{ **** UBPFD *********** by kladovka.net.ru ****
>>
Зависимости: нет
Автор: Fenik, <a href="mailto:chook_nu@uraltc.ru">chook_nu@uraltc.ru</a>, Новоуральск
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;
>>
Зависимости: нет
Автор: Fenik, <a href="mailto:chook_nu@uraltc.ru">chook_nu@uraltc.ru</a>, Новоуральск
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;
var n: Double;
begin
//Тест (сверить с калькулятором)
n := 29.7665342;
Caption := 'Sqrt(' + FloatToStrF(n, ffFixed, 10, 5) + ') = ' +
FloatToStrF(MySqrt(n, 7), ffFixed, 10, 10);
end;
Отправить комментарий