6月5/6日 Excel函数实战技巧精粹 300集Office 2010微视频教程
5月7日 Excel VBA开发实战 高效办公必会的Office实战技巧
5月6日 Excel透视表实战秘技 网易云课堂-Excel数据透视表应用大全
Excel数据处理与分析实战技巧第1季
查看: 541|回复: 27

零基础13期-第六课作业

[复制链接]
发表于 2018-3-16 23:03:37 | 显示全部楼层 |阅读模式
本帖最后由 唐伯狼 于 2018-3-19 22:12 编辑

规则如前





回复

使用道具 举报

发表于 2018-3-17 08:59:05 | 显示全部楼层
本帖最后由 phliji 于 2018-3-19 10:01 编辑
  1. <p>'作业1:补齐小明学习的剩余部分:
  2. '1、如果小明学会了,请输出小明学会了,高兴的走了。
  3. '2、小明学到3次还是不会,请输出,胡说老师口吐白沫昏了过去,小明偷偷跑了

  4. Sub 作业1()
  5.     Dim i As Long, 会了吗 As Long
  6.     Do
  7.         i = i + 1
  8.         MsgBox "胡说老师给小明讲解了第" & i & "次。"
  9.         会了吗 = MsgBox("胡说老师问小明,你学会了吗", vbYesNo)
  10.         If 会了吗 = vbYes Then
  11.             MsgBox "小明学会了,高兴的走了"
  12.         ElseIf i = 3 Then
  13.             MsgBox "胡说老师口吐白沫昏过去,小明偷跑"
  14.         End If
  15.     Loop Until 会了吗 = vbYes Or i >= 3
  16.    

  17. End Sub

  18. '作业2:  求1+1/2-1/3+1/4-1/5 + … +1/100 的值
  19. '
  20. '作业3 列出所有的水仙花数
  21. '所谓水仙花数就是指从100-999 之间所有的自幂数
  22. '假设一个三位数abc 那么 a^3+ b^3+c^3 = abc 这样的数被称为水仙花数
  23. Sub 作业2()
  24.     Dim i As Long, a As Long, b As Long, c As Double
  25.     a = -1
  26.     b = -1
  27.     c = 1
  28.     For i = 2 To 100
  29.         a = a * b
  30.         c = c + 1 / i * a
  31.     Next
  32.     MsgBox c
  33.    
  34. End Sub

  35. '作业3 列出所有的水仙花数
  36. '所谓水仙花数就是指从100-999 之间所有的自幂数
  37. '假设一个三位数abc 那么 a^3+ b^3+c^3 = abc 这样的数被称为水仙花数
  38. Sub 作业3()
  39.     Dim a As Long, b As Long, c As Long, d, i As Long, h
  40.     For i = 100 To 999
  41.        a = i \ 100
  42.        b = (i - a * 100) \ 10
  43.        c = i - a * 100 - b * 10
  44.        If i = a ^ 3 + b ^ 3 + c ^ 3 Then
  45.        d = i & "," & d
  46.        End If
  47.     Next
  48.     MsgBox d
  49.    
  50. End Sub


  51. '作业4:完整版猜数游戏
  52. '利用前面的作业猜数游戏雏形补充:
  53. '1、用do loop 循环进行,不猜对则不许退出游戏。
  54. '2 Print 猜数范围修改到1 - 100
  55. '3、 猜数开始用一个变量记录猜的次数,根据猜对所花次数的结果进行智商评判。
  56. '4 如果猜对数目所用次数<=8 次评判为 “猜对了,你有天才的头脑。"
  57. '                    9-15 次评判为 "猜对了,你虽然才智一般,也不算庸才。"
  58. '                     >15 次评判为 ”终于猜出来了,你的榆木脑袋该好好敲打敲打了。“
  59. Sub 作业4()
  60.     Dim 被猜数 As Long, b As Long, 猜数
  61.     被猜数 = Application.RandBetween(1, 100)
  62.     猜数 = Val(InputBox("请猜一个1-100的数"))
  63.     Do Until 猜数 = 被猜数 And 猜数 <> ""
  64.         If 猜数 < 被猜数 Then
  65.             MsgBox "小了"
  66.         Else
  67.             MsgBox "大了"
  68.         End If
  69.         猜数 = Val(InputBox("请猜一个1-100的数"))
  70.         b = b + 1
  71.     Loop
  72.     If b <= 8 Then
  73.         MsgBox "猜对了,你有天才的头脑。"
  74.     ElseIf b <= 15 Then
  75.         MsgBox "猜对了,你虽然才智一般,也不算庸才。"
  76.     ElseIf b > 15 Then
  77.         MsgBox "终于猜出来了,你的榆木脑袋该好好敲打敲打了。"
  78.     End If
  79.    
  80. End Sub

  81. '**作业5:最难的高斯问题:
  82. '                        求1… 100 内所有质数的和
  83. '1质数怎么求?素数?
  84. '质数(素数) 1不是质数也不是合数
  85. '除了自身与1 之外不能被任何数字整除
  86. 'n 2到n-1 每一个数来试验,如果都有余数,就说明是质数
  87. '
  88. 'Sub 求质数()
  89. '    Dim i As Long, n As Long
  90. '    n = 4
  91. '    For i = 2 To n - 1
  92. '        If n Mod i = 0 Then Exit For
  93. '
  94. '    Next
  95. '
  96. 'End Sub



  97. Sub 作业5()
  98.     Dim i As Long, a As Long, b As Long
  99.     b = 2 + 3
  100.     For i = 4 To 100
  101.         For a = 2 To i - 1
  102.             If i Mod a = 0 Then Exit For
  103.         Next
  104.         If a = i Then b = b + i
  105.     Next
  106.     MsgBox b
  107. End Sub

  108. '** 作业6 #-------喝啤酒问题----- 使用Do loop
  109. '# 4个瓶盖可以换一瓶酒
  110. '# 2个空瓶可以换一瓶酒
  111. '# 啤酒2元一瓶 10 元钱最多能喝几瓶酒 第一问


  112. Sub 作业6()
  113.     Dim 瓶盖 As Long, 空瓶 As Long, i As Long, n1 As Long, n2 As Long
  114.     i = 5
  115.     瓶盖 = 5
  116.     空瓶 = 5
  117.     Do Until 瓶盖 < 4 And 空瓶 < 2
  118.         n1 = 瓶盖 \ 4
  119.         n2 = 空瓶 \ 2
  120.         瓶盖 = n1 + 瓶盖 Mod 4 + n2
  121.         空瓶 = n2 + 空瓶 Mod 2 + n1
  122.         i = i + n1 + n2
  123.     Loop
  124.     MsgBox i
  125. End Sub</p><p>'# 找旁边的路人借一个空瓶和瓶盖,最多能喝几瓶,剩几个瓶子,几个盖?
  126. '注意最后要归还人家一瓶酒 问你还完酒之后喝了多少瓶?
  127. Sub 作业6第二问()
  128.     Dim 瓶盖 As Long, 空瓶 As Long, i As Long, n1 As Long, n2 As Long
  129.     i = 5
  130.     瓶盖 = 5 + 1
  131.     空瓶 = 5 + 1
  132.     Do Until 瓶盖 < 4 And 空瓶 < 2
  133.         n1 = 瓶盖 \ 4
  134.         n2 = 空瓶 \ 2
  135.         瓶盖 = n1 + 瓶盖 Mod 4 + n2
  136.         空瓶 = n2 + 空瓶 Mod 2 + n1
  137.         i = i + n1 + n2
  138.     Loop
  139.     MsgBox i - 1 & " " & 瓶盖 & " " & 空瓶
  140. End Sub
  141. </p>
