4.1解析法解决问题.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.1解析法解决问题

解析法解决问题 任务一: 小李将要参加旅行团乘坐某航空公司的班机到北京参观,经了解,机票价格为800元,航空公司对旅客随身携带行李的费用计算标准为:20公斤以内免收行李费;若行李在40公斤以内,则20公斤以内仍免费,超过20公斤的部分每公斤按票价1.5%的标准收费;若在40公斤以上,除按一述标准收费处,超过40公斤部分加倍收费。试用程序来帮助计算小李所需的行李费。 分析问题: 设所求的数为Y,X为已知行李重量,则X,Y应满足: Y=0 (0X=20) Y=(X-20)*800*0.015 (20x=40) Y=(2*(x-40)+20)*800*0.015 (X40) 设计算法 1.输入行李重量X。 2.判断X的范围,选择解析式。 3.计算解析式的值。 4.输出答案。 编写程序 Private Sub Command1_Click() x = Val(Text1.Text) Select Case x Case Is = 20 y = 0 Case Is = 40 y =(X-20)*800*0.015 Case Is 40 y = (2*(x-40)+20)*800*0.015 End Select Text2.Text = Str(y) End Sub 基本过程: 分析具体问题 解析法的定义 解析法就是在分析具体问题的基础上,抽取出一个数学模型,这个数学模型能用若干个解析表达式表示出来,解决得了这些表达式,问题也就得以解决。 联想与回顾 学过的用解析法解决的程序设计问题? 适用情况: 可以转化成数学问题,求出数学解析式 用穷举法设计程序 陈婷所在学校的3个环保活动小组经常利用节假日去栽树。有一天,李老师问他们3个小组各栽了多少棵树?因为李老师是教数学的,陈婷就调皮地回答:“3个小组的栽树数量相乘的积是30723,您能把3个小组的栽树数量算出来吗?”李老师说:“只有这个条件不能确定答案呀。你能补充点情况吗?于是陈婷补充说:“A组都是大个子同学组成的,栽的树虽然不到100棵,但比另外两组合起来的还要多。栽树最少的c组也早就超过了10棵。”这时李老师说:“那我算出来了。”李老师是怎样算出来的呢? A、b、c是三个整数,100abc10,a*b*c=30723,且ab+c,试确定a、b、c的值 求解过程 穷举法中变量的安排 小张现有面值为1元、2元和5元的钞票(假设每种钞票的数量都足够多),如果小张想从这些钞票中取出30张用来换取小李的100元,问有小张有多少种取法?输出每种取法中各种面额钞票的张数。 (1)??? 分析问题 本问题有3种面值的钞票,钞票的总张数是30张,应当如何穷举呢?经分析可以知道:当有两种面额的钞票数目确定了之后,可以从张数30确定第三种钞票的张数,然后由总面额是否100元而判断这个组合是否合乎要求。 (2)??? 设计算法 用ONE、TWO、FIVE分别表示1元,2元、5元钞票的张数。变量ANSWER记录符合条件的解的数目、钞票的张数(用变量Pieces表示)和面额的总数(用变量Total表示)都通过输入框来输入 ①??? 让ANSWER=0,FIVE=0; ②??? TWO=0; ③??? 让ONE=Pieces-TWO-FIVE ④??? 检查5*FIVE+2*TWO+ONE是否等于Total,若是,则得到一组解,这时让ANSWER增加1。并且输出解答; ⑤??? 如果TWO<Pieces,那么让TWO增加1,返回步骤③; ⑥??? 如果FIVE<Total/5,那么让FIVE增加1,返回步骤②; ⑦??? 结束 交流 如果首先进行最小面额的钞票的选择,程序代码该如何写?与程序4-5比较,哪一个程序的判断比较的次数多些?如何了解两个程序运行的具体次数? 陈婷有一个E-MAIL邮箱的密码是一个5位数。但因为有一段比较长的日子没有打开这个邮箱了,陈婷把这个密码给忘了。不过陈婷自己是8月1日出生,而她妈妈的生日则是9月1日,她特别喜欢把同时是81和91的倍数用作密码。陈婷还记得这个密码的中间一位(百位数)是l。你能设计一个程序帮她找回这个密码吗? 小技巧: (1)用穷举算法解决问题,通常可以从两个方面进行分析: ①?? 确定范围;问题所涉及的情况有哪些,情况的种数可不可以确定。 ②?? 验证条件:分析出来的这些情况,需要满足什么条件,才成为问题的答案。 (3)要使用多重循环。 (4)如何评价一个算法的好坏,在考虑效率的同时,也要考虑程序的易读性。 ①??? a1 = 1 ②??? a2 = 0 ③??? a4 = 0 ④??? a5 = 0 ⑤??? d = a1 * 10000 + a2 * 1000 + 1 * 100 + a4 * 10

文档评论(0)

yurixiang1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档