算法与Visual Basic程序基础(一)
知识概览 算法: 定义、特点、表示方法,三种基本结构 读程序流程图 VB中对象、属性、方法、类、事件、过程等概念 VB变量: 变量名命名规则、数据类型、定义方式 数组变量的定义 VB常量: 特点、定义方式 VB函数、表达式的值 条件表达式的描述 三种基本结构VB语句的实现 程序解决问题的两种常见算法: 解析法与枚举法
算法概念 概念:解决问题的具体方法与步骤。 计算机解决问题的三大步骤 (1)分析问题确定要用计算机来“做什么”,即确定解题的任务。 (2)寻求解决问题的具体途径和方法。 (3)用计算机进行处理。
算法特征 (1)有穷性。一个算法必须保证它的执行步骤是有限的,即它是能终止的。 (2)确定性。既算法中的每个步骤必须有确切的含义。 (1)有穷性。一个算法必须保证它的执行步骤是有限的,即它是能终止的。 (2)确定性。既算法中的每个步骤必须有确切的含义。 (3)可执行性。算法中的每个步骤都要实践能做的,而且能在有限的时间内完成。 (4)有0个或多个输入。 (5)有一个或多个输出。
例题 下列关于算法特征的描述,哪一条是错误的( ) A.有穷性 B.确定性 C.有0个或多个输入D.有0个或多个输出 D
算法的表示方法 流程图 程序代码 自然语言
流程图符号 图形符号 名 称 含 义 开始、结束框 表示算法的开始或结束 输入、输出框 表示输入输出操作 处理框 表示处理或运算的功能 名 称 含 义 开始、结束框 表示算法的开始或结束 输入、输出框 表示输入输出操作 处理框 表示处理或运算的功能 判断框 用来根据给定的条件是否满足决定执行两条路径中的某一路径 流线 表示程序执行的路径,箭头代表方向 连接框 用于连接因页面写不下而断开的流程线
算法的三种基本结构 顺序结构 选择结构 循环结构
流程图描述算法 条件成立? 循环体 Y N 条件成立? 序列1 序列2 Y N 选择结构 循环结构
例题 有流程图结构如下,其算法结构属于 (A)顺序结构 (B)选择结构 (C)分支结构 (D)循环结构 D
VB特点 可视化。是一种开发具有图形用户界面(GUI)的应用程序。 事件驱动。每当用户或系统触发一个事件,应用程序就会执行一段相应的程序代码来响应。
四个大类,引用 四种控件,有九个对象(连窗体) Label类 Textbox类 Image类 Commandbutton类 四个大类,引用 四种控件,有九个对象(连窗体)
类(Class):对相同性质的对象的一种抽象。 控件工具箱 TextBox类 Label类 CommandButton类 ListBox类 Timer类 Image类
对象(Object) 是Visual Basic应用程序的基本单元,每个对象都作为一个完整的独立组件出现在程序中。 特点: A、都有属性。 属性名 如:text1.height=2000 text1.text=“abc” List1.additem “a” 属性值 对象名 方法名
常用控件 Form:窗体 Textbox:文本框 Label:标签 CommandButton:按钮 ListBox:列表框 Image:图片 Timer:计时器
控件的常用属性、方法和事件 控件 常用属性 常用方法 常用事件 form Form1.caption=“倒计时” Form_load() label Label1.caption=“hello” CommandButton Command1.caption=“确定” Command1_click() textbox Text1.text=“在此输入” image Image1.picture=loadpicture(“1.jpg”) listbox List1.additem “abc” List1.clear Timer Timer1.Enabled=true Timer1.Interval=1000 Timer1_timer()
事件 事件(event)就是发生在对象上的事情,通常这是由用户在对象上激发的一种动作。 例:在按钮1上单击鼠标(Click) 在键盘上按下一个键(Keypress) 窗体加载(Load) 事件驱动:由某个事件驱动了相应的事件处理过程的执行。
过程 每个过程是为了完成一定的任务,由一组独立的代码组成。 如:Sub Command1_click() …… End Sub 过程 事件
常量 是指在程序执行过程中其值自始至终都不能改变的储存单元或数据。 如整数常量15、20等; 实数常量3.16、-2.01等; 字符串常量“VB”、“15”等; 逻辑常量True、False。 为了方便程序的修改调试及更好的可阅读性,我们通常将某个常量定义成符号常量。 如用下列语句来定义代表圆周率的近似值的符号常量PI:Const PI=3.1416 或者 Const PI as Single=3.1416
VB变量 变量命名规则 必须以字母或下划线开头,中间只能由字母、数字和下划线“_”组成; 变量名的长度不得超过255个字符; 变量名在VB中是不区分大小写的(如ABC、aBc、abc等都是一样的)
数据类型 数据类型名 说明 性质 Integer 整数型 -32768~32767 Long 长整型 -2147483648~2147483647 Single 单精度 绝对值在1.401298E-45~3.402823E38内的实数,占4B Double 双精度 绝对值在10E-324~1.79E308内的实数,占8B String 字符串型 一段文字与符号 Boolean 逻辑型 判断的结果,只有两个值:True和False Date 日期型 日期和时间
变量的定义 Dim 变量名 as 数据类型 如: Dim h as integer Dim a as single,j as single
数组 定义:相同数据类型的元素按一定顺序排列的集合。 就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。
数组变量的定义方式 第一种形式: dim b(1 to 3) as string ‘ 下标从1到5 b(1)=“happy” : b(2)=“new”: b(3)=“year” 第二种形式: dim a(3) as integer '定义一个数组(有四个数),下标从0到3。 a(0)=2 :a(1)=3:a(2)=4:a(3)=5
赋值语句 赋给某个变量或者某个对象的属性一个确定值的语句 格式: 变量名=表达式 (其中“=”为赋值号) 对象名.属性名=表达式 如: R=5 : S=3.14*r*r : N=n+1 Label1.caption =“你好” 多个语句写在同一行上,中间需用冒号隔开。
从高到低 基本运算 1、算术运算符 ^(乘方) -(负号) *(乘)、/(除) \(整除) MOD(取余) +(加)、-(减)、 1、算术运算符 ^(乘方) -(负号) *(乘)、/(除) \(整除) MOD(取余) +(加)、-(减)、 从高到低 2、关系(比较)运算符 >、<、=、>=、<=、<> 3、逻辑运算符: a、not(逻辑非):取条件的反操作 b、and(逻辑与):当两边条件都成立时,整个条件才成立。 c、or(逻辑或):只要有一个条件成立时,整个条件就成立。
算术运算符 运算符 功能 优先级 例子 值 ^ 乘方 1 3^2 9 - 负号 2 -2^2 -4 *、/ 乘、除 3 3*4/2 6 \ 整除 4 4\3 MOD 求余数 5 5 mod 3 +、- 加、减 2+3-2
字符串连接符 符号 例子 值 & “34” & ”56” “3456” 34 & “56” + “34” + “ab” “34ab” 出错 34 +”56” 90
常用函数 函数名 函数的功能 示例 求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)的实数 可简写成Rnd
随机整数 随机产生一个数c,区间在[n,m] C=int(rnd*(m+1-n))+n 为了实现随机,在用rnd之前需初始化随机数生成器: Randomize
四舍五入保留n位小数 对x保留n位小数,并进行四舍五入的VB表达通式: Int(x*10^n+0.5)/10^n 例: X=Int(x*100+0.5)/100 对x保留3位小数,并进行四舍五入 X=Int(x*1000+0.5)/1000
关系运算符:返回的值为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
逻辑类运算符 基本运算 运算符 优先级 表达式 表达式的值 非 Not 8 Not (a>12) 与 And 9 a>=5 and a<=15 或 Or 10 (A>5) or ( a<-5) True True True
求a、b两数的最大公约数 方法一:辗转相除法代码一 Do while b<>0 r=a mod b a=b b=r Loop label1.caption=“最大公约数是” +str (a) 方法二:辗转相除法代码二 r=a mod b Do while r<>0 a=b b=r r= a mod b Loop label1.caption=“最大公约数是” +str (b) 方法三:辗转相减法代码 Do While a <> b Do While a > b a = a - b Loop Do While a < b b = b - a Print a ‘ print b也一样
程序填空 VB程序代码中划线处应填入的语句和表达式__________。 Private Sub Command1_Click() Dim m As Integer, n As Integer Dim r As Integer m = Val(Text1.Text) n = Val(Text2.Text) r = m Mod n Do While _________ m = n n = r ________ Text3.Text = Str(n) End Sub VB程序代码中划线处应填入的语句和表达式__________。