VB常用算法(一)累加和连乘
1.算法描述
累积形式:V=V+e
偶数乘法形式:V=V*e
其中:v为变量,e为递增表达式。累加和连续乘法一般通过循环结构来实现。
注意:在执行循环体之前,需要给变量V一个初始值。一般累加时初始值为0;乘法时,将初始值设置为1。
举个例子
求n!结果。
私有子命令1_Click()
Dim n%,i%,s&
N = Val(InputBox ("input n "))
s = 1
对于i = 1至n
s = s * i
接下来我
打印s
末端接头
错误的写法:
私有子命令1_Click()
Dim n%,i%,s&
N = Val(InputBox ("input n "))
对于i = 1至n
S = 1 '初值语句位置错误!
s = s * i
接下来我
“Print”将s的值输出为n,而不是n!
末端接头
应用示例
根据下式求自然对数e的近似值。
要求:误差小于0.00001
私有子命令1_Click()
Dim i%,n & t!,e!
e = 2
i = 1
t = 1
当t > 0.00001时执行
i = i + 1
t = t / i
e = e + t
环
打印“已计算”;我;”项目总和为:“;e
将Print exp (1)'与上一句的输出值进行比较,证明算法的正确性。
末端接头
解决问题的技巧
1)由于这类题型往往是根据精度要求来评价的,我们无法预测具体的循环次数,所以这类题型一般用Do循环,很少用For循环。设置循环变量和一般变量,注意每个变量的初始值;
2)分解通项表达式中的各个因子,用循环变量分别表示各个因子;
3)如果步骤2中的某些因素比较复杂,难以用变量直接表示,此时可以考虑使用函数过程;
4)根据步骤1、2、3写出通项表达式;
5)根据精度要求(往往是一个关系表达式比如通项小于10负多少次),写出满足精度要求后跳出循环的语句。通常,如果一般术语表达式> 10 (-n),则使用exit do。注意,这句话通常需要放在累加或者连乘之前。
示例描述
以2002年春季06试卷编程题为例。
根据x值计算:
n=1,2,…
要求:n项的绝对值小于等于10-6。
1.因为循环数不确定,所以确定Do循环结构,定义循环变量为N(初始值1);用户输入的值用X表示;术语一般用dblCos表示;累加值用sum表示,初始值为0;
2.分解通式的组成
它可以分为三个部分:
可以表示为:(-1) (n+1)
它可以表示为:x (2 * (n-1))
很复杂,很难直接表达。
3.由于步骤2中的复杂性,此时考虑使用过程。
所以定义流程,输入值是N,返回值是
所以有:
私有函数comp(n倍长)倍长
暗淡我一样长
长时间模糊结果
Result = 1 '这里注意初始值是1,因为是连续乘法。
对于I=1到2*(n-1)
结果=结果*I
接下来我
comp =结果
结束功能
注意:由于参数是通过地址传递的,所以在这个问题的过程中,参数的值是不能改变的!(也是经常改错的地方!!)
4.根据步骤1、2和3,写出通用术语dblCos的表达式
0条评论