2018-6-20 21:58:16 [显示全部楼层]
2928浏览
查看: 2928|回复: 2

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

[复制链接]
本帖最后由 hnyzcj 于 2018-6-20 22:11 编辑

未标题-1 拷贝.jpg
女儿周末作业一道题目:             

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

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

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

第二次剪裁最大的正方形,此时长方形的长为14cm(上一次的b),宽为24-14(上一次的a-b),比较两值大小得出按较短的边进行剪裁。如下图所示。得到的长方形长为10(a-b)宽为4(14-(a-b))

3.jpg

计算所剩下长方形的周长为:C=2*(10+4)=28


二、设计算法:

通过上述分析我们可以解法:

设定变量c,a,b

c=0         周长

a=24       长

b=14       宽

temp=0   中间变量

   判断条件  a>b ?(保证长大于宽)

          满足条件执行:  temp=a-b

                                 a=b

                                 b=temp

                                 输出:c=2*(a+b)

   否则

           输出提示“please make a>b”

三、编写程序

微信图片_20180620213433.png

运行结果

微信图片_20180620213625.png


如果此时就这样结束了,你会觉得少了点什么。嗯嗯,是的……

少了什么呢?思考什么几分钟小朋友们!


实际上在上题中,上述算法没有什么问题,但是如果在我们的长和宽比大于1的话?(例如我们将长改为42,宽20,剪裁4次)上述算法就是不对的了。

修改算法:

设定变量c,a,b

c=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”


编写程序:

QQ图片20180620215349.png

运行结果

6666.png


好了,今天的题目大家感觉如何呢?带着小朋友自己来试试吧。







rzyzzxw  版主

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

沙发
回复

使用道具 举报

hnyzcj  版主
 楼主|

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

板凳
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail