12月19/20日 财务会计玩转Excel 300集Office 2010微视频教程
12月22/23日 7天Excel脱白 高效办公必会的Office实战技巧
11月28日 Excel图表之美 网易云课堂-Excel数据透视表应用大全
Excel数据处理与分析实战技巧第1季
查看: 389|回复: 63

零基础12期-第六课作业贴

[复制链接]
发表于 2017-12-2 11:35:48 | 显示全部楼层 |阅读模式
本帖最后由 开心妙妙 于 2017-12-9 11:04 编辑

交作业之前先看群文件作业提交说明
回复

使用道具 举报

发表于 2017-12-2 12:57:35 | 显示全部楼层
本帖最后由 huwenjun727 于 2017-12-5 13:08 编辑
  1. '丫头不乖交作业啦
  2. '作业1:补齐小明学习的剩余部分:
  3. '1、如果小明学会了,请输出小明学会了,高兴的走了。
  4. '2、小明学到3次还是不会,请输出,胡说老师口吐白沫昏了过去,小明偷偷跑了

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


  18. '作业2:  求1+1/2-1/3+1/4-1/5 + … +1/100 的值

  19. Sub sum()
  20.     Dim i As Long, j As Long, sumi As Double, sumj As Double, sum As Double
  21.         For i = 2 To 100 Step 2
  22.             sumi = sumi + 1 / i
  23.         Next
  24.         For j = 3 To 100 Step 2
  25.             sumj = sumj + 1 / j
  26.         Next
  27.             sum = 1 + sumi - sumj
  28.             MsgBox sum
  29. End Sub
  30. '
  31. '作业3 列出所有的水仙花数
  32. '所谓水仙花数就是指从100-999 之间所有的自幂数
  33. '假设一个三位数abc 那么 a^3+ b^3+c^3 = abc 这样的数被称为水仙花数
  34. Sub 水仙花数()
  35.    Dim a As Long, b As Long, c As Long
  36.        For a = 1 To 9
  37.            For b = 0 To 10
  38.               For c = 0 To 10
  39.                  If a ^ 3 + b ^ 3 + c ^ 3 = a * 100 + b * 10 + c Then
  40.                    MsgBox "水仙花数" & "是" & a & b & c
  41.                  End If
  42.               Next
  43.             Next
  44.         Next
  45. End Sub

  46. '作业4: 完整版猜数游戏
  47. '利用前面的作业猜数游戏雏形补充:
  48. '1、用do loop 循环进行,不猜对则不许退出游戏。
  49. '2 ?猜数范围修改到1 -100
  50. '3、 猜数开始用一个变量记录猜的次数,根据猜对所花次数的结果进行智商评判。
  51. '4 如果猜对数目所用次数<=8 次评判为 “猜对了,你有天才的头脑。"
  52. '                     9-15 次评判为 "猜对了,你虽然才智一般,也不算庸才。"
  53. '                     >15 次评判为 ”终于猜出来了,你的榆木脑袋该好好敲打敲打了。“

  54. Sub guess()
  55.     Dim num As Long, guessNum As Long, 次数 As Long
  56.     num = WorksheetFunction.RandBetween(1, 100)
  57.     次数 = 0
  58.         Do
  59.            guessNum = Val(InputBox("请输入1-100之间的一个整数来猜"))
  60.             If guessNum >= 1 And guessNum <= 100 Then
  61.             次数 = 次数 + 1
  62.             Else
  63.             次数 = 次数 + 1
  64.              MsgBox "请输入1-100之间的一个整数来猜"
  65.             End If
  66.         Loop Until guessNum = num
  67.             If 次数 <= 8 Then
  68.                 MsgBox "猜对了,你有天才的头脑。"
  69.             ElseIf 次数 > 8 And 次数 <= 15 Then
  70.                 MsgBox "猜对了,你虽然才智一般,也不算庸才。"
  71.             Else
  72.                 MsgBox "终于猜出来了,你的榆木脑袋该好好敲打敲打了。"
  73.              End If
  74.      
  75. End Sub

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

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

  99. Sub 换酒()
  100. Dim 瓶盖数量 As Long, 酒瓶数量 As Long, 瓶盖换酒数量 As Long, 酒瓶换酒数量 As Long, 总酒数量 As Long
  101.     瓶盖数量 = 5
  102.     酒瓶数量 = 5
  103.     瓶盖换酒数量 = 0
  104.     酒瓶换酒数量 = 0
  105. Do While 瓶盖数量 / 4 >= 1 Or 酒瓶数量 / 2 >= 1
  106.     If 瓶盖数量 / 4 >= 1 Then
  107.         瓶盖数量 = 瓶盖数量 - 4
  108.         瓶盖数量 = 瓶盖数量 + 1
  109.         酒瓶数量 = 酒瓶数量 + 1
  110.         瓶盖换酒数量 = 瓶盖换酒数量 + 1
  111.     Else: 瓶盖数量 = 瓶盖数量
  112.     End If
  113.     If 酒瓶数量 / 2 >= 1 Then
  114.        酒瓶数量 = 酒瓶数量 - 2
  115.        瓶盖数量 = 瓶盖数量 + 1
  116.        酒瓶数量 = 酒瓶数量 + 1
  117.        酒瓶换酒数量 = 酒瓶换酒数量 + 1
  118.     Else: 酒瓶数量 = 酒瓶数量
  119.     End If
  120. Loop
  121.     总酒数量 = 5 + 瓶盖换酒数量 + 酒瓶换酒数量
  122.     MsgBox "最多能喝" & 总酒数量 & "瓶"
  123. End Sub

  124. '# 找旁边的路人借一个空瓶和瓶盖,最多能喝几瓶,剩几个瓶子,几个盖?
  125. '注意最后要归还人家一瓶酒 问你还完酒之后喝了多少瓶?

  126. Sub 换酒2()
  127. Dim 瓶盖数量 As Long, 酒瓶数量 As Long, 瓶盖换酒数量 As Long, 酒瓶换酒数量 As Long, 总酒数量 As Long
  128.     瓶盖数量 = 6
  129.     酒瓶数量 = 6
  130.     瓶盖换酒数量 = 0
  131.     酒瓶换酒数量 = 0
  132. Do While 瓶盖数量 / 4 >= 1 Or 酒瓶数量 / 2 >= 1
  133.     If 瓶盖数量 / 4 >= 1 Then
  134.        瓶盖数量 = 瓶盖数量 - 4
  135.        瓶盖数量 = 瓶盖数量 + 1
  136.        酒瓶数量 = 酒瓶数量 + 1
  137.        瓶盖换酒数量 = 瓶盖换酒数量 + 1
  138.     Else: 瓶盖数量 = 瓶盖数量
  139.     End If
  140.     If 酒瓶数量 / 2 >= 1 Then
  141.        酒瓶数量 = 酒瓶数量 - 2
  142.        瓶盖数量 = 瓶盖数量 + 1
  143.        酒瓶数量 = 酒瓶数量 + 1
  144.        酒瓶换酒数量 = 酒瓶换酒数量 + 1
  145.     Else: 酒瓶数量 = 酒瓶数量
  146.     End If
  147. Loop
  148.     总酒数量 = 5 + 瓶盖换酒数量 + 酒瓶换酒数量 - 1
  149.     MsgBox "最多能喝" & 总酒数量 & "瓶" & vbNewLine & "剩余瓶盖数量" & 瓶盖数量 & vbNewLine & "剩余酒瓶数量" & 酒瓶数量

  150. End Sub

