[音乐播放] ALLISON BUCHHOLTZ-AU:嘿大家。 欢迎来到你的第一个 官方CS50部分。 正如你可以,看到这是 部CS50状,刚 拉了我们今天的议程。 那么,我是谁,我敢肯定 你们都知道。 我是你的TF。 我不只是一个随机的学生 谁在冒充你的TF。 

而且我会去通过 种有部分会流, 期望我们有, 资源,等等,等等。 我们要谈的数组,ASCII 功能,命令行参数, 它不是在这里,但 我也会帮助 有种你想通过 你的下一个PSET本周。 我相信你会明白一切。 

因此,首先question--我是谁, 除了在这里你旺盛的TF。 我艾莉森Buchholtz金。 这是我第二年TFing CS50。 我也TF CS51的春天。 你可能会看到再次出现 如果你决定接受它。 我也是一个PAF,所以任何Freshmen-- 如果你不是一个新生, 这是我第三年 作为建议的家伙。 我很精通 建议你对生活和课程 CS之内,而不是在CS。 我是一名计算机科学选矿厂。 我在斯楼,最好的房子高级。 还没等我切换到 CS我大二春天, 我其实是一个生物医学工程师。 我本来打算去地中海学校。 我将是一个创伤外科医生。 并具有完全 改变,因为我把CS50。 我把我的课程二年级秋季。 这是我第一次接触CS如初。 我是你的78%的一个谁 有经验为零进来, 它彻底改变了我的生活。 现在我在我的工作 微软,和你可爱的TF。 而CS50大概是1 最好的经验 说我已经在这里 Harvard--无论服用类 并能够帮助 教给学生喜欢你。 

所以,我真的很激动 你都在这里。 如果你进来 晚了,有糖果, 你应该感到 免费抢过来,或者发 别人抓住它给你。 没关系。 我不想吃。 我的房间有足够的巧克力,所以 你们应该尝试并完成了。 我知道的有100件, 但像,在周一凌晨4时, 我想每个人都可以利用一些糖。 

所以大家谁是 正式在我的部分 应该得到一个电子邮件 从我有我的电话号码, 电子邮件addr​​ess--随意添加我的 谷歌聊天软件,随意添​​加我在Facebook, 同时也为您的休息, 你可以发邮件给我就在这里。 有两个H的。 每个人都总是这样 就像两个L's或两个C的。 两个H在姓氏。 否则,它会反弹,并 我不会让你的电子邮件。 

所以,随时给我发电子邮件, 与我联系在任何时间。 我可能不会回去 您应在24分钟之内, 但我答应回去 你在24小时内。 如果你打电话给我半小时前 您PSET是因为,你是喜欢, 我不知道我在做什么佳佳。 帮我。 我要你平静下来, 但在一天结束时, 如果你打电话给我半小时前 您PSET是由于什么也没有写, 我要像,好吧,也许 它的时间来使用该晚一天。 因此,我将所有的回应你 要求在一个非常及时。 我的手机通常是 贴在我的手上。 我通常多回应 快超过24小时, 但我只能保证 24小时响应。 

行。 那么,为什么我们在这里? 另外,如果您有问题 任何时候,请让我知道。 我谈了很多。 我说话快,但请 随时打断我。 这给了我喘息的余地为好。 因此,部分是时间 对于我们真的只是潜水 中,获得一些实践经验, 经过我们提到的话题 在课堂上或在学习材料 我们建议你们在网上。 我们将真正经历 一些有点这些资源。 

因此,一些注意事项部分支持。 CS50--的事情之一,使 这是我最喜欢的类别之一 是,你永远不会孤单的感觉。 我们有超过100名员工 人谁是来帮助你的。 我们的办公时间 周一至周四。 因此,有这么多的人谁 爱班只是像我这样做 ,谁是真的在这里 因为他们要到这里来。 我们中的大多数是学生,而这 就像第五类除 我们的工作休息。 

这是一个大量的工作,但 我们这样做是因为我们爱它, 我们真的爱教你 并帮助分享我们的兴奋 针对这个问题和这个类。 所以,请利用。 再来说说我们。 我感到孤独时,我的学生 不要跟我说话,所以如果你想, 都挂出了我。 这将是巨大的。 

因此,部分显然是 您的一个最重要的事情。 我们将通过东西 您在演讲学会, 做一些简短的例子 当我们有时间, 和种一般 获取有关的事情的想法 你应该思考 关于您的问题集。 有多少人真正Shorts-- 看着从你从头视频 短? 任何人都认识我了? 因此,这些都是非常大的。 你一定要看看那些。 大量的工作已投入其中。 而他们只是意思是 一口大小的块为你只是看 三,四分钟,并获得 更好地理解一个概念。 走throughs--如何 很多人都看过 在穿行于以前的? Zamyla是惊人的,对不对? 喜欢,我希望我是Zamyla的时候。 所以肯定用你穿行。 她将它分解成 小,一口大小的块。 而当你拥有这些巨大 从你的习题集规格, 这将是非常重要的 要能随便找个地方 启动,并通过它慢慢地工作。 

好了,我们也有Study50,这 是study50.harvard.edu,我相信。 你可以谷歌 学习,它会冒出来。 这是一个 最好的资源,我们有。 这是学习认证与笔记 和实践对你的问题 的解决方案,你 其实可以穿行。 所以,如果你想多练, 比我们多节以上 比你的习题集,这是 真的,我鼓励你去的地方。 它是建立在去年夏天通过 我的一些非常要好的朋友。 它是惊人的。 事实上,有很多的幻灯片 我将使用的第 将来自Study50。 

所以很多的转录因子的使用它。 最后,我 所提到的,办公时间。 如果您遇到问题 家庭作业,你 具有与麻烦 概念,来办公时间。 去年初,在本周如果可以的话。 走不出来了四, 因为它是一种远。 没有人喜欢走在那里。 但它是你的优势, 因为那时你 将拥有所有这些转录因子, [听不清]围绕着你。 尤其是现在, 只是一个提示,星期四 非常寒冷的,现在在 马瑟因您的pset 是由于在周四。 并知道要 用你的迟到几天呢。 

所以,如果你有 与概念的麻烦, 有许多转录因子的谁 在那里帮助你。 所以出来马瑟周四。 如果你想看到我, 我要去那里。 我通常做我自己的功课, 因为没有人愿意帮助我。 那么就来看看我们。 

我们见面了一半。 那么有多少人参加 讲课或在线观看呢? 有多少人去了 上周超节? 凉爽。 这实际上是一个公平的数字。 你们有多少人看过你的 SPEC本周,为您PSET? 哦,我是你们的骄傲! 更多糖果你们。 

