用解析法和穷举法设计程序

上传人:公**** 文档编号:510800749 上传时间:2023-10-28 格式:DOCX 页数:9 大小:23.25KB
返回 下载 相关 举报
用解析法和穷举法设计程序_第1页
第1页 / 共9页
用解析法和穷举法设计程序_第2页
第2页 / 共9页
用解析法和穷举法设计程序_第3页
第3页 / 共9页
用解析法和穷举法设计程序_第4页
第4页 / 共9页
用解析法和穷举法设计程序_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《用解析法和穷举法设计程序》由会员分享,可在线阅读,更多相关《用解析法和穷举法设计程序(9页珍藏版)》请在金锄头文库上搜索。

1、4.14.2 用解析法、穷举法设计程序【学习目标:】 1、理解解析法和穷举法2、分清两者之间的区别在经过大量编程实践之后,人们总结出很多行之有效的算法来解决实际问题。常用的 方法有:解析法、穷举法、查找法、排序法、递归法等。4.1 解析法所谓解析法是指:通过分析问题中各要素之间的关系,用最简练的语言或形式化的符 号来表达它们的关系,得出解决问题所需的表达式,然后设计程序求解问题的方法。例 1:求三角形面积已知a、b、c分别为三角形的三条边长,利用海伦公式求该三角形面积 p=(a+b+c)/2S =巧(p-刖 p-匚)编程实现:输入边长a,b,c,如果能构成三角形,输出面积,否则输出“No An

2、swer!” 界面如下:Dim a As Single , b As Single , c As Singlea=val(text1.text)b=val(text2.text)c=val(text3.text)Ifthenp=(a+b+c)/2s=sqr(p*(p-a)*(p-b)*(p-c)text4.text=format(s,”0.00”) 结果保留两位小数Elsetext4.text=”no answer”End If根据上述回答下列问题(8 分,每空 4 分)(1) 、利用海伦公式求三角形面积的算法是(解析法/查找法/枚举法/排序法)。(2) 、填写出参考程序中空白处的表达式(填写

3、字母: A/B/C/D)A、a + b c or a + c b and b + c aB、a + b c or a + c b or b + c aC、a + b c and a + c b or b + c aD、a + b c and a + c b and b + c a(1)解析法(2)D用解析法求解问题,许多时候并非只是计算一个解析式就可以完事,还要根据问题给 出的已经条件,运用归纳、演绎等逻辑方法,揭示问题各要素之间的关系,寻找表示这种 关系的表达式,有时需要计算的解析式是一组而不仅仅是一条。例子2、GDP增长问题某省2016 年的 GDP 是6.7 万亿元,如果每年按 7%的比

4、例增长,问多少年以后此省 的 GDP 超过 15 万亿?【算法分析】假设n年后此省的GDP超过15万亿元,根据题意得出数学关系式?求最小的n。【参考程序】Dim p As Single p 用于记录 GDP 的值Dim r As Single r 用于记录 GDP 的年增长比例Dim n As Integer 用于统计年数p=6.7r=0.07n=0Do while p=p*(1+r)n=n+1LoopPrint n_年后,GDP的值超过15万亿元。”根据上述回答下列问题:(共6 分,每空3分)(1) 本题采用的算法是(填写:解析法/枚举法/排序法/递归法)(2)写出程序中空白处表达式(1)解

5、析法(2)p6)【参考代码】Dim s As Single s 记录出租车行驶的公里数Dim P As Single P 记录总费用s=Val(InPutBox(“s=”) 读入出租车行驶的公里数If sv=3 ThenP=8End IfIf ThenP=1.5*(s-3)+8End IfIf s6 ThenP=2.25*(s-6)+1.5*3+8End IfPrint p根据上述回答下列问题:(1)、本题采用的算法是(填写:解析法/查找法/枚举法/排序法)。(2)、程序代码中空白处应填写的条件是 (填写字母:A/B/C/D) A、3vs6B、3 WSW6C、 s3 And s3 Or s20

6、 , 求最小的 n。【参考程序】Dim p as single,r as single, n as integerP=13 r=0.012 n=0Do whilen=n+1p=p*(1+r)LoopPrint n:年后:人口超过:p根据上述回答下列问题(8 分,每空 4 分)(1) 、本题采用的算法是(填写:解析法/枚举法/递归法)(2)、写出参考程序中空白处表达式 5、分析解决问题:有一张单据,编号为四位数,号码为:8口口0,中间两位被污浊看不出来。已知该单据能够被23和37整除,请编程求出该单据号码【算法设计】设百位数字为X,十位数字为y,x和y的范围都是0到94 位数 8xy0=8*10

7、00+x*100+y*10列举里的两个数字所有可能情况;00,01,02,03,04,05,06,07,08,0910,11,12,13,14,15,16,17,18,19 90,91,92,93,94,95,96,97,98,99逐一判断找出符合条件的数字【参考代码】:Dim x as long ,y as long, n as longFor x=0 to 9For y=0 to 9n=8*1000+x*100+y*10Ifthe nPrint nEnd IfNext yNext x根据上述回答下面问题(1) 、解决该问题采用的算法是:(填:解析法/枚举法/排序法/递归法)(2) 、根据题意程序中的空白处应该填写: (填:A/B/C/D)A、n mod 23=0 OR n mod 37=0B、n23=0 AND n37=0C、n23=0 OR n37=0D 、 n mod 23=0 AND n mod 37=0(3)、根据算法设计,参考程序中循环体中的语句“n=8*1000+x*100+y*10” 一共重 复执行了多少次。【参考答案】1、D

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号