复制代码

点评

整体不错,赞  发表于 2017-12-6 11:38
作业2:结果正确,可以用一个循环完成,循环里面套个判断,奇数与偶数时分开处理  发表于 2017-12-6 11:22
回复 支持 反对

使用道具 举报

发表于 2017-12-2 12:58:17 | 显示全部楼层
  1. Option Explicit

  2. '作业1:补齐小明学习的剩余部分:
  3. '1、如果小明学会了,请输出小明学会了,高兴的走了。
  4. '2、小明学到3次还是不会,请输出,胡说老师口吐白沫昏了过去,小明偷偷跑了


  5. Sub XueXi()
  6.     Dim i As Long, dong As Long
  7.     Do
  8.         i = i + 1
  9.         MsgBox "胡说老师给小明讲解了第" & i & "次."
  10.         dong = MsgBox("胡说老师问小明,你听懂了吗", vbYesNo)
  11.         If dong = vbYes Then
  12.             MsgBox "小明学会了,高兴的走了。"
  13.         End If
  14.     Loop While dong = vbNo And i < 3
  15.     If i = 3 Then
  16.         MsgBox "小明学到3次还是不会,请输出,胡说老师口吐白沫昏了过去,小明偷偷跑了"
  17.     End If
  18.    
  19. End Sub


  20. '作业2:  求1+1/2-1/3+1/4-1/5 + … +1/100 的值
  21. Sub sum1()
  22.     Dim i As Long, sum11 As Double
  23.     sum11 = 1
  24.     For i = 2 To 100
  25.         If i Mod 2 = 0 Then
  26.             sum11 = sum11 + 1 / i
  27.         Else
  28.             sum11 = sum11 - 1 / i
  29.         End If
  30.     Next
  31.     MsgBox "1+1/2-1/3+1/4-1/5 + … +1/100 的值:" & sum11

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

  49. '作业4: 完整版猜数游戏
  50. '利用前面的作业猜数游戏雏形补充:
  51. '1、用do loop 循环进行,不猜对则不许退出游戏。
  52. '2 ?猜数范围修改到1 -100
  53. '3、 猜数开始用一个变量记录猜的次数,根据猜对所花次数的结果进行智商评判。
  54. '4 如果猜对数目所用次数<=8 次评判为 “猜对了,你有天才的头脑。"
  55. '                     9-15 次评判为 "猜对了,你虽然才智一般,也不算庸才。"
  56. '                     >15 次评判为 ”终于猜出来了,你的榆木脑袋该好好敲打敲打了。“

  57. Sub CaiShu()
  58.     Dim guessNum As Long, randnum As Long, i As Long

  59.     randnum = WorksheetFunction.RandBetween(1, 100) '生成了一个随机的1-10 之间的数
  60.     Do
  61.         i = i + 1
  62.         guessNum = Val(InputBox("请输入1-100之间的一个整数来猜"))
  63.         If guessNum < randnum Then
  64.             MsgBox "小了"
  65.         ElseIf guessNum > randnum Then
  66.             MsgBox "大了"
  67.         End If
  68.     Loop Until guessNum = randnum
  69.     If i <= 8 Then
  70.         MsgBox "你第" & i & "次猜对了,你有天才的头脑。"
  71.     ElseIf i < 15 Then
  72.         MsgBox "你第" & i & "次猜对了,你虽然才智一般,也不算庸才。"
  73.     Else
  74.         MsgBox "终于猜出来了,你的榆木脑袋该好好敲打敲打了。"
  75.     End If
  76.       
  77. End Sub


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

  96. For i = 2 To 100
  97. PanDuan = True
  98. '    If i = 2 Then
  99. '        sum1 = sum1 + 2
  100. '        Else
  101.     For j = 2 To i - 1
  102.         If i Mod j = 0 Then
  103.             PanDuan = False
  104.             Exit For
  105.         End If
  106.     Next
  107.     If PanDuan = True Then
  108.         sum1 = sum1 + i
  109.         Debug.Print i
  110.     End If
  111. '    End If
  112.       
  113. Next
  114. MsgBox "1… 100 内所有质数的和:" & sum1
  115. End Sub



  116. '** 作业6 #-------喝啤酒问题----- 使用Do loop
  117. '# 4个瓶盖可以换一瓶酒
  118. '# 2个空瓶可以换一瓶酒
  119. '# 啤酒2元一瓶 10 元钱最多能喝几瓶酒 第一问
  120. Sub PingShu()
  121. Dim num As Long, PShen As Long, PGai As Long, num1 As Long, sP As Long, sG As Long
  122. num = 5
  123. PShen = 5
  124. PGai = 5
  125. Do
  126.     sP = PShen / 2
  127.     sG = PGai / 4
  128.     num1 = sP + sG
  129.     PShen = PShen - sP * 2 + num1
  130.     PGai = PGai - sG * 4 + num1
  131.     num = num + num1
  132. Loop Until PShen / 2 < 1 And PGai / 4 < 1
  133. MsgBox "啤酒2元一瓶 10 元钱最多能喝" & num & "瓶酒"
  134. End Sub

  135. '# 找旁边的路人借一个空瓶和瓶盖,最多能喝几瓶,剩几个瓶子,几个盖?
  136. '注意最后要归还人家一瓶酒 问你还完酒之后喝了多少瓶?
  137. Sub PingShu1()
  138. Dim num As Long, PShen As Long, PGai As Long, num1 As Long, sP As Long, sG As Long
  139. num = 6
  140. PShen = 6
  141. PGai = 6
  142. Do
  143.     sP = PShen / 2
  144.     sG = PGai / 4
  145.     num1 = sP + sG
  146.     PShen = PShen - sP * 2 + num1
  147.     PGai = PGai - sG * 4 + num1
  148.     num = num + num1
  149. Loop Until PShen / 2 < 1 And PGai / 4 < 1
  150. MsgBox "啤酒2元一瓶 10 元钱,另再问路人借一瓶,则可以喝" & num - 1 & "瓶酒"
  151. End Sub
  152. '求和
  153. Sub sum2()
  154. Dim i As Long, j As Long
  155.     j = 1
  156.     For i = 2 To 13
  157.         If Range("a" & i) <> "" Then
  158.             j = j + 1
  159.             Range("e" & j) = Range("a" & i)
  160.             Range("f" & j) = Range("c" & i)
  161.         Else
  162.             Range("f" & j) = Range("f" & j) + Range("c" & i)
  163.         End If
  164.     Next
  165. End Sub
