DAVID马兰:这是CS50,这 是周一开始。 我们认为我们会做什么,拉回来 设备的帷幕,许多 你可能已经走过 多年,但也许遇不到 知道它是什么。 所以此装置可能会看 现在对你最熟悉。 [视频回放] 一个胜利的数学和 机械技能是这个伟大的新 自动计算器 哈佛大学。 把复杂的数学问题 通过机器以编码的形式 磁带在​​一分钟内准确地解决 所需要的时间的分数 人为计算。 加快各种形式的设计 数学和科学的研究, 巨型机械的大脑会 美国 海军直到战争结束。 [END视频播放] 国宝马兰:所以,这就是你看到的 这是科学中心, 该机器现在被安置。 实际上,你只看到它的一部分。 目前只有一小部分是显示, 这是一个设备,称为 马克我,这是本质 一个真正巨大的计算器。 它的继任者Mark II的, 它从Mark II的,我们实际上 得到一点点的词汇。 这是首次记录 你即将成为所有的东西 在太熟悉 当然学期 - 即,一个bug。 所以它变成了在一个点上的标记 II器件不能正常工作 正常,经仔细检查, 确实有错误 - 飞蛾 - 该蛾 - 在里面。 并从那时起,我们已经提到 方案错误的失误。 所以来。 说到视频,好吧,如果你 还未知道CS50 显然摄制。 讲座通常上去后 类排序预发布 未经编辑的格式,然后一天或两个 以后,我们提出了一个更高的分辨率 和更高质量的版本。 您可能还记得瓦妮莎,谁的 财富与谷歌的玻璃打, 我想起 充电时间。 所以,如果你要来下课 玩,他们应该今天上班。 如果你想看到什么凡妮莎 看到其他的一天,你会看到什么 - 让我提高音量 这里我的笔记本电脑上。 [视频回放] 因此,让我这是队列。 好的。 所以触摸。 好的。 OK,玻璃。 录制视频。 好的。 凡妮莎? [END视频播放] 国宝马兰:好,那么原因 它没有工作你最 末级是因为我进行 记录一个小时的 镜头后指着自己 我把眼镜。 所以今天,我将离开他们,但是谢谢 凡妮莎是这样一个 很好的运动。 与此同时,一对夫妇的公告 之前,我们锐意进取。 所以,CS50有一个传统做 我们可以尝试提出一个非常 大班感觉较小。 为此,每星期五, 我们聚集在一间餐厅 广场,火和冰,30或40 你的同学,我自己,一些 教学人员,我们只是 有一个非常休闲的午餐。 我们经常邀请朋友从行业, 之类的校友,校友 大专,真的只是为了聊天每个 评头论足,谈人生 大学,在大学生活, 之类的。 所以,如果你想分享 第一个这样的午餐在本星期五 下午1:15,头 在一些点的URL。 空间是有限的,所以我们会做 先到先得。 但我们会再这样做经常性 的基础上,所以不要担心,如果你不这样做 使它成为这第一批。 现在,在资源方面提供 当然由curricularly, 有一个整体转换,如果你还没有 拉升课程网站 已经,尤其是讲座,下 你会发现,一切都 上周我们没在那里,无论是 在视频和某种 电子表。 但是,超出了影片,你会发现 现在有全文 誊本,例如, 每一堂课。 因此,如果我们真的回到这个屏幕 这里与瓦妮莎,然后导航 在屏幕的右下角, 你会发现,其实,不为 上周五的演讲,但如果我们回去 周三,因为此功能需要 几天之后,你会发现,你可以 实际上拉起来,更好或 更糟的是,每一个字,我还是 舞台上的一名志愿者说。 而且远远不止这些。 实际上,你可以搜索它,你可以 点击任何这些句子,跳 这一点在视频,朝 和结束时使材料的所有 更多通航。 但是,如果你宁愿不遵循它 在这样的细节,你会发现, 例如,这个小菜单,在这里为1.5倍 速度,2倍的速度,还是我已经I F 为你说话太快,0.75倍的速度。 因此,实现所有即 为您提供。 但除此之外,讲座,实现 我们也使这些资源 可用的。 幻灯片,例如代码,任何我 做在舞台上或提前上课, 我们有这么会后,你可以玩 在家里或在桑德斯。 但是我们也认为我们应该这样做 年首次也是 为您提供演练 这些实施例。 越来越多,因为我已经反映在 CS50的演讲的价值,我已经开始 质疑只是它是多么有用 你们这些家伙坐在那里,我站在 在这里,我说你, 特别是作为材料的 例子中,变得更加复杂。 因为总是后,一定数量的 分钟,有人会区, 然后你错过了一些关键的一些洞察力 例如,那么你基本上 去上课的剩余部分, 这是不是最好的使用 你的时间,或者,真的,我们的 统称为一类。 还等什么,我们想我们会想办法做的, 特别是对于一些比较 复杂的例子,我可能不会做 在课堂上,我们可能不会正义 有时间在课堂上,或者您可能 区期间,我们将产生 这些一系列的演练 例子,如果你去, 例如,上周五的视频页面在这里 下的例子,你会看到, 星期五,现在有这 连结至演练。 和这些格式的 随着时间的推移会发生变化。 现在,我们用一个简单的 YouTube的播放列表。 但我做了什么,我们的生产团队 后来被穿过每个 和每一个这些实施​​例再次 希望指出在更大 清晰度正是外卖 可以或应该是从每个。 所以,你会发现,例如,从去年 周,所有的临时例子 我们经历了线性 ,时尚。 所以感觉自由地从事或不 搞这种材料。 这个特殊的课程真是一个主题 是,有可能更 的资源的方式中,比你 可能吸收 一学期。 但是,这是经过深思熟虑的。 它的意思是让你作为 个别学生可以自主选择 根据自己的学习风格。 所以,如果讲课为你工作,太棒了。 如果部分为你工作,太棒了。 如果演练工作 你更好的,太棒了。 它真的会由你来选择 什么资源工作最适合你。 最后,感谢校友 当然,我们还提供了一个规范 设置隶票据。 因此,而不是你们的头 在讲座下来涂鸦了 的东西来,在课堂上,我们 工作人员将为您提供我们什么 感觉是规范票据 释放你分心,所以 如果你在这里从事,你是 真正从事的是怎么回事, 与你的同学做 阶段,在屏幕上, 而不是简单地写下来逐字 发生了什么事已经说了。 因此,实现所有这些资源 提供给您。 切片,在回答常见问题, 将本星期三开始。 我们基本上等到后最 其他类完成,使我们可以 减少的数量变化 我们需要做的。 但即将在本周末开始, 周日,将是一次性的实例 就是我们所说的超级部分。 这些将被拍摄下来,对于那些谁也不能 出席,并且从本质上讲, 当然的头将引导我们通过一些 的C部分的过程中, 走向结束的问题集, 将是我们的第一个基于C 问题集。 这些仅仅是可选部分 预计会有什么 成为导致经常性两节 通过本课程的50加 教学研究员周刊。 在周日或周一或周二,我们 有90分钟的部分,在很 传统意义上,这将是 手的机会和更 亲密审查 当然材料。 事不宜迟,让我给你介绍 课程的头,谁是 与我在幕后, 使一切发生。 如果那些今天在这里和我一起,罗布 和劳伦和约瑟夫·卢卡斯,所有 其中已与 当然了一段时间。 RJ是第三次这样的 我们的团队成员。 他不可能今天在这里,但他 问我要展示他的照片。 我不知道他想这 一个,但他在那里。 我只是让球队说 打招呼,自我介绍,使 你知道他们以及您的 自己的教学研究员这个术语。 LAUREN卡瓦略:嗨。 我叫劳伦卡瓦略。 我是一个居民导师 在莱弗里特大厦。 我是一个超级兴奋 头电视CS50今年。 CS50是一个非常具有挑战性的类 作为一个非常大的类,因此,如果你 如果你觉得有任何疑虑, 就落伍,可以自由地 伸出我们 heads@cs50.het,或给我,如果你愿意 喜欢玩我的金色 猎犬小狗。 这里是卢卡斯。 LUCAS FREITAS:嘿,伙计们。 我的名字是卢卡斯塔斯。 我是一个初中[听不清] 计算机科学和语言学。 实际上,我来自巴西,我也 实现东亚研究。 所以,如果你有任何疑问, 计算机科学,语言或 什么,只是让我知道。 CS50,更是如此。 王阳乐:嗨。 我是约瑟夫。 我是一个高级学习计算机 科学埃利奥特大厦。 所以,让我们来看看。 你会看到我周围携带 这些巨大的相机之一。 我常驻人员摄影师 50,时常和学生 有时以为我 亚洲游客。 所以如果你看到我用相机, 不跑。 只是微笑,不要害羞。 我希望你享受50。 我非常喜欢它,当我把它, 这就是为什么我一直TFing 这三年。 ROB BOWDEN:嗨。 我罗布。 这是我第四学期CS50。 我刚毕业在5月。 我在Kirkland。 我很高兴这学期, 我希望你也太。 国宝马兰:谢谢你今年的 头,RJ。 所以最后几个音符资源。 其中,P 0已经是。 这一个只存在于标准 版,其目的是为 类的全部。 从与p设置1,将有 黑客版本的大部分习题集, 再次,将覆盖材料 带着几分更具挑战性,同时 仍然触及一些 相同的主题。 难道看一看在课程网站 该规范对p组0。 办公时间也将在本周开始, 今晚到明天,周​​三, 和周四在各餐饮 在校园的殿堂。 离开办公室cs50.net/ohs 小时的过程中,认识到这一点 将是非常偶然的机会, 当然,在开始的 学期,来与您 笔记本电脑在大脑休息。 带一些朋友聊起来 当然TFS和CAS与任何 你可能有问题。 我不能强调不够,即使是 划痕和问题集0, 真的是没有愚蠢的问题。 有没有学生太难受了 发问。 请随时自由利用 这一资源。 将在那里recurringly的 整个学期, 将CS50讨论。 这是当然的网上讨论 论坛上,地址。 我们也将在讲座 还可以监视这一点,这要感谢 课程的教学团队。 所以如果你有一个问题,在 讲课,因为我说了些什么 不佳或根本没有,通过各种手段,要求 实时如果你有你 笔记本电脑或手机在网站上, 我们将竭尽所能近实时 作出回应。 有关CS 50有什么问题吗? 然后我的最后一个音符。 该次发行的SAT不满足。 当您完成您的学习卡,如果你 尚未实现 SAT UNSAT总体愿景, 面向全体学生,是真的 帮助的一门课程,采取边关闭 这样,可以这么说,所以,如果你 后期发现自己在夜间,凌晨2点,凌晨3点, 真的撞你的头反对 你知道你99%的墙上 那里的方式来完成,但你 有这么多其他的事情要做, 我认为更好的利用,往往, 学生的时间确实转移到 其他的事情,所以,你可以 优化你的时间,周围的一切。 SAT UNSAT是一种机制,通过它 你可以采取舒适的事实 有99%的方式有 仍然相当不错。 同样,如果你进入 当然没有事先背景或 几乎没有,你尽可能多的背景 觉得你的同学可能有真正的 还是假的,意识到这是一个 的机会,让你的手脏 当然,在把你的脚趾 水,可以这么说,就像我自己 年前的合格/不合格。 正如我上周说,这个过程中, 其他人一样,没有提供 通过/失败的时候,我可能会 曾经涉足 类,即使我做了五周 后来,我改变主意,你 也可能,并切换到 或从信渐变状态。 好的。 因此,我们看着这样的事情 周五,我们非常迅速 过渡的东西, 今天看起来更加神秘。 但它仍然在 相同的基本理念。 是什么的总称,我们 用来形容一块拼图 这个样子? 所以,一个语句。 你可以调用这个任何 一些东西。 不过,我们就称它为一份声明中, 并声明 只是告诉程序 - 或划痕的情况下, 精灵 - 做一些事情。 在这种情况下,打个招呼。 事情是这样的,我们 而不是叫什么? 是啊,这样一个布尔表达式。 只是布尔表达式是 这是真的还是假的,所以刮开 吸引他们的这种形状,但也 用一个问号来传达 想法,这个问题的答案 无论是真或假,是或没有 酮,1或0。 我们使用这些布尔表达式 里面像这样的结构, 我们叫什么? 所以,条件或分支。 而你在这里看到的情况 从头开始有一点点的占位符 一块拼图,形状,目的 这是这样,你可以 拖动它,然后把它放到 规定的程序,如果此布尔 表达式为真,做这一套 说明,这组语句, 否则这样做另一套 的指令。 和回忆,你可以 巢这些东西。 即使有空间不大 视觉拼图中的一块,刮刮 将扩大和缩小,以适应任何 拼图拖放在 有那么实际上,你可以窝和 有三种方式岔路。 如果,否则,如果别人。 你甚至可以超越 进一步嵌套和进一步需要。 所以最后,我们看到的结构,如 这一点,否则被称为一个循环。 而这仅仅是东西 一遍又一遍的东西。 在这种情况下,它正好是一个有限 的次数,但我们也 看到了一个例子,其中的数量 倍来自一个变量,所以 可能会改变。 同时我们也看到了另一个块共 叫一个永远的块 让我们循环无限长。 所以另外一个构造,划痕 2.0 - 那些你 舒适与之前的背景是 早已熟悉这个 构造 - 这些事情,我们叫什么? 因此,我们称这些功能,否则 被称为程序。 有轻微的语义差异, 但我们会打电话给他们就是函数。 一个函数,在划痕的情况下, 是一个自定义的一块拼图 你自己也可以创建,让你有 一个新的,在这一块拼图 的情况下,将被称为咳嗽, 出现在所有其他的 可用的拼图碎片划伤。 即使麻省理工学院并没有发明 这一块拼图,你做到了。 因此,一个功能可以让您创建新 行为,给它一个函数名和 然后调用它,可以这么说。 真正使用它的程序中再次 一遍又一遍,而无需等待 有人像麻省理工学院跌的道路 从头开始创造新的功能。 你可以建立这些难题 自己的作品,然后再用他们 在自己的程序。 我们将看到一个经常性的例子 今天起。 所以今天,我们现在过渡 更艰涩难懂的东西。 但在年底的一天,东西 更强大的表现力和更 代表的路径,我们将 整个学期整个数字 语言 - 代码或源代码。 和源代码,它的出现, 是不是一台电脑 通常实际运行。 源代码看起来像这样。 因此,这是再次,也许是最简单 我们可以写在一个程序 语言叫做C.我们将开始 逗除了过不了多久,如果 这确实看起来像希腊 对现在的你,相信我。 短短一个星期的时间,这 将一切太熟悉了,实际上 越来越颇有代表性 复杂的例子,你会 也更舒适。 但你不能只是运行此 一种通常的代码。 你有东西把它变成 计算机本身的理解。 因此,我们需要的东西 我们要调用编译器。 编译器是一个程序,需要 源代码,像你刚才看到的, 的输入,并可以产生零和 的输出,否则 被称为对象代码。 和它的那些零和那些 可能看起来很喜欢这一点, 最终是可以理解的 由Mac或你的电脑。 如果你听说过营销 Intel Inside的表达,这只是 意味着一家叫 英特尔已经制造了 您的计算机的大脑 - 否则被称为CPU, 中央处理单元 - 这仅仅是事情, 理解模式 0和1。 通过源代码转换成 通过这个过程的目标代码 一对夫妇的命令,我们将尽 只是一点点,你是 创建模式0和1 在英特尔,员工有 决定代表的若干陈述。 现在,我不太知道哪些 这只是一眼 这些0和1。 大多数人,这些天没有。 但是,在某处是有规律的 0和1,表示该 语句打印。 某处有可能是不同的 设置的0和1的 代表永远的概念或 重复10次,甚至喵,如果是 实际上是一个程序,可以 包括一些声音。 因此,在短期,人类刚刚决定, 就像我们做对ASCII - 字母字母上周 - 人类已经决定,即使 更复杂的模式0和1 代表更复杂的行为 如印刷或说或喵喵叫。 所以今天,在很大程度上起 在学期中,我们将采取 有人想当然地认为已经想通 如何做到这一点映射。 但是,我们这方面的想法相一致 分层的顶部的工作人 已经来到我们面前的,将采取 授予的事实,这是怎么回事 引擎盖下。 不过,我们更感兴趣的是 建筑的东西比较多 有趣的这一切之上。 也确实,我们的第一个程序 写在Scratch这个超级简单 一,世界您好。 你可以认为这是 主程序统治划痕 截至上周五的行为。 今天,我们要开始翻译 拼图碎片划伤 这种语言称为源代码 C连接,以便看起来像这样 周五,从今天起, 现在看起来像这样。 诚然更加神秘。 这实在是太让人分心和排序的心态 麻木看到所有的报价 和分号 括号等等。 但是,如果你开始忽略什么,你 不明白了,真是看 在白色文字的精髓 屏幕,想必你看,像我这样做, “你好,世界”。这线与 紫色声明向上顶,原来 关键字指出,主要是要 排队概念与绿色 点击标志。 因此,换句话说,而在划痕 我们实现这个Hello World程序 与这两个拼图,在C, 我们要实现这些 4个略带神秘的线条。 但是,正如我们深入到这一点,你会 看到,每一个这些 实际上在屏幕上的白色字符 有一些重大的意义, 我们的节目,最要 看结构不尽相同。 所以一份声明中,要明确,什么 看起来像“打招呼世界” 周五开始寻找 喜欢这个在周一。 的printf(“你好,世界”)。 有一些奇怪的反斜杠 N,有括号,有 分号。 但是在一天结束的时候,关键 外卖今天是我们正在做的 从图片翻译的东西 形成以文字的形式。 所以看起来像这样一个循环, 上周到现在看 这样的事情。 让我声明,就像在 划伤,有不同的方式来 实现同样的目标。 相同的C.我没有显示你的唯一 的方式做事情,但方法之一 翻译这永远 阻止一个循环,C. 这里这一次,重复10次。 这个人真的那种弯曲 介意你第一次看到它。 但要落实,从今以后, 我们要使用 for循环,可以这么说。 并明确有一些语法 稍微复杂一点,有我和 等于0,但一旦我们潜入 今天起,你只是去 一看就知道这一切都只是做了一些 基本的算术,让我们从0 在最多9或10,在这种情况下。 最后,变量,你会记得 一个变量的存储空间是一块。 那么,我们不得不在左边有 本周会显得有点 像这个星期。 但同样,更多的来。 我们有布尔表达式, 上周,这个样子。 这周起,他们将 开始看起来有点像那个。 而这一次实际上是 有点让人放心。 它实际上是几乎一样简单 作为绿色块。 但在这里我们再次,一些新的语法 使用&,但你可以 也许猜测而在划痕, 说A-N-D,显然,我们在C 要说的&符号与符号。 但所有这一切将成为 过不了多久自然。 条件。 上周,它看起来像 这在左侧。 这一周,在右边,这是 要像她那样。 但同样,这里的关键外卖 当你看到这样的事情 合适的,特别是如果减 舒适,它的排序对你 头,你得到有点不知所措, 我真的不知道我怎么能 可能拿出 从无到有 - 没有双关语意 - 只是意识到这是真的一样 的想法,可能觉得这么多 自然较前一周。 而且,即使你还没有潜入 问题设定为0,我敢说,你会发现 拼图相当 直观的,或者至少是 随着时间的推移变得如此。 因此,让我们长驱直入 让我们在这里我们的手脏与 这首简单的程序。 和简单的,当然是相对的。 要做到这一点,我要改变屏幕 我打电话到该设备的 CS50设备。 CS50设备是一块 软件内运行 我的Mac上的窗口,也可以运行 在你的电脑里面,一个窗口 让我有完全相同的 计算机环境,为每一个TF, 每个CA,为每一个学生 在类中。 因为CS50家电字面上的 另一个操作系统 称为Linux - 特别是Fedora Linux系统 - 我们的工作人员,已配置 的安装过程 在这样一种方式,一个操作系统, 有一个小CS50标志 中间大,两头,有一个自定义菜单 的底部,三,教学, 我们已经简化了用户界面 尽可能所以,当你 第一次启动这个东西在自己的 Mac或PC上,你有相同的 其他人一样的环境,你 所有的工具,你需要 的过程,而无需图 如何安装和 每一个单独的工具。 因此,这看起来比较 像Windows或Mac OS。 在左下角, 基本上有一个“开始”菜单 排序或Apple菜单。 那么你有什么,我们怀疑会 是你的三个最常见的图标。 一个是铬。 里面有一个浏览器 器具。 二是一个程序,称为gedit中, 我们看到上周短暂,这是 只是一个图形编辑器。 三是终端程序, 是一个黑色和白色的窗口 昔日,允许我们输入更多 晦涩难懂,但功能更强大的命令 我们的键盘。 所以我要继续前进,然后按一下 gedit的,放心吧,问题 设置1,上周五公布, 引导您完成所有这些相同的步骤。 请注意,我有一个非常简单的 由三部分组成的用户界面。 在左边,我有一个大的空 窗口被称为源代码。 这就是我要去的地方,看到一个摘要 我写的任何代码。 在右手边,我有一个大 选项​​卡,目前没有得救,这是 在我的代码要去。 而在底部,我有一个嵌入式 终端窗口,黑色和白色 提示我可以输入命令 编译并运行我的程序 - 是,制造和运行我的程序。 因此,让我们从简单的开始。 让我上去的文件,保存。 我要继续前进, 进入jharvard。 因此,器具,不论什么 你的名字,属于一个叫 约翰·哈佛,谁拥有一个jharvard的家 目录里面,您所有的 文件将去。 这是您自己的副本,他的账户, 所以我们不是所有共享 相同的硬盘驱动器。 你刚才的错觉 约翰·哈佛的自己。 在前进,其实我 安装了Dropbox的。 该设备自带预先准备 Dropbox的,如果有什么不顺心的 在学期期间,如果你 您的设备配置一个自由 Dropbox帐号,所有的文件将 自动备份,使您 可以很容易地恢复它们。 我要进入​​我的Dropbox 目录,并已经 是一对夫妇有其他的事情。 但我要继续前进 并转到文件,保存。 我要去成jharvard,Dropbox的, 这里,我要 给我的程序一个超级简单的 名称hello.c中,然后将其保存。 所以我现在拥有相同的接口。 唯一的改变 的标签往上顶。 所以,我非常迅速地重新 该程序从 滑动片刻年前。 因此,进入的主要(无效),然后printf的, “你好,世界”,一个有点神秘 密切报价,N,反斜杠关闭 括号,分号和 然后Ctrl-S保存。 顺便说一句,这是和通知 在左上角出现在这里。 这是不是有用的今天,但 随着时间的推移将是有益的。 你刚才看到的,再次,总结 你写的代码。 因为我写的东西叫 主,这就是为什么弹出Word主 那边。 但是,在大多数情况下,我们 不需要今天。 所有的权利,所以我要求,这是我 第一个程序写在一个编程 语言叫我们知道从上周五 这个东西是要干什么 很uninterestingly当我 运行它只是显示 - 换句话说,打印,作为一个计算机 科学家会说 - 你好世界在屏幕上。 因此,要做到这一点,你会发现,我有 来这儿我的终端 窗口,现在我有 一个闪烁提示。 但是,这是现在一个键盘的版本 我的约翰·哈佛的home目录。 这是一个键盘的方式通过 浏览我的硬盘驱动器。 所以我不能实际键入像我一样 上周打招呼,因为它是 会说没有规则,使目标 - 什么是错的。 我不太知道该消息 手段,但是这是因为默认情况下, 当黑色和白色的窗口 打开,我在约翰·哈佛的 主目录。 但是我在哪里保存程序? 在我的Dropbox文件夹。 现在,我们都已经长大了 电脑,你只需双击 在文件夹的图标,它 打开来,瞧。 这就是文件名为 将HELLO.C。 所以,事实上,让我们做到这一点。 让我继续前进,并尽量减少gedit的 就像你会在 Windows或Mac OS。 让我进入主 在左上角的文件夹。 我会在这里看到一堆文件夹。 这里是我的Dropbox文件夹。 复选标记表示它已经同步。 有几件事情,在这里, 但是请注意HELLO.C 确实有。 所以,通常在Windows或Mac OS, 我双击,它开辟了在 任何程序,我好去。 但现在,至少从今天开始,我们 需要采取一种倒退只是 给你一些基本的工具,为您的 工具包做多 强大的东西用不了多久。 因此,在此提示下,我必须做的 相当于双击 Dropbox文件夹。 要做到这一点,我要输入光盘 改变目录,Dropbox的,输入。 现在我注意到括号 所谓的提示现在说,我在 波浪线,小波浪 在左上方的符号 大多数键盘/ Dropbox的。 这仅仅是速记符号 说人,你现在在里面 Dropbox文件夹,就好像 你双击就可以了。 所以,现在如果我继续前进,键入make 你好,进入,我看到一个非常神秘的 命令,但不是一个错误消息, 似乎,然后 另一个闪烁提示。 如果你还记得,曾经如此迅速 上周五,我们这样做。 /个招呼。 你即将看到的结果是什么 我运行这个程序,或在Ma​​c 操作系统和PC来说,如果我通常一倍 点击程序 - 应用程序 程序或exe文件,它会打开 一个窗口,并运行。 键入。/你好,就像双 单击要运行的程序,但 用我的键盘。 输入的hello world。 就是这样。 因此,让我们逗所以除了 不觉得太像希腊。 因此,/意味着什么呢? 任何人谁是有史以来导航键盘 像这样的环境,什么点 指什么? 当前目录。 因此,在当前目录只是 一个文件夹的代名词。 所以说点斜线,我说, 寻找一个程序名为hello 当前目录 - 在当前文件夹。 换句话说,我的Dropbox文件夹。 这就是为什么击打其后输入 实际上运行该程序。 如果我现在型LS,注意,我看到 一切都在我的Dropbox文件夹。 获得Started.pdf,Dropbox的 给你的自由,我的照片 目录,公开目录,未保存 我做了一个错误的文件1 刚才,foo.c的,这是我早些时候 今天,然后两行 - HELLO.C和打招呼。 HELLO.C是我写的程序 gedit的,什么你好,是绿色的吗? 你好绿色是​​可执行文件。 换句话说,当我跑这命令 刚才 - 让我滚 时光倒流 - 当我跑使打招呼, 这里的中间步骤。 它把hello.c的输入 - AKA源代码 - 它产生了 作为输出文件名为hello, 包含所有这些零和一。 这就是为什么,在最后,我可以 实际运行类似的命令。/个招呼。 由于英特尔在里面,我的作业 Linux的系统,开辟了那些零 和那些,喂他们进入 我的电脑的大脑 - CPU - CPU知道,哦,这里是一个模式 零和一说 打印以下的东西 在屏幕上。 下列的东西是什么? 报价引文结束的“hello world”。 所有权利,所以总结了一些快速 这些命令,这样我们就可以开始 他们是理所当然的。 让我跳到 我们离开的地方。 你还记得,我们有CD 在我们的后面,刚才结束。 这些,我敢说, 今天的目的 - 也许这一周 - 唯一的命令 可能需要在命令中键入 除了提示做。 所以CD站在为了什么呢? 更改目录。 这只是相当于双 点击文件夹中。 顺便说一句,如果你得到 永远失去了你的内部 电器,使得升降梭箱 - 我想回到我 jharvard目录 - 有疑问时,CD输入,没有其他 也就是说,它只是呼啸而过你回来 你开始的地方, 是一个不错的小快捷。 所有权利,所以现在其他命令。 LS。 我打那一刻前。 LS代表,你怎么看? 所以,列表,对不对? 早在一天,当人类未来 与这些命令,他们 试图效率,而 键入回车L-I-S-T, 决定LS。 这很好。 这听起来够像列表。 让我们只是类型LS进去了,那 在我列​​出的文件或文件夹 当前文件夹。 MKDIR,你可能已经猜到了。 制作目录。 所以,你不要去一些文件菜单 在这样的环境中选择“新建文件夹”。 相反,你键入命令的mkdir空间 然后该文件夹的名称 要创建, 并将于完成。 RM,你可能已经猜到了。 删除“或”删除“。 所以,如果你要删除一个文件,你会 看到你如何在问题集中 能做到这一点。 和rmdir删除目录。 所以,再次,我会通过一些鸟飞 这些细节,因为 他们不是花那么多的乐趣 时间,但有两个,我们会为您提供 详细得多中的任何一种 过程中的问题,特别设置 标准版本的任一步骤 您可能需要键入 你会得到越来越多的 舒适的这些事情。 但现在让我捉弄除了 另一件事情。 当我们输入make你好刚才, 我们看到了一个神秘的命令序列。 再次,我们看到,你好。 好吧,让我们做到这一点。 我犯了一个错误,但 [听不清]现在承认我正要 做是故意的。 我做了什么错刚才? 是啊,所以我不是在Dropbox的 目录,因为刚才我 键入CD,只需点击进入。 缩小我回到我开始的地方, 这是不是我的文件 是的,所以我真的需要做CD的Dropbox 进入,现在我能做的RM打招呼 进入定期删除文件打招呼。 我不知道为什么它是如此神秘。 这只是意味着你确定 你想删除打招呼吗? 您可以键入y(是),回车, 现在它不见了。 现在如果我再次键入make打招呼,这是 要重新创建我的对象代码, 重新创建这些零和一。 但是,什么是处理 这个很长的命令? 好吧,我们除了逗 过不了多久,但 - 我告诉一点点善意的谎言之前 - 不是一个编译器。 make是一个程序,可以自动 数字如何运行 为你的编译器。 所以命令,你真的应该 运行为了转换HELLO.C, 你好实际上看起来的 多一点这样。 上帝保佑我们有实际 记得曾经键入该全 序列的命令出来。 在生活中做的目的是为了 请记住,复杂程度 我们和自动化,否则什么 是非常繁琐的步骤。 不过,我可近似认为。 所以每这里这个小小抄,我 可以近似该命令是什么 只需输入铛,这是做 我们将编译器的名称 使用这个学期。 如果你们曾经做过的iOS 开发iPhone或iPad, 铛是你使用的程序 在Xcode,以使您的应用程序。 铛,虽然是只是​​一个程序 我们可以在命令中键入其名称 提示,并通过引入现在, 我可以介绍的东西,这是一个 小代表 的命令来。 因此,让我这样做手工。 所以RM打招呼,现在通知的情况下 我只是作为一个理智检查 - /你好,你想我 应该看到,如果我这样做吗? 某种错误。 没有这样的文件目录。 所以实际上是相当直接的。 所以,现在让我清楚的画面。 控制S只是清除屏幕 删除一些分心。 现在我将手动 类型铛邻打招呼HELLO.C。 那么,这是什么做的? 做完全一样的东西,使 我们,但我没有扔掉一些 多余的话。 锵的计划,那将 。c文件作为输入,并产生 作为输出的零和一。 但是邻从此将调用 一个开关或一个标志。 这仅仅是技术人员的行话,说 这是提示你输入一个字 某种程度上影响行为 你运行的程序。 因此,没有人不想去猜测 什么邻传达? 输出。 这只是有人决定邻指 输出文件名为hello,并采取 输入任何硬道理 提示,HELLO.C,所以,如果我打 现在进入,似乎什么都没有发生。 奇怪的是,在这个世界上 编程,如果什么也没发生, 这可能是一个好东西 因为没有错误 在屏幕上的消息。 您好,回车。 现在我的程序已经运行。 不过,我可以做的愚蠢的小东西,如 这一点。铛邻,hihihi,HELLO.C, 进入,现在我有一个相同的 程序名为hihihi。 它的行为相同,但 这个名字是不同的。 因此,这仅仅是说,如果你想 影响的行为 程序,我们将越来越多地 见东西叫做 命令行参数。 这是一条线。 你键入的命令。 人体工程学,命令行。 和命令行参数都只是 语法,字或小件 以某种方式影响的行为 我们正在运行的程序。 所有的权利,这也许是最 无聊的节目中,我们可以写和看。 现在,让我们做一些事情 更有趣。 让我继续前进,创建一个新的文件。 我要先走,并把它保存在 约翰·哈佛的主目录, 让我们把它custom.c, 一点点的自定义程序。 我要放大我的顶部 这里的标签,并重新开始。 包括标准stdio.h中。 在某一时刻。 诠释的主要(无效),更 在某一时刻。 printf(“请你好,大卫”)。 更有趣的,对不对? 所以,现在如果 - 不是因为我的名字, 只是因为它是不同的 - 使自定义的输入。 “自定义”,你好,大卫。 但即使这样,也同样是一个善意的谎言。 这个程序可能会被称为 david.c,因为它不是定制 在所有的行为。 真的,我想一个程序,要求 用户输入他们的名字。 那么,如何才能做到这一点? 好吧,让我在这里滚动。 以前我用的陈述 从头开始,我使用printf之前, 否则称为功能,让我 先问用户一些输入。 因此,要做到这一点,我需要 做了几件事情。 一,我需要一个地方来存储用户的 之后,我问他命名 她。 可能我需要使用什么构造? 存储这样的一个价值? 一个变量。 因此,与从头开始,你只是获得一个 漂亮的一块拼图,在这里,我们必须 ,很明显,使用的话 表达自己。 从今以后,任何时候你想要一个 的词或短语,在编程 我们要调用一个字符串。 因此,一个字符串是一个单词或短语。 这是一个零个或多个序列 字符,更正式。 如果你想这样一个变量 存在,你不得不说:给我一个。 你是 说字符串s分号,其中s 你想要的任何东西。 事实上,S是有点给人留下深刻印象。 让我继续前进,更 清楚地叫它的名字。 给我一个字符串名为name。 但是现在,什么是人的 名称默认? 好吧,如果人类不输入任何内容 ,显然,是怎么回事 是没有价值的名称。 而事实证明,在C中,如果你不给 一个变量值,它会 有一个垃圾值。 它可能有一些随机零 的,所以你只是去看看 垃圾,真正做到在屏幕上, 如果您尝试来显示它。 不过,我可以解决这个问题时说,实际上, 存储名称的内部 值。 存储变量中的值是 如果你有一个变量名 离开后,你必须以某种方式把你 要存储在它的右侧,并 语法来是怎么回事 要如下。 我们还没有看到这一点,而是采取 信仰了一会儿,有 在世界上存在另一份声明中 我要再次调用函数, 功能,该功能是 所谓得到的字符串。 它字面上。 它在某种程度上得到的字符序列 从人类,然后 用它做一些事情。 但这样子 语法晦涩。 通常情况下,如果你使用的等号 - 你是说,在世界上, 代数,其实你 说x等于1。 在这里,我们并不是说, 名称等于得到字符串。 我们说存储的名称是什么 在右手侧 等号。 等号代表 赋值运算符。 这是说,把什么语法 右手边里面有什么 在左边。 因此,获取字符串是一块新的 的功能,不仅 东西 - 要求用户一个字符串 - 它也返回了,可以这么说。 因此,让我们来看看这是怎么回事 发生在这里。 我要继续前进和缩小, 我要一对夫妇 在我的提示错误。 我要输入习惯,输入。 哇。 一大堆错误。 所有的权利,所以这是一种 铺天盖地,肯定在第一,但 事实证明,所有这些非常 诚然神秘的错误信息 指一些模式, 我们将开始看到随着时间的推移。 所以这一块,我就为这事, 因为它是第一。 使用未声明的标识符字符串。 这只是意味着gedit中,或锵, 在这种情况下,不知道 我的意思的字符串。 那是因为在C,编程 语言,但实际上 没有字符串类型的变量。 C不知道字符串不存在。 但我们CS50员工,做的。 因此,在提前类,我们 创建一个名为CS50.h.的 这里面的文件 - 更多的语法来 - 里面的这个文件是一个定义 就是我刚才定义 口头作为一个字符串。 所以,简单地总结这一行 在我的程序的代码,我现在 gedit的教学,使锵 在把一个字符串是什么。 我不知道该怎么还。 在几个星期后,我们将剥离 那层。 但现在,知道这教 编译器有什么 串实际上是。 所以,现在让我清楚我 终端在这里。 让我重新运行定制,我 解决所有这些问题。 也是如此,因此,这将 是一个反复出现的主题。 我只写了9行程序, 但我有18行的错误。 这是一种恐吓。 但要意识到他们往往串联 一个小小的错误触发 混乱的编译器, 它看起来比它差得多。 所以,现在是一个精明的观察者会知道 我得到一个从字符串 用户,但我其实没 做什么呢? 我实际上没有做 任何事。 所以,如果我再次运行自定义, 这是怎么回事,只是坐在那里。 这是怎么回事呢? 我的计划似乎被卡住 什么样的线,你会说吗? 因此,它实际上是停留在第7行。 我们没见过这之前,但 第7行,再次,这 语句,得到的字符串。 它做什么它说。 现在等待人类 取字符串。 这是我完全直观, 人类,因为我没有被告知 该怎么做。 但是,让我继续前进的信心和 让我假装罗布。 回车键。 这不是我想要的程序。 因此,我们有我们的第一个博客。 但是,让我们尝试通过推理 为什么是这样的情况。 首先,让我首先来解决这个问题。 让我再补充一条线在这里说 printf的,你叫什么名字? 让我们只是做密切的报价, 关闭括号。 现在让我重新运行该程序。 问题。 我没有看到。 右。 我没有重新编译它。 因此,在一个像C语言,因为你 更改源代码并不意味着 你已经改变了你的目标码 生成新的对象代码, 新的零和一。 你必须重新编译。 如果我现在重新运行自定义,输入, 啊,更加清楚一点。 我的名字是罗布。 尽管如此马车。 我要说的有 现在一对夫妇的错误。 这只是看起来可怕的,坦率地说。 ,微创,我应该有 空间,或将 光标移动到新的一行。 而实际上,新的线路。 这是一个关键的短语,在这里, 我们已经看到了,但没有定义。 你会得到一个文本的方式, 移动到下一行, 你不这样做。 这是混乱到计算机。 这看起来像两条线 的代码,两者的 是完全正确的。 你反而有更加明确 说,给我一个新行,这是我们 反斜杠n代表在c。 所以这是一个很少有这样的字符。 反斜杠n将修复的审美。 让我重新编译我的程序。 让我重新运行我的程序。 这看起来更好。 它仍然是相当原始, 但它也仍然马车。 所以这是一个 - 即使你从来没有编程之前, 你大概可以猜测 为什么这个程序仍然是有缺陷的。 要做到这一点我需要做什么 我没有做过吗? 所以,我要真正做到 名称的东西。 就像在从头开始,你实际上可能 指定一个变量,如n或 对付像去年我们做了 周 - 值。 但是,如果你没有做任何事情 它,什么也没有发生。 好吧,让我们解决。 让我输入我的变量, 并让我去这里。 让我重新编译,让我重新运行,罗布。 现在我只是一个白痴,对不对? 因此,这是没有真正得到 我任何进一步。 但是,这是一个完全自然的 本能,我要说的,对不对? 如果该变量叫名字,我和 想要它去那里,为什么不让我 键入? 嗯,当然,我们有 现在区分 之间有什么是一个字符串? 请注意,报价引文结束 在这里,你好叫什么名字? 实际上,这本身就是一个字符串。 它的硬编码。 这不是人类。 这是从我原来的程序员, 但它仍然是一个字符串。 所以,如果你里面字面上写N-A-M-E 一个字符串,发生了什么事情 印刷? 好吧,N-A-M-E。而不是我们需要的 告诉printf,不打印 在字面上命名。 打印出name的值。 要做到这一点,我们做到以下几点。 而这仅仅是一个人的惯例。 我们不是说%S, 代表字符串。 然后在结束时,我最亲密的报价, 我要去把一个逗号和 第二个参数传递 进入本声明。 我要去那里键入名称。 所以,现在我们注意到有一个 稍新的语法。 我们仍然有两个括号, 从此让我说的东西 括号之间的代表 成一个函数的参数 - 莫名其妙的输入 以影响其行为。 因此,逻辑,多少个参数 printf的似乎是 在这一刻吗? 因此,它似乎将采取两个, 这的确暗示 这里的逗号。 因此,这是一个参数 在引号之间。 尽管它有一个逗号, 一切报价,这意味着 这是一个长字符串。 逗号,变量名。 所以,现在让我缩小。 让我重新运行它。 罗布。 该死的,我做了什么错? 所有权利,所以你必须重新编译。 如此反复,容易犯的错误 早早就一遍又一遍。 所以,现在重新运行自定义,罗布, 输入,瞧。 我们现在有一个自定义的程序。 所以,我现在有一个程序, 使用几个特点 是值得注意的。 一,我使用CS50.h,否则 称为CS50库。 里面的CS50库的 功能,其他人写的 - 即工作人员 - 供您使用,并获得 字符串是其中之一。 2号线的内部是stdio.h中, 这是为什么? 采取一种猜测。 里面存在什么 标准IO父? printf的。 printf的,你没有看到它的任何地方 屏幕上的其他。 它必须配备 电脑不知何故。 它来自何处? 这里面 - 它宣布, 可以这么说,里面 一个名为stdio.h中。 现在,这个东西,我们会回来 最终,因为它是一个位 现在分心。 这是指我们的返回类型。 这是指一个说法。 但是今天,我们的重点 只是在这里对​​这些行。 所以字符串名称,只是为了重温一下, 什么为我做什么? 因此,它声明了一个变量 字符串类型。 因此,它的意思是词, 而不是数字。 正如顺便说一句,如果我没有想 它是一个数字,我会说 如int东西。 如果我想成为一个浮点 值,带小数点的东西, 我想说的浮动。 但今天,我刚才说的字符串。 我已经给这个变量 出了名的名字,但我可以 把它叫做什么。 事实上,最初,我把它叫做S。 这里只是另一份声明中。 这是多少个参数 录取口供? 所以它只是一个,并且 是一个简单的美学细节 显示上的东西 我的屏幕。 这是什么8号线做 通俗地说? 它从一个值 用户 - 即,一串串 - 什么做呢? 它本质上是将其移交到了 男生在左手侧的 等号因此,在这种情况下, name变量实际上可以存储它。 然后printf是另一个 一个函数实例。 我们说,调用一个函数。 要使用功能 调用一个函数。 这件事显然 接受两个参数。 这其中,逗号,这一个。 这本身只是一个字符串 它包含一个占位符。 %s的手段把这里另一个字符串。 所以把名字后, 插入逗号, 那件事对我来说。 所以我仍然可以做其他事情。 让我现在继续做一个有点 愚蠢的方案,但让我删除, 让我创建一​​个循环。 虽然真实的。 显然是象征真 总是会是真实的。 那么什么样的循环我诱导 写这样的一条线? 因此,一个无限循环,对不对? 只是而真实。 有没有办法,我可以改字 真正的是什么东西,所以这是 只是要永远运行。 因此,如果你曾经有一个节目 在您的Mac或PC,似乎 已锁定,或者在做什么 东西的东西,你只要 不能得到的东西,除非你退出 重新启动计算机,或拉起 任务管理器或类似, 这里就是这样一个例子。 我可以说,“我是一个错误的程序。” 关闭引号,关闭 括号,分号。 如此反复,发现模式。 即使我们的一些语法是新的, 关键字,而关键字的真实, 请注意,我有同样的 样的卷发括号。 我有一个分号和括号。 所以,现在让我们继续前进 和编译。 定做,定做。 因此,在这一点上,你不需要 重新启动您的设备,所有的权利吗? 所以这里容易教训是 两个手指,控制Ç 我们将退出该程序。 但是,你可以清楚地看到,为什么这件事情 重演一遍又一遍。 我可以做的东西一点点 更为复杂,因为捉弄。 我要继续前进, 下面说的。 对于整数,它是一个整数,i是 我们给予最通用名称 当你在编程变量 只是计算,等于0。 让我继续说,而我, 比方说,小于100,我+ +。 我们会支持这个语法, 但是,这只是意味着 我一而再,再递增。 我想在这里做什么? printf的,“我可以指望我。” 这是一个错误的程序。 其实我什么打算? 百分比不是,但你不会猜测 这一点。 %d是一个十进制整数。 逗号。 让我滚回来。 现在让我使重新编译。 现在让我重新与定制。 我真的该死的快时,可以指望 我写这样的程序。 现在,让我们做的东西 小非故意。 如何让我们这样做,而我 是大于或等于0。 这是什么会诱发? 因此从逻辑上讲,这是不聪明, 因为如果我现在重新运行,各显神通, 我现在可以指望,真的很高。 不幸的是,大约高,我可以 计数为4亿美元,所以这是怎么回事 需要一段时间。 那么,为什么我们不离开这个作为我们的 扣人心弦的,有前途的,在 周三,我们会看到,如果 这个程序就完成了。 二,我们将介绍你自己 编写自己的功能,所以很 很快,周三,我们会,我们 过渡到C从头开始 写日益复杂 做太多的计划, 远不止此。 然后我们会看到你。 [掌声] 扬声器1:在接下来的CS50, 益智日是成功的。