一、求3+9+18+36Sub js()Dim a, q, n, b As LongDim sum As DoublestrName = InputBox("请输入你的名字:") strHello = "你好," & strName & "!下面请做题" MsgBox strHellosum = 0b = 0a = InputBox("请输入首项a")q = InputBox("请输入公比q")n = InputBox("请输入项数n")For j = 1 To n sum = sum + b b = a * qNext jlabel1.Caption = n & "的前n项和是" & sumEnd Sub二、求1+2+3+…Sub js()Dim x, j As LongDim sum As DoublestrName = InputBox("请输入你的名字:") strHello = "你好," & strName & "!下面请做题" MsgBox strHellosum = 0x = InputBox("请输入x")For j = 1 To xsum = sum + jNextDebug.Print sumEnd Sub三、求A!Function fact(n As Long) As DoubleDim i As Longfact = 1For i = 1 To nfact = fact * iNextEnd FunctionSub js()Dim x, j As LongDim sum As DoublestrName = InputBox("请输入你的名字:") strHello = "你好," & strName & "!下面请做题" MsgBox strHellosum = 0x = InputBox("请输入x")For j = 1 To xsum = sum + fact(j)NextDebug.Print sumEnd End Sub课程名称 Excel与VBA程序设计 实验项目名称 实验八 子过程与函数 学生姓名 专业班级 学号 实验成绩 指导老师(签名 ) 日期 一. 实验目的和要求1、 掌握Function/End Function的定义和调用;2、 掌握Sub/End Sub的定义和调用。
二. 实验内容1、按照实验内容所述要求认真完成各项功能2、输入精度e,用下列公式求cosx的近似值,精确到最后一项的绝对值小于e要求定义和调用函数funcos(x,x)求余弦公式的近似值3、计算1!+2!+3!+…+10!的值,要求定义并调用函数fact(n)计算n!,函数类型是double4、输入一个整数,统计并输出该数中2的个数要求定义并调用函数countDigit(number,digit),它的功能是统计number中数字digit的个数例如CountDigit(10090,0)的返回值是35、输出数字金字塔,要求定义和调用子过程Pyramid(n),它的功能是输出一个有n行的数字金字塔例如Pyramid(5)的输出形式如下图6、填写实验报告,实验报告文件取名为report8.doc7、上传实验报告文件report8.doc到Ftp服务器上( ftp://10.66.28.222:2007)自己的文件夹下三. 函数的功能说明及算法思路或重要操作步骤 (包括每个函数的功能说明,及一些重要函数的算法实现思路)四. 实验结果与分析(包括运行结果截图、结果分析等)2.Sub cos()Dim i As Integer, j As IntegerDim s As SingleDim e As Double, x As Doublee = InputBox("输入e")x = InputBox("输入x")s = funcos(e, x)Debug.Print sEnd SubFunction funcos(e As Double, x As Double) As DoubleDim j As Integer, flag As IntegerDim sum As Double, item As Doubleflag = 1j = 0sum = 0item = 1Do While Abs(item) >= eitem = flag * x ^ j / fact(j)sum = sum + itemflag = -flagj = j + 2Loopfuncos = sumEnd FunctionFunction fact(n As Integer) As DoubleDim j As Integer, f As Singlef = 1For j = 1 To nf = f * jNext jfact = fEnd Function3.Function fact(n As Long) As DoubleDim i As Longfact = 1For i = 1 To nfact = fact * iNextEnd FunctionSub js()Dim x, j As LongDim sum As Doublesum = 0x = InputBox("请输入x")For j = 1 To xsum = sum + fact(j)NextDebug.Print sumEnd Sub 4.Function countDigit(number As Long, digit As Integer) As IntegerDim a, b As Integera = number / 10b = number Mod 10countDigit = 0DoIf b = digit ThencountDigit = countDigit + 1End Ifb = a Mod 10a = a / 10Loop While a <> 0End FunctionSub tj()Dim x As LongDim y As Integerx = InputBox("请输入x")y = InputBox("请输入要查找的数")Debug.Print countDigit(x, y)End Sub5.Sub jzt()Dim s As Doublen = InputBox("输入n")Pyramid (n)End SubFunction Pyramid(n) As DoubleFor i = 1 To nFor j = 1 To n - iDebug.Print " ";Next jFor k = 1 To iDebug.Print "" & k;Next kFor k = i - 1 To 1 Step -1Debug.Print "" & k;Next kDebug.PrintNext iEnd Function五. 心得体会(记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。
附录----源程序】。