好,让我们的意思 “我们见面了一半,”是 这章只是 将是超级对你有用 如果你进来看了你 规范的PSET。 因为当我经历的概述 你应该找出来的东西, 它不会使 如果你是多大意义 不知道你的问题集 是要问你的事。 

如果你不来款,显然 我不能对你有用。 我不打算把它亲手如果 你不来我的部分,现在, 但你绝对应该。 如果不能,在线观看。 他们是有原因的。 矿将在那里。 当你发现,我们被记录下来, 所以它会在那里为你们。 同时,要 lectures--这显然 你得到的,其中 开始你的材料在这里。 所以,我一定会尝试 帮助你尽我所能, 但我只能满足你们这么远。 你要种 迎接我们的一半。 

Grading--所以,在座的各位 谁从我这里得到了一封电子邮件, 你是我的正式部分。 我将你的分级pset中。 我只想说,一件事, 你应该注意的 有意见。 该意见往往是比较有用 比实际的分数,我们给你。 和意见实际上是 在那里我花了我很多时间 当我分级。 所以,我将不胜感激 它,如果你阅读。 而它们实际上是你如何去 详细了解设计理念和风格 并且事情是一个 少一些添油加醋。 

所以,真正要注意 这些意见。 如果您有关于他们的问题, 或者你的分数问题, 请你跟我说话 无论是部分之前, 我可能会挂出 在大堂,或之后。 如果要计划 如何单对单会议 你可以帮助改善后 习题集,只是让我知道。 

然后只是一对夫妇 对你们的提示。 这样的最大的事情之一 我一直强调我的第 当你学习如何编写代码是 先写出来的东西在纸上。 如果你有一个比赛计划 在您的代码需要去 和它所需要 这样做,它的分解 成伪小位 你写出来的代码, 你会少 可能使语法错误 或创建一个,如果循环 没有一个人。 如果你知道你 要全面,你 不太可能使这些微小 的错误,有时会带你 小时修复,因为你喜欢, 在那里我错过了这架? 

关于这一点,请使用Style50。 特别是当你 要去上班时间, 如果你的代码是所有 切换到一侧, 这当然是政策 我们可以说,解决这个问题 因此,它看起来像Style50说 它应该,然后我们会帮你的。 因此,它会让你的生活更轻松。 它会让我们的生活更轻松。 每个人的幸福。 每个人都得到更好的成绩。 这不正是我们都想要的吗? 

所以在写的东西在纸上 你有没有碰你的电脑。 谈出来的东西在一个较高的水平, 确保你知道你要去哪里。 如果你不确定, 坐下来与人 并通过分步走他们 你的代码是应该做的。 和九次了10年,你会 像,哦,我忘了一个if条件 还是我忘了分号在这里或 我更新这个变量是错误​​的。 所以这些都是我成功的秘诀。 

如此以来,大约有一半的你 就像你参加超部分, 我只是很 简要经过循环, 这不是我们原来的议程。 但是他们真的很重要。 所以我要去样 高速通过那些 在我们进入我们的实际部分。 之前,我这样做,是有 任何questions--后勤, 就个人而言,是有 什么都想要 了解我或约 一般一节或一类? 所有的好? OK,爽。 可爱的。 

所以loops--你们应该都 从头开始认识到这些作品。 因此,循环基本上只是 一种方式为我们做什么 次一定数量,有的反复 根据某些条件操作。 因此,我们有三个不同的类型。 我们有for循环,同时,和do-whil​​e。 

因此,对于loops--我们只是有一个非常 这里的for循环总体布局。 这是伟大的,当你知道如何 多次事需要执行。 当我们谈论 其他循环,你会 看看为什么这是一个重要的区别。 但是,for循环的东西集。 你知道你既可以 计算数 或者你知道多少次你 希望此重复开始。 

所以,如果你看到这里,我们 刚刚一般性的 骨骼框架 for循环在这里。 所以对于初始化,这就是 您的变量被初始化。 马里奥,我敢肯定,你们做了 像INT i等于0。 这就是将蓝色发生。 你有你的条件,这 是什么检查每次。 如果这种情况属实,那么 代码的其余部分执行。 然后它会运行again--问问。 然后我们有更新的,其中 要更新您的变量。 所以,再一次,与像马里奥,我敢肯定, 你们不喜欢的东西我加再加。 所以每次循环 跑了,我得到了更新, 当我们对检查它 一定条件下,它是不断变化的。 

因为如果你只是 有一个静态变量, 如果在执行第一次,这是 只是要无限地执行。 所以,你必须确保你 正确地更新您的变量。 我们也有一个刚 可视化表示形式出现。 大家好? 对于循环。 应该在你的PSET看到了这些。 凉爽。 

因此,这里只是一个简单的例子。 打印这是CS50! 的10倍。 因此,我们有我们的初始化, 正如我们所看到那里,我整型 等于0,其中i是少 比10,我加再加。 它会打印出10倍。 

因此,尽管loops-- while循环 伟大的,当你这样做不一定 要知道有多少次它的 去在开始更新。 你只是有一些 这是检查的条件。 这可能是类似while-- 让我们来举一个例子,从您​​的pset。 如果马里奥,你尝试 输入一个负数。 对不对? 你应该 再提示用户。 所以,你可以说,好吧,如果用户输入 东西小于零,再提示 他们。 我敢肯定,有可能 是的东西,你们中的一些 在你的代码中使用。 

所以这是一个简单的事情。 你有一段时间,一些 有条件的检查 每当码去执行。 如果结果为真,我们运行它。 否则,我们不知道。 什么是真正 important--东西我 认为大卫谈到 在lecture--是大括号。 内凡是 括号是什么执行。 如果你忘记那些 牙套,它一定会 直接成为线 被执行一段时间后。 

所以,如果你有三个 事情应该 要发生时,本 条件计算结果为true, 而你没有这些括号,只有 第一件事情将要发生。 所以要非常的认识 你把你的大括号。 如果你坚持Style50, 这一定会帮助你。 凉爽。 

因此,这是从10到零倒计时。 正如你看到这里,我们初始化 它之外的一些柜台。 有一件事,不同的是 我们没有初始化我们的变量 在我们的while循环。 它在它之外初始化。 我们只是简单地把 条件为我们的时间。 所以在这种情况下,它们也同时 计数大于零。 我们打​​印出什么我们计数, 然后我们我们的递减变化。 而这也是另外一个需要注意的事情。 我们的更新不会出现在 while循环中的第一部分。 它实际上将发生在 大括号,你的正文。 