复制代码

点评

作业1不正确:小明学到3次会了,你输出了二种结果,将循环里的14-16行的判断,可以放在退出循环后18-20行的判断一起  发表于 2017-12-6 11:50
回复 支持 反对

使用道具 举报

发表于 2017-12-2 13:21:14 | 显示全部楼层
  1. Sub 合并()
  2.     Dim i As Integer, f As Integer
  3.         f = 1
  4.         For i = 1 To 7
  5.             If Cells(i, 1) <> "" Then
  6.                 Cells(f, 4) = Cells(i, 1)
  7.                 Cells(f, 5) = Cells(i, 2)
  8.                 f = f + 1
  9.                 Else: Cells(f - 1, 5) = Cells(f - 1, 5) & Cells(i, 2)
  10.             End If
  11.          Next
  12. End Sub
  13. Sub 作业1()
  14.     Dim i As Integer, 懂吗 As Long
  15.         Do
  16.         i = i + 1
  17.         MsgBox "胡说老师第" & i & "次问:“小明,你听懂了吗?”"
  18.         懂吗 = MsgBox("是否听懂了", vbYesNo)
  19.         Loop While 懂吗 = vbNo And i < 3
  20.             If 懂吗 = vbYes Then
  21.             MsgBox "小明学会了,高兴的走了。"
  22.             Else: MsgBox "胡说老师口吐白沫昏了过去,小明偷偷跑了。"
  23.             End If
  24. End Sub
  25. Sub 作业2()
  26.     Dim i As Integer, j As Double, 和 As Double
  27.         For i = 1 To 100
  28.         j = 1 / i
  29.             If i Mod 2 = 0 Or i = 1 Then
  30.             和 = 和 + j
  31.                 Else: 和 = 和 - j
  32.             End If
  33.         Next
  34.     MsgBox "总和为:" & 和
  35. End Sub
  36. Sub 作业3()
  37.     Dim a As Integer, b As Integer, c As Integer, abc As Integer
  38.         For a = 1 To 9
  39.             For b = 0 To 9
  40.                 For c = 0 To 9
  41.                     abc = a & b & c
  42.                     If abc = a ^ 3 + b ^ 3 + c ^ 3 Then MsgBox abc
  43.                 Next
  44.             Next
  45.         Next
  46. End Sub
  47. Sub 作业4()
  48.     Dim i As Integer, inputV As Integer, 随机数 As Integer
  49.     随机数 = WorksheetFunction.RandBetween(1, 10)
  50.         Do
  51.             inputV = Val(InputBox("请输入1-10之间的一个整数来猜"))
  52.                 If inputV < 随机数 Then
  53.                 MsgBox "小了,小了。"
  54.                     ElseIf inputV > 随机数 Then
  55.                     MsgBox "大了,大了。"
  56.                 End If
  57.             i = i + 1
  58.         Loop While inputV <> 随机数
  59.             If i <= 8 Then
  60.             MsgBox "猜对了,你有天才的头脑。"
  61.             ElseIf i <= 15 Then
  62.             MsgBox "猜对了,你虽然才智一般,也不算庸才。"
  63.             Else: MsgBox "终于猜出来了,你的榆木脑袋该好好敲打敲打了。"
  64.             End If
  65. End Sub
  66. Sub 作业5()
  67.     Dim i As Integer, n As Integer, 和 As Integer, 大和 As Integer
  68.         For i = 2 To 100
  69.             For n = 2 To i - 1
  70.                 If i Mod n = 0 Then
  71.                     和 = 0
  72.                     Exit For
  73.                 End If
  74.                 和 = i
  75.             Next
  76.         大和 = 大和 + 和
  77.         Next
  78.     MsgBox "1-100之间的质数和为:" & 大和 + 2
  79. End Sub
  80. Sub 作业6()
  81.     Dim 钱 As Integer, 空瓶 As Integer, 瓶盖 As Integer, 酒 As Integer
  82.         钱 = 10
  83.         Do Until 钱 = 0
  84.         钱 = 钱 - 2
  85.         酒 = 酒 + 1
  86.         空瓶 = 空瓶 + 1
  87.         瓶盖 = 瓶盖 + 1
  88.             If 空瓶 Mod 2 = 0 Then
  89.             酒 = 酒 + 1
  90.             空瓶 = 1
  91.             End If
  92.                 If 瓶盖 Mod 4 = 0 Then
  93.                 酒 = 酒 + 1
  94.                 瓶盖 = 1
  95.         End If
  96.         Loop
  97.     MsgBox "10元可买酒" & 酒 & "瓶"
  98.     空瓶 = 空瓶 + 1
  99.     瓶盖 = 瓶盖 + 1
  100.     Do
  101.         If 空瓶 Mod 2 = 0 Then
  102.         酒 = 酒 + 1
  103.         空瓶 = 1
  104.         瓶盖 = 瓶盖 + 1
  105.         End If
  106.             If 瓶盖 Mod 4 = 0 Then
  107.             酒 = 酒 + 1
  108.             瓶盖 = 1
  109.             空瓶 = 空瓶 + 1
  110.             End If
  111.    
  112.     Loop Until 空瓶 < 2 And 瓶盖 < 4
  113.     MsgBox "找路人借了1个酒瓶和1个瓶盖后" & vbCr _
  114.             & "可以喝" & 酒 & "瓶酒" & vbCr _
  115.             & "还路人空瓶后剩酒瓶" & 空瓶 - 1 & "瓶" & vbCr _
  116.             & "还路人瓶盖后剩瓶盖" & 瓶盖 - 1 & "个"
  117. End Sub
