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

零基础9期 第七课作业贴

[复制链接]
发表于 2017-2-27 22:56:23 | 显示全部楼层 |阅读模式
本帖最后由 唐伯狼 于 2017-3-7 23:17 编辑


交作业的要求:

1、不需要附件,只需贴代码,说明你做的是哪道题
2、贴上的代码都需要缩进,并且关键语句要有注释
3、请在添加代码文字,那里添加代码,这样代码要楼层中显得赏心悦目。不知道怎样操作的小伙伴,可以参照看动画。





回复

使用道具 举报

发表于 2017-2-27 23:11:17 | 显示全部楼层

辛苦狼班批阅,谢谢!

本帖最后由 明镜非白 于 2017-3-8 13:07 编辑
  1. Option Explicit

  2. Sub 作业1()
  3.     Dim 数字 As Variant
  4.     Dim i As Integer
  5.     For i = 1 To 10
  6.         数字 = inputbox("请输入数字")
  7.         If IsNumeric(数字) Then
  8.             Debug.Print 数字 * 2
  9.         ElseIf 数字 = "" Then
  10.             Exit For
  11.         Else
  12.             Debug.Print 0
  13.         End If
  14.     Next
  15. End Sub


  16. Sub 作业2()
  17.     Dim 人数 As Integer
  18.     人数 = 1100
  19.     Do
  20.         人数 = 人数 - 1
  21.     Loop While 人数 > 0 And ((人数 Mod 7 <> 2) Or (人数 Mod 5 <> 3) Or (人数 Mod 3 <> 2))
  22.     Debug.Print "韩信点兵时的人数应为:" & 人数
  23. End Sub


  24. Sub 作业3()
  25.     Dim 是否 As integer
  26.     Dim i As Integer
  27.     Do
  28.         i = i + 1
  29.         MsgBox "胡说老师给小明讲了第" & i & "遍。"
  30.         是否 = MsgBox("胡说老师问小明,你学会了吗", vbYesNo)
  31.         If 是否=6 Then         
  32.             MsgBox "小明是学会了回去的"
  33.             Exit Sub
  34.         ElseIf i = 3 Then
  35.             MsgBox "小明压根没学会,老师晕倒了,偷偷跑回去的"
  36.         End If
  37.     Loop While i < 3   '如果是<=3,就多执行一次了
  38. End Sub




  39. Sub 作业4()
  40.     Dim 酒瓶1 As Integer
  41.     Dim 瓶盖1 As Integer
  42.     Dim 酒瓶2 As Integer
  43.     Dim 瓶盖2 As Integer
  44.     Dim 换酒数1 As Integer
  45.     Dim 换酒数2 As Integer
  46.     Dim 喝酒数1 As Integer
  47.     Dim 喝酒数2 As Integer
  48.     喝酒数1 = 5
  49.     瓶盖1 = 5
  50.     酒瓶1 = 5
  51.     喝酒数2 = 5
  52.     瓶盖2 = 6
  53.     酒瓶2 = 6
  54.     Do
  55.         If 瓶盖1 >= 4 Or 酒瓶1 >= 2 Then
  56.             换酒数1 = 瓶盖1 \ 4 + 酒瓶1 \ 2
  57.             瓶盖1 = 换酒数1 + 瓶盖1 Mod 4
  58.             酒瓶1 = 换酒数1 + 酒瓶1 Mod 2
  59.             喝酒数1 = 喝酒数1 + 换酒数1
  60.         ElseIf 瓶盖2 >= 4 Or 酒瓶2 >= 2 Then
  61.             换酒数2 = 瓶盖2 \ 4 + 酒瓶2 \ 2
  62.             瓶盖2 = 换酒数2 + 瓶盖2 Mod 4
  63.             酒瓶2 = 换酒数2 + 酒瓶2 Mod 2
  64.             喝酒数2 = 喝酒数2 + 换酒数2
  65.         End If
  66.     Loop While 瓶盖1 >= 4 Or 酒瓶1 >= 2 Or 瓶盖2 >= 4 Or 酒瓶2 >= 2
  67.     Debug.Print "10元钱最多能喝" & 喝酒数1 & "瓶,剩" & 酒瓶1 & "个瓶子," & 瓶盖1 & "个盖。"
  68.     Debug.Print "再找旁边的路人借一个空瓶和瓶盖,归还路人一瓶酒,最多能喝" & 喝酒数2 - 1 & "瓶,剩" & 酒瓶2-1 & "个瓶子," & 瓶盖2-1 & "个盖。"
  69. End Sub
