资源简介 (共25张PPT)一、 算法的概念及描述信息技术 必修1 数据与计算算法与问题解决第二章知识过关1. 算法的概念广义地讲,“算法”指的是解决问题或完成任务的一系列步骤。在计算机科学领域内,“算法”指的是用计算机解决问题的步骤,是为了解决问题而需要让计算机有序执行的无歧义的、有限步骤的集合。2. 算法的特征特征 含义有穷性 一个算法的处理步骤必须是有限的可行性 一个算法中的每一步操作与要求都应该是算法执行者(人或者机器)可以实施的,同时是在现实环境中能做到并且能在有限的时间内完成的确定性 算法中对于每个步骤的执行的描述必须是明确的0个或多个输入 初始数据可以从外界输入,也可包含在算法中1个或多个输出 算法必须有问题求解的结果,包含至少一个输出3. 算法的要素要素 含义数据 用算法解决问题时,必须明确参与运算的初始数据、运算时产生的中间数据以及代表问题解决的结果数据运算 对数据进行运算时,必须明确每一步的运算是什么、对哪些数据进行运算等控制转移 在算法执行过程中,有时需要根据数据或运算结果的特点进行不同的处理,这时就需要运用控制转移来执行不同的操作。比如,控制程序实现分支结构或者循环结构4. 算法的描述(1)常见的算法描述方式有自然语言、流程图、伪代码和计算机程序设计语言等。描述方式 含义自然语言 指人们在日常生活中交流时使用的语言。用自然语言描述算法的方式通俗易懂,但缺乏直观性和简洁性,容易产生歧义流程图 流程图用一些图形符号表示规定的操作,并用带箭头的流程线连接这些图形符号,表示操作进行的方向。用流程图描述算法的方式结构清晰,寓意明确伪代码 指一种比较直观简洁的、符号接近计算机程序代码的算法描述方式,风格类似于计算机程序设计语言,但又不是真正的可以被计算机理解的代码计算机程序 设计语言 为了让计算机帮助人们真正解决问题,需要将算法用计算机能够理解的语言来描述,这种语言称为计算机程序设计语言(2)常用的流程图基本图形及其功能图形 名称 功能开始/结束符 表示算法的开始或结束输入/输出框 表示算法中数据的输入或输出处理框 表示算法中数据的运算处理判断框 表示算法中的条件判断流程线 表示算法中的流向连接点 表示算法中的转接(3)伪代码的语法约定①条件判断语句格式1:If条件then (语句序列1)Else (语句序列2)格式2:If条件then (语句序列1)②循环语句格式:while条件 (循环体)典例精选【例1】 下列关于算法的说法,错.误.的是( )A. 算法是解决问题的有序步骤B. 算法有输入、输出、确定性、可行性、有穷性等基本特征C. 解决同一问题的算法只有一种D. 描述算法的方法主要有自然语言描述法、流程图描述法、伪代码法【解析】 本题主要考查算法的描述。算法是解决问题的有序步骤;算法有输入、输出、确定性、可行性、有穷性等基本特征;解决同一问题的算法有多种;描述算法的方法主要有自然语言描述法、流程图描述法、伪代码描述法。C【例2】 在用万能求根公式求一元二次方程的解的算法中,在方程不存在实数解的情况下,也要求输出“方程无实数根”。这体现了算法特征中的( )A. 有穷性 B. 可行性C. 有0个或多个输入 D. 有1个或多个输出【解析】 本题考查算法的特征。分析题意可知,求一元二次方程实数根的算法,在方程无实根时也要求有输出,这与算法“有输出”的特征吻合,即算法一定要有结果输出。D【例3】 计算机编程解决“斐波那契数列(每一项都是前两项之和)”问题的过程由以下4个步骤组成:①用Python中的循环结构编写程序②调试运行程序,发现错误并进行修正③设计算法:设计输入、处理、输出等一系列算法④抽象与建模:用数学符号F(0)=F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N)描述解决问题的计算模型的正确顺序是( )A.①②③④ B.③④①②C.④③②① D.④③①②【解析】 本题考查算法的表示。先抽象与建模,再设计算法,接着编写程序,最后调试运行程序。D【例4】 某算法用伪代码描述如下。输入两个正整数x,yif x<y then z←(y-x)/2Else z←(x-y)/2输出z关于上述算法,下列说法中正确的是( )A. 不符合“可行性”特征 B. 无法用流程图描述C. 运用了循环结构的控制转移 D. z为正整数x与y差值的一半【解析】 本题考查算法及其描述。题中用伪代码来描述算法,其每一个步骤都有明确的作用和含义,符合“可行性”等算法特征。本题的算法可以用自然语言、流程图等方式来描述。由伪代码可知,该算法运用了分支结构的控制转移。为了保证x、y的差为正,需要对x与y的大小关系进行判断,z为正整数x与y差值的一半,D正确。D【例5】 “梅森素数”指的是符合条件m=2p-1的数,其中指数p与整数m均为素数。小李想找出10000以内所有“梅森素数”,设计算法过程如下:①设计核心算法:如何判断素数②调试运行程序,重点检测边界条件③借助Python语言,通过具体编程实现④将问题抽象成条件的判断与素数的判断,并完成建模下列选项中,解决该问题的过程的正确顺序是( )A. ①②③④ B. ②①④③C. ④①③② D. ①④②③【解析】 本题考查算法的表示。抽象与建模是第一步,设计算法是第二步,计算机编程实现是第三步,调试程序是最后一步。C自我检测1. 下列关于算法的说法,正确的是( )A. 算法解决问题的一般过程依次为“设计算法—抽象与建模—描述算法”B. 数据、运算和控制转移是算法的三大要素C. 任何算法都必须有至少一个输入数据和一个输出数据D. 同一种算法只能用一种表示方法【解析】 本题主要考查算法的描述。算法解决问题的一般过程依次为“抽象与建模—设计算法—描述算法”;数据、运算和控制转移是算法的三大要素;算法可以没有输入,但必须有输出;同一种算法能用多种表示方法,如伪代码、算法流程图等。B2. 编程求解问题时,要求输出“所有的偶数”。这一要求违.反.了算法的特征中的( )A. 有输出 B. 确定性C. 有穷性 D. 可行性【解析】 本题考查算法的特征。由于不可能输出所有的偶数(无穷多个),C正确。C3. 下列关于算法描述的说法,错.误.的是( )A. 流程图用特定的简单图形符号表示规定操作,结构清晰、寓意明确B. 用自然语言描述算法通俗易懂,但容易出现歧义,且表述烦琐C. 伪代码的语法接近计算机程序语言,描述简练,且能够被计算机执行D. 用计算机程序设计语言描述的算法,可以被计算机理解和执行【解析】 伪代码不能被计算机执行。伪代码指的是一种比较直观简洁的、符号接近计算机程序代码的算法描述方式,其风格很像计算机程序设计语言,但又不是真正的可以被计算机理解的代码。C4. 下面流程图所表述的算法,违.反.的算法特征是( )A. 该算法没有数据输入B. 该算法没有数据输出C. 不符合算法的有穷性特征D. 不符合算法的确定性特征【解析】 本题主要考查算法的特征。分析流程图可知,该算法会陷入“死循环”,不符合算法的有穷性特征。C5. 下列问题中,不.能.用算法来描述的是( )A. 已知圆锥的底面半径和高,求表面积和体积B. 求方程y=2x+1的所有整数解C. 计算某班同学的英语平均分D. 求一元二次方程ax2+bx+c=0(a≠0)的两个实数解【解析】 本题主要考查算法的描述。方程y=2x+1的所有整数解有无数个,不满足算法的有穷性特征,因此不能用算法来描述。B6.下列选项中,可以用于描述算法的有( )①中文 ②流程图 ③伪代码 ④计算机程序设计语言 ⑤英文A. ①④⑤ B. ②③⑤C. ①②③④ D. ①②③④⑤【解析】 算法的描述方式有自然语言、流程图、伪代码和计算机程序设计语言。D7. 费马平方和定理:质数能表示为两个平方数之和的充分必要条件是该质数被4除余1,如13=22+32。现通过编程来验证3和99之间所有质数是否符合费马平方和定理。解决该问题的算法步骤如下:①列举a在[1,]范围内的所有整数,计算对应的b,即b=。②变量n表示3和99之间的数,变量a和b的平方表示两个平方数,即n=a2+ b2。③若根据质数n除以4余1能够找到整数b,则符合定理。④判断n是否为质数。⑤若根据质数n除以4余3无法找到整数b,则符合定理。正确的算法步骤顺序是( )A. ②④①③⑤ B. ②④⑤①③C. ②①④③⑤ D. ②①④⑤③A【解析】 本题主要考查利用算法解决问题。由选项可知,首先是②变量n表示3和99之间的数,变量a和b的平方表示两个平方数,即n= a2+ b2;根据题干可知,接下来判断n是否为质数,即④判断n是否为质数;③⑤没有先后顺序,A正确。8. 某算法用伪代码描述如下:输入一个自然数aif a*2>10 then a←10else a←a+1输出a关于上述算法,下列说法中错.误.的是( )A. 符合算法的可行性特征B. 若输入a的值为6,则输出a的值为7C. 该算法可以用流程图表示D. 该算法最后输出的结果都是不大于10的自然数【解析】 本题主要考查算法的描述。分析伪代码,符合算法的“可行性”特征;若输入a的值为6,则输出a的值为10;该算法可以用流程图表示;该算法最后输出的结果都是不大于10的自然数。B9. 某算法的自然语言描述与流程图表示分别如下:自然语言 第1步:输入一个实数x 第2步:判断x与0的大小关系,若x<0,则y=2x-1,否则y=x2-1 第3步:输出y的值 第4步:算法结束流程图中处理框①、②处可分别填入的是( )A. ①y←x2-1 ②x←2x-1 B. ①y←x2-1 ②y←2x-1C. ①y←2x-1 ②y←x2-1 D. ①x←x2-1 ②y←2x-1B【解析】 对于同一个算法,可以用不同的表示方法来描述。分析自然语言描述和流程图描述,可知自然语言中的第2步对应着流程图中的判断部分。由自然语言可知,处理框①和②的功能是求y的值。在执行过程中,当条件“x<0 ”不成立时,会执行①,否则会执行②。对照自然语言描述,处理框②处是在求解当“x<0 ”成立时的y值,即“y←2x-1”;处理框①处是在求解当“x<0 ”不成立时的y值,即“y←x2-1”。B正确。一、 算法的概念及描述1. 算法的概念广义地讲,“算法”指的是解决问题或完成任务的一系列步骤。在计算机科学领域内,“算法”指的是用计算机解决问题的步骤,是为了解决问题而需要让计算机有序执行的无歧义的、有限步骤的集合。2. 算法的特征特征 含义有穷性 一个算法的处理步骤必须是有限的可行性 一个算法中的每一步操作与要求都应该是算法执行者(人或者机器)可以实施的,同时是在现实环境中能做到并且能在有限的时间内完成的确定性 算法中对于每个步骤的执行的描述必须是明确的0个或多个输入 初始数据可以从外界输入,也可包含在算法中1个或多个输出 算法必须有问题求解的结果,包含至少一个输出3. 算法的要素要素 含义数据 用算法解决问题时,必须明确参与运算的初始数据、运算时产生的中间数据以及代表问题解决的结果数据运算 对数据进行运算时,必须明确每一步的运算是什么、对哪些数据进行运算等控制转移 在算法执行过程中,有时需要根据数据或运算结果的特点进行不同的处理,这时就需要运用控制转移来执行不同的操作。比如,控制程序实现分支结构或者循环结构4. 算法的描述(1)常见的算法描述方式有自然语言、流程图、伪代码和计算机程序设计语言等。描述方式 含义自然语言 指人们在日常生活中交流时使用的语言。用自然语言描述算法的方式通俗易懂,但缺乏直观性和简洁性,容易产生歧义流程图 流程图用一些图形符号表示规定的操作,并用带箭头的流程线连接这些图形符号,表示操作进行的方向。用流程图描述算法的方式结构清晰,寓意明确伪代码 指一种比较直观简洁的、符号接近计算机程序代码的算法描述方式,风格类似于计算机程序设计语言,但又不是真正的可以被计算机理解的代码计算机程序 设计语言 为了让计算机帮助人们真正解决问题,需要将算法用计算机能够理解的语言来描述,这种语言称为计算机程序设计语言(2)常用的流程图基本图形及其功能图形 名称 功能开始/结束符 表示算法的开始或结束输入/输出框 表示算法中数据的输入或输出处理框 表示算法中数据的运算处理判断框 表示算法中的条件判断流程线 表示算法中的流向连接点 表示算法中的转接(3)伪代码的语法约定①条件判断语句格式1:If条件then (语句序列1)Else (语句序列2)格式2:If条件then (语句序列1)②循环语句格式:while条件 (循环体)【例1】 下列关于算法的说法,错误的是( C )A. 算法是解决问题的有序步骤B. 算法有输入、输出、确定性、可行性、有穷性等基本特征C. 解决同一问题的算法只有一种D. 描述算法的方法主要有自然语言描述法、流程图描述法、伪代码法【解析】 本题主要考查算法的描述。算法是解决问题的有序步骤;算法有输入、输出、确定性、可行性、有穷性等基本特征;解决同一问题的算法有多种;描述算法的方法主要有自然语言描述法、流程图描述法、伪代码描述法。【例2】 在用万能求根公式求一元二次方程的解的算法中,在方程不存在实数解的情况下,也要求输出“方程无实数根”。这体现了算法特征中的( D )A. 有穷性B. 可行性C. 有0个或多个输入D. 有1个或多个输出【解析】 本题考查算法的特征。分析题意可知,求一元二次方程实数根的算法,在方程无实根时也要求有输出,这与算法“有输出”的特征吻合,即算法一定要有结果输出。【例3】 计算机编程解决“斐波那契数列(每一项都是前两项之和)”问题的过程由以下4个步骤组成:①用Python中的循环结构编写程序②调试运行程序,发现错误并进行修正③设计算法:设计输入、处理、输出等一系列算法④抽象与建模:用数学符号F(0)=F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N)描述解决问题的计算模型的正确顺序是( D )A.①②③④B.③④①②C.④③②①D.④③①②【解析】 本题考查算法的表示。先抽象与建模,再设计算法,接着编写程序,最后调试运行程序。【例4】 某算法用伪代码描述如下。输入两个正整数x,yif x<y then z←(y-x)/2Else z←(x-y)/2输出z关于上述算法,下列说法中正确的是( D )A. 不符合“可行性”特征B. 无法用流程图描述C. 运用了循环结构的控制转移D. z为正整数x与y差值的一半【解析】 本题考查算法及其描述。题中用伪代码来描述算法,其每一个步骤都有明确的作用和含义,符合“可行性”等算法特征。本题的算法可以用自然语言、流程图等方式来描述。由伪代码可知,该算法运用了分支结构的控制转移。为了保证x、y的差为正,需要对x与y的大小关系进行判断,z为正整数x与y差值的一半,D正确。【例5】 “梅森素数”指的是符合条件m=2p-1的数,其中指数p与整数m均为素数。小李想找出10000以内所有“梅森素数”,设计算法过程如下:①设计核心算法:如何判断素数②调试运行程序,重点检测边界条件③借助Python语言,通过具体编程实现④将问题抽象成条件的判断与素数的判断,并完成建模下列选项中,解决该问题的过程的正确顺序是( C )A. ①②③④B. ②①④③C. ④①③②D. ①④②③【解析】 本题考查算法的表示。抽象与建模是第一步,设计算法是第二步,计算机编程实现是第三步,调试程序是最后一步。1. 下列关于算法的说法,正确的是( B )A. 算法解决问题的一般过程依次为“设计算法—抽象与建模—描述算法”B. 数据、运算和控制转移是算法的三大要素C. 任何算法都必须有至少一个输入数据和一个输出数据D. 同一种算法只能用一种表示方法【解析】 本题主要考查算法的描述。算法解决问题的一般过程依次为“抽象与建模—设计算法—描述算法”;数据、运算和控制转移是算法的三大要素;算法可以没有输入,但必须有输出;同一种算法能用多种表示方法,如伪代码、算法流程图等。2. 编程求解问题时,要求输出“所有的偶数”。这一要求违反了算法的特征中的( C )A. 有输出B. 确定性C. 有穷性D. 可行性【解析】 本题考查算法的特征。由于不可能输出所有的偶数(无穷多个),C正确。3. 下列关于算法描述的说法,错误的是( C )A. 流程图用特定的简单图形符号表示规定操作,结构清晰、寓意明确B. 用自然语言描述算法通俗易懂,但容易出现歧义,且表述烦琐C. 伪代码的语法接近计算机程序语言,描述简练,且能够被计算机执行D. 用计算机程序设计语言描述的算法,可以被计算机理解和执行【解析】 伪代码不能被计算机执行。伪代码指的是一种比较直观简洁的、符号接近计算机程序代码的算法描述方式,其风格很像计算机程序设计语言,但又不是真正的可以被计算机理解的代码。4. 下面流程图所表述的算法,违反的算法特征是( C )A. 该算法没有数据输入B. 该算法没有数据输出C. 不符合算法的有穷性特征D. 不符合算法的确定性特征【解析】 本题主要考查算法的特征。分析流程图可知,该算法会陷入“死循环”,不符合算法的有穷性特征。5. 下列问题中,不能用算法来描述的是( B )A. 已知圆锥的底面半径和高,求表面积和体积B. 求方程y=2x+1的所有整数解C. 计算某班同学的英语平均分D. 求一元二次方程ax2+bx+c=0(a≠0)的两个实数解【解析】 本题主要考查算法的描述。方程y=2x+1的所有整数解有无数个,不满足算法的有穷性特征,因此不能用算法来描述。6.下列选项中,可以用于描述算法的有( D )①中文 ②流程图 ③伪代码 ④计算机程序设计语言 ⑤英文A. ①④⑤ B. ②③⑤C. ①②③④ D. ①②③④⑤【解析】 算法的描述方式有自然语言、流程图、伪代码和计算机程序设计语言。7. 费马平方和定理:质数能表示为两个平方数之和的充分必要条件是该质数被4除余1,如13=22+32。现通过编程来验证3和99之间所有质数是否符合费马平方和定理。解决该问题的算法步骤如下:①列举a在[1,]范围内的所有整数,计算对应的b,即b=。②变量n表示3和99之间的数,变量a和b的平方表示两个平方数,即n=a2+b2。③若根据质数n除以4余1能够找到整数b,则符合定理。④判断n是否为质数。⑤若根据质数n除以4余3无法找到整数b,则符合定理。正确的算法步骤顺序是( A )A. ②④①③⑤ B. ②④⑤①③C. ②①④③⑤ D. ②①④⑤③【解析】 本题主要考查利用算法解决问题。由选项可知,首先是②变量n表示3和99之间的数,变量a和b的平方表示两个平方数,即n=a2+b2;根据题干可知,接下来判断n是否为质数,即④判断n是否为质数;③⑤没有先后顺序,A正确。8. 某算法用伪代码描述如下:输入一个自然数aif a*2>10 then a←10else a←a+1输出a关于上述算法,下列说法中错误的是( B )A. 符合算法的可行性特征B. 若输入a的值为6,则输出a的值为7C. 该算法可以用流程图表示D. 该算法最后输出的结果都是不大于10的自然数【解析】 本题主要考查算法的描述。分析伪代码,符合算法的“可行性”特征;若输入a的值为6,则输出a的值为10;该算法可以用流程图表示;该算法最后输出的结果都是不大于10的自然数。9. 某算法的自然语言描述与流程图表示分别如下:自然语言 第1步:输入一个实数x 第2步:判断x与0的大小关系,若x<0,则y=2x-1,否则y=x2-1 第3步:输出y的值 第4步:算法结束流程图中处理框①、②处可分别填入的是( B )A. ①y←x2-1 ②x←2x-1B. ①y←x2-1 ②y←2x-1C. ①y←2x-1 ②y←x2-1D. ①x←x2-1 ②y←2x-1【解析】 对于同一个算法,可以用不同的表示方法来描述。分析自然语言描述和流程图描述,可知自然语言中的第2步对应着流程图中的判断部分。由自然语言可知,处理框①和②的功能是求y的值。在执行过程中,当条件“x<0 ”不成立时,会执行①,否则会执行②。对照自然语言描述,处理框②处是在求解当“x<0 ”成立时的y值,即“y←2x-1”;处理框①处是在求解当“x<0 ”不成立时的y值,即“y←x2-1”。B正确。 展开更多...... 收起↑ 资源列表 一、 算法的概念及描述.docx 一、 算法的概念及描述.pptx