所以不要-而loops--做-whil​​e循环 非常适合用户的验证。 所以,有些人可能有 也用这个在你的PSET。 你可以说,这样做一样, 要求用户输入。 然后一边,喜欢的 输入小于某一数。 

因此,对于一个明确的情况下,与马里奥,它 会做的printf,输入一个整数, 然后一些整数等于调用getInt。 然后它会实际 第一次执行该代码。 你居然有 某种整数。 然后你就可以说,而 该整数小于零。 那么,它要做的是它的 要执行至少一次。 这将检查情况。 如果条件为 真的,它会再次运行。 

所以做-whil​​e循环 巨大的用户验证, 因为你知道代码 会至少执行 一次,而用 while循环,你不 保证它的 要执行一次。 这将检查情况 ,然后再决定要执行它, 而一个做,而会 第一次执行代码 然后检查是否 你需要重复它。 这是否区分 道理大家? 行。 凉爽。 

所以在这种情况下,这是一种 什么,我说的是, 这再提示操作,直至 得到的正数。 因此,我们知道的printf “输入一个正数” 实际上要求的 输入会发生至少一次。 如果用户是邪恶的,并保持 输入一个负数,谁 不知有多少次,它会执行。 但是这个代码是保证 执行至少一次。 这就是为什么它的伟大 验证输入。 你会使用相当多。 

好吧,什么问题这么远吗? 我们都好? 难道我说的太快了? 我们是好? 行。 真棒 

因此,我们要继续前进 谈谈阵列。 凉爽。 所以数组是基本 只是数据结构 这使我们能够存储 同一类型的东西。 因此,如果你曾经有一个数组,它的 或者只是将不得不整数 或者它只是将不得不花车 或者它只是将不得不字符。 你不会有一个int 一个char与双浮子。 一件事。 阵列只是一个尺寸, 或者他们只是一种类型。 

所以在这里我们有大小的数组 3,在这三个整数。 他们可以浮动,但我们 要说他们是整数。 所以,有一点需要知道的是,数组 是一组大小在初始化 它们,并且它们不easily-- 因为大家都不太舒服, 你应该把它们看作 不能够在尺寸上延伸。 但是大的你设置了 你的数组中的开始, 这就是它的大小是怎么回事 留下来,因为数组 是连续的存储器块。 当你们拿到 进入多一点点 如何存储的实际布置在 盘和在所述堆和栈, 它会做一点更有意义。 

但是,你可能只是觉得像,这是 只是排在你的磁盘空间。 而且你不能保证有 去后它成为空闲空间。 可以初始化一个数组 3,然后也许你 初始化五个另一个数组 后来,它的后正确的。 所以,如果你走过去点 3在该第一阵列, 你会写 过别的东西。 所以数组are--为你们,只是 把它们看成一个固定的大小。 

所以,创建你要去的array-- 需要这个做了不少。 所以在以同样的方式,我们有一个 一般结构为我们的for循环, 我们有一个很好的通用 结构为我们的数组。 因为它们的一种类型中,所有的 数组中的元素是一种类型的, 您需要初始化 那是什么类型的。 

所以,当你看到这里,我们有一个 可爱的小支架的数据类型。 因此,如果我们要创建一个int 阵列,这将是int。 如果我们要创建一个char 数组,它会是char。 如果我们要创建一个字符串 阵列,这将是字符串。 然后阵列的名称, 无论你想的那样。 因此,也许它的测试成绩还是可能 这是学生或也许是糖果。 无论你决定你的名字 数组,这就是它会。 

然后在括号中,你会 有你想要的大小。 因此,我们存储10个学生或 我们存储15种糖果? 什么不是。 所以,在这里我们的例子中, 我们要创建一个数组 大小3,你的家伙 看到这里就对了。 当我们第一次初始化 它,一切都设置为零。 所以它只是想 像一张白纸。 我们拥有所有这些空间,我们都 这些盒子,我们可以把我们的数据为, 但他们只是空白 暂且。 

因此,如果我们想实际 为其分配这些值, 我们这样做是正确的在这里显示。 所以,你有什么对你的名字 数组,然后你想要的指标。 因此,该指数仅仅指的是, 就像我们在看什么插槽。 和重要的事情要注意 是数组索引从零开始。 因此,如果我们想在存储器中的第一空间 我们的阵列,这将是零。 如果我们希望第二个,它会是一个。 如果我们想在第三,这将是两人。 等等等等。 

这也是为什么,以往, 当我们做loops--我敢肯定, 你们想知道,为什么 我们开始在0与1? 那是因为,当我们转换 为使用数组,它映射正确。 所以,如果你想 遍历到一个数组中, 使得很多更有意义 做i等于0,因为我们 知道将对应 以在存储器中的第一点。 每个人都好有吗? 凉爽。 

然后在这里的底部是刚刚 另一种方式来初始化一个数组。 你仍然有你 数据类型和名称, 但不是实际 把一个规模在那里, 你可以做的空括号。 然后用这些花 撑杆在底部, 你可以只输入数据 你想用逗号隔开。 并自动将 说好,我看 你有三个 事情在这些括号。 所以我知道我需要分配3 的存储器块,然后存储这些。 

因此,第一个版本,你可以使用 如果你问你的用户输入 值,这样就可以 遍历数组 和ask--得到一些INT输入它们。 如果你预先知道的值, 这让很多更有意义 使用第二种方法。 但在大多数情况下,你可能不知道 什么这些值将是。 凉爽。 还有没有其他问题? 好吧。 

所以,访问elements--这么一 关于阵列的伟大的事情 是,它们是随机 访问,这意味着你 不必去翻每个块。 如果你知道你 想要什么块2, 你可以说,给我挡住两人。 这就是为什么这些 索引是如此的重要, 这就是我们如何真正访问它们。 所以在这种情况下,如我们之前的时候看到 我们被赋值,在一 之前,我们有名称和 指数我们想访问,对不对? 因此,在以同样的方式,这就是我们 这样做实际上是拉出来的数据。 我们的名字,我们 有我们想要的索引。 

所以在这种情况下,对环 这儿的底部,任何人 知道它在做什么, 它会打印出来? Mmhmm​​? 没错。 所以,是的,它只是通过迭代。 i等于zero--我们可以走 通过代码只是快。 i是等于零,i是少 三多在这一点上,对不对? 这样检查出来。 我们说好,打印˚F 无论是在我的温度。 我是零就在这里,当我们第一次 迭代,所以我们去这第一点, 我们说好,65是 数我们要打印出来。 所以它会打印出65 然后做一个新的生产线。 我会更新,所以它打印87。 它再次更新,它会打印30。 每个人都很酷吧? 真棒。 

