【站内原创】【编程思维(万字,面向初学者)】
贴吧惯例,一楼祭天,二楼开始正文。
1.5:定义的技巧——分步定义
1.5.1:找最小值
现在有一串数字:5,7,6,2,9。需要你定义一个动词:排序。这个动词以一串数字为参数,输出这串数字从小到大排序的结果。
你可能没有头绪。
现在我换一个问题:还是这串数字。现在你需要定义一个动词:找最小值。
这个问题就简单了:
先假设第一个数字是最小值。
然后看第二个数字,如果它更小,那么就让第二个数字是最小值;否则,第一个数字就是最小值。
然后看第三个数字……
以此类推,直至看完所有数字。此时的最小值就是真正的最小值。
定义完【找最小值】之后,再看原本的问题:定义排序。此时就不难了:
先找到最小值。把它写在第一位。
然后看剩余数字,找它们的最小值,把它写在第二位。
然后看剩余数字,找它们的最小值……
以此类推。直至看完所有数字。
1.5.2:滚动条
滚动条怎么定义?
你可能没有头绪。
现在我问你:滚动条的本质是什么?
这个问题很简单:
滚动条的本质,就是【一个物体移动,另一个物体会跟着移动】。
现在回到原本的问题:滚动条的定义。此时就不难了:
有一个滚动块,一个滚动区域,一个被滚动区域。
如果滚动块向上移动,那么被滚动区域向下移动。反之亦然。
滚动块只可以上下移动(不可以左右移动)。