Thing I've got a little procedure that could do that, but you know the simplest thing I could do is to say well, gee, wait a minute, why don't I just check to see if these are the same thing?
这两个点是同一个点么?,我已经写了一小块代码,可以提供这个功能,但是你知道的我可以做的,最简单的事情就是说好,嗯?,等等,我为什么不直接去看看,这两个东西相等不相等呢?
Once your programs get fairly complex, it becomes harder and harder to find things and to tweak things if you're not being organized.
一旦代码稍微复杂点,而你又不规范你的代码,那么你想找什么东西就很困难了。
And when I do this test, what I want to do, is say I'm going to pick the middle spot, and depending on the test, if I know it's in the upper half, I'm going to set my start at the mid point and the end stays the same, if it's in the front half I'm going to keep the front the same and I'm going to change the endpoint.
如果我知道目标数可能,再比中值点大的区间里,我可能就会把开始点设为中值点,而尾点不变,如果在小的那个区间里,就保持开始点不变而把尾点设为中值点,你们可以看到这儿的代码,就是这么做的,对不对?它是怎么做的?
It's just a little more compact, as the gentleman there said.
只是使代码更加紧凑点,像刚才那位绅士说的。
So this first little piece of code right here says, ok you give me 2 points, I'll create another 1 of these lists and I'll simply take the x, sorry I shouldn't say x, I'm going to assume it's the x, the x-values are the two points, add them together, just right there, the y-values, add them together and return that list.
好,为了来认识到这一点,让我们来看一个简单的小例子,在你们的课堂手册上,你可以看到我写了一个小程序,它假设我得到了,这些点中的一些,我想对它们做一些操作,例如我想把它们加到一起,那么这里的第一小片,代码的意思是,好给我两个点,我会再创建一个数组。
Remember last time, I said that there's different kinds of complexity in our code, and I suggested for simple branching programs, the amount of time it takes to run that program is, in essence, bounded by the number of instructions, because you only execute each instruction at most once.
但是这里有个很重要的点,记得上节课,我提过在我们的代码中,有不同种类的复杂度,而且我还说了对于简单的分支程序,运行这种程序需要的总体时间,大体上,是和指令的数目相关的,因为每个指令只会被执行最多一次。
But here, if I decide I'm going to store things not in x and y, but with some other set of names, for example, I've gotta go back into these pieces of code that use the points, and change them. So I've lost modularity.
除了要改下借口,但是这里,如果我决定,我不把值放在x和y中,而是和其他一些变量名进行绑定,例如这样的话,我就得回到使用这个点的代码,那儿去做更改了。
And I originally decided I was going to have as points, it's going to have internal values of an x and a y.
写了一堆代码,然后我以开始决定,是要把值放到点里面的,点有内部的x坐标和y坐标。
And if you're sharing a particularly decent amount of code, you should definitely submit it as private, or if easier, you can email help at cs50.net.
当你分享了一些相当好的代码量,也可以私下提交,或者更简单点,发邮件到cs50,net寻求帮助。
You can stack these things in C. So if you want to do if - and then rather -- let me tweak this just so simplify -- if you want to stack these things and do this in one case or that in the other, can you stack them like this?
你们才可以在C语言中使用这些东西,所以如果你想做,-让我把这个弄得更简单点-,如果你想把这些代码堆集在一起,在一个情况中,或在另一个情况中处理,你能够像这样把他们集在一起吗?
应用推荐