江财数据库应用 (习题8编程题参考解答).ppt_第1页
江财数据库应用 (习题8编程题参考解答).ppt_第2页
江财数据库应用 (习题8编程题参考解答).ppt_第3页
江财数据库应用 (习题8编程题参考解答).ppt_第4页
江财数据库应用 (习题8编程题参考解答).ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,数据库应用,程序设计实例 (习题8编程题参考解答),2,程序设计,习题8编程题参考解答,3,Public Sub ShiLi01() Dim x As Double, y As Double Dim z As Double x = Val(InputBox(请输入X) y = Val(InputBox(请输入Y) If x y And y 0 Then z = x / y Else MsgBox (无指定值!) End End If Debug.Print Z = , z End Sub,(1) 已知 , 试编成求Z的值。,4,(2) 编写程序,求一元二次方程Ax2+Bx+C = 0的解,

2、输入为系数A,B和C。,Public Sub ShiLi02() Dim a As Double, b As Double, c As Double, s As Double Dim x1 As Double, x2 As Double a = Val(InputBox(请输入系数A) b = Val(InputBox(请输入系数B) c = Val(InputBox(请输入系数C) s = b * b - 4 * a * c If s 0 Then MsgBox (此方程无解!) Else x1 = (-b + Sqr(s) / 2 / a x2 = (-b - Sqr(s) / 2 / a

3、 Debug.Print X1 = , x1 Debug.Print X2 = , x2 End If End Sub,5,(3) 用整数06依次表示星期日、星期一、星期六,编程实现下列功能:用键盘输入一个整数,在显示器上输出对应的中文表示星期几,如果键入的整数范围不在-1到6之内,则显示“输入数据错误”,返回要求再次键入正确数字。当键入-1时,程序终止。,Public Sub ShiLi03() Dim x Integer Do While True x = Val(InputBox(请输入第-16中的一个数) Select Case x Case -1 End Case 0 MsgBox

4、(星期日) Case 1 MsgBox (星期一) Case 2 MsgBox (星期二) Case 3 MsgBox (星期三) Case 4 MsgBox (星期四) Case 5 MsgBox (星期五) Case 6 MsgBox (星期六) Case Else MsgBox (您输入的数据错误!) End Select Loop End Sub,6,(4) 乘火车旅行的行李收费标准如下:成年人可免费携带重量20公斤的行李,未成年人可免费携带10公斤的行李,超出这个重量,火车站将加收费用,收费标准是每公斤每百公里收费为0.20元,不足百公里按百公里记。试编程按不同类型的人和行李重量来记

5、收费用。,Public Sub ShiLi04() Dim a As String Dim w As Double, d As Double, c As Double Dim x1 As Double, x2 As Double a = InputBox(是否未成年(Y/N)) w = Val(InputBox(请输入行李重量(KG)) d = Val(InputBox(请输入里程(KM)) d = -int(-d/100) c = 0 If Ucase(a) = Y Then If w 10 Then c = (w - 10) * 0.2 * d End If Else If w 20 Th

6、en c = (w - 20) * 0.2 * d End If End If Debug.Print 行李超重费用(元):; c End Sub,7,(5) 编写程序完成求和S=1+(1+2)+(1+2+3)+(1+2+10)。如果求S=1! + 2! + 3! + + 10!,试编写程序并比较其同异。,Public Sub ShiLi05_1() Dim i As Integer, p As Integer, s As Integer p = 0 s = 0 For i = 1 To 10 p = p + i s = s + p Next Debug.Print 1+(1+2)+(1+2+

7、3)+(1+2+10) = ; s End Sub,(5.1) 求S = 1+(1+2)+(1+2+3)+(1+2+10),8,(5) 编写程序完成求和S=1+(1+2)+(1+2+3)+(1+2+10)。如果求S=1! + 2! + 3! + + 10!,试编写程序并比较其同异。,Public Sub ShiLi05_2() Dim i As Integer, p As Long, s As Long p = 1 s = 0 For i = 1 To 10 p = p * i s = s + p Next Debug.Print 1! + 2! + 3! + + 10! = ; s End

8、Sub,(5.2) 求S = 1! + 2! + 3! + + 10!,9,(6) 编程求100到200之间即能被3整除又能被5整除的正整数的个数,并显示这些数。,Public Sub ShiLi06() Dim i As Integer, n As Integer n = 0 For i = 100 To 200 If i mod 3 =0 and i mod 5 = 0 Then n = n + 1 Debug.Print i End If Next Debug.Print n=;n End Sub,10,(7) 编程完成下列图形的打印。其中第一个*所在位置为第20列。,* * * * *

9、,* * * * *,* * * * *,11,(7) 编程完成下列图形的打印。其中第一个*所在位置为第20列。,* * * * *,(7.1),Public Sub ShiLi07_1_1() Dim i As Integer, j As Integer, n As Integer n = val(InputBox(请输入图形的行数N ) For i = 1 To n Debug.Print Tab(20); For j = 1 To 2 * i - 1 Debug.Print *; Next Debug.Print Next End Sub,Public Sub ShiLi07_1_2()

10、 Dim i As Integer, j As Integer, n As Integer n = val(InputBox(请输入图形的行数N ) For i = 1 To n Debug.Print Tab(20);String(2 * i - 1, *) Next End Sub,12,(7) 编程完成下列图形的打印。其中第一个*所在位置为第20列。,(7.2),Public Sub ShiLi07_2_1() Dim i As Integer, j As Integer, n As Integer n = val(InputBox(请输入图形的行数N ) For i = 1 To n

11、Debug.Print Tab(21 - i); For j = 1 To i Debug.Print *; Next Debug.Print Next End Sub,Public Sub ShiLi07_2_2() Dim i As Integer, j As Integer, n As Integer n = val(InputBox(请输入图形的行数N ) For i = 1 To n Debug.Print Tab(21 - i);String(i, *) Next End Sub,* * * * *,13,(7) 编程完成下列图形的打印。其中第一个*所在位置为第20列。,(7.3)

12、,Public Sub ShiLi07_3_1() Dim i As Integer, j As Integer, n As Integer n = val(InputBox(请输入图形的行数N ) For i = 1 To n Debug.Print Tab(21 - i); For j = 1 To 6 Debug.Print *; Next Debug.Print Next End Sub,Public Sub ShiLi07_3_2() Dim i As Integer, j As Integer, n As Integer n = val(InputBox(请输入图形的行数N ) F

13、or i = 1 To n Debug.Print Tab(21 - i);String(6, *) Next End Sub,* * * * *,14,(8) 使用数组输入10个评委的评分,要求去除最高分、最低分,求参评者的平均得分。,Public Sub ShiLi08() Dim x(1 to 10) As Integer, i As Integer Dim max As Integer, min As Integer, s As Integer For i = 1 To 10 x(i) = val(InputBox(请输入第 + str(i) + _ 个评委的评分) Next max

14、= 1 : min = 1 For i = 2 To 10 If x(i) x(max) Then max = i End If If x(i) x(min) Then min = i End If Next x(max) = 0 : x(min) = 0 For i = 1 To 10 s = s + x(i) Next Debug.Print 最终平均得分:; s/8 End Sub,15,(9) 编程求2到100间的所有素数,并求它们的和。,Public Sub ShiLi09() Dim n As Integer, i As Integer, k As Integer, s As In

15、teger s = 0 For n = 2 To 100 k = Int(sqr(n ) For i = 2 To k If n mod i = 0 Then Exit For End If Next If i k Then s = s + n Debug.Print n; End If Next Debug.Print Debug.Print 2到100间的所有素数的和: ; s End Sub,16,(10) 输出所有的水仙花数。所谓的水仙花数,是1个3位数,其值等于该数中各位数字的立方和,例如: 。,Public Sub ShiLi10_1( ) Dim a As Integer, b

16、As Integer, c As Integer, x As Integer For a = 1 To 9 For b = 0 To 9 For c = 0 To 9 x = a 3 + b 3 + c 3 If x = a * 100 + b * 10 + c Then Debug.Print x End If Next Next Next End Sub,江西财经大学信息管理学院 凌传繁,解法1:,17,(10) 输出所有的水仙花数。所谓的水仙花数,是1个3位数,其值等于该数中各位数字的立方和,例如: 。,Public Sub ShiLi10_2( ) Dim a As Integer,

17、b As Integer, c As Integer, x As Integer For x = 100 To 999 a = x 100 b = x 10 Mod 10 c = x Mod 10 If x = a 3 + b 3 + c 3 Then Debug.Print x End If Next End Sub,江西财经大学信息管理学院 凌传繁,解法2:,18,(11) 有一个分数数列 ,求出这个数列的前20项之和。,Public Sub ShiLi11_1( ) Dim a As Integer, b As Integer, x As Integer, i As Integer Di

18、m s As Double a = 1: b = 2: s = 0 For i = 1 To 20 s = s + b / a x = a + b a = b b = x Next Debug.Print 2/1+3/2+5/3+8/5+13/8+21/13+.=; s End Sub,解法1:,s = s + b / a b = a + b a = b - a,等 价,19,(11) 有一个分数数列 ,求出这个数列的前20项之和。,Public Sub ShiLi11_1_2( ) Dim a As Integer, b As Integer, i As Integer Dim s As D

19、ouble a = 1: b = 2: s = 0 For i = 1 To 10 s = s + b / a a = a + b s = s + a / b b = b + a Next Debug.Print 2/1+3/2+5/3+8/5+13/8+21/13+.=; s End Sub,解法2:,20,(11) 有一个分数数列 ,求出这个数列的前20项之和。,Public Sub ShiLi11_1_3( ) Dim x(20) As Integer, i As Integer Dim s As Double x(0) = 1: x(1) = 2: s = 0 For i = 2 To

20、 20 x(i) = x(i - 2) + x(i - 1) Next For i = 1 To 20 s = s + x(i) /x(i - 1) Next Debug.Print 2/1+3/2+5/3+8/5+13/8+21/13+.=; s End Sub,解法3:,21,(12)已知二年期人民币整存整取年利率为2.25%,王大妈选择二年期整存整取,存款金额10000元,她希望有1000元以上的净利息。假设国家对最后的利息征20%所得税,故至少要税前为1250元利息,才有1000元的净利息。请你编程帮王大妈算一算,要存几年才能达到她的目标。,Public Sub ShiLi12( )

21、Dim n As Integer Dim c As Double, s As Double, p As Double c = 10000 : s = 0 : n = 0 Do While s = 1250 n = n + 2 p = c * 2.25 / 100 * 2 s = s + p c = c + p Loop Debug.Print 年限:; n Debug.Print 税前利息: ; format(s, #.00) Debug.Print 税后净利息: ; format(s * 0.8, #.00) End Sub,22,(13)编写一个过程Swap,实现两个数据交换功能。调用该过

22、程求随机生成的60-100间30个数中最大数和最小数。,Public Sub Swap(x As Integer, y As Integer) Dim z As Integer z = x : x = y : y = z End Sub,Public Sub ShiLi13( ) Dim min As Integer, max As Integer, t As Integer, i As Integer t = int(rnd()*41) + 60 min = t : max = t For i = 1 to 29 t = int(rnd()*41) + 60 If t max Then ca

23、ll Swap(max, t) End If Next Debug.Print Max =;max, Min =;min End Sub,23,(14) 输入两个正整数m和n,求其最大公约数和最小公倍数。,Public Sub ShiLi14( ) Dim m As Integer, n As Integer, r As Integer, s As Integer m = Val(InputBox(请输入第1个正整数:) n = Val(InputBox(请输入第2个正整数:) s = m * n If n m Then r =m : m = n : n = r End If r = m Mo

24、d n Do While r 0 m = n n = r r = m Mod n Loop Debug.Print 最大公约数:; n Debug.Print 最小公倍数:; s/n End Sub,24,(15)有M个人围成一圈,每人个编号(1,2,3,M),从第个人数起,报到N时这个人就出圈,再继续数,报到第N个又出圈,出圈人的位置不再数,直到只剩下一个人为止,排出出圈人的顺序。,Public Sub ShiLi15( ) Dim x() As Integer, m As Integer, n As Integer Dim i As Integer, s As Integer m = Val(InputBox(请输入人数M:) ReDim x(1 To m) For i = 1 To m x(i) = i Next n = Val(InputBox(请输入出圈人所报数N:) s = 0 : j = 1 s是已出圈人数,j是报数 Do While s 0 Then if j = n Then j = 0 : s = s + 1 Debug.Print i End If X(i) = j : j = j + 1 if s = m - 1 Then Exit Do End If End If

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论