复制代码
回复 支持 反对

使用道具 举报

发表于 2018-3-17 14:43:50 | 显示全部楼层
本帖最后由 selfecho 于 2018-3-17 21:02 编辑
  1. <p>第6题作业</p><p>Sub 啤酒故事()
  2.     Dim 瓶盖 As Long, 空瓶 As Long, 盖换啤酒 As Long, 瓶换啤酒 As Long, 换啤酒 As Long
  3.     瓶盖 = 5
  4.     空瓶 = 5
  5.     Do
  6.     换啤酒 = 换啤酒 + (盖换啤酒 + 瓶换啤酒)
  7.     盖换啤酒 = 瓶盖 \ 4
  8.     瓶换啤酒 = 空瓶 \ 2
  9.     瓶盖 = (盖换啤酒 + 瓶换啤酒) + 瓶盖 Mod 4
  10.     空瓶 = (盖换啤酒 + 瓶换啤酒) + 空瓶 Mod 2
  11.    
  12.     Loop Until 盖换啤酒 = 0 And 瓶换啤酒 = 0 And 瓶盖 Mod 4 < 4 And 瓶盖 Mod 4 <> 0 And 空瓶 Mod 2 < 2 And 空瓶 Mod 2 <> 0
  13.     MsgBox "10元钱最多能喝" & 5 + 换啤酒 & "瓶酒" & vbCr & _
  14.     "瓶盖剩余" & 瓶盖 & "个" & vbCr & _
  15.     "空瓶剩余" & 空瓶 & "个"
  16.    
  17.     瓶盖 = 瓶盖 + 1
  18.     空瓶 = 空瓶 + 1
  19.     Do
  20.     换啤酒 = 换啤酒 + (盖换啤酒 + 瓶换啤酒)
  21.     盖换啤酒 = 瓶盖 \ 4
  22.     瓶换啤酒 = 空瓶 \ 2
  23.     瓶盖 = (盖换啤酒 + 瓶换啤酒) + 瓶盖 Mod 4
  24.     空瓶 = (盖换啤酒 + 瓶换啤酒) + 空瓶 Mod 2
  25.    
  26.     Loop Until 盖换啤酒 = 0 And 瓶换啤酒 = 0 And 瓶盖 Mod 4 < 4 And 瓶盖 Mod 4 <> 0 And 空瓶 Mod 2 < 2 And 空瓶 Mod 2 <> 0
  27.     MsgBox "找旁边的路人借一个空瓶和瓶盖,最多能喝" & 5 + 换啤酒 & "瓶酒" & vbCr & _
  28.     "瓶盖剩余" & 瓶盖 & "个" & vbCr & _
  29.     "空瓶剩余" & 空瓶 & "个"
  30.    
  31.     MsgBox "归还人家一瓶酒之后喝" & 5 + 换啤酒 - 1 & "瓶酒"
  32. End Sub
  33. </p>
