Jason HIRSCHHORN: Maligayang pagdating, lahat ng tao, sa linggo 10. Ito ay isang kapana-panabik na linggo dahil bukas ay Pagsusulit 1, na kung saan makikipag-ugnay kami upang sa isang segundo. Ngayon sa seksyon, kami makapupunta sa pumunta sa paglipas ng ilang mga mapagkukunan para sa mga pagsusulit, at pagkatapos ko sagutin ang anumang at lahat tanong mo guys mayroon. At kami ay sa wakas ay nagtatapos sa ng mga problema sa pagsasanay. Maaari naming gastusin ang buong seksyon pagsagot sa mga tanong. Maaari naming gastusin ang buong seksyon ng pagpunta sa paglipas ng mga problema sa pagsasanay. Susubukan naming lamang palawakin upang punan ang espasyo at oras na mayroon kami. Kaya ko bang ilagay ang listahan na ito up ang bawat linggo, ngunit ito ay partikular na mahalaga sa linggong ito. Para sa pag-aaral, kung hindi mo pa nagsimula na, oh batang lalaki. Ngunit sana ay sinimulan mo na. At pupunta ka sa pamamagitan ng mga materyales at mga mapagkukunan na nakalista dito. Gusto ko lubos na inirerekomenda isang bilang ng mga ito. Sa partikular, mga tala panayam ay hindi mapaniniwalaan o kapani-paniwala mahalaga at kapaki-pakinabang. Study.cs50.net ay nagbibigay sa isang mahusay na panimulang aklat sa pagbasa sa ng maraming ang mga paksa sakop namin. Mayroon din itong ilang mga mahusay na pagsasanay ng mga problema. At pagkatapos ay, ang Google ay mahusay, masyadong. Hindi ko alam kung ano ang nais mong gamitin ito para sa. Ngunit gamitin ang Google, pati na rin. Abutin ang out sa akin kung mayroon kang anumang mga tanong, komento, o alalahanin. Hanapin sa ibabaw ng pagsusuri session mga slide mula sa huling gabi. O, kung mayroon kang ilang mga oras, panoorin ang video na ito. Nagbibigay ang mga ito ng maraming mga kapaki-pakinabang materyal at impormasyon. At subukan at saklawan kung hindi lahat, marami sa ang mga paksa na sakop at na ka namin maaaring makita sa pagsusulit. Nagsasalita ng pagsusulit, na Magiging bukas. Ito ay 75 minuto ang haba. Marami sa ikaw ay pagkuha ito sa 1 singko ng hapon, at ilan sa inyo ay pagkuha ito sa 05:30. Para sa mga oras na naka-pagkuha ito at ang lokasyong iyong paglalaan ito, tiyakin mong suriin ang mga dokumento sa CS50.net homepage. Alalahanin na maaari kang makakuha ng isang 8 1/2 sa pamamagitan ng 11 sheet gumawa ng sa iyo. Malimit, ang mga tao ay hindi ito gamitin sheet sa lahat sa panahon ng pagsusulit. Ngunit talaga ito, ito ay isang hindi kapani-paniwalang kapaki-pakinabang na tool sa pag-aaral. Kaya paglagay nang sama-sama na sheet ay kung ano ang Ako na ginugol marahil tatlo o apat na oras ginagawa noong ako ay nag-aaral para sa CS50, at na noon ay madali ang pinaka-kapaki-pakinabang paraan maaari kong mag-aral para sa pagsusulit. Kaya kahit na mayroon kang ilang mga iba pang mga tao ni Mga Gabay sa pag-aaral upang tumingin sa at gamitin bilang sanggunian, masidhing kong inirerekumendang paggawa ng iyong sariling mga gabay sa pag-aaral, paglalagay ng na mga bagay-bagay nang magkakasama. Iyon ay talagang nakakatulong matuto ka lahat ng materyal. Huling ngunit hindi bababa sa seksiyong ito, pagkatapos ng pagsusulit bukas mayroong isa higit pa panayam - sa susunod na Lunes. May isang higit na bahagi, hindi susunod Martes bago Thanksgiving, ngunit ang Martes matapos na. Susubukan naming i-meeting-sama para sa isang huling paalam party at din ang paggawa ng ilang mga cool na mga bagay upang makakuha ng mga ka guys ay nasasabik tungkol sa higit pang mga pag-aaral sa computer science. Mayroong isa pang proyekto, ang isa pang patas, isa nang higit pa hackathon. Kami ay papalapit sa pagtatapos ng CS50, na kung saan ay kapana-panabik - ngunit rin, kung ikaw ay tulad ng sa akin, isang maliit na malungkot. Bago ako magpatuloy, mayroon ang sinuman anumang mga katanungan tungkol sa kung ano na sakop namin sa ngayon? Ni pumunta sa paglipas ng ilang mga katanungan OK, na rin ipaalam na mayroon ka para sa pagsusulit at mga paksa maaari naming masaklawan. Kaya ito ay isang listahan na ko bang ilagay ang sama-sama. Ito ay sa pamamagitan hindi lubusan, ngunit sana ay buhayin ang alaala ng iyong memorya kung ikaw may ilang mga katanungan tungkol sa alinman sa mga ito mga paksa, o kung mayroon kang mga katanungan tungkol sa mga problema na kasanayan mula sa mga pagsusulit sa taon na nakalipas. Nagkaroon na ako ng ilang mga katanungan na naging nag-email sa akin, ngunit gusto kong pigilin ang pagsulong sa mga para sa isang segundo. Kahit sino ay may anumang mga katanungan ba, problema hindi nila naintindihan, sagot hindi nila naintindihan upang makapagsimula sa amin? Avi. Madla: Puwede ba sa iyo ng higit lamang sa DOM at Ajax talagang mabilis? Tulad ng, kung ano ang kailangan naming malaman o dapat Nauunawaan tungkol sa mga ito? Jason HIRSCHHORN: Pupunta ako upang sagutin sa pangkalahatan ang tanong na ito ng, ano ang gagawin ko kailangang malaman tungkol sa ibinigay na paksa x? Dahil mayroon akong isang pakiramdam marami sa inyo ay pagpunta sa hilingin sa akin na iyon, o ang malaman ang tungkol iyon. Kaya sa lawak na ang paksa ay saklaw sa panayam, o seksyon, o sa study.cs50.net, ng problema sa set, mo Dapat na pamilyar sa mga ito. Kaya hindi mo kailangang malaman ang bawat uri ng tag na magagamit sa HTML o bawat uri ng katangian o ari-arian maaari kang magbigay ng isang bagay sa CSS. Ngunit kung nakita mo ito sa isang panayam halimbawa, kung nakita mo ito sa isang problema hanay, dapat mong marahil maging pamilyar may ito, lalo na ng mga bagay na nakita mo sa panayam. Kaya napag-usapan namin ang mga dokumento sa bagay na modelo ng kaunti sa seksyon, higit pa kaya sa panayam. Dapat kang maging pamilyar may ganoong karaming ng mga ito. At dapat kang maging pamilyar sa Ajax sa parehong lawak. Hindi namin nakita hindi mapaniniwalaan o kapani-paniwala advanced o kumplikadong mga halimbawa ng Ajax, kaya hindi ka pagpunta sa hilingin gawin isang bagay na hindi mapaniniwalaan o kapani-paniwala kumplikado. Ngunit maaari mong hilingin, paano gagawin ko gumawa ng isang Ajax tawag gamit ang jQuery? Alin ang isang bagay na iyong nakita ang isang numero ng beses bago, parehong sa suriin ang session at sa panayam, at ito ay lamang ng dalawang-HDR linya ng code. Kaya na ay isang bagay na dapat mong maging pamilyar sa. Ngunit muli, para sa lahat ng mga paksang ito, kung nakita mo ito bago, ito ay patas na laro. At maaari naming hilingin sa iyo - malinaw naman, kami ay pagpunta sa hilingin sa iyo ng mga bagay sa iyo hindi pa nakikita dati. Coding ng isang bagay na hindi mo pa nakita bago. Alin ang hindi upang sabihin nating mayroon kang hindi nakita ang mga tool upang malutas na problema bago. Na nakita mo ang mga tool. Halimbawa, sa Pagsusulit 1, kung kailangan mong i-code strlen. Hindi pa kami naka-code strlen bago. Pero alam mo kung paano gamitin ang isang para sa loop, alam mo kung paano gamitin kung kundisyon. Alam mo kung paano sumulat ng mga variable sa C. Ito ay pagpunta sa maging ang parehong bagay dito. Hindi ka pagpunta sa hilingin sa iyo na gawin anumang bagay na hindi mo na nakita bago, ngunit maaari mong hilingin sa iyo na, tulad ng, ilagay isang bagay nang magkasama sa isang nobelang paraan, o malutas ang isang iba't ibang mga uri ng mga problema. Paumanhin, iyon ay hindi na tiyak sa inyong tanong, ngunit hindi ako makapag sagutin tungkol sa bawat solong paksa kung ano ang iyong o hindi kailangang malaman. Ngunit din, paumanhin, huling bagay sa iyon. Kami ay ginugol makabuluhang mas maraming oras sa mga listahan ng link kaysa mayroon kami sa Ajax. Hindi ka gumamit Ajax sa isang hanay problema. Ang isa sa mga gitnang tampok ng na itakda problema na noon ay mga listahan ng link. At ginugol namin ng maraming oras sa panayam at seksyon gumagamit nito. Kaya, logro ay listahan link ay darating up nang higit pa madalas sa mga pagsusulit kaysa Ajax kalooban. O kaya ang mga tanong na kinakailangang gawin sa link listahan ay nagkakahalaga ng higit pang mga point. Kaya maaari mong tiyak na tumututok at makitid in sa mga bagay na higit pa malamang na makabuo dahil mayroon kaming ginugol mas maraming oras sa mga ito. OK anumang iba pang mga tanong? Oo. Madla: Puwede ba namin sa ibabaw ng paggamit ng anonymous na function sa JavaScript? Isa akong ay kaunti naguguluhan tungkol sa na. Jason HIRSCHHORN: Kaya sa JavaScript - Sinusubukan ko mag-isip kung paano ko makakasulat ito sa - kaya ng aktwal na buksan up ang code na ito ipaalam. Kaya ito ay code na ginawa namin noong nakaraang linggo. At nakita mo na ito bago kung ay dito sa seksyon noong nakaraang linggo. O kaya nakita mo na ang isang bagay na katulad nito dati. Ngunit maaari kang tumingin sa ito ang unang linya. Ito ay kung paano ka magsimula - lahat ng tao ay nakita na ito bago. Kung nais mong ilagay ang ilang mga code ng JavaScript, mong ilagay ito sa loob na ito, sa pag-aakala gumagamit ka ng JQuery. Ito ay nagsasabi, huwag gumawa ng kahit ano hanggang sa na-load ng dokumento. At pagkatapos, Curt, makikita mo dito mismo kami ay paggawa ng isang bagay tulad nito - function na bukas paren, sarado paren. Kaya tayo ay hindi pagbibigay ito gumana ng pangalan. Kami ay hindi pagpunta upang tukuyin ito function na ay dapat na tumakbo at pagkatapos ay tumawag ito ng grupo ng mga beses. Naka lamang sinasabi namin ang dokumentong ito na tumatagal ng isang function. Ang isang pares ng mga bagay na maaaring gawin. At hindi namin nais upang patagalin ang oras pagbibigay ito ng isang pangalan o i-save ito para sa habang-buhay. Gusto lang namin na magpatakbo ng ilang mga bagay. Kaya isang hindi nakikilalang uri ng function ng Naghahain ang layuning iyon. Kapag hindi ka naka-pagpunta sa gumamit ng isang bagay nang paulit-ulit, kaya hindi mo kailangang upang bigyan ito ng isang pangalan - ikaw lamang nais na gamitin ito nang isang beses - Gusto mo sabihin lamang function, para sa Halimbawa, sa kasong ito, at hindi ka lang pagtukoy sa isang bagay na maaari mong bigyan ng pangalan. Tulad ng, maaari naming hilahin ito ng function out at bigyan ito ng isang pangalan at pagkatapos ay tumawag na gumana dito. Ngunit hindi namin kailangan upang dahil hindi namin nais na sayangin oras na nagbibigay ito ng isang pangalan o pag-aaksaya ng isang bagay sa aming mga puwang pangalan. At makikita mo na marami. Halimbawa, nakita namin na marami sa code, ngunit na iyong nakita na ito bago kapag i-click mo ng isang bagay - patakbuhin ang uri ng code. Maaari naming tukuyin ang code na nais naming upang tumakbo kapag kami i-click ang, sa kasong ito, ang ID na ito, bilang isang hiwalay na pag-andar at pagkatapos ay tumakbo na function. Ngunit sa kasong ito, kami ay lamang laktaw na hakbang at gumagalaw ito sa dito at lamang sa pagtukoy sa lahat ng bagay na gusto naming mangyari at hindi pagbibigay ito ng isang pangalan. Iyon pa rin maaaring hindi magkaroon nasagot ang iyong katanungan. Madla: Hindi, ginagawa nito. Ibig kong sabihin, hulaan ko ko lang gawin hindi talaga makakuha ng kung bakit magiging isang gumana sa lahat, bagaman. Dahil ito ay hindi talaga ini-tinatawag. Hindi talaga magkaroon ito ng isang pangalan. Jason HIRSCHHORN: Ito ay isang function sa pakiramdam na ito ay isang serye ng mga hakbang na ito, tulad ng gusto mong ilagay sa isang function. At pagkatapos na ang dahilan kung bakit tinatawag naming ito ang hindi kilalang function. Hindi namin pagpunta sa bigyan ito ng isang pangalan. Hindi namin pagpunta sa aksaya sinusubukan upang pangalanan ito, ngunit magagawa namin. Anonymous na mga pag-andar, mo Maaari laging bigyan ng pangalan. Kaya halimbawa, ang code na ito dito mismo, maaari naming ilagay ang code na ito sa loob ng isang function at pagkatapos ay tumawag sa ang pagpapaganang ito dito. Sa halip, sinasabi namin, hindi namin pagpunta sa pag-abala sa na. Lamang kami ng pagpunta sa magsulat ang lahat ng ito dito mismo. Ito ay tulad ng kung minsan kapag sumusulat ka isang apat na loop sa C - ka guys nakita na ito bago - siguro ikaw ay iterating sa pamamagitan ng isang forloop sa katumbas i 0. Ako ay mas mababa sa strlen. O ka ng pagpunta sa pamamagitan ng ilang mga array, maaari mong i-save ang array index i sa ilang mga variable. At gumamit ka ng variable na iyon. Kaya hindi mo kailangang i-rewrite ang array bracket i paulit-ulit. At iyon ang uri ng mga tulad ng isang dummy variable. Hindi ito paghahatid ng magkano layunin maliban sa upang gawin ang iyong code ng kaunti mas malinis at mas madaling basahin. Mga Katulad na pagpapaandar dito. Ginagawa lamang ito ng kaunti mas madali, ngunit pagtakbo walang pagkakaiba. Na sagutin ang iyong tanong? Madla: Oo. Jason HIRSCHHORN: OK .. Mario? Madla: Kahapon madalas nila ilagay function ng panaklong kaganapan. Ang ibig sabihin na ang isang bagay? O kaya ay ito para sa mga bagay tulad ng na nais nilang gawin document.ready function na kaganapan. Jason HIRSCHHORN: nakita namin na ito, at muli, ang mga ito ay mas maliit na mga bagay na Marahil hindi ko nais na gumastos ng masyadong maraming oras sa. Dahil kung minsan hindi ko nais na mga tao makakuha natakot out na mayroon silang hindi naririnig ang tungkol sa mga bagay na ito na magkano. Ngunit usapan natin ng kaunti tungkol sa handler ng kaganapan. Kaya may mangyari, at pagkatapos ay ito function ay pinaandar. At pagkatapos ay gusto rin naming malaman ang ilang mga detalye tungkol sa kung ano nangyari sa kaganapang ito. Kaya sa tingin pabalik sa problema set 4. Iyon ay marahil ang pinakamadaling paraan upang maunawaan na sa bakasyon out. Nagkaroon ng ilang mga code - tulad ng isang kaganapan ang mangyayari, ngunit Maaari ibig sabihin ng maraming bagay na kaganapan. Kung ma ibig sabihin ang mouse ay na-click, ito maaaring ibig sabihin mo pindutin ang isang arrow key, et pa, at iba pa. Ngunit ang lahat ng mga na-save ito ito generic bagay na tinatawag na mga kaganapan. At pagkatapos ay maaari naming sabihin, ay sa kaganapang ito bagay na ito? O kaya ay sa kaganapang ito bagay na ito? O kaya naman, anong uri ng mga nangyari may kaganapan na? Kaya na ang dahilan kung bakit nilikha mo ang variable na doon upang i-save na ang dagdag na impormasyon tungkol sa kung ano ang eksaktong nangyari na ka pagpunta sa nais na gamitin sa function. Ngunit muli, na marahil ang isa sa mga mas mahalagang mga bagay upang maging napaka- alam. OK, kung ano ang iba pang mga tanong na mayroon mga tao Nagkaroon, o stumbling bloke na nila Nakatagpo habang sinusuri? Susubukan naming i-back sa listahang iyon. Paano ang tungkol sa panahon ng pagsasanay pagsusulit, kung mga tao kinuha mga naka? Ano ng ilang problema na tripped mo guys up? Alam ko para sa isang katotohanan na ng nakaraang taon pagsusulit ay talagang mahirap. Madla: Maaari mo bang ipaliwanag kung ano isang SQL iniksyon atake ay? Jason HIRSCHHORN: OK, mahusay. Kaya usapan natin ang tungkol sa ito ng kaunti. Mayroong isang panayam sa seguridad. At muli, tulad ng nabanggit ko mas maaga, ito ay isang bukod. Ngunit ikaw ay bigo sa pagsusulit kapag basahin mo ng ilang maliliit na dalawang punto pinag-uusapan, at ikaw ay tulad, kapag ay kailanman malaman ko na? Ang lahat ng mga bagay sa mga aralin na hindi mo sa tingin mo na kailangan upang alam, o maaari mong pagtakpan dahil hindi nila kailangang gawin sa mga hanay problema, mga habilin malamang dumating up muli sa pagsusulit. Kaya, cool na, masaya mga bagay na mo lamang Naisip ni David Sinasabi para sa iyo upang masiyahan, siya ay nagsasabi sa iyo para sa iyo upang magsaya at upang gawing maging ka lamang super nasasabik tungkol sa pag-aaral ng lahat ng bagay doon ay upang malaman tungkol sa computer science. Yaong mga bagay makabuo din sa mga pagsusulit. Kaya, kahit na ang mga maliliit na bagay na ginawa hindi direktang umuugnay sa iyong problema set, bilang ka guys ay pamilyar sa mula sa Pagsusulit 0, ay marahil dumating up. At ito ay isang magandang halimbawa ng isang bagay. Kaya isang SQL iniksyon pag-atake ay kapag ikaw makakuha ng ilang impormasyon mula sa gumagamit at gusto mong ipasok ito sa isang table na gamit isang pahayag insert SQL, ngunit ikaw Hindi sanitize ang input maagang ng panahon. Kaya, malinaw naman nasaksihan namin SQL pahayag. Kukunin ko na lang magbukas ng mga - ni pumunta ipaalam - magpapadala kami pumunta sa pagsusuri - Ako sa tingin, na sakop ito? Sa tingin ko Samala ginawa. Kaya maaari naming makakuha ng - Madla: Saan mo mo mahanap ito? Jason HIRSCHHORN: Kaya kung pupunta ka sa CS50.net, mga pagsusulit, at pagkatapos ay maaari kang mag-scroll sa ibabaw at makakuha ng mga slide mula sa pagsusuri session. Ngunit maaari mong makita na ito ay isang magandang halimbawa ng isang SQL iniksyon atake. Tumagal kami ng ilang impormasyon mula sa gumagamit na ang at sila ay magbibigay sa amin ng isang string, at pagkatapos namin gustong isingit na string sa isang database. Sa pangkalahatan ay pumunta kami sa sanitize na input, na nangangahulugan na ang ilang mga mga character na mapanganib. Halimbawa, sa mga string ng SQL, mga panipi - single quote o double quote - ibig sabihin ng isang bagay. Ibig sabihin ng mga ito magtapos ang string na ito dito. At kaya kung ang gumagamit ay nagbibigay sa iyo ng isang solong o double quote, maaari silang maging sinusubukang i-patisod iyong SQL query at magpasok ng ilang mga masasamang gawain sa ito. At kung gagawin nila iyon, maaari silang makakuha ng kontrol ng iyong database o gumawa ng ilang mga bagay na hindi mo nais na gawin nila. Kaya na ang dahilan kung bakit sa tuwing nagsasagawa kami ng SQL mga query, sanitize namin ang pag-input bago paglalagay ito sa database, na Ang ibig sabihin namin makatakas sa mga character. Susubukan naming makipag-usap tungkol sa na sa isang segundo. Ngunit mahaba kuwento maikling, isang SQL iniksyon atake ay kung hindi mo gawin iyon - kung hindi mo na ang bahala sa input Binigyan ka nila bago paglalagay ng iyong database, maaari nila, tulad ng nakikita mo pababa dito, magpatakbo ng isang query na iyon, sa katunayan - sila ilagay sa kanilang mga code down na dito at piliin ang line na ito pababa dito Pipiliin ang lahat ng bagay mula sa talahanayan alintana ng kung ano ang password ay ibinibigay. Dahil mayroon kang o 1 ay katumbas ng 1. Kaya ito ay isa lamang, mahabang kuwento maikling, isang paraan upang sakupin ang database. Ang tanong, pagkatapos, para sa iyo guys, ay kung saan sa p sets 7 nag sanitize mo ang lahat ng ang input sa iyong mga query sa SQL? Saan mo hakbang na mangyayari? Saan ko mapipigilan mo SQL iniksyon pag-atake na mangyari sa p set 7? Oo. Madla: silid sa ilalim ng lupa? Jason HIRSCHHORN: Kaya ito ay hindi silid sa ilalim ng lupa. Hindi namin ginawa gagawin mo ito para sa itakda ang partikular na problema, ngunit ito ang mangyayari sa ang pag-andar ng query. Talaga ay nagsulat namin ito para sa iyo, at kinuha namin ang pangangalaga ng sanitizing input para sa iyo. Ngunit sa taon na nakalipas, mga mag-aaral ay nagkaroon i-type ang input sa kanilang sarili. Sa p hanay 7, ng maraming mo - hayaan mo akong magbukas ng isa sa iba pang mga file. Kaya mapapansin mo dito ang maraming mga tao, sa problema itakda 7, ay hindi tumawag ito function na sa mga string. Function na ito, htmlspecialchars, muli - ang string na ito ay maaaring mayroong ilang mga bagay na na sa HTML ibig sabihin ng ibang bagay. Tulad ng isang suhay, isang parisukat, o isang anggulo bracket ibig sabihin ng isang bagay sa HTML. At kaya kung mag-print ka na sumali sa screen o kung gagawin mo lang na at i-print na out sa iyong HTML, na maaaring gawin ang isang bagay na hindi mo inaasahan. Kaya htmlspecialchars napupunta sa paglipas ng lahat ng mga mga character na may espesyal na meeting at escapes sa kanila. Kaya maipo-print mo sa teksto gusto mong makita, sa halip na screwing up ang iyong HTML. Tinatawag namin na function ng sa header. At ng maraming mga tao nakalimutan upang tumawag na pag-andar sa code ikaw ay sumusulat. Kaya, halimbawa, kung ang isang pangalan ng mga stock ay nagkaroon ng isang anggulo bracket sa loob nito at nakalimutan itawag sa pag-andar, angulo na sana itinapon off bracket kung ano iyong HTML mukhang. Ngunit sa pagtawag na ito function na ay makatakas na kaya talaga ito ng mga Kopya out bilang isang anggulo bracket at hindi magtapon off iyong HTML code. Ang parehong mga dahilan nasaksihan namin, paminsan-minsan, slashes bago double quote sa isang printf linya dahil hindi namin gusto ang down na double quote ang string. Gusto naming i-print ang mga ito out sa screen. Kaya lahat ng mga ito ay ang parehong ideya. Na sagutin ang iyong tanong? Madla: Kind ng. Jason HIRSCHHORN: Gusto mo ba magkaroon ng isang follow-up? Madla: hulaan ko ang mga SQL iniksyon pag-atake ay ang gagawin sa na? Hindi ko maunawaan kung paano ang dalawang mga kaugnay na. Bakit ginagawa mo ang specialchars? Jason HIRSCHHORN: OK, kaya ang SQL iniksyon atake ay kapag mag-iniksyon sa iyo ang ilang mga nakakahamak na mga string sa isang tao ng programa, at tumagal lamang nila ito at patakbuhin ang SQL query na may isang string na iyong ibinigay sa kanila. Tulad ng iyong nakikita dito pababa, na ay maaaring may problema. Kaya ang paraan ng pumipigil sa iyo laban na mong gawin ang kanilang mga string na bigyan sila mo - kaya ang string na ito dito mismo - at sanitize mo ito. Ikaw makatakas sa lahat ng mga bagay na mga potensyal na may problemang. Kaya hindi mo bigyang-kahulugan ang mga ito bilang isang bagay ay nangangahulugan na ang isang bagay. At isang halimbawa ng na may HTML ay ito function. Kaya ito ang parehong ideya dito. At lamang ako ay nagpapakita sa iyo ng iba pang mga mga halimbawa ng kapag ikaw ay nakita sa ideya na ito bago. Ng escaping input ng user bago ang pag-print ito out sa isang screen o paglalagay ito sa loob ng isang SQL statement. Madla: Kaya sa kasong ito, ang user ay ang panggugulo sa mga programmer. Jason HIRSCHHORN: Oo. Sa lahat ng mga pag-atake sa seguridad, na laging pangkalahatan user, o mataas na tao, ay sinusubukang i-gulo sa iyo, ang programmer. At ang mga ito ay mga paraan maaari kang pigilan laban sa kanila. Madla: Kaya Mayroon akong tanong tungkol sa hash function. Sa Pagsusulit 1 mula 2011, mayroong dalawang tungkol sa mga isahang-panig hashes. At lamang ako ay nagtataka ano nilalayong na. Jason HIRSCHHORN: OK, na pagsusulit? 2011? Madla: Oo. Madla: Pagsusulit 1? Madla: [hindi marinig]. Iyan ay tulad ng hashing isang password. Na hindi paglalagay ng mga bagay - Jason HIRSCHHORN: Ano pahina ay ito? Madla: Sa tingin ko 9 o 10, o pareho. Jason HIRSCHHORN: Ang lahat ng karapatan, sige, Curt. Maaari mong sagutin habang tinitingnan namin. Madla: Sa tingin ko ito ay pakikipag-usap tungkol sa hashing isang password. Tulad ng, kapag may isang taong nagpasok ng isang password, mo i-on ito sa isang naka-encrypt na bagay. Iyan ang hash password, na naiiba mula sa isang hash na Inilalagay ng isang bagay sa isang hash table. Jason HIRSCHHORN: Sabihin makita. Hayaan akong makuha ang kung ano ang kanilang bigyan bilang sagot. At pagkatapos ay babagtasin namin ito. Kaya nagbigay Curt isang mahusay na halimbawa ng isang one-way hash. Kapag nakakita kami ito bago, namin tumagal ang password at i - tandaan, sa p hanay 7, maaari isang tao magkaroon ng isang password na password lang, ngunit pagkatapos ay maipo-naka-encrypt sa ilang mga talagang mahaba bagay. Ang one-way hash ay nangangahulugang ito ay napakadaling upang pumunta mula sa isang paraan upang ang iba pang mga, ngunit ito ay napakahirap upang pumunta mula sa ang iba pang mga paraan pabalik. At gayon alam mo na, kapag ikaw ay nag-check ng mga password ng mga tao sa problema itakda 7, gusto mong gawin ang kanilang - kaya, halimbawa, sabihin natin na sila nais na baguhin ang kanilang password, hilingin mo ang mga ito para sa kanilang lumang password. Kinunan mo ang kanilang mga lumang password. Naka-encrypt mo ito. At pagkatapos ay i-kumpara ang dalawang encryptions sa halip na unencrypting ang orihinal isa, dahil ito ay talagang mahirap na pumunta na paraan. Oo. Madla: Paano malalalim na gumagana ang aming pang-unawa ng TelNet kailangang maging? Jason HIRSCHHORN: Kung ito ay Binanggit sa madaling sabi sa panayam, ang isang maikling lamang pag-unawa. Muli, bumalik sa sagot sa tanong Avi ni - ang higit pang mga bagay makabuo, mas malamang ito ay mayroon kang upang maging napaka- pamilyar sa mga ito. Kung nagawa sa ngayon lamang sila sa panayam, ito lamang ay isang lugar. Ngunit kung dumating ang mga ito sa panayam, seksyon, at magtakda ng isang problema, pagkatapos ay i-mo marahil na kailangang maging sobrang pamilyar sa mga ito. Kaya nagkaroon ako ng isang katanungan mula mas maaga tungkol sa - sabihin noon ay taglagas 2010 - Pagsusulit 1, ni-pull up hayaan - ang tanong na ito sa stack at queues, na ginawa kaming magpalipas ng isang patas kaunting oras pakikipag-usap tungkol sa panayam, kahit na bagama't ginawa namin hindi talaga kailanman pindutin ito sa seksyon. Kaya ang tanong na ito ay nagbibigay sa iyo ng isang serye ng mga utos at humihiling sa iyo kung ano ang ay makakakuha ng naka-print na sa kasong ito. Kaya ito ay isang ganap na makatuwirang tanong na maaaring hilingin sa inyo guys, at pagkatapos ay sa iyo guys dapat makasagot ito. Kaya bakit hindi ka tumingin sa ito para sa 30 segundo, at pagkatapos ay kung ang sinuman ay nais na ipanukala ang sagot sa akin, at pagkatapos babagtasin namin ito. Ang lahat ng mga karapatan, kung sino ang may isang sagot sa tanong 27? Oo. Madla: Ito ba ay 1, 2, 3, 3? Jason HIRSCHHORN: Tama iyon. 27 ay 1, 2, 3, 3. Kaya tingnan natin kung paano namin nakuha ko na ipaalam. Una, ang sinasabi namin, kung s ay isang pila, ano ay makakakuha ng naka-print? Kaya isang q ay unang in, unang out. Nakita namin na ang bago. Nakita namin ang larawan ng mga tao naghihintay sa Apple I-store upang bumili ng ilang mga produkto. Ang unang mga tao sa mga ang unang mga tao out. Ang unang bagay sa isang queue ay ang unang bagay. Kaya kung itulak kami ng isang bagay sa isang pila, itulak mo ang 1, pagkatapos ay i-pop namin ang 1. Pop lamang ay nangangahulugan na kumuha. Sa kasong ito, tumagal lamang ng isang bagay out. Kami kumuha ng unang bagay, na ang isang 1. Kaya makikita inilalagay namin ang mga bagay na namin i-print down na higit sa dito. Ito ay wala na sa aming queue. Pagkatapos itulak kami sa isang 2 at 3, at pop namin off ang unang bagay. Muli, dahil ito ay isang queue. Kaya kumuha kami ng 2, pagkatapos ay inilalagay namin sa isa pang 3 at tatawag sa pop. Ang aming 3 ay unang. At pagkatapos ay nagkaroon kami ang maramihang mga iba pang mga bagay at tawag pop. Ngunit muli, dahil ito ay isang pila, unang in, unang out. Isinasaalang-alang namin ang unang bagay na kailanman ilagay in Iyon lang ang aming 3. At, sa kasong ito, ay hindi kami mag-alala tungkol sa lahat ng mga iba pang mga bagay. Kaya na kung ito ay isang queue. Ang anumang mga katanungan tungkol sa isang pila? Ang isang stack ay naiiba. Ano ang acronym mayroon kami para sa pag-unawa ng isang stack? Madla: Huling in, unang out. Jason HIRSCHHORN: LIFO, sa tingin ko. Tatagal sa, una out. Kaya nakita natin ang isang halimbawa ng isang stack ng trays sa dining hall. Anuman ang tray ay sa tuktok ay makakakuha ng kinuha ang. At pagkatapos ay kung bagong trays dumating sa, sila makakuha ng ilagay sa tuktok. At pagkatapos ay ang anumang ay sa tuktok ay makakakuha ng kinuha ang. Kaya mga trays sa ibaba ay maaaring manatili doon para sa sandali. Sa kasong iyon, muli, kami ay gumuhit ito out. Itulak namin sa isa, kaya isa ay unang sa linya. At mga pop kami ng isang bagay off. At mayroon lamang isang bagay sa doon, kaya lumipat kami 1 down na dito. Pagkatapos ay ilalagay namin sa 2 at 3 at pop kami ng isang bagay off. Ngunit muli, dahil ito ay isang pila - o ito ay isang stack, sa halip - tumagal kami kahit anong noon ay sa huling. Anuman ay nasa huling pagdating out muna. At 3 ay sa huling. Kaya binuo namin ang 3 down na doon, pagkatapos ay ilalagay namin sa isa pang 3 at kami pop muli ng isang bagay. Sa wakas, inilalagay namin sa 4, 5, 6, at 7, at dito pop namin. At dahil ito ay isang stack, tumagal kami ano naman ay ilalagay sa huling at sumulat na pababa dito. Kaya magtapos up namin na may 1, 3, 3, 7. Kahit sinong mayroon ba kayong mga katanungan tungkol sa stack o queues, o halimbawang ito? OK. Sabihin bumalik sa listahan ng mga paksa. Hindi na paraan, sa ganitong paraan. Ano pang ibang mga katanungan ay walang mga tao? Madla: Hindi ko alam kung gaano kahalaga ito ay, ngunit ako ay lito sa pamamagitan ng pagkakaiba sa pagitan ng iba't ibang uri ng mga wika tulad ng markup, pinagsama-sama, kahulugan. Jason HIRSCHHORN: Iyon isang magandang tanong. Sa tingin ko na ay medyo mahalaga, kaya ng pumunta sa paglipas ng ito mabilis na ipaalam. Ang malaki wika nasaksihan namin sa ngayon ay C, PHP, at JavaScript, sa mga tuntunin ng mga programa wika. HTML, tulad ng sa iyo nabanggit, ay hindi isang programming language. Ito ay isang markup language. At pagkatapos ay mayroon kaming CSS, na rin hindi isang programming language. Nakakita kami din SQL, na kung saan ay hindi isang programming language alinman. Kaya nagbibigay-daan sa SQL mong magsulat mga query para sa isang database. HTML ay isang markup language. Tinutukoy nito kung paano ang mga bagay ay nakaayos. At CSS ay nagbibigay-daan sa iyo upang Estilo bagay. Iyon ay marahil ang lawak para sa kung ano ang iyong kailangang malaman tungkol sa mga tatlong. Ngunit ito ay mas interesante sa mga figure out sa mga pagkakaiba sa pagitan ng C, PHP, at JavaScript. Kaya isa sa mga pinakamalaking mga pagkakaiba, bilang ka nabanggit, ay kung paano ang mga ito ay pinagsama-sama, o anumang ang katumbas ay. Kaya C ay pinagsama-sama. Gusto naming palaging magpatakbo ng isang tagatala. At pagkatapos ay kung nasaan ang iyong mga error kapag pinatakbo mo ang C tagatala? Saan ipinapakita ng ito sa iyo ang mga error Sa iyong code? Paano ko malalaman mo mayroong isang error sa iyong code sa C? Madla: Ipinapakita nito sa iyo sa terminal. Jason HIRSCHHORN: Ipinapakita nito sa iyo sa terminal bilang ka kino-compile. At kung mayroong mga error, ito hindi ang talagang sumulat ng libro ito. Kaya alam mo na mayroong mga error kanan ang layo, maagang ng panahon, bago mo kahit na tumatakbo ang iyong mga code. Siyempre, maaaring tumakbo ang iyong code at makakuha ng segmentation fault, ngunit na noon ay marahil dahil ginawa mo ilang ulok logic bagay. Ngunit ang iyong code sa technically maaaring patakbuhin ang lahat ng tama at. Kaya C code ay makakakuha ng inipon maagang ng panahon. Paano ang tungkol sa code na PHP? Saan ng mga error sa iyong code na PHP? Paano mo alam mo na ikaw ay may mga error sa iyong code na PHP? Madla: Patakbuhin oras? Jason HIRSCHHORN: Oo, kapag nag- Gusto patakbuhin ito, gusto mong patakbuhin ang PHP code sa likod. At pagkatapos ay nais mong ipakita ang isang screen. Maaari mong makita ang ilang mga bagay sa itaas, ngunit pagkatapos ay makikita mo na ang, tulad ng, ang ilang mga orange, pangit talahanayan. At ito ay magbibigay sa iyo ng isang numero ng linya at sabihin nating, blah, blah, blah, mga bagay-bagay na ito Hindi gumana. Kaya PHP ay kahulugan linya sa pamamagitan ng linya at pinaandar sa server. At pagkatapos ay ang resulta ay ipinadala sa paglipas ng sa iyo. Mahusay. Pinaandar sa linya ng server sa pamamagitan ng linya at pagkatapos ay ipinadala sa paglipas ng sa iyo. At kung mayroong isang error, magkakaroon ito ipadala mo ang error, ngunit maaaring mayroon ka nakuha ang ilang mga bagay-bagay maagang ng panahon. Kaya baka nakapagtrabaho ang ilan sa mga ito, ngunit sa paglaon, maaaring hindi magkaroon ng ilang mga bagay-bagay hindi nagtrabaho. Paano ang tungkol sa JavaScript? Saan mo nakikita mo ang mga error sa JavaScript? Sa p set 8, kapag ikaw nakakuha ng isang error, paano alam mo? Saan ito lalabas? Madla: Sa console, sa ibaba. Jason HIRSCHHORN: Sa console, sa ilalim. Gusto rin nito ang magbibigay sa iyo ng numero ng linya, at gagawin ito lalabas sa ilalim. At ang JavaScript ay hindi pinaandar sa server. JavaScript ay ipinadala sa iyong computer, at pagkatapos ay kapag ito ay oras na upang patakbuhin ang JavaScript, ang JavaScript ay magpatakbo ng linya sa pamamagitan ng linya sa client, sa iyong tabi. Hindi sa server, sa gilid ng client. At katulad, ito ay magpatakbo ng linya sa pamamagitan ng linya. At pagkatapos ay kapag nais mong makakuha ng isang error, Gusto ito lalabas sa ilalim. Katulad nito sa PHP, ang ilan sa mga ito puwede pumugot ng ulo, at pagkatapos ay maaari kang makakuha ng isang error sa susunod. Gayundin, medyo hindi tulad ng PHP, kung Nakakuha ka ng isang error sa JavaScript - sabihin hindi mo gawin ang karapatan code para sa isang kahon ng alerto - maaari mong patuloy na tumatakbo ang iyong mga programa. Ang kahon ng alerto hindi gagana, ngunit iyong programa ay magiging masarap. Lang siguro na function na ay mabibigo. Kaya mayroong ilan sa pinakamalalaking pagkakaiba sa mga tuntunin ng kung paano ang mga mga wika, o kung paano ang programming code mong isulat ay aktwal na sinusuri. May mga iba pang mga pagkakaiba sa din mga tuntunin ng - ang pinakamalaking pagkakaiba nasaksihan namin sa mga tuntunin ng mga variable sa iba't ibang mga wika. Kaya maaari sinuman ninyo ako ng pagkakaiba sa pagitan ng mga variable sa tatlong mga wika? Oo. Madla: Sa C, ang mga ito ay mahigpit na nai-type. Sa iba pang mga dalawang, ang mga ito ay maluwag-type. Jason HIRSCHHORN: At kung ano ang ibig sabihin na? Madla: Iyon sa C, mayroon kang idedeklara ang uri ng variable kapag Ipinahahayag mo ang variable, tulad ng interbool o pansamantalang trabaho. Jason HIRSCHHORN: Mahusay. Sa C, palagi namin ay may upang ilagay isang uri ng isang variable. At maaaring hindi namin talagang paghaluin ang mga uri. Hindi mo maaaring gawin ng isang integer plus isang string. Ngunit bilang nagbigay kami nakikita sa mga iba pang mga wika, na talagang maaaring paghaluin ang mga uri, at hindi ka na kailanman talagang may upang bigyan isang bagay ng uri, kailanman. Kaya paano ko malalaman namin bagay ang mga variable sa PHP at JavaScript? Madla: Sa PHP, simulan nila may dollar sign. Sa JavaScript, kapag pinahahayag mga ito, mayroon kang upang magkaroon ng isang bar. Jason HIRSCHHORN: Mag-right. Kaya sa PHP, simulan nila may dollar sign. Sa JavaScript, mayroon sila na magkaroon ng bar, kahit na minsan ay ginagawa nila hindi talaga mayroon na magkaroon ng bar. Ngunit iyon lamang ang tama. Kaya na ang isang malaking pagkakaiba sa pagitan ng mga variable. Sa tingin ko ang mga ito ay marahil, off ang tuktok ng aking ulo, ang dalawang pinakamalaking pagkakaiba sa pagitan ng mga tatlong mga wika. Ngunit, oo. Madla: At ang nasasakupan ng C variable ay para lamang sa mga kulot tirante, kung saan ang iba pang mga bago, ito ay nais lamang, ito ay namatay kung ito ay nasa isang function lamang, ngunit kung hindi man, it's - Jason HIRSCHHORN: Mag-right. Kaya ang saklaw ay bahagyang naiiba sa C. Bilang tandaan mo, kulot tirante tukuyin ang nasasakupan ng variable. Kaya kung ito ay tinukoy sa loob ng isang kung kondisyon, na kung saan ay sa loob ng isang para sa loop, ang variable ay naroroon lamang doon. Sa JavaScript, kung ang isang variable ay tinukoy sa loob ng isang kung kondisyon - sa loob ng isang para sa loop - ito ay umiiral para sa na function, ngunit hindi ito ay umiiral labas na function. Kaya na saklaw ay mas may kakayahang umangkop Medyo sa JavaScript at PHP. Iyon sagutin ang mga katanungan? OK, ang anumang iba pang mga tanong? Maaari naming gawin apat na higit pang mga minuto ng mga tanong, pagkatapos ay ipapakita namin tumalon sa coding. Madla: Maaari ba kaming pumunta sa Ajax at makipag-usap tungkol sa kung ano na? Jason HIRSCHHORN: Makipag-usap sa Avi pagkatapos. Tinanong niya na pinag-uusapan nang mas maaga. Madla: My masama. Jason HIRSCHHORN: Huwag mag-alala. Madla: Ano ang eksaktong ay JSON? Jason HIRSCHHORN: Ano ang JSON? Ano ang iyong katanungan? Madla: lang talaga mabilis, ang pagkakaiba sa pagitan ng print at echo sa PHP. Jason HIRSCHHORN: Bakit hindi ka google ang pagkakaiba sa pagitan ng pag-print at echo? Bahagyang pagkakaiba. Hindi na malaki ng isang pakikitungo. Ngunit siguradong mo dapat google ito, at makikita na bigyan ka ng magandang sagot. JSON, marahil mas malaki ng isang pakikitungo. Ang ibig sabihin ay JavaScript Bagay pagtatanda. At kapag nakita natin JSON ginagamit? Kapag nakita mo - bakit mo kahit na alam ang salitang JSON? Kapag nakita mo ito? Madla: Kapag kami ay nakakakuha ng mga stock quote para sa pananalapi. Jason HIRSCHHORN: Kaya nakita mo ito kapag ikaw ay pagkuha mga stock quote para sa pananalapi. At bakit mo makita ito? Madla: Kapag kami ay binabawi ang lahat ng mga impormasyon na dumating sa format na iyon. Jason HIRSCHHORN: Kaya nais mong makakuha ng - oo. Sige. Madla: [hindi marinig] impormasyon out ng isang bagay? Jason HIRSCHHORN: Parehong ng mga magkasama ay ang kasagutan kaming naghahanap ng para sa. Gusto mong impormasyon mula sa ito ibang mga webpage. At gusto mong umaasa na kapag ikaw ay pagkuha ng impormasyon na iyon, magiging na ipinakita sa iyo sa ilang mga uri ng ng Standardized format. Bawat tao ay marahil pamilyar may pinaghihiwalay ng kuwit. Maaari mong i-export ang isang Excel spreadsheet o anumang uri ng spreadsheet bilang isang listahan ng mga pinaghihiwalay ng kuwit. At ang mga kuwit hatiin ang lahat ang mga iba't ibang larangan. JavaScript pagtatanda ng Bagay - JSON - ay isa pang uri ng Standardized layout ng mga bagay. At iyon ang madalas kung paano namin mabawi impormasyon mula sa aming mga query sa Ajax. Kaya sa kasong ito, nakuha namin ito mula sa site ng Yahoo. Sila ay bumalik mga bagay na amin sa isang JSON object. At pagkatapos ay alam namin, dahil ito ay isang standard, ano ito pagpunta sa hitsura. Kaya maaari naming umulit sa pamamagitan ng array na ibinalik sa amin, ang hanay ng mga bagay na ay ibinabalik sa amin. Namin kailangan marahil na malaman ang mga key, ngunit sila sa pangkalahatan ay magbibigay sa iyo ng dokumentasyon sa website kapag ka sa pagkuha ng ilang mga JSON pagtatanda para sa kanila. Gayundin, maaari mong JSON encode ang isang bagay. Kaya mayroong isang function JSON guhitan sa ilalim-encode. At gayon maaari mong gawin ang isang bagay na na iyong nilikha, JSON-encode ito, at pumasa ito sa sa isang bagay pa man, kung gusto mong. At JSON mabasa Umiiral na din para sa isang katulad na layunin, o para sa ang tapat na layunin. Madla: Huwag kailangan naming malaman coding para sa hash table at pagsusubok na? O kaya kailangan lang namin upang maunawaan kung paano sila ginagamit, conceptually? Jason HIRSCHHORN: Kaya, itaas ang iyong kamay kung ginawa mo ng hash talahanayan para sa p-set 4 na may isang listahan ng link. O kaya p set 5. Kaya na ay isang malawak na karamihan ng mga tao. P set 5, 6, na nakakaalam. Ang isang mahabang oras nakaraan. Kaya ang karamihan sa mga ginawa mo hash table na may mga listahan ng link. At dahil na ay marahil ang higit pa karaniwang mga diskarte, at dahil kami na ginugol ng maraming oras ng paggawa ng mga listahan link at hash mga talahanayan, dapat mong marahil maging medyo pamilyar sa paano Code isang hash talahanayan at isang listahan ng link. At kung sa tingin mo pabalik sa problema na set, ay hindi ito talaga bilang matitigas na bilang na iyong inaasahan. At nagkaroon ng maraming mas kaunti code kaysa sa iyong inaasahan. Gusto ko sabihin na dapat mong malaman kung paano i- Code ng hash talahanayan o ng isang listahan ng link. Hindi na nais mong hilingin na, kinakailangan, ngunit dapat mong ay tiyak na malaman na. Gayundin, kung tiningnan mo sa pamamagitan ng nakaraang mga pagsusulit, nagkaroon ng maraming mga tanong tungkol sa pagsusulat ng mga function sa mga listahan ng link o doble na naka-link listahan. Iyon ay tila upang makabuo bawat solong taon. Mag-right isingit sa isang listahan ng link, i-right tanggalin mula sa isang listahan link, i-right isingit para sa isang doble na naka-link listahan, at iba pa. Kaya iyon, nararamdaman ko medyo kumportable sinasabi dapat mong malaman na. Para sa try, Gusto ko sabihin dapat mong ay tiyak na alam kung paano ito gumagana, at siguro ibigay ang ilang pseudocode para sa kung paano sa code ito at i-set up ito. Ngunit hindi ito ay magiging ang pinakamasama bagay sa sa mundo kung hindi mo alam kung paano Code ito sa C. Mas mahusay na kung ikaw Alam kung paano ito code sa C, ngunit sa palagay ko marahil pseudocode para sa isang try ng ginagawa maging ang pinaka-na kakailanganin mo malaman para sa isang try. Madla: Dagdag na credit? Jason HIRSCHHORN: At parehong may, kung namin pumunta sa binary paghahanap puno, maaari mong kailangan - at nakita mo sa nakaraan, tapos na kami ng maraming ng - alam sa iyo kung paano Gumagana ang binary paghahanap tree. Dapat marahil magagawang kang magtakda ng isang up sa palsipikado code. Ngunit dahil ang karamihan sa mga tao ay hindi gawin iyon sa problema hanay, nais kong sabihin ito ay marahil hindi gaanong Mahalaga na alam mo kung paano i-code at set up ng isang puno tulad na. Anumang iba pang mga katanungan? Gayundin, maaari naming hilingin sa kanila sa buong bilang pumunta kami sa pamamagitan ng ilang mga problema. OK, kami ay pagpunta sa ilipat sa. Laktawan na slide para sa ngayon. Nagsasalita ng puno, na ay ang unang tanong Mayroon akong para sa iyo guys. Dahil ito ay isang problema. Gusto ko sabihin ito ay lubos na malamang makakakuha ka makakuha ng isang problema tulad nito sa iyong pagsusulit humihiling sa iyo na code ng ilang uri ng insert, tanggalin, paghahanap, para sa isang uri ng istraktura ng data nasaksihan namin. Iyon ay lumalabas sa bawat taon at kami na ginugol ng isang maraming oras sa ikalawang kalahati ng ito semestre ng pagpunta sa paglipas ng mga uri ng data. Kaya ngayon, na tinukoy ko ang isang node sa isang binary paghahanap tree. At kung ano Gusto kong mong gawin ay ibinibigay isang binary puno paghahanap na magsisimula sa ito node star ugat, kumpletuhin ang pagpapatupad ng pag-andar sa ibaba, kung saan ang mangyayari sa maging isang function find. At gawin ito sa at walang recursions. Kaya gusto ko sa iyo na magsulat ng dalawang mga pag-andar. Ang isa ginagawa ito na may recursion, isa ginagawa ito nang walang recursion. At huwag ipagpalagay na ang ugat ay magiging di-null. Kaya kaming naghahanap para sa integer i in tree na nagsisimula sa ugat, at kailangan namin upang isulat ito recursively at iteratively. Oo. Madla: Kaya gusto mo sa amin na nagbabalik ng tunay kung makita namin ito, at hindi totoo kung namin huwag mahanap ito. Jason HIRSCHHORN: Paano mo kilala mo? Paano mo malalaman mo na? Madla: unang ako ay nagtatanong, ngunit ako ay sa pag-aakala, dahil ang nakasulat sa bool sa ang simula ng pag-andar. Jason HIRSCHHORN: Mag-right. Sinasabi nito bool, kaya hindi ko kahit na kailangan upang sabihin sa iyo kung ano ang aking inaasahan mong bumalik dahil sabi ni ito doon. Ngunit na tama. Bumalik, totoo o hindi. Kaya bago ka magsimula, Gusto ko inirerekomenda, kung hindi ka pamilyar sa binary paghahanap puno, mabilis pagguhit isang larawan ng ito upang makuha ang iyong pang-unawa, i-right. Iyon ay makakatulong din sa iyo kapag sumusulat ang iyong code at pagsuri ito. Muli, ikaw rin ay walang ganoong karaming oras sa pagsusulit upang gawin ang lahat ng mga bagay na tanungin ka naming gawin. Kaya pagsusulat ng palsipikado code ay lubhang kapaki-pakinabang. At namin sa pangkalahatan ay magbibigay tungkol sa - kung ang pseudocode ay ganap na ganap tama, na sa pangkalahatan ay 50% sa isang tanong. Kaya ito ay hindi isang mahirap at mabilis na mga panuntunan, ngunit kung isulat mo lang pseudocode at ito ay tama, ito ay sa pangkalahatan ay 50%. Kaya ko na nais palaging inirerekumenda - kung ikaw ay pinindot para sa oras, o kahit na lamang na sinusubukan mong malaman ito out - simula sa pseudocode. At sa wakas, kung maaari mong isulat ito lahat sa C, na magiging hindi kapani-paniwala. Kaya ipaalam sa tumagal ng tatlong minuto upang gumana sa programang ito. At pagkatapos ay pumunta kami sa sumulat pseudocode para dito lamang nang isang beses, at pagkatapos ay kami ay pagpunta sa code ito recursively at pagkatapos ay iteratively. Kung mayroon kang anumang mga katanungan, huwag mag- libreng itaas ang iyong kamay. Maligayang upang maglakad sa paligid at sagutin ang mga ito bago namin simulan ang bilang isang pangkat. Ipaalam sa amin ipagpatuloy, at kami ay pagpunta sa pseudocode ang recursive na bersyon ng ito, at pagkatapos ay namin code ito. Kaya isang recursive function na Kailangan ng dalawang bagay. Ito ay maaaring isang tanong na Maaaring hilingin sa iyo. Kailangan ng dalawang bagay. Sino ang maaaring taasan ang kanilang mga kamay at sabihin sa akin ano ang dalawang bagay isang recursive Kailangan ng pag-andar? Sa pamamagitan ng kahulugan nito ay may dalawang bagay. Ano ang mga dalawang bagay? Bagong mga kamay. Oo, Alden. Madla: Kaya hindi ako eksaktong sigurado kung ito ay ang terminolohiya, ngunit - Jason HIRSCHHORN: Nagagalak akong ka pagtataas ng iyong mga kamay. Madla: Kailangan nito ng base kaso, at kailangan nito ang isang recursive na hakbang. Jason HIRSCHHORN: Perpekto. Kailangan nito ng base kaso at isang recursive na hakbang. Kaya kung ano ang aming base kaso dito? Madla: F ugat ay katumbas ng katumbas null. Paumanhin, lamang sa pseudocode, kung ito ay walang bisa. Kung ugat ay walang bisa. Jason HIRSCHHORN: Kung ugat ay walang bisa. Iyan ay mahusay na. Iyon lang ang aming base kaso. Iyon ay kung ano kami ay pagpunta upang suriin sa bawat oras. At base kaso ay ang unang bagay na gagawin mo. Kung ang hit mo ang batayang kaso, tapos ka na. Ngayon ay kailangan namin ang aming recursive tawag, at Gusto ko ay payag kang Taya kailangan namin ng ilang recursive tawag dito. Dahil ito ay isang puno, at kami maaaring pumunta maraming paraan. Kaya kung ugat ay null, kami ay mabuti. Ano ang gagawin ninyong imungkahi? At ngayon Pupunta ako upang simulan ang pagtawag out sa iyo guys, dahil alam ko sa inyo guys lahat alam ito. Ngunit Annie, kung ano ang dapat sa susunod na linya maging? Paano kung natuklasan namin na ito? Ano ang gagawin namin? Madla: Kung natuklasan namin na ito? Jason HIRSCHHORN: O ano Dapat na iyon - bigyan mo ako ng pseudocode para sa line kung saan natuklasan namin na ito. Madla: Kung katumbas i ugat i? Jason HIRSCHHORN: At pagkatapos ay kung ano ang gagawin namin? Madla: Bumalik totoo. Jason HIRSCHHORN: Mahusay. Kaya kung i ay i - oh, naka-parehong tinatawag nilang i. Iyon ay makakakuha ng nakalilito. Ngunit kung i ay bumalik i totoo. Iyon ay marahil ang susunod na bagay na dapat namin gawin. Gumagawa kahulugan. OK, ngayon hindi pa kami tapos sa aming recursive pa tumawag, bagaman, dahil ang isang recursive tawag ay tumawag muli ang function. Kaya kung ano dapat ang susunod na linya ng pseudocode maging? Anna. Madla: Ang natitira gilid. Jason HIRSCHHORN: Maging tiyak, bagaman. Ito ay isang binary paghahanap tree, kaya kung ano ang pag-check sa kaliwang bahagi ay nilalagay? Madla: Kaya node - Sorry, ugat. At pagkatapos arrow kaliwa. Node, node, paumanhin. Hindi ako sa pagbabasa nito nang maayos. Ito ay tinatawag na node, tama? Jason HIRSCHHORN: Ito ay tinatawag na ugat sa na pag-andar, ngunit alinman paraan. Ang kaliwang bahagi - oo? Madla: Kung hindi katumbas ng i, pagkatapos kami ay pagpunta sa tumawag sa muli ang pag-andar? Jason HIRSCHHORN: Tama iyon. Kung ito ay hindi katumbas i, kami ay pagpunta upang tumawag muli ang pag-andar. Ngunit ano gilid ng tree kami makapupunta upang tumawag muli ang pag-andar? Madla: Sa kaliwang bahagi. Jason HIRSCHHORN: Hindi kami palaging pagpunta sa tumawag ito sa kaliwa, kung ito hindi kasing-halaga nito. Madla: Oh, paumanhin. Tumawag sa kanan. Jason HIRSCHHORN: gusto naming malaman partikular, kahit na - tandaan, sa isang binary puno ng paghahanap, ang lahat ng bagay sa kaliwang bahagi ay mas maliit. Lahat sa kanan bahagi ay mas malaki. Kaya lang hindi - oo, sige. Madla: Kung ito ay mas mababa kaysa sa i, pagkatapos - kung ito ay sa kaliwa - Jason HIRSCHHORN: Kaya kung Ri Mababa sa - kaya kung ang aming numero ay mas mababa kaysa i, ano gilid nais naming i-sasamang sa? Madla: Gusto naming pumunta sa kanang bahagi. Jason HIRSCHHORN: Gusto naming pumunta - ipaalam sa akin gumuhit ng isang mabilis na tree. Kung ito ay 5, ito ay magiging 3. Kaya kung Ri ay mas mababa sa limang, kung ano gilid nais namin upang pumunta sa? Madla: Paumanhin, kung ano? Jason HIRSCHHORN: Ang aming numero ay kaunti kaysa sa bilang Ikinalulungkot namin pagtingin sa ngayon. Madla: Oh, pagkatapos ay nais naming upang pumunta sa kaliwang bahagi. Oo. Sorry. Jason HIRSCHHORN: Mismong. Walang alalahanin. Sa binary puno ng paghahanap, ang lahat ng bagay mas mababa ay sa kaliwa, mas malaki ay sa kanan. Kaya kung ang aming numero ay mas mababa sa ang i namin Sinusuri - dahil nakikita mo sa node, mayroon itong i - pagkatapos ay gusto mong pumunta sa kaliwa. At ito ay isang madaling isa. Ano ito ang iba pang mga linya ng pseudocode kailangan namin upang isulat? Carlos? Madla: Ang parehong bagay, lumipat ka lang ito sa isang mas malaki kaysa sa pag-sign at pumunta sa kanan. Jason HIRSCHHORN: Maari bang ma-mo ito sinasabi nang isa pang beses? Madla: Kung ang aming numero ay mas malaki kaysa i, pumunta sa kanan. Jason HIRSCHHORN: Napakahusay trabaho sa pseudocode. Ipaalam sa amin gawin ito sa tunay na code. At muli, ito pseudocode habilin marahil makakuha ka, dahil ito ay tama, 50% sa tanong na ito. Ngunit isinasalin din ito pseudocode isa sa isa, mahalagang, sa code. Kaya ipaalam sa amin gawin ito sa C. Sino ang maaaring magbigay sa akin ang unang linya ng code? Talaga, una, bago kong gawin na, hayaan mo akong itabi - Madla: Mayroon akong tanong. Bakit mo i-indent mo ang linya binigyan mo ako? Jason HIRSCHHORN: Dahil ang Hindi ako makakasulat. Hindi ko alam. Tama ka. Linya na dapat ay banda roon. OK, dito ay ang aming function. At hayaan mo akong itabi, gayundin, aming kahulugan ng isang node. Ano ang mangyayari kung ginawa naming hindi sumulat typedef? Alam ba ng kahit sino? Madla: Hindi ito ay sumulat ng libro. Jason HIRSCHHORN: gagawin Ito sumulat ng libro, oo. Madla: Gusto ito magpahayag lamang ng isa Halimbawa sa halip na ginagawa itong isang bagong type maaari mong magpahayag ng maramihang mga kaso ng? Jason HIRSCHHORN: Kaya ito gagawin hindi Alam - ito gagawin hindi Ipinahahayag lamang sa isang uri. Maaari mo pa ring gumawa ng maraming mga node. Madla: Ngunit hindi nais na mayroon kami upang sumulat struct node sa bawat panahon? Jason HIRSCHHORN: Tama iyon. Gusto mong mag-isulat struct node sa bawat oras, sa halip na lamang node. Ngunit sa typedef, maaari mo lamang sumulat node bawat solong oras. OK, na hindi pa naibigay - oo, Avica. Madla: Kung ugat ay katumbas Kapantay null, bumalik hindi totoo. Jason HIRSCHHORN: Mahusay, at na aming base kaso. Susunod na linya ng code. Isang tao na hindi pa naibigay sa akin ng isang linya ng code pa? Oo. Madla: Root arrow i ay katumbas katumbas i. Pagkatapos ay bumalik totoo. Jason HIRSCHHORN: Mahusay. Susunod na linya? Oo. May ibang? At pagkatapos ay maaari kang pumunta sa susunod. Madla: Iba Pa kung ugat arrow i Mababa sa bumalik i function na tinatawag na find na root - Jason HIRSCHHORN: Paumanhin. Madla: Return find ugat tumuturo sa kaliwa kuwit i. Jason HIRSCHHORN: Kaya kung Ri ay mas malaki kaysa sa bagay sa tree, nais naming pumunta sa kaliwa? Madla: Hindi, nagkaroon ko na lumipat. Jason HIRSCHHORN: Aling isa? Madla: Hindi, oo. Mayroon akong mas mababa kaysa sa mag-sign doon. Jason HIRSCHHORN: Kanan, kung Ri ay mas mababa kaysa sa kung ano ang nasa root - aming kasalukuyang ugat - pagkatapos namin gustong pumunta sa kaliwa. At kung ano ang huling linya, ikaw? Madla: talaga ang parehong bagay, maliban lumipat sa mas malaki kaysa sa o katumbas ng mas mababa at kaliwa hanggang kanan. Jason HIRSCHHORN: Mahusay. Kahit sinong mayroon ba kayong mga katanungan tungkol dito? Kaya ang ilang iba pang mga bagay na gagawin naging tama ay na ay maaaring ang-ltiff. Hulaan, technically, wala sa mga ito talagang kailangan din na maging-ltiff. Gayundin, doon ay marahil lamang isa kaso down na dito. Kaya na ay marahil ang iyong huling kaso. Hindi mo kailangan na-ltiff. Ngunit marahil handa na upang magsulat ito, upang maging malinaw. Oo. Madla: Kaya tingin ninyo ay hindi ang pagsusulit - kung gumawa kami ng mga error, halimbawa, sa syntax - maliit na mga error sa syntax - paano ito na makakuha ng kinuha sa pagsusulit? Jason HIRSCHHORN: Sa pangkalahatan sa pagsusulit, maliit na syntax error o maliit error estilo huwag mawalan ka ng puntos. Kaya kung nakalimutan mo ang isang tuldok-kuwit dito, magiging OK. Kung nakalimutan mong isara ang panaklong, na magiging OK. Napakalaki mga error sa syntax na makapagpabago sa functional kahulugan ng iyong code kapansin-pansing, maaari kang makakuha ng kinuha off point para sa. O sa pangkalahatan, lamang grading mo sa kung o hindi ang iyong pag-andar ng code, kahit na - hindi disenyo nito nang sa gayon magkano, at hindi istilo nito. Hayaan ngayon code ng isang umuulit bersyon ng find. Kaya ito ay magiging kaakit-akit na katulad, ngunit doon ay tiyak pagpunta sa maging ilang mga pangunahing pagkakaiba. Gayunpaman, ang aming pseudocode Maaari marahil pumunta - Maaari pa rin kami ng isang linya ng pseudocode at alamin kung ano ang line ay sa kasong ito. Kaya sa isang umuulit na bersyon, kung ano sa tingin mo, Julia, dapat maging unang linya? Madla: Muli, sa umuulit boolean, kailangan mong i-set up ang isang para sa loop, tama? Jason HIRSCHHORN: OK. Madla: Kaya't para tulad ng, k, para sa x ay katumbas ng 0, x ay mas mababa kaysa i. O wala na, x ay mas mababa sa laki ng tree. Jason HIRSCHHORN: puno Ang. Kaya hindi talaga namin alam kung ang sukat ng puno, at hindi kami talaga alam para sa kung gaano karaming beses namin maaaring pumunta, kaya kung ano ang isang iba't ibang uri ng loop na maaaring maging mas mahusay na sa kasong ito? Madla: Kung pang dahilan? Jason HIRSCHHORN: Kung tao hindi maaaring maging isang loop. Kaya kung ano ang isang uri ng loop namin maaari lamang pumunta hanggang sa ilang mga kaso ay nagkakilala? Ano ang lamang iba pang uri ng loop sa C bukod sa isang para sa loop? Madla: Habang. Jason HIRSCHHORN: Habang, eksakto. Sa isang habang loop, huwag kailangang malaman kung paano - Maaari gawin ang isang habang loop at para sa loop ang eksaktong parehong bagay, ngunit ang magandang bagay tungkol sa isang habang loop ay hindi namin kailangan malaman kung paano malaki ang aming puno ay. Kaya kami ay pagpunta sa pumunta hanggang sa kung ano? Madla: Hanggang sa ito ay katumbas ng ang laki ng - Jason HIRSCHHORN: Well, ito ay napaka katulad ng aming recursive kaso. Kaya - Madla: Habang ugat ayaw ko ang katumbas i. Jason HIRSCHHORN: Iyan ay talagang malapit. Habang ugat i - subukan na ito ipaalam. Hindi sa tingin ko [hindi marinig] kung saan ang root i ay hindi katumbas i. Baka kailangan namin upang baguhin ito sa isang maliit na bit, ngunit na tunog tulad ng ito ay medyo mahusay, sa ngayon. Kaya gagawin namin iyon. Gayundin, tandaan, hindi namin ipinapalagay alinsunod sa mga tanong. Hindi mo ipinapalagay na ang ugat ay magiging di-null. Kaya ano ang gagawin sa tingin mo ang napaka unang bagay na dapat naming gawin ay? Madla: gawin lamang ang parehong bagay tulad ng dati. Kung root ay katumbas Kapantay null, bumalik hindi totoo. Jason HIRSCHHORN: Mahusay. Kaya maaaring ito ay walang bisa. Kaya gusto namin upang makakuha ng pawalan ng ito kaagad. At pagkatapos ay kami ay pagpunta check kung ugat i ay hindi katumbas i. Kaya, sabihin natin na kami ay naghahanap sa punong kahoy na ito para sa 3, i ugat ay hindi katumbas ko, ngayon Ikinalulungkot namin sa aming habang loop. Ano ang gusto naming gawin? At muli, ito ay magiging kaakit-akit katulad ng aming recursive na bersyon. Oo. Madla: So saan mo nais na umulit, o panatilihin ang pagpunta pababa sa puno hangga't root ay hindi katumbas ng null. Jason HIRSCHHORN: Hangga't ang ugat ay hindi katumbas ng null? Madla: Ang ugat gitling i ay hindi kapantay sa null. Root lang, oo. Bilang isang mahaba bilang root ay hindi katumbas ng null. Jason HIRSCHHORN: Kaya gusto mo upang baguhin ito sa ugat hindi pantay null? Madla: Oo. Madla: maaari naming pagsamahin mga ito, tama? Hindi namin kailangan ang kung, sa umpisa. Jason HIRSCHHORN: OK, kaya kung don't namin - kung pagsamahin namin ang mga ito, kaya kami ay pagpunta sa gawin habang ugat ay hindi katumbas null, at kung root ang mangyayari sa maging null sa nagsisimula, ano ang gagawin namin pababa dito? Madla: Bumalik false. Jason HIRSCHHORN: Mahusay. Kaya parehong paraan marahil sana ay nagtrabaho. Ito ay isang iba't ibang mga paraan, at ito ay pinagsasama ito. Ngunit muli, kung ginawa mong alinman sa paraan, kami ay hindi pagpunta sa tumagal-off disenyo tumuturo sa pagsusulit. Ngunit mahusay na ito ay mukhang. Kaya habang ugat ay hindi katumbas ng null, ano ang unang bagay nais naming suriin? Ibang tao? Walang bisa, ano ang unang bagay? Madla: Kung Ri Mababa sa - oh, hulaan ko, kung tayo na natagpuan ito sa root. Kaya kung ugat arrow i ay katumbas ng i - Jason HIRSCHHORN: Paumanhin? Madla: Kung ugat arrow i katumbas ay katumbas i - Jason HIRSCHHORN: Ano ang gagawin namin? Madla: Bumalik totoo. Jason HIRSCHHORN: Mahusay. At ano ang susunod? Jeff, ano ang susunod na linya ng code? Madla: Kung i Mababa sa ugat arrow i, pagkatapos ay i-ugat ay katumbas ng ugat arrow kaliwa. Jason HIRSCHHORN: Root Kapantay ang natitira ugat arrow. Kaya na ay marahil ang pinakamalaking pagkakaiba dito sa umuulit na ito bersyon na taliwas sa mga recursive na bersyon. Ang recursive bersyon, namin tumawag muli ang pag-andar. Makikita-update namin ang ugat kapag tinatawag naming ang bagong function. Narito hindi kami sa pagtawag ng isang bagong function. Naka lamang lang update namin lipulin ito function. Iyan ay mahusay na. At kung ano ay ang huling linya ng code? Oo, Mario? Madla: Iba Pa ugat ay katumbas ng ugat na arrow sa kanan. Jason HIRSCHHORN: Paumanhin? Madla: Root Kapantay ugat na arrow sa kanan. Jason HIRSCHHORN: Puwede ka ring magsulat ng isang bagay na tulad nito? Madla: Wala akong palagay. Jason HIRSCHHORN: Maaari mong hindi. Hindi mo maaaring gawin plus Kapantay. OK, kaya ito magandang mukhang. Bakit hindi gawin lang namin na upang linisin up ito. Ito ay mukhang mahusay, at ito ay gumagana. At gusto namin masira out. Kung ugat kaliwa ay null o ugat karapatan ay null, gusto naming makabuo dito. Root ay magiging katumbas ng null. Nais naming masira out sa aming loop, at nais naming ibalik hindi totoo. Kaya kapag masira kami sa labas ng loop, bumalik kami ng hindi totoo. At muli, ang isang habang loop ay perpekto dito dahil hindi namin alam kung paano malaki ang aming puno ay. Sinubukan naming i-isulat ang para sa loop, ngunit namin natanto na kailangan mong malaman kung paano malaki ito ay maagang ng panahon. Oo. Madla: Kung hindi ito ay isang binary puno ng paghahanap, magiging real matematika-y upang isulat ito iteratively, tama? Tulad ng, kung ito ay isang tree, ngunit hindi kinakailangan - kaya ito ay hindi lahat na mas maliit sa kaliwa, at ang lahat ng mga mas malaki sa kanan. Mas mahirap talaga upang umulit sa paglipas ng ito, tama? Nais naming magkaroon upang i-save kung ano ang mas maaga sa sa tree at bumalik, at bagay-bagay tulad na. Jason HIRSCHHORN: Kung ito ay hindi isang binary puno ng paghahanap, kung ito ay lamang ng isang puno at mga bagay ay hindi pinagsunod-sunod tulad nito - at mas maaga namin natanto kapag Anna ay pagtulong sa amin na ginagawang Uri-uriin tumutulong sa amin ng maraming - Gusto kailanganin naming, oo, palaging i-save ang kung saan kami nauna. Subalit, maaaring may maraming kung saan kami ay previouslys. Maaaring magkaroon ng maraming magulang nodes. Marahil ang pinakamahusay na paraan upang gawin na iyong gagawin maging upang panatilihin ang panunulak ng mga bagay sa ilang uri ng stack o queue. Hindi mo kailangang code na ito dahil ito ay isang mahirap na problema. Ngunit itulak mo ang ilang mga bagay sa isang stack o queue at pagkatapos ay pop-off ang mga ito, at pagkatapos suriin ang mga ito. At pagkatapos ay may ilang iba pang mga bagay na kung saan ang talaga naglalagay ka ng mga nodes, at pagkatapos ay lumikha na iyon, at pagkatapos ay maghanap sa pamamagitan ng na. Iyon ay maaaring ang pinakamahusay na paraan upang gawin ito. OK, anumang mga katanungan tungkol sa problemang ito? Madla: Ito ay sa isang kaugnay na tala. Makakaapekto ba ang mayroon kami upang ihambing run beses para sa hash talahanayan, binary puno ng paghahanap, at iba pa? Jason HIRSCHHORN: Malamang. Kaya sabihin gawin na talagang mabilis. Patakbuhin oras para sa hash talahanayan - ano ang mga iba? Binary puno? Madla: mga listahan ng Link. Jason HIRSCHHORN: OK, gawin ni insert ipaalam. Ano ang malaking O ng insert sa isang hash talahanayan? Ano ang mga pagpapalagay nagsasagawa ka ng? Madla: ka ng pagpasok sa simula ng listahan link. Jason HIRSCHHORN: Malamang ang unang palagay ay walang mga banggaan. Kung walang mga banggaan, pagkatapos ay ang oras sa pagpapasok ay isa. Kung mayroong mga banggaan, at ikaw ay paggawa nakahiwalay chaining at pagpasok sa simula ng listahan link, pagkatapos pagpapasok ay pare-pareho din. Kung gumawa ka ng isang hash talahanayan ngunit ikaw magkaroon ng ibang paraan ng pagharap may banggaan, kung ano ang ng ibang paraan? Ano ay isang iba't ibang mga paraan ng pagharap sa banggaan sa isang hash talahanayan? Madla: De-programming. Jason HIRSCHHORN: De-programming. Kaya kami ay pagpunta upang panatilihin ang hinahanap para sa susunod na bukas na puwesto. Iyon ay hindi pare-pareho ang oras sa pagpapasok. Maaari kang magkaroon ng upang pumunta sa pamamagitan ng ang buong talahanayan, upang maaaring maging malaki O ng n. Oo. Madla: Kung hindi man lamang chaining? Jason HIRSCHHORN: ginawa namin hiwalay chaining. Iyon ay ang unang isa. Iyon ay kung ano ang listahan link. Ang magarbong pangalan ay hiwalay chaining. Ito ay maaaring maging anumang uri ng istraktura listahan mangyari naming gawin sa listahan na link. Kaya muli, pagpapasok sa isang hash talahanayan maaaring maging pare-pareho ang panahon. Paano ang tungkol sa pagpapasok ng sa isang queue stacker? Madla: na pare-pareho ba ang hindi? Jason HIRSCHHORN: Ito ay pare-pareho ang panahon. Naka pagtulak mo lang ito sa. OK. Insertion, ano ang mga iba pang mga bago? Sa isang try? Ano ang malaking O ng pagpapasok sa isang try? Madla: Ang haba ay pare-pareho. Ang haba ng pinakamahabang - ang haba ng salita ka pagpasok. Jason HIRSCHHORN: Paumanhin? Maghintay, kaya't kung ano ang ko marinig? Sinabi mo - kung ano ang iyong masasabi? Ano ang iyong sagot, Marcus? Madla: Ang haba ng salita ka pagpasok sa character, sa pag-aakala ito ay isang character na try. Jason HIRSCHHORN: OK, kaya ang haba ng salita. Gagawin namin ang isang palagay na ito ay isang string ng mga character. Sinabi mo ng isang bagay na naiiba, bagaman. Sinabi mo haba ng pinakamahabang salita. Madla: Iyon lang pare-pareho, tama? Jason HIRSCHHORN: Bakit ginagawa itong maging pare-pareho? Madla: Tulad ng, kung gumagamit ka ng malaki O pagtatanda, pagkatapos ay hindi ito nag-iiba batay sa bilang ng mga bagay na ay nasa ang try. Jason HIRSCHHORN: Kaya kami ay sabihin ito ay pare-pareho ang panahon. Ito ay pare-pareho ang pagpapasok, at na dahil sa ideyang ito - sabihin nating mayroon kami ng isang salita na 45, o isang salita na 60, na May nagbabagong numero. At gusto lang ay maipapasok sa pare-pareho ang panahon. Sa pagsasanay bagaman, hindi ito ay magiging, malinaw naman, mangyari sa isa millisecond, halimbawa. Ngunit nais naming sabihin malaki O ay pare-pareho para sa isang try. At iyon ang isa sa mga pinakamalaking kalamangan. Paano ang tungkol sa pagpapasok sa isang listahan ng link? Lamang sa isang generic, pinagsunod-sunod listahan ng link? Oo. Madla: Mayroon akong isang katanungan. Sa pagsubok, ang mga ito ay kailanman hilingin sa amin ang oras pagpapasok na apat na hakbang, o ng isang bagay? O isa lamang - kapag sinabi mong oras sa pagpapasok ay isa, na nangangahulugan lamang pare-pareho ang oras? Jason HIRSCHHORN: Oo, gagawin nila laging magtanong, ay ito malaki O ng n? Big O ng log n? N nakalapat pare-pareho. Iyon ang talaga ang tanging mga kailangan mong malaman. Paano ang tungkol sa pagpapasok papunta sa pinagsunod-sunod listahan ng link? Madla: Mayroon akong isang tanong - isang tanong - Jason HIRSCHHORN: Ano ang sagot sa na tanong, bagaman? Madla: Maghintay, ano ang mong tanungin? Jason HIRSCHHORN: Ano ang malaking O ng pagpapasok sa isang listahan pinagsunod-sunod link? Madla: Isa? Walang paghihintay, Walang paghihintay, n. Jason HIRSCHHORN: N. Bukod ang listahan ng link. At kung ano ang iyong katanungan? Madla: So gusto mong isulat o ng k o o ng 1 para sa - Jason HIRSCHHORN: Oh. Gusto ko magsulat o ng 1, marahil. Nagkaroon ng isa sa iba pang mga istraktura ng data na sana ay naging mabuti. Tree, binary paghahanap tree. Ano ang pagpapasok sa isang binary puno ng paghahanap? Madla: Mag-login. Jason HIRSCHHORN: Kaya, ano ang pinakamasama kaso sa isang binary paghahanap puno? Kaya kung mangyari namin upang simulan sa 5, at ang bawat numero ay mas malaki kaysa 5, pagkatapos Nakakuha kami ng 5, 7, 9, 11, at iba pa. Sa kasong ito, ito ay isa lamang ng isang link lamang listahan, at kailangan namin upang ipasok ang lahat ng ang paraan sa dulo. Kaya malaki O ng n. Na maaaring maging ang aming pinakamasama kaso sa isang binary paghahanap tree. Malinaw, hindi mo nais na bumuo ng isang binary paghahanap puno na may 5 sa gitna, alam 5 gusto maging ang pinakamababang numero. Ngunit maaaring ito ay, kung ikaw ay na nagsisimula mula sa simula. Ang anumang mga katanungan sa bago ito ko lumipat sa isa pang katanungan? Iyon ay isang mahusay na tanong. Gusto ko alam malaki O ng - Madla: Ano ang tungkol sa paghahanap para sa mga apat? Jason HIRSCHHORN: Talagang kami ay ang paghahanap at pag-uuri. Ginawa namin ang lahat ng mga algorithm, i-right. Maghintay, ay na para sa Pagsusulit 1? Ay na sakop - ay na mayroon ka na tanong sa Pagsusulit 1? Ang malaking O runtime ng binary paghahanap, -uri-uriin ang pagpapasok, bubble sort? Madla: Oo. Jason HIRSCHHORN: Kung nagkaroon ka na tanong sa Pagsusulit 0, logro ay hindi mo makakuha ng parehong eksaktong tanong sa Pagsusulit 1. Maaaring maging mahusay pa rin malaman mga. Dapat mo sana alam gh na. Ngunit iba pang mga logarithmic runtimes ay marahil handa na upang malaman. Mga bagay na hindi sakop sa Pagsusulit 0. Tulad ng lahat ng mga operator na ito sa mga abstract na uri ng data. OK, ng ilipat sa ipaalam. Ay dapat na medyo mabilis na isa ito. At ito ay isang bagong wika ay mayroon kaming hindi talagang naka-code sa bago. Ito ay isang tanong na nagtatanong sa code sa PHP. Kaya isaalang-alang ang array PHP sa ibaba. Sumulat ng PHP at / o ang HTML code tulad na ito output ng dalawang-haligi ng talahanayan na may TFs mga pangalan at bahay. Hindi kailanman nagawa mo na ito bago, ang partikular na problema. Ngunit ito ay dapat na maging masyadong pamilyar sa ano ang iyong ginawa sa problema itakda 7. Kaya Gusto ko ay payag kang Taya ikaw ang magiging hilingin sa iyo na code sa isang bagay PHP na ay halos kapareho sa kung ano ang iyong ginawa sa problema itakda 7. Una, array ay hindi na tiyak. Anong uri ng array ay ito? Madla: nag-uugnay. Jason HIRSCHHORN: Ito ay isang nag-uugnay array. At ano ang mga pagkakaiba sa pagitan ng isang nag-uugnay array at isang bagay? Madla: Ang isang bagay na array ay may isang index ng integer, at isang nag-uugnay array ay isang index ng isang string, o ang isang bagay tulad na. Jason HIRSCHHORN: Kaya isang array ng mga bagay ay magkaroon ng mga indeks ng integer, ngunit ang isang bagay ay may mga patlang. Ito ay may mga patlang tulad ng mga pangalan pangalanan, bahay, mag-aaral. Mayroon ka bang isang ideya? Madla: Well, nag-uugnay array ay nasa PHP, tama? At sa bagay ay nasa JavaScript? Jason HIRSCHHORN: totoo lang, walang tunay na pagkakaiba sa pagitan ng dalawa. Parehong may mga string bilang ang mga key, at maaari mayroon talaga ng kahit ano bilang halaga. Iba't ibang mga wika tumawag sa isa bagay nag-uugnay array, isang bagay ang isang bagay. Kaya totoo lang, walang tunay pagkakaiba, ngunit mayroong tiyak na ilang syntactical mga pagkakaiba sa pagitan ng dalawang. Oo. Madla: Kaya ay sa bagay na naka-code na rin sa ilalim ng ng hood bilang isang hash talahanayan, pagkatapos? Jason HIRSCHHORN: Ano ang ginagawa mo ibig sabihin, naka-code sa ilalim ng hood? Madla: Kami ay sinabi na nag-uugnay array ay technically isang hash table. Kaya ay bagay din technically isang hash talahanayan? Jason HIRSCHHORN: Hindi ako pupunta upang sagutin na tanong. Magpapadala ako babalik sa iyo sa na. Ngunit hindi ko tingin ng alinman sa ng mga katulad na. Ngunit, sa anumang paraan, nag-uugnay array at sa bagay, sa pangkalahatan, ang mga taong gumagamit ng mga mga tuntunin ng salitan. Sa kasong ito, ang mga cool na bahagi ay maaari mong gamitin ang mga key. Mga string bilang key, sa halip na lamang simpleng numero. Kaya na-pakikipag-usap ko tungkol sa ito para sa sandali. Sana, ang ilang mga tao ay may nakuha makapagsimula sa ito. Kami ay pagpunta sa sumulat ng ilang PHP at HTML code, tulad na makakakuha tayo ng isang dalawang-haligi mesa na may mga pangalan at mga bahay TFs. OK, ako rin ay nais ng isang header Ang hilera sa talahanayan na ito. Kaya ako pupunta upang makakuha ng tuwid sa ito. Kami ay pagpunta sa file, bago, at kami ay pagpunta sa - OK. Paano ako magsisimulang isang talahanayan? Ano ang tag, Michael, upang magsimula ng talahanayan? Madla: Table. Jason HIRSCHHORN: Table. At kung buksan ako ng tag, kung ano iba kailangan ko? Madla: Isang ulo? O, hulaan ko, class. Jason HIRSCHHORN: Kaya, paumanhin. Ipagpalagay na mayroon nang nakasulat na namin ang doctab, HTML, ang lahat ng mga bagay-bagay na iyon. Ngunit kung buksan ko ito talahanayan tag, kung ano iba ang kailangan kong isulat? para patunayan ang HTML? Madla: Isara ito. Jason HIRSCHHORN: Isara ang tag. Paano ako magsusulat ng isang close-talahanayan tag na ito? Madla: Dot iwa talahanayan. Jason HIRSCHHORN: slash talahanayan, mahusay. Malamang saysay ang sumulat ng kapwa ng mga magkasama dahil na kailangan mong gawin ito. OK, kung gusto ko ang isang hilera ng header, paano gawin Sumulat ako ng isang hilera ng header may mga pamagat? Madla: mas ba ito sa 10 oras malapit - Tr, oo. Jason HIRSCHHORN: tr? Madla: Pagkatapos parehong bagay, ang slash, oo. Jason HIRSCHHORN: OK, at bigyan mo ako ng dalawang mga hanay. Madla: T D? Jason HIRSCHHORN: OK. Gusto ko ng dalawang mga hanay. Ito bigyan ba ako ng dalawang haligi? Gaano karaming mga haligi ay ito? One. Kaya sabihin kopyahin at i-paste ito. Kaya talaga, sa pagsusulit, ang lahat ng code na ito na na naisulat namin sa ngayon ay talagang ibinigay sa iyo. Ngunit dapat mong marahil pa rin alam kung paano sumulat ng ito. Oo. Madla: Ang iyong bahay ay sa pagitan ng dalawa. Jason HIRSCHHORN: Boom. Dapat itong pumunta doon, tama? Magandang tawag. Kaya muli, ang lahat ng code na ito ay ang tunay ibinigay sa iyo sa aktwal na pagsusulit. Ngunit ito ay masaya na magsulat dito, at mo dapat malaman kung paano magsulat dito. Kaya ito ay kung saan kailangan mo upang simulan ang iyong code. Ano ang kailangan namin upang magsulat dito mismo? Paumanhin, kailangan kong baguhin ang pangalan ng file na ito. Kaya-save namin ito sa isang. HTML file, hindi sa isang file na. PHP. Mga bagay na ito ay nangangahulugan na walang anuman sa isang. file PHP. Kaya kami sa isang. HTML file. Ano ang unang bagay na Kailangan kong isulat? Gusto kong maglagay ng mga PHP code sa isang HTML. Madla: PHP, tulad ng isa pang karot at tandang pananong PHP, tama? Jason HIRSCHHORN: Mahusay. At paano ko tapusin ko na? Madla: Gamit ang isang tandang pananong. Jason HIRSCHHORN: Mabuti iyan. Iyon ang unang bagay na kailangan ko kung gusto ko maglagay ng mga code na PHP in dito. Madla:. Naisip ko na isang PHP file ay maaaring tumagal ng HTML. Jason HIRSCHHORN: Oo. Maaaring tumagal ang file na. PHP ilang HTML at ipapakita. Iyon ay ang aking masamang. Lamang ako ay sinusubukan upang gayahin ano iyon ay sa pagsusulit. OK, paumanhin upang lituhin mo. Oo, practice.HTML. Ngayon kami ay pagpunta sa ilagay ilang PHP code in Ano ang unang linya ng Code na PHP ang dapat kong isulat? Pupunta ako sa pumunta sa pamamagitan ng array at gumawa ng mga ito sa isang table. Oo. Madla: Maaari mong gamitin ang alinman sa isang para sa H loop o isang para sa loop. Jason HIRSCHHORN: OK, kung ano ang gusto mong gamitin? Madla: Gusto ko gumamit ng isang para sa loop. Para sa, at pagkatapos ay gawin mo dollar sign i katumbas ng 0 semicolon dolyar mag-sign i mas mababa sa 2. At pagkatapos ay tuldok-kuwit i dolyar mag-sign i plus plus. Jason HIRSCHHORN: Paano ako mong malaman upang gumamit ng 2? Madla: Dahil mayroong dalawang nag-uugnay array sa loob ng mas malaking nag-uugnay array. Jason HIRSCHHORN: Kaya ang sisikat ni hindi isang associate ng array. Ang sisikat lang ng isang normal na array. Ngunit ikaw ay karapatan, may mga dalawang nag-uugnay array sa loob ng aming mas malaking array. Iyon ang dahilan kung bakit gumamit ka ng dalawang. Pakiramdam ko ay hindi komportable sa pagpapalagay na ang mga ito ay 2, kaya kung ano ang isang paraan upang isulat ito nang hindi ipagpalagay na ang mga ito ay 2? Madla: [hindi marinig]? Jason HIRSCHHORN: OK, paano huwag magsulat ka na? Madla: Foreach dollar sign tfs o tulad ng pag-sign tf dolyar. Jason HIRSCHHORN: OK, kaya para sa bawat tfs bilang tfs, gusto kong, ngayon muli, mayroon ang aking mga talahanayan. Kaya kung sino ang maaaring magbigay sa akin ang susunod na linya ng code? Madla: I-print, at pagkatapos ay sa sipi, bracket tr ng pagtatapos bracket, end quote. End panaklong, tuldok-kuwit. Jason HIRSCHHORN: OK, at ano ang na pagpunta sa gawin? Madla: Ito ay pagpunta sa sabihin, ang mga bagong hilera. Ito ay pagpunta sa ilagay ang tag para sa isang bagong hilera. Jason HIRSCHHORN: Kanan, ito ang PHP, tulad ng usapan natin ang tungkol sa mas maaga - ito PHP ay pagpunta sa susuriin, at pagkatapos ay ito ay pagpunta sa i-print out upang ang file na ito ng isang talahanayan hilahin ng lubid, at pagkatapos na HTML ay susuriin. Kami ay pagkopya ito lamang HTML ay nagkaroon up namin dito. Oo. Madla: [hindi marinig]? Jason HIRSCHHORN: Paumanhin? Ito ay dito mismo. Fall ng 2012. Huwag tingnan ang sagot, malutas ng ito nang magkasama ipaalam. Kaya i-print namin hilera ng talahanayan. Kaya ikaw ay marahil sa ang ugoy ng mga bagay. Ano ang susunod na linya ng code na kailangan namin upang isulat? Assam, ibigay sa akin ang susunod na linya ng code. Madla: Kailangan mong pangalan ang tf ni. Tf bukas bracket panipi pangalanan closed bracket. Jason HIRSCHHORN: Bigyan mo ako ng kanilang pangalan. Madla: Kailangan mong i-print na. [INTERPOSING tinig] Jason HIRSCHHORN: OK, paano ko ito i-print? [INTERPOSING tinig] Jason HIRSCHHORN: ako nawawala isang bagay na ngayon. Ano ako ay nawawala ako? Madla: Kailangan mo ng dollar sign. Jason HIRSCHHORN: Ano ang iba ako ay nawawala ako? Ang lahat ng mga na-print na namin sa ngayon ay ang tr. Madla: Isara ang tr pagkatapos nito. Jason HIRSCHHORN: Kaya kailangan namin upang isara ang tr pagkatapos. Sino ang nakakakita ng kung ano ang nawawala namin sa 16 na linya? Oo, Anna. Madla: Kailangan mo upang buksan isang td at kulot tirante. Jason HIRSCHHORN: At kung saan huwag inilalagay namin ang kulot tirante? Madla: Paikot ang pangalan tf. Jason HIRSCHHORN: Tulad ng mga ito? Madla: Oo. At pagkatapos isara ang td. Jason HIRSCHHORN: Tulad ng mga iyon? Madla: kailangan ba kayo ng double quotation mark sa tabi ng kulot tirante? Jason HIRSCHHORN: Kanan dito? Hindi, hindi mo gusto. Kaya iyon mismo kanan. Oo. Madla: Kaya ang pagkakaiba sa pagitan na at encatenating may mga tuldok ay, kung ang kang gumamit ng mga tuldok, gusto mayroon kang magkaroon ng double quotation marks, pagkatapos ng isang tuldok, pagkatapos ay ang tuldok - Jason HIRSCHHORN: Tama. Kaya mo sinasabi na mayroong isang tunay paraan ng pagsusulat ng mga ito tulad na. Ano ang pagdudugtong operator sa JavaScript? Madla: Ang isang plus sign. Nakalimutan mong ilagay ang kulot suhay likod. Jason HIRSCHHORN: Mahusay. At mayroong isa pang linya ng code nawawala. Sino ang maaaring magbigay sa akin ang huling linya ng code nawawala namin? Madla: lamang ang eksaktong parehong bagay, sa pamamagitan lamang ng bahay sa halip ng pangalan. Malaki Jason HIRSCHHORN: Mahusay. At ang syntax ay akmang-akma para sa pagkuha ng mga bagay sa isang associate ng array. Kaya sa mga aktwal na pagsusulit, ikaw ay talaga ibinigay na up hanggang dito. Kaya ang code na ito ay ibinigay sa iyo. Lahat kayo ay nagkaroon ng na magsulat ay mga apat na linya at tandaang mag- isara ang tag na talahanayan. Ikaw guys talagang ginawa lahat na at higit pa. Oo. Madla: Kaya magiging pagtakbo ang parehong kung nagkaproblema ka lamang na ang lahat sa isa malaki tawag sa pag-print, i-right? At pagkatapos ay concatenated lamang ito sa, at iba pa? Jason HIRSCHHORN: Tulad ng mga iyon? Madla: Oo. Ito lamang ay hindi magiging ganito ang magandang kung ikaw ay ng pagtingin sa ito kapag naka-inspecting ang elemento sa iyong website, tama? Jason HIRSCHHORN: Sumasang-ayon ako. Kung load ko ang webpage na ito, nais kong maging magagawang makita ang code na ito PHP, kailanman? Madla: Hindi. Jason HIRSCHHORN: Hindi. At talagang, hindi ko ginagawa. Madla: Hindi ito HTML, tama? Kaya maaaring magawa mong - Jason HIRSCHHORN: Kaya ito PHP gagawin susuriin ng server side. PHP ay laging sinusuri server side, kaya ikaw ay hindi kailanman magagawang makita ang code na PHP. Madla: Pero gusto mo magagawang makita ang mga resulta ng mga kopya. Jason HIRSCHHORN: Mag-right. At totoo lang puwede hindi ilagay ang lahat ng ito sa linya. Maaari itong i-format itong mabuti para sa iyo, o baka ilagay ito dito sa isang linya. Hindi malinaw. Ngunit oo, magandang punto. Madla: Paano dumating ang doon Walang teksto ang pagha-highlight para sa anuman sa mga utos na PHP? Dahil tandaan ako nakakakita na. Jason HIRSCHHORN: Dahil ito ay isang . HTML maghain up dito sa tuktok. May pumunta ka. Madla: Kung ginawa namin ang paunang pamamaraan may para sa mga loop, kanan, kung namin Nais na i-access ng tfs, kami ay gawin tfs bracket 0 bracket, pagkatapos ay [Hindi marinig]? Jason HIRSCHHORN: gagawin mo - kaya mo sinasabi na para sa para sa loop, mo gagawin sa pag-sign tfs bracket dollar 1 o i, i-right. O kaya dollar sign isara i bracket at pagkatapos ay i-square bracket double quote, oo. OK, mahusay. Mayroon kaming isa pang mabilis na isa. Pitong minuto, kaya gusto ko upang pumunta sa ibabaw ng isang ito. Ito ay isa pang halimbawa. Humihingi kami ngayon ng lahat-lahat ng iba pang mga wika. Mayroon kaming ilang mga HTML code. Ito ay uri ng maliit sa screen, ngunit Gusto ko sa iyo upang tumingin sa pamamagitan nito talaga mabilis, at maaari isang tao sabihin sa akin, kung ako ay upang i-load ang web page, kung ano ang nais kong makita? Ilarawan ang lahat ng bagay tungkol sa ang webpage na ito. Noah? Ano ang gusto kong makita? Madla: Code sa front end ng Google na may isang pakiramdam para sa teksto at isang isumite ang pindutan. Jason HIRSCHHORN: At kung ano sasabihin ang pindutang? Madla: ang Isumite. Oh, paghahanap. Sorry. Jason HIRSCHHORN: Ito sasabihin ng paghahanap. Tandaan, ang pangalan. Ano ang ginagamit namin pangalan para sa? Ang katangiang ito pangalan, kung ano ang na ginagamit para sa? [INTERPOSING tinig] Madla: Iyon ang pangalan nito para sa kapag nag-click? Jason HIRSCHHORN: Iyon ay maaaring maging. Ngunit ano ang gagawin sa pangkalahatan namin makita - bakit binibigyan ka namin queue pangalan na ito? Bakit nakita namin na? Oo. Madla: Hindi na maging index ng mga super global variable? Jason HIRSCHHORN: Oo, sa pangkalahatan kapag ang form na nais isumite, at pagkatapos ay kung saan Gusto ito isumite sa? Ano pahina? Noah, kung ano ang pahina na nais ito upang isumite? Madla: hindi ako sigurado. Jason HIRSCHHORN: Saan maaari namin mahanap ito? Saan mo mahanap kung ano ang pahina ito na isinusumite sa? Ano linya ng code? Madla: ang pagkilos na Form. Jason HIRSCHHORN: Mismong. Action. Kaya ito na isinusumite sa pahina ng paghahanap. Backslash paghahanap. Kaya iyon mismo kanan. Ano paraan? Madla: Kumuha. Jason HIRSCHHORN: Kumuha. Mismong. Kaya basahin namin ito. Ito ay magiging isang form. Ikaw ay akmang-akma. Dalawang bagay sa form, ang pamagat ng pahina at ang tuktok ay magiging Google. Kaya narito ang dalawang tanong na dapat mong makasagot tungkol sa pahinang ito. Kung ang HTML naninirahan sa website na ito at input ng user ang bug sa ang teksto na ito field dito mismo, kung ano ang URL magpapakita gumagamit ang mahanap ang kanyang sarili sa pagsusumite ng form? Kaya mayroon kaming ito dito mismo. Pupunta ako upang bumalik sa ang pahinang ito, bagaman. Kukunin ko magsulat up ito sa unang bahagi. Maaari ba lahat ng tao makita sa paglipas dito? OK, Mario, sa tingin mo alam? Ano pahina? Madla: Backslash paghahanap. Jason HIRSCHHORN: pupuntahan ko upang ilipat pababa dito. OK, backslash tanong sa paghahanap mark q ay katumbas ng bug. Kahit sino ay may iba't ibang mga mungkahi? Oo. Kaya paano ko makuha namin ito? Well, nakakita kami na ito bago. At ikaw ay dumating up gamit ito nang mas maaga. Ikaw ay karapatan, Noah, na ang pagkilos ng pagsasabi sa amin kung ano ang page kami ng pagpunta sa. Alam din natin kung ano ang pamamaraan. Kami ay kasalukuyang get. At ang mga pagkakaiba sa pagitan ng get at post ay na makakuha ng ipinapakita sa URL at mag-post ang hindi. Kaya kung na sinulat ko ang post doon sa pamamaraan, ano ang magiging naiiba? Madla: gagawin Ito lamang maging slash paghahanap. Jason HIRSCHHORN: gagawin Ito lamang ma-iwa paghahanap. Walang bagay sa ibabaw dito ang mangyayari. Ngunit dahil ito ay isang makakuha, ang URL ay ipinapakita bilang mga sumusunod. Unang makita namin ang isang tandang pananong at makikita natin ang pangalan at ang halaga. Sabihin nating nagkaroon ng isa sa iba pang mga patlang ng teksto at Nagbigay ako ng ito ng isang pangalan ng r at i-input ng isang halaga, uod. Ano ang gusto ito ngayon hitsura? Isa pang field ng teksto ko, bigyan ako ng pangalanan ng r at isang halaga ng uod. Madla: Pagkatapos bar ang kailangan mong ang ampersand uod. Jason HIRSCHHORN: Iyon hindi ampersand. Madla: O kaya kahit anong lamang ang at simbolo. Jason HIRSCHHORN: Oo, hindi. Ikaw ay karapatan, ako ay mali. Iyon ay tulad ng isang g. Madla: uod. r ay katumbas ng uod, paumanhin. Jason HIRSCHHORN: Mayroon bang walang r sa doon? Madla: Hindi, mayroong. Jason HIRSCHHORN: Susubukan naming makipag-usap tungkol na pagkatapos ng klase. Iyan ay akmang-akma. Kaya ang at ay tama. At pagkatapos ay maaari kang magkaroon ng maraming sa mga ito, at sila ay lahat ay concatenated kasama na at. Kaya iyon mismo kanan. Mayroong isa pang tanong. Sketch DOM ang HTML ni, simula may dokumento. Maaari naming gawin iyon sa loob ng dalawang minuto. Gagawin namin ang ito sa paglipas dito. Kukunin ko bumalik sa ang webpage na ito. OK, simulan namin gamit ang dokumento. Ano ang susunod? Kaya kapag binabasa mo sa pamamagitan ng - Madla: HTML. Jason HIRSCHHORN: HTML ang susunod. Kami ay pagpunta sa pumunta sa pamamagitan ng tag na tag. Ano pagkaraan ng HTML? Madla: Head. Jason HIRSCHHORN: Head. Ano pagkatapos ng ulo? Madla: Pamagat. Jason HIRSCHHORN: Pamagat. At may isang halaga ng Google pamagat, ngunit hindi ako pagpunta sa isulat na sa para sa ngayon. OK, kung saan ang katawan pumunta? Madla: darating rin off ng HTML. Jason HIRSCHHORN: Mismong. Pagdating off ng Katawan dito. Ba ang lahat ng tao makita kung bakit iyon ang kaso? Dapat marahil magagawang upang malaman mo ito out, masyadong, kahit na ako ay walang ito maganda indentation. Indentation Ang uri ng mga nagbibigay ito ang layo, ngunit maaari mong makita na ang ulo-tag ay Isinara, na nangangahulugan na namin marahil Hindi maaaring bumaba dito. Kailangan namin upang bumalik up sa kahit anong ay bago mismo ang ulo tag, o sa ilalim na. Humihingi kami ng kahit na sa head tag. At sa ilalim ng katawan napupunta form. Sa ilalim ng form na ito, mayroong dalawang input. OK. Iyon lang ang Nakatanggap ako. Pagsusulit 1 ay bukas. Ako kaya nasasabik para sa iyo guys. Ito ay pagpunta sa maging isang sabog. Kung mayroon kang - Madla: [palakpakan] Jason HIRSCHHORN: Oh itigil, ihinto. Subalit hindi, ako kidding. Kung mayroon kang anumang mga katanungan, i-right pagkatapos seksyon, magpapadala ako nasa labas. Kung mayroon kang anumang mga katanungan ngayong gabi, huwag mag-atubiling tumawag, email, gchat, kalapati sa akin carrier. Good luck bukas. Magkaroon ng isang kahanga-hangang Thanksgiving break na, kung hindi ko kayo makita bago pagkatapos. At ako makakakita ka pagkatapos ng Thanksgiving sa Martes para sa aming mga panghuling party na seksyon kailanman. Madla: [hindi marinig]. Jason HIRSCHHORN: Mahusay. OK, kukunin ko na nakikita mo guys susunod linggo, o sa loob ng dalawang linggo. At good luck bukas.