胖头老师在讲台上放了3个重量不相同的实心铁球,然后提问:“现在有一个电子秤,怎么用秤找出3个球中重量最轻的一个?”
“可以先找出2个球中最轻的,然后把轻的那个球与第三个球比较。”糖糖把问题分解成2步来处理。
“说得不错,思路很清晰。”胖头老师把糖糖的思路整理成下面的程序。
运行结果如下。
这个程序的思路是这样的:假设三个球分别是a、b、c,步骤如下。
(1)假设球a最轻。
(2)比较球a和球b的重量。
(3)比较第(2)步中较轻的球与球c的重量,哪个球轻,它就是3个球中最轻的。
假如a小于b,c小于a,比较过程如图5.11所示。
图5.11 比较3个球的重量
提示
同学们在学习程序设计的过程中,要注意锻炼自己的计算思维,学会把解决问题的方法转换成适合计算机运算的步骤。
这段代码的流程图如图5.12所示。
图5.12 流程图
“除了这个方法,还有其他方法吗?”胖头老师引导同学们试试一题多解。
豆豆想了一会儿,回答道:“如果一个球比另外两个球都轻,那么它就是最轻的。用代码表达出来就是a<b && a<c。”
“之前的知识学得不错!”胖头老师给出了第二种方法的实现代码。
如果a比b和c都轻,那么a就是最轻的。如果b比a和c都轻,那么b就是最轻的。如果上述两种情况都不成立,那么c最轻。
流程图如图5.13所示。
图5.13 流程图
练习题
豆豆骑自行车每秒行走3米,走路每秒行走1.2米。她去拿自行车需要120秒。请补充程序,输入距离,比较骑自行车和走路花费的时间。