VB第4讲 算法基础及基本语句

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

演示a-b(chang)
9 of 59
b=Temp
例:求一元一次方程3x+5=0的解。
[错误程序] Private Sub Form_Click() Dim x As Integer 3*x+5=0 [正确程序] Private Sub Form_Click() Dim x As Integer x=(0-5)/3 ------------
p abc 2
Private Sub cmdCalculate_Click() Dim a As Single,b As Single,c As Single,p As Single,s As Single a=Val(Text1.Text) a>0 And b>0 And c>0 b=Val(Text2.Text) c=Val(Text3.Text) If (1) Then If a+b>c And b+c>a And c+a>b Then p=(a+b+c)/2 s=Sqr(p*(p-a)*(p-b)*(p-c)) Text4.Text=Cstr(s) Else Text4.Text=“不能构成三角形” End If Else Text4.Text=“边长不能小于0” End If End Sub
[功能]:弹出对话框,用户输入数据后回车或单击“确定”按钮后,将输入 内容赋值给相应的变量;按[ESC]键或单击“取消”按钮,返回空串。
[说明]: (1)prompt:必选项。作为对话框消息出现的字符串表达式。prompt 的 最大长度大约是 1024 个字符,由所用字符的宽度决定。如果 prompt 包含多 个行,则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符 的组合 (Chr(13) & Chr(10)) 来分隔。 例:i = InputBox(“输入数组元素” + Chr(10) + “第一个元素为:”)
I=1
读X 是
S3:从集合中读取X;
S4:若X=S,输出找到信息, 结束,否则转S5; S5:I=I+1,记数; S6:若I<=N,返回S3,否则
X=S?
否 I=I+1 是 I<=N? 否 输出M 结束 输出S
转S7; S7:输出找不到信息,结束。
4 of 59
4. 三种基本结构:
顺序 分支 循环
第四章 算法基础及基本语句
主要内容和要求:
•了解算法的概念和特征
•掌握运用流程图进行算法描述
•掌握三种基本结构
•掌握输入框InputBox和消息框 MsgBox的使用 •掌握分之和循环语句的各种结构 和使用方法
1 of 59
一、算法及其描述
1. 算法的概念
算法是解决问题或处理事件的方法和步骤。通常分为数 值计算和非数值计算两大类。如何将复杂问题分解成简 单问题是“计算方法”的重要内容。
Print “x=”;x
End Sub
Print “x=”;x
End Sub
语句是该例题的算法。
总结:利用程序设计语言处理问题,我们首先要知道的是怎么 解决问题,其次要知道怎么将解决问题的方法用程序设计语言 来表达。
10 of 59
三、 与用户交互的函数
1 InputBox函数
[格式]:InputBox[$](<Prompt>[,<Title>][,<Default>][,<x,y>])
3. 说明:
赋值号左端不仅可以是变量名,还可以是对象的属性; 表达式的类型和变量的类型要一致
10 30 10 0
赋值语句是按语句出现的先后顺序执行的 例:单击窗体,下列两段程序执行结果分别是()和()。
Private Sub Form_Click() Dim a As Integer,b As Integer a=10 b=3*a Print a,b End Sub Private Sub Form_Click() Dim a As Integer,b As Integer b=3*a a=10 Print a,b End Sub
例:a%=10
Label1.Caption=“学习VB”
2. 下列 不同数据类型可以相互赋值 字符型=数值型 结果:字符型
逻辑型=数值型
整型=逻辑型 字符型=逻辑型
结果:True/False
结果:-1/0 结果: “True”/”False”
6 of 59
一般要求类型匹配,否则有可能出现“类型不匹配”错误
5. 三种基本结构的共同特点:
(1)只有单一的入口和出口; (2)结构中的每个部分都有被执行的可能;
(3)结构内不能出现永不停止的死循环。
(Ctrl+Break可以退出死循环)
5 of 59
二、赋值语句
1 . 格式:var=〈表达式〉 说明:var是变量或属性;“=”两边内容不能交换( )。
功能:计算表达式的值,将该值赋予左端的变量,使变量或 属性获得新值。
提示字符串
11 of 59
(2)title:可选。显示对话框标题栏中的字符串表达式。如果省略 title, 则把应用程序名放入标题栏中。 i = InputBox("输入数组元素" + Chr(10) + "第一个元素为:", "数组") (3)default:可选。显示文本框中的表达式,在没有其它输入时作为缺省 值。如果省略 default,则文本框为空。 (4)x,y:可选。数值表达式,成对出现,指定对话框的左边与屏幕左边的 水平距离和对话框的上边与屏幕上边的距离 。如果省略 ,则对话框会居中。 [注意]:如果输入的内容为字符型数据,赋值号左端的变量为数值型或日期 型等非字符型变量,可能系统出现提示:
2. 算法的特征
(1)确定性:每个步骤没有歧异性;
(2)可行性:可以实现和有效执行,并有确定结果; (3)有穷性:算法的步骤是有限的,可以使用计算机 在较短的时间内执行完毕; (4)输入/输出性:一个算法可以从外部获取数据 (0~N个);一个算法必须有至少1个结果输出。
2 of 59
流 程 图
开始
(4)Helpfile:可选。字符串表达式,识别帮助文件,用该文 件为对话框提供上下文相关的帮助。如果已提供 helpfile,则也 必须提供 context。 (5)context:可选。数值表达式,由帮助文件的作者指定给 某个帮助主题的帮助上下文编号。如果已提供 context,则也必 须要提供 helpfile。 (6) MsgBox有两种用法。函数和语句格式。
<删除操作>
Else <其他操作>
End If
p.63表4-3 返回值
15 of 59
1) If-Then-Else-End If语句 [格式]:If <条件> Then <语句块1> [Else <语句块2>]
四、分支结构
End If
[功能]:如果条件成立,则执行语句块1,否则执行语句块2。无论执行 哪个语句块,都将执行End If的后继语句。Else和语句块2可以省略. [逻辑框图]: 条件?
17 of 59
补充说明:文ห้องสมุดไป่ตู้框的Text属 性是字符串类型,但VB通 常可以自动在字符型和数值 型之间转换,所以若该属性 为数字串,可以直接在算术 表达式中出现。
18 of 59
例:计算分段函数y的值。
5x e x 2 x 0 y 2 x 7 6 x 0
Private Sub cmdCalculate_Click() Dim x As Single x=Val(Text1.Text) If x >= 0 Then Text2.Text = 2*Sqr(x+7)-6 Else Text2.Text = 5*x+Exp(x)-2 End If End Sub
14 of 59
方法一、发布提示信息,无须用户响应,在程序中作为独立语 句存在,可加括号; 例: MsgBox “非法数据!”,, “警告”
如果省略其中参数,逗号不能省略
方法二、需要用户响应,和普通函数调用方法相同。
例: Response=MsgBox(“真的删除该项吗?”,4+48,“提示信息”) If Response=vbYes Then
Private Sub cmdClear_Click() Text1.Text = "" Text2.Text = "" Text1.SetFocus End Sub
Private Sub cmdCalculate_Click() If Text1.Text >= 0 Then Text2.Text = Sqr(Text1.Text) Else Text2.Text = "数据小于0,错误!" End If End Sub
12 of 59
例:从键盘输入数组的5个元 素,并求和。(界面如下)
图片框
演示
Option Explicit Private Sub Command1_Click() Dim i As Integer, s As Integer, t As Integer For i = 1 To 5 t = InputBox("第" + CStr(i) + "个元素: ", , , 5000, 5000) Picture1.Print “第” & i & "个元素:"; t s=s+t If i = 5 Then Picture1.Print "总和是:"; s Next i 阅读p.61程序段 End Sub
s = b: Print s
n = "123": Print n n = "sads": Print n
End Sub
8 of 59
例:交换两个变量的值。
Private Sub Form_Click() Dim a As Integer,b As Integer [题目说明] 单击窗体程序执行结果为:
13 of 59
2 MsgBox函数 [格式]:MsgBox[(Prompt[,Button][,Title][,HelpFile,Context])] [功能]:向用户发布提示信息,并要求用户作出必要的响应。 [说明]:
(1)Prompt:必选项。字符串表达式,对话框中的提示信息。
(2)Button:指定显示按钮的形式及图标样式,表4-2 (3)Title:对话框的标题栏显示信息。
19 of 59
2)单行If-Then-Else语句 [格式]:If <条件> Then <语句1> [Else <语句2>] [说明]: (1)在语句块1和语句块2都只有一个语句时,可使 用该格式; (2)End If语句省略。
例:上例可改写为以下程序段。
Private Sub cmdCalculate_Click() Dim y As Single,x As Single x=Val(Text1.Text) If x >= 0 Then y = 2*Sqr(x+7)-6 Else y = 5*x+Exp(x)-2 Text2.Text=y End Sub
7 of 59
顺序结构
p.60 图4-4
Option Explicit Private Sub Form_Click()
Dim b As Boolean, n As Integer
Dim s As String b = 1: Print b
b = 0: Print b
b = 3: Print b n = b: Print n
3. 算法的描述
输入M、N
求最大公约数:
求R=M Mod N
S1:输入M、N;
S2:求M/N的余数R;
M=N
S3:用N代换M,M=N; S4:用R代换N,N=R; S5:若R≠0,则返回到S2;
N=R 是
R≠0 否 输出M 结束
S6:输出M。
3 of 59
流 程 图
开始
输入S、N
查找S:
S1:输入S、N; S2:I=1,记数;
成 立 不成立
语句块1
语句块2
End If的后继语句
16 of 59
[说明]:
If和End If语句成对出现,缺一不可; Else和语句块2部分可以省略,当条件 不成立时,直接执行End If的后继语句;
例:从键盘输入一个数,求它的平方根。
Private Sub cmdExit_Click() End End Sub
20 of 59
开始 例4-1 p.64
3)嵌套的If结构 在If或Else的语句 块中包含If结构, 叫做嵌套的If结构。 例:已知三角形的 三边,求三角形的 面积
边长>0?


否 是否能组成三角形

出错信息
计算
输出 结束
21 of 59
计算公式:
其中:
S p( p a)( p b)( p c)
a=10 : b=2
Print “a=”;a, “b=”;b [填入程序代码]
a=10
a=2
b=2
b=10
Print “a=”;a, “b=”;b
End Sub [正确答案]
注意:变量a和b为两个不定 值的变量,因此不能用 a=2 b=10 语句来解决这个问题
Dim Temp As Integer
Temp=a a=b
相关文档
最新文档