复制代码
回复 支持 反对

使用道具 举报

发表于 2017-12-2 18:17:01 | 显示全部楼层
本帖最后由 网站太垃 于 2017-12-2 18:18 编辑
  1. <blockquote><div class="blockcode"><blockquote>'Attribute VB_Name = "作业"
  2. Option Explicit






  3. '作业1:补齐小明学习的剩余部分:
  4. '1、如果小明学会了,请输出小明学会了,高兴的走了。
  5. '2、小明学到3次还是不会,请输出,胡说老师口吐白沫昏了过去,小明偷偷跑了


  6. Sub 小明学习()
  7.     Dim i As Long, 懂吗 As Long
  8.     Do
  9.         i = i + 1
  10.         MsgBox "胡说老师给小明讲解了第" & i & "次."
  11.         懂吗 = MsgBox("胡说老师问小明,你听懂了吗", vbYesNo)
  12.         
  13.     Loop While 懂吗 = vbNo And i < 3
  14.    
  15.     If 懂吗 = vbYes Then
  16.         MsgBox ("小明学会了,高兴的走了")
  17.     Else
  18.         MsgBox ("胡说老师口吐白沫昏了过去,小明偷偷跑了")
  19.     End If
  20.    
  21.         
  22.    
  23. End Sub


  24. '作业2:  求1+1/2-1/3+1/4-1/5 + … +1/100 的值

  25. Sub sumsum()

  26.     Dim i As Integer
  27.     Dim j As Double
  28.    
  29.     For i = 1 To 100
  30.    
  31.         If i > 1 And i Mod 2 = 1 Then
  32.             j = j - 1 / i
  33.         Else
  34.             j = j + 1 / i
  35.         End If
  36.     Next
  37.    
  38.      MsgBox (j)
  39.    
  40. End Sub


  41. '
  42. '作业3 列出所有的水仙花数
  43. '所谓水仙花数就是指从100-999 之间所有的自幂数
  44. '假设一个三位数abc 那么 a^3+ b^3+c^3 = abc 这样的数被称为水仙花数


  45. Sub shuxianhuashu()

  46.     Dim a, b, c As Integer
  47.    
  48.    
  49.     For a = 1 To 9
  50.         For b = 0 To 9
  51.             For c = 0 To 9
  52.                 If a ^ 3 + b ^ 3 + c ^ 3 = a * 100 + b * 10 + c Then MsgBox (a & b & c)
  53.             Next
  54.         Next
  55.     Next
  56.    
  57.    
  58. End Sub




  59. '作业4: 完整版猜数游戏
  60. '利用前面的作业猜数游戏雏形补充:
  61. '1、用do loop 循环进行,不猜对则不许退出游戏。
  62. '2 ?猜数范围修改到1 -100
  63. '3、 猜数开始用一个变量记录猜的次数,根据猜对所花次数的结果进行智商评判。
  64. '4 如果猜对数目所用次数<=8 次评判为 “猜对了,你有天才的头脑。"
  65. '                     9-15 次评判为 "猜对了,你虽然才智一般,也不算庸才。"
  66. '                     >15 次评判为 ”终于猜出来了,你的榆木脑袋该好好敲打敲打了。“

  67. Sub caishuyouxi()

  68.     Dim i, j, num As Integer
  69.     num = WorksheetFunction.RandBetween(1, 100)
  70.    
  71.     Do While j <> num
  72.         i = i + 1
  73.         j = InputBox("please put the number you guess")
  74.         If j > num Then
  75.             MsgBox ("too big")
  76.         ElseIf j < num Then
  77.             MsgBox ("too small")
  78.         End If
  79.     Loop
  80.    
  81.     Select Case i
  82.     Case Is <= 8
  83.         MsgBox ("猜对了,你有天才的头脑。")
  84.     Case Is <= 15
  85.         MsgBox ("猜对了,你虽然才智一般,也不算庸才。")
  86.     Case Is > 15
  87.         MsgBox ("终于猜出来了,你的榆木脑袋该好好敲打敲打了。")
  88.     End Select
  89.    
  90.    
  91. End Sub




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

  108. Sub qiuzhishuhe()

  109.     Dim i, j, n, sum As Long
  110.    
  111.     For i = 2 To 10
  112.    
  113.         n = 1
  114.         
  115.         For j = 2 To i - 1
  116.             If i Mod j = 0 Then
  117.                 n = 0
  118.                 Exit For
  119.             End If
  120.         Next
  121.         
  122.         If n = 1 Then sum = sum + i
  123.         
  124.     Next
  125.    
  126.     MsgBox (sum)
  127.    

  128. End Sub


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

  133. '# 找旁边的路人借一个空瓶和瓶盖,最多能喝几瓶,剩几个瓶子,几个盖?
  134. '注意最后要归还人家一瓶酒 问你还完酒之后喝了多少瓶?

  135. '完整的做要用动态规划做

  136. '答案是20瓶
  137. '因为先借4瓶酒,4个瓶盖还1瓶,4个空瓶还2瓶,所以喝四瓶就, 其实自己只用付1瓶酒的钱
  138. '一开始买了5瓶酒,所以一共可以喝20瓶


  139. Sub hejiu()


  140.     MsgBox ("20")

  141. End Sub
