And they're awfully simple because, all I can do now, is decide whether to execute some piece of code or another.
它们之所以太简单的原因是:,现在我能做的,就是,决定执行一块代码或者执行另外一块。
or whatever. Like, you know, you're speaking the secret code,
好像你在说密码一样,
What we will distribute for most lectures is a handout that's mostly code examples that we're going to do.
我们在大多课堂上会散发一些,印着我们要做的,代码范例的资料。
Now we're gonna hand you some framework, that code that we wrote with some blanks to get you accustomed to the idea of one, writing larger programs than time might allow if you were doing it on your own.
现在就提供给你们一些框架,在代码中有些空白,是为了让你们了解其中的思想,如果是你自己,若时间允许,那就尽量写大的程序。
As shown in this cartoon here, again you don't need to know the details of this, but if you're interested in knowing what's the biological bases of the genetic code this is it.
像这个动画里画的那样,这里你也不需要了解细节,不过如果你很有兴趣想知道,遗传密码的生物学基础
And I want to suggest that what we've done is, we've outlined a lot of the basic elements of programming. A lot of the basic elements we're going to need to write code.
我想提醒大家我们学习的是,我们学习了很多关于,编程的基础的东西,一些我们编写代码需要的基础的东西。
By the time you get to the end of the term, you're going to be dealing with some fairly complex things, so one of the things you're going to see is, we're going to make heavy use of libraries, or code written by others.
当你临近期末的时候,你们将要解决一些,相当复杂的难题,因此你们将会看到的其中一点是,我们要充分利用图书馆,或者别人编写的代码。
That was the kind of thing you saw. Asserts said here are some conditions to test. If they're true, I'm going to let the rest of the code run.
这就是你看到的,断言是一些测试条件,如果他们为真。
And just to look ahead a little bit, you could easily imagine that I might want to not just put a statement in there, what the specs are, I might want to put some constraints. Some specific things to check for, to make sure that you're calling the code right.
这不仅是抽象的概念还有规范的概念,我们再往前看看,你可以简单的想象得到,我不仅仅是想在这里加一个声明,这些规范说明中我还想加一些约束,我们要注意一些特殊的事情。
So if you're coming from prior background, your code might work a little differently on a different system if you don't use those flags.
如果你来自一个先前的背景,如果你们没有使用这个版本标志的话,在一个不同的系统中,你的代码可能运行地不太一样。
Give you some examples. What have we talked about? We've talked about things like using comments to highlight what you're doing in the code, to make it easier to debug.
给大家举些例子,我们一直在强调什么来着?,我们讲过要用注释来说明,你在代码中进行的操作,以便于调试。
And so what I was hinting at earlier when you put semicolons in the wrong place, and then proceed to have curly braces around arbitrary lines of code, you're creating an even more local scope there, which is generally not the right intended behavior.
在之前我暗示了,当你把一个分号放在错误的地方时,然后开始用花括号,括上任意行的代码,你在那里创建了一个局部范围,那个不是故意的行为。
I will tell you that a good programmer, at least in my mind, may actually go back and modify the pseudo code as they realize they're missing things, but it's easier to do that when you're looking at a simple set of steps, than when you're in the middle of a pile of code.
至少我认为是这样的,如果他们发现遗漏了,一些步骤的话会,回过头去修改伪代码,但这当你面对一些大致的步骤时,这个过程就会比,面对一堆代码要简单的多。
You want to write the specs so that everybody does in fact know what this piece of code is doing, and you're writing it each time around.
但是你得养成良好的习惯和编程风格,你得撰写规范说明从而保证,每个人都知道这段代码是干什么的。
Anytime you find yourself in this pattern, odds are, what you're doing is a candidate for being factored out, hierarchal decompositions is the buzzword you'd see in the textbooks if you're following along with any of them, but it's really just the idea of taking out common code and putting it into just one place.
任何时候你发现你处于这种模式中,可能,你所做的东西是可以提取改进的,体系分解是一个你在课本中看到的流行词,如果你遵循其中一个,这个实际上是一个把相同的代码,放到一个地方的思想。
OK? And in fact, if you look at the code up here, and it's on your handout, the very first one, x 1, right here- if I could ask you to look at it-- is a piece of code to do it. And I'm less interested in the code than how we're going to analyze it, but let's look at it for a second.
实际上,如果你看看,你们课堂发的材料上面的代码,第一页上的,就是那-,大家请看看实现的这一部分代码,我不太关心,我们会怎么解释这个代码,首先让我们先看看。
I can't give it what it wants," know that when you're writing code and the problems that will remind of this, if you absolutely have to kill your program, you don't have to close the window, CTRL+C reboot crazy stuff like that, generally you can hit CTRL+C and it will just abort the program right where it is, in case you ever get trapped in some awkward situation.
我不能给它所要的“,当你在写代码时,程序将,提醒这个问题,如果你不得不,关闭这个程序,你不需要关闭这个窗口,重启像那样的疯狂举动,通常你可以敲,它将会在这个地方终止那个程序,假使你陷入了尴尬的处境。
I don't happen to have one today because we're not going to do a lot of code.
今天我恰巧没带来,因为我们不会做很多代码。
Well just to see what we know what we're doing, let's look at this code here.
我们下一步该去怎么做呢?,好,让我们来看看。
When we start writing code, you're going to see that difference, but for now, don't worry about it, I just want to plant that idea.
当我们开始写代码的时候,你就会看到区别了,但是现在别担心,我只是想让你们初步有个印象。
I stress it in particular because I know you're all going to get into this stage; you've got a problem set due in a couple of hours, you're still writing the code, you don't want to waste time, and I'm going to use quotes on "waste time", doing those extra things to do the defensive programming, you just want to get the darn thing done.
我特别强调了这一点,因为我知道你们都会慢慢成为程序员;,你在写代码过程中造成了一系列的错误,你还在写代码,你不想浪费时间,我想把“浪费时间“用引号圈起来,浪费时间来做因为防卫性程序设计,而带来的这些额外的事情,你只想赶紧把程序写完,这不是一个好习惯,因为当你做完回头。
Pseudo code. Now, you're all linguistic majors, pseudo means false, this sounds like code that ain't going to run, and that's not the intent of the term. When I say pseudo code, what I mean is, I'm going to write a description of the steps, but not in a particular programming language.
伪代码,基于你们都是学语言的,伪代码意味着不正确,这听起来就像是没法运行的代码,这可不是我们学这个的目的,当我说到伪代码的时候,我的意思是要对步骤进行一个描述,而不是某种特定的编程语言。
So, summarizing better, assert is something you put in to say to the user, make sure you're giving me input of this type, but I'm going to guarantee you the rest of the code works correctly. Exceptions and exception handlers are saying, here are the odd cases that I might see and here's what I'd like to do in those cases in order to try and be able to deal with them.
所以更好的总结下,断言就是你放在那里告诉用户,保证你输入的是这种类型的,但我能保证剩下的代码运行正确,异常和异常处理做的事,这里有些我能预期的异常情况,并且这里有些情况,我能尝试处理。
This is convention, so on almost-- and most any computer you overuse, if you're writing code that uses a char, you're gonna be handed 8 bits or 1 byte to store that particular char.
这是约定,对于大多数-,电脑,当你写代码要用到一个char型数据时,必须先预留8比特或1字节,的空间来存储这个char型数据。
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寻求帮助。
And then you can delete it once you're sure your code is working right.
当你们能够确定你们的代码运行正常的话,你们可以把这个“printf“,语句删除掉。
We won't make you write dramas like Pirandello, but we're going to try make you at least write good code.
我们的函数中的东西,我们不会让你去写皮兰德娄的荒诞剧,但是我们会教你写漂亮的代码。
And for a couple of reasons, one this is the first P set where we're actually gonna give you code to work from.
由于一些原因,这里是第一个习题集,在此我们提供了一些代码供大家参考。
It could be multiple versions. And we're going to come back throughout the term to think about how to code programs that reflect this.
可能是一种形式也可能是多种形式,我们再回到递归这个术语上来,用它来思考怎样编出。
Imagine instead, you're writing code that's a hundred thousand lines, a million lines, of code. You don't want to write it in this form. All right, and the reason you don't want to do that is, well, several.
换一个角度来思考,你正在写的代码有几十万行,近百万行,你绝对不想写成这种格式,好吧,你不想这么做的原因有以下几个。
应用推荐