高中算法与算法的描述知识分享
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高中算法与算法的描
述
第一章算法与算法的描述
1.算法的定义
算法:就是解决问题的思想方法,对解题过程的精确描述。计算机解决问题的步骤为分析问题、设计算法、编写程序、调试程序。算法是程序设计的“灵魂”,最核心过程。
2.法的特征
一个算法应该具有以下五个重要的特征:
1、有穷性:一个算法必须保证执行有限步之后结束;
2、确定性:算法的每一步骤必须有确切的定义;
3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;
4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
5、可行性:算法中执行的任何计算步都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成;(也称之为有效性)
3.算法的描述方法
算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。
(1)自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。
例1:求圆的周长和面积
算法如下:(自然语言描述法)
(1)输入半径r ;
(2) 计算周长c=2*π*r ;
(3) 计算面积 s=π*r*r ;
(4) 输出周长c,输出面积s ;
(5) 结束
例2:工人每天工作8小时,每小时9元,超过8小时的每小时增加15%的加班费,计算工人每天的应发的日工资。
(1)输入工作小时X
(2)判断X值,分别计算
●X小于8,工资=X*9
●X大于8,工资=X*9+(X-8)*9*0.15
(3)输出工资
(4)结束
练习:求三个数中的最大数。(用自然语言描述)
(2)流程图描述:也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。
例1:求圆的周长和面积
练习:求三个数中的最大数。(用流程图描述)
(3)伪代码描述法:是介于自然语言和计算机程序语言之间的一种算法描述。是专业软件开发人员常用方法。流程图的基本图形及功能:
例1:求圆的周长和面积
input r
c=2*π*r
s=π*r*r
print c,s
练习:求三个数中的最大数。(用伪代码描述)
4.程序与程序语言
(1)程序的定义:程序实际上是一组及其操作的指令或语句的序列,是算法的一种描述
(2)程序的基本特征:程序一共有七个基本特征
1、程序中,每一个算法的步骤对应着程序设计语言的一个或多个语句,每个语句对应一个或者多个操作。每个操作都要求有执行对象,并且根据对象状态变化形成动作的效果,同事可变的对象用变量来表示,变量的值的变化则可通过操作赋值来完成。
2、除非特殊索命程序都是从第一条语句开始顺序开始向下执行。
3、程序总是施行与操作与某些对象,这些对象通常称为数据。
4、这些数据一般应该有属性和取值范围,即类型说明。
5、有时语句要求执行者作出判断,即在某种条件成立情况下执行一条或一组语句,否则执行另一条或一组语句。
6、一条或一组语句可能需要执行一次以上,当一条或一组语句要重复时,必须指明重复的次数或重复的条件。
7、程序本身是一个静态的实体,而执行语句的进程是动态的。
(3)程序的基本结构:顺序结构、选择结构、循环结构。
(4)程序设计语言的的产生和发展
1、机器语言:二进制代码指令
2、汇编语言:类似英语缩略词且带有助记性符号的语言,每条汇编指令和一条机器指令相对应,只是指令码和操作数都采用符号形式。而这种语言是不能被机器直接接受,必须用一种语言翻译器将程序中的每条语句翻译成机器语言才能执行。
3、高级语言:高级语言本身不是一种语言,只是一类语言的分类。用高级语言编写的程序必须经过翻译器将其翻译成机器语言,才能在计算机上执行。常见的高级语言:C语言、C++、pascal、java、C#、VB、Basic
(5)程序的编辑和翻译
1、程序的编辑:以汇编语言或者高级语言所编写的程序被称为“源代码”,这些代码需要我们逐一的输入到计算机中。并把他们以文件的形式保存起来,这个过程称为程序的编辑
2、程序的翻译:前面的学习中使我们知道,计算机只能识别和执行二进制的机器语言代码,而我们用级语言或汇编语言编写的程序要想被计算机执行,必须翻译成机器语言程序,最终才能被计算机执行。高级语言的翻译程序一般则有两种类型:编译程序和解释程序。
练习题:
1 下面对算法描述正确的一项是:()
A、算法只能用自然语言来描述
B、算法只能用图形方式来表示
C、同一问题可以有不同的算法
D、同一问题的算法不同,结果必然不同
2.下面关于算法描述正确的是()
(A) 算法不可以用自然语言表示
(B) 算法只能用框图来表示
(C) 一个算法必须保证它的执行步骤是有限的
(D) 算法的框图表示法有0个或多个输入,但只能有一个输出
3、图形符号" "在算法流程图描述中表示( ).
A 处理或运算的功能
B 输入输出操作
C 用来判断条件是否满足需求
D 算法的开始或结束
4、以下哪个是算法的描述方法?( )
A 流程图描述法
B 枚举法
C 顺序法
D 列表法
5、下面的语句是一个计算机程序的操作说明:
(1)初始值为x=1,y=1,z=0,n=0;
(2)n=n+1(将当前n+1的值赋予新的n);
(3)x=x+2(将当前x+2的值赋予新的x);
(4)y=2y(将当前2y的值赋予新的y);
(5)z=z+xy(将当前z+xy的值赋予新的z);
(6)如果z>7,则执行语句(7),否则返回语句(2)继续进行;
(7)打印n,z;
(8)程序终止.
由语句(7)打印出的数值为 ______,_______.