回 帖 发 新 帖 刷新版面

主题:请大家帮忙分析一下“20”语句

10 INPUT “X,N=”;X,N
20 T=X
30 S=X
40 FOR K=2 TO N STEP 1
50 L=2*K-1
60 M=1
70 FOR J=1 TO L STEP 1
80 M=M*J
90  NEXT J
100 T=(-1)∧(K-1)*X∧L/M
110 S=S+T
120 NEXT K
130 PRINT “X=”;X,“N=”;N,“S=”;S
140 END
RUN


我认为第“20”令T=X 这个语句没有什么实质性意义,因为在下面的循环中T会被重新赋值,请各位老师帮助分析一下这个程序,看看去除“20”语句是否会影响程序的最终结果,谢谢!

回复列表 (共11个回复)

沙发

不会.
请注意100,110这2句.虽然下面S赋值时会引用T的值,但是T已经在前面被重新赋值了,因此20句没有意义,要不要无所谓.
[quote]∧[/quote]
这个符号QB里有吗?应该改为"^".

板凳

没有用,去跟没去一样

3 楼

100 T=(-1)∧(K-1)*X∧L/M
这句我强烈建议修改,-1的若干次方,这样的运算式很花时间的。可以在k的循环里设置一个表示符号的变量。x的l次方应使用乘法完成。
例如:
10 INPUT “X,N=”;X,N
30 S=X
35 fh=1
36 xl=x
37 m=1
40 FOR K=2 TO N STEP 1
45 fh=-1*fh
50 xL=xl*x*x
80 M=M*2*(k-1)*(2*k-1)
100 T=fh*xL/M
110 S=S+T
120 NEXT K
130 PRINT “X=”;X,“N=”;N,“S=”;S
140 END
RUN
取消关于m计算的大量重复计算。

4 楼

那100,110行为什么不合并呢?
少用一个变量及赋值一样能提高丁点效率.
fh变量也应该省略,换用表达式.

5 楼

INPUT “X,N=”;X,N
S=X
M=1
xL=X
X2=X*X
FOR L=3 TO 2*N-1 STEP 2
    M=M*L*(L-1)
    xL=xL*X2
    S=S+(2-L mod 4)*xL/M
NEXT K
PRINT “X=”;X,“N=”;N,“S=”;S

6 楼

这个例子,是我从网上下载的QB教程里面的例子,因为我是刚刚学QB,以前一点也没有接触过,所以才发到网上请各位老师帮忙分析一下的,不过,令我高兴的是,各位老师不仅给出了答案,还给出了更好的程序结构,在此我表示感谢!!
其实我也觉得“20”语句一点用也没有,不知教材上为什么会这么写程序???

7 楼

我给你开始了分析,给你做了那么多的简化,才10分?

8 楼

对,为什么给2楼的打20分?才给我打10分?

9 楼

哈哈,看来我有走后门的嫌疑了。

10 楼

[quote]没有用,去跟没去一样[/quote]

我来回复

您尚未登录,请登录后再回复。点此登录或注册