1 00:00:00,000 --> 00:00:08,090 2 00:00:08,090 --> 00:00:09,810 >> Джейсон Хиршхорн: Добро пожаловать, все, чтобы неделю 10. 3 00:00:09,810 --> 00:00:15,130 Это захватывающее неделю, потому что завтра Викторина 1, мы получим 4 00:00:15,130 --> 00:00:16,400 в секунду. 5 00:00:16,400 --> 00:00:21,770 Сегодня в разделе, мы собираемся пойти более некоторые ресурсы для викторины, и 6 00:00:21,770 --> 00:00:24,890 то я отвечу любых вопросы вы, ребята, есть. 7 00:00:24,890 --> 00:00:27,880 И мы, наконец, заканчиваются некоторые проблемы практики. 8 00:00:27,880 --> 00:00:30,940 >> Мы можем потратить весь раздел отвечая на вопросы. 9 00:00:30,940 --> 00:00:33,240 Мы можем потратить весь раздел переходя проблем практики. 10 00:00:33,240 --> 00:00:36,890 Мы просто расширить для заполнения пространство и время у нас есть. 11 00:00:36,890 --> 00:00:40,590 >> Так что я положил этот список каждую неделю, но это особенно важно на этой неделе. 12 00:00:40,590 --> 00:00:44,980 Для изучения, если у вас есть не начал уже, о мальчик. 13 00:00:44,980 --> 00:00:46,400 Но, надеюсь, вы начали уже. 14 00:00:46,400 --> 00:00:50,710 И вы проходите материалов и ресурсы, перечисленные здесь. 15 00:00:50,710 --> 00:00:54,300 Я очень рекомендую ряд из них. 16 00:00:54,300 --> 00:00:58,780 >> В частности, конспекты лекций являются невероятно важно и полезно. 17 00:00:58,780 --> 00:01:02,880 Study.cs50.net обеспечивает отличный учебник по много 18 00:01:02,880 --> 00:01:04,250 темы мы рассмотрели. 19 00:01:04,250 --> 00:01:07,810 Она также имеет некоторые большие практике проблем. 20 00:01:07,810 --> 00:01:11,260 А потом, Google отличное, также. 21 00:01:11,260 --> 00:01:12,360 Я не знаю, что вы будете использовать его для. 22 00:01:12,360 --> 00:01:14,090 Но использовать Google, а также. 23 00:01:14,090 --> 00:01:16,680 >> Обратитесь ко мне, если у вас есть какие-либо вопросы, комментарии или проблемы. 24 00:01:16,680 --> 00:01:19,420 Посмотрите на обзорной сессии слайды из прошлой ночью. 25 00:01:19,420 --> 00:01:21,540 Или, если у вас есть некоторое время, смотреть видео. 26 00:01:21,540 --> 00:01:24,930 Они обеспечивают много полезными материалы и информацию. 27 00:01:24,930 --> 00:01:29,730 И попытаться охватить если не все, многие из темы мы крытые и что вы 28 00:01:29,730 --> 00:01:32,610 могли бы видеть на викторине. 29 00:01:32,610 --> 00:01:35,590 >> Говоря о викторине, что будет завтра. 30 00:01:35,590 --> 00:01:37,260 Это 75 минут длиной. 31 00:01:37,260 --> 00:01:40,740 Многие из вас принимают его на 1 часов, и некоторые из вас 32 00:01:40,740 --> 00:01:42,740 принимая его в 5:30. 33 00:01:42,740 --> 00:01:45,300 В настоящее время вы принимаете его и расположение вы принимаете его, убедитесь, 34 00:01:45,300 --> 00:01:49,400 Вы проверяете документ на главной странице CS50.net. 35 00:01:49,400 --> 00:01:54,340 >> Помните, что вы можете получить один 8 1/2 на 11 листе взять с собой. 36 00:01:54,340 --> 00:01:57,310 Зачастую, люди не используют этот лист вообще во время викторины. 37 00:01:57,310 --> 00:01:59,740 Но на самом деле, это невероятно полезными инструмент исследования. 38 00:01:59,740 --> 00:02:04,370 Так воедино, что лист, что Я провел, вероятно, три или четыре часа 39 00:02:04,370 --> 00:02:07,110 делать, когда я учился на CS50, и это было легко самым полезным 40 00:02:07,110 --> 00:02:08,740 так я мог учиться на викторине. 41 00:02:08,740 --> 00:02:10,949 Таким образом, даже если у вас есть некоторые чужие учебных пособий, чтобы смотреть на и 42 00:02:10,949 --> 00:02:14,740 использовать как ссылки, я настоятельно рекомендую сделать свой собственный учебное пособие, положив 43 00:02:14,740 --> 00:02:15,490 что материал вместе. 44 00:02:15,490 --> 00:02:17,335 Это действительно поможет вам узнать весь материал. 45 00:02:17,335 --> 00:02:20,270 46 00:02:20,270 --> 00:02:24,810 >> Не в последнюю очередь в этом разделе, после завтра викторины есть одна 47 00:02:24,810 --> 00:02:25,940 более лекция - 48 00:02:25,940 --> 00:02:26,960 следующий понедельник. 49 00:02:26,960 --> 00:02:30,430 Там еще один раздел, а не рядом Вторник перед Днем благодарения, но 50 00:02:30,430 --> 00:02:31,630 Вторник после этого. 51 00:02:31,630 --> 00:02:36,600 Мы будем собираться вместе для окончательного до свидания партия, а также делать некоторые прохладно 52 00:02:36,600 --> 00:02:41,530 вещи, чтобы вы, ребята, возбуждаемые о дальнейшие исследования в области информатики. 53 00:02:41,530 --> 00:02:45,040 >> Там еще один проект, еще один справедливым, еще один Хакатон. 54 00:02:45,040 --> 00:02:47,900 Мы приближаемся к концу CS50, который является захватывающим - 55 00:02:47,900 --> 00:02:50,950 но и, если вы, как я, немного грустно. 56 00:02:50,950 --> 00:02:53,950 Прежде чем я перейду, кто-нибудь есть любые вопросы о том, что 57 00:02:53,950 --> 00:02:55,200 мы рассмотрели до сих пор? 58 00:02:55,200 --> 00:03:02,760 59 00:03:02,760 --> 00:03:08,730 >> Хорошо, хорошо, давайте перейдем на некоторые вопросы что у вас есть для викторины и темам 60 00:03:08,730 --> 00:03:09,960 мы могли бы покрыть. 61 00:03:09,960 --> 00:03:11,540 Так что это список, который я собрал. 62 00:03:11,540 --> 00:03:15,500 Это ни в коем случае исчерпывающим, но будем надеяться, бегать памяти, если вам 63 00:03:15,500 --> 00:03:20,310 есть вопросы о любой из них темы, или если у вас есть вопросы по поводу 64 00:03:20,310 --> 00:03:23,260 проблемы практики от викторины в прошлые годы. 65 00:03:23,260 --> 00:03:27,470 >> У меня было несколько вопросов, которые были по электронной почте мне, но я хочу, чтобы удержать 66 00:03:27,470 --> 00:03:29,490 на тех, ни на секунду. 67 00:03:29,490 --> 00:03:34,570 Кто-нибудь есть какие-либо вопросы, проблемы они не понимают, 68 00:03:34,570 --> 00:03:38,100 Ответы, которые они не понимают чтобы приступить к нам? 69 00:03:38,100 --> 00:03:39,520 Ави. 70 00:03:39,520 --> 00:03:41,585 >> АУДИТОРИЯ: Можете ли вы просто пойти на ДОМ и Аякс очень быстро? 71 00:03:41,585 --> 00:03:46,540 Мол, то, что мы должны знать или должен понять о них? 72 00:03:46,540 --> 00:03:49,750 >> Джейсон Хиршхорн: Я собираюсь ответить как правило, это вопрос, что же я 73 00:03:49,750 --> 00:03:52,100 нужно знать о данной теме х? 74 00:03:52,100 --> 00:03:55,280 Потому что у меня есть чувство, многие из вас собираетесь спросить меня, что, или 75 00:03:55,280 --> 00:03:56,570 любопытно, что. 76 00:03:56,570 --> 00:04:02,920 Так в той степени, что тема была покрыта лекции, или раздел, или на 77 00:04:02,920 --> 00:04:06,460 study.cs50.net, проблема установить, вы должны быть знакомы с ним. 78 00:04:06,460 --> 00:04:10,580 >> Так что вам не нужно знать все виды тега, которая доступна в HTML или 79 00:04:10,580 --> 00:04:15,950 каждый тип атрибута или свойства вы можете дать что-то в CSS. 80 00:04:15,950 --> 00:04:20,204 Но если бы вы видели его в пример лекции, если бы вы видели его в задаче 81 00:04:20,204 --> 00:04:23,290 набор, вы должны, вероятно, знакомы с ним, в частности, вещи, которые вы видели 82 00:04:23,290 --> 00:04:24,260 в лекции. 83 00:04:24,260 --> 00:04:28,510 Таким образом, мы обсудили этот документ объектную модель немного в 84 00:04:28,510 --> 00:04:30,530 раздел, тем более в лекции. 85 00:04:30,530 --> 00:04:32,990 Вы должны быть знакомы с, что много. 86 00:04:32,990 --> 00:04:34,750 >> И вы должны быть знакомы с Ajax в той же степени. 87 00:04:34,750 --> 00:04:38,105 Мы никогда не видели невероятно распространенным или сложные примеры Ajax, поэтому 88 00:04:38,105 --> 00:04:40,920 вы не собираетесь быть предложено сделать что-то невероятно сложное. 89 00:04:40,920 --> 00:04:45,180 Но вас могут попросить, как мне сделать вызов Ajax с помощью JQuery? 90 00:04:45,180 --> 00:04:47,350 Что то, что вы видели ряд раз, прежде чем, как в 91 00:04:47,350 --> 00:04:51,370 обзор сессию и в лекции, и это только два-иш строк кода. 92 00:04:51,370 --> 00:04:53,190 >> Так что то, что вы должны быть знакомы с. 93 00:04:53,190 --> 00:04:55,550 Но, опять же, для всех этих тем, если вы видели его 94 00:04:55,550 --> 00:04:59,220 раньше, это честная игра. 95 00:04:59,220 --> 00:05:01,540 И мы могли бы спросить вас - очевидно, мы хочу попросить вас вещи, которые вы 96 00:05:01,540 --> 00:05:02,340 раньше не видели. 97 00:05:02,340 --> 00:05:04,240 Кодирование что-то у вас не видел. 98 00:05:04,240 --> 00:05:06,570 Но это не значит, что вы должны не видел инструменты для решения 99 00:05:06,570 --> 00:05:08,120 что проблема прежде. 100 00:05:08,120 --> 00:05:09,200 Вы видели эти инструменты. 101 00:05:09,200 --> 00:05:11,160 >> Например, на Quiz 1, если вы должны кодировать StrLen. 102 00:05:11,160 --> 00:05:12,790 Мы не кодируется StrLen раньше. 103 00:05:12,790 --> 00:05:14,980 Но вы знаете, как использовать цикл, Вы знаете, как использовать, если условия. 104 00:05:14,980 --> 00:05:18,570 Вы знаете, как писать переменные в С Это будет то же самое здесь. 105 00:05:18,570 --> 00:05:22,350 Вы не собираетесь быть предложено сделать все, что вы раньше не видели, но 106 00:05:22,350 --> 00:05:25,150 вас могут попросить, чтобы, как, положить что-то вместе по-новому, или 107 00:05:25,150 --> 00:05:27,650 решить другой тип проблемы. 108 00:05:27,650 --> 00:05:30,830 >> К сожалению, это касается не только вашего вопрос, но я не могу ответить о 109 00:05:30,830 --> 00:05:34,390 каждый тему, что вы или не нужно знать. 110 00:05:34,390 --> 00:05:36,830 Но и, извините, последнее, о чем это. 111 00:05:36,830 --> 00:05:42,900 Мы потратили значительно больше времени на списки ссылок, чем у нас на Ajax. 112 00:05:42,900 --> 00:05:46,160 Вы не использовали Ajax в наборе проблемы. 113 00:05:46,160 --> 00:05:48,510 Одной из центральных особенностей, что Проблема установить, что было списки ссылок. 114 00:05:48,510 --> 00:05:50,370 И мы провели много времени в лекции и раздел его использования. 115 00:05:50,370 --> 00:05:57,080 >> Так, вполне вероятно, список ссылок будет придумать более часто на викторине, чем Ajax воли. 116 00:05:57,080 --> 00:06:00,390 Или вопросы, имеющие отношение к ссылке Список будет стоить больше очков. 117 00:06:00,390 --> 00:06:03,520 Таким образом, вы, безусловно, может фокусировки и узкая в на вещи, которые являются более 118 00:06:03,520 --> 00:06:06,720 вероятно, придумать, потому что у нас есть провел больше времени на них. 119 00:06:06,720 --> 00:06:08,700 >> ОК любые другие вопросы? 120 00:06:08,700 --> 00:06:09,890 Да. 121 00:06:09,890 --> 00:06:13,660 >> АУДИТОРИЯ: Мы можем пойти за использованием анонимные функции в JavaScript? 122 00:06:13,660 --> 00:06:17,140 Я это немного запутался об этом. 123 00:06:17,140 --> 00:06:20,180 >> Джейсон Хиршхорн: Так в JavaScript - 124 00:06:20,180 --> 00:06:24,400 Я пытаюсь думать, как я мог бы написать это на - 125 00:06:24,400 --> 00:06:27,590 так что давайте на самом деле открыть этот код. 126 00:06:27,590 --> 00:06:31,830 127 00:06:31,830 --> 00:06:36,030 Так что это код, который мы сделали на прошлой неделе. 128 00:06:36,030 --> 00:06:41,400 И вы видели это раньше, если вы были здесь в разделе на прошлой неделе. 129 00:06:41,400 --> 00:06:43,180 Или вы видели что-то похоже на это раньше. 130 00:06:43,180 --> 00:06:44,800 >> Но вы можете посмотреть на этой первой линии. 131 00:06:44,800 --> 00:06:46,950 Это, как вы начать - 132 00:06:46,950 --> 00:06:48,010 все это не видел этого. 133 00:06:48,010 --> 00:06:51,930 Если вы хотите разместить код JavaScript, Вы помещаете его в этом, предполагая, 134 00:06:51,930 --> 00:06:53,520 вы используете JQuery. 135 00:06:53,520 --> 00:06:56,940 Это говорит, ничего не делают до загружен данный документ. 136 00:06:56,940 --> 00:06:59,940 >> А потом, Курт, вы видите здесь мы делаем что-то вроде этого - 137 00:06:59,940 --> 00:07:02,560 функциональные открытые скобка, закрыты скобка. 138 00:07:02,560 --> 00:07:05,250 Таким образом, мы не даем это функционировать имя. 139 00:07:05,250 --> 00:07:09,160 Мы не собираемся, чтобы определить эту функцию Предполагается, а затем запустить 140 00:07:09,160 --> 00:07:10,830 называют его кучу раз. 141 00:07:10,830 --> 00:07:15,140 Мы просто говорим, этот документ уже принимает функция. 142 00:07:15,140 --> 00:07:16,690 Пару достопримечательностях. 143 00:07:16,690 --> 00:07:20,670 >> И мы не хотим тратить время придав ему имя или сохранить его для 144 00:07:20,670 --> 00:07:21,650 вечность. 145 00:07:21,650 --> 00:07:24,150 Мы просто хотим, чтобы запустить некоторые вещи. 146 00:07:24,150 --> 00:07:27,500 Так анонимный функция сортировки из служит этой цели. 147 00:07:27,500 --> 00:07:30,280 Когда вы не собираетесь использовать что-то снова и снова, так что вам не нужно 148 00:07:30,280 --> 00:07:32,420 дать ему имя - вы просто хотите использовать его один раз - 149 00:07:32,420 --> 00:07:36,720 вы бы просто сказать, функцию, Например, в этом случае, и ты просто 150 00:07:36,720 --> 00:07:38,280 определении то, что вы могли бы дать имя. 151 00:07:38,280 --> 00:07:40,920 >> Мол, мы могли вытащить эту функцию из и дать ему имя, а затем вызвать, что 152 00:07:40,920 --> 00:07:41,760 функционировать здесь. 153 00:07:41,760 --> 00:07:44,270 Но мы не должны, потому что мы не делаем хотите тратить время придав ему имя или 154 00:07:44,270 --> 00:07:46,240 тратить что-то в нашем пространстве имен. 155 00:07:46,240 --> 00:07:47,530 И вы увидите, что много. 156 00:07:47,530 --> 00:07:52,810 Например, мы видим, что много в этом Код, но вы видели это раньше, когда 157 00:07:52,810 --> 00:07:54,010 нажатии что-то - 158 00:07:54,010 --> 00:07:55,980 запустить этот тип кода. 159 00:07:55,980 --> 00:07:59,850 >> Мы могли бы определить код, который мы хотим работать, когда мы нажимаем, в данном случае, 160 00:07:59,850 --> 00:08:03,450 это ID, в виде отдельной функции а затем запустить эту функцию. 161 00:08:03,450 --> 00:08:07,940 Но в этом случае, мы просто пропуская этот шаг и перемещение его в здесь и 162 00:08:07,940 --> 00:08:10,340 просто к определению все что мы хотим чтобы это произошло, и 163 00:08:10,340 --> 00:08:12,450 не давая ему имя. 164 00:08:12,450 --> 00:08:15,550 Это до сих пор не могут иметь ответил на ваш вопрос. 165 00:08:15,550 --> 00:08:15,960 >> АУДИТОРИЯ: Нет, это не. 166 00:08:15,960 --> 00:08:18,290 Я имею в виду, я думаю, я просто не очень понимаю, почему это было бы 167 00:08:18,290 --> 00:08:20,800 функционировать вообще, хотя. 168 00:08:20,800 --> 00:08:21,590 Потому что это на самом деле не называют. 169 00:08:21,590 --> 00:08:23,170 Это действительно не имеет имени. 170 00:08:23,170 --> 00:08:25,510 >> Джейсон Хиршхорн: Это функция в ощущение, что это серия шагов, 171 00:08:25,510 --> 00:08:28,460 как вы бы положить в функции. 172 00:08:28,460 --> 00:08:29,970 А потом вот почему мы называем это анонимная функция. 173 00:08:29,970 --> 00:08:30,815 Мы не собираемся дать ему имя. 174 00:08:30,815 --> 00:08:33,159 Мы не собираемся тратить пытается назвать его, но мы смогли. 175 00:08:33,159 --> 00:08:34,890 >> Анонимные функции, вы всегда можно дать имя. 176 00:08:34,890 --> 00:08:37,620 Так, например, этот код прямо здесь, мы могли бы поставить этот код в 177 00:08:37,620 --> 00:08:39,929 вызвать функцию, а затем эта функция здесь. 178 00:08:39,929 --> 00:08:41,600 Вместо этого мы говорим, что мы не собираемся возиться с этим. 179 00:08:41,600 --> 00:08:44,390 Мы просто будем писать все это прямо здесь. 180 00:08:44,390 --> 00:08:49,840 >> Это как иногда, когда вы пишете четыре петли в C - вы, ребята, 181 00:08:49,840 --> 00:08:51,630 видел это раньше - может быть, вы итераций по ForLoop 182 00:08:51,630 --> 00:08:53,090 в я равна 0. 183 00:08:53,090 --> 00:08:54,830 Я меньше STRLEN. 184 00:08:54,830 --> 00:08:59,520 Или вы собираетесь через некоторые Массив, вы можете сохранить массив 185 00:08:59,520 --> 00:09:01,580 Индекс г в некоторой переменной. 186 00:09:01,580 --> 00:09:02,830 И вы использовать эту переменную. 187 00:09:02,830 --> 00:09:06,550 Так что вам не нужно переписать массив Кронштейн я снова и снова и снова. 188 00:09:06,550 --> 00:09:08,160 >> И это вроде как фиктивная переменная. 189 00:09:08,160 --> 00:09:10,790 Это не служит много целей, кроме чтобы сделать код немного чище 190 00:09:10,790 --> 00:09:12,120 и легче читать. 191 00:09:12,120 --> 00:09:13,290 Похожие функции здесь. 192 00:09:13,290 --> 00:09:15,665 Просто делает это немного легче, но функционально нет никакой разницы. 193 00:09:15,665 --> 00:09:18,620 194 00:09:18,620 --> 00:09:19,330 Я ответил на ваш вопрос? 195 00:09:19,330 --> 00:09:19,970 >> АУДИТОРИЯ: Да. 196 00:09:19,970 --> 00:09:20,720 >> Джейсон Хиршхорн: ОК .. 197 00:09:20,720 --> 00:09:21,880 Марио? 198 00:09:21,880 --> 00:09:25,380 >> АУДИТОРИЯ: Вчера они часто ставят Функция скобках событие. 199 00:09:25,380 --> 00:09:26,420 Означает ли это, что ли? 200 00:09:26,420 --> 00:09:30,500 Или это такие вещи, как что они будут делать 201 00:09:30,500 --> 00:09:35,100 document.ready функцию событие. 202 00:09:35,100 --> 00:09:37,130 >> Джейсон Хиршхорн: Мы видели это, и опять же, это небольшие вещи, которые 203 00:09:37,130 --> 00:09:39,590 вероятно, я не хочу, чтобы тратить слишком много времени на. 204 00:09:39,590 --> 00:09:43,200 Потому что иногда я не хочу, чтобы люди получить волновался, что они имеют не 205 00:09:43,200 --> 00:09:44,220 слышал об этих вещах, что много. 206 00:09:44,220 --> 00:09:46,200 Но мы немного поговорили о обработчики событий. 207 00:09:46,200 --> 00:09:50,360 Так что-то происходит, а затем эта функция выполняется. 208 00:09:50,360 --> 00:09:53,210 И тогда мы также хотели бы знать некоторые детали о том, что 209 00:09:53,210 --> 00:09:54,450 произошло в этом случае. 210 00:09:54,450 --> 00:09:55,730 >> Так вспомните проблемы установить 4. 211 00:09:55,730 --> 00:09:58,390 Это, вероятно, самый простой способ понять, что в вырваться. 212 00:09:58,390 --> 00:09:59,740 Был некоторый код - 213 00:09:59,740 --> 00:10:01,980 как событие случится, но событие может означать многое. 214 00:10:01,980 --> 00:10:06,240 Если может означать щелчке мышью, это может означать, что вы попали на клавишу со стрелкой, и др. 215 00:10:06,240 --> 00:10:07,190 так далее, и так далее. 216 00:10:07,190 --> 00:10:09,800 >> Но это все сохраняется в этот общий что называется события. 217 00:10:09,800 --> 00:10:12,340 И тогда мы сможем сказать, это событие эта вещь? 218 00:10:12,340 --> 00:10:13,640 Или это событие эта вещь? 219 00:10:13,640 --> 00:10:15,500 Или, какие произошло с этим событием? 220 00:10:15,500 --> 00:10:18,660 Так вот почему вы создаете эту переменную там, чтобы спасти, что дополнительную информацию 221 00:10:18,660 --> 00:10:21,420 о том, что именно произошло, что вы собираетесь хотите 222 00:10:21,420 --> 00:10:24,840 использовать в функции. 223 00:10:24,840 --> 00:10:28,200 Но опять же, это, вероятно, один из самых менее важные вещи, чтобы быть супер 224 00:10:28,200 --> 00:10:29,450 знакомы. 225 00:10:29,450 --> 00:10:31,470 226 00:10:31,470 --> 00:10:36,110 >> Хорошо, что другие вопросы есть люди, было или камнем преткновения они 227 00:10:36,110 --> 00:10:37,360 столкнулись при рассмотрении? 228 00:10:37,360 --> 00:10:41,260 229 00:10:41,260 --> 00:10:42,510 Мы будем назад к этому списку. 230 00:10:42,510 --> 00:10:52,550 231 00:10:52,550 --> 00:10:56,080 А как насчет во время практических викторины, если люди взяли тех, кто уже? 232 00:10:56,080 --> 00:10:59,110 Каковы были некоторые проблемы, которые Сработал вы, ребята до? 233 00:10:59,110 --> 00:11:08,970 234 00:11:08,970 --> 00:11:12,720 Я точно знаю, что в прошлом году викторины было действительно трудно. 235 00:11:12,720 --> 00:11:15,670 >> АУДИТОРИЯ: Можете ли вы объяснить, что нападение инъекции SQL является? 236 00:11:15,670 --> 00:11:18,970 >> Джейсон Хиршхорн: ОК, отлично. 237 00:11:18,970 --> 00:11:20,440 Таким образом, мы говорили об этом немного. 238 00:11:20,440 --> 00:11:22,050 Там в лекция по безопасности. 239 00:11:22,050 --> 00:11:25,670 И снова, как я упоминал ранее, это в сторону. 240 00:11:25,670 --> 00:11:30,010 Но вы будете разочарованы в викторине когда читаешь некоторые небольшие две точки 241 00:11:30,010 --> 00:11:33,040 вопрос, и вы, как, когда я никогда не узнает, что? 242 00:11:33,040 --> 00:11:35,560 >> Все эти вещи в этих лекций что вы не думали, что вам нужно 243 00:11:35,560 --> 00:11:38,290 знаете, или вы могли бы замалчивать, потому что у них не было связано с 244 00:11:38,290 --> 00:11:41,860 Проблема набор, те, скорее всего, прийти снова на викторине. 245 00:11:41,860 --> 00:11:45,030 Так, прохладном, забавные вещи, которые вы просто думал Дэвид рассказывал для вас 246 00:11:45,030 --> 00:11:49,070 нравится, что он говорит вам, для вас, чтобы наслаждаться и сделать вас быть просто супер 247 00:11:49,070 --> 00:11:50,550 взволнован обучения все есть, чтобы узнать 248 00:11:50,550 --> 00:11:51,670 о компьютерной науки. 249 00:11:51,670 --> 00:11:53,680 Эти вещи также придумать на викторины. 250 00:11:53,680 --> 00:11:56,440 Так, даже эти мелочи, которые не имеют непосредственное отношение к вашей проблеме 251 00:11:56,440 --> 00:11:59,630 установить, как вы, ребята, знакомы по Викторина 0, будет, вероятно, придумать. 252 00:11:59,630 --> 00:12:01,530 И это хороший пример чего-то. 253 00:12:01,530 --> 00:12:10,140 >> Так с помощью SQL Injection, когда вы получить некоторую информацию от пользователя и 254 00:12:10,140 --> 00:12:15,090 Вы хотите, чтобы вставить его в таблицу, используя SQL вставки заявление, но вы 255 00:12:15,090 --> 00:12:17,680 не санировать вход загодя. 256 00:12:17,680 --> 00:12:21,560 Таким образом, очевидно, что мы видели Заявления SQL. 257 00:12:21,560 --> 00:12:22,810 Я просто открыть - 258 00:12:22,810 --> 00:12:25,590 259 00:12:25,590 --> 00:12:26,840 пойдем - 260 00:12:26,840 --> 00:12:31,290 261 00:12:31,290 --> 00:12:31,960 мы пойдем в обзоре - 262 00:12:31,960 --> 00:12:35,180 Я думаю, освещавший это? 263 00:12:35,180 --> 00:12:36,350 Я думаю, что Samala сделал. 264 00:12:36,350 --> 00:12:39,292 Таким образом, мы можем получить - 265 00:12:39,292 --> 00:12:41,270 >> АУДИТОРИЯ: Где вы нашли это? 266 00:12:41,270 --> 00:12:44,990 >> Джейсон Хиршхорн: Так что, если вы идете в CS50.net, викторины, а затем вы можете 267 00:12:44,990 --> 00:12:47,170 прокрутите и получить слайды от обзорной сессии. 268 00:12:47,170 --> 00:12:49,860 Но вы можете увидеть это является хорошим примером из атаки с внедрением SQL. 269 00:12:49,860 --> 00:12:53,690 Возьмем некоторую информацию от пользователя и они дают нам строку, а затем мы 270 00:12:53,690 --> 00:12:55,780 хотите вставить эту строку в базу данных. 271 00:12:55,780 --> 00:12:59,780 Вообще мы собираемся, чтобы санировать, что вход, который означает, что есть некоторые 272 00:12:59,780 --> 00:13:01,050 символов, которые являются опасными. 273 00:13:01,050 --> 00:13:04,000 >> Например, в строках SQL, эти цитаты - 274 00:13:04,000 --> 00:13:05,000 одинарные кавычки или двойные кавычки - 275 00:13:05,000 --> 00:13:05,620 что-то значить. 276 00:13:05,620 --> 00:13:08,380 Они имеют в виду в конечном эту строку здесь. 277 00:13:08,380 --> 00:13:13,090 И поэтому, если пользователь дает один или двойные кавычки, они могут быть 278 00:13:13,090 --> 00:13:18,970 пытаясь сбить с толку вашего запроса и вставить некоторые плохие вещи в него. 279 00:13:18,970 --> 00:13:23,130 И если они сделают это, они могли получить контроль базы данных или сделать некоторые 280 00:13:23,130 --> 00:13:24,760 вещи, которые вы не хотите, чтобы они сделали. 281 00:13:24,760 --> 00:13:28,300 >> Так вот почему всякий раз, когда мы берем SQL запросы, мы санировать вход до 282 00:13:28,300 --> 00:13:31,090 поставив его в базу данных, которая означает, что мы избежать этих символов. 283 00:13:31,090 --> 00:13:32,590 Мы будем говорить о том, что в секунду. 284 00:13:32,590 --> 00:13:35,820 Но Короче говоря, инъекции SQL атака, если вы этого не сделаете, что - 285 00:13:35,820 --> 00:13:39,760 если вы не заботиться о входе они дали вам, прежде чем положить ваши 286 00:13:39,760 --> 00:13:46,830 В базе, они могут, как видите вниз здесь, выполнить запрос, который, на самом деле - 287 00:13:46,830 --> 00:13:52,470 они положили в своем коде сюда и это выберите линию сюда выберет 288 00:13:52,470 --> 00:13:56,360 все со стола, независимо чего пароль дается. 289 00:13:56,360 --> 00:13:58,960 Потому что у вас есть или 1 равна 1. 290 00:13:58,960 --> 00:14:02,750 >> Так что это в основном, короче говоря, способ взять на себя базу данных. 291 00:14:02,750 --> 00:14:07,570 Вопрос, таким образом, для вас, ребята, есть где в р наборов 7 ты санировать все 292 00:14:07,570 --> 00:14:10,010 входы в запросах SQL? 293 00:14:10,010 --> 00:14:11,230 Откуда это шаг произошло? 294 00:14:11,230 --> 00:14:14,150 Где вы предотвращения инъекций SQL атаки с происходит в р установить 7? 295 00:14:14,150 --> 00:14:20,100 296 00:14:20,100 --> 00:14:20,490 Да. 297 00:14:20,490 --> 00:14:21,870 >> АУДИТОРИЯ: Crypt? 298 00:14:21,870 --> 00:14:23,120 >> Джейсон Хиршхорн: Так было не склеп. 299 00:14:23,120 --> 00:14:52,360 300 00:14:52,360 --> 00:14:55,380 Мы не делали вы это сделаете для этого Особая проблема установить, но это случается 301 00:14:55,380 --> 00:14:58,190 в функции запроса. 302 00:14:58,190 --> 00:15:00,930 Мы на самом деле написал это для вас, и мы позаботились о 303 00:15:00,930 --> 00:15:03,040 дезинфекции входы для вас. 304 00:15:03,040 --> 00:15:07,790 Но в прошлые годы, студенты имели ввести входы самостоятельно. 305 00:15:07,790 --> 00:15:10,020 В р набора 7, многие из вас - 306 00:15:10,020 --> 00:15:11,270 позвольте мне открыть еще один файл. 307 00:15:11,270 --> 00:15:18,530 308 00:15:18,530 --> 00:15:22,590 >> Таким образом, вы заметите здесь много люди, в вопрос, поставленный 7, не звонил 309 00:15:22,590 --> 00:15:25,240 эта функция со строками. 310 00:15:25,240 --> 00:15:27,880 Эта функция, HTMLSpecialChars, снова - 311 00:15:27,880 --> 00:15:31,410 эта строка может иметь некоторые вещи , что в HTML в виду нечто другое. 312 00:15:31,410 --> 00:15:36,160 Как скобки, квадрата или под углом Кронштейн что-то значить в HTML. 313 00:15:36,160 --> 00:15:38,980 >> И поэтому, если вы печатаете, что к экран или если вы просто взять, что и 314 00:15:38,980 --> 00:15:42,260 распечатать, что к вашей HTML, которые могут сделать то, что вы не ожидаете. 315 00:15:42,260 --> 00:15:45,180 Так HTMLSpecialChars переходит все те, символы, которые имеют специальное 316 00:15:45,180 --> 00:15:47,030 встречи и убегает их. 317 00:15:47,030 --> 00:15:51,450 Так что печатается в виде текста Вы хотите видеть, а не 318 00:15:51,450 --> 00:15:53,280 прищурив свой HTML. 319 00:15:53,280 --> 00:15:55,040 Мы назвали эту функцию в заголовке. 320 00:15:55,040 --> 00:15:57,390 И много людей забыли вызова этой функции в 321 00:15:57,390 --> 00:15:58,700 Код вы писали. 322 00:15:58,700 --> 00:16:03,970 >> Так, например, если акция имя было угловая скобка в нем и забыли 323 00:16:03,970 --> 00:16:06,675 вызывать эту функцию, что угол Кронштейн может скинули, что 324 00:16:06,675 --> 00:16:08,250 Ваш HTML выглядел. 325 00:16:08,250 --> 00:16:11,810 Но вызова этой функции будет избежать что это на самом деле выводит как 326 00:16:11,810 --> 00:16:15,870 угловая скобка и не бросает от вашего HTML кода. 327 00:16:15,870 --> 00:16:18,760 >> По той же причине мы видели, иногда, косую черту перед двойные кавычки в 328 00:16:18,760 --> 00:16:22,310 Е линия, потому что мы не хотим, двойные кавычки вниз строку. 329 00:16:22,310 --> 00:16:24,050 Мы хотим, чтобы распечатать их к экрану. 330 00:16:24,050 --> 00:16:26,920 Так что все это та же идея. 331 00:16:26,920 --> 00:16:28,260 Я ответил на ваш вопрос? 332 00:16:28,260 --> 00:16:31,529 333 00:16:31,529 --> 00:16:33,870 >> АУДИТОРИЯ: Вид. 334 00:16:33,870 --> 00:16:35,300 >> Джейсон Хиршхорн: Нравится ли вам есть последующей деятельности? 335 00:16:35,300 --> 00:16:43,252 >> АУДИТОРИЯ: Я думаю инъекции SQL нападение связано с этим? 336 00:16:43,252 --> 00:16:45,720 Я не понимаю, как эти два связаны между собой. 337 00:16:45,720 --> 00:16:47,610 Зачем ты это сделал, что specialchars? 338 00:16:47,610 --> 00:16:51,200 >> Джейсон Хиршхорн: Хорошо, таким образом SQL впрыска атака, когда Вы вводите 339 00:16:51,200 --> 00:16:59,180 некоторые вредоносные строки в чью-то Программа, и они просто взять его и бежать 340 00:16:59,180 --> 00:17:01,230 SQL-запрос со строкой вы дали им. 341 00:17:01,230 --> 00:17:04,220 Как вы можете видеть здесь, что может быть проблематичным. 342 00:17:04,220 --> 00:17:07,480 Так как вы предотвратить против, что является вы берете их строку, они дают 343 00:17:07,480 --> 00:17:09,220 Вы - так эта строка здесь - 344 00:17:09,220 --> 00:17:11,240 и вы дезинфицировать ее. 345 00:17:11,240 --> 00:17:14,305 Вы избежать все то, что потенциально проблематично. 346 00:17:14,305 --> 00:17:18,626 Таким образом, вы не интерпретируют их как нечто это означает, что что-то. 347 00:17:18,626 --> 00:17:23,390 >> И пример, что с HTML является эта функция. 348 00:17:23,390 --> 00:17:26,060 Так что это та же идея здесь. 349 00:17:26,060 --> 00:17:27,579 И я просто показываю вам друга примеры, когда у Вас есть 350 00:17:27,579 --> 00:17:29,030 не видел эту идею. 351 00:17:29,030 --> 00:17:33,913 Из побега пользовательский ввод перед печатью это, чтобы экран или положить его 352 00:17:33,913 --> 00:17:36,782 внутри заявлении SQL. 353 00:17:36,782 --> 00:17:40,790 >> АУДИТОРИЯ: Так что в этом случае пользователь Мессинг с программистом. 354 00:17:40,790 --> 00:17:41,240 >> Джейсон Хиршхорн: Да. 355 00:17:41,240 --> 00:17:44,800 С учетом всех этих атак, это всегда обычно пользователь или 356 00:17:44,800 --> 00:17:47,470 кто-то, пытается замарать с вами, программист. 357 00:17:47,470 --> 00:17:51,038 И эти способы, вы можете предотвратить против них. 358 00:17:51,038 --> 00:17:54,280 >> АУДИТОРИЯ: Так у меня вопрос о хэш-функций. 359 00:17:54,280 --> 00:17:59,340 В викторине 1 с 2011, есть два вопросы о односторонних хэшей. 360 00:17:59,340 --> 00:18:02,540 И мне было просто интересно что это значит. 361 00:18:02,540 --> 00:18:03,660 >> Джейсон Хиршхорн: ОК, которые викторине? 362 00:18:03,660 --> 00:18:03,770 2011? 363 00:18:03,770 --> 00:18:04,705 >> АУДИТОРИЯ: Да. 364 00:18:04,705 --> 00:18:06,720 >> АУДИТОРИЯ: Викторина 1? 365 00:18:06,720 --> 00:18:08,620 >> АУДИТОРИЯ: [неразборчиво]. 366 00:18:08,620 --> 00:18:09,940 Это все равно что хэширования пароля. 367 00:18:09,940 --> 00:18:12,220 Это не положить вещи - 368 00:18:12,220 --> 00:18:13,440 >> Джейсон Хиршхорн: Что страницы так ли? 369 00:18:13,440 --> 00:18:15,720 >> Зала: Я думаю, что это было 9 или 10, или обоих. 370 00:18:15,720 --> 00:18:16,720 >> Джейсон Хиршхорн: Ладно, идти вперед, Курт. 371 00:18:16,720 --> 00:18:17,780 Вы можете ответить, пока мы смотрим. 372 00:18:17,780 --> 00:18:19,540 >> Зала: Я думаю, что это говорит о хэширования пароля. 373 00:18:19,540 --> 00:18:24,430 Мол, когда кто-то вводит пароль, Вы превратить его в зашифрованном вещи. 374 00:18:24,430 --> 00:18:27,395 Это хэш пароля, который является отличается от хэш-функции, что 375 00:18:27,395 --> 00:18:30,900 ставит что-то в хэш-таблицу. 376 00:18:30,900 --> 00:18:31,610 >> Джейсон Хиршхорн: Давайте посмотрим. 377 00:18:31,610 --> 00:18:33,930 Позвольте мне подтянуть то, что они дать в ответ. 378 00:18:33,930 --> 00:18:35,440 И тогда мы будем идти через него. 379 00:18:35,440 --> 00:18:42,430 380 00:18:42,430 --> 00:18:45,400 >> Так Курт дал отличный пример из односторонний хэш. 381 00:18:45,400 --> 00:18:48,800 Когда мы видели это раньше, мы взять пароль и повернуть - 382 00:18:48,800 --> 00:18:53,040 помните, в р набора 7, кто-то мог бы есть пароль, это только пароль, 383 00:18:53,040 --> 00:18:55,300 но тогда он получает зашифрованный в некоторые очень долго вещь. 384 00:18:55,300 --> 00:18:59,830 Односторонний хэш означает, что это очень легко идти от одного способа к другому, но 385 00:18:59,830 --> 00:19:02,800 это очень трудно перейти от другой путь назад. 386 00:19:02,800 --> 00:19:05,230 >> И так вы знаете, когда вы проверяли пароли народные в задаче 387 00:19:05,230 --> 00:19:08,820 установить 7, вы приняли бы их - 388 00:19:08,820 --> 00:19:11,953 так, например, говорят, что они хотели изменить свой пароль, вы спросите их, 389 00:19:11,953 --> 00:19:13,130 для их старый пароль. 390 00:19:13,130 --> 00:19:13,910 Ты взял свой старый пароль. 391 00:19:13,910 --> 00:19:15,150 Вы зашифрованы его. 392 00:19:15,150 --> 00:19:19,240 А потом сравнили два шифрование а не unencrypting оригинал 393 00:19:19,240 --> 00:19:20,780 один, потому что это действительно трудно идти по этому пути. 394 00:19:20,780 --> 00:19:27,070 395 00:19:27,070 --> 00:19:28,035 Да. 396 00:19:28,035 --> 00:19:31,430 >> АУДИТОРИЯ: Как в глубину делает наш понимание Telnet должны быть? 397 00:19:31,430 --> 00:19:34,870 398 00:19:34,870 --> 00:19:41,360 >> Джейсон Хиршхорн: Если это было упомянуто кратко в лекции, только краткое 399 00:19:41,360 --> 00:19:43,260 понимание. 400 00:19:43,260 --> 00:19:45,585 Опять же, к ответу на вопрос Ави - 401 00:19:45,585 --> 00:19:48,260 402 00:19:48,260 --> 00:19:50,430 больше вещей придумать, тем более вероятно, она у вас есть, чтобы быть супер 403 00:19:50,430 --> 00:19:51,530 знакомы с ними. 404 00:19:51,530 --> 00:19:54,730 Если они только приходят в лекции, вот только одно место. 405 00:19:54,730 --> 00:19:57,180 Но если они приходят в лекции, раздел, и проблема установить, то вы 406 00:19:57,180 --> 00:19:58,710 вероятно, должны быть супер знакомы с ними. 407 00:19:58,710 --> 00:20:01,320 408 00:20:01,320 --> 00:20:03,960 >> Так что я был вопрос от ранее о - 409 00:20:03,960 --> 00:20:06,950 , было падение 2010 - 410 00:20:06,950 --> 00:20:08,520 Викторина 1, давайте подтянуть - 411 00:20:08,520 --> 00:20:17,390 412 00:20:17,390 --> 00:20:21,790 этот вопрос на стеков и очередей, что мы и сделали потратить изрядное немного времени 413 00:20:21,790 --> 00:20:23,720 говорили в лекции, даже хотя мы действительно не 414 00:20:23,720 --> 00:20:26,020 когда-либо ударил его в разделе. 415 00:20:26,020 --> 00:20:33,190 Так что этот вопрос дает вам ряд команд и спрашиваю, что 416 00:20:33,190 --> 00:20:35,560 печатается в этом случае. 417 00:20:35,560 --> 00:20:40,180 Так что это совершенно резонный вопрос что может быть предложено из вас 418 00:20:40,180 --> 00:20:43,090 ребята, а затем вы, ребята, должны быть в состоянии на него ответить. 419 00:20:43,090 --> 00:20:50,020 >> Так почему бы вам не посмотреть на него в течение 30 секунд, а затем, если кто-то хочет 420 00:20:50,020 --> 00:20:52,140 предложить ответы на меня, и тогда мы будем идти через него. 421 00:20:52,140 --> 00:21:22,590 422 00:21:22,590 --> 00:21:24,235 Ладно, у кого есть ответ на вопрос 27? 423 00:21:24,235 --> 00:21:31,740 424 00:21:31,740 --> 00:21:33,860 Да. 425 00:21:33,860 --> 00:21:40,250 >> АУДИТОРИЯ: Это 1, 2, 3, 3? 426 00:21:40,250 --> 00:21:40,780 >> Джейсон Хиршхорн: Совершенно верно. 427 00:21:40,780 --> 00:21:42,570 27 равно 1, 2, 3, 3. 428 00:21:42,570 --> 00:21:44,510 Итак, давайте взглянем на то, как мы получили это. 429 00:21:44,510 --> 00:21:48,930 >> Во-первых, мы говорим, если с является очередь, то, что печатается? 430 00:21:48,930 --> 00:21:53,360 Так д является первым вошел, первым вышел. 431 00:21:53,360 --> 00:21:54,680 Мы видели, что и раньше. 432 00:21:54,680 --> 00:21:56,820 Мы видели картину людей ожидания в Apple, 433 00:21:56,820 --> 00:21:58,400 Магазин, чтобы купить какой-то продукт. 434 00:21:58,400 --> 00:22:00,900 Первые люди в это первые люди вне. 435 00:22:00,900 --> 00:22:02,940 Первое, что в очереди первые вещи вне. 436 00:22:02,940 --> 00:22:08,320 >> Так что, если мы нажимаем что-то в очередь, Вы нажимаете на 1, то мы поп 1. 437 00:22:08,320 --> 00:22:09,630 Поп просто означает, вынуть. 438 00:22:09,630 --> 00:22:11,080 В этом случае, просто взять что-то. 439 00:22:11,080 --> 00:22:12,910 Вынимаем первый вещь, это 1. 440 00:22:12,910 --> 00:22:15,200 Так мы поместим вещи, которые мы распечатать вниз здесь. 441 00:22:15,200 --> 00:22:18,110 Это уже не в нашей очереди. 442 00:22:18,110 --> 00:22:23,500 >> Тогда мы нажимаем на 2 и 3, и мы палить первое. 443 00:22:23,500 --> 00:22:25,030 Опять же, потому что это очереди. 444 00:22:25,030 --> 00:22:33,320 Таким образом, мы получаем 2, то мы ставим на другой 3 и вызвать поп снова. 445 00:22:33,320 --> 00:22:34,980 Наш 3 является первым. 446 00:22:34,980 --> 00:22:40,940 >> И тогда у нас был целый букет другие вещи и вызов поп. 447 00:22:40,940 --> 00:22:43,740 Но снова, так как это очередь, Первый пришел, первым ушел. 448 00:22:43,740 --> 00:22:45,980 Вынимаем первое, , которая была когда-либо вставил 449 00:22:45,980 --> 00:22:47,100 Это наша 3. 450 00:22:47,100 --> 00:22:50,060 И, в данном случае, мы не беспокоиться обо всех этих других вещей. 451 00:22:50,060 --> 00:22:51,310 Так вот, если это очереди. 452 00:22:51,310 --> 00:22:58,917 453 00:22:58,917 --> 00:23:00,167 Любые вопросы о очереди? 454 00:23:00,167 --> 00:23:03,290 455 00:23:03,290 --> 00:23:04,040 >> Стек по-другому. 456 00:23:04,040 --> 00:23:07,782 Что является аббревиатурой у нас есть для понимания стек? 457 00:23:07,782 --> 00:23:08,750 >> АУДИТОРИЯ: последним пришел, первым вышел. 458 00:23:08,750 --> 00:23:10,130 >> Джейсон Хиршхорн: ЛИФО, я думаю. 459 00:23:10,130 --> 00:23:11,830 Последний вошел, первым вышел. 460 00:23:11,830 --> 00:23:15,630 Таким образом, мы видели пример стека из тарелок в столовой. 461 00:23:15,630 --> 00:23:17,590 Независимо лоток сверху получает взял. 462 00:23:17,590 --> 00:23:19,550 И потом, если новые лотки приходят в, они получают положить сверху. 463 00:23:19,550 --> 00:23:21,070 А потом все, что на топ получает взял. 464 00:23:21,070 --> 00:23:24,010 Так что те, лотки в нижней мощи остаться там на некоторое время. 465 00:23:24,010 --> 00:23:28,480 >> В этом случае, опять же, мы будем обратить на это. 466 00:23:28,480 --> 00:23:31,770 Мы подталкиваем на один, так что является первым в очереди. 467 00:23:31,770 --> 00:23:32,790 И мы поп что-то от. 468 00:23:32,790 --> 00:23:37,280 И есть только одна вещь, там, так мы движемся 1 здесь. 469 00:23:37,280 --> 00:23:41,940 Тогда мы ставим на 2 и 3 и мы поп что-то от. 470 00:23:41,940 --> 00:23:43,650 >> Но опять же, так как это очереди - 471 00:23:43,650 --> 00:23:45,010 или это стек, а - 472 00:23:45,010 --> 00:23:47,480 мы принимаем все, что было в прошлом. 473 00:23:47,480 --> 00:23:49,300 Все, что в прошлом приходит в первую очередь. 474 00:23:49,300 --> 00:23:50,890 И 3 находится в прошлом. 475 00:23:50,890 --> 00:23:56,110 Так мы ставим 3 там, то мы ставим на другой 3, и мы 476 00:23:56,110 --> 00:23:57,360 поп что-то снова. 477 00:23:57,360 --> 00:23:59,990 478 00:23:59,990 --> 00:24:05,710 Наконец, положим на 4, 5, 6 и 7, и здесь мы поп-музыки. 479 00:24:05,710 --> 00:24:09,060 И потому что это стек, мы берем что была введена в прошлом и писать 480 00:24:09,060 --> 00:24:10,240 что здесь. 481 00:24:10,240 --> 00:24:14,256 Таким образом, мы в конечном итоге с 1, 3, 3, 7. 482 00:24:14,256 --> 00:24:17,380 483 00:24:17,380 --> 00:24:21,380 Кто-нибудь есть какие-либо вопросы о стеки или очереди, или этот пример? 484 00:24:21,380 --> 00:24:27,540 485 00:24:27,540 --> 00:24:29,030 >> ОК. 486 00:24:29,030 --> 00:24:30,440 Давайте вернемся к списку тем. 487 00:24:30,440 --> 00:24:32,510 Не сюда, сюда. 488 00:24:32,510 --> 00:24:34,280 Какие еще вопросы у людей есть? 489 00:24:34,280 --> 00:24:37,550 490 00:24:37,550 --> 00:24:39,480 >> Зала: Я не знаю, как важно это, но я был смущен 491 00:24:39,480 --> 00:24:43,550 Разница между различными типами Языки, как разметки, составленные, 492 00:24:43,550 --> 00:24:45,980 интерпретировать. 493 00:24:45,980 --> 00:24:46,750 >> Джейсон Хиршхорн: Это хороший вопрос. 494 00:24:46,750 --> 00:24:50,500 Я думаю, что это очень важная тема, так что давайте идти по нему быстро. 495 00:24:50,500 --> 00:24:56,850 Большие языки, которые мы видели до сих пор, С, PHP, и JavaScript, в терминах 496 00:24:56,850 --> 00:24:58,330 из языков программирования. 497 00:24:58,330 --> 00:25:01,060 HTML, как вы упомянули, не язык программирования. 498 00:25:01,060 --> 00:25:02,260 Это язык разметки. 499 00:25:02,260 --> 00:25:05,700 А то у нас CSS, который также не является языком программирования. 500 00:25:05,700 --> 00:25:10,330 >> Мы также видели, SQL, которая не язык программирования либо. 501 00:25:10,330 --> 00:25:15,695 Так SQL позволяет писать запрашивает базу данных. 502 00:25:15,695 --> 00:25:18,370 503 00:25:18,370 --> 00:25:20,140 HTML это язык разметки. 504 00:25:20,140 --> 00:25:22,570 Он определяет, как вещи устроены. 505 00:25:22,570 --> 00:25:26,250 И CSS позволяет укладывать вещи. 506 00:25:26,250 --> 00:25:28,520 Это, вероятно, степень за то, что вы нужно знать о тех трех. 507 00:25:28,520 --> 00:25:32,920 Но это больше интересно рисунке из различий между C, PHP, 508 00:25:32,920 --> 00:25:34,320 и JavaScript. 509 00:25:34,320 --> 00:25:37,900 >> Таким образом, одна из самых больших различий, как вы упомянули, то, как они 510 00:25:37,900 --> 00:25:40,550 составлен, или то, эквивалент. 511 00:25:40,550 --> 00:25:42,580 Так C компиляции. 512 00:25:42,580 --> 00:25:43,950 Мы всегда запускать компилятор. 513 00:25:43,950 --> 00:25:51,100 А потом где твои ошибки при запуске компилятора C? 514 00:25:51,100 --> 00:25:55,740 Где это показать вам ошибок в коде? 515 00:25:55,740 --> 00:25:57,860 Как вы знаете, есть Ошибка в коде в C? 516 00:25:57,860 --> 00:25:58,770 >> АУДИТОРИЯ: Это показывает, в терминале. 517 00:25:58,770 --> 00:26:00,410 >> Джейсон Хиршхорн: Она указывает, в Терминал, как вы собираете. 518 00:26:00,410 --> 00:26:02,620 И, если есть ошибки, это не будет на самом деле компиляции. 519 00:26:02,620 --> 00:26:04,830 Таким образом, вы знаете, что есть ошибки правый прочь, загодя, перед вами 520 00:26:04,830 --> 00:26:06,050 даже запустить свой код. 521 00:26:06,050 --> 00:26:10,010 >> Конечно, вы могли бы запустить свой код и получить ошибку сегментации, но это было 522 00:26:10,010 --> 00:26:12,350 вероятно, потому что вы сделали некоторые глупо логика вещь. 523 00:26:12,350 --> 00:26:15,770 Но ваш код с технически все правильно и может работать. 524 00:26:15,770 --> 00:26:18,210 Так C код компилируется загодя. 525 00:26:18,210 --> 00:26:19,760 А как насчет PHP кода? 526 00:26:19,760 --> 00:26:21,430 Где были ошибки в коде PHP? 527 00:26:21,430 --> 00:26:23,170 Как вы знаете, были ошибки в коде PHP? 528 00:26:23,170 --> 00:26:26,038 529 00:26:26,038 --> 00:26:28,430 >> АУДИТОРИЯ: Время работы? 530 00:26:28,430 --> 00:26:31,230 >> Джейсон Хиршхорн: Да, когда вы бы запустить его, вам потребуется запустить 531 00:26:31,230 --> 00:26:32,180 PHP-код в спине. 532 00:26:32,180 --> 00:26:33,300 И тогда вы бы отображать экран. 533 00:26:33,300 --> 00:26:35,260 Вы можете увидеть некоторые вещи на вершине, но тогда вы увидите, как некоторые 534 00:26:35,260 --> 00:26:36,710 оранжевый, некрасиво таблице. 535 00:26:36,710 --> 00:26:41,420 И это даст вам номер строки и скажем, бла, бла, бла, этот материал 536 00:26:41,420 --> 00:26:42,400 не работал. 537 00:26:42,400 --> 00:26:48,730 >> Итак, PHP интерпретируется строка за строкой и выполняется на сервере. 538 00:26:48,730 --> 00:26:52,380 И тогда результат будет послал к вам. 539 00:26:52,380 --> 00:26:53,340 Великий. 540 00:26:53,340 --> 00:26:56,410 Совершено в серверной строка за строкой а затем отправили к вам. 541 00:26:56,410 --> 00:26:59,010 И если есть ошибка, то пошлю Вы ошибка, но вы, возможно, 542 00:26:59,010 --> 00:27:00,400 получили некоторые вещи загодя. 543 00:27:00,400 --> 00:27:02,730 Так некоторые из них, возможно, работал, но позже, некоторые вещи могут не иметь 544 00:27:02,730 --> 00:27:03,890 не работал. 545 00:27:03,890 --> 00:27:04,600 >> А как насчет JavaScript? 546 00:27:04,600 --> 00:27:06,065 Где вы видели ошибки JavaScript? 547 00:27:06,065 --> 00:27:10,860 548 00:27:10,860 --> 00:27:12,870 В р набор 8, когда вы получили Ошибка, как вы узнали? 549 00:27:12,870 --> 00:27:13,710 Где бы на карте? 550 00:27:13,710 --> 00:27:15,900 >> АУДИТОРИЯ: В консоли в нижней части. 551 00:27:15,900 --> 00:27:17,650 >> Джейсон Хиршхорн: В консоль, на дно. 552 00:27:17,650 --> 00:27:20,160 Было бы также дать вам номер строки, и было бы 553 00:27:20,160 --> 00:27:21,330 показать на дне. 554 00:27:21,330 --> 00:27:24,320 И JavaScript не была выполнена на сервере. 555 00:27:24,320 --> 00:27:27,800 JavaScript был отправлен к компьютеру, а затем, когда пришло время для запуска 556 00:27:27,800 --> 00:27:31,670 JavaScript, JavaScript был запустить построчно на 557 00:27:31,670 --> 00:27:33,410 клиент, на вашей стороне. 558 00:27:33,410 --> 00:27:35,570 Не сервер, клиент сторона. 559 00:27:35,570 --> 00:27:37,690 >> И точно так же, это было запустить строка за строкой. 560 00:27:37,690 --> 00:27:40,630 А потом, когда вы получаете сообщение об ошибке, он будет отображаться в нижней части. 561 00:27:40,630 --> 00:27:44,580 Подобно PHP, некоторые из них могли бы выполнить, а затем вы можете получить 562 00:27:44,580 --> 00:27:46,310 ошибок в дальнейшем. 563 00:27:46,310 --> 00:27:49,910 >> Кроме того, немного в отличие PHP, если вы получили сообщение об ошибке JavaScript - 564 00:27:49,910 --> 00:27:52,780 говорят, что вы не сделали право Код для оповещения окне - 565 00:27:52,780 --> 00:27:55,800 вы могли бы держать выполнение вашей программы. 566 00:27:55,800 --> 00:27:58,180 Окно предупреждения не будет работать, но ваша программа будет в порядке. 567 00:27:58,180 --> 00:28:00,490 Просто, может быть, что функция потерпит неудачу. 568 00:28:00,490 --> 00:28:02,610 >> Таким образом, есть некоторые из самых больших Различие в том, как они 569 00:28:02,610 --> 00:28:09,230 языки, или, как код программирования Вы пишете на самом деле оценивается. 570 00:28:09,230 --> 00:28:11,970 Есть и другие различия в условия - большая разница 571 00:28:11,970 --> 00:28:15,590 мы видели в терминах переменных на разных языках. 572 00:28:15,590 --> 00:28:19,660 Так кто-нибудь может дать мне разницу между переменными 573 00:28:19,660 --> 00:28:20,910 на трех языках? 574 00:28:20,910 --> 00:28:24,802 575 00:28:24,802 --> 00:28:25,770 Да. 576 00:28:25,770 --> 00:28:27,130 >> АУДИТОРИЯ: В C, они строго типизированы. 577 00:28:27,130 --> 00:28:28,550 В двух других, они свободно набрали. 578 00:28:28,550 --> 00:28:30,040 >> Джейсон Хиршхорн: И что это значит? 579 00:28:30,040 --> 00:28:31,775 >> АУДИТОРИЯ: То, что в C, вы должны объявить Тип переменной, когда 580 00:28:31,775 --> 00:28:36,140 вы объявляете переменную, как interbool или символ. 581 00:28:36,140 --> 00:28:36,990 >> Джейсон Хиршхорн: Отлично. 582 00:28:36,990 --> 00:28:39,780 В C, у нас всегда были положить Тип переменной. 583 00:28:39,780 --> 00:28:41,360 И мы не могли действительно разных типов. 584 00:28:41,360 --> 00:28:45,750 Вы не могли бы сделать целое плюс строку. 585 00:28:45,750 --> 00:28:48,760 Но, как мы видели в эти другие языки, вы на самом деле можете смешивать типы, 586 00:28:48,760 --> 00:28:51,230 и вы никогда не должны дать что-то типа, никогда. 587 00:28:51,230 --> 00:28:53,905 >> Так как мы знаем, все переменные в PHP и JavaScript? 588 00:28:53,905 --> 00:28:57,120 589 00:28:57,120 --> 00:28:58,685 >> АУДИТОРИЯ: В PHP, они начинают со знаком доллара. 590 00:28:58,685 --> 00:29:00,810 В JavaScript, при объявлении их, вы должны есть бар. 591 00:29:00,810 --> 00:29:01,760 >> Джейсон Хиршхорн: Верно. 592 00:29:01,760 --> 00:29:03,535 Таким образом, в PHP, они начинают со знаком доллара. 593 00:29:03,535 --> 00:29:06,300 В JavaScript, они должны иметь бар, хотя иногда они на самом деле не 594 00:29:06,300 --> 00:29:07,520 должны иметь бар. 595 00:29:07,520 --> 00:29:09,240 Но это правильно. 596 00:29:09,240 --> 00:29:13,300 >> Так что есть большая разница между переменными. 597 00:29:13,300 --> 00:29:16,140 Я думаю, что те, вероятно, от верхней части моей головы, два крупнейших 598 00:29:16,140 --> 00:29:19,250 различия между ними на трех языках. 599 00:29:19,250 --> 00:29:20,594 Но, да. 600 00:29:20,594 --> 00:29:24,720 >> АУДИТОРИЯ: И сфера С переменным ограничивается фигурными скобками, 601 00:29:24,720 --> 00:29:27,760 где остальные, это просто нравится, он умирает, если это только функции, 602 00:29:27,760 --> 00:29:29,650 но иначе, it's - 603 00:29:29,650 --> 00:29:30,240 >> Джейсон Хиршхорн: Верно. 604 00:29:30,240 --> 00:29:36,780 Так объем немного отличается в С. Как Вы помните, фигурные скобки определяют 605 00:29:36,780 --> 00:29:37,710 объем переменных. 606 00:29:37,710 --> 00:29:41,680 Так что, если он был определен внутри, если состояние, которое находится внутри цикл, 607 00:29:41,680 --> 00:29:44,290 переменная существует только там. 608 00:29:44,290 --> 00:29:47,760 >> В JavaScript, если переменная определена внутри, если условия - 609 00:29:47,760 --> 00:29:50,750 внутри цикл - это будет существовать что функция, но она не будет существовать 610 00:29:50,750 --> 00:29:52,330 за пределами этой функции. 611 00:29:52,330 --> 00:29:59,250 Так объем немного более гибким в JavaScript и PHP. 612 00:29:59,250 --> 00:30:00,500 Это ответ на вопрос? 613 00:30:00,500 --> 00:30:03,110 614 00:30:03,110 --> 00:30:04,635 ОК, все другие вопросы? 615 00:30:04,635 --> 00:30:07,260 616 00:30:07,260 --> 00:30:08,865 Мы можем сделать больше четырех минут вопросов, то 617 00:30:08,865 --> 00:30:10,740 мы прыгнуть в кодировании. 618 00:30:10,740 --> 00:30:12,645 >> АУДИТОРИЯ: Можем ли мы идти в Ajax и говорить о том, что это такое? 619 00:30:12,645 --> 00:30:15,670 620 00:30:15,670 --> 00:30:17,800 >> Джейсон Хиршхорн: Поговорите с Ави после. 621 00:30:17,800 --> 00:30:19,170 Он задал этот вопрос раньше. 622 00:30:19,170 --> 00:30:19,630 >> АУДИТОРИЯ: Мое плохое. 623 00:30:19,630 --> 00:30:20,880 >> Джейсон Хиршхорн: Не беспокойтесь. 624 00:30:20,880 --> 00:30:22,740 625 00:30:22,740 --> 00:30:24,290 >> АУДИТОРИЯ: Что такое JSON? 626 00:30:24,290 --> 00:30:28,360 627 00:30:28,360 --> 00:30:28,900 >> Джейсон Хиршхорн: Что такое JSON? 628 00:30:28,900 --> 00:30:29,930 Какой ваш вопрос? 629 00:30:29,930 --> 00:30:31,350 >> АУДИТОРИЯ: Просто очень быстро, разница между 630 00:30:31,350 --> 00:30:32,870 печати и эхо в PHP. 631 00:30:32,870 --> 00:30:36,200 632 00:30:36,200 --> 00:30:38,490 >> Джейсон Хиршхорн: Почему бы вам не Google разница между печати и эхо? 633 00:30:38,490 --> 00:30:40,670 Небольшая разница. 634 00:30:40,670 --> 00:30:42,020 Не то, чтобы большой из предложения. 635 00:30:42,020 --> 00:30:44,960 Но вы должны обязательно Google его, и что даст вам хороший ответ. 636 00:30:44,960 --> 00:30:46,910 >> JSON, вероятно, больше, сделки. 637 00:30:46,910 --> 00:30:49,300 Стенды для JavaScript Object Notation. 638 00:30:49,300 --> 00:30:51,865 И когда мы видели JSON используется? 639 00:30:51,865 --> 00:30:55,110 640 00:30:55,110 --> 00:30:55,900 Когда вы видели - 641 00:30:55,900 --> 00:30:57,400 почему вы даже знаете слово JSON? 642 00:30:57,400 --> 00:30:59,140 Когда вы видели его? 643 00:30:59,140 --> 00:31:02,200 >> АУДИТОРИЯ: Когда мы получали Котировки акций для финансирования. 644 00:31:02,200 --> 00:31:02,690 >> Джейсон Хиршхорн: Так вы видели это когда вы получали 645 00:31:02,690 --> 00:31:04,830 Котировки акций для финансирования. 646 00:31:04,830 --> 00:31:07,340 А почему вы его видите? 647 00:31:07,340 --> 00:31:09,000 >> АУДИТОРИЯ: Когда мы были извлечения вся информация, 648 00:31:09,000 --> 00:31:10,400 пришел в этом формате. 649 00:31:10,400 --> 00:31:11,700 >> Джейсон Хиршхорн: Так вы получите - 650 00:31:11,700 --> 00:31:12,540 да. 651 00:31:12,540 --> 00:31:13,020 Идем дальше. 652 00:31:13,020 --> 00:31:15,210 >> АУДИТОРИЯ: [неразборчиво] информация из объекта? 653 00:31:15,210 --> 00:31:17,170 >> Джейсон Хиршхорн: Оба из тех собрать ответ 654 00:31:17,170 --> 00:31:18,100 мы ищем. 655 00:31:18,100 --> 00:31:21,240 Вы хотите, чтобы информация из этот другой веб-страницы. 656 00:31:21,240 --> 00:31:23,790 А вы бы надеяться, что, когда вы находитесь получение эту информацию, было бы 657 00:31:23,790 --> 00:31:26,720 представлены Вам в некотором роде из стандартного формата. 658 00:31:26,720 --> 00:31:29,530 >> Все, вероятно, знакомы с значений, разделенных запятыми. 659 00:31:29,530 --> 00:31:32,970 Можно экспортировать Excel таблицу или любой тип электронной таблицы как список 660 00:31:32,970 --> 00:31:34,540 значений, разделенных запятыми. 661 00:31:34,540 --> 00:31:37,370 И запятые разделить все различные поля. 662 00:31:37,370 --> 00:31:38,780 JavaScript Object Notation - 663 00:31:38,780 --> 00:31:39,440 JSON - 664 00:31:39,440 --> 00:31:43,540 еще один тип стандартизированный Компоновка вещей. 665 00:31:43,540 --> 00:31:49,010 И это часто, как мы извлекаем Информация от наших запросов Ajax. 666 00:31:49,010 --> 00:31:51,770 >> Таким образом, в этом случае, мы получили его с сайта Yahoo. 667 00:31:51,770 --> 00:31:53,600 Они возвращаются вещи нам в объекте JSON. 668 00:31:53,600 --> 00:31:56,790 А потом мы знаем, потому что это стандартный, что это 669 00:31:56,790 --> 00:31:57,250 будет выглядеть. 670 00:31:57,250 --> 00:32:00,760 Так что мы можем итерацию массива который вернулся к нам, массива 671 00:32:00,760 --> 00:32:03,180 объекты, которые возвращаются к нам. 672 00:32:03,180 --> 00:32:07,770 >> Мы, вероятно, должны знать, ключи, но они как правило, дают вам 673 00:32:07,770 --> 00:32:11,370 Документация на сайте, когда вы выборки некоторые JSON 674 00:32:11,370 --> 00:32:12,170 обозначения для них. 675 00:32:12,170 --> 00:32:16,940 Кроме того, вы можете JSON закодировать объект. 676 00:32:16,940 --> 00:32:19,900 Таким образом, есть функция JSON подчеркивают кодирование. 677 00:32:19,900 --> 00:32:22,970 И поэтому вы можете принять объект, Вы создали, JSON кодировать его, и 678 00:32:22,970 --> 00:32:26,390 передать его на что-то еще, если вы хотите. 679 00:32:26,390 --> 00:32:30,770 И JSON декодирования также существует для аналогичная цель, или для 680 00:32:30,770 --> 00:32:31,780 наоборот цель. 681 00:32:31,780 --> 00:32:36,570 >> АУДИТОРИЯ: Нужна ли нам знать кодирования для хеш-таблиц и попыток? 682 00:32:36,570 --> 00:32:40,300 Или мы просто должны понять, как они используются, концептуально? 683 00:32:40,300 --> 00:32:44,570 >> Джейсон Хиршхорн: Итак, поднимите руку если вы сделали хэш-таблицу для р набор 4 684 00:32:44,570 --> 00:32:46,920 со списком ссылок. 685 00:32:46,920 --> 00:32:47,960 Или р установлен 5. 686 00:32:47,960 --> 00:32:49,060 Так, чтобы было подавляющее большинство людей. 687 00:32:49,060 --> 00:32:50,390 P установить 5, 6, кто знает. 688 00:32:50,390 --> 00:32:51,240 Давным-давно. 689 00:32:51,240 --> 00:32:54,140 >> Таким образом, подавляющее большинство из вас сделали хеши со списками ссылок. 690 00:32:54,140 --> 00:32:56,525 И потому, что это, вероятно, тем более общий подход, и потому что мы провели 691 00:32:56,525 --> 00:32:59,460 много времени, делая списки ссылок и хэш столы, вы, вероятно, следует 692 00:32:59,460 --> 00:33:02,600 довольно хорошо знакомы с тем, как кодировать хэш-таблицу и список ссылок. 693 00:33:02,600 --> 00:33:05,060 >> И если вы думаете вернуться к этой проблеме установить, это не было действительно 694 00:33:05,060 --> 00:33:06,410 так сложно, как вы ожидали. 695 00:33:06,410 --> 00:33:08,120 И там было много меньше Код, чем вы ожидали. 696 00:33:08,120 --> 00:33:11,150 697 00:33:11,150 --> 00:33:14,650 Я бы сказал, вы должны знать, как код хэш-таблицу или список ссылок. 698 00:33:14,650 --> 00:33:17,010 Не то, чтобы вы бы спросили, что, обязательно, но вы должны 699 00:33:17,010 --> 00:33:19,730 конечно, знаете, что. 700 00:33:19,730 --> 00:33:21,860 >> Кроме того, если вы смотрите через последние викторины, было много 701 00:33:21,860 --> 00:33:26,450 вопросы о написании функций на списки ссылок или дважды связанные списки. 702 00:33:26,450 --> 00:33:28,370 Это, кажется, придумать каждый год. 703 00:33:28,370 --> 00:33:31,940 Право вставить на список ссылок, прямо удалить из списка ссылок, прямо вставить 704 00:33:31,940 --> 00:33:33,610 для двусвязный списка, и так далее. 705 00:33:33,610 --> 00:33:36,170 Так что, я чувствую себя довольно комфортно говорю, что вы должны знать, что. 706 00:33:36,170 --> 00:33:40,600 >> Для попытки, я бы сказал, вы должны конечно, знаете, как это работает, и, возможно, 707 00:33:40,600 --> 00:33:43,570 дать некоторые псевдокод для того, как закодировать его и установить его. 708 00:33:43,570 --> 00:33:45,600 Но это не было бы самое страшное в мир, если вы не знаете, как 709 00:33:45,600 --> 00:33:48,870 кодировать его в С. Было бы здорово, если вам знал, как код его в C, но я думаю, 710 00:33:48,870 --> 00:33:52,516 вероятно, псевдокод для попробовали бы наиболее вам потребуется 711 00:33:52,516 --> 00:33:53,270 знать для попытки. 712 00:33:53,270 --> 00:33:53,930 >> АУДИТОРИЯ: Дополнительный кредит? 713 00:33:53,930 --> 00:33:58,290 >> Джейсон Хиршхорн: И то же самое с, если мы идти в бинарных деревьев поиска, вы, возможно, 714 00:33:58,290 --> 00:34:02,320 нужно, - и вы видели в прошлом, мы сделали много - вы знаете, как 715 00:34:02,320 --> 00:34:03,380 бинарное дерево поиска работы. 716 00:34:03,380 --> 00:34:07,150 Вы должны, вероятно, сможет установить один в псевдо-код. 717 00:34:07,150 --> 00:34:10,510 Но поскольку подавляющее большинство людей этого не сделал на проблеме 718 00:34:10,510 --> 00:34:13,880 набор, я бы сказал, что это, вероятно, менее важно, что вы знаете, как код 719 00:34:13,880 --> 00:34:17,380 и установить на дерево, как это. 720 00:34:17,380 --> 00:34:19,679 >> Любые другие вопросы? 721 00:34:19,679 --> 00:34:23,234 Кроме того, мы можем попросить их по всей как мы идем по некоторым проблемам. 722 00:34:23,234 --> 00:34:27,170 Хорошо, мы собираемся двигаться дальше. 723 00:34:27,170 --> 00:34:28,230 Перейти этот слайд на данный момент. 724 00:34:28,230 --> 00:34:32,449 >> Говоря о деревьях, что является первым вопрос у меня для вас, ребята. 725 00:34:32,449 --> 00:34:34,270 Поскольку это является проблемой. 726 00:34:34,270 --> 00:34:37,380 Я бы сказал, это весьма вероятно, вы будете получить проблемы, как это на викторине 727 00:34:37,380 --> 00:34:43,659 прошу вас, чтобы закодировать некоторый тип вставки, удалять, поиск, для одного типа 728 00:34:43,659 --> 00:34:45,270 структуры данных мы уже видели. 729 00:34:45,270 --> 00:34:47,719 >> Это приходит каждый год, и мы провели Много времени во второй половине этого 730 00:34:47,719 --> 00:34:50,270 семестр переходя этих типов данных. 731 00:34:50,270 --> 00:34:54,170 Поэтому в данный момент, я определил узел в бинарном дереве поиска. 732 00:34:54,170 --> 00:34:58,490 И то, что я бы хотел, чтобы вы дается бинарное дерево поиска, которая начинается 733 00:34:58,490 --> 00:35:05,450 на этом узел звезды корня, то заполните реализация функции ниже, 734 00:35:05,450 --> 00:35:07,430 который, оказывается, функция находка. 735 00:35:07,430 --> 00:35:09,260 И сделать это с и без рекурсии. 736 00:35:09,260 --> 00:35:10,860 >> Поэтому я хочу, чтобы вы написали две функции. 737 00:35:10,860 --> 00:35:14,310 Один делает это с рекурсии, один делать это без рекурсии. 738 00:35:14,310 --> 00:35:18,050 И не думайте, что корень будет ненулевой. 739 00:35:18,050 --> 00:35:21,790 Таким образом, мы ищем целого г в дерево, начиная с корня, и мы должны 740 00:35:21,790 --> 00:35:25,280 чтобы написать это рекурсивно и многократно. 741 00:35:25,280 --> 00:35:26,300 Да. 742 00:35:26,300 --> 00:35:29,730 >> АУДИТОРИЯ: Итак, вы хотите, чтобы мы вернулись верно если мы считаем, и ложно, если мы 743 00:35:29,730 --> 00:35:30,480 не найти его. 744 00:35:30,480 --> 00:35:32,160 >> Джейсон Хиршхорн: Как вы узнали? 745 00:35:32,160 --> 00:35:33,100 Как вы узнали, что? 746 00:35:33,100 --> 00:35:36,500 >> АУДИТОРИЯ: я спрашивал сначала, но я был предполагая, потому что он говорит BOOL в 747 00:35:36,500 --> 00:35:37,490 начало функции. 748 00:35:37,490 --> 00:35:37,880 >> Джейсон Хиршхорн: Верно. 749 00:35:37,880 --> 00:35:41,020 В нем говорится, логический, так что я даже не нужно скажу, что я ожидаю, что вы вернуться 750 00:35:41,020 --> 00:35:41,350 потому что он говорит прямо там. 751 00:35:41,350 --> 00:35:42,280 Но это так. 752 00:35:42,280 --> 00:35:43,510 Вернуться, истинным или ложным. 753 00:35:43,510 --> 00:35:47,630 >> Поэтому, прежде чем начать, я рекомендовал бы, если вы не знакомы с 754 00:35:47,630 --> 00:35:51,300 бинарные деревья поиска, быстро рисование картина ему получить ваш 755 00:35:51,300 --> 00:35:51,750 понимание, правильно. 756 00:35:51,750 --> 00:35:54,720 Это также поможет вам при написании ваш код и проверить его. 757 00:35:54,720 --> 00:35:57,830 Опять же, вы также не так уж много Время на тест, чтобы делать все то, 758 00:35:57,830 --> 00:35:59,030 что мы просим вас сделать. 759 00:35:59,030 --> 00:36:02,350 Так писать псевдокод очень полезно. 760 00:36:02,350 --> 00:36:05,310 >> И мы как правило, дают о - 761 00:36:05,310 --> 00:36:06,820 если псевдокод совершенно правильно, это 762 00:36:06,820 --> 00:36:08,910 как правило, 50% по какому-либо вопросу. 763 00:36:08,910 --> 00:36:11,410 Так что это не жесткое правило, но если вы просто написать псевдокод и это 764 00:36:11,410 --> 00:36:13,460 правильно, это вообще 50%. 765 00:36:13,460 --> 00:36:14,970 Так что я всегда рекомендовал бы - 766 00:36:14,970 --> 00:36:16,870 если вы мало времени, или даже если вы просто пытаетесь, чтобы понять это - 767 00:36:16,870 --> 00:36:18,290 начиная с псевдокода. 768 00:36:18,290 --> 00:36:24,840 И, наконец, если бы вы могли написать это все в С, что было бы фантастическим. 769 00:36:24,840 --> 00:36:29,010 >> Итак, давайте три минуты работать по этой программе. 770 00:36:29,010 --> 00:36:33,120 А потом мы собираемся написать псевдокод для него только один раз, а затем 771 00:36:33,120 --> 00:36:35,455 мы собираемся, чтобы закодировать его рекурсивно а затем многократно. 772 00:36:35,455 --> 00:37:28,720 773 00:37:28,720 --> 00:37:30,760 >> Если у Вас возникли вопросы, пожалуйста бесплатно поднимите руку. 774 00:37:30,760 --> 00:37:34,270 Счастливая, чтобы прогуляться и ответить на них прежде чем мы начнем, как группа. 775 00:37:34,270 --> 00:39:22,600 776 00:39:22,600 --> 00:39:27,200 >> Давайте возобновить, и мы собираемся псевдокод рекурсивную версию 777 00:39:27,200 --> 00:39:29,830 это, и тогда мы будем кодировать его. 778 00:39:29,830 --> 00:39:33,380 Так рекурсивная функция нужны две вещи. 779 00:39:33,380 --> 00:39:35,960 Это может быть вопрос, который Вы может быть предложено. 780 00:39:35,960 --> 00:39:37,950 Нужны две вещи. 781 00:39:37,950 --> 00:39:40,610 Кто может поднять руку и сказать мне, что эти две вещи рекурсивный 782 00:39:40,610 --> 00:39:43,680 функция должна? 783 00:39:43,680 --> 00:39:45,030 По определению это есть две вещи. 784 00:39:45,030 --> 00:39:46,280 Каковы эти две вещи? 785 00:39:46,280 --> 00:39:48,580 786 00:39:48,580 --> 00:39:49,830 Новые руки. 787 00:39:49,830 --> 00:39:55,050 788 00:39:55,050 --> 00:39:56,390 Да, Олден. 789 00:39:56,390 --> 00:39:57,980 >> АУДИТОРИЯ: Так что я точно не знаю, если это терминология, но - 790 00:39:57,980 --> 00:39:59,715 >> Джейсон Хиршхорн: Я рад, Вы поднимая руку. 791 00:39:59,715 --> 00:40:03,380 >> АУДИТОРИЯ: Она нуждается в базовый вариант, и она нуждается в рекурсивный шаг. 792 00:40:03,380 --> 00:40:03,960 >> Джейсон Хиршхорн: Прекрасно. 793 00:40:03,960 --> 00:40:06,340 Она нуждается в базовый вариант и рекурсивный шаг. 794 00:40:06,340 --> 00:40:10,430 Так в чем же наша база данном случае? 795 00:40:10,430 --> 00:40:12,950 >> АУДИТОРИЯ: F корень равна равна нулю. 796 00:40:12,950 --> 00:40:15,110 К сожалению, только в псевдокоде, если это нуль. 797 00:40:15,110 --> 00:40:16,360 Если корень нуль. 798 00:40:16,360 --> 00:40:21,900 799 00:40:21,900 --> 00:40:23,540 >> Джейсон Хиршхорн: Если корень нуль. 800 00:40:23,540 --> 00:40:23,850 Это превосходно. 801 00:40:23,850 --> 00:40:24,610 Это наш базовый сценарий. 802 00:40:24,610 --> 00:40:25,910 Это то, что мы собираемся проверить в любое время. 803 00:40:25,910 --> 00:40:28,000 И базовый вариант является Первое, что вы делаете. 804 00:40:28,000 --> 00:40:29,720 Если вы попали в базовый вариант, вы закончите. 805 00:40:29,720 --> 00:40:34,140 >> Теперь нам нужно наше рекурсивный вызов, и я бы готов поспорить нам нужно пару 806 00:40:34,140 --> 00:40:35,440 рекурсивных вызовов здесь. 807 00:40:35,440 --> 00:40:39,630 Потому что это дерево, и мы может пойти несколько способов. 808 00:40:39,630 --> 00:40:43,190 Так что если корень нуль, мы хороши. 809 00:40:43,190 --> 00:40:44,970 >> Что вы предлагаете? 810 00:40:44,970 --> 00:40:49,640 А теперь я собираюсь начать кричать на вас, ребята, потому что я знаю, вы, ребята 811 00:40:49,640 --> 00:40:50,540 все это знаем. 812 00:40:50,540 --> 00:40:52,610 Но Энни, что должно следующая строка может быть? 813 00:40:52,610 --> 00:40:53,570 Что делать, если мы нашли его? 814 00:40:53,570 --> 00:40:55,526 Что нам делать? 815 00:40:55,526 --> 00:40:57,300 >> АУДИТОРИЯ: Если мы нашли его? 816 00:40:57,300 --> 00:40:59,160 >> Джейсон Хиршхорн: Или что должно быть, что - 817 00:40:59,160 --> 00:41:02,124 дайте мне псевдокод линия, где мы нашли его. 818 00:41:02,124 --> 00:41:04,700 >> АУДИТОРИЯ: Если я равна корень я? 819 00:41:04,700 --> 00:41:06,650 >> Джейсон Хиршхорн: И то что же нам делать? 820 00:41:06,650 --> 00:41:07,590 >> АУДИТОРИЯ: Вернуться правда. 821 00:41:07,590 --> 00:41:08,530 >> Джейсон Хиршхорн: Отлично. 822 00:41:08,530 --> 00:41:16,890 Так что, если я это я - 823 00:41:16,890 --> 00:41:17,400 ой, они оба звонил, я. 824 00:41:17,400 --> 00:41:18,470 Это сбивает с толку. 825 00:41:18,470 --> 00:41:23,830 Но если я это я возвращаюсь правда. 826 00:41:23,830 --> 00:41:25,620 Это, вероятно, на следующий что мы должны сделать. 827 00:41:25,620 --> 00:41:27,300 Имеет смысл. 828 00:41:27,300 --> 00:41:30,610 >> Хорошо, теперь мы не сделали наш рекурсивный называют еще, хотя, потому что рекурсивный 829 00:41:30,610 --> 00:41:32,300 вызов будет вызывать эту функцию снова. 830 00:41:32,300 --> 00:41:41,460 Так что должны на следующий линия псевдокоде быть? 831 00:41:41,460 --> 00:41:42,730 Анна. 832 00:41:42,730 --> 00:41:43,980 >> АУДИТОРИЯ: левая сторона. 833 00:41:43,980 --> 00:41:47,040 834 00:41:47,040 --> 00:41:47,590 >> Джейсон Хиршхорн: Будьте конкретны, хотя. 835 00:41:47,590 --> 00:41:50,600 Это бинарное дерево поиска, так что делает проверки на левую сторону влечет за собой? 836 00:41:50,600 --> 00:41:51,890 >> АУДИТОРИЯ: Так узел - 837 00:41:51,890 --> 00:41:53,342 Мне очень жаль, корень. 838 00:41:53,342 --> 00:41:55,306 А потом стрелка влево. 839 00:41:55,306 --> 00:41:59,234 840 00:41:59,234 --> 00:42:00,720 Узел, узел, извините. 841 00:42:00,720 --> 00:42:01,978 Я не читал это правильно. 842 00:42:01,978 --> 00:42:05,700 Она называется узел, не так ли? 843 00:42:05,700 --> 00:42:09,270 >> Джейсон Хиршхорн: Она будет называться корень в этой функции, но так или иначе. 844 00:42:09,270 --> 00:42:10,925 В левой части - да? 845 00:42:10,925 --> 00:42:13,780 >> АУДИТОРИЯ: Если это не равно я, то мы собираемся называть 846 00:42:13,780 --> 00:42:15,130 снова функция? 847 00:42:15,130 --> 00:42:15,490 >> Джейсон Хиршхорн: Совершенно верно. 848 00:42:15,490 --> 00:42:17,870 Если он не равен я, мы собираемся снова вызвать функцию. 849 00:42:17,870 --> 00:42:21,435 Но то, что сторона дерева мы будем снова вызвать функцию? 850 00:42:21,435 --> 00:42:22,685 >> АУДИТОРИЯ: На левой стороне. 851 00:42:22,685 --> 00:42:25,932 852 00:42:25,932 --> 00:42:27,670 >> Джейсон Хиршхорн: Мы не всегда буду называть его левая, если он 853 00:42:27,670 --> 00:42:29,190 не равна его. 854 00:42:29,190 --> 00:42:29,610 >> АУДИТОРИЯ: Ой, простите. 855 00:42:29,610 --> 00:42:31,200 Позвоните справа. 856 00:42:31,200 --> 00:42:33,680 >> Джейсон Хиршхорн: Мы хотим знать, В частности, хотя - помните, в 857 00:42:33,680 --> 00:42:37,700 бинарное дерево поиска, чтобы все левой стороне меньше. 858 00:42:37,700 --> 00:42:40,460 Все вправо правая часть больше. 859 00:42:40,460 --> 00:42:43,990 Так что это просто нет - да, идти вперед. 860 00:42:43,990 --> 00:42:46,805 >> АУДИТОРИЯ: Если это меньше, чем я, то - 861 00:42:46,805 --> 00:42:52,130 862 00:42:52,130 --> 00:42:53,380 если он находится на левой - 863 00:42:53,380 --> 00:42:56,160 864 00:42:56,160 --> 00:42:58,606 >> Джейсон Хиршхорн: Так что, если ри меньше - 865 00:42:58,606 --> 00:43:01,854 866 00:43:01,854 --> 00:43:09,110 так что если наш номер меньше, чем я, с какой стороны мы хотим идти? 867 00:43:09,110 --> 00:43:15,120 >> АУДИТОРИЯ: Мы хотим пойти на правой стороне. 868 00:43:15,120 --> 00:43:16,250 >> Джейсон Хиршхорн: Мы хотим пойти - 869 00:43:16,250 --> 00:43:19,210 Позвольте обратить быстрый дерево. 870 00:43:19,210 --> 00:43:23,850 Если это 5, то это будет 3. 871 00:43:23,850 --> 00:43:29,410 Так что, если ри меньше пяти, то, что сторона мы хотим идти? 872 00:43:29,410 --> 00:43:30,390 >> АУДИТОРИЯ: Прости, что? 873 00:43:30,390 --> 00:43:33,190 >> Джейсон Хиршхорн: Наш номер меньше, чем количество мы находимся 874 00:43:33,190 --> 00:43:34,710 глядя на прямо сейчас. 875 00:43:34,710 --> 00:43:35,890 >> АУДИТОРИЯ: О, тогда мы хотим пойти в левую сторону. 876 00:43:35,890 --> 00:43:36,240 Да. 877 00:43:36,240 --> 00:43:36,920 Извините. 878 00:43:36,920 --> 00:43:37,230 >> Джейсон Хиршхорн: Совершенно верно. 879 00:43:37,230 --> 00:43:38,480 Не беспокойтесь. 880 00:43:38,480 --> 00:43:41,020 В бинарном дереве поиска, все ниже находится слева, 881 00:43:41,020 --> 00:43:42,110 больше находится справа. 882 00:43:42,110 --> 00:43:46,700 Так что, если наша число меньше я мы проверяем - 883 00:43:46,700 --> 00:43:48,790 потому что вы видите в узел, он имеет I - 884 00:43:48,790 --> 00:43:50,040 то вы хотите, чтобы пойти налево. 885 00:43:50,040 --> 00:43:55,480 886 00:43:55,480 --> 00:43:56,720 >> И это является легким. 887 00:43:56,720 --> 00:44:01,700 Что это такое другая линия псевдокода нам надо написать? 888 00:44:01,700 --> 00:44:02,910 Карлос? 889 00:44:02,910 --> 00:44:05,970 >> АУДИТОРИЯ: То же самое, вы просто включите его больше, чем знаком 890 00:44:05,970 --> 00:44:07,420 и пойти направо. 891 00:44:07,420 --> 00:44:08,350 >> Джейсон Хиршхорн: Можете ли вы говорят, что это еще раз? 892 00:44:08,350 --> 00:44:11,640 >> АУДИТОРИЯ: Если наш номер больше чем я, пойти направо. 893 00:44:11,640 --> 00:44:24,900 894 00:44:24,900 --> 00:44:26,690 >> Джейсон Хиршхорн: Отлично Работа на псевдокоде. 895 00:44:26,690 --> 00:44:28,700 Сделаем это в реальном коде. 896 00:44:28,700 --> 00:44:33,280 И опять же, это псевдокод будет вероятно, получить тебя, потому что это 897 00:44:33,280 --> 00:44:35,480 правильно, 50% по этому вопросу. 898 00:44:35,480 --> 00:44:39,720 Но это псевдокод также переводит один к одному, по существу, в код. 899 00:44:39,720 --> 00:44:44,380 >> Так давайте делать это на языке C. Кто может дать мне первая строка кода? 900 00:44:44,380 --> 00:44:48,390 На самом деле, во-первых, прежде чем сделать что, позвольте мне остановиться - 901 00:44:48,390 --> 00:44:49,260 >> АУДИТОРИЯ: У меня есть вопрос. 902 00:44:49,260 --> 00:44:52,430 Почему вы отступ линия я тебе дал? 903 00:44:52,430 --> 00:44:54,160 >> Джейсон Хиршхорн: Потому что Я не мог написать. 904 00:44:54,160 --> 00:44:55,240 Я не знаю. 905 00:44:55,240 --> 00:44:55,650 Вы правы. 906 00:44:55,650 --> 00:44:57,780 Эта линия должна быть там. 907 00:44:57,780 --> 00:45:11,600 908 00:45:11,600 --> 00:45:14,480 >> ОК, вот наша функция. 909 00:45:14,480 --> 00:45:18,090 И позвольте мне остановиться, и, наше определение узла. 910 00:45:18,090 --> 00:45:23,320 911 00:45:23,320 --> 00:45:27,180 Что произойдет, если мы не сделали написать ЬурейеЕ? 912 00:45:27,180 --> 00:45:30,240 Кто-нибудь знает? 913 00:45:30,240 --> 00:45:32,570 >> АУДИТОРИЯ: Это не было бы составить. 914 00:45:32,570 --> 00:45:33,860 >> Джейсон Хиршхорн: Было бы компиляции, да. 915 00:45:33,860 --> 00:45:37,120 >> АУДИТОРИЯ: Будет ли это просто объявить один экземпляр вместо того, чтобы это новое 916 00:45:37,120 --> 00:45:39,840 введите можно объявить кратное случаи? 917 00:45:39,840 --> 00:45:41,700 >> Джейсон Хиршхорн: Поэтому он не будет знаю - он не будет 918 00:45:41,700 --> 00:45:43,120 просто объявить один тип. 919 00:45:43,120 --> 00:45:46,150 Вы все еще можете сделать много узлов. 920 00:45:46,150 --> 00:45:48,070 >> АУДИТОРИЯ: Но не надо написать структуры узлу каждый раз? 921 00:45:48,070 --> 00:45:48,640 >> Джейсон Хиршхорн: Совершенно верно. 922 00:45:48,640 --> 00:45:50,960 Вы должны были бы написать структура узел каждый раз, когда, вместо того, чтобы просто узел. 923 00:45:50,960 --> 00:45:55,270 Но с ЬурейеЕ, вы можете просто написать узлу каждый раз. 924 00:45:55,270 --> 00:45:58,240 Хорошо, кто не дал - да, Avica. 925 00:45:58,240 --> 00:46:01,520 >> АУДИТОРИЯ: Если корень равен равных нуль, возвращение ложным. 926 00:46:01,520 --> 00:46:07,130 927 00:46:07,130 --> 00:46:09,490 >> Джейсон Хиршхорн: Великий и это наша базовый вариант. 928 00:46:09,490 --> 00:46:11,200 Следующая строка кода. 929 00:46:11,200 --> 00:46:13,999 Тот, кто не дал меня строка кода еще? 930 00:46:13,999 --> 00:46:14,945 Да. 931 00:46:14,945 --> 00:46:23,360 >> АУДИТОРИЯ: Root стрелка я равна равна Î. 932 00:46:23,360 --> 00:46:27,260 Затем вернитесь правда. 933 00:46:27,260 --> 00:46:29,162 >> Джейсон Хиршхорн: Отлично. 934 00:46:29,162 --> 00:46:32,048 Следующая строка? 935 00:46:32,048 --> 00:46:32,790 Да. 936 00:46:32,790 --> 00:46:34,010 Кто-то еще? 937 00:46:34,010 --> 00:46:36,774 И тогда вы можете идти дальше. 938 00:46:36,774 --> 00:46:44,820 >> АУДИТОРИЯ: Иначе, если корень стрелка я меньше я буду возвращаться 939 00:46:44,820 --> 00:46:47,737 Функция называется находка корень - 940 00:46:47,737 --> 00:46:50,611 >> Джейсон Хиршхорн: Извините. 941 00:46:50,611 --> 00:46:56,272 >> АУДИТОРИЯ: Вернуться находка корень указывает налево запятая я. 942 00:46:56,272 --> 00:47:01,760 943 00:47:01,760 --> 00:47:08,440 >> Джейсон Хиршхорн: Так что, если ри больше чем вещи в дереве, мы хотим 944 00:47:08,440 --> 00:47:09,573 пойти налево? 945 00:47:09,573 --> 00:47:11,790 >> АУДИТОРИЯ: Нет, у меня было, что включается. 946 00:47:11,790 --> 00:47:13,040 >> Джейсон Хиршхорн: Который? 947 00:47:13,040 --> 00:47:16,310 948 00:47:16,310 --> 00:47:16,950 >> АУДИТОРИЯ: Нет, да. 949 00:47:16,950 --> 00:47:19,050 У меня есть менее подписать там. 950 00:47:19,050 --> 00:47:22,890 >> Джейсон Хиршхорн: справа, если ри является меньше, чем то, что в корне - 951 00:47:22,890 --> 00:47:25,660 наш текущий корень - то мы хочу пойти налево. 952 00:47:25,660 --> 00:47:26,960 И то, что последняя строка, вы? 953 00:47:26,960 --> 00:47:30,930 >> АУДИТОРИЯ: В принципе то же самое, кроме переключения больше или 954 00:47:30,930 --> 00:47:34,690 равной менее и слева направо. 955 00:47:34,690 --> 00:47:43,590 956 00:47:43,590 --> 00:47:43,680 >> Джейсон Хиршхорн: Отлично. 957 00:47:43,680 --> 00:47:48,430 Кто-нибудь есть какие-либо вопросы об этом? 958 00:47:48,430 --> 00:47:52,560 Таким образом, некоторые другие вещи, которые бы , был прав в том, что 959 00:47:52,560 --> 00:47:53,810 может быть-ltiff. 960 00:47:53,810 --> 00:47:56,520 961 00:47:56,520 --> 00:47:59,520 Угадайте, технически, ни один из них действительно также должны быть-ltiff. 962 00:47:59,520 --> 00:48:00,950 >> Кроме того, там, наверное, только один случай здесь. 963 00:48:00,950 --> 00:48:02,380 Так что, наверное, ваш последний случай. 964 00:48:02,380 --> 00:48:04,000 Вам даже не нужно, что-ltiff. 965 00:48:04,000 --> 00:48:06,160 Но, наверное, хорошо, чтобы написать это, чтобы было ясно. 966 00:48:06,160 --> 00:48:06,660 Да. 967 00:48:06,660 --> 00:48:09,200 >> АУДИТОРИЯ: Так вы не думаете, викторины - если мы сделаем ошибки, например, 968 00:48:09,200 --> 00:48:11,725 в синтаксисе - 969 00:48:11,725 --> 00:48:13,990 маленькие синтаксические ошибки - 970 00:48:13,990 --> 00:48:17,810 как же, что берутся в викторине? 971 00:48:17,810 --> 00:48:21,300 >> Джейсон Хиршхорн: Вообще на викторине, небольшой синтаксические ошибки или маленький 972 00:48:21,300 --> 00:48:24,010 Ошибки стиля не теряют вам очки. 973 00:48:24,010 --> 00:48:26,610 Так что, если Вы забыли точку с запятой здесь, это было бы в порядке. 974 00:48:26,610 --> 00:48:30,290 Если вы забыли закрыть эту скобку, что было бы в порядке. 975 00:48:30,290 --> 00:48:34,880 >> Огромные синтаксические ошибки, которые изменяют функциональный смысл вашего кода 976 00:48:34,880 --> 00:48:37,600 резко, вы можете получить сняли очки за. 977 00:48:37,600 --> 00:48:40,330 Или вообще, просто сортировка вам от наличия или отсутствия вашего 978 00:48:40,330 --> 00:48:42,150 Функции код, даже - 979 00:48:42,150 --> 00:48:44,830 не его дизайн так много, а не его стиль. 980 00:48:44,830 --> 00:48:50,780 981 00:48:50,780 --> 00:48:55,480 >> Давайте теперь кодировать итеративный версия находки. 982 00:48:55,480 --> 00:49:00,400 983 00:49:00,400 --> 00:49:03,450 Так что это будет очень похож, но Есть, конечно, будет 984 00:49:03,450 --> 00:49:06,250 некоторые ключевые отличия. 985 00:49:06,250 --> 00:49:09,160 Тем не менее, наш псевдокод , вероятно, может идти - 986 00:49:09,160 --> 00:49:11,610 мы все еще можем взять одну строку псевдокод и выяснить, что 987 00:49:11,610 --> 00:49:14,160 линия в этом случае. 988 00:49:14,160 --> 00:49:18,010 >> Таким образом, в итеративном варианте, что Как вы считаете, Юлия, должны 989 00:49:18,010 --> 00:49:19,260 быть первой строкой? 990 00:49:19,260 --> 00:49:23,100 991 00:49:23,100 --> 00:49:26,920 >> АУДИТОРИЯ: Опять же, в итерационном логическое значение, вам нужно настроить цикл, не так ли? 992 00:49:26,920 --> 00:49:27,660 >> Джейсон Хиршхорн: ОК. 993 00:49:27,660 --> 00:49:38,480 >> АУДИТОРИЯ: Так что для, как, к, для х равен 0, х меньше, чем я. 994 00:49:38,480 --> 00:49:42,260 Или нет, х меньше размер дерева. 995 00:49:42,260 --> 00:49:42,760 >> Джейсон Хиршхорн: Дерево. 996 00:49:42,760 --> 00:49:46,660 Таким образом, мы действительно не знаем, размер дерево, и мы действительно не знаем, для 997 00:49:46,660 --> 00:49:48,900 сколько раз мы можем пойти, так в чем другой тип цикла, что может быть 998 00:49:48,900 --> 00:49:50,150 лучше в этом случае? 999 00:49:50,150 --> 00:49:53,250 1000 00:49:53,250 --> 00:49:55,244 >> АУДИТОРИЯ: Если еще? 1001 00:49:55,244 --> 00:49:57,070 >> Джейсон Хиршхорн: Если еще не может быть петля. 1002 00:49:57,070 --> 00:49:58,935 Так в чем же тип цикла мы можем только идти до некоторых дело не встречались? 1003 00:49:58,935 --> 00:50:07,250 1004 00:50:07,250 --> 00:50:11,560 Что только другой тип цикла в С, кроме цикл? 1005 00:50:11,560 --> 00:50:11,930 >> АУДИТОРИЯ: В то время как. 1006 00:50:11,930 --> 00:50:13,380 >> Джейсон Хиршхорн: В то время как, именно так. 1007 00:50:13,380 --> 00:50:16,430 В какое-то время цикла, не нужно знать, как - 1008 00:50:16,430 --> 00:50:18,450 в то время как цикл и цикл может сделать та же самая вещь, но хорошая вещь 1009 00:50:18,450 --> 00:50:21,500 о время как петля нам не нужно знать, насколько большой наш дерево. 1010 00:50:21,500 --> 00:50:23,060 Так что мы собираемся, чтобы идти до чего? 1011 00:50:23,060 --> 00:50:25,880 1012 00:50:25,880 --> 00:50:28,032 >> АУДИТОРИЯ: Пока не равна размер - 1013 00:50:28,032 --> 00:50:32,320 >> Джейсон Хиршхорн: Ну, это очень похожа на нашу рекурсивного случае. 1014 00:50:32,320 --> 00:50:33,360 Так что - 1015 00:50:33,360 --> 00:50:36,470 >> АУДИТОРИЯ: В то время как корень я не равно я. 1016 00:50:36,470 --> 00:50:37,620 >> Джейсон Хиршхорн: Это действительно близко. 1017 00:50:37,620 --> 00:50:39,430 В то время как корень я - 1018 00:50:39,430 --> 00:50:40,610 давайте попробуем. 1019 00:50:40,610 --> 00:50:41,180 Я не думаю, [неразборчиво] 1020 00:50:41,180 --> 00:50:43,026 где корень я не равно я. 1021 00:50:43,026 --> 00:50:47,380 1022 00:50:47,380 --> 00:50:49,460 Мы, возможно, потребуется изменить его в немного немного, но это звучит как это довольно 1023 00:50:49,460 --> 00:50:50,160 хорошо, на данный момент. 1024 00:50:50,160 --> 00:50:51,710 Таким образом, мы сделаем это. 1025 00:50:51,710 --> 00:50:55,660 >> Кроме того, помните, что мы не можем предположить, за вопрос. 1026 00:50:55,660 --> 00:50:57,880 Вы не думайте, что корень будет ненулевой. 1027 00:50:57,880 --> 00:51:01,914 Так что же вы думаете, что очень Первое, что мы должны сделать, это? 1028 00:51:01,914 --> 00:51:02,770 >> АУДИТОРИЯ: Просто делать то же самое , что и раньше. 1029 00:51:02,770 --> 00:51:05,260 Если корень равен равных нуль, возвращение ложным. 1030 00:51:05,260 --> 00:51:11,030 1031 00:51:11,030 --> 00:51:12,130 >> Джейсон Хиршхорн: Отлично. 1032 00:51:12,130 --> 00:51:13,820 Таким образом, можно быть нулевым. 1033 00:51:13,820 --> 00:51:15,810 Поэтому мы хотим, чтобы избавиться о нем сразу же. 1034 00:51:15,810 --> 00:51:19,560 А потом мы собираемся галочку, если корень я не равен I. 1035 00:51:19,560 --> 00:51:24,480 Так, сказать, что мы ищем в этом дереве для 3 корня я не равны я, теперь 1036 00:51:24,480 --> 00:51:25,950 мы находимся в нашем время цикла. 1037 00:51:25,950 --> 00:51:27,500 Что мы хотим сделать? 1038 00:51:27,500 --> 00:51:32,320 1039 00:51:32,320 --> 00:51:35,430 И опять же, это будет довольно похожа на нашу рекурсивной версии. 1040 00:51:35,430 --> 00:51:36,230 Да. 1041 00:51:36,230 --> 00:51:40,470 >> АУДИТОРИЯ: Таким образом, вы хотели бы итерации, или продолжать идти вниз по дереву, пока 1042 00:51:40,470 --> 00:51:42,400 корень не равен нулю. 1043 00:51:42,400 --> 00:51:45,120 1044 00:51:45,120 --> 00:51:46,640 >> Джейсон Хиршхорн: Пока корень не равен нулю? 1045 00:51:46,640 --> 00:51:50,200 >> АУДИТОРИЯ: Корневой тире я не равен NULL. 1046 00:51:50,200 --> 00:51:51,220 Просто корень, да. 1047 00:51:51,220 --> 00:51:52,920 Как долго, как корень не равен нулю. 1048 00:51:52,920 --> 00:51:54,240 >> Джейсон Хиршхорн: Итак, вы хотите изменить это в корне 1049 00:51:54,240 --> 00:51:56,590 не равно NULL? 1050 00:51:56,590 --> 00:51:59,020 >> АУДИТОРИЯ: Да. 1051 00:51:59,020 --> 00:52:00,800 >> АУДИТОРИЯ: Мы могли бы объединить это, не так ли? 1052 00:52:00,800 --> 00:52:02,990 Нам не нужно ПЧ, на начальном этапе. 1053 00:52:02,990 --> 00:52:05,180 >> Джейсон Хиршхорн: Хорошо, таким образом, если мы не - 1054 00:52:05,180 --> 00:52:08,140 если мы объединим их, так что мы собираемся делать в то время как корень не равен NULL, и 1055 00:52:08,140 --> 00:52:10,800 если корень происходит быть нулевыми на начиная, что мы делаем здесь? 1056 00:52:10,800 --> 00:52:11,450 >> АУДИТОРИЯ: Вернуться ложным. 1057 00:52:11,450 --> 00:52:12,730 >> Джейсон Хиршхорн: Отлично. 1058 00:52:12,730 --> 00:52:14,110 Так оба пути, вероятно, работал бы. 1059 00:52:14,110 --> 00:52:15,645 Это другой способ, и это объединяет его. 1060 00:52:15,645 --> 00:52:18,950 Но опять же, если вы сделали так или иначе, мы не собираюсь снять дизайн 1061 00:52:18,950 --> 00:52:19,800 указывает на викторине. 1062 00:52:19,800 --> 00:52:21,020 Но это хорошо выглядит. 1063 00:52:21,020 --> 00:52:23,940 >> Таким образом, хотя корень не равно нуль, что является первым 1064 00:52:23,940 --> 00:52:25,400 что мы хотим, чтобы проверить? 1065 00:52:25,400 --> 00:52:26,330 Кто-то еще? 1066 00:52:26,330 --> 00:52:29,720 Null, что первое, что? 1067 00:52:29,720 --> 00:52:32,850 >> АУДИТОРИЯ: Если ри меньше - 1068 00:52:32,850 --> 00:52:36,140 о, я думаю, если у нас уже нашли его в корне. 1069 00:52:36,140 --> 00:52:40,830 Так что если корень стрелка я равна I - 1070 00:52:40,830 --> 00:52:40,990 >> Джейсон Хиршхорн: Извините? 1071 00:52:40,990 --> 00:52:45,840 >> АУДИТОРИЯ: Если корень стрелка я равно равна I - 1072 00:52:45,840 --> 00:52:47,090 >> Джейсон Хиршхорн: Что нам делать? 1073 00:52:47,090 --> 00:52:50,300 1074 00:52:50,300 --> 00:52:51,550 >> АУДИТОРИЯ: Вернуться правда. 1075 00:52:51,550 --> 00:52:58,850 1076 00:52:58,850 --> 00:52:59,280 >> Джейсон Хиршхорн: Отлично. 1077 00:52:59,280 --> 00:53:00,530 И что дальше? 1078 00:53:00,530 --> 00:53:04,510 1079 00:53:04,510 --> 00:53:06,843 Джефф, что следующая строка кода? 1080 00:53:06,843 --> 00:53:16,190 >> АУДИТОРИЯ: Если я меньше корневой стрелкой я, то корень равна корень стрелкой влево. 1081 00:53:16,190 --> 00:53:21,550 >> Джейсон Хиршхорн: Главные равно корень стрелка влево. 1082 00:53:21,550 --> 00:53:24,530 Так что, наверное, самый большой Разница здесь в этот повторяющийся 1083 00:53:24,530 --> 00:53:26,600 версия в отличие от рекурсивная версия. 1084 00:53:26,600 --> 00:53:28,970 Рекурсивная версия, мы вызвать функцию снова. 1085 00:53:28,970 --> 00:53:32,640 Мы будем обновлять корень, когда мы называем новую функцию. 1086 00:53:32,640 --> 00:53:34,170 Здесь мы не призываем новую функцию. 1087 00:53:34,170 --> 00:53:37,610 Мы просто только обновления корень в этой функции. 1088 00:53:37,610 --> 00:53:38,880 Это превосходно. 1089 00:53:38,880 --> 00:53:40,730 И то, что последняя строка кода? 1090 00:53:40,730 --> 00:53:43,950 1091 00:53:43,950 --> 00:53:44,880 Да, Марио? 1092 00:53:44,880 --> 00:53:48,290 >> АУДИТОРИЯ: остальное корневые равно корень со стрелкой вправо. 1093 00:53:48,290 --> 00:53:49,492 >> Джейсон Хиршхорн: Извините? 1094 00:53:49,492 --> 00:53:52,340 >> АУДИТОРИЯ: Главные равно корень со стрелкой вправо. 1095 00:53:52,340 --> 00:53:55,590 1096 00:53:55,590 --> 00:53:57,140 >> Джейсон Хиршхорн: Не могли бы вы также написать что-то вроде этого? 1097 00:53:57,140 --> 00:54:02,786 1098 00:54:02,786 --> 00:54:03,890 >> Зала: Я понятия не имею,. 1099 00:54:03,890 --> 00:54:05,140 >> Джейсон Хиршхорн: Вы не можете. 1100 00:54:05,140 --> 00:54:07,302 1101 00:54:07,302 --> 00:54:08,270 Вы не можете сделать плюс равных. 1102 00:54:08,270 --> 00:54:10,780 ОК, так что это хорошо выглядит. 1103 00:54:10,780 --> 00:54:13,620 Почему бы нам просто не сделать это чтобы очистить его. 1104 00:54:13,620 --> 00:54:15,220 Это выглядит большим, и это будет работать. 1105 00:54:15,220 --> 00:54:16,920 И мы бы вырваться. 1106 00:54:16,920 --> 00:54:21,460 >> Если корень слева был нулевым или корневой право был нулевым, мы приехали бы сюда. 1107 00:54:21,460 --> 00:54:22,470 Корневая будет равна нуль. 1108 00:54:22,470 --> 00:54:24,270 Мы бы вырваться из нашего цикла, и мы бы вернуться ложным. 1109 00:54:24,270 --> 00:54:26,280 Поэтому, когда мы вырваться из цикл, мы вернуться ложным. 1110 00:54:26,280 --> 00:54:29,520 1111 00:54:29,520 --> 00:54:32,793 >> И снова, в то время как петля было прекрасно здесь, потому что мы не знаем, как 1112 00:54:32,793 --> 00:54:33,850 большая наша дерево. 1113 00:54:33,850 --> 00:54:36,460 Мы пытались написать цикл, но мы понял, вы должны выяснить, как 1114 00:54:36,460 --> 00:54:37,410 она велика загодя. 1115 00:54:37,410 --> 00:54:38,720 Да. 1116 00:54:38,720 --> 00:54:41,790 >> АУДИТОРИЯ: Если бы это было не бинарный дерево поиска, было бы реальным математика-й 1117 00:54:41,790 --> 00:54:44,220 написать его многократно, не так ли? 1118 00:54:44,220 --> 00:54:47,170 Мол, если бы это было дерево, но не обязательно - 1119 00:54:47,170 --> 00:54:49,730 так это было не все меньше слева, и все больше справа. 1120 00:54:49,730 --> 00:54:52,540 Было бы очень трудно перебрать его, не так ли? 1121 00:54:52,540 --> 00:54:55,720 Мы должны были бы сохранить то, что было раньше на в дереве и вернуться, 1122 00:54:55,720 --> 00:54:56,970 и все в таком духе. 1123 00:54:56,970 --> 00:54:59,690 1124 00:54:59,690 --> 00:55:02,010 >> Джейсон Хиршхорн: Если бы не это двоичный дерево поиска, если это была просто 1125 00:55:02,010 --> 00:55:04,740 дерево и вещи не были сортируются, как это - 1126 00:55:04,740 --> 00:55:07,440 и мы поняли раньше, когда Анна помогал нам, что делает его 1127 00:55:07,440 --> 00:55:08,800 отсортированный нам очень помогает - 1128 00:55:08,800 --> 00:55:12,610 мы должны были бы, да, всегда сохранять где мы были ранее. 1129 00:55:12,610 --> 00:55:14,430 Но не может быть много где мы были previouslys. 1130 00:55:14,430 --> 00:55:17,730 Там может быть много родительских узлов. 1131 00:55:17,730 --> 00:55:22,530 >> Наверное, лучший способ сделать это будет в том, чтобы продолжать настаивать вещи на некоторые 1132 00:55:22,530 --> 00:55:24,170 тип стека или очереди. 1133 00:55:24,170 --> 00:55:26,030 Вы никогда не должны были бы кодировать этот потому что это нелегкая задача. 1134 00:55:26,030 --> 00:55:30,820 Но вы нажимаете некоторые вещи в стек или стоять в очереди, а затем поп их, и 1135 00:55:30,820 --> 00:55:31,890 затем оценить их. 1136 00:55:31,890 --> 00:55:34,200 >> А потом есть другая вещь, где вы на самом деле положить узлы и 1137 00:55:34,200 --> 00:55:36,090 затем создать что, а затем поиск через это. 1138 00:55:36,090 --> 00:55:38,700 Это может быть лучший способ это сделать. 1139 00:55:38,700 --> 00:55:42,410 ОК, все вопросы об этой проблеме? 1140 00:55:42,410 --> 00:55:44,670 >> АУДИТОРИЯ: Это на соответствующую записку. 1141 00:55:44,670 --> 00:55:50,460 Будет ли у нас для сравнения времени работы для хэш-таблицы, двоичный 1142 00:55:50,460 --> 00:55:52,160 деревья поиска, и так далее? 1143 00:55:52,160 --> 00:55:54,310 >> Джейсон Хиршхорн: Наверное. 1144 00:55:54,310 --> 00:55:56,150 Так давайте сделаем это очень быстро. 1145 00:55:56,150 --> 00:55:58,490 Время работы для хэш-таблицы - 1146 00:55:58,490 --> 00:55:59,090 что же остальные? 1147 00:55:59,090 --> 00:56:00,050 Двоичной дерево? 1148 00:56:00,050 --> 00:56:02,920 >> АУДИТОРИЯ: списки Link. 1149 00:56:02,920 --> 00:56:04,780 >> Джейсон Хиршхорн: Хорошо, давайте сделаем вставку. 1150 00:56:04,780 --> 00:56:09,980 Что такое большая O вставки на хэш-таблице? 1151 00:56:09,980 --> 00:56:13,080 1152 00:56:13,080 --> 00:56:15,285 Каковы предположения вы делаете? 1153 00:56:15,285 --> 00:56:17,760 >> АУДИТОРИЯ: Вы вставки в начале списка ссылок. 1154 00:56:17,760 --> 00:56:19,860 >> Джейсон Хиршхорн: Вероятно, первым предположение нет столкновения. 1155 00:56:19,860 --> 00:56:22,340 Если нет столкновения, то время вставки находится один. 1156 00:56:22,340 --> 00:56:26,560 Если есть столкновения, и вы делать раздельного связывания и вставки 1157 00:56:26,560 --> 00:56:31,880 в начале списка ссылок, затем вставка также постоянна. 1158 00:56:31,880 --> 00:56:34,700 >> Если вы делаете хэш-таблицу, но вы иметь другой метод борьбы 1159 00:56:34,700 --> 00:56:36,040 со столкновениями, что другой метод? 1160 00:56:36,040 --> 00:56:41,580 1161 00:56:41,580 --> 00:56:42,960 Что является другим способом борьбы с 1162 00:56:42,960 --> 00:56:44,205 столкновения в хэш-таблице? 1163 00:56:44,205 --> 00:56:44,915 >> АУДИТОРИЯ: Линейное программирование. 1164 00:56:44,915 --> 00:56:45,540 >> Джейсон Хиршхорн: Линейное программирование. 1165 00:56:45,540 --> 00:56:47,770 Так что мы собираемся продолжать смотреть на следующий открытом месте. 1166 00:56:47,770 --> 00:56:50,390 Это не постоянная времени вставки. 1167 00:56:50,390 --> 00:56:52,266 Вы могли бы пройти через вся таблица, так что 1168 00:56:52,266 --> 00:56:53,936 может быть большим О н. 1169 00:56:53,936 --> 00:56:54,740 Да. 1170 00:56:54,740 --> 00:56:57,690 >> АУДИТОРИЯ: В противном случае просто цепочки? 1171 00:56:57,690 --> 00:57:00,160 >> Джейсон Хиршхорн: Мы сделали отдельный цепочки. 1172 00:57:00,160 --> 00:57:00,720 Это было первое. 1173 00:57:00,720 --> 00:57:01,560 Это то, что список ссылок. 1174 00:57:01,560 --> 00:57:03,720 Причудливое название отдельно цепочки. 1175 00:57:03,720 --> 00:57:06,880 Это может быть любой тип структуры списка мы, оказывается, сделать в списке ссылок. 1176 00:57:06,880 --> 00:57:10,490 >> Итак, еще раз, вставка на хэш-таблице может быть постоянная времени. 1177 00:57:10,490 --> 00:57:13,160 А как насчет вставки на очереди укладчика? 1178 00:57:13,160 --> 00:57:19,260 1179 00:57:19,260 --> 00:57:20,640 >> АУДИТОРИЯ: Разве это не постоянная? 1180 00:57:20,640 --> 00:57:21,530 >> Джейсон Хиршхорн: Это постоянная времени. 1181 00:57:21,530 --> 00:57:23,420 Ты просто толкая его. 1182 00:57:23,420 --> 00:57:24,120 ОК. 1183 00:57:24,120 --> 00:57:25,380 Вносимые, каковы были остальные? 1184 00:57:25,380 --> 00:57:27,100 На попытки? 1185 00:57:27,100 --> 00:57:30,252 Что такое Big O вставки на попытки? 1186 00:57:30,252 --> 00:57:32,808 >> АУДИТОРИЯ: длина постоянна. 1187 00:57:32,808 --> 00:57:34,560 Длина самой длинной - 1188 00:57:34,560 --> 00:57:36,998 Длина слова вы вставки. 1189 00:57:36,998 --> 00:57:38,210 >> Джейсон Хиршхорн: Извините? 1190 00:57:38,210 --> 00:57:39,120 Подождите, так что же я слышу? 1191 00:57:39,120 --> 00:57:40,260 Вы сказали, - что ты сказал? 1192 00:57:40,260 --> 00:57:41,650 Какова была ваша ответ, Маркус? 1193 00:57:41,650 --> 00:57:43,640 >> АУДИТОРИЯ: длина слова вы вставки в символах, 1194 00:57:43,640 --> 00:57:45,480 предполагаю, что это попытка характер. 1195 00:57:45,480 --> 00:57:46,840 >> Джейсон Хиршхорн: Итак, длина слова. 1196 00:57:46,840 --> 00:57:49,500 Мы сделаем предположение, что это строка символов. 1197 00:57:49,500 --> 00:57:51,930 Вы сказали что-то другое, хотя. 1198 00:57:51,930 --> 00:57:55,490 Вы сказали, длина самого длинного слова. 1199 00:57:55,490 --> 00:57:57,600 >> АУДИТОРИЯ: Это просто постоянная, не так ли? 1200 00:57:57,600 --> 00:57:58,440 >> Джейсон Хиршхорн: Зачем это быть постоянным? 1201 00:57:58,440 --> 00:58:00,970 >> АУДИТОРИЯ: Как, если вы используете большие O обозначения, то это не зависит 1202 00:58:00,970 --> 00:58:04,680 от количества вещей, которые уже в попытке. 1203 00:58:04,680 --> 00:58:07,344 >> Джейсон Хиршхорн: Таким образом, мы бы говорят, что это постоянная времени. 1204 00:58:07,344 --> 00:58:11,840 Это постоянная вставки, и это потому, что эта идея - 1205 00:58:11,840 --> 00:58:14,820 , у нас есть Слово, 45, или слово, что это 60, что 1206 00:58:14,820 --> 00:58:16,800 имеет постоянное число. 1207 00:58:16,800 --> 00:58:21,050 И было бы просто быть вставлен за постоянное время. 1208 00:58:21,050 --> 00:58:26,060 >> На практике, однако, это не было бы, очевидно, произойдет в одну миллисекунду, 1209 00:58:26,060 --> 00:58:26,590 например. 1210 00:58:26,590 --> 00:58:28,880 Но мы сказали бы, большой вывода постоянная для попытки. 1211 00:58:28,880 --> 00:58:31,330 И это одна из его больших преимуществ. 1212 00:58:31,330 --> 00:58:33,330 >> А как насчет вставки в список ссылок? 1213 00:58:33,330 --> 00:58:37,220 Просто общий, отсортированный список ссылка? 1214 00:58:37,220 --> 00:58:37,700 Да. 1215 00:58:37,700 --> 00:58:38,530 >> АУДИТОРИЯ: у меня был вопрос. 1216 00:58:38,530 --> 00:58:42,670 На тест, будут ли они когда-нибудь спрашивали нас о Время вставки вот четыре шага, 1217 00:58:42,670 --> 00:58:43,270 или что? 1218 00:58:43,270 --> 00:58:44,300 Или это просто - 1219 00:58:44,300 --> 00:58:47,670 когда вы говорите, время ввода является одним, это просто означает, постоянная времени? 1220 00:58:47,670 --> 00:58:49,770 >> Джейсон Хиршхорн: Да, они будут всегда спрашивают, является его большим О п? 1221 00:58:49,770 --> 00:58:51,440 Big O из журнала п? 1222 00:58:51,440 --> 00:58:53,960 N квадрат постоянной. 1223 00:58:53,960 --> 00:58:56,520 Те, действительно единственный те, которые вы должны знать. 1224 00:58:56,520 --> 00:58:58,420 А как насчет вставки на сортируются список ссылок? 1225 00:58:58,420 --> 00:58:59,440 >> АУДИТОРИЯ: у меня был вопрос - 1226 00:58:59,440 --> 00:58:59,980 вопрос - 1227 00:58:59,980 --> 00:59:01,060 >> Джейсон Хиршхорн: Каков ответ на этот вопрос, хотя? 1228 00:59:01,060 --> 00:59:02,120 >> АУДИТОРИЯ: Подождите, что вы спрашиваете? 1229 00:59:02,120 --> 00:59:06,750 >> Джейсон Хиршхорн: Что такое большая вывода Включение в список, отсортированный ссылка? 1230 00:59:06,750 --> 00:59:07,070 >> АУДИТОРИЯ: Один? 1231 00:59:07,070 --> 00:59:09,400 Никакие не ждут, не ждут, н. 1232 00:59:09,400 --> 00:59:11,420 >> Джейсон Хиршхорн: Н. Кроме того список ссылок. 1233 00:59:11,420 --> 00:59:12,706 И то, что было на ваш вопрос? 1234 00:59:12,706 --> 00:59:16,440 >> АУДИТОРИЯ: Так вы бы написать о от к или вывода 1 для - 1235 00:59:16,440 --> 00:59:18,150 >> Джейсон Хиршхорн: Ох. 1236 00:59:18,150 --> 00:59:21,830 Я хотел бы написать о 1, наверное. 1237 00:59:21,830 --> 00:59:24,160 Был один другой структурой данных что было бы хорошо. 1238 00:59:24,160 --> 00:59:25,730 Дерево, дерево двоичного поиска. 1239 00:59:25,730 --> 00:59:27,510 Что вставки на бинарное дерево? 1240 00:59:27,510 --> 00:59:31,190 1241 00:59:31,190 --> 00:59:33,900 >> АУДИТОРИЯ: Логин. 1242 00:59:33,900 --> 00:59:39,260 >> Джейсон Хиршхорн: Итак, что является худшим дело в бинарном дереве поиска? 1243 00:59:39,260 --> 00:59:45,350 Так что, если мы, случается, начинаются в 5, и каждый число больше 5, то 1244 00:59:45,350 --> 00:59:48,760 у нас есть 5, 7, 9, 11, и так далее. 1245 00:59:48,760 --> 00:59:52,255 В этом случае, это в основном просто ссылку Список, и мы должны вставить все 1246 00:59:52,255 --> 00:59:52,680 путь в конце. 1247 00:59:52,680 --> 00:59:54,350 Так что это большой О н. 1248 00:59:54,350 --> 00:59:57,720 >> Это может быть наш худший случай на бинарном дереве поиска. 1249 00:59:57,720 --> 01:00:00,890 Очевидно, что вы никогда не построить бинарное дерево с 5 в 1250 01:00:00,890 --> 01:00:04,270 средний, зная 5 будет будет под наименьшим номером. 1251 01:00:04,270 --> 01:00:08,030 Но это может быть, если вы начиная с нуля. 1252 01:00:08,030 --> 01:00:10,980 Есть вопросы по этому прежде, чем я перейти к другому вопросу? 1253 01:00:10,980 --> 01:00:11,560 Это был хороший вопрос. 1254 01:00:11,560 --> 01:00:15,100 Я знал бы большой вывода - 1255 01:00:15,100 --> 01:00:18,620 >> АУДИТОРИЯ: Что о поиске для тех, кто четыре? 1256 01:00:18,620 --> 01:00:20,400 >> Джейсон Хиршхорн: Определенно мы сделал поиска и сортировки. 1257 01:00:20,400 --> 01:00:22,160 Мы сделали все эти алгоритмы, правильно. 1258 01:00:22,160 --> 01:00:23,390 Подождите, было то, что для викторины 1? 1259 01:00:23,390 --> 01:00:23,980 Был, что покрыта - 1260 01:00:23,980 --> 01:00:25,860 ты уже есть, что вопрос о викторине 1? 1261 01:00:25,860 --> 01:00:29,650 Большой О выполнения бинарного поиска, сортировка вставками, пузырьковой сортировки? 1262 01:00:29,650 --> 01:00:30,160 >> АУДИТОРИЯ: Да. 1263 01:00:30,160 --> 01:00:32,790 >> Джейсон Хиршхорн: Если бы вам пришлось, что вопрос о викторине 0, наверняка вы не будете 1264 01:00:32,790 --> 01:00:35,180 получить точно такой же вопрос о викторине 1. 1265 01:00:35,180 --> 01:00:36,300 Может быть еще хорошо знать тех,. 1266 01:00:36,300 --> 01:00:38,520 Вы должны надеемся, знаете GH уже. 1267 01:00:38,520 --> 01:00:40,740 >> Но другие логарифмические время автономной работы , вероятно, хорошо знать. 1268 01:00:40,740 --> 01:00:42,890 Вещи, которые не были покрыты на Quiz 0. 1269 01:00:42,890 --> 01:00:47,300 Как и все этих операторов на эти абстрактные типы данных. 1270 01:00:47,300 --> 01:00:50,760 >> Хорошо, давайте двигаться дальше. 1271 01:00:50,760 --> 01:00:52,190 Это надо быть довольно быстро. 1272 01:00:52,190 --> 01:00:56,170 И это новый язык у нас не на самом деле закодированы в перед. 1273 01:00:56,170 --> 01:00:59,300 Это вопрос, запрашиваемая кодировать в PHP. 1274 01:00:59,300 --> 01:01:01,950 Так считают массив PHP ниже. 1275 01:01:01,950 --> 01:01:06,150 Написать PHP и / или HTML коды, такие, что выводит таблицу с двумя столбцами с ТФ 1276 01:01:06,150 --> 01:01:08,810 Имена и дома. 1277 01:01:08,810 --> 01:01:11,600 >> Вы никогда не делали этого раньше, это конкретная проблема. 1278 01:01:11,600 --> 01:01:16,270 Но это должны быть хорошо знакомы с что вы делали в проблеме установить 7. 1279 01:01:16,270 --> 01:01:21,250 Так что я был бы готов держать пари, вы будете спросил закодировать что-то в PHP, что 1280 01:01:21,250 --> 01:01:23,880 очень похож на то, что вы сделал в задаче установить 7. 1281 01:01:23,880 --> 01:01:26,300 >> Во-первых, массив не что конкретно. 1282 01:01:26,300 --> 01:01:28,140 Какой вид массива это? 1283 01:01:28,140 --> 01:01:29,080 >> АУДИТОРИЯ: Ассоциативный. 1284 01:01:29,080 --> 01:01:31,250 >> Джейсон Хиршхорн: Это ассоциативный массив. 1285 01:01:31,250 --> 01:01:33,750 И в чем же разница между ассоциативный массив и объект? 1286 01:01:33,750 --> 01:01:41,780 1287 01:01:41,780 --> 01:01:44,857 >> АУДИТОРИЯ: массив объектов имеет индекс целых чисел, и ассоциативный массив 1288 01:01:44,857 --> 01:01:47,814 является индексом строки, или что-то в этом роде. 1289 01:01:47,814 --> 01:01:50,570 1290 01:01:50,570 --> 01:01:54,880 >> Джейсон Хиршхорн: Так массив объекты будут иметь индексы 1291 01:01:54,880 --> 01:01:57,090 целые числа, а объект имеет поля. 1292 01:01:57,090 --> 01:02:01,590 Он имеет те поля имена, как имя, дом, студент. 1293 01:02:01,590 --> 01:02:03,720 У вас есть идея? 1294 01:02:03,720 --> 01:02:06,630 >> АУДИТОРИЯ: Ну, ассоциативное Массив находится в PHP, не так ли? 1295 01:02:06,630 --> 01:02:07,880 И объект находится в JavaScript? 1296 01:02:07,880 --> 01:02:12,330 1297 01:02:12,330 --> 01:02:14,820 >> не Джейсон Хиршхорн: Честно говоря, нет никакой реальная разница между ними. 1298 01:02:14,820 --> 01:02:19,540 Оба имеют строки в качестве ключей, а может есть в основном ничего в качестве значения. 1299 01:02:19,540 --> 01:02:21,250 Разные языки, позвоните по одному вещь ассоциативный массив, 1300 01:02:21,250 --> 01:02:22,750 Одно дело объект. 1301 01:02:22,750 --> 01:02:25,960 Так честно, нет никакого реального разница, но есть, конечно, некоторые 1302 01:02:25,960 --> 01:02:27,730 синтаксические различия между ними. 1303 01:02:27,730 --> 01:02:28,200 Да. 1304 01:02:28,200 --> 01:02:33,580 >> АУДИТОРИЯ: Так как объект также под кодом капот в хэш-таблице, то? 1305 01:02:33,580 --> 01:02:35,796 >> Джейсон Хиршхорн: Что вы В смысле, закодированы под капотом? 1306 01:02:35,796 --> 01:02:38,017 >> АУДИТОРИЯ: Нам сказали, что ассоциативная Массив был технически 1307 01:02:38,017 --> 01:02:39,960 хэш-таблицы. 1308 01:02:39,960 --> 01:02:44,510 Так объект также технически хэш-таблицы? 1309 01:02:44,510 --> 01:02:45,350 >> Джейсон Хиршхорн: я не собираюсь ответить на этот вопрос. 1310 01:02:45,350 --> 01:02:46,600 Я вернусь к вам на что. 1311 01:02:46,600 --> 01:02:48,980 Но я не думал бы об либо из тех, как этот. 1312 01:02:48,980 --> 01:02:53,790 Но, в любом случае, ассоциативный массив и Объект, как правило, люди используют те 1313 01:02:53,790 --> 01:02:54,910 термины взаимозаменяемы. 1314 01:02:54,910 --> 01:02:57,630 В этом случае, прохладная часть что вы можете использовать ключи. 1315 01:02:57,630 --> 01:03:00,580 Строки как ключи, а не только простые числа. 1316 01:03:00,580 --> 01:03:02,070 >> Так что я говорю о это на некоторое время. 1317 01:03:02,070 --> 01:03:04,090 Будем надеяться, что у некоторых людей есть получили начал на этом. 1318 01:03:04,090 --> 01:03:08,050 Мы собираемся написать некоторый PHP и HTML Код, таким образом, что мы получаем в два столбца 1319 01:03:08,050 --> 01:03:11,830 стол с TFS имен и домов. 1320 01:03:11,830 --> 01:03:15,380 >> Хорошо, я также хотел бы заголовок грести по этой таблице. 1321 01:03:15,380 --> 01:03:18,410 Так что я собираюсь получить прямо в это. 1322 01:03:18,410 --> 01:03:20,770 Мы собираемся подать, новый, и мы собираемся - 1323 01:03:20,770 --> 01:03:27,780 1324 01:03:27,780 --> 01:03:28,320 >> ОК. 1325 01:03:28,320 --> 01:03:29,970 Как мне начать таблица? 1326 01:03:29,970 --> 01:03:32,090 Что тег, Майкл, начать таблицу? 1327 01:03:32,090 --> 01:03:32,890 >> АУДИТОРИЯ: Таблица. 1328 01:03:32,890 --> 01:03:34,020 >> Джейсон Хиршхорн: Таблица. 1329 01:03:34,020 --> 01:03:37,870 И если я открываю тег, что еще мне нужно? 1330 01:03:37,870 --> 01:03:39,810 >> АУДИТОРИЯ: голова? 1331 01:03:39,810 --> 01:03:41,040 Или, я думаю, класс. 1332 01:03:41,040 --> 01:03:41,730 >> Джейсон Хиршхорн: Так, извините. 1333 01:03:41,730 --> 01:03:45,430 Предположим, что мы уже написали doctab, HTML, все такое. 1334 01:03:45,430 --> 01:03:50,230 Но если я открываю эту таблицу тег, что еще мне нужно писать? 1335 01:03:50,230 --> 01:03:53,450 для проверки HTML? 1336 01:03:53,450 --> 01:03:55,000 >> АУДИТОРИЯ: Закройте его. 1337 01:03:55,000 --> 01:03:56,050 >> Джейсон Хиршхорн: Закройте тег. 1338 01:03:56,050 --> 01:03:57,575 Как мне написать тег крупным стол? 1339 01:03:57,575 --> 01:03:59,580 >> АУДИТОРИЯ: Dot сократить таблицу. 1340 01:03:59,580 --> 01:04:00,960 >> Джейсон Хиршхорн: Slash стол, большой. 1341 01:04:00,960 --> 01:04:02,730 Наверное, имеет смысл написать как из тех, вместе, потому что 1342 01:04:02,730 --> 01:04:03,870 вы должны это сделать. 1343 01:04:03,870 --> 01:04:08,575 Хорошо, если я хочу строку заголовка, как сделать Я пишу строку заголовка с названиями? 1344 01:04:08,575 --> 01:04:11,650 1345 01:04:11,650 --> 01:04:19,290 >> АУДИТОРИЯ: Это меньше чем на 10 часа закрытия - 1346 01:04:19,290 --> 01:04:21,550 TR, да. 1347 01:04:21,550 --> 01:04:22,100 >> Джейсон Хиршхорн: TR? 1348 01:04:22,100 --> 01:04:25,080 >> АУДИТОРИЯ: Тогда же самое, слэш, да. 1349 01:04:25,080 --> 01:04:26,610 >> Джейсон Хиршхорн: ОК, а дайте мне две колонки. 1350 01:04:26,610 --> 01:04:30,100 1351 01:04:30,100 --> 01:04:33,210 >> АУДИТОРИЯ: T D? 1352 01:04:33,210 --> 01:04:34,460 >> Джейсон Хиршхорн: ОК. 1353 01:04:34,460 --> 01:04:37,730 1354 01:04:37,730 --> 01:04:39,520 Я хочу два столбца. 1355 01:04:39,520 --> 01:04:40,960 Значит ли это, дайте мне две колонки? 1356 01:04:40,960 --> 01:04:43,880 Сколько столбцы это? 1357 01:04:43,880 --> 01:04:45,920 Один. 1358 01:04:45,920 --> 01:04:47,170 Так что давайте скопируйте и вставьте этот. 1359 01:04:47,170 --> 01:04:59,750 1360 01:04:59,750 --> 01:05:03,390 >> Таким образом, фактически, на викторине, весь этот код что мы написали до сих пор было 1361 01:05:03,390 --> 01:05:04,710 на самом деле дано вам. 1362 01:05:04,710 --> 01:05:06,200 Но вы должны, вероятно, по-прежнему знаете, как писать его. 1363 01:05:06,200 --> 01:05:06,470 Да. 1364 01:05:06,470 --> 01:05:10,636 >> АУДИТОРИЯ: Ваш дом между ними. 1365 01:05:10,636 --> 01:05:11,130 >> Джейсон Хиршхорн: Бум. 1366 01:05:11,130 --> 01:05:12,720 Это должно пойти прямо там, не так ли? 1367 01:05:12,720 --> 01:05:14,600 Хорошее слово. 1368 01:05:14,600 --> 01:05:17,760 Итак, еще раз, все это код на самом деле дано вам от фактического викторины. 1369 01:05:17,760 --> 01:05:19,570 Но это весело, чтобы написать ее, и вы должны знать, как писать. 1370 01:05:19,570 --> 01:05:23,640 Так что это, где вы должны чтобы начать свой код. 1371 01:05:23,640 --> 01:05:25,150 Что нам нужно, чтобы написать прямо здесь? 1372 01:05:25,150 --> 01:05:28,640 1373 01:05:28,640 --> 01:05:30,565 >> К сожалению, мне нужно изменить Имя этого файла. 1374 01:05:30,565 --> 01:05:41,180 1375 01:05:41,180 --> 01:05:44,270 Таким образом, мы сохранили его в. HTML файл, не в. файл PHP. 1376 01:05:44,270 --> 01:05:47,030 Эти вещи не будет означать ничего в. файл PHP. 1377 01:05:47,030 --> 01:05:48,500 Таким образом, мы находимся в. HTML-файл. 1378 01:05:48,500 --> 01:05:50,090 Что такое первое, что Мне нужно написать? 1379 01:05:50,090 --> 01:05:52,990 Я хочу поставить некоторые PHP Код в HTML. 1380 01:05:52,990 --> 01:05:57,300 >> АУДИТОРИЯ: PHP, как другой моркови и знак вопроса PHP, не так ли? 1381 01:05:57,300 --> 01:05:58,310 >> Джейсон Хиршхорн: Отлично. 1382 01:05:58,310 --> 01:05:59,360 И как я могу закончить это? 1383 01:05:59,360 --> 01:06:02,510 >> АУДИТОРИЯ: С вопросительным знаком. 1384 01:06:02,510 --> 01:06:03,120 >> Джейсон Хиршхорн: Это здорово. 1385 01:06:03,120 --> 01:06:07,090 Это первое, что мне нужно, если я хочу поставить некоторые PHP код здесь. 1386 01:06:07,090 --> 01:06:11,210 >> АУДИТОРИЯ:. Я думал, PHP файл может занять HTML. 1387 01:06:11,210 --> 01:06:12,290 >> Джейсон Хиршхорн: Да. 1388 01:06:12,290 --> 01:06:15,330 . Файл PHP может занять некоторое HTML и отображается. 1389 01:06:15,330 --> 01:06:16,450 Это была моя плохо. 1390 01:06:16,450 --> 01:06:18,300 Я просто пытался подражать что это было на викторине. 1391 01:06:18,300 --> 01:06:21,910 1392 01:06:21,910 --> 01:06:24,720 >> ОК, извините, чтобы запутать вас. 1393 01:06:24,720 --> 01:06:25,550 Да, practice.HTML. 1394 01:06:25,550 --> 01:06:27,340 Теперь мы собираемся поставить некоторые PHP код дюйма 1395 01:06:27,340 --> 01:06:30,530 Что такое первая линия PHP код, я должен написать? 1396 01:06:30,530 --> 01:06:33,360 Я собираюсь пройти через этот массив и превратить его в таблице. 1397 01:06:33,360 --> 01:06:34,600 Да. 1398 01:06:34,600 --> 01:06:37,160 >> АУДИТОРИЯ: Вы можете использовать для H петли или для петли. 1399 01:06:37,160 --> 01:06:38,415 >> Джейсон Хиршхорн: Хорошо, что вы хотите использовать? 1400 01:06:38,415 --> 01:06:40,720 >> АУДИТОРИЯ: Я хотел бы использовать для петли. 1401 01:06:40,720 --> 01:06:48,700 Для, а затем вы делаете знак доллара я равно 0 запятой доллар 1402 01:06:48,700 --> 01:06:51,580 подписать я меньше 2. 1403 01:06:51,580 --> 01:06:55,455 А потом запятой я доллар знак, я плюс плюс. 1404 01:06:55,455 --> 01:07:01,890 1405 01:07:01,890 --> 01:07:03,880 >> Джейсон Хиршхорн: Как сделать Вы знаете, чтобы использовать 2? 1406 01:07:03,880 --> 01:07:10,444 >> АУДИТОРИЯ: Потому что было два ассоциативные массивы внутри больше 1407 01:07:10,444 --> 01:07:11,960 ассоциативный массив. 1408 01:07:11,960 --> 01:07:13,610 >> Джейсон Хиршхорн: Так что самый большой штука не ассоциативный массив. 1409 01:07:13,610 --> 01:07:15,500 Большая вещь просто нормальный массив. 1410 01:07:15,500 --> 01:07:17,380 Но вы правы, есть две ассоциативные массивы 1411 01:07:17,380 --> 01:07:18,910 внутри нашего большого массива. 1412 01:07:18,910 --> 01:07:20,310 Вот почему вы используете два. 1413 01:07:20,310 --> 01:07:24,270 Я чувствую себя некомфортно при условии, что они 2, так в чем способ написания 1414 01:07:24,270 --> 01:07:26,810 это не предполагая, что они 2? 1415 01:07:26,810 --> 01:07:27,507 >> АУДИТОРИЯ: [неразборчиво]? 1416 01:07:27,507 --> 01:07:29,165 >> Джейсон Хиршхорн: Хорошо, как Вы пишете, что? 1417 01:07:29,165 --> 01:07:35,262 >> АУДИТОРИЯ: знак доллара по каждому элементу TFS или как знак доллара тс. 1418 01:07:35,262 --> 01:07:38,360 1419 01:07:38,360 --> 01:07:41,960 >> Джейсон Хиршхорн: Итак, для каждого TFS как TFS, я хочу, теперь 1420 01:07:41,960 --> 01:07:43,650 опять же, есть свой стол. 1421 01:07:43,650 --> 01:07:45,250 Так кто может дать мне Следующая строка кода? 1422 01:07:45,250 --> 01:07:52,870 1423 01:07:52,870 --> 01:07:59,810 >> АУДИТОРИЯ: Печать, а затем в котировки, кронштейн тр конец 1424 01:07:59,810 --> 01:08:02,670 кронштейн, конец цитаты. 1425 01:08:02,670 --> 01:08:05,300 Конец скобки, точка с запятой. 1426 01:08:05,300 --> 01:08:07,135 >> Джейсон Хиршхорн: ОК, а что, что будем делать? 1427 01:08:07,135 --> 01:08:08,610 >> АУДИТОРИЯ: Это будет сказать, новую строку. 1428 01:08:08,610 --> 01:08:11,070 Это собирается поставить пометить для новой строки. 1429 01:08:11,070 --> 01:08:13,000 >> Джейсон Хиршхорн: справа, это PHP, как мы говорили ранее - это 1430 01:08:13,000 --> 01:08:22,160 PHP собирается быть оценены, а затем это будет распечатать в этот файл 1431 01:08:22,160 --> 01:08:26,350 Таблица подъемник, а затем, что HTML будет оцениваться. 1432 01:08:26,350 --> 01:08:27,810 Мы просто копируя этот HTML мы имели здесь. 1433 01:08:27,810 --> 01:08:28,120 Да. 1434 01:08:28,120 --> 01:08:29,470 >> АУДИТОРИЯ: [неразборчиво]? 1435 01:08:29,470 --> 01:08:30,290 >> Джейсон Хиршхорн: Извините? 1436 01:08:30,290 --> 01:08:31,240 Это прямо здесь. 1437 01:08:31,240 --> 01:08:33,590 Осень 2012. 1438 01:08:33,590 --> 01:08:35,970 Не смотрите на ответы, давайте решать их вместе. 1439 01:08:35,970 --> 01:08:37,330 Так мы печатаем строку таблицы. 1440 01:08:37,330 --> 01:08:38,550 Таким образом, вы, вероятно, в качели вещей. 1441 01:08:38,550 --> 01:08:41,060 Какой следующий линия Код нам надо написать? 1442 01:08:41,060 --> 01:08:42,926 Ассам, дай мне следующую строку кода. 1443 01:08:42,926 --> 01:08:46,290 >> АУДИТОРИЯ: Вы должны имя TF в. 1444 01:08:46,290 --> 01:08:54,319 Т открытой скобки кавычки Закрытое скобки. 1445 01:08:54,319 --> 01:08:57,310 >> Джейсон Хиршхорн: Дайте мне свое имя. 1446 01:08:57,310 --> 01:08:58,540 >> АУДИТОРИЯ: Вам нужно распечатать, что. 1447 01:08:58,540 --> 01:08:59,790 >> [вставляя ГОЛОСА] 1448 01:08:59,790 --> 01:09:01,963 1449 01:09:01,963 --> 01:09:03,430 >> Джейсон Хиршхорн: ОК, как я могу напечатать? 1450 01:09:03,430 --> 01:09:04,680 >> [вставляя ГОЛОСА] 1451 01:09:04,680 --> 01:09:08,609 1452 01:09:08,609 --> 01:09:10,350 >> Джейсон Хиршхорн: Мне не хватает что-то сейчас. 1453 01:09:10,350 --> 01:09:12,470 Что мне не хватает? 1454 01:09:12,470 --> 01:09:13,720 >> АУДИТОРИЯ: Вам нужен знак доллара. 1455 01:09:13,720 --> 01:09:15,960 1456 01:09:15,960 --> 01:09:17,210 >> Джейсон Хиршхорн: Что еще мне не хватает? 1457 01:09:17,210 --> 01:09:20,100 1458 01:09:20,100 --> 01:09:21,650 Все, что мы напечатаны до сих пор является тр. 1459 01:09:21,650 --> 01:09:25,589 1460 01:09:25,589 --> 01:09:27,470 >> АУДИТОРИЯ: Закройте тр после него. 1461 01:09:27,470 --> 01:09:28,720 >> Джейсон Хиршхорн: Так что нам нужно чтобы после закрытия тр. 1462 01:09:28,720 --> 01:09:34,390 1463 01:09:34,390 --> 01:09:37,906 Кто видит, что мы пропустили в строке 16? 1464 01:09:37,906 --> 01:09:39,340 Да, Анна. 1465 01:09:39,340 --> 01:09:47,050 >> АУДИТОРИЯ: Вам нужно открыть тд и фигурные скобки. 1466 01:09:47,050 --> 01:09:49,380 >> Джейсон Хиршхорн: А где мы ставим фигурные скобки? 1467 01:09:49,380 --> 01:09:51,790 >> АУДИТОРИЯ: Вокруг имени тс. 1468 01:09:51,790 --> 01:09:53,080 >> Джейсон Хиршхорн: Как это? 1469 01:09:53,080 --> 01:09:55,420 >> АУДИТОРИЯ: Да. 1470 01:09:55,420 --> 01:09:59,000 И затем закройте тд. 1471 01:09:59,000 --> 01:10:00,250 >> Джейсон Хиршхорн: Как что? 1472 01:10:00,250 --> 01:10:03,370 1473 01:10:03,370 --> 01:10:06,950 >> АУДИТОРИЯ: Нужна ли вам двойную цитату знаки рядом с фигурными скобками? 1474 01:10:06,950 --> 01:10:07,460 >> Джейсон Хиршхорн: Прямо здесь? 1475 01:10:07,460 --> 01:10:08,710 Нет, вы не знаете. 1476 01:10:08,710 --> 01:10:10,820 1477 01:10:10,820 --> 01:10:12,550 Так это совершенно верно. 1478 01:10:12,550 --> 01:10:12,940 Да. 1479 01:10:12,940 --> 01:10:15,290 >> АУДИТОРИЯ: Таким образом, разница между тем, и encatenating с точками есть, если 1480 01:10:15,290 --> 01:10:18,420 Вы используете точки, вы должны были бы иметь двойные кавычки, то точка, 1481 01:10:18,420 --> 01:10:20,370 то точка - 1482 01:10:20,370 --> 01:10:20,520 >> Джейсон Хиршхорн: Правильно. 1483 01:10:20,520 --> 01:10:23,800 Так вы говорите, что есть конечная способ написания этого так. 1484 01:10:23,800 --> 01:10:26,760 1485 01:10:26,760 --> 01:10:28,966 Что оператор конкатенации в JavaScript? 1486 01:10:28,966 --> 01:10:31,200 >> АУДИТОРИЯ: Знак плюс. 1487 01:10:31,200 --> 01:10:34,710 Вы забыли поставить фигурная скобка назад. 1488 01:10:34,710 --> 01:10:35,760 >> Джейсон Хиршхорн: Отлично. 1489 01:10:35,760 --> 01:10:38,850 И есть еще одна линия кода отсутствует. 1490 01:10:38,850 --> 01:10:40,130 Кто может дать мне последнюю строчку кода мы пропустили? 1491 01:10:40,130 --> 01:10:43,940 1492 01:10:43,940 --> 01:10:47,602 >> АУДИТОРИЯ: Просто та же самая вещь, просто с домом вместо имени. 1493 01:10:47,602 --> 01:10:52,960 1494 01:10:52,960 --> 01:10:53,450 Большой 1495 01:10:53,450 --> 01:10:54,390 >> Джейсон Хиршхорн: Отлично. 1496 01:10:54,390 --> 01:10:59,320 И ваш синтаксис подойдет именно получать вещи в качестве ассоциированного массива. 1497 01:10:59,320 --> 01:11:04,450 Таким образом, в реальной викторины, вы на самом деле не отказался, пока здесь. 1498 01:11:04,450 --> 01:11:05,710 Так этот код был дан вам. 1499 01:11:05,710 --> 01:11:07,750 Все, что вам надо было написать были эти четыре линии, и не забудьте 1500 01:11:07,750 --> 01:11:09,190 закрыть тег таблицы. 1501 01:11:09,190 --> 01:11:11,370 Вы, ребята, на самом деле все это и многое другое. 1502 01:11:11,370 --> 01:11:11,810 Да. 1503 01:11:11,810 --> 01:11:14,850 >> АУДИТОРИЯ: Так что было бы функционально то же самое, если вы только что, что все в 1504 01:11:14,850 --> 01:11:17,250 один большой вызов для печати, не так ли? 1505 01:11:17,250 --> 01:11:19,630 А потом просто объединяются это на, и так далее? 1506 01:11:19,630 --> 01:11:20,730 >> Джейсон Хиршхорн: Как что? 1507 01:11:20,730 --> 01:11:21,980 >> АУДИТОРИЯ: Да. 1508 01:11:21,980 --> 01:11:23,810 1509 01:11:23,810 --> 01:11:26,940 Она просто не будет выглядеть хорошо, если бы вы были глядя на него, когда вы осмотра 1510 01:11:26,940 --> 01:11:28,550 элемент на своем сайте, не так ли? 1511 01:11:28,550 --> 01:11:29,800 >> Джейсон Хиршхорн: Я согласен. 1512 01:11:29,800 --> 01:11:35,410 1513 01:11:35,410 --> 01:11:38,710 Если я загрузил эту веб-страницу, я был бы состоянии видеть этот PHP код, когда-либо? 1514 01:11:38,710 --> 01:11:39,240 >> АУДИТОРИЯ: Нет. 1515 01:11:39,240 --> 01:11:40,080 >> Джейсон Хиршхорн: Нет. 1516 01:11:40,080 --> 01:11:42,240 А на самом деле, я бы не стал. 1517 01:11:42,240 --> 01:11:43,920 >> АУДИТОРИЯ: Это не HTML, верно? 1518 01:11:43,920 --> 01:11:45,000 Таким образом, вы могли бы - 1519 01:11:45,000 --> 01:11:46,780 >> Джейсон Хиршхорн: Так что это PHP будет быть оценены на стороне сервера. 1520 01:11:46,780 --> 01:11:51,020 PHP всегда оценивается на стороне сервера, так вы никогда не увидите PHP код. 1521 01:11:51,020 --> 01:11:52,980 >> Зала: Но вы были бы в состоянии увидеть результат отпечатков. 1522 01:11:52,980 --> 01:11:53,480 >> Джейсон Хиршхорн: Верно. 1523 01:11:53,480 --> 01:11:55,510 И это, честно говоря, не могли бы поставить все это на линии. 1524 01:11:55,510 --> 01:11:59,740 Это может отформатировать его приятно для вас, или это может поставить его на одной линии. 1525 01:11:59,740 --> 01:12:01,521 Непонятно. 1526 01:12:01,521 --> 01:12:03,596 Но да, хороший момент. 1527 01:12:03,596 --> 01:12:06,470 >> АУДИТОРИЯ: Почему там нет выделение текста для 1528 01:12:06,470 --> 01:12:07,550 любую из команд PHP? 1529 01:12:07,550 --> 01:12:09,370 Потому что я помню, что. 1530 01:12:09,370 --> 01:12:11,620 >> Джейсон Хиршхорн: Потому что это . HTML файл здесь на самом верху. 1531 01:12:11,620 --> 01:12:20,390 1532 01:12:20,390 --> 01:12:21,650 Там вы идете. 1533 01:12:21,650 --> 01:12:25,752 1534 01:12:25,752 --> 01:12:28,800 >> АУДИТОРИЯ: Если бы мы сделали первоначальный метод с для петель, справа, если мы 1535 01:12:28,800 --> 01:12:33,500 хотел получить доступ к TFS, так ли сделать TFS кронштейн 0 кронштейн, то 1536 01:12:33,500 --> 01:12:35,180 [Неразборчиво]? 1537 01:12:35,180 --> 01:12:35,970 >> Джейсон Хиршхорн: Вы бы - 1538 01:12:35,970 --> 01:12:40,560 так что вы хотите сказать, что для для цикла, вы могли бы сделать в знак доллара TFS кронштейном 1 1539 01:12:40,560 --> 01:12:41,850 или я, не так ли. 1540 01:12:41,850 --> 01:12:46,780 Или знак доллара я закрываю кронштейн а затем квадратная скобка 1541 01:12:46,780 --> 01:12:49,600 двойные кавычки, да. 1542 01:12:49,600 --> 01:12:50,640 >> ОК, отлично. 1543 01:12:50,640 --> 01:12:53,020 У нас есть еще один быстрый один. 1544 01:12:53,020 --> 01:12:55,090 Семь минут, так что я хочу перейти на этот. 1545 01:12:55,090 --> 01:12:56,160 Это еще один пример. 1546 01:12:56,160 --> 01:12:58,740 Теперь мы полностью другой язык. 1547 01:12:58,740 --> 01:12:59,990 >> У нас есть некоторые HTML-код. 1548 01:12:59,990 --> 01:13:02,480 1549 01:13:02,480 --> 01:13:07,460 Это своего рода небольшой на экране, но Я хочу, чтобы вы через него действительно 1550 01:13:07,460 --> 01:13:11,140 быстро, и может кто-нибудь сказать мне, если бы я был, чтобы загрузить эту веб-страницу, 1551 01:13:11,140 --> 01:13:12,390 что я хотел бы видеть? 1552 01:13:12,390 --> 01:13:22,710 1553 01:13:22,710 --> 01:13:26,450 Опишите все о это веб-страница. 1554 01:13:26,450 --> 01:13:28,630 Ной? 1555 01:13:28,630 --> 01:13:30,450 Что бы я вижу? 1556 01:13:30,450 --> 01:13:38,140 >> АУДИТОРИЯ: Код на переднем конце Google, с чувством текст и 1557 01:13:38,140 --> 01:13:39,190 кнопку нажать кнопку. 1558 01:13:39,190 --> 01:13:41,180 >> Джейсон Хиршхорн: А что бы кнопку сказать? 1559 01:13:41,180 --> 01:13:42,430 >> АУДИТОРИЯ: Отправить. 1560 01:13:42,430 --> 01:13:44,620 1561 01:13:44,620 --> 01:13:45,160 О, поиск. 1562 01:13:45,160 --> 01:13:45,840 Мне очень жаль. 1563 01:13:45,840 --> 01:13:46,830 >> Джейсон Хиршхорн: Это бы сказал поиска. 1564 01:13:46,830 --> 01:13:47,520 Помните, имя. 1565 01:13:47,520 --> 01:13:50,550 Что мы используем название? 1566 01:13:50,550 --> 01:13:53,774 Этот атрибут имя, что что используется? 1567 01:13:53,774 --> 01:13:55,470 >> [вставляя ГОЛОСА] 1568 01:13:55,470 --> 01:13:59,300 >> АУДИТОРИЯ: Это его имя когда он нажал? 1569 01:13:59,300 --> 01:14:00,160 >> Джейсон Хиршхорн: Это может быть. 1570 01:14:00,160 --> 01:14:02,690 Но то, что мы обычно видим - почему мы даем эту очередь имя? 1571 01:14:02,690 --> 01:14:03,830 Почему мы видим, что? 1572 01:14:03,830 --> 01:14:05,220 Да. 1573 01:14:05,220 --> 01:14:08,600 >> АУДИТОРИЯ: Разве это не стало индекс из супер глобальной переменной? 1574 01:14:08,600 --> 01:14:12,740 >> Джейсон Хиршхорн: Да, как правило, когда эта форма будет представлять, а затем, когда 1575 01:14:12,740 --> 01:14:13,500 бы это представить? 1576 01:14:13,500 --> 01:14:14,750 Что страницы? 1577 01:14:14,750 --> 01:14:16,820 1578 01:14:16,820 --> 01:14:18,460 Ной, на какой странице бы это представить? 1579 01:14:18,460 --> 01:14:25,710 1580 01:14:25,710 --> 01:14:27,700 >> Зала: Я не уверен. 1581 01:14:27,700 --> 01:14:28,920 >> Джейсон Хиршхорн: Где может мы можем найти его? 1582 01:14:28,920 --> 01:14:31,025 Где вы находите, что страница это представляет? 1583 01:14:31,025 --> 01:14:32,850 Что строка кода? 1584 01:14:32,850 --> 01:14:34,040 >> АУДИТОРИЯ: Форма действие. 1585 01:14:34,040 --> 01:14:34,650 >> Джейсон Хиршхорн: Совершенно верно. 1586 01:14:34,650 --> 01:14:35,130 Действие. 1587 01:14:35,130 --> 01:14:37,100 Так что подает в странице поиска. 1588 01:14:37,100 --> 01:14:38,630 Обратная косая черта поиск. 1589 01:14:38,630 --> 01:14:40,140 Так это совершенно верно. 1590 01:14:40,140 --> 01:14:40,680 Какой метод? 1591 01:14:40,680 --> 01:14:42,090 >> АУДИТОРИЯ: Получить. 1592 01:14:42,090 --> 01:14:42,490 >> Джейсон Хиршхорн: Получить. 1593 01:14:42,490 --> 01:14:43,420 Именно так. 1594 01:14:43,420 --> 01:14:44,490 Так, мы читаем это. 1595 01:14:44,490 --> 01:14:45,180 Это собирается быть одной из форм. 1596 01:14:45,180 --> 01:14:45,910 Вы совершенно правы. 1597 01:14:45,910 --> 01:14:50,340 Две вещи по форме, название страницы и верхний бы Google. 1598 01:14:50,340 --> 01:14:54,270 >> Так вот два вопроса, вы должны быть в состоянии ответить об этой странице. 1599 01:14:54,270 --> 01:15:01,760 Если это HTML живет на этом веб-сайте и пользователь вводит ошибку в тексте 1600 01:15:01,760 --> 01:15:06,900 поле прямо здесь, что URL будет пользователю найти себя на 1601 01:15:06,900 --> 01:15:08,150 заполнив форму? 1602 01:15:08,150 --> 01:15:10,980 1603 01:15:10,980 --> 01:15:12,510 >> Поэтому у нас есть это прямо здесь. 1604 01:15:12,510 --> 01:15:13,720 Я собираюсь вернуться в эту страницу, однако. 1605 01:15:13,720 --> 01:15:16,980 Я напишу эту первую часть. 1606 01:15:16,980 --> 01:15:18,230 Все ли могут увидеть здесь? 1607 01:15:18,230 --> 01:15:30,620 1608 01:15:30,620 --> 01:15:32,906 ОК, Марио, вы думаете, что знаете? 1609 01:15:32,906 --> 01:15:34,700 Что страницы? 1610 01:15:34,700 --> 01:15:37,630 >> АУДИТОРИЯ: поиск Обратная косая черта. 1611 01:15:37,630 --> 01:15:38,880 >> Джейсон Хиршхорн: Я собираюсь двигаться вниз здесь. 1612 01:15:38,880 --> 01:15:44,800 1613 01:15:44,800 --> 01:15:49,155 ОК, обратный слеш Поиск вопрос марка д равна ошибка. 1614 01:15:49,155 --> 01:15:53,560 1615 01:15:53,560 --> 01:15:55,165 Кто-нибудь имеет различное предложение? 1616 01:15:55,165 --> 01:15:57,910 1617 01:15:57,910 --> 01:15:59,160 Да. 1618 01:15:59,160 --> 01:16:01,700 1619 01:16:01,700 --> 01:16:03,740 >> Так как же нам получить? 1620 01:16:03,740 --> 01:16:05,520 Ну, мы видели это прежде. 1621 01:16:05,520 --> 01:16:07,170 И вы пришли к этому раньше. 1622 01:16:07,170 --> 01:16:08,870 Вы были правы, Ной, что действия говорят нам, что 1623 01:16:08,870 --> 01:16:11,700 страницы мы собираемся. 1624 01:16:11,700 --> 01:16:12,820 >> Мы также знаем, что такое метод. 1625 01:16:12,820 --> 01:16:13,420 Мы делаем получить. 1626 01:16:13,420 --> 01:16:17,040 И разница между GET и сообщению является то, что получить дисплеи в URL 1627 01:16:17,040 --> 01:16:18,490 и после этого не делает. 1628 01:16:18,490 --> 01:16:22,760 Так что, если я написал пост прямо в Метод, что будет по-другому? 1629 01:16:22,760 --> 01:16:24,250 >> АУДИТОРИЯ: Было бы просто быть поиск слэш. 1630 01:16:24,250 --> 01:16:25,400 >> Джейсон Хиршхорн: Было бы просто быть слэш поиска. 1631 01:16:25,400 --> 01:16:27,400 Ничто здесь не случится. 1632 01:16:27,400 --> 01:16:30,030 Но потому что это получить, URL отображается следующим образом. 1633 01:16:30,030 --> 01:16:35,140 Сначала мы видим знак вопроса и мы видим имя и значение. 1634 01:16:35,140 --> 01:16:42,730 Скажем была еще одна текстовое поле и Я дал ему имя г и я INPUT A 1635 01:16:42,730 --> 01:16:45,220 значение, гусеница. 1636 01:16:45,220 --> 01:16:48,560 Что бы это сейчас выглядит? 1637 01:16:48,560 --> 01:16:52,040 Я еще один текстовое поле, я даю наименование г и значением гусеницы. 1638 01:16:52,040 --> 01:16:56,990 >> АУДИТОРИЯ: После баре вам придется амперсанд гусеница. 1639 01:16:56,990 --> 01:16:58,380 >> Джейсон Хиршхорн: Это не амперсанд. 1640 01:16:58,380 --> 01:17:00,500 >> АУДИТОРИЯ: Или просто все и символ. 1641 01:17:00,500 --> 01:17:01,330 >> Джейсон Хиршхорн: Да, нет. 1642 01:17:01,330 --> 01:17:03,700 Вы были правы, я был неправ. 1643 01:17:03,700 --> 01:17:05,660 Вот как г. 1644 01:17:05,660 --> 01:17:06,910 >> АУДИТОРИЯ: Caterpillar. 1645 01:17:06,910 --> 01:17:08,840 1646 01:17:08,840 --> 01:17:11,090 г равна гусеницу, извините. 1647 01:17:11,090 --> 01:17:13,970 1648 01:17:13,970 --> 01:17:14,700 >> Джейсон Хиршхорн: Есть нет т там? 1649 01:17:14,700 --> 01:17:16,680 >> АУДИТОРИЯ: Нет, есть. 1650 01:17:16,680 --> 01:17:18,030 >> Джейсон Хиршхорн: Мы будем говорить о том, что после занятий. 1651 01:17:18,030 --> 01:17:18,930 Вот именно. 1652 01:17:18,930 --> 01:17:20,530 Таким образом, и является правильным. 1653 01:17:20,530 --> 01:17:23,430 И тогда вы могли бы многие из них, и все они будут объединены 1654 01:17:23,430 --> 01:17:24,950 вместе с этим, и. 1655 01:17:24,950 --> 01:17:25,900 Так это совершенно верно. 1656 01:17:25,900 --> 01:17:27,700 >> Там еще один вопрос. 1657 01:17:27,700 --> 01:17:30,676 Эскиз DOM Этот HTML-, начиная с документом. 1658 01:17:30,676 --> 01:17:33,330 1659 01:17:33,330 --> 01:17:34,570 Мы могли бы сделать это в течение двух минут. 1660 01:17:34,570 --> 01:17:36,790 Мы сделаем это здесь. 1661 01:17:36,790 --> 01:17:38,040 Я вернусь к этой веб-страницы. 1662 01:17:38,040 --> 01:17:40,630 1663 01:17:40,630 --> 01:17:42,160 Хорошо, мы начнем с документа. 1664 01:17:42,160 --> 01:17:49,698 1665 01:17:49,698 --> 01:17:52,090 >> Что дальше? 1666 01:17:52,090 --> 01:17:53,910 Поэтому, когда вы читаете через - 1667 01:17:53,910 --> 01:17:54,540 >> АУДИТОРИЯ: HTML. 1668 01:17:54,540 --> 01:17:55,790 >> Джейсон Хиршхорн: HTML находится рядом. 1669 01:17:55,790 --> 01:17:57,850 Мы собираемся пойти тег по тегу. 1670 01:17:57,850 --> 01:18:00,890 Что после HTML? 1671 01:18:00,890 --> 01:18:01,550 >> АУДИТОРИЯ: зав. 1672 01:18:01,550 --> 01:18:02,800 >> Джейсон Хиршхорн: зав. 1673 01:18:02,800 --> 01:18:05,090 1674 01:18:05,090 --> 01:18:08,520 Что после голове? 1675 01:18:08,520 --> 01:18:09,770 >> АУДИТОРИЯ: Название. 1676 01:18:09,770 --> 01:18:11,880 1677 01:18:11,880 --> 01:18:12,560 >> Джейсон Хиршхорн: Название. 1678 01:18:12,560 --> 01:18:14,740 И название имеет значение Google, но я не собираюсь 1679 01:18:14,740 --> 01:18:16,240 пишут, что в сейчас. 1680 01:18:16,240 --> 01:18:18,750 Хорошо, где же тело идти? 1681 01:18:18,750 --> 01:18:20,890 >> АУДИТОРИЯ: Также сходит на HTML. 1682 01:18:20,890 --> 01:18:21,490 >> Джейсон Хиршхорн: Совершенно верно. 1683 01:18:21,490 --> 01:18:22,820 Тело отрывается отсюда. 1684 01:18:22,820 --> 01:18:25,970 1685 01:18:25,970 --> 01:18:30,330 Видит ли все почему это так? 1686 01:18:30,330 --> 01:18:32,970 Вы, вероятно, следует быть в состоянии понять это, тоже, даже если у меня не было 1687 01:18:32,970 --> 01:18:33,665 это хорошее отступы. 1688 01:18:33,665 --> 01:18:37,680 >> Углубление рода отдает его, но вы можете видеть, что глава тег имеет 1689 01:18:37,680 --> 01:18:41,240 были закрыты, что означает, что мы, вероятно, не можете пойти сюда. 1690 01:18:41,240 --> 01:18:43,460 Мы должны вернуться до все был прямо перед головой 1691 01:18:43,460 --> 01:18:44,730 тег, или под что. 1692 01:18:44,730 --> 01:18:46,720 Мы даже с головным тега. 1693 01:18:46,720 --> 01:18:48,560 >> И под корпусом идет форма. 1694 01:18:48,560 --> 01:18:50,300 Под форме, есть два входа. 1695 01:18:50,300 --> 01:18:53,330 1696 01:18:53,330 --> 01:18:54,420 ОК. 1697 01:18:54,420 --> 01:18:55,490 Вот все, что я получил. 1698 01:18:55,490 --> 01:18:56,980 Викторина 1 завтра. 1699 01:18:56,980 --> 01:18:58,350 Я так рад за вас, ребята. 1700 01:18:58,350 --> 01:18:59,690 Это собирается быть взрыв. 1701 01:18:59,690 --> 01:19:00,250 >> Если у вас есть - 1702 01:19:00,250 --> 01:19:00,600 >> АУДИТОРИЯ: [аплодисменты] 1703 01:19:00,600 --> 01:19:02,460 >> Джейсон Хиршхорн: О стоп, стоп. 1704 01:19:02,460 --> 01:19:04,520 Но нет, я шучу. 1705 01:19:04,520 --> 01:19:07,220 Если у вас есть какие-либо вопросы, не так ли после раздела, я буду снаружи. 1706 01:19:07,220 --> 01:19:11,700 Если у вас возникли вопросы сегодня вечером, не стесняйтесь, звоните, электронная почта, Gchat, 1707 01:19:11,700 --> 01:19:12,740 почтовым голубем меня. 1708 01:19:12,740 --> 01:19:13,950 Удачи завтра. 1709 01:19:13,950 --> 01:19:16,220 Есть замечательный перерыв благодарения, если я не вижу тебя до этого. 1710 01:19:16,220 --> 01:19:19,320 И я буду видеть вас после Дня благодарения во вторник в течение нашей заключительной 1711 01:19:19,320 --> 01:19:20,295 раздел партия никогда. 1712 01:19:20,295 --> 01:19:21,545 >> АУДИТОРИЯ: [неразборчиво]. 1713 01:19:21,545 --> 01:19:25,270 1714 01:19:25,270 --> 01:19:25,790 >> Джейсон Хиршхорн: Отлично. 1715 01:19:25,790 --> 01:19:28,900 ОК, я буду видеть вас, ребята рядом неделю или две недели. 1716 01:19:28,900 --> 01:19:30,150 И удачи завтра. 1717 01:19:30,150 --> 01:19:32,203