复制代码


回复 支持 反对

使用道具 举报

发表于 2018-3-17 14:45:01 | 显示全部楼层
本帖最后由 selfecho 于 2018-3-17 22:24 编辑
  1. <p>Sub 胡说老师与小明()
  2.     Dim i As Long, 会了吗 As Long
  3.     Do
  4.         i = i + 1
  5.         MsgBox "胡说老师给小明讲解了第" & i & "次。"
  6.         会了吗 = MsgBox("胡说老师问小明,你学会了吗", vbYesNo)
  7.         
  8.     Loop Until 会了吗 = vbYes Or i >= 3
  9.     If 会了吗 = vbYes Then
  10.     MsgBox "小明学会了,高兴的走了"
  11.     Else
  12.     MsgBox "胡说老师口吐白沫昏了过去,小明偷偷跑了"
  13.     End If
  14.    
  15. End Sub
  16. Sub 作业2()
  17.     Dim i As Long, sumv As Double
  18.     sumv = 1
  19.     For i = 2 To 100
  20.     If i Mod 2 = 0 Then
  21.     sumv = sumv + (1 / i)
  22.     Else
  23.     sumv = sumv - (1 / i)
  24.     End If
  25.    
  26.    Next
  27. MsgBox sumv

  28. End Sub
  29. Sub 作业3()
  30.     Dim a As Long, b As Long, C As Long
  31.     For a = 1 To 9
  32.         For b = 0 To 9
  33.             For C = 0 To 9
  34.             If a ^ 3 + b ^ 3 + C ^ 3 = a * 100 + b * 10 + C Then
  35.             MsgBox a * 100 + b * 10 + C
  36.             End If
  37.             Next
  38.         Next
  39.     Next

  40. End Sub
  41. Sub 猜数游戏()
  42.     Dim 要你猜 As Long, 你猜 As Long, i As Long
  43.     要你猜 = WorksheetFunction.RandBetween(1, 100)
  44.    
  45.     Do
  46.     你猜 = InputBox("请填入1-100你猜的数字")
  47.     i = i + 1
  48.    
  49.     Loop Until 要你猜 = 你猜
  50.    
  51.     If i <= 8 Then
  52.     MsgBox "猜对了,你有天才的头脑。"
  53.     ElseIf i <= 15 Then
  54.     MsgBox "猜对了,你虽然才智一般,也不算庸才。"
  55.     Else
  56.     MsgBox "终于猜出来了,你的榆木脑袋该好好敲打敲打了。"
  57.     End If
  58.    
  59. End Sub</p><p><div class="blockcode"><blockquote>Sub 最难的高斯问题()
  60.     Dim i As Long, n As Long, sumV As Long
  61.    
  62.     For i = 2 To 100
  63.         n = 2
  64.         Do While i Mod n <> 0
  65.         n = n + 1
  66.        Loop
  67.         If n = i Then sumV = sumV + i
  68.     Debug.Print sumV
  69.     Next i

  70. End Sub
复制代码

回复 支持 反对

使用道具 举报

