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 符号)。このコードはそれらで動作しますか?
どうすればコードを改善できますか?