编程实现:小猫打算骑摩托车在“五一”自驾游。摩托车每次加满油后可以行驶100公里。
它在自家附近的加油站加满油后就上路了,上路之后还要顺序经过“1号”~“6号”的6个加油站,每个加油站到上一个加油站的距离分别是50,80,39,60,40,32公里。
因为“五一”期间各个加油站都有很多车加油,所以小猫希望尽量减少加油的次数。
请帮助小猫在哪些加油站停靠加油(每次都加满油)才能使得沿途加油次数减少。
注意:如果摩托车剩下的油不够行驶到下一个加油站时,就必须要在这个加油站加油了!!!
具体要求:
1)创建两个列表。
列表“距离”用于存放各个加油站距离的数值,将50、80、39、60、40、32依次添加到列表中;
列表”停靠”有6个元素,用于标记在哪个加油站停靠加油。
每次点击绿旗时,都要将“停靠”列表中的6个元素初始化为“0”,然后小猫说“开始出发”2秒。
2)小猫需要指出应该在哪个加油站加油。
例如,小猫需要在第1个加油站加油(因为到第2个加油站还有80公里,而摩托车的油只够再骑50公里),就让小猫说“在1号加油站停靠加油”2秒,然后程序结束。
3)赛后判卷时,在裁判改了列表“距离”中的数值以后,重新点击绿旗后,能够以新的数值重新计算,并让小猫说出合理的停靠加油方案,使得加油的次数最少。
第1步,保留小猫角色和白色背景。建立两个列表“距离”和“停靠”。
点击变量——建立一个列表——建立列表距离——建立列表停靠。在列表名字前面打钩,列表就能显示在舞台区。
第2步,建立两个变量,“公里”和“i”。
点击变量——建立一个变量——变量“公里”——变量“i”
第3步,初始化代码。
当绿旗被点击,将变量公里设为100;将i设为1,这里的i是列表的项目数;
删除列表“距离”的全部项目;删除列表停靠的全部项目。点击绿旗就删除之前列表保存的数据,保证每次程序运行开始的时候,列表都是初始化数据。
第4步,
重复执行6次,代表有6个加油站;
将在4和16之间取随机数乘以5加入“距离”列表。这个数值,将距离控制在20到80之间。
将0加入停靠,说明还没有停靠过加油站加油。
重复执行直到“i=7”,这里的“i=7”是停止运行代码的条件,在条件未达成时,运行重复执行直到里面的代码。
如果“(公里-距离的第i项)<(距离的第(i+1项))”说明距离下个加油站的公里数小于摩托车的剩余公里数。
那么说“在第“i”号加油站停靠加油”2秒。那么,在这加油站停靠加油。
将停靠的第i项替换为1。说明已经加油过了。
将公里设为100,将"i"增加1.继续设定加满油的100公里数。将经过的加油站向后移一位。
否则,将“公里”设为(公里-距离的第i项)说明,摩托车的公里数足够到底达下一个加油站
将i增加1.将加油站向后移一位。
如果运行次数达到了i=7的时候,说明,6个加油站都到过了,
执行重复执行直到下面的代码说“到达目的地”2秒。
这道题就讲完了,主要考察了变量,列表的熟练操作,设定,加入,判断,重复执行直到,如果那么否则等代码的应用。
确定在哪个加油站加油的最佳代码是将停靠的第i项替换为1。然后由小猫说出来。
亲,记住了吗?
没记住的话再看一遍哦。
有空点个关注哦,免费赠送软件
全部评论 (0)