复制代码

点评

第三题不对 谁跟你说 选择了确定 变量""是否"就是true? vbyes,vbno都是常量  发表于 2017-3-6 21:00
回复 支持 反对

使用道具 举报

发表于 2017-2-28 08:32:03 | 显示全部楼层
学员:低调的小兵
作业一:
  1. Sub 作业一()
  2.     Dim i As Long, inputV
  3.     For i = 1 To 10
  4.         inputV = InputBox("请输入一个数!")
  5.         If IsNumeric(inputV) Then
  6.             Debug.Print inputV * 2
  7.         ElseIf inputV = "" Then
  8.             Exit Sub
  9.         Else
  10.             Debug.Print 0
  11.         End If
  12.     Next
  13. End Sub
复制代码
作业二:
  1. Sub 韩信点兵()
  2.     Dim i As Long
  3.     i = 1000
  4.     Do Until (i Mod 3 = 2) And (i Mod 5 = 3) And (i Mod 7 = 2)
  5.         i = i + 1
  6.     Loop
  7.     MsgBox "军队人数为:" & i
  8. End Sub
复制代码
作业三:
  1. Sub 小明学习()
  2.     Dim i As Long, 会了吗
  3.     Do
  4.         i = i + 1
  5.        MsgBox "胡说老师给小明讲了第" & i & "遍。"
  6.        会了吗 = MsgBox("胡说老师问小明,你学会了吗?", vbYesNo)
  7.     Loop Until i >= 3 Or 会了吗 = vbYes
  8.     If 会了吗 = vbYes Then
  9.         MsgBox "小明学会了程序,回去的!"
  10.     Else
  11.         MsgBox "老师晕倒了,小明偷偷跑回去的!"
  12.     End If
  13. End Sub
复制代码
作业四:
  1. Sub 喝啤酒问题()
  2.     Dim 空瓶数 As Long, 瓶盖数 As Long, 喝了几瓶酒 As Long
  3.     空瓶数 = 5
  4.     瓶盖数 = 5
  5.     喝了几瓶酒 = 5
  6.     Do
  7.         If 空瓶数 >= 2 Then
  8.             空瓶数 = 空瓶数 - 2
  9.         Else
  10.             瓶盖数 = 瓶盖数 - 4
  11.         End If
  12.         喝了几瓶酒 = 喝了几瓶酒 + 1
  13.         空瓶数 = 空瓶数 + 1
  14.         瓶盖数 = 瓶盖数 + 1
  15.         Loop Until (空瓶数 < 2) And (瓶盖数 < 4)
  16.     MsgBox "10元钱最多喝" & 喝了几瓶酒 & "瓶酒!"
  17.     空瓶数 = 空瓶数 + 1
  18.     瓶盖数 = 瓶盖数 + 1
  19.     Do
  20.     If 空瓶数 >= 2 Then
  21.         空瓶数 = 空瓶数 - 2
  22.     Else
  23.         瓶盖数 = 瓶盖数 - 4
  24.     End If
  25.     喝了几瓶酒 = 喝了几瓶酒 + 1
  26.     空瓶数 = 空瓶数 + 1
  27.     瓶盖数 = 瓶盖数 + 1
  28.     Loop Until (空瓶数 < 2) And (瓶盖数 < 4)
  29.     MsgBox "找旁边的路人借一个空瓶和瓶盖,最多能喝" & 喝了几瓶酒 - 1 & "瓶酒!" & vbCr _
  30.             & "还剩" & 空瓶数 - 1 & "个空瓶," & 瓶盖数 - 1 & "个瓶盖!"
  31. End Sub
