nwtnsqrt.bas

来自「[ARRL.无线电通讯手册].The.Arrl.Handbook.For.Rad」· BAS 代码 · 共 22 行

BAS
22
字号
DEFDBL A
DEFINT D, G, K-M                       '
DEFLNG N-T                             '
DERROR = 1                             'COMPUTE TO WITHIN 1 BIT
                                       '
START: PRINT : INPUT "ARGUMENT"; ARG   'THE ARGUMENT
 IF ARG <> INT(ARG) THEN GOTO START    'MUST BE INTEGRAL
 PARG = ARG                            'ARGUMENT IS A 32-BIT #
 N = (LOG(PARG)) / (LOG(2))            '# OF SIG FIGS IN PARG
 OLDGUESS = 2 ^ (N / 2)                'GOOD INITIAL GUESS
                                       '
LOOP0: FOR K = 0 TO 8191               '''''''''ITERATION COUNTER
 NEWGUESS = (PARG / OLDGUESS + OLDGUESS) / 2   'THE NEW GUESS
IF ABS(NEWGUESS-OLDGUESS)<=DERROR THEN K0 = K: K = 8191: GOTO FIN
 OLDGUESS = NEWGUESS                           'NEW IS NOW OLD
                                               '
FIN: NEXT K                                    'GO MORE

 PRINT "SQR("; PARG; ")="; NEWGUESS; ", ITERATIONS="; K0 + 1
 GOTO START

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?