白话Excel函数公式 Office易学宝微视频教程合集(Excel+Word+PPT)
笨办法学VBA(从入门到精通) 高效办公必会的Office实战技巧
财务总监的Excel私房课 Excel数据透视表实战秘技
Excel图表神技
123
返回列表 发新帖
楼主: 唐伯狼

零基础13期-第六课作业

[复制链接]
发表于 2018-3-22 20:13:06 | 显示全部楼层
本帖最后由 dingdong007 于 2018-3-22 21:33 编辑

  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.     学会了 = MsgBox("小明你学会了吗", vbYesNo)
  10.     Loop Until 学会了 = vbYes Or i >= 3   
  11.      If 学会了 = vbYes Then
  12.      MsgBox "小明学会了,高兴的走了"   
  13.       Else
  14.          MsgBox "老师口吐白沫昏了过去,小明偷偷跑了"     
  15.        End If
  16. End Sub


  17. '作业2:  求1+1/2-1/3+1/4-1/5 + … +1/100 的值
  18. Sub 求和()
  19. Dim i As Long, i1 As Double, sumv As Double, sumv1 As Double
  20.    sumv = 0
  21.    sumv1 = 0
  22.     For i = 2 To 98 Step 2
  23.        i1 = 1 / i
  24.        sumv = sumv + i1
  25.        Debug.Print sumv
  26.     Next
  27.     For i = 3 To 100 Step 2
  28.        i1 = 1 / i
  29.        sumv = sumv + i1
  30.        Debug.Print sumv
  31.     Next
  32.     MsgBox sumv - sumv1 + 1
  33. End Sub

  34. '作业3 列出所有的水仙花数
  35. '所谓水仙花数就是指从100-999 之间所有的自幂数
  36. '假设一个三位数abc 那么 a^3+ b^3+c^3 = abc 这样的数被称为水仙花数
  37. Sub 水仙花数5()
  38. Dim a As Long, b As Long, c As Long, abc 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.    Debug.Print 100 * a + 10 * b + c   
  44.    MsgBox a * 100 + b * 10 + c   
  45.    End If   
  46.     Next   
  47.     Next   
  48.     Next   
  49. End Sub

  50. '作业4:  完整版猜数游戏
  51. <blockquote>Sub 猜数游戏()
复制代码
回复 支持 反对

使用道具 举报

发表于 2018-3-22 21:35:08 | 显示全部楼层
  1. Sub 猜数游戏()
  2.     Dim 要你猜 As Long, 你猜 As Long, i As Long   
  3.     要你猜 = WorksheetFunction.RandBetween(1, 20)           
  4.     Do
  5.     i = i + 1
  6.     你猜 = InputBox("请输入你猜的数")   
  7.     Loop Until 要你猜 = 你猜   
  8.      If 要你猜 = 你猜 And i < 9 Then   
  9.        MsgBox "猜对了,你有天才的头脑。"      
  10.          ElseIf 要你猜 = 你猜 And i < 15 Then      
  11.           MsgBox "猜对了,你虽然才智一般,也不算庸才。"      
  12.             Else               
  13.             MsgBox "终于猜出来了,你的榆木脑袋该好好敲打敲打了"               
  14.                End If               
  15.   End Sub
复制代码
回复 支持 反对

使用道具 举报