行。 因此,这里的那种之一 的事情,我是说怎么样 你可以跟踪 一个人的成绩,为什么 你可以使用第一 初始化它的方式 而不是说第二种方法。 而这只是经过。 并请注意,我们有30类大小。 我们正在初始化这个 整型数组的大小是30的。 然后我们遍历 通过与我们 要求用户输入 分数为每个这些 然后将其分配给 在存储器中的特定位置 介于该数组。 酷? 这是否有意义大家? Mmhmm​​? 

因此,包括hashtag定义类的大小 30是一个预处理指令, 这只是意味着它gets--有 做这样的编译过程。 你可以把它想象 作为全局变量。 我们这样做的方式是 typically--它可以让你的代码 可以更容易地改变。 所以我们可以说,我们的班级规模 突然变从30到15, 如果我没有定义这种方式,我会 必须要经过我的整个程序 并改变了30的每个实例到15。 但是这一点,我得到改变一个 现货方面,和其他一切的变化。 

如果你想要做的 在一个情况下,散列定义 在那里你正在跟踪一些 设置分数数一类 或者您使用的是数字 将要使用的,等等, 整个一个很长的程序,它的 更好地限定在一开始 因此,如果以往任何时候都改变了,你会得到 改变一个地方,而不是100。 是吗? 

学生:介于这样做,只是 过声明[听不清]在顶部。 

ALLISON BUCHHOLTZ-AU:所以这 是因为有efficient-- 它是一种范围之内 我们可以在本节涵盖。 它与效率做多 以及如何实际的东西 在编译过程中的工作。 如果你想真正了解 这件事,我很高兴地向您发送 一封电子邮件,它的资源。 散列定义趋于 最好的东西。 而随着你的代码越多,你 种学习的细微差别 当你要使用的 全球对哈希定义。 但暂时, 你真的没有 担心的是 这简短的回答。 每个人都好有吗? 而且,如果你想 使用散列定义, 这真的很重要要注意 这个名字应该是全部大写。 我们不只是在做 班级规模是巨大的。 它实际上应该是全部大写。 凉爽。 还有别的吗? 我们是好? 可爱的。 欢迎光临。 

好了,我要你们去看看 在此,看你是否能找到的bug。 我会给你一个提示。 它是介于该for循环。 Mmhmm​​? 

学生:应小于等于2。 

艾里逊:所以它可能比小于或 等于2,或者它可以是小于3。 和有什么理由是什么? 

学生:[听不清],0,1,2。 

艾里逊:没错。 因此,在大小为​​n的阵列,我们 只有有n个减1的指数。 凉爽。 然后我们就可以得到真正的疯狂 并获得多维数组。 其中的一个问题,当我把它我 一年所需的多维数组, 而且我认为他们中的一个可能需要 就在今年,这样很舒服。 包装你的头左右,现在。 它会回来困扰 你,但在冷静的方式。 这样你就可以真的只是想 多维数组的 作为数组的数组。 所以,你可以种觉得这顶 行作为存储器的第一个块。 而这一次是 内存第二块, 和最后一行的 内存三大块。 和范围内的,有一个阵列。 不过,当然,它更容易 描绘这样。 

所以,你初始化它以同样的方式。 这是一个字符 三名由三种。 所以,你有三排 和三列。 我们表示这样的看法。 而你能访问它 相同的方式,由排列。 所以1,1我们在这里看到。 我们分配一个零,零在那里。 2,0和0,2。 所以你只需访问them--如果 任何人的做过线性代数, 访问中的元件以相同的方式 一个矩阵的计算,它在这里同样的想法。 这样你就可以与回数学。 你也不必太担心 很多关于这个现在。 这是件好事,曝光, 要知道你可以做到这一点。 你可以创建一些 疯狂number--可以 打造疯狂阵列的 所有我要说的话。 [听不清] 它变得有点疯狂, 但它真的很酷。 真棒。 

然后,让我们有一个例子来说明。 它可以计算一个字符串的长度。 那么有多少人知道, 您正在使用的字符串 是字符数组只? 好吧,是的。 所以你们可能会认为你没有 使用数组,但是以往任何时候 您在使用的GetString CSView库,你 其实只是要求 字符数组。 我们正在照顾所有的 在后端为您服务。 但你使用过 数组,因为你开始。 你只是不知道它。 

而只要你有一个字符数组 或数组的存储字符串 过去的事情永远是什么 叫一个空终止,这 这是在这里。 那就是在结束时 每次你存储字。 因此,如果我们想弄清楚的 字符串的长度,我们可以说, 嗯,你知道, 该块的内容 不等于我们的空终止。 这意味着,有一些 性格有我们实际上是 关心那是字的一部分。 你增加的长度。 然后,当我们真正去 这个词的结尾,它会终止 它会回报我们的长度我们。 Mmhmm​​? 

学生:请问空间 算不算空终止? 艾里逊:那么一个空间 不是一个空终止。 所以,如果你有multiple--空间 实际上是一个特定的ASCII值。 学生:什么是 再次感叹平等? ALLISON:所以,这就是您参考。 如果你听到我在办公时间内, 我总是把它一样,砰等于。 因此,爆炸没有。 因此,这是不是等于。 所以,如果你想 看看什么是假的, 你知道总是这样,什么爆炸 变量是,如果它是假的, 它的计算结果为true并 可以做很酷的东西这一点。 后来更多。 凉爽。 一切都很好吗? 真棒。 

所以,现在这是你的男人“的时间 工作,因为我一直在谈论。 所以,我希望你只是创建一个数组 与整数1,2,和3, 然后让他们打印出来。 你不必做的一样, 主,等等,等等,等等,等等。 我只是想让你初始化 数组,然后创建 一个for循环打印出来out-- 或while循环,给你。 

我只给你一对夫妇 分上工作了。 我要休息我的声​​音。 如果您有任何问题,我很高兴 要过来和你说话的家伙。 随时与对方交谈。 获得更多的糖果。 其实,我只是 走动糖果。 怎么样? 

你愿意购买吗? 任何人在这个房间要糖果? 您也可以不止一个,伙计们。 抓了一把,如果你想要的。 不妨。 其他人都好? 行。 

另外,我要创造 匿名谷歌的形式, 并且你们可以只提交 每一段后反馈 如果有什么东西要 改善后或者是你想要完成的。 如果我是一个有点太强力的 为了你,我可以调下来。 我将创建并发送 出来大家算账。 

行。 因此,让我们从小事做起。 如何将我们初始化我们的数组? 什么是我们的阵列的类型? 一个int,不是吗? 好了,你想要做什么 打电话给你的数组? int数组,很酷。 好吧,让我们有整型int数组 等于,之后,我们有什么? 学生:[听不清]括号中。 艾里逊:括号。 然后在大括号内? 一个逗号2逗号三种。 凉爽。 所以这是所有权利。 所以,现在我们有我们的for循环。 所以在第一部分我们的 for循环,我们有什么? 