复制代码


点评

不错  发表于 2017-3-6 21:02

评分

参与人数 1登攀 +10 收起 理由
唐伯狼 + 10

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2017-2-28 09:32:17 | 显示全部楼层
本帖最后由 明镜非白 于 2017-2-28 09:34 编辑

  1. Sub 作业4_方法2()               '瓶盖/酒瓶逐瓶兑换,少定义换酒数1、2两个变量,缺点是代码多一些且循环次数多一倍多,但相对更容易理解。
  2.     Dim 酒瓶1 As Integer
  3.     Dim 瓶盖1 As Integer
  4.     Dim 酒瓶2 As Integer
  5.     Dim 瓶盖2 As Integer
  6.     Dim 喝酒数1 As Integer
  7.     Dim 喝酒数2 As Integer
  8.     喝酒数1 = 5
  9.     瓶盖1 = 5
  10.     酒瓶1 = 5
  11.     喝酒数2 = 5
  12.     瓶盖2 = 6
  13.     酒瓶2 = 6
  14.     Do
  15.         If 瓶盖1 >= 4 Then
  16.             瓶盖1 = 瓶盖1 - 4 + 1
  17.             酒瓶1 = 酒瓶1 + 1
  18.             喝酒数1 = 喝酒数1 + 1
  19.         ElseIf 酒瓶1 >= 2 Then
  20.             酒瓶1 = 酒瓶1 - 2 + 1
  21.             瓶盖1 = 瓶盖1 + 1
  22.             喝酒数1 = 喝酒数1 + 1
  23.         ElseIf 瓶盖2 >= 4 Then
  24.             瓶盖2 = 瓶盖2 - 4 + 1
  25.             酒瓶2 = 酒瓶2 + 1
  26.             喝酒数2 = 喝酒数2 + 1
  27.         ElseIf 酒瓶2 >= 2 Then
  28.             酒瓶2 = 酒瓶2 - 2 + 1
  29.             瓶盖2 = 瓶盖2 + 1
  30.             喝酒数2 = 喝酒数2 + 1
  31.         End If
  32.     Loop While 瓶盖1 >= 4 Or 酒瓶1 >= 2 Or 瓶盖2 >= 4 Or 酒瓶2 >= 2
  33.     Debug.Print "10元钱最多能喝" & 喝酒数1 & "瓶,剩" & 酒瓶1 & "个瓶子," & 瓶盖1 & "个盖。"
  34.     Debug.Print "再找旁边的路人借一个空瓶和瓶盖,归还路人一瓶酒,最多能喝" & 喝酒数2 - 1 & "瓶,剩" & 酒瓶2 - 1 & "个瓶子," & 瓶盖2 - 1 & "个盖。"
  35. End Sub
复制代码
作业4的另一种解法。
回复 支持 反对

使用道具 举报

