当前位置:首页 >> 其它课程 >>

2010级信息技术会考复习提纲(《算法与程序设计》方向)v20101019


算法和算法的表示 1.使用计算机解决问题的一般过程 ——分析问题;寻找解决途径和方法; ——分析问题;寻找解决途径和方法;用计算机进行处理 分析问题 2.算法的特征 (1)有穷性。一个算法必须保证它的执行步骤是有限的,即它是能终止的。 (2)确定性。既算法中的每个步骤必须有确切的含义。 (3)可执行性。算法中的每个步骤都要实践能做的,而且能在有限的时间内完成。 (4)有 0 个或

多个输入。 (5)有一个或多个输出。 3.算法的表示方法 (1)自然语言 就像写文章时所列的提纲一样,有序地用简洁的语言加数学符号来描述。 如:课本 10 页) ( (2)流程图(Flowchart) 流程图( lowchart) 常用的流程图构件有: (3)程序 伪代码——结构清晰、代码简单、 ——结构清晰 (4 )伪代码——结构清晰、代码简单、 可读性好,并且类似自然语言。 可读性好,并且类似自然语言。 介于自 然语言与编程语言之间。 (如 然语言与编程语言之间。 如:课本 11 页 ( 最上方) 下面是一段伪代码: ,下面是一段伪代码 最上方) 下面是一段伪代码: , If △<0 Then 无解 Else 有解 End If 五、VB 程序设计初步 1.对象、属性、类、事件和事件处理的概念 对象、属性、 [此部分复习以记忆为主] 此部分复习以记忆为主] (1)对象是客观存在的事物或概念。它有两个特点:状态和行为。 (2)一个对象的状态是通过若干个属性(property)来描述的;行为是指对属性进行操作和处理的方法(method) 。在面 向对象的程序设计中,一个对象是由一组对象状态的数据和一组描述处理对象属性的方法的代码构成的。对象的属性定义其 外观,方法定义其行为,事件定义其与用户的交互。 (3)类(class)是对相同性质的对象的一种抽象,而一个对象则是类的一个“实例”。 (4)事件(event)就是发生在对象上的事情,通常是由用户在对象上激发的一种动作。一个事件的发生,可以引起某个 对象上某个方法(事件处理过程)的执行,即由某个事件驱动了相应的事件处理过程的执行。这就是面向对象程序设计中的 事件驱动概念。例: 例 Private Sub Command1_Click() Print (S) End Sub Command1.Caption = "中华" List1.AddItem (Str(y(m))) 对象名为 Command1,Caption 为属性, “中华”为属性值 对象名为 List1,AddItem 为方法,Str(y(m))为添加进去的条目 对象名为 Command1,Click 为应用于对象 Command1 上的事件

******点(.)前面的都是对象名,点(.)后面的可以属性也可以方法,区别在于——属性是相对“静态”的特征,而方法 点 前面的都是对象名 对象 后面的可以属性也可以方法,区别在于——属性是相对“静态”的特征, 方法 ——属性是相对 则是有“动作” 则是有“动作”的 应用程序的界面设计与调试—— ——重点认清工具箱中的各控件名字及用途 VB 应用程序的界面设计与调试——重点认清工具箱中的各控件名字及用途 文件(应用程序或可执行文件) ,可脱离 环境独立运行。 VB 编译生成 EXE 文件(应用程序或可执行文件) 可脱离 VB 环境独立运行。 ,

有问题联系: 有问题联系:gangzi_fu@sina.com (A)在 Text 属性名中输入“你好” (C)在 Font 属性名中输入“你好” (A)在 Text 属性名中输入“你好” (C)在 Font 属性名中输入“你好” (A)TextBox (A)Cmd1.Caption ="开始" (C)Cmd1.Font ="开始" (A)属性名 (B)属性值 (C)对象名 (B)Image

86294028

习题: ,则下列操作正确的是 习题:在 Visual Basic 工程设计中,要在文本框 Text1 中显示“你好” (B)在 Caption 属性名中输入“你好” (D)在 Name 属性名中输入“你好” (B)在 Caption 属性名中输入“你好” (D)在 Name 属性名中输入“你好” (C)PictureBox (D)CommandButton 答案: 答案:B 答案: 答案:A 答案: 答案:A

习题: ,则下列操作正确的是 习题:在 Visual Basic 工程设计中,要在标签中显示“你好”

习题: 习题:在 Visual Basic 工程设计中,下列控制哪个不能加载图片 习题『会考2010』 习题『会考2010』:在Visual Basic中,如果要在命令按钮Cmd1上显示文字"开始",下列语句正确的是 2010 (B)Cmd1.Width ="开始" (D)Cmd1.Height ="开始" (D)软件名 答案: 答案:c 答案: 答案:A 答案: 答案:C 答案: 答案:A

习题『会考2010』 习题『会考2010』:在Visual Basic中,语句Soft.Text="QQ2008"中的Soft是 2010 习题『会考2010』 习题『会考2010』:在Visual Basic中,鼠标单击命令按钮Command1触发的事件处理过程名是 2010 (A)Command1_Click (A)属性名 (B)Command1.Click (C)Click_Command1 (D)Command1Click (C)对象名 (D)类名 习题『会考2010』 习题『会考2010』:在Visual Basic中,语句Label3.Caption="How Are You"中的Label3是 2010 (B)属性值

填空:窗体文件扩展名: 填空:窗体文件扩展名:.frm 2.基本运算与表达式

工程文件扩展名: 工程文件扩展名:.vbp

(1)VB 的基本运算:VB 的基本运算包括算术运算、关系运算和逻辑运算三大类。 算术类基本运算有:^、-、*、/、\、Mod、+、关系类基本运算有:=、<>、<、>、<=、>= 逻辑类基本运算有:Not 、And 、Or (2)表达式:表达式主要用来规定值的计算过程,以及对于某些情况或条件的判断。一个表达式中可能包括算术运算、 关系运算和逻辑运算等多种基本运算,以及这些基本运算所涉及的数据(变量和常量) 。 (3)基本运算的优先级(应优先计算优先级较高的部分) 算术运算符 高于 关系运算符 高于 逻辑运算符 具体:^(1 级) ,-(指负号) ,﹡、/,\,Mod,+、-(减号) ,=、<>、<、>、<=、>=,Not,And,Or。 习题: 习题: ①100<>10^2 ③(97\2*2=97) And (78>=78) ) 答案: 答案:False 答案: 答案:False (B) a 既是 x 的倍数,又是 y 的倍数 (D) a既不是x的倍数,也不是y的倍数 (C) x \ 100 Mod 10 (D)x Mod 100 c=m Mod 10 ,正确计算s的Visual Basic表达式是 答案:D 答案: 答案: 答案:B 答案: 答案:B ②Not((1>2) Or (3>=4)) ④25 mod 5 答案: 答案:True 答案: 答案:0

习题: 习题:在 Visual Basic 中,已知 a、x、y 均是正整数,当逻辑表达式(a mod x = 0) And (a mod y = 0)为真时,则表示 (A) a 是 x 的倍数,但不是 y 的倍数 (C) a是x的倍数或者是y的倍数 (A) x \ 10 Mod 100 (B)x \ 10 Mod 10 a=m\100 b=(m-100*a)\10

习题: 习题:在Visual Basic中,设x=3171,能得到其十位上数字“7”的正确表达式是 的百、 个位数? 分别为一个三位数m的百 的百、 【注意】 如何得到一个三位数 的百、十、个位数?如a、b、c分别为一个三位数 的百、十、个位数 注意】 如何得到一个三位数m的百 或 b=m\10 Mod 10

习题『会考2008』 习题『会考2008』:匀加速直线运动位移公式是 2008 (A)v0t+1/2at^2

s = v0 t + 1 at 2 2

(B)v0*t+1/2*at^2 (C)v0t+1/2*at^2

(D)v0*t+1/2*a*t^2

习题『会考2010』 习题『会考2010』:把星期一记为1,星期二记为2,……,星期日记为0,已知某月1日(即第1天)是星期一,下列语句中, 2010 用于正确计算该月第n日星期数w的是 1

有问题联系: 有问题联系:gangzi_fu@sina.com (A)w=n Mod 7 (B)w=(n+1) Mod 7

86294028 (D)w=n\7
R = R1R 2 R1 + R 2

(C)w=(n+1)\7

答案: 答案:A ,计算R的Visual Basic表达式是 答案: 答案:D

习题『会考2010』 习题『会考2010』:在二个电阻R1、R2并联电路中,总电阻计算公式是 2010 (A)R1R2/R1+R2 (B)(R1R2)/(R1+R2) (C)R1*R2/R1+R2

(D)R1*R2/(R1+R2)

3.过程 (1)VB 应用程序是按模块化的方式组成的,一个程序模块是程序的一部分,每个模块负责解决整个应用问题的一部分任 务。程序模块分为过程和函数两种。 (2)过程:将程序划分成一个个较小的逻辑单元,每个逻辑单元构成一个过程。过程中的代码可以被重复调用。过程分 成两类,一类是事件处理过程,另一类是通用过程。 (3)事件处理过程: Sub 事件处理过程名(参数表) 语句块 End Sub 其中,事件处理过程名必须符合下面的规则:对象名_事件的标准名。 对象名_事件的标准名 对象名 VB 的一些常用对象上的常见事件的标准名有: 文本框 Text:Text_Click、Text_DblClick、Text_KeyPress 命令按钮 Command:Command_Click、Command_DblClick 标签 Label:KeyPress 4.语句 (1)赋值语句 A)赋值语句格式 1: 变量名 = 表达式 B)赋值语句格式 2: 对象名.属性名 = 表达式 C)赋值语句格式 3: 例如:D(3) = 表达式 注意赋值语句与关系表达式的区别: 注意赋值语句与关系表达式的区别: 关系表达式 1 常用于判断语句, 如:If 关系表达式 …… 如:Do While 关系表达式…… 2 3 等号左右两边可以互换 等号左边对象不一定唯一, 如 a+b=1 赋值语句 只是值的单向给予,流程图中常用箭头 单向给予, 单向给予 表示, 表示,如:A←1 如 A←A+1 等号左右两边不能互换 等号左边对象一定要唯一, 如 a=b+1 (将表达式的计算结果赋予给变量) (赋予给对象的某个属性) (将表达式赋予给数组元素)