发表于 2018-3-22 21:56:25 | 显示全部楼层
  1. Option Explicit

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

  15. Sub 求和()
  16.     Dim i As Long, sumv As Double
  17.     i = 2
  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.     Next
  26.     MsgBox sumv
  27.    
  28. End Sub

  29. Sub 水仙花数()
  30.     Dim abc As Long, a As Long, b As Long, c As Long
  31.     For a = 0 To 9
  32.         For b = 0 To 9
  33.             For c = 0 To 9
  34.                 abc = 100 * a + 10 * b + c
  35.                 If a ^ 3 + b ^ 3 + c ^ 3 = abc And abc > 100 And abc < 999 Then
  36.                     Debug.Print abc
  37.                 End If
  38.             Next
  39.         Next
  40.     Next

  41. End Sub

  42. Sub 完成猜数游戏()
  43.     Dim 要你猜 As Long, 你猜 As Long, i As Long
  44.     Do
  45.         i = i + 1
  46.         要你猜 = WorksheetFunction.RandBetween(1, 100)
  47.         你猜 = Inputbox("请输入你猜的数:")
  48.     Loop Until 要你猜 = 你猜
  49.     If i <= 8 Then
  50.         MsgBox "猜对了,你有天才的头脑。"
  51.     ElseIf i >= 9 And i <= 15 Then
  52.         MsgBox "猜对了,你虽然才智一般,也不算庸才。"
  53.     Else
  54.         MsgBox "终于猜出来了,你的榆木脑袋该好好敲打敲打了。"
  55.     End If

  56. End Sub

  57. Sub 质数之和()
  58.     Dim i As Long, n As Long, sumv As Long
  59.     For n = 2 To 100
  60.         For i = 2 To n - 1
  61.             If n Mod i = 0 Then
  62.                 Exit For
  63.             Else
  64.                 sumv = sumv + n
  65.                 Exit For
  66.             End If
  67.         Next
  68.     Next
  69.     MsgBox sumv

  70. End Sub

  71. Sub 喝啤酒1()
  72.     Dim 瓶盖 As Long, 瓶子 As Long, sumv As Long, 新增 As Long
  73.     瓶盖 = 10 / 2
  74.     瓶子 = 10 / 2
  75.     sumv = 10 / 2
  76.     新增 = 0
  77.     Do While 瓶盖 >= 4 Or 瓶子 >= 2
  78.         新增 = (瓶盖 - 瓶盖 Mod 4) / 4 + (瓶子 - 瓶子 Mod 2) / 2
  79.         sumv = sumv + 新增
  80.         瓶盖 = 瓶盖 Mod 4 + 新增
  81.         瓶子 = 瓶子 Mod 2 + 新增
  82.     Loop
  83.     MsgBox sumv

  84. End Sub

  85. Sub 喝啤酒2()
  86.     Dim 瓶盖 As Long, 瓶子 As Long, sumv As Long, 新增 As Long
  87.     瓶盖 = 10 / 2 + 1
  88.     瓶子 = 10 / 2 + 1
  89.     sumv = 10 / 2
  90.     新增 = 0
  91.     Do While 瓶盖 >= 4 Or 瓶子 >= 2
  92.         新增 = (瓶盖 - 瓶盖 Mod 4) / 4 + (瓶子 - 瓶子 Mod 2) / 2
  93.         sumv = sumv + 新增
  94.         瓶盖 = 瓶盖 Mod 4 + 新增
  95.         瓶子 = 瓶子 Mod 2 + 新增
  96.     Loop
  97.     MsgBox "一共喝了" & sumv & "瓶酒"
  98.     MsgBox "还完之后瓶盖还剩" & 瓶盖 - 1 & "个"
  99.     MsgBox "还完之后瓶子还剩" & 瓶子 - 1 & "个"

  100. End Sub
复制代码
回复 支持 反对

使用道具 举报

