第二章 课时3 用算法解决问题的过程 教案 浙教版(2019)必修1(课件 学案 教案三份打包)

资源下载
  1. 二一教育资源

第二章 课时3 用算法解决问题的过程 教案 浙教版(2019)必修1(课件 学案 教案三份打包)

资源简介

课时3 用算法解决问题的过程
课时目标
1.了解计算机编程解决问题的一般过程,解决编程过程中遇到的问题。2.学会通过抽象与建模、设计算法、编写程序、调试运行的步骤去解决。
使用计算机解决问题的一般过程为:抽象与建模、设计算法和描述算法。
1.抽象与建模
抽象与建模指的是从现实项目的真实情境中提炼出核心要素并加以确定或假设,最终定义出一个有明确已知条件和求解目标的问题,并用数学符号描述解决问题的计算模型。
抽象与建模可以通过下列两个步骤逐步分析出计算模型:
(1)提炼核心要素并加以确定或假设。
(2)用数学符号描述解决问题的计算模型。
2.设计算法
在计算模型的基础上,遵循算法的特征、围绕算法的要素设计算法,并选择恰当的方式合理地描述算法。
对任何数据的处理,总体上都需要经历下列三个步骤:
(1)输入数据。
(2)处理数据。
(3)输出处理结果。
3.描述算法
可以使用自然语言、流程图、伪代码或计算机程序设计语言来描述算法。
4.编写程序
要让计算机按照预先设计的算法进行处理,需要将该算法用计算机程序设计语言进行描述,即编写计算机程序。
5.调试运行程序
通过运行程序,让计算机自动执行程序中的命令,并对结果进行检测分析和验证。
1.抽象与建模:即分析问题,对问题进行定性分析,运用归纳和演绎等方法,确定问题的性质,然后进行定量分析,即确定问题的数量特征、数量关系与数量变化等特征。
2.设计算法:根据问题的抽象与建模,把解决问题的方案准确而完整地描述出来。可以使用自然语言,伪代码,流程图等形式描述算法。
3.编写程序:选择一门计算机程序语言,把设计好的算法转换成相应的计算机程序。
4.调试运行:通过调试运行程序,找出“录入错误、语法错误、逻辑错误”等问题并修正。
例1 张亮参与了“求圆周率π”的项目实践,该项目要求自己编写程序求圆周率。张亮小组通过查询资料,获得了多个计算圆周率π的方法,他们选择了下面的公式,并通过运算100万项、1000万项和1亿项三种情况,对比查看结果的精确度。
=······…
(1)用计算机解决问题的过程一般包括四步:①设计算法,②调试运行程序,③编写程序,④抽象与建模,这四个步骤的正确顺序是        ;
(2)张亮用流程图描述算法如图所示,该算法属于    结构(填:顺序/分支/循环)。
(3)为使流程图能正确实现上述公式的计算,请完成其中的填空:
①       
②       
③       
(4)项目完成后,最终的运行结果如图所示,从图中可以得到    (多选,全部选对得2分,部分选对得1分,选错不得分)。
A.算法必须有输入和输出,缺一不可
B.如果输入的值特别大,导致该算法不能在有限的时间内输出结果,这就违背了算法的可行性
C.根据运行结果推断,若运算次数为10亿时,在个人电脑上可以准确算出π的八位小数
D.该算法运算次数越多结果越精确,这说明该算法不具备有穷性
答案 (1)④①③② (2)循环 (3)①1 ②s*(i+1)*(i+1)/(i*(i+2)) ③s*2 (4)BC
解析 本题综合考查算法的表示。(1)略。(2)从条件的出口回到入口,可得为循环结构。(3)从流程图中i=i+2,步长为2,每次乘两项。当i=1时,s=s*(i+1)*(i+1)/(i*(i+2)),i=2时,s=s*i*i/((i-1)*(i+1)),最终输出的pi应为2*s。(4)A选项算法可以没有输入但是必须要有输出;BC正确;D错误,该算法能在有限的时间和步骤中完成,具备有穷性的特征。
变式训练1 某手机APP程序为了增加程序热度,采用“签到换积分得奖品”的形式来吸引用户使用。签到积分的规则为:第1天签到得1分,第2天签到得2分,第3天签到得3分,……
第7天及7天以上签到得7分;一旦中途漏签,签到积分从1分开始计算。
下图所示的签到获得的总积分为14分。
第1天+1分 第2天 第3天+1分 第4天+2分 第5天+3分 第6天+4分 第7天 第8天+1分 第9天+2分
现利用“0”“1”记录签到情况,其中“1”表示正常签到,“0”表示断签,输出获得的总积分数。例如,上图输入可以表示为“101111011”,输出结果为14分。请回答下列问题:
(1)若签到记录为“100111110111”,则获得的总积分为        。
(2)在计算签到总积分时,“第7天签到得7分”,属于算法三要素中的    (选填:数据/运算/控制转移)。
(3)程序部分流程图如图所示,请将流程图补充完整。
①       
②       
(4)流程图中“flag=True”代表的含义是        。
答案 (1)22 (2)数据 (3)①c=0 ②p=p+c (4)作为前一天漏签标志
解析 本题主要考查计算思维、算法的要素、算法控制结构的应用。(1)根据题意可得为22。(2)第7天签到得7分属于数据。(3)从流程图中status=1可以判断得到status表示当天有无正常签到。变量c用来存储当前是连续签到的第几天,变量p用于存储累加的得分。因此较易得到②处为计算连续签到七天内时的得分:p=p+c,结合题意可得当前一天漏签时,c的值归零,因此①处为c=0。从这里可得flag=True是作为前一天漏签的标志。
例2 某景点门票收费规定如下:身高在1米1及以下的人免费;超过1米1,但不超过1米4的人收取全票费用的一半;超过1米4的人收取全票。假设人的身高为h米,全票费用为s元,按要求完成以下任务:
(1)分析问题,列出求解门票mp的数学表达式。
(2)确定算法,画出相应的流程图。
答案 (1)S=
(2)解决此问题的流程图如图所示。
解析 本题考查用算法解决具体问题的各个过程。
(1)根据题意,首先要建立有关门票费用计算的数学模型,分别以1米1、1米4作为分界点,用数学语言描述解决此问题的数学表达式(计算模型)。
(2)通过分析问题,在完成(1)题所要求的抽象建模后,就可以遵循算法的特征、围绕算法的要素设计算法。该算法用到的控制结构是分支结构,相应的流程图如答案中所示。
变式训练2 铁路旅客托运行李,从甲地到乙地,规定如下:每张客票托运行李不超过50千克时,每千克的运费为1.3元;若超过50千克,超过的部分按每千克1.8元的运费计算。假设行李重量为W千克,运费为P元,按要求完成以下任务:
(1)分析问题,列出求解门票P的数学表达式。
(2)确定算法,画出相应的流程图。
答案 (1)P=
(2)解决此问题的流程图如图所示。
解析 本题考查用算法解决具体问题的各个过程。
(1)根据题意,首先要建立行李托运费用计算的数学模型,以50千克为分界点,用数学语言描述解决此问题的数学表达式(计算模型)。
(2)通过分析问题,在完成(1)题所要求的抽象建模后,就可以遵循算法的特征、围绕算法的要素设计算法。该算法用到的控制结构是分支结构,相应的流程图如答案中所示。
1.编制计算机程序解决问题的过程有:描述问题、算法设计、编写计算机程序和调试等,其中,对算法描述正确的是 (  )
A.算法是解决问题的步骤和方法
B.算法可以看成按照要求设计好的有限的确切的计算序列,并且这样的步骤或序列只能解决当前问题
C.算法就是解题的算式
D.算法必须在计算机上实现
答案 A
解析 本题考查的是对于算法的概念的理解,B选项错在“只能解决当前问题”,算法是解决问题的方法,可以解决一类问题。C选项说法太片面了,算法不光包括了部分算式,还包括语句执行顺序,流程走向等。D选项算法不一定要在计算机上实现。
2.有一种ASCII字符加密的算法,其加密过程如下:
①将明码中每个字符的八位二进制ASCII码(不足八位的左端补0,凑足八位)分成两段(左4位高位段,右4位低位段)。如字符“C”的二进制ASCII码为01000011,分段后为0100,0011;
②将高位段(左边4位)左移一位,并将原第一位数码移至最后(如0100转化为1000),再转化为十六进制数(如1000转化为8);
③对低位段(右边4位)执行②同样的算法,如0011→0110→6;
④顺次连接两位十六进制数,得到该字符的密文,如“C”的密文为“86”;
⑤将每个字符的密文按明码的顺序连接。
用Python编写的程序运行结果如图所示,请回答下列问题:
(1)按照加密算法,明码字符“J”的密文是    ;密文“C2”的明码是    ;
(2)假设某字符ASCII值十进制数为m,则该数的高位段是    ,低位段是    (结果都是十进制);
(3)假设(2)中高位段的四位二进制转十进制为n,则经过加密算法第②步运算:左移一位,将原第一位移至最后,得到的值是    (结果为十进制)。
答案 (1)85 a (2)m∥16 m%16(3)n%8*2+n∥8
解析 本题综合考查数制转换的程序实现。(1)字符J的ASCII值为74D→4AH→01001010B,执行加密过程后二进制为10000101B对应十六进制为85;C2H转换为二进制为11000010B,反向执行解密后明码对应的十六进制为61H,对应a。(2)高位段相当于取m对应的二进制中前四位,二进制取前四位可以采用除以16取整的方法,因此第一空答案为m∥16,取后四位可采用除以16取余数的方法,第二空答案为m%16。(3)按照第二小题的方法,我们取出高位段中的第一位以及后三位,让后三位前移一位,因此取出后三位后*2,第一位作为最后一位*20,因此答案为n%8*2+n∥8。
               