发表于 2018-3-17 16:04:17 | 显示全部楼层
本帖最后由 muahxb 于 2018-3-18 00:42 编辑
  1. '胡说老师问小明,这道题你学会了吗? 如果小明回答yes, 那么胡说老师就下课。
  2. '小明就可以回家了,否则胡说老师就给他再讲解一遍。然后再问小明是否懂了。
  3. '胡说老师身体只能支持给小明讲解3遍,如果讲到3遍了,
  4. '小明仍然不会。胡说老师就累的昏倒了,小明就偷跑回家了。请编程模拟上述过程
  5. '作业1:补齐小明学习的剩余部分:
  6. '1、如果小明学会了,请输出小明学会了,高兴的走了。
  7. '2、小明学到3次还是不会,请输出,胡说老师口吐白沫昏了过去,小明偷偷跑了
  8. Sub 小明续()
  9.     Dim 会了吗 As Long, i As Long
  10.     Do
  11.         i = i + 1
  12.         MsgBox "老师讲解了第" & i & "遍"
  13.         会了吗 = MsgBox("这道题你学会了吗?", vbYesNo)
  14.     Loop Until 会了吗 = vbYes Or i >= 3
  15.     If 会了吗 = vbYes Then
  16.         MsgBox "小明学会了,高兴的走了"
  17.     Else
  18.         MsgBox "胡说老师口吐白沫昏了过去,小明偷偷跑了"
  19.     End If
  20. End Sub

  21. '作业2:  求1+1/2-1/3+1/4-1/5 + … +1/100 的值
  22. Sub 作业2FOR()
  23.     Dim i As Long, sum As Double, a As Long
  24.     a = -1
  25.     sum = 1
  26.     For i = 2 To 100
  27.         a = a * -1
  28.         sum = sum + (1 / i) * a
  29.         Debug.Print sum
  30.     Next
  31.     MsgBox "1+1/2-1/3+1/4-1/5 + … +1/100 的值为" & sum
  32.    
  33. End Sub
  34. Sub 作业2DO()
  35.     Dim i As Long, sum As Double, a As Long
  36.     a = -1
  37.     i = 1
  38.     sum = 1
  39.     Do
  40.         i = i + 1
  41.         a = a * -1
  42.         sum = sum + (1 / i) * a
  43.         Debug.Print sum
  44.     Loop Until i >= 100
  45.     MsgBox "1+1/2-1/3+1/4-1/5 + … +1/100 的值为" & sum
  46.    
  47. End Sub


  48. '作业3 列出所有的水仙花数
  49. '所谓水仙花数就是指从100-999 之间所有的自幂数
  50. '假设一个三位数abc 那么 a^3+ b^3+c^3 = val(a&b&c) 这样的数被称为水仙花数
  51. Sub 作业3()
  52.     Dim a As Long, b As Long, c As Long, zms As Long
  53.     For a = 1 To 9
  54.         For b = 0 To 9
  55.             For c = 0 To 9
  56.                 If Val(a & b & c) = a ^ 3 + b ^ 3 + c ^ 3 Then _
  57.                 Debug.Print Val(a & b & c)
  58.             Next
  59.         Next
  60.     Next
  61.    
  62. End Sub


  63. '作业4: 完整版猜数游戏
  64. '利用前面的作业猜数游戏雏形补充:
  65. '1、用do loop 循环进行,不猜对则不许退出游戏。
  66. '2、猜数范围修改到1 -100
  67. '3、 猜数开始用一个变量记录猜的次数,根据猜对所花次数的结果进行智商评判。
  68. '4、如果猜对数目所用次数<=8 次评判为 “猜对了,你有天才的头脑。"
  69. '                     9-15 次评判为 "猜对了,你虽然才智一般,也不算庸才。"
  70. '                     >15 次评判为 ”终于猜出来了,你的榆木脑袋该好好敲打敲打了。“
  71. Sub 作业4完整猜数()
  72.     Dim 要你猜 As Long, 你猜 As Long, i As Long
  73.     要你猜 = WorksheetFunction.RandBetween(1, 100)
  74.     Do
  75.         你猜 = InputBox("请输入猜数")
  76.         i = i + 1
  77.     Loop Until 你猜 = 要你猜
  78.     If i <= 8 Then
  79.         MsgBox "猜对了,你有天才的头脑。"
  80.     ElseIf i <= 15 Then
  81.         MsgBox "猜对了,你虽然才智一般,也不算庸才。"
  82.     Else
  83.         MsgBox "终于猜出来了,你的榆木脑袋该好好敲打敲打了。"
  84.     End If
  85.         

  86. End Sub
  87. '**作业5:最难的高斯问题:
  88. '                        求1… 100 内所有质数的和
  89. '1质数怎么求?素数?
  90. '质数(素数) 1不是质数也不是合数
  91. '除了自身与1 之外不能被任何数字整除
  92. 'n 2到n-1 每一个数来试验,如果都有余数,就说明是质数
  93. '
  94. 'Sub 求质数()
  95. '    Dim i As Long, n As Long
  96. '    n = 4
  97. '    For i = 2 To n - 1
  98. '        If n Mod i = 0 Then Exit For
  99. '    Next
  100. '
  101. 'End Sub

  102. Sub 作业五质数求和()
  103.     Dim i As Long, n As Long, 质数 As Long, sumv As Long
  104.     n = 100
  105.     sumv = 2
  106.     Do
  107.         For i = 2 To n - 1
  108.             If n Mod i = 0 Then Exit For
  109.             If i = n - 1 Then
  110.                 If n Mod i <> 0 Then
  111.                 sumv = sumv + n
  112.                 End If
  113.             End If
  114.         Next
  115.         n = n - 1
  116.     Loop Until n <= 1
  117.     MsgBox "1到100内所有质数的和是" & sumv

  118. End Sub
  119. Sub 作业5质数求和()
  120.     Dim n As Long, i As Long, sumv As Long
  121.     n = 1
  122.     Do
  123.         n = n + 1
  124.         For i = 2 To n
  125.             If i = n Then
  126.                 sumv = sumv + n
  127.                 Debug.Print n
  128.             Else
  129.                 If n Mod i = 0 Then Exit For
  130.             End If
  131.         Next
  132.     Loop Until n >= 100
  133.     MsgBox "1到100内所有质数的和是" & sumv

  134. End Sub


  135. '** 作业6 #-------喝啤酒问题----- 使用Do loop
  136. '# 4个瓶盖可以换一瓶酒
  137. '# 2个空瓶可以换一瓶酒
  138. '# 啤酒2元一瓶 10 元钱最多能喝几瓶酒 第一问

  139. '# 找旁边的路人借一个空瓶和瓶盖,最多能喝几瓶,剩几个瓶子,几个盖?
  140. '注意最后要归还人家一瓶酒 问你还完酒之后喝了多少瓶?
  141. Sub 作业62喝酒借()
  142.     Dim 空瓶 As Long, 瓶盖 As Long, 最多喝 As Long, 换瓶酒 As Long, 换盖酒 As Long
  143.     Dim 多少钱 As Long
  144.     最多喝 = 5
  145.     瓶盖 = 5 '借酒盖就是瓶盖加1,其他不变
  146.     空瓶 = 5 '借酒瓶就是空瓶加1,其他不变
  147.     Do
  148.         换盖酒 = 瓶盖 \ 4
  149.         换瓶酒 = 空瓶 \ 2
  150.         瓶盖 = 换盖酒 + 瓶盖 - 换盖酒 * 4 + 换瓶酒
  151.         空瓶 = 换瓶酒 + 空瓶 - 换瓶酒 * 2 + 换盖酒
  152.         最多喝 = 最多喝 + 换瓶酒 + 换盖酒
  153.     Loop Until 瓶盖 < 4 And 空瓶 < 2
  154.     MsgBox "最多能喝" & 最多喝 & vbCr & _
  155.     "剩余瓶盖" & 瓶盖 & vbCr & _
  156.     "剩余空瓶" & 空瓶

  157. End Sub
  158. Sub 作业6喝酒()
  159.     Dim 空瓶 As Long, 瓶盖 As Long, 最多喝 As Long, 换瓶酒 As Long, 换盖酒 As Long
  160.     Dim 多少钱 As Long
  161.     多少钱 = InputBox("你有多少钱")
  162.     最多喝 = 多少钱 / 2
  163.     瓶盖 = 最多喝
  164.     空瓶 = 最多喝
  165.     Do
  166.         换盖酒 = 瓶盖 \ 4
  167.         换瓶酒 = 空瓶 \ 2
  168.         瓶盖 = 换盖酒 + 瓶盖 - 换盖酒 * 4 + 换瓶酒
  169.         空瓶 = 换瓶酒 + 空瓶 - 换瓶酒 * 2 + 换盖酒
  170.         最多喝 = 最多喝 + 换瓶酒 + 换盖酒
  171.     Loop Until 瓶盖 < 4 And 空瓶 < 2
  172.     MsgBox "最多能喝" & 最多喝 & vbCr & _
  173.     "剩余瓶盖" & 瓶盖 & vbCr & _
  174.     "剩余空瓶" & 空瓶

  175. End Sub