复制代码

回复 支持 反对

使用道具 举报

发表于 2017-12-2 18:36:41 | 显示全部楼层
本帖最后由 离离18 于 2017-12-8 17:45 编辑
  1. 'result: 1.311827
  2. Sub fractionsum()
  3.     Dim i As Double, sumV As Double
  4.         For i = 2 To 100
  5.             If i Mod 2 = 0 Then
  6.                 sumV = sumV + (1 / i)
  7.             Else
  8.                 sumV = sumV - (1 / i)
  9.             End If
  10.         Next
  11.           MsgBox sumV + 1
  12. End Sub
复制代码

作业,只会部分,其他不会
  1. <div class="blockcode"><blockquote>Sub totalquantity()
  2.     Dim i As Long, j As Long, sumV As Long
  3.     For i = 1 To 13
  4.         If Range("a" & i) <> "" Then
  5.             j = j + 1
  6.             Range("e" & j) = Range("a" & i)
  7.             Range("f" & j) = Range("c" & i)
  8.         Else
  9.             Range("f" & j) = Range("f" & j) + Range("c" & i)
  10.         End If
  11.     Next
  12. End Sub
复制代码

  1. Sub xiaomingandteacher()
  2.     Dim i As Long, understood As Long
  3.     Do
  4.      i = i + 1
  5.      MsgBox "Mr Hu repeated" & i & "times"
  6.      understood = MsgBox("do you understand now?", vbYesNo)
  7.         If understood = vbYes Then
  8.             MsgBox "xiaoming understood what Mr. Hu said, and go home happily"
  9.         End If
  10.     Loop While understood = vbNo And i < 3
  11.         MsgBox "Mr.Hu is so angry and fainted, xiaoming run away home anyway"
  12. End Sub
复制代码


  1. 'a^3+b^3+c^3=abc result:153 and 370 and 371 and  407

  2. Sub shuixianhua()
  3.     Dim a As Long, b As Long, c As Long
  4.     For a = 1 To 9
  5.         For b = 0 To 9
  6.            For c = 0 To 9
  7.             If a ^ 3 + b ^ 3 + c ^ 3 = a & b & c Then
  8.                 MsgBox a & b & c
  9.             End If
  10.             Next
  11.         Next
  12.     Next
  13. End Sub
复制代码

回复 支持 反对

使用道具 举报

