章末复习提升课第一章算法初步某商场进行优惠促销:若购物金额x在500元以上,打8折;若购物金额x在300元以上,打9折;否则,不打折.设计算法的程序框图,要求输入购物金额x即能输出实际交款额y.算法设计与程序框图的画法【解】算法设计:由题意,实际交款额y与购物金额x之间的函数关系是y=x,0x≤3000.9x,300x≤5000.8x,x500.因为需对x进行两次判断,所以算法应含有两个条件结构,算法步骤如下:第一步,输入购物金额x.第二步,判断0x≤300是否成立.若成立,则y=x,然后执行第四步;否则,执行第三步.第三步,判断x≤500是否成立.若成立,则y=0.9x;否则,y=0.8x.第四步,输出y.程序框图的画法:(1)画顺序结构图,即画终端框及输入框,并用流程线连接(如图中①).(2)画条件结构图,即画判断框并判断0x≤300是否成立,若成立,则画处理框并填入“y=x”,否则流向下一个判断框(如图中②).(3)再画条件结构图,即画判断框并判断x≤500是否成立,若成立,则画处理框并填入“y=0.9x”,否则画处理框并填入“y=0.8x”(如图中③).(4)画一个总的输出框并填入“输出y”,再画终端框表示算法结束(如图中④).最后,合成整个算法程序框图,如图.(1)凡是必须先根据条件作出判断,再决定进行哪一个步骤的问题,在画程序框图时,必须引入判断框,采用条件结构.(2)画程序框图的关键是分析算法步骤,因为程序框图是算法步骤的图形表示,所以算法步骤越明确,画图就越容易.若1+3+5+…+n2018,试设计算法的程序框图,寻找满足条件的最小奇数n.解:算法设计:因为涉及累加问题,所以算法中需要含有循环结构,算法步骤如下:第一步:令S=0,n=1.第二步:S=S+n,n=n+2.第三步:判断S2018是否成立,若成立,则n=n-2,输出n;否则,返回第二步.(1)画顺序结构图,即画终端框及两个处理框,并分别填入循环初始条件(如图中①).(2)画循环结构图,先画循环体,即两个处理框(一个累加,一个计数),再画判断框,并判断S2018是否成立,若成立,则画处理框,并填入“n=n-2”;否则,流向循环体之前进行再循环(如图中②).(3)画输出框及终端框(如图中③).最后,合成整个算法程序框图,如图.(1)求运行结果执行如图的程序框图,如果输入的a=-1,则输出的S=()程序框图中的常见题型A.2B.3C.4D.5【解析】运行程序框图,a=-1,S=0,K=1,K≤6成立;S=0+(-1)×1=-1,a=1,K=2,K≤6成立;S=-1+1×2=1,a=-1,K=3,K≤6成立;S=1+(-1)×3=-2,a=1,K=4,K≤6成立;S=-2+1×4=2,a=-1,K=5,K≤6成立;S=2+(-1)×5=-3,a=1,K=6,K≤6成立;S=-3+1×6=3,a=-1,K=7,K≤6不成立,输出S=3.选择B.【答案】B(2)补充框图某程序框图如图所示,若输出的S=57,则判断框内为()A.k>4?B.k>5?C.k>6?D.k>7?【解析】第一次循环:k=2,S=2+2=4;第二次循环:k=3,S=8+3=11;第三次循环:k=4,S=22+4=26;第四次循环:k=5,S=52+5=57,此时循环结束,故判断框中应填“k>4?”.【答案】A(3)由输出结果逆推输入数据阅读如图所示的程序框图,运行相应的程序.如果输入某个正整数n后,输出的S∈(10,20),那么n的值为()A.3B.4C.5D.6【解析】当n=1时,S=1;当n=2时,S=1+2×1=3;当n=3时,S=1+2×3=7;当n=4时,S=1+2×7=15∈(10,20);当n=5时,S=1+2×15=31.故n=4.【答案】B(4)数学文化与算法框图我国古代数学著作《九章算术》有如下问题:“今有器中米,不知其数.前人取半,中人三分取一,后人四分取一,余米一斗五升.问,米几何?”如图是解决该问题的程序框图,执行该程序框图,若输出的S=1.5(单位:升),则输入k的值为()A.4.5B.6C.7.5D.9【解析】由程序框图知S=k-k2-k2×3-k3×4=1.5,解得k=6,故选B.【答案】B解决程序框图问题的方法(1)要明确程序框图中的顺序结构、条件结构和循环结构.(2)要识别程序框图的运行,理解框图解决的实际问题.(3)按照题目的要求完成解答.如图是求x1,x2,…,x10的乘积S的程序框图,图中空白框中应填入的内容为()A.S=S·(n+1)B.S=S·xn+1C.S=S·nD.S=S·xn解析:选D.由题意可知,输出的是10个数的乘积,故空白框中应填“S=S·xn”.请写出如图所示的程序框图描述的算法的程序.基本算法语句的应用【解】这是一个求分段函数y=x-1,x1,2x+1,-1≤x≤1,x+1,x-1的函数值的算法,输入、输出框分别对应输入、输出语句,判断框对应条件语句.所求算法程序为:INPUTxIFx1THENy=x-1ELSEIFx-1THENy=x+1ELSEy=2*x+1ENDIFENDIFPRINTyEND条件语句和循环语句的关注点(1)条件语句可以嵌套,即条件语句的THEN或ELSE后面还可以跟条件语句,嵌套时注意内外分层,避免逻辑混乱.(2)在用WHILE语句和UNTIL语句编写程序解决问题时,一定要注意它们的格式及条件的表述方法.WHILE语句中是当条件满足时执行循环体,而UNTIL语句中是当条件不满足时执行循环体.(3)循环语句主要用来实现算法中的循环结构,处理一些需要反复执行的运算任务,如累加求和,累乘求积等.执行下面的程序,输出的结果是________.i=1s=0WHILEi<=4s=s*2+1i=i+1WENDPRINTsEND解析:当i=1时,s=0×2+1=1;当i=2时,s=1×2+1=3;当i=3时,s=3×2+1=7;当i=4时,s=7×2+1=15.答案:151.(2019·安徽省六安市第一中学期末考试)执行如图所示的程序后,输出的结果是()J=1A=0WHILEJ5J=J+1A=A+J*JWENDPRINTAENDA.5B.16C.29D.54解析:选D.程序运行过程如下:首先初始化数据:J=1,A=0,此时满足J5;执行J=J+1=2,A=A+J*J=4,此时满足J5;执行J=J+1=3,A=A+J*J=13,此时满足J5;执行J=J+1=4,A=A+J*J=29,此时满足J5;执行J=J+1=5,A=A+J*J=54,此时不满足J5;跳出循环,输出A=54.故选D.2.(2019·云南省玉溪一中期末考试)阅读如图所示的程序框图,若a=log1213,b=log2e,c=ln2,则输出的结果是________.解析:根据题中所给的程序框图,可以判断出其作用是输出三者中的最大的那个数,因为a=log1213=log23log2e=b1,而c=ln21,所以最大的数是a.答案:a3.(2019·甘肃省武威第五中学月考)画出求P=1×3×5×7×…×31的值的算法流程图.解:算法流程图如图所示.