复制代码

回复 支持 反对

使用道具 举报

发表于 2018-3-17 16:16:25 | 显示全部楼层
本帖最后由 door19 于 2018-3-18 12:22 编辑

  1. Sub 作业1()
  2.     Dim i As Long, 会了吗 As Long
  3.     Do
  4.         i = i + 1
  5.         MsgBox "胡说老师给小明讲解了第" & i & "次。"
  6.         会了吗 = MsgBox("胡说老师问小明,你学会了吗", vbYesNo)
  7.     Loop Until 会了吗 = vbYes Or i = 3
  8.         If 会了吗 = vbYes Then
  9.         MsgBox "小明学会了,高兴的走了。"
  10.         Else
  11.         MsgBox "胡说老师口吐白沫昏了过去,小明偷偷跑了"
  12.         End If
  13. End Sub

  14. Sub 作业2_1()
  15.     Dim i As Long, a As Double, b As Double
  16.         For i = 2 To 100
  17.             If i Mod 2 <> 0 Then
  18.                 a = a - 1 / i
  19.             Else
  20.                 a = a + 1 / i
  21.             End If
  22.         Next
  23.         MsgBox "1+1/2-1/3+1/4-1/5 + … +1/100 的值=" & a + 1
  24. End Sub

  25. Sub 作业2_2()
  26.     Dim a As Long, b As Double, c As Double
  27.     a = 1
  28.     Do
  29.        a = a + 1
  30.        If a Mod 2 <> 0 Then
  31.             b = -1 / a
  32.         Else
  33.             b = 1 / a
  34.         End If
  35.         c = c + b
  36.     Loop Until a = 100
  37. MsgBox "1+1/2-1/3+1/4-1/5 + … +1/100 的值=" & c + 1
  38. End Sub

  39. Sub 作业3()
  40.     Dim a As Long, b As Long, c As Long, abc As Long
  41.     For a = 1 To 9
  42.         For b = 0 To 9
  43.             For c = 0 To 9
  44.                 abc = Val(a & b & c)
  45.                 If a ^ 3 + b ^ 3 + c ^ 3 = abc Then
  46.                     Debug.Print abc
  47.                 End If
  48.             Next
  49.         Next
  50.     Next
  51. End Sub

  52. Sub 作业4()
  53.     Dim range As Long, guess As Long, i As Long, n As Long
  54.     i = 1
  55.     range = WorksheetFunction.RandBetween(1, 100)
  56.         Do
  57.             guess = Val(InputBox("输入你猜的数"))
  58.             If guess <> range Then
  59.                 i = i + 1
  60.             End If
  61.         Loop Until guess = range
  62.             If i <= 8 Then
  63.                 MsgBox "猜了" & i & "次。猜对了,你有天才的头脑。"
  64.             ElseIf i <= 15 Then
  65.                 MsgBox "猜了" & i & "次。猜对了,你虽然才智一般,也不算庸才。"
  66.             Else
  67.                 MsgBox "猜了" & i & "次终于猜出来了,你的榆木脑袋该好好敲打敲打了。"
  68.             End If
  69. End Sub

  70. Sub 作业5()
  71.     Dim a As Long, n As Long, sumv As Long
  72.     n = 100
  73.     Do
  74.         For a = 2 To n - 1
  75.         Do
  76.             If n Mod a = 0 And n <> 2 Then
  77.                 n = n - 1
  78.                 a = 2
  79.             End If
  80.         Loop Until n Mod a <> 0 Or n = 2
  81.             If n - 1 = a Or n = 2 Then
  82.                 sumv = sumv + n
  83.                 a = 1
  84.                 n = n - 1
  85.             End If
  86.         Next
  87.     Loop Until n = 1
  88.         MsgBox "100 内所有质数的和=" & sumv
  89. End Sub



  90. Sub 作业6()
  91.     Dim 啤酒 As Long, 瓶盖 As Long, 空瓶 As Long, sum As Long, a As Long, b As Long, ret As Long
  92.     啤酒 = 5 \ 4 + 5 \ 2
  93.     瓶盖 = 5 Mod 4
  94.     空瓶 = 5 Mod 2
  95.     ret = MsgBox("是否问别人借了一瓶酒", vbYesNo)
  96.     If ret = vbYes Then
  97.         瓶盖 = 瓶盖 + 1
  98.         空瓶 = 空瓶 + 1
  99.     End If
  100.         Do
  101.             a = (啤酒 + 瓶盖) Mod 4
  102.             b = (啤酒 + 空瓶) Mod 2
  103.             啤酒 = (啤酒 + 瓶盖) \ 4 + (啤酒 + 空瓶) \ 2
  104.             瓶盖 = a
  105.             空瓶 = b
  106.             sum = 啤酒 + sum
  107.         Loop Until 啤酒 = 0
  108.             If ret = vbNo Then
  109.                 MsgBox "10 元钱最多能喝" & sum + 5 + 3 & "瓶酒"
  110.             Else
  111.                 MsgBox "找旁边的路人借一个空瓶和瓶盖,最多能喝" & sum + 5 + 3 & "瓶酒" & vbCr _
  112.                 & "剩" & 空瓶 & "个瓶子" & vbCr _
  113.                 & "剩" & 瓶盖 & "个盖子"
  114.                 MsgBox "最后归还人家一瓶酒," & vbCr _
  115.                 & "还完酒之后喝了" & sum + 5 + 3 - 1 & "瓶"
  116.             End If
  117. End Sub