发表于 2017-12-2 20:09:36 | 显示全部楼层
  1. Option Explicit

  2. Sub 合并单元格()
  3.     Dim i As Long, j As Long
  4.     j = 1
  5.     For i = 2 To 13
  6.         If Range("A" & i) <> "" Then
  7.             j = j + 1
  8.             Range("E" & j) = Range("A" & i)
  9.             Range("F" & j) = Range("C" & i)
  10.         Else
  11.             Range("F" & j) = Range("F" & j) + Range("C" & i)
  12.         End If
  13.     Next
  14.     End Sub


  15. Sub 合并单元格字符链接()
  16.     Dim i As Long, j As Long
  17.     j = 0
  18.     For i = 1 To 7
  19.         If Range("A" & i) <> "" Then
  20.             j = j + 1
  21.             Range("D" & j) = Range("A" & i)
  22.             Range("E" & j) = Range("B" & i)
  23.         Else
  24.             Range("E" & j) = Range("E" & j) & Range("B" & i)
  25.         End If
  26.     Next
  27.     End Sub

  28. Sub 小明学习()
  29.     Dim i As Long, 懂吗
  30.     Do
  31.         i = i + 1
  32.         MsgBox "胡说老师给小明讲解了第" & i & "次."
  33.         懂吗 = MsgBox("胡说老师问小明,你听懂了吗", vbYesNo)
  34.     Loop Until i = 3 Or 懂吗 = vbYes
  35.     If 懂吗 = vbYes Then
  36.         MsgBox "小明学会了,高兴的走了"
  37.     Else
  38.         MsgBox "胡说老师口吐白沫昏了过去,小明偷偷跑了"
  39.     End If

  40. End Sub

  41. Sub 求值()
  42.     Dim i As Long, sumv As Double
  43.    
  44.     For i = 2 To 100
  45.     sumv = sumv + 1 / i * ((-1) ^ i)
  46.     Next
  47.     MsgBox sumv + 1
  48.    
  49. End Sub

  50. Sub 水仙花数()
  51.     Dim a As Long, b As Long, c As Long, i As Long
  52.     i = a & b & c
  53.     For a = 1 To 9
  54.         For b = 0 To 9
  55.             For c = 0 To 9
  56.                 If a ^ 3 + b ^ 3 + c ^ 3 = a & b & c Then
  57.                     MsgBox a & b & c
  58.                 End If
  59.             Next
  60.         Next
  61.     Next
  62. End Sub


  63. Sub 猜数游戏()
  64.     Dim 猜的数字 As Long, 电脑数字 As Long, 次数 As Long
  65.     Do
  66.         猜的数字 = InputBox("请输入1-100之间的一个整数")
  67.         电脑数字 = WorksheetFunction.RandBetween(1, 100)
  68.         MsgBox 电脑数字
  69.         次数 = 次数 + 1
  70.     Loop Until 猜的数字 = 电脑数字
  71.     If 次数 <= 8 Then
  72.         MsgBox "你猜了第" & 次数 & "猜对了,你有天才的头脑。"
  73.     ElseIf 次数 < 15 Then
  74.         MsgBox "你猜了第" & 次数 & "猜对了,你虽然才智一般,也不算庸才。"
  75.     ElseIf 次数 > 15 Then
  76.         MsgBox "你猜了第" & 次数 & "终于猜出来了,你的榆木脑袋该好好敲打敲打了。"
  77.     End If
  78.    
  79. End Sub
复制代码
回复 支持 反对

使用道具 举报

发表于 2017-12-2 20:24:47 | 显示全部楼层
  1. Sub 作业1()
  2.     Dim i As Long, 懂否 As Long
  3.     i = 1
  4.     Do
  5.         MsgBox "胡说老师教小明第" & i & "次。"
  6.         懂否 = MsgBox("小明懂了吗?", vbYesNo)
  7.         If 懂否 = vbYes Then
  8.             MsgBox "小明学会了,高兴的走了。"
  9.         End If
  10.         i = i + 1
  11.     Loop While i < 4 And 懂否 = vbNo
  12.     If i > 3 And 懂否 = vbNo Then
  13.         MsgBox "胡说老师口吐白沫昏了过去,小明偷偷跑了。"
  14.     End If
  15. End Sub

  16. Sub 作业2()
  17.     Dim i As Long, sum As Double
  18.     sum = 1
  19.     For i = 2 To 100
  20.         sum = sum + 1 / i * (-1) ^ i
  21.     Next
  22.     MsgBox "1+1/2-1/3+1/4-1/5 + … +1/100 = " & sum
  23. End Sub

  24. Sub 作业3水仙花数()
  25.     Dim abc As Long, a As Long, b As Long, c As Long
  26.     For abc = 100 To 999
  27.         a = abc \ 100
  28.         b = (abc - a * 100) \ 10
  29.         c = abc - a * 100 - b * 10
  30.         If a ^ 3 + b ^ 3 + c ^ 3 = abc Then
  31.             MsgBox abc
  32.         End If
  33.     Next
  34. End Sub

  35. Sub 作业4完整版猜数游戏()
  36.     Dim num As Long, guessnum As Long, i As Long
  37.     num = WorksheetFunction.RandBetween(1, 100)
  38.     Do
  39.         guessnum = Val(InputBox("请输入1-100之间的一个整数来猜"))
  40.         If guessnum < num Then MsgBox "小了小了"
  41.         If guessnum > num Then MsgBox "大了大了"
  42.         i = i + 1
  43.     Loop Until num = guessnum
  44.     MsgBox "数字是" & num & "。你用了" & i & "次。"
  45.     Select Case i
  46.         Case i <= 8
  47.             MsgBox "猜对了,你有天才的头脑。"
  48.         Case i <= 15
  49.             MsgBox "猜对了,你虽然才智一般,也不算庸才。"
  50.         Case Else
  51.             MsgBox "终于猜出来了,你的榆木脑袋该好好敲打敲打了。"
  52.     End Select
  53. End Sub

  54. Sub 作业5最难的高斯问题()
  55.     Dim i As Long, n As Long, sum As Long
  56.     For n = 2 To 100
  57.         For i = 2 To n - 1
  58.             If n Mod i = 0 Then Exit For
  59.         Next
  60.         If i = n Then
  61.             sum = sum + n
  62.         End If
  63.     Next
  64.     MsgBox "1…100内所有质数的和 = " & sum
  65. End Sub

  66. Sub 作业6喝啤酒问题第一问()
  67.     Dim 瓶盖 As Long, 空瓶 As Long, 啤酒 As Long
  68.     啤酒 = 5
  69.     瓶盖 = 5
  70.     空瓶 = 5
  71.     Do While 瓶盖 > 3
  72.         瓶盖 = 瓶盖 - 4
  73.         啤酒 = 啤酒 + 1
  74.         瓶盖 = 瓶盖 + 1
  75.         空瓶 = 空瓶 + 1
  76.         Do While 空瓶 > 1
  77.             空瓶 = 空瓶 - 2
  78.             啤酒 = 啤酒 + 1
  79.             瓶盖 = 瓶盖 + 1
  80.             空瓶 = 空瓶 + 1
  81.         Loop
  82.     Loop
  83.     MsgBox "最多能喝" & 啤酒 & "瓶酒,剩了" & 瓶盖 & "个瓶盖和" & 空瓶 & "个空瓶。"
  84. End Sub

  85. Sub 作业6喝啤酒问题第二问()
  86.     Dim 瓶盖 As Long, 空瓶 As Long, 啤酒 As Long
  87.     啤酒 = 5 - 1
  88.     瓶盖 = 5 + 1
  89.     空瓶 = 5 + 1
  90.     Do While 瓶盖 > 3
  91.         瓶盖 = 瓶盖 - 4
  92.         啤酒 = 啤酒 + 1
  93.         瓶盖 = 瓶盖 + 1
  94.         空瓶 = 空瓶 + 1
  95.         Do While 空瓶 > 1
  96.             空瓶 = 空瓶 - 2
  97.             啤酒 = 啤酒 + 1
  98.             瓶盖 = 瓶盖 + 1
  99.             空瓶 = 空瓶 + 1
  100.         Loop
  101.     Loop
  102.     MsgBox "最多能喝" & 啤酒 & "瓶酒,剩了" & 瓶盖 & "个瓶盖和" & 空瓶 & "个空瓶。"
  103. End Sub