一、基础巩固
1.信息的加密一直是一种保障信息安全的手段,其中最简单的一种加密方法就是采用密钥加密。如下是对小写字母利用密钥加密的基本算法:
①输入密钥a(0(1)如果密钥为3,那么采用该算法对字符串'axz'加密后的密文应该是    ;同样,采用该算法获得密文为'happy',密钥为5,则加密前的原文是    。
(2)如果要将此算法改为对应的解密算法,仅需改动第    步(仅1个步骤,不考虑原算法其他步骤中“加密”字样的修改),改为:                 。
答案 (1)dac cvkkt (2)④ 按字母表顺序用字母c前面第a个字母代替字母c;如果字母c前面第a个字母超出了“a”,则返回“z”后再按次序前移
2.设计一个算法,求1-1/2+1/3-1/4+…+1/9-1/10的值。流程图如图所示,请回答下列问题:
(1)本题主要使用的算法控制结构为    。(选填,填字母)
A.顺序结构 B.分支结构 C.循环结构
(2)请将流程图中的①、②补充完整:
①       
②       
(3)虚线框处③适合的选项是    。
答案 (1)C (2)①s=s+(-1)i+1/i②i=i+1 (3)A
解析 本题主要考查算法思维及流程图的综合应用,算法的控制结构。(1)从流程图可知为循环结构。(2)注:将题中判断框中条件改为i>=10 循环体部分为1/i,当i为奇数时,前面系数为1,i为偶数时前面系数为-1,联系数学知识,可以用(-1)i+1来表示系数的正负,因此①为s=s+(-1)i+1/i。(3)流程图中输出需要用到平行四边形框。
3.红外测温仪可以在合适的距离实现非接触测温,在医院、学校、车站等场所有其明显优势。分析其测温过程:
(1)测温仪通过先红外温度传感器获取数据,然后进行计算,最后显示体温温度。解决测温问题的这一系列的步骤属于    。(选填,填序号,①算法 ②运算)
(2)测温过程的步骤是有限的,体现算法的    ,每一个步骤操作是明确,体现算法的    ,一次测温过程中最终显示的体温数据,体现算法的    。(选填,填序号,①有穷性 ②可行性 ③确定性 ④0个或多个输入 ⑤1个或多个输出)
(3)如果测量结果超过37.2的,测温仪有提示音。该判断部分描述过程中需要用到的流程图基本图形是    。
答案 (1)① (2)① ③ ⑤ (3)D
解析 本题考查算法解决问题的一般过程。(1)算法是解决问题的方法和步骤,算法中用到的是数据。(2)测量温度次数是有限的,体现有穷性。一次测量不能确定解决问题方案是否可行,但答案是确定的,体现确定性。同时输出了温度体现了输出。
4.印度有个国王打算奖赏发明了国际象棋的大臣,国王问他想要什么,他对国王说:“陛下,我只要一些麦粒,请您在这张棋盘的第一格放1粒麦子,第二格放2粒麦子,第三格放4粒麦子,第4格放8粒麦子,一次类推到64格棋盘。”国王觉得这个要求太容易满足了,就答应了,当人们把一袋一袋的麦子搬来开始计数时,国王发现,就是把全印度的麦粒全部拿来,也满足不了他的要求,那么,这位大臣要求得到的麦子到底是多少呢
图a
(1)根据大臣的要求,第6格中放的麦粒数为    。
(2)解决麦粒问题的流程图如图b,使用的算法控制结构是    。(选填,填字母,A.顺序结构 B.分支结构 C.循环结构)
(3)请将流程图补充完整:①  ;
②        。
图b
(4)流程图中s的值指的是    。
答案 (1)32 (2)C (3)①p←1②p←2i或者 ②p←p×2(←写成=也可,×写成*也可) 
(4)总麦粒数
解析 本题考查算法的表示。(1)根据规则,第i格的麦粒数量是2i-1。(2)流程从出口回到入口,因此是循环结构。(3)p是每天的麦粒数量,当i为1时,值为1;计算好下一天的数量后,i加1,因此②处为p←2i。(4)根据s←s+p可知,s表示的是所有麦粒的总和。
5.某算法的部分流程图如图所示。执行流程后,若最终i的值为5,则输入的n值可能是    。
答案 16
解析 本题流程图的功能是将正整数n经过4次运算后变为1。当n是偶数时,则变为原来的1半,如果是奇数时,变为3n+1。整数16经过4次运算,依次变为8、4、2、1,因此,答案为16。
6.某算法的部分流程图如图所示。
观察流程图,请回答下列问题:
(1)输入m、n的值分别为3和5,则输出a、i的值依次是    。
(2)该流程图实现的功能是  。
答案 (1)15 5 (2)求整数m、n的最小公倍数
解析 本题主要考查观察能力和算法思维。(1)(2)通过不断扩大整数m的倍数,并尝试它能否整除整数n,若能,则问题解决,输出此时的a(m的倍数)和i的值(扩大的倍数),当i=3时,a=15,a正好能整除n,因此输出的a、i的值依次是15和5。
二、能力提升
7.十进制整数转换为二进制数。将一个十进制整数转换为二进制数的方法为:将该整数除以8,得到一个余数,然后再将该整数整除8,又得到一个整数,如此继续,直到商为0,最后将余数从后往前拼接起来,就是该整数所对应的八进制数。假设整数为x,余数为k,按要求完成以下任务:
(1)分析问题,确定解决此问题所使用的控制结构,并列出十进制数转换为八进制数的关键步骤。
(2)确定算法,画出相应的流程图。
答案 (1)使用循环结构解决此问题。关键步骤有:①求余数r,r←x%8;②求整数商,x=x∥8。
(2)解决此问题的流程图如图所示。
解析 本题考查用算法解决具体问题的各个过程。(1)十进制整数转换为八进制数的方法可概括为除8取余,重复运算,直到商为0,因此是一个循环结构。关键步骤有:①求余数r,r←x%8;②求整数商,x=x∥8。(2)通过分析问题,确定解决问题的方法后,就可以设计算法。该算法用到的控制结构是循环结构,相应的流程图如答案中所示。
8.角谷猜想是指一个正整数x,如果x是奇数,则将其乘以3,然后再加1;如果是偶数,则将其除以2。这样经过若干次运算后,总可以得到自然数1。
小明根据角谷猜想进行了算法设计,并用如下流程图来描述该算法。
请回答下列问题:
(1)解决此问题所使用的控制结构为      。
(2)根据本题算法的流程图所示,则流程图中①②处应填写的内容分别是:①    ;②    。
(3)若输入x的值为5,则输出的运算次数为    ;若输入x的值为128,则输出的运算次数为    (填数字)。
答案 (1)循环结构 (2)①x==1 或x<=1 或x等于1吗  ②x←3x+1或x←3*x+1或x←3×x+1(←改为等号也算对) (3)5 7(共43张PPT)
课时3 用算法解决问题的过程
第二章 算法与问题解决
1.了解计算机编程解决问题的一般过程,解决编程过程中遇到的问题。
2.学会通过抽象与建模、设计算法、编写程序、调试运行的步骤去解决。
目 录
CONTENTS
知识梳理
01
例题精析
02
随堂检测
03
巩固与提升
04
知识梳理
1
使用计算机解决问题的一般过程为:抽象与建模、设计算法和描述算法。
1.抽象与建模
抽象与建模指的是从现实项目的真实情境中提炼出核心要素并加以确定或假设,最终定义出一个有明确____________________的问题,并用__________描述解决问题的计算模型。
抽象与建模可以通过下列两个步骤逐步分析出计算模型:
(1)提炼核心要素并加以确定或假设。
(2)用数学符号描述解决问题的计算模型。
已知条件和求解目标
数学符号
2.设计算法
在计算模型的基础上,遵循算法的特征、围绕算法的要素设计算法,并选择恰当的方式合理地描述算法。
对任何数据的处理,总体上都需要经历下列三个步骤:
(1)输入数据。
(2)处理数据。
(3)输出处理结果。
3.描述算法
可以使用自然语言、流程图、伪代码或计算机程序设计语言来描述算法。
4.编写程序
要让计算机按照预先设计的算法进行处理,需要将该算法用计算机程序设计语言进行描述,即编写计算机程序。
5.调试运行程序
通过运行程序,让计算机自动执行程序中的命令,并对结果进行检测分析和验证。
1.抽象与建模:即分析问题,对问题进行定性分析,运用归纳和演绎等方法,确定问题的性质,然后进行定量分析,即确定问题的数量特征、数量关系与数量变化等特征。
2.设计算法:根据问题的抽象与建模,把解决问题的方案准确而完整地描述出来。可以使用自然语言,伪代码,流程图等形式描述算法。
3.编写程序:选择一门计算机程序语言,把设计好的算法转换成相应的计算机程序。
4.调试运行:通过调试运行程序,找出“录入错误、语法错误、逻辑错误”等问题并修正。
例题精析
2
例1 张亮参与了“求圆周率π”的项目实践,该项目要求自己编写程序求圆周率。张亮小组通过查询资料,获得了多个计算圆周率π的方法,他们选择了下面的公式,并通过运算100万项、1000万项和1亿项三种情况,对比查看结果的精确度。
(1)用计算机解决问题的过程一般包括四步:①设计算法,②调试运行程序,③编写程序,④抽象与建模,这四个步骤的正确顺序是        ;
(2)张亮用流程图描述算法如图所示,该算法属于    结构(填:顺序/分支/循环)。
(3)为使流程图能正确实现上述公式的计算,请完成其中的填空:
①       
②       
③       
(4)项目完成后,最终的运行结果如图所示,从图中可以得到    (多选,全部选对得2分,部分选对得1分,选错不得分)。
A.算法必须有输入和输出,缺一不可
B.如果输入的值特别大,导致该算法不能在有限的时间内输出结果,这就违背了算法的可行性
C.根据运行结果推断,若运算次数为10亿时,在个人电脑上可以准确算出π的八位小数
D.该算法运算次数越多结果越精确,这说明该算法不具备有穷性
答案 (1)④①③② (2)循环 (3)①1 ②s*(i+1)*(i+1)/(i*(i+2)) ③s*2 (4)BC
解析 本题综合考查算法的表示。(1)略。(2)从条件的出口回到入口,可得为循环结构。(3)从流程图中i=i+2,步长为2,每次乘两项。当i=1时,s=s*(i+1)*(i+1)/(i*(i+2)),i=2时,s=s*i*i/((i-1)*(i+1)),最终输出的pi应为2*s。(4)A选项算法可以没有输入但是必须要有输出;BC正确;D错误,该算法能在有限的时间和步骤中完成,具备有穷性的特征。
变式训练1 某手机APP程序为了增加程序热度,采用“签到换积分得奖品”的形式来吸引用户使用。签到积分的规则为:第1天签到得1分,第2天签到得2分,第3天签到得3分,……
第7天及7天以上签到得7分;一旦中途漏签,签到积分从1分开始计算。
下图所示的签到获得的总积分为14分。
第1天+1分 第2天 第3天+1分 第4天+2分 第5天+3分 第6天+4分 第7天 第8天+1分
第9天+2分
现利用“0”“1”记录签到情况,其中“1”表示正常签到,“0”表示断签,输出获得的总积分数。例如,上图输入可以表示为“101111011”,输出结果为14分。请回答下列问题:
(1)若签到记录为“100111110111”,则获得的总积
分为        。
(2)在计算签到总积分时,“第7天签到得7分”,属于
算法三要素中的    (选填:数据/运算/控制
转移)。
(3)程序部分流程图如图所示,请将流程图补充完整。
①       
②       
(4)流程图中“flag=True”代表的含义是        。
答案 (1)22 (2)数据 (3)①c=0 ②p=p+c (4)作为前一天漏签标志
解析 本题主要考查计算思维、算法的要素、算法控制结构的应用。(1)根据题意可得为22。(2)第7天签到得7分属于数据。(3)从流程图中status=1可以判断得到status表示当天有无正常签到。变量c用来存储当前是连续签到的第几天,变量p用于存储累加的得分。因此较易得到②处为计算连续签到七天内时的得分:p=p+c,结合题意可得当前一天漏签时,c的值归零,因此①处为c=0。从这里可得flag=True是作为前一天漏签的标志。
例2 某景点门票收费规定如下:身高在1米1及以下的人免费;超过1米1,但不超过1米4的人收取全票费用的一半;超过1米4的人收取全票。假设人的身高为h米,全票费用为s元,按要求完成以下任务:
(1)分析问题,列出求解门票mp的数学表达式。
(2)确定算法,画出相应的流程图。
(2)解决此问题的流程图如图所示。
解析 本题考查用算法解决具体问题的各个过程。
(1)根据题意,首先要建立有关门票费用计算的数学模型,分别以1米1、1米4作为分界点,用数学语言描述解决此问题的数学表达式(计算模型)。
(2)通过分析问题,在完成(1)题所要求的抽象建模后,就可以遵循算法的特征、围绕算法的要素设计算法。该算法用到的控制结构是分支结构,相应的流程图如答案中所示。
变式训练2 铁路旅客托运行李,从甲地到乙地,规定如下:每张客票托运行李不超过50千克时,每千克的运费为1.3元;若超过50千克,超过的部分按每千克1.8元的运费计算。假设行李重量为W千克,运费为P元,按要求完成以下任务:
(1)分析问题,列出求解门票P的数学表达式。
(2)确定算法,画出相应的流程图。
(2)解决此问题的流程图如图所示。
解析 本题考查用算法解决具体问题的各个过程。
(1)根据题意,首先要建立行李托运费用计算的数学模型,以50千克为分界点,用数学语言描述解决此问题的数学表达式(计算模型)。
(2)通过分析问题,在完成(1)题所要求的抽象建模后,就可以遵循算法的特征、围绕算法的要素设计算法。该算法用到的控制结构是分支结构,相应的流程图如答案中所示。
随堂检测
3
1.编制计算机程序解决问题的过程有:描述问题、算法设计、编写计算机程序和调试等,其中,对算法描述正确的是 (  )
A.算法是解决问题的步骤和方法
B.算法可以看成按照要求设计好的有限的确切的计算序列,并且这样的步骤或序列只能解决当前问题
C.算法就是解题的算式
D.算法必须在计算机上实现
A
解析 本题考查的是对于算法的概念的理解,B选项错在“只能解决当前问题”,算法是解决问题的方法,可以解决一类问题。C选项说法太片面了,算法不光包括了部分算式,还包括语句执行顺序,流程走向等。D选项算法不一定要在计算机上实现。
2.有一种ASCII字符加密的算法,其加密过程如下:
①将明码中每个字符的八位二进制ASCII码(不足八位的左端补0,凑足八位)分成两段(左4位高位段,右4位低位段)。如字符“C”的二进制ASCII码为01000011,分段后为0100,0011;
②将高位段(左边4位)左移一位,并将原第一位数码移至最后(如0100转化为1000),再转化为十六进制数(如1000转化为8);
③对低位段(右边4位)执行②同样的算法,如0011→0110→6;
④顺次连接两位十六进制数,得到该字符的密文,如“C”的密文为“86”;
⑤将每个字符的密文按明码的顺序连接。
用Python编写的程序运行结果如图所示,请回答下列问题:
(1)按照加密算法,明码字符“J”的密文是    ;密文“C2”的明码是    ;
(2)假设某字符ASCII值十进制数为m,则该数的高位段是    ,低位段是    (结果都是十进制);
(3)假设(2)中高位段的四位二进制转十进制为n,则经过加密算法第②步运算:左移一位,将原第一位移至最后,得到的值是    (结果为十进制)。
答案 (1)85 a (2)m∥16 m%16 (3)n%8*2+n∥8
解析 本题综合考查数制转换的程序实现。(1)字符J的ASCII值为74D→4AH→01001010B,执行加密过程后二进制为10000101B对应十六进制为85;C2H转换为二进制为11000010B,反向执行解密后明码对应的十六进制为61H,对应a。(2)高位段相当于取m对应的二进制中前四位,二进制取前四位可以采用除以16取整的方法,因此第一空答案为m∥16,取后四位可采用除以16取余数的方法,第二空答案为m%16。(3)按照第二小题的方法,我们取出高位段中的第一位以及后三位,让后三位前移一位,因此取出后三位后*2,第一位作为最后一位*20,因此答案为n%8*2+n∥8。
4
巩固与提升
基础巩固
能力提升
1.信息的加密一直是一种保障信息安全的手段,其中最简单的一种加密方法就是采用密钥加密。如下是对小写字母利用密钥加密的基本算法:
①输入密钥a(0②设置i的初值为0,s1的初值为空串
③获取待加密字符串s的第i个字母c
④按字母表顺序用字母c后面第a个字母代替字母c;如果字母c后面第a个字母超出了“z”,则返回“a”后再按次序后移(说明:字母“z”后移2位应该变为“b”)
⑤将加密完成的字母c连接到s1中
⑥i增加1
⑦如果i的值小于等于待加密字符串s的长度-1,则返回第③步,否则输出密文字符串s1
(1)如果密钥为3,那么采用该算法对字符串'axz'加密后的密文应该是    ;同样,采用该算法获得密文为'happy',密钥为5,则加密前的原文是    。
(2)如果要将此算法改为对应的解密算法,仅需改动第    步(仅1个步骤,不考虑原算法其他步骤中“加密”字样的修改),改为:                 。
答案 (1)dac cvkkt (2)④ 按字母表顺序用字母c前面第a个字母代替字母c;如果字母c前面第a个字母超出了“a”,则返回“z”后再按次序前移
2.设计一个算法,求1-1/2+1/3-1/4+…+1/9-1/10的值。流程图如图所示,请回答下列
问题:
(1)本题主要使用的算法控制结构为    。(选填,填字母)
A.顺序结构 B.分支结构 C.循环结构
(2)请将流程图中的①、②补充完整:
①        ②       
(3)虚线框处③适合的选项是    。
答案 (1)C (2)①s=s+(-1)i+1/I ②i=i+1 (3)A
解析 本题主要考查算法思维及流程图的综合应用,算法的控制结构。(1)从流程图可知为循环结构。(2)注:将题中判断框中条件改为i>=10 循环体部分为1/i,当i为奇数时,前面系数为1,i为偶数时前面系数为-1,联系数学知识,可以用(-1)i+1来表示系数的正负,因此①为s=s+(-1)i+1/i。(3)流程图中输出需要用到平行四边形框。
3.红外测温仪可以在合适的距离实现非接触测温,在医院、学校、车站等场所有其明显优势。分析其测温过程:
(1)测温仪通过先红外温度传感器获取数据,然后进行计算,最后显示体温温度。解决测温问题的这一系列的步骤属于    。(选填,填序号,①算法 ②运算)
(2)测温过程的步骤是有限的,体现算法的    ,每一个步骤操作是明确,体现算法的    ,一次测温过程中最终显示的体温数据,体现算法的    。(选填,填序号,①有穷性 ②可行性 ③确定性 ④0个或多个输入 ⑤1个或多个输出)
答案 (1)① (2)① ③ ⑤ (3)D
解析 本题考查算法解决问题的一般过程。(1)算法是解决问题的方法和步骤,算法中用到的是数据。(2)测量温度次数是有限的,体现有穷性。一次测量不能确定解决问题方案是否可行,但答案是确定的,体现确定性。同时输出了温度体现了输出。
(3)如果测量结果超过37.2的,测温仪有提示音。该判断部分描述过程中需要用到的流程图基本图形是    。
4.印度有个国王打算奖赏发明了国际象棋的大臣,国王问他想要什么,他对国王说:“陛下,我只要一些麦粒,请您在这张棋盘的第一格放1粒麦子,第二格放2粒麦子,第三格放4粒麦子,第4格放8粒麦子,一次类推到64格棋盘。”国王觉得这个要求太容易满足了,就答应了,当人们把一袋一袋的麦子搬来开始计数时,国王发现,就是把全印度的麦粒全部拿来,也满足不了他的要求,那么,这位大臣要求得到的麦子到底是多少呢
图a
(1)根据大臣的要求,第6格中放的麦粒数为    。
(2)解决麦粒问题的流程图如图b,使用的算法控制结构是    。(选填,填字母,A.顺序结构 B.分支结构 C.循环结构)
图b
(4)流程图中s的值指的是    。
答案 (1)32 (2)C (3)①p←1②p←2i或者 ②p←p×2(←写成=也可,×写成*也可) (4)总麦粒数
解析 本题考查算法的表示。(1)根据规则,第i格的麦粒数量是2i-1。(2)流程从出口回到入口,因此是循环结构。(3)p是每天的麦粒数量,当i为1时,值为1;计算好下一天的数量后,i加1,因此②处为p←2i。(4)根据s←s+p可知,s表示的是所有麦粒的总和。
5.某算法的部分流程图如图所示。执行流程后,若最终i的值为5,则输入的n值可能是    。
答案 16
解析 本题流程图的功能是将正整数n经过4次运算后变为1。当n是偶数时,则变为原来的1半,如果是奇数时,变为3n+1。整数16经过4次运算,依次变为8、4、2、1,因此,答案为16。
6.某算法的部分流程图如图所示。
观察流程图,请回答下列问题:
(1)输入m、n的值分别为3和5,则输出a、i的值依次是    。
(2)该流程图实现的功能是_________________。
答案 (1)15 5 (2)求整数m、n的最小公倍数
解析 本题主要考查观察能力和算法思维。(1)(2)通过不断扩大整数m的倍数,并尝试它能否整除整数n,若能,则问题解决,输出此时的a(m的倍数)和i的值(扩大的倍数),当i=3时,a=15,a正好能整除n,因此输出的a、i的值依次是15和5。
7.十进制整数转换为二进制数。将一个十进制整数转换为二进制数的方法为:将该整数除以8,得到一个余数,然后再将该整数整除8,又得到一个整数,如此继续,直到商为0,最后将余数从后往前拼接起来,就是该整数所对应的八进制数。假设整数为x,余数为k,按要求完成以下任务:
(1)分析问题,确定解决此问题所使用的控制结构,并列出十进制数转换为八进制数的关键步骤。
(2)确定算法,画出相应的流程图。
答案 (1)使用循环结构解决此问题。关键步骤有:①求余数r,r←x%8;②求整数商,x=x∥8。
(2)解决此问题的流程图如图所示。
解析 本题考查用算法解决具体问题的各个过程。(1)十进制整数转换为八进制数的方法可概括为除8取余,重复运算,直到商为0,因此是一个循环结构。关键步骤有:①求余数r,r←x%8;②求整数商,x=x∥8。(2)通过分析问题,确定解决问题的方法后,就可以设计算法。该算法用到的控制结构是循环结构,相应的流程图如答案中所示。
8.角谷猜想是指一个正整数x,如果x是奇数,则将其乘以3,然后再加1;如果是偶数,则将其除以2。这样经过若干次运算后,总可以得到自然数1。
小明根据角谷猜想进行了算法设计,并用如下流程图来描述该算法。
请回答下列问题:
(1)解决此问题所使用的控制结构为      。
(2)根据本题算法的流程图所示,则流程图中①②处应填写的内容分别是:①    ;②    。
(3)若输入x的值为5,则输出的运算次数为    ;若输入x的值为128,则输出的运算次数为    (填数字)。
答案 (1)循环结构 (2)①x==1 或x<=1 或x等于1吗  ②x←3x+1或x←3*x+1或x←3×x+1(←改为等号也算对) (3)5 7课时3 用算法解决问题的过程
课时目标
1.了解计算机编程解决问题的一般过程,解决编程过程中遇到的问题。2.学会通过抽象与建模、设计算法、编写程序、调试运行的步骤去解决。
使用计算机解决问题的一般过程为:抽象与建模、设计算法和描述算法。
1.抽象与建模
抽象与建模指的是从现实项目的真实情境中提炼出核心要素并加以确定或假设,最终定义出一个有明确________________________的问题,并用________________描述解决问题的计算模型。
抽象与建模可以通过下列两个步骤逐步分析出计算模型:
(1)提炼核心要素并加以确定或假设。
(2)用数学符号描述解决问题的计算模型。
2.设计算法
在计算模型的基础上,遵循算法的特征、围绕算法的要素设计算法,并选择恰当的方式合理地描述算法。
对任何数据的处理,总体上都需要经历下列三个步骤:
(1)输入数据。
(2)处理数据。
(3)输出处理结果。
3.描述算法
可以使用自然语言、流程图、伪代码或计算机程序设计语言来描述算法。
4.编写程序
要让计算机按照预先设计的算法进行处理,需要将该算法用计算机程序设计语言进行描述,即编写计算机程序。
5.调试运行程序
通过运行程序,让计算机自动执行程序中的命令,并对结果进行检测分析和验证。
1.抽象与建模:即分析问题,对问题进行定性分析,运用归纳和演绎等方法,确定问题的性质,然后进行定量分析,即确定问题的数量特征、数量关系与数量变化等特征。
2.设计算法:根据问题的抽象与建模,把解决问题的方案准确而完整地描述出来。可以使用自然语言,伪代码,流程图等形式描述算法。
3.编写程序:选择一门计算机程序语言,把设计好的算法转换成相应的计算机程序。
4.调试运行:通过调试运行程序,找出“录入错误、语法错误、逻辑错误”等问题并修正。
例1 张亮参与了“求圆周率π”的项目实践,该项目要求自己编写程序求圆周率。张亮小组通过查询资料,获得了多个计算圆周率π的方法,他们选择了下面的公式,并通过运算100万项、1000万项和1亿项三种情况,对比查看结果的精确度。
=······…
(1)用计算机解决问题的过程一般包括四步:①设计算法,②调试运行程序,
③编写程序,④抽象与建模,这四个步骤的正确顺序是________________;
(2)张亮用流程图描述算法如图所示,该算法属于________结构(填:顺序/分支/循环)。
(3)为使流程图能正确实现上述公式的计算,请完成其中的填空:
①________________
②________________
③________________
(4)项目完成后,最终的运行结果如图所示,从图中可以得到________(多选,全部选对得2分,部分选对得1分,选错不得分)。
A.算法必须有输入和输出,缺一不可
B.如果输入的值特别大,导致该算法不能在有限的时间内输出结果,这就违背了算法的可行性
C.根据运行结果推断,若运算次数为10亿时,在个人电脑上可以准确算出π的八位小数
D.该算法运算次数越多结果越精确,这说明该算法不具备有穷性
听课笔记:                                    
                                    
                                    
                                    
变式训练1 某手机APP程序为了增加程序热度,采用“签到换积分得奖品”的形式来吸引用户使用。签到积分的规则为:第1天签到得1分,第2天签到得2分,第3天签到得3分,……
第7天及7天以上签到得7分;一旦中途漏签,签到积分从1分开始计算。
下图所示的签到获得的总积分为14分。
第1天+1分 第2天 第3天+1分 第4天+2分 第5天+3分 第6天+4分 第7天 第8天+1分 第9天+2分
现利用“0”“1”记录签到情况,其中“1”表示正常签到,“0”表示断签,输出获得的总积分数。例如,上图输入可以表示为“101111011”,输出结果为14分。请回答下列问题:
(1)若签到记录为“100111110111”,则获得的总积分为________________。
(2)在计算签到总积分时,“第7天签到得7分”,属于算法三要素中的________(选填:数据/运算/控制转移)。
(3)程序部分流程图如图所示,请将流程图补充完整。
①________________
②________________
(4)流程图中“flag=True”代表的含义是________________。
例2 某景点门票收费规定如下:身高在1米1及以下的人免费;超过1米1,但不超过1米4的人收取全票费用的一半;超过1米4的人收取全票。假设人的身高为h米,全票费用为s元,按要求完成以下任务:
(1)分析问题,列出求解门票mp的数学表达式。
(2)确定算法,画出相应的流程图。
听课笔记:                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                    
变式训练2 铁路旅客托运行李,从甲地到乙地,规定如下:每张客票托运行李不超过50千克时,每千克的运费为1.3元;若超过50千克,超过的部分按每千克1.8元的运费计算。假设行李重量为W千克,运费为P元,按要求完成以下任务:
(1)分析问题,列出求解门票P的数学表达式。
(2)确定算法,画出相应的流程图。
1.编制计算机程序解决问题的过程有:描述问题、算法设计、编写计算机程序和调试等,其中,对算法描述正确的是(  )
A.算法是解决问题的步骤和方法
B.算法可以看成按照要求设计好的有限的确切的计算序列,并且这样的步骤或序列只能解决当前问题
C.算法就是解题的算式
D.算法必须在计算机上实现
2.有一种ASCII字符加密的算法,其加密过程如下:
①将明码中每个字符的八位二进制ASCII码(不足八位的左端补0,凑足八位)分成两段(左4位高位段,右4位低位段)。如字符“C”的二进制ASCII码为01000011,分段后为0100,0011;
②将高位段(左边4位)左移一位,并将原第一位数码移至最后(如0100转化为1000),再转化为十六进制数(如1000转化为8);
③对低位段(右边4位)执行②同样的算法,如0011→0110→6;
④顺次连接两位十六进制数,得到该字符的密文,如“C”的密文为“86”;
⑤将每个字符的密文按明码的顺序连接。
用Python编写的程序运行结果如图所示,请回答下列问题:
(1)按照加密算法,明码字符“J”的密文是__________;密文“C2”的明码是________;
(2)假设某字符ASCII值十进制数为m,则该数的高位段是________,低位段是________(结果都是十进制);
(3)假设(2)中高位段的四位二进制转十进制为n,则经过加密算法第②步运算:左移一位,将原第一位移至最后,得到的值是____________(结果为十进制)。

展开更多......

收起↑

资源列表