湖南省计算机等级考试vb
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
• 判断成绩是否合格
x = Val(Text1) If x < 60 Then Text2 = "不合格" If x >= 60 Then Text2 = "合格" 或(第2、3行为) If x < 60 Then Text2 = "不合格" Else Text2 = "合 格“ 也可写成多行形式:…
12
• 多选择(分支)结构(二)
Select Case <测试表达式> Case <表达式列表1> … Case Else … End Select 表达式列表:(三种形式,见例题)
13
• 判断成绩等级 Private Sub Command1_Click() Select Case Val(Text1) Case Is < 60 Text2 = "不及格" Case 60, 61, 62, 63, 64, 65, 66, 67, 68, 69 Text2 = "及格" Case 70 To 84 Text2 = "良好" Case Else Text2 = "优秀" End Select End Sub
32
• 基本解法(使用数组)
定义数组:Dim f(20) 循环初值:f(1)=1, f(2)=1; 循环处理:f(n)=f(n-2)+f(n-1)
33
• 程序
Private Sub Form_Click() Dim f(20) f(1) = 1: f(2) = 1 For n = 3 To 20 f(n) = f(n - 2) + f(n - 1) Print f(n) Next End Sub
16
• While循环输出20以内的奇数
Private Sub Form_Click() k=1 While k <= 20 Print k; k=k+2 Wend End Sub
17
• Do循环输出20以内的奇数
Private Sub Form_Click() k=1 Do While k <= 20 Print k; k=k+2 Loop End Sub
45
完数
• 一个数如果刚好与它所有的因子之和相等, 则称该数为“完数”, 如6=1+2+3,则6 就是个完数,求200到500之间所有的完数之 和。 #496#
46
• 程序 Private Sub Form_click() s=0 For x = 200 To 500 k=0 For i = 1 To x / 2 If x Mod i = 0 Then k=k+i End If Next If x = k Then 'Print x s=s+x End If Next Print s End Sub
18
VB程序设计重点结构
• 给出一种最常用的形式
– 可作“模板”使用 – 学会填空!!!
19
• FOR结构 – For i=… To … Step … – …… – If …Then – …… – (Exit For) – End If – …… – Next
20
程序中最基本的处理
• 计数
– 初值:n = 0 或 ... – 循环处理:n = n + 1
• VB程序执行方式
– 事件驱动编程机制
5
VB常用数据类型
• 数值型
– Integer(%)、Long(&) – Single(!)、Double(#)
• 字符串型
– String($)
• 变体型
– Variant
6
VB常用运算符
• 数值运算
^、-(负号)、*、/、\ 、Mod 、 +、-
• 字符串运算
41
• 设x是一个四位数,千位到个位分别是a、 b、c、d,则:
a=Int(x/1000) 或 x\1000 b=Int((x-1000*a)/100) c=Int((x-1000*a-100*b)/10) d=x Mod 10 或 b=(x\100) Mod 10 c=(x\10) Mod 10 或 b=(x Mod 1000)\100 c=(x Mod 100)\10
– i:1,3,5,…,99,f(i)=i*(i+1)
27
• 求1~135的平方根的和。#1051.31
– i:1~135,f(i)=sqr(i)
• 求1~135的和的平方根。
– s=sqr((135+1)*135/2)
• 以上各题均可在Excel中求解
28
• 求[351,432]之间所有既不能被3整除,又不能被8 整除的整数的和。#18413
14
• 循环结构 For ... Next While...Wend (无退出中途语句) Do While...Loop (共4种形式) 中途退出:Exit For/Do • 嵌套 分支与分支 循环与循环 循环与分支
15Fra Baidu bibliotek
• For循环输出20以内的奇数
Private Sub Form_Click() For k = 1 To 20 Step 2 Print k; Next End Sub
23
多条件组合为逻辑表达式
• x能被3整除但不能被4整除
x Mod 3=0 and x Mod 4<>0
• x是能被3或5整除的偶数
x Mod 2=0 and ( … or … ) 或 x Mod 6=0 or x Mod 10=0
24
VB编程题
• 整理成多种类型
25
简单的求和问题
• 数列求和
34
斐波那契数列{f(i)}:1,1,2,3,5,8,…
求F(45)值。 #1134903170 求F(1)+F(2)+…+F(50) #32951280098 求F(1)+F(3) +…+F(49) #12586269025 求10000000内最大的 #9227465 求10000000内的个数 #35 均可在Excel中容易求得结果!
&、+
• 逻辑运算
And、Or、Not
7
VB常用函数
• 系统内部标准函数
– 取整:Int(x) – 求余数:a Mod b – 求平方根:Sqr(x) – 绝对值:Abs(x) – 四舍五入:Round(x,n) – 其它...
8
VB程序基本结构与示例
• 顺序结构 • 选择(分支)结构
– If...Then … Else ... – If...Then … Else ... End If
数列ai=f(i), 求 sn=a1+…+ an For i=1 To n a=f(i) : s=s+a 或 s=s+f(i) Next
• 一定条件下的求和
26
• 求1~108所有整数的平方和。#425754
– i:1~108,f(i)=i*i
• 求s=1*2+2*3+…+100*101 • 求s=1*2+3*4+…+99*100
a=Int(x/100) b=Int((x-100*a)/10) c=x Mod 10 Int(a/b)可替换为a\b,如: a=x\100 b=(x-100*a)\10
39
• 求水仙花数之程序(一)
Private Sub Form_Click() For x = 100 To 999 a = Int(x / 100) b = Int((x - 100 * a) / 10) c = x Mod 10 If x = a ^ 3 + b ^ 3 + c ^ 3 Then Print x Next End Sub
• 连加
– 初值:s = 0 – 循环处理:s = s + i 或 ... 或 ...
21
• 连乘 – 初值:t = 1 • 循环处理:t = t * i
或 ... 或 ...
22
最常用的判断
• a被b整除(倍数、因子)
– a Mod b = 0 或 a / b = a \ b
• a是整数
– Int(a)=a – 应用:求不定方程的整数解
31
• 斐波那契数列{f(i)}:1,1,2,3,5,8,…, 试输出前20项。 基本算法:循环、递推 三种方法: • f(1)=1 : f(2)=1, f(n)=f(n-2)+f(n-1) • f1=1 : f2=1, f1=f1+f2 : f2=f2+f1 • f1=1 : f2=1, f=f1+f2:f1=f2:f2=f
40
• 求水仙花数之程序(二) Private Sub Form_Click() For a = 1 To 9 For b = 0 To 9 For c = 0 To 9 x = a * 100 + b * 10 + c If x = a^3+b^3+c^3 Then Print x Next c, b, a End Sub
44
• 程序 Private Sub Form_Click() For x = 100 To 200 k=0 For i = 1 To x If x Mod i = 0 Then k = k + 1 Next If k Mod 2 = 1 Then Print x n=n+1 End If Next Print n End Sub
10
• 多选择(分支)结构(一)
If … Then … ElseIf … Then … Else … End If
11
• 判断成绩等级 Private Sub Command1_Click() x = Val(Text1) If x < 60 Then Text2 = "不及格" ElseIf x < 70 Then Text2 = "及格" ElseIf x < 85 Then Text2 = "良好" Else Text2 = "优秀" End If End Sub
• 求1到1000之内能被7或11整除,但不能同时被 7和11整除的所有整数的个数。#208
29
等比数列及求和
• 求 2+4+8+16+32+… , 当 累 加 数 大 于 9000 时 , 则 终 止 计 算 并 输 出 结 果 。 #16382
直接公式:f(i)=2^i 递推公式:a=2、a=2*a 可Excel中求解
37
• 水仙花数的算法是数字问题之根本!
算法一:单循环(x:100~999) 由数x得出数字a b c ???(下页) 熟练掌握一种从数中取数字的方法 算法二:三重循环(a:1~9 b,c:0~9) 由数字a、b、c组成数x(100~999)
38
• 设x是一个三位数,百位到个位分别是a、b、c, 则:
30
• 程序1 –Private Sub Form_Click() – s = 0 – For n = 1 To 20 – a=2 ^ n : s= s + a – Print n, a, s – If s > 9000 Then Exit For – Next – Print s –End Sub
3
VB面向对象基本概念
• 对象、事件、方法
– 对象:窗体、标签、文本框、命令按钮、计时 器、…… – 事件:Load、Unload、Chang、Click、 KeyPress、LostFocus、GotFocus、… – 方法:Print、Cls、Show、Move
4
• 对象属性
– Name、Caption / Text、Left、Top、Width、 Height、 Enabled、Visible、 Font、 …
42
求在[100,999]内所有不含数字0且各位 数字之积被96整除的数之和。#26640
a*b*c<>0 and a*b*c mod 96=0
求[123,321]内回文数的个数。#120
43
因子问题--因子个数、和
• 问[100,200]之间有奇数个不同因子的整数 共有多少个?#5
基本算法:二重循环 外循环:for x=100 to 200 穷举! 内循环模块一:求x之因子个数 内循环模块二:判断处理
湖南省计算机等级考试 VB程序设计辅导
1
内容提要
• 概括性指导
– 基础知识、重点结构、常用标准函数、自定义函数、 基本处理、逻辑表达式 – 常用算法:穷举法、递推
• 分类练习
– 十多种常见类型(详见下页)
2
1、简单的求和问题 2、等比数列及求和(Excel可解) 3、常见数字问题的处理 4、因子问题--因子个数、和 5、组合问题:不定方程求解 6、完全平方数 7、素数(质数)问题
35
三项递推的数列
• 一个数列,它的头三个数为0,0,1,以后的 每个数都是其前三个数的和,求此数列的前30 项之和。#18947744
Excel中求解
36
常见数字问题的处理
水仙花数:三位数,等于其各位数字之立方和。
记住10000以内: 153、370、371、407 考试题中,曾有四位水仙花数之说。看清题意!