算法与程序设计学
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法是程序设计的“灵魂”,独立于程序设计语言, 一个算法可以用多种程序设计语言来实现。
猜价格游戏:一件商品的价格 在1~1000之间,要求尽快地猜 出商品的价格。
方法1(枚举法): 从1、2、3……、1000, 依次猜,直到猜对为止。
方法2(二分法): 从1和1000的中间数500开 始,如猜大了则在1~499对分,如猜小了则在 501~1000对分,…….,如此反复使用二分法, 直到猜对为止。
程 序 程序代码
变量
程序中的变量和数学公式中的变量 是有区别的;
程序中的变量是计算过程中要用的 数据的存储单元;
一旦把数据存储到某个变量,它将 永久保存,直到有新的数据存储进去;
主要是“记忆”功能,“取之不尽, 用之不竭”
变量的命名
以字母开头,只能由字母、数字或下划线组成 字母大小写都可以,变量名长度适当 变量名与实际意义 变量类型 (数值型、字符型 )
a←b b←t
常量和变量
➢常量:其值不能被改变的量称为常量 赋值
变量←---常量 变量←---变量
1← a
s = 3.1416 * r * r
赋值 变量←---表达式
Vb程序代码中的写法
s ← 3.1416 * r * r
3. 赋值语句和表达式和常用的数据运算 赋值语句的格式
变量可反复使用,即“取之不尽”;
后,写出a,b,c,d的结果。 变量可重新赋值,即“赋值即覆盖”。
说明变量的特点
ab cd
a←3
3
a←5
5
b←a
5
c←a
5
d←a
5
b←3
3
VB程序验证
task1
开始 a←1 b←2
变量a的值为1,变量b的值为2,通过什么方 法,可以交换a、b的值? 要求:1、在visio中画出算法流程图
对象是客观存在的事物或概念,如:一支铅笔、一辆公共汽车、一个圆等
对象有两个共同的特点:
1、每个对象都有自己的状态,并且其状态是通过若干个属性(property)来描 述的;
2、每个对象都有自己的行为,即对属性进行操作和处理的方法(method)
task2
分析
设计算法
编写程序
运行和调试
学生完成task2
变量名 = 表达式
对象名. 属性名 = 表达式
赋值语句的作用是把表达式计算的结果存储到左边 的变量中,或存储到左边的对象的属性中.如:
s = 3.1416*r*r*a / 360 text1.text = str (s)
表达式-由运算符把常量、变量等联系在一起的式子。
如: vt * vt / (2 * a) (-b + sqr ( b*b-4*a*c ) ) / (2*a) 10 / 4 >2 and “A” > “D”
知识回顾
1、什么是算法?
2、算法在计算机解决问题中起着什么样的作用?
算法
核心和基础
计算机解决问题
程序语言(如:VB、C、C++、Java)
转变成计算机能够执行的一条条指令
3、算法有哪些特点?
4、描述算法的方法有哪几种?
5、流程图中常用的符号有哪些?
VB简介
程序设计语言VB,是Windows环境下广泛
2. 用流程图描述算法(即框图和结构化流程图N-S图) 用各种图形符号来描述算法 能清晰、直观、形象地描述各种算法。
3. 用伪代码或直接用计算机程序描述算法
伪代码:介于自然语言和计算 机程序语言之间。
如:
read (r); s← 3.14*r*r; write (“圆面积为:”, s);
算法的特点:
4、运算符和表达式
➢算术运算符
运算符 ^ (乘幂) * (乘 ) / (除 ) Mod (求余) + (加 ) - (减 )
优先级 1 2 2 3 4 4
(设a=3)
例 a^2 a*a*a 10/a 10 Mod a 10 + a a - 10
结果 9 27
3.33333333 1 13 -7
例:5+10 mod 9 / 3 +2 ^2
1)有穷性(一个算法必须保证执行有限步骤之后结束 ) 2)确定性( 每一步骤必须有确切的定义 )
如:输出:L/ 自然数。 3)可行性(算法中每一个步骤都是要能够实际做到
的,而且是在有限的时间内完成。) 如:如要求X的算术平方根,就要保证X是不小于0 4)有0个或多个输入。 5)必须有一个或多个输出。
Visual Basic高级语言是一种可化视的、面向对
象的程序设计语言。 VB设计程序的四个步骤: 程序界面设计 设置对象的初始属性
程序代码设计 调试保存程序
Private Sub Command1_Click( ) Dim r, s As Double r = Val(Text1.Text) s = 3.1416 * r * r Text2.Text = Str(s)
End Sub
子程序
VB的一个事件处理过程就是一个子程序,其结构如下:
Private Sub 对象名称_事件名称() 在事件处理过程中使用的变量的说明 程序代码序列
End Sub
在VB中,事件是属于控件对象的,只有在此对象上 发生了相应的事件, VB将自动启动该子程序并执行。
顺序结构
一、概念
顺序结构:严格按照先后顺序执行各个步骤的 算法结构 。
用二分法猜价格的算法流程图
§1 用计算机解决问题的一般过程
需求分析 设计算法 编写程序
1.需求分析----- 分析要求计算机干什 么?
2.设计算法------设计解决问题的有限 求解步骤。(精确、有效和可预期 的结果)
3.编写程序------把算法写成计算机 语言的程序。
4.上机调试------观察程序运行的结果, 上机运行和调试 改错并完善程序。
事件和事件驱动: 事件就是发生在对象上的事情,通常是用户在对象上激发的一种动作。 事件驱动:一个事件的发生,可以引起某个对象上某个方法(事件处理 过程)的执行,即由某个事件驱动了相应的事件处理过程的执行。
Private Sub Command1_Click( ) Text1.ForeColor = vbRed End Sub
使用的一种应用程序开发工具。它是一种可视 化的(visual)程序设计工具,能用它来开发 具有图形用户界面(GUI)的应用程序。
边演示边讲解task1,来熟悉VB操作 界面和简单的应用程序界面设计
学生完成task1
VB中文件的保存:
在VB中,任何一个简单的小程序都是一个“工程”,所以它包含 了一系列的文件。常见的有:
猜价格游戏的程序示意图
一个程序通常由指令部分和数据部分组成
数据区: 用于存储计算所需的原 始数据、中间结果和最 终结果
指令部分: 一组指令系列,每条指令 执行一个操作,描述了解 决问题的计算过程。
1 商品价格变量S 2 商品价格变量T
3 显示“输入价格” 4 输入价格到变量T 5 比较输入价格T和商品价格S 6 如果T<S,转到10 7 如果T>S,转到12 8 如果T=S,显示“猜对了!” 9 结束 10 显示“猜小了!” 11 转到 3 12 显示“猜大了!” 13 转到 3
2、根据算法,在VB中编写程序;
分析: (1)解决问题所需要的数据——输入半径r (2)确定要计算机解决什么问题,即“做什么”
——计算圆面积s (3)明确最后得到的结果——输出面积s
开始 输入半径到
变量r
计算s←3.1416*r*r
输出面积s
需求分析
结束
设计算法
知识回顾 VB设计程序的基本思想方法
VBP文件: 与vb工程有关的文件和对象清单,是一个文本文件。 FRM文件: 包含窗体及控件的属性设置及相关程序代码等。 OCX文件: ActiveX控件文件,为VB提供扩展控件。 BAS文件: 标准模块文件。
类与对象:
类是对相同性质的对象的一种抽象,而一个对象则是类的一个“实例”。就如 “汽车”这个概念是对各种型号不同但性质相同的小轿车、吉普车、大客车等对 象的一种抽象。
开始 输入半径到
变量r
计算s←3.1416*r*r
输出面积s
操作1 操作2
结束
顺序结构流程图
1. Vb中的变量和变量定义
Private Sub Command1_Click( ) Dim r, s As Double
r = Val(Text1.Text)
s = 3.1416 * r * r
VB中可使用Dim语句来定义变量。 Text2.Text = Str(s)
人回来 人和羊过河
结束
流程图符号
图形符号
符号名称
说明
起始、终止框 表示算法的开始或结束
输入、输出框 标明输入、输出的内容
处理框 判定框
流线
标明进行什么处理
标明判定条件并在框外标明判定 后的两种结果的流向
表示从某一框到另一框的流向
连接圈 表示算法流向出口或入口连接点
描述算法的方法:
1. 用自然语言描述算法
一个猎人带着一只羊,一只狼和一棵白菜 回家,路上遇到一条河。河边只有一条船,但 船太小,一次最多只可载猎人和另一样东西过 河。但猎人不在时,狼要吃羊,羊要吃白菜。 请问怎样才能把狼、羊、白菜都安全运过河?
人和羊→ 人← 人和狼→ 人和羊← 人和菜→ 人← 人和羊 →
另一种方法:
人和羊→ 人← 人和菜→ 人和羊← 人和狼→ 人← 人和羊 →
有两种情况可以改变对象的属性: 1)程序设计时,可根据需要在属性窗口中设定对象初始状态的
属性. 2)在程序运行中,可按需要使用赋值语句改变对象的属性。 其格式为:
对象名 . 属性名 = <表达式>
如: Text1.ForeColor = vbRed
task3
【例】已知圆半径,求面积。 要求:1、在Visio中画出算法流程图;
2、根据你设计的算法流程图用列表法 分析两变量值的变化,有没有起到 交换作用?
3、使用VB来验证
顺序结构
【例1】交换两个变量的值。--借用第三变量
a←1 b←2 a←b b←a
ab
a=1 1
b=2
2
a=b 2
b=a
2
引入第三 个变量t
为了防止有用的 数据丢失,预先 将a的值保护起 来。 分析原因:赋值 即覆盖
-3.402823E38到1.401298E-45 1.401298E-45到3.402823E38
双精度浮点数
+/-1.79769313486232D308到 +/-4.94065645841247D-324
String 字符串
0到65535个字符
Booleam 逻辑
True / False
Data 日期
一、算法的概念和表示方法
算法就是为解决某一问题而设计的确定的有限的步骤 。是 在有限步骤内求解某一问题所使用的具有精确定义的一系 列操作规则。
面对具体问题,我们知道了算法,那么这个 算法又该如何描述呢?
人和羊→ 人← 人和狼→ 人和羊← 人和菜→ 人← 人和羊 →
开始 人和羊过河
人回来 人和狼过河 人和羊回来 人和菜过河
34 1 6
10
结果是: 10
4、运算符和表达式
➢字符串运算符与字符串表达式
字符串运算符有:& 、+ 。 功能是字符串连接 例:
"ABC" + "EFG"
End Sub
Dim <变量名> ,<变量名>, ...As <变量类型名>
如: Dim r, s, a as single 常用的数据类型
类型名称 表示数据 取值范围
Integer Long Single
Double
整数
-32768到32767
长整数
-2147483648到2147483647
单精度浮点数
日期和时间
2、常量和变量
赋值号
r=3
r
变量名
3
变量值
存储单元
➢变量:程序运行过程中,取值可以改变的量。 变量对应计算机内部的存储单元。
•命名规则:以字母开头,只能由字母、数字或下划线组成 字母大小写都可以,变量名长度适当 变量名与实际意义 变量类型 (数值型、字符型 )
变量先赋值,后使用;
例1:执行下列赋值语句
Private Sub Command2_Click( ) Text1.Text = "" End Sub
Private Sub Command3_Click( ) End End Sub
对象
状态(一组数据) 方法(一组代码)
对象是状态和方法的封装
在面向对象的程序设计语言中,用类似a.b的形式来指称对象 a的属性b。例如:Text1.text指出了对象Text1的属性Text。
启动visio2007,画书本P9 上的图1.2 猜价格算法流程图, 以熟悉该软件的使用。并保存 在H盘上。
一个人带三只老虎和三头牛过河。 只有一条船,同船可以容一个人和两 只动物。没有人在的时候,如果老虎 的数量不少于牛的数量就会吃掉牛。 设计安全渡河的算法。
请使用visio2007,画出算法流程图, 并保存在H盘上。
猜价格游戏:一件商品的价格 在1~1000之间,要求尽快地猜 出商品的价格。
方法1(枚举法): 从1、2、3……、1000, 依次猜,直到猜对为止。
方法2(二分法): 从1和1000的中间数500开 始,如猜大了则在1~499对分,如猜小了则在 501~1000对分,…….,如此反复使用二分法, 直到猜对为止。
程 序 程序代码
变量
程序中的变量和数学公式中的变量 是有区别的;
程序中的变量是计算过程中要用的 数据的存储单元;
一旦把数据存储到某个变量,它将 永久保存,直到有新的数据存储进去;
主要是“记忆”功能,“取之不尽, 用之不竭”
变量的命名
以字母开头,只能由字母、数字或下划线组成 字母大小写都可以,变量名长度适当 变量名与实际意义 变量类型 (数值型、字符型 )
a←b b←t
常量和变量
➢常量:其值不能被改变的量称为常量 赋值
变量←---常量 变量←---变量
1← a
s = 3.1416 * r * r
赋值 变量←---表达式
Vb程序代码中的写法
s ← 3.1416 * r * r
3. 赋值语句和表达式和常用的数据运算 赋值语句的格式
变量可反复使用,即“取之不尽”;
后,写出a,b,c,d的结果。 变量可重新赋值,即“赋值即覆盖”。
说明变量的特点
ab cd
a←3
3
a←5
5
b←a
5
c←a
5
d←a
5
b←3
3
VB程序验证
task1
开始 a←1 b←2
变量a的值为1,变量b的值为2,通过什么方 法,可以交换a、b的值? 要求:1、在visio中画出算法流程图
对象是客观存在的事物或概念,如:一支铅笔、一辆公共汽车、一个圆等
对象有两个共同的特点:
1、每个对象都有自己的状态,并且其状态是通过若干个属性(property)来描 述的;
2、每个对象都有自己的行为,即对属性进行操作和处理的方法(method)
task2
分析
设计算法
编写程序
运行和调试
学生完成task2
变量名 = 表达式
对象名. 属性名 = 表达式
赋值语句的作用是把表达式计算的结果存储到左边 的变量中,或存储到左边的对象的属性中.如:
s = 3.1416*r*r*a / 360 text1.text = str (s)
表达式-由运算符把常量、变量等联系在一起的式子。
如: vt * vt / (2 * a) (-b + sqr ( b*b-4*a*c ) ) / (2*a) 10 / 4 >2 and “A” > “D”
知识回顾
1、什么是算法?
2、算法在计算机解决问题中起着什么样的作用?
算法
核心和基础
计算机解决问题
程序语言(如:VB、C、C++、Java)
转变成计算机能够执行的一条条指令
3、算法有哪些特点?
4、描述算法的方法有哪几种?
5、流程图中常用的符号有哪些?
VB简介
程序设计语言VB,是Windows环境下广泛
2. 用流程图描述算法(即框图和结构化流程图N-S图) 用各种图形符号来描述算法 能清晰、直观、形象地描述各种算法。
3. 用伪代码或直接用计算机程序描述算法
伪代码:介于自然语言和计算 机程序语言之间。
如:
read (r); s← 3.14*r*r; write (“圆面积为:”, s);
算法的特点:
4、运算符和表达式
➢算术运算符
运算符 ^ (乘幂) * (乘 ) / (除 ) Mod (求余) + (加 ) - (减 )
优先级 1 2 2 3 4 4
(设a=3)
例 a^2 a*a*a 10/a 10 Mod a 10 + a a - 10
结果 9 27
3.33333333 1 13 -7
例:5+10 mod 9 / 3 +2 ^2
1)有穷性(一个算法必须保证执行有限步骤之后结束 ) 2)确定性( 每一步骤必须有确切的定义 )
如:输出:L/ 自然数。 3)可行性(算法中每一个步骤都是要能够实际做到
的,而且是在有限的时间内完成。) 如:如要求X的算术平方根,就要保证X是不小于0 4)有0个或多个输入。 5)必须有一个或多个输出。
Visual Basic高级语言是一种可化视的、面向对
象的程序设计语言。 VB设计程序的四个步骤: 程序界面设计 设置对象的初始属性
程序代码设计 调试保存程序
Private Sub Command1_Click( ) Dim r, s As Double r = Val(Text1.Text) s = 3.1416 * r * r Text2.Text = Str(s)
End Sub
子程序
VB的一个事件处理过程就是一个子程序,其结构如下:
Private Sub 对象名称_事件名称() 在事件处理过程中使用的变量的说明 程序代码序列
End Sub
在VB中,事件是属于控件对象的,只有在此对象上 发生了相应的事件, VB将自动启动该子程序并执行。
顺序结构
一、概念
顺序结构:严格按照先后顺序执行各个步骤的 算法结构 。
用二分法猜价格的算法流程图
§1 用计算机解决问题的一般过程
需求分析 设计算法 编写程序
1.需求分析----- 分析要求计算机干什 么?
2.设计算法------设计解决问题的有限 求解步骤。(精确、有效和可预期 的结果)
3.编写程序------把算法写成计算机 语言的程序。
4.上机调试------观察程序运行的结果, 上机运行和调试 改错并完善程序。
事件和事件驱动: 事件就是发生在对象上的事情,通常是用户在对象上激发的一种动作。 事件驱动:一个事件的发生,可以引起某个对象上某个方法(事件处理 过程)的执行,即由某个事件驱动了相应的事件处理过程的执行。
Private Sub Command1_Click( ) Text1.ForeColor = vbRed End Sub
使用的一种应用程序开发工具。它是一种可视 化的(visual)程序设计工具,能用它来开发 具有图形用户界面(GUI)的应用程序。
边演示边讲解task1,来熟悉VB操作 界面和简单的应用程序界面设计
学生完成task1
VB中文件的保存:
在VB中,任何一个简单的小程序都是一个“工程”,所以它包含 了一系列的文件。常见的有:
猜价格游戏的程序示意图
一个程序通常由指令部分和数据部分组成
数据区: 用于存储计算所需的原 始数据、中间结果和最 终结果
指令部分: 一组指令系列,每条指令 执行一个操作,描述了解 决问题的计算过程。
1 商品价格变量S 2 商品价格变量T
3 显示“输入价格” 4 输入价格到变量T 5 比较输入价格T和商品价格S 6 如果T<S,转到10 7 如果T>S,转到12 8 如果T=S,显示“猜对了!” 9 结束 10 显示“猜小了!” 11 转到 3 12 显示“猜大了!” 13 转到 3
2、根据算法,在VB中编写程序;
分析: (1)解决问题所需要的数据——输入半径r (2)确定要计算机解决什么问题,即“做什么”
——计算圆面积s (3)明确最后得到的结果——输出面积s
开始 输入半径到
变量r
计算s←3.1416*r*r
输出面积s
需求分析
结束
设计算法
知识回顾 VB设计程序的基本思想方法
VBP文件: 与vb工程有关的文件和对象清单,是一个文本文件。 FRM文件: 包含窗体及控件的属性设置及相关程序代码等。 OCX文件: ActiveX控件文件,为VB提供扩展控件。 BAS文件: 标准模块文件。
类与对象:
类是对相同性质的对象的一种抽象,而一个对象则是类的一个“实例”。就如 “汽车”这个概念是对各种型号不同但性质相同的小轿车、吉普车、大客车等对 象的一种抽象。
开始 输入半径到
变量r
计算s←3.1416*r*r
输出面积s
操作1 操作2
结束
顺序结构流程图
1. Vb中的变量和变量定义
Private Sub Command1_Click( ) Dim r, s As Double
r = Val(Text1.Text)
s = 3.1416 * r * r
VB中可使用Dim语句来定义变量。 Text2.Text = Str(s)
人回来 人和羊过河
结束
流程图符号
图形符号
符号名称
说明
起始、终止框 表示算法的开始或结束
输入、输出框 标明输入、输出的内容
处理框 判定框
流线
标明进行什么处理
标明判定条件并在框外标明判定 后的两种结果的流向
表示从某一框到另一框的流向
连接圈 表示算法流向出口或入口连接点
描述算法的方法:
1. 用自然语言描述算法
一个猎人带着一只羊,一只狼和一棵白菜 回家,路上遇到一条河。河边只有一条船,但 船太小,一次最多只可载猎人和另一样东西过 河。但猎人不在时,狼要吃羊,羊要吃白菜。 请问怎样才能把狼、羊、白菜都安全运过河?
人和羊→ 人← 人和狼→ 人和羊← 人和菜→ 人← 人和羊 →
另一种方法:
人和羊→ 人← 人和菜→ 人和羊← 人和狼→ 人← 人和羊 →
有两种情况可以改变对象的属性: 1)程序设计时,可根据需要在属性窗口中设定对象初始状态的
属性. 2)在程序运行中,可按需要使用赋值语句改变对象的属性。 其格式为:
对象名 . 属性名 = <表达式>
如: Text1.ForeColor = vbRed
task3
【例】已知圆半径,求面积。 要求:1、在Visio中画出算法流程图;
2、根据你设计的算法流程图用列表法 分析两变量值的变化,有没有起到 交换作用?
3、使用VB来验证
顺序结构
【例1】交换两个变量的值。--借用第三变量
a←1 b←2 a←b b←a
ab
a=1 1
b=2
2
a=b 2
b=a
2
引入第三 个变量t
为了防止有用的 数据丢失,预先 将a的值保护起 来。 分析原因:赋值 即覆盖
-3.402823E38到1.401298E-45 1.401298E-45到3.402823E38
双精度浮点数
+/-1.79769313486232D308到 +/-4.94065645841247D-324
String 字符串
0到65535个字符
Booleam 逻辑
True / False
Data 日期
一、算法的概念和表示方法
算法就是为解决某一问题而设计的确定的有限的步骤 。是 在有限步骤内求解某一问题所使用的具有精确定义的一系 列操作规则。
面对具体问题,我们知道了算法,那么这个 算法又该如何描述呢?
人和羊→ 人← 人和狼→ 人和羊← 人和菜→ 人← 人和羊 →
开始 人和羊过河
人回来 人和狼过河 人和羊回来 人和菜过河
34 1 6
10
结果是: 10
4、运算符和表达式
➢字符串运算符与字符串表达式
字符串运算符有:& 、+ 。 功能是字符串连接 例:
"ABC" + "EFG"
End Sub
Dim <变量名> ,<变量名>, ...As <变量类型名>
如: Dim r, s, a as single 常用的数据类型
类型名称 表示数据 取值范围
Integer Long Single
Double
整数
-32768到32767
长整数
-2147483648到2147483647
单精度浮点数
日期和时间
2、常量和变量
赋值号
r=3
r
变量名
3
变量值
存储单元
➢变量:程序运行过程中,取值可以改变的量。 变量对应计算机内部的存储单元。
•命名规则:以字母开头,只能由字母、数字或下划线组成 字母大小写都可以,变量名长度适当 变量名与实际意义 变量类型 (数值型、字符型 )
变量先赋值,后使用;
例1:执行下列赋值语句
Private Sub Command2_Click( ) Text1.Text = "" End Sub
Private Sub Command3_Click( ) End End Sub
对象
状态(一组数据) 方法(一组代码)
对象是状态和方法的封装
在面向对象的程序设计语言中,用类似a.b的形式来指称对象 a的属性b。例如:Text1.text指出了对象Text1的属性Text。
启动visio2007,画书本P9 上的图1.2 猜价格算法流程图, 以熟悉该软件的使用。并保存 在H盘上。
一个人带三只老虎和三头牛过河。 只有一条船,同船可以容一个人和两 只动物。没有人在的时候,如果老虎 的数量不少于牛的数量就会吃掉牛。 设计安全渡河的算法。
请使用visio2007,画出算法流程图, 并保存在H盘上。