1 00:00:00,000 --> 00:00:08,090 2 00:00:08,090 --> 00:00:09,810 >> JASON Hirschhorn: Benvingut, tothom, fins a la setmana 10. 3 00:00:09,810 --> 00:00:15,130 Aquesta és una setmana emocionant perquè demà és la prova 1, que aconseguirem 4 00:00:15,130 --> 00:00:16,400 a en un segon. 5 00:00:16,400 --> 00:00:21,770 Avui a la secció, anirem més d'alguns recursos per a la prova, i 6 00:00:21,770 --> 00:00:24,890 a continuació, vaig a respondre a totes i cadascuna preguntes que vostès tenen. 7 00:00:24,890 --> 00:00:27,880 I finalment acabarem amb alguns problemes de pràctica. 8 00:00:27,880 --> 00:00:30,940 >> Podem passar tota la secció respondre a les preguntes. 9 00:00:30,940 --> 00:00:33,240 Podem passar tota la secció passant pels problemes de la pràctica. 10 00:00:33,240 --> 00:00:36,890 No fem més que expandir per omplir el l'espai i el temps que tenim. 11 00:00:36,890 --> 00:00:40,590 >> Així que vaig posar aquesta llista cada setmana, però és particularment important aquesta setmana. 12 00:00:40,590 --> 00:00:44,980 Per a l'estudi, si no ho ha començat ja, oh noi. 13 00:00:44,980 --> 00:00:46,400 Però és d'esperar que hagi començat ja. 14 00:00:46,400 --> 00:00:50,710 I vostè va a través dels materials i els recursos llistats aquí. 15 00:00:50,710 --> 00:00:54,300 Jo recomanaria altament un nombre d'aquests. 16 00:00:54,300 --> 00:00:58,780 >> En particular, els apunts de classe són molt important i útil. 17 00:00:58,780 --> 00:01:02,880 El study.cs50.net proporciona una gran introducció a una gran quantitat de 18 00:01:02,880 --> 00:01:04,250 els temes que cobreixen. 19 00:01:04,250 --> 00:01:07,810 També té un gran practicar problemes. 20 00:01:07,810 --> 00:01:11,260 I després, Google és genial, també. 21 00:01:11,260 --> 00:01:12,360 No sé el que haurà d'utilitzar per. 22 00:01:12,360 --> 00:01:14,090 Però utilitzar Google, també. 23 00:01:14,090 --> 00:01:16,680 >> Arribar a mi si vostè té qualsevol preguntes, comentaris o inquietuds. 24 00:01:16,680 --> 00:01:19,420 Mirar per sobre de la sessió de revisió diapositives de la nit anterior. 25 00:01:19,420 --> 00:01:21,540 O, si vostè té algun temps, veure el vídeo. 26 00:01:21,540 --> 00:01:24,930 Proporcionen una gran quantitat d'útils material i informació. 27 00:01:24,930 --> 00:01:29,730 I tractar de cobrir si no totes, moltes de els temes que hem cobert i que vostè 28 00:01:29,730 --> 00:01:32,610 podria veure en el qüestionari. 29 00:01:32,610 --> 00:01:35,590 >> Parlant de la prova, que serà demà. 30 00:01:35,590 --> 00:01:37,260 És 75 minuts. 31 00:01:37,260 --> 00:01:40,740 Molts de vostès ho estan prenent en 1 en punt, i alguns de vostès són 32 00:01:40,740 --> 00:01:42,740 portant a les 5:30. 33 00:01:42,740 --> 00:01:45,300 De moment vostè està prenent i la ubicació que està prenent, assegureu-vos 34 00:01:45,300 --> 00:01:49,400 comproves el document a la pàgina principal CS50.net. 35 00:01:49,400 --> 00:01:54,340 >> Recordi que vostè pot aconseguir un d'8 1/2 en un 11 per full per portar amb vostè. 36 00:01:54,340 --> 00:01:57,310 Sovint, la gent no utilitza aquest full en absolut durant la prova. 37 00:01:57,310 --> 00:01:59,740 Però, en realitat, és un increïblement eina d'estudi útil. 38 00:01:59,740 --> 00:02:04,370 Així armant aquest full hi Vaig passar probablement tres o quatre hores 39 00:02:04,370 --> 00:02:07,110 fent quan estava estudiant per CS50, i que era sens dubte el més útil 40 00:02:07,110 --> 00:02:08,740 manera que pogués estudiar per a l'examen. 41 00:02:08,740 --> 00:02:10,949 Així que fins i tot si vostè té alguna altra de les persones guies d'estudi a la vista i 42 00:02:10,949 --> 00:02:14,740 utilitzar com a referències, li recomano fer la seva pròpia guia d'estudi, posant 43 00:02:14,740 --> 00:02:15,490 aquestes coses juntes. 44 00:02:15,490 --> 00:02:17,335 Això realment ajuda a aprendre tot el material. 45 00:02:17,335 --> 00:02:20,270 46 00:02:20,270 --> 00:02:24,810 >> Finalment, però no menys important en aquesta secció, després de la prova de demà hi ha una 47 00:02:24,810 --> 00:02:25,940 més conferències - 48 00:02:25,940 --> 00:02:26,960 dilluns que ve. 49 00:02:26,960 --> 00:02:30,430 Hi ha una secció més, no ve Dimarts abans d'Acció de Gràcies, però el 50 00:02:30,430 --> 00:02:31,630 Dimarts després d'això. 51 00:02:31,630 --> 00:02:36,600 Ens reunirem junts per a una final adéu partit i també fer una mica de fresc 52 00:02:36,600 --> 00:02:41,530 coses per aconseguir que vostès s'entusiasmin amb la altres estudis en ciències de la computació. 53 00:02:41,530 --> 00:02:45,040 >> Hi ha un projecte més, un més just, un més hackathon. 54 00:02:45,040 --> 00:02:47,900 Estem arribant al final de CS50, que és emocionant - 55 00:02:47,900 --> 00:02:50,950 sinó també, si vostè és com la jo, una mica trist. 56 00:02:50,950 --> 00:02:53,950 Abans de passar, algú té alguna pregunta sobre el que 57 00:02:53,950 --> 00:02:55,200 que hem cobert fins ara? 58 00:02:55,200 --> 00:03:02,760 59 00:03:02,760 --> 00:03:08,730 >> OK, bé anem a repassar algunes de les preguntes que té per a la prova i temes 60 00:03:08,730 --> 00:03:09,960 podríem cobrir. 61 00:03:09,960 --> 00:03:11,540 Així que aquesta és una llista que he creat. 62 00:03:11,540 --> 00:03:15,500 No és de cap manera exhaustiva, però esperem que refrescar l'memòria si 63 00:03:15,500 --> 00:03:20,310 tenir algunes preguntes sobre qualsevol d'aquests temes, o si té preguntes sobre 64 00:03:20,310 --> 00:03:23,260 problemes de la pràctica de proves en els últims anys. 65 00:03:23,260 --> 00:03:27,470 >> Vaig tenir un parell de preguntes que van ser vaig enviar un correu electrònic a mi, però vull mantenir a ratlla 66 00:03:27,470 --> 00:03:29,490 en què per un segon. 67 00:03:29,490 --> 00:03:34,570 Algú té alguna pregunta, problemes que no entenien, 68 00:03:34,570 --> 00:03:38,100 respostes que no comprenien perquè puguem començar? 69 00:03:38,100 --> 00:03:39,520 Avi. 70 00:03:39,520 --> 00:03:41,585 >> AUDIÈNCIA: Pots anar més DOM i Ajax realment ràpid? 71 00:03:41,585 --> 00:03:46,540 Igual que, el que necessita saber o haurien entendre sobre ells? 72 00:03:46,540 --> 00:03:49,750 >> JASON Hirschhorn: Vaig a contestar en general aquesta qüestió de, què faig jo 73 00:03:49,750 --> 00:03:52,100 necessita saber sobre determinat tema x? 74 00:03:52,100 --> 00:03:55,280 Perquè tinc la sensació que molts de vostès em van a demanar que, o estan 75 00:03:55,280 --> 00:03:56,570 curiositat sobre això. 76 00:03:56,570 --> 00:04:02,920 Així que en la mesura que el tema era cobert de conferència, o secció, o en 77 00:04:02,920 --> 00:04:06,460 study.cs50.net, un conjunt de problemes, que ha d'estar familiaritzat amb ell. 78 00:04:06,460 --> 00:04:10,580 >> Així que vostè no necessita saber tots els tipus de l'etiqueta que està disponible en HTML o 79 00:04:10,580 --> 00:04:15,950 cada tipus d'atribut o propietat vostè pot donar alguna cosa en CSS. 80 00:04:15,950 --> 00:04:20,204 Però si ho has vist en un exemple de conferència, si ho vas veure en un problema 81 00:04:20,204 --> 00:04:23,290 conjunt, probablement hauria d'estar familiaritzat amb ell, sobretot les coses que vesteix 82 00:04:23,290 --> 00:04:24,260 en conferència. 83 00:04:24,260 --> 00:04:28,510 Així que hem discutit el document model d'objectes una mica en 84 00:04:28,510 --> 00:04:30,530 secció, més encara en conferència. 85 00:04:30,530 --> 00:04:32,990 Vostè ha d'estar familiaritzat amb que gran part d'ella. 86 00:04:32,990 --> 00:04:34,750 >> I vostè ha d'estar familiaritzat amb Ajax en la mateixa mesura. 87 00:04:34,750 --> 00:04:38,105 Mai vam veure increïblement avançat o exemples complicats d'Ajax, per la qual 88 00:04:38,105 --> 00:04:40,920 vostè no va a demanar fer alguna cosa increïblement complicat. 89 00:04:40,920 --> 00:04:45,180 Però se li pot demanar, com puc fer una trucada Ajax fent servir jQuery? 90 00:04:45,180 --> 00:04:47,350 Que és una cosa que has vist un nombre de vegades abans, tant en la 91 00:04:47,350 --> 00:04:51,370 Sessió de Revisió i en la conferència, i és només de dues línies espanyoles de codi. 92 00:04:51,370 --> 00:04:53,190 >> Així que això és una cosa que hauria de estar familiaritzat. 93 00:04:53,190 --> 00:04:55,550 Però una vegada més, per a tots aquests temes, si vostè ho ha vist 94 00:04:55,550 --> 00:04:59,220 abans, és un joc just. 95 00:04:59,220 --> 00:05:01,540 I podríem demanar-li que - òbviament, estem anem a demanar que t'ho 96 00:05:01,540 --> 00:05:02,340 no han vist abans. 97 00:05:02,340 --> 00:05:04,240 Codificació de quelcom que no té vist abans. 98 00:05:04,240 --> 00:05:06,570 La qual cosa no vol dir que vostè no té vist les eines per resoldre 99 00:05:06,570 --> 00:05:08,120 aquest problema abans. 100 00:05:08,120 --> 00:05:09,200 Vostè ha vist aquestes eines. 101 00:05:09,200 --> 00:05:11,160 >> Per exemple, en la prova 1, si que necessita per codificar strlen. 102 00:05:11,160 --> 00:05:12,790 No hem codificat strlen abans. 103 00:05:12,790 --> 00:05:14,980 Però vostè sap com utilitzar un bucle for, vostè sap com utilitzar si les condicions. 104 00:05:14,980 --> 00:05:18,570 Vostè sap com escriure variables en C. Serà la mateixa cosa aquí. 105 00:05:18,570 --> 00:05:22,350 No va a demanar que faci res que no hagi vist abans, però 106 00:05:22,350 --> 00:05:25,150 és possible que se li demani que, igual que, ja alguna cosa junts d'una manera nova, o 107 00:05:25,150 --> 00:05:27,650 resoldre un tipus diferent de problema. 108 00:05:27,650 --> 00:05:30,830 >> Ho sentim, però això no era específica per al seu pregunta, però jo no puc respondre sobre 109 00:05:30,830 --> 00:05:34,390 cada tema el que fer o no necessita saber. 110 00:05:34,390 --> 00:05:36,830 Però també, ho sento, l'últim en això. 111 00:05:36,830 --> 00:05:42,900 Hem passat molt més temps en llistes d'enllaços que tenim a l'Ajax. 112 00:05:42,900 --> 00:05:46,160 No utilitzar Ajax en un conjunt de problemes. 113 00:05:46,160 --> 00:05:48,510 Una de les característiques centrals d'aquest problema d'ajust que hagi llistes d'enllaços. 114 00:05:48,510 --> 00:05:50,370 I ens vam passar un munt de temps en la conferència i la secció d'usar-lo. 115 00:05:50,370 --> 00:05:57,080 >> Així, les probabilitats són llista d'enllaços es plantejaran més sovint en el concurs de Ajax voluntat. 116 00:05:57,080 --> 00:06:00,390 O les preguntes que tenen a veure amb el vincle llista tindrà un valor de més punts. 117 00:06:00,390 --> 00:06:03,520 Així que sens dubte pot centrar-se i estret en les coses que són més 118 00:06:03,520 --> 00:06:06,720 probable pujar perquè tenim passat més temps en ells. 119 00:06:06,720 --> 00:06:08,700 >> Acceptar qualsevol altra pregunta? 120 00:06:08,700 --> 00:06:09,890 Sí 121 00:06:09,890 --> 00:06:13,660 >> AUDIÈNCIA: Podem anar sobre l'ús de funcions anònimes en JavaScript? 122 00:06:13,660 --> 00:06:17,140 Sóc un són poc confós sobre això. 123 00:06:17,140 --> 00:06:20,180 >> JASON Hirschhorn: Així que en JavaScript - 124 00:06:20,180 --> 00:06:24,400 Estic tractant de pensar com em podria escriure això en - 125 00:06:24,400 --> 00:06:27,590 així que anem a realment obren aquest codi. 126 00:06:27,590 --> 00:06:31,830 127 00:06:31,830 --> 00:06:36,030 Així que aquest és el codi que vam fer la setmana passada. 128 00:06:36,030 --> 00:06:41,400 I vostè ha vist això abans si estaven aquí a la secció de la setmana passada. 129 00:06:41,400 --> 00:06:43,180 O has vist alguna cosa similar a això abans. 130 00:06:43,180 --> 00:06:44,800 >> Però es pot veure en aquesta primera línia. 131 00:06:44,800 --> 00:06:46,950 Aquesta és la forma de començar - 132 00:06:46,950 --> 00:06:48,010 tothom ha vist això abans. 133 00:06:48,010 --> 00:06:51,930 Si vostè vol posar una mica de codi JavaScript, el poses dins d'aquest, en el supòsit 134 00:06:51,930 --> 00:06:53,520 està usant jQuery. 135 00:06:53,520 --> 00:06:56,940 Això és a dir, no fer res fins càrrega del document. 136 00:06:56,940 --> 00:06:59,940 >> I després, Curt, es veu aquí estem fent alguna cosa com això - 137 00:06:59,940 --> 00:07:02,560 funció parin obertes, tancades parin. 138 00:07:02,560 --> 00:07:05,250 Així que no estem donant aquest funcionar un nom. 139 00:07:05,250 --> 00:07:09,160 No definirem aquesta funció se suposa que executar i després 140 00:07:09,160 --> 00:07:10,830 anomenar un munt de vegades. 141 00:07:10,830 --> 00:07:15,140 Només estem dient aquest document ja pren una funció. 142 00:07:15,140 --> 00:07:16,690 Un parell de coses a fer. 143 00:07:16,690 --> 00:07:20,670 >> I no volem passar el temps donant-li un nom o guardar per 144 00:07:20,670 --> 00:07:21,650 perpetuïtat. 145 00:07:21,650 --> 00:07:24,150 Només volem fer algunes coses. 146 00:07:24,150 --> 00:07:27,500 Així que una funció anònima espècie que serveix propòsit. 147 00:07:27,500 --> 00:07:30,280 Quan vostè no va a utilitzar una cosa una i altra vegada, així que no cal 148 00:07:30,280 --> 00:07:32,420 per donar-li un nom - que acaba de que voleu utilitzar una vegada - 149 00:07:32,420 --> 00:07:36,720 vostè acaba de dir que la funció, per exemple, en aquest cas, i no ets més que 150 00:07:36,720 --> 00:07:38,280 la definició d'alguna cosa que vostè podria donar un nom. 151 00:07:38,280 --> 00:07:40,920 >> Igual, podríem tirar d'aquesta funció fora i donar-li un nom i després trucar a aquest 152 00:07:40,920 --> 00:07:41,760 funcionar aquí. 153 00:07:41,760 --> 00:07:44,270 Però nosaltres no necessitem perquè nosaltres no fem volen perdre el temps donant-li un nom o 154 00:07:44,270 --> 00:07:46,240 perdent alguna cosa en el nostre espai de nom. 155 00:07:46,240 --> 00:07:47,530 I veuràs que molt. 156 00:07:47,530 --> 00:07:52,810 Per exemple, veiem que molt en aquest codi, però vostè ha vist això abans, quan 157 00:07:52,810 --> 00:07:54,010 fer clic en alguna cosa - 158 00:07:54,010 --> 00:07:55,980 executar aquest tipus de codi. 159 00:07:55,980 --> 00:07:59,850 >> Podríem definir el codi que volem a córrer quan fem clic, en aquest cas, 160 00:07:59,850 --> 00:08:03,450 aquest ID, com una funció separada i després executar aquesta funció. 161 00:08:03,450 --> 00:08:07,940 Però en aquest cas, només estem saltant aquest pas i portar-los a aquí i 162 00:08:07,940 --> 00:08:10,340 només per definir tot que volem que passi i 163 00:08:10,340 --> 00:08:12,450 no donar-li un nom. 164 00:08:12,450 --> 00:08:15,550 Això encara podria no tenir respost a la seva pregunta. 165 00:08:15,550 --> 00:08:15,960 >> AUDIÈNCIA: No, ho fa. 166 00:08:15,960 --> 00:08:18,290 Vull dir, suposo que simplement no se sap molt entenc per què seria una 167 00:08:18,290 --> 00:08:20,800 funcionar en absolut, però. 168 00:08:20,800 --> 00:08:21,590 Perquè en realitat no és la que crida. 169 00:08:21,590 --> 00:08:23,170 En realitat, no té nom. 170 00:08:23,170 --> 00:08:25,510 >> JASON Hirschhorn: És una funció en el sentit que és una sèrie de passos, 171 00:08:25,510 --> 00:08:28,460 igual que ho va posar en una funció. 172 00:08:28,460 --> 00:08:29,970 I llavors és per això que anomenem és funció anònima. 173 00:08:29,970 --> 00:08:30,815 No anem a donar-li un nom. 174 00:08:30,815 --> 00:08:33,159 No perdrem intentant donar-li un nom, però que vam poder. 175 00:08:33,159 --> 00:08:34,890 >> Les funcions anònimes, que sempre es pot donar un nom. 176 00:08:34,890 --> 00:08:37,620 Així, per exemple, el codi aquí, podríem posar aquest codi dins d'un 177 00:08:37,620 --> 00:08:39,929 funció i després trucar aquesta funció aquí. 178 00:08:39,929 --> 00:08:41,600 En lloc d'això, diem, no anem a molestar amb això. 179 00:08:41,600 --> 00:08:44,390 Només anem a escriure tot aquí. 180 00:08:44,390 --> 00:08:49,840 >> És com si de vegades, quan estàs escrivint 04:00 bucle en C - nois 181 00:08:49,840 --> 00:08:51,630 han vist això abans - potser vostè està iteració a través d'un forloop 182 00:08:51,630 --> 00:08:53,090 en i és igual a 0. 183 00:08:53,090 --> 00:08:54,830 I és menys de strlen. 184 00:08:54,830 --> 00:08:59,520 O vostè va a través d'alguns matriu, pot guardar array 185 00:08:59,520 --> 00:09:01,580 índex i en alguna variable. 186 00:09:01,580 --> 00:09:02,830 I utilitza aquesta variable. 187 00:09:02,830 --> 00:09:06,550 Així que no cal tornar a escriure array suport d'i una i altra i una altra. 188 00:09:06,550 --> 00:09:08,160 >> I això és una cosa així com una variable fictícia. 189 00:09:08,160 --> 00:09:10,790 No està servint molt propòsit que no sigui Perquè el codi una mica més net 190 00:09:10,790 --> 00:09:12,120 i més fàcil de llegir. 191 00:09:12,120 --> 00:09:13,290 Funció similar aquí. 192 00:09:13,290 --> 00:09:15,665 Just fa una mica més fàcil, però funcionalment no hi ha diferència. 193 00:09:15,665 --> 00:09:18,620 194 00:09:18,620 --> 00:09:19,330 Respon això a la seva pregunta? 195 00:09:19,330 --> 00:09:19,970 >> AUDIÈNCIA: Si. 196 00:09:19,970 --> 00:09:20,720 >> JASON Hirschhorn: OK .. 197 00:09:20,720 --> 00:09:21,880 Mario? 198 00:09:21,880 --> 00:09:25,380 >> AUDIÈNCIA: Ahir sovint posen funció parèntesi esdeveniment. 199 00:09:25,380 --> 00:09:26,420 Això vol dir alguna cosa? 200 00:09:26,420 --> 00:09:30,500 O és per coses com que farien 201 00:09:30,500 --> 00:09:35,100 document.ready esdeveniment funció. 202 00:09:35,100 --> 00:09:37,130 >> JASON Hirschhorn: Hem vist això, i de nou, aquestes són coses petites que 203 00:09:37,130 --> 00:09:39,590 Probablement jo no vull passar massa temps en ell. 204 00:09:39,590 --> 00:09:43,200 Perquè a vegades no vull que la gent aconseguir espantat que no tenen 205 00:09:43,200 --> 00:09:44,220 sentit parlar d'aquestes coses tant. 206 00:09:44,220 --> 00:09:46,200 Però parlem una mica sobre controladors d'esdeveniments. 207 00:09:46,200 --> 00:09:50,360 Així que alguna cosa passa, i després aquesta funció s'executa. 208 00:09:50,360 --> 00:09:53,210 I llavors nosaltres també volem saber alguns detalls sobre el que 209 00:09:53,210 --> 00:09:54,450 passat en aquest cas. 210 00:09:54,450 --> 00:09:55,730 >> Així que pensin en conjunt de problemes 4. 211 00:09:55,730 --> 00:09:58,390 Aquesta és probablement la forma més fàcil de entendre que en esclat. 212 00:09:58,390 --> 00:09:59,740 Hi havia una mica de codi - 213 00:09:59,740 --> 00:10:01,980 com un esdeveniment anava a passar, però esdeveniment pot significar moltes coses. 214 00:10:01,980 --> 00:10:06,240 Si podria significar el ratolí es fa clic, es podria significar colpejar una tecla de fletxa, et 215 00:10:06,240 --> 00:10:07,190 cetera, et cetera. 216 00:10:07,190 --> 00:10:09,800 >> Però tot es guarda en aquesta genèrica El va anomenar esdeveniments. 217 00:10:09,800 --> 00:10:12,340 I llavors podem dir, és aquest esdeveniment aquesta cosa? 218 00:10:12,340 --> 00:10:13,640 O és aquest esdeveniment aquesta cosa? 219 00:10:13,640 --> 00:10:15,500 O bé, quina mena de passat amb aquest esdeveniment? 220 00:10:15,500 --> 00:10:18,660 Així que per això es crea aquesta variable són per salvar aquesta informació addicional 221 00:10:18,660 --> 00:10:21,420 sobre què és exactament el que va passar aquesta vostè va a voler 222 00:10:21,420 --> 00:10:24,840 utilitzar en la funció. 223 00:10:24,840 --> 00:10:28,200 Però, de nou, això és probablement un dels coses menys importants que ser Super 224 00:10:28,200 --> 00:10:29,450 familiaritzat. 225 00:10:29,450 --> 00:10:31,470 226 00:10:31,470 --> 00:10:36,110 >> Bé, quines altres preguntes tenen les persones tingut, o blocs de ensopegada que han 227 00:10:36,110 --> 00:10:37,360 trobat durant la revisió? 228 00:10:37,360 --> 00:10:41,260 229 00:10:41,260 --> 00:10:42,510 Anem a tornar a aquesta llista. 230 00:10:42,510 --> 00:10:52,550 231 00:10:52,550 --> 00:10:56,080 Què passa durant exàmens de pràctica, si la gent ha pres les ja? 232 00:10:56,080 --> 00:10:59,110 Quins van ser alguns dels problemes que disparat vostès dalt? 233 00:10:59,110 --> 00:11:08,970 234 00:11:08,970 --> 00:11:12,720 Sé que és un fet que l'any passat qüestionari va ser molt dur. 235 00:11:12,720 --> 00:11:15,670 >> AUDIÈNCIA: Pot explicar què un atac d'injecció SQL és? 236 00:11:15,670 --> 00:11:18,970 >> JASON Hirschhorn: OK, molt bé. 237 00:11:18,970 --> 00:11:20,440 Així que parlem d'això una mica. 238 00:11:20,440 --> 00:11:22,050 Hi ha una conferència sobre la seguretat. 239 00:11:22,050 --> 00:11:25,670 I de nou, com he esmentat abans, aquest és un part. 240 00:11:25,670 --> 00:11:30,010 Però se li frustrat en el qüestionari quan es llegeix un petit de dos punts 241 00:11:30,010 --> 00:11:33,040 pregunta, i vostè és com, quan Alguna vegada vas aprendre això? 242 00:11:33,040 --> 00:11:35,560 >> Totes aquestes coses en aquestes conferències que no pensaves que necessitaves 243 00:11:35,560 --> 00:11:38,290 sap, o vostè podria passar per alt, perquè que no tenien a veure amb la 244 00:11:38,290 --> 00:11:41,860 conjunt de problemes, els que probablement pujar de nou al concurs. 245 00:11:41,860 --> 00:11:45,030 Així que, coses divertides, fresc que acaba de David va pensar que estava dient per tu 246 00:11:45,030 --> 00:11:49,070 gaudir, que t'estava dient per tu gaudir i fer que acaba de ser super 247 00:11:49,070 --> 00:11:50,550 entusiasmats per aprendre tot el que cal aprendre 248 00:11:50,550 --> 00:11:51,670 sobre la informàtica. 249 00:11:51,670 --> 00:11:53,680 Aquestes coses també vénen cap amunt en proves. 250 00:11:53,680 --> 00:11:56,440 Per tant, fins i tot aquestes petites coses que no ho van fer es relacionen directament amb el seu problema 251 00:11:56,440 --> 00:11:59,630 establir, com vostès estan familiaritzats amb d' Qüestionari 0, probablement plantejaran. 252 00:11:59,630 --> 00:12:01,530 I aquest és un bon exemple d'alguna cosa. 253 00:12:01,530 --> 00:12:10,140 >> Així que els atacs a la injecció de SQL és quan es obtenir alguna informació de l'usuari i 254 00:12:10,140 --> 00:12:15,090 voleu inserir en una taula utilitzant una inserció de SQL declaració, però 255 00:12:15,090 --> 00:12:17,680 no desinfectar l'entrada abans d'hora. 256 00:12:17,680 --> 00:12:21,560 Així que, òbviament hem vist Sentències SQL. 257 00:12:21,560 --> 00:12:22,810 Vaig a obrir-me - 258 00:12:22,810 --> 00:12:25,590 259 00:12:25,590 --> 00:12:26,840 anirem - 260 00:12:26,840 --> 00:12:31,290 261 00:12:31,290 --> 00:12:31,960 anirem a la revisió - 262 00:12:31,960 --> 00:12:35,180 Crec, que el va cobrir? 263 00:12:35,180 --> 00:12:36,350 Crec Samala va fer. 264 00:12:36,350 --> 00:12:39,292 Perquè puguem arribar - 265 00:12:39,292 --> 00:12:41,270 >> AUDIÈNCIA: On vas trobar això? 266 00:12:41,270 --> 00:12:44,990 >> JASON Hirschhorn: Així que si vas a CS50.net, proves, i llavors es pot 267 00:12:44,990 --> 00:12:47,170 desplaçar-se una i obtenir diapositives de la sessió de revisió. 268 00:12:47,170 --> 00:12:49,860 Però vostè pot veure que això és un bon exemple d'un atac d'injecció SQL. 269 00:12:49,860 --> 00:12:53,690 Prenem una mica d'informació de l'usuari i ens donen una cadena, i després 270 00:12:53,690 --> 00:12:55,780 voleu inserir aquesta cadena en una base de dades. 271 00:12:55,780 --> 00:12:59,780 Generalment anem a desinfectar que d'entrada, el que significa que hi ha alguns 272 00:12:59,780 --> 00:13:01,050 personatges que són perillosos. 273 00:13:01,050 --> 00:13:04,000 >> Per exemple, en cadenes SQL, aquestes cites - 274 00:13:04,000 --> 00:13:05,000 cometes simples o dobles - 275 00:13:05,000 --> 00:13:05,620 significar alguna cosa. 276 00:13:05,620 --> 00:13:08,380 Signifiquen acaba aquesta cadena aquí. 277 00:13:08,380 --> 00:13:13,090 I pel que si l'usuari li dóna un sol o una doble cita, que podria ser 278 00:13:13,090 --> 00:13:18,970 intentant fer ensopegar a la seva consulta de SQL i inserir algunes coses dolentes en ella. 279 00:13:18,970 --> 00:13:23,130 I si ho fan, podrien guanyar el control de la base de dades o fer algun 280 00:13:23,130 --> 00:13:24,760 coses que no vol que facin. 281 00:13:24,760 --> 00:13:28,300 >> Així que per això cada vegada que prenem SQL consultes, desinfectar l'entrada abans de 282 00:13:28,300 --> 00:13:31,090 posar a la base de dades, que significa que escapen als personatges. 283 00:13:31,090 --> 00:13:32,590 Parlarem d'això en un segon. 284 00:13:32,590 --> 00:13:35,820 Però conte llarg, una injecció SQL atac és si vostè no fa això - 285 00:13:35,820 --> 00:13:39,760 si vostè no pren la cura de l'entrada que li van donar abans de posar el seu 286 00:13:39,760 --> 00:13:46,830 base de dades, que poden, com veieu a sota aquí, feu una consulta que, de fet - 287 00:13:46,830 --> 00:13:52,470 que posen en el seu codi aquí baix i aquesta línia de selecció aquí baix seleccionarà 288 00:13:52,470 --> 00:13:56,360 tot, des de la taula sense importar del que se li dóna la contrasenya. 289 00:13:56,360 --> 00:13:58,960 Perquè vostè té la o 1 és igual a 1. 290 00:13:58,960 --> 00:14:02,750 >> Així que és bàsicament, conte llarg, una manera de fer-se càrrec de la base de dades. 291 00:14:02,750 --> 00:14:07,570 La pregunta, llavors, per a vostès, és on en p sets 7 vas fer desinfecti totes 292 00:14:07,570 --> 00:14:10,010 les entrades a les consultes SQL? 293 00:14:10,010 --> 00:14:11,230 On va passar aquest pas? 294 00:14:11,230 --> 00:14:14,150 On s'evita la injecció de SQL els atacs dels que passa a p fixi 7? 295 00:14:14,150 --> 00:14:20,100 296 00:14:20,100 --> 00:14:20,490 Sí 297 00:14:20,490 --> 00:14:21,870 >> AUDIÈNCIA: Cripta? 298 00:14:21,870 --> 00:14:23,120 >> JASON Hirschhorn: Pel que no cripta. 299 00:14:23,120 --> 00:14:52,360 300 00:14:52,360 --> 00:14:55,380 No vam fer el fa per a aquest problema particular ajustat, però passa 301 00:14:55,380 --> 00:14:58,190 en la funció de consulta. 302 00:14:58,190 --> 00:15:00,930 En realitat vaig escriure per a tu, i ens ocupem de la 303 00:15:00,930 --> 00:15:03,040 desinfecció entrades per a vostè. 304 00:15:03,040 --> 00:15:07,790 Però en els últims anys, els estudiants han tingut per escriure les entrades pel seu compte. 305 00:15:07,790 --> 00:15:10,020 En conjunt p 7, que molts de vostès - 306 00:15:10,020 --> 00:15:11,270 m'ho dius a mi obro un altre arxiu. 307 00:15:11,270 --> 00:15:18,530 308 00:15:18,530 --> 00:15:22,590 >> Llavors et donaràs compte de per aquí un munt de persones, en conjunt de problemes 7, no van cridar 309 00:15:22,590 --> 00:15:25,240 aquesta funció en cadenes. 310 00:15:25,240 --> 00:15:27,880 Aquesta funció, htmlspecialchars, nou - 311 00:15:27,880 --> 00:15:31,410 aquesta cadena podria tenir algunes coses que en HTML significa alguna cosa més. 312 00:15:31,410 --> 00:15:36,160 Igual que un aparell ortopèdic, un quadrat, o un angle Suport de dir alguna cosa en HTML. 313 00:15:36,160 --> 00:15:38,980 >> I així, si imprimeix que a la pantalla o si vostè acaba de prendre això i 314 00:15:38,980 --> 00:15:42,260 imprimir que anés a HTML, que el poder fer alguna cosa que no esperes. 315 00:15:42,260 --> 00:15:45,180 Així htmlspecialchars va sobre tots aquells caràcters que tenen especial 316 00:15:45,180 --> 00:15:47,030 reunions i se'ls escapa. 317 00:15:47,030 --> 00:15:51,450 Pel que s'imprimeix com a text vostè vol veure, en lloc de 318 00:15:51,450 --> 00:15:53,280 arruïnant la seva HTML. 319 00:15:53,280 --> 00:15:55,040 Cridem a aquesta funció en la capçalera. 320 00:15:55,040 --> 00:15:57,390 I un munt de gent es va oblidar de cridar a aquesta funció en la 321 00:15:57,390 --> 00:15:58,700 codi que estaves escrivint. 322 00:15:58,700 --> 00:16:03,970 >> Així, per exemple, si un nom de valors va tenir un claudàtor angular en ell i se li va oblidar 323 00:16:03,970 --> 00:16:06,675 cridar a aquesta funció, que l'angle suport podria haver llançat del 324 00:16:06,675 --> 00:16:08,250 seva HTML semblava. 325 00:16:08,250 --> 00:16:11,810 Però cridar a aquesta funció s'escaparà que pel que realment mostri com 326 00:16:11,810 --> 00:16:15,870 suport en angle i no llençar fora del seu codi HTML. 327 00:16:15,870 --> 00:16:18,760 >> La mateixa raó per la qual hem vist, de vegades, ratlles verticals abans de les cometes dobles en una 328 00:16:18,760 --> 00:16:22,310 línia printf perquè no volem que el cometes dobles per la corda. 329 00:16:22,310 --> 00:16:24,050 Volem imprimir a la pantalla. 330 00:16:24,050 --> 00:16:26,920 Així que tot això és la mateixa idea. 331 00:16:26,920 --> 00:16:28,260 Respon això a la seva pregunta? 332 00:16:28,260 --> 00:16:31,529 333 00:16:31,529 --> 00:16:33,870 >> AUDIÈNCIA: Més o menys. 334 00:16:33,870 --> 00:16:35,300 >> JASON Hirschhorn: Té vostè tenir un seguiment? 335 00:16:35,300 --> 00:16:43,252 >> AUDIÈNCIA: Crec que la injecció de SQL atac té a veure amb això? 336 00:16:43,252 --> 00:16:45,720 No entenc com Els dos estan relacionats. 337 00:16:45,720 --> 00:16:47,610 Per què faries les specialChars? 338 00:16:47,610 --> 00:16:51,200 >> JASON Hirschhorn: OK, així que l'SQL atac d'injecció és quan s'injecta 339 00:16:51,200 --> 00:16:59,180 algunes cadenes maliciosos en algú de programa, i que només prenen i executen 340 00:16:59,180 --> 00:17:01,230 la consulta SQL amb una cadena que els va donar. 341 00:17:01,230 --> 00:17:04,220 Com es pot veure aquí baix, que podria ser problemàtic. 342 00:17:04,220 --> 00:17:07,480 Així que la forma es preveu en contra que es vostè pren la seva cadena que donen 343 00:17:07,480 --> 00:17:09,220 vostè - de manera que aquesta cadena aquí - 344 00:17:09,220 --> 00:17:11,240 i desinfectar. 345 00:17:11,240 --> 00:17:14,305 Vostè escapar de totes les coses que són potencialment problemàtic. 346 00:17:14,305 --> 00:17:18,626 Així que no siguin interpretades com una cosa això significa alguna cosa. 347 00:17:18,626 --> 00:17:23,390 >> I un exemple que amb HTML és aquesta funció. 348 00:17:23,390 --> 00:17:26,060 Així que és la mateixa idea aquí. 349 00:17:26,060 --> 00:17:27,579 I m'estava mostrant que una altra exemples de quan has 350 00:17:27,579 --> 00:17:29,030 vist aquesta idea abans. 351 00:17:29,030 --> 00:17:33,913 D'escapar de l'entrada de l'usuari abans d'imprimir a terme a una pantalla o el posi 352 00:17:33,913 --> 00:17:36,782 dins d'una sentència SQL. 353 00:17:36,782 --> 00:17:40,790 >> AUDIÈNCIA: Així que en aquest cas, l'usuari està jugant amb el programador. 354 00:17:40,790 --> 00:17:41,240 >> JASON Hirschhorn: Si. 355 00:17:41,240 --> 00:17:44,800 Amb tots aquests atacs a la seguretat, això sempre és generalment l'usuari, o 356 00:17:44,800 --> 00:17:47,470 algú està intentant desastre amb vostè, el programador. 357 00:17:47,470 --> 00:17:51,038 I aquestes són formes en què poden prevenir en contra d'ells. 358 00:17:51,038 --> 00:17:54,280 >> AUDIÈNCIA: Així que tinc una pregunta sobre les funcions hash. 359 00:17:54,280 --> 00:17:59,340 En la prova 1 a partir del 2011, hi ha dues preguntes sobre hashes d'un sol costat. 360 00:17:59,340 --> 00:18:02,540 I m'estava preguntant el que això significava. 361 00:18:02,540 --> 00:18:03,660 >> JASON Hirschhorn: OK, el que prova? 362 00:18:03,660 --> 00:18:03,770 2011? 363 00:18:03,770 --> 00:18:04,705 >> AUDIÈNCIA: Si. 364 00:18:04,705 --> 00:18:06,720 >> AUDIÈNCIA: Qüestionari 1? 365 00:18:06,720 --> 00:18:08,620 >> AUDIÈNCIA: [inaudible]. 366 00:18:08,620 --> 00:18:09,940 Això és com hash d'una contrasenya. 367 00:18:09,940 --> 00:18:12,220 Això no és posar les coses - 368 00:18:12,220 --> 00:18:13,440 >> JASON Hirschhorn: En quina pàgina va ser? 369 00:18:13,440 --> 00:18:15,720 >> AUDIÈNCIA: Crec que va ser 9 o 10, o tots dos. 370 00:18:15,720 --> 00:18:16,720 >> JASON Hirschhorn: Molt bé, seguir endavant, Curt. 371 00:18:16,720 --> 00:18:17,780 Pot contestar mentre busquem. 372 00:18:17,780 --> 00:18:19,540 >> AUDIÈNCIA: Crec que està parlant sobre hash d'una contrasenya. 373 00:18:19,540 --> 00:18:24,430 Igual que, quan algú entra en una contrasenya, el converteixes en alguna cosa encriptat. 374 00:18:24,430 --> 00:18:27,395 Aquest és el hash de la contrasenya, que és diferent d'una funció hash que 375 00:18:27,395 --> 00:18:30,900 posa alguna cosa en una taula hash. 376 00:18:30,900 --> 00:18:31,610 >> JASON Hirschhorn: Vegem. 377 00:18:31,610 --> 00:18:33,930 Deixa treure el que ells donar com a resposta. 378 00:18:33,930 --> 00:18:35,440 I després anem a caminar a través d'ell. 379 00:18:35,440 --> 00:18:42,430 380 00:18:42,430 --> 00:18:45,400 >> Així Curt li va donar un gran exemple d'un hash d'un sol sentit. 381 00:18:45,400 --> 00:18:48,800 Quan ens hem vist abans, ens prendre la contrasenya i activar - 382 00:18:48,800 --> 00:18:53,040 recorda, en conjunt p 7, algú podria tenir una contrasenya que és només una contrasenya, 383 00:18:53,040 --> 00:18:55,300 però després aquest es xifra en alguna cosa realment llarg. 384 00:18:55,300 --> 00:18:59,830 El hash d'un sol sentit vol dir que és molt fàcil per passar d'una manera a un altre, però 385 00:18:59,830 --> 00:19:02,800 és molt difícil passar de l'altre camí de tornada. 386 00:19:02,800 --> 00:19:05,230 >> I perquè sàpigues, quan marxàvem contrasenyes de la gent en un problema 387 00:19:05,230 --> 00:19:08,820 fixi 7, que el portarà al seu - 388 00:19:08,820 --> 00:19:11,953 així, per exemple, diuen que volien canviar la contrasenya, se'ls pregunta 389 00:19:11,953 --> 00:19:13,130 per la seva antiga contrasenya. 390 00:19:13,130 --> 00:19:13,910 Vostè va prendre la seva antiga contrasenya. 391 00:19:13,910 --> 00:19:15,150 Xifrar ell. 392 00:19:15,150 --> 00:19:19,240 I després va comparar els dos encriptacions en lloc de unencrypting l'original 393 00:19:19,240 --> 00:19:20,780 un, perquè és molt difícil anar d'aquesta manera. 394 00:19:20,780 --> 00:19:27,070 395 00:19:27,070 --> 00:19:28,035 Sí 396 00:19:28,035 --> 00:19:31,430 >> AUDIÈNCIA: Com en profunditat fa la nostra comprensió de telnet ha de ser? 397 00:19:31,430 --> 00:19:34,870 398 00:19:34,870 --> 00:19:41,360 >> JASON Hirschhorn: Si es va esmentar breument en la conferència, només un breu 399 00:19:41,360 --> 00:19:43,260 enteniment. 400 00:19:43,260 --> 00:19:45,585 De nou, de tornada a la resposta a la pregunta de Avi - 401 00:19:45,585 --> 00:19:48,260 402 00:19:48,260 --> 00:19:50,430 més coses sorgeixen, més probable és el que ha de ser super 403 00:19:50,430 --> 00:19:51,530 familiaritzar-se amb elles. 404 00:19:51,530 --> 00:19:54,730 Si només he arribat a la conferència, això és només un lloc. 405 00:19:54,730 --> 00:19:57,180 Però si entren a la conferència, secció, i un problema establert, llavors vostè 406 00:19:57,180 --> 00:19:58,710 probablement haurà de ser súper familiaritzar-se amb elles. 407 00:19:58,710 --> 00:20:01,320 408 00:20:01,320 --> 00:20:03,960 >> Així que jo tenia una pregunta d' abans sobre - 409 00:20:03,960 --> 00:20:06,950 és era la tardor de 2010 - 410 00:20:06,950 --> 00:20:08,520 Qüestionari 1, tirarem cap amunt - 411 00:20:08,520 --> 00:20:17,390 412 00:20:17,390 --> 00:20:21,790 aquesta pregunta en piles i cues, que ens van fer passar una mica de temps 413 00:20:21,790 --> 00:20:23,720 parlant en conferència, fins i tot encara que nosaltres no ho vam fer realment 414 00:20:23,720 --> 00:20:26,020 Alguna vegada ho va colpejar a la secció. 415 00:20:26,020 --> 00:20:33,190 Així que aquesta pregunta et dóna una sèrie d'ordres i li demana que ho 416 00:20:33,190 --> 00:20:35,560 s'imprimeix en aquest cas. 417 00:20:35,560 --> 00:20:40,180 Així que aquesta és una pregunta totalment raonable que es pot demanar de vostès 418 00:20:40,180 --> 00:20:43,090 nois, i llavors vostès haurien ser capaç de respondre-hi. 419 00:20:43,090 --> 00:20:50,020 >> Llavors, per què no el mira durant 30 segons i, a continuació, si algú vol 420 00:20:50,020 --> 00:20:52,140 proposar les respostes a mi, i llavors anem a caminar a través d'ell. 421 00:20:52,140 --> 00:21:22,590 422 00:21:22,590 --> 00:21:24,235 D'acord, que té una resposta a la pregunta 27? 423 00:21:24,235 --> 00:21:31,740 424 00:21:31,740 --> 00:21:33,860 Sí 425 00:21:33,860 --> 00:21:40,250 >> AUDIÈNCIA: és 1, 2, 3, 3? 426 00:21:40,250 --> 00:21:40,780 >> JASON Hirschhorn: Això és correcte. 427 00:21:40,780 --> 00:21:42,570 27 és 1, 2, 3, 3. 428 00:21:42,570 --> 00:21:44,510 Així que donem una ullada a com aconseguim això. 429 00:21:44,510 --> 00:21:48,930 >> En primer lloc, estem dient, si s és una cua, el que s'imprimeix? 430 00:21:48,930 --> 00:21:53,360 Així que una q és primer a entrar, primer a sortir. 431 00:21:53,360 --> 00:21:54,680 Hem vist això abans. 432 00:21:54,680 --> 00:21:56,820 Vam veure la imatge de les persones esperant a la Poma 433 00:21:56,820 --> 00:21:58,400 Botiga a comprar algun producte. 434 00:21:58,400 --> 00:22:00,900 Les primeres persones en són les primeres persones fora. 435 00:22:00,900 --> 00:22:02,940 Les primeres coses en una cua són les primeres coses a terme. 436 00:22:02,940 --> 00:22:08,320 >> Així que si empenyem alguna cosa en una cua, premi el 1, després que el pop a la 1. 437 00:22:08,320 --> 00:22:09,630 Pop només significa portar. 438 00:22:09,630 --> 00:22:11,080 En aquest cas, simplement prengui alguna cosa. 439 00:22:11,080 --> 00:22:12,910 Prenem la primera cosa, això és un 1. 440 00:22:12,910 --> 00:22:15,200 Així que posarem les coses que imprimir fins aquí. 441 00:22:15,200 --> 00:22:18,110 Això ja no es troba a la nostra cua. 442 00:22:18,110 --> 00:22:23,500 >> Després empenyem en un 2 i un 3, i que sobresurten de la primera hora. 443 00:22:23,500 --> 00:22:25,030 Un cop més, perquè és una cua. 444 00:22:25,030 --> 00:22:33,320 Així que vam arribar a 2, després posem en un altre 3 i truqui pop de nou. 445 00:22:33,320 --> 00:22:34,980 La nostra 3 és primer. 446 00:22:34,980 --> 00:22:40,940 >> I després vam tenir un munt de altres coses i crida pop. 447 00:22:40,940 --> 00:22:43,740 Però, de nou, ja que aquesta és una cua, primer a entrar, primer a sortir. 448 00:22:43,740 --> 00:22:45,980 Traiem el primer que alguna vegada es va posar polz 449 00:22:45,980 --> 00:22:47,100 Aquest és el nostre 3. 450 00:22:47,100 --> 00:22:50,060 I, en aquest cas, no ens preocupem sobre totes aquestes altres coses. 451 00:22:50,060 --> 00:22:51,310 Així que això és si es tracta d'una cua. 452 00:22:51,310 --> 00:22:58,917 453 00:22:58,917 --> 00:23:00,167 Una pregunta sobre una cua? 454 00:23:00,167 --> 00:23:03,290 455 00:23:03,290 --> 00:23:04,040 >> A és diferent de la pila. 456 00:23:04,040 --> 00:23:07,782 Quin és l'acrònim que tenim per a la comprensió d'una pila? 457 00:23:07,782 --> 00:23:08,750 >> AUDIÈNCIA: últim a entrar, primer a sortir. 458 00:23:08,750 --> 00:23:10,130 >> JASON Hirschhorn: LIFO, crec. 459 00:23:10,130 --> 00:23:11,830 Últim a entrar, primer a sortir. 460 00:23:11,830 --> 00:23:15,630 Així que vam veure un exemple d'una pila de safates en un menjador. 461 00:23:15,630 --> 00:23:17,590 Qualsevol que sigui la safata està a la part superior és recollit. 462 00:23:17,590 --> 00:23:19,550 I llavors, si les noves safates vénen endins, aconseguir posar a la part superior. 463 00:23:19,550 --> 00:23:21,070 I llavors el que està en Top Obté recollit. 464 00:23:21,070 --> 00:23:24,010 Així que aquestes safates sobre el poder inferior quedar-s'hi durant un temps. 465 00:23:24,010 --> 00:23:28,480 >> En aquest cas, un cop més, anem a allargar això. 466 00:23:28,480 --> 00:23:31,770 Empenyem en un, de manera que un és el primer a la fila. 467 00:23:31,770 --> 00:23:32,790 I ens pop alguna cosa. 468 00:23:32,790 --> 00:23:37,280 I només hi ha una cosa en allà, així que ens movem 1 aquí baix. 469 00:23:37,280 --> 00:23:41,940 Després posem els dies 2 i 3 i ens pop alguna cosa. 470 00:23:41,940 --> 00:23:43,650 >> Però, de nou, ja que aquesta és una col - 471 00:23:43,650 --> 00:23:45,010 o es tracta d'una pila, en lloc - 472 00:23:45,010 --> 00:23:47,480 prenem el que fos en el passat. 473 00:23:47,480 --> 00:23:49,300 El que està en últim surt primer. 474 00:23:49,300 --> 00:23:50,890 I 3 és en passat. 475 00:23:50,890 --> 00:23:56,110 Per això, vam posar el 3 per allà, llavors posem en un altre 3 i 476 00:23:56,110 --> 00:23:57,360 pop alguna cosa nova. 477 00:23:57,360 --> 00:23:59,990 478 00:23:59,990 --> 00:24:05,710 Finalment, posem en el 4, 5, 6 i 7, i aquí ens pop. 479 00:24:05,710 --> 00:24:09,060 I perquè és una pila, prenem el que va ser posat en l'última i escriure 480 00:24:09,060 --> 00:24:10,240 que aquí baix. 481 00:24:10,240 --> 00:24:14,256 Així que vam acabar amb 1, 3, 3, 7. 482 00:24:14,256 --> 00:24:17,380 483 00:24:17,380 --> 00:24:21,380 Algú té alguna pregunta sobre piles o cues, o aquest exemple? 484 00:24:21,380 --> 00:24:27,540 485 00:24:27,540 --> 00:24:29,030 >> D'acord. 486 00:24:29,030 --> 00:24:30,440 Tornem a la llista de temes. 487 00:24:30,440 --> 00:24:32,510 Per aquí no, per aquí. 488 00:24:32,510 --> 00:24:34,280 Quines altres preguntes té la gent? 489 00:24:34,280 --> 00:24:37,550 490 00:24:37,550 --> 00:24:39,480 >> AUDIÈNCIA: No sé l'important és a dir, però jo estava confós per la 491 00:24:39,480 --> 00:24:43,550 diferència entre diferents tipus de llengües com el marcatge, compilats, 492 00:24:43,550 --> 00:24:45,980 interpretat. 493 00:24:45,980 --> 00:24:46,750 >> JASON Hirschhorn: Això és una bona pregunta. 494 00:24:46,750 --> 00:24:50,500 Crec que això és una cosa important, així que anem a repassar ràpidament. 495 00:24:50,500 --> 00:24:56,850 Les grans llengües que hem vist fins ara són C, PHP i JavaScript, en termes 496 00:24:56,850 --> 00:24:58,330 de llenguatges de programació. 497 00:24:58,330 --> 00:25:01,060 HTML, com vostè ha esmentat, no és un llenguatge de programació. 498 00:25:01,060 --> 00:25:02,260 És un llenguatge de marques. 499 00:25:02,260 --> 00:25:05,700 I després hem CSS, que és també no és un llenguatge de programació. 500 00:25:05,700 --> 00:25:10,330 >> També hem vist SQL, que no és un llenguatge de programació qualsevol. 501 00:25:10,330 --> 00:25:15,695 Així SQL permet escriure consultes d'una base de dades. 502 00:25:15,695 --> 00:25:18,370 503 00:25:18,370 --> 00:25:20,140 HTML és un llenguatge de marques. 504 00:25:20,140 --> 00:25:22,570 Defineix com s'estructuren les coses. 505 00:25:22,570 --> 00:25:26,250 I CSS li permet l'estil de les coses. 506 00:25:26,250 --> 00:25:28,520 Aquesta és probablement la mesura del que necessita saber sobre aquests tres. 507 00:25:28,520 --> 00:25:32,920 Però és més interessant figura les diferències entre C, PHP, 508 00:25:32,920 --> 00:25:34,320 i JavaScript. 509 00:25:34,320 --> 00:25:37,900 >> Així que una de les diferències més grans, com vostè ha esmentat, és la forma en què estan 510 00:25:37,900 --> 00:25:40,550 compilat, o el que sigui l'equivalent és. 511 00:25:40,550 --> 00:25:42,580 Així que C es compila. 512 00:25:42,580 --> 00:25:43,950 Sempre ens correríem un compilador. 513 00:25:43,950 --> 00:25:51,100 I llavors on són els seus errors en executar el compilador de C? 514 00:25:51,100 --> 00:25:55,740 D'on vostè la mostra errors en el codi? 515 00:25:55,740 --> 00:25:57,860 Com saps que hi ha un error en el codi en C? 516 00:25:57,860 --> 00:25:58,770 >> AUDIÈNCIA: Li mostra en el terminal. 517 00:25:58,770 --> 00:26:00,410 >> JASON Hirschhorn: Es mostra en el terminal com s'està compilant. 518 00:26:00,410 --> 00:26:02,620 I si hi ha errors, en realitat no es compilarà. 519 00:26:02,620 --> 00:26:04,830 Així que ja saps que hi ha errors correctes de distància, abans d'hora, abans que vostè 520 00:26:04,830 --> 00:26:06,050 fins i tot executar el seu codi. 521 00:26:06,050 --> 00:26:10,010 >> Per descomptat, és possible executar el codi i aconseguir una fallada de segmentació, però això va ser 522 00:26:10,010 --> 00:26:12,350 probablement pel fet que vostè va fer cosa lògica ximple. 523 00:26:12,350 --> 00:26:15,770 Però el codi amb tècnicament tot correcte i podria funcionar. 524 00:26:15,770 --> 00:26:18,210 Així codi C es compila abans d'hora. 525 00:26:18,210 --> 00:26:19,760 Què passa amb el codi PHP? 526 00:26:19,760 --> 00:26:21,430 On estaven els errors en el seu codi PHP? 527 00:26:21,430 --> 00:26:23,170 Com se sap que va tenir errors en el codi PHP? 528 00:26:23,170 --> 00:26:26,038 529 00:26:26,038 --> 00:26:28,430 >> AUDIÈNCIA: Temps d'execució? 530 00:26:28,430 --> 00:26:31,230 >> JASON Hirschhorn: Sí, quan aniria en ella, hauria d'executar la 531 00:26:31,230 --> 00:26:32,180 Codi PHP en la part posterior. 532 00:26:32,180 --> 00:26:33,300 I després, veureu la pantalla. 533 00:26:33,300 --> 00:26:35,260 És possible que vegi algunes coses a la part superior, però llavors vostè veuria, com, alguns 534 00:26:35,260 --> 00:26:36,710 taronja, taula lleig. 535 00:26:36,710 --> 00:26:41,420 I li donarà un número de línia i diguem, bla, bla, bla, això 536 00:26:41,420 --> 00:26:42,400 que no va funcionar. 537 00:26:42,400 --> 00:26:48,730 >> Així que PHP s'interpreta línia per línia i executat al servidor. 538 00:26:48,730 --> 00:26:52,380 I a continuació, el resultat és enviat a vostè. 539 00:26:52,380 --> 00:26:53,340 Gran. 540 00:26:53,340 --> 00:26:56,410 Executat en la línia de servidors de línia i després enviat a vostè. 541 00:26:56,410 --> 00:26:59,010 I si hi ha un error, que va a enviar que l'error, però és possible que tingui 542 00:26:59,010 --> 00:27:00,400 aconseguit algunes coses abans d'hora. 543 00:27:00,400 --> 00:27:02,730 Així que alguns dels que podria haver funcionat, però més tard, algunes coses no podria tenir 544 00:27:02,730 --> 00:27:03,890 sense treballar. 545 00:27:03,890 --> 00:27:04,600 >> Què passa amb JavaScript? 546 00:27:04,600 --> 00:27:06,065 On has vist els errors de JavaScript? 547 00:27:06,065 --> 00:27:10,860 548 00:27:10,860 --> 00:27:12,870 En p setembre 8, quan va rebre un error, com ho saps? 549 00:27:12,870 --> 00:27:13,710 On apareix? 550 00:27:13,710 --> 00:27:15,900 >> AUDIÈNCIA: A la consola, a la part inferior. 551 00:27:15,900 --> 00:27:17,650 >> JASON Hirschhorn: Al consola, a la part inferior. 552 00:27:17,650 --> 00:27:20,160 També li donaria la número de línia, i que ho faria 553 00:27:20,160 --> 00:27:21,330 mostrarà a la part inferior. 554 00:27:21,330 --> 00:27:24,320 I JavaScript no s'ha executat al servidor. 555 00:27:24,320 --> 00:27:27,800 JavaScript va ser enviada al seu ordinador, i després, quan va arribar el moment d'executar el 556 00:27:27,800 --> 00:27:31,670 JavaScript, el codi JavaScript es executar línia a línia en el 557 00:27:31,670 --> 00:27:33,410 client, del seu costat. 558 00:27:33,410 --> 00:27:35,570 No el servidor, el costat del client. 559 00:27:35,570 --> 00:27:37,690 >> I de la mateixa manera, va ser executar línia per línia. 560 00:27:37,690 --> 00:27:40,630 I després, quan s'arriba a un error, es mostraria a la part inferior. 561 00:27:40,630 --> 00:27:44,580 Igual que en PHP, alguns d'ells podrien executar, i llavors vostè pot ser que aconsegueixi un 562 00:27:44,580 --> 00:27:46,310 error més endavant. 563 00:27:46,310 --> 00:27:49,910 >> A més, una mica de PHP a diferència, si que tens un error de JavaScript - 564 00:27:49,910 --> 00:27:52,780 dius que ho has fet la dreta codi per a un quadre d'alerta - 565 00:27:52,780 --> 00:27:55,800 vostè podria mantenir el funcionament del seu programa. 566 00:27:55,800 --> 00:27:58,180 El quadre d'alerta no anava a funcionar, però seu programa estaria bé. 567 00:27:58,180 --> 00:28:00,490 Només potser aquesta funció seria un fracàs. 568 00:28:00,490 --> 00:28:02,610 >> Així que hi ha alguns dels més grans diferència en termes de com aquests 569 00:28:02,610 --> 00:28:09,230 idiomes, o com el codi de programació Pots escriure en realitat s'està avaluant. 570 00:28:09,230 --> 00:28:11,970 També hi ha altres diferències en termes de - la major diferència 571 00:28:11,970 --> 00:28:15,590 que hem vist en termes de variables en els diferents idiomes. 572 00:28:15,590 --> 00:28:19,660 Llavors, pot algú donar-me una diferència entre les variables 573 00:28:19,660 --> 00:28:20,910 en els tres idiomes? 574 00:28:20,910 --> 00:28:24,802 575 00:28:24,802 --> 00:28:25,770 Sí 576 00:28:25,770 --> 00:28:27,130 >> AUDIÈNCIA: En C, són estrictament escrit. 577 00:28:27,130 --> 00:28:28,550 En els altres dos, que estan vagament escrit. 578 00:28:28,550 --> 00:28:30,040 >> JASON Hirschhorn: I Què significa això? 579 00:28:30,040 --> 00:28:31,775 >> AUDIÈNCIA: Que en C, vostè ha de declarar el tipus de la variable quan 580 00:28:31,775 --> 00:28:36,140 es declara la variable, com interbool o char. 581 00:28:36,140 --> 00:28:36,990 >> JASON Hirschhorn: Excel · lent. 582 00:28:36,990 --> 00:28:39,780 En C, sempre vam haver de posar un tipus d'una variable. 583 00:28:39,780 --> 00:28:41,360 I no podíem barrejar tipus. 584 00:28:41,360 --> 00:28:45,750 No es podia fer un sencer més una cadena. 585 00:28:45,750 --> 00:28:48,760 Però com hem vist en altres llengües, en realitat es poden barrejar tipus, 586 00:28:48,760 --> 00:28:51,230 i vostè mai ha de donar cosa que un tipus, mai. 587 00:28:51,230 --> 00:28:53,905 >> Llavors, com sabem que les coses són variables en PHP i JavaScript? 588 00:28:53,905 --> 00:28:57,120 589 00:28:57,120 --> 00:28:58,685 >> AUDIÈNCIA: En PHP, comencen amb un signe de dòlar. 590 00:28:58,685 --> 00:29:00,810 En JavaScript, quan es declara ells, vostè ha de tenir un bar. 591 00:29:00,810 --> 00:29:01,760 >> JASON Hirschhorn: així. 592 00:29:01,760 --> 00:29:03,535 Així que en PHP, comencen amb un signe de dòlar. 593 00:29:03,535 --> 00:29:06,300 En JavaScript, ells han de tenir bar, encara que de vegades no ho fan realitat 594 00:29:06,300 --> 00:29:07,520 ha de tenir bar. 595 00:29:07,520 --> 00:29:09,240 Però això és correcte. 596 00:29:09,240 --> 00:29:13,300 >> Així que això és una gran diferència entre les variables. 597 00:29:13,300 --> 00:29:16,140 Crec que aquests són probablement, fora de la la part superior del meu cap, els dos més grans 598 00:29:16,140 --> 00:29:19,250 diferències entre aquests tres idiomes. 599 00:29:19,250 --> 00:29:20,594 Però, sí. 600 00:29:20,594 --> 00:29:24,720 >> AUDIÈNCIA: I l'àmbit de les variables C es limita a les claus, 601 00:29:24,720 --> 00:29:27,760 on els altres, que és com, mor si és només una funció, 602 00:29:27,760 --> 00:29:29,650 però d'altra banda, és - 603 00:29:29,650 --> 00:29:30,240 >> JASON Hirschhorn: així. 604 00:29:30,240 --> 00:29:36,780 Així àmbit d'aplicació és lleugerament diferent en C. Com Recordes, les claus defineixen 605 00:29:36,780 --> 00:29:37,710 l'àmbit de les variables. 606 00:29:37,710 --> 00:29:41,680 Així que si es defineix dins un if condició, que està dins d'un bucle for, 607 00:29:41,680 --> 00:29:44,290 la variable només existeix allà. 608 00:29:44,290 --> 00:29:47,760 >> En JavaScript, si es defineix una variable dins d'una condició if - 609 00:29:47,760 --> 00:29:50,750 dins d'un bucle for - que existirà per aquesta funció, però no existirà 610 00:29:50,750 --> 00:29:52,330 fora d'aquesta funció. 611 00:29:52,330 --> 00:29:59,250 Així àmbit d'aplicació és una mica més flexible en JavaScript i PHP. 612 00:29:59,250 --> 00:30:00,500 Això respon a la pregunta? 613 00:30:00,500 --> 00:30:03,110 614 00:30:03,110 --> 00:30:04,635 Bé, alguna altra pregunta? 615 00:30:04,635 --> 00:30:07,260 616 00:30:07,260 --> 00:30:08,865 Podem fer quatre minuts més de preguntes, a continuació, 617 00:30:08,865 --> 00:30:10,740 anem a saltar a la codificació. 618 00:30:10,740 --> 00:30:12,645 >> AUDIÈNCIA: Podem anar a Ajax i parlar del que és això? 619 00:30:12,645 --> 00:30:15,670 620 00:30:15,670 --> 00:30:17,800 >> JASON Hirschhorn: Parli amb Avi després. 621 00:30:17,800 --> 00:30:19,170 Ell va fer aquesta pregunta abans. 622 00:30:19,170 --> 00:30:19,630 >> AUDIÈNCIA: El meu mal. 623 00:30:19,630 --> 00:30:20,880 >> JASON Hirschhorn: No es preocupi. 624 00:30:20,880 --> 00:30:22,740 625 00:30:22,740 --> 00:30:24,290 >> AUDIÈNCIA: Què és exactament JSON? 626 00:30:24,290 --> 00:30:28,360 627 00:30:28,360 --> 00:30:28,900 >> JASON Hirschhorn: Què és JSON? 628 00:30:28,900 --> 00:30:29,930 Quina és la teva pregunta? 629 00:30:29,930 --> 00:30:31,350 >> AUDIÈNCIA: Només molt ràpid, la diferència entre els 630 00:30:31,350 --> 00:30:32,870 print i fet en PHP. 631 00:30:32,870 --> 00:30:36,200 632 00:30:36,200 --> 00:30:38,490 >> JASON Hirschhorn: Per què no busques a google la diferència entre la impressió i l'eco? 633 00:30:38,490 --> 00:30:40,670 Petita diferència. 634 00:30:40,670 --> 00:30:42,020 No és gran cosa. 635 00:30:42,020 --> 00:30:44,960 Però definitivament ha google, i que et vaig a donar una bona resposta. 636 00:30:44,960 --> 00:30:46,910 >> JSON, probablement més gran d'un acord. 637 00:30:46,910 --> 00:30:49,300 Suports per a JavaScript Object Notation. 638 00:30:49,300 --> 00:30:51,865 I quan hem vist JSON utilitzeu? 639 00:30:51,865 --> 00:30:55,110 640 00:30:55,110 --> 00:30:55,900 Quan s'ha vist - 641 00:30:55,900 --> 00:30:57,400 Per què tan sols coneix la paraula JSON? 642 00:30:57,400 --> 00:30:59,140 Quan has vist? 643 00:30:59,140 --> 00:31:02,200 >> AUDIÈNCIA: Quan estàvem preparant les cotitzacions d'accions de les finances. 644 00:31:02,200 --> 00:31:02,690 >> JASON Hirschhorn: Així que vesteix quan vostè estava rebent 645 00:31:02,690 --> 00:31:04,830 les cotitzacions d'accions de les finances. 646 00:31:04,830 --> 00:31:07,340 I per què has vist? 647 00:31:07,340 --> 00:31:09,000 >> AUDIÈNCIA: Quan ens recuperem tota la informació que 648 00:31:09,000 --> 00:31:10,400 va arribar en aquest format. 649 00:31:10,400 --> 00:31:11,700 >> JASON Hirschhorn: Així que t'ho donen - 650 00:31:11,700 --> 00:31:12,540 si. 651 00:31:12,540 --> 00:31:13,020 Endavant. 652 00:31:13,020 --> 00:31:15,210 >> AUDIÈNCIA: [inaudible] informació d'un objecte? 653 00:31:15,210 --> 00:31:17,170 >> JASON Hirschhorn: Tant dels que reunit és la resposta 654 00:31:17,170 --> 00:31:18,100 estem buscant. 655 00:31:18,100 --> 00:31:21,240 Vols informació de aquesta altra pàgina web. 656 00:31:21,240 --> 00:31:23,790 I és d'esperar que quan estàs aconseguir aquesta informació, seria 657 00:31:23,790 --> 00:31:26,720 presentat a vostè en algun tipus de format normalitzat. 658 00:31:26,720 --> 00:31:29,530 >> Tothom és probablement familiar amb valors separats per comes. 659 00:31:29,530 --> 00:31:32,970 Podeu exportar un full de càlcul d'Excel o qualsevol tipus de full de càlcul com una llista de 660 00:31:32,970 --> 00:31:34,540 Valors separats per comes. 661 00:31:34,540 --> 00:31:37,370 I les comes divideixen tot els diferents camps. 662 00:31:37,370 --> 00:31:38,780 JavaScript Object Notation - 663 00:31:38,780 --> 00:31:39,440 JSON - 664 00:31:39,440 --> 00:31:43,540 és un altre tipus de estandarditzada el disseny de les coses. 665 00:31:43,540 --> 00:31:49,010 I això és sovint com ens recuperem informació de les nostres consultes Ajax. 666 00:31:49,010 --> 00:31:51,770 >> Així que en aquest cas, ho vam aconseguir des del lloc de Yahoo. 667 00:31:51,770 --> 00:31:53,600 Tornen les coses a nosaltres en un objecte JSON. 668 00:31:53,600 --> 00:31:56,790 I llavors el que sabem, perquè és una norma, el que és 669 00:31:56,790 --> 00:31:57,250 va a semblar. 670 00:31:57,250 --> 00:32:00,760 Així que podem recórrer l'array que es retorna a nosaltres, la gran varietat de 671 00:32:00,760 --> 00:32:03,180 objectes que es tornen nosaltres. 672 00:32:03,180 --> 00:32:07,770 >> Nosaltres probablement necessitem conèixer les claus, però en general li donen 673 00:32:07,770 --> 00:32:11,370 documentació al lloc web quan vostè està portant una mica de JSON 674 00:32:11,370 --> 00:32:12,170 notació per a ells. 675 00:32:12,170 --> 00:32:16,940 De la mateixa manera, pot JSON codificar un objecte. 676 00:32:16,940 --> 00:32:19,900 Així que hi ha una funció de JSON subratllar codificar. 677 00:32:19,900 --> 00:32:22,970 I perquè pugui prendre un objecte que que has creat, JSON codificar, i 678 00:32:22,970 --> 00:32:26,390 passar a alguna cosa una altra cosa, si vols. 679 00:32:26,390 --> 00:32:30,770 I JSON descodificació també existeix per un propòsit similar, o per 680 00:32:30,770 --> 00:32:31,780 el propòsit oposat. 681 00:32:31,780 --> 00:32:36,570 >> AUDIÈNCIA: Necessitem saber escriure codi per a les taules hash i tries? 682 00:32:36,570 --> 00:32:40,300 O només hem d'entendre com s'usen, conceptualment? 683 00:32:40,300 --> 00:32:44,570 >> JASON Hirschhorn: Llavors, aixeca la mà si es va fer una taula hash per p fixar abril 684 00:32:44,570 --> 00:32:46,920 amb una llista d'enllaços. 685 00:32:46,920 --> 00:32:47,960 O p setembre 5. 686 00:32:47,960 --> 00:32:49,060 Així que va ser una gran majoria de la gent. 687 00:32:49,060 --> 00:32:50,390 P va fixar 5, 6, qui sap. 688 00:32:50,390 --> 00:32:51,240 Fa molt de temps. 689 00:32:51,240 --> 00:32:54,140 >> Així que la gran majoria dels que va fer taules hash amb llistes d'enllaços. 690 00:32:54,140 --> 00:32:56,525 I pel fet que aquesta és probablement la més enfocament comú, i perquè vam passar 691 00:32:56,525 --> 00:32:59,460 un munt de temps fent llistes de vincles i de hash taules, probablement hauria de ser 692 00:32:59,460 --> 00:33:02,600 bastant familiaritzat amb la forma de codi una taula hash i una llista d'enllaços. 693 00:33:02,600 --> 00:33:05,060 >> I si vostè pensa de nou a aquest problema establir, en realitat no era 694 00:33:05,060 --> 00:33:06,410 tan dur com vostè esperava. 695 00:33:06,410 --> 00:33:08,120 I hi havia molt menys codi del que esperava. 696 00:33:08,120 --> 00:33:11,150 697 00:33:11,150 --> 00:33:14,650 Jo diria que vostè ha de saber codificar una taula hash o una llista d'enllaços. 698 00:33:14,650 --> 00:33:17,010 No és que fos a convidar al fet que, necessàriament, però que hauria de 699 00:33:17,010 --> 00:33:19,730 certament saber això. 700 00:33:19,730 --> 00:33:21,860 >> A més, si es mira a través dels concursos anteriors, ha hagut una gran quantitat de 701 00:33:21,860 --> 00:33:26,450 preguntes sobre l'escriptura de funcions en llistes d'enllaços o llistes doblement enllaçades. 702 00:33:26,450 --> 00:33:28,370 Aquesta sembla arribar cada any. 703 00:33:28,370 --> 00:33:31,940 Inserir el botó dret en una llista d'enllaços, a la dreta esborrar d'una llista d'enllaços, inserir la dreta 704 00:33:31,940 --> 00:33:33,610 per obtenir una llista doblement enllaçada, et cetera. 705 00:33:33,610 --> 00:33:36,170 Així que, em sento molt còmode dient que vostè ha de saber això. 706 00:33:36,170 --> 00:33:40,600 >> Per intentar-ho, jo diria que hauria de sens dubte saben com funciona, i potser 707 00:33:40,600 --> 00:33:43,570 donar una mica de pseudocodi per saber com per codificar i configurar-lo. 708 00:33:43,570 --> 00:33:45,600 Però no seria la pitjor cosa en el món si vostè no sap com 709 00:33:45,600 --> 00:33:48,870 codificar en C. Seria fantàstic si Sabia com codificar en C, però crec 710 00:33:48,870 --> 00:33:52,516 probablement pseudocodi per intentar faria és el màxim que es necessita 711 00:33:52,516 --> 00:33:53,270 saber per intentar-ho. 712 00:33:53,270 --> 00:33:53,930 >> AUDIÈNCIA: Crèdit addicional? 713 00:33:53,930 --> 00:33:58,290 >> JASON Hirschhorn: I el mateix amb, si entrar en arbres binaris de cerca, és possible que 714 00:33:58,290 --> 00:34:02,320 necessites - i que ha vist en el passat, hem fet un munt de - vostè sap com 715 00:34:02,320 --> 00:34:03,380 arbre binari de cerca funciona. 716 00:34:03,380 --> 00:34:07,150 Probablement hauria de ser capaç de establir un en pseudo-codi. 717 00:34:07,150 --> 00:34:10,510 Però com que la gran majoria de les persones no va fer això en el problema 718 00:34:10,510 --> 00:34:13,880 conjunt, jo diria que és probablement menys important que vostè sàpiga com codificar 719 00:34:13,880 --> 00:34:17,380 i establir un arbre així. 720 00:34:17,380 --> 00:34:19,679 >> Alguna altra pregunta? 721 00:34:19,679 --> 00:34:23,234 També, podem demanar a ells al llarg a mesura que avancem a través d'alguns problemes. 722 00:34:23,234 --> 00:34:27,170 Bé, seguirem endavant. 723 00:34:27,170 --> 00:34:28,230 Saltar aquesta diapositiva per ara. 724 00:34:28,230 --> 00:34:32,449 >> Parlant d'arbres, que és la primera pregunta que tinc per a vostès. 725 00:34:32,449 --> 00:34:34,270 Com que aquest és un problema. 726 00:34:34,270 --> 00:34:37,380 Jo diria que és molt probable que vostè obtenir un problema com aquest en el seu concurs 727 00:34:37,380 --> 00:34:43,659 demanant-li que codificar algun tipus d'inserció, eliminar, buscar, per a un tipus 728 00:34:43,659 --> 00:34:45,270 d'estructura de dades que hem vist. 729 00:34:45,270 --> 00:34:47,719 >> Això ve cada any i vam passar una molt temps la segona meitat d'aquest 730 00:34:47,719 --> 00:34:50,270 semestre repassant aquests tipus de dades. 731 00:34:50,270 --> 00:34:54,170 Així que ara mateix, he definit un node en un arbre de cerca binària. 732 00:34:54,170 --> 00:34:58,490 I el que m'agradaria que fessis és donat un arbre de recerca binari que comença 733 00:34:58,490 --> 00:35:05,450 en aquest node arrel estrella, completi la implementació de la funció a continuació, 734 00:35:05,450 --> 00:35:07,430 que passa a ser una funció de cerca. 735 00:35:07,430 --> 00:35:09,260 I fer-ho amb i sense recurrències. 736 00:35:09,260 --> 00:35:10,860 >> Així que vull que escriguis dues funcions. 737 00:35:10,860 --> 00:35:14,310 Un fer això amb recursió, un fent això sense recursió. 738 00:35:14,310 --> 00:35:18,050 I no assumeixi que la arrel serà no nul · la. 739 00:35:18,050 --> 00:35:21,790 Així que estem buscant per al sencer ia l'arbre a partir de l'arrel, i necessitem 740 00:35:21,790 --> 00:35:25,280 per escriure aquesta manera recursiva i de forma iterativa. 741 00:35:25,280 --> 00:35:26,300 Sí 742 00:35:26,300 --> 00:35:29,730 >> AUDIÈNCIA: ¿Així que vols que tornem veritable si el trobem, i fals si 743 00:35:29,730 --> 00:35:30,480 no el troba. 744 00:35:30,480 --> 00:35:32,160 >> JASON Hirschhorn: Com ho vas saber? 745 00:35:32,160 --> 00:35:33,100 Com ho saps? 746 00:35:33,100 --> 00:35:36,500 >> AUDIÈNCIA: M'estava preguntant primer, però jo estava assumint, perquè diu bool a 747 00:35:36,500 --> 00:35:37,490 el principi de la funció. 748 00:35:37,490 --> 00:35:37,880 >> JASON Hirschhorn: així. 749 00:35:37,880 --> 00:35:41,020 Diu bool, de manera que no necessita ni tan sols dir-li el que espero que tornis 750 00:35:41,020 --> 00:35:41,350 perquè diu allà mateix. 751 00:35:41,350 --> 00:35:42,280 Però és cert. 752 00:35:42,280 --> 00:35:43,510 Tornar, vertader o fals. 753 00:35:43,510 --> 00:35:47,630 >> Així que abans de començar, jo recomanaria, si no està familiaritzat amb 754 00:35:47,630 --> 00:35:51,300 arbres binaris de cerca, dibuix ràpidament una foto d'ella per obtenir el seu 755 00:35:51,300 --> 00:35:51,750 la comprensió, a la dreta. 756 00:35:51,750 --> 00:35:54,720 Això també l'ajudarà a l'hora d'escriure el seu codi i revisar-la. 757 00:35:54,720 --> 00:35:57,830 Una vegada més, vostè també no ha de molt temps en el qüestionari per fer totes les coses 758 00:35:57,830 --> 00:35:59,030 que els demanem de fer. 759 00:35:59,030 --> 00:36:02,350 Així que escriure pseudocodi és molt útil. 760 00:36:02,350 --> 00:36:05,310 >> I en general, donem sobre - 761 00:36:05,310 --> 00:36:06,820 si el pseudocodi és perfectament correcte, això és 762 00:36:06,820 --> 00:36:08,910 en general, el 50% en una pregunta. 763 00:36:08,910 --> 00:36:11,410 Així que no és una regla fixa, però si que acaba d'escriure pseudocodi i és 764 00:36:11,410 --> 00:36:13,460 correcta, en general és de 50%. 765 00:36:13,460 --> 00:36:14,970 Així que jo sempre recomano - 766 00:36:14,970 --> 00:36:16,870 si vostè està pressionat pel temps, o fins i tot si vostè està tractant d'esbrinar - 767 00:36:16,870 --> 00:36:18,290 començant amb el pseudocodi. 768 00:36:18,290 --> 00:36:24,840 I, finalment, si vostè podria escriure aquest tots al carrer, això seria fantàstic. 769 00:36:24,840 --> 00:36:29,010 >> Així que anem a prendre tres minuts per treballar en aquest programa. 770 00:36:29,010 --> 00:36:33,120 I després anem a escriure pseudocodi per una sola vegada, i després 771 00:36:33,120 --> 00:36:35,455 anem a codificar de forma recursiva i després iterativament. 772 00:36:35,455 --> 00:37:28,720 773 00:37:28,720 --> 00:37:30,760 >> Si vostè té alguna pregunta, si lliure d'aixecar la mà. 774 00:37:30,760 --> 00:37:34,270 Feliç caminar i respondre- abans de començar com un grup. 775 00:37:34,270 --> 00:39:22,600 776 00:39:22,600 --> 00:39:27,200 >> Resumim, i anem a Pseudocodi la versió recursiva de 777 00:39:27,200 --> 00:39:29,830 això, i després anem a codificar. 778 00:39:29,830 --> 00:39:33,380 Així que una funció recursiva necessita dues coses. 779 00:39:33,380 --> 00:39:35,960 Això pot ser una pregunta que vostè podria demanar. 780 00:39:35,960 --> 00:39:37,950 Necessita dues coses. 781 00:39:37,950 --> 00:39:40,610 Qui pot aixecar la mà i em diu quines són les dues coses que un recursiu 782 00:39:40,610 --> 00:39:43,680 funció de les necessitats? 783 00:39:43,680 --> 00:39:45,030 Per definició té dues coses. 784 00:39:45,030 --> 00:39:46,280 Quines són aquestes dues coses? 785 00:39:46,280 --> 00:39:48,580 786 00:39:48,580 --> 00:39:49,830 Noves mans. 787 00:39:49,830 --> 00:39:55,050 788 00:39:55,050 --> 00:39:56,390 Sí, Alden. 789 00:39:56,390 --> 00:39:57,980 >> AUDIÈNCIA: Així que no estic molt segur de si aquesta és la terminologia, però - 790 00:39:57,980 --> 00:39:59,715 >> JASON Hirschhorn: m'alegro que està aixecant la mà. 791 00:39:59,715 --> 00:40:03,380 >> AUDIÈNCIA: Es necessita un cas base, i necessita un pas recursiu. 792 00:40:03,380 --> 00:40:03,960 >> JASON Hirschhorn: Perfect. 793 00:40:03,960 --> 00:40:06,340 Necessita d'un cas base i un pas recursiu. 794 00:40:06,340 --> 00:40:10,430 Quin és el nostre cas base aquí? 795 00:40:10,430 --> 00:40:12,950 >> AUDIÈNCIA: root F és igual a és igual a nul. 796 00:40:12,950 --> 00:40:15,110 Ho sento, només en pseudocodi, si és nul. 797 00:40:15,110 --> 00:40:16,360 Si l'arrel és nul. 798 00:40:16,360 --> 00:40:21,900 799 00:40:21,900 --> 00:40:23,540 >> JASON Hirschhorn: Si l'arrel és nul. 800 00:40:23,540 --> 00:40:23,850 Això és excel · lent. 801 00:40:23,850 --> 00:40:24,610 Aquest és el nostre cas base. 802 00:40:24,610 --> 00:40:25,910 Això és el que per comprovar en tot moment. 803 00:40:25,910 --> 00:40:28,000 I cas base és el el primer que fas. 804 00:40:28,000 --> 00:40:29,720 Si xoca amb la hipòtesi de base, ja està fet. 805 00:40:29,720 --> 00:40:34,140 >> Ara necessitem la nostra crida recursiva, i em disposat a apostar que necessitem un parell 806 00:40:34,140 --> 00:40:35,440 recursiva es diu aquí. 807 00:40:35,440 --> 00:40:39,630 Com que és un arbre, i ens podria anar de moltes maneres. 808 00:40:39,630 --> 00:40:43,190 Així que si l'arrel és nul, estem bé. 809 00:40:43,190 --> 00:40:44,970 >> Què proposes? 810 00:40:44,970 --> 00:40:49,640 I ara vaig a començar a trucar a terme en vosaltres, perquè sé que vostès 811 00:40:49,640 --> 00:40:50,540 tots ho saben. 812 00:40:50,540 --> 00:40:52,610 Però Annie, què ha de la següent línia a ser? 813 00:40:52,610 --> 00:40:53,570 I si el trobem? 814 00:40:53,570 --> 00:40:55,526 Què fem? 815 00:40:55,526 --> 00:40:57,300 >> AUDIÈNCIA: Si ens trobem? 816 00:40:57,300 --> 00:40:59,160 >> JASON Hirschhorn: O el que ha de ser que - 817 00:40:59,160 --> 00:41:02,124 dóna'm el pseudocodi per a la línia en què ens trobem. 818 00:41:02,124 --> 00:41:04,700 >> AUDIÈNCIA: Si i és igual a l'arrel i? 819 00:41:04,700 --> 00:41:06,650 >> JASON Hirschhorn: I llavors, què fem? 820 00:41:06,650 --> 00:41:07,590 >> AUDIÈNCIA: Retorna true. 821 00:41:07,590 --> 00:41:08,530 >> JASON Hirschhorn: Molt bé. 822 00:41:08,530 --> 00:41:16,890 Així que si i és i - 823 00:41:16,890 --> 00:41:17,400 oh, els dos estan cridats i. 824 00:41:17,400 --> 00:41:18,470 Això fa confús. 825 00:41:18,470 --> 00:41:23,830 Però si i és i return true. 826 00:41:23,830 --> 00:41:25,620 Aquesta és probablement la propera El que hem de fer. 827 00:41:25,620 --> 00:41:27,300 Té sentit. 828 00:41:27,300 --> 00:41:30,610 >> Bé, ara que no hem fet el nostre recursiva truqui però, però, perquè una recursiva 829 00:41:30,610 --> 00:41:32,300 anomenada cridés aquesta funció de nou. 830 00:41:32,300 --> 00:41:41,460 Llavors, què deu el següent línia de pseudocodi a ser? 831 00:41:41,460 --> 00:41:42,730 Anna. 832 00:41:42,730 --> 00:41:43,980 >> AUDIÈNCIA: El costat esquerre. 833 00:41:43,980 --> 00:41:47,040 834 00:41:47,040 --> 00:41:47,590 >> JASON Hirschhorn: Sigui específic, però. 835 00:41:47,590 --> 00:41:50,600 Aquest és un arbre binari de cerca, així que el que no el control de la part esquerra implicaria? 836 00:41:50,600 --> 00:41:51,890 >> AUDIÈNCIA: Així node - 837 00:41:51,890 --> 00:41:53,342 Ho sento, l'arrel. 838 00:41:53,342 --> 00:41:55,306 I després la fletxa esquerra. 839 00:41:55,306 --> 00:41:59,234 840 00:41:59,234 --> 00:42:00,720 Node, node, ho sento. 841 00:42:00,720 --> 00:42:01,978 No estic llegint correctament. 842 00:42:01,978 --> 00:42:05,700 Es diu node, oi? 843 00:42:05,700 --> 00:42:09,270 >> JASON Hirschhorn: Es dirà root en aquesta funció, però de qualsevol manera. 844 00:42:09,270 --> 00:42:10,925 El costat esquerre - Sí? 845 00:42:10,925 --> 00:42:13,780 >> AUDIÈNCIA: Si no ho fa igual I, a continuació, anem a trucar a 846 00:42:13,780 --> 00:42:15,130 la funció de nou? 847 00:42:15,130 --> 00:42:15,490 >> JASON Hirschhorn: Això és correcte. 848 00:42:15,490 --> 00:42:17,870 Si no ho fa igual i, anem per cridar a la funció. 849 00:42:17,870 --> 00:42:21,435 Però, què costat de l'arbre anem cridar a la funció de nou? 850 00:42:21,435 --> 00:42:22,685 >> AUDIÈNCIA: Al costat esquerre. 851 00:42:22,685 --> 00:42:25,932 852 00:42:25,932 --> 00:42:27,670 >> JASON Hirschhorn: No estem sempre anem a trucar a l'esquerra, si 853 00:42:27,670 --> 00:42:29,190 no és igual que. 854 00:42:29,190 --> 00:42:29,610 >> AUDIÈNCIA: Oh, ho sento. 855 00:42:29,610 --> 00:42:31,200 Truqui a la dreta. 856 00:42:31,200 --> 00:42:33,680 >> JASON Hirschhorn: Volem saber específicament, però - recorda, en un 857 00:42:33,680 --> 00:42:37,700 arbre binari de recerca, tot per el costat esquerre és més petit. 858 00:42:37,700 --> 00:42:40,460 Tot a la dreta banda és més gran. 859 00:42:40,460 --> 00:42:43,990 Així que no és només - si, endavant. 860 00:42:43,990 --> 00:42:46,805 >> AUDIÈNCIA: Si és menys d'i, llavors - 861 00:42:46,805 --> 00:42:52,130 862 00:42:52,130 --> 00:42:53,380 si és en l'esquerra - 863 00:42:53,380 --> 00:42:56,160 864 00:42:56,160 --> 00:42:58,606 >> JASON Hirschhorn: Així que si RI és inferior a - 865 00:42:58,606 --> 00:43:01,854 866 00:43:01,854 --> 00:43:09,110 pel que si el nostre número és menor que jo, de quin costat volem anar? 867 00:43:09,110 --> 00:43:15,120 >> AUDIÈNCIA: Volem anar al costat dret. 868 00:43:15,120 --> 00:43:16,250 >> JASON Hirschhorn: Volem anar - 869 00:43:16,250 --> 00:43:19,210 permetin-me cridar un arbre ràpid. 870 00:43:19,210 --> 00:43:23,850 Si això és 5, aquest és 3. 871 00:43:23,850 --> 00:43:29,410 Així que si ri és inferior a cinc, la qual cosa banda volem anar? 872 00:43:29,410 --> 00:43:30,390 >> AUDIÈNCIA: Perdona, què? 873 00:43:30,390 --> 00:43:33,190 >> JASON Hirschhorn: El nostre número és menor que el nombre que estem 874 00:43:33,190 --> 00:43:34,710 mirant ara. 875 00:43:34,710 --> 00:43:35,890 >> AUDIÈNCIA: Oh, llavors volem per anar a la part esquerra. 876 00:43:35,890 --> 00:43:36,240 Sí 877 00:43:36,240 --> 00:43:36,920 Ho sento. 878 00:43:36,920 --> 00:43:37,230 >> JASON Hirschhorn: Exactament. 879 00:43:37,230 --> 00:43:38,480 No hi ha problema. 880 00:43:38,480 --> 00:43:41,020 En l'arbre binari de recerca, tot menor és a l'esquerra, 881 00:43:41,020 --> 00:43:42,110 major està a la dreta. 882 00:43:42,110 --> 00:43:46,700 Així que si el nostre nombre és menor que l'i estem comprovant - 883 00:43:46,700 --> 00:43:48,790 perquè es veu en el node, que té un i - 884 00:43:48,790 --> 00:43:50,040 llavors vostè vol anar a l'esquerra. 885 00:43:50,040 --> 00:43:55,480 886 00:43:55,480 --> 00:43:56,720 >> I aquesta és una tasca fàcil. 887 00:43:56,720 --> 00:44:01,700 Què és l'altra línia de pseudocodi hem d'escriure? 888 00:44:01,700 --> 00:44:02,910 Carles? 889 00:44:02,910 --> 00:44:05,970 >> AUDIÈNCIA: La mateixa cosa, que acaba de canviar a un signe més gran que 890 00:44:05,970 --> 00:44:07,420 i aneu a la dreta. 891 00:44:07,420 --> 00:44:08,350 >> JASON Hirschhorn: Pot vostè dir que una vegada més? 892 00:44:08,350 --> 00:44:11,640 >> AUDIÈNCIA: Si el nostre nombre és més gran que jo, vaig a la dreta. 893 00:44:11,640 --> 00:44:24,900 894 00:44:24,900 --> 00:44:26,690 >> JASON Hirschhorn: Excel · lent treball en el pseudocodi. 895 00:44:26,690 --> 00:44:28,700 Farem això en el codi real. 896 00:44:28,700 --> 00:44:33,280 I de nou, aquest pseudocodi es probablement aconseguirà, perquè és 897 00:44:33,280 --> 00:44:35,480 correcta, el 50% en aquesta qüestió. 898 00:44:35,480 --> 00:44:39,720 Però aquest pseudocodi també es tradueix 1 a un, essencialment, en el codi. 899 00:44:39,720 --> 00:44:44,380 >> Així que anem a fer això en C Qui pot donar a mi la primera línia de codi? 900 00:44:44,380 --> 00:44:48,390 En realitat, en primer lloc, abans que faci que, deixa, trobaré sobre - 901 00:44:48,390 --> 00:44:49,260 >> AUDIÈNCIA: Tinc una pregunta. 902 00:44:49,260 --> 00:44:52,430 Per què s'aplica sagnia a la línia que et vaig donar? 903 00:44:52,430 --> 00:44:54,160 >> JASON Hirschhorn: Perquè Jo no podia escriure. 904 00:44:54,160 --> 00:44:55,240 No. 905 00:44:55,240 --> 00:44:55,650 Tens raó. 906 00:44:55,650 --> 00:44:57,780 Aquesta línia ha d'estar allà. 907 00:44:57,780 --> 00:45:11,600 908 00:45:11,600 --> 00:45:14,480 >> Bé, aquí és la nostra funció. 909 00:45:14,480 --> 00:45:18,090 I permetin-me detinc, també, nostra definició d'un node. 910 00:45:18,090 --> 00:45:23,320 911 00:45:23,320 --> 00:45:27,180 Què passa si no ho féssim escriure typedef? 912 00:45:27,180 --> 00:45:30,240 Algú sap? 913 00:45:30,240 --> 00:45:32,570 >> AUDIÈNCIA: No seria compilar. 914 00:45:32,570 --> 00:45:33,860 >> JASON Hirschhorn: seria compilar, si. 915 00:45:33,860 --> 00:45:37,120 >> AUDIÈNCIA: Seria just declarar una instància en lloc de convertir-lo en un nou 916 00:45:37,120 --> 00:45:39,840 tipus vostè pot declarar múltiple casos d'? 917 00:45:39,840 --> 00:45:41,700 >> JASON Hirschhorn: Així que no ho faria saber - que no ho faria 918 00:45:41,700 --> 00:45:43,120 simplement declarar un tipus. 919 00:45:43,120 --> 00:45:46,150 Vostè encara pot fer una gran quantitat de nodes. 920 00:45:46,150 --> 00:45:48,070 >> AUDIÈNCIA: Però, no hem de escriure struct node cada vegada? 921 00:45:48,070 --> 00:45:48,640 >> JASON Hirschhorn: Això és correcte. 922 00:45:48,640 --> 00:45:50,960 Vostè hauria d'escriure node struct cada vegada, en lloc de només node. 923 00:45:50,960 --> 00:45:55,270 Però amb typedef, vostè pot tot just escriure node cada vegada. 924 00:45:55,270 --> 00:45:58,240 Bé, qui no ha donat - sí, AVICA. 925 00:45:58,240 --> 00:46:01,520 >> AUDIÈNCIA: Si l'arrel és igual als iguals null, retorna false. 926 00:46:01,520 --> 00:46:07,130 927 00:46:07,130 --> 00:46:09,490 >> JASON Hirschhorn: Gran, i aquest és el nostre cas base. 928 00:46:09,490 --> 00:46:11,200 La següent línia de codi. 929 00:46:11,200 --> 00:46:13,999 Algú que no ha donat em una línia de codi encara? 930 00:46:13,999 --> 00:46:14,945 Sí 931 00:46:14,945 --> 00:46:23,360 >> AUDIÈNCIA: Root fletxa i és igual igual a i. 932 00:46:23,360 --> 00:46:27,260 A continuació, torneu realitat. 933 00:46:27,260 --> 00:46:29,162 >> JASON Hirschhorn: Molt bé. 934 00:46:29,162 --> 00:46:32,048 Següent línia? 935 00:46:32,048 --> 00:46:32,790 Sí 936 00:46:32,790 --> 00:46:34,010 Algú més? 937 00:46:34,010 --> 00:46:36,774 I llavors vostè pot anar a continuació. 938 00:46:36,774 --> 00:46:44,820 >> AUDIÈNCIA: Perquè si l'arrel de fletxa i és menor que torno 939 00:46:44,820 --> 00:46:47,737 funció anomenada find root - 940 00:46:47,737 --> 00:46:50,611 >> JASON Hirschhorn: Ho sento. 941 00:46:50,611 --> 00:46:56,272 >> AUDIÈNCIA: root troballa Retorn apunta a l'esquerra coma i. 942 00:46:56,272 --> 00:47:01,760 943 00:47:01,760 --> 00:47:08,440 >> JASON Hirschhorn: Així que si ri és més gran que la cosa a l'arbre, volem 944 00:47:08,440 --> 00:47:09,573 anar a l'esquerra? 945 00:47:09,573 --> 00:47:11,790 >> AUDIÈNCIA: No, vaig haver de canviar. 946 00:47:11,790 --> 00:47:13,040 >> JASON Hirschhorn: Quin? 947 00:47:13,040 --> 00:47:16,310 948 00:47:16,310 --> 00:47:16,950 >> AUDIÈNCIA: No, si. 949 00:47:16,950 --> 00:47:19,050 Tinc menys de signar allà. 950 00:47:19,050 --> 00:47:22,890 >> JASON Hirschhorn: Correcte, si ri és menys del que està en l'arrel - 951 00:47:22,890 --> 00:47:25,660 nostra arrel actual - llavors vull anar a l'esquerra. 952 00:47:25,660 --> 00:47:26,960 I quina és l'última línia, oi? 953 00:47:26,960 --> 00:47:30,930 >> AUDIÈNCIA: Bàsicament el mateix, excepte commutar el major o 954 00:47:30,930 --> 00:47:34,690 igual a menys de i d'esquerra a dreta. 955 00:47:34,690 --> 00:47:43,590 956 00:47:43,590 --> 00:47:43,680 >> JASON Hirschhorn: Excel · lent. 957 00:47:43,680 --> 00:47:48,430 Algú té alguna pregunta sobre això? 958 00:47:48,430 --> 00:47:52,560 Pel que algunes altres coses que faria han estat correctes, és que 959 00:47:52,560 --> 00:47:53,810 podria ser el-ltiff. 960 00:47:53,810 --> 00:47:56,520 961 00:47:56,520 --> 00:47:59,520 Suposo que, tècnicament, cap d'aquestes Realment també necessiten ser ltiff. 962 00:47:59,520 --> 00:48:00,950 >> A més, hi ha probablement només un cas aquí. 963 00:48:00,950 --> 00:48:02,380 Així que això és probablement el seu últim cas. 964 00:48:02,380 --> 00:48:04,000 Vostè ni tan sols necessita que-ltiff. 965 00:48:04,000 --> 00:48:06,160 Però probablement bo per escriure que, per ser clars. 966 00:48:06,160 --> 00:48:06,660 Sí 967 00:48:06,660 --> 00:48:09,200 >> AUDIÈNCIA: Llavors vostè no creu que el concurs - si fem errors, per exemple, 968 00:48:09,200 --> 00:48:11,725 en la sintaxi - 969 00:48:11,725 --> 00:48:13,990 petits errors de sintaxi - 970 00:48:13,990 --> 00:48:17,810 Com que s'ocupaven en el concurs? 971 00:48:17,810 --> 00:48:21,300 >> JASON Hirschhorn: En general en l'examen, petits errors de sintaxi o petit 972 00:48:21,300 --> 00:48:24,010 errors d'estil no perds punts. 973 00:48:24,010 --> 00:48:26,610 Així que si se li va oblidar un punt i coma aquí, no estaria malament. 974 00:48:26,610 --> 00:48:30,290 Si vostè es va oblidar de tancar aquest parèntesi, que estaria bé. 975 00:48:30,290 --> 00:48:34,880 >> Errors de sintaxi enormes que alteren la significat funcional del seu codi 976 00:48:34,880 --> 00:48:37,600 dràsticament, podria obtenir tret punts per. 977 00:48:37,600 --> 00:48:40,330 O en general, només de classificació sobre la conveniència o no de la seva 978 00:48:40,330 --> 00:48:42,150 funcions de codi, fins i tot - 979 00:48:42,150 --> 00:48:44,830 no el seu disseny tant, i no el seu estil. 980 00:48:44,830 --> 00:48:50,780 981 00:48:50,780 --> 00:48:55,480 >> Ara anem a codificar una iteratiu versió de la troballa. 982 00:48:55,480 --> 00:49:00,400 983 00:49:00,400 --> 00:49:03,450 Així que serà molt similar, però Hi ha certament serà 984 00:49:03,450 --> 00:49:06,250 algunes diferències clau. 985 00:49:06,250 --> 00:49:09,160 No obstant això, la nostra pseudocodi probablement pot anar - 986 00:49:09,160 --> 00:49:11,610 encara podem tenir una línia de la pseudocodi i esbrinar el que el 987 00:49:11,610 --> 00:49:14,160 la línia és en aquest cas. 988 00:49:14,160 --> 00:49:18,010 >> Així que en una versió iterativa, el que Què et sembla, Julia, en cas de 989 00:49:18,010 --> 00:49:19,260 ser la primera línia? 990 00:49:19,260 --> 00:49:23,100 991 00:49:23,100 --> 00:49:26,920 >> AUDIÈNCIA: Un cop més, en boolean iteratiu, que necessita per crear un bucle, oi? 992 00:49:26,920 --> 00:49:27,660 >> JASON Hirschhorn: OK. 993 00:49:27,660 --> 00:49:38,480 >> AUDIÈNCIA: Així que per igual, k, per x és igual a 0, x és menor que jo. 994 00:49:38,480 --> 00:49:42,260 O No, x és menor que el mida de l'arbre. 995 00:49:42,260 --> 00:49:42,760 >> JASON Hirschhorn: L'arbre. 996 00:49:42,760 --> 00:49:46,660 Així que realment no sabem la mida de la arbre, i nosaltres no sabem realment per 997 00:49:46,660 --> 00:49:48,900 Quantes vegades es pot anar, així que què és un diferent tipus de bucle que pot ser 998 00:49:48,900 --> 00:49:50,150 millor en aquest cas? 999 00:49:50,150 --> 00:49:53,250 1000 00:49:53,250 --> 00:49:55,244 >> AUDIÈNCIA: Si una altra persona? 1001 00:49:55,244 --> 00:49:57,070 >> JASON Hirschhorn: Si una altra persona no pot ser un bucle. 1002 00:49:57,070 --> 00:49:58,935 Llavors, què és un tipus de llaç que pot simplement vagi fins que es compleixi algun cas? 1003 00:49:58,935 --> 00:50:07,250 1004 00:50:07,250 --> 00:50:11,560 Quin és l'únic altre tipus de bucle en C, a més d'un bucle? 1005 00:50:11,560 --> 00:50:11,930 >> AUDIÈNCIA: While. 1006 00:50:11,930 --> 00:50:13,380 >> JASON Hirschhorn: Mentrestant, exactament. 1007 00:50:13,380 --> 00:50:16,430 En un bucle de temps, no necessita saber com - 1008 00:50:16,430 --> 00:50:18,450 un bucle while i for loop poden fer el exactament el mateix, però el bo 1009 00:50:18,450 --> 00:50:21,500 al voltant d'un bucle while és que no necessitem saber què tan gran és el nostre arbre. 1010 00:50:21,500 --> 00:50:23,060 Així que anirem fins que el que? 1011 00:50:23,060 --> 00:50:25,880 1012 00:50:25,880 --> 00:50:28,032 >> AUDIÈNCIA: Fins que equival a la mida de - 1013 00:50:28,032 --> 00:50:32,320 >> JASON Hirschhorn: Bé, és molt similar al nostre cas recursiu. 1014 00:50:32,320 --> 00:50:33,360 Per tant - 1015 00:50:33,360 --> 00:50:36,470 >> AUDIÈNCIA: Si bé arrel i no és igual a i. 1016 00:50:36,470 --> 00:50:37,620 >> JASON Hirschhorn: Això és molt estreta. 1017 00:50:37,620 --> 00:50:39,430 Mentre que l'arrel i - 1018 00:50:39,430 --> 00:50:40,610 ho intentarem. 1019 00:50:40,610 --> 00:50:41,180 No crec que [inaudible] 1020 00:50:41,180 --> 00:50:43,026 on root i no és igual a i. 1021 00:50:43,026 --> 00:50:47,380 1022 00:50:47,380 --> 00:50:49,460 És possible que necessitem canviar en una mica poc, però això sona com que és bastant 1023 00:50:49,460 --> 00:50:50,160 bo, per ara. 1024 00:50:50,160 --> 00:50:51,710 Així que anem a fer això. 1025 00:50:51,710 --> 00:50:55,660 >> A més, recordem, no podem assumir per la pregunta. 1026 00:50:55,660 --> 00:50:57,880 No assumir que el arrel serà no nul · la. 1027 00:50:57,880 --> 00:51:01,914 Llavors, què creu vostè que el molt El primer que hem de fer és? 1028 00:51:01,914 --> 00:51:02,770 >> AUDIÈNCIA: Simplement fer el mateix El que abans. 1029 00:51:02,770 --> 00:51:05,260 Si l'arrel és igual als iguals null, retorna false. 1030 00:51:05,260 --> 00:51:11,030 1031 00:51:11,030 --> 00:51:12,130 >> JASON Hirschhorn: Molt bé. 1032 00:51:12,130 --> 00:51:13,820 Així que podria ser nul. 1033 00:51:13,820 --> 00:51:15,810 Així que volem desfer d'això de seguida. 1034 00:51:15,810 --> 00:51:19,560 I llavors estem anant xec si arrel i no és igual a i. 1035 00:51:19,560 --> 00:51:24,480 Per tant, diem que estem buscant en aquest arbre per a 3, arrel i no i igual, ara 1036 00:51:24,480 --> 00:51:25,950 estem en el nostre bucle while. 1037 00:51:25,950 --> 00:51:27,500 Què volem fer? 1038 00:51:27,500 --> 00:51:32,320 1039 00:51:32,320 --> 00:51:35,430 I de nou, serà bastant similar a la nostra versió recursiva. 1040 00:51:35,430 --> 00:51:36,230 Sí 1041 00:51:36,230 --> 00:51:40,470 >> AUDIÈNCIA: Així que t'agradaria repetir, o seguir per l'arbre, sempre que 1042 00:51:40,470 --> 00:51:42,400 l'arrel no és igual a nul. 1043 00:51:42,400 --> 00:51:45,120 1044 00:51:45,120 --> 00:51:46,640 >> JASON Hirschhorn: Mentre el arrel no és igual a null? 1045 00:51:46,640 --> 00:51:50,200 >> AUDIÈNCIA: El guió arrel i no és igual a nul. 1046 00:51:50,200 --> 00:51:51,220 Només l'arrel, si. 1047 00:51:51,220 --> 00:51:52,920 Com sempre que l'arrel és no és igual a null. 1048 00:51:52,920 --> 00:51:54,240 >> JASON Hirschhorn: ¿Així que vols per canviar això en l'arrel 1049 00:51:54,240 --> 00:51:56,590 no és igual a nul? 1050 00:51:56,590 --> 00:51:59,020 >> AUDIÈNCIA: Si. 1051 00:51:59,020 --> 00:52:00,800 >> AUDIÈNCIA: Podríem combinar aquests, no? 1052 00:52:00,800 --> 00:52:02,990 No necessitem el cas, al principi. 1053 00:52:02,990 --> 00:52:05,180 >> JASON Hirschhorn: OK, així que si no ho fem - 1054 00:52:05,180 --> 00:52:08,140 si els combinem, per la qual cosa farem mentre que l'arrel no és igual a null, i 1055 00:52:08,140 --> 00:52:10,800 si l'arrel passa a ser nul en el començant, què fem aquí? 1056 00:52:10,800 --> 00:52:11,450 >> AUDIÈNCIA: return false. 1057 00:52:11,450 --> 00:52:12,730 >> JASON Hirschhorn: Molt bé. 1058 00:52:12,730 --> 00:52:14,110 Així que de les dues maneres, probablement hauria funcionat. 1059 00:52:14,110 --> 00:52:15,645 Aquesta és una manera diferent, i això ho combina. 1060 00:52:15,645 --> 00:52:18,950 Però, de nou, si es va fer de qualsevol manera, estem no va a enlairar-se de disseny 1061 00:52:18,950 --> 00:52:19,800 punts en el concurs. 1062 00:52:19,800 --> 00:52:21,020 Però això es veu bé. 1063 00:52:21,020 --> 00:52:23,940 >> Així, mentre que l'arrel no és igual a null, el que és el primer 1064 00:52:23,940 --> 00:52:25,400 El que volem comprovar? 1065 00:52:25,400 --> 00:52:26,330 Algú més? 1066 00:52:26,330 --> 00:52:29,720 Null, què és el primer? 1067 00:52:29,720 --> 00:52:32,850 >> AUDIÈNCIA: Si ri és inferior a - 1068 00:52:32,850 --> 00:52:36,140 oh, suposo, si ja trobat a l'arrel. 1069 00:52:36,140 --> 00:52:40,830 Així que si l'arrel fletxa i és igual a i - 1070 00:52:40,830 --> 00:52:40,990 >> JASON Hirschhorn: Ho sents? 1071 00:52:40,990 --> 00:52:45,840 >> AUDIÈNCIA: Si l'arrel de fletxa i és igual a és igual a i - 1072 00:52:45,840 --> 00:52:47,090 >> JASON Hirschhorn: Què fem? 1073 00:52:47,090 --> 00:52:50,300 1074 00:52:50,300 --> 00:52:51,550 >> AUDIÈNCIA: Retorna true. 1075 00:52:51,550 --> 00:52:58,850 1076 00:52:58,850 --> 00:52:59,280 >> JASON Hirschhorn: Molt bé. 1077 00:52:59,280 --> 00:53:00,530 I què és el següent? 1078 00:53:00,530 --> 00:53:04,510 1079 00:53:04,510 --> 00:53:06,843 Jeff, quina és la següent línia de codi? 1080 00:53:06,843 --> 00:53:16,190 >> AUDIÈNCIA: Si i és menor que l'arrel de fletxa I, llavors és igual a l'arrel de l'arrel de fletxa esquerra. 1081 00:53:16,190 --> 00:53:21,550 >> JASON Hirschhorn: iguals d'arrel arrel de fletxa esquerra. 1082 00:53:21,550 --> 00:53:24,530 Així que aquesta és probablement la major diferència aquí en aquest iteratiu 1083 00:53:24,530 --> 00:53:26,600 la versió oposada a la versió recursiva. 1084 00:53:26,600 --> 00:53:28,970 La versió recursiva, ens cridar a la funció de nou. 1085 00:53:28,970 --> 00:53:32,640 Estarem actualitzant root quan que anomenem la nova funció. 1086 00:53:32,640 --> 00:53:34,170 Aquí no estem cridant a una nova funció. 1087 00:53:34,170 --> 00:53:37,610 Estem simplement actualitzar arrel en aquesta funció. 1088 00:53:37,610 --> 00:53:38,880 Això és excel · lent. 1089 00:53:38,880 --> 00:53:40,730 I quina és l'última línia de codi? 1090 00:53:40,730 --> 00:53:43,950 1091 00:53:43,950 --> 00:53:44,880 Sí, Mario? 1092 00:53:44,880 --> 00:53:48,290 >> AUDIÈNCIA: iguals arrel Else arrel de fletxa dreta. 1093 00:53:48,290 --> 00:53:49,492 >> JASON Hirschhorn: Ho sents? 1094 00:53:49,492 --> 00:53:52,340 >> Iguals d'arrel: AUDIÈNCIA arrel de fletxa dreta. 1095 00:53:52,340 --> 00:53:55,590 1096 00:53:55,590 --> 00:53:57,140 >> JASON Hirschhorn: Podria vostè també escriure alguna cosa com això? 1097 00:53:57,140 --> 00:54:02,786 1098 00:54:02,786 --> 00:54:03,890 >> AUDIÈNCIA: No tinc ni idea. 1099 00:54:03,890 --> 00:54:05,140 >> JASON Hirschhorn: No es pot. 1100 00:54:05,140 --> 00:54:07,302 1101 00:54:07,302 --> 00:54:08,270 No es pot fer més iguals. 1102 00:54:08,270 --> 00:54:10,780 OK, així que això es veu bé. 1103 00:54:10,780 --> 00:54:13,620 Per què no simplement el que per netejar-lo. 1104 00:54:13,620 --> 00:54:15,220 Això es veu molt bé, i això anava a funcionar. 1105 00:54:15,220 --> 00:54:16,920 I ens esclatar. 1106 00:54:16,920 --> 00:54:21,460 >> Si l'arrel esquerra tenia raó nul · la o arrel era nul, arribaríem fins aquí. 1107 00:54:21,460 --> 00:54:22,470 Root seria igual a nul. 1108 00:54:22,470 --> 00:54:24,270 Ens agradaria sortir del nostre bucle, i ens agradaria tornar falsa. 1109 00:54:24,270 --> 00:54:26,280 Així que quan sortim de la bucle, tornarà false. 1110 00:54:26,280 --> 00:54:29,520 1111 00:54:29,520 --> 00:54:32,793 >> I de nou, el bucle d'un temps era perfecte aquí perquè no sabem com 1112 00:54:32,793 --> 00:54:33,850 gran és el nostre arbre. 1113 00:54:33,850 --> 00:54:36,460 Tractem d'escriure el bucle, però es va adonar que has de trobar la manera 1114 00:54:36,460 --> 00:54:37,410 gran que és abans d'hora. 1115 00:54:37,410 --> 00:54:38,720 Sí 1116 00:54:38,720 --> 00:54:41,790 >> AUDIÈNCIA: Si aquest no fos un binari arbre de recerca, seria matemàtiques reals-i 1117 00:54:41,790 --> 00:54:44,220 escriure de manera iterativa, oi? 1118 00:54:44,220 --> 00:54:47,170 Igual que, si es tractava d'un arbre, però no necessàriament - 1119 00:54:47,170 --> 00:54:49,730 pel que no era tot el més petit a l'esquerra, i tot el gran a la dreta. 1120 00:54:49,730 --> 00:54:52,540 Seria molt difícil iterar sobre ella, oi? 1121 00:54:52,540 --> 00:54:55,720 Hauríem de salvar el que era abans en a l'arbre i tornar, 1122 00:54:55,720 --> 00:54:56,970 i coses per l'estil. 1123 00:54:56,970 --> 00:54:59,690 1124 00:54:59,690 --> 00:55:02,010 >> JASON Hirschhorn: Si no fos un binari arbre de recerca, si era només un 1125 00:55:02,010 --> 00:55:04,740 arbre i les coses no eren ordenats com això - 1126 00:55:04,740 --> 00:55:07,440 i ens vam adonar abans, quan Anna ens estava ajudant a que pel que és 1127 00:55:07,440 --> 00:55:08,800 ordenat ens ajuda molt - 1128 00:55:08,800 --> 00:55:12,610 hauríem de, això sí, sempre guardi on érem abans. 1129 00:55:12,610 --> 00:55:14,430 Però podria haver-hi una gran quantitat de on estàvem previouslys. 1130 00:55:14,430 --> 00:55:17,730 No pot haver-hi una gran quantitat de nodes primaris. 1131 00:55:17,730 --> 00:55:22,530 >> Probablement la millor manera de fer-ho seria ser la de seguir empenyent les coses cap a alguns 1132 00:55:22,530 --> 00:55:24,170 tipus de pila o cua. 1133 00:55:24,170 --> 00:55:26,030 Mai hauria de codificar aquesta perquè és un problema difícil. 1134 00:55:26,030 --> 00:55:30,820 Però vostè empeny algunes coses en una pila o cua i després fer-los esclatar apagat, i 1135 00:55:30,820 --> 00:55:31,890 després avaluar-los. 1136 00:55:31,890 --> 00:55:34,200 >> I després tenir alguna altra cosa on en realitat estàs posant els nodes i 1137 00:55:34,200 --> 00:55:36,090 a continuació, creu que, a continuació, buscar a través d'això. 1138 00:55:36,090 --> 00:55:38,700 Aquesta podria ser la millor manera de fer-ho. 1139 00:55:38,700 --> 00:55:42,410 Bé, qualsevol pregunta sobre aquest problema? 1140 00:55:42,410 --> 00:55:44,670 >> AUDIÈNCIA: Aquesta és una nota relacionada. 1141 00:55:44,670 --> 00:55:50,460 Haurem de comparar els temps d'execució per a les taules de hash, binari 1142 00:55:50,460 --> 00:55:52,160 arbres de recerca, etcètera? 1143 00:55:52,160 --> 00:55:54,310 >> JASON Hirschhorn: Probablement. 1144 00:55:54,310 --> 00:55:56,150 Així que anem a fer això molt ràpid. 1145 00:55:56,150 --> 00:55:58,490 Temps d'execució per a la taula hash - 1146 00:55:58,490 --> 00:55:59,090 Quins són els altres? 1147 00:55:59,090 --> 00:56:00,050 Arbre binari? 1148 00:56:00,050 --> 00:56:02,920 >> AUDIÈNCIA: llistes d'enllaços. 1149 00:56:02,920 --> 00:56:04,780 >> JASON Hirschhorn: OK, ho farem d'inserció. 1150 00:56:04,780 --> 00:56:09,980 Quin és el gran O d'inserció en una taula hash? 1151 00:56:09,980 --> 00:56:13,080 1152 00:56:13,080 --> 00:56:15,285 Quins són els supòsits vostè està fent? 1153 00:56:15,285 --> 00:56:17,760 >> AUDIÈNCIA: Vostè està inserint en la a partir de la llista d'enllaços. 1154 00:56:17,760 --> 00:56:19,860 >> JASON Hirschhorn: Probablement la primera suposició és que no hi col · lisions. 1155 00:56:19,860 --> 00:56:22,340 Si no hi ha col · lisions, llavors el temps d'inserció és un. 1156 00:56:22,340 --> 00:56:26,560 Si hi ha col · lisions, i ja està fent encadenament separat i inserint 1157 00:56:26,560 --> 00:56:31,880 al principi de la llista d'enllaç, a continuació, la inserció és també constant. 1158 00:56:31,880 --> 00:56:34,700 >> Si vostè està fent una taula hash, però vostè tenir un mètode diferent de tractar 1159 00:56:34,700 --> 00:56:36,040 amb les col · lisions, el que és un mètode diferent? 1160 00:56:36,040 --> 00:56:41,580 1161 00:56:41,580 --> 00:56:42,960 Què és d'un mètode diferent de tractar amb 1162 00:56:42,960 --> 00:56:44,205 col · lisió en una taula hash? 1163 00:56:44,205 --> 00:56:44,915 >> AUDIÈNCIA: La programació lineal. 1164 00:56:44,915 --> 00:56:45,540 >> JASON Hirschhorn: Programació lineal. 1165 00:56:45,540 --> 00:56:47,770 Així que seguirem buscant per al següent punt obert. 1166 00:56:47,770 --> 00:56:50,390 Això no és temps d'inserció constant. 1167 00:56:50,390 --> 00:56:52,266 Vostè podria haver de passar per tota la taula, de manera que 1168 00:56:52,266 --> 00:56:53,936 podria ser gran O de n. 1169 00:56:53,936 --> 00:56:54,740 Sí 1170 00:56:54,740 --> 00:56:57,690 >> AUDIÈNCIA: Si no gairebé encadenar? 1171 00:56:57,690 --> 00:57:00,160 >> JASON Hirschhorn: Vam encadenament separat. 1172 00:57:00,160 --> 00:57:00,720 Aquesta va ser la primera. 1173 00:57:00,720 --> 00:57:01,560 Això és el que la llista d'enllaços. 1174 00:57:01,560 --> 00:57:03,720 El nom de fantasia és encadenament separat. 1175 00:57:03,720 --> 00:57:06,880 Podria ser qualsevol tipus d'estructura de la llista ens ha tocat fer a la llista d'enllaços. 1176 00:57:06,880 --> 00:57:10,490 >> Així que de nou, la inserció en una taula hash podria ser la constant de temps. 1177 00:57:10,490 --> 00:57:13,160 Què passa amb la inserció en una cua apilador? 1178 00:57:13,160 --> 00:57:19,260 1179 00:57:19,260 --> 00:57:20,640 >> AUDIÈNCIA: No és constant? 1180 00:57:20,640 --> 00:57:21,530 >> JASON Hirschhorn: És la constant de temps. 1181 00:57:21,530 --> 00:57:23,420 No ets més que empènyer a engegar. 1182 00:57:23,420 --> 00:57:24,120 D'acord. 1183 00:57:24,120 --> 00:57:25,380 Inserció, quins eren els altres? 1184 00:57:25,380 --> 00:57:27,100 En un intent? 1185 00:57:27,100 --> 00:57:30,252 Què és la gran O d'inserció en una oportunitat? 1186 00:57:30,252 --> 00:57:32,808 >> AUDIÈNCIA: La longitud és constant. 1187 00:57:32,808 --> 00:57:34,560 Longitud dels més llargs - 1188 00:57:34,560 --> 00:57:36,998 la longitud de la paraula vas a inserir. 1189 00:57:36,998 --> 00:57:38,210 >> JASON Hirschhorn: Ho sents? 1190 00:57:38,210 --> 00:57:39,120 Espera, així que el que vaig sentir? 1191 00:57:39,120 --> 00:57:40,260 Vostè va dir -, què vas dir? 1192 00:57:40,260 --> 00:57:41,650 Quina va ser la seva resposta, Marcus? 1193 00:57:41,650 --> 00:57:43,640 >> AUDIÈNCIA: La longitud de la paraula vas a inserir en caràcters, 1194 00:57:43,640 --> 00:57:45,480 assumint que és una prova de caràcter. 1195 00:57:45,480 --> 00:57:46,840 >> JASON Hirschhorn: OK, així que la longitud de la paraula. 1196 00:57:46,840 --> 00:57:49,500 Anem a fer una suposició que és una cadena de caràcters. 1197 00:57:49,500 --> 00:57:51,930 Vostè ha dit una cosa diferent, però. 1198 00:57:51,930 --> 00:57:55,490 Vostè va dir que la longitud de paraula més llarga. 1199 00:57:55,490 --> 00:57:57,600 >> AUDIÈNCIA: Això és només constant, no? 1200 00:57:57,600 --> 00:57:58,440 >> JASON Hirschhorn: Per què sigui constant? 1201 00:57:58,440 --> 00:58:00,970 >> AUDIÈNCIA: Igual que, si s'utilitza gran O notació, llavors no varien en funció de 1202 00:58:00,970 --> 00:58:04,680 de la quantitat de coses que ja estan en l'intent. 1203 00:58:04,680 --> 00:58:07,344 >> JASON Hirschhorn: De manera que ho faria diuen que és la constant de temps. 1204 00:58:07,344 --> 00:58:11,840 És inserció constant, i això és perquè aquesta idea - 1205 00:58:11,840 --> 00:58:14,820 diguem que tenim una paraula que és de 45 anys, o una paraula que és el 60, que 1206 00:58:14,820 --> 00:58:16,800 té un nombre constant. 1207 00:58:16,800 --> 00:58:21,050 I que només s'inseriria en temps constant. 1208 00:58:21,050 --> 00:58:26,060 >> A la pràctica, però, no seria, òbviament, succeir en un mil · lisegon, 1209 00:58:26,060 --> 00:58:26,590 per exemple. 1210 00:58:26,590 --> 00:58:28,880 Però diríem gran O és constant per intentar-ho. 1211 00:58:28,880 --> 00:58:31,330 I aquesta és una de les seves avantatges. 1212 00:58:31,330 --> 00:58:33,330 >> Què passa amb la inserció en una llista d'enllaços? 1213 00:58:33,330 --> 00:58:37,220 Només una, ordenades llista d'enllaços genèric? 1214 00:58:37,220 --> 00:58:37,700 Sí 1215 00:58:37,700 --> 00:58:38,530 >> AUDIÈNCIA: jo tenia una pregunta. 1216 00:58:38,530 --> 00:58:42,670 En la prova, és que alguna vegada ens la demani temps d'inserció que és quatre passos, 1217 00:58:42,670 --> 00:58:43,270 o alguna cosa així? 1218 00:58:43,270 --> 00:58:44,300 O és només - 1219 00:58:44,300 --> 00:58:47,670 quan dius temps d'inserció és una, això només vol dir que la constant de temps? 1220 00:58:47,670 --> 00:58:49,770 >> JASON Hirschhorn: Sí, ho farien sempre preguntar, és gran O de n? 1221 00:58:49,770 --> 00:58:51,440 Big O de log n? 1222 00:58:51,440 --> 00:58:53,960 N al quadrat constant. 1223 00:58:53,960 --> 00:58:56,520 Aquests són realment l'única els que necessita saber. 1224 00:58:56,520 --> 00:58:58,420 Què passa amb la inserció en ordenats llista d'enllaços? 1225 00:58:58,420 --> 00:58:59,440 >> AUDIÈNCIA: jo tenia una pregunta - 1226 00:58:59,440 --> 00:58:59,980 una pregunta - 1227 00:58:59,980 --> 00:59:01,060 >> JASON Hirschhorn: Quina és la resposta a aquesta pregunta, però? 1228 00:59:01,060 --> 00:59:02,120 >> AUDIÈNCIA: Espera, què ho preguntes? 1229 00:59:02,120 --> 00:59:06,750 >> JASON Hirschhorn: Què és la gran O de inserció en una llista d'enllaços ordenats? 1230 00:59:06,750 --> 00:59:07,070 >> AUDIÈNCIA: One? 1231 00:59:07,070 --> 00:59:09,400 No s'espera, sense esperar, n. 1232 00:59:09,400 --> 00:59:11,420 >> JASON Hirschhorn: N. més la llista d'enllaços. 1233 00:59:11,420 --> 00:59:12,706 I quina era la seva pregunta? 1234 00:59:12,706 --> 00:59:16,440 >> AUDIÈNCIA: Així que escriuries o de k o o 1 per al - 1235 00:59:16,440 --> 00:59:18,150 >> JASON Hirschhorn: Oh. 1236 00:59:18,150 --> 00:59:21,830 M'agradaria escriure o d'1, probablement. 1237 00:59:21,830 --> 00:59:24,160 Hi havia una altra estructura de dades això hauria estat bo. 1238 00:59:24,160 --> 00:59:25,730 Arbre, arbre binari de cerca. 1239 00:59:25,730 --> 00:59:27,510 El inserció en un arbre binari de cerca? 1240 00:59:27,510 --> 00:59:31,190 1241 00:59:31,190 --> 00:59:33,900 >> AUDIÈNCIA: Login. 1242 00:59:33,900 --> 00:59:39,260 >> JASON Hirschhorn: Llavors, quina és la pitjor cas en un arbre binari de cerca? 1243 00:59:39,260 --> 00:59:45,350 Així que si ens toca començar a les 5, i cada nombre és més gran que 5, i després 1244 00:59:45,350 --> 00:59:48,760 tenim 5, 7, 9, 11, etc. 1245 00:59:48,760 --> 00:59:52,255 En aquest cas, és bàsicament un enllaç llista, i hem d'inserir tota 1246 00:59:52,255 --> 00:59:52,680 la forma a l'extrem. 1247 00:59:52,680 --> 00:59:54,350 Així que és gran O de n. 1248 00:59:54,350 --> 00:59:57,720 >> Aquesta podria ser la nostra pitjor dels casos en un arbre de cerca binària. 1249 00:59:57,720 --> 01:00:00,890 Òbviament, mai es construirà un arbre de recerca binari amb 5 a la 1250 01:00:00,890 --> 01:00:04,270 mitjà, sabent que 5 ser el número més baix. 1251 01:00:04,270 --> 01:00:08,030 Però podria ser, si ets començar des de zero. 1252 01:00:08,030 --> 01:00:10,980 Teniu alguna pregunta respecte això abans que passar a una altra pregunta? 1253 01:00:10,980 --> 01:00:11,560 Aquesta era una bona pregunta. 1254 01:00:11,560 --> 01:00:15,100 Sabria gran O de - 1255 01:00:15,100 --> 01:00:18,620 >> AUDIÈNCIA: Què passa amb la recerca per als quatre? 1256 01:00:18,620 --> 01:00:20,400 >> JASON Hirschhorn: Definitivament ens tenia recerca i classificació. 1257 01:00:20,400 --> 01:00:22,160 Vam fer tots els algoritmes, és clar. 1258 01:00:22,160 --> 01:00:23,390 Esperi, va ser que per a la prova 1? 1259 01:00:23,390 --> 01:00:23,980 Va ser això cobert - 1260 01:00:23,980 --> 01:00:25,860 Ja ha de pregunta en la prova 1? 1261 01:00:25,860 --> 01:00:29,650 El gran temps d'execució O de recerca binària, ordenació per inserció, l'ordenació de bombolla? 1262 01:00:29,650 --> 01:00:30,160 >> AUDIÈNCIA: Si. 1263 01:00:30,160 --> 01:00:32,790 >> JASON Hirschhorn: Si haguessis de pregunta sobre la Prova 0, les probabilitats són que no ho faràs 1264 01:00:32,790 --> 01:00:35,180 aconseguir exactament la mateixa pregunta a la prova 1. 1265 01:00:35,180 --> 01:00:36,300 Podria ser bo saber això. 1266 01:00:36,300 --> 01:00:38,520 Hauríeu de poder saber gh ja. 1267 01:00:38,520 --> 01:00:40,740 >> Però altres temps d'execució logarítmiques són probablement bo saber-ho. 1268 01:00:40,740 --> 01:00:42,890 Les coses que no van ser coberts en concurs 0. 1269 01:00:42,890 --> 01:00:47,300 Igual que tots aquests operadors en aquests tipus de dades abstractes. 1270 01:00:47,300 --> 01:00:50,760 >> OK, seguirem endavant. 1271 01:00:50,760 --> 01:00:52,190 Aquest ha de ser bastant ràpid. 1272 01:00:52,190 --> 01:00:56,170 I aquest és un nou llenguatge que no tenim en realitat codificada en abans. 1273 01:00:56,170 --> 01:00:59,300 Aquesta és una pregunta que demana codificar en PHP. 1274 01:00:59,300 --> 01:01:01,950 Així que considera la matriu PHP a continuació. 1275 01:01:01,950 --> 01:01:06,150 Escriure codis PHP i / o HTML, que sortida a una taula de dues columnes amb TFS 1276 01:01:06,150 --> 01:01:08,810 noms i cases. 1277 01:01:08,810 --> 01:01:11,600 >> Vostè mai ha fet això abans, aquest problema específic. 1278 01:01:11,600 --> 01:01:16,270 Però això ha de ser molt familiar per el que vas fer en el problema conjunt juliol. 1279 01:01:16,270 --> 01:01:21,250 Així que jo estaria disposat a apostar que serà demanat que codificar alguna cosa en PHP que 1280 01:01:21,250 --> 01:01:23,880 és molt similar al que van fer en conjunt de problemes 7. 1281 01:01:23,880 --> 01:01:26,300 >> En primer lloc, la matriu no és tan específic. 1282 01:01:26,300 --> 01:01:28,140 Quin tipus d'arranjament és això? 1283 01:01:28,140 --> 01:01:29,080 >> AUDIÈNCIA: Associatiu. 1284 01:01:29,080 --> 01:01:31,250 >> JASON Hirschhorn: És una matriu associativa. 1285 01:01:31,250 --> 01:01:33,750 I quina és la diferència entre una array associatiu i un objecte? 1286 01:01:33,750 --> 01:01:41,780 1287 01:01:41,780 --> 01:01:44,857 >> AUDIÈNCIA: Una matriu d'objectes té un índex d'enters i una matriu associativa 1288 01:01:44,857 --> 01:01:47,814 és un índex d'una cadena, o alguna cosa per l'estil. 1289 01:01:47,814 --> 01:01:50,570 1290 01:01:50,570 --> 01:01:54,880 >> JASON Hirschhorn: Així que una gran varietat de objectes tindrien índexs de 1291 01:01:54,880 --> 01:01:57,090 sencers, però un objecte té camps. 1292 01:01:57,090 --> 01:02:01,590 Té els noms de camp com nom, casa, estudiant. 1293 01:02:01,590 --> 01:02:03,720 Té una idea? 1294 01:02:03,720 --> 01:02:06,630 >> AUDIÈNCIA: Bé, associatiu array és en PHP, oi? 1295 01:02:06,630 --> 01:02:07,880 I és objecte en JavaScript? 1296 01:02:07,880 --> 01:02:12,330 1297 01:02:12,330 --> 01:02:14,820 >> JASON Hirschhorn: Honestament, no hi ha diferència real entre els dos. 1298 01:02:14,820 --> 01:02:19,540 Tots dos tenen cadenes com les claus, i pot tenen bàsicament qualsevol cosa com a valor. 1299 01:02:19,540 --> 01:02:21,250 Diferents idiomes truqui a un El matriu associativa, 1300 01:02:21,250 --> 01:02:22,750 una cosa un objecte. 1301 01:02:22,750 --> 01:02:25,960 Així que, honestament, no hi ha una veritable diferència, però no hi ha dubte 1302 01:02:25,960 --> 01:02:27,730 diferències sintàctiques entre els dos. 1303 01:02:27,730 --> 01:02:28,200 Sí 1304 01:02:28,200 --> 01:02:33,580 >> AUDIÈNCIA: Així és objecte també codifica sota la campana com una taula hash, llavors? 1305 01:02:33,580 --> 01:02:35,796 >> JASON Hirschhorn: El que es fa dir, codificats sota el capó? 1306 01:02:35,796 --> 01:02:38,017 >> AUDIÈNCIA: Ens van dir que associatiu varietat era tècnicament un 1307 01:02:38,017 --> 01:02:39,960 la taula de hash. 1308 01:02:39,960 --> 01:02:44,510 Així que és objecte també tècnicament taules hash? 1309 01:02:44,510 --> 01:02:45,350 >> JASON Hirschhorn: Jo no vaig per respondre a aquesta pregunta. 1310 01:02:45,350 --> 01:02:46,600 Em posaré en contacte amb vostè en això. 1311 01:02:46,600 --> 01:02:48,980 Però no se m'acudiria, ja sigui dels que són com això. 1312 01:02:48,980 --> 01:02:53,790 Però, en qualsevol forma, matriu associativa i objecte, en general, la gent fa servir els 1313 01:02:53,790 --> 01:02:54,910 termes indistintament. 1314 01:02:54,910 --> 01:02:57,630 En aquest cas, la part freda és que vostè pot utilitzar les tecles. 1315 01:02:57,630 --> 01:03:00,580 Cadenes com a claus, en lloc de només números simples. 1316 01:03:00,580 --> 01:03:02,070 >> Així que he estat parlant això per una estona. 1317 01:03:02,070 --> 01:03:04,090 Amb sort, algunes persones tenen fet més que començar en això. 1318 01:03:04,090 --> 01:03:08,050 Escriurem una mica de PHP i HTML codi, de manera que tenim una de dues columnes 1319 01:03:08,050 --> 01:03:11,830 taula amb noms i cases de TFS. 1320 01:03:11,830 --> 01:03:15,380 >> Bé, també m'agradaria una capçalera remar en aquesta taula. 1321 01:03:15,380 --> 01:03:18,410 Així que vaig a anar directe en això. 1322 01:03:18,410 --> 01:03:20,770 Presentarem, nou, i anem a - 1323 01:03:20,770 --> 01:03:27,780 1324 01:03:27,780 --> 01:03:28,320 >> D'acord. 1325 01:03:28,320 --> 01:03:29,970 Com començament a una taula? 1326 01:03:29,970 --> 01:03:32,090 Quina és l'etiqueta, Michael, per iniciar una taula? 1327 01:03:32,090 --> 01:03:32,890 >> AUDIÈNCIA: Taula. 1328 01:03:32,890 --> 01:03:34,020 >> JASON Hirschhorn: Taula. 1329 01:03:34,020 --> 01:03:37,870 I si obro una etiqueta, el que més necessito? 1330 01:03:37,870 --> 01:03:39,810 >> AUDIÈNCIA: Al capdavant? 1331 01:03:39,810 --> 01:03:41,040 O bé, suposo, de classe. 1332 01:03:41,040 --> 01:03:41,730 >> JASON Hirschhorn: Així que, ho sento. 1333 01:03:41,730 --> 01:03:45,430 Suposem que ja hem escrit doctab, HTML, totes aquestes coses. 1334 01:03:45,430 --> 01:03:50,230 Però si obro aquesta etiqueta taula, el que més he d'escriure? 1335 01:03:50,230 --> 01:03:53,450 per validar HTML? 1336 01:03:53,450 --> 01:03:55,000 >> AUDIÈNCIA: tancar-la. 1337 01:03:55,000 --> 01:03:56,050 >> JASON Hirschhorn: Tancament l'etiqueta. 1338 01:03:56,050 --> 01:03:57,575 Com s'escriu una etiqueta de prop taula? 1339 01:03:57,575 --> 01:03:59,580 >> AUDIÈNCIA: Dot slash taula. 1340 01:03:59,580 --> 01:04:00,960 >> JASON Hirschhorn: Raya vertical de taula, molt bé. 1341 01:04:00,960 --> 01:04:02,730 Probablement té sentit escriure tant de les juntes perquè 1342 01:04:02,730 --> 01:04:03,870 ho has de fer. 1343 01:04:03,870 --> 01:04:08,575 Bé, si vull una fila de capçalera, com Escric una fila de capçalera amb els títols? 1344 01:04:08,575 --> 01:04:11,650 1345 01:04:11,650 --> 01:04:19,290 >> AUDIÈNCIA: És menys de 10 hores a prop - 1346 01:04:19,290 --> 01:04:21,550 TR, si. 1347 01:04:21,550 --> 01:04:22,100 >> JASON Hirschhorn: TR? 1348 01:04:22,100 --> 01:04:25,080 >> AUDIÈNCIA: Llavors el mateix, la barra, si. 1349 01:04:25,080 --> 01:04:26,610 >> JASON Hirschhorn: OK, i dóna'm dues columnes. 1350 01:04:26,610 --> 01:04:30,100 1351 01:04:30,100 --> 01:04:33,210 >> AUDIÈNCIA: T D? 1352 01:04:33,210 --> 01:04:34,460 >> JASON Hirschhorn: OK. 1353 01:04:34,460 --> 01:04:37,730 1354 01:04:37,730 --> 01:04:39,520 Vull dues columnes. 1355 01:04:39,520 --> 01:04:40,960 Això em dóna dues columnes? 1356 01:04:40,960 --> 01:04:43,880 Quantes columnes és això? 1357 01:04:43,880 --> 01:04:45,920 Una. 1358 01:04:45,920 --> 01:04:47,170 Així que anem a copiar i enganxar això. 1359 01:04:47,170 --> 01:04:59,750 1360 01:04:59,750 --> 01:05:03,390 >> Així que en realitat, en l'examen, tot aquest codi que hem escrit fins ara era 1361 01:05:03,390 --> 01:05:04,710 realitat que li donen. 1362 01:05:04,710 --> 01:05:06,200 Però vostè ha probablement encara saber com escriure-ho. 1363 01:05:06,200 --> 01:05:06,470 Sí 1364 01:05:06,470 --> 01:05:10,636 >> AUDIÈNCIA: La teva casa està entre les dues. 1365 01:05:10,636 --> 01:05:11,130 >> JASON Hirschhorn: Boom. 1366 01:05:11,130 --> 01:05:12,720 S'ha d'anar a la dreta, no? 1367 01:05:12,720 --> 01:05:14,600 Bona decisió. 1368 01:05:14,600 --> 01:05:17,760 Així que de nou, tot aquest codi és en realitat que li ha assignat en l'examen real. 1369 01:05:17,760 --> 01:05:19,570 Però és divertit d'escriure, i vostè ha de saber com escriure-ho. 1370 01:05:19,570 --> 01:05:23,640 Així que aquí és on vostè necessita per iniciar el seu codi. 1371 01:05:23,640 --> 01:05:25,150 Què necessitem per escriure aquí? 1372 01:05:25,150 --> 01:05:28,640 1373 01:05:28,640 --> 01:05:30,565 >> Ho sentim, però he de canviar el nom d'aquest arxiu. 1374 01:05:30,565 --> 01:05:41,180 1375 01:05:41,180 --> 01:05:44,270 Així que ens estalviem en un arxiu HTML., no en un arxiu PHP .. 1376 01:05:44,270 --> 01:05:47,030 Aquestes coses no significarien res en un arxiu PHP .. 1377 01:05:47,030 --> 01:05:48,500 Així que estem en un arxiu HTML .. 1378 01:05:48,500 --> 01:05:50,090 ¿Què és el primer He de escriure? 1379 01:05:50,090 --> 01:05:52,990 Vull posar una mica de PHP codi en un arxiu HTML. 1380 01:05:52,990 --> 01:05:57,300 >> AUDIÈNCIA: PHP, com un altre de pastanaga i signe d'interrogació PHP, oi? 1381 01:05:57,300 --> 01:05:58,310 >> JASON Hirschhorn: Molt bé. 1382 01:05:58,310 --> 01:05:59,360 I com puc acabar això? 1383 01:05:59,360 --> 01:06:02,510 >> AUDIÈNCIA: Amb un signe d'interrogació. 1384 01:06:02,510 --> 01:06:03,120 >> JASON Hirschhorn: Això és genial. 1385 01:06:03,120 --> 01:06:07,090 Aquesta és la primera cosa que necessito si vull posar una mica de codi PHP a aquí. 1386 01:06:07,090 --> 01:06:11,210 >> AUDIÈNCIA:. Vaig pensar que un PHP arxiu podria tenir HTML. 1387 01:06:11,210 --> 01:06:12,290 >> JASON Hirschhorn: Si. 1388 01:06:12,290 --> 01:06:15,330 Un arxiu PHP. Podeu portar el seu HTML i visualitzar. 1389 01:06:15,330 --> 01:06:16,450 Aquest va ser el meu error. 1390 01:06:16,450 --> 01:06:18,300 Jo només estava tractant d'imitar el que era en el qüestionari. 1391 01:06:18,300 --> 01:06:21,910 1392 01:06:21,910 --> 01:06:24,720 >> Bé, ho sento per confondre't. 1393 01:06:24,720 --> 01:06:25,550 Sí, practice.HTML. 1394 01:06:25,550 --> 01:06:27,340 Ara posarem una mica de codi PHP polz 1395 01:06:27,340 --> 01:06:30,530 Quina és la primera línia de Codi PHP he d'escriure? 1396 01:06:30,530 --> 01:06:33,360 Vaig a anar a través d'aquesta matriu i convertir-la en una taula. 1397 01:06:33,360 --> 01:06:34,600 Sí 1398 01:06:34,600 --> 01:06:37,160 >> AUDIÈNCIA: Vostè pot utilitzar un bucle for H o ​​un bucle for. 1399 01:06:37,160 --> 01:06:38,415 >> JASON Hirschhorn: OK, què Què vols fer servir? 1400 01:06:38,415 --> 01:06:40,720 >> AUDIÈNCIA: M'agradaria utilitzar un bucle for. 1401 01:06:40,720 --> 01:06:48,700 Per, i després ho fa el signe de dòlar i és igual a 0 i coma dòlar 1402 01:06:48,700 --> 01:06:51,580 signar i inferior a 2. 1403 01:06:51,580 --> 01:06:55,455 I llavors coma i dòlar signar i plus plus. 1404 01:06:55,455 --> 01:07:01,890 1405 01:07:01,890 --> 01:07:03,880 >> JASON Hirschhorn: Com vostè sap utilitzar febrer 1? 1406 01:07:03,880 --> 01:07:10,444 >> AUDIÈNCIA: Perquè hi havia dos matrius associatives dins de la més gran 1407 01:07:10,444 --> 01:07:11,960 matriu associativa. 1408 01:07:11,960 --> 01:07:13,610 >> JASON Hirschhorn: Així que el més gran de no un conjunt associat. 1409 01:07:13,610 --> 01:07:15,500 El més important és simplement una matriu normal. 1410 01:07:15,500 --> 01:07:17,380 Però tens raó, hi ha dues matrius associatives 1411 01:07:17,380 --> 01:07:18,910 dins de la nostra gamma més gran. 1412 01:07:18,910 --> 01:07:20,310 És per això que utilitza dos. 1413 01:07:20,310 --> 01:07:24,270 Em sento incòmode assumir que són 2, així que el que és una manera d'escriure 1414 01:07:24,270 --> 01:07:26,810 això sense assumir que són 2? 1415 01:07:26,810 --> 01:07:27,507 >> AUDIÈNCIA: [inaudible]? 1416 01:07:27,507 --> 01:07:29,165 >> JASON Hirschhorn: OK, com Com s'escriu això? 1417 01:07:29,165 --> 01:07:35,262 >> AUDIÈNCIA: signe de dòlar foreach tfs o com a signe de dòlar tf. 1418 01:07:35,262 --> 01:07:38,360 1419 01:07:38,360 --> 01:07:41,960 >> JASON Hirschhorn: OK, així que per a cada tfs tfs com, vull, ara 1420 01:07:41,960 --> 01:07:43,650 de nou, tenir la meva taula. 1421 01:07:43,650 --> 01:07:45,250 Llavors, qui em pot donar la següent línia de codi? 1422 01:07:45,250 --> 01:07:52,870 1423 01:07:52,870 --> 01:07:59,810 >> AUDIÈNCIA: Imprimir i, a continuació, en cites, extrem tr suport 1424 01:07:59,810 --> 01:08:02,670 suport, fi de la cita. 1425 01:08:02,670 --> 01:08:05,300 Parèntesi End, i coma. 1426 01:08:05,300 --> 01:08:07,135 >> JASON Hirschhorn: OK, i Què és això que farà? 1427 01:08:07,135 --> 01:08:08,610 >> AUDIÈNCIA: Es dirà, nova fila. 1428 01:08:08,610 --> 01:08:11,070 Es posarà el etiquetar per a una nova fila. 1429 01:08:11,070 --> 01:08:13,000 >> JASON Hirschhorn: Correcte, aquest PHP, com hem parlat abans - aquesta 1430 01:08:13,000 --> 01:08:22,160 PHP serà avaluat, i després que voleu imprimir en l'arxiu una 1431 01:08:22,160 --> 01:08:26,350 taula de remolc i, a continuació, que S'avaluarà HTML. 1432 01:08:26,350 --> 01:08:27,810 Només estem copiant aquest HTML que vam tenir aquí. 1433 01:08:27,810 --> 01:08:28,120 Sí 1434 01:08:28,120 --> 01:08:29,470 >> AUDIÈNCIA: [inaudible]? 1435 01:08:29,470 --> 01:08:30,290 >> JASON Hirschhorn: Ho sents? 1436 01:08:30,290 --> 01:08:31,240 Està just aquí. 1437 01:08:31,240 --> 01:08:33,590 Tardor 2012. 1438 01:08:33,590 --> 01:08:35,970 No miri les respostes, anem a resoldre junts. 1439 01:08:35,970 --> 01:08:37,330 Així imprimim fila de la taula. 1440 01:08:37,330 --> 01:08:38,550 Així que és probable que en el ritme de les coses. 1441 01:08:38,550 --> 01:08:41,060 Quina és la pròxima línia de codi que necessitem per escriure? 1442 01:08:41,060 --> 01:08:42,926 Assam, dóna'm la següent línia de codi. 1443 01:08:42,926 --> 01:08:46,290 >> AUDIÈNCIA: Cal el nom del tf. 1444 01:08:46,290 --> 01:08:54,319 Tf suports oberts cometes nomenar suports tancats. 1445 01:08:54,319 --> 01:08:57,310 >> JASON Hirschhorn: Deme el seu nom. 1446 01:08:57,310 --> 01:08:58,540 >> AUDIÈNCIA: Vostè necessita imprimir això. 1447 01:08:58,540 --> 01:08:59,790 >> [VEUS interposant] 1448 01:08:59,790 --> 01:09:01,963 1449 01:09:01,963 --> 01:09:03,430 >> JASON Hirschhorn: OK, Com ho imprimeixo? 1450 01:09:03,430 --> 01:09:04,680 >> [VEUS interposant] 1451 01:09:04,680 --> 01:09:08,609 1452 01:09:08,609 --> 01:09:10,350 >> JASON Hirschhorn: em falta alguna cosa ara. 1453 01:09:10,350 --> 01:09:12,470 Què m'estic perdent? 1454 01:09:12,470 --> 01:09:13,720 >> AUDIÈNCIA: Vostè necessita un signe de dòlar. 1455 01:09:13,720 --> 01:09:15,960 1456 01:09:15,960 --> 01:09:17,210 >> JASON Hirschhorn: Què cosa que m'estic perdent? 1457 01:09:17,210 --> 01:09:20,100 1458 01:09:20,100 --> 01:09:21,650 Tots hem imprès fins al moment és el tr. 1459 01:09:21,650 --> 01:09:25,589 1460 01:09:25,589 --> 01:09:27,470 >> AUDIÈNCIA: Tanqueu el tr després d'ella. 1461 01:09:27,470 --> 01:09:28,720 >> JASON Hirschhorn: Així que necessitem per tancar el TR després. 1462 01:09:28,720 --> 01:09:34,390 1463 01:09:34,390 --> 01:09:37,906 Qui veu el que ens falta en la línia 16? 1464 01:09:37,906 --> 01:09:39,340 Sí, Anna. 1465 01:09:39,340 --> 01:09:47,050 >> AUDIÈNCIA: Vostè necessita obrir 01:00 td i claus. 1466 01:09:47,050 --> 01:09:49,380 >> JASON Hirschhorn: I on posem les claus? 1467 01:09:49,380 --> 01:09:51,790 >> AUDIÈNCIA: Al voltant del nom tf. 1468 01:09:51,790 --> 01:09:53,080 >> JASON Hirschhorn: Així? 1469 01:09:53,080 --> 01:09:55,420 >> AUDIÈNCIA: Si. 1470 01:09:55,420 --> 01:09:59,000 I a continuació, tanqui el td. 1471 01:09:59,000 --> 01:10:00,250 >> JASON Hirschhorn: Així? 1472 01:10:00,250 --> 01:10:03,370 1473 01:10:03,370 --> 01:10:06,950 >> AUDIÈNCIA: Necessita cometes marques al costat de les claus? 1474 01:10:06,950 --> 01:10:07,460 >> JASON Hirschhorn: Aquí mateix? 1475 01:10:07,460 --> 01:10:08,710 No, no ho fas. 1476 01:10:08,710 --> 01:10:10,820 1477 01:10:10,820 --> 01:10:12,550 Així que això és exactament correcte. 1478 01:10:12,550 --> 01:10:12,940 Sí 1479 01:10:12,940 --> 01:10:15,290 >> AUDIÈNCIA: Així que la diferència entre aquest i encatenating amb punts és, si 1480 01:10:15,290 --> 01:10:18,420 utilitza punts, vostè hauria de tenir la cometes dobles, a continuació, un punt, 1481 01:10:18,420 --> 01:10:20,370 llavors el punt - 1482 01:10:20,370 --> 01:10:20,520 >> JASON Hirschhorn: Correcte. 1483 01:10:20,520 --> 01:10:23,800 Així que estàs dient que hi ha un final manera d'escriure aquesta així. 1484 01:10:23,800 --> 01:10:26,760 1485 01:10:26,760 --> 01:10:28,966 El que l'operador de concatenació en JavaScript? 1486 01:10:28,966 --> 01:10:31,200 >> AUDIÈNCIA: Un signe més. 1487 01:10:31,200 --> 01:10:34,710 Vostè es va oblidar de posar el arrissat cotilla per a l'esquena. 1488 01:10:34,710 --> 01:10:35,760 >> JASON Hirschhorn: Molt bé. 1489 01:10:35,760 --> 01:10:38,850 I hi ha una línia més de codi que falta. 1490 01:10:38,850 --> 01:10:40,130 Qui em pot donar l'última línia de codi que ens falta? 1491 01:10:40,130 --> 01:10:43,940 1492 01:10:43,940 --> 01:10:47,602 >> AUDIÈNCIA: Només exactament el mateix, només amb la casa en lloc del nom. 1493 01:10:47,602 --> 01:10:52,960 1494 01:10:52,960 --> 01:10:53,450 Gran 1495 01:10:53,450 --> 01:10:54,390 >> JASON Hirschhorn: Molt bé. 1496 01:10:54,390 --> 01:10:59,320 I la seva sintaxi és exactament l'adequat per fer les coses en una matriu associativa. 1497 01:10:59,320 --> 01:11:04,450 Així que en la prova real, vostè és realitat donada fins aquí. 1498 01:11:04,450 --> 01:11:05,710 Així que aquest codi se li va donar a vostè. 1499 01:11:05,710 --> 01:11:07,750 Tot el que havia d'escriure eren aquests quatre línies i recordar 1500 01:11:07,750 --> 01:11:09,190 tancar l'etiqueta de taula. 1501 01:11:09,190 --> 01:11:11,370 Vostès realment va fer tot això i més. 1502 01:11:11,370 --> 01:11:11,810 Sí 1503 01:11:11,810 --> 01:11:14,850 >> AUDIÈNCIA: Així que seria funcionalment el mateix si vostè acaba de tenir que tots en 1504 01:11:14,850 --> 01:11:17,250 una trucada impressió gran, oi? 1505 01:11:17,250 --> 01:11:19,630 I a continuació, només concatenat en, et cetera? 1506 01:11:19,630 --> 01:11:20,730 >> JASON Hirschhorn: Així? 1507 01:11:20,730 --> 01:11:21,980 >> AUDIÈNCIA: Si. 1508 01:11:21,980 --> 01:11:23,810 1509 01:11:23,810 --> 01:11:26,940 Simplement no es veu bé si fossis mirar quan s'està inspeccionant 1510 01:11:26,940 --> 01:11:28,550 l'element al seu lloc web, no? 1511 01:11:28,550 --> 01:11:29,800 >> JASON Hirschhorn: Estic d'acord. 1512 01:11:29,800 --> 01:11:35,410 1513 01:11:35,410 --> 01:11:38,710 Si Vaig carregar aquesta pàgina web, seria jo capaç de veure el codi PHP, mai? 1514 01:11:38,710 --> 01:11:39,240 >> AUDIÈNCIA: No 1515 01:11:39,240 --> 01:11:40,080 >> JASON Hirschhorn: No 1516 01:11:40,080 --> 01:11:42,240 I, de fet, no ho faria. 1517 01:11:42,240 --> 01:11:43,920 >> AUDIÈNCIA: Aquest no és l'HTML, oi? 1518 01:11:43,920 --> 01:11:45,000 Així que vostè pot ser capaç de - 1519 01:11:45,000 --> 01:11:46,780 >> JASON Hirschhorn: Així que això faria PHP avaluar costat del servidor. 1520 01:11:46,780 --> 01:11:51,020 PHP sempre s'avalua costat del servidor, de manera que mai s'és capaç de veure el codi PHP. 1521 01:11:51,020 --> 01:11:52,980 >> AUDIÈNCIA: Però vostè seria capaç de veure el resultat de les impressions. 1522 01:11:52,980 --> 01:11:53,480 >> JASON Hirschhorn: així. 1523 01:11:53,480 --> 01:11:55,510 I sincerament, no podria posar tot en la línia. 1524 01:11:55,510 --> 01:11:59,740 Podria donar-li format molt bé per a vostè, o pot posar-la en una línia. 1525 01:11:59,740 --> 01:12:01,521 Incert. 1526 01:12:01,521 --> 01:12:03,596 Però això sí, bon punt. 1527 01:12:03,596 --> 01:12:06,470 >> AUDIÈNCIA: Com és que hi ha sense ressaltar text per 1528 01:12:06,470 --> 01:12:07,550 qualsevol dels comandaments de PHP? 1529 01:12:07,550 --> 01:12:09,370 Perquè jo recordo haver vist això. 1530 01:12:09,370 --> 01:12:11,620 >> JASON Hirschhorn: Perquè és una Arxiu. HTML aquí a la part superior. 1531 01:12:11,620 --> 01:12:20,390 1532 01:12:20,390 --> 01:12:21,650 Aquí el tens. 1533 01:12:21,650 --> 01:12:25,752 1534 01:12:25,752 --> 01:12:28,800 >> AUDIÈNCIA: Si ho féssim el mètode inicial amb la dels bucles, dreta, si ens 1535 01:12:28,800 --> 01:12:33,500 volgut accedir a un tfs, oi fer suport tfs 0 suport, llavors 1536 01:12:33,500 --> 01:12:35,180 [Inaudible]? 1537 01:12:35,180 --> 01:12:35,970 >> JASON Hirschhorn: El faries - 1538 01:12:35,970 --> 01:12:40,560 pel que dius per el bucle for ho faria en el signe de dòlar tfs suport 1 1539 01:12:40,560 --> 01:12:41,850 o I, és clar. 1540 01:12:41,850 --> 01:12:46,780 O signe de dòlar tanco suport i després claudàtor 1541 01:12:46,780 --> 01:12:49,600 cometes, si. 1542 01:12:49,600 --> 01:12:50,640 >> Bé, excel · lent. 1543 01:12:50,640 --> 01:12:53,020 Tenim un més un ràpid. 1544 01:12:53,020 --> 01:12:55,090 Set minuts, de manera que vull per repassar aquesta. 1545 01:12:55,090 --> 01:12:56,160 Aquest és un altre exemple. 1546 01:12:56,160 --> 01:12:58,740 Estem ara totalment un altre idioma. 1547 01:12:58,740 --> 01:12:59,990 >> Tenim una mica de codi HTML. 1548 01:12:59,990 --> 01:13:02,480 1549 01:13:02,480 --> 01:13:07,460 És una mica petita a la pantalla, però Vull que mira a través del que realment 1550 01:13:07,460 --> 01:13:11,140 ràpidament, i potser algú em digui, si jo fos a mostrar la pàgina web, 1551 01:13:11,140 --> 01:13:12,390 el que veuria? 1552 01:13:12,390 --> 01:13:22,710 1553 01:13:22,710 --> 01:13:26,450 Descriure tot el relacionat amb aquesta pàgina web. 1554 01:13:26,450 --> 01:13:28,630 Noè? 1555 01:13:28,630 --> 01:13:30,450 Què vaig a veure? 1556 01:13:30,450 --> 01:13:38,140 >> AUDIÈNCIA: Codi a la part davantera de Google, amb una idea de text i un 1557 01:13:38,140 --> 01:13:39,190 botó d'enviar. 1558 01:13:39,190 --> 01:13:41,180 >> JASON Hirschhorn: I què diria el botó? 1559 01:13:41,180 --> 01:13:42,430 >> AUDIÈNCIA: Submit. 1560 01:13:42,430 --> 01:13:44,620 1561 01:13:44,620 --> 01:13:45,160 Oh, en aquesta categoria. 1562 01:13:45,160 --> 01:13:45,840 Ho sento. 1563 01:13:45,840 --> 01:13:46,830 >> JASON Hirschhorn: Diria cerca. 1564 01:13:46,830 --> 01:13:47,520 Recordeu que el nom. 1565 01:13:47,520 --> 01:13:50,550 Per a què utilitzem el nom de? 1566 01:13:50,550 --> 01:13:53,774 Aquest atribut de nom, el que és que s'utilitza? 1567 01:13:53,774 --> 01:13:55,470 >> [VEUS interposant] 1568 01:13:55,470 --> 01:13:59,300 >> AUDIÈNCIA: Aquest és el seu nom per quan es fa clic? 1569 01:13:59,300 --> 01:14:00,160 >> JASON Hirschhorn: Això podria ser. 1570 01:14:00,160 --> 01:14:02,690 Però, ¿què és el que generalment veiem - per què estem donant aquesta col es diu? 1571 01:14:02,690 --> 01:14:03,830 Per què veiem això? 1572 01:14:03,830 --> 01:14:05,220 Sí 1573 01:14:05,220 --> 01:14:08,600 >> AUDIÈNCIA: Això no convertir índex de la variable súper global? 1574 01:14:08,600 --> 01:14:12,740 >> JASON Hirschhorn: Sí, generalment quan Així presentaria, i llavors, on 1575 01:14:12,740 --> 01:14:13,500 seria aquest present a? 1576 01:14:13,500 --> 01:14:14,750 En quina pàgina? 1577 01:14:14,750 --> 01:14:16,820 1578 01:14:16,820 --> 01:14:18,460 Noè, el que seria aquesta pàgina sotmetre a? 1579 01:14:18,460 --> 01:14:25,710 1580 01:14:25,710 --> 01:14:27,700 >> AUDIÈNCIA: No estic segur. 1581 01:14:27,700 --> 01:14:28,920 >> JASON Hirschhorn: On Podríem podem trobar-lo? 1582 01:14:28,920 --> 01:14:31,025 On trobes el que la pàgina se sotmet a? 1583 01:14:31,025 --> 01:14:32,850 Quina línia de codi? 1584 01:14:32,850 --> 01:14:34,040 >> AUDIÈNCIA: acció Form. 1585 01:14:34,040 --> 01:14:34,650 >> JASON Hirschhorn: Exactament. 1586 01:14:34,650 --> 01:14:35,130 Acció. 1587 01:14:35,130 --> 01:14:37,100 Pel que se sotmet a la pàgina de cerca. 1588 01:14:37,100 --> 01:14:38,630 Cerca barra invertida. 1589 01:14:38,630 --> 01:14:40,140 Així que això és exactament correcte. 1590 01:14:40,140 --> 01:14:40,680 Quin mètode? 1591 01:14:40,680 --> 01:14:42,090 >> AUDIÈNCIA: Obtenir. 1592 01:14:42,090 --> 01:14:42,490 >> JASON Hirschhorn: Obtenir. 1593 01:14:42,490 --> 01:14:43,420 Exactament. 1594 01:14:43,420 --> 01:14:44,490 Així llegim això. 1595 01:14:44,490 --> 01:14:45,180 Això serà una forma. 1596 01:14:45,180 --> 01:14:45,910 Tens tota la raó. 1597 01:14:45,910 --> 01:14:50,340 Dues coses sobre la forma, el títol de la pàgina i la part superior seria Google. 1598 01:14:50,340 --> 01:14:54,270 >> Així que aquí hi ha dues preguntes que ha de ser capaç de respondre sobre aquesta pàgina. 1599 01:14:54,270 --> 01:15:01,760 Si aquest codi HTML viu en aquest lloc web i l'usuari introdueix error en aquest text 1600 01:15:01,760 --> 01:15:06,900 camp aquí, què URL l'usuari a trobar-se a si mateixa en 1601 01:15:06,900 --> 01:15:08,150 enviar el formulari? 1602 01:15:08,150 --> 01:15:10,980 1603 01:15:10,980 --> 01:15:12,510 >> Així que tenim aquesta aquí. 1604 01:15:12,510 --> 01:15:13,720 Vaig a tornar a aquesta pàgina, però. 1605 01:15:13,720 --> 01:15:16,980 Vaig a escriure aquesta primera part. 1606 01:15:16,980 --> 01:15:18,230 Tots poden veure per aquí? 1607 01:15:18,230 --> 01:15:30,620 1608 01:15:30,620 --> 01:15:32,906 Bé, Mario, que creus que saps? 1609 01:15:32,906 --> 01:15:34,700 En quina pàgina? 1610 01:15:34,700 --> 01:15:37,630 >> AUDIÈNCIA: backslash cerca. 1611 01:15:37,630 --> 01:15:38,880 >> JASON Hirschhorn: Vaig per baixar aquí. 1612 01:15:38,880 --> 01:15:44,800 1613 01:15:44,800 --> 01:15:49,155 D'acord, la barra invertida question marca q és igual a error. 1614 01:15:49,155 --> 01:15:53,560 1615 01:15:53,560 --> 01:15:55,165 Algú té un suggeriment diferent? 1616 01:15:55,165 --> 01:15:57,910 1617 01:15:57,910 --> 01:15:59,160 Sí 1618 01:15:59,160 --> 01:16:01,700 1619 01:16:01,700 --> 01:16:03,740 >> Llavors, com fem perquè això? 1620 01:16:03,740 --> 01:16:05,520 Bé, hem vist això abans. 1621 01:16:05,520 --> 01:16:07,170 I se li va acudir això abans. 1622 01:16:07,170 --> 01:16:08,870 Tenies raó, Noah, que el acció ens està dient el que 1623 01:16:08,870 --> 01:16:11,700 pàgina anem a. 1624 01:16:11,700 --> 01:16:12,820 >> També sabem quin mètode. 1625 01:16:12,820 --> 01:16:13,420 Estem fent get. 1626 01:16:13,420 --> 01:16:17,040 I la diferència entre GET i POST és que aconsegueixen mostra a la URL 1627 01:16:17,040 --> 01:16:18,490 i després no ho fa. 1628 01:16:18,490 --> 01:16:22,760 Així que si escrivia pal dret hi ha al mètode, què seria diferent? 1629 01:16:22,760 --> 01:16:24,250 >> AUDIÈNCIA: Seria just ser la recerca de frega. 1630 01:16:24,250 --> 01:16:25,400 >> JASON Hirschhorn: seria només es frega la cerca. 1631 01:16:25,400 --> 01:16:27,400 Res per aquí anava a succeir. 1632 01:16:27,400 --> 01:16:30,030 Però pel fet que és un fer, la URL es mostra de la següent manera. 1633 01:16:30,030 --> 01:16:35,140 En primer lloc veiem un signe d'interrogació i veiem que el nom i el valor. 1634 01:16:35,140 --> 01:16:42,730 Digui hi havia un altre camp de text i Li vaig donar un nom de r i d'entrada un 1635 01:16:42,730 --> 01:16:45,220 valor, eruga. 1636 01:16:45,220 --> 01:16:48,560 Com seria això ara sembla? 1637 01:16:48,560 --> 01:16:52,040 Tinc un més camp de text, em donarà una nom de r i un valor d'eruga. 1638 01:16:52,040 --> 01:16:56,990 >> AUDIÈNCIA: Després de bar hauries l'eruga i comercial. 1639 01:16:56,990 --> 01:16:58,380 >> JASON Hirschhorn: Això és No ampersand. 1640 01:16:58,380 --> 01:17:00,500 >> AUDIÈNCIA: O només ho i el símbol. 1641 01:17:00,500 --> 01:17:01,330 >> JASON Hirschhorn: Sí, no. 1642 01:17:01,330 --> 01:17:03,700 Tenies raó, em vaig equivocar. 1643 01:17:03,700 --> 01:17:05,660 Això és com un g. 1644 01:17:05,660 --> 01:17:06,910 >> AUDIÈNCIA: Caterpillar. 1645 01:17:06,910 --> 01:17:08,840 1646 01:17:08,840 --> 01:17:11,090 r és igual a l'eruga, ho sento. 1647 01:17:11,090 --> 01:17:13,970 1648 01:17:13,970 --> 01:17:14,700 >> JASON Hirschhorn: Hi ha no r aquí? 1649 01:17:14,700 --> 01:17:16,680 >> AUDIÈNCIA: No, no n'hi ha. 1650 01:17:16,680 --> 01:17:18,030 >> JASON Hirschhorn: Parlarem sobre que després de la classe. 1651 01:17:18,030 --> 01:17:18,930 Això és exactament correcte. 1652 01:17:18,930 --> 01:17:20,530 Així que l'i és correcta. 1653 01:17:20,530 --> 01:17:23,430 I llavors vostè podria tenir molts d'aquests, i tots ells es poden concatenar 1654 01:17:23,430 --> 01:17:24,950 juntament amb que i. 1655 01:17:24,950 --> 01:17:25,900 Així que això és exactament correcte. 1656 01:17:25,900 --> 01:17:27,700 >> Hi ha una pregunta més. 1657 01:17:27,700 --> 01:17:30,676 Dibuixeu DOM d'aquest HTML, a partir amb el document. 1658 01:17:30,676 --> 01:17:33,330 1659 01:17:33,330 --> 01:17:34,570 Podríem fer això en dos minuts. 1660 01:17:34,570 --> 01:17:36,790 Ho farem aquí. 1661 01:17:36,790 --> 01:17:38,040 Vaig a tornar a aquesta pàgina web. 1662 01:17:38,040 --> 01:17:40,630 1663 01:17:40,630 --> 01:17:42,160 Bé, comencem amb el document. 1664 01:17:42,160 --> 01:17:49,698 1665 01:17:49,698 --> 01:17:52,090 >> Què segueix? 1666 01:17:52,090 --> 01:17:53,910 Així que quan vostè està llegint a través de - 1667 01:17:53,910 --> 01:17:54,540 >> AUDIÈNCIA: HTML. 1668 01:17:54,540 --> 01:17:55,790 >> JASON Hirschhorn: HTML és el següent. 1669 01:17:55,790 --> 01:17:57,850 Anirem etiqueta per etiqueta. 1670 01:17:57,850 --> 01:18:00,890 Què hi ha després d'HTML? 1671 01:18:00,890 --> 01:18:01,550 >> AUDIÈNCIA: Head. 1672 01:18:01,550 --> 01:18:02,800 >> JASON Hirschhorn: Head. 1673 01:18:02,800 --> 01:18:05,090 1674 01:18:05,090 --> 01:18:08,520 Què hi ha després del cap? 1675 01:18:08,520 --> 01:18:09,770 >> AUDIÈNCIA: Títol. 1676 01:18:09,770 --> 01:18:11,880 1677 01:18:11,880 --> 01:18:12,560 >> JASON Hirschhorn: Títol. 1678 01:18:12,560 --> 01:18:14,740 I el títol té un valor de Google, però jo no vaig a 1679 01:18:14,740 --> 01:18:16,240 escriure que en per ara. 1680 01:18:16,240 --> 01:18:18,750 Bé, a on va el cos? 1681 01:18:18,750 --> 01:18:20,890 >> AUDIÈNCIA: A més sortint de l'HTML. 1682 01:18:20,890 --> 01:18:21,490 >> JASON Hirschhorn: Exactament. 1683 01:18:21,490 --> 01:18:22,820 Cos surt d'aquí. 1684 01:18:22,820 --> 01:18:25,970 1685 01:18:25,970 --> 01:18:30,330 Tothom entén per què aquest és el cas? 1686 01:18:30,330 --> 01:18:32,970 Probablement hauria de ser capaç d'esbrinar això, també, encara que jo no tenia 1687 01:18:32,970 --> 01:18:33,665 aquest bonic sagnia. 1688 01:18:33,665 --> 01:18:37,680 >> La sagnia espècie del delata, però es pot veure que l'etiqueta del cap té 1689 01:18:37,680 --> 01:18:41,240 han tancat, la qual cosa ens indica que probablement no es pot baixar aquí. 1690 01:18:41,240 --> 01:18:43,460 Hem de tornar a pujar al Va ser just abans del cap 1691 01:18:43,460 --> 01:18:44,730 etiqueta, o en virtut d'això. 1692 01:18:44,730 --> 01:18:46,720 Estem encara amb l'etiqueta del cap. 1693 01:18:46,720 --> 01:18:48,560 >> I sota el cos va formulari. 1694 01:18:48,560 --> 01:18:50,300 Sota la forma, hi ha dues entrades. 1695 01:18:50,300 --> 01:18:53,330 1696 01:18:53,330 --> 01:18:54,420 D'acord. 1697 01:18:54,420 --> 01:18:55,490 Això és tot el que tinc. 1698 01:18:55,490 --> 01:18:56,980 Prova 1 és demà. 1699 01:18:56,980 --> 01:18:58,350 Estic tan emocionada per vostès. 1700 01:18:58,350 --> 01:18:59,690 Serà una explosió. 1701 01:18:59,690 --> 01:19:00,250 >> Si vostè té - 1702 01:19:00,250 --> 01:19:00,600 >> AUDIÈNCIA: [Aplaudiments] 1703 01:19:00,600 --> 01:19:02,460 >> JASON Hirschhorn: Oh per, per. 1704 01:19:02,460 --> 01:19:04,520 Però no, no estic fent broma. 1705 01:19:04,520 --> 01:19:07,220 Si vostè té alguna pregunta, per dret després de la secció, vaig a estar fora. 1706 01:19:07,220 --> 01:19:11,700 Si vostè té alguna pregunta aquesta nit, no dubteu a trucar, correu electrònic, Gchat, 1707 01:19:11,700 --> 01:19:12,740 portadora em Pigeon. 1708 01:19:12,740 --> 01:19:13,950 Bona sort demà. 1709 01:19:13,950 --> 01:19:16,220 Tenir un descans d'Acció de Gràcies meravellós, si jo no et veig abans d'aquesta data. 1710 01:19:16,220 --> 01:19:19,320 I vaig a veure't després d'Acció de Gràcies dimarts per la nostra última 1711 01:19:19,320 --> 01:19:20,295 secció de festa de la història. 1712 01:19:20,295 --> 01:19:21,545 >> AUDIÈNCIA: [inaudible]. 1713 01:19:21,545 --> 01:19:25,270 1714 01:19:25,270 --> 01:19:25,790 >> JASON Hirschhorn: Molt bé. 1715 01:19:25,790 --> 01:19:28,900 Bé, vaig a veure vostès el proper setmana, o en dues setmanes. 1716 01:19:28,900 --> 01:19:30,150 I bona sort demà. 1717 01:19:30,150 --> 01:19:32,203