发表于 2018-3-26 06:43:00 | 显示全部楼层

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

  4. Sub 胡老师与小明()
  5. Dim i As Long, ret
  6. Do
  7.     i = i + 1
  8.     ret = MsgBox("第" & i & "次提问,明白了吗?", 4)
  9. '
  10. Loop While ((ret <> vbYes) And (i < 3)) = True
  11. If ret = vbYes Then MsgBox "小明学会了,高兴的走了" Else MsgBox "回答三遍胡说老师口吐白沫昏了过去,小明偷偷跑了"
  12. End Sub


  13. '第6课  作业2:  求1+1/2-1/3+1/4-1/5 + … +1/100 的值

  14. Sub 作业2()
  15. Dim i As Long, sum As Double
  16. i = 1
  17. Do While i <= 100
  18.     sum = sum + (-1) ^ i / i
  19.     i = i + 1
  20. Loop
  21. MsgBox "  1+1/2-1/3+1/4-1/5 + … +1/100 的值=" & sum + 2
  22. End Sub


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

  26. Sub 作业3列出所有的水仙花数()
  27. Dim a As Long, b As Long, c As Long, i As Long
  28. i = 1
  29. For a = 1 To 9
  30.     For b = 0 To 9
  31.         For c = 0 To 9
  32.             If (a * a * a + b * b * b + c * c * c = a * 100 + b * 10 + c) Then
  33.                 Cells(i, 1) = a * a * a + b * b * b + c * c * c
  34.                 Cells(i, 2) = a * 100 + b * 10 + c
  35.                 Debug.Print "第" & i & "个水仙花数 是 : " & a * 100 + b * 10 + c
  36.                 i = i + 1
  37.             Else
  38.             End If
  39.             'Debug.Print a * 100 + b * 10 + c 只是检验是否遗漏
  40.         Next c
  41.     Next b
  42. Next a
  43. End Sub

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

  52. Sub 作业4完整版猜数游戏()
  53. Dim 随机数 As Long, 你给的数 As Long, i As Long
  54. 随机数 = WorksheetFunction.RandBetween(1, 100)
  55. Do
  56.     你给的数 = InputBox("输入 至 100 的整数")
  57.     i = i + 1
  58. Loop Until 随机数 = 你给的数
  59. Select Case i
  60.     Case Is <= 8
  61.         MsgBox "你第" & i & "次" & "猜对了,你有天才的头脑"
  62.     Case Is <= 15
  63.         MsgBox "你第" & i & "次" & "猜对了,你虽然才智一般,也不算庸才。"
  64.     Case Else
  65.         MsgBox "你第" & i & "次" & "终于猜出来了,你的榆木脑袋该好好敲打敲打了。"
  66. End Select
  67. End Sub


  68. '第6课 作业5:最难的高斯问题:
  69. '                        求1… 100 内所有质数的和
  70. '1质数怎么求?素数?
  71. '质数(素数) 1不是质数也不是合数
  72. '除了自身与1 之外不能被任何数字整除
  73. 'n 2到n-1 每一个数来试验,如果都有余数,就说明是质数

  74. Sub 作业5最难的高斯问题()
  75. Dim i1 As Long, i2 As Long, i3 As Long, str As String
  76. For i1 = 3 To 100
  77.     i3 = 0
  78.     For i2 = 2 To (i1 - 1)
  79.         If (i1 Mod i2) = 0 Then
  80.         i3 = i3 + 1
  81.         i2 = i1 - 1
  82.         End If
  83.     Next i2
  84.     If i3 = 0 Then
  85.         sum = sum + i1
  86.         str = str & " + " & i1
  87.         Debug.Print i1
  88.     Else
  89.     End If
  90. Next i1
  91. MsgBox "1至100内所有质数: 2 + " & str & " = " & (2 + sum)
  92. End Sub

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

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

  99. Sub 喝酒问题第一问()
  100. Dim 钱 As Long, 已喝瓶数 As Long, 瓶 As Long, 盖 As Long
  101. 钱 = 10
  102. Do While 钱 >= 2
  103.     钱 = 钱 - 2
  104.     已喝瓶数 = 已喝瓶数 + 1
  105.     瓶 = 瓶 + 1
  106.     盖 = 盖 + 1
  107.     Do While 瓶 >= 2
  108.         瓶 = 瓶 - 2
  109.         已喝瓶数 = 已喝瓶数 + 1
  110.         瓶 = 瓶 + 1
  111.         盖 = 盖 + 1
  112.         Do While 盖 >= 4
  113.             盖 = 盖 - 4
  114.             已喝瓶数 = 已喝瓶数 + 1
  115.             瓶 = 瓶 + 1
  116.             盖 = 盖 + 1
  117.         Loop
  118.     Loop
  119. Loop
  120. MsgBox "总共喝了" & 已喝瓶数 & "瓶酒," & vbCr & "剩余" & 瓶 & "个空瓶," & vbCr & "剩余" & 盖 & "个瓶盖。"
  121. End Sub

  122. Sub 喝酒问题第2问()
  123. Dim 钱 As Long, 已喝瓶数 As Long, 瓶 As Long, 盖 As Long
  124. 钱 = 10
  125. 瓶 = 1
  126. 盖 = 1
  127. Do While 钱 >= 2
  128.     钱 = 钱 - 2
  129.     已喝瓶数 = 已喝瓶数 + 1
  130.     瓶 = 瓶 + 1
  131.     盖 = 盖 + 1
  132.     Do While 瓶 >= 2
  133.         瓶 = 瓶 - 2
  134.         已喝瓶数 = 已喝瓶数 + 1
  135.         瓶 = 瓶 + 1
  136.         盖 = 盖 + 1
  137.         Do While 盖 >= 4
  138.             盖 = 盖 - 4
  139.             已喝瓶数 = 已喝瓶数 + 1
  140.             瓶 = 瓶 + 1
  141.             盖 = 盖 + 1
  142.         Loop
  143.     Loop
  144. Loop
  145. MsgBox "1、还酒但是收回空瓶和盖子,则:" & vbCr & "总共喝了" & 已喝瓶数 - 1 & "瓶酒," & vbCr & "剩余" & 瓶 & "个空瓶," & vbCr & "剩余" & 盖 & "个瓶盖。"
  146. MsgBox "2、还酒也不收回空瓶和盖子,则:" & vbCr & "总共喝了" & 已喝瓶数 - 1 & "瓶酒," & vbCr & "剩余" & 瓶 - 1 & "个空瓶," & vbCr & "剩余" & 盖 - 1 & "个瓶盖。"
  147. End Sub
复制代码
回复 支持 反对

使用道具 举报

发表于 2018-4-27 16:16:45 | 显示全部楼层
本帖最后由 813675583 于 2018-4-27 16:20 编辑

Sub zy1()
Dim 学会了 As String, i As Integer, msg As String, ret
msg = "学会了吗?"
ret = MsgBox(msg, vbYesNo, "询问")
Do Until ret = vbYes Or i >= 2
    i = i + 1
    ret = MsgBox(msg, vbYesNo, "询问")
Loop
If i >= 2 Then
MsgBox ("胡老师口吐白沫昏了过去,小明偷偷泡了")
Else
MsgBox ("小明学会了,高兴的走了")
End If
End Sub

'===============================================================
''作业2:  求1+1/2-1/3+1/4-1/5 + … +1/100 的值
Sub zy2()
Dim a As Long, b As Long, suma As Long, sumb As Long, sum As Long, i As Long
i = 1
Do While i <= 99
    Do While i Mod 2 = 1
    a = i + 1
    suma = suma + a
        i = i + 1
    Loop
    Do While i Mod 2 = 0
        b = i - 1
        sumb = sumb + b
        i = i + 1
    Loop
Loop
sum = suma + sumb + 100
MsgBox ("题目的合计是:" & sum)
End Sub


'=================================================
Sub zy3()
Dim a As Long, b As Long, c As Long, abc As Long, 水仙花数 As Long
abc = 100
a = 1
Do While abc <= 999
    Do Until a ^ 3 + b ^ 3 + c ^ 3 = abc
        abc = abc + 1
        a = abc \ 100
        b = abc \ 10 - a * 10
        c = abc - a * 100 - b * 10
    Loop
    If a ^ 3 + b ^ 3 + c ^ 3 = abc And a <= 9 Then
    水仙花数 = abc
    MsgBox ("水仙花数是:" & 水仙花数)
    abc = abc + 1
    End If
Loop
End Sub

'===================================================
Sub zy4()
Dim 随机数 As Long, 猜的数字 As Long, i As Long
随机数 = WorksheetFunction.RandBetween(1, 100)
Do
i = i + 1
猜的数字 = InputBox("输入你猜的数字")
If 猜的数字 > 随机数 Then
    MsgBox ("猜的数字大了")
ElseIf 猜的数字 < 随机数 Then
    MsgBox ("猜的数字小了")
End If
Loop Until 随机数 = 猜的数字
If i <= 8 Then
    MsgBox ("猜对了,你有天才的头脑")
ElseIf i <= 15 Then
    MsgBox ("猜对了,你虽然才智一般,也不算庸才。")
Else
    MsgBox ("终于猜出来了,你的榆木脑袋该好好敲打敲打了。")
End If
End Sub

'======================================================
''Sub 求质数()
''    Dim i As Long, n As Long
''    n = 4
''    For i = 2 To n - 1
''        If n Mod i = 0 Then Exit For
''
''    Next
''
''End Sub
'==================================================
Sub zy5()
Dim i As Long, n As Long, sumzs As Long, 执行次数 As Long
For n = 4 To 100
    执行次数 = 0
    For i = 2 To n - 1
        If n Mod i = 0 Then Exit For
        执行次数 = 执行次数 + 1
    Next
    If 执行次数 = n - 2 Then
    sumzs = sumzs + n
    End If
Next
End Sub


'==================================================
Sub zy6()
Dim pgdh As Long, kpdh As Long, pj As Long, dh As Long, sumdh As Long
pj = 10 \ 2
Do
    pgdh = (pj + dh) \ 4 '瓶盖多喝
    kpdh = (pj + dh) \ 2 '空瓶多喝
    dh = pgdh + kpdh
    sumdh = sumdh + dh
    pj = 0
    Loop Until dh \ 2 = 0
MsgBox ("一共多喝啤酒" & sumdh & "瓶")
End Sub
'===================================================
Sub zy7()
Dim pgdh As Long, kpdh As Long, pj As Long, dh As Long, sumdh As Long, dj As Long
pj = 10 \ 2
dj = pj + 1
Do
    pgdh = (dj + dh) \ 4 '瓶盖多喝
    kpdh = (dj + dh) \ 2 '空瓶多喝
    dh = pgdh + kpdh
    sumdh = sumdh + dh
    dj = 0
    Loop Until dh \ 2 = 0
MsgBox ("一共喝了" & pj + sumdh & "瓶" & _
        Chr(10) & "一共多喝啤酒" & sumdh & "瓶")
End Sub


回复 支持 反对

使用道具 举报

发表于 2018-5-7 21:34:04 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则

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