1、第三章 简单的程序设计,主讲:佟彪辽宁省交通高等专科学校 测绘系,简单的程序设计,3.1 顺序结构 3.2 输入和输出 3.3 选择结构 3.4 选择控件 3.5 程序调试和帮助 3.6 应用举例,关于输入和输出,Dim a#, b#, c#, p#, s#a = Text1.Text b = Text2.Text c = Text3.Textp = (a + b + c) / 2 s = Sqr(p - a) * (p - b) * (p - c) * p)Text4.Text = s,变量声明数据输入:变量在左计算:根据公式进行结果输出:变量在右,VB的输入和输出方法,输入:数据进入内存变
2、量文本框InputBox读数据文件 输出:数据从内存变量传出(存储或显示)文本框Print方法MsgBox写数据文件,顺序结构,结构化的程序设计包含三种基本结构:顺序结构、选择结构、循环结构 顺序结构:按照语句的顺序执行的结构 VB语言的书写规则 赋值语句 End语句,VB语言的书写规则,VB代码中不区分大小写 语句书写自由:一行多条;一条多行 注释语句:单行(或rem),多行(块) 行号与标号,赋值语句,格式:Let 变量名 = 表达式 双重功能:赋值和计算 引用不会改变变量的值,赋值才改变 变量可以与自身运算 给变量赋值和设定属性是VB编程的常见任务 几点说明:自动判断等号和赋值号;赋值号
3、左边只能是变量;不能在一条赋值语句中同时给多个变量赋值,End语句,格式:EndEnd If、End Select、End Sub、End Function强迫中止程序,不调Unload等事件,输入和输出,InputBox()函数 MsgBox()函数 MsgBox过程 Print方法 Cls方法,MsgBox,MsgBox举例 MsgBox函数的格式:MsgBox(提示, 按钮,标题,帮助文件,帮助上下文) MsgBox过程的格式:MsgBox 提示, 按钮,标题,帮助文件,帮助上下文 Button参数的取值 MsgBox函数的返回值,MsgBox举例,MsgBox “直接显示提示信息,用户
4、只能选择确定按钮!” MsgBox “显示三个按钮,让用户进行选择!”, 3,”信息提示”,参数Button的取值说明,MsgBox函数的返回值,InputBox,InputBox举例 InputBox格式:InputBox(提示, 标题, 默认, x坐标,y坐标, 帮助文件, 帮助上下文) 例如:m = InputBox(“输入分数(0100之间):”, “数据输入”, “80”),Print方法,格式: 对象表达式.Print Spc(n)|Tab(n)表达式列表,|; 例如: Form1.Print Tab(6);“测量平差程序设计(第一版)” 用Tab(6)控制开始打印位置;“;”表示
5、继续打印 Form1.Print 打印空行或换行 Print Tab(8);“辽宁省交通高等专科学校”;Spc(2);”测绘系” 使用Spc(2)打印2个空格,Print方法(续),CurrentX确定打印指针的横坐标 CurrentY确定打印指针的纵坐标 打印坐标系原点在打印对象的左上角,Cls方法,功能:清除Print方法绘制的内容;打印指针回到原点 格式:对象.ClsClsPicture1.ClsForm1.Cls,作业(习题三),3. 如何将多条语句写在同一行?如何将一条语句写在多行?语句注释可以有哪些方法? 4. 如何指定InputBox输入框中的默认值? 5. MsgBox函数和语
6、句有哪些区别? 6. 当窗体的AutoRedraw属性设置为False时,用其他窗体遮挡后窗体上本来用Print方法打印显示的内容也会被清除,这样的清除与用Cls方法的清除有何不同?,补充:VB的关键字,VB关键字总结,选择结构,If语句Select Case语句条件函数,学号抽点程序的完善,原来的代码Dim a%, b%, c%Randomizea = Int(Rnd() * 10)Text1.Text = ab = Int(Rnd() * 10)Text2.Text = bc = Int(Rnd() * 10)Text3.Text = c,加上重复判断的代码Dim a%, b%, c%Ra
7、ndomizea = Int(Rnd() * 10)Text1.Text = ab = Int(Rnd() * 10)If b=a Then b= Int(Rnd() * 10)Text2.Text = bc = Int(Rnd() * 10)If c=a or c=b Then c = Int(Rnd() * 10)Text3.Text = c,学号抽点程序的完善(续),a = Int(Rnd() * 10)Text1.Text = ab = Int(Rnd() * 10)If b=a Then b= Int(Rnd() * 10)If b=a Then b= Int(Rnd() * 10)
8、End IfText2.Text = bc = Int(Rnd() * 10)If c=a or c=b then c = Int(Rnd() * 10)If c=a or c=b Then c = Int(Rnd() * 10)End IfText3.Text = c,加上两次判断的程序,If语句,单行格式的If语句If 条件 Then 语句1 Else 语句2 例如:If b=a then b= Int(Rnd() * 10)If c=a or c=b then c = Int(Rnd() * 10)If a b Then Max = a Else Max = b,If语句(续一),多行格
9、式的If语句(单分支)If b=a Then b= Int(Rnd() * 10)End IfIf c=a or c=b Then c = Int(Rnd() * 10)End If,If语句(续二),多行格式的If语句(双分支)If a b Then Max = a Else Max = b可以改写成如下If ab ThenMax = aElseMax = bEnd If,If语句(续三),多行格式的If语句(多分支) If 条件1 Then语句体1 ElseIf 条件2 Then语句体2 Else语句体n End If,If语句(续四),多行格式的If语句(If语句的嵌套) If Then
10、If ThenEnd If End If,If语句举例,例3.4:将三个数(互不相等)a、b、c从大到小的排列 (两种方法) 例3.5:已知字符型变量strCh中存放了一个字符,判断该字符是字母、数字还是空格、回车或者其他字符。 例3.6:已知高斯平面上的点(y, x),判断该点落在了哪个象限点,例3.4:三个数比较大小(方法一),a与b的大小关系:ab和ab时,比较c与a: 若ca,则 c、a、b;若cb,则 a、c、b;若ca,还需要比较c与b:若cb,则 c、b、a;若cb,则 b、c、a;若ca,则 b、a、c。,If ab ThenIf ca Then Print c b aElse
11、If cb ThenPrint a c bElseIf ca ThenIf cb Then Print c b aElseIf cb ThenPrint b c aEnd IfElseIf ca ThenPrint b a cEnd If End If,例3.4:三个数比较大小(方法二),三个数的大小关系可能有下列6种情况: abc、acb;bac、bca;cab、cba。因此,只要将这六种情况作为条件进行判断即可。,If a b And b c ThenPrint a b cElseIf a c And c b ThenPrint a c bElseIf b a And a c ThenPr
12、int b a cElseIf b c And c a ThenPrint b c aElseIf c a And a b ThenPrint c a bElseIf c b And b a ThenPrint c b aEnd If,例3.5:判断字符种类,字符种类: 字母:az或者AZ 数字:09 空格:“ ” 回车:Asc()=13 其他,If Lcase(strCh) = “a” And Lcase(strCh) _= “0” And strCh = “9” ThenPrint strCh + “是数字” ElseIf strCh = “ “ ThenPrint strCh + “是空
13、格” ElseIf Asc(strCh) = 13 ThenPrint strCh + “是回车符” ElsePrint strCh + “其他字符” End If,例3.6:判断点所在的象限,高斯平面上的点(y, x) 所在象限:y0, x0 Iy0 IIy0, x0 IV,Select Case语句,Select Case结构则只能对一个条件进行判断, 但该条件可以出现多种取值。 Select Case语句的一般格式为: Select Case 表达式Case 表达式结果列表1语句体1Case 表达式结果列表2语句体2 Case Else语句体n End Select,Select Cas
14、e语句(续),Select Case语句格式中的表达式结果列表可以有如下四种格式,即允许四种Case形式: (1)表达式结果。例如:Case 1或者Case “char”等。 (2)表达式结果1,表达式结果2,表达式结果n。例如:Case 1,3,5,7或者Case “a”, “b”, “c”, “d” 等。 (3)表达式结果1 To 表达式结果2。例如:Case 1 To 4或者Case “a” To “z”等。 (4)Is 关系运算符、数值或字符串。例如:Case Is “Apple“ 等。,例3.7:将百分制的成绩改转换成优良等级,转换的标准: =90 优 8089 良 7079 中 6
15、069 及格 60 不及格,Select Case xCase Is=90Level = “优”Case Is=80Level = “良”Case Is=70Level = “中”Case Is=60Level = “及格”Case ElseLevel = “不及格”End Select,思 考,如何用If语句实现上述成绩的转换?,用Select Case语句改写例3.5,Select Case strChCase “a” To “z” , “A” To “Z”Print strCh + “是字母字符”Case “0” To “9”Print strCh + “是数字字符”Case “ ”Pr
16、int strCh + “是空格”Case vbLfPrint strCh + “是回车符”Case ElsePrint strCh + “是其他字符” End Select,用Select Case语句改写例3.6,Select Case y, xCase x 0 And y 0Print “点在第一象限”Case x 0Print “点在第二象限”Case x 0 And y 0Print “点在第四象限” End Select,不恰当,思 考,如何用Select Case语句来正确地改写上面的例子 ?,条件函数,IIf函数的形式是: IIf(表达式,条件为True时的值,条件为False
17、时的值) 例如,求a和b中的较小数,放入变量Min中,语句如下:Min = IIf(ab, a, b) Choose()函数的形式是: Choose(整数表达式,选项列表),选择控件,框架 单选钮 复选框 列表框 组合框,框架、复选框和单选钮,框架:Caption属性 复选框:Caption、Value、Click 单选钮:Caption、Value、Alignment、Click 例子:自我介绍程序及其完善,列表框和组合框,列表框:ListCount、Selected、Sorted、Style;Click、AddItem、RemoveItem 例3.13:列表框示例程序 组合框:Style、
18、Text;Change、Click、AddItem、RemoveItem 例3.14:组合框示例程序,程序调试和帮助,错误类型调试和排错使用帮助,上次课的思考题,1.例3.7若将优良顺序颠倒,应该怎样写代码? 2.如何用If语句实现例3.7? 3.如何用If语句实现例3.6?,错误类型,编辑时错误 编译时错误 运行时错误 逻辑错误,常见错误总结,VB集成环境中没有显示“工具箱”等窗口选择“视图工具箱”等相关命令可以显示对应窗口;也可以选择标准工具栏上的对应图标。 标点符号错误:编写代码时要求用英文输入状态下的标点符号 字母和数字形状相似的错误:小写字母l与1,大写字母O与0 对象Name(名称
19、)属性写错:执行时显示“要求对象” Name属性和Caption属性混淆:Caption是显示的内容,Name是控件标识 对象的属性名、事件名、方法名写错:“方法或数据成员未找到” 变量名写错:在属性对话框里设置“要求变量声明” 书写位置错误,不恰当的空格或没有空格 打开工程后找不到对应的文件:工程的组成和保存、另存方法 运行程序时没有启动窗体:工程属性里设置,调试和排错,VB三种运行模式 设置断点和逐语句调试 调试窗口:立即窗口:本地窗口:监视窗口:,使用帮助,使用MSDN Library查阅器 使用上下文相关的帮助 从Internet上获得帮助 运行所提供的样例,应用举例,解一元二次方程的
20、完善 两点距离和方位角的计算 水平角的计算 竖直角的计算 地形测量实习成绩评定,解一元二次方程程序的完善,(1)对输入数据的类型和合法性进行检查: 是否全为数字; (2)使用已经声明的变量,并进行必要的类型转换; (3)对二次项系数是否为0进行检查:若为0,则使用解一次方程的方法求解; (4)对方程有无实根进行检查:判断有无实根,若无实根,则提示用户。,两点距离和方位角的计算,两点间距离的公式:两点间坐标方位角的公式:方位角的象限修正: detX0, detY0:本身 detX0, detY0:90 detX=0, detY0:270 detX0:180+,地形测量实习成绩评定,地形测量实习成绩组成: (1)实习表现:数据成果 (15)、地形图成果 (15)、实习报告 (10)、实习表现 (15) (2)仪器操作 :水准仪操作考核 (25)、经纬仪操作考核 (25) 成绩以百分制给出,再折算成优良等级。,水平角的计算,竖直角的计算,第三章 小结,顺序结构 输入和输出选择结构 选择控件 程序调试和帮助应用举例,