复制代码

回复 支持 反对

使用道具 举报

发表于 2018-3-17 17:16:05 | 显示全部楼层
本帖最后由 wushuijingchun 于 2018-3-17 17:27 编辑

第六课
  1. Option Explicit

  2. Sub 作业1()
  3.     Dim i As Long
  4.     Dim yesno As Long
  5.    
  6.     Do
  7.         i = i + 1
  8.         MsgBox "胡说老师给小明讲解了第" & i & "次。"
  9.         yesno = MsgBox("胡说老师问小明,你学会了吗", vbYesNo)
  10.     Loop Until yesno = vbYes Or i >= 3
  11.    
  12.     If yesno = vbYes Then
  13.         MsgBox "小明学会了,高兴的走了。"
  14.     Else
  15.         MsgBox "胡说老师口吐白沫昏了过去,小明偷偷跑了。"
  16.     End If
  17.    
  18. End Sub

  19. Sub 作业2()
  20.     Dim i As Integer
  21.     Dim sum As Double
  22.    
  23.     sum = 1
  24.    
  25.     For i = 2 To 100
  26.         If i Mod 2 = 0 Then
  27.             sum = sum + 1 / i
  28.         Else
  29.             sum = sum - 1 / i
  30.         End If
  31.     Next
  32.    
  33.     MsgBox sum
  34.    
  35. End Sub

  36. Sub 作业3()
  37.     Dim a As Long
  38.     Dim b As Long
  39.     Dim c As Long
  40.    
  41.     For a = 1 To 9
  42.         For b = 0 To 9
  43.             For c = 0 To 9
  44.                 If a ^ 3 + b ^ 3 + c ^ 3 = 100 * a + 10 * b + c Then
  45.                     MsgBox 100 * a + 10 * b + c
  46.                 End If
  47.             Next
  48.         Next
  49.     Next
  50.    
  51. End Sub

  52. Sub 作业4()
  53.     Dim pleaseguess As Long
  54.     Dim guess As Long
  55.     Dim i As Long
  56.    
  57.     pleaseguess = WorksheetFunction.RandBetween(1, 100)
  58.    
  59.     Do
  60.         guess = InputBox("输入一个你猜的数")
  61.         i = i + 1
  62.     Loop Until guess = pleaseguess
  63.   
  64.     If i <= 8 Then
  65.         MsgBox ("猜对了,你有天才的头脑。")
  66.     ElseIf i <= 15 Then
  67.         MsgBox ("猜对了,你虽然才智一般,也不算庸才。")
  68.     Else
  69.         MsgBox ("终于猜出来了,你的榆木脑袋该好好敲打敲打了。")
  70.     End If

  71. End Sub

  72. Sub 作业5()
  73.     Dim i As Long
  74.     Dim n As Long
  75.     Dim sum As Long
  76.    
  77.     For n = 2 To 100
  78.    
  79.         For i = 2 To n - 1
  80.             If n Mod i = 0 Then
  81.                 Exit For
  82.             End If
  83.         Next
  84.         
  85.         If i = n Then
  86.             sum = sum + n
  87.         End If
  88.         
  89.     Next
  90.    
  91.     MsgBox sum
  92.    
  93. End Sub


  94. Sub 作业6_1()
  95.     Dim bottle As Long
  96.     Dim cap As Long
  97.     Dim beer As Long
  98.         
  99.     bottle = 5
  100.     cap = 5
  101.     beer = 5
  102.         
  103.     Do
  104.         If bottle >= 2 Then
  105.             bottle = bottle - 2
  106.         Else
  107.             cap = cap - 4
  108.         End If
  109.    
  110.         bottle = bottle + 1
  111.         cap = cap + 1
  112.         beer = beer + 1
  113.         
  114.     Loop Until (bottle < 2) And (cap < 4)
  115.         
  116.     MsgBox "10元钱最多喝" & beer & "瓶酒!"
  117.                
  118. End Sub

  119. Sub 作业6_2()
  120.     Dim bottle As Long
  121.     Dim cap As Long
  122.     Dim beer As Long
  123.         
  124.     bottle = 5 + 1
  125.     cap = 5 + 1
  126.     beer = 5
  127.         
  128.     Do
  129.         If bottle >= 2 Then
  130.             bottle = bottle - 2
  131.         Else
  132.             cap = cap - 4
  133.         End If
  134.    
  135.         bottle = bottle + 1
  136.         cap = cap + 1
  137.         beer = beer + 1
  138.         
  139.     Loop Until (bottle < 2) And (cap < 4)
  140.         
  141.     MsgBox "找旁边的路人借一个空瓶和瓶盖,最多喝" & beer & "瓶酒!" & vbCrLf & "还剩" & bottle - 1 & "个空瓶," & cap - 1 & "个瓶盖!"
  142.             
  143. End Sub