复制代码
回复 支持 反对

使用道具 举报

发表于 2017-12-2 21:23:06 | 显示全部楼层
  1. '作业1:补齐小明学习的剩余部分:
  2. '1、如果小明学会了,请输出小明学会了,高兴的走了。
  3. '2、小明学到3次还是不会,请输出,胡说老师口吐白沫昏了过去,小明偷偷跑了



  4. Sub 小明提问()
  5.     Dim i As Long, 懂否 As Long
  6.     Do
  7.         i = i + 1
  8.         MsgBox "胡说老师讲了第" & i & "遍"
  9.    
  10.    
  11.         懂否 = MsgBox("胡老师问小明,你听懂了吗?", vbYesNo)
  12.    
  13.    
  14.     Loop Until 懂否 = vbYes Or (懂否 = vbNo And i >= 3)
  15.    
  16.     If 懂否 = vbYes Then
  17.         MsgBox "小明学会了,高兴的走了"
  18.     Else
  19.         MsgBox "胡说老师昏过去了,小明偷偷跑了"
  20.     End If
  21.    
  22.    
  23. End Sub


  24. '作业2:  求1+1/2-1/3+1/4-1/5 + … +1/100 的值
  25. Sub 求和()
  26.     Dim i As Long, sumv As Double
  27.     sumv = 1 + (1 / 2)
  28.     For i = 2 To 50
  29.     sumv = sumv - 1 / (2 * i - 1) + 1 / (2 * i)
  30.    
  31.     Next
  32.    
  33.     MsgBox sumv
  34.                     

  35. End Sub

  36. '作业3 列出所有的水仙花数
  37. '所谓水仙花数就是指从100-999 之间所有的自幂数
  38. '假设一个三位数abc 那么 a^3+ b^3+c^3 = abc 这样的数被称为水仙花数

  39. Sub 水仙花()
  40.     Dim a As Long, b As Long, c As Long, abc As Long
  41.     For abc = 100 To 999
  42.         For a = 0 To 9
  43.             For b = 0 To 9
  44.                 For c = 0 To 9
  45.                 If abc = a * 100 + b * 10 + c And abc = a * a * a + b * b * b + c * c * c Then
  46.                 MsgBox abc
  47.                 End If
  48.                 Next
  49.             Next
  50.         Next
  51.     Next
  52. End Sub


  53. '作业4:完整版猜数游戏
  54. '利用前面的作业猜数游戏雏形补充:
  55. '1、用do loop 循环进行,不猜对则不许退出游戏。
  56. '2、猜数范围修改到1-100
  57. '3、 猜数开始用一个变量记录猜的次数,根据猜对所花次数的结果进行智商评判。
  58. '4 如果猜对数目所用次数<=8 次评判为 “猜对了,你有天才的头脑。"
  59. '                     9-15 次评判为 "猜对了,你虽然才智一般,也不算庸才。"
  60. '                    >15 次评判为 ”终于猜出来了,你的榆木脑袋该好好敲打敲打了。



  61. Sub 完整版猜数()
  62.     Dim 电脑数 As Long, 猜数 As Long
  63.     Dim  i As Long
  64.      

  65.             电脑数 = WorksheetFunction.RandBetween(1, 100)
  66.             
  67.             
  68.             
  69.             Do
  70.                 猜数 = InputBox("请输入你要猜的数字")
  71.                If 猜数 > 电脑数 Then
  72.                     MsgBox "大了"
  73.                 ElseIf 猜数 < 电脑数 Then
  74.                     MsgBox "小了"
  75.                 Else
  76.                     MsgBox "猜对了"
  77.                
  78.                 End If
  79.                
  80.                 i = i + 1
  81.                
  82.         
  83.             Loop Until 猜数 = 电脑数
  84.             
  85.             If i <= 8 Then
  86.                 MsgBox "猜对了,有天才头脑"
  87.             ElseIf i <= 15 Then
  88.                 MsgBox "猜对了,你才智力一般"
  89.             Else
  90.                 MsgBox "终于猜出来了,你的脑袋要敲打敲打"
  91.             End If
  92.             
  93.             
  94.         
  95. End Sub


