[音乐播放] 扬声器1:好吧,大家好。 欢迎您与我最后一节。 它已经相当的学期。 我不能相信这是一样, 第12周或11,类似的东西。 但是,因为它是我们最后的 节中,我们有很多的糖果。 我要去尝试和 预习,你我都一样, 可以为您的测验上周三。 所以可能不是最好的办法, 象,端部与测验审查。 但我们会尽力使之有趣。 而且总是有糖果。 所以希望,这将使它更好。 您的测验将是非常 同样的事情作为测验零。 这将是 格式相同,长度相同。 你会在房间散落 在校园,因为那里 接近你900,我们不能 在房间像这一切抱着你。 所以一定要看看所有的 测验一个文档 网上cs50.harvard.edu 今晚或明天晚上。 确保你知道你 去,你需要带上。 真的,你只需要带上自己 和一支铅笔,你应该罚款。 这些问题将是 大同小异。 很可能会发生一对夫妇 选择题,一对夫妇简短的回答, 一些编码,也许有些真/假, 匹配各种各样的事情。 所以,你不应该太 由格式惊讶。 又有什么可奇怪的是 长度,这在往年, 一直要长得多。 在我的本命年,我没有一个朋友 我记得在完成考试。 有多个像 页留空。 这样的长度可 那种迷失方向的 只是因为在某些年份,它有 已经比测验一个长得多。 我不知道那是什么 要像今年, 但它的东西要注意的。 此外,该 difficulty--人们往往 找到一个测验更 难度比测验零。 再次,你知道,如果 那种你走 出来感觉有点不安,因为 你没有这样做,以及你想 你或者你觉得你没 这样做,以及你做了一个测验, 记住,有可能是一个 其他很多人感觉这样的。 我肯定是那些人之一。 测验1一样,把我一个循环。 和我的朋友有这个伟大的 他们在JP舔图片 这些庞大的种 圣代,是喜欢,测验一, 并期待像他们在流泪。 所以这是一个一般的感觉。 这是一个严峻的考验,这是一个艰难的测验。 很显然,如果你来了,你 感觉你震撼吧,为你的伟大。 但是要知道,你可能不是 - 你几乎绝对不是 孤独,如果你走了样的感觉, 嗯,也许可以变得更好。 它太硬。 嗯。 听众:有多少是值得 相对于[听不清]? 扬声器1:这是值得的一样。 是啊。 但同样,它也将是 受类如何其余 确实,你怎么不节, 你是如何随着时间的推移改善。 分级是一个黑盒子一点点。 那么什么实际数量 或百分比你 不一定直接喜欢 与分级呈正相关 你会得到的。 有很多的 即进入它的因素。 所以这样,我们要去 通过一些测验审查。 我只是要运行这个 就像最后一次你们。 我有所有的答案 考考最后一个年度。 所以,如果你们想拉 那在您自己的电脑, 如果你已经采取了这一考试 之前,你有问题, 我在想我们能 只是通过一些 的更困难的问题上。 所以我们可以谈论它,也许 得到多一点见识 到后面的一些直觉 这些问题,如何处理它们。 还有,像上次一样, 我有一个100张幻灯片甲板 有基本上都 幻灯片,我 已经准备好以前 自上次quiz--我路段 在这甲板上。 所以我们可以通过 几乎任何东西 我们已经谈过 事先,也许你 希望在多一点澄清。 我们能做到这一点首先。 但除此之外,我超级 幸福只是一种工作, 通过这些问题与您联系。 而且我真的在这里 专注于你们的想法 将是最重要的关注。 喜欢,很明显,所有的 这东西是很重要的。 特别是我们通过测验一, 我一定会指出之类的东西, 哦,这可能是什么 你真的想知道 或者你想对你的备忘单。 我会告诉你的事情 因为我们种经历。 所以,关于这一点,还有什么东西 那你们想去过? 另外,如果我没有在我的甲板上, 我们可以拉起来的东西在网络上, 或者我们可以尝试做 向上对飞的一个例子。 但任何概念,你 人是一个有点模糊。 [?布莱恩?]你have-- 听众:哦,是吗累计? 喜欢,是对测验的东西 零点将要放在这里? 扬声器1:这是累积的, 但它更 强调的东西 自上次测验。 所以,很显然,你们有 了解变量和循环, 和条件。 它不像那些刚 走开,因为他们是 显然固有的一切 否则,我们现在所学到的。 有可能是一个问题 上的排序,或有 可能是一个问题 在不同的搜索。 或有可能是一对夫妇 上或许真的问题,你 不得不与编译 或不同的错误。 但是,如果你已经看了 测验一个从去年开始, 你会发现,这是 非常专注的事情 已经发生了自上次测验了。 为什么那个门总是上锁? 这真的令我烦恼。 因为我总是试图去通过它。 所以这是非常 如何测验会。 那么,有没有什么概念, 你们想去了? 或者我们可以直接进入 只看一个测验 从去年种去 通过实践的问题在那里。 我们还可以来回切换。 这不是事情一次性的排序。 有问题吗? 是。 听众:请问一个 关于another--问题 SPEAKER 1:另外一个? 听众:这是又一年。 扬声器1:是啊。 我们还可以做一年。 听众:OK。 因此,2011年。 SPEAKER 1:2011。 哦,这是今年我面前。 让我拉这件事。 观众:我觉得。 SPEAKER 1:此方面 比扔我。 听众:11和12。 扬声器1:11和12。 好不好。 那么,在这里,我们为什么不这样做呢? 你guys--大家只取一对夫妇 分钟翻阅测验。 我们会造册。 然后我们会去通过他们。 行? 虽然我得到了一堆 这个东西建立起来。 好不好。 我只是会写 东西写在纸上。 2011年,11和12? 我只是要改变此显示。 好不好。 这是更好的。 这种过度。 行。 任何人有任何的 他们想入手? 此外,忘了说了,如果你想要更多 的一群人谈论你 ,只是给你一个裂缝 当然,在过去的六个星期, 我们运行的是检讨 会议从上午7:00 到今晚8时30分在西北 B103,这也正好 最后一次,在那里它会 是我,汉娜,Daven,用加布 种和Rob从帮助 只是那种扔场边所有 信息,你可能 希望对你的备忘单, 斜线,知道一般有。 听众:这也是在网上,对吧? 扬声器1:这也是在网上。 所以你也可以留这一点 恶心的天气,去你宿舍, 和实时数据流,如果你愿意的话。 我敢肯定,很多的 people--我知道我会 可以这样做,如果我是你的鞋子。 好不好。 那么,为什么我们不开始with-- 而你guys--希望, 你翻翻。 如果不是这样,我可能刚开始工作 通过测验一个不同的事情 从去年开始,除非你 有具体的问题。 我们将开始与这 问题在这里对堆栈。 所以,每个人都记得 什么样的一个堆栈? 我们如何往往to--任何人都可以随便给 箱堆叠的一般描述? A型的数据结构。 好不好。 所以,它是一个 数据结构,我们 希望你能熟悉with--像 栈,数组,队列,等等。 是。 观众:像第一 在先进后出的东西。 SPEAKER 1:它是先入后出。 没错。 所以堆栈是完全 我们倾向于认为 什么时候我们认为 一叠东西。 这样的堆叠板。 你放下第一板 将是在底部, 而这将是最后一次 一个,你去掉底。 因为它们叠加起来。 你把一走出底部, 通常情况下,东西崩溃,并打破。 所以栈你能想到的 就像一叠板。 或例子中,我们总是喜欢用 是在D厅,你有托盘, 他们都堆积起来, 你需要从顶部。 所以中的最后一个是第一个出。 好不好。 所以在这里的情况,我们 看看我们have--我不知道 如果我能真正放大一点点。 因此,我们有这个结构在​​这里。 对不对? 所以,你有一些结构有 一些诠释能力的数字。 那我们认为它代表? 这是与尺寸的容纳阵列。 所以这真的代表 我们一般堆栈。 我们的堆栈是真的只是一个 阵列与一些集数 这是它的最大值,也就是说,它的容量。 然后我们有一些整数大小,这 会跟踪我们的堆栈的大小 在整个过程中 当我们使用它。 好不好? 在这种情况下,就在这里,我们说,我们的 堆栈大小已被初始化为0。 因此,我们有一个空栈现在。 然后我们要完成 流行的执行 使得它返回整型在顶部。 然后,如果它是空的, 它返回负1。 好不好? 所以我想你们只是想 什么,我们会在那里做。 什么可能是第一个 事情我们会想检查? 这里有一个伟大的事情。 每当says--如果有过一些 if语句,如“如果堆栈是空的,” 或者“如果这个返回null”,或者 “如果这是什么” - 对不起。 听众:写一个If语句。 扬声器1:没错。 你可以写一个If语句。 而这可能是一个 你想第一件事情检查。 好不好。 当他们给你 有点像一个角落的情况下 就是这样,这就是典型的 的第一件事情之一 你要检查你的代码。 此外,东西 认识到测验 是,如果你有一个低效的方式 做一些事情,把它写下来。 因为我们没有分级 你设计,我们 分级您的正确性测验。 所以,即使你知道,这是一个超级 糟糕的方式做一些事情,但它的工作原理, 把它写下来,好不好? 从字面上看,我已经看到了孩子们最后year-- 如果你看看去年的之一, 他们喜欢,做马里奥金字塔。 他们从字面上只是做了“打印, 哈希,打印,哈希,哈希,打印,哈希, 哈希散列。“ 但它是正确的。 它是我们告诉它, 所以你不能拿分了。 如果你到了 电线,很明显,你 想要得到一个更好的解决方案,并 更优雅的解决方案可能会 更少的代码,这意味着你可能 有被正确的机会较高。 但是,如果你喜欢,你就知道 什么,不,我没有时间,我 知道这是一个解决方案, 这是不是最好的,写吧。 你甚至可以写上 身边,我知道这是可怕的, 但我知道它的工作原理。 因此,只要抬头。 好不好。 所以,很显然,第一件事 是这样的if语句。 那我们认为这如果 声明将是? 而实际上,让我开 我的伟大崇高的编辑。 我要这个代码,然后 展示你们的时候,它的完成。 所以,诠释流行。 好不好。 因此,如果我们有这样的整数 流行void--如此明显, 这是一些函数,它在 什么,返回一个整数,对不对? 所以它只是要说说 该堆栈,我们已经创建。 所以只是翻译最后 一句话,“如果堆栈是空的, 流行音乐应该返回负 1,“怎么可能,我们做到这一点? 所以,如果有什么? 我们怎么知道堆栈是空的? 这只是大小等于0。 Stack.size等于0。 另外,我也有种盲目的写在这里。 所以,如果我做任何typos--哦, 还忘了提到这一点。 上周,我完全想通了 正是我们的问题是使用JavaScript。 不要利用我 和D.你应该只 利用我和id来获取元素。 而这是整个错误。 所以,如果你们回去 实际上去翻我的代码, 如果你只是让一切一 小写字母D,“凭身份证忘元素” 它会奏效。 所以,我答应了,我非常接近。 我只是资本的东西 我是不应该,这 我敢肯定,你们必须在你的最后PSET。 所以,如果我们的大小等于0, 那么,我们应该怎么办? 听众:返回负1。 SPEAKER 1:返回负1。 酷。 所以,现在我们该怎么办? 我们要弹出的东西了。 现在,这种情况 我们有一些东西。 我们的大小大于1 或大于0,对不对? 实际上,我们有东西在那里。 所以,我们想要做的是,我们 想在这里回归。 我们会说我们要 返回堆栈的顶部。 好不好? 那么我们怎样才能做到这一点? 我们如何返回堆栈顶部? 请记住,我们的堆栈 只是一个数组,对不对? 它具有一定的能力 我们已经给了它。 正如我们已经把事情on--或实际, 我们要在此之后写上“推”。 如果东西都在那里 - 也许画面会有所帮助。 嗯,我喜欢大粉笔更好。 所以if--,你可以只 认为这是我们的堆栈。 因此,这是0,1,2。 我不知道为什么我的箱子 越来越小。 但也有。 好不好。 因此,这是一些堆栈 容量为5。 让我们说我们有什么 在这里,我们有一些东西在这里。 所以在这一点上,我们的 大小等于什么? 2。 如果我们想弹出 事关它, 这意味着我们想要得到 摆脱这一权利在这里。 好不好? 因此,如何将我们回到这个价值? 听众:大小减去1。 扬声器1:没错。 因此,大小减去1,或者你 可以做大小减去减。 但是,我们不能只是做大小。 这是一个结构里面,对吧? 所以stack.struct。 或stack.size。 这是我们的指数在那里。 好不好? 然后如果我们看一下 回到这里,在我们的结构, 我们注意到,以 实际上访问阵列, 我们需要做的stack.numbers 实际访问该数组。 使返回堆栈的顶部。 但一些that--如果你们看看 在接听键,这是他们所 给你。 所以这是它。 不过,我可能会说,他们是 miss--哦,不是我想要的。 我可能会争辩说,他们是 失去了一些东西,因为 - 是的。 听众:减小尺寸。 扬声器1:没错。 我们现在需要减少我们的规模。 那么,有什么猫腻约 这是一次返回 什么,你的函数的 要退出,对不对? 因此,我们可以做什么是真正 首先降低我们的规模。 然后我们就可以根本stack.size。 我们可以只使用stack.size 因为我们的索引,不能我们? 因为如果stack.size 2,我们减小了。 所以它是1,这 是我们的实际指数之。 一旦我们摆脱这一点,我们实际上 只有在我们的数组的一件事。 所以它确实两者兼而有之。 观众:[听不清]? 扬声器1:那么,在这种情况下, 我们刚刚返回的元素 在该位于顶部我们 大小是在顶部。 但是,我们没有做任何事情来的 规模后,我们删除的元素。 这并没有改变我们的规模还没有。 这实际上不 本质上改变我们的规模。 但要使它成为一个更清晰一点, 你可以做stack.size减减。 对于我来说,这使得它,我不知道, 一个小that--啊更清晰, 那你实际上改变 的大小和返回它。 另一种方法是很好的,因为 你改变并返回 同时。 但是,这只是另一种方式来写 这是我想向你展示的家伙。 这是否有意义? 栈,我想,是 比队列容易得多。 (笑) 好不好。 你有什么具体问题 约11和12,或just-- 观众:我认为这是堆栈。 SPEAKER 1:堆栈大小? 听众:是的。 SPEAKER 1:疑难杂症。 好不好。 是的,你可以做到这一点的 1这两种方式。 好不好。 所以,现在我们有另外一个。 这是很奇怪的,像 不是我的屏幕上有这个。 因此,如果我们看这里,我们现在要 完成推的实施, 这其实是把一些东西,去 并插入一些到我们的队列中, 或者到我们的堆栈。 好不好? 因此,如果我们注意到,我们 有几件事情。 我们有我们的great--如果一切, 只要我们有其中之一, 你们至少应该拿到一半 一个点,因为所有你需要做的 被转换到这一点并且C. 他们给你一半。 因此,“如果一个堆栈已满 或者是负的, 然后按应返回false。“ 好不好? 所以我们只希望积极 整数是我们的堆栈。 行? 而这将任 返回true或false。 因此,我们应当[听不清]布尔。 好不好。 所以翻译。 观众:[听不清]。 扬声器1:哦,谢谢。 是啊。 这就是为什么我有你们。 诠释ñ。 完美。 因为我们正在把 东西到我们的堆栈。 实际上,我们需要一些数字。 好不好。 因此,只要采取这一最后行 他们给了我们,我们种的角落的情况下, 你觉得我们在这里? 很显然,我们将有一些如果。 好不好。 所以我们说,如果我们的堆栈 满,或者如果n是负的。 所以大概最简单的开始 同,所以,如果n小于0 or--记得你好看 AND和OR运算符那里。 如何将我们检查 看看我们的堆栈满了吗? 会发生什么? 听众:大小相等的容量。 扬声器1:没错。 完美。 好不好。 什么做我们想做的事情呢? 观众:返回false。 SPEAKER 1:返回false。 完美。 所以中途出现,对不对? 最起码,你们 将有一半的。 因此,让我们想一想。 所以这是我们先从堆栈。 我们正在努力把 在这里的一些元素。 我们有一个大小, 等于2现在。 我们有一个容量等于5。 让我们说我们有 一些n表示是等于3。 因此,我们需要输入3到这个空间。 我们需要输入成指数2。 对不对? 那么我们怎样才能做到这一点? 试图assign--我们 要访问我们的数组。 所以stack.numbers。 但在什么指数之会 我们希望这是? 观众:[听不清]。 扬声器1:是啊。 Stack.size。 我们希望这等于N,对不对? 观众:[听不清]。 SPEAKER 1:我其实 只看这一点。 我认为这是错误的。 听众:你不想要的 过去的电流大小的空间? 扬声器1:好吧,如果我们看这里, 我们的规模在这一点上是2。 我们希望它进入指数2, 因为这是我们的堆栈的顶部。 所以,我要说,这 应该stack.size, 然后,你会增加stack.size。 每个人都同意吗? 我想,我同意这一点。 你们可以说 和我一起,如果你愿意的话。 或者不争论,但我们可以讨论这个问题。 观众:[听不清]。 SPEAKER 1:嗯,就是它的 因为零索引打开。 如此,而在第一部分中, 我以为他们是错的, 他们实际上是正确的,这 一部分,我倒认为他们错了。 我会说,你应该 绝对输入在这里。 我想我们都同意 我们有2的尺寸。 这正是我们在哪里 希望我们的新号码去。 所以stack.numbers在 stack.size应等于ñ。 然后我们会 递增stack.size。 ++。 然后我们怎么想干什么? 还有,我们必须最后一件事 做,如果我们成功地插入呢? 返回true。 现在你就大功告成了。 所以,我觉得这是整个负 零下stack.size和stack.size ++的 乱七八糟的事情了。 唉。 我keep--我有这个本能 倾向,总是打 控制,S,因为我从来没有 不想失去我的任何工作。 不过,我并不需要现在这样做。 好不好。 所以这是堆栈。 酷。 还有什么? 难道你们找到任何 其他的问题,你会 想从以前的测验去了? 如果没有,我们可以种开始说话 通过测验一个来自去年。 是。 听众:对于第 一部分,我真的不 了解您如何删除的号码。 是不是还在吗? SPEAKER 1:该号码仍然存在。 但是,什么情况是,因为你 告诉它,你的堆栈的顶部 在这里,当你去购买的东西 压入堆栈,它会刚刚取代它。 听众:哦,OK。 扬声器1:是啊。 所以,这就像他忘记它的存在 类型的东西,即使它的存在。 观众:[听不清]或什么吗? SPEAKER 1:第 因为我们是在一个 数组,你没有 担心about--你只 覆盖它,当你需要它。 行。 还有没有其他问题? 如果没有,我们只是去 开始工作通过。 是啊。 听众:嗯,这个人是在2013年, 只是经历了SQL的东西。 SPEAKER 1:SQL? 好不好。 因此,这是26至29。 听众:是的。 扬声器1:OK。 可爱。 让我们这些拉起来。 哦,看看。 难道你们喜欢史蒂夫· 鲍尔默谈,顺便说一下? 这是相当热闹,在我看来。 我爱我每次打开CS50的 部分网站的过程中,它就像,哦, 观看部分。 我很喜欢,毫米。 听众:我们能做到吗? SPEAKER 1:我们将在年底做。 怎么样? 因为我知道你们 一直想。 因此,我们将在年底做。 一个问题。 观众:[听不清]。 扬声器1:这将是一个荟萃部分。 听众:这就像5秒。 听众:真的吗? 听众:这就像20秒。 [插入VOICES] [笑] SPEAKER 1:我喜欢这样 你已经做了 这,这是什么使我快乐。 好不好。 26。 好不好。 其实,我们只是要 现在反映这一点,因为我不能。 这是恼人。 好不好。 现在,我所看到的一切。 可爱。 好不好。 所以,很显然,这应该带回 从[美好的回忆? CSG?]财政部。 你约一半有你现在等级。 另一半我会去 非常非常快的,我保证。 所以,我们有一些SQL表 这是帐户在这里。 也许类似 您的家伙'用户表。 我们有一些数量 这是一个主键 并且表示 12位数的帐号。 和平衡是他们有多少钱。 并且缺省值是100。 他们给他们百美元任何 一次,他们开户。 我希望我的银行这样做。 好不好。 因此,我们希望通过完成架构 指定旁边数量平衡 相应的SQL类型。 那么,什么你们觉得会 有点像你的下意识的反应 对于类型为这两个? 听众:诠释。 SPEAKER 1:int类型。 好不好。 然后换一个平衡点? 小数。 好不好。 所以十进制的权利。 INT接近。 样的大事情是这样的 强调12位数的帐号。 每当我们有东西 这比8位数大, 他们希望你使用大 INT,我认为is-- 听众:是,仅仅SQL? 扬声器1:这是唯一一次我听说 它是SQL--就像使用一个大的整数。 这只是给你一个 小更精确, 确保你不 爆棚式的东西。 说实话,我觉得这 绝对是那些1 它的样子,呵呵, 它的意思的人 谁拥有SQL多一点知识。 我们从来没有说过 大整数你PSET。 因此,这有点像我敢肯定 如果你把INT,这是一半的功劳。 正如我之前说的,也有去 出现一些问题,这只是 意味着你绊倒,所以 不是每个人都得到100。 因为,当然,还有 一些人CS50 谁一直在做这个像 八年来,和你一样, 你在干什么? 但是,是的。 十进制平衡是明显的。 再大的整型数仅仅是因为 的,像,强调12位。 一旦有事情是大胆的,或者它 强调一样,关注它。 我们不这样做,只是因为。 好不好。 因此,“假设银行规定 20美元的月租费上的所有账户。 用什么可以查询银行 从每一个账户中扣除20美元 即使从结果 一些消极的平衡?“ 因此,让我们从简单的开始。 我们有四个主要命令 对于SQL,这是什么? 难道你们还记得四 大的,我告诉你? UPDATE,DELETE,SELECT和INSERT。 完美。 得到它了。 还等什么,我们认为可能 对于这个最有用? 我们are-- UPDATE。 没错。 所以UPDATE,因为我们正在寻找 在已经存在的账户。 所以请记住我们的一般 诸如此类的事情就是更新。 然后会发生什么更新呢? 我们有一些表 我们正在参考。 所以,如果我拉了崇高again-- UPDATE。 因此,这是一个普遍的格式。 因此,我们必须更新表。 然后什么是未来的事情,我们有吗? 你可以做WHERE。 然后,我们在这里有一定的限定。 然后我们有什么下一个? 我们有一些东西SET-- 等于什么。 等等等等等于。 更新等等。 对不对? 所以这是一般般 主意一定更新。 好不好? 因此,让我们开始填补这一 与它应该是什么。 那么,什么表中,我们在谈论什么? 账户。 然后在这种情况下, 什么是真的很酷 是的,我们在谈论具体 我们的帐户内的用户, 还是我们谈论的所有用户? 我们正在谈论的所有用户。 因此,在这种情况下,我们可以只 删除此WHERE预选赛。 在WHERE只有当你想 限制你改变什么。 如果你想改变整个 表中,你可以丢弃。 好不好。 所以,现在我们正处于我们设定的部分。 我们需要什么改变? 听众:平衡。 SPEAKER 1:平衡。 我们要去to--如何 我们要改变的平衡? 我们有20美元的费用,对不对? 零下20。 他们说,这是如果确定 我们有负余额。 所以在这种情况下,你不需要 做任何进一步的错误检查。 好不好? 这简直是​​所有你需要做的。 很酷吧? 好不好。 所以,让我们通过下一个。 “用什么SQL查询可以在 银行取回帐号 其最富有的客户提供 平衡超过一千美元吗?“ 如果您的银行和你最富有的客户 只是那些拥有超过1000美元, 我觉得你 做错了什么。 象,如何在一家银行生存? 喜欢,是兴趣,不太够。 好不好。 有了这样的事情,做什么 您觉得我们的四大功能, 你认为我们会使用? SELECT。 完美。 SELECT。 好不好。 因此,我们选择了一些 标识FROM表。 然后WHERE条件。 所以,当我们经历 这些,我只是去 给你们一个普通进修 对所有这些的一般格式。 因此,我们选择某种 对[?的事情。 ?]在这种情况下, 这将是 通常一些列。 所以在我们的例子中,我们有一些,平衡。 在您的家伙'的情况下,也许 它的ID,姓名,口令。 任何该等列,这是 通常我们正在选择。 所以在这里这种情况下,这 一种柱,有什么标识 是我们从表中拉? 是什么让我们的? 它要求我们为我们的数字,对不对? 该账号。 所以请记住,在这种情况下,仅仅数。 如果你们曾经有过的错误,即 鲜艳的橙色框会出现。 而且当时想,出乎意料 排在一样,等等。 那是因为你叫 你的表错了,对不对? 所以,要确保你 正确地调用列。 因此,从表中,我们的表 是所谓的帐户。 再次,要确保你 正确引用您的餐桌。 然后什么是我们的条件吗? 我们寻找什么样的? 我们希望有钱的人。 是。 所以,平衡大于1000。 你去那里。 这是您的查询。 不是太糟糕了,对不对? 好不好。 所以,现在我们的最后一个。 有了这一点,我们通过微风。 好不好。 所以现在“有什么可以查询 银行接近,即删除“ - 你不爱他们如何 只是给了你DELETE-- “有0平衡每一个账户?” 我想我们都同意我们 可能会被使用DELETE。 我欢迎采取任何 周围的讨论。 但我认为这是相当安全的, 说我们可以使用DELETE。 所以我们要删除一些 用户表,WHERE条件。 所以同一类的SELECT事情。 所以在这个case--哦,对不起。 我应该DELETE FROM。 由于删除将 删除整个行。 所以我们不需要谈论哪些 关于我们的用户具体的事情 删除。 如果我们删除一个用户,我们 删除他们的一切。 所以在这种情况下,我们只需要 请跟随我们的WHERE和我们的条件。 所以,我们的表只是我们的帐户 表中,我们一直在做。 然后我们有什么条件吗? 听众:平衡。 SPEAKER 1:余额等于0。 正确的。 所有的好。 是。 观众:[听不清]。 扬声器1:所以DELETE 本质上删除一切。 因此而使用SELECT,SELECT需要在 您想返回特定的列。 如果你想要的一切 用户返回,你用明星。 星说,还给我 一切从该用户。 或者,如果你把WHERE明星,那 意味着只要给我的一切。 但本质上删除了这一点。 所以,如果你说,删除 户口所在余额等于0, 它会通过。 处处是平衡 等于0时,它固有地做到这一点。 它会删除一切。 明星更for-- 用SELECT或UPDATE, 它更多地谈论个人 对应于用户的字段。 所以,当你选择 从表WHERE ID明星 等于1,返回给你 一切与ID 1的用户。 如果你做的SELECT数量 或者从用户的ID名逗号 WHERE ID等于1,即 只是返回它们的数量 或者他们的ID和他们的名字。 好不好? 所以我们使用明星在这种情况下,以 给我们的一切用户。 并删除固有做到这一点。 它不只是删除ID, 或只是名称,或什么的。 是啊,没有。 它只是删除整个用户。 所以我们不必担心 关于明星那里。 如果你想删除 一切,你能做到这一点, 这将只放下一切。 但通常情况下,你 不想这样做。 但是,如果你想删除 一切,你能做到这一点。 好不好。 有你们发现其他问题吗? 是。 听众:你能做到26? SPEAKER 1:26,我们只是做了。 听众:哦,25,对不起。 SPEAKER 1:25。 好不好。 25。 呵呵。 他们正在做的JavaScript。 哦,我简直不敢相信。 我要惹我们再次,伙计们。 好不好。 我们得到了这一点。 我们要完成这项工作。 啊,jQuery的。 乐趣。 好不好。 所以,我们要完成 实施网页 以这样的方式,如果他们参观, 输入自己的姓名,并提交表单, 他们有这个伟大的警报 窗口将要出现。 因此,与警报什么,我们知道, 我们将不得不使用JavaScript。 耶,JavaScript的。 如果他们无法输入 提交表单的名字, 没有警报应该出现。 所以,你可以使用jQuery, 但你不必。 所以我打算让你们工作 这个只是一两分钟。 想想吧。 然后我们将编写它。 斜线我要去尝试和思考的 要解释这个答案,你最好的办法。 行。 我们会得到它成立。 好不好。 所以,我们只是去 走过这一点, 因为我知道的jQuery 是有点混乱。 JavaScript的。 这是一个有点在那里。 所以,我们要做的是什么 [听不清]实际上解决 这个问题与jQuery。 所以,如果你还记得, jQuery是只是一个库 这只是基于JavaScript的顶部。 它的意思是让你 生活稍微容易一些。 我肯定会,如果 你有时间,你看 的一点点 文档jQuery的。 但它是非常相似的JavaScript。 它有类似的范例,在那里你 使用这个点运算符来调用函数 对你有对象。 所以,我们在这里是jQuery的, 你应该总是有这种 包装物,它是 $(文件)。就绪(功能)功能 在括号这里。 好不好。 因此,这可能是一个 你想在你的备忘单。 因为最起码,你可以 有包装的jQuery的。 它会至少让 你分道扬镳那里。 所以在同样的方式,我们 谈了很多关于JavaScript的, 我们会通过寻找启动 在我们试图修改什么 或者我们正在试图改变。 这将典型地是 我们会放在第一件事。 因此,在这种情况下,如果我们回到这个 这里,我们来看看我们这里的形式, 我们有这样的投入, 没错,这个ID的输入。 我们知道,基于 我们的问题,我们 要么要扔 一个错误,如果这是空的, 或者我们打算把 这成为一个警告,对不对? 所以可能安全地说,我们是 将要与输入此处理。 jQuery是在很相似,如果我们 回想起CSS,任何一个ID 我们来看一个哈希值。 任何与类我们 看着同一个点,对不对? 所以在这里以相同的方式,什么 我们谈论的是投入。 我们看到,输入的是 在我们的形式的ID。 所以,我们要提到它本身。 输入。 好不好? 所以,当有疑问,甚至 如果你无处, 如果你真的不确定如何 接近这个,A,有这样的包装。 所以开始有与 包装的jQuery。 B,请确保你知道 你正在改变。 并在有疑问时, 把在东西, 做点,不管你觉得 你应该做它。 听众:什么是包装? SPEAKER 1:包装 是此第一行。 所以这是说,等到 我的文件已准备就绪。 然后开始用的东西搞乱。 好不好? 所以我们知道我们正在玩弄输入。 所以我们想,行,投入是我们的形式。 这是我们的ID。 所以,这就是我们 去寻找。 我们要看看会发生什么 当这个表单提交,对不对? 因此,我们可能会认为, 我们有一些.submit。 所以.submit只是说,OK,这种形式 我们已经与哈希输入参考, 当它被提交, 执行别的东西。 因此,我们将有一些功能。 请注意,我们这里有匿名函数。 在这里,我们有一个匿名函数。 是。 观众:它会始终.submit, 还是仅仅因为在HTML, 我们做出了按钮式提交? 扬声器1:应当.submit,因为 这是某种形式的,我们正在提交。 因为这个.submit不一定 对应于该按钮是什么样 打电话。 但事实证明,这是一个 形成我们提交。 好不好。 所以,匿名通知 功能这里says-- 听众:我真的不 理解匿名函数。 扬声器1:所以匿名 功能,它们是 只是功能不具有一个名字。 所以有,而不是一些主要功能 这calls--我们可以说,如果文件 准备好了,那么我们就称之为输入。 然后,当提交,call-- 就像,如果某某等提交 我们会打电话一些其他的功能。 匿名函数 根本就没有名字, 它只是执行 在这些各种各样的事情。 所以在这种情况下,这是什么说 是,当我们的文件准备好, 执行此功能。 这个功能是由 内这里的一切。 再下一层就是,OK, 当输入被提交,执行此。 它表示的只是一种方式 应该怎样执行时。 这真的只是一个 功能不 有一个名字,所以它们往往 嵌套成彼此 因为你可以叫不上名字称呼他们。 好不好? 从字面上看,一个匿名函数 是没有名字只是一个函数。 就是这样。 只是一种方式来封装 不同的东西 我们要在特定的时间执行。 观众:[听不清]。 SPEAKER 1:发泄? 在哪里? 听众:在 函数后面的括号? SPEAKER 1:后功能。 哪一个? 听众:这两种。 如果放像,事件,或者,如果 你把一个参数出现, 会是错的? SPEAKER 1:在这种情况下,我想 你可以把一个参数在里面。 但是因为我们并不需要一个 的说法,不应该有。 喜欢,它的整体, 就像,你只应该 有事情是 必要的事情。 以同样的方式,如果我们有任何 功能有INT主要void--一样, 与INT主要无效,你 可以做INT ARG V,等等。 但是,如果你不需要这些,你 不应该让他们在那里。 同样的事情。 艾玛,你有问题吗? 好不好。 酷。 好不好。 所以,我们至今是当我们 文件的准备,执行此。 现在,我们正在寻找 当它提交。 所以,现在我们实际上有某种 对我们的事情肉。 因此,我们需要得到的价值是, 用户提交的,不管是一个名字 或空。 然后,我们需要或者回报 此警报或抛出一个错误。 无论哪种方式。 那么,我们如何声明 在JavaScript中的变量? 变种。 所以我们可以说,VAR名 equals--或实际中,我们将 这样做的价值,因为我觉得它的名字。 好不好。 因此,我们有一定的价值在这里,我们 想从我们投入的形式来拉。 所以在同样的方式, 那种我们做了投入, 谁能告诉我什么,我们 可能会在这里呼吁 如果我们想获得 从形式叫什么名字? 如果我们回头看我们的形式在这里, 我们注意到,我们有名称的ID。 观众:[听不清]。 SPEAKER 1:你不用 把它作为一个数组。 你并不需要担心。 所以,我们只是有一些名字。 然后,因为JavaScript和东西 奇怪的是,我们不能只是做“的名字。” 实际上,我们必须调用 一些功能给我们, 像,该识别符的值。 好不好? 所以,这只是.VAL。 观众:[听不清]。 扬声器1:OK。 所以用JavaScript,这种 这里的事情刚刚经历。 你可以认为这as--它的 像几乎一个的getElementById,其中 的getElementById实际上 返回完整的东西给你。 在$(“#名称”)就像是, OK,我有它,我可以访问它, 但如果你真的想要它 返回的值以你 - 听众:是不是像一个指针? 扬声器1:这有点像一个指针。 你可以把它想成 有点像一个指针。 像,它说,OK,我 知道如何到达那里, 但实际获得的价值出来的 它,你必须明确地提出要求。 不幸的是,很明显,我们不 做过多的使用JavaScript和jQuery。 因此,这将回落到多少 你guys--你发生什么就知道了, 你发生什么事都见过,什么 种可以在逻辑猜测。 由于其中的一些事情,你 大概可以拿到一半。 但要得到它完全正确的, 我觉得这个问题可能 具有最低分数之一。 观众:像,比如, 为[听不清]输入, 你为什么不必须把VAL呢? SPEAKER 1:对于这一个? 听众:是的。 扬声器1:是啊。 因为这是一种 都喜欢,正如我们所说, 一些指针,这是我的参考 它实际上就是把我们的价值。 听众:鉴于[听不清]? SPEAKER 1:对于输入, 投入只是some-- 这就像我们只是 看着它作为一个整体, 这.submit告诉 我们什么,我们需要知道的。 jQuery和JavaScript是怪异。 我知道。 我知道,伙计们。 我知道。 还有一个原因,我不 做网页编程。 只是在开玩笑。 我还没有足够的曝光吧。 观众:[听不清] CSS。 [笑] 扬声器1:OK,这就是CSS。 CSS只是一样,把事情漂亮, 它不像我们处理数据。 有一个区别在那里。 好不好。 所以,现在我们希望,这也part--,对于 这样,出了问题,你可能不 知道语法,你也能像, OK,你可以有一些VAR值 而像,假设我 得到正确的值。 然后你很可能 写这篇文章下一部分。 下一部分将可能 似乎更容易, 或它将使逻辑 感你们。 虽然我们已经写了这么远, 我知道我会喜欢,嗯,是啊, 我不知道,在测验。 你完全可以写伪码 然后打入真正的代码 你 - 当它有点像数学。 如果你曾经有过的一些 多部分的问题,其中 你不知道如何 闯过第一步骤中, 但一切 依赖于第一步骤中, 你刚才说的一样,假设x等于4。 然后运行它,对吗? 你可以做同样的事情的代码。 所以,你可以说,假设 我得到了价值的权利。 那么在这里做下一​​部分。 因为这部分实际上 应该是相当合理的。 因此,我们需要检查 如果我们的价值是空的。 或者,如果它的一些名字, 实际上给一个警告。 那么,什么可能我们要检查? 我们希望有一些如果。 您如何看待我们的。如果将是? 我们需要检查是否值,看看 is--如果它不是一个空字符串。 完美。 没错。 好不好。 所以,如果是这样的话, 我们怎么想干什么? 我们要抛出一些警惕,对不对? 所以它只是警告。 然后不管我们想进去。 那么,我们应该 让我们警觉里面? 听众:“你好。” SPEAKER 1:逗号。 然后做你们 记得如何连接? 观众:加。 SPEAKER 1:加。 因此,我们希望有加。 然后我们需要另一个加 我们的感叹号。 酷。 好不好。 否则,什么可能我们想要做什么? 我们不想做任何事,对不对? 所以我们只是返回false。 不是我想做的事情。 好不好。 然后将这些中, course--什么是重要的 是要记住关闭 您的匿名函数。 所以,如果你发现,我们有一些 功能在这里,到此为止。 因此,我们需要关闭该 第一个,并添加一个分号。 然后这个人在这里有 做这个匿名函数, 所以我们关闭它。 节约是下意识的反应。 是。 听众:还有一个原因that-- 只是在JavaScript中所有的例子 我已经看到了,我们有 第一个大括号 在同一行的功能? 扬声器1:这是风格。 是啊。 而实际上,如果你把61,我们 做我们所有的花括号的方式。 咦? 观众:如果我们这样做那样做的 在PSET,是坏的风格? SPEAKER 1:第 我们已经明确告知 你们这样做。 但实际上,这是一种 占主导地位的公约 在大堆c类和 JavaScript和jQuery的。 所以很明显,我sure-- 实际上,如果我 要完全做到这一点的问题 盲目而不必看着它, 有可能是极少数 如何我会得到这一点。 我可能会一直喜欢,好吧,也许我 需要抓住的东西,是一个输入端。 而且我认为具有 知识一样, OK,如果我想要得到的东西 从具有一个ID的形式, 我指的是它以这种方式, 我大概明白了。 我可能会这样。 不过说真的,唯一的事情,我觉得 我真的得到的是这一权利在这里。 所以这是种很重要的 知道,与任何艰难的考验, 有种你选择你的战场,对不对? 如果你知道你不会得到 jQuery的是第一部分,正如我所说, 假设你有这样的价值 和做什么,你可以用它。 如果你有时间,回去 和尝试,并填写作品。 但是,不要让这样的问题 这真的陷入你失望。 原因是什么? 这是一个问题上 jQuery的出整个考试。 所以,是的,这将会是巨大的,如果你得到了它。 观众:[听不清]你 欢迎使用jQuery。 SPEAKER 1:你是 欢迎使用jQuery。 听众:OK。 [听不清]。 SPEAKER 1:你如何不使用它呢? 我要看看 所有我的JavaScript。 它实际上是容易得多, 我认为,使用jQuery, 因为jQuery实际上降低了 你写JavaScript的量可能 受,想,有一半。 所以,我们的代码很可能是 只要不两倍的。 所以,如果你recognize--最大 事情从这个问题拿走 是图案。 如果您在访问 从形式的东西, 你要使用引号,哈希, 无论你想访问。 如果它被提交,你想 使用像一个.submit。 你可能会使用 匿名函数在那里。 如果你确实需要的值 什么,你要做的报价, 哈希,无论那场,.VAL。 并认识模式 这样会 要远远超过有用 真正了解的细节问题。 是。 观众:所以,如果 用户提交他们的名字 它贯穿了声明,将 他走下来,在此之后返回false? SPEAKER 1:没有,因为警报, 你可以认为它像一回。 是啊。 所以它会退出。 是啊。 听众:莫非你 [?地方?]括号 的提交,括号什么? 扬声器1:我做了,我相信。 这其中的关在这里。 然后这个人会倒闭这里。 听众:哦,有。 行。 SPEAKER 1:很显然,小, 小句法的东西 这样,我们可能会 只是圈,并像, 不要忘记你的括号内。 但是,是的。 好不好。 我们有一个又一个 我们愿做? 难道你们得到二叉树呢? 难道我们要说明一下吗? 我觉得像二叉树 与DOM的应该是分 那你们变得相当容易。 我不想你 失去在该点。 好不好。 让我们做到这一点DOM这里。 我希望我有我的面,所以我 可能只是在屏幕上绘制。 这就是我用来做最后一年。 好不好。 因此,正如我所说,我们谈 关于DOM,文档对象模型。 他们很可能要给你 片段中的一些点点这样的 并要求你创建一棵树吧。 而这恰恰都有做 通过标签运行。 所以让我们尝试做到这一点。 此外,按照往常一样,如果你们 做这些测验,因为我强烈 建议你一样的做法, 其中任何一个,你是喜欢, 我真的不明白是什么 怎么回事,只是,当然, 有一个问题给我发电子邮件, 我将解释尽我所能。 好不好。 我们有一些文件,我们有HTML。 好不好。 所以当时我们只是分析 这里的标签,对不对? 所以,我们看到了什么comes--是什么 HTML下的两个子目? 特别是因为 他们是正确缩进? 头部和身体。 啊。 头部和身体。 可爱。 那么接下来就让我们从这里开始头。 什么是下面的头上? 什么是我们的下一个标签? 称号。 然后在标题测验。 好不好。 所以从字面上看,它只是 通过标签走,好不好? 这样的话,如果我们有 身体,因为我们经历, 机身内部有三件事情,对不对? 它有三个div的。 每格都有自己的小盒子。 什么是在第一个div? [听不清] 再下一个是中间的, 我只是要缩写。 然后最后一个是底部。 因此,其实,它只是穿行。 因为我们打算给 你的HTML正确缩进, 你可以从字面上只是贯穿 而像,OK,这里是HTML。 因此,这是最外 角落里,或者最远离开, 所以必须是自己的事。 这些都在同一个缩进。 所以我们知道,头部需要 是在相同的水平体, 但HTML下方。 这就是我们这里。 头部和身体是兄弟, 但他们在HTML。 然后我们只需要进入每一项。 所以头有称号,这 有测验,我们在这里看到。 然后在这种情况下,我们有 身体,有以下三条线。 所以这些都是 所有的兄弟姐妹身下。 好不好? 当你看到,所以希望 这样的事情,你喜欢, 是的,我只是去画一棵树。 这会是很大的。 好不好。 所以,希望确保 你们知道。 那么,我们为什么不进入 32我们的二叉树? 因为一旦你理解了二进制 搜索树,它真的不是那么糟糕。 所以埃弗雷特,我可以erase--我 意思是说,这些都是在网上,太。 所以,如果你有任何问题。 失去了一点点的空间存在,但它的确定。 因此,二叉搜索树是 只是一种方式来组织数据 不是在一个阵列,其中 根总是更大 比左子和根是 总是比右孩子少。 好不好。 所以,我们在这里有这个伟大的搜索树。 我们有这些数字,34, 59,20,106,36,和52。 我们需要组织 它们以这样的方式 使得该根是更大 比一切在左侧 并且它小于 一切在右侧。 并且通常,你 想要做的是试图找到 一些关于在中间。 与二叉搜索树,你可能有 要玩一点点吧。 但在这种情况下,我们只 假设我们知道这第一个。 所以36是我们这里的第一个。 通常情况下,我会尝试 并选择一些 大约在中间那会 大概产生最好的结果。 所以,现在我们知道这一切的 此方需要小于36。 但同时,你能看到的是 我们有两个点在这里。 因此,如果我们知道,我们需要两个 是小于根数, 那么你可以随便点,这些 并选择第三个数字。 好不好。 所以我们为什么不与本方开始? 因此,如果我们知道这一切的 此方需要小于36-- 但是,如果我们看看这个, 我们知道,这个数字 比这个数字要少,对不对? 因为这个数字在这里 是在右侧。 请记住,就像在我们的大 树,一切都在正确的 需要比根大。 通过这种方式,我们知道, 无论是在这种需求 比什么在这里大。 好不好? 因此,我们有两个选择 对于这两种气泡。 我们有32和34--还是遗憾。 20和34。 所以,您怎么看 我们可能在把这些? 如果此人有成为 大于这个, 这意味着我们要 有20个在这里和这里34。 好不好。 所以以相同的方式,我们期待 在这种子树。 和我们说,OK,我们没有36。 我们有106,52,和59。 对不对? 在这里这种情况下,我们 知道这一个需求 有一件事是大于 并有一件事是低于它。 对不对? 因此,如果我们把这些才能,它只是 大约又发现中间值。 因此,我们的中间值是59。 所以后来我们说,OK,什么是低于59? 嗯,这是52。 什么是大于59? 嗯,这是106。 好不好? 所以它只是一个有点像一个谜。 它通常会有所帮助,尤其是 在小树林这样, 如果你只是为了它,如果你 知道有多少是在左侧 又有多少是在 没错,这正好可以 让你选择什么 应该是你的根。 然后你就可以种 的工作,从那里。 嗯。 33? 当然。 好不好。 因此,我们要创建一个节点 或二进制搜索树。 让我们看一下可能是什么吧。 我认为,这将 实际上是我们的最后一个问题。 啊。 好不好。 好不好。 这就好比我们所能 认为作为一个节点,对不对? 我们有一定的价值,而我们 知道,它要么 有左,右的孩子。 tree--这意味着二进制搜索 它有,顶多两个孩子。 好不好? 让我们想想办法,我们 定义一个链表,对吧? 我们有一些int值 表示的值。 我们有这样的代表的一些指针 它打算明年。 二叉查找树非常相似。 我们还是有一定的价值, N,我们给它,对吗? 然后我画了这些非常 明确箭头, 因为它们是有效的指针。 好不好? 所以n通常是什么? 它的一些价值。 什么是我们通常将它指定为? 一个int。 因此,我们有一些整数n或int值, 或任何你想调用它。 然后我们有左 孩子和右孩子。 对不对? 而且我们知道他们是什么 point--它们是什么指向? 他们指着其他节点,对不对? 因此,如何将我们声明一个节点指针? 观众:[听不清]。 SPEAKER 1:嗯。 并且我们将不得不 其中的两个,对不对? 然后我们可以从字面上 不要离开左子 右为右孩子。 Actually--遗憾。 因为我们需要的结构。 所以结构是因为我们还没有 宣布完一个节点呢。 因此,节点内这里。 这有点像 递归定义,对不对? 所以,当我们都在 此定义,我们 还没有完成申报 节点作为结构, 所以我们要做的结构 节点只是说,是的, 我们实际上指 回到我们自己类型的事情。 像一旦它 创建时,它会没事的。 所以有多大你们认为这是? 这是什么结构的大小? 12。 为什么呢? 精确。 而事实上,其中一个 第一个问题的一个测验 是关于大小,这就是为什么我问。 行。 我们将结束,因为 DCE会骂我,如果我们不这样做。 但是,如果你们有任何问题, 当然,给我发电子邮件,让我知道。 你们要摇晃。 我超级兴奋。 你们会做的 星期三,然后 你会得到工作,最终 项目,这将是真棒。 我会在这里下一个 本周从4:00到4:30 如果你们要来 拿起你的测验。 如果你想给我找一些其他的时间 或者只是协调不同的时间, 随时让我知道。 否则,这是我们的最后一节。 所以这是非常高兴看到你们。 请采取更多的糖果。 和好运气在你的测验。