复制代码


回复 支持 反对

使用道具 举报

发表于 2018-3-17 21:14:03 | 显示全部楼层
本帖最后由 叶舞冷清秋 于 2018-3-17 22:56 编辑
  1. <div class="blockcode"><blockquote>
  2. '作业1:
  3. '胡说老师问小明,这道题你学会了吗? 如果小明回答yes, 那么胡说老师就下课。
  4. '小明就可以回家了,否则胡说老师就给他再讲解一遍。然后再问小明是否懂了。
  5. '胡说老师身体只能支持给小明讲解3遍,如果讲到3遍了,
  6. '小明仍然不会。胡说老师就累的昏倒了,小明就偷跑回家了。请编程模拟上述过程
  7. Sub 胡说老师与小明()
  8.     Dim i As Long, 会了吗 As Long
  9.     Do
  10.         i = i + 1
  11.         MsgBox "胡说老师给小明讲解了第" & i & "次。"
  12.         会了吗 = MsgBox("胡说老师问小明,你学会了吗", vbYesNo)
  13.         Loop Until 会了吗 = vbYes Or i = 3
  14.          If 会了吗 = vbYes Then
  15.           MsgBox "胡说老师下课"
  16.          Else
  17.           MsgBox "胡说老师累的昏倒了,小明偷跑回家了"
  18.          End If
  19. End Sub
  20.         
  21.          

  22. '作业2:  求1+1/2-1/3+1/4-1/5 + … +1/100 的值
  23. Sub 分数计算()
  24. Dim i As Integer, sum1 As Double, sum2 As Double
  25. sum1 = 1
  26. For i = 2 To 100
  27.   If i Mod 2 = 0 Then
  28.   sum1 = sum1 + 1 / i
  29.   Else
  30.   sum1 = sum1 - 1 / i
  31.   End If
  32. Next
  33. MsgBox "计算结果为" & sum1
  34. End Sub
  35. '作业3 列出所有的水仙花数
  36. '所谓水仙花数就是指从100-999 之间所有的自幂数
  37. '假设一个三位数abc 那么 a^3+ b^3+c^3 = abc 这样的数被称为水仙花数
  38. Sub 水仙花()
  39. Dim a As Integer, b As Integer, c As Integer
  40. For a = 1 To 9
  41.     For b = 0 To 9
  42.         For c = 0 To 9
  43.         If a ^ 3 + b ^ 3 + c ^ 3 = 100 * a + 10 * b + c Then Debug.Print a * 100 + b * 10 + c
  44.         Next
  45.     Next
  46. Next
  47. End Sub

  48. '作业4: 完整版猜数游戏
  49. '利用前面的作业猜数游戏雏形补充:
  50. '1、用do loop 循环进行,不猜对则不许退出游戏。
  51. '2 ?猜数范围修改到1 -100
  52. '3、 猜数开始用一个变量记录猜的次数,根据猜对所花次数的结果进行智商评判。
  53. '4 如果猜对数目所用次数<=8 次评判为 “猜对了,你有天才的头脑。"
  54. '                     9-15 次评判为 "猜对了,你虽然才智一般,也不算庸才。"
  55. '                     >15 次评判为 ”终于猜出来了,你的榆木脑袋该好好敲打敲打了。“
  56. Sub 猜数游戏()
  57.     Dim 要你猜 As Long, 你猜 As Long, i As Long
  58.     要你猜 = WorksheetFunction.RandBetween(1, 100)
  59.     Do
  60.     i = i + 1
  61.     你猜 = InputBox("输入你猜的数")
  62.     If 你猜 > 要你猜 Then
  63.       MsgBox "猜大了,重猜"
  64.     ElseIf 你猜 < 要你猜 Then
  65.       MsgBox "猜小了,重猜"
  66.     End If
  67.      Loop Until 要你猜 = 你猜
  68.        If i <= 8 Then
  69.         MsgBox "猜对了,你跟胡说老师一样聪明"
  70.      ElseIf i <= 15 Then
  71.         MsgBox "你的智商一般,有一点小聪明"
  72.      ElseIf i > 15 Then
  73.         MsgBox "终于猜出来了,你太笨了"
  74.      End If
  75. End Sub
复制代码

回复 支持 反对

使用道具 举报

发表于 2018-3-17 21:33:21 | 显示全部楼层
先回一个会做的

Sub 循环作业2()
Dim i As Integer, sum As Double, sum1 As Double, sum2 As Double
sum = 0
sum1 = 0
sum2 = 0
For i = 2 To 100
    If i Mod 2 = 0 Then
sum1 = sum1 + 1 / i
    Else
sum2 = sum2 - 1 / i
    End If
sum = sum1 + sum2 + 1
    Next
   
MsgBox sum

End Sub
回复 支持 反对

使用道具 举报

发表于 2018-3-17 22:04:36 | 显示全部楼层
本帖最后由 door19 于 2018-3-18 12:21 编辑

6666666666
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 入学

本版积分规则

关闭

站长推荐上一条 /1 下一条

快速回复 返回顶部 返回列表