习题『 2010』 习题『会考 2010』:对于 Visual Basic 语句 If a=1 Then m=m+1 Else m=m-1,下列说法正确的是 (A)a=1 为赋值语句 (C)m=m+1 和 m=m-1 均为赋值语句 (B)m=m+1 和 m=m-1 均为关系表达式 (D)m=m+1 为关系表达式,m=m-1 为赋值语句 答案: 答案:C

☆ 下面列表举例判断是赋值语句或关系表达式: 语句 A=1 A=A+1 判断 可为赋值语句或关系表达式,视情况而定 可为赋值语句或关系表达式,视情况而定 语句 Text1.Text=Str(S) Text1.Text=Str(S) + Text1.Text A=B+1 A+1=A 可为赋值语句或关系表达式,视情况而定 关系表达式(等号左边对象不唯一) 2 S+Text1.Text=S 关系表达式 判断 可为赋值语句或关系表达式, 视情况而定 可为赋值语句或关系表达式, 视情况而定

有问题联系: 有问题联系:gangzi_fu@sina.com A+B=A 关系表达式(等号左边对象不唯一)

86294028

总结:判断语句是赋值语句还是关系表达式的关键在于——①是否存在等号后的值给予等号前的对象;②赋值语句等号前对 总结:判断语句是赋值语句还是关系表达式的关键在于——①是否存在等号后的值给予等号前的对象; —— 象一定唯一 冒号:可以让多个语句写在同一行。如 a=2 : b=3 (2)输入输出语句 输入语句, 表示向程序输入值, 如向文本框中输入数字, 转换类型为数值型后存入变量 R 中, 以便能用 3.14*R^2 计算圆面积, 则其中输入数字的语句:R=Val(Text1.Text)为输入语句 输出语句,表示将运算结果呈现出来,如上例中计算机的面积在标签中显示出来,可用输出语句:Label1.Caption=Str(S) 在判断是输入还是输出语句时应注意要点: 程序反馈出来 以下列表举例: 出来, 在判断是输入还是输出语句时应注意要点:输入到程序中 还是 程序反馈出来,以下列表举例: 语句 Print(Str(S)) Label1.Cation="结果为 Label1.Cation= 结果为" & Str(S) 结果为 T =Val(Text1.Text) S=InputBox() Msgbox(Str(I)) 注:算法不一定要输入,但一定要有输出 算法不一定要输入, (3)计数、累加累乘语句 计数、累加累乘语句 累乘 计数语句——统计符合条件的个数,初值=0 每次自身加 1,例如 c=c+1——符合条件的数字累加,初值=0 累加语句——格式类似 sum=sum+k 类似地,累乘语句写作类似 T=T*k 的语句 (4)选择语句 语句: 一行内写完) (一行内写完 A) 行 If 语句: 一行内写完) ( If 或 条件表达式 If Then 语句 1 Then Else 语句 语句 2 条件表达式 输出语句 输出语句 输入语句 输入语句 输出语句 判断 打印出来 出来 在标签中显示出来 出来 把文本框中内容存入 T 中 存入 把输入框中内容存入 S 中 存入 以消息框的形式显示出 I 的值 出 理由

例 1: if a>=b then s=1 else s=-1 例 2: if d>=10 and d<=100 then count=count+1 B)标准 If 语句(块 If 语句) 语句( 语句) If 条件表达式 语句序列 1 End If Then If Else 语句序列 2 End If 多分支 IF 语句 If 条件表达式 1 语句序列 1 ElseIf ElseIf 条件表达式 2 条件表达式 3 Then Then 语句序列 2 语句序列 3 ……………… ElseIf 条件表达式 N Then 语句序列 N 3 Then 条件表达式 语句序列 1 Then

有问题联系: 有问题联系:gangzi_fu@sina.com Else 语句序列 N+1 End If

86294028

习题『会考2010』 习题『会考2010』:某市出租车计费标准规定:出租车启动后行程不超过3千米(包含3千米)计费5元;如果行程超过3千米 2010 且不超过10千米(包含10千米),则超过3千米部分按1.5元/千米计费(3千米及以内部分计费仍为5元);若行程超过10千米, 则在前面计费基础上,超出10千米部分按1.8元/千米计费。 假定某出租车行程为x千米,计费标准如下: 当x≤3千米时,计费为5元; 当3<x≤10千米时,计费为5+(x-3)×1.5 当x>10千米时,计费为5+(10-3)×1.5+(x-10)×1.8 程序界面如图VB-1所示,在文本框Text1中输入行驶里程数(单位:千米),单击"开始计算"按钮(Command1)后,在标 签Biaoqian3输出计费结果。 解决此问题的算法流程图如图VB-2所示,相应的Visual Basic程序如下,在程序(1)和(2)划线处,填入适当的语句或表 达式,把程序补充完整。 Private Sub Command1_Click() Dim x As Single, s As Single x = Val(Text1.Text) If s = 5 ElseIf x <= 10 Then s = 5 + (x - 3) * 1.5 Else s = 5 + (10 - 3) * 1.5 + (x - 10) * 1.8 End If (2) End Sub = Str(s) (1) Then

开始 输入行程数x Y x 不超过3 ? N Y
X不超过10 ?
图VB-1

N s←5 + (10 - 3) × 1.5 + (x - 10)×1.8 s←5+ (x - 3) × 1.5

s←5

输出s 的值 图VB-2 结束
4

有问题联系: 有问题联系:gangzi_fu@sina.com 答案: 答案:①x<=3 (5)循环结构 ……Next A)For ……Next 循环语句 1)格式 For Next 循环变量 = 初值 To 循环体语句系列 循环变量 ②Biaoqian3.Caption Biaoqian3.Caption

86294028

终值

[ Step

步长 ]

2)循环变量是不一定是整数变量,这里的初值、终值和步长也不一定为为整数 3)步长可以为正(递增) ,也可以为负(递减) ,但不可以为 0 4)若步长为 1,则 Step 1 可以省略 5)循环尾 Next 后面的变量与 For 后面的循环变量必须一致, 6)总之,For…Next 循环是循环次数能预先确定,循环变量能自动改变的循环! 例如:计算 1+1/3+1/5+1/7+……+ 1/99 值的程序段 S=0 For K=1 To99 Step 2 S=S+1/K Next K 思考: 思考:在这个例子中如何统计循环次数? 答案—— 答案——在循环体中加入计数语句,如 C=C+1,再在循环结束后输出 C 值,如 Print C —— 习题『会考2010』 习题『会考2010』:下列语句用于计算s=1+4+7+10+…+25:正确的语句顺序是 2010 ①For i=1 To 25 Step 3 (A)①②③④ For k=1 To 3 s=s+k (A)Loop (B)End For (C)Next s (D)Next k 答案: 答案:D ②Next i ③s=0 (C)③①④② ④s=s+i (D)④③①② 答案: 答案:C (B)①③④② ‘累加的初值必须=0 ‘For 循环的开头 ‘循环体,累加 ‘For 循环的结尾

习题『会考2010』:以下程序段是一个完整的Visual Basic的For语句,则划线处的语句应该是 习题『会考2010』 2010

习题『高考2010年 月卷』下面的VB程序运行中单击Command1按钮,Text1上显示_ 习题『高考2010年3月卷』下面的VB程序运行中单击Command1按钮,Text1上显示_①_,Text2上显示__②__。 2010 VB程序运行中单击Command1按钮 上显示 Text2上显示_ 上显示 Private Sub Command1_Click() Dim a(1 To 5) As Long, i As Integer a(1) = 1 For i = 2 To 5 a(i) = a(i - 1) * i Next i Text1.Text = Str(a(2)) Text2.Text = Str(a(5)) End Sub 答案① 答案①:2 答案② 答案②:120

B)Do While …… Loop 循环语句 1)循环的执行次数预先不知道,但知道循环执行的条件 2)语句格式:

5

有问题联系: 有问题联系:gangzi_fu@sina.com

86294028

Do While 条件表达式 循环体(语句序列) Loop 3)条件成立则执行循环体语句,条件不成立则结束循环(跳到 loop 语句的后面) 4)循环体里面,一定要改变循环控制变量 习题: 习题:在 VB 程序设计里,以下语句中错误的是_________ (A)Dim tj as Boolean (C)Const PI=3.14159 #01 #02 #03 #04 t=0 Do While t<10 t=t+2 End Do (B) 第#02行 (C) 第#03行 (D) 第#04行 答案: 答案:D (B)If x>=0 Then x=x+10 (D)2*x+y = 16 答案: 答案:D

习题『会考2010』 习题『会考2010』:在下面完整的Visual Basic的Do语句中,有错误的语句行是 2010

(A) 第#01行

习题: 习题:下列程序段是为了计算 1+1/11+1/21+1/31+...1/121的值,计算结果在文本框Text1中输出。则程序中加框处的语句 应分别更正为: (1)__________________ s=0 i=1 Do While i<=121 s=s+1/i I=I+1 Loop Text1.Text=Val(s) 习题: 习题:下图是判断方程ax +bx+c=0(a≠0)有无实根的部分流程图,则图中虚线部分的内容是
输 入 变 量 a,b ,c 的 值
2

(2)__________________ 答案① 答案①:I=I+10 答案② 答案②:Text1.Text=Str(s)

d

b *b - 4 * a * c

N Y
输出“ 有实根” 输出“无实根 ”

