Джэйсан Хиршхорн: Сардэчна запрашаем, усё, каб тыдзень 10. Гэта захапляльнае тыдзень, таму што заўтра Віктарына 1, мы атрымаем у секунду. Сёння ў раздзеле, мы збіраемся пайсці больш некаторыя рэсурсы для віктарыны, і то я адкажу любых пытанні вы, хлопцы, ёсць. І мы, нарэшце, заканчваюцца некаторыя праблемы практыкі. Мы можам выдаткаваць увесь раздзел адказваючы на ​​пытанні. Мы можам выдаткаваць увесь раздзел пераходзячы праблем практыкі. Мы проста пашырыць для запаўнення прастору і час у нас ёсць. Так што я паклаў гэты спіс кожны тыдзень, але гэта асабліва важна на гэтым тыдні. Для вывучэння, калі ў вас значыць не пачаў ужо, аб хлопчык. Але, спадзяюся, вы пачалі ўжо. І вы праходзіце матэрыялаў і рэсурсы, пералічаныя тут. Я вельмі рэкамендую шэраг з іх. У прыватнасці, канспекты лекцый з'яўляюцца неверагодна важна і карысна. Study.cs50.net забяспечвае выдатны падручнік па шмат тэмы мы разгледзелі. Яна таксама мае некаторыя вялікія практыцы праблем. А потым, Google выдатнае, таксама. Я не ведаю, што вы будзеце выкарыстоўваць яго для. Але выкарыстоўваць Google, а таксама. Звярніцеся да мяне, калі ў вас ёсць якія-небудзь пытанні, каментары ці праблемы. Паглядзіце на агляднай сесіі слайды з мінулай ноччу. Ці, калі ў вас ёсць некаторы час, глядзець відэа. Яны забяспечваюць шмат карыснымі матэрыялы і інфармацыю. І паспрабаваць ахапіць калі не ўсё, многія з тэмы мы крытыя і што вы маглі б бачыць на віктарыне. Гаворачы аб віктарыне, што будзе заўтра. Гэта 75 хвілін даўжынёй. Многія з вас прымаюць яго на 1 гадзін, і некаторыя з вас прымаючы яго ў 5:30. У цяперашні час вы прымаеце яго і размяшчэнне вы прымаеце яго, пераканайцеся, Вы правяраеце дакумент на галоўнай старонцы CS50.net. Памятаеце, што вы можаце атрымаць адзін 8 1/2 на 11 аркушы ўзяць з сабой. Часцяком, людзі не выкарыстоўваюць гэты ліст наогул падчас віктарыны. Але на самой справе, гэта неверагодна карыснымі інструмент даследавання. Так разам, што ліст, што Я правёў, верагодна, тры ці 04:00 рабіць, калі я вучыўся на 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 гадзіны закрыцьця - 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, паштовых голубам мяне. Поспехі заўтра. Ёсць выдатны перапынак падзякі, калі я не бачу цябе да гэтага. І я буду бачыць вас пасля Дня падзякі у аўторак на працягу нашай заключнай раздзел партыя ніколі. АЎДЫТОРЫЯ: [неразборліва]. Джэйсан Хиршхорн: Выдатна. ОК, я буду бачыць вас, хлопцы побач тыдзень ці два тыдні. І ўдачы заўтра.