我需要在 Delphi 7 中实现浮点后找到具有给定计数符号的平方根的牛顿方法。我编写了以下代码:
program NewtonMethod
{$APPTYPE CONSOLE}
uses
SysUtils, Math;
const
signCount = 50; //Signs after floating point count
var
number, curRoot, prevRoot: Extended;
precision: Extended;
function input(): Extended;
begin
Write('x=');
try
Readln(number)
except
Writeln('Invalid input data, please try again');
Input();
end;
end;
begin
input();
curRoot := sqrt(number); //Íà÷àëüíàÿ
precision := 1 / power(10, signCount);
prevRoot := 0;
repeat
prevRoot := curRoot;
curRoot := prevRoot - (Power(prevRoot, 2) - number) / (2 * prevRoot);
until
Abs(curRoot - prevRoot) < precision;
Writeln(curRoot);
ReadLn;
end.
请回答我的问题:
- 这段代码正确吗?
- 如何以具有所有符号的正常(非指数)形式打印结果根?
- 输入值可能非常大(最多 200 个符号)。这段代码可以和他们一起使用吗?
并建议我,我该如何改进我的代码?