(A)

d>=0?

(B)

d>=0?

(C)

d>=0?

(D)

d>=0?

答案: 答案:C

习题: A 习题:

=

1 3 7 15 1023 + + + …+ ,求比A小的最大自然数。 2 4 8 16 1024
答案① 答案①:10 答案② 答案②:(2 ^ i - 1) / (2 ^ i)

For i = 1 To ① s = s + ② Next i Print Str(Int(s))

习题: 习题:编写程序——在三个文本框中输入数字,找出最大的数字 Dim a, b, c, max As Single a = Val(Text1.Text) : b = Val(Text2.Text) : c = Val(Text3.Text) If a > b Then 6 答案① 答案①:Str(Max) 答案② 答案②:Str(c)

有问题联系: 有问题联系:gangzi_fu@sina.com Max = a Else Max = b End If If Max > c Then Text4.Text = "最大数为:" & ① Else Text4.Text = "最大数为:" & ② End If 习题: 习题:编写程序输出下列图形:

86294028

For i = 1 To 9 For j = 1 To i Print (Str(i)); Next j Print Next i 习题: 习题:下图是程序的结果输出 * ** *** **** (A) 请分别设计程序实现,提示:用Print()方法, 语句 ("*") "); Print (" "); ("*") Print (" ") 结果 ** ("*") Print (" ") ("*") Print (" ") * * 备注 同一行的两次打印有分号(;) ; 不同一行的两次打印无分号 不带参数和分号为换行 换行 Print * ** *** **** (B) **** *** ** * (C) ‘换行

程序(A) For i = 1 To ① For j = 1 To i Print ("*"); Next j Print Next i

程序(B) For j = 1 To 4 For n = 1 To ② Print " "; Next n For m = 1 To j Print ("*"); Next m Print Next j 答案 ① 4 ② 4 - j

程序(C) For i = 4 To 1 ③ For j = i To 1 Step -1 Print ("*"); Next j Print Next i

③ Step -1

7

有问题联系: 有问题联系:gangzi_fu@sina.com 5.面向对象程序设计 面向对象程序设计语言的特征

86294028

1)事件驱动:每当用户或系统触发一个事件(如"鼠标单击"),将执行预先编写好的一段代码。 2)可视化:即图形用户界面(GUI),只需要把一些对象拖放到窗口合适位置。 面向对象程序设计的要点: 面向对象程序设计的要点: 1、核心概念是对象。对象由一组对象状态的数据和一组描述处理对象属性的方法的代码构成的。 对象的属性定义其外观,方法定义其行为,事件定义其与用户的交互。 2、面向对象程序设计中的特征——事件驱动 六、变量与常量 变量的声明方法:Dim 变量名 As 数据类型 Dim 类似地,数组的声明: 数组的声明: 数组的声明 数组名( 最大下标) Dim 数组名(最小下标 To 最大下标) As 数据类型 如:Dim m(1 To 20) As String 或 Dim 数组名(最大下标) As 数据类型 数组名(最大下标) 如:Dim t(10) As Long 声明语句:Const 常量名=值 Const 常量名= 例:Const g=9.8 常量的类型有:数值型、字符串型、逻辑型等 习题『 2008 习题『会考 2008』:下列 Visual Basic 表达式正确的是 (A)b*b-2π*a 七、常见数据类型 常见的数据类型: 常见的数据类型: 数据类型 Integer Long Single Double String Boolean Date 说明 整数型 长整数型 单精度实数型 双精度实数型 字符串型 逻辑型 日期型 性质 -32768~32767 之间的整数 -2147483648~2147483646 间的整数 1.401298E绝对值在 1.401298E-45~3.402823E38 内的实数 10E绝对值在 10E-324~1.79E308 内的实数 文本 True、 返回值 True、False 日期和时间 (B)b1-m^2 (C)2v+1/2/t (D)2*a+3Sqr(-9) 答案: 答案:B 数组 m 中包括了 m(1)、m(2)……m(20)共 20 个元素 通过此声明后数组的下标范围为 0 到最大下标 通过此声明后数组 t 中包括 t(0)、t(1)……t(10)共 11 个元素

常量:即不会因为程序而改变的量,如圆周率、重力加速度等

习题『会考2007 习题『会考2007』:在Visual Basic中,要定义一个一维数组a,用于存储100个整数型数值,则正确的数组定义语句是 200 (A)Dim a100 As Integer (C)Dim a(1,100) As Integer (A)字符串常量 句应该是 For i= 1 To 100 _____________ Next i (A)a(i)=i+2 (B)a(i)=i*i (C)a(i)=i 8 (D)a(i)=2*I 答案: 答案:D (B)数值常量 (B)Dim a(1-100) As Integer (D)Dim a(1 To 100) As Integer (C)逻辑常量 (D)实数常量 答案: 答案:D 答案:A 答案:

习题『会考2010』 习题『会考2010』:在Visual Basic中,赋值语句carno="浙Z·56789"中的"浙Z·56789"是 2010 习题『会考2008 习题『会考2008』:下面程序段是利用For语句给数组a赋值,使a(1)=2,a(2)=4,a(3)=6,…,a(100)=200,则划线处的语 200

有问题联系: 有问题联系:gangzi_fu@sina.com (A)整数型 八、常见函数 常见函数 1.数学函数 函数名 Abs(x) Int(x) 描述 绝对值 返回参数的整数部分 (B)单精度实数型

86294028 (D)长整数型 答案: 答案:C

习题『会考2007 习题『会考2007』:在Visual Basic中,语句Dim b As Double所定义的变量b是 200 (C)双精度实数型

例子 Result=Abs(-1), Result=Abs(-1),返回 1 Result=Int(3.14),返回 Result=Int(3.14),返回 3 Result=Int(-3.14),返回Result=Int(-3.14),返回-4 返回

Fix(x)

返回参数的整数部分

Result=Fix(3.14),返回 Result=Fix(3.14),返回 3 Result=Fix(-3.14),返回Result=Fix(-3.14),返回-3 返回

Sqr(x) Exp(x) Log(x) Sin(x) Cos(x) Tan(x)

开平方 自然对数的底) 指定 e(自然对数的底)的某次方 指定参数的自然对数值 sine(正弦) 指定参数的 sine(正弦)值,x 为弧度 指定一个角的余弦值, 指定一个角的余弦值,x 为弧度 指定一个角的正切值, 指定一个角的正切值,x 为弧度

Result=Sqr(4),返回 Result=Sqr(4),返回 2 Result=Exp(1),返回 Result=Exp(1),返回 2.71828182845905 Result=Log(2.71828182845905),返回 Result=Log(2.71828182845905),返回 1 2),返回 ——90 Result=Sin(3.1415926 / 2),返回 1——90 度的正弦 略 略

