第三章 算法基础(解析版)

文档属性

名称 第三章 算法基础(解析版)
格式 zip
文件大小 1.0MB
资源类型 教案
版本资源 粤教版(2019)
科目 信息技术(信息科技)
更新时间 2021-11-29 08:56:46

文档简介

必修1 数据与计算
第三章 算法基础
3.1 体验计算机解决问题的过程
3.1.1 人工解决问题的过程
人工解决问题:明确要解决的问题和给出的条件,分析问题、确定解决问题的方法,解决问题。
3.1.2 计算机解决问题的过程
计算机程序解决问题的过程:分析问题→设计算法→编写程序→调试运行程序。
分析问题:分析问题的需求情况、已知条件、需要解决的问题。
设计算法:分析问题的基础上,给出解决问题的详细方法和步骤。
编写程序:用一种计算机语言工具编写程序,实现算法。
调试运行程序:输入程序,检查程序运行效果,查看结果。
(1)计算机只能识别程序设计语言中所规定的语法规则,哪怕是一个标点符号出错,也会因程序出错而中断运行。
(2)当程序能够顺利运行以后,我们还需要对结果进行验证,因为逻辑错误或计算方法错误,计算机是检查不出来的。
3.2 算法及其描述
3.2.1 算法
1. 算法
算法:是指在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地说,算法就是用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。
2. 算法的特征
(1)有穷性。一个算法在执行有穷步之后必须结束,计算步骤是有限的。
(2)确定性。算法执行的每一步骤都必须有确切的定义。
(3)数据输入。一个算法必须有0个或多个数据输入。
(4)数据输出。一个算法有1个或多个数据输出,没有输出的算法是毫无意义的。
(5)可行性。算法中每个计算步骤都可以在有限时间内完成。
3.2.2 算法的描述
1. 描述算法的常用方法
(1)用自然语言描述算法:使用日常交流所用语言来描述算法 (如汉语、英语等)
(2)用流程图描述算法:使用程序框图来描述算法
(3)用伪代码描述算法:介于自然语言与计算机语言之间的文字与符号,它不使用图形符号,书写方便 ,易于理解。
2. 三种基本控制结构
(1)顺序结构:表示程序中的各步操作按出现的先后顺序执行
(2)选择结构:表示程序的处理步骤出现了分支,需要根据某一特定的条件选择其中的一个分支执行;选择结构有单选择、双选择、多选择3种。
(3)循环结构:表示程序反复执行某个或某些操作,直到判断条件为假(或为真)时才可终止循环
3.3 计算机程序与程序设计语言
3.3.1 计算机程序
计算机程序:是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,简而言之,计算机程序就是指计算机可以识别运行的指令集合。
计算机组成:运算器、控制器、存储器、输入设备和输出设备。运算器和控制器一般做在一个超大规模的集成电路中,合称中央处理器,即CPU。
计算机的工作过程:存储程序,程序控制。
3.3.2 计算机程序设计语言
计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的发展历程。
(1)机器语言:由0和1表示的二进制代码组成的语言,能被计算机直接接收和执行。
(2)汇编语言:使用了一种类似英文缩略词且带有助记性符号的语言,但是,计算机不能直接识别和执行这些符号,需要一个专门的语言翻译器,负责将程序中的每条语句都翻译成用二进制数表示的机器语言。如:MOV AL,9;ADD AL,8。
(3)高级语言:接近于数学语言和人的自然语言,不再过度依赖某种特定的机器或环境;同理,高级编程语言也不能被计算机直接识别和执行。
第一种高级语言,Fortran语言,主要用于科学和工程计算。
其他高级编程语言:C、Pascal、Basic、VC、VB、Delphi、Java、Python等。
用高级语言编写的程序也不能直接被计算机识别和执行,必须经过编译程序或解释程序将其翻译成机器语言。
所谓编译程序是指计算机把高级语言程序的每一条语句都编译成机器语言,并保存成二进制文件后才运行的程序。解释程序是指计算机在执行高级语言程序时,逐条语句解释成机器语言并立即执行的程序。
第二章 算法基础 学业测试
一、单选题
1.人们利用计算机解决问题的基本过程为( )。
①调试运行程序 ②分析问题 ③设计算法 ④问题解决 ⑤编写程序
A.①②③④⑤ B.②④③⑤① C.④②③⑤① D.②③⑤①④
【答案】:D
【解析】:见教材P46,编写计算机程序的过程是分析问题、设计算法、编写程序、调试运行程序、问题解决。
2.下面关于算法的描述,正确的是( )。
A.算法不可以用自然语言描述
B.算法只能用流程图来描述
C.一个算法必须保证它的执行步骤是有限的
D.算法的流程图表示法有零个或多个输入,但只能有一个输出
【答案】:C
【解析】:见教材P48页算法的特征和描述,算法可用自然语言、流程图、伪代码来描述,具有有穷性、确定性、0或多个输入,1或多个输出,可行性等特点,C项正确。
3.计算机能直接识别、理解执行的语言是( )。
A.汇编语言 B.Python语言 C.Basic语言 D.机器语言
【答案】:D
【解析】:见教材P55,有关机器语言的说明。
4.随着数据的快速增长,人工处理大量数据的效率与计算机处理相比较正变得( )。
A.更高 B.更低 C.一样 D.无法比较
【答案】:B
【解析】:见教材43,数据量变多时,计算机处理效率高于人工处理。
5.关于用计算机程序解决问题说法中正确的是( )。
A.利用计算机的高速运算能力提高信息处理能力
B.提高信息加工的效率
C.针对具体问题以专门的程序来实现信息加工的自动化
D.以上说法都正确
【答案】:D
【解析】:ABC三项的说法都正确,所以选D。
6.小明编写好解密程序后,调试运行时,程序没有报错且能顺利运行,但不正确解密,造成这个结果的原因是( )。
A.解密算法逻辑错误 B.程序语句语法错误
C.程序过期了 D.程序设计窗口配置不对
【答案】:A
【解析】:根据题目描述,程序能够顺利运行,但不能正确解密,判定是算法的逻辑错误,如果语法错误,程序就不能运行,程序生成执行文件后,可长期运行,不存在过期的问题,程序设计窗口配置与顺序不参解密没有任何关系,所以选A项。
7.算法的重要特征不包括以下哪一项?( )
A.有穷性 B.确定性 C.数据输出 D.唯一性
【答案】:D
【解析】:算法的特征包括:有穷性、确定性、数据输入、数据输出、可行性,不包含唯一性。
8.执行下面的流程图,最后s=( )。
A.1 B.720 C.120 D.6
【答案】:A
【解析】:由于s=s×1,本程序,不管它行动多少次,s均为1,所以选A项。
9.下列关于算法的叙述,正确的是( )。
A.解决一个问题的算法只有一种
B.有穷性是算法的基本特征之一
C.可行性不属于算法基本特征
D.算法对程序设计没有任何作用
【答案】:B
【解析】:算法的特征包括:有穷性、确定性、数据输入、数据输出、可行性,有些问题可以有多种方法解决,A项说法不对,CD表述也均有问题,所以选B。
10.计算机是一种数字化电子设备,尽管其中的电路设计非常复杂,但工作时每段电路只有两种状态,可形象地称为开和关。当把控制计算机操作的指令与存储数据的电路状态用二进制数字1和0对应表示时,人们就可以事先把需要执行的指令和处理的数据用1、0组成的代码编写好程序,输入计算机时把1、0代码直接转换为相应的开关电路,就可以让计算机工作了。这些1、0代码就好像是计算机能听得懂的语言而被称为( ),这种语言难学难记难用,属于低级语言。随着计算机的发展,工程师们相继开发出许多贴近人们阅读理解习惯的( )系统,如BASIC、Python、C、Visual Basic等程序设计语言。
A.机器语言 汇编语言 B.汇编语言 高级语言
C.机器语言 高级语言 D.机器语言 自然语言
【答案】:C
【解析】:计算机能直接运行的语言是机器语言,贴近人们阅读理解的语言是高级语言,所以选C项。
11.流程图中表示判断的是( )。
A.矩形框 B.菱形框 C.圆形框 D.桐圆形框
【答案】:B
【解析】:见教材P50,根据流程图的基本图形可知,表示判断的是菱形框。所以选B。
12.下列选项都是属于高级语言的是( )
A.汇编语言、机器语言 B.汇编语言、Basic语言
C.Basic语言、Python语言 D.机器语言、Python语言
【答案】:C
【解析】:常见的高级语言包括Basic、C++、VB、Pascal、Python等,C项正确。
13.不能被计算机直接识别、理解执行的语言需要转换,这种转换是( )。
A.人工转换或机器转换
B.计算机语言提供的解释器或编译器负责转换
C.操作系统负责转换
D.人工智能技术中的自然语言理解
【答案】:B
【解析】:见教材P57页高级语言中的相关说明可知,B项正确。
14.( )不是程序的基本控制结构。
A.顺序结构 B.选择结构 C.循环结构 D.组合结构
【答案】:D
【解析】:见教材P52页,程序的三种基本结构是:顺序结构、选择结构、循环结构,所以D项不是。
15.程序以( )代码的形式存放在存储器中,并采用( )作为数字计算机的数制基础。
A.二进制、十进制 B.二进制、二进制
C.二进制、八进制 D.二进制、十六进制
【答案】:B
【解析】:计算机以二进制为存储形式,数据基础也是二进制,所以选B项。
16.在编制计算机解决问题的过程中,需要对解决问题的算法进行描述,最容易将算法转换为代码的算法描述方法是( )
A.自然语言描述 B.流程图描述
C.伪代码描述 D.N-S图
【答案】:C
【解析】:见教材P49页算法的描述可知,伪代码是最容易转换成计算机程序的,所以选C。 N-S图,也被称为盒图或NS图。是结构化编程中的一种可视化建模,一般采用图文模式。
17.关于计算机解决问题的过程,以下说法错误的是( )
A.分析问题需要搞清楚需求情况、已知条件和待解问题
B.设计算法需要给出解决问题的详细方法和步骤
C.编写程序必须使用特定的程序语言
D.调试运行程序是检查程序能否按预期的效果执行
【答案】:C
【解析】:根据教材P57可知,编写程序的高级语言类型较多,不需要使用特定的程序语言,所以D项不对。
二、判断题
1.对于简单的问题和数据量不多的问题,一般采用人工方法处理。
【答案】:√
【解析】:简单问题采用人工方法处理效率更高,所以此题正确。
2.运用计算机来解决数据问题,肯定比人工解决问题更高效、更快捷。
【答案】:×
【解析】:处理数据量大的问题,计算机有明显的优势,但是如果是简单的、数据量非常少的问题人工会更高效和快捷。
3.编写计算机程序要经过分析问题、设计算法、编写程序、调试运行程序等步骤。
【答案】:√
【解析】:见教材P46,此题说法正确。
4.算法是能被计算机执行的动作或指令的有穷集合。
【答案】:√
【解析】:见教材P48页,此题说法正确。
5.算法具有确定性,每个问题的解决,只有一种确定的算法。
【答案】:×
【解析】:算法具有确定性,但是有些问题可以有多少解法,制作出多种算法。
6.一个算法可以没有输入,但是必须要有输出。
【答案】:√
【解析】:见教材P49,根据算法的特征可知,算法的输入数据是0或多个,输出有一个或多个,题目说法正确。
7.算法只能用自然语言和流程图来描述。
【答案】:×
【解析】:见教材P49页,算法的描述可以是自然语言、流程图、伪代码等。所以此题错。
8.顺序结构的程序只能按自下而上的顺序执行。
【答案】:×
【解析】:顺序结构的程序是自上而下的顺序执行,所以此题错。
9.计算机程序必须转成二进制代码才能运行。
【答案】:√
【解析】:计算机工作在二进制的数制下,程序必须编译为二进制代码才能运行,所以此题正确。
10.高级语言更接近于数学语言和人的自然语言。
【答案】:√
【解析】:见P57页,为书上原文,说法正确。
三、应用题
已知a=5,b=10,请写出交换a,b的值的伪代码。
【答案】:c=a;
a=b;
b=c;
【解析】:为了防止a,b相互覆盖,在计算机程序中,不能写成纯数学式:a=b;b=a表示交换a,b的值,必须设置一个中间变量实现交换。
第 5 页 共 8 页必修1 数据与计算
第三章 算法基础
3.1 体验计算机解决问题的过程
3.1.1 人工解决问题的过程
人工解决问题:明确要解决的问题和给出的条件,分析问题、确定解决问题的方法,解决问题。
3.1.2 计算机解决问题的过程
计算机程序解决问题的过程:分析问题→设计算法→编写程序→调试运行程序。
分析问题:分析问题的需求情况、已知条件、需要解决的问题。
设计算法:分析问题的基础上,给出解决问题的详细方法和步骤。
编写程序:用一种计算机语言工具编写程序,实现算法。
调试运行程序:输入程序,检查程序运行效果,查看结果。
(1)计算机只能识别程序设计语言中所规定的语法规则,哪怕是一个标点符号出错,也会因程序出错而中断运行。
(2)当程序能够顺利运行以后,我们还需要对结果进行验证,因为逻辑错误或计算方法错误,计算机是检查不出来的。
3.2 算法及其描述
3.2.1 算法
1. 算法
算法:是指在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地说,算法就是用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。
2. 算法的特征
(1)有穷性。一个算法在执行有穷步之后必须结束,计算步骤是有限的。
(2)确定性。算法执行的每一步骤都必须有确切的定义。
(3)数据输入。一个算法必须有0个或多个数据输入。
(4)数据输出。一个算法有1个或多个数据输出,没有输出的算法是毫无意义的。
(5)可行性。算法中每个计算步骤都可以在有限时间内完成。
3.2.2 算法的描述
1. 描述算法的常用方法
(1)用自然语言描述算法:使用日常交流所用语言来描述算法 (如汉语、英语等)
(2)用流程图描述算法:使用程序框图来描述算法
(3)用伪代码描述算法:介于自然语言与计算机语言之间的文字与符号,它不使用图形符号,书写方便 ,易于理解。
2. 三种基本控制结构
(1)顺序结构:表示程序中的各步操作按出现的先后顺序执行
(2)选择结构:表示程序的处理步骤出现了分支,需要根据某一特定的条件选择其中的一个分支执行;选择结构有单选择、双选择、多选择3种。
(3)循环结构:表示程序反复执行某个或某些操作,直到判断条件为假(或为真)时才可终止循环
3.3 计算机程序与程序设计语言
3.3.1 计算机程序
计算机程序:是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,简而言之,计算机程序就是指计算机可以识别运行的指令集合。
计算机组成:运算器、控制器、存储器、输入设备和输出设备。运算器和控制器一般做在一个超大规模的集成电路中,合称中央处理器,即CPU。
计算机的工作过程:存储程序,程序控制。
3.3.2 计算机程序设计语言
计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的发展历程。
(1)机器语言:由0和1表示的二进制代码组成的语言,能被计算机直接接收和执行。
(2)汇编语言:使用了一种类似英文缩略词且带有助记性符号的语言,但是,计算机不能直接识别和执行这些符号,需要一个专门的语言翻译器,负责将程序中的每条语句都翻译成用二进制数表示的机器语言。如:MOV AL,9;ADD AL,8。
(3)高级语言:接近于数学语言和人的自然语言,不再过度依赖某种特定的机器或环境;同理,高级编程语言也不能被计算机直接识别和执行。
第一种高级语言,Fortran语言,主要用于科学和工程计算。
其他高级编程语言:C、Pascal、Basic、VC、VB、Delphi、Java、Python等。
用高级语言编写的程序也不能直接被计算机识别和执行,必须经过编译程序或解释程序将其翻译成机器语言。
所谓编译程序是指计算机把高级语言程序的每一条语句都编译成机器语言,并保存成二进制文件后才运行的程序。解释程序是指计算机在执行高级语言程序时,逐条语句解释成机器语言并立即执行的程序。
第二章 算法基础 学业测试
一、单选题
1.人们利用计算机解决问题的基本过程为( )。
①调试运行程序 ②分析问题 ③设计算法 ④问题解决 ⑤编写程序
A.①②③④⑤ B.②④③⑤① C.④②③⑤① D.②③⑤①④
2.下面关于算法的描述,正确的是( )。
A.算法不可以用自然语言描述
B.算法只能用流程图来描述
C.一个算法必须保证它的执行步骤是有限的
D.算法的流程图表示法有零个或多个输入,但只能有一个输出
3.计算机能直接识别、理解执行的语言是( )。
A.汇编语言 B.Python语言 C.Basic语言 D.机器语言
4.随着数据的快速增长,人工处理大量数据的效率与计算机处理相比较正变得( )。
A.更高 B.更低 C.一样 D.无法比较
5.关于用计算机程序解决问题说法中正确的是( )。
A.利用计算机的高速运算能力提高信息处理能力
B.提高信息加工的效率
C.针对具体问题以专门的程序来实现信息加工的自动化
D.以上说法都正确
6.小明编写好解密程序后,调试运行时,程序没有报错且能顺利运行,但不正确解密,造成这个结果的原因是( )。
A.解密算法逻辑错误 B.程序语句语法错误
C.程序过期了 D.程序设计窗口配置不对
7.算法的重要特征不包括以下哪一项?( )
A.有穷性 B.确定性 C.数据输出 D.唯一性
8.执行下面的流程图,最后s=( )。
A.1 B.720 C.120 D.6
9.下列关于算法的叙述,正确的是( )。
A.解决一个问题的算法只有一种
B.有穷性是算法的基本特征之一
C.可行性不属于算法基本特征
D.算法对程序设计没有任何作用
10.计算机是一种数字化电子设备,尽管其中的电路设计非常复杂,但工作时每段电路只有两种状态,可形象地称为开和关。当把控制计算机操作的指令与存储数据的电路状态用二进制数字1和0对应表示时,人们就可以事先把需要执行的指令和处理的数据用1、0组成的代码编写好程序,输入计算机时把1、0代码直接转换为相应的开关电路,就可以让计算机工作了。这些1、0代码就好像是计算机能听得懂的语言而被称为( ),这种语言难学难记难用,属于低级语言。随着计算机的发展,工程师们相继开发出许多贴近人们阅读理解习惯的( )系统,如BASIC、Python、C、Visual Basic等程序设计语言。
A.机器语言 汇编语言 B.汇编语言 高级语言
C.机器语言 高级语言 D.机器语言 自然语言
11.流程图中表示判断的是( )。
A.矩形框 B.菱形框 C.圆形框 D.桐圆形框
12.下列选项都是属于高级语言的是( )
A.汇编语言、机器语言 B.汇编语言、Basic语言
C.Basic语言、Python语言 D.机器语言、Python语言
13.不能被计算机直接识别、理解执行的语言需要转换,这种转换是( )。
A.人工转换或机器转换
B.计算机语言提供的解释器或编译器负责转换
C.操作系统负责转换
D.人工智能技术中的自然语言理解
14.( )不是程序的基本控制结构。
A.顺序结构 B.选择结构 C.循环结构 D.组合结构
15.程序以( )代码的形式存放在存储器中,并采用()作为数字计算机的数制基础。
A.二进制、十进制 B.二进制、二进制
C.二进制、八进制 D.二进制、十六进制
16.在编制计算机解决问题的过程中,需要对解决问题的算法进行描述,最容易将算法转换为代码的算法描述方法是( )
A.自然语言描述 B.流程图描述
C.伪代码描述 D.N-S图
17.关于计算机解决问题的过程,以下说法错误的是( )
A.分析问题需要搞清楚需求情况、已知条件和待解问题
B.设计算法需要给出解决问题的详细方法和步骤
C.编写程序必须使用特定的程序语言
D.调试运行程序是检查程序能否按预期的效果执行
二、判断题
1.对于简单的问题和数据量不多的问题,一般采用人工方法处理。
2.运用计算机来解决数据问题,肯定比人工解决问题更高效、更快捷。
3.编写计算机程序要经过分析问题、设计算法、编写程序、调试运行程序等步骤。
4.算法是能被计算机执行的动作或指令的有穷集合。
5.算法具有确定性,每个问题的解决,只有一种确定的算法。
6.一个算法可以没有输入,但是必须要有输出。
7.算法只能用自然语言和流程图来描述。
8.顺序结构的程序只能按自下而上的顺序执行。
9.计算机程序必须转成二进制代码才能运行。
10.高级语言更接近于数学语言和人的自然语言。
三、应用题
已知a=5,b=10,请写出交换a,b的值的伪代码。
第 3 页 共 6 页