发表于 2017-2-28 12:37:51 | 显示全部楼层
本帖最后由 章家央子 于 2017-3-1 10:34 编辑

  1. Sub test1()
  2. Dim i As Long, num
  3. For i = 1 To 10
  4.     num = InputBox("请输入一个数字")
  5.     If IsNumeric(num) Then
  6.         Debug.Print num * 2
  7.     ElseIf num = "" Then
  8.         Exit For
  9.     Else
  10.         num = 0
  11.         Debug.Print num
  12.     End If
  13. Next
  14. End Sub

  15. Sub test2()
  16. Dim num As Long
  17. num = 1500 - 500
  18. Do
  19.     num = num + 1
  20. Loop Until num Mod 3 = 2 And num Mod 5 = 3 And num Mod 7 = 2
  21. MsgBox "我军有" & num & "名勇士,敌人不足五百,我们居高临下,以众击寡,一定能打败敌人。"
  22. End Sub

  23. 'for next 方法
  24. Sub test3()
  25. Dim i As Long, answer
  26.     MsgBox "胡说老师给小明讲第1遍。"
  27.     For i = 1 To 3
  28.         answer = MsgBox("胡说老师问:小明,这道题出学会了吗?", vbYesNo)
  29.         If answer = vbYes Then
  30.             MsgBox "胡说老师下课,小明可以回家了。"
  31.             Exit For
  32.         Else
  33.             If i = 3 Then
  34.                 MsgBox "胡说老师累的昏倒了,小明就偷跑回家了。"
  35.             Else
  36.                 MsgBox "胡说老师给小明讲第" & i + 1 & "遍。"
  37.             End If
  38.         End If
  39.     Next
  40. End Sub

  41. 'do loop 方法
  42. Sub test3_2()
  43. Dim i As Long, answer
  44. Do
  45.     i = i + 1
  46.     MsgBox "胡说老师给小明讲第" & i & "遍。"
  47.     answer = MsgBox("胡说老师问:小明,这道题出学会了吗?", vbYesNo)
  48.     If answer = vbYes Then
  49.         MsgBox "小明学会了,胡说老师下课,小明可以回家了。"
  50.     ElseIf answer = vbNo And i = 3 Then
  51.         MsgBox "小明没学会,胡说老师累的昏倒了,小明是偷跑回家的。"
  52.     End If
  53. Loop Until i >= 3 Or answer = vbYes
  54. End Sub

  55. '10元钱最多能喝几瓶酒
  56. Sub test4_1()
  57. Dim 瓶盖 As Long, 空瓶 As Long, 喝酒瓶数总计 As Long
  58. Dim 已取盖空瓶 As Long '指每次空瓶换空瓶后已取走瓶盖的空瓶数
  59. Dim 酒瓶 As Long '指含有酒的酒瓶(含瓶盖)
  60. 酒瓶 = 10 / 2
  61. 空瓶 = 酒瓶
  62. 瓶盖 = 酒瓶
  63. Do
  64.     喝酒瓶数总计 = 喝酒瓶数总计 + 酒瓶
  65.     酒瓶 = 空瓶 \ 2 + 瓶盖 \ 4
  66.     已取盖空瓶 = (空瓶 Mod 2)
  67.     空瓶 = 酒瓶 + 已取盖空瓶
  68.     瓶盖 = 酒瓶 + (瓶盖 Mod 4)
  69. Loop Until 空瓶 \ 2 = 0 And 瓶盖 \ 4 = 0
  70. 喝酒瓶数总计 = 喝酒瓶数总计 + 酒瓶
  71. MsgBox "10元钱最多能喝" & 喝酒瓶数总计 & "瓶酒。"
  72. End Sub

  73. Sub test4_2()
  74. Dim 瓶盖 As Long, 空瓶 As Long, 喝酒瓶数总计 As Long
  75. Dim 已取盖空瓶 As Long '指每次空瓶换空瓶后已取走瓶盖的空瓶数
  76. Dim 酒瓶 As Long '指含有酒的酒瓶(含瓶盖)
  77. 酒瓶 = 10 / 2
  78. 空瓶 = 酒瓶 + 1
  79. 瓶盖 = 酒瓶 + 1
  80. Do
  81.     喝酒瓶数总计 = 喝酒瓶数总计 + 酒瓶
  82.     酒瓶 = 空瓶 \ 2 + 瓶盖 \ 4
  83.     已取盖空瓶 = (空瓶 Mod 2)
  84.     空瓶 = 酒瓶 + 已取盖空瓶
  85.     瓶盖 = 酒瓶 + (瓶盖 Mod 4)
  86. Loop Until 酒瓶 = 1 And 空瓶 \ 2 = 0 And 瓶盖 \ 4 = 0
  87. MsgBox "10元钱最多能喝" & 喝酒瓶数总计 & "瓶酒。还剩" & 已取盖空瓶 & "个空瓶," & 瓶盖 - 酒瓶 & "个瓶盖。"
  88. End Sub
复制代码

评分

参与人数 1登攀 +10 收起 理由
唐伯狼 + 10 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2017-2-28 12:38:37 | 显示全部楼层
本帖最后由 章家央子 于 2017-3-1 10:36 编辑

因审核问题多次发帖,此贴作废。请忽略。
回复 支持 反对

使用道具 举报

发表于 2017-2-28 16:16:05 | 显示全部楼层
  1. Sub test3()
  2.     Dim i As Long, num As String
  3.     For i = 1 To 10
  4.         num = inputbox("请输入一个数字!", vbYesNo)
  5.         If IsNumeric(num) Then
  6.              Debug.Print num * 2
  7.         ElseIf num = "" Then
  8.             Exit For                'exit for 强制退出所有循环
  9.         Else
  10.             Debug.Print 0
  11.         End If
  12.     Next
  13. End Su
复制代码

  1. Sub 爱因斯坦()
  2.     Dim num As Long
  3.     Do
  4.     num = num + 7
  5.     Loop Until num Mod 2 = 1 And num Mod 3 = 2 And num Mod 5 = 4 And num Mod 6 = 5
  6.     MsgBox num
  7. End Sub
复制代码
  1. Sub 韩信()
  2.     Dim num As Long
  3.     num = 1000
  4.     Do
  5.         num = num + 1
  6.     Loop Until num Mod 7 = 2 And num Mod 3 = 2 And num Mod 5 = 3 And num < 1500
  7.     Debug.Print num
  8. End Sub
复制代码
  1. Sub 小明()
  2.     Dim i As Long, learn As Variant
  3.     Do
  4.         i = i + 1
  5.         MsgBox "胡说老师讲了" & i & "遍"
  6.         learn = MsgBox("小明听明白了吗?", vbYesNo)
  7.       
  8.     Loop Until i >= 3 Or learn = vbYes
  9.     If i = 3 And learn = vbNo Then
  10.         MsgBox "胡说老师讲了3遍,小明没学会,老师晕倒了,小明跑了"
  11.     Else
  12.         MsgBox "小明学会了才回的家"
  13.     End If
  14.      
  15. End Sub
复制代码


评分

参与人数 1登攀 +10 收起 理由
唐伯狼 + 10

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2017-2-28 17:27:24 | 显示全部楼层
  1. Sub 作业1()
  2. Dim i As Integer, 输入
  3. For i = 1 To 10
  4. 输入 = InputBox("请输入数字")
  5.   If IsNumeric(输入) Then
  6.       Debug.Print 输入 * 2
  7.   ElseIf 输入 = "" Then
  8. Exit For
  9.   Else
  10.       Debug.Print 0
  11.   End If
  12. Next
  13. End Sub

  14. Sub 作业2()
  15. Dim i As Integer
  16.   Do
  17.   i = i + 1
  18.   Loop Until i Mod 3 = 2 And i Mod 5 = 3 And i Mod 7 = 2 And i >= 1000
  19.     MsgBox "我军有" & i & "名勇士,敌人不足五百,我们居高临下,以众击寡,一定能打败敌人。"
  20. End Sub

  21. Sub 作业3()
  22.    Dim i As Long, 会了吗
  23.     Do
  24.        i = i + 1
  25.           MsgBox "胡说老师给小明讲了第" & i & "遍。"
  26.        会了吗 = MsgBox("胡说老师问小明,你学会了吗?", vbYesNo)
  27.     Loop Until i >= 3 Or 会了吗 = vbYes
  28.       If 会了吗 = vbNo Then
  29.           MsgBox "胡说老师累的昏倒了,小明偷跑回家了。"
  30.       Else
  31.           MsgBox "胡说老师下课,小明学会可以回家了。"
  32.       End If
  33. End Sub
