Джейсон Хиршхорн: Добро пожаловать, все, чтобы неделю 10. Это захватывающее неделю, потому что завтра Викторина 1, мы получим в секунду. Сегодня в разделе, мы собираемся пойти более некоторые ресурсы для викторины, и то я отвечу любых вопросы вы, ребята, есть. И мы, наконец, заканчиваются некоторые проблемы практики. Мы можем потратить весь раздел отвечая на вопросы. Мы можем потратить весь раздел переходя проблем практики. Мы просто расширить для заполнения пространство и время у нас есть. Так что я положил этот список каждую неделю, но это особенно важно на этой неделе. Для изучения, если у вас есть не начал уже, о мальчик. Но, надеюсь, вы начали уже. И вы проходите материалов и ресурсы, перечисленные здесь. Я очень рекомендую ряд из них. В частности, конспекты лекций являются невероятно важно и полезно. Study.cs50.net обеспечивает отличный учебник по много темы мы рассмотрели. Она также имеет некоторые большие практике проблем. А потом, Google отличное, также. Я не знаю, что вы будете использовать его для. Но использовать Google, а также. Обратитесь ко мне, если у вас есть какие-либо вопросы, комментарии или проблемы. Посмотрите на обзорной сессии слайды из прошлой ночью. Или, если у вас есть некоторое время, смотреть видео. Они обеспечивают много полезными материалы и информацию. И попытаться охватить если не все, многие из темы мы крытые и что вы могли бы видеть на викторине. Говоря о викторине, что будет завтра. Это 75 минут длиной. Многие из вас принимают его на 1 часов, и некоторые из вас принимая его в 5:30. В настоящее время вы принимаете его и расположение вы принимаете его, убедитесь, Вы проверяете документ на главной странице CS50.net. Помните, что вы можете получить один 8 1/2 на 11 листе взять с собой. Зачастую, люди не используют этот лист вообще во время викторины. Но на самом деле, это невероятно полезными инструмент исследования. Так воедино, что лист, что Я провел, вероятно, три или четыре часа делать, когда я учился на CS50, и это было легко самым полезным так я мог учиться на викторине. Таким образом, даже если у вас есть некоторые чужие учебных пособий, чтобы смотреть на и использовать как ссылки, я настоятельно рекомендую сделать свой собственный учебное пособие, положив что материал вместе. Это действительно поможет вам узнать весь материал. Не в последнюю очередь в этом разделе, после завтра викторины есть одна более лекция - следующий понедельник. Там еще один раздел, а не рядом Вторник перед Днем благодарения, но Вторник после этого. Мы будем собираться вместе для окончательного до свидания партия, а также делать некоторые прохладно вещи, чтобы вы, ребята, возбуждаемые о дальнейшие исследования в области информатики. Там еще один проект, еще один справедливым, еще один Хакатон. Мы приближаемся к концу CS50, который является захватывающим - но и, если вы, как я, немного грустно. Прежде чем я перейду, кто-нибудь есть любые вопросы о том, что мы рассмотрели до сих пор? Хорошо, хорошо, давайте перейдем на некоторые вопросы что у вас есть для викторины и темам мы могли бы покрыть. Так что это список, который я собрал. Это ни в коем случае исчерпывающим, но будем надеяться, бегать памяти, если вам есть вопросы о любой из них темы, или если у вас есть вопросы по поводу проблемы практики от викторины в прошлые годы. У меня было несколько вопросов, которые были по электронной почте мне, но я хочу, чтобы удержать на тех, ни на секунду. Кто-нибудь есть какие-либо вопросы, проблемы они не понимают, Ответы, которые они не понимают чтобы приступить к нам? Ави. АУДИТОРИЯ: Можете ли вы просто пойти на ДОМ и Аякс очень быстро? Мол, то, что мы должны знать или должен понять о них? Джейсон Хиршхорн: Я собираюсь ответить как правило, это вопрос, что же я нужно знать о данной теме х? Потому что у меня есть чувство, многие из вас собираетесь спросить меня, что, или любопытно, что. Так в той степени, что тема была покрыта лекции, или раздел, или на study.cs50.net, проблема установить, вы должны быть знакомы с ним. Так что вам не нужно знать все виды тега, которая доступна в HTML или каждый тип атрибута или свойства вы можете дать что-то в CSS. Но если бы вы видели его в пример лекции, если бы вы видели его в задаче набор, вы должны, вероятно, знакомы с ним, в частности, вещи, которые вы видели в лекции. Таким образом, мы обсудили этот документ объектную модель немного в раздел, тем более в лекции. Вы должны быть знакомы с, что много. И вы должны быть знакомы с Ajax в той же степени. Мы никогда не видели невероятно распространенным или сложные примеры Ajax, поэтому вы не собираетесь быть предложено сделать что-то невероятно сложное. Но вас могут попросить, как мне сделать вызов Ajax с помощью JQuery? Что то, что вы видели ряд раз, прежде чем, как в обзор сессию и в лекции, и это только два-иш строк кода. Так что то, что вы должны быть знакомы с. Но, опять же, для всех этих тем, если вы видели его раньше, это честная игра. И мы могли бы спросить вас - очевидно, мы хочу попросить вас вещи, которые вы раньше не видели. Кодирование что-то у вас не видел. Но это не значит, что вы должны не видел инструменты для решения что проблема прежде. Вы видели эти инструменты. Например, на Quiz 1, если вы должны кодировать StrLen. Мы не кодируется StrLen раньше. Но вы знаете, как использовать цикл, Вы знаете, как использовать, если условия. Вы знаете, как писать переменные в С Это будет то же самое здесь. Вы не собираетесь быть предложено сделать все, что вы раньше не видели, но вас могут попросить, чтобы, как, положить что-то вместе по-новому, или решить другой тип проблемы. К сожалению, это касается не только вашего вопрос, но я не могу ответить о каждый тему, что вы или не нужно знать. Но и, извините, последнее, о чем это. Мы потратили значительно больше времени на списки ссылок, чем у нас на Ajax. Вы не использовали Ajax в наборе проблемы. Одной из центральных особенностей, что Проблема установить, что было списки ссылок. И мы провели много времени в лекции и раздел его использования. Так, вполне вероятно, список ссылок будет придумать более часто на викторине, чем Ajax воли. Или вопросы, имеющие отношение к ссылке Список будет стоить больше очков. Таким образом, вы, безусловно, может фокусировки и узкая в на вещи, которые являются более вероятно, придумать, потому что у нас есть провел больше времени на них. ОК любые другие вопросы? Да. АУДИТОРИЯ: Мы можем пойти за использованием анонимные функции в JavaScript? Я это немного запутался об этом. Джейсон Хиршхорн: Так в JavaScript - Я пытаюсь думать, как я мог бы написать это на - так что давайте на самом деле открыть этот код. Так что это код, который мы сделали на прошлой неделе. И вы видели это раньше, если вы были здесь в разделе на прошлой неделе. Или вы видели что-то похоже на это раньше. Но вы можете посмотреть на этой первой линии. Это, как вы начать - все это не видел этого. Если вы хотите разместить код JavaScript, Вы помещаете его в этом, предполагая, вы используете JQuery. Это говорит, ничего не делают до загружен данный документ. А потом, Курт, вы видите здесь мы делаем что-то вроде этого - функциональные открытые скобка, закрыты скобка. Таким образом, мы не даем это функционировать имя. Мы не собираемся, чтобы определить эту функцию Предполагается, а затем запустить называют его кучу раз. Мы просто говорим, этот документ уже принимает функция. Пару достопримечательностях. И мы не хотим тратить время придав ему имя или сохранить его для вечность. Мы просто хотим, чтобы запустить некоторые вещи. Так анонимный функция сортировки из служит этой цели. Когда вы не собираетесь использовать что-то снова и снова, так что вам не нужно дать ему имя - вы просто хотите использовать его один раз - вы бы просто сказать, функцию, Например, в этом случае, и ты просто определении то, что вы могли бы дать имя. Мол, мы могли вытащить эту функцию из и дать ему имя, а затем вызвать, что функционировать здесь. Но мы не должны, потому что мы не делаем хотите тратить время придав ему имя или тратить что-то в нашем пространстве имен. И вы увидите, что много. Например, мы видим, что много в этом Код, но вы видели это раньше, когда нажатии что-то - запустить этот тип кода. Мы могли бы определить код, который мы хотим работать, когда мы нажимаем, в данном случае, это ID, в виде отдельной функции а затем запустить эту функцию. Но в этом случае, мы просто пропуская этот шаг и перемещение его в здесь и просто к определению все что мы хотим чтобы это произошло, и не давая ему имя. Это до сих пор не могут иметь ответил на ваш вопрос. АУДИТОРИЯ: Нет, это не. Я имею в виду, я думаю, я просто не очень понимаю, почему это было бы функционировать вообще, хотя. Потому что это на самом деле не называют. Это действительно не имеет имени. Джейсон Хиршхорн: Это функция в ощущение, что это серия шагов, как вы бы положить в функции. А потом вот почему мы называем это анонимная функция. Мы не собираемся дать ему имя. Мы не собираемся тратить пытается назвать его, но мы смогли. Анонимные функции, вы всегда можно дать имя. Так, например, этот код прямо здесь, мы могли бы поставить этот код в вызвать функцию, а затем эта функция здесь. Вместо этого мы говорим, что мы не собираемся возиться с этим. Мы просто будем писать все это прямо здесь. Это как иногда, когда вы пишете четыре петли в C - вы, ребята, видел это раньше - может быть, вы итераций по ForLoop в я равна 0. Я меньше STRLEN. Или вы собираетесь через некоторые Массив, вы можете сохранить массив Индекс г в некоторой переменной. И вы использовать эту переменную. Так что вам не нужно переписать массив Кронштейн я снова и снова и снова. И это вроде как фиктивная переменная. Это не служит много целей, кроме чтобы сделать код немного чище и легче читать. Похожие функции здесь. Просто делает это немного легче, но функционально нет никакой разницы. Я ответил на ваш вопрос? АУДИТОРИЯ: Да. Джейсон Хиршхорн: ОК .. Марио? АУДИТОРИЯ: Вчера они часто ставят Функция скобках событие. Означает ли это, что ли? Или это такие вещи, как что они будут делать document.ready функцию событие. Джейсон Хиршхорн: Мы видели это, и опять же, это небольшие вещи, которые вероятно, я не хочу, чтобы тратить слишком много времени на. Потому что иногда я не хочу, чтобы люди получить волновался, что они имеют не слышал об этих вещах, что много. Но мы немного поговорили о обработчики событий. Так что-то происходит, а затем эта функция выполняется. И тогда мы также хотели бы знать некоторые детали о том, что произошло в этом случае. Так вспомните проблемы установить 4. Это, вероятно, самый простой способ понять, что в вырваться. Был некоторый код - как событие случится, но событие может означать многое. Если может означать щелчке мышью, это может означать, что вы попали на клавишу со стрелкой, и др. так далее, и так далее. Но это все сохраняется в этот общий что называется события. И тогда мы сможем сказать, это событие эта вещь? Или это событие эта вещь? Или, какие произошло с этим событием? Так вот почему вы создаете эту переменную там, чтобы спасти, что дополнительную информацию о том, что именно произошло, что вы собираетесь хотите использовать в функции. Но опять же, это, вероятно, один из самых менее важные вещи, чтобы быть супер знакомы. Хорошо, что другие вопросы есть люди, было или камнем преткновения они столкнулись при рассмотрении? Мы будем назад к этому списку. А как насчет во время практических викторины, если люди взяли тех, кто уже? Каковы были некоторые проблемы, которые Сработал вы, ребята до? Я точно знаю, что в прошлом году викторины было действительно трудно. АУДИТОРИЯ: Можете ли вы объяснить, что нападение инъекции SQL является? Джейсон Хиршхорн: ОК, отлично. Таким образом, мы говорили об этом немного. Там в лекция по безопасности. И снова, как я упоминал ранее, это в сторону. Но вы будете разочарованы в викторине когда читаешь некоторые небольшие две точки вопрос, и вы, как, когда я никогда не узнает, что? Все эти вещи в этих лекций что вы не думали, что вам нужно знаете, или вы могли бы замалчивать, потому что у них не было связано с Проблема набор, те, скорее всего, прийти снова на викторине. Так, прохладном, забавные вещи, которые вы просто думал Дэвид рассказывал для вас нравится, что он говорит вам, для вас, чтобы наслаждаться и сделать вас быть просто супер взволнован обучения все есть, чтобы узнать о компьютерной науки. Эти вещи также придумать на викторины. Так, даже эти мелочи, которые не имеют непосредственное отношение к вашей проблеме установить, как вы, ребята, знакомы по Викторина 0, будет, вероятно, придумать. И это хороший пример чего-то. Так с помощью SQL Injection, когда вы получить некоторую информацию от пользователя и Вы хотите, чтобы вставить его в таблицу, используя SQL вставки заявление, но вы не санировать вход загодя. Таким образом, очевидно, что мы видели Заявления SQL. Я просто открыть - пойдем - мы пойдем в обзоре - Я думаю, освещавший это? Я думаю, что Samala сделал. Таким образом, мы можем получить - АУДИТОРИЯ: Где вы нашли это? Джейсон Хиршхорн: Так что, если вы идете в CS50.net, викторины, а затем вы можете прокрутите и получить слайды от обзорной сессии. Но вы можете увидеть это является хорошим примером из атаки с внедрением SQL. Возьмем некоторую информацию от пользователя и они дают нам строку, а затем мы хотите вставить эту строку в базу данных. Вообще мы собираемся, чтобы санировать, что вход, который означает, что есть некоторые символов, которые являются опасными. Например, в строках SQL, эти цитаты - одинарные кавычки или двойные кавычки - что-то значить. Они имеют в виду в конечном эту строку здесь. И поэтому, если пользователь дает один или двойные кавычки, они могут быть пытаясь сбить с толку вашего запроса и вставить некоторые плохие вещи в него. И если они сделают это, они могли получить контроль базы данных или сделать некоторые вещи, которые вы не хотите, чтобы они сделали. Так вот почему всякий раз, когда мы берем SQL запросы, мы санировать вход до поставив его в базу данных, которая означает, что мы избежать этих символов. Мы будем говорить о том, что в секунду. Но Короче говоря, инъекции SQL атака, если вы этого не сделаете, что - если вы не заботиться о входе они дали вам, прежде чем положить ваши В базе, они могут, как видите вниз здесь, выполнить запрос, который, на самом деле - они положили в своем коде сюда и это выберите линию сюда выберет все со стола, независимо чего пароль дается. Потому что у вас есть или 1 равна 1. Так что это в основном, короче говоря, способ взять на себя базу данных. Вопрос, таким образом, для вас, ребята, есть где в р наборов 7 ты санировать все входы в запросах SQL? Откуда это шаг произошло? Где вы предотвращения инъекций SQL атаки с происходит в р установить 7? Да. АУДИТОРИЯ: Crypt? Джейсон Хиршхорн: Так было не склеп. Мы не делали вы это сделаете для этого Особая проблема установить, но это случается в функции запроса. Мы на самом деле написал это для вас, и мы позаботились о дезинфекции входы для вас. Но в прошлые годы, студенты имели ввести входы самостоятельно. В р набора 7, многие из вас - позвольте мне открыть еще один файл. Таким образом, вы заметите здесь много люди, в вопрос, поставленный 7, не звонил эта функция со строками. Эта функция, HTMLSpecialChars, снова - эта строка может иметь некоторые вещи , что в HTML в виду нечто другое. Как скобки, квадрата или под углом Кронштейн что-то значить в HTML. И поэтому, если вы печатаете, что к экран или если вы просто взять, что и распечатать, что к вашей HTML, которые могут сделать то, что вы не ожидаете. Так HTMLSpecialChars переходит все те, символы, которые имеют специальное встречи и убегает их. Так что печатается в виде текста Вы хотите видеть, а не прищурив свой HTML. Мы назвали эту функцию в заголовке. И много людей забыли вызова этой функции в Код вы писали. Так, например, если акция имя было угловая скобка в нем и забыли вызывать эту функцию, что угол Кронштейн может скинули, что Ваш HTML выглядел. Но вызова этой функции будет избежать что это на самом деле выводит как угловая скобка и не бросает от вашего HTML кода. По той же причине мы видели, иногда, косую черту перед двойные кавычки в Е линия, потому что мы не хотим, двойные кавычки вниз строку. Мы хотим, чтобы распечатать их к экрану. Так что все это та же идея. Я ответил на ваш вопрос? АУДИТОРИЯ: Вид. Джейсон Хиршхорн: Нравится ли вам есть последующей деятельности? АУДИТОРИЯ: Я думаю инъекции SQL нападение связано с этим? Я не понимаю, как эти два связаны между собой. Зачем ты это сделал, что specialchars? Джейсон Хиршхорн: Хорошо, таким образом SQL впрыска атака, когда Вы вводите некоторые вредоносные строки в чью-то Программа, и они просто взять его и бежать SQL-запрос со строкой вы дали им. Как вы можете видеть здесь, что может быть проблематичным. Так как вы предотвратить против, что является вы берете их строку, они дают Вы - так эта строка здесь - и вы дезинфицировать ее. Вы избежать все то, что потенциально проблематично. Таким образом, вы не интерпретируют их как нечто это означает, что что-то. И пример, что с HTML является эта функция. Так что это та же идея здесь. И я просто показываю вам друга примеры, когда у Вас есть не видел эту идею. Из побега пользовательский ввод перед печатью это, чтобы экран или положить его внутри заявлении SQL. АУДИТОРИЯ: Так что в этом случае пользователь Мессинг с программистом. Джейсон Хиршхорн: Да. С учетом всех этих атак, это всегда обычно пользователь или кто-то, пытается замарать с вами, программист. И эти способы, вы можете предотвратить против них. АУДИТОРИЯ: Так у меня вопрос о хэш-функций. В викторине 1 с 2011, есть два вопросы о односторонних хэшей. И мне было просто интересно что это значит. Джейсон Хиршхорн: ОК, которые викторине? 2011? АУДИТОРИЯ: Да. АУДИТОРИЯ: Викторина 1? АУДИТОРИЯ: [неразборчиво]. Это все равно что хэширования пароля. Это не положить вещи - Джейсон Хиршхорн: Что страницы так ли? Зала: Я думаю, что это было 9 или 10, или обоих. Джейсон Хиршхорн: Ладно, идти вперед, Курт. Вы можете ответить, пока мы смотрим. Зала: Я думаю, что это говорит о хэширования пароля. Мол, когда кто-то вводит пароль, Вы превратить его в зашифрованном вещи. Это хэш пароля, который является отличается от хэш-функции, что ставит что-то в хэш-таблицу. Джейсон Хиршхорн: Давайте посмотрим. Позвольте мне подтянуть то, что они дать в ответ. И тогда мы будем идти через него. Так Курт дал отличный пример из односторонний хэш. Когда мы видели это раньше, мы взять пароль и повернуть - помните, в р набора 7, кто-то мог бы есть пароль, это только пароль, но тогда он получает зашифрованный в некоторые очень долго вещь. Односторонний хэш означает, что это очень легко идти от одного способа к другому, но это очень трудно перейти от другой путь назад. И так вы знаете, когда вы проверяли пароли народные в задаче установить 7, вы приняли бы их - так, например, говорят, что они хотели изменить свой пароль, вы спросите их, для их старый пароль. Ты взял свой старый пароль. Вы зашифрованы его. А потом сравнили два шифрование а не unencrypting оригинал один, потому что это действительно трудно идти по этому пути. Да. АУДИТОРИЯ: Как в глубину делает наш понимание Telnet должны быть? Джейсон Хиршхорн: Если это было упомянуто кратко в лекции, только краткое понимание. Опять же, к ответу на вопрос Ави - больше вещей придумать, тем более вероятно, она у вас есть, чтобы быть супер знакомы с ними. Если они только приходят в лекции, вот только одно место. Но если они приходят в лекции, раздел, и проблема установить, то вы вероятно, должны быть супер знакомы с ними. Так что я был вопрос от ранее о - , было падение 2010 - Викторина 1, давайте подтянуть - этот вопрос на стеков и очередей, что мы и сделали потратить изрядное немного времени говорили в лекции, даже хотя мы действительно не когда-либо ударил его в разделе. Так что этот вопрос дает вам ряд команд и спрашиваю, что печатается в этом случае. Так что это совершенно резонный вопрос что может быть предложено из вас ребята, а затем вы, ребята, должны быть в состоянии на него ответить. Так почему бы вам не посмотреть на него в течение 30 секунд, а затем, если кто-то хочет предложить ответы на меня, и тогда мы будем идти через него. Ладно, у кого есть ответ на вопрос 27? Да. АУДИТОРИЯ: Это 1, 2, 3, 3? Джейсон Хиршхорн: Совершенно верно. 27 равно 1, 2, 3, 3. Итак, давайте взглянем на то, как мы получили это. Во-первых, мы говорим, если с является очередь, то, что печатается? Так д является первым вошел, первым вышел. Мы видели, что и раньше. Мы видели картину людей ожидания в Apple, Магазин, чтобы купить какой-то продукт. Первые люди в это первые люди вне. Первое, что в очереди первые вещи вне. Так что, если мы нажимаем что-то в очередь, Вы нажимаете на 1, то мы поп 1. Поп просто означает, вынуть. В этом случае, просто взять что-то. Вынимаем первый вещь, это 1. Так мы поместим вещи, которые мы распечатать вниз здесь. Это уже не в нашей очереди. Тогда мы нажимаем на 2 и 3, и мы палить первое. Опять же, потому что это очереди. Таким образом, мы получаем 2, то мы ставим на другой 3 и вызвать поп снова. Наш 3 является первым. И тогда у нас был целый букет другие вещи и вызов поп. Но снова, так как это очередь, Первый пришел, первым ушел. Вынимаем первое, , которая была когда-либо вставил Это наша 3. И, в данном случае, мы не беспокоиться обо всех этих других вещей. Так вот, если это очереди. Любые вопросы о очереди? Стек по-другому. Что является аббревиатурой у нас есть для понимания стек? АУДИТОРИЯ: последним пришел, первым вышел. Джейсон Хиршхорн: ЛИФО, я думаю. Последний вошел, первым вышел. Таким образом, мы видели пример стека из тарелок в столовой. Независимо лоток сверху получает взял. И потом, если новые лотки приходят в, они получают положить сверху. А потом все, что на топ получает взял. Так что те, лотки в нижней мощи остаться там на некоторое время. В этом случае, опять же, мы будем обратить на это. Мы подталкиваем на один, так что является первым в очереди. И мы поп что-то от. И есть только одна вещь, там, так мы движемся 1 здесь. Тогда мы ставим на 2 и 3 и мы поп что-то от. Но опять же, так как это очереди - или это стек, а - мы принимаем все, что было в прошлом. Все, что в прошлом приходит в первую очередь. И 3 находится в прошлом. Так мы ставим 3 там, то мы ставим на другой 3, и мы поп что-то снова. Наконец, положим на 4, 5, 6 и 7, и здесь мы поп-музыки. И потому что это стек, мы берем что была введена в прошлом и писать что здесь. Таким образом, мы в конечном итоге с 1, 3, 3, 7. Кто-нибудь есть какие-либо вопросы о стеки или очереди, или этот пример? ОК. Давайте вернемся к списку тем. Не сюда, сюда. Какие еще вопросы у людей есть? Зала: Я не знаю, как важно это, но я был смущен Разница между различными типами Языки, как разметки, составленные, интерпретировать. Джейсон Хиршхорн: Это хороший вопрос. Я думаю, что это очень важная тема, так что давайте идти по нему быстро. Большие языки, которые мы видели до сих пор, С, PHP, и JavaScript, в терминах из языков программирования. HTML, как вы упомянули, не язык программирования. Это язык разметки. А то у нас CSS, который также не является языком программирования. Мы также видели, SQL, которая не язык программирования либо. Так SQL позволяет писать запрашивает базу данных. HTML это язык разметки. Он определяет, как вещи устроены. И CSS позволяет укладывать вещи. Это, вероятно, степень за то, что вы нужно знать о тех трех. Но это больше интересно рисунке из различий между C, PHP, и JavaScript. Таким образом, одна из самых больших различий, как вы упомянули, то, как они составлен, или то, эквивалент. Так C компиляции. Мы всегда запускать компилятор. А потом где твои ошибки при запуске компилятора C? Где это показать вам ошибок в коде? Как вы знаете, есть Ошибка в коде в C? АУДИТОРИЯ: Это показывает, в терминале. Джейсон Хиршхорн: Она указывает, в Терминал, как вы собираете. И, если есть ошибки, это не будет на самом деле компиляции. Таким образом, вы знаете, что есть ошибки правый прочь, загодя, перед вами даже запустить свой код. Конечно, вы могли бы запустить свой код и получить ошибку сегментации, но это было вероятно, потому что вы сделали некоторые глупо логика вещь. Но ваш код с технически все правильно и может работать. Так C код компилируется загодя. А как насчет PHP кода? Где были ошибки в коде PHP? Как вы знаете, были ошибки в коде PHP? АУДИТОРИЯ: Время работы? Джейсон Хиршхорн: Да, когда вы бы запустить его, вам потребуется запустить PHP-код в спине. И тогда вы бы отображать экран. Вы можете увидеть некоторые вещи на вершине, но тогда вы увидите, как некоторые оранжевый, некрасиво таблице. И это даст вам номер строки и скажем, бла, бла, бла, этот материал не работал. Итак, PHP интерпретируется строка за строкой и выполняется на сервере. И тогда результат будет послал к вам. Великий. Совершено в серверной строка за строкой а затем отправили к вам. И если есть ошибка, то пошлю Вы ошибка, но вы, возможно, получили некоторые вещи загодя. Так некоторые из них, возможно, работал, но позже, некоторые вещи могут не иметь не работал. А как насчет JavaScript? Где вы видели ошибки JavaScript? В р набор 8, когда вы получили Ошибка, как вы узнали? Где бы на карте? АУДИТОРИЯ: В консоли в нижней части. Джейсон Хиршхорн: В консоль, на дно. Было бы также дать вам номер строки, и было бы показать на дне. И JavaScript не была выполнена на сервере. JavaScript был отправлен к компьютеру, а затем, когда пришло время для запуска JavaScript, JavaScript был запустить построчно на клиент, на вашей стороне. Не сервер, клиент сторона. И точно так же, это было запустить строка за строкой. А потом, когда вы получаете сообщение об ошибке, он будет отображаться в нижней части. Подобно PHP, некоторые из них могли бы выполнить, а затем вы можете получить ошибок в дальнейшем. Кроме того, немного в отличие PHP, если вы получили сообщение об ошибке JavaScript - говорят, что вы не сделали право Код для оповещения окне - вы могли бы держать выполнение вашей программы. Окно предупреждения не будет работать, но ваша программа будет в порядке. Просто, может быть, что функция потерпит неудачу. Таким образом, есть некоторые из самых больших Различие в том, как они языки, или, как код программирования Вы пишете на самом деле оценивается. Есть и другие различия в условия - большая разница мы видели в терминах переменных на разных языках. Так кто-нибудь может дать мне разницу между переменными на трех языках? Да. АУДИТОРИЯ: В C, они строго типизированы. В двух других, они свободно набрали. Джейсон Хиршхорн: И что это значит? АУДИТОРИЯ: То, что в C, вы должны объявить Тип переменной, когда вы объявляете переменную, как interbool или символ. Джейсон Хиршхорн: Отлично. В C, у нас всегда были положить Тип переменной. И мы не могли действительно разных типов. Вы не могли бы сделать целое плюс строку. Но, как мы видели в эти другие языки, вы на самом деле можете смешивать типы, и вы никогда не должны дать что-то типа, никогда. Так как мы знаем, все переменные в PHP и JavaScript? АУДИТОРИЯ: В PHP, они начинают со знаком доллара. В JavaScript, при объявлении их, вы должны есть бар. Джейсон Хиршхорн: Верно. Таким образом, в PHP, они начинают со знаком доллара. В JavaScript, они должны иметь бар, хотя иногда они на самом деле не должны иметь бар. Но это правильно. Так что есть большая разница между переменными. Я думаю, что те, вероятно, от верхней части моей головы, два крупнейших различия между ними на трех языках. Но, да. АУДИТОРИЯ: И сфера С переменным ограничивается фигурными скобками, где остальные, это просто нравится, он умирает, если это только функции, но иначе, it's - Джейсон Хиршхорн: Верно. Так объем немного отличается в С. Как Вы помните, фигурные скобки определяют объем переменных. Так что, если он был определен внутри, если состояние, которое находится внутри цикл, переменная существует только там. В JavaScript, если переменная определена внутри, если условия - внутри цикл - это будет существовать что функция, но она не будет существовать за пределами этой функции. Так объем немного более гибким в JavaScript и PHP. Это ответ на вопрос? ОК, все другие вопросы? Мы можем сделать больше четырех минут вопросов, то мы прыгнуть в кодировании. АУДИТОРИЯ: Можем ли мы идти в Ajax и говорить о том, что это такое? Джейсон Хиршхорн: Поговорите с Ави после. Он задал этот вопрос раньше. АУДИТОРИЯ: Мое плохое. Джейсон Хиршхорн: Не беспокойтесь. АУДИТОРИЯ: Что такое JSON? Джейсон Хиршхорн: Что такое JSON? Какой ваш вопрос? АУДИТОРИЯ: Просто очень быстро, разница между печати и эхо в PHP. Джейсон Хиршхорн: Почему бы вам не Google разница между печати и эхо? Небольшая разница. Не то, чтобы большой из предложения. Но вы должны обязательно Google его, и что даст вам хороший ответ. JSON, вероятно, больше, сделки. Стенды для JavaScript Object Notation. И когда мы видели JSON используется? Когда вы видели - почему вы даже знаете слово JSON? Когда вы видели его? АУДИТОРИЯ: Когда мы получали Котировки акций для финансирования. Джейсон Хиршхорн: Так вы видели это когда вы получали Котировки акций для финансирования. А почему вы его видите? АУДИТОРИЯ: Когда мы были извлечения вся информация, пришел в этом формате. Джейсон Хиршхорн: Так вы получите - да. Идем дальше. АУДИТОРИЯ: [неразборчиво] информация из объекта? Джейсон Хиршхорн: Оба из тех собрать ответ мы ищем. Вы хотите, чтобы информация из этот другой веб-страницы. А вы бы надеяться, что, когда вы находитесь получение эту информацию, было бы представлены Вам в некотором роде из стандартного формата. Все, вероятно, знакомы с значений, разделенных запятыми. Можно экспортировать Excel таблицу или любой тип электронной таблицы как список значений, разделенных запятыми. И запятые разделить все различные поля. JavaScript Object Notation - JSON - еще один тип стандартизированный Компоновка вещей. И это часто, как мы извлекаем Информация от наших запросов Ajax. Таким образом, в этом случае, мы получили его с сайта Yahoo. Они возвращаются вещи нам в объекте JSON. А потом мы знаем, потому что это стандартный, что это будет выглядеть. Так что мы можем итерацию массива который вернулся к нам, массива объекты, которые возвращаются к нам. Мы, вероятно, должны знать, ключи, но они как правило, дают вам Документация на сайте, когда вы выборки некоторые JSON обозначения для них. Кроме того, вы можете JSON закодировать объект. Таким образом, есть функция JSON подчеркивают кодирование. И поэтому вы можете принять объект, Вы создали, JSON кодировать его, и передать его на что-то еще, если вы хотите. И JSON декодирования также существует для аналогичная цель, или для наоборот цель. АУДИТОРИЯ: Нужна ли нам знать кодирования для хеш-таблиц и попыток? Или мы просто должны понять, как они используются, концептуально? Джейсон Хиршхорн: Итак, поднимите руку если вы сделали хэш-таблицу для р набор 4 со списком ссылок. Или р установлен 5. Так, чтобы было подавляющее большинство людей. P установить 5, 6, кто знает. Давным-давно. Таким образом, подавляющее большинство из вас сделали хеши со списками ссылок. И потому, что это, вероятно, тем более общий подход, и потому что мы провели много времени, делая списки ссылок и хэш столы, вы, вероятно, следует довольно хорошо знакомы с тем, как кодировать хэш-таблицу и список ссылок. И если вы думаете вернуться к этой проблеме установить, это не было действительно так сложно, как вы ожидали. И там было много меньше Код, чем вы ожидали. Я бы сказал, вы должны знать, как код хэш-таблицу или список ссылок. Не то, чтобы вы бы спросили, что, обязательно, но вы должны конечно, знаете, что. Кроме того, если вы смотрите через последние викторины, было много вопросы о написании функций на списки ссылок или дважды связанные списки. Это, кажется, придумать каждый год. Право вставить на список ссылок, прямо удалить из списка ссылок, прямо вставить для двусвязный списка, и так далее. Так что, я чувствую себя довольно комфортно говорю, что вы должны знать, что. Для попытки, я бы сказал, вы должны конечно, знаете, как это работает, и, возможно, дать некоторые псевдокод для того, как закодировать его и установить его. Но это не было бы самое страшное в мир, если вы не знаете, как кодировать его в С. Было бы здорово, если вам знал, как код его в C, но я думаю, вероятно, псевдокод для попробовали бы наиболее вам потребуется знать для попытки. АУДИТОРИЯ: Дополнительный кредит? Джейсон Хиршхорн: И то же самое с, если мы идти в бинарных деревьев поиска, вы, возможно, нужно, - и вы видели в прошлом, мы сделали много - вы знаете, как бинарное дерево поиска работы. Вы должны, вероятно, сможет установить один в псевдо-код. Но поскольку подавляющее большинство людей этого не сделал на проблеме набор, я бы сказал, что это, вероятно, менее важно, что вы знаете, как код и установить на дерево, как это. Любые другие вопросы? Кроме того, мы можем попросить их по всей как мы идем по некоторым проблемам. Хорошо, мы собираемся двигаться дальше. Перейти этот слайд на данный момент. Говоря о деревьях, что является первым вопрос у меня для вас, ребята. Поскольку это является проблемой. Я бы сказал, это весьма вероятно, вы будете получить проблемы, как это на викторине прошу вас, чтобы закодировать некоторый тип вставки, удалять, поиск, для одного типа структуры данных мы уже видели. Это приходит каждый год, и мы провели Много времени во второй половине этого семестр переходя этих типов данных. Поэтому в данный момент, я определил узел в бинарном дереве поиска. И то, что я бы хотел, чтобы вы дается бинарное дерево поиска, которая начинается на этом узел звезды корня, то заполните реализация функции ниже, который, оказывается, функция находка. И сделать это с и без рекурсии. Поэтому я хочу, чтобы вы написали две функции. Один делает это с рекурсии, один делать это без рекурсии. И не думайте, что корень будет ненулевой. Таким образом, мы ищем целого г в дерево, начиная с корня, и мы должны чтобы написать это рекурсивно и многократно. Да. АУДИТОРИЯ: Итак, вы хотите, чтобы мы вернулись верно если мы считаем, и ложно, если мы не найти его. Джейсон Хиршхорн: Как вы узнали? Как вы узнали, что? АУДИТОРИЯ: я спрашивал сначала, но я был предполагая, потому что он говорит BOOL в начало функции. Джейсон Хиршхорн: Верно. В нем говорится, логический, так что я даже не нужно скажу, что я ожидаю, что вы вернуться потому что он говорит прямо там. Но это так. Вернуться, истинным или ложным. Поэтому, прежде чем начать, я рекомендовал бы, если вы не знакомы с бинарные деревья поиска, быстро рисование картина ему получить ваш понимание, правильно. Это также поможет вам при написании ваш код и проверить его. Опять же, вы также не так уж много Время на тест, чтобы делать все то, что мы просим вас сделать. Так писать псевдокод очень полезно. И мы как правило, дают о - если псевдокод совершенно правильно, это как правило, 50% по какому-либо вопросу. Так что это не жесткое правило, но если вы просто написать псевдокод и это правильно, это вообще 50%. Так что я всегда рекомендовал бы - если вы мало времени, или даже если вы просто пытаетесь, чтобы понять это - начиная с псевдокода. И, наконец, если бы вы могли написать это все в С, что было бы фантастическим. Итак, давайте три минуты работать по этой программе. А потом мы собираемся написать псевдокод для него только один раз, а затем мы собираемся, чтобы закодировать его рекурсивно а затем многократно. Если у Вас возникли вопросы, пожалуйста бесплатно поднимите руку. Счастливая, чтобы прогуляться и ответить на них прежде чем мы начнем, как группа. Давайте возобновить, и мы собираемся псевдокод рекурсивную версию это, и тогда мы будем кодировать его. Так рекурсивная функция нужны две вещи. Это может быть вопрос, который Вы может быть предложено. Нужны две вещи. Кто может поднять руку и сказать мне, что эти две вещи рекурсивный функция должна? По определению это есть две вещи. Каковы эти две вещи? Новые руки. Да, Олден. АУДИТОРИЯ: Так что я точно не знаю, если это терминология, но - Джейсон Хиршхорн: Я рад, Вы поднимая руку. АУДИТОРИЯ: Она нуждается в базовый вариант, и она нуждается в рекурсивный шаг. Джейсон Хиршхорн: Прекрасно. Она нуждается в базовый вариант и рекурсивный шаг. Так в чем же наша база данном случае? АУДИТОРИЯ: F корень равна равна нулю. К сожалению, только в псевдокоде, если это нуль. Если корень нуль. Джейсон Хиршхорн: Если корень нуль. Это превосходно. Это наш базовый сценарий. Это то, что мы собираемся проверить в любое время. И базовый вариант является Первое, что вы делаете. Если вы попали в базовый вариант, вы закончите. Теперь нам нужно наше рекурсивный вызов, и я бы готов поспорить нам нужно пару рекурсивных вызовов здесь. Потому что это дерево, и мы может пойти несколько способов. Так что если корень нуль, мы хороши. Что вы предлагаете? А теперь я собираюсь начать кричать на вас, ребята, потому что я знаю, вы, ребята все это знаем. Но Энни, что должно следующая строка может быть? Что делать, если мы нашли его? Что нам делать? АУДИТОРИЯ: Если мы нашли его? Джейсон Хиршхорн: Или что должно быть, что - дайте мне псевдокод линия, где мы нашли его. АУДИТОРИЯ: Если я равна корень я? Джейсон Хиршхорн: И то что же нам делать? АУДИТОРИЯ: Вернуться правда. Джейсон Хиршхорн: Отлично. Так что, если я это я - ой, они оба звонил, я. Это сбивает с толку. Но если я это я возвращаюсь правда. Это, вероятно, на следующий что мы должны сделать. Имеет смысл. Хорошо, теперь мы не сделали наш рекурсивный называют еще, хотя, потому что рекурсивный вызов будет вызывать эту функцию снова. Так что должны на следующий линия псевдокоде быть? Анна. АУДИТОРИЯ: левая сторона. Джейсон Хиршхорн: Будьте конкретны, хотя. Это бинарное дерево поиска, так что делает проверки на левую сторону влечет за собой? АУДИТОРИЯ: Так узел - Мне очень жаль, корень. А потом стрелка влево. Узел, узел, извините. Я не читал это правильно. Она называется узел, не так ли? Джейсон Хиршхорн: Она будет называться корень в этой функции, но так или иначе. В левой части - да? АУДИТОРИЯ: Если это не равно я, то мы собираемся называть снова функция? Джейсон Хиршхорн: Совершенно верно. Если он не равен я, мы собираемся снова вызвать функцию. Но то, что сторона дерева мы будем снова вызвать функцию? АУДИТОРИЯ: На левой стороне. Джейсон Хиршхорн: Мы не всегда буду называть его левая, если он не равна его. АУДИТОРИЯ: Ой, простите. Позвоните справа. Джейсон Хиршхорн: Мы хотим знать, В частности, хотя - помните, в бинарное дерево поиска, чтобы все левой стороне меньше. Все вправо правая часть больше. Так что это просто нет - да, идти вперед. АУДИТОРИЯ: Если это меньше, чем я, то - если он находится на левой - Джейсон Хиршхорн: Так что, если ри меньше - так что если наш номер меньше, чем я, с какой стороны мы хотим идти? АУДИТОРИЯ: Мы хотим пойти на правой стороне. Джейсон Хиршхорн: Мы хотим пойти - Позвольте обратить быстрый дерево. Если это 5, то это будет 3. Так что, если ри меньше пяти, то, что сторона мы хотим идти? АУДИТОРИЯ: Прости, что? Джейсон Хиршхорн: Наш номер меньше, чем количество мы находимся глядя на прямо сейчас. АУДИТОРИЯ: О, тогда мы хотим пойти в левую сторону. Да. Извините. Джейсон Хиршхорн: Совершенно верно. Не беспокойтесь. В бинарном дереве поиска, все ниже находится слева, больше находится справа. Так что, если наша число меньше я мы проверяем - потому что вы видите в узел, он имеет I - то вы хотите, чтобы пойти налево. И это является легким. Что это такое другая линия псевдокода нам надо написать? Карлос? АУДИТОРИЯ: То же самое, вы просто включите его больше, чем знаком и пойти направо. Джейсон Хиршхорн: Можете ли вы говорят, что это еще раз? АУДИТОРИЯ: Если наш номер больше чем я, пойти направо. Джейсон Хиршхорн: Отлично Работа на псевдокоде. Сделаем это в реальном коде. И опять же, это псевдокод будет вероятно, получить тебя, потому что это правильно, 50% по этому вопросу. Но это псевдокод также переводит один к одному, по существу, в код. Так давайте делать это на языке C. Кто может дать мне первая строка кода? На самом деле, во-первых, прежде чем сделать что, позвольте мне остановиться - АУДИТОРИЯ: У меня есть вопрос. Почему вы отступ линия я тебе дал? Джейсон Хиршхорн: Потому что Я не мог написать. Я не знаю. Вы правы. Эта линия должна быть там. ОК, вот наша функция. И позвольте мне остановиться, и, наше определение узла. Что произойдет, если мы не сделали написать ЬурейеЕ? Кто-нибудь знает? АУДИТОРИЯ: Это не было бы составить. Джейсон Хиршхорн: Было бы компиляции, да. АУДИТОРИЯ: Будет ли это просто объявить один экземпляр вместо того, чтобы это новое введите можно объявить кратное случаи? Джейсон Хиршхорн: Поэтому он не будет знаю - он не будет просто объявить один тип. Вы все еще можете сделать много узлов. АУДИТОРИЯ: Но не надо написать структуры узлу каждый раз? Джейсон Хиршхорн: Совершенно верно. Вы должны были бы написать структура узел каждый раз, когда, вместо того, чтобы просто узел. Но с ЬурейеЕ, вы можете просто написать узлу каждый раз. Хорошо, кто не дал - да, Avica. АУДИТОРИЯ: Если корень равен равных нуль, возвращение ложным. Джейсон Хиршхорн: Великий и это наша базовый вариант. Следующая строка кода. Тот, кто не дал меня строка кода еще? Да. АУДИТОРИЯ: Root стрелка я равна равна Î. Затем вернитесь правда. Джейсон Хиршхорн: Отлично. Следующая строка? Да. Кто-то еще? И тогда вы можете идти дальше. АУДИТОРИЯ: Иначе, если корень стрелка я меньше я буду возвращаться Функция называется находка корень - Джейсон Хиршхорн: Извините. АУДИТОРИЯ: Вернуться находка корень указывает налево запятая я. Джейсон Хиршхорн: Так что, если ри больше чем вещи в дереве, мы хотим пойти налево? АУДИТОРИЯ: Нет, у меня было, что включается. Джейсон Хиршхорн: Который? АУДИТОРИЯ: Нет, да. У меня есть менее подписать там. Джейсон Хиршхорн: справа, если ри является меньше, чем то, что в корне - наш текущий корень - то мы хочу пойти налево. И то, что последняя строка, вы? АУДИТОРИЯ: В принципе то же самое, кроме переключения больше или равной менее и слева направо. Джейсон Хиршхорн: Отлично. Кто-нибудь есть какие-либо вопросы об этом? Таким образом, некоторые другие вещи, которые бы , был прав в том, что может быть-ltiff. Угадайте, технически, ни один из них действительно также должны быть-ltiff. Кроме того, там, наверное, только один случай здесь. Так что, наверное, ваш последний случай. Вам даже не нужно, что-ltiff. Но, наверное, хорошо, чтобы написать это, чтобы было ясно. Да. АУДИТОРИЯ: Так вы не думаете, викторины - если мы сделаем ошибки, например, в синтаксисе - маленькие синтаксические ошибки - как же, что берутся в викторине? Джейсон Хиршхорн: Вообще на викторине, небольшой синтаксические ошибки или маленький Ошибки стиля не теряют вам очки. Так что, если Вы забыли точку с запятой здесь, это было бы в порядке. Если вы забыли закрыть эту скобку, что было бы в порядке. Огромные синтаксические ошибки, которые изменяют функциональный смысл вашего кода резко, вы можете получить сняли очки за. Или вообще, просто сортировка вам от наличия или отсутствия вашего Функции код, даже - не его дизайн так много, а не его стиль. Давайте теперь кодировать итеративный версия находки. Так что это будет очень похож, но Есть, конечно, будет некоторые ключевые отличия. Тем не менее, наш псевдокод , вероятно, может идти - мы все еще можем взять одну строку псевдокод и выяснить, что линия в этом случае. Таким образом, в итеративном варианте, что Как вы считаете, Юлия, должны быть первой строкой? АУДИТОРИЯ: Опять же, в итерационном логическое значение, вам нужно настроить цикл, не так ли? Джейсон Хиршхорн: ОК. АУДИТОРИЯ: Так что для, как, к, для х равен 0, х меньше, чем я. Или нет, х меньше размер дерева. Джейсон Хиршхорн: Дерево. Таким образом, мы действительно не знаем, размер дерево, и мы действительно не знаем, для сколько раз мы можем пойти, так в чем другой тип цикла, что может быть лучше в этом случае? АУДИТОРИЯ: Если еще? Джейсон Хиршхорн: Если еще не может быть петля. Так в чем же тип цикла мы можем только идти до некоторых дело не встречались? Что только другой тип цикла в С, кроме цикл? АУДИТОРИЯ: В то время как. Джейсон Хиршхорн: В то время как, именно так. В какое-то время цикла, не нужно знать, как - в то время как цикл и цикл может сделать та же самая вещь, но хорошая вещь о время как петля нам не нужно знать, насколько большой наш дерево. Так что мы собираемся, чтобы идти до чего? АУДИТОРИЯ: Пока не равна размер - Джейсон Хиршхорн: Ну, это очень похожа на нашу рекурсивного случае. Так что - АУДИТОРИЯ: В то время как корень я не равно я. Джейсон Хиршхорн: Это действительно близко. В то время как корень я - давайте попробуем. Я не думаю, [неразборчиво] где корень я не равно я. Мы, возможно, потребуется изменить его в немного немного, но это звучит как это довольно хорошо, на данный момент. Таким образом, мы сделаем это. Кроме того, помните, что мы не можем предположить, за вопрос. Вы не думайте, что корень будет ненулевой. Так что же вы думаете, что очень Первое, что мы должны сделать, это? АУДИТОРИЯ: Просто делать то же самое , что и раньше. Если корень равен равных нуль, возвращение ложным. Джейсон Хиршхорн: Отлично. Таким образом, можно быть нулевым. Поэтому мы хотим, чтобы избавиться о нем сразу же. А потом мы собираемся галочку, если корень я не равен I. Так, сказать, что мы ищем в этом дереве для 3 корня я не равны я, теперь мы находимся в нашем время цикла. Что мы хотим сделать? И опять же, это будет довольно похожа на нашу рекурсивной версии. Да. АУДИТОРИЯ: Таким образом, вы хотели бы итерации, или продолжать идти вниз по дереву, пока корень не равен нулю. Джейсон Хиршхорн: Пока корень не равен нулю? АУДИТОРИЯ: Корневой тире я не равен NULL. Просто корень, да. Как долго, как корень не равен нулю. Джейсон Хиршхорн: Итак, вы хотите изменить это в корне не равно NULL? АУДИТОРИЯ: Да. АУДИТОРИЯ: Мы могли бы объединить это, не так ли? Нам не нужно ПЧ, на начальном этапе. Джейсон Хиршхорн: Хорошо, таким образом, если мы не - если мы объединим их, так что мы собираемся делать в то время как корень не равен NULL, и если корень происходит быть нулевыми на начиная, что мы делаем здесь? АУДИТОРИЯ: Вернуться ложным. Джейсон Хиршхорн: Отлично. Так оба пути, вероятно, работал бы. Это другой способ, и это объединяет его. Но опять же, если вы сделали так или иначе, мы не собираюсь снять дизайн указывает на викторине. Но это хорошо выглядит. Таким образом, хотя корень не равно нуль, что является первым что мы хотим, чтобы проверить? Кто-то еще? Null, что первое, что? АУДИТОРИЯ: Если ри меньше - о, я думаю, если у нас уже нашли его в корне. Так что если корень стрелка я равна I - Джейсон Хиршхорн: Извините? АУДИТОРИЯ: Если корень стрелка я равно равна I - Джейсон Хиршхорн: Что нам делать? АУДИТОРИЯ: Вернуться правда. Джейсон Хиршхорн: Отлично. И что дальше? Джефф, что следующая строка кода? АУДИТОРИЯ: Если я меньше корневой стрелкой я, то корень равна корень стрелкой влево. Джейсон Хиршхорн: Главные равно корень стрелка влево. Так что, наверное, самый большой Разница здесь в этот повторяющийся версия в отличие от рекурсивная версия. Рекурсивная версия, мы вызвать функцию снова. Мы будем обновлять корень, когда мы называем новую функцию. Здесь мы не призываем новую функцию. Мы просто только обновления корень в этой функции. Это превосходно. И то, что последняя строка кода? Да, Марио? АУДИТОРИЯ: остальное корневые равно корень со стрелкой вправо. Джейсон Хиршхорн: Извините? АУДИТОРИЯ: Главные равно корень со стрелкой вправо. Джейсон Хиршхорн: Не могли бы вы также написать что-то вроде этого? Зала: Я понятия не имею,. Джейсон Хиршхорн: Вы не можете. Вы не можете сделать плюс равных. ОК, так что это хорошо выглядит. Почему бы нам просто не сделать это чтобы очистить его. Это выглядит большим, и это будет работать. И мы бы вырваться. Если корень слева был нулевым или корневой право был нулевым, мы приехали бы сюда. Корневая будет равна нуль. Мы бы вырваться из нашего цикла, и мы бы вернуться ложным. Поэтому, когда мы вырваться из цикл, мы вернуться ложным. И снова, в то время как петля было прекрасно здесь, потому что мы не знаем, как большая наша дерево. Мы пытались написать цикл, но мы понял, вы должны выяснить, как она велика загодя. Да. АУДИТОРИЯ: Если бы это было не бинарный дерево поиска, было бы реальным математика-й написать его многократно, не так ли? Мол, если бы это было дерево, но не обязательно - так это было не все меньше слева, и все больше справа. Было бы очень трудно перебрать его, не так ли? Мы должны были бы сохранить то, что было раньше на в дереве и вернуться, и все в таком духе. Джейсон Хиршхорн: Если бы не это двоичный дерево поиска, если это была просто дерево и вещи не были сортируются, как это - и мы поняли раньше, когда Анна помогал нам, что делает его отсортированный нам очень помогает - мы должны были бы, да, всегда сохранять где мы были ранее. Но не может быть много где мы были previouslys. Там может быть много родительских узлов. Наверное, лучший способ сделать это будет в том, чтобы продолжать настаивать вещи на некоторые тип стека или очереди. Вы никогда не должны были бы кодировать этот потому что это нелегкая задача. Но вы нажимаете некоторые вещи в стек или стоять в очереди, а затем поп их, и затем оценить их. А потом есть другая вещь, где вы на самом деле положить узлы и затем создать что, а затем поиск через это. Это может быть лучший способ это сделать. ОК, все вопросы об этой проблеме? АУДИТОРИЯ: Это на соответствующую записку. Будет ли у нас для сравнения времени работы для хэш-таблицы, двоичный деревья поиска, и так далее? Джейсон Хиршхорн: Наверное. Так давайте сделаем это очень быстро. Время работы для хэш-таблицы - что же остальные? Двоичной дерево? АУДИТОРИЯ: списки Link. Джейсон Хиршхорн: Хорошо, давайте сделаем вставку. Что такое большая O вставки на хэш-таблице? Каковы предположения вы делаете? АУДИТОРИЯ: Вы вставки в начале списка ссылок. Джейсон Хиршхорн: Вероятно, первым предположение нет столкновения. Если нет столкновения, то время вставки находится один. Если есть столкновения, и вы делать раздельного связывания и вставки в начале списка ссылок, затем вставка также постоянна. Если вы делаете хэш-таблицу, но вы иметь другой метод борьбы со столкновениями, что другой метод? Что является другим способом борьбы с столкновения в хэш-таблице? АУДИТОРИЯ: Линейное программирование. Джейсон Хиршхорн: Линейное программирование. Так что мы собираемся продолжать смотреть на следующий открытом месте. Это не постоянная времени вставки. Вы могли бы пройти через вся таблица, так что может быть большим О н. Да. АУДИТОРИЯ: В противном случае просто цепочки? Джейсон Хиршхорн: Мы сделали отдельный цепочки. Это было первое. Это то, что список ссылок. Причудливое название отдельно цепочки. Это может быть любой тип структуры списка мы, оказывается, сделать в списке ссылок. Итак, еще раз, вставка на хэш-таблице может быть постоянная времени. А как насчет вставки на очереди укладчика? АУДИТОРИЯ: Разве это не постоянная? Джейсон Хиршхорн: Это постоянная времени. Ты просто толкая его. ОК. Вносимые, каковы были остальные? На попытки? Что такое Big O вставки на попытки? АУДИТОРИЯ: длина постоянна. Длина самой длинной - Длина слова вы вставки. Джейсон Хиршхорн: Извините? Подождите, так что же я слышу? Вы сказали, - что ты сказал? Какова была ваша ответ, Маркус? АУДИТОРИЯ: длина слова вы вставки в символах, предполагаю, что это попытка характер. Джейсон Хиршхорн: Итак, длина слова. Мы сделаем предположение, что это строка символов. Вы сказали что-то другое, хотя. Вы сказали, длина самого длинного слова. АУДИТОРИЯ: Это просто постоянная, не так ли? Джейсон Хиршхорн: Зачем это быть постоянным? АУДИТОРИЯ: Как, если вы используете большие O обозначения, то это не зависит от количества вещей, которые уже в попытке. Джейсон Хиршхорн: Таким образом, мы бы говорят, что это постоянная времени. Это постоянная вставки, и это потому, что эта идея - , у нас есть Слово, 45, или слово, что это 60, что имеет постоянное число. И было бы просто быть вставлен за постоянное время. На практике, однако, это не было бы, очевидно, произойдет в одну миллисекунду, например. Но мы сказали бы, большой вывода постоянная для попытки. И это одна из его больших преимуществ. А как насчет вставки в список ссылок? Просто общий, отсортированный список ссылка? Да. АУДИТОРИЯ: у меня был вопрос. На тест, будут ли они когда-нибудь спрашивали нас о Время вставки вот четыре шага, или что? Или это просто - когда вы говорите, время ввода является одним, это просто означает, постоянная времени? Джейсон Хиршхорн: Да, они будут всегда спрашивают, является его большим О п? Big O из журнала п? N квадрат постоянной. Те, действительно единственный те, которые вы должны знать. А как насчет вставки на сортируются список ссылок? АУДИТОРИЯ: у меня был вопрос - вопрос - Джейсон Хиршхорн: Каков ответ на этот вопрос, хотя? АУДИТОРИЯ: Подождите, что вы спрашиваете? Джейсон Хиршхорн: Что такое большая вывода Включение в список, отсортированный ссылка? АУДИТОРИЯ: Один? Никакие не ждут, не ждут, н. Джейсон Хиршхорн: Н. Кроме того список ссылок. И то, что было на ваш вопрос? АУДИТОРИЯ: Так вы бы написать о от к или вывода 1 для - Джейсон Хиршхорн: Ох. Я хотел бы написать о 1, наверное. Был один другой структурой данных что было бы хорошо. Дерево, дерево двоичного поиска. Что вставки на бинарное дерево? АУДИТОРИЯ: Логин. Джейсон Хиршхорн: Итак, что является худшим дело в бинарном дереве поиска? Так что, если мы, случается, начинаются в 5, и каждый число больше 5, то у нас есть 5, 7, 9, 11, и так далее. В этом случае, это в основном просто ссылку Список, и мы должны вставить все путь в конце. Так что это большой О н. Это может быть наш худший случай на бинарном дереве поиска. Очевидно, что вы никогда не построить бинарное дерево с 5 в средний, зная 5 будет будет под наименьшим номером. Но это может быть, если вы начиная с нуля. Есть вопросы по этому прежде, чем я перейти к другому вопросу? Это был хороший вопрос. Я знал бы большой вывода - АУДИТОРИЯ: Что о поиске для тех, кто четыре? Джейсон Хиршхорн: Определенно мы сделал поиска и сортировки. Мы сделали все эти алгоритмы, правильно. Подождите, было то, что для викторины 1? Был, что покрыта - ты уже есть, что вопрос о викторине 1? Большой О выполнения бинарного поиска, сортировка вставками, пузырьковой сортировки? АУДИТОРИЯ: Да. Джейсон Хиршхорн: Если бы вам пришлось, что вопрос о викторине 0, наверняка вы не будете получить точно такой же вопрос о викторине 1. Может быть еще хорошо знать тех,. Вы должны надеемся, знаете GH уже. Но другие логарифмические время автономной работы , вероятно, хорошо знать. Вещи, которые не были покрыты на Quiz 0. Как и все этих операторов на эти абстрактные типы данных. Хорошо, давайте двигаться дальше. Это надо быть довольно быстро. И это новый язык у нас не на самом деле закодированы в перед. Это вопрос, запрашиваемая кодировать в PHP. Так считают массив PHP ниже. Написать PHP и / или HTML коды, такие, что выводит таблицу с двумя столбцами с ТФ Имена и дома. Вы никогда не делали этого раньше, это конкретная проблема. Но это должны быть хорошо знакомы с что вы делали в проблеме установить 7. Так что я был бы готов держать пари, вы будете спросил закодировать что-то в PHP, что очень похож на то, что вы сделал в задаче установить 7. Во-первых, массив не что конкретно. Какой вид массива это? АУДИТОРИЯ: Ассоциативный. Джейсон Хиршхорн: Это ассоциативный массив. И в чем же разница между ассоциативный массив и объект? АУДИТОРИЯ: массив объектов имеет индекс целых чисел, и ассоциативный массив является индексом строки, или что-то в этом роде. Джейсон Хиршхорн: Так массив объекты будут иметь индексы целые числа, а объект имеет поля. Он имеет те поля имена, как имя, дом, студент. У вас есть идея? АУДИТОРИЯ: Ну, ассоциативное Массив находится в PHP, не так ли? И объект находится в JavaScript? не Джейсон Хиршхорн: Честно говоря, нет никакой реальная разница между ними. Оба имеют строки в качестве ключей, а может есть в основном ничего в качестве значения. Разные языки, позвоните по одному вещь ассоциативный массив, Одно дело объект. Так честно, нет никакого реального разница, но есть, конечно, некоторые синтаксические различия между ними. Да. АУДИТОРИЯ: Так как объект также под кодом капот в хэш-таблице, то? Джейсон Хиршхорн: Что вы В смысле, закодированы под капотом? АУДИТОРИЯ: Нам сказали, что ассоциативная Массив был технически хэш-таблицы. Так объект также технически хэш-таблицы? Джейсон Хиршхорн: я не собираюсь ответить на этот вопрос. Я вернусь к вам на что. Но я не думал бы об либо из тех, как этот. Но, в любом случае, ассоциативный массив и Объект, как правило, люди используют те термины взаимозаменяемы. В этом случае, прохладная часть что вы можете использовать ключи. Строки как ключи, а не только простые числа. Так что я говорю о это на некоторое время. Будем надеяться, что у некоторых людей есть получили начал на этом. Мы собираемся написать некоторый PHP и HTML Код, таким образом, что мы получаем в два столбца стол с TFS имен и домов. Хорошо, я также хотел бы заголовок грести по этой таблице. Так что я собираюсь получить прямо в это. Мы собираемся подать, новый, и мы собираемся - ОК. Как мне начать таблица? Что тег, Майкл, начать таблицу? АУДИТОРИЯ: Таблица. Джейсон Хиршхорн: Таблица. И если я открываю тег, что еще мне нужно? АУДИТОРИЯ: голова? Или, я думаю, класс. Джейсон Хиршхорн: Так, извините. Предположим, что мы уже написали doctab, HTML, все такое. Но если я открываю эту таблицу тег, что еще мне нужно писать? для проверки HTML? АУДИТОРИЯ: Закройте его. Джейсон Хиршхорн: Закройте тег. Как мне написать тег крупным стол? АУДИТОРИЯ: Dot сократить таблицу. Джейсон Хиршхорн: Slash стол, большой. Наверное, имеет смысл написать как из тех, вместе, потому что вы должны это сделать. Хорошо, если я хочу строку заголовка, как сделать Я пишу строку заголовка с названиями? АУДИТОРИЯ: Это меньше чем на 10 часа закрытия - TR, да. Джейсон Хиршхорн: TR? АУДИТОРИЯ: Тогда же самое, слэш, да. Джейсон Хиршхорн: ОК, а дайте мне две колонки. АУДИТОРИЯ: T D? Джейсон Хиршхорн: ОК. Я хочу два столбца. Значит ли это, дайте мне две колонки? Сколько столбцы это? Один. Так что давайте скопируйте и вставьте этот. Таким образом, фактически, на викторине, весь этот код что мы написали до сих пор было на самом деле дано вам. Но вы должны, вероятно, по-прежнему знаете, как писать его. Да. АУДИТОРИЯ: Ваш дом между ними. Джейсон Хиршхорн: Бум. Это должно пойти прямо там, не так ли? Хорошее слово. Итак, еще раз, все это код на самом деле дано вам от фактического викторины. Но это весело, чтобы написать ее, и вы должны знать, как писать. Так что это, где вы должны чтобы начать свой код. Что нам нужно, чтобы написать прямо здесь? К сожалению, мне нужно изменить Имя этого файла. Таким образом, мы сохранили его в. HTML файл, не в. файл PHP. Эти вещи не будет означать ничего в. файл PHP. Таким образом, мы находимся в. HTML-файл. Что такое первое, что Мне нужно написать? Я хочу поставить некоторые PHP Код в HTML. АУДИТОРИЯ: PHP, как другой моркови и знак вопроса PHP, не так ли? Джейсон Хиршхорн: Отлично. И как я могу закончить это? АУДИТОРИЯ: С вопросительным знаком. Джейсон Хиршхорн: Это здорово. Это первое, что мне нужно, если я хочу поставить некоторые PHP код здесь. АУДИТОРИЯ:. Я думал, PHP файл может занять HTML. Джейсон Хиршхорн: Да. . Файл PHP может занять некоторое HTML и отображается. Это была моя плохо. Я просто пытался подражать что это было на викторине. ОК, извините, чтобы запутать вас. Да, practice.HTML. Теперь мы собираемся поставить некоторые PHP код дюйма Что такое первая линия PHP код, я должен написать? Я собираюсь пройти через этот массив и превратить его в таблице. Да. АУДИТОРИЯ: Вы можете использовать для H петли или для петли. Джейсон Хиршхорн: Хорошо, что вы хотите использовать? АУДИТОРИЯ: Я хотел бы использовать для петли. Для, а затем вы делаете знак доллара я равно 0 запятой доллар подписать я меньше 2. А потом запятой я доллар знак, я плюс плюс. Джейсон Хиршхорн: Как сделать Вы знаете, чтобы использовать 2? АУДИТОРИЯ: Потому что было два ассоциативные массивы внутри больше ассоциативный массив. Джейсон Хиршхорн: Так что самый большой штука не ассоциативный массив. Большая вещь просто нормальный массив. Но вы правы, есть две ассоциативные массивы внутри нашего большого массива. Вот почему вы используете два. Я чувствую себя некомфортно при условии, что они 2, так в чем способ написания это не предполагая, что они 2? АУДИТОРИЯ: [неразборчиво]? Джейсон Хиршхорн: Хорошо, как Вы пишете, что? АУДИТОРИЯ: знак доллара по каждому элементу TFS или как знак доллара тс. Джейсон Хиршхорн: Итак, для каждого TFS как TFS, я хочу, теперь опять же, есть свой стол. Так кто может дать мне Следующая строка кода? АУДИТОРИЯ: Печать, а затем в котировки, кронштейн тр конец кронштейн, конец цитаты. Конец скобки, точка с запятой. Джейсон Хиршхорн: ОК, а что, что будем делать? АУДИТОРИЯ: Это будет сказать, новую строку. Это собирается поставить пометить для новой строки. Джейсон Хиршхорн: справа, это PHP, как мы говорили ранее - это PHP собирается быть оценены, а затем это будет распечатать в этот файл Таблица подъемник, а затем, что HTML будет оцениваться. Мы просто копируя этот HTML мы имели здесь. Да. АУДИТОРИЯ: [неразборчиво]? Джейсон Хиршхорн: Извините? Это прямо здесь. Осень 2012. Не смотрите на ответы, давайте решать их вместе. Так мы печатаем строку таблицы. Таким образом, вы, вероятно, в качели вещей. Какой следующий линия Код нам надо написать? Ассам, дай мне следующую строку кода. АУДИТОРИЯ: Вы должны имя TF в. Т открытой скобки кавычки Закрытое скобки. Джейсон Хиршхорн: Дайте мне свое имя. АУДИТОРИЯ: Вам нужно распечатать, что. [вставляя ГОЛОСА] Джейсон Хиршхорн: ОК, как я могу напечатать? [вставляя ГОЛОСА] Джейсон Хиршхорн: Мне не хватает что-то сейчас. Что мне не хватает? АУДИТОРИЯ: Вам нужен знак доллара. Джейсон Хиршхорн: Что еще мне не хватает? Все, что мы напечатаны до сих пор является тр. АУДИТОРИЯ: Закройте тр после него. Джейсон Хиршхорн: Так что нам нужно чтобы после закрытия тр. Кто видит, что мы пропустили в строке 16? Да, Анна. АУДИТОРИЯ: Вам нужно открыть тд и фигурные скобки. Джейсон Хиршхорн: А где мы ставим фигурные скобки? АУДИТОРИЯ: Вокруг имени тс. Джейсон Хиршхорн: Как это? АУДИТОРИЯ: Да. И затем закройте тд. Джейсон Хиршхорн: Как что? АУДИТОРИЯ: Нужна ли вам двойную цитату знаки рядом с фигурными скобками? Джейсон Хиршхорн: Прямо здесь? Нет, вы не знаете. Так это совершенно верно. Да. АУДИТОРИЯ: Таким образом, разница между тем, и encatenating с точками есть, если Вы используете точки, вы должны были бы иметь двойные кавычки, то точка, то точка - Джейсон Хиршхорн: Правильно. Так вы говорите, что есть конечная способ написания этого так. Что оператор конкатенации в JavaScript? АУДИТОРИЯ: Знак плюс. Вы забыли поставить фигурная скобка назад. Джейсон Хиршхорн: Отлично. И есть еще одна линия кода отсутствует. Кто может дать мне последнюю строчку кода мы пропустили? АУДИТОРИЯ: Просто та же самая вещь, просто с домом вместо имени. Большой Джейсон Хиршхорн: Отлично. И ваш синтаксис подойдет именно получать вещи в качестве ассоциированного массива. Таким образом, в реальной викторины, вы на самом деле не отказался, пока здесь. Так этот код был дан вам. Все, что вам надо было написать были эти четыре линии, и не забудьте закрыть тег таблицы. Вы, ребята, на самом деле все это и многое другое. Да. АУДИТОРИЯ: Так что было бы функционально то же самое, если вы только что, что все в один большой вызов для печати, не так ли? А потом просто объединяются это на, и так далее? Джейсон Хиршхорн: Как что? АУДИТОРИЯ: Да. Она просто не будет выглядеть хорошо, если бы вы были глядя на него, когда вы осмотра элемент на своем сайте, не так ли? Джейсон Хиршхорн: Я согласен. Если я загрузил эту веб-страницу, я был бы состоянии видеть этот PHP код, когда-либо? АУДИТОРИЯ: Нет. Джейсон Хиршхорн: Нет. А на самом деле, я бы не стал. АУДИТОРИЯ: Это не HTML, верно? Таким образом, вы могли бы - Джейсон Хиршхорн: Так что это PHP будет быть оценены на стороне сервера. PHP всегда оценивается на стороне сервера, так вы никогда не увидите PHP код. Зала: Но вы были бы в состоянии увидеть результат отпечатков. Джейсон Хиршхорн: Верно. И это, честно говоря, не могли бы поставить все это на линии. Это может отформатировать его приятно для вас, или это может поставить его на одной линии. Непонятно. Но да, хороший момент. АУДИТОРИЯ: Почему там нет выделение текста для любую из команд PHP? Потому что я помню, что. Джейсон Хиршхорн: Потому что это . HTML файл здесь на самом верху. Там вы идете. АУДИТОРИЯ: Если бы мы сделали первоначальный метод с для петель, справа, если мы хотел получить доступ к TFS, так ли сделать TFS кронштейн 0 кронштейн, то [Неразборчиво]? Джейсон Хиршхорн: Вы бы - так что вы хотите сказать, что для для цикла, вы могли бы сделать в знак доллара TFS кронштейном 1 или я, не так ли. Или знак доллара я закрываю кронштейн а затем квадратная скобка двойные кавычки, да. ОК, отлично. У нас есть еще один быстрый один. Семь минут, так что я хочу перейти на этот. Это еще один пример. Теперь мы полностью другой язык. У нас есть некоторые HTML-код. Это своего рода небольшой на экране, но Я хочу, чтобы вы через него действительно быстро, и может кто-нибудь сказать мне, если бы я был, чтобы загрузить эту веб-страницу, что я хотел бы видеть? Опишите все о это веб-страница. Ной? Что бы я вижу? АУДИТОРИЯ: Код на переднем конце Google, с чувством текст и кнопку нажать кнопку. Джейсон Хиршхорн: А что бы кнопку сказать? АУДИТОРИЯ: Отправить. О, поиск. Мне очень жаль. Джейсон Хиршхорн: Это бы сказал поиска. Помните, имя. Что мы используем название? Этот атрибут имя, что что используется? [вставляя ГОЛОСА] АУДИТОРИЯ: Это его имя когда он нажал? Джейсон Хиршхорн: Это может быть. Но то, что мы обычно видим - почему мы даем эту очередь имя? Почему мы видим, что? Да. АУДИТОРИЯ: Разве это не стало индекс из супер глобальной переменной? Джейсон Хиршхорн: Да, как правило, когда эта форма будет представлять, а затем, когда бы это представить? Что страницы? Ной, на какой странице бы это представить? Зала: Я не уверен. Джейсон Хиршхорн: Где может мы можем найти его? Где вы находите, что страница это представляет? Что строка кода? АУДИТОРИЯ: Форма действие. Джейсон Хиршхорн: Совершенно верно. Действие. Так что подает в странице поиска. Обратная косая черта поиск. Так это совершенно верно. Какой метод? АУДИТОРИЯ: Получить. Джейсон Хиршхорн: Получить. Именно так. Так, мы читаем это. Это собирается быть одной из форм. Вы совершенно правы. Две вещи по форме, название страницы и верхний бы Google. Так вот два вопроса, вы должны быть в состоянии ответить об этой странице. Если это HTML живет на этом веб-сайте и пользователь вводит ошибку в тексте поле прямо здесь, что URL будет пользователю найти себя на заполнив форму? Поэтому у нас есть это прямо здесь. Я собираюсь вернуться в эту страницу, однако. Я напишу эту первую часть. Все ли могут увидеть здесь? ОК, Марио, вы думаете, что знаете? Что страницы? АУДИТОРИЯ: поиск Обратная косая черта. Джейсон Хиршхорн: Я собираюсь двигаться вниз здесь. ОК, обратный слеш Поиск вопрос марка д равна ошибка. Кто-нибудь имеет различное предложение? Да. Так как же нам получить? Ну, мы видели это прежде. И вы пришли к этому раньше. Вы были правы, Ной, что действия говорят нам, что страницы мы собираемся. Мы также знаем, что такое метод. Мы делаем получить. И разница между GET и сообщению является то, что получить дисплеи в URL и после этого не делает. Так что, если я написал пост прямо в Метод, что будет по-другому? АУДИТОРИЯ: Было бы просто быть поиск слэш. Джейсон Хиршхорн: Было бы просто быть слэш поиска. Ничто здесь не случится. Но потому что это получить, URL отображается следующим образом. Сначала мы видим знак вопроса и мы видим имя и значение. Скажем была еще одна текстовое поле и Я дал ему имя г и я INPUT A значение, гусеница. Что бы это сейчас выглядит? Я еще один текстовое поле, я даю наименование г и значением гусеницы. АУДИТОРИЯ: После баре вам придется амперсанд гусеница. Джейсон Хиршхорн: Это не амперсанд. АУДИТОРИЯ: Или просто все и символ. Джейсон Хиршхорн: Да, нет. Вы были правы, я был неправ. Вот как г. АУДИТОРИЯ: Caterpillar. г равна гусеницу, извините. Джейсон Хиршхорн: Есть нет т там? АУДИТОРИЯ: Нет, есть. Джейсон Хиршхорн: Мы будем говорить о том, что после занятий. Вот именно. Таким образом, и является правильным. И тогда вы могли бы многие из них, и все они будут объединены вместе с этим, и. Так это совершенно верно. Там еще один вопрос. Эскиз DOM Этот HTML-, начиная с документом. Мы могли бы сделать это в течение двух минут. Мы сделаем это здесь. Я вернусь к этой веб-страницы. Хорошо, мы начнем с документа. Что дальше? Поэтому, когда вы читаете через - АУДИТОРИЯ: HTML. Джейсон Хиршхорн: HTML находится рядом. Мы собираемся пойти тег по тегу. Что после HTML? АУДИТОРИЯ: зав. Джейсон Хиршхорн: зав. Что после голове? АУДИТОРИЯ: Название. Джейсон Хиршхорн: Название. И название имеет значение Google, но я не собираюсь пишут, что в сейчас. Хорошо, где же тело идти? АУДИТОРИЯ: Также сходит на HTML. Джейсон Хиршхорн: Совершенно верно. Тело отрывается отсюда. Видит ли все почему это так? Вы, вероятно, следует быть в состоянии понять это, тоже, даже если у меня не было это хорошее отступы. Углубление рода отдает его, но вы можете видеть, что глава тег имеет были закрыты, что означает, что мы, вероятно, не можете пойти сюда. Мы должны вернуться до все был прямо перед головой тег, или под что. Мы даже с головным тега. И под корпусом идет форма. Под форме, есть два входа. ОК. Вот все, что я получил. Викторина 1 завтра. Я так рад за вас, ребята. Это собирается быть взрыв. Если у вас есть - АУДИТОРИЯ: [аплодисменты] Джейсон Хиршхорн: О стоп, стоп. Но нет, я шучу. Если у вас есть какие-либо вопросы, не так ли после раздела, я буду снаружи. Если у вас возникли вопросы сегодня вечером, не стесняйтесь, звоните, электронная почта, Gchat, почтовым голубем меня. Удачи завтра. Есть замечательный перерыв благодарения, если я не вижу тебя до этого. И я буду видеть вас после Дня благодарения во вторник в течение нашей заключительной раздел партия никогда. АУДИТОРИЯ: [неразборчиво]. Джейсон Хиршхорн: Отлично. ОК, я буду видеть вас, ребята рядом неделю или две недели. И удачи завтра.