您好,欢迎访问三七文档
校本课程“算法”的应用[案例精选1]到银行办理个人异地汇款(不超过100万)时,银行要收取一定的手续费,汇款额不超过100元,收取1元手续费;超过100元但不超过5000元,按汇款额的1%收取;超过5000元,一律收取50元手续费,试用条件语句描述汇款额为x元时,银行收取手续费为y元的过程,画出流程图并写出程序。[思路剖析]:依题意:我们可求得手续费y与汇款额之间的关系式(单位:元)5001.01xy再利用条件语句将之与出即可[方法点评](1)分段函数的关键是分清段,而且不要有遗漏(2)在条件语句中再次使用条件语句,100<x≤500,只需写成x<=5000,这是因为只有在x>100时才能执行第二个条件语句,此时需要注意嵌套的格式。[背景探源]:信息技术在生活中的应用越来越广,本题将算法的思想应用实际问题中,既显示了高中数学知识——算法的重要性,也体现了信息技术的优越性。[参考答案]依分析可知程序框图如图所示:0<x≤100100<x≤5000x>5000[相关链接](2001年高考试题改编)“依法纳税是每个公民应尽的义务”《中华人民共和国个人所得税法》第十四条中有个人所得税税率表(工资、薪金所得适用):级数全月应纳税所得额税率(%)1不超过500元部分52超过500元至2000元部分103超过2000元至5000元部分154超过5000元到20000元部分20………9超过100000元部分45目前,上表中“全日应纳税所得额”是从日虹资,薪金中收中减去800元后的余额,例如某人月工资、薪金收入1020元,减去800元后,应纳税所得额为220元,就缴纳所得税11元,编写一个程序,输入某人月工资、薪金(≤5000)输出这个人应缴纳的个人所得税。[参考答案]:INPUT“x=”;xIFx>0andx<=800THENy=0PRINTyELSEIFx<=1300THENy=0.05﹡x-40PRINTyELSEIFx<=2800THENy=0.1﹡x-105PRINTyELSEIFx<=5000THENy=0.15﹡x-245PRINTyELSEPRINT“输入有误”ENDIFENDIFENDIFENDIFEND[类似问题]:设火车托运行李,当行李重为m(kg)时,每千米的费用(单位:元)标准为:y=0.3m(当m≤30kg时),0.3×30+0.5(m-30)(当m>30kg时)画出求行李托运费的程序框图。[思路分析]:显然行李托运费与行李重量有关,在不同范围内计算公式是不同的,故应先输入托运行李的重量m和路程s,再分别用各自条件下的计算公式进行计算处理,再将y值与托运路程s相乘,最后输出托运费用M。[参考答案]:程序框图如下:[案例精选2]、某商场第一年销售计算机5000台,如果平均每年销售量比上一年增加10%,那么从第一年起,大约几年可使总销售量达到3000台?[思路剖析]:根据题意:每年销售量比上一年增加百分率相同,设总和为Sum,几年达到30000台。第一年销售了5000台第二年销售了5000+5000(1+10%)=5000(1+10%)台第三年销售了500(1+10%)+5000(1+10%)×10%=5000(1+10%)2台……第n年……5000(1+10%)n-1台总和:Sum=5000+5000(1+10%)+5000(1+10%)2+…5000(1+10%)n-1[方法点评]:(1)循环条件为总和小于30000台(2)本题中第n年销售量为5000((1+10%)n-1(3)Sum表示总销售量,即:前n年销售量之和[背景探源]:(1)数例问题特别是等差数列,等比数列问题是高考中的热问题,而将数列问题与算法思想结合在一起,给出了高考中考查数列问题的新角度。[参考答案]:由以上分析知程序框图如下图所示程序:[相关链接]:(高考模拟)相传古代钱度国王舍罕要褒赏他聪明能干的宰相达依尔(国际象棋的发明者),问他需要什么,达依尔说:“国王只要在国际象棋的棋盘第一格子里放一粒麦子,第二个格子里放两粒,第三个格子里放四粒,以后按此比例每一格加一倍,一直放在第64格(国际象棋是8×8=64格)我就感恩不尽,其他什么也不要了。”国王想:“这有多少,还不容易!”让人扛来一代小麦,但不到一会儿就全用没了,再来一袋很快又没有了,结果全印度的粮食都用完还不够,国王很奇怪,怎么也算不清这笔帐,一个国际象棋棋盘一共能放多少麦粒?请你设计一个算法帮国王计算一下。分析:合依题意知,每个格放的麦粒数分别为20、21、22、…,263,问题转化为求1+21+22+23+24+…+263的各的问题,我们可以引入一个累加变量sum,一个计数变量i。解:程序框图如下:程序:[类似问题]:某玩具厂1996年生产总值为220万元,如果年生产增长率为5%,计算最早在哪一年生产总值超过300万元,画出程序框图,写出程序。分析:依题意,从1996年开始,经过x年后总产值为200×(1+5%)x,因此可将1996年的产值赋给a,然后对其进行累积,用n作为计数变量,进行循环,直到a值超过300万元为止。解:程序框图如下:程序如下:n=1996a=2000p=1.05WHILEa<=300a=a﹡pn=n+1WENDPRINTnEND练习:1.某商场购物实行优惠措施,若购物金额x在800元以上,打8折;若购物金额x在500元以上,则打九折,否则不打折。设计算法程序框图,要求输入购物金额x,能输入实际交款额,写出相应的运行程序。分析:依照题意,实际交款额y与购物金额x的函数关系如:x,x≤500元y=0.9x,500元<x≤800元0.8x,x>800元故可以用条件结构输入算法,用条件语句描述算法。解:程序框图如下:用条件语句描述算法如下:INPUT“x=”;xIFx>800THENy=0.8﹡xELSEIFx>500THENy=0.9﹡xELSEy=xENDIFENDIFPRINTyEND练习:某科研所决定拿出一定量的资金对科研人员进行奖励,按照科研成果价值的大小决定奖励前10名,第1名得全部奖金的一半多1万元,第二名得剩余的奖金的一半多1万元,第三名再得剩余奖金一半多1万元,依次类推,到第10名恰得奖金1万元,问科研所最初拿出多少万元?分析:第10名奖金额S10=1万元第9名奖金额S9=(1+1)×2=4第8名奖金额S8=(4+1)×2=10……第1名奖金额S1=(S2+1)×2得递推公式S10=1,Sn=(Sn+1+1)×2,n=1,2…,9[参考答案]:根据以上解题思路,程序框图为:程序为:i=1S=1WHILEi<10S=(S+1)﹡2i=i+1WENDPRINTSEND练习:用分期付款的方式购买价格为1150元的冰箱,如果购买时先付150元,以后每月付50元,加入欠款的利息,若一个月后付第一个月的分期付款,月利率为1%,那么购冰箱钱全部付清后,实际共付出款额多少元?画出程序框图,写出程序。分析:购买时付款150元,余款1000元分20次分期付款,每次的付款数组成一个数列naa1=50+(1150-150)×1%=60(元)a2=50+(1150-150-50)×1%=59.5(元)…An=50+[1150-150-(n-1)×50]×1%=60-21(n-1)(n=1,2,…,20)∴a20=60-21×19=50.5总和S=60+59.5+…+50.5解:程序框图如下图程序:m=60a=150s=0s=s+ai=1WHILEi<=20S=s+mm=s+mm=m-0.5i=i+1WENDPRINTSEND火车站对乘客奶票收取一定的费用,收费办法是:按票价第10元(不足10元按10元计算)收2元,票价2元及2元以下的不退,试编写一程序求出当输入x元的车票退掉后,返还金额y是多少?解:程序框图如图所示程序如下:INPUT“输出票额”;xIFx<=2THENy=0ELSEIFxMOD10=0THENy=x-2﹡x/10ELSET=INT(x/10)+1m=2﹡ty=x-mENDIFENDIFPRINT“返还金额”;yEND青年歌手电视大奖赛共10名选手参加,并请了12名评委,在计算每位选手的平均分数时,为了避免个别评委所给的极端分数的影响,必须去掉一个最高分和一个最低分后再求平均分数,试设计一个算法,解决该问题,要求画出程序框图,写出程序(假定分数采用10分制,即每位选手的分数最低为0分,最高分为10分)解:由于共有12名评委,所以每位选手会有12个分数,我们可以用循环结构来完成这12个分数的输入,同时设计累加变量求出这12个分数之和,本问题的关键在于从这12个输入的分数中找出最大数与最小数,以便从总分中减去这两个数,由于每位选手的分数都介于0分和10分之间,故我们可以选假设其中的最大数为0,最小数为10,然后每输入一个评委的分数,就进行一次比较,若输入的数大于0,就将其代替最大数,若输入的数小于10,就用它代替最小的数,依次比较下去,就能找出这12个数中的最大数与最小数,循环结束后,从总和中减去最大数与最小数,再除以10,就得到该选手最后的平均分数。程序如下:程序框图如下S=0k=1max=0min=10DOINPUTxS=S+xIFmax<=xTHENmax=xENDIFIFmin>=xTHENmin=xENDIFk=k+1LOOPUNTILk>12S1=S-max-mina=s1/10PRINTaEND
本文标题:“算法”的应用
链接地址:https://www.777doc.com/doc-5145129 .html