复制代码

点评

不错 代码缩进有待提高  发表于 2017-3-6 21:07
回复 支持 反对

使用道具 举报

发表于 2017-2-28 18:42:18 | 显示全部楼层
  1. '作业1:回忆老师课上讲解的随堂练习,重新写一遍。
  2. '不断要求用户输入一个数字(inputbox),然后在立即窗口输出该数字的2倍,
  3. '如果用户输入字符串则该数字为0. 如果该用户输入到第10 遍,程序会结束。
  4. '如果用户输入空,比如不输入直接点确定或者点取消按钮,也退出程序。
  5. Sub Exerice1()
  6.     Dim i As Long
  7.     Dim 数字 As String
  8.     For i = 1 To 10
  9.         数字 = InputBox("请输入一个数字:")
  10.         If IsNumeric(数字) Then
  11.             Debug.Print 数字 * 2
  12.         ElseIf 数字 = "" Then
  13.             Exit For
  14.         Else
  15.             Debug.Print 0
  16.         End If
  17.     Next
  18. End Sub

  19. '作业2:韩信点兵:
  20. '秦朝末年,楚汉相争。一次,韩信将1500名将士与楚王大将李锋交战。苦战一场,楚军不敌,
  21. '败退回营,汉军也死伤四五百人,于是韩信整顿兵马也返回大本营。当行至一山坡,忽有后军来报,
  22. '说有楚军骑兵追来。只见远方尘土飞扬,杀声震天。汉军本来已十分疲惫,这时队伍大哗。
  23. '韩信骑马到坡顶,见来敌不足五百骑,便急速点兵迎敌。他命令士兵3人一排,结果多出2名;
  24. '接着命令士兵5人一排,结果多出3名;他又命令士兵7人一排,结果又多出2名。韩信马上向将
  25. '士们宣布:我军有___名勇士,敌人不足五百,我们居高临下,以众击寡,一定能打败敌人。
  26. '汉军本来就信服自己的统帅,这一来更相信韩信是“神仙下凡”、“神机妙算”。于是士气大
  27. '振。一时间旌旗摇动,鼓声喧天,汉军步步进逼,楚军乱作一团。交战不久,楚军溃败而逃。
  28. '
  29. Sub Exerice2()
  30.     Dim i As Long
  31.     Dim j As String
  32.     Do
  33.         j = InputBox("汉军死伤的人数为:")
  34.         If IsNumeric(j) Then
  35.             If j >= 400 And j <= 500 Then
  36.                 Exit Do
  37.             End If
  38.         Else
  39.             MsgBox "死伤的人数在400到500人之间,请重新输入。"
  40.         End If
  41.     Loop
  42.     i = 1500 - j
  43.     Do
  44.         i = i + 1
  45.     Loop Until (i Mod 3 = 2) And (i Mod 5 = 3) And (i Mod 7 = 2)
  46.     MsgBox "我军有" & i & "名勇士,敌人不足五百,我们居高临下,以众击寡,一定能打败敌人。"
  47. End Sub

  48. '作业3:见笔记,补充小明学习
  49. '胡说老师问小明,这道题你学会了吗? 如果小明回答yes, 那么胡说老师就下课。
  50. '小明就可以回家了,否则胡说老师就给他再讲解一遍。然后再问小明是否懂了。
  51. '胡说老师身体只能支持给小明讲解3遍,如果讲到3遍了,小明仍然不会。
  52. '胡说老师就累的昏倒了,小明就偷跑回家了。请编程模拟上述过程。
  53. '问题来了,请补充小明学习这个程序,要求你分辨出小明是学会了回去的,还是压根没学会
  54. '老师晕倒了,偷偷跑回去的
  55. Sub Exerice3()
  56.     Dim i As Long, Understand
  57.     Do Until i >= 3 Or Understand = vbYes
  58.         i = i + 1
  59.         MsgBox "胡说老师讲了第" & i & "遍。"
  60.         Understand = MsgBox("小明,这道题你会了么?", vbYesNo)
  61.     Loop
  62.     If i = 3 And Understand = vbNo Then
  63.         MsgBox "胡说老师晕倒了,小明偷偷跑了出去"
  64.     Else
  65.         MsgBox "小明是在第" & i & "次学会的,然后回家的。"
  66.     End If
  67. End Sub