学生:我等于0? 

艾里逊:那么INT i等于0, 然后呢,是我们的条件? 什么是我要小于? 不到三年,并 我们怎么做,我们更新吗? 我加上加,由一个更新它。 然后我们将有 一些printf的整数中, 什么是最后一个 一部分实际上 会说什么,我们应该打印? 这将是的名称 数组,数据类型为int的数组,对不对? 和什么在int数组的括号? 我。 [?所以,我?]叫我 例如,但你去那里。 没有那么糟糕。 大家好? 凉爽。 

因此,我们用数组实现。 恭喜。 你设法迭代 通过所有the--是吗? 

学生:[听不清] 

艾里逊:是的。 

学生:我有一个问题。 你应该缩进括号? 

艾里逊:那么大括号应该排队 用for循环,然后一切 里面的大括号应缩进。 

学生:OK,应 for循环被缩进? 

艾里逊:for循环不 需要在这一点上缩进。 如果你是主,如果我们 实际上有一个main函数在这里, 它会从主缩进。 但在这种情况下,它的罚款。 是的,问题。 

学生:你需要有 括号的例子呢? 

ALLISON:是的,如果你是 初始化这种方式。 所以请记住,这是第二次 初始化数组,其中的方法 我们有括号,然后我们的实际 数据通过在逗号分隔。 

学生:我想有 括号内为例子。 

艾里逊:不,他们是大括号。 他们是大括号。 如果你正在初始化它 这第二种方法,它的括号。 如果我们说,INT example--如果 我们只是想要一个空白数组int类型, 这将是int例如括号三种。 括号表示的大小。 当你有括号, 它的实际数据 你把它变成这样。 我们可以回滚真快。 

所以在这一块,这只是我们 最初的数组,初始化。 在这里,我们是单独 点分配给他们, 所以这代表的索引我们 数组,这就是为什么我们有括号。 但在这里,如果你注意到,我们已经 离开我们没有括号的尺寸, 我们用它进行初始化 实际数据的所有功能于一身的大括号。 学生:那么,我们为什么不有 括号中的这个例子吗? ALLISON:那么,在哪一部分? 学生:会不会我们 比方说,INT例如支架 等于括号[听不清] 括号内为例子。 

ALLISON:哦,对不起。 你说得对。 我们确实有支架存在。 对不起你们,是我不好。 是的,你应该有 例如括号后。 你是绝对正确的。 

学生:[听不清]没有这样做。 

艾里逊:不,你必须有 括号,否则它的 不会声明数组。 学生:[听不清]。 我们对此深感抱歉。 

ALLISON:对不起,您需要 例如括号后。 错字。 好抓,金星为您服务。 另外,如果你问一个问题, 你们会告诉我你的名字, 我喜欢这一点。 我很想能 知道所有人的名字。 我不会冷 其实给你打电话,我 不只是想知道你的名字。 所以,请居然告诉我你的名字。 

利亚利亚。 

艾里逊:利亚。 好了,functions--我知道在短暂的 他们的演讲中谈到了这一点。 所以功能是正中下怀 像这样的小一口大小的东西 在这里你传递的投入,一些 神奇的发生了,而你得到的输出。 凉爽。 所以,你实际使用 很多这些了。 获取整型,字符串获取,打印F。 这些是所有功能 在那里你只是给他们打电话, 有很多神奇的事情 在后台正在进行 你不一定看, 你得到了你想要的东西。 或者至少你得到 你希望你想要的。 

和基本的功能点, 和CS的主题之一, 就是要打破你的代码 成可管理的片段。 当你开始写 这些很长的程序, 或划痕,当你有 对于游戏这个伟大的思想, 您需要能够打破它 下来一样,OK,我怎么开始? 什么是小件,我需要什么? 哦,我要问的 用户的东西。 现在我需要打印的东西。 哦,我需要计算这个值。 

并学习如何分手的 码和大问题,你 有进入这些小块 和创建功能 实际上是一个 CS大基石。 所以,你能想到的只是作为一个功能 就像一个黑盒子,一个神奇的黑盒子, 你把东西放进 你会得到一些输出。 和该程序的其余部分 不需要一定知道 这是怎么回事内的黑盒子。 它所关心的是什么 进去和出来的东西。 凉爽。 

那么,为什么功能呢? Organization--正如我所说,当你 处理非常大的代码库, 你如何组织你的代码会 如果您使用的功能要容易得多。 因为你可以 要一样,确定这一点, 就是这个函数和 这里是另外一个人做。 而且你可以很容易地看到 它们是如何结合在一起的。 因此,将其分成各 这些可管理的子部分。 

所以simplification--我敢肯定你们 都看到了这一点,正如我所说,有划痕。 你有这样的宏伟构想,并 你喜欢,怎么做这些工作? 但是,如果你接近它 零零碎碎,你说好不好, 我怎么做一个精灵 漂浮在屏幕上? 这是一个有点容易。 因此,良好的使用功能,使 你的代码更易于阅读。 这使得它更容易调试,为 你进入你以后的习题集, 你要真 希望能够做到的。 而且他们也更容易 设计和实施。 您可以编写了一个小 功能比较快 并确保它的工作原理与尝试 创造这整个漫长的程序 然后种经历和 看看有什么工作,什么不是。 

然后可重用性。 所以功能只需要 写一次, 然后,你可以使用它们 多次越好。 所以它的一样,生态友好的感觉。 如果你有喜​​欢的东西 打印f,其中您 只好写出来的那张魔法 背后印F中的任意一个时间 你想打印的东西,你 将是非常厌倦了它 由端。 

其中一件事,你会 学会在以后的CS类, 还是其中的佼佼者 咨询件我得到 是,如果你是复制和粘贴 代码,它应该是一个函数。 如果您有相同的 所有的线条贯穿你的代码, 如果你分解出来, 你的代码可能会 是一样,5倍短 并且更加容易阅读。 而不是试图解决 所有这些不同地方的东西 可能会出问题,你有一个函数 您得到解决。 我保证,很多这种 似乎是一种抽象的现在, 但是当你进入后 后来习题集, 它会让很多更有意义 而真正被赶回家。 有没有问题 有关功能如何呢? 为什么我们要使用它们? 我知道我们还没有得到 进入细节问题呢。 所以定义就像function-- 数组,我们需要of--这某种 仅仅是个通用输出。 因此,这是一个函数,它是 只是要立方体一些输入。 而接下来的页面上,实际上,我们有 所有这些真棒这里的小东西。 因此,每个人都可以读 即,出于好奇? 我知道紫色和黑色 可能会有点辛苦。 

