为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > [POWERED BY GOOGLE TRANSLATE] [嗡嗡声] 所以把你介绍给我有什么在 ...

[POWERED BY GOOGLE TRANSLATE] [嗡嗡声] 所以把你介绍给我有什么在 ...

2018-08-10 26页 doc 55KB 13阅读

用户头像

is_650122

暂无简介

举报
[POWERED BY GOOGLE TRANSLATE] [嗡嗡声] 所以把你介绍给我有什么在 ...[POWERED BY GOOGLE TRANSLATE] [嗡嗡声] 所以把你介绍给我有什么在 ... [Powered by Google Translate] [?嗡嗡声?] 所以把你介绍给我有什么在屏幕上; 它是一个在今年夏天,我们开发的工具; 它被称为CS50空间, 这是我们的合作编码应用 我们要使用的部分。 这实在是太酷了。 您有任何CS50运行吗, 让我拉起来,在另一个选项卡。 Run.cs50.net 所以 如果你去run.cs50.net, 你可以看到这是一个在您的浏览器的方式 其实代码 - 编写C代码, ...
[POWERED BY GOOGLE TRANSLATE] [嗡嗡声] 所以把你介绍给我有什么在 ...
[POWERED BY GOOGLE TRANSLATE] [嗡嗡声] 所以把你介绍给我有什么在 ... [Powered by Google Translate] [?嗡嗡声?] 所以把你介绍给我有什么在屏幕上; 它是一个在今年夏天,我们开发的工具; 它被称为CS50空间, 这是我们的合作编码应用 我们要使用的部分。 这实在是太酷了。 您有任何CS50运行吗, 让我拉起来,在另一个选项卡。 Run.cs50.net 所以 如果你去run.cs50.net, 你可以看到这是一个在您的浏览器的方式 其实代码 - 编写C代码, 然后运行它, 所以编译,运行它,然后输出返回给你, 所以这是一个冷静的方式进行实验 大卫在课堂上的一些代码 和我们给你的问题集 没有真正火起来的家电。 因此,空间做什么,不同的 如果我切换到该选项卡, 空间是CS50运行,就像你看到这里, 但是,如果我们滚动,并期待在另一边的窗口, 你看到的我是唯一的人在这个空间, 但我要问你们加入这个跟我的空间 ,我们将所有的代码在同一个小窗口, 相互共享代码, 谈论我们的代码之间的差异。 所以这是一件很酷的事情的一种 - 所以要加入,如果您访问此链接在顶部 我已经强调了, 你可以直接输入在apps.cs50.net/spaces/vqcspSnO。 好了,所以开始时, 我去给你一点点的参观。 我们会做一些愚蠢的小编码与它在第一, 只是让大家有点的感觉是什么样子的, 但我做了什么 - 我在这里做什么 - 我要的代码,我已经写在这里, 正如你现在看到的是空的; 它不会做任何事情。 这只是锅炉板代码,我们将调用它。 随着一点点地做评论。 我要通过点击此“保存”按钮保存。 是什么做的是什么 强调它在这里简单 - 修订版本保存的绿框, 现在,如果你搜索我的空间, 你点击我的名字, 你可以看到,我已经得到了本次修订在这里, 如果你点击该版本, 它会加载的代码到你的空间了。 所以每个人都加载了代码到他们的空间吗, 好吧,如果你还没有,去进取,做到这一点, 那么我希望你们在这个小的办节 是使用printf自己写一点点, 例如,我会写 printf的(“我的名字是Nate”); 然后我会写 “我2009年毕业的 从斯坦福大学“ ,我很想听到 你是哪一年在学校里, 无论你是在大学或商学院 或其他的哈佛学派, 你正在学习什么,如果它的未知; 如果它不知道,这是很酷的。 我没有决定,直到我在我大二的时候已经很晚了。 然后我也很想知道 什么疯狂的,你要告诉我,或 类或别的东西。 当你写完你的小printf的, 如果你能保存修改,或者更确切地说, 首先要确定,你可以运行它 它打印出的正是你想要它打印出来, 然后如果你继续前进,并保存该修订 使用修改保存“按钮,这小家伙在这里, ,我们会有点儿经过,这样做一简单介绍。 所以,你应该只需要点击“播放”按钮, 这是在左上角, 所以这左上角的播放按钮将 你的代码发送到我们的服务器,它被编译,然后运行。 那么,什么是有点疯狂 这段代码实际上是在计算机上运行; 它实际上是在互联网上发送。 怎么样了,夏洛特, >>我 - 好了。我 - 我想我 有困难的保存 在服务器上,这样它可以 - 我可以运行的程序。 然后当我尝试运行它,它说,有一个错误。 声明为病毒,这是不是在那里了。 哦,让我们来看看,你可以再次点击保存, 我看到它在屏幕上。 “对了,好了,所以这是我所拥有的。 我不知道为什么它不会让我运行它。 哦,好吧,对不起。 你能解释为什么 - 什么是错的 - 什么是不工作, “是啊,因为我没有看到,有一个最后一行那里的仍然是一个变量 我没有宣布,我不打算为它在那里。 是的,完美的~ >>现在,如果我保存它,我认为它应该工作。 现在,你已经救了它,它的工作原理;真棒。 所以,是的,我们通过 - 所以发生了什么事情, 我只是重复的摄像头。 发生了什么事,这个变量s 留在后 - 我想你删除了一些其他的东西, 你宣布, ,所以这个扔东西了,并 没有让你运行它。 因此,这正是我们想要做的第 有人尝试写不同的代码块, 编译它,看看你的作品,看看有什么不 然后有点谈论这些事情,因为这是跳闸点 我仍然会遇到, 我还是 - 我做很多愚蠢的东西所有的时间, 我不知道为什么它不工作, 让我们拉起夏洛特的修订3, 我们会运行它。 所以,当我运行了,现在我已经拿到了她在这里的代码, 我可以放大,打到“运行”按钮, 上传它,建立它,运行它, 说,它成功地跑了,如果我向下滚动, 夏洛特是一个大三学生亚当斯房子, 心理学,经济二次真棒。 很高兴见到你~ 真棒。 好,继续,让我们去丹尼尔, 修订3, 编译,运行; 你为什么不告诉我们一些关于自己,丹尼尔, 给我打电话丹。 我要你们对面的商学院, 我是在海军陆战队员之前,在这里, 这是我的全部新,所以啊。 不要难过,我30岁,我不知道任何这方面的东西。 真棒,谢谢你,丹~ 好了,我们还有丹尼尔。 您的丹尼尔 - 你介绍一下自己,丹尼尔, >>当然,我是丹尼尔。 我是一个大二的学生现在在奥美。 我专注于政府, 但我想借此CS50,因为我已经听到了巨大的类评论 和我从来没有尝试过CS。 向下滚动,并出示此 - 凉。 移动,贾里德。 怎么了, >>好,你怎么样, 正如你可以看到,我是一个初中理念集中在艾略特, 最初由加利福尼亚州南部, 和我采取CS50很感兴趣,因为我喜欢它的逻辑, 它在电脑上做的事情,所以看起来真的很酷。 真棒,你是在南加州吗, “关于一个小时[听不清]的一个小城市[听不清]。 哦,是的,我爸从雷德兰兹。 很酷的东西。 好吧,吉米怎么了,吉米, >>好,你怎么样, 算不错了~ 告诉我们你的。 我是一名大一新生,我不知道我主修 但我有点倾向于经济学。 像丹尼尔在我面前,我从来没有做过任何CS,但它听起来还挺酷的。 我最初来自芝加哥。 真棒。因此,检查了他的打印输出。 我想问问,这样做打印出你所期望的吗, >>没有,我忘了打印新的生产线。 我竟然忘了,当我在写我的事 为第一次,太。 这是一种痛苦,要记得把那些手动。 它会是不错的,如果它只是知道这是你想要的。 好吧,凯利。 哇,我们有2个的凯丽; 2丹尼尔斯,2凯丽。 因此,凯利 - 你去凯利任吗, 好了,真棒。 凯利,我的意思。 “所以呀,所以我凯利。 我大二学生Pfoho。 今天,我仍然有7周宣布我的注意力,我收到一封邮件, 所以我试着不去想它, 和我喜欢烘焙,运行和Craisins。 我没有经验,大部分的CS; 我教自己建立的网站,我很年轻的时候, 但我想我可能教自己错了很多次。 希望我会学多一点点 - 是的。 真棒,好,谢谢你。 让我们去其它Kelly; 我没有什么 - 你在这里说些什么, >> [听不清] 在那里~ 太好了~ >>所有权利,所以我凯利。 我是第一年的研究生。 我主修心,脑和教育。 在2008年,我毕业于富兰克林与马歇尔学院 在心理学和社会学专业 未成年人在法国。 我CS50 因为我有兴趣在神经科学中获得博士学位 我觉得这会帮助我了解正在使用的技术。 真棒。 移动,米凯拉。 那是正确的发音吗, 好了,真棒。 >>,我Mikhaila。 我是一个大二的学生在柯克兰楼, 我集中在机械工程。 我真的很喜欢骑自行车,自行车在今年夏天建成。 我的CS,其实, 作为的浓度要求, 但你知道,我认为这是尚酷样的工程类。 真棒 - 你建立了一个自行车今年夏天, >>呀。 哇,像框架和所有呢, >> UH-hunh(肯定的)。 哇,这真的很酷。 >> [卡通摄像头聊天] [笑声] 是啊,这是这么久。 你永远不知道,对不对, 好了,凉;以及感谢,Mikhaila。 好了,大小姐。 >>我的名字叫大小姐,我是一个大一学生, 因此,这意味着我什么都不知道~ 我想集中在天体物理学。 在CS50, 我觉得肯定会帮助。 我是一个奇怪的事实,我是国家认证的消防队员。 哇~ 这是怎么回事呢, >>我参加了学院 经历了地狱了很多周 并得到我的认证。 哇,恭喜~ 这是不小的壮举,是肯定的。 好了,现在我们要做我。 我行中的下一个。 我 - 运行它。 所以我的名字是Nate。 我是2009级在斯坦福大学。 我是一个符号系统的主要 这是心,脑,行为集中在这里, 但它是一种混合 计算机科学,语言学,心理学和哲学。 样的 - 是的,有很多奇怪的东西,但它是伟大的, ,然后我做我的主人在计算机科学,以及。 所以,我到哈佛大学今年。 我真的很想进入教学。 我花了近4年在斯坦福大学的TA-计算机科学类 大卫让我来吧, 我要帮助CS50, 所以我做到这一点的时候,我不是在读研究生。 这很有趣。 希望它会继续是有趣的,我敢肯定会的。 所有权利,山姆。 >>我的名字是山姆,我是在大学二年级,在法律上明确。 我主要将是科学史上的可能,VES二次, 我最喜欢的颜色是黄色的。 没有必要通过判断或任何东西,但它是一个很好的颜色~ 斯特拉。 >>你好,我是斯特拉,我是一个大一的灰色。 我有没有什么线索,我尚未集中, 所以CS50是一种随机, 这是有趣的。 有趣的事实,吉米是哈佛的第一个朋友, 因为我们俩都从芝加哥。 冷却,格雷斯 - 这应该是非常好的,对不对, >>我想[听不清]。 哦,是的。 [卡通/关闭摄像头聊天] 好了,我现在还在学习,还在学习。 因此,我们有别的东西,这是一种有趣的。 是啊,我只是想知道,你有一个想法,是怎么回事, 你知道该如何解释呢, >>我本来是要放在每一行后面的分号。 这是一种痛苦。 有时,这些的分号可以是一个真正的痛苦追查。 所以,事实证明, 我们使用的是今年的特别节目 编译我们的C代码被称为铛, 的原因,我们已经开始使用铛今年 - 因为我们没有使用该程序在过去的; 我们已经使用了另外一个叫GCC,实在是很受欢迎 - 铛实际上是为您提供了有意义的错误消息。 这一个说,“预计”,“达”之后, 它甚至会告诉你之后,你需要一个分号的表达。 那么,你修复它, >>是的,没错。 真棒,让我知道,我们将它拉起来,我们将运行它。 但是,是的,把这些分号,是一种痛苦。 我固定的,所以我认为它应该工作。 真棒 - 修订3。 这看起来像它。 好了,所以现在如果我们运行它, 就这样吧。 很酷的东西。 好的。 因此,感谢你这样做。 这极大地满足了你们。 什么现在我们要做的就是在接下来的点点 有点潜入的部分问题 从本周的问题来自 我们会做到这一点的大部分路段 的其余部分的术语, 然后,我们将保存最后15,20分钟左右 谈论的问题本身 ,然后就您有任何其他问题,在一般的类。 这就是说,我们真的很想做 有大家参与 使用空间的东西, 在代码中扔,扔了建议, 和谈论这样的事情休息时, 或不工作,只是因为这些事情, 我知道我遇到了 当我开始编码, 真的有点令人沮丧次 因为如果它像凌晨2点之前是由于你的习题集, - 只是披露, 我并没有开始编程,直到我是一个大二学生。 这是种奇怪的,未知的事情 我听到的是有点凉 我还听说它可能是一个真正的痛苦的对接 如果你错过了一个分号,使你的程序不能正常工作,这是唯一的错误 让你去睡觉, 所以肯定, 如果你有这样的问题, 如果你有这样的问题,让我知道, 因为我要让你们这是一个很好的经验。 因此,有你们所有下载的问题还设置, 均田知道它在哪里,好吧。 所以,我们去cs50.net, 因为我没有在此帐户, 拉起来的问题集, 拉起来的问题集2,今天我们来看看标准版。 我们会拉规范。 向下滚动。 因此,我们要的问题,在本节开始寻找。 你们看着这些短裤吗, 好吧。 所以有循环短裤, 这是由汤米,头部教学研究员之一。 还有一个关于范围, 我相信,通过另一个教学名叫大卫的家伙, 恺撒密码,然后由大卫也做了。 他们很酷。 你们看他们的短裤这么远吗, 还好吗他们了, 有帮助吗,好了,好知道。 如果不是这样,你可以这么说。 但在此之前, 有你们看着这些问题, 在所有, 我们谈谈这有点。 因此,我们已经介绍了在过去的几个星期 在讲座 若干不同的循环。 有for循环, while循环,do-while循环, 在讲座中,我们已经谈论了很多有关 如何将这些循环 相当类似,在很多方面, 和一个while循环,你可以做同样的事情 你可以用一个for循环。 你只需要种使用正确的组合变量等。 等真的 所有的循环的真正区别是, 有时,他们更多有用的 使用它们比在另一时间在同一时间。 因此,例如, 从do-while循环while循环不同的。 大家都觉得像他们有一个很好的处理时 一个do-while循环更 有用的或有什么区别吗, >>我认为所不同的是一个do-while循环 运行 - 我不知道是怎样的术语, 但内环路的一系列的功能。 他们自动 - 它至少运行 前检查的情况下,或在while循环将只运行它时, 连续运行 - 是否得到满足的条件。 是的,这有意义吗, 让我们来看看一点点的代码。 因此,只要重复的问题, 或答案,而; 得到的答复是, 一个while循环检查,看看是否条件 您指定的会面 前运行的主体的第一次循环, 而do-while循环会自动执行循环体, 就是我们所说的 - 这是奇怪的术语, 但如果我说什么没有意义的,让我知道 - 循环体是,你把花括号之间的东西。 在do-while循环, 该机构获得至少运行一次, 检查的条件,然后被运行之前,每个连续的时间。 因此,实际上,山姆, 你不介意编写一个简单的while循环 在空间, >>你怎么有点像 一个新的吗, 我只是删除了,无论你在那里。 是啊,就清除它。 >>好吧,我相信我有这个 - 哪一个你想要的,而你要吗, 是啊,就做了而真正的,打印的东西。 让我们来看看。 亚历山大,我意识到我们从来没有向你介绍。 “哦,那很好。 你 - 你可以编写一个do-while循环的我们吗, 是的,我会尽力。 好了,我们就拉在屏幕上, 种让你有一个把手上的差异是什么。 因此,这里的山姆做什么。 他有一个名为i的整数 他的初始化为17。 然后,他说,虽然(INT I = 17) printf的(“我的名字是山姆”); 所以我们运行这个代码时会发生什么, 有一个错误;错误说什么, 让我们把它和谈论它。 发生错误,它说。 让我们向下滚动。 因此,它给了我们这个错误,它说, “嘿,我预计的表达。” 这有点难以理解。 是啊,所以准确 - 再次, 会有另一个小错误,我们将赶在第二。 但是,这是另一个那些奇怪的术语的东西, 所以这INT I = 17 是不是一个表达式。 它看起来像它在做什么,是它的 声明一个整数叫我 将其设置为等于17 或者说,叫我把17这个int。 这没有任何意义 在这个while循环的上下文中。 这有一定道理,因为我们可以看到, for循环的背景下,由于环声明开始 为int i等于什么 和。 那你有没有 - 修复的东西,所有的权利。 在这里,它会真棒。 所以,现在的情况看起来有些不同。 一对夫妇的事情发生了变化。 你能告诉我们什么事情发生了变化, >>我拿出的 int,所以没有声明[听不清],而不是分配。 一个等号,我把2个等号,这意味着一个等号。 真棒。 是啊,所以什么山姆没有他拿出的int 这是在这里, 所以,如果我只是在看这 - 这是早,故称INT, 宣布 - 让我们拿出的类型。 int,char和字符串,短, 那些被称为类型。 所以,你拿出的类型 然后以前, 他只是单一等号 他说的是问题的有关 当你有1个等号, 这是一个赋值运算符。 这不是测试,是否事情都是平等的。 这实际上是设置的东西的东西。 我们将在17号到变量i。 因此,做这种比较, 你必须使用双等号, 这是一种一个奇怪的事情 但它是一个相当常见的错误。 因此,另一件事情,我会指出,如果你不介意的话, 的是,在 在国际主要功能, 你看,我们的身体功能 从左侧偏移 4个空格或制表符。 我们这样做的原因 仅仅是为了提高可读性。 正如你可以看到这里在山姆的while循环中, 他并没有在所有的缩进, 并且不影响的功能的代码。 它将运行完全一样的。 因此,举例来说,如果我们拿出顶端 ,然后按播放按钮,它会建立, 它会运行它, 什么事情发生, 为什么仍然说吗, >>,因为它会不断地重复您好。 没错,为什么它不停地重复您好吗, “由于整数永远不会改变,所以它总是17。 是的,没错,所以 让我们来看看, - 再次提醒我你的名字吗, 吉米。吉米说, 您好一遍又一遍不断重复的原因 是因为这种情况下总是如此。 我们永远不会改变i的值。 我们永远不会改变该变量中存储的内容。 因此,在这一点上,我们得到了这个错误, 你的程序产生过多的输出, 如果我们向下滚动,看看这是怎么回事种, 你可以看到,它是嗨,嗨,嗨,嗨,嗨,嗨,嗨,一路过关斩将。 真棒。 因此,种回原点 有压痕这里 在身体的while循环没有造成任何影响。 该程序仍运行得很好。 通常,对于良好的作风 - 这是什么,我们期待在您的问题集 - 我们希望您能缩进4个空格,你可以做 只需按下Tab键 或通过手动把自己的4个空格。 酷,好了,让我们回去看看 亚历山大的DO-WHILE。 >>只是有点有点麻烦了。 好了,让我们的工作。 这很酷, >>呀。 好了,所以在这里我们去。 这是代码,亚历山大写道。 你去亚历克斯 - 好吧。 因此,这里的亚历克斯写的代码。 所以,我们已经得到了我们的声明,主要就在这里, 然后,我们得到了这个整数变量名为i 被宣布就在这里。 我们已经有了一个do语句 然后身体再次与这些大括号, 因此,这是人体的DO-WHILE - 让我在此放大,因此它更具可读性 - 在身,我们正在试图打印“,这是身体”, 我+ +, 因此,增加的内容,我这样做 直到i得到为3, 那么,我们的程序结束。 所以当我们运行这个程序时,会发生什么呢, >>我预期的标识符。 好了,因此,建立,运行,就会发生错误。 发生了什么, 我们向下滚动, 我们得到这个有些神秘的东西, 预计分号后的顶级声明。 这是有点怪异。 没有任何人有一个想法可能是什么回事上, 有点不可思议,是的。 >> [听不清]声明以外的括号, 那么,不适用,那么当您使用括号吗, 因此,他宣称这其中括号外的家伙, 噢,这些家伙 - 在大括号, >>呀。 是的,没错。 所以,事实证明, 你可以声明一个变量实际上不是在这里是这样的。 你可能一直在试图做的是 - 削减它的存在 - 你可以把它在大括号在这里 或另一种选择 是把它完全脱离。 所以,这些 - 这取决于你居然把声明 该整数变量, 你可以得到2个不同类型的变量; 时,它的主要外, 这就是我们所说的一个全局变量。 它的范围以外的任何的功能 - 这是不是在函数 - 而如果我们把它里面的主, 喜欢这里,然后它被称为局部变量, 因为它是本地的主要范围。 我们将讨论多一点点的区别是什么 之间的2种类型,以及为什么要使用不同类型的变量, 但现在, 你可以保持所有的局部变量, 因为我们没有任何需要全局变量。 好了,所以这是一件事。 让我们尝试再次运行这个,看看会发生什么。 运行“,另一个错误。 放大一点,我们都能得到什么呢, 后做/而我们得到这一预期的括号。 任何想法,这是怎么回事呢,丹, “一会儿,然后括号,然后 - 我不知道,如果你需要重新定义诠释, 但的do while(i <3的)。 没错,是的。 因此,原来,丹完全正确。 我们没有必要再在这里把这个类型。 相反,我们可以杀死类型 做到这一点。 好的。 我会放大,尝试更多的时间。 看它运行成功。 如果我们向下滚动,“这是身体的”打印出来的3倍。 这是非常甜蜜的。 干得好,干得好,伙计们。 干得好。 怎么这么远吗, 体面的步伐, 好了,爽。 因此,作为一种回到原来的问题, 我们 - 现在如果我们看到了差距, 您看,这do-while循环, 条件是最后的。 因此,随着计算机读取程序 种在这个顺序执行C程序, 他们从字面上开始与第一线的主要 然后执行第6行,第7行,第8行,第9行中, 第10行,第11行, 这一切的东西在这里的右上角 要执行一次 之前我们曾经测试情况,以 是否我 - 的内容我,而 - 小于数字3。 只有一次,我们到12号线, 的内容的i是小于3 我们跳转到第7行 然后重复这个过程中, 然后我们测试的条件,再一遍又一遍。 因此,我们可以对比 - 缩放退了出去, 向下滚动到山姆的版本, 我们要看看这个,稍有改变,因此,它不再是一个无限循环 - 如果我们放大, 我们可以看到,这个程序执行, 它会首先声明INT I, 设置的i的内容是0, 然后它击中的while循环的第一条件, 因此,在这种情况下,这个身体,这个printf(“HI”)和i + + 甚至不会执行 除非实际上i是小于或等于2。 因此,如果i是3,例如, 如果我们在这里 等于4 - 或者我会做,因为我说3 - 然后运行它, 它会建立,它会运行完全正常, ,但它不会打印出任何东西, 因为它对于第一种情况,测试失败。 因此,在课堂上,我们谈到了为什么这些do-while循环 是有用的,有时 为什么我们会使用它,而不是一个while循环。 在那里 - 你们有任何的建议 为什么do-while循环可能更为有用吗, >>嗯,我想do-while循环是,如果你希望用户输入, 因为这样可以让他们 把东西一次,如果它是正确的, 我们可以移动到程序的其余部分, 但如果它是不正确的,那么你继续提示用户 直到你把正确的输入。 是的,没错 - 这正是, 因此do-while循环是有益的 提示用户输入,因为当 因为你需要得到用户的输入,才能真正检查。 在pset中1,在pset中2, 您在何处提示用户输入了很多, 这是一个方便的事情 而不是只是一个简单的while循环。 如果您使用一个while循环,你可以做同样的事情 - 你可以做同样的事情,一个while循环 当你做一个do-while循环。 你只需要种有这个重复的过程 你在哪里得到的输入,然后开始你的while循环。 而一个do-while循环,你只需要编写一次 这是一个很大清洁。 好的。 有什么问题吗, 有意义吗, >>返回0 - 那只是种一档或者是 - , 是啊,所以我们可以 - 好了,我们将讨论这有点多了以后 但事实证明, 我们把这个返回0, 结束时的主所有的时间 - 你可以还挺只是把它作为我们做的事情 暂时。 现在我们开始谈论与功能 种在上周结束,本周再次 是,函数 需要输入括号内的这些东西; 这是2个输入,参数或参数, 他们也被称为我们的主要功能, 然后一个函数产生一个输出 我们调用的返回值。 和返回值的情况下,主要是这样的诠释, 这个整数, 告诉函数的方式,“嘿,这是你的输出 将是“是”回归“这个词, 该关键字,而 等主返回0 或主输出0 在C程序中的标准 从主要手段,因为返回0 “嘿,一切执行我的程序就好了。” 如果我们把其他的东西比0, 如1中,例如, 这是用来告诉运行这个程序 出事了。 所以,当我们在这学期更复杂的东西, 如果你曾经可以说, “哎呀,你知道的,出了这个程序错误” 而不是我的程序崩溃,我想通 知 亚军我的程序出现了错误, 您可以使用返回值, 我们称呼它,这是不为0。 所以我们将讨论多一点点 一旦我们进入功能。 诸如此类的有道理吗, 好吧。 函数是一种奇怪的 - 我认为有很多的数学背景的人, 谈到更容易一点, 特别是如果你有一点点抽象的数学背景 和你谈论功能 和所有类似的东西。 但我们会尽力并覆盖 很好的和缓慢的,因为他们拿出去。 同样,这整个的int argc个, 的char * argv的[] 现在,你也可以把它看作锅炉板。 我们已经开始覆盖那些在演讲一点点 当我们谈论到程序中的命令行参数获得通过, 但在你的习题集和你的程序, 这是完全正常,只是写作废,并保持它的简单。 无效的意思是, “嘿,主要是不会接受任何输入; 这仅仅是一个程序,我们会刚刚运行。 我们不会给它任何额外信息。 我们每次启动运行。“ 所以现在,你可以做到这一点; 你甚至也可以省略return 0 您的程序结束时,他们会运行得很好, 但我建议只是保持,在。 在几个星期中,我们将开始种 拉回来盖一点点,更多的了解 所有这些不同的小运动部件。 好了,现在让我们来谈谈我们在这里的第二个问题。 那么什么是“未声明的标识符”,则通常表明 如果输出铛, 我想我们可能已经看到,今天已经。 有人可以给一个回顾一下这是什么意思呢, 让我们来看看,凯利 - 的凯丽之一。 >> - 是啊,这是什么 - >>我认为,当你一样,不声明变量,并尝试使用它。 是的,没错,没错。 所以,如果你看到这样的输出 当您尝试编译程序, 就像凯利说, 这意味着你使用一个变量,你没有申报, 所以,如果我回到我们的空间, 我做这样的事情 输出( “您好,s”) 和尝试,并填写,s的 ,我没有任何地方声明一个变量s 我尝试运行它, 你会看到我所得到的,在这个底部就在这里: “使用未声明的标识符”S“”; 这只是意味着你不声明你的变量。 同样的事情发生,如果 你有X,你尝试和存储7 和我没有申报X. 我得到了同样的错误: “使用未声明的标识符'X'”。 好吧, 所以恺撒密码,不是很安全, 我将让你们看这短短的,一种明白为什么, 后,希望做这个星期的问题集 在那里你写的恺撒密码,你就会明白一点点 它的意思是什么一个安全的和不安全 - 或不安全,我猜 - 不安全略有不同。 另一件事是,我们这些其他的问题在这里 有关职能 和功能是什么, 我们种,简要谈到,当我们谈到的返回值; 为有人的演讲, 你可以回顾一下谁是今天讲课的吗, 好的。 让我们来看看,让我们 - 有人可以告诉我们的功能是什么, 凯利, >>基本上是借鉴的东西,写的库 更复杂的那边,然后你只写一个简短的形式, 那么喜欢你是指该库,使用 所有的长码和[听不清]。 是的,没错,然后你想添加的东西吗, >>是的,我把它作为类似数学公式的概念 你只写一个公式,然后你可以插入变量 这就是一个功能是听不见的。 是啊,所以我们有一对夫妇的答案在这里 都非常好,右。 有指使你的代码库中的某处被写入 是更复杂的 然后你可以借鉴的代码 真正地使用它,只是写的简短形式 - 或者说,它的名字 - 再有就是数学中的公式比较 或物理,所有这样的东西; 你有一个公式 然后,您可以插入 该公式的变量 然后公式得到的结果, 让你觉得它像一元二次方程。 试想一下,如果,而不是了解 二次方程求根公式是什么在数学课上, 你只是有一个小的计算器程序,这样做是为了你。 有没有人在高中数学课中使用的计算器程序, 是啊,物理课吗, 在那里你可以说,“嘿,二次公式。 这些都是我要输入的变量。 现在给我答案。“ 这是一种功能是什么。 这是一个方式,让我们 种写像一个小的小的子计划 在我们的程序 并用它一遍又一 遍 所以,我们不必复制和粘贴代码, 我们可以给它不同的输入和得到不同的输出, 这是超级方便 当你试图在不同的时间写不同的程序。 因此,举例来说,一个功能,我们已经使用了一遍又一遍,一遍又一遍 整个过程是printf。 printf是本身就是一个函数 事实证明,它实际上是一个相当漫长而复杂的, 讨厌的,写的功能。 因此,简单的,因为在我们看来, 要打印的东西输出到屏幕上, 因为我们都只是做节今天开始, 事实证明,它实际上是,你知道, 一个很好的情侣几百行代码。 这不是我真的愿意写,可以肯定, 但我们每天都使用它,这是一种很酷的, 所以我们把它分享给对方, 不同的程序, 所以我们就到功能更潜水; 暂时,我们不 - 我们要编写的唯一功能是主要的。 主本身也是一个函数, 你可以看到它有它的输出, 它的输入就像我们谈到, 那么它的名字,这是主要的。 主要是怎么样的 - 那里是一个特殊的功能。 在你的C程序中,必须有一个主要功能, 所以现在,我们已经遗漏的写作 的原型,或声明的,主要的。 我们已经给了你, 我们刚刚有你填写的空白种。 >>因此,对于第二个问题集,我们并不需要 把它写在第二个功能吗, 我不这么认为。 我相信,这一切都在这里。 是啊,所以恺撒密码, 你没有,它看起来并不像, 维琼内尔,你不要么, - 事实证明,你没有真正写 的功能,对不对, 你打电话总是把所有的代码在main, 许多程序员做到这一点。 随着我们继续前进, 我们开始引入功能的一种方式 清理你的代码, ,使其更加优雅, 如果你有当我们谈到循环任务 - 有点像, 有时有一些事情你想做的事一而再,再而三, 你有一种天真的方式 - 也就是我们常称的“稻草人”的解决, 只需复制并粘贴一遍又一遍 - 你可以做同样的事情的功能,您只需复制并粘贴 一遍又一遍相同的代码, 但涨大了你的代码 - 最终使你的代码很长的 - 它也变得有点混乱, 那么就意味着,你是不是能够喜欢 - 如果你想再次使用该代码在另一个程序中, 你还坚持再次复制和粘贴, 这样的事情之一,我们来谈谈 种你的程序的设计和风格, 因此,当它是有道理的种 包的东西,并把它作为一个单独的函数, 我们鼓励你这样做, 那是,再次 有没有硬性规定。 我们很少说,你必须写一个函数调用此, 但更重要的是,一个人的东西,你只是随着时间的发展 为你写的节目越来越多。 还有什么问题吗, 好吧,让我们现在 返回这个家伙在这里, 所以,我仍然在这部分问题。 我们已经讨论了所有这些不同的, 什么是一个函数,为什么写功能, 当你可以复制和粘贴, 希望我们确信你写功能是一件好事。 所以,现在让我们继续这MySpace的计划, 我们会花一点点的时间这样做。 所以,让我们来看看, 我有一个人读这个吗, 让我们Mikhaila - 你阅读这篇文章,我们呢, >>你的意思是回来时,MySpace的 - 回来时,MySpace是酷。 “返回时,MySpace是凉爽, 这是所有的愤怒,象这样。 也许它仍然是吗,我真的不知道。 在任何情况下,使用CS50电器, CS50运行,或CS50空间的的, 写一个程序,提示用户的消息 它的第一个字母大写,然后输出信息, 在交替的情况下,与所有其他字母, 如下面的示例输出, 其中粗体文字表示一些用户的输入。 为简单起见,你可以假设用户 只能输入小写字母和空格。 考虑这个问题的一个练习的机会; 你不会被要求提交这一计划。“ 真棒,谢谢你。 因此,作为Mikhaila说, 我们要编写一个程序,MySpaces你的代码。 因此,没有任何你们使用MySpace上吗, 你有任何MySpace帐户, 哦,是啊,是啊~ 这是很酷。 [笑声] 我知道。 约会自己。 所以我们正在试图做的是写一个程序, 经过 的首字母 大写 然后此后的每一个字母 - 其后或其他字母,对不起。 所以 - 你可以看到在这个例子中, 这是怎么了,我们运行程序, 所以这只是说,“我们正在运行一个名为a.out的程序。 我们要赋予它的输入, 将被提示。 我们不是让你去提供在命令行上输入“。 如果你一直遵循所有的演讲 和听到的命令行参数, 这是种者 - 那时髦的语法 在主要的用int argc个,所有的东西, 所以在这里我们没有使用;我们并没有任何的处理。 我们只是得到这类型的用户, 那么这第二个行与时髦的资本 是什么,我们希望我们的程序输出。 因此,而不是使用设备或运行中,我们将使用空间, 因为我们有空间, 因此,如果你们会 让你的代码看起来像这样, 所以我要救这个修订 只是让你在这里得到了锅炉板 像这样的,诠释的主要(无效),什么也没有。 其实,我们要做的是,我们只是删除一切。 我们希望有一个空白的石板, 因为我们不会开始编写代码; 相反,我们要去尝试写一些伪代码 这真的只是意味着我们将写的东西,这不是代码 这样的描述,我们想要做的是什么, 有点像大卫那样在第一天的演讲, 我想是第二天的演讲时,他做了整个袜子演示。 你们还记得 - 看到袜子呢, 约瑟夫是在那里种输入中英文吗, 所以,我们要做同样的事情。 所以,当我开始写伪代码, 我喜欢的输入将是开始。 我给自己一个样品的情况下, 所以像添加“谢谢~” 然后我也写的是什么,我想要的输出, 在这种情况下是这样的事情。 给了我一个这样的好事,比如,开始认为, “好吧,我想采取1号线 我想将其改造成2行,“ 而这种帮助引导我的思想。 这是一个良好的开端。 另一种思考方式,也为我们还挺移动 和你这样做,是在自己的程序 认为像边缘的情况下,这是什么样的呢, 是什么样的怪异的情景吗, 奇怪的投入,我们可能会得到什么, 这些产出应该是什么样子, 例如,一个奇怪的输入 会是这一个, 创建绝对没问题, 像我们在这种情况下,输出吗, 我们想要的东西去思考,太。 因此,正如一个问题, 我们可能要输出什么, 如果我们没有得到任何输入,如果我们的程序输出, “什么也没有。 什么都没有,听起来很不错。 因此,我们要确保我们不写任何东西 如果我们没有得到任何东西英寸 酷。好吧。 所以 我要叫上几个人,我们去通过 只是有点像一般的算法是什么 样开始,我们会一起度过这次难关。 所以,让我们来看看。大小姐。 您如何看待我们就开始吗, 这将是一个好地方,从这里开始 如果我们要进行改造,比如,1号线 到第2行吗, 你能种只是向我解释,英语,你在想什么, 不要担心代码。 >>我会做的第一件事情将是 种直接用户,告诉他们你想要什么。 好了,所以,比如说, “嘿,用户,我想 一个字符串“ - 真棒。 因此,让我们把这个写下来。 提示用户输入一个字符串。 这听起来像一个良好的开端。 好的。 让我们问凯利任。 什么我们愿意做的事吗, 我们的未来是什么样的 - , >>收集他们的意见,并将其存储为一个变量。 大。 因此,收集的字符串, 它存储在变量中。 那么,有没有什么特别的,我们要在这里做吗, 我们要检查他们的意见 前 - , >>呀。 我们可能要检查什么, >>嗯,你说我们没有检查它是否是一个数字,对吗, 因为它会假设它是小写吗, 是啊。 因此,原来, - 是啊。 因此,保证返回一个字符串的getString。 它不会返回一个数字或类似的东西。 有可能是数字字符在该字符串。 而这些,我们可以忽略,因为我们没有资本化。 但一个空字符串是完全正常的, 这样的情况下,于4日和5号线在这里, 正确的,那 里没有输入, 我们已经把什么作为输出。 我们不必担心肯定有什么东西在字符串中 该字符串是至少4个字符长; 什么是好的。 因此,这是对比,例如,像便士你写的程序, 其中,以确保你得到非负数; 你必须确保你得到正确的天数在一个月内。 如何你们这样做吗, 你将如何做这个测试吗, 那是什么要求你使用吗, >> do-while循环。 do-while循环,其他类型的循环,太多,是的。 因此,原来,我们没有在这种情况下,使用一个循环, 当我们提示的字符串,这是一种不错的。 好吧,继续前进。 所以,斯特拉。 你能告诉我们什么,我们下一步应该做的一点点吗, 现在,我们已经得到的字符串,我们已经有了它存储在一个变量; 的字符串,我们需要做的是什么, >>我们需要 - 识别的2 - 是啊,就用英语说,这是真棒。 >>确定[听不清]首都 - 或大写字母。 是啊,所以你识别哪些是大写和小写。 我们可以没有他们,直到我们已经确定了哪些大写或小写。 因此,我们将在这里。 所以,只要一想到这个过程中, 我们怎么做这个鉴定呢, 你知道吗,丹, 种什么,我们 - 我们不得不使用我们的工具箱里什么工具, >>我把它在某种方式中像一个数组或每行 是它自己的小盒子, 然后大写有或没有。 好了,所以我们可以利用的一个工具,是一个数组。 我们有什么看在字符串中的, 不过,要弄清楚 - 我们有看的字符。 “所以,你得看在字符串的长度, 是啊,所以得到的字符串的长度。 只是出于好奇,我们用它来得到一个字符串的长度, >> strlen的, 是啊,strlen的,我们称之为“strlen的” 所有这些字符串函数,所以strlen的是一个函数, 这是超级方便的,因为我们可以用它来只是说, 嘿,strlen的:这是一个字符串,你能告诉我它有多长。 在今天的演讲中,大卫谈了很多关于如何strlen的实施, 幕后到底发生了什么。 但是这是一个非常超级方便的。 有也字符串中的库的其他那些, 如STRCMP的拼写是“STRCMP”, 这是用来相互比较字符串。 您将使用函数strstr一样, 这是很好的发现子串等。 在大多数情况下,他们开始用str,然后去别的东西。 的原因,他们没有实际拼写,如字符串,等等 因为早在初期的C一样, 当人们第一次写操作,这一切, 他们,你可以使用的字符数限制 函数名和变量名, 所以,一切都像超浓缩。 但是,任何时候,你看到的东西,开始用str, 通常是指有做一个字符串。 好了,你已经得到了字符串的长度, 然后,我们做的字符, 你知道吗,萨姆, >>我不知道,我正试图弄明白。 我真的不知道 - 我希望有一些方法 - 我的意思是,我想,也许我们可以做一些事情的赔率,均匀, 但我不知道任何这样的功能。 是啊。 “但是,这 - 它不一定会工作, 因为那样的话,你会得到的空间 - 你就必须有足够的空间,以获得关于如何 - 好吧。 我不知道 - 我在这一点上失去了。 是啊 - 不,不,不,这些都是很好的点。 所以,我们需要做的是,像萨姆说, 我们需要跟踪的字母是奇怪的字母, 的,哪些是偶数字母。 但是,我们要确保我们不只是寻找 在奇数场和偶数 指数在字符串中, 而是寻找在字符串中的奇数和偶数的字母, 因此,我们需要还挺有这之间的区别 字母 - 像实际上是A,B,C,D等, 什么事都没有字母,但仍然在我们的字符串。 例如,在这里,像这样的感叹点是不信, 但它仍然是我们的字符串的一部分,它仍然是一个字符。 同样,所有的这些空间 - 不利用的空间,对不对, 因此,我们要确保我们莫名其妙地跳过这些 ,同时还跟踪总入球数单。 所以在我们的编程工具箱 到目前为止,如果你愿意, 我们有许多不同的工具,我们已经谈到了。 因此在一个,例如,是变量, 就像我们以前谈到这里。 另一种工具,我们所谈论的是功能。 因此,我们已经讨论过的变量,我们的伪代码在这里 正如我们将用它来存储我们的字符串。 我们已经讨论了函数来获取一个字符串的长度,如strlen的。 我们一直在谈论 别的事情,我们已经谈论了 进行了大量前面部分的今天:循环。 你们觉得在这个程序中使用循环, 贾里德,你有什么感想, 在这个程序中,我们使用一个循环, “也许不,不,因为你没有去多一次。 好了,你没有通过什么去多一次, >>的整个字符串。 好,那你不有一次去的字符串全。 遗憾的是,绝对没有任何意义~ 你不必去通过整个字符串不止一次。 好吧。 你怎么想, >>我认为这是更好地使用它们 所以我们可以这样做利用,而 它的位置是[听不清]数。 太好了,所以利用什么, 好了,所以我们说, 因为我们想,我们应该使用一个循环 大写字母,虽然它不是一个数字。 - 对不起,没有您要添加吗, >>我要说的话,你的方式治疗的字符串 [听不清]将[听不清]的字符, 是啊。 >>,然后我们可以指定号码 - 或基于位置的字符串中的字母, 是啊。 >>,并确定它是否是奇数或偶数和大写字母本身 而信的位置是听不见的 - 对不起。 大。 因此,只要回顾一下。 你的名字,你能提醒我 - 我很抱歉。 “夏洛特。 夏洛特,没问题。 那么,什么夏洛特说, 这是完全正确的 - 天哪,我喜欢汽车缩进 - 是,如果我们检查一个字符串 如这一个在顶部 - “谢谢你的”添加“ - 为一个字符序列 在位置0, h是在位置1。 一个是在2,然后我们得到了3,4,5; 的空间是在6位。 鉴于 - f的位置是什么, 7~ O, 8。 R, 9。 然后,我们得到了10,然后我真的不能没有它的把它写 有点让凌乱的在屏幕上。 但是,这其实是我们可以谈论如何在内存中的字符串。 它是一个字符串 是一个字符序列, 当我们提到一个单个的字符在字符串中, 我们经常这样做参照该字符的位置 在字符串中, 可能以同样的方式,当我们谈论九月 的第九个月的一年 或星期一是一周的第一天。 因此,这为我们提供了一种方法, 找出哪些是奇与偶 因为你可以在这里看到, 如果我们符合了这件T, 你可以看到,所有符合资本化条件的 在偶数位置, 至少在第一个字, 然后事情变得揭去后,我们打的空间, 因为我们不指望这个空间为一个字母, 所以,如果我们开始 去0,1,2,3,4,5, 空间,6,7,8,空间, 9,然后10,11,12,并依此类推。 酷,所以我们肯定会想使用某种循环 去中的每个字符。 因此,在这一点上, 我们再回过头来我们这里的老伪代码。 作为这个识别哪些 是大写的,哪些是小写, 我们将要做到这一点,在某种循环。 “循环”,冒号。 什么样的类型,我们的循环,循环, 似乎是一个很好的使用在这种情况下, >>我想在for循环。 你为什么要思考的for循环, >>因为它从0开始,然后 当我们到达字符串的长度, ,然后每次迭代中,您可以[听不清]吗, 是的,没错。 因此,出于不同的选择的循环, 我们有for循环,while循环,do-while循环。 一个for循环是特别有用的 当你想知道 你在循环中的一种, 循环已经执行了多少次为止。 这正是我们想知道在这种情况下, 像凯利说, 根据夏洛特的先前的评论,我们想知道的位置 在字符串中的字符, 和for循环会给我们带来了这一点, 因为,如果我们回头看我们的字符串开始种, 如果我们开始我们的for循环为0, 我们上去通过整个字符串的长度, 然后,我们可以将字母T 0的循环, 字母H的1在我们的for循环,依此类推, 将所有的方式通过字符串的结尾。 因此,让我们开始编码这只是一点点 只是让你们得到的感觉,这看起来像。 我要救, 所以在这里,我们已经得到了我们的伪代码, 我要删除一切。 所以,我有一个空白的石板。 我要开始写(无效) { 我会把返回0 然后}。 因此,通常当我开始计划,这是我的开始。 我会保存它,以便你们有它。 因此,我们谈论的第一件事情之一是 得到来自用户的输入 并把它存储在一个字符串中。 我们怎样才能从用户的输入, >> GetString的。 GetString时, 所有的权利。 所以,如果我输入的GetString() 和分号。 让我们尝试运行来看,第一呢, 为什么不运行, >>您必须声明变量。 我要声明一个变量。好吧。 那么,如何才能做到这一点, 你不介意写的东西,分享了吗, 然后,我们可以把它拽上来。 让我们来看看,但正确的,没问题。 大牛。复制,字符串输入的GetString()。 真棒。 这会不会跑, 让我们试试吧。 命中来看,上载源代码,建筑,发生了错误。 好吧。 因此,whats怎么回事呢, 使用未声明的标识符“字符串”。 >>我们有包括库吗, 是啊,所以丹说,我们有包括库。 这是你会说,斯特拉,真棒。 这是可怕的,所以斯特拉,你能 复制此代码的丹尼尔的空间, 如果您点击上丹尼尔?罗兰文,将其复制, 然后你把include行,然后保存它吗, 让我知道,当你准备好了。 因此,这包括语法也是一种时髦; 有这样的散列标签, 的,然后有这些尖括号。 你还记得是如何工作的,或者我应该把它放在这个代码在这里吗, >>我很好。 好吧。 >>我打印了 - 我不知道哪个库,虽然。 哦,好吧 - 是的,所以它的的CS50库。 哦,我把stdio库。 哦,找到了 - 啊,不,that's - 所以,字符串实际上是一些特别CS50。 其实是不是一个真正的字符串类型 因为在这里,字符串类型的位置 - 我们要声明一个变量称为输入字符串类型的 - 我们把里面的输入 得到的值返回给我们:这GetString函数调用的输出。 可以说这是一个函数调用,因为它得到了括号,就像printf并 就像strlen的。 但是,字符串实际上是不是一个真正的类型 在C语言中。 我们已经取得了一个类型,我们会采取更多的它究竟是什么 C,因为有一种方法使用字符串; 我们刚刚做的东西,使它看起来更好一点。 所以,在这里,我们走了。 下面是Stella的代码。 它得到了包括。 其他人会称此如哈希有时,或尖锐包括。 现在,我们可以启动它,运行它, 我们还得到一个错误。 让我们来看看发生了什么事。 “未使用的变量'输入'。” 好了,所以这很酷,这很酷。 我的意思是,这不是真的很酷, 因为我们得到一个错误,它没有运行, 但是这是说的是, 我们还没有使用我们的变量,这是有道理的。 我们还没有尝试用它做什么。 这是一种方式, 铛正试图帮助我们确保我们不只是使用变量 然后在不经意间调用他们别的事情后来在我们的代码中, 帮助我们避免错误的方法。 所有的权利,因此,我们已经得到了来自用户的输入, 我们把它存储在变量中。 下一步是那么 在所有的字符在字符串中开始寻找 并确定哪些是大写 哪些是小写的。 而像凯利和夏洛特长大了, 我们使用一个for循环。 因此,任何人都不会记得一个for循环的语法 并希望借此刺在只写 在for循环的第一行,只是位吗, 凯利,你想给它一个尝试, 呀,所以你必须先进行初始化, 所以我把我= 0, 然后我做了我>呀,所以 - 我的意思是,我有错误,所以 - 啊,不,it's - “所以,我想叫我只是”字符串“的字符串。 我想打印出字符串 然后我 - 我想喜欢像一个数组中的每个字符的字符串 不同的[听不见的,对不对, 然后我想在位置0开始 然后每2位, 我要利用, 所以我刚才所描述的为23,因为 我一直在寻找的ASCII表。 所以,这就是我在想 - 我知道这是不对的。 得到它,所以这是一个很好的开始。 我想了很多的框架是在这里举行。 让我们通过逐行种,看看会发生什么。 所以我喜欢的方式做到这一点,刚开始编译代码 并让编译器告诉我,像我的代码有什么错, 因为编译器会告诉你,什么是错的,你的代码是非常好的。 因此,如果我们发挥,建筑,它没有建立。 它说有一个错误, 因此,如果我们向下滚动,并期待在第一个错误, 它说 - 滚动到顶部, 我们可以看到有5个在底部产生的错误。 哎呀,这是真正切断。 我猜这只是不会得到任何好转。 在这里,我们走了。 因此,总有5所产生的错误。 在这里,我只能看到第2, 这样我就可以移动一点点,然后向上滚动种。 这是命令运行编译的代码, 然后file.c的第一个错误是在这里: “预计识别或”(“”,是在这条线 在这里我们说的字符串= getString()方法。 在这里你可以看到,它是在第8行file.c, 然后我相信这是12字符 - 这是错误的。 那么,这是怎么回事第8行 - 凯利错误吗, >>您只需要调用它一样,一个字母或什么的, 如字符串s或东西吗, 是啊,所以事实证明,这些特殊类型的名称, 这样的字符串,整型,字符型,短, 他们都是特殊的关键字, ,你不能使用他们的姓名您的变量, 因为编译器看,并说, “哦,我知道这是一个类型,” 所以,你不能真正称为字符串有一个字符串变量, 我想在这里做的,这将无法工作。 但相反,我们可以把它像S或ST或str。 我们也没办法把它诠释。 我们不能有一个字符串调用int。 我们不能有一个称为字符的字符串,没有这些工作。 因此,我们将只需要调用它的暂时。 真棒。 那么下一步是什么在这条线是怎么回事, 字符串 - 这条线看起来很不错吗, 让我们给它一个尝试,让我们来运行它。 好了,我们仍然出现错误。 这一次,我们4个错误。 因此,我们得到其中之一。 让我们继续。 “意外的类型名称的字符串:预期的表情,”是吗, “是的,那是因为我试图命名的字符串。 是啊,所以它看起来像我们现在也有去修复 所有这些引用字符串。 你可以看到这里有一个参考字符串,在这里,在这里, 因此,我们可以将所有这些为s。 大。好了,再次运行它。 大厦 - 另一个错误的发生。 好了,现在我们已经到了一个错误, 所以int i = s,然后在方括号。 所以你能告诉我们一点关于你在这里做什么,凯利, “是的。 这是第10行。 >>我不知道,如果我们需要它, 但我认为我是想 - 所以你可以跟着我将它保存。 >>我想我是 想告诉它开始在位置0 在我的for循环的开始, 所以我觉得也许该说是不必要的。 因此,只要回顾一下, 你说,这 - 你试图启动该位置0 得到这个 - 是的, 过,所以我觉得所说,当你步行通过的代码, 你在谈论你想如何处理字符串作为一个数组 这样我们就可以访问每个字符单独。 我觉得丹提到过,阵列,试图将字符串转换成数组。 事实证明,这样的引擎盖下, 实际存储为一个字符串数组了, 您可以访问它像一个数组; 有没有转换,你必须做的。 一个字符串,isn't - 所以 - 一个字符串是不是一个真正的阵列, 但您可以访问它是这样的,因为所有的字符都存储 一个正确的彼此相邻的,在内存中, 所以,如果你想要得到的第一个字符的字符串, 为获得一个整数数组的第一个整数是相同的。 所以我们经常 - 我们就会 参阅2类似 哦,作为一个字符串,数组, 即使它真的 - 他们非常不同的事情, 但你可以把他们大同小异。 因此,原来,这条线实际上是 - 我们不需要做任何转换, 而事实上, 这实际上是不是一个有效的表达, 这是我们的编译器是在告诉我 们什么。 它说:“嘿,它预计的表达, 我来到这里是这不是一个表达的东西。“ 声明一个数组, 所有你需要做的是用分号这样的事情, 然后你告诉阵列多久,你希望它是, 如5,所以这一行10 声明一个数组,叫我5个整数。 这是一个的一边,这是没有必要的代码, 但是,这是 - 这是一种什么样的声明看起来像。 >>你会不会使用char我的strlen()], CHAR I的strlen()], >>字符i,然后括号内的,strlen的()。 是啊,所以我们可以 - 我们能做到这一点, 这将宣布 - 这样做什么, >>我想声明一个数组 的一样 - 的 - 哦,你不需要我 - 哦, 是啊,你绝对不需要我。 你声明一个字符数组 长度为S。 所以山姆说的是, 10号线 - 让我把一些空间,所以我们可以在它与其余孤立 - 这10行声明一个数组 的字符,字符strlen()价值, 但我们其实需要我, 和的原因,我们需要的,我是因为我们需要为阵列的名称; 否则,我们就没有办法在后面的代码请参考阵列。 所以在这里是数组名 和内部的长度。 这将为我们提供一个数组, 但是,这是 - 再次,这是一个声明。 这不是一项任务,它不是初始化。 如果我们宣布这样的数组, 其实也没什么的数组中的内容。 这只是垃圾 - 无论是在那里。 像我们所说的, 我们其实并不需要做这种转换, 因为我们已经可以把字符串s为一个数组。 我知道我们正在运行的时间有点长, 但我想真的很快得到这个for循环 并告诉你如何访问数组中的单个字符, 因为这是我们的任务的关键。 然后,我们将让你从那里走。 所以在这里,我们已经有了一个for循环 看起来差不多好了。 什么不太几乎没有呢, What's - 什么是不完全正确的循环吗, >>不花括号, 没有花括号,对于一个。 想确保我们身体的循环使用花括号。 哎呀,而不是方括号~ 接下来的事情,我们需要做的,这个循环是什么, 如果我尝试运行它, 这个错误,我得到什么, 我得到的所有这些错误 - 我必须初始化i。 大。 因此,这将是一个循环 - 这是没有做到这一点, 但它真的很近。 我们现在可以运行此代码, 建立,仍出现错误。 为什么它仍然抱怨, 说表达的是未使用的, 这是因为该行不会做任何事情。 我们并没有存储在任何地方,我们并没有将结果保存。 我们应该在哪里保存这个结果呢, >> S或我呢, 没错,这个时髦的语法, 这个S的方括号 装置进入的s的第i个字符。 这将是东西是真正重要的是分配。 不幸的是,我们将不得不停止在这里, 所以,塞巴斯蒂安部分可以进来, 但我很高兴留后外,并会采取任何问题。 所以,谢谢你们的到来。 现在应该上载,建立,运行。 我们可以输入一个字符串,如“你好” 打印“中Qox”的。 [笑声] 因此,不太有,但移动,获得对这些循环~ 谢谢你能来,我会在外面。
/
本文档为【[POWERED BY GOOGLE TRANSLATE] [嗡嗡声] 所以把你介绍给我有什么在 &#46;&#46;&#46;】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索