Джейсон Хіршхорна: Ласкаво просимо, все, щоб тиждень 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 стрілка я дорівнює дорівнює I. Потім поверніться правда. Джейсон Хіршхорна: Відмінно. Наступний рядок? Так. Хтось ще? І тоді ви можете йти далі. АУДИТОРІЯ: Інакше, якщо корінь стрілка я менше я буду повертатися Функція називається знахідка корінь - Джейсон Хіршхорна: Вибачте. АУДИТОРІЯ: Повернутися знахідка корінь вказує наліво кома я. Джейсон Хіршхорна: Так що, якщо ри більше ніж речі в дереві, ми хочемо піти наліво? АУДИТОРІЯ: Ні, у мене було, що включається. Джейсон Хіршхорна: Який? АУДИТОРІЯ: Ні, так. У мене є менш підписати там. Джейсон Хіршхорна: справа, якщо ри є менше, ніж те, що в корені - наш поточний корінь - то ми хочу піти наліво. І те, що останній рядок, ви? АУДИТОРІЯ: В принципі те ж саме, крім перемикання більше або рівній менш і зліва направо. Джейсон Хіршхорна: Відмінно. Хто-небудь є які-небудь питання про це? Таким чином, деякі інші речі, які б , Був правий у тому, що може бути-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:00 закриття - 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, поштовим голубом мене. Удачи завтра. Є чудовий перерву подяки, якщо я не бачу тебе до цього. І я буду бачити вас після Дня подяки у вівторок протягом нашого заключній розділ партія ніколи. АУДИТОРІЯ: [нерозбірливо]. Джейсон Хіршхорна: Відмінно. ОК, я буду бачити вас, хлопці поруч тиждень або два тижні. І удачі завтра.