但大的事情知道 - 所以第一 1这里是我们的返回类型。 因此,这是讲的输出 这个功能的时候,在这种情况下, 我们把一些数字,就是我们 得到的是立方数。 所以,它应该是在这种情况下,一个int。 也许这将是一张双人床或 别的以后,但在这种情况下, 这是一个int。 

用C,你总是需要一个返回类型。 这将是一个int。 这将是一个浮动。 这将是一个双。 但你必须指定哪些 这个函数会返回。 否则会骂 你,它不会编译。 你会难过,我会很伤心的。 它只是不好。 行。 

然后,我们有我们的函数名。 正如你可以在这里看到,用c 有这非常符合范式。 什么是你喜欢的类型,叫什么名字, 然后在年底一些其他的东西。 因此,我们有我们的返回类型, 我们的函数名,然后 我们有我们的头与 我们的参数列表。 

因此,参数列表,什么是 此功能会采取? 参数列表是一个简单的 代名词,什么是我们的投入? 并以同样的方式,我们 必须确定我们的函数 并给它一回 类型,我们每一个输入 需要有与它相关联的类型。 因此,我们知道我们的功能 其实可以一起工作。 

所以在这种情况下,我们有一些整数的输入。 如此反复,这将是该型 和你要调用它。 然后,当你看到 在这里,我们有我们的身体。 因此,我们有一些INT输出,即 只是我们投入时间本身 时间本身,它只是立方体它。 然后我们返回输出。 

所以,当你看到这里,我们有一个 诠释时代一个int次一个int, 所以它返回一个int,这 已申报存在。 所以,一切都凝聚力。 一切的快乐。 你的函数将运行。 而这仅仅是普通的事情。 所以,总有返回类型, 的名字,你的参数列表。 在每一件事情你 参数列表,或输入, 需要有与它相关联的类型。 然后你有你的 机身这里什么 你想与你的输入。 

然后显然你 想回到什么。 有时候功能将只返回。 它们实际上并不返回 东西供你使用。 但你必须以某种方式返回。 当你正在做 自己的函数, 我们可以进入一个更深一点。 就个人而言,如果你愿意,也有很多 不同的东西,你可以在那里做。 大家好? 什么这个列表,你要我上 走了过来,说你不明白? 每个人都很好吗? 凉爽。 真棒。 

好了,我们正在把 现在这一切都在一起。 因此,我们有一些整型立方体输入,因此 这是这里一个完整的程序。 到现在为止,我已经 种了给你 球员片段,可能 在程序中去。 我们刚刚一直在寻找的功能。 但这里有一个完整的计划。 所以,你们有多少人还记得 从演讲词的原型? 凉爽。 我们已经得到了一个。 你叫什么名字? 

斯蒂芬:斯蒂芬。 

艾里逊:斯蒂芬? OK,真棒。 所以,你还记得什么是原型? 

学生:你说[听不清] 在你真正对付它。 

艾里逊:你还记得,为什么? 

学生:没有。 

艾里逊:OK。 金名将。 所以,是的,一个原型,我们有 事先,因为否则 我们的编译器是要骂我们。 它会说,OK, 这是什么魔方功能? 就像,你从字面上有 告诉我没有谈到这个。 这就像当你 走进教室, 有人的样子, 今天有一个小测验。 和你一样,你 从来没有告诉过我这件事。 我不开心与我们联系。 原型基本上像 您的大纲说,看。 当心。 还有的将是在这一天进行测验。 不要惊慌,当你得到它。 你会好起来的。 

因此,所有的原型确实是告诉 主,我要使用此功能。 我发誓我以后定义它。 不要吓坏了我。 只是编译和做什么,我告诉你。 因此,我们有原型存在 只是为了让我们的编译器高兴。 它基本上是一个承诺 你定义了这个功能以后 那你是不是刚刚打电话 这种随意的事情,它 不知道你在做什么 将要干什么。 

所以在这种情况下,我们有主这里。 我们初始化一些整数x。 这是两人。 我们要打印出x的值。 我们将立方体X。 正如你看到的,我们有我们的 函数声明 到这里,我们 谈到以前。 这将立方体x,然后,如果我们 请记住,立方体函数实际上 返回一个整数 我们,它存储 在X再一次让我们可以打印 出8,或者现在​​立方体X。 这是否有意义大家? 我们是好? 行。 真棒。 

行。 有多少你们的 记住这所以这 基本上是你 栈和堆的, 只是一个可视化 记忆是如何存储在这里。 所以,我们只是想使 确保您了解 如何将这些表示在内存中。 如果你喜欢的类 CS61之类的东西后, 你了解这更 在深度,它真的很酷。 我强烈推荐它。 但现在,我给 你的全面概述 所以你不必 知道的细节问题。 

所以顶端只是一个文本段哪 包含了实际的零和一, 二进制为。 这被用于存储 全局变量,如果您有任何。 当你向下移动,我们 有,因为你在这里看到, 初始化数据,未初始化 数据,然后堆。 

所以,我们真的不说话 关于堆现在。 我们会得到它以后。 现在,我只是要 波我的手,像, 你不需要知道这个了。 但是,我们会聊一点 关于堆栈位。 所以堆栈where--我们有放大研究。 这实际上是如何计划 我们只是看着发生在内存中。 

那么,什么情况是,每 一次,我们调用一个函数, 我们得到了什么叫做栈 帧,这是其中之一。 因此,主要的参数。 因此,这些都是事 我们通过进入主。 于是,他们就在这里的底部, 因为这是我们所说的第一句话。 然后,我们去主要的 当地人说,当我们说, 我们指的是局部变量 存储在主。 因此,当地人在这里会一样, x是在这种情况下等于2。 因为这是定位于主力。 大家是否还记得范围, 去了,在演讲? 行。 所以,仅仅是变量 在主要的初始化。 所以这就是为什么我们有主要的[?主唱。 ?] 

然后在主,我们称之为立方体。 对不对? 因此,我们得到另一个框架 与多维数据集的参数。 所以在这种情况下,立方体的 参数是现在 我们通过在x, 我们通过两个。 然后立方体的当地人,这是 在实际体积测量发生。 然后返回。 

那么,什么情况是如立方体实际上做 什么是应该做的,它返回。 当它返回时,这架离开, 其倒回主。 然后在主,我们 实际上可以打印出来。 因此,当你回来的东西, 当你的函数返回, 它就像传递这些值 它下面的框,然后离开。 和事物有才能执行。 

