hnyzcj 发表于 2018-6-20 21:58:16

学编程解数学题——巧求周长

本帖最后由 hnyzcj 于 2018-6-20 22:11 编辑


女儿周末作业一道题目:             

       一张长方形的纸长24cm,宽14cm。先剪下一个最大的正方形,从余下的纸片中再剪下一个最大的正方形,最后余下的长方形周长是多少?

一、分析问题:
       这是一道求边长的题目,长方形的边长公式为C=2*(a+b)其中C代表边长,a代表长,b代表宽。对于此题,小朋友只要在草稿纸上认真画一画,就能够得到结果。他的解题过程是这样的。

       第一次剪裁最大的正方形,(补充知识:正方形四条边相等)首先比较a,b长和宽值的大小,很容易得出按较短的边进行剪裁。如下图所示

第二次剪裁最大的正方形,此时长方形的长为14cm(上一次的b),宽为24-14(上一次的a-b),比较两值大小得出按较短的边进行剪裁。如下图所示。得到的长方形长为10(a-b)宽为4(14-(a-b))计算所剩下长方形的周长为:C=2*(10+4)=28
二、设计算法:通过上述分析我们可以解法:设定变量c,a,bc=0         周长a=24       长b=14       宽temp=0   中间变量   判断条件a>b ?(保证长大于宽)          满足条件执行:temp=a-b                                 a=b                                 b=temp                                 输出:c=2*(a+b)   否则         输出提示“please make a>b”三、编写程序运行结果
如果此时就这样结束了,你会觉得少了点什么。嗯嗯,是的……少了什么呢?思考什么几分钟小朋友们!
实际上在上题中,上述算法没有什么问题,但是如果在我们的长和宽比大于1的话?(例如我们将长改为42,宽20,剪裁4次)上述算法就是不对的了。修改算法:设定变量c,a,bc=0         周长a=24       长b=14       宽temp=0   中间变量判断条件a>b ?(保证长大于宽)       满足条件执行:       temp=a-b             判断条件temp>b?                   满足条件执行:       temp=a-b                                                   a=temp                                                   输出:c=2*(a+b)                  否则                                                   a=b                                                   b=temp                                                   输出:c=2*(a+b)
否则         输出提示“please make a>b”
编写程序:运行结果
好了,今天的题目大家感觉如何呢?带着小朋友自己来试试吧。





rzyzzxw 发表于 2018-6-21 12:28:57

{:5_148:}沙发

hnyzcj 发表于 2018-6-21 16:54:43

板凳
页: [1]
查看完整版本: 学编程解数学题——巧求周长