复制代码


点评

作业2 让用户输入人数没有任何意义  发表于 2017-3-6 21:15
回复 支持 反对

使用道具 举报

发表于 2017-2-28 19:56:28 | 显示全部楼层
  1. Sub 第7课第1题()
  2.     Dim i As Integer, num
  3.     For i = 1 To 10
  4.         num = InputBox("请输入一个数字(第" & i & "次输入):")
  5.         If IsNumeric(num) Then
  6.             Debug.Print num * 2
  7.         ElseIf num = "" Then
  8.             Exit For
  9.         Else
  10.             Debug.Print 0
  11.         End If
  12.     Next
  13. End Sub
复制代码
  1. Sub 第7课第2题()
  2.     Dim people As Integer, i As Integer
  3.     i = 1000
  4.     Do Until (i Mod 3 = 2) And (i Mod 5 = 3) And (i Mod 7 = 2) And (i < 1100)
  5.         i = i + 1
  6.     Loop
  7.     MsgBox i
  8. End Sub
复制代码
  1. Sub 第7课第3题()
  2.     Dim i As Long, 会了吗
  3.     Do
  4.         i = i + 1
  5.         MsgBox "胡说老师给小明讲了第" & i & "遍。"
  6.         会了吗 = MsgBox("胡说老师问小明,你学会了吗?", vbYesNo)
  7.     Loop Until i >= 3 Or 会了吗 = vbYes
  8.     If 会了吗 = vbYes Then
  9.         MsgBox "胡说老师给小明一共讲了" & i & "遍,小明已经学会了"
  10.     Else
  11.         MsgBox "胡说老师给小明一共讲了" & i & "遍,小明仍然不会,老师累得昏倒了,小明就偷跑回家了"
  12.     End If
  13. End Sub
复制代码
  1. Sub 第7课第4题()
  2.     Dim cap As Integer, bottle As Integer, money As Integer, beer As Integer, total As Integer
  3.     money = 10
  4.     beer = money \ 2
  5.     If MsgBox("是否找路人借一个空瓶和瓶盖?注意最后要还一瓶酒!", vbYesNo) = vbYes Then
  6.         cap = 1
  7.         bottle = 1
  8.         Do
  9.             total = total + beer    '喝酒
  10.             cap = cap + beer    '喝完酒数盖子
  11.             bottle = bottle + beer    '喝完酒数瓶子
  12.             beer = cap \ 4 + bottle \ 2    '喝完了将瓶子和盖子去换新酒
  13.             cap = cap Mod 4    '看看剩下多少盖子
  14.             bottle = bottle Mod 2    '看看剩下多少瓶子
  15.         Loop Until (beer = 1) And (cap <= 2) And (bottle = 0)    '判断能不能喝,因为要还一瓶给路人
  16.     Else
  17.         Do
  18.             total = total + beer    '喝酒
  19.             cap = cap + beer    '喝完酒数盖子
  20.             bottle = bottle + beer    '喝完酒数瓶子
  21.             beer = cap \ 4 + bottle \ 2    '喝完了将瓶子和盖子去换新酒
  22.             cap = cap Mod 4    '看看剩下多少盖子
  23.             bottle = bottle Mod 2    '看看剩下多少瓶子
  24.         Loop Until (beer = 0) And (cap < 4) And (bottle < 2)
  25.     End If
  26.     MsgBox ("最多能喝" & total & "瓶,剩" & bottle & "个瓶子,剩" & cap & "个盖子")
  27. End Sub
复制代码


回复 支持 反对

使用道具 举报

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

本版积分规则

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