当前位置:
文档之家› 算法与程序设计第一章(2018新版)
算法与程序设计第一章(2018新版)
f_max = 0 For x = 0 To 4 For y = 0 To 3 For z = 0 To 8 If f_max < f(x, y, z) Then f_max = f(x, y, z) x_max = x y_max = y z_max = z End If Next z Next y Next x Print "当x="; x_max; ",y="; y_max; ",z="; z_max; "时," Print "f(x,y,z)的最大值="; f_max
各种程序设计语言的比较
语言种类 优势 不足
机器语言
能被计算机直接接受和执行
程序设计任务繁重,效率低 下,与自然语言存在巨大鸿 沟,程序员不易培养。
必须有语言翻译器支持,效 率低,汇编源程序较冗长、 复杂,容易出错。
汇编语言
比机器语言更易理解
高级语言
更接近自然语言,移植性好。
要语言翻译器支持。
2、算法的描述
(1)、自然语言 (2)、流程图 (3)、伪代码
自然语言
平时大家所说的语言
流程图
流程图也称为程序框图,它是算法的
一种图形化表示方法。
流程图图例
开始或结束 输入或输出
处理
判断
流程线 连接点
伪代码
伪代码是介于自然语言和计算机程
序语言之间的一种算法描述,也是专业
软件开发人员描述算法的一种常用方法。
4、验证计算结果
人与计算机解决问题的区别
相同点:无论何种解题方式,在解决某一实际问题时,都应该正确的理解问题的题意,从看似复杂的 问题中整理出一个头绪,然后通过算法(即解决问题的一个一个步骤)描述出某一问题的解决过程, 进行一定量的计算,最后都必须验证计算结果。
不同点:当计算量较大时,人工解题就有点力不从心了,而计算机每秒上亿次的计算速度却不在话下 并且只要算法正确,编程语句无误的话,使用计算机编写的解题程序可以反复使用。例如: sum=1+2+3+4+5……+(n-1)+n这样的问题。
表1-1 产品甲、乙、丙在各设备上所需加工的台时数
设备 产品
A 2
B 1
C 4
D 0
ቤተ መጻሕፍቲ ባይዱ
甲
乙
丙
2
1
2
1
0
0
4
0
表1-2 探究问题记录表
探究的问题 探究过程
找出已知和未知
已知甲乙丙销售收入,ABCD四种设备有效使用台时 数,甲乙丙加工的台时数,未知的是甲乙丙的产量及 总销售额。 甲乙丙加工的台时数不能超过ABCD有效使用台时数。
1.3、程序与程序设计语言
程序设计语言的产生与发展(P18) (1)、机器语言:由“0”和“1”组成的二进制代码,是能够被计算机直接接受 和 执行的计算机语言。 (2)、汇编语言:采用类似英语缩写略词且带有助记性的符号形式代替二进制 机器代码的计算机语言。是符号化了的机器语言。用能反映 指令功能的助记符表达的计算机语言。 (3)、高级语言:相对于汇编语言而言,它并不是特指某一种具体的语言,而 是包括了很多编程语言,如VB、C、C++,VC、Java等。
伪代码
种类繁多,语句不容易规范. P12
3、算法的地位和作用
在运用计算机程序解决问题的过程中,算法设计有着 举足轻重的地位和作用,算法是程序设计的核心,是程 序设计的灵魂.算法的好坏,直接影响着程序的通用性 和有效性,影响着问题解决的效率.
程序的编制依赖于算法的设计。程序的效率主要取决于 算法的效率。
具体问题
分析问题
设计算法
编写程序
运行程序 验证结果
得到答案
用计算机解决问题的步骤
实践操作 1)、新建工程; 2)、在窗体添加按钮控件; 3)、给按钮添加单击事件过程; 4)、在单击事件过程内输入编写好的程序; 5)、运行程序调试结果。
人工解题步骤 1、理解和分析所面临的问题 2、寻找解题的途径和方法 3、用笔、纸和算盘、计算器等工具进行计算 计算机解题步骤 1、理解和分析所要解决的问题 2、寻找解题的途径和方法 3、生成解题算法 4、选用一种编程语言根据算法编写程序 5、通过编辑、编译和连接产生计算机能够识别的指令序列 6、在计算机上执行该指令序列
表示算法的语言有自然语言、流程图、伪代码等。 1)、用自然语言描述算法; 2)、用流程图描述算法:掌握流程图的基本图形及其功能。 3)、用伪代码描述算法。 开始 输入正整数m和n 1).输入m和n的值; 2).r=m除以n的余数; 3).如果r=0,则输出n值; 否则令m=n,n=r返回第2步; 4).结束. r=m除以n的余数 输入m和n值 r =m Mod n do while r<>0 m=n n=r r=m mod n loop 输出n值
辗转相除法
又名欧几里德算法(Euclidean algorithm)是求两个正整数之最大公约数的算法。它 是已知最古老的算法, 其可追溯至前300年。它首次出现于欧几里德的《几何原本》 (第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的《九章算术》。它并不 需要把二数作质因子分解。 1. a ÷ b,令r为所得余数(0≤r<b),若 r = 0,b 即为最大公约数;算法结束 。 2. 互换:置 a←b,b←r,并返回第一步。 例如:求112和64的最大公约数.算法如下: 48 (1).112除以64,余数为______; 64 除以_____ 48 余数为_______; 16 (2)._____ (3)._____ 48 除以_____ 16 余数为_______. 0 16 答:112和64的最大公约数为______. 两数的最大公约数乘以其最小公倍数=两数相乘 例如:求112和64的最小公倍数. 16 (1).利用辗转相除法求得它们的最大公约数为______; (2).利用表达式求得最小公倍数: 112*64/16=448 答: 112和64的最小公倍数为______.
1.2 算法和算法描述 1、算法 2、算法的描述 3、算法的地位和作用
(1)算法的概念
算法是在有限步骤内求解某一问题所使用的一组定义明确的 规则。 即,用计算机求解某一问题的方法,是能被机械地执行的动作 或指令的有穷集合。
(2)算法的特征:
1)、输 入。解题算法中可以没有数据输入,也可以同时输入多个需 要算法处理的数据。
2)、确定性。解题方法中的任何一个操作步骤都是清晰无误的,不会使人产生 歧义或者误解。 3)、有穷性。任何一种提出的解题方法都是在有限的操作步骤内可以完成的, 哪怕是失败的解题方法。 4)、输 出。一个算法执行结束之后必须有数据处理结果输出,哪怕 是输出错误的数据结果,没有输出的算法使毫无意义的。
5)、能行性。解题方法中的任何一个操作步骤在现有计算机软硬件条件下和逻 辑思维中都能够实施实现。
信息技术 (选修1)
算法与程序设计
授课人:胡敏
第一章 揭开计算机解决问题的神秘面纱
1、计算机解决问题的过程
2、算法和算法的描述 3、程序与程序设计语言
1.1、计算机解决问题的过程
具体问题: 华南太阳能设备厂在计划期内拟生产甲、乙、丙三 种适销产品,每件销售收分别为4万元、3万元、2 万元。按工艺规定,甲、乙、丙三种产品都需要在 A、B、C、D四种不同的设备上加工,其加工所需 要的时间见下表。已知A、B、C、D四种设备在计 划期内有效使用台时数分别为12、8、16、12。如 何安排生产可使收入最大?
明确已知和未知 之间的关系 人工求解问题
甲乙丙的产量及总销售额。
写出解题的算法
穷举法
(1)分析问题
x、y、z满足以下关系式
2x+2y+z≤12 X+2y+z ≤8 4x ≤16 4y ≤12 0 ≤x ≤6; 0 ≤y ≤6; 0 ≤z ≤12 0 ≤x ≤8; 0 ≤y ≤4; 0 ≤z ≤8 0 ≤x ≤4 0 ≤y ≤3 0≤x≤4 0 ≤y ≤3 0 ≤z ≤8
解题的目标是:
求出适当的x、y、z 使 f( x、y、z )=4x+3y+2z 取得最大值
(2)设计算法
第一步:把符合条件的x、y、z代入f( x、y、z )=4x+3y+2z
第二步:在所有 f( x、y、z )函数值中,找出最大值
第三步:输出 f( x、y、z )的最大值及x、y、z的值
第四步:结束
以上是我们人类大概的一个解题思路,还不 能让计算机直接执行。
源程序
Dim x As Integer, y As Integer, z As Integer Dim x_max As Integer, y_max As Integer, z_max As Integer Dim f(4, 3, 8) As Single Dim f_max As Single For x = 0 To 4 For y = 0 To 3 For z = 0 To 8 If (2 * x + 2 * y + z <= 12) And (x + 2 * y + z <= 8) Then f(x, y, z) = 4 * x + 3 * y + 2 * z Else f(x, y, z) = 0 End If Next z Next y Next x
r=0 是 输出n的值
结束
否
m=n, n=r
注意对比三种算法描述方式的优劣。
三种算法描述方式的优劣
优点 缺点
自然语言
不需专门训练,通俗易懂
P10
流程图
描述清晰简洁,容易表达选 择结构;利于不同环境的程 序设计.P11 书写方便,格式紧凑,易于理 解,便于向计算机程序设计 语言过渡.P12