2.转换函数和字符函数 函数名 Asc(x) Chr(x) Val(x) Str(x) Len(x) Left(x,n) right(x,n) Mid(x,n,k) 描述 代表字符串中首字母的 ASCII 码 ASCII 返回其中包含有与指定的 ASCII 码相对应的字符 转换参数为数值类型 转换参数为字符类型 返回参数的长度 返回参数自左起的 返回参数自左起的 n 个字符 返回参数自右起的 返回参数自右起的 n 个字符 个字符( 个字符) 返回字符串 x 中从第 n 个字符(含第 n 个字符)开始的 连续 k 个字符 Result=Len("nba"),返回 3 Result=Len("nba"), Result=Left("nba",2) 返回"nb" Result=Left("nba",2),返回"nb" ft("nba",2 Result=right("nba",2) 返回"ba Result=right("nba",2),返回"ba" right("nba",2 "b game!",4,6), Result=Mid("I love this game!",4,6),返回 th"。(空格也要算在内) 。(空格也要算在内 "ove th"。(空格也要算在内) 例子 Result=Asc("A"), Result=Asc("A"), 返回 65 Result=Chr(65) , 返回 "A"

习题: 答案: 习题:欲对 x=3.14159 四舍五入,精确到小数点后 2 位,则表达式写作_____。 答案:Int(x*100+0.5)/100 习题: 习题:某银行在一次黄金交易中共交易黄金 50 克,每克单价 345.9567 元,结算时以“元”为单位,按“分”结算。在 VB 中,X=345.9567,上述算术问题的 VB 表达式应是: (A)Int(50*X*10+0.5)/10 (C)Int(50*X*100)/100 3.自定义函数格式 Function 函数名(参数表) As 函数返回类型名 语句...... End Function 习题: 习题: 用自定义函数判断闰年问题 Function Leap(Year As Integer) As Boolean If Year Mod 400 = 0 Or Year Mod 100 <> 0 And Year Mod 4 = 0 Then Print ("是") Else Print ("否") End Function 9 (B)Int(50*X*100+0.5)/10 (D)Int(50*X*100+0.5)/100 答案: 答案:D

有问题联系: 有问题联系:gangzi_fu@sina.com Private Sub Command1_Click() Leap (Val(Trim(Text1.Text))) End Sub

86294028

习题『 月卷』 的值: 习题『高考 2010 年 3 月卷』:按下面公式计算 y 的值:

程序(运行界面如下图),实现如下功能: ),实现如下功能 的值,单击“计算” Command1, 现要求编写 VB 程序(运行界面如下图),实现如下功能:在文本框 Text1 中输入 x 的值,单击“计算”按钮 Command1,在 的值。 标签 Label3 中显示 y 的值。

按此要求编写的程序如下, f(x)用于计算 的值,但加框代码有错,请改正。 按此要求编写的程序如下,其中函数 f(x)用于计算 y 的值,但加框代码有错,请改正。 Function f(x As Single) As Single If x < 0 Then f = -x ElseIf x >= 0 Then f = (2 * x * x + 1) / (3 * x - 2) Else f = Sqr(3 * x * x - 2 * x + 1) End If End Function Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) y = fx Label3.Caption = Str(y) End Sub 答案① 答案①:x > 100 4.RND 函数 Rnd 函数返回[0,1)之间随机数,使用前先用 Randomize 作随机数生成器的初始化 注意:要得到[0,10]范围的随机数,则可用什么表达式? 为了生成某个范围内的随机整数,可使用以下公式:Int((上界 下界) 为了生成某个范围内的随机整数,可使用以下公式:Int((上界 - 下界 + 1) * Rnd + 下界) Dim MyValue MyValue = Int((6 * Rnd) + 1) ' 生成 1 到 6 之间的随机数值。 习题:用随机函数在列表中生成 10 个[1,1000]的随机整数 习题:用随机函数在列表中生成 [1,1000]的随机整数 Dim i As Integer i = 1 Do While i <= 10 List1.AddItem (Str(①)) ① i = i + 1 10 答案①:Int(1000 * Rnd + 1) 答案① ;答案②:y = f(x) 答案② ‘② ‘①

有问题联系: 有问题联系:gangzi_fu@sina.com Loop

86294028

习题:用随机函数产生 100 个[0,99]范围内的随机整数,统计个位上的数字分别为 1,2,3,4,5,6,7,8,9,0 的数的 习题: [0,99]范围内的随机整数, 范围内的随机整数 个数并打印出来。 个数并打印出来。

Private Sub Command1_Click() ①

‘初始化随机随机数生成器

Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer

'以下产生 100 个[0,99]范围内的随机整数,每行 10 个打印出来
For i = 1 To 100 a(i) = ② Print a(i); If i Mod 10 = 0 Then Print Next i

'以下统计个位上的数字分别为 1,2,3,4,5,6,7,8,9,0 的数的个数,并将统计结果保存在数组 x(1),x(2),...,x(10) 中,将统计结果打印出来
For i = 1 To 100 p = ③ x(p) = ④ Next i Print "统计结果" For i = 1 To 10 p = i If i = 10 Then p = 0 Print "个位数为" + Str(p) + "共" + Str(x(i)) + "个" Next i End Sub 答案① 答案①:Randomize 答案② 答案②:Int(Rnd * 100) 答案③ 答案④ 答案③:a(i) Mod 10 答案④: x(p) + 1

' 求个位上的数字 ‘个数累加

If p = 0 Then p = 10

九、算法的程序实现 1.枚举算法及程序实现 逐个作出判断,从 枚举算法的基本思想是根据问题的本身性质,一一列举 一一列举出该问题所有可能的情况,并根据题目的条件逐个作出判断 逐个作出判断 一一列举 11

有问题联系: 有问题联系:gangzi_fu@sina.com 中挑选出符合条件的解答。

86294028

枚举算法属于搜索策略,适用于那些解变量确定的连续值域的问题。设置枚举算法要列举出所有可能的情况,不能遗漏, 也不能重复。
3 3 3 习题:求出所有水仙花数(一个三位数等于它的每个数字的立方和, 习题:求出所有水仙花数(一个三位数等于它的每个数字的立方和,如:153=1 +5 +3 ) 3 3 3

For m =100 to N= ①

999

答案① ^3+b^3+c +b^3+c^3 答案①: a^3+b^3+c^3 答案② 答案②:m=n

A=int(m/100) : B=int((m-100*a)/10) : C=m-100*a-10*b If ② then List1.Additem Next m Str(m)

习题: 习题:下面程序的功能是:找出 10 以内的奇数中能被 3 整除的正整数,并将它们累加起来。为了实现这一目标,程序中划 线处的语句应更正为 x=0 For i=1 To 10 Step 2 If Next i 答案: 答案:If i mod 3 = 0 Then x=x+i 习题: 以内勾股数(不允许重复) 习题:枚举 100 以内勾股数(不允许重复) i mod 3 <> 0 Then x=x+i 。

Dim c, b, sum As Integer, a As Single List1.AddItem (" a" & " " & " b" & " " & " List1.AddItem ("--------------") sum = 0 For a = 3 To 100 For b = a + 1 To 100 c = ① If ② And c <= 100 Then List1.AddItem (Str(a) & " sum = sum + 1 End If Next b Next a Label1.Caption = "共有勾股数:" & Str(sum) & "组" c")

答案① 答案①:Sqr(a ^ 2 + b ^ 2) 答案② Int(c) 答案②:Int(c) = c

‘一一列举 ‘一一列举 一一列举 ‘逐个作出判断 逐个作出判断
" & Str(b) & " " & Str(c))

例如:百钱买百鸡问题( 元钱, 只鸡) ,公鸡 元一只, 元一只, 每种鸡至少一只。 例如:百钱买百鸡问题(100 元钱,要求买 100 只鸡) 公鸡 5 元一只,母鸡 3 元一只,小鸡一元 3 只;每种鸡至少一只。 , List1.AddItem ("公鸡 For i = 1 To 20 For j = 1 To 33 ① If ②Then List1.AddItem (Str(i) & " End If 12 " & Str(j) & " " & Str(m)) 答案① 答案①:m = 100 - i – j 答案② 答案②:5 * i + 3 * j + m / 3 = 100 母鸡 小鸡")

有问题联系: 有问题联系:gangzi_fu@sina.com Next j Next i

86294028

习题: 。但知道这个 5 位数是 35 或 65 的 习题:一张彩票上有一个 5 位数的编号,其千位数和百位数处已经变得模糊不清(如下) 倍数。现设计下列算法,找出所有满足这些条件的 5 位数,并统计出这些 5 位数的个数。请在空白行处填写合适的 VB 语句或 表达式,把程序补充完整。

NO. 3□□45
C=0 For j=0 To ① n=30045+100*j If (n Mod 35=0) or (n Mod 65=0) then ② Print "可能的一个数为:" + Str(n) End if Next j Print "符合题意的数总数为:" + Str(C) 习题: 习题:输出 100-200 间的所有不能被 3 整除的数并统计个数。 方法一: 方法一: Dim i, D As Integer For i = 100 To 200 If ① Then List1.AddItem (Str(i)) ② End If Next i Print Str(D) 方法二: 方法二: Dim i,a,b,c, D As Integer ‘a 为百位数,b 为十位数 ,c 为个位数 For i = 100 To 200 a= ① : b = ② : c = ③ If (a + b + c) Mod 3 <> 0 Then List1.AddItem (Str(i)) D = D + 1 End If Next i Print Str(D) 方法三: 方法三: Dim i, a, b, c, D As Integer For i = 100 To 200 a = Val(Left(Trim(Str(i)), 1)) b = Val(Mid(Trim(Str(i)), 2, 1)) c = Val(Right(Trim(Str(i)), 1)) If (a + b + c) Mod 3 <> 0 Then 13 答案① 答案①:a = i \ 100 答案② 答案②:(i - a * 100) \ 10 或 (i Mod 100) \ 10 答案③ 答案③: i Mod 10 * a 或 c = i - 100 答案① 答案①:i Mod 3 <> 0 答案② 答案②: D=D+1 答案① 答案①:99 答案② 答案②:c=c+1

有问题联系: 有问题联系:gangzi_fu@sina.com List1.AddItem (Str(i)) D = D + 1 End If Next i Print Str(D) 习题: 习题:求 100-200 间的所有素数 判断 i 是否为素数的方法:如果 i 不能被[2,

86294028

i ]之间任一个数整除,则 i 为素数。

开始 i=101 N

100<i<200? Y k← i 2≤j≤k? Y i 是否能被 j 整除 N Sushu←True j←j+1 SuShu=True? Y 输出 m 结束 输出 i m←m+1
答案①:i < 200 答案① 答案② 答案②:Sqr(i) 答案③ 答案③:i Mod j = 0

N

i←i+2 Y

Sushu←False N

Dim SuShu As Boolean Dim i, j, k, m As Integer i = 101 SuShu = False Do While ① k = ② For j = 2 To k If ③ Then SuShu = False : End If SuShu = True Next j If SuShu = True Then List1.AddItem (Str(i)) 14 Exit For

有问题联系: 有问题联系:gangzi_fu@sina.com m = m + 1 End If i = i + 2 Loop

86294028

Label1.Caption = “素数共有:” & Str(m) & “个!” 练习: 之间的回文数, 11,232, 练习:寻找 100 至 999 之间的回文数,如 11,232,505 等 算法分析:(假定某三位数为 n) 要点 1:确定变量范围:100~999(即 n 从 100 变到 999) 要点 2: 确定问题的判断条件 n 这个数具有从左往右看与从右往左看相等的特征 要点 3:判断条件如何实现? ——要点是分离出各数位上的数(借助 Int 函数) 如 n=456,则百位数字 a = 4 十位数字 b = 5 个位数字 c = 6 然后判断 n=n1? 对应程序: gs=0 For n=100 To 999 a=Int(n/100) b=Int((n-100*a)/10) c=n-100*a-10*b n1=100*c+10*b+a If n=n1 Then gs=gs+1 End If Next n Text1.Text = Str(gs) '将回文数个数写到文本框中 List1.AddItem Str(n) '变量 gs 存放回文数个数 '寻找范围:100~999 '得到 n 的百位数字 '得到 n 的十位数字 '得到 n 的个位数字 '组装生成 n 的逆序三位数 '如果 n 和 n 的逆序三位数相等 '统计回文数的个数 '将回文数添加到列表框 1 中 a=Int(n/100) 或 a = n\100 b=Int((n-100*a)/10) 或 b=(n\10) Mod 10 c=n-100*a-10*b 或 c=n Mod 10

则,组装 n 的逆序数 n1 =c*100 + b*10 + a

习题『高考 2010 年 3 月卷』:一个十进制整数的二进制表示中,如果数字“1”的个数多于数字“0”的个数,则称该整数为 习题『 月卷』 一个十进制整数的二进制表示中,如果数字“ 的个数多于数字“ 的个数, 类数, 11010, 类数, 程序的功能是: A 类数,如十进制 26 的二进制表示为 11010,26 是一个 A 类数,下列 VB 程序的功能是:统计前 1000 个自然数中 A 类数的个 数,并在文本框中输出。请在划线处填入合适代码。 并在文本框中输出。请在划线处填入合适代码。 Private Sub Command1_Click() Dim i As Integer, n As Integer Dim s As Integer Dim t As Integer Dim k As Integer s = 0 For i = 1 To n = i t = 0 k = 0 15 ① 's 为 A 类数的个数 't 为二进制数中“1”的个数 'k 为二进制数中“0”的个数

有问题联系: 有问题联系:gangzi_fu@sina.com Do While n > 0

86294028

If n Mod 2 = 1 Then t = t + 1 Else k = k + 1 n = n \ 2 Loop If Next i Text1.Text = Str(s) End Sub 答案① 答案①:1000 ;答案②:t>k 答案② ② Then s = s + 1

习题:马克思在研究无产阶级革命学说的同时也很重视数学科学学习,他的数学手稿中有这样一道题: 个人, 习题:马克思在研究无产阶级革命学说的同时也很重视数学科学学习,他的数学手稿中有这样一道题:有 30 个人,其中有 男人、女人、小孩, 先令, 先令, 先令, 先令,为计算男人、女人、 男人、女人、小孩,在一家小饭馆里花 50 先令,每个男人 3 先令,每个女人 2 先令,每个小孩 1 先令,为计算男人、女人、 小孩各多少人, 程序如下, 处错误,请改正: 小孩各多少人,编制 Visaul Basic 程序如下,程序中有 2 处错误,请改正: Private Sub Command1_Click() n = 0 For x = 1 To 29 For y = 1 To 29 z = 30 - x - y m = 3 x + 2 y + z If m = 50 Then List1.AddItem ("男人:" & Str(x) & ";女人:" & Str(y) & ";小孩:" & Str(z)) n = n + 1 End If Next y Next x List1.AddItem ("共有:" & Str(x) End Sub 程序改正为:①________________;②_____________________ 答案① z;答案② 答案①:3 * x + 2 * y + z;答案②:Str(n) 习题: 习题:用辗转相除法求两个正整数的最大公约数和最小公倍数 分析: (1)对于已知两数 M,N,使得 M>N; (2)M 除以 N 得余数 R; (3)若 R=0,则 N 为求得的最大公约数,算法结束;否则执行(4); (4)M←N,N←R,再重复执行(2); (5)原数 M*N/最大公约数 即为最小公倍数 M*N/最大公约数 M = Val(Text1.Text) : N = Val(Text2.Text) MN = M * N If M < N Then t = M: M = N: ① R = ② Do While R > 1 M = N : Loop 16 N = R R = M Mod N 答案① 答案①:N = t 答案② 答案②:M Mod N 答案③ 答案③:(MN) / N & "种答案!") ' ② ' ①

有问题联系: 有问题联系:gangzi_fu@sina.com Text3.Text = Str(N) Text4.Text = Str(③) ③ 2.解析算法及程序实现 .

86294028

解析算法的基本思想是用解析的方法找出表示问题的前提条件与所求结果之间关系的数学表达式, 并通过数学表达式的计 算来实现问题的求解。 习题: 习题:一元二次方程根判别程序

Dim a, b, c, d, x1, x2 As Double a = Val(Text1.Text) : b = Val(Text2.Text) : c = Val(Text3.Text) d = b ^ 2 - 4 * a * c If d > 0 Then x1 = (-b + Sqr(d)) / (2 * a) : x2 = (-b - Sqr(d)) / (2 * a) Text4.Text = Str(x1) : Text5.Text = Str(x2) Label6.Caption = "有两个不同的实数根" ElseIf d = 0 Then x1 = (-b) / (2 * a) : x2 = x1 Text4.Text = Str(x1) : Text5.Text = Str(x2) Label6.Caption = "有两个相同的实数根" Else Label6.Caption = "没有实数根" End If 习题:鸡兔同笼问题—— 只同笼, 问鸡兔各几只? 习题:鸡兔同笼问题—— 鸡 x 只兔 y 只同笼,头共 30 只,脚 90 只,问鸡兔各几只? 分析: (1)X+y=30 (2)2x+4y=90 (x=15,y=15) 答案① 答案①:(foot-2*head)\2 答案② 答案②:(4*head-foot)\2

‘关键在于此

Const head=30, foot=90 Dim x as Integer, y As Integer Y= ① X= ② Text1.text=Str(x) Text2.text=Str(y) 习题: 习题:十进制 0~255 转换为二进制 Dim a , c(1 To 8) As Integer Dim S As String a = Val(Text1.Text) If a < 0 Or a > 255 Then 17

答案① 答案①:a Mod 2 答案② 答案②:Str(c(i)) + S

有问题联系: 有问题联系:gangzi_fu@sina.com Text2.Text = "输入数据错误,请重新输入!" Else Do While a <.> 0 c(i) =① ① a = Int(a / 2) S= ② Loop Text2.Text = S End If

86294028

习题: 习题:不计复利的银行存款本息计算的算法如下: ①输入本金m和年数y ③输出变量k (A)解析算法 习题: 习题:用 i = 1 Do While 1 / i > 0.000001 Sum = Sum + ① i = i + ② Loop Text1.Text = Str(4 * Sum) 习题: 习题:加密字符串 为字符串(不超过 8 位)作简单加密:将输入的字符串每位字符加密为的 ASCII 码值加上 4 对应的字符,再反方向输出。如: 对字符串”Abc12%”加密 原字符串 原 ASCII 码 修改后的 ASCII 码 对应的字符 密文(反方向输出) 流程图: 流程图: A 65 69 E ) b 98 102 f 6 c 99 103 g 5 1 49 53 5 g 2 50 54 6 f % 37 41 ) E (B)排序算法 (C)递归算法 ②用公式计算到期本息k=m(1+0.0314y),其中年利率为3.14% 上述算法属于 (D)枚举算法 答案: 答案:A

π

1 1 1 ≈ 1 ? + ? + ... 公式求 π 的近似值,直到最后一项的绝对值小于 10?6 为止。 的近似值, 为止。 4 3 5 7
答案① ((i+3)/2 3)/2) 答案①:(-1) ^ ((i+3)/2) / i 答案② 答案②:2