而当你得到更大的计划, 我们可以做出更酷,更复杂 图。 但现在,这是 只是一般概述 所以你有怎样的 了解什么 当你调用一个函数发生 以及如何实际看起来在内存中。 酷? 大家好? 真棒。 

所以这是一个是 只是想交换的东西。 我们在这里看到,我们有 我们的函数原型 让我们的编译器不骂我们。 我们有一些主要的,而我们 要切换的x和y。 他们没有这样做演示 在演讲的是,有吗? 他们有没有关系? 行。 因此,我们打算去 在这个很简单。 你会惹上这个例子更多 深入,我认为,这个星期。 再接下来的一周,我们才能真正 潜入为什么这是行不通的。 

因此,我们有这个空间 功能这里 - 调剂。 所以虚空只是意味着 不返回任何值。 我们有交换INT A和INT B。 我们有一些暂时的 可变的,这是一个。 一个被分配给B,然后 B被分配到temp 使a和b的 现在值被切换。 

但是,剧情转折,这是行不通的。 而它的一部分实际上有 做的一个事实,即 而B在这里,那获得通过的那些 这里,实际上是x和y的副本。 因此,当该函数实际上返回, 它切换的副本,但不 实际的x和y的。 因此从另一个角度去想它是 that--假装这些都是掉。 行? 所以在主,我们有x和y初始化。 但是,当我们真正去了 与交换这些帧 我们在传递的值 它,他们正在初始化。 

他们永远只能住在这里。 因此,A和B住在这里。 他们被换。 但是,当我们返回时,我们不 做与a和b什​​么。一 和b离开我们的功能。 所以x和y保持不变。 你会得到更多的进入如何解决和 我们如何真正与处理后。 

但它只是一件事 以种牢记。 使用它的未来。 如果没有做别担心 所有的意义世界。 他们是拷贝是最重要的事情。 如果你要带什么 离,你传入副本。 所以原稿保持不变。 大家好? 凉爽。 

因此,命令行参数。 我敢肯定,在开始的时候你们都 有那些伟大一样,INT主要空隙。 和你一样,好凉爽。 我真的不关心。 这正是我写的。 但是,在你的新计划, 特别是在这个pset中, 为什么有粉笔在地上? 

随着你的下一个PSET,你 将要看到这一点。 INT为主,诠释ARG C, 弦弧V,支架。 所以,从我们刚才 今天学什么 我们认为,第二个参数 或者说第二个元素是在这里? 这是一个数组。 什么类型的数组? String数组,是的。 凉爽。 这就是你如何去 现在要宣布这些。 

有谁还记得 这些东西代表什么? 不是吗? 嗯? 

学生:ARG温度。 

艾里逊:那么ARGç保持一个计数器。 这是一个int。 这是一个数字,对不对? 那么,你认为这个数字呢? 是啊。 所以,ARG c是弦数 构成该命令行。 所以,如果我们要真正do--, 有例子在此之后, 所以我不会提前拿到自己。 这是一个数字的字符串是 只是让你的命令行。 

所以,当你做一样,点斜线马里奥, 这是一根弦,使得它了。 在这一块,你实际上是 喂东西进入命令行, 我敢肯定,你们谁 看过规格锯。 因此,在这种情况下,也许你会 有两个或三个参数。 这将是一个有用的东西来使用。 

然后ARG V,正如我们所说, 只是一个字符串数组。 使实际存储是什么 您输入到命令行。 因此,我们有这些。 你有一些点斜杠 复制INFILE OUTFILE。 所以,如果精氨酸c是字符串数 我们正在传递到命令 行,有什么是我们ARG c。在这种情况下? 三。 没错。 

那么什么是零ARG V? 那么,什么是我们所存储的第一件事? 点斜线副本,没错。 然后第二个是INFILE。 第三个是OUTFILE。 那么,关于精氨酸V 3? 这将是空的,因为这是 我们的数组的结尾,对不对? 凉爽。 

然后怎么样第六个? 这是种一个有趣的问题。 伊什。 我们知道它是什么? 这是不确定的。 我们不知道,可能是。 这是什么是正确的 在存储器阵列后, 我们不知道那是什么。 和它的危险去触摸那些 的事情,因为你知道, 它是内存的一部分,你 不应该访问或空。 它可以做疯狂的事情。 这就是所谓的过度索引 您绑定到您的阵列。 不要去的边界之外的 数组,或者坏的事情都可能发生。 你回来一样,法律 物理学已被销毁 什么的。 凉爽。 这是否有意义大家? 差不太多。 

所以,现在,大家的 最喜欢的部分,PSET审查。 耶! 行。 因此,对于那些你们谁 没有看过的pset规范, 你正在做一些真正 凉的东西与密码。 你要创建一个凯撒 密码和V @ genere加密。 你一定要读 SPEC怎么看这些作品。 如果你有任何麻烦 它实际上应该做的, 请你跟我说话, 给我发电子邮件或短信我。 我在周围。 

因此,主要有三个 这里的东西,我们 要谈about--正中下怀 的演讲的延伸。 东西,你可能不知道 约,有用的提示和工具。 所以,我们要做一个 快速审查ASCII的, 因为这将是超 重要的V @ genere的密码。 我们要转换 命令行输入, 将是恺撒密码非常有帮助。 然后取模。 凉爽。 

因此,ASCII字符映射到数字。 这是一个伟大的图表。 你应该有这 地方添加书签。 你会想它 你的第一个中期。 我敢肯定每个人都有这种 图表上的中期板。 所以,学习它。 爱它。 备在手边。 这将是有益的。 

和所有它是是一种编码 映射字母,数字, 和其他字符 数字对我们的电脑。 因为,当然,在 最后,我们的一切存储 是会得到转换 下降到零和一, 所以我们需要一些方法来表示 文本和字符,我们都是 看惯了的某种数量。 

所以,我们在这里看到,我们有 大写字母A,这是在那里。 这是65岁。 和小写字母A是97。 所以,你自己看着办out-- 正如我刚才所说, 如果你有多个阵列 字符串,他们每个人 有一个空终止。 这将是一个空间。 空间有自己special-- 我忘记了它是在这里。 啊。 图32是空间。 所以一切都映射到它。 

因此,我们有ASCII数学。 临tip--中的V @ genere的, 你可能受到诱惑 您的数字转换成整数, 但它实际上是更好的做法 能够使用 这样的人物 当你真正操纵他们。 所以,如果你想使用的数字,就可以了。 但更好的方法,或者一种方式, 我们往往喜欢你们这样做, 就是这样,你是 实际上减去字符。 