复制代码
回复 支持 反对

使用道具 举报

发表于 2017-12-2 21:37:13 | 显示全部楼层
本帖最后由 okjook 于 2017-12-2 22:15 编辑
  1. Option Explicit
  2. Sub 作业1()
  3. Dim i As Long, 懂吗 As Long
  4.     Do
  5.         i = i + 1
  6.         MsgBox "胡说老量给小明讲解了第" & i & "遍"
  7.         懂吗 = MsgBox("小明,你懂了吗?", vbYesNo)
  8.     Loop Until 懂吗 = vbYes Or i >= 3
  9.     If 懂吗 = vbYes Then
  10.         MsgBox "小明听了" & i & "遍,学会了,高兴得走了"
  11.     ElseIf 懂吗 = vbNo And i = 3 Then
  12.         MsgBox "胡说老师口吐白沫昏了过去,小明偷偷跑了"
  13.     End If
  14. End Sub
  15. Sub 作业2()
  16. Dim i As Long, sum As Double, SumV As Double
  17. SumV = 1
  18. i = 1
  19.     Do While i < 100
  20.         i = i + 1
  21.             If i Mod 2 = 0 Then
  22.                 sum = 1 / i
  23.             Else
  24.                 sum = -1 / i
  25.             End If
  26.         SumV = SumV + sum
  27.     Loop
  28. Debug.Print SumV
  29. End Sub
  30. Sub 作业3()
  31. Dim i As Long, a As Double, b As Long, c As Long

  32.         For a = 1 To 9
  33.             For b = 0 To 9
  34.                 For c = 0 To 9
  35.                     If a ^ 3 + b ^ 3 + c ^ 3 = a * 100 + b * 10 + c Then
  36.                     Debug.Print a * 100 + b * 10 + c
  37.                     End If
  38.                 Next
  39.             Next
  40.         Next
  41. End Sub
  42. Sub 作业4()
  43.     Dim num As Long, GuessNum As Long, i As Long
  44.     Do
  45.     i = i + 1
  46.         num = WorksheetFunction.RandBetween(1, 100)
  47.         GuessNum = Val(InputBox("输入一个1-100间的整数"))
  48.         If GuessNum < num Then
  49.             MsgBox "小了小了"
  50.         ElseIf GuessNum > num Then
  51.             MsgBox "大了大了"
  52.         ElseIf GuessNum = num Then
  53.         Else
  54.         End If
  55.     Loop Until GuessNum = num
  56.     MsgBox "猜对了"
  57.     If i <= 8 Then
  58.         MsgBox "猜对了,你有天才的头脑。"
  59.     ElseIf i > 8 And i <= 15 Then
  60.         MsgBox "猜对了,你虽然才智一般,也不算庸才。"
  61.     Else
  62.         MsgBox "终于猜出来了,你的榆木脑袋该好好敲打敲打了。"
  63.     End If
  64. End Sub
  65. Sub 作业5()
  66.     Dim i As Long, n As Long, sum As Long, a As Long
  67.         sum = 5
  68.         n = 4
  69.         Do
  70.             a = 0
  71.             For i = 2 To n - 1
  72.                 If n Mod i = 0 Then Exit For
  73.                 a = a + 1
  74.             Next
  75.             If a = n - 2 Then sum = sum + n
  76.             n = n + 1
  77.         Loop Until n > 100
  78.     Debug.Print sum
  79. End Sub
  80. Sub 作业6第一问()
  81.     Dim Beer As Long, Bottle As Long, Cap As Long
  82.     Beer = 5
  83.     Bottle = 5
  84.     Cap = 5
  85.     Do
  86.         If Bottle > 1 Then
  87.             Bottle = Bottle - 1
  88.             Cap = Cap + 1
  89.             Beer = Beer + 1
  90.         End If
  91.         If Cap > 3 Then
  92.             Cap = Cap - 3
  93.             Bottle = Bottle + 1
  94.             Beer = Beer + 1
  95.         End If
  96.     Loop Until Bottle < 2 And Cap < 4
  97.     Debug.Print "10元钱最多可喝" & Beer & "瓶啤酒."
  98. End Sub
  99. Sub 作业6第二问()
  100.     Dim Beer As Long, Bottle As Long, Cap As Long
  101.     Beer = 5
  102.     Bottle = 6
  103.     Cap = 6
  104.     Do
  105.         If Bottle > 1 Then
  106.             Bottle = Bottle - 1
  107.             Cap = Cap + 1
  108.             Beer = Beer + 1
  109.         End If
  110.         If Cap > 3 Then
  111.             Cap = Cap - 3
  112.             Bottle = Bottle + 1
  113.             Beer = Beer + 1
  114.         End If
  115.     Loop Until (Bottle = 2 And Cap < 3) Or (Bottle = 0 And Cap >= 4)
  116.     If Bottle = 2 Then
  117.         Bottle = 0
  118.     Else
  119.         Cap = Cap - 4
  120.     End If
  121.     Debug.Print "如果找旁边的路人借一个空瓶和瓶盖"; vbCr & "10元钱最多可喝" & Beer & "瓶啤酒." _
  122.     & "剩余" & Bottle & "个空瓶." & Cap & "个瓶盖."
  123. End Sub
复制代码

回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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