18

有问题联系: 有问题联系:gangzi_fu@sina.com

86294028

开始 输入字符串 M L←M 的长度 I←1 Y N I>L?

取得第 I 位字符存为数组第 I 位 取得第 I 位 ASCII 码并加上 4,存入 N ASCII 值为 N 对应的字符 X 反向输出
Dim d(1 To 8) As ① Dim M, X As String Dim L, N As Integer M = ② L = ③ For i = 1 To L d(i) = ④ N = Asc(d(i)) + 4 X = ⑤ Text2.Text = ⑥ Next i 答案① 答案①:String 答案④ 答案④:Mid(M, i, 1) 答案② 答案②:Text1.Text 答案⑤ 答案⑤:Chr(N) 答案③ 答案③:Len(M) 答案⑥ 答案⑥:X + Text2.Text 或 X & Text2.Text

结束

习题:国际标准书号(International Number) 是国际通用的图书或独立的出版物( 习题:国际标准书号(International Standard Book Number)简称 ,是国际通用的图书或独立的出版物 除定期出版的期 ( xx-xxx-xxxxx209-02375- 其中末位为识别码, 号的正确性,校验办法: 刊)代码,格式为 xx-xxx-xxxxx-x 如 7-209-02375-5,其中末位为识别码,用于校验此 ISBN 号的正确性,校验办法:首位 代码, 数字*1+次位数*2+……, 11, 10, 则结果即为识别码, 号是否合法, 数字*1+次位数*2+……,累加和再除以 11, *1+次位数*2+…… 如余数不等于 10, 则结果即为识别码, 否则别码 X, 为验证图书 ISBN 号是否合法, 编写程序如下,请在划线行正确填写语句。 用 Visual Basic 编写程序如下,请在划线行正确填写语句。

Private Sub Command4_Click() Dim i, x, y As Integer Dim d(1 To 10) As String Dim Mark, JiaoYanMa, M As String M = Replace(Text1.Text, "-", "") JiaoYanMa = Right(M, 1) 19 '该数组用于存储输入的 ISBN 中每一个字符 'Mark 为计算出的 ISBN 标识; JiaoYanMa 为输入的 ISBN 的末尾字符;M 为 ISBN 去 掉“-”的部分 '使用 Replace 函数将输入的 ISBN 中“-”去掉, '例如将“7-115-15208-X”转换为“711515208X”

有问题联系: 有问题联系:gangzi_fu@sina.com x = 0: i = 1 For i = 1 To 9 d(i) = Next i y = ② If y = 10 Then Mark = "x" Else: If Mark = JiaoYanMa Then Label2.Caption = "ISBN 号正确!" Else Label2.Caption = "ISBN 号错误!" End If End Sub 答案①:Mid(M, i, 1);答案 答案②:x Mod 11 答案 答案 ① x = x + Val(d(i)) * i

86294028

Mark = Trim(Str(y))

习题:身份证校验算法:根据〖 11643-1999〗中有关公民身份号码的规定, 习题:身份证校验算法:根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特 征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码, 征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码, 三位数字顺序码和一位数字校验码。 三位数字顺序码和一位数字校验码。 地址码表示编码对象常住户口所在县( 地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。生日期码表示编码对象出生的年、月、日,其中年 的行政区划代码。生日期码表示编码对象出生的年、 份用四位数字表示, 份用四位数字表示,年、月、日之间不用分隔符。顺序码表示同一地址码所标识的区域范围内,对同年、月、日出生的人员 日之间不用分隔符。顺序码表示同一地址码所标识的区域范围内,对同年、 编定的顺序号。顺序码的奇数分给男性,偶数分给女性。校验码是根据前面十七位数字码, 11编定的顺序号。顺序码的奇数分给男性,偶数分给女性。校验码是根据前面十七位数字码,按照 ISO 7064:1983.MOD 11-2 校验码计算出来的检验码。下面举例说明该计算方法。 校验码计算出来的检验码。下面举例说明该计算方法。 19, 年出生的人不使用( 15 位的身份证编码首先把出生年扩展为 4 位,简单的就是增加一个 19,但是这对于 1900 年出生的人不使用(这样的寿星不 多了) 多了) 为校验码) 首先按照公式⑴计算: 某公民身份号码本体码为 34052419800101001V(V 为校验码),首先按照公式⑴计算: ……………………………………(1) ∑(ai×Wi) mod 11 ……………………………………(1) (ai× 公式( 说明: 公式(1)说明: i----表示号码字符从右至左包括校验码在内的位置序号; ----表示号码字符从右至左包括校验码在内的位置序号; 表示号码字符从右至左包括校验码在内的位置序号 ai----表示第 位置上的号码字符值; ai----表示第 i 位置上的号码字符值; ---Wi----示第 位置上的加权因子, Wi=2^(i 计算得出。 Wi----示第 i 位置上的加权因子,其数值依据公式 Wi=2^(i-1) mod 11 计算得出。 ---i: ai: ai: Wi: Wi: (ai× (ai×Wi) mod 11 根据公式(1)进行计算: 根据公式(1)进行计算: (1)进行计算 ∑(ai×Wi) =(21+36+0+25+16+16+2+9+48+0+0+9+0+5+0+0+2)=189 (ai× =( ∑(ai×Wi) mod 11 = 2 (ai× 然后根据计算的结果,从下面的表中查出相应的校验码, 10: 然后根据计算的结果,从下面的表中查出相应的校验码,其中 X 表示计算结果为 10: 下表是身份证号码校验表: 下表是身份证号码校验表: 11: ∑(ai×WI) mod 11: (ai× 校验码字符值 V: 0 1 1 0 2 X 3 9 4 8 5 7 6 6 7 5 8 4 9 3 10 2 18 3 7 21 17 4 9 36 16 0 10 0 15 5 5 25 14 2 8 16 13 4 4 16 12 1 2 2 11 9 1 9 10 8 6 48 9 0 3 0 8 0 7 0 7 1 9 9 6 0 10 0 5 1 5 5 4 0 8 0 3 0 4 0 2 1 2 2 1 V 1

通过查上面得到校验码为 X。

20

有问题联系: 有问题联系:gangzi_fu@sina.com

86294028

程序如下: 设计 Visual Basic 程序如下: Dim M, S As Integer Dim d(1 To 18) As String Dim w(1 To 18) As Integer Dim Jiaoyan(0 To 10) As String

'S 为加权因子之和;M 为算法计算出的校验码编号

'下面是校验表
Jiaoyan(0) = "1": Jiaoyan(1) = "0": Jiaoyan(2) = "X": Jiaoyan(3) = "9": Jiaoyan(4) = "8": Jiaoyan(5) = "7" Jiaoyan(6) = "6": Jiaoyan(7) = "5": Jiaoyan(8) = "4": Jiaoyan(9) = "3": Jiaoyan(10) = "2" For i = 18 To 2 Step -1 d(i) = Mid(Text1.Text, 19 - i, 1) w(i) = Next i M = S Mod 11 Text2.Text = Jiaoyan(M) If Right(Text1.Text, 1) = Label3.ForeColor = vbGreen Label3.Caption = "此身份证号合法!" Else Label3.ForeColor = vbRed Label3.Caption = "此身份证号非法!" End If End Sub 答案: 答案:①2 ^ (i - 1) Mod 11 ; ② Jiaoyan(M) ① S = S + w(i) * d(i)

'自右依次取出身份证号前 17 位的每一位,存入数组 d 中 '求出加权因子之和

'计算第 i 位置上的加权因子

'计算校验码编号 '查校验码表,把表中校验码编号对应的校验码取出,并显示在 Text2 上
② Then

'对输入的身份证号进行校验

习题: 米高度自由落下,每次落地后反跳回原来高度的一半,再落下, 习题:一球从 100 米高度自由落下,每次落地后反跳回原来高度的一半,再落下,求第 10 次落地时共经过的米数和第 10 次 反弹的高度。 反弹的高度。 Dim SN, HN As Single SN = 100 HN = SN / 2 Dim n As Integer For n = 2 To ① SN = Next n Label1.Caption = "第 10 次落地时共经过:" & Str(SN) & "米!" 21 ② '第 N 次落地时经过的米数 '第 N 次反弹的高度 HN = HN / 2

有问题联系: 有问题联系:gangzi_fu@sina.com 答案① 答案①:10 答案② 答案②:SN + 2 * HN

86294028

Label2.Caption = "第 10 次反弹:" & Str(HN) & "米!"

习题:有一数列: 习题:有一数列:

2 3 5 8 13 21 + + + + + .…… ,求前 20 项之和。 项之和。 1 2 3 5 8 13

Dim a, b, t, i As Integer Dim S As Double S = 0 a = 2: b = 1 For i = 1 To 20 S = ① t = a ② b = t Next i Print Str(S) 答案① 答案①:S + a / b 答案② 答案②:a = a + b

习题『 月卷』 习题『高考 2010 年 3 月卷』 用迭代法求 a 的算术根近似值 :

x = a 。计算正数 a 的算术根(近似值)的算法公式如下: 的算术根(近似值)的算法公式如下:

xi +1 =

a 1 ( xi + ) xi 2
-5

……。 ……, i=1 , 2 , 3 ……。计算开始时取 ,运用上述算法公式计算 ,然后由计算 ,……,直到相邻两值

-5 为止。 差的绝对值小于 10 为止。

Dim a, X1, X2 As Double a = Val(Text1.Text) X1 = a / 2 X2 = (X1 + a / X1) / 2 Do While ① X1 = X2 ② Loop Text2.Text = Str(X2) 答案① 答案①:Abs(X1 – X2) >= 10 ^ -5 习题: 习题:用对分查找算法求方程 2 x Private Sub Command1_Click() Dim xLeft, xRight, y, xMid As Double Dim Find As Boolean 22
4

答案② 答案②:X2 = (X1 + a / X1) / 2 (流程图附后) 流程图附后)

? 4 x 2 + x ? 5 = 0 在(-10,10)之间的根,请在划线正确填写语句。 10,10)之间的根,请在划线正确填写语句 正确填写语句。

有问题联系: 有问题联系:gangzi_fu@sina.com Find = False xLeft = -10: xRight = 10 xMid = ① y = 2 * xMid ^ 4 - 4 * xMid ^ 2 + xMid - 5 Do While Abs(y) >= 0.001 If y < -0.001 Then ② Else xRight = xMid End If xMid = (xLeft + xRight) / 2

86294028

y = 2 * xMid ^ 4 - 4 * xMid ^ 2 + xMid - 5 If Abs(y) < 0.001 Then MsgBox ("方程根为:" & xMid): Exit Do End If Loop End Sub

23

有问题联系: 有问题联系:gangzi_fu@sina.com

86294028

开始 xLeft ← -10,xRight ← 10 xMid ←(xLeft + xRight) / 2

y = 2 * xMid ^ 4 - 4 * xMid ^ 2 + xMid - 5 N

Abs(y) >= 0.001 Y Y y < -0.001

N 未找到!

xLeft ← xMid

xRight ← xMid

xMid ←(xLeft + xRight) / 2 y = 2 * xMid ^ 4 - 4 * xMid ^ 2 + xMid - 5 N Abs(y) < 0.001 Y

方 程 根 为 : xMid

结束
` 答案: xRight) 2; 答案:①(xLeft + xRight) / 2;②xLeft = xMid

3.排序算法及程序实现 (1)冒泡排序 冒泡排序的基本思想是在待排序的数据中, 从数据一端开始进行两两相邻数据大小比较, 发现不满足要求的排序大小顺序 要求,立刻进行数据交换,直至确定一个数字的位置为止;然而再从头开始两两相邻数据比较……这样需要经历N-1遍遍历。 所在比较次数为(N-1)*N/2次。

d(1) d (2) d (3) d (4)

27 36 32 18
j-1 j

27 36 18 32
j-1 j

27 18 36 32

j-1 j

18 27 36 32

第1次冒泡排序时 j 从 4 开 始到2

24

有问题联系: 有问题联系:gangzi_fu@sina.com

86294028

d (1) d (2) d (3) d (4)

18 27 36 32 18 27 32 36
j-1 j j-1 j

18 27 32 36 18 27 32 36
j-1 j

18 27 32 36
第2次冒泡排序时 j 从 4 开始到3

d (1) d (2) d (3) d (4)

第3次冒泡排序时 j 从 4 开始到4

开始到2 第1次冒泡排序时 j 从 4 开始到2 For j=4 to 2 step -1 if d(j)<d(j-1) then 交换d(j) 和d(j-1)的值

开始到3 第2次冒泡排序时 j 从 4 开始到3 For j=4 to 3 step -1 if d(j)<d(j-1) then 交换d(j) 和d(j-1)的值

开始到4 第3次冒泡排序时 j 从 4 开始到4 For j=4 to 4 step -1 if d(j)<d(j-1) then 交换d(j) 和d(j-1)的值

总结起来: 总结起来: For i = 1 To n - 1 For j = n To i + 1 Step -1 If d(j) < d(j - 1) Then k = d(j): d(j) = d(j - 1): d(j - 1) = k End If Next j Next i

25

有问题联系: 有问题联系:gangzi_fu@sina.com

86294028

开始
i=1

N
i≤n-1?

Y
j=n

输出已排序 N
j>i?

i=i+1

结束

Y
d(j)<d(j-1)?
N

Y
互换d(j)与d(j-1)的数据

j=j-1
冒泡排序要点归纳—— 冒泡排序要点归纳—— 对于n个元素的数据进行冒泡排序的规律: 1、需要n-1遍加工,每遍加工完成1个数的有序排列,即遍数 i从1变到n-1 2、第 i 遍加工过程中共需要 n-i 次的比较(交换次数根据具体数据而定) 3、第 i 遍加工过程中,j 的变化从 n 到 i+1 4、总的比较次数=(n-1)+(n-2)+…+2+1=n(n-1)/2次 5、能写出第i遍加工后的数据序列!!! !!(没有规律! ) (2)选择排序 选择排序的基本思想是在所有的记录中选出最小(大)的数据,把它与第一个数据交换 选出最小( 把它与第一个数据交换,然后在其余的记录中再选出最 选出最小 把它与第一个数据交换 小(大)的数据与第二个数据交换,依此类推,直至所有数据排序完成。算法演示: 选择—— 第 1 遍 选择——

d (1) d (2) d (3) d (4)

27 36 32 18 j=2

27 36 32

Min=1 j=3

27 36 32

18 36 32 27

Min=1 For j=2 to 4 If d(min)>d(j) Then min=j End If Next j
选择—— 第 2 遍 选择——

j=4 18 18 Min=j 如果最小的数所在的位置不是1,则交换d(min)和 如果最小的数所在的位置不是 ,则交换 和 d(1)的位置 : 的位置 If Min<>1 Then S=d(Min):d(Min)=d(1):d(1)=S End If

26

有问题联系: 有问题联系:gangzi_fu@sina.com

86294028

d (1) d (2) d (3) d (4)

18 36 32 27 Min=2 j=3

18 36 32 Min=j j=3

18 36 32 Min=j j=4

18 36 32

18 27 32 36

Min=2 For j=3 to 4 If d(min)>d(j) Then min=j End If Next j
选择—— 第 3 遍 选择——

Min=j 27 27 27 j=4 如果最小的数所在的位置不是2,则交换d(min)和 如果最小的数所在的位置不是 ,则交换 和 d(2)的位置 : 的位置 If Min<>2 Then S=d(Min):d(Min)=d(1):d(1)=S End If

d (1) d (2) d (3) d (4)

18 27 32 36

Min=3 For j=4 to 4 If d(min)>d(j) Then Min=3 min=j j=4 End If Next j

最小的数的位置正是3,不交换 最小的数的位置正是 ,不交换:

程序代码如下 Dim d( 1 to 4) As Integer For i =1 To 3 k= i For j = i +1 To4 小数的下标 If d(j)<d(k) Then k=j Next j If k<> i Then d(i),k=i时无须交换 x=d(k) : d(k)=d(i) : d(i)=x 不可随意 End If Next i 选择排序要点归纳—— 选择排序要点归纳—— 对于n个元素的数据进行选择排序的规律: 1、需要n-1遍选择,每遍选择完成1个数的有序排列,即遍数 i从1变到n-1 2、第 i 遍选择过程中共需要 n-i 次的比较(每遍选择最多交换1次) 3、第 i 遍选择过程中,j 的变化从 i+1 到 n 若d(j)<d(k),则k=j i 则无须交换 4、变量k记忆最小数下标,初值k= i,不断比较d(j)与d(k)大小, 5、每遍选择最后交换1次,交换d( i )与d( k ),如果k= ' 交换d(k)与d(i),注意交换次序 ' 找出了最小数,准备交换d(k)与 ' k总是记住较小数据的下标 ' 对遍数进行循环 ' k记忆最小数的下标,初值k=i ' 第i 遍内的循环,循环的结果得到最

6、选择排序总的比较次数=(n-1)+(n-2)+…+2+1=n(n-1)/2次,总的交换次数最多n-1次 思考:如何将从大到小的排序修改成为从小到大的排序方式? 思考:如何将从大到小的排序修改成为从小到大的排序方式? 习题『会考2008』 习题『会考2008』:五位评委给歌手打分的成绩依次为93,85,92,84,90, 2008 27

有问题联系: 有问题联系:gangzi_fu@sina.com 原始数 据 第一趟 第二趟 第三趟 第四趟 84 84 84 93

86294028 85 92 84 90

93

85

92

90

85 85

90 90

93 92

92 93

若采用冒泡排序算法对其进行从小到大排序,则第二趟的排序结果是 (A)84 90 85 93 92 (B)84 93 85 90 92 (C)84 85 93 90 92 (D)84 90 92 85 93 答案: 答案:C 习题『会考2008』 习题『会考2008』:有一组数,依次为3、2、8、5、9, 2008 原始数 据 第一趟 第二趟 第三趟 第四趟 9 9 8 8 5 5 2 3 3 2 9 2 8 5 3 3 2 8 5 9

若采用选择排序算法对其进行从大到小排序,则第二趟的排序结果是 (A)9 2 8 5 3 (B)9 5 8 2 3 (C)9 8 2 5 3 (D)9 2 8 3 5 答案: 答案:C 习题『会考2010』 习题『会考2010』某校5名学生会推荐成员网络人气得票数依次为1201,2120,1009,1987,2010, 2010

若采用选择排序算法对其进行从大到小排序,则第二趟的排序结果是 (A)2120 (C)1009 2010 1201 1009 2120 1987 1987 1201 2010 (B)2120 (D)1009 2010 1201 1009 2010 1201 2120 1987 1987 答案: 答案:A

习题『会考2010』 习题『会考2010』在NBA某赛季中,火箭队5场比赛得分依次为114,89,97,70,90, 2010

若采用冒泡排序算法对其进行从小到大排序,则第二趟的排序结果是 (A)70 (C)70 89 114 114 89 90 90 97 97 (B)70 (D)70 114 90 89 89 97 114 90 97 答案: 答案:A

习题『会考2010』 习题『会考2010』:某超市水果区共有5种水果品种,其价格依次为9.20、4.00、8.50、1.80、2.50, 2010

若采用冒泡排序算法对其进行从小到大排序,则第二趟的排序结果是 (A)1.80 (C)1.80 8.50 4.00 2.50 9.20 9.20 2.50 4.00 8.50 (B)1.80 (D)1.80 2.50 2.50 8.50 9.20 4.00 4.00 9.20 8.50 答案: 答案:B

习题『会考2010』:某食品连锁店5位顾客贵宾消费卡的积分依次为810、512、613、700、900, 习题『会考2010』: 2010』:

28

有问题联系: 有问题联系:gangzi_fu@sina.com

86294028

若采用选择排序算法对其进行从小到大排序,则第二趟的排序结果是 (A)512 (C)512 613 900 700 613 900 700 810 810 (B)512 (D)512 810 613 613 900 900 700 700 810 答案: 答案:D

习题: 习题:按学号从小到大整理一堆学生试卷的算法是:第一次,从上到下找出学号最小的试卷反扣在桌面上;第二次从剩余试 卷中从上到下找出学号最小的试卷反扣在第一次找出的试卷上;第三次,从剩余试卷中从上到下找出学号最小的试卷反扣在 第二次找出的试卷上;…,依此类推,最后完成整理工作。此算法属于 (A)排序算法 (B)对分查找 (C)递归算法 (D)解析算法 答案: 答案:A 习题:某次运动会上,八个运动员100米成绩如下: 习题:某次运动会上,八个运动员100米成绩如下: 100米成绩如下 号码 a(1)=860 a(2)=576 a(3)=301 a(4)=455 a(5)=102 a(6)=377 a(7)=023 a(8)=530 成绩 b(1)=12.9 b(2)=11.3 b(3)=13.5 b(4)=12.6 b(5)=12.0 b(6)=11.0 b(7)=12.5 b(8)=13.2

设计一个程序使之输出运动会排名前3名的编号和成绩: 设计一个程序使之输出运动会排名前3 名的编号和成绩: Dim a(1 To 8) As String Dim b(1 To 8) As Single Dim i, j, k As Integer Dim t As String, p As Single a(1) = 860: b(1) = 12.9: a(2) = 576: b(2) = 11.3: a(3) = 301: b(3) = 13.5 a(4) = 455: b(4) = 12.6: a(5) = 102: b(5) = 12: a(7) = 23: b(7) = 12.5: a(8) = 530: b(8) = 13.2 For i = 1 To 7 k = i For j = i + 1 To 8 If b(j) < b(k) Then k = j Next j If i <> k Then t = a(i): a(i) = a(k): a(k) = t p = b(i): b(i) = b(k): b(k) = p End If Next i For i = 1 To 3 List1.AddItem (Str(a(i)) + " " + Str(b(i))) Next i a(6) = 377: b(6) = 11

29

有问题联系: 有问题联系:gangzi_fu@sina.com 4.查找算法及程序实现 (1)顺序查找

86294028

顺序查找的基本思想是从第一个数据开始,按数据的顺序逐个将数据与给定的值进行比较,若某个数据和给定值相等, 则查找成功,找到所查数据的位置;反之,查找不成功。 1) 2) 将被查的数存放到数组中(比如数组 d) ,待查的数据存放在某变量中(比如变量 key) 从数组第 1 个元素开始,逐个与要查找的数比较,最终得出找到或找不到的结论。

顺序查找要点—— 从 n 个元素的数据中用顺序查找方法查找某个值的规律: 1、从数组的第 1 个元素开始,不断判断 d(i)是否等于 key 2、最少查找 1 次,最多查找 n 次 3、查找成功,则输出该元素的下标 i,查找不成功输出 0 习题『 2010』 :在某学校里,每位同学都会得到一张一卡通卡,一卡通的卡号是唯一的,卡内会记录每位同学的姓名、 习题『会考 2010』 : 住址、班级、金额等信息。每当同学刷卡时,卡号就被输入电脑,然后进行查找,如果找到就显示姓名,否则显示"查无此人 "。下列程序的功能是根据卡号查找对应的姓名,程序中数组 a 保存所有已发放一卡通的卡号,数组 b 保存卡号对应的姓名, 第 i 位同学的卡号保存在 a(i)中,姓名保存在 b(i)中。 程序界面如图VB-1所示,左边列表框列出所有同学的卡号和姓名,在右边文本框Text1中输入卡号,单击"开始查询"按钮 (Command1),程序就按卡号进行查找,如果找到就在标签Label3中输出卡号对应同学的姓名,否则就输出"查无此人"。 解决此问题的算法流程图如图VB-2所示,相应的程序如下,在程序(1)和(2)划线处,填入适当的语句或表达式,把程序 补充完整。 Private Sub Command1_Click() Dim x As String, i As Integer, s As String, f As Boolean x = ① 'f为找到标志变量,值为True表示找到,否则表示没找到 'n保存学生总人数 i = 0: f = False i = i + 1 If x = a(i) Then f = True End If Loop If f = True Then ② Else s = "查无此人!" End If Label3.Caption = s End Sub

Do While (i < n) And (f = False)

30

有问题联系: 有问题联系:gangzi_fu@sina.com

86294028

图VB-1 答案: 答案:①Text1.Text ②Label3.Caption=b(i) (2)对分查找

图VB-2

对分查找的基本思想是在有序的数列 有序的数列中,确定数列的升降序,首先将要查找的数据与有序数组内处于中间位置的数据 有序的数列 进行比较,如果两者相等,则查找成功;否则根据数组元素的有序性,就可确定该数据应该在数组的前半部分还是后半部 分继续进行查找;在新确定的范围内,继续按上述方法进行查找,直到找到要查找的数据,使查找成功,或直到子表不存 在,查找不成功。 对分查找的条件是被查找的数据必须是有序的。 1) 2) 将被查找的数存放到数组中(必须有序 必须有序!),待查数据存放在某变量中(比如变量 key) 必须有序 区间(i,j)的起始为(1,n),即初始值:i=1,j=n,(注意 i<=j) 区间(i,j)的中间数 m=Int((i+j)/2) 4) 直到找到,或者无法组成新的查找区间(即找不到)为止!

3) 每次将查找内容与有序数组内中间的那个数进行比较。

对分查找过程归纳(以有 n 个元素的递增数组为例) : 1、i 的初值= 1 ; j 的初值= n 2、中间数的下标 m 与 i,j 的关系是:m= Int((i+j)/2) 3、区间的二个端点 i,j 必须满足的条件是 i<=j 4、若 key>a(m),说明应在下半区继续查找,修改 i 还是 j? =i=m+1 5、若 key<a(m),说明应在上半区继续查找,修改 i 还是 j? =j=m-1 对分查找算法程序[升序数组] 对分查找算法程序[升序数组]: i=1 : xb=0 Do While If i<=j '计算出中间位置 '查找成功立即终止循环 '查找成功时变量 xb 记忆住数组下标 '准备在上半区继续查找 '准备在下半区继续查找 i=m+1 31 d(m)=key Then xb=m End If If key<d(m) Then j=m-1 Else :Exit Do m=Int((i+j)/2) j=10 '查找区间初始化 '记忆查找成功时的下标

有问题联系: 有问题联系:gangzi_fu@sina.com End If Loop If xb<>0 Then print xb

86294028

'查找成功,输出下标 xb

习题: 习题:CCTV2《幸运 52》栏目中有一档竞猜商品价格的互动节目,假定所有商品的价格都在 50 元到 2000 元之间,而且商品 价格均为整数。某同学为了能在最短时间里猜中商品价格,用对分查找的思路编制了下面 VB 程序,其中,商品的实际价格通 过文本框 Text1 读入到变量 jg 中, 变量 low 和 high 动态地构成价格竞猜区间。 请在程序空白行填写合适的 VB 语句或表达式! jg=Val(Text1.Text) low=50 m= : high=2000 ① Msgbox "恭喜你,猜对了!" Exit Do End If If jg>m Then Msgbox "低了" low=m+1 Else Msgbox "高了" __②___ __②___ End If Loop 习题『会考2010』 习题『会考2010』 2010 :超市进货时会将每个商品的条形码和价格输入计算机,并对所有商品按照条形码排序(从小到大),顾 : 客付款时只要把条形码输入电脑,电脑即可根据条形码找到该商品并显示对应的价格。下列程序的功能是根据条形码查找对 应商品的价格,所有商品的条形码和价格分别保存在数组a和b中(并且已经按照条形码从小到大排序),第i个商品的条形码 保存在a(i)中,对应的价格保存在b(i)中,变量f是标志变量,如果值为True则说明找到了商品,若为False则说明没有找到。 程序界面如图VB-1所示,在文本框Text1中输入商品的条形码,单击"开始查找"按钮(Command1)后,对应商品的价格在 标签Label4中显示出来,如果未找到则显示"找不到该商品,请重新输入条形码"。 解决此问题的算法流程图如图VB-2所示,相应的程序如下,在程序(1)和(2)划线处填入适当的语句或表达式,将程序补 充完整。 Private Sub Command1_Click() Dim x As String, i As Integer, j As Integer, m As Integer Dim f As Boolean x = Text1.Text i = 1: j = n: f = False 的商品数 Do While (i <= j) And Not (f) 'n保存总 Do While low<=high if m=jg Then 答案① 答案①: 或 Int((high+low)/2) 或 Fix((high+low)/2) 或(high+low)\2 (high+low)\ 答案②: 答案② high=mhigh=m-1

32

有问题联系: 有问题联系:gangzi_fu@sina.com m = Fix((i + j) / 2) If ① Then f = True ElseIf x < a(m) Then __② __②__ Else i = m + 1 End If Loop If f Then Label4.Caption = b(m) Else

86294028

Label4.Caption = "找不到该商品,请重新输入条形码" End If End Sub

图VB-2 答案: 答案:①x=a(m) ②j=m-1 j=m习题: 习题:猜年龄:某校的信息技术贾老师,大家不知道他的真实年龄,只知道他的年龄在 20 和 60 之间,现在让你去猜。 下面是某位同学设计的猜年龄的 VB 程序, 其设计思想为:如果你猜的数 a 比年龄 x 小,电脑提示“太小了”, 如果你猜的 数 a 比年龄 x 大,电脑提示“太大了”。假如你猜对了,电脑提示“恭喜你,猜对了!”。如果猜得不对,那么需要重新猜, 直到猜中为止。为了实现这一目标,完善下面的 VB 程序,在划线处填入合适的语句或表达式,完成程序设计。 Dim x As Integer, a As Integer, m As Integer Dim p As Integer, q As Integer, i As Integer x = 45 p = 20: q = 60 a = Val(Text1.Text) For i = p To q m = Int((p + q) / 2) 33

有问题联系: 有问题联系:gangzi_fu@sina.com If a < x Then

86294028

Text2.Text = "太小了" p = m + 1 End If If a > x Then Text2.Text = "太大了" ① End If If Next i 答案: q=m答案:①q=m-1;②a=m 或 m=a ② Then Text2.Text = "恭喜你,猜对了!"

34


相关文章:
2014年1月福建省信息技术会考《算法与程序设计》真题
2014年1月福建省信息技术会考《算法与程序设计》真题_其它课程_高中教育_教育...下列合法的变量名是 date V+B 2aB WWW 在VB中,表达式 6 * 8 \ 9的值...
《算法与程序设计》会考复习题带答案解析
《算法与程序设计》会考复习题带答案解析_其它课程_...{ int m=350; double v=2.8; double p=m/v;...2010年6月信息技术会考-... 24页 4下载券喜欢...
5福建省2013年1月信息技术会考算法与程序设计上机试题5
5福建省2013年1月信息技术会考算法与程序设计上机试题5_其它课程_高中教育_教育专区。5福建省2013年1月信息技术会考算法与程序设计上机试题5第...
2011.01信息技术会考算法与程序设计操作题 答案_图文
2011.01信息技术会考算法与程序设计操作题 答案_电脑基础知识_IT/计算机_专业...文本框中输入速度v 入距离s千米、Text2文本框中输入速度v千米/小时,计算货车行驶...
2011年浙江省信息技术会考 算法与程序设计4
2011年浙江省信息技术会考 算法与程序设计4_其它考试_资格考试/认证_教育专区。...v=s·h/3 ⑤输出体积 v 上述算法属于 (A)枚举算法 (B)解析算法 (C)排序...
《算法与程序设计》会考复习题(答案)
编写程序 1.中学物理中有这样一类运动学问题:一列火车在某一时刻的速度为 v0...《算法与程序设计》会考... 13页 免费 2010级信息技术会考复习... 35页 免费...
2008年浙江省信息技术会考试题 算法与程序设计题
2 N 输出 x,y x 值增加 1 结束 计算 y 值 图 VB-1 2008 年 6 月高中信息技术会考 算法与程序设计题(第二套) 算法与程序设计题(第二套) 四,程序...
《算法与程序设计》复习提纲
《算法与程序设计》复习提纲_其它课程_高中教育_教育...(D)v0*t+1/2*a*t^2 习题『会考2010』:把...(m) ②j=m-1 习题:猜年龄:某校的信息技术贾...
2011年6月信息技术会考-算法与程序设计(含答案)
2011年6月信息技术会考-算法与程序设计(含答案)_...高中学业水平考试总复习《技术》模拟试卷(一) 第一...设计师在锁上设计 了一个 V 形的开口,钥匙沿着...
信息技术基础会考卷二——《算法与程序设计》
信息技术基础会考卷二——《算法与程序设计》 2006-03-13 09:48, 刘其政, 4462 字, 2/115, 原创 | 引用 一、选择题(每题两分,共14分每题 2 分) 1、...
更多相关标签: