主题:请大家帮忙分析一下“20”语句
			 njlbjt
				 [专家分:0]  发布于 2007-07-07 01:00:00
 njlbjt
				 [专家分:0]  发布于 2007-07-07 01:00:00							
			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个回复)
		
								
				沙发
				
					 Matodied [专家分:7560]  发布于 2007-07-07 09:44:00
Matodied [专家分:7560]  发布于 2007-07-07 09:44:00				
				不会.
请注意100,110这2句.虽然下面S赋值时会引用T的值,但是T已经在前面被重新赋值了,因此20句没有意义,要不要无所谓.
[quote]∧[/quote]
这个符号QB里有吗?应该改为"^".
							 
						
				板凳
				
					 &佑慧妹妹& [专家分:660]  发布于 2007-07-07 18:19:00
&佑慧妹妹& [专家分:660]  发布于 2007-07-07 18:19:00				
				没有用,去跟没去一样
							 
						
				3 楼
				
					 老大徒伤悲 [专家分:29120]  发布于 2007-07-07 21:30:00
老大徒伤悲 [专家分:29120]  发布于 2007-07-07 21:30:00				
				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 楼
				
					 moz [专家分:37620]  发布于 2007-07-08 12:37:00
moz [专家分:37620]  发布于 2007-07-08 12:37:00				
				那100,110行为什么不合并呢?
少用一个变量及赋值一样能提高丁点效率.
fh变量也应该省略,换用表达式.
							 
						
				5 楼
				
					 moz [专家分:37620]  发布于 2007-07-08 14:06:00
moz [专家分:37620]  发布于 2007-07-08 14:06:00				
				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 楼
				
					 njlbjt [专家分:0]  发布于 2007-07-08 16:26:00
njlbjt [专家分:0]  发布于 2007-07-08 16:26:00				
				这个例子,是我从网上下载的QB教程里面的例子,因为我是刚刚学QB,以前一点也没有接触过,所以才发到网上请各位老师帮忙分析一下的,不过,令我高兴的是,各位老师不仅给出了答案,还给出了更好的程序结构,在此我表示感谢!!
其实我也觉得“20”语句一点用也没有,不知教材上为什么会这么写程序???
							 
						
				7 楼
				
					 老大徒伤悲 [专家分:29120]  发布于 2007-07-08 17:43:00
老大徒伤悲 [专家分:29120]  发布于 2007-07-08 17:43:00				
				我给你开始了分析,给你做了那么多的简化,才10分?
							 
						
				8 楼
				
					 Matodied [专家分:7560]  发布于 2007-07-08 20:42:00
Matodied [专家分:7560]  发布于 2007-07-08 20:42:00				
				对,为什么给2楼的打20分?才给我打10分?
							 
						
				9 楼
				
					 moz [专家分:37620]  发布于 2007-07-08 21:27:00
moz [专家分:37620]  发布于 2007-07-08 21:27:00				
				哈哈,看来我有走后门的嫌疑了。
							 
						
				10 楼
				
					 Lovely哆啦 [专家分:1360]  发布于 2007-07-23 12:46:00
Lovely哆啦 [专家分:1360]  发布于 2007-07-23 12:46:00				
				[quote]没有用,去跟没去一样[/quote]
							 
									
			
我来回复