Download presentation
Presentation is loading. Please wait.
1
算法与Visual Basic程序复习
2
知识概览 算法: 定义、特点、表示方法,三种基本结构 程序解决问题的两种算法: 解析法与枚举法 读程序流程图 VB变量:
变量名命名规则、数据类型、定义方式 数组变量的定义 VB常量: 特点、定义方式 VB函数、表达式的值 条件表达式的描述 VB中对象、属性、方法、类、事件、过程等概念 三种基本结构VB语句的实现
3
算法概念 概念:解决问题的具体方法与步骤。 计算机解决问题的三大步骤
(1)分析问题确定要用计算机来“做什么”,即确定解题的任务。 (2)寻求解决问题的具体途径和方法。 (3)用计算机进行处理。
4
算法特征 (1)有穷性。一个算法必须保证它的执行步骤是有限的,即它是能终止的。 (2)确定性。既算法中的每个步骤必须有确切的含义。
(1)有穷性。一个算法必须保证它的执行步骤是有限的,即它是能终止的。 (2)确定性。既算法中的每个步骤必须有确切的含义。 (3)可执行性。算法中的每个步骤都要实践能做的,而且能在有限的时间内完成。 (4)有0个或多个输入。 (5)有一个或多个输出。
5
例题 下列关于算法特征的描述,哪一条是错误的( ) A.有穷性 B.确定性 C.有0个或多个输入D.有0个或多个输出 D
6
算法的表示方法 流程图 程序代码 自然语言
7
流程图符号 图形符号 名 称 含 义 开始、结束框 表示算法的开始或结束 输入、输出框 表示输入输出操作 处理框 表示处理或运算的功能
名 称 含 义 开始、结束框 表示算法的开始或结束 输入、输出框 表示输入输出操作 处理框 表示处理或运算的功能 判断框 用来根据给定的条件是否满足决定执行两条路径中的某一路径 流线 表示程序执行的路径,箭头代表方向 连接框 用于连接因页面写不下而断开的流程线
8
算法的三种基本结构 顺序结构 选择结构 循环结构
9
流程图描述算法 条件成立? 循环体 Y N 条件成立? 序列1 序列2 Y N 选择结构 循环结构
10
例题 有流程图结构如下,其算法结构属于 (A)顺序结构 (B)选择结构 (C)分支结构 (D)循环结构 D
11
程序解决问题已学的两种算法 解析法 枚举法
12
解析法(analysis algorithm)
用解析的方法找出表示问题的前提条件与结果之间关系的数学表达式,并通过表达式的计算来实现问题求解 。 如:根据半径r求出面积s和周长c
13
枚举法(穷举法) 按照问题要求确定问题解的大致范围,然后在此范围内对这些解进行一一列举,再对当前列举出的解进行是否满足问题要求的判断,最后把符合要求的解输出直到所有可能的解全部列举完毕。 如:求出1-100之内的所有素数。 确定范围 情况枚举 条件判断 得到真解
14
VB变量 变量命名规则 必须以字母或下划线开头,中间只能由字母、数字和下划线“_”组成; 变量名的长度不得超过255个字符;
变量名在VB中是不区分大小写的(如ABC、aBc、abc等都是一样的)
15
数据类型 数据类型名 说明 性质 Integer 整数型 -32768~32767 Long 长整型
~ Single 单精度 绝对值在 E-45~ E38内的实数,占4B Double 双精度 绝对值在10E-324~1.79E308内的实数,占8B String 字符串型 一段文字与符号 Boolean 逻辑型 判断的结果,只有两个值:True和False Date 日期型 日期和时间
16
变量的定义 Dim 变量名 as 数据类型 如: Dim h as integer Dim a as single,j as single
17
数组 定义:相同数据类型的元素按一定顺序排列的集合。
就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。
18
数组的定义方式 第一种形式: dim a(3) as integer '定义一个数组(有四个数),下标从0到3。 a(0)=2 :a(1)=3:a(2)=4:a(3)=5 第二种形式: dim b(1 to 5) as string ‘ 下标从1到5
19
常量 1、常量:在程序执行过程中其值不变。 常量的定义 Const x=10 2、变量:在程序的执行过程中其值可以改变。 如,x,y等
20
算术运算符 运算符 功能 优先级 例子 值 ^ 乘方 1 3^2 9 - 负号 2 -2^2 -4 *、/ 乘、除 3 3*4/2 6 \
整除 4 4\3 MOD 求余数 5 5 mod 3 +、- 加、减 2+3-2
21
字符串连接符 符号 例子 值 & “34” & ”56” “3456” 34 & “56” + “34” + “56” 34 +”56”
出错
22
常用函数 函数名 函数的功能 示例 求x的算术平方根 Sqr(4)的返回值为2 Int(x) 取整,取不大于x的最大整数
Sqr(x) 求x的算术平方根 Sqr(4)的返回值为2 Int(x) 取整,取不大于x的最大整数 int(5.6)的返回值为5 int(-5.6)的返回值为-6 Abs(x) 取绝对值 Abs(-5.5)的返回值为5.5 Exp(x) 求e的X次方 Log(X) 求以e为底的X的对数 Exp(Log(4))的返回值是4 Log(Exp(6))的返回值是6 Rnd( ) 产生一个[0,1)的实数
23
随机整数 随机产生一个数c,区间在[n,m] C=int(rnd*(m+1-n))+n 为了实现随机,在用rnd之前需初始化随机数生成器:
Randomize
24
常用类型转换函数和字符串函数 函数名 函数的功能 范例 Asc(X) 取字符的ASCII码 Asc(“A”)的返回值是65 Chr (X)
Chr (66)的返回值是”B” Val(X) 数字字串转换为数值 Val(“123”)的返回值是123 Str(X) 数值转换成字符串 Str(255)的返回值是“255” Len(X) 计算字符串的长度 Len(“abcdef”)的返回值是6 Mid(x,n,k) 取字符吕X中第N个字符起长度为K的子串 Mid(“abc”,2,2)的返回值是“bc” Fix(X) 截掉数据的小数部分 Fix(63.856)的返回值是63 Fix( )的返回值是-63
25
关系运算符:返回的值为True或False
基本运算 运算符 优先级 表达式 表达式的值 相等 = 7 A mod 4 =0 不相等 <> A mod 4<>0 小于 < “abc”< “ace” 大于 > A >13 小于等于 <= A<=20 大于等于 >= A>=32 False True True False True False
26
逻辑类运算符 基本运算 运算符 优先级 表达式 表达式的值 非 Not 8 Not (a>12) 与 And 9
a>=5 and a<=15 或 Or 10 (A>5) or ( a<-5) True True True
27
运算符优先级比较 算术运算符>关系运算符>逻辑运算符
28
对象(Object) 是Visual Basic应用程序的基本单元,每个对象都作为一个完整的独立组件出现在程序中。 特点: A、都有属性。
属性名 如:text1.height=2000 text1.text=“abc” List1.additem “a” 属性值 对象名 方法名
29
类(Class):对相同性质的对象的一种抽象。
控件工具箱 TextBox类 Label类 CommandButton类 ListBox类 Timer类 Image类
30
Image类 Textbox类 Label类 Commandbutton类
31
常用控件 Form:窗体 Textbox:文本框 Label:标签 CommandButton:按钮 ListBox:列表框
Image:图片 Timer:计时器
32
复习:常用控件 控件 常用属性 常用方法 常用事件 form Form1.caption=“倒计时” Form_load() label
Label1.caption=“hello” CommandButton Command1.caption=“确定” Command1_click() textbox Text1.text=“在此输入” image Image1.picture=command1.picture Image1.picture=loadpicture(“1.jpg”) listbox List1.additem “abc” List1.clear Timer Timer1.Enabled=true Timer1.Interval=1000 Timer1_timer()
33
事件和事件处理 事件(event)就是发生在对象上的事情,通常这是由用户在对象上激发的一种动作。 例:在按钮1上单击鼠标(Click)
在键盘上按下一个键 事件处理:一个事件的发生,可以引起某个对象上某个方法(事件处理过程)的执行。即由某个事件驱动了相应的事件处理过程的执行。——事件驱动概念
34
过程 每个过程是为了完成一定的任务,由一组独立的代码组成。
事件过程是当对象的某个事件发生时,对该事件做出相应的程序代码段,它是应用程序的主体。 如:Sub Command1_click() …… End Sub
35
VB特点 可视化。是一种开发具有图形用户界面(GUI)的应用程序。
事件驱动。每当用户或系统触发一个事件,应用程序就会执行一段相应的程序代码来响应。
36
赋值语句 赋给某个变量或者某个对象的属性一个确定值的语句 格式: 变量名=表达式 (其中“=”为赋值号) 对象名.属性名=表达式 如:
R=5 : S=3.14*r*r : N=n+1 Label1.caption =“你好” 多个语句写在同一行上,中间需用冒号隔开。
37
算法的三种基本结构 顺序结构 选择结构 循环结构
38
顺序结构 在算法执行流程中,执行完一个处理步骤step1后,顺序执行紧跟着的下一个处理步骤step2 范例:
语句1 语句2 开始 结束 …… 范例: Private Sub Command1_Click() a = 2 b = 3 c = a * b End Sub
39
选择结构结构 块if结构 If 条件 then 块if范例: If a < b Then 语句系列1 t = a Else Else
语句系列2 End if N Y 开始 结束 条件 执行a 执行b 块if范例: If a < b Then t = a Else t = b End If 行if结构 If 条件 then 语句系列1 else 语句系列2 行if范例 If a<b then t=a else t=b
40
多层选择结构 If 条件表达式1 then 语句块1 Elseif 条件表达式2 then 语句块2 ……
Elseif 条件表达式n then 语句块n End if
41
多层选择结构范例 If n<0then Msgbox “请重新输入一个大于0的值” ElseIf n<2 then
t=n*0.9 Elseif n<5 then t=n*0.7 else t=n*0.6 End if 输入n的值 输出t的值 1 4 5 -1 0.9 2.8 3 消息框提示:请输入一个大于0的值
42
循环结构 在算法流程中,对某个情况e进行判断,当结果为真时,执行yes指向的流程线下的步骤step1,然后再次判断情况e,如果结果还为真,则再次执行步骤 step1,并继续判断情况e,重复上述过程,直到判断的结果为假,执行no指向的流程线下的其他语句(如下图)。
43
For语句 For 循环变量名=初值 TO 终值 Step 步长 语句块 Next 循环变量
44
例1: Dim i as integer, s as integer S=0 For i=1 to 10 s=s+i Next
Label1.caption=str(s) S=s+i语句共执行了几次 程序执行完s的值是多少?
45
例2: Dim i as integer, n as integer For i=10 to 2 step -2 n=n+1 Next
Label1.caption=str(n)
46
例3: Dim i as integer, n as integer For i=1 to 10 if i mod 2= 0 then
n=n+1 list1.additem i end if Next Label1.caption=str(n) 程序执行完n的值是多少? List1中显示几个元素,哪几个元素?
47
Do while语句 Do While 条件表达式 语句块 Loop
48
例4: Dim s as integer, n as integer n=5 Do while n>=3 s=s+n n=n-1
loop
49
例 下列能计算sum=1+2/3+3/5+……..+50/99的Visual Basic程序段是( )
C.Sum=0 i=1 Do While i<=50 Sum=Sum+i/(2*i-1) i=i+1 Loop D.Sum=0 Do While i<=49 A. Sum=1 For i= 1 To 49 Sum=Sum+i/(2*i-1) Next I B. Sum=0 For i= 1 To 99 Sum=i/(2*i-1)
50
VB程序调试 常见错误提示: 溢出 (1题) 要求对象(2题) 子程序或函数未定义(3题) 无效的过程调用或参数(4题) 类型不匹配(5题)
溢出 (1题) 要求对象(2题) 子程序或函数未定义(3题) 无效的过程调用或参数(4题) 类型不匹配(5题) 不允许给常数赋值(6题) 下标越界(7题) 未找到方法或数据成员(8题)
51
课后作业 导引: 53: 专题五 第37页 第41页第24、25题 第81页第1题——4题
第82页第11 —— 13题(11题请用程序代码写) 第86页第1 ——16题(第11题不用做) 第94页起第1 —— 6题(第3题不用做) 53: 专题五
Similar presentations