所以我想,你们来 种计算这些的。 你为什么不尝试每隔一个? 所以做第一个, 第三个和第五个1。 因为我想确保我们讨论 一切,我们需要谈谈。 我只是想说,之一 重要的事情to--哦,等等, 你们还没有看到这一点。 确定这样做前三。 让我们做到这一点。 因为我们要谈的模。 我知道。 数学是很难的。 您可以使用计算器。 没关系。 或拉了一个ASCII表,因为 你可能会想的。 

凉爽。 所以,我会很快走 您完成这些家伙。 因此,人们ASCII表拉升? 什么是我们的数字 数小写​​? 学生:七。 

艾里逊:那么小写字母A是 97和大写字母A是65。 所以97减65? 

听众:32? 

ALLISON:62,是的。 所以在这种情况下,什么 将它打印出来? 这第一次? 如果我们有百分之D, 那能说明什么? 学生:一个数字。 艾里逊:我们正在打印 出的实数。 所以,我们实际上会 在这里打印出32。 如果这是百分之C, 32会给我们一个空间。 这么理解的 字符可以被打印 这两个数字和为 实际字符 是非常重要的,和支付 注意实际的类型 我们在这里所做的。 凉爽。 所以对于这些每隔1, 什么是我们将要打印? 

学生:一个字符。 

艾里逊:一个字符。 凉爽。 所以,如果你们想知道,你 可以工作,这些在你自己。 如果您遇到问题,给我发电子邮件。 但是,第二个会 打印出一个小写的B。 第三个会打印出一个 大写字母B.第四个将打印 出一个大写的C,而 最后一个将是一个小写A. 最后埃德蒙顿我们实际上会 要进什么疯狂的百分比 标志甚至意味着一对夫妇的幻灯片。 因此,尝试那些你自己。 如果你有麻烦, 请你跟我说话。 如果你通常在亚当斯D厅, 你可能会发现我身边。 

所以,ATOI。 你们有多少人看到了这 功能或听说过呢? 任何人吗? 凉爽。 那么,它实际上代表 对于是ASCII为整数。 所以,你可以做的是,凯撒, 对于那些谁读的规格, 你要做点斜线撒 之后,你写你的程序, 然后你要 输入一些数字,你 想你的秘密消息进行编码。 

但是,如果我们还记得,我们所有的 输入被存储为字符串。 对不对? 我们有一个ARG V阵列 这是所有类型的字符串。 所以,如果你只是尝试 拉那一个,它会 认为一个或任何数量 你使用的实际上是一个字符。 所以,你会得到 一些疯狂的结果。 所以,如果你真的想 把它变成一个整数 你可以用它来操纵 你的话或你的消息, 你想用ATOI。 ATOI只是转换 您的字符串转换为int。 

所以,如果我们有12的字符串,如果我们调用 ATOI月12日,或任何的输入, 它实际上将返回 你的整数。 不是字符或字符串12。 其中,当你开始 要补充的是,以数字, 会有很大的不同, 因为字符串12是 在一些疯狂的数字 ASCII码,而整数12 实际上是12,这是你想要的。 所以,你要确保使用ATOI。 

你会想这个 在恺撒,因为你 需要通过提供的INT 用户在命令行中。 但是,当他们把它的命令 线,它是作为字符串存储 开始。 这是否有道理? 你不一定 需要这个的V @ genere。 用的V @ genere,正如我所说 之前,你应该尝试使用 ASCII数学,看起来更像是 这一点,在那里你实际上 使用我们提供给您的字符。 凉爽。 每个人都很好吗? 真棒。 

所以模。 所以,如果你正在考虑 这个庞大的数字凯撒? 你有这样的想法, 如果你在Z和你 给定一个数字2, 这意味着你need-- ž成为第二 经过自己的信,对不对? 所以,你需要以某种方式环绕, 和模是做到这一点的方法。 因此,它是所有这 给你剩下 的师 由第二首数。 我们有一些例子, 做出一点更具体。 但基本上,你用模时 想让周围的东西包裹。 

所以,如果你只想要 数字一到八人, 你可以在任何其他使用模 号,它会永远 返回一个数从零到8。 因此,一些examples--如果 我们有55模数10, 它只是给你的剩余 55除以10,这将是5。 然后3模5, 有人猜是什么,这将是? 三。 

所以,如果你面前有一个较小的数字 模,它不能进去均匀。 这是零。 所以它只是返回数字本身。 所以8模8会是什么? 

学生:零。 

艾里逊:零。 因为它会在均匀。 16模15? 

听众:一。 

艾里逊:酷。 然后这最后一个是刚 展示你 - 你可能会想,好吧, 什么是这里的操作顺序? 难道我们把第一个? 我们做的第一模? 所以模持有相同的优先级 作为部门或乘法, 和它的左结合。 所以它以同样的方式。 你总是做括号, 那么乘法,除法, 和模数,以便从左至右。 因此,标准的规则。 只要把它同日而语 作为除法和乘法。 

所以在这种情况下,我们将 有1加2给了我们3。 我们乘上2,这样我们就得到6。 我们的模2,这给我们吗? 

学生:0。 

艾里逊:0。 然后我们加2,所以我们 获得2在后一种情况下。 所以modulo--你肯定会 要考虑如何把 当你的包裹 周围的字母表。 如果你在Z和你需要移动 转发三个空格才能到C, 还有的认为整个概念 的缠绕。 所以我会离开它 你们要弄清楚 究竟你要使用它。 但绝对是一个很有用的工具 本周你的pset。 我真的很喜欢这一点。 这是我最喜欢的pset之一。 然后,你这样做之后, 如果你有朋友, 你可以一样,互送的秘密 消息并确保它的工作原理。 因为它会对其进行解密或什么的。 很多的乐趣。 

而且是部分的末尾。 我很早就完成了。 我还有15分钟 你们这些家伙,所以如果有什么事, 你想投奔 另外,我很乐意这样做。 任何其他问题 您PSET对于那些你 谁已开始或读取规格。 凡是我们已经谈 约在最后一小时 15分钟,你会喜欢我 以一种老调重弹,我很乐意。 或者,我们可以调用它退出,你可以 所有休假,采取更加糖果与你 当您去。 但是,如果有任何挥之不去 问题,请让我知道。 您也可以上来, 跟我算账。 我发誓我不咬。 还要别的吗? 大家的好? 就像每个人的感觉 他们可以处理这个PSET? 你会好起来的家伙。 办公时间是有原因的。 凉爽。 好吧。 

那么,在这种情况下,谢谢 大家的光临。 我希望看到你下周。 将会有更多的糖果。 可能还有其他很酷的事情。 我期待着得到 要知道你们今年。