1 00:00:00,000 --> 00:00:08,090 2 00:00:08,090 --> 00:00:09,810 >> JASON HIRSCHHORN: Benvenuto, tutti, in settimana 10. 3 00:00:09,810 --> 00:00:15,130 Questa è una settimana emozionante perché domani è Quiz 1, che avremo 4 00:00:15,130 --> 00:00:16,400 al secondo. 5 00:00:16,400 --> 00:00:21,770 Oggi in sezione, stiamo per andare su alcune risorse per il quiz, e 6 00:00:21,770 --> 00:00:24,890 allora io rispondere a tutte e tutti domande voi ragazzi avete. 7 00:00:24,890 --> 00:00:27,880 E avremo finalmente terminare con alcuni problemi pratici. 8 00:00:27,880 --> 00:00:30,940 >> Siamo in grado di passare l'intera sezione rispondere alle domande. 9 00:00:30,940 --> 00:00:33,240 Siamo in grado di passare l'intera sezione andando oltre i problemi di pratica. 10 00:00:33,240 --> 00:00:36,890 Ci sarà solo espanderà per riempire il lo spazio e il tempo che abbiamo. 11 00:00:36,890 --> 00:00:40,590 >> Così ho messo questa lista ogni settimana, ma è particolarmente importante questa settimana. 12 00:00:40,590 --> 00:00:44,980 Per lo studio, se non avete già iniziato, oh boy. 13 00:00:44,980 --> 00:00:46,400 Ma spero che hai iniziato già. 14 00:00:46,400 --> 00:00:50,710 E si sta andando attraverso i materiali e le risorse elencate qui. 15 00:00:50,710 --> 00:00:54,300 Consiglio vivamente un certo numero di questi. 16 00:00:54,300 --> 00:00:58,780 >> In particolare, dispense sono incredibilmente importante ed utile. 17 00:00:58,780 --> 00:01:02,880 Il study.cs50.net fornisce un grande primer su molti 18 00:01:02,880 --> 00:01:04,250 gli argomenti che trattati. 19 00:01:04,250 --> 00:01:07,810 Ha anche qualche grande praticare problemi. 20 00:01:07,810 --> 00:01:11,260 E poi, Google è grande, troppo. 21 00:01:11,260 --> 00:01:12,360 Non so che cosa usereste per. 22 00:01:12,360 --> 00:01:14,090 Ma usare Google, pure. 23 00:01:14,090 --> 00:01:16,680 >> Entrare in contatto con me se avete qualunque domande, commenti o preoccupazioni. 24 00:01:16,680 --> 00:01:19,420 Guardare oltre la sessione di revisione diapositive da ieri sera. 25 00:01:19,420 --> 00:01:21,540 Oppure, se avete un po 'di tempo, guarda il video. 26 00:01:21,540 --> 00:01:24,930 Essi forniscono un sacco di utili materiali e informazioni. 27 00:01:24,930 --> 00:01:29,730 E cercare di coprire, se non tutti, molti di gli argomenti che abbiamo trattato e che si 28 00:01:29,730 --> 00:01:32,610 potrebbe vedere sul quiz. 29 00:01:32,610 --> 00:01:35,590 >> Parlando del quiz, che sarà domani. 30 00:01:35,590 --> 00:01:37,260 E 'lungo 75 minuti. 31 00:01:37,260 --> 00:01:40,740 Molti di voi stanno prendendo in 1 ore, e alcuni di voi sono 32 00:01:40,740 --> 00:01:42,740 prenderlo alle 5:30. 33 00:01:42,740 --> 00:01:45,300 Per il momento si sta prendendo e l' posizione si sta prendendo, accertarsi 34 00:01:45,300 --> 00:01:49,400 si estrae il documento sulla homepage CS50.net. 35 00:01:49,400 --> 00:01:54,340 >> Ricordate che è possibile ottenere un 8 1/2 da 11 fogli da portare con voi. 36 00:01:54,340 --> 00:01:57,310 Spesso, le persone non usano questo Scheda a tutti durante il quiz. 37 00:01:57,310 --> 00:01:59,740 Ma in realtà, si tratta di un incredibilmente strumento di studio utili. 38 00:01:59,740 --> 00:02:04,370 Così, mettendo insieme quel foglio è quello Ho passato probabilmente tre o quattro ore 39 00:02:04,370 --> 00:02:07,110 facendo quando stavo studiando per CS50, e che era facilmente il più utile 40 00:02:07,110 --> 00:02:08,740 modo ho potuto studiare per il quiz. 41 00:02:08,740 --> 00:02:10,949 Quindi, anche se si dispone di alcune altre persone di guide di studio per guardare e 42 00:02:10,949 --> 00:02:14,740 utilizzare come riferimenti, mi raccomando rendere la vostra guida di studio, mettendo 43 00:02:14,740 --> 00:02:15,490 quella roba insieme. 44 00:02:15,490 --> 00:02:17,335 Che aiuta veramente si impara tutto il materiale. 45 00:02:17,335 --> 00:02:20,270 46 00:02:20,270 --> 00:02:24,810 >> Ultimo ma non meno importante in questa sezione, Dopo domani quiz c'è una 47 00:02:24,810 --> 00:02:25,940 più lecture - 48 00:02:25,940 --> 00:02:26,960 Lunedi prossimo. 49 00:02:26,960 --> 00:02:30,430 C'è una sezione di più, non la prossima Martedì prima del Ringraziamento, ma l' 50 00:02:30,430 --> 00:02:31,630 Martedì dopo. 51 00:02:31,630 --> 00:02:36,600 Ci incontreremo insieme per una finale addio partito e anche facendo qualche fresco 52 00:02:36,600 --> 00:02:41,530 cose per arrivare a voi ragazzi entusiasti ulteriori studi in informatica. 53 00:02:41,530 --> 00:02:45,040 >> C'è un altro progetto, ancora una fiera, ancora una hackathon. 54 00:02:45,040 --> 00:02:47,900 Ci stiamo avvicinando alla fine del CS50, che è eccitante - 55 00:02:47,900 --> 00:02:50,950 ma anche, se siete come me, un po 'triste. 56 00:02:50,950 --> 00:02:53,950 Prima di andare avanti, qualcuno ha domande su cosa 57 00:02:53,950 --> 00:02:55,200 abbiamo visto finora? 58 00:02:55,200 --> 00:03:02,760 59 00:03:02,760 --> 00:03:08,730 >> OK, bene andiamo su alcune questioni che avete per il quiz e gli argomenti 60 00:03:08,730 --> 00:03:09,960 potremmo coprire. 61 00:03:09,960 --> 00:03:11,540 Quindi questa è una lista che ho messo insieme. 62 00:03:11,540 --> 00:03:15,500 E non è affatto esaustivo, ma si spera rinfrescare la memoria, se si 63 00:03:15,500 --> 00:03:20,310 avere alcune domande su una di queste argomenti, o se avete domande su 64 00:03:20,310 --> 00:03:23,260 problemi pratici da quiz negli anni passati. 65 00:03:23,260 --> 00:03:27,470 >> Ho avuto un paio di domande che sono state mandato a me, ma voglio tenere a bada 66 00:03:27,470 --> 00:03:29,490 su quelli per un secondo. 67 00:03:29,490 --> 00:03:34,570 Qualcuno ha delle domande, problemi che non capivano, 68 00:03:34,570 --> 00:03:38,100 risposte che non capivano , per cominciare? 69 00:03:38,100 --> 00:03:39,520 Avi. 70 00:03:39,520 --> 00:03:41,585 >> AUDIENCE: puoi semplicemente andare oltre DOM e Ajax davvero veloce? 71 00:03:41,585 --> 00:03:46,540 Come, ciò che abbiamo bisogno di sapere o dovrebbe capire su di loro? 72 00:03:46,540 --> 00:03:49,750 >> JASON HIRSCHHORN: ho intenzione di rispondere in generale la questione di cosa faccio 73 00:03:49,750 --> 00:03:52,100 necessario conoscere determinato argomento x? 74 00:03:52,100 --> 00:03:55,280 Perché ho la sensazione che molti di voi stanno andando a chiedere a me che, o sono 75 00:03:55,280 --> 00:03:56,570 curioso di sapere questo. 76 00:03:56,570 --> 00:04:02,920 Quindi, nella misura in cui l'argomento è stato coperto in conferenza, o sezione, o 77 00:04:02,920 --> 00:04:06,460 study.cs50.net, un problema di set, è dovrebbe avere familiarità con esso. 78 00:04:06,460 --> 00:04:10,580 >> Quindi non c'è bisogno di conoscere ogni tipo di tag che è disponibile in formato HTML o 79 00:04:10,580 --> 00:04:15,950 ogni tipo di attributi o proprietà si può dare qualcosa in CSS. 80 00:04:15,950 --> 00:04:20,204 Ma se avete visto in un esempio di lezione, se avete visto in un problema 81 00:04:20,204 --> 00:04:23,290 set, probabilmente si dovrebbe essere a conoscenza con essa, in particolare le cose che hai visto 82 00:04:23,290 --> 00:04:24,260 in conferenza. 83 00:04:24,260 --> 00:04:28,510 Così abbiamo discusso il documento oggetto modello un po 'in 84 00:04:28,510 --> 00:04:30,530 sezione, più in conferenza. 85 00:04:30,530 --> 00:04:32,990 È necessario avere familiarità con che gran parte di essa. 86 00:04:32,990 --> 00:04:34,750 >> E si dovrebbe avere familiarità con Ajax nella stessa misura. 87 00:04:34,750 --> 00:04:38,105 Non abbiamo mai visto incredibilmente avanzato o Esempi complicate di Ajax, in modo 88 00:04:38,105 --> 00:04:40,920 non avete intenzione di essere invitato fare qualcosa di incredibilmente complicato. 89 00:04:40,920 --> 00:04:45,180 Ma si può essere chiesto, come faccio effettuare una chiamata Ajax con jQuery? 90 00:04:45,180 --> 00:04:47,350 Che è qualcosa che hai visto un numero di volte prima, sia nella 91 00:04:47,350 --> 00:04:51,370 rivedere sessione e in conferenza, e è solo due linee-ish di codice. 92 00:04:51,370 --> 00:04:53,190 >> Così che è qualcosa che si dovrebbe essere a conoscenza. 93 00:04:53,190 --> 00:04:55,550 Ma ancora una volta, per tutti questi argomenti, se hai visto 94 00:04:55,550 --> 00:04:59,220 prima, è un gioco equo. 95 00:04:59,220 --> 00:05:01,540 E potremmo chiedere - ovviamente, siamo chiederemo cose che voi 96 00:05:01,540 --> 00:05:02,340 non hanno mai visto prima. 97 00:05:02,340 --> 00:05:04,240 Coding qualcosa che non hai visto prima. 98 00:05:04,240 --> 00:05:06,570 Il che non vuol dire che non hai visto gli strumenti per risolvere 99 00:05:06,570 --> 00:05:08,120 che problema prima. 100 00:05:08,120 --> 00:05:09,200 Avete visto questi strumenti. 101 00:05:09,200 --> 00:05:11,160 >> Ad esempio, il quiz 1, se è necessario il codice strlen. 102 00:05:11,160 --> 00:05:12,790 Non abbiamo codificato strlen prima. 103 00:05:12,790 --> 00:05:14,980 Ma si sa come utilizzare un ciclo for, sapete come usare se le condizioni. 104 00:05:14,980 --> 00:05:18,570 Tu sai come scrivere le variabili in C. E sarà la stessa cosa qui. 105 00:05:18,570 --> 00:05:22,350 Lei non sta andando ad essere chiesto di fare qualcosa che non avete mai visto prima, ma 106 00:05:22,350 --> 00:05:25,150 si potrebbe essere chiesto di, come, mettere qualcosa insieme in un modo nuovo, o 107 00:05:25,150 --> 00:05:27,650 risolvere un altro tipo di problema. 108 00:05:27,650 --> 00:05:30,830 >> Ci dispiace che non era specifico per il tuo domanda, ma non posso rispondere su 109 00:05:30,830 --> 00:05:34,390 ogni singolo argomento quello che fare o non hanno bisogno di sapere. 110 00:05:34,390 --> 00:05:36,830 Ma anche, scusate, ultima cosa su questo. 111 00:05:36,830 --> 00:05:42,900 Abbiamo trascorso molto più tempo sulle liste di link che abbiamo su Ajax. 112 00:05:42,900 --> 00:05:46,160 Non hai utilizza Ajax in un set problema. 113 00:05:46,160 --> 00:05:48,510 Una delle caratteristiche centrali di tale problema di set che era elenchi di link. 114 00:05:48,510 --> 00:05:50,370 E abbiamo passato un sacco di tempo in conferenza e la sezione di utilizzarlo. 115 00:05:50,370 --> 00:05:57,080 >> Quindi, le probabilità sono elenco di link verrà su più molto sul quiz di Ajax volontà. 116 00:05:57,080 --> 00:06:00,390 O le domande hanno a che fare con il collegamento elenco varrà più punti. 117 00:06:00,390 --> 00:06:03,520 Così si può certamente messa a fuoco e stretta in su le cose che sono più 118 00:06:03,520 --> 00:06:06,720 rischia di venire perché abbiamo speso più tempo su di loro. 119 00:06:06,720 --> 00:06:08,700 >> OK altre domande? 120 00:06:08,700 --> 00:06:09,890 Già. 121 00:06:09,890 --> 00:06:13,660 >> AUDIENCE: Possiamo andare oltre l'uso di funzioni anonime in JavaScript? 122 00:06:13,660 --> 00:06:17,140 Sono un po 'confuso sono a tale proposito. 123 00:06:17,140 --> 00:06:20,180 >> JASON HIRSCHHORN: Quindi in JavaScript - 124 00:06:20,180 --> 00:06:24,400 Sto cercando di pensare come mi potrebbe scrivere questo su - 125 00:06:24,400 --> 00:06:27,590 quindi cerchiamo di realtà aprono questo codice. 126 00:06:27,590 --> 00:06:31,830 127 00:06:31,830 --> 00:06:36,030 Quindi questo è il codice che abbiamo fatto la scorsa settimana. 128 00:06:36,030 --> 00:06:41,400 E hai visto questo prima se si erano qui nella sezione la scorsa settimana. 129 00:06:41,400 --> 00:06:43,180 Oppure hai visto qualcosa simile alla prima. 130 00:06:43,180 --> 00:06:44,800 >> Ma si può guardare a questa prima linea. 131 00:06:44,800 --> 00:06:46,950 Questo è il modo di iniziare - 132 00:06:46,950 --> 00:06:48,010 ognuno ha visto prima. 133 00:06:48,010 --> 00:06:51,930 Se si vuole mettere un po 'di codice JavaScript, metti dentro questo, assumendo 134 00:06:51,930 --> 00:06:53,520 si sta utilizzando jQuery. 135 00:06:53,520 --> 00:06:56,940 Questo sta dicendo, non fare nulla fino caricato del documento. 136 00:06:56,940 --> 00:06:59,940 >> E poi, Curt, che vedete qui stiamo facendo qualcosa di simile - 137 00:06:59,940 --> 00:07:02,560 funzione di parentesi aperte, chiuse parentesi. 138 00:07:02,560 --> 00:07:05,250 Quindi non stiamo dando questa funzionare un nome. 139 00:07:05,250 --> 00:07:09,160 Non stiamo andando a definire questa funzione si suppone a correre e poi 140 00:07:09,160 --> 00:07:10,830 chiamare un mucchio di volte. 141 00:07:10,830 --> 00:07:15,140 Stiamo solo dicendo che il presente documento prende già una funzione. 142 00:07:15,140 --> 00:07:16,690 Un paio di cose da fare. 143 00:07:16,690 --> 00:07:20,670 >> E noi non vogliamo passare il tempo dandogli un nome o salvarlo per 144 00:07:20,670 --> 00:07:21,650 perpetuo. 145 00:07:21,650 --> 00:07:24,150 Vogliamo solo per eseguire alcune cose. 146 00:07:24,150 --> 00:07:27,500 Quindi una funzione anonima ordinamento di serve a tale scopo. 147 00:07:27,500 --> 00:07:30,280 Se non avete intenzione di usare qualcosa più e più volte, quindi non è necessario 148 00:07:30,280 --> 00:07:32,420 per dare un nome - è sufficiente vuole utilizzare una volta - 149 00:07:32,420 --> 00:07:36,720 si dovrebbe solo dire funzione, per esempio, in questo caso, e sei solo 150 00:07:36,720 --> 00:07:38,280 definire qualcosa che si potrebbe dare un nome. 151 00:07:38,280 --> 00:07:40,920 >> Come potremmo tirare questa funzione su e dargli un nome e poi chiamare quel 152 00:07:40,920 --> 00:07:41,760 funzionare qui. 153 00:07:41,760 --> 00:07:44,270 Ma noi non dobbiamo, perché non lo facciamo vuole perdere tempo dandogli un nome o un 154 00:07:44,270 --> 00:07:46,240 sprecando qualcosa nel nostro spazio nome. 155 00:07:46,240 --> 00:07:47,530 E vedrai che un sacco. 156 00:07:47,530 --> 00:07:52,810 Per esempio, vediamo che molto in questo codice, ma hai visto questo prima, quando 157 00:07:52,810 --> 00:07:54,010 si sceglie qualcosa - 158 00:07:54,010 --> 00:07:55,980 eseguire questo tipo di codice. 159 00:07:55,980 --> 00:07:59,850 >> Potremmo definire il codice che vogliamo da eseguire quando si clicca, in questo caso, 160 00:07:59,850 --> 00:08:03,450 questo ID, come una funzione separata e quindi eseguire tale funzione. 161 00:08:03,450 --> 00:08:07,940 Ma in questo caso, stiamo solo saltare questo passo e spostandolo in qui e 162 00:08:07,940 --> 00:08:10,340 solo per definire tutto che vogliamo che accada e 163 00:08:10,340 --> 00:08:12,450 non dandogli un nome. 164 00:08:12,450 --> 00:08:15,550 Che ancora potrebbero non avere risposto alla sua domanda. 165 00:08:15,550 --> 00:08:15,960 >> PUBBLICO: No, lo fa. 166 00:08:15,960 --> 00:08:18,290 Voglio dire, credo solo che non lo faccio davvero ottenere perché sarebbe un 167 00:08:18,290 --> 00:08:20,800 funzionare a tutti, però. 168 00:08:20,800 --> 00:08:21,590 Perché non è davvero chiamato. 169 00:08:21,590 --> 00:08:23,170 In realtà non ha un nome. 170 00:08:23,170 --> 00:08:25,510 >> JASON HIRSCHHORN: E 'una funzione nel senso che si tratta di una serie di passaggi, 171 00:08:25,510 --> 00:08:28,460 come si farebbe mettere in funzione. 172 00:08:28,460 --> 00:08:29,970 E allora ecco perché chiamiamo è funzione anonima. 173 00:08:29,970 --> 00:08:30,815 Non stiamo andando a dargli un nome. 174 00:08:30,815 --> 00:08:33,159 Non stiamo andando a sprecare provare di nominare, ma abbiamo potuto. 175 00:08:33,159 --> 00:08:34,890 >> Funzioni anonime, è può sempre dare un nome. 176 00:08:34,890 --> 00:08:37,620 Così, per esempio, questo codice proprio qui, potremmo inserire questo codice all'interno di un 177 00:08:37,620 --> 00:08:39,929 funzione e quindi chiamare questa funzione qui. 178 00:08:39,929 --> 00:08:41,600 Invece, diciamo, non stiamo andando preoccuparsi di questo. 179 00:08:41,600 --> 00:08:44,390 Stiamo solo andando a scrivere tutto qui. 180 00:08:44,390 --> 00:08:49,840 >> E 'come a volte quando si sta scrivendo un quattro ciclo in C - voi ragazzi 181 00:08:49,840 --> 00:08:51,630 hanno visto questo prima - forse sei iterazione attraverso un forloop 182 00:08:51,630 --> 00:08:53,090 in i è uguale a 0. 183 00:08:53,090 --> 00:08:54,830 I è inferiore a strlen. 184 00:08:54,830 --> 00:08:59,520 Oppure stai passando un po ' array, è possibile salvare matrice 185 00:08:59,520 --> 00:09:01,580 indice i in qualche variabile. 186 00:09:01,580 --> 00:09:02,830 E si utilizza quella variabile. 187 00:09:02,830 --> 00:09:06,550 Quindi non c'è bisogno di riscrivere matrice Staffa i più e più e più volte. 188 00:09:06,550 --> 00:09:08,160 >> E questo è un po 'come una variabile dummy. 189 00:09:08,160 --> 00:09:10,790 Non è che serve a molto diverso per rendere il codice un po 'più pulito 190 00:09:10,790 --> 00:09:12,120 e più facile da leggere. 191 00:09:12,120 --> 00:09:13,290 Funzione simile qui. 192 00:09:13,290 --> 00:09:15,665 Basta rende un po 'più facile, ma funzionalmente non c'è alcuna differenza. 193 00:09:15,665 --> 00:09:18,620 194 00:09:18,620 --> 00:09:19,330 Questo risponde alla tua domanda? 195 00:09:19,330 --> 00:09:19,970 >> PUBBLICO: Sì. 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 >> AUDIENCE: Ieri hanno spesso messo Funzione parentesi evento. 199 00:09:25,380 --> 00:09:26,420 Vuol dire qualcosa? 200 00:09:26,420 --> 00:09:30,500 O è per cose come che avrebbero fatto 201 00:09:30,500 --> 00:09:35,100 document.ready evento funzione. 202 00:09:35,100 --> 00:09:37,130 >> JASON HIRSCHHORN: Abbiamo visto questo, e ancora una volta, queste sono cose piccole che 203 00:09:37,130 --> 00:09:39,590 Probabilmente io non voglio spendere troppo tempo su. 204 00:09:39,590 --> 00:09:43,200 Perché a volte non voglio che la gente ottenere fuori di testa che non hanno 205 00:09:43,200 --> 00:09:44,220 sentito parlare di queste cose più di tanto. 206 00:09:44,220 --> 00:09:46,200 Ma abbiamo parlato un po ' gestori di eventi. 207 00:09:46,200 --> 00:09:50,360 Così succede qualcosa, e poi questa funzione viene eseguita. 208 00:09:50,360 --> 00:09:53,210 E poi vogliamo anche sapere alcuni dettagli su ciò che 209 00:09:53,210 --> 00:09:54,450 è accaduto in questo caso. 210 00:09:54,450 --> 00:09:55,730 >> Quindi, pensare di nuovo al problema di impostare 4. 211 00:09:55,730 --> 00:09:58,390 Questo è probabilmente il modo più semplice per capire che in break out. 212 00:09:58,390 --> 00:09:59,740 C'era un po 'di codice - 213 00:09:59,740 --> 00:10:01,980 come un evento sarebbe accaduto, ma evento può significare molte cose. 214 00:10:01,980 --> 00:10:06,240 Se potrebbe significare il mouse viene cliccato, si potrebbe significare si preme un tasto freccia, et 215 00:10:06,240 --> 00:10:07,190 cetera, et cetera. 216 00:10:07,190 --> 00:10:09,800 >> Ma è tutto salvato in questa generico cosa chiamata eventi. 217 00:10:09,800 --> 00:10:12,340 E allora possiamo dire, è questo evento questa cosa? 218 00:10:12,340 --> 00:10:13,640 O è questo evento questa cosa? 219 00:10:13,640 --> 00:10:15,500 Oppure, che tipo di successo con questo evento? 220 00:10:15,500 --> 00:10:18,660 Ecco perché si crea la variabile lì per salvare le informazioni supplementari 221 00:10:18,660 --> 00:10:21,420 su cosa esattamente è accaduto che si sta andando a voler 222 00:10:21,420 --> 00:10:24,840 utilizzare nella funzione. 223 00:10:24,840 --> 00:10:28,200 Ma ancora una volta, questo è probabilmente uno dei cose meno importanti da essere super 224 00:10:28,200 --> 00:10:29,450 familiarità con. 225 00:10:29,450 --> 00:10:31,470 226 00:10:31,470 --> 00:10:36,110 >> OK, a quali altre domande hanno persone avuto, o pietre d'inciampo che hanno 227 00:10:36,110 --> 00:10:37,360 incontrato durante la rassegna? 228 00:10:37,360 --> 00:10:41,260 229 00:10:41,260 --> 00:10:42,510 Ci appoggiamo a quella lista. 230 00:10:42,510 --> 00:10:52,550 231 00:10:52,550 --> 00:10:56,080 Che dire durante il quiz di pratica, se persone hanno preso quelli già? 232 00:10:56,080 --> 00:10:59,110 Quali sono stati alcuni problemi che scattato voi ragazzi up? 233 00:10:59,110 --> 00:11:08,970 234 00:11:08,970 --> 00:11:12,720 So per certo che l'anno scorso quiz era davvero difficile. 235 00:11:12,720 --> 00:11:15,670 >> AUDIENCE: Puoi spiegare cosa un attacco SQL injection è? 236 00:11:15,670 --> 00:11:18,970 >> JASON HIRSCHHORN: OK, grande. 237 00:11:18,970 --> 00:11:20,440 Quindi abbiamo parlato di questo un po '. 238 00:11:20,440 --> 00:11:22,050 C'è una lezione sulla sicurezza. 239 00:11:22,050 --> 00:11:25,670 E ancora, come ho detto prima, questa è una parte. 240 00:11:25,670 --> 00:11:30,010 Ma sarete frustrati sul quiz quando si leggono qualche piccolo due punti 241 00:11:30,010 --> 00:11:33,040 domanda, e siete come, quando ho mai imparato? 242 00:11:33,040 --> 00:11:35,560 >> Tutte queste cose in quelle lezioni che non hai pensato che si deve 243 00:11:35,560 --> 00:11:38,290 sa, o si potrebbe sorvolare perché che non avevano a che fare con la 244 00:11:38,290 --> 00:11:41,860 set problema, quelli sarà probabilmente venire nuovamente sul quiz. 245 00:11:41,860 --> 00:11:45,030 Così, fresco, cose divertenti che avete appena pensò David diceva per voi 246 00:11:45,030 --> 00:11:49,070 godere, egli si diceva per voi godere e di fare basta essere super 247 00:11:49,070 --> 00:11:50,550 entusiasta di imparare tutto c'è da imparare 248 00:11:50,550 --> 00:11:51,670 scienza del computer. 249 00:11:51,670 --> 00:11:53,680 Quelle cose anche venire a quiz. 250 00:11:53,680 --> 00:11:56,440 Così, anche queste piccole cose che non hanno fatto riferirsi direttamente al vostro problema 251 00:11:56,440 --> 00:11:59,630 set, come voi ragazzi siete a conoscenza di Quiz 0, probabilmente venire. 252 00:11:59,630 --> 00:12:01,530 E questo è un buon esempio di qualcosa. 253 00:12:01,530 --> 00:12:10,140 >> Quindi un attacco SQL injection è quando si ottenere alcune informazioni da parte dell'utente e 254 00:12:10,140 --> 00:12:15,090 si vuole inserire in una tabella utilizzando un inserto SQL dichiarazione, ma si 255 00:12:15,090 --> 00:12:17,680 non sanificare l'ingresso prima del tempo. 256 00:12:17,680 --> 00:12:21,560 Così, ovviamente abbiamo visto Istruzioni SQL. 257 00:12:21,560 --> 00:12:22,810 Mi limiterò a apro - 258 00:12:22,810 --> 00:12:25,590 259 00:12:25,590 --> 00:12:26,840 andiamo - 260 00:12:26,840 --> 00:12:31,290 261 00:12:31,290 --> 00:12:31,960 andremo alla recensione - 262 00:12:31,960 --> 00:12:35,180 Io penso, che la coprì? 263 00:12:35,180 --> 00:12:36,350 Penso Samala fatto. 264 00:12:36,350 --> 00:12:39,292 Così possiamo arrivare - 265 00:12:39,292 --> 00:12:41,270 >> AUDIENCE: Dove hai trovato questo? 266 00:12:41,270 --> 00:12:44,990 >> JASON HIRSCHHORN: Quindi, se si va a CS50.net, quiz, e allora si può 267 00:12:44,990 --> 00:12:47,170 scorrere su e ottenere diapositive dalla sessione di revisione. 268 00:12:47,170 --> 00:12:49,860 Ma si può vedere questo è un buon esempio di un attacco SQL injection. 269 00:12:49,860 --> 00:12:53,690 Prendiamo alcune informazioni da parte dell'utente e ci danno una stringa, e poi ci 270 00:12:53,690 --> 00:12:55,780 desidera inserire la stringa in un database. 271 00:12:55,780 --> 00:12:59,780 Generalmente ci accingiamo a disinfettare che ingresso, il che significa che ci sono alcuni 272 00:12:59,780 --> 00:13:01,050 personaggi che sono pericolose. 273 00:13:01,050 --> 00:13:04,000 >> Ad esempio, in stringhe SQL, queste citazioni - 274 00:13:04,000 --> 00:13:05,000 apici singoli o doppi apici - 275 00:13:05,000 --> 00:13:05,620 significare qualcosa. 276 00:13:05,620 --> 00:13:08,380 Significano fine a questa stringa qui. 277 00:13:08,380 --> 00:13:13,090 E così se l'utente si dà una sola o una doppia citazione, potrebbero essere 278 00:13:13,090 --> 00:13:18,970 cercando di inciampare la query SQL e inserire alcune cose cattive in esso. 279 00:13:18,970 --> 00:13:23,130 E se lo fanno, si potrebbero guadagnare controllo del database o fare un po ' 280 00:13:23,130 --> 00:13:24,760 cose che non si vuole che facciano. 281 00:13:24,760 --> 00:13:28,300 >> Ecco perché ogni volta che prendiamo SQL query, si sanificare l'ingresso prima 282 00:13:28,300 --> 00:13:31,090 metterlo nel database, che significa fuggiamo quei personaggi. 283 00:13:31,090 --> 00:13:32,590 Noi parleremo in un secondo. 284 00:13:32,590 --> 00:13:35,820 Ma la lunga storia breve, una SQL injection attacco è se non lo fai - 285 00:13:35,820 --> 00:13:39,760 se non si prendono cura di ingresso che ti hanno dato prima di mettere il 286 00:13:39,760 --> 00:13:46,830 banca dati, che possono, come vedete giù qui, eseguire una query che, di fatto - 287 00:13:46,830 --> 00:13:52,470 hanno messo nel loro codice qui e questa linea di selezione qui selezionerà 288 00:13:52,470 --> 00:13:56,360 tutto dalla tabella a prescindere di ciò che è dato la password. 289 00:13:56,360 --> 00:13:58,960 Perché hai il 1 o uguale a 1. 290 00:13:58,960 --> 00:14:02,750 >> Quindi è, fondamentalmente, per farla breve, un modo per prendere sul database. 291 00:14:02,750 --> 00:14:07,570 La domanda, allora, per voi ragazzi, è dove nel set p 7 hai disinfettare tutti 292 00:14:07,570 --> 00:14:10,010 gli ingressi per le query SQL? 293 00:14:10,010 --> 00:14:11,230 Dov'è finito quel passo accaduto? 294 00:14:11,230 --> 00:14:14,150 Dove si impedisce SQL injection attacchi da accadendo in p set 7? 295 00:14:14,150 --> 00:14:20,100 296 00:14:20,100 --> 00:14:20,490 Già. 297 00:14:20,490 --> 00:14:21,870 >> AUDIENCE: Cripta? 298 00:14:21,870 --> 00:14:23,120 >> JASON HIRSCHHORN: Così non è stato cripta. 299 00:14:23,120 --> 00:14:52,360 300 00:14:52,360 --> 00:14:55,380 Non abbiamo fatto si esegue questa operazione per questo particolare problema impostato, ma succede 301 00:14:55,380 --> 00:14:58,190 nella funzione di query. 302 00:14:58,190 --> 00:15:00,930 In realtà abbiamo scritto per voi, e abbiamo preso cura del 303 00:15:00,930 --> 00:15:03,040 igienizzante ingressi per voi. 304 00:15:03,040 --> 00:15:07,790 Ma negli anni passati, gli studenti hanno avuto per digitare gli ingressi per conto proprio. 305 00:15:07,790 --> 00:15:10,020 In p set 7, molti di voi - 306 00:15:10,020 --> 00:15:11,270 fammi apro un altro file. 307 00:15:11,270 --> 00:15:18,530 308 00:15:18,530 --> 00:15:22,590 >> Così si noterà qui un sacco di persone, in un problema set 7, non ha chiamato 309 00:15:22,590 --> 00:15:25,240 questa funzione sulle stringhe. 310 00:15:25,240 --> 00:15:27,880 Questa funzione htmlspecialchars, ancora una volta - 311 00:15:27,880 --> 00:15:31,410 questa stringa potrebbe avere alcune cose che in HTML dire qualcos'altro. 312 00:15:31,410 --> 00:15:36,160 Come un tutore, una piazza o un angolo Staffa significare qualcosa in HTML. 313 00:15:36,160 --> 00:15:38,980 >> E così se si stampa che verso il schermo o se si prende questo e 314 00:15:38,980 --> 00:15:42,260 la stampa che fuori al vostro HTML, che potrebbe fare qualcosa che non ti aspetti. 315 00:15:42,260 --> 00:15:45,180 Così htmlspecialchars va su tutti coloro caratteri che hanno speciale 316 00:15:45,180 --> 00:15:47,030 incontro e sfugge loro. 317 00:15:47,030 --> 00:15:51,450 Così viene stampato come testo si vuole vedere, piuttosto che 318 00:15:51,450 --> 00:15:53,280 avvitare il codice HTML. 319 00:15:53,280 --> 00:15:55,040 Abbiamo chiamato questa funzione nell'intestazione. 320 00:15:55,040 --> 00:15:57,390 E un sacco di gente ha dimenticato di chiamare tale funzione nel 321 00:15:57,390 --> 00:15:58,700 codice stavi scrivendo. 322 00:15:58,700 --> 00:16:03,970 >> Così, per esempio, se un nome di magazzino ha avuto un staffa angolare in esso e si è dimenticato 323 00:16:03,970 --> 00:16:06,675 per chiamare questa funzione, che l'angolo Staffa avrebbe potuto buttato fuori quello che 324 00:16:06,675 --> 00:16:08,250 il codice HTML sembrava. 325 00:16:08,250 --> 00:16:11,810 Ma chiamare questa funzione sfuggirà che così in realtà viene stampato come un 326 00:16:11,810 --> 00:16:15,870 staffa angolare e non buttare il vostro codice HTML. 327 00:16:15,870 --> 00:16:18,760 >> La stessa ragione che abbiamo visto, a volte, barre prima di doppie virgolette in un 328 00:16:18,760 --> 00:16:22,310 linea printf perché non vogliamo che l' virgolette doppie lungo la corda. 329 00:16:22,310 --> 00:16:24,050 Noi vogliamo stampare fino allo schermo. 330 00:16:24,050 --> 00:16:26,920 Quindi, tutto questo è la stessa idea. 331 00:16:26,920 --> 00:16:28,260 Questo risponde alla tua domanda? 332 00:16:28,260 --> 00:16:31,529 333 00:16:31,529 --> 00:16:33,870 >> AUDIENCE: Kind of. 334 00:16:33,870 --> 00:16:35,300 >> JASON HIRSCHHORN: Ti avere un follow-up? 335 00:16:35,300 --> 00:16:43,252 >> PUBBLICO: Credo che la SQL injection attacco ha a che fare con questo? 336 00:16:43,252 --> 00:16:45,720 Io non capisco come i due sono correlati. 337 00:16:45,720 --> 00:16:47,610 Perché si fanno i specialChars? 338 00:16:47,610 --> 00:16:51,200 >> JASON HIRSCHHORN: OK, in modo che il SQL attacco iniezione è quando si inietta 339 00:16:51,200 --> 00:16:59,180 alcune stringhe maligni in qualcuno di programma, e hanno appena prendono e corrono 340 00:16:59,180 --> 00:17:01,230 la query SQL con una stringa che ha dato loro. 341 00:17:01,230 --> 00:17:04,220 Come potete vedere qui, che potrebbe essere problematico. 342 00:17:04,220 --> 00:17:07,480 Quindi il modo si impedisce contro che è si prende la stringa che danno 343 00:17:07,480 --> 00:17:09,220 voi - così questa stringa qui - 344 00:17:09,220 --> 00:17:11,240 e disinfettare esso. 345 00:17:11,240 --> 00:17:14,305 A fuggire tutte le cose che sono potenzialmente problematico. 346 00:17:14,305 --> 00:17:18,626 Quindi non li interpreta come qualcosa di questo significa qualcosa. 347 00:17:18,626 --> 00:17:23,390 >> E un esempio di quella con HTML è questa funzione. 348 00:17:23,390 --> 00:17:26,060 Quindi è la stessa idea qui. 349 00:17:26,060 --> 00:17:27,579 E stavo solo mostrando voi altri esempi di quando hai 350 00:17:27,579 --> 00:17:29,030 visto questa idea prima. 351 00:17:29,030 --> 00:17:33,913 Di sfuggire input dell'utente prima della stampa fuori di uno schermo o conclude 352 00:17:33,913 --> 00:17:36,782 all'interno di un'istruzione SQL. 353 00:17:36,782 --> 00:17:40,790 >> Pubblico: Quindi, in questo caso, l'utente si scherzi con il programmatore. 354 00:17:40,790 --> 00:17:41,240 >> JASON HIRSCHHORN: sì. 355 00:17:41,240 --> 00:17:44,800 Con tutti questi attacchi alla sicurezza, che è sempre generalmente l'utente, o 356 00:17:44,800 --> 00:17:47,470 qualcuno, sta cercando di pasticciare con voi, il programmatore. 357 00:17:47,470 --> 00:17:51,038 E questi sono modi si può prevenzione contro di loro. 358 00:17:51,038 --> 00:17:54,280 >> PUBBLICO: Così ho una domanda sulle funzioni hash. 359 00:17:54,280 --> 00:17:59,340 In Quiz 1 a partire dal 2011, ci sono due domande su hash unilaterali. 360 00:17:59,340 --> 00:18:02,540 E mi stavo chiedendo che cosa volesse dire. 361 00:18:02,540 --> 00:18:03,660 >> JASON HIRSCHHORN: OK, che quiz? 362 00:18:03,660 --> 00:18:03,770 2011? 363 00:18:03,770 --> 00:18:04,705 >> AUDIENCE: Già. 364 00:18:04,705 --> 00:18:06,720 >> AUDIENCE: Quiz 1? 365 00:18:06,720 --> 00:18:08,620 >> AUDIENCE: [incomprensibile]. 366 00:18:08,620 --> 00:18:09,940 Ecco come hash di una password. 367 00:18:09,940 --> 00:18:12,220 Questo non è mettere le cose - 368 00:18:12,220 --> 00:18:13,440 >> JASON HIRSCHHORN: A che pagina era? 369 00:18:13,440 --> 00:18:15,720 >> PUBBLICO: Penso che sia stato 9 o 10, o entrambi. 370 00:18:15,720 --> 00:18:16,720 >> JASON HIRSCHHORN: Va bene, andare avanti, Curt. 371 00:18:16,720 --> 00:18:17,780 È possibile rispondere mentre cerchiamo. 372 00:18:17,780 --> 00:18:19,540 >> PUBBLICO: Penso che stia parlando su hash di una password. 373 00:18:19,540 --> 00:18:24,430 Come, quando qualcuno entra una password, si accende in una cosa crittografato. 374 00:18:24,430 --> 00:18:27,395 Questo è l'hash della password, che è diversa da una funzione hash che 375 00:18:27,395 --> 00:18:30,900 mette qualcosa in una tabella hash. 376 00:18:30,900 --> 00:18:31,610 >> JASON HIRSCHHORN: Vediamo. 377 00:18:31,610 --> 00:18:33,930 Fammi tirare su quello che dare come risposta. 378 00:18:33,930 --> 00:18:35,440 E poi ci camminiamo attraverso di essa. 379 00:18:35,440 --> 00:18:42,430 380 00:18:42,430 --> 00:18:45,400 >> Così Curt ha dato un grande esempio di un one-way hash. 381 00:18:45,400 --> 00:18:48,800 Quando abbiamo visto prima, abbiamo prendere la parola e girare - 382 00:18:48,800 --> 00:18:53,040 ricordare, in p set 7, qualcuno potrebbe disporre di una password che è solo una password, 383 00:18:53,040 --> 00:18:55,300 ma poi viene crittografato in qualche cosa di veramente lungo. 384 00:18:55,300 --> 00:18:59,830 L'hash unidirezionale significa che è molto facile per passare da un modo all'altro, ma 385 00:18:59,830 --> 00:19:02,800 è molto difficile passare da l'altra via del ritorno. 386 00:19:02,800 --> 00:19:05,230 >> E così si sa, quando si stavano controllando le password delle persone in difficoltà 387 00:19:05,230 --> 00:19:08,820 set 7, si dovrebbe prendere il loro - 388 00:19:08,820 --> 00:19:11,953 così, per esempio, dicono che volevano cambiare la password, si chiede loro 389 00:19:11,953 --> 00:19:13,130 per la loro vecchia password. 390 00:19:13,130 --> 00:19:13,910 Hai preso la vecchia password. 391 00:19:13,910 --> 00:19:15,150 Crittografati esso. 392 00:19:15,150 --> 00:19:19,240 E poi confrontato i due crittografie piuttosto che unencrypting dell'originale 393 00:19:19,240 --> 00:19:20,780 uno, perché è davvero difficile andare in quel modo. 394 00:19:20,780 --> 00:19:27,070 395 00:19:27,070 --> 00:19:28,035 Già. 396 00:19:28,035 --> 00:19:31,430 >> PUBBLICO: Come approfondito funziona il nostro comprensione di TelNet devono essere? 397 00:19:31,430 --> 00:19:34,870 398 00:19:34,870 --> 00:19:41,360 >> JASON HIRSCHHORN: se è stato detto brevemente in conferenza, solo una breve 399 00:19:41,360 --> 00:19:43,260 comprensione. 400 00:19:43,260 --> 00:19:45,585 Ancora una volta, torna alla risposta alla domanda di Avi - 401 00:19:45,585 --> 00:19:48,260 402 00:19:48,260 --> 00:19:50,430 più le cose salire, più è probabile si devi essere super 403 00:19:50,430 --> 00:19:51,530 familiarità con loro. 404 00:19:51,530 --> 00:19:54,730 Se sono venuti solo in conferenza, questo è solo un posto. 405 00:19:54,730 --> 00:19:57,180 Ma se entrano in conferenza, sezione e un problema di set, poi si 406 00:19:57,180 --> 00:19:58,710 probabilmente essere super familiarità con loro. 407 00:19:58,710 --> 00:20:01,320 408 00:20:01,320 --> 00:20:03,960 >> Così ho avuto una domanda da in precedenza in merito - 409 00:20:03,960 --> 00:20:06,950 IS era autunno 2010 - 410 00:20:06,950 --> 00:20:08,520 Quiz 1, cerchiamo di tirare up - 411 00:20:08,520 --> 00:20:17,390 412 00:20:17,390 --> 00:20:21,790 questa domanda su pile e code, che abbiamo fatto spendere un bel po 'di tempo 413 00:20:21,790 --> 00:20:23,720 parlando in conferenza, anche anche se non abbiamo davvero 414 00:20:23,720 --> 00:20:26,020 mai colpito in sezione. 415 00:20:26,020 --> 00:20:33,190 Quindi questa domanda che sta dando una serie di comandi e ti chiede cosa 416 00:20:33,190 --> 00:20:35,560 viene stampato in questo caso. 417 00:20:35,560 --> 00:20:40,180 Quindi questa è una domanda del tutto ragionevole che potrebbe essere chiesto di voi 418 00:20:40,180 --> 00:20:43,090 ragazzi, e poi voi ragazzi dovrebbero essere in grado di rispondere. 419 00:20:43,090 --> 00:20:50,020 >> Allora perché non si guarda per il 30 secondi, e poi se qualcuno vuole 420 00:20:50,020 --> 00:20:52,140 proporre le risposte a me, e poi ci camminiamo attraverso di essa. 421 00:20:52,140 --> 00:21:22,590 422 00:21:22,590 --> 00:21:24,235 Va bene, che ha una risposta alla domanda 27? 423 00:21:24,235 --> 00:21:31,740 424 00:21:31,740 --> 00:21:33,860 Già. 425 00:21:33,860 --> 00:21:40,250 >> PUBBLICO: E '1, 2, 3, 3? 426 00:21:40,250 --> 00:21:40,780 >> JASON HIRSCHHORN: Proprio così. 427 00:21:40,780 --> 00:21:42,570 27 è 1, 2, 3, 3. 428 00:21:42,570 --> 00:21:44,510 Quindi diamo un'occhiata a come siamo arrivati ​​che. 429 00:21:44,510 --> 00:21:48,930 >> In primo luogo, stiamo dicendo, se s è una coda, che cosa viene stampato? 430 00:21:48,930 --> 00:21:53,360 Quindi un q è primo in, first out. 431 00:21:53,360 --> 00:21:54,680 Abbiamo visto prima. 432 00:21:54,680 --> 00:21:56,820 Abbiamo visto l'immagine del popolo in attesa presso l'Apple 433 00:21:56,820 --> 00:21:58,400 Negozio per comprare qualche prodotto. 434 00:21:58,400 --> 00:22:00,900 Le prime persone sono le prime persone fuori. 435 00:22:00,900 --> 00:22:02,940 Le prime cose in una coda sono le prime cose. 436 00:22:02,940 --> 00:22:08,320 >> Quindi, se spingiamo qualcosa in una coda, si preme il 1, poi abbiamo pop 1. 437 00:22:08,320 --> 00:22:09,630 Pop significa solo togliere. 438 00:22:09,630 --> 00:22:11,080 In questo caso, basta prendere qualcosa. 439 00:22:11,080 --> 00:22:12,910 Prendiamo la prima cosa, che è un 1. 440 00:22:12,910 --> 00:22:15,200 Così metteremo le cose che stampare giù qui. 441 00:22:15,200 --> 00:22:18,110 Questo non è più nella nostra coda. 442 00:22:18,110 --> 00:22:23,500 >> Poi ci spingiamo su un 2 e un 3, e abbiamo pop fuori la prima cosa. 443 00:22:23,500 --> 00:22:25,030 Anche in questo caso, perché è una coda. 444 00:22:25,030 --> 00:22:33,320 Così otteniamo un 2, poi abbiamo messo su un altro 3 e chiamare di nuovo pop. 445 00:22:33,320 --> 00:22:34,980 Il nostro 3 è primo. 446 00:22:34,980 --> 00:22:40,940 >> E poi abbiamo avuto un sacco di altre cose e chiamata rapida. 447 00:22:40,940 --> 00:22:43,740 Ma ancora, poiché questa è una coda, first in, first out. 448 00:22:43,740 --> 00:22:45,980 Prendiamo la prima cosa che è stato mai messo dentro 449 00:22:45,980 --> 00:22:47,100 Questo è il nostro 3. 450 00:22:47,100 --> 00:22:50,060 E, in questo caso, non ci preoccupiamo su tutte quelle altre cose. 451 00:22:50,060 --> 00:22:51,310 Allora è se questo è una coda. 452 00:22:51,310 --> 00:22:58,917 453 00:22:58,917 --> 00:23:00,167 Avete domande su una coda? 454 00:23:00,167 --> 00:23:03,290 455 00:23:03,290 --> 00:23:04,040 >> Una pila di diverso. 456 00:23:04,040 --> 00:23:07,782 Qual è l'acronimo che abbiamo per la comprensione di una pila? 457 00:23:07,782 --> 00:23:08,750 >> PUBBLICO: last in, first out. 458 00:23:08,750 --> 00:23:10,130 >> JASON HIRSCHHORN: LIFO, credo. 459 00:23:10,130 --> 00:23:11,830 Ultimo in, first out. 460 00:23:11,830 --> 00:23:15,630 Così abbiamo visto un esempio di una pila di vassoi in una sala da pranzo. 461 00:23:15,630 --> 00:23:17,590 Qualunque vassoio è in cima viene raccolto. 462 00:23:17,590 --> 00:23:19,550 E poi se nuovi vassoi vengono in, ottengono messo in cima. 463 00:23:19,550 --> 00:23:21,070 E poi tutto ciò che è in top viene raccolto. 464 00:23:21,070 --> 00:23:24,010 Quindi quei vassoi della potenza inferiore rimanere lì per un po '. 465 00:23:24,010 --> 00:23:28,480 >> In questo caso, ancora una volta, faremo disegnare questo fuori. 466 00:23:28,480 --> 00:23:31,770 Spingiamo su uno, così si è in prima linea. 467 00:23:31,770 --> 00:23:32,790 E abbiamo pop qualcosa fuori. 468 00:23:32,790 --> 00:23:37,280 E c'è solo una cosa in là, così ci spostiamo 1 quaggiù. 469 00:23:37,280 --> 00:23:41,940 Poi abbiamo messo il 2 e 3 e abbiamo pop qualcosa fuori. 470 00:23:41,940 --> 00:23:43,650 >> Ma ancora, poiché questa è una coda - 471 00:23:43,650 --> 00:23:45,010 o si tratta di uno stack, piuttosto - 472 00:23:45,010 --> 00:23:47,480 prendiamo tutto ciò che era in ultima. 473 00:23:47,480 --> 00:23:49,300 Tutto ciò che è in ultima esce prima. 474 00:23:49,300 --> 00:23:50,890 E 3 è in ultimo. 475 00:23:50,890 --> 00:23:56,110 Così abbiamo messo il 3 laggiù, poi abbiamo messo su un altro 3 e abbiamo 476 00:23:56,110 --> 00:23:57,360 pop qualcosa di nuovo. 477 00:23:57,360 --> 00:23:59,990 478 00:23:59,990 --> 00:24:05,710 Infine, abbiamo messo sul 4, 5, 6 e 7, e qui abbiamo pop. 479 00:24:05,710 --> 00:24:09,060 E perché è una pila, prendiamo ciò che è stato messo in ultimo e scrivere 480 00:24:09,060 --> 00:24:10,240 che quaggiù. 481 00:24:10,240 --> 00:24:14,256 Così si finisce con 1, 3, 3, 7. 482 00:24:14,256 --> 00:24:17,380 483 00:24:17,380 --> 00:24:21,380 Qualcuno ha dei dubbi pile o code, o questo esempio? 484 00:24:21,380 --> 00:24:27,540 485 00:24:27,540 --> 00:24:29,030 >> OK. 486 00:24:29,030 --> 00:24:30,440 Torniamo alla lista degli argomenti. 487 00:24:30,440 --> 00:24:32,510 Non è così, in questo modo. 488 00:24:32,510 --> 00:24:34,280 Quali altre domande le persone hanno? 489 00:24:34,280 --> 00:24:37,550 490 00:24:37,550 --> 00:24:39,480 >> PUBBLICO: Non so quanto sia importante questo è, ma sono stato confuso dal 491 00:24:39,480 --> 00:24:43,550 differenza tra i diversi tipi di lingue come il markup, compilati, 492 00:24:43,550 --> 00:24:45,980 interpretato. 493 00:24:45,980 --> 00:24:46,750 >> JASON HIRSCHHORN: Ecco una buona domanda. 494 00:24:46,750 --> 00:24:50,500 Penso che sia un po 'importante, quindi cerchiamo di andare oltre in fretta. 495 00:24:50,500 --> 00:24:56,850 Le grandi lingue che abbiamo visto finora sono C, PHP e JavaScript, in termini 496 00:24:56,850 --> 00:24:58,330 di linguaggi di programmazione. 497 00:24:58,330 --> 00:25:01,060 HTML, come lei ha ricordato, non è un linguaggio di programmazione. 498 00:25:01,060 --> 00:25:02,260 E 'un linguaggio di markup. 499 00:25:02,260 --> 00:25:05,700 E poi abbiamo CSS, che è anche non un linguaggio di programmazione. 500 00:25:05,700 --> 00:25:10,330 >> Abbiamo anche visto SQL, che non è un linguaggio di programmazione o. 501 00:25:10,330 --> 00:25:15,695 Così SQL consente di scrivere query per un database. 502 00:25:15,695 --> 00:25:18,370 503 00:25:18,370 --> 00:25:20,140 HTML è un linguaggio di markup. 504 00:25:20,140 --> 00:25:22,570 Esso definisce come le cose sono strutturati. 505 00:25:22,570 --> 00:25:26,250 E CSS permette di acconciare le cose. 506 00:25:26,250 --> 00:25:28,520 Questa è probabilmente la misura di ciò che si necessario conoscere quei tre. 507 00:25:28,520 --> 00:25:32,920 Ma è più interessante figura le differenze tra C, PHP, 508 00:25:32,920 --> 00:25:34,320 e JavaScript. 509 00:25:34,320 --> 00:25:37,900 >> Così uno dei più grandi differenze, come lei ha ricordato, è come sono 510 00:25:37,900 --> 00:25:40,550 compilato, o qualsiasi altra cosa l'equivalente è. 511 00:25:40,550 --> 00:25:42,580 Quindi C viene compilato. 512 00:25:42,580 --> 00:25:43,950 Ci sarebbe sempre eseguire un compilatore. 513 00:25:43,950 --> 00:25:51,100 E allora dove sono i tuoi errori quando si esegue il compilatore C? 514 00:25:51,100 --> 00:25:55,740 Dove è la mostra errori nel codice? 515 00:25:55,740 --> 00:25:57,860 Come sai c'è un errore nel codice in C? 516 00:25:57,860 --> 00:25:58,770 >> AUDIENCE: Esso mostra nel terminale. 517 00:25:58,770 --> 00:26:00,410 >> JASON HIRSCHHORN: Esso mostra in terminale come si sta compilando. 518 00:26:00,410 --> 00:26:02,620 E se ci sono errori, non sarà effettivamente compilarlo. 519 00:26:02,620 --> 00:26:04,830 Così si sa che ci sono errori giuste via, prima del tempo, prima di 520 00:26:04,830 --> 00:26:06,050 anche eseguire il codice. 521 00:26:06,050 --> 00:26:10,010 >> Naturalmente, si potrebbe eseguire il codice e ottenere un errore di segmentazione, ma che era 522 00:26:10,010 --> 00:26:12,350 probabilmente perché hai fatto qualche cosa logica sciocca. 523 00:26:12,350 --> 00:26:15,770 Ma il tuo codice con tecnicamente tutti corretti e potrebbe correre. 524 00:26:15,770 --> 00:26:18,210 Così codice C viene compilato prima del tempo. 525 00:26:18,210 --> 00:26:19,760 Che dire di codice PHP? 526 00:26:19,760 --> 00:26:21,430 Dove sono stati errori nel codice PHP? 527 00:26:21,430 --> 00:26:23,170 Come hai fatto a sapere che avevi errori nel vostro codice PHP? 528 00:26:23,170 --> 00:26:26,038 529 00:26:26,038 --> 00:26:28,430 >> PUBBLICO: Durata? 530 00:26:28,430 --> 00:26:31,230 >> JASON HIRSCHHORN: Sì, quando si sarebbe in esso, si dovrebbe eseguire l' 531 00:26:31,230 --> 00:26:32,180 Codice PHP nella parte posteriore. 532 00:26:32,180 --> 00:26:33,300 E allora si potrebbe visualizzare una schermata. 533 00:26:33,300 --> 00:26:35,260 Si potrebbe vedere alcune cose sulla parte superiore, ma poi si vedrebbe, come alcuni 534 00:26:35,260 --> 00:26:36,710 arancio, brutto tavolo. 535 00:26:36,710 --> 00:26:41,420 E si darebbe un numero di riga e per esempio, blah, blah, blah, questa roba 536 00:26:41,420 --> 00:26:42,400 non ha funzionato. 537 00:26:42,400 --> 00:26:48,730 >> Così PHP è interpretato riga per riga ed eseguito sul server. 538 00:26:48,730 --> 00:26:52,380 E quindi il risultato è inviato a voi. 539 00:26:52,380 --> 00:26:53,340 Grande. 540 00:26:53,340 --> 00:26:56,410 Eseguito nella linea di server per riga e poi inviato a voi. 541 00:26:56,410 --> 00:26:59,010 E se c'è un errore, invieremo si l'errore, ma si potrebbe avere 542 00:26:59,010 --> 00:27:00,400 ottenuto alcune cose prima del tempo. 543 00:27:00,400 --> 00:27:02,730 Così alcuni di essi potrebbero aver funzionato, ma in seguito, alcune cose potrebbero non avere 544 00:27:02,730 --> 00:27:03,890 non ha funzionato. 545 00:27:03,890 --> 00:27:04,600 >> Che dire di JavaScript? 546 00:27:04,600 --> 00:27:06,065 Dove hai visto errori JavaScript? 547 00:27:06,065 --> 00:27:10,860 548 00:27:10,860 --> 00:27:12,870 In p set 8, quando si ha un errore, come lo sapevi? 549 00:27:12,870 --> 00:27:13,710 Dove sarebbe presentarsi? 550 00:27:13,710 --> 00:27:15,900 >> AUDIENCE: Nella console, nella parte inferiore. 551 00:27:15,900 --> 00:27:17,650 >> JASON HIRSCHHORN: Nel console, sul fondo. 552 00:27:17,650 --> 00:27:20,160 Sarebbe anche darvi la numero di riga, e sarebbe 553 00:27:20,160 --> 00:27:21,330 presentarsi sul fondo. 554 00:27:21,330 --> 00:27:24,320 E JavaScript non è stata eseguita sul server. 555 00:27:24,320 --> 00:27:27,800 JavaScript è stato inviato al tuo computer, e poi quando era il momento di eseguire l' 556 00:27:27,800 --> 00:27:31,670 JavaScript, il codice JavaScript è stato gestito riga per riga sul 557 00:27:31,670 --> 00:27:33,410 cliente, al vostro fianco. 558 00:27:33,410 --> 00:27:35,570 Non il server, il lato client. 559 00:27:35,570 --> 00:27:37,690 >> Analogamente, era gestito riga per riga. 560 00:27:37,690 --> 00:27:40,630 E poi quando si otterrebbe un errore, rivelerebbe in fondo. 561 00:27:40,630 --> 00:27:44,580 Analogamente a PHP, alcune delle quali potrebbero esegue, e allora si potrebbe ottenere un 562 00:27:44,580 --> 00:27:46,310 errore in seguito. 563 00:27:46,310 --> 00:27:49,910 >> Inoltre, un po 'di PHP differenza, se hai un errore JavaScript - 564 00:27:49,910 --> 00:27:52,780 dici che non hai fatto il giusto codice per una finestra di avviso - 565 00:27:52,780 --> 00:27:55,800 si potrebbe continuare a correre il vostro programma. 566 00:27:55,800 --> 00:27:58,180 La finestra di avviso non avrebbe funzionato, ma il programma sarebbe bene. 567 00:27:58,180 --> 00:28:00,490 Solo forse quella funzione fallirebbe. 568 00:28:00,490 --> 00:28:02,610 >> Quindi c'è alcuni dei più grandi differenza in termini di come questi 569 00:28:02,610 --> 00:28:09,230 lingue, o come il codice di programmazione si scrive sta effettivamente valutati. 570 00:28:09,230 --> 00:28:11,970 Esistono anche altre differenze termini - la più grande differenza 571 00:28:11,970 --> 00:28:15,590 abbiamo visto in termini di variabili nelle diverse lingue. 572 00:28:15,590 --> 00:28:19,660 Così qualcuno può darmi una differenza tra variabili 573 00:28:19,660 --> 00:28:20,910 nelle tre lingue? 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 >> AUDIENCE: In C, sono strettamente tipizzato. 577 00:28:27,130 --> 00:28:28,550 Negli altri due, sono debolmente tipizzato. 578 00:28:28,550 --> 00:28:30,040 >> JASON HIRSCHHORN: E che cosa significa? 579 00:28:30,040 --> 00:28:31,775 >> PUBBLICO: Che in C, si deve dichiarare il tipo della variabile quando 580 00:28:31,775 --> 00:28:36,140 si dichiara la variabile, come interbool o char. 581 00:28:36,140 --> 00:28:36,990 >> JASON HIRSCHHORN: Excellent. 582 00:28:36,990 --> 00:28:39,780 In C, abbiamo sempre dovuto mettere un tipo di una variabile. 583 00:28:39,780 --> 00:28:41,360 E noi non potevamo davvero mescolare tipi. 584 00:28:41,360 --> 00:28:45,750 Non si poteva fare un intero più una stringa. 585 00:28:45,750 --> 00:28:48,760 Ma, come abbiamo visto in questi altri lingue, in realtà possono mescolare i tipi, 586 00:28:48,760 --> 00:28:51,230 e non avete mai veramente dare qualcosa di un tipo, mai. 587 00:28:51,230 --> 00:28:53,905 >> Quindi, come facciamo a sapere le cose sono variabili in PHP e JavaScript? 588 00:28:53,905 --> 00:28:57,120 589 00:28:57,120 --> 00:28:58,685 >> AUDIENCE: In PHP, iniziano con un segno di dollaro. 590 00:28:58,685 --> 00:29:00,810 In JavaScript, quando si dichiara li, bisogna avere un bar. 591 00:29:00,810 --> 00:29:01,760 >> JASON HIRSCHHORN: Giusto. 592 00:29:01,760 --> 00:29:03,535 Così in PHP, iniziano con un segno di dollaro. 593 00:29:03,535 --> 00:29:06,300 In JavaScript, devono avere bar, anche se a volte non lo fanno in realtà 594 00:29:06,300 --> 00:29:07,520 avere bar. 595 00:29:07,520 --> 00:29:09,240 Ma questo è corretto. 596 00:29:09,240 --> 00:29:13,300 >> Quindi questa è una grande differenza tra le variabili. 597 00:29:13,300 --> 00:29:16,140 Penso che quelli sono probabilmente, al largo della superiore della mia testa, i due più grandi 598 00:29:16,140 --> 00:29:19,250 differenze tra questi tre lingue. 599 00:29:19,250 --> 00:29:20,594 Ma, sì. 600 00:29:20,594 --> 00:29:24,720 >> AUDIENCE: E la portata delle variabili C è limitato alle parentesi graffe, 601 00:29:24,720 --> 00:29:27,760 dove gli altri, è proprio come, muore se è solo una funzione, 602 00:29:27,760 --> 00:29:29,650 ma per il resto, E'- 603 00:29:29,650 --> 00:29:30,240 >> JASON HIRSCHHORN: Giusto. 604 00:29:30,240 --> 00:29:36,780 Quindi la portata è leggermente diverso in C. Come Vi ricordate, parentesi graffe definiscono 605 00:29:36,780 --> 00:29:37,710 l'ambito delle variabili. 606 00:29:37,710 --> 00:29:41,680 Quindi, se è stata definita all'interno di un se condizione, che è all'interno di un ciclo for, 607 00:29:41,680 --> 00:29:44,290 la variabile esiste solo lì. 608 00:29:44,290 --> 00:29:47,760 >> In JavaScript, se una variabile è definita all'interno di una condizione if - 609 00:29:47,760 --> 00:29:50,750 all'interno di un ciclo for - vi esiste per tale funzione, ma non esisterà 610 00:29:50,750 --> 00:29:52,330 fuori di tale funzione. 611 00:29:52,330 --> 00:29:59,250 Quindi ambito è un po 'più flessibile in JavaScript e PHP. 612 00:29:59,250 --> 00:30:00,500 Che rispondere alla domanda? 613 00:30:00,500 --> 00:30:03,110 614 00:30:03,110 --> 00:30:04,635 OK, tutte le altre domande? 615 00:30:04,635 --> 00:30:07,260 616 00:30:07,260 --> 00:30:08,865 Possiamo fare quattro minuti in più di domande, poi 617 00:30:08,865 --> 00:30:10,740 faremo saltare in codifica. 618 00:30:10,740 --> 00:30:12,645 >> AUDIENCE: Possiamo andare in Ajax e parlare di cosa si tratta? 619 00:30:12,645 --> 00:30:15,670 620 00:30:15,670 --> 00:30:17,800 >> JASON HIRSCHHORN: Parlate con Avi dopo. 621 00:30:17,800 --> 00:30:19,170 Ha chiesto che la precedente interrogazione. 622 00:30:19,170 --> 00:30:19,630 >> PUBBLICO: Il mio male. 623 00:30:19,630 --> 00:30:20,880 >> JASON HIRSCHHORN: Non preoccuparti. 624 00:30:20,880 --> 00:30:22,740 625 00:30:22,740 --> 00:30:24,290 >> AUDIENCE: Che cosa è esattamente JSON? 626 00:30:24,290 --> 00:30:28,360 627 00:30:28,360 --> 00:30:28,900 >> JASON HIRSCHHORN: Che cosa è JSON? 628 00:30:28,900 --> 00:30:29,930 Qual è la tua domanda? 629 00:30:29,930 --> 00:30:31,350 >> AUDIENCE: Basta davvero in fretta, la differenza tra 630 00:30:31,350 --> 00:30:32,870 stampa e eco in PHP. 631 00:30:32,870 --> 00:30:36,200 632 00:30:36,200 --> 00:30:38,490 >> JASON HIRSCHHORN: Perché non google la differenza tra la stampa e l'eco? 633 00:30:38,490 --> 00:30:40,670 Leggera differenza. 634 00:30:40,670 --> 00:30:42,020 Non che un grosso problema. 635 00:30:42,020 --> 00:30:44,960 Ma si dovrebbe assolutamente google, e che ti do una buona risposta. 636 00:30:44,960 --> 00:30:46,910 >> JSON, probabilmente più grande di un affare. 637 00:30:46,910 --> 00:30:49,300 Supporti per JavaScript Object Notation. 638 00:30:49,300 --> 00:30:51,865 E quando abbiamo visto JSON viene utilizzato? 639 00:30:51,865 --> 00:30:55,110 640 00:30:55,110 --> 00:30:55,900 Quando avete visto - 641 00:30:55,900 --> 00:30:57,400 perché si sa nemmeno la parola JSON? 642 00:30:57,400 --> 00:30:59,140 Quando hai visto? 643 00:30:59,140 --> 00:31:02,200 >> AUDIENCE: Quando stavamo ottenendo quotazioni di borsa per la finanza. 644 00:31:02,200 --> 00:31:02,690 >> JASON HIRSCHHORN: So che hai visto quando si stavano diventando 645 00:31:02,690 --> 00:31:04,830 quotazioni di borsa per la finanza. 646 00:31:04,830 --> 00:31:07,340 E perché l'hai visto? 647 00:31:07,340 --> 00:31:09,000 >> AUDIENCE: Quando stavamo recuperando tutte le informazioni che 648 00:31:09,000 --> 00:31:10,400 è venuto in quel formato. 649 00:31:10,400 --> 00:31:11,700 >> JASON HIRSCHHORN: Così si otterrebbe - 650 00:31:11,700 --> 00:31:12,540 sì. 651 00:31:12,540 --> 00:31:13,020 Vai avanti. 652 00:31:13,020 --> 00:31:15,210 >> AUDIENCE: informazioni [incomprensibile] di un oggetto? 653 00:31:15,210 --> 00:31:17,170 >> JASON HIRSCHHORN: sia di quelli mettere insieme è la risposta 654 00:31:17,170 --> 00:31:18,100 stiamo cercando. 655 00:31:18,100 --> 00:31:21,240 Volete informazioni da questa altra pagina web. 656 00:31:21,240 --> 00:31:23,790 E si spera che quando sei ottenere tali informazioni, sarebbe 657 00:31:23,790 --> 00:31:26,720 presentato a voi in qualche tipo di formato standard. 658 00:31:26,720 --> 00:31:29,530 >> Ognuno è probabilmente familiare con valori separati da virgole. 659 00:31:29,530 --> 00:31:32,970 È possibile esportare un foglio di calcolo Excel o qualsiasi tipo di foglio di calcolo come elenco di 660 00:31:32,970 --> 00:31:34,540 valori separati da virgole. 661 00:31:34,540 --> 00:31:37,370 E le virgole dividono tutto diversi campi. 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 è un altro tipo di standardizzato il layout delle cose. 665 00:31:43,540 --> 00:31:49,010 E questo è spesso il modo recuperiamo informazioni dai nostri query Ajax. 666 00:31:49,010 --> 00:31:51,770 >> Quindi, in questo caso, abbiamo ottenuto dal sito di Yahoo. 667 00:31:51,770 --> 00:31:53,600 Tornano le cose da noi in un oggetto JSON. 668 00:31:53,600 --> 00:31:56,790 E allora sappiamo, perché è una norma, di cosa si tratta 669 00:31:56,790 --> 00:31:57,250 andare a guardare come. 670 00:31:57,250 --> 00:32:00,760 Così possiamo scorrere la matrice che è tornato a noi, la matrice di 671 00:32:00,760 --> 00:32:03,180 oggetti che vengono restituiti a noi. 672 00:32:03,180 --> 00:32:07,770 >> Noi probabilmente bisogno di conoscere le chiavi, ma in genere ti danno 673 00:32:07,770 --> 00:32:11,370 documentazione nel sito web quando stai recupero qualche JSON 674 00:32:11,370 --> 00:32:12,170 notazione per loro. 675 00:32:12,170 --> 00:32:16,940 Allo stesso modo, è possibile JSON codificare un oggetto. 676 00:32:16,940 --> 00:32:19,900 Quindi c'è una funzione JSON sottolineatura codificare. 677 00:32:19,900 --> 00:32:22,970 E così si può prendere un oggetto che hai creato, JSON codificare, e 678 00:32:22,970 --> 00:32:26,390 passare a qualcosa altrimenti, se si vuole. 679 00:32:26,390 --> 00:32:30,770 E JSON decodifica esiste anche per uno scopo simile, o per 680 00:32:30,770 --> 00:32:31,780 lo scopo opposto. 681 00:32:31,780 --> 00:32:36,570 >> AUDIENCE: Non abbiamo bisogno di sapere di codifica per le tabelle hash e cerca? 682 00:32:36,570 --> 00:32:40,300 O dobbiamo solo bisogno di capire come vengono utilizzati, concettualmente? 683 00:32:40,300 --> 00:32:44,570 >> JASON HIRSCHHORN: Quindi, alzate la mano se hai fatto una tabella hash per p set 4 684 00:32:44,570 --> 00:32:46,920 con un elenco di link. 685 00:32:46,920 --> 00:32:47,960 O p set 5. 686 00:32:47,960 --> 00:32:49,060 Così che era una stragrande maggioranza delle persone. 687 00:32:49,060 --> 00:32:50,390 P set 5, 6, chi lo sa. 688 00:32:50,390 --> 00:32:51,240 Molto tempo fa. 689 00:32:51,240 --> 00:32:54,140 >> Così la stragrande maggioranza di voi ha fatto hash tabelle con elenchi di link. 690 00:32:54,140 --> 00:32:56,525 E poiché questo è probabilmente il più approccio comune, e perché abbiamo trascorso 691 00:32:56,525 --> 00:32:59,460 un sacco di tempo a fare elenchi di link e hash tabelle, si dovrebbe probabilmente essere 692 00:32:59,460 --> 00:33:02,600 abbastanza familiarità con il modo di codificare una tabella di hash e un elenco di link. 693 00:33:02,600 --> 00:33:05,060 >> E se si ripensa a quel problema set, non era davvero 694 00:33:05,060 --> 00:33:06,410 così difficile come vi aspettavate. 695 00:33:06,410 --> 00:33:08,120 E c'era molto meno codice del previsto. 696 00:33:08,120 --> 00:33:11,150 697 00:33:11,150 --> 00:33:14,650 Direi che si dovrebbe sapere come codificare una tabella hash o di un elenco di link. 698 00:33:14,650 --> 00:33:17,010 Non che si sarebbe chiesto che, necessariamente, ma si dovrebbe 699 00:33:17,010 --> 00:33:19,730 certamente saperlo. 700 00:33:19,730 --> 00:33:21,860 >> Inoltre, se si guarda attraverso quiz del passato, ci sono stati un sacco di 701 00:33:21,860 --> 00:33:26,450 domande sulla scrittura di funzioni su elenchi di link o liste doppiamente collegate. 702 00:33:26,450 --> 00:33:28,370 Che sembra venire ogni singolo anno. 703 00:33:28,370 --> 00:33:31,940 Diritto di inserire in un elenco di link, a destra eliminare da un elenco di link, giusto inserire 704 00:33:31,940 --> 00:33:33,610 per una lista doppiamente collegata, et cetera. 705 00:33:33,610 --> 00:33:36,170 In modo che, mi sento abbastanza comodo dicendo che si deve sapere che. 706 00:33:36,170 --> 00:33:40,600 >> Per provare, direi che dovrebbe certamente so come funziona, e forse 707 00:33:40,600 --> 00:33:43,570 dare qualche pseudocodice per quanto al codice e configurarlo. 708 00:33:43,570 --> 00:33:45,600 Ma non sarebbe la cosa peggiore il mondo se non si sa come 709 00:33:45,600 --> 00:33:48,870 codice in C. Sarebbe bello se si Sapevo scrivere codice in C, ma credo 710 00:33:48,870 --> 00:33:52,516 probabilmente pseudocodice per una prova sarebbe essere il più si avrebbe bisogno 711 00:33:52,516 --> 00:33:53,270 da sapere per una prova. 712 00:33:53,270 --> 00:33:53,930 >> AUDIENCE: Extra di credito? 713 00:33:53,930 --> 00:33:58,290 >> JASON HIRSCHHORN: e lo stesso con, se andare in alberi binari di ricerca, si potrebbe 714 00:33:58,290 --> 00:34:02,320 bisogno - e che hai visto in passato, abbiamo fatto un sacco di - si sa come 715 00:34:02,320 --> 00:34:03,380 albero binario di ricerca lavora. 716 00:34:03,380 --> 00:34:07,150 Probabilmente si dovrebbe essere in grado di crearne uno in pseudo codice. 717 00:34:07,150 --> 00:34:10,510 Ma perché la stragrande maggioranza delle persone non ha fatto che sul problema 718 00:34:10,510 --> 00:34:13,880 insieme, io direi che è probabilmente meno importante che tu sai scrivere codice 719 00:34:13,880 --> 00:34:17,380 e impostare un albero del genere. 720 00:34:17,380 --> 00:34:19,679 >> Tutte le altre domande? 721 00:34:19,679 --> 00:34:23,234 Inoltre, possiamo chiedere tutto come andiamo attraverso alcuni problemi. 722 00:34:23,234 --> 00:34:27,170 OK, stiamo andando a andare avanti. 723 00:34:27,170 --> 00:34:28,230 Salta quella diapositiva per ora. 724 00:34:28,230 --> 00:34:32,449 >> Parlando di alberi, che è il primo domanda che ho per voi ragazzi. 725 00:34:32,449 --> 00:34:34,270 Perché questo è un problema. 726 00:34:34,270 --> 00:34:37,380 Direi che è molto probabile che abbiate ottenere un problema come questo sul tuo quiz 727 00:34:37,380 --> 00:34:43,659 si chiede di codificare un certo tipo di inserto, eliminare, ricerca, per un tipo di 728 00:34:43,659 --> 00:34:45,270 di struttura dati che abbiamo visto. 729 00:34:45,270 --> 00:34:47,719 >> Che viene ogni anno e abbiamo trascorso un molto tempo la seconda metà di questo 730 00:34:47,719 --> 00:34:50,270 semestre andando oltre questi tipi di dati. 731 00:34:50,270 --> 00:34:54,170 Così adesso, ho definito un nodo in un albero binario di ricerca. 732 00:34:54,170 --> 00:34:58,490 E quello che vorrei che tu faccia è dato un albero binario di ricerca che inizia 733 00:34:58,490 --> 00:35:05,450 a questa radice nodo stella, completare la implementazione della funzione di seguito, 734 00:35:05,450 --> 00:35:07,430 che sembra essere una funzione find. 735 00:35:07,430 --> 00:35:09,260 E farlo con e senza ricorsioni. 736 00:35:09,260 --> 00:35:10,860 >> Quindi voglio che scriviate due funzioni. 737 00:35:10,860 --> 00:35:14,310 Un fare questo con ricorsione, una farlo senza ricorsione. 738 00:35:14,310 --> 00:35:18,050 E non date per scontato che l' root sarà non nullo. 739 00:35:18,050 --> 00:35:21,790 Quindi stiamo cercando il numero intero i in l'albero a partire dalle radici, e abbiamo bisogno 740 00:35:21,790 --> 00:35:25,280 per scrivere questo ricorsivamente e iterativo. 741 00:35:25,280 --> 00:35:26,300 Già. 742 00:35:26,300 --> 00:35:29,730 >> AUDIENCE: Così si vuole noi tornare true se lo troviamo, e falso se 743 00:35:29,730 --> 00:35:30,480 non trovarlo. 744 00:35:30,480 --> 00:35:32,160 >> JASON HIRSCHHORN: Come fai a saperlo? 745 00:35:32,160 --> 00:35:33,100 Come lo sapevate che? 746 00:35:33,100 --> 00:35:36,500 >> PUBBLICO: stavo chiedendo prima, ma ero assumendo, perché dice bool a 747 00:35:36,500 --> 00:35:37,490 l'inizio della funzione. 748 00:35:37,490 --> 00:35:37,880 >> JASON HIRSCHHORN: Giusto. 749 00:35:37,880 --> 00:35:41,020 Si dice bool, quindi non ho nemmeno bisogno di dirvi quello che mi aspetto di tornare 750 00:35:41,020 --> 00:35:41,350 perché dice proprio lì. 751 00:35:41,350 --> 00:35:42,280 Ma che è di destra. 752 00:35:42,280 --> 00:35:43,510 Rientro, vero o falso. 753 00:35:43,510 --> 00:35:47,630 >> Quindi, prima di iniziare, mi sento di raccomandare, se si ha familiarità con 754 00:35:47,630 --> 00:35:51,300 alberi binari di ricerca, in modo rapido disegno una foto di esso per ottenere il vostro 755 00:35:51,300 --> 00:35:51,750 comprensione, a destra. 756 00:35:51,750 --> 00:35:54,720 Questo ti aiuterà anche quando si scrive il codice e controllarlo. 757 00:35:54,720 --> 00:35:57,830 Ancora una volta, anche voi non avete che molto tempo sul quiz per fare tutte le cose 758 00:35:57,830 --> 00:35:59,030 che vi chiediamo di fare. 759 00:35:59,030 --> 00:36:02,350 Così la scrittura di codice pseudo è molto utile. 760 00:36:02,350 --> 00:36:05,310 >> E noi di solito diamo merito - 761 00:36:05,310 --> 00:36:06,820 se il pseudocodice è perfettamente corretto, che è 762 00:36:06,820 --> 00:36:08,910 generalmente 50% su una questione. 763 00:36:08,910 --> 00:36:11,410 Quindi non è una regola dura e veloce, ma se basta scrivere pseudocodice ed è 764 00:36:11,410 --> 00:36:13,460 corretta, è generalmente 50%. 765 00:36:13,460 --> 00:36:14,970 Così ho sempre consiglio - 766 00:36:14,970 --> 00:36:16,870 se hai poco tempo, o anche se si sta solo cercando di capirlo - 767 00:36:16,870 --> 00:36:18,290 partendo dal pseudocodice. 768 00:36:18,290 --> 00:36:24,840 E, infine, se tu potessi scrivere questo il tutto in C, sarebbe fantastico. 769 00:36:24,840 --> 00:36:29,010 >> Allora diamo tre minuti di lavorare su questo programma. 770 00:36:29,010 --> 00:36:33,120 E poi stiamo andando a scrivere pseudocodice per solo una volta, e poi 771 00:36:33,120 --> 00:36:35,455 andremo a codificare in modo ricorsivo quindi iterativamente. 772 00:36:35,455 --> 00:37:28,720 773 00:37:28,720 --> 00:37:30,760 >> Se avete domande, non esitate libero alzi la mano. 774 00:37:30,760 --> 00:37:34,270 Felice di passeggiare e rispondere prima di iniziare come un gruppo. 775 00:37:34,270 --> 00:39:22,600 776 00:39:22,600 --> 00:39:27,200 >> Riprendiamo, e stiamo andando a pseudocodice la versione ricorsiva di 777 00:39:27,200 --> 00:39:29,830 questo, e poi ci codificarlo. 778 00:39:29,830 --> 00:39:33,380 Quindi una funzione ricorsiva ha bisogno di due cose. 779 00:39:33,380 --> 00:39:35,960 Questa potrebbe essere una domanda che si potrebbe essere chiesto. 780 00:39:35,960 --> 00:39:37,950 Ha bisogno di due cose. 781 00:39:37,950 --> 00:39:40,610 Chi può alzare la mano e mi dicono quali sono le due cose che un ricorsiva 782 00:39:40,610 --> 00:39:43,680 funzione necessita? 783 00:39:43,680 --> 00:39:45,030 Per definizione ha due cose. 784 00:39:45,030 --> 00:39:46,280 Quali sono queste due cose? 785 00:39:46,280 --> 00:39:48,580 786 00:39:48,580 --> 00:39:49,830 Nuove mani. 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 >> PUBBLICO: Quindi io non sono esattamente sicuro se questa è la terminologia, ma - 790 00:39:57,980 --> 00:39:59,715 >> JASON HIRSCHHORN: Sono contento si sta alzando la mano. 791 00:39:59,715 --> 00:40:03,380 >> PUBBLICO: Ha bisogno di un caso base, e ha bisogno di un passo ricorsivo. 792 00:40:03,380 --> 00:40:03,960 >> JASON HIRSCHHORN: Perfect. 793 00:40:03,960 --> 00:40:06,340 Ha bisogno di un caso base e un passo ricorsivo. 794 00:40:06,340 --> 00:40:10,430 Allora, qual è il nostro caso base qui? 795 00:40:10,430 --> 00:40:12,950 >> AUDIENCE: F radice è uguale uguale a null. 796 00:40:12,950 --> 00:40:15,110 Spiacente, solo in pseudocodice, se è nullo. 797 00:40:15,110 --> 00:40:16,360 Se radice è nullo. 798 00:40:16,360 --> 00:40:21,900 799 00:40:21,900 --> 00:40:23,540 >> JASON HIRSCHHORN: se root è null. 800 00:40:23,540 --> 00:40:23,850 Questo è eccellente. 801 00:40:23,850 --> 00:40:24,610 Questo è il nostro caso base. 802 00:40:24,610 --> 00:40:25,910 Questo è quello che stiamo andando controllare ogni volta. 803 00:40:25,910 --> 00:40:28,000 Ed caso base è la prima cosa che fate. 804 00:40:28,000 --> 00:40:29,720 Se si preme il caso base, il gioco è fatto. 805 00:40:29,720 --> 00:40:34,140 >> Ora abbiamo bisogno della nostra chiamata ricorsiva, e mi piacerebbe essere disposti a scommettere abbiamo bisogno di un paio 806 00:40:34,140 --> 00:40:35,440 ricorsiva chiama qui. 807 00:40:35,440 --> 00:40:39,630 Perché è un albero, e noi potrebbe andare molteplici modi. 808 00:40:39,630 --> 00:40:43,190 Quindi, se radice è nullo, siamo a posto. 809 00:40:43,190 --> 00:40:44,970 >> Che cosa proponete? 810 00:40:44,970 --> 00:40:49,640 E ora ho intenzione di iniziare a chiamare fuori su di voi ragazzi, perché so voi ragazzi 811 00:40:49,640 --> 00:40:50,540 tutti lo sanno. 812 00:40:50,540 --> 00:40:52,610 Ma Annie, quello che dovrebbe la prossima linea sarà? 813 00:40:52,610 --> 00:40:53,570 Che cosa succede se abbiamo trovato? 814 00:40:53,570 --> 00:40:55,526 Che cosa facciamo? 815 00:40:55,526 --> 00:40:57,300 >> AUDIENCE: Se abbiamo trovato? 816 00:40:57,300 --> 00:40:59,160 >> JASON HIRSCHHORN: O che cosa deve essere quella - 817 00:40:59,160 --> 00:41:02,124 dammi la pseudocodice per il linea dove abbiamo trovato. 818 00:41:02,124 --> 00:41:04,700 >> AUDIENCE: se i è uguale a radice i? 819 00:41:04,700 --> 00:41:06,650 >> JASON HIRSCHHORN: E allora cosa facciamo? 820 00:41:06,650 --> 00:41:07,590 >> AUDIENCE: Restituisce vero. 821 00:41:07,590 --> 00:41:08,530 >> JASON HIRSCHHORN: Great. 822 00:41:08,530 --> 00:41:16,890 Quindi, se i è i - 823 00:41:16,890 --> 00:41:17,400 oh, sono entrambi chiamati i. 824 00:41:17,400 --> 00:41:18,470 Che si confonde. 825 00:41:18,470 --> 00:41:23,830 Ma se i è i ritorno vero. 826 00:41:23,830 --> 00:41:25,620 Questa è probabilmente la prossima cosa dovremmo fare. 827 00:41:25,620 --> 00:41:27,300 Ha senso. 828 00:41:27,300 --> 00:41:30,610 >> OK, ora non abbiamo fatto il nostro ricorsiva chiamare ancora, però, perché un ricorsiva 829 00:41:30,610 --> 00:41:32,300 chiamata sarebbe chiamare di nuovo questa funzione. 830 00:41:32,300 --> 00:41:41,460 Quindi cosa dovrebbe il prossimo linea di pseudocodice essere? 831 00:41:41,460 --> 00:41:42,730 Anna. 832 00:41:42,730 --> 00:41:43,980 >> PUBBLICO: Il lato sinistro. 833 00:41:43,980 --> 00:41:47,040 834 00:41:47,040 --> 00:41:47,590 >> JASON HIRSCHHORN: Sarai specifico, però. 835 00:41:47,590 --> 00:41:50,600 Questo è un albero binario di ricerca, così che cosa non controlla il lato sinistro comporta? 836 00:41:50,600 --> 00:41:51,890 >> AUDIENCE: So nodo - 837 00:41:51,890 --> 00:41:53,342 Mi dispiace, root. 838 00:41:53,342 --> 00:41:55,306 E poi freccia a sinistra. 839 00:41:55,306 --> 00:41:59,234 840 00:41:59,234 --> 00:42:00,720 Node, il nodo, mi dispiace. 841 00:42:00,720 --> 00:42:01,978 Non sto leggendo correttamente. 842 00:42:01,978 --> 00:42:05,700 Si chiama nodo, giusto? 843 00:42:05,700 --> 00:42:09,270 >> JASON HIRSCHHORN: Si chiamerà radice in quella funzione, ma in ogni modo. 844 00:42:09,270 --> 00:42:10,925 Il lato sinistro - sì? 845 00:42:10,925 --> 00:42:13,780 >> AUDIENCE: Se non lo fa uguale i, allora stiamo andando a chiamare 846 00:42:13,780 --> 00:42:15,130 la funzione di nuovo? 847 00:42:15,130 --> 00:42:15,490 >> JASON HIRSCHHORN: Proprio così. 848 00:42:15,490 --> 00:42:17,870 Se non uguali i, stiamo andando chiamare di nuovo la funzione. 849 00:42:17,870 --> 00:42:21,435 Ma da che parte dell'albero stiamo andando chiamare di nuovo la funzione? 850 00:42:21,435 --> 00:42:22,685 >> AUDIENCE: Sul lato sinistro. 851 00:42:22,685 --> 00:42:25,932 852 00:42:25,932 --> 00:42:27,670 >> JASON HIRSCHHORN: Non siamo sempre andando a chiamare sinistra, se 853 00:42:27,670 --> 00:42:29,190 non uguagliarlo. 854 00:42:29,190 --> 00:42:29,610 >> PUBBLICO: Oh, mi dispiace. 855 00:42:29,610 --> 00:42:31,200 Chiamare sulla destra. 856 00:42:31,200 --> 00:42:33,680 >> JASON HIRSCHHORN: Vogliamo sapere in particolare, se - ricordate, in un 857 00:42:33,680 --> 00:42:37,700 albero binario di ricerca, tutto a il lato sinistro è più piccolo. 858 00:42:37,700 --> 00:42:40,460 Tutto a destra lato è maggiore. 859 00:42:40,460 --> 00:42:43,990 Quindi non è solo - sì, andare avanti. 860 00:42:43,990 --> 00:42:46,805 >> AUDIENCE: Se si tratta di meno di me, poi - 861 00:42:46,805 --> 00:42:52,130 862 00:42:52,130 --> 00:42:53,380 se è a sinistra - 863 00:42:53,380 --> 00:42:56,160 864 00:42:56,160 --> 00:42:58,606 >> JASON HIRSCHHORN: Quindi, se ri è inferiore a - 865 00:42:58,606 --> 00:43:01,854 866 00:43:01,854 --> 00:43:09,110 quindi se il nostro numero è minore di i, da che parte vogliamo andare? 867 00:43:09,110 --> 00:43:15,120 >> PUBBLICO: Vogliamo andare sul lato destro. 868 00:43:15,120 --> 00:43:16,250 >> JASON HIRSCHHORN: Vogliamo andare - 869 00:43:16,250 --> 00:43:19,210 mi permetta di disegnare un albero rapido. 870 00:43:19,210 --> 00:43:23,850 Se questo è 5, questo sarà 3. 871 00:43:23,850 --> 00:43:29,410 Quindi, se RI è inferiore a cinque, cosa lato vogliamo andare? 872 00:43:29,410 --> 00:43:30,390 >> PUBBLICO: Siamo spiacenti, cosa? 873 00:43:30,390 --> 00:43:33,190 >> JASON HIRSCHHORN: Il nostro numero è inferiore al numero siamo 874 00:43:33,190 --> 00:43:34,710 guardando proprio ora. 875 00:43:34,710 --> 00:43:35,890 >> PUBBLICO: Oh, allora vogliamo per andare a sinistra. 876 00:43:35,890 --> 00:43:36,240 Già. 877 00:43:36,240 --> 00:43:36,920 Scusi. 878 00:43:36,920 --> 00:43:37,230 >> JASON HIRSCHHORN: Esattamente. 879 00:43:37,230 --> 00:43:38,480 Nessun problema. 880 00:43:38,480 --> 00:43:41,020 Nella albero binario di ricerca, tutto inferiore è a fianco, 881 00:43:41,020 --> 00:43:42,110 maggiore è a destra. 882 00:43:42,110 --> 00:43:46,700 Quindi, se il nostro numero è inferiore a l'ho stiamo controllando - 883 00:43:46,700 --> 00:43:48,790 perché si vede in nodo, ha un i - 884 00:43:48,790 --> 00:43:50,040 poi si vuole andare a sinistra. 885 00:43:50,040 --> 00:43:55,480 886 00:43:55,480 --> 00:43:56,720 >> E questo è facile. 887 00:43:56,720 --> 00:44:01,700 Che cosa è l'altra linea di pseudocodice abbiamo bisogno di scrivere? 888 00:44:01,700 --> 00:44:02,910 Carlos? 889 00:44:02,910 --> 00:44:05,970 >> AUDIENCE: Stessa cosa, si passa solo a un segno di maggiore 890 00:44:05,970 --> 00:44:07,420 e andate a destra. 891 00:44:07,420 --> 00:44:08,350 >> JASON HIRSCHHORN: si può dire che ancora una volta? 892 00:44:08,350 --> 00:44:11,640 >> AUDIENCE: Se il nostro numero è maggiore di me, vado a destra. 893 00:44:11,640 --> 00:44:24,900 894 00:44:24,900 --> 00:44:26,690 >> JASON HIRSCHHORN: Excellent lavoro sul pseudocodice. 895 00:44:26,690 --> 00:44:28,700 Facciamo questo nel codice reale. 896 00:44:28,700 --> 00:44:33,280 E ancora, questo pseudocodice sarà probabilmente otterrà, perché è 897 00:44:33,280 --> 00:44:35,480 corretta, il 50% su tale questione. 898 00:44:35,480 --> 00:44:39,720 Ma questo pseudocodice traduce anche uno a uno, in sostanza, in codice. 899 00:44:39,720 --> 00:44:44,380 >> Cerchiamo quindi di fare questo in C. Chi può dare me la prima riga di codice? 900 00:44:44,380 --> 00:44:48,390 In realtà, in primo luogo, prima di fare che, mi permetta di accostare - 901 00:44:48,390 --> 00:44:49,260 >> PUBBLICO: Ho una domanda. 902 00:44:49,260 --> 00:44:52,430 Perché hai rientrare l' linea che ti ho dato? 903 00:44:52,430 --> 00:44:54,160 >> JASON HIRSCHHORN: Perché Non ho potuto scrivere. 904 00:44:54,160 --> 00:44:55,240 Non lo so. 905 00:44:55,240 --> 00:44:55,650 Hai ragione. 906 00:44:55,650 --> 00:44:57,780 Tale linea dovrebbe essere laggiù. 907 00:44:57,780 --> 00:45:11,600 908 00:45:11,600 --> 00:45:14,480 >> OK, ecco la nostra funzione. 909 00:45:14,480 --> 00:45:18,090 E mi permetta di accostare, anche, nostra definizione di un nodo. 910 00:45:18,090 --> 00:45:23,320 911 00:45:23,320 --> 00:45:27,180 Cosa succede se non abbiamo fatto scrivere typedef? 912 00:45:27,180 --> 00:45:30,240 Qualcuno sa? 913 00:45:30,240 --> 00:45:32,570 >> AUDIENCE: Non sarebbe la compilazione. 914 00:45:32,570 --> 00:45:33,860 >> JASON HIRSCHHORN: Sarebbe compilare, sì. 915 00:45:33,860 --> 00:45:37,120 >> AUDIENCE: Sarebbe solo dichiarare una esempio, invece di fare una nuova 916 00:45:37,120 --> 00:45:39,840 tipo si potrebbe dichiarare più istanze di? 917 00:45:39,840 --> 00:45:41,700 >> JASON HIRSCHHORN: Così non sarebbe sa - non sarebbe 918 00:45:41,700 --> 00:45:43,120 solo dichiarare un tipo. 919 00:45:43,120 --> 00:45:46,150 Si potrebbe ancora fare un sacco di nodi. 920 00:45:46,150 --> 00:45:48,070 >> AUDIENCE: Ma non avremmo a scrivere struct node ogni volta? 921 00:45:48,070 --> 00:45:48,640 >> JASON HIRSCHHORN: Proprio così. 922 00:45:48,640 --> 00:45:50,960 Si dovrebbe scrivere struct node ogni volta, invece di nodo. 923 00:45:50,960 --> 00:45:55,270 Ma con typedef, si può solo scrivere nodo ogni volta. 924 00:45:55,270 --> 00:45:58,240 OK, che non ha dato - sì, Avica. 925 00:45:58,240 --> 00:46:01,520 >> AUDIENCE: Se radice è uguale uguale null, restituire false. 926 00:46:01,520 --> 00:46:07,130 927 00:46:07,130 --> 00:46:09,490 >> JASON HIRSCHHORN: Grande, e questo è il nostro caso base. 928 00:46:09,490 --> 00:46:11,200 Prossima linea di codice. 929 00:46:11,200 --> 00:46:13,999 Qualcuno che non ha dato me una riga di codice ancora? 930 00:46:13,999 --> 00:46:14,945 Già. 931 00:46:14,945 --> 00:46:23,360 >> AUDIENCE: Root freccia i è uguale pari a i. 932 00:46:23,360 --> 00:46:27,260 Poi ritorno true. 933 00:46:27,260 --> 00:46:29,162 >> JASON HIRSCHHORN: Great. 934 00:46:29,162 --> 00:46:32,048 Prossima linea? 935 00:46:32,048 --> 00:46:32,790 Già. 936 00:46:32,790 --> 00:46:34,010 Qualcun altro? 937 00:46:34,010 --> 00:46:36,774 E poi si può andare avanti. 938 00:46:36,774 --> 00:46:44,820 >> AUDIENCE: Else se radice freccia i è meno di torno 939 00:46:44,820 --> 00:46:47,737 funzione chiamata radice find - 940 00:46:47,737 --> 00:46:50,611 >> JASON HIRSCHHORN: Mi dispiace. 941 00:46:50,611 --> 00:46:56,272 >> AUDIENCE: root ritorno find punti a sinistra comma i. 942 00:46:56,272 --> 00:47:01,760 943 00:47:01,760 --> 00:47:08,440 >> JASON HIRSCHHORN: Quindi, se ri è maggiore che la cosa nella struttura, vogliamo 944 00:47:08,440 --> 00:47:09,573 andare a sinistra? 945 00:47:09,573 --> 00:47:11,790 >> PUBBLICO: No, ho avuto quel acceso. 946 00:47:11,790 --> 00:47:13,040 >> JASON HIRSCHHORN: Quale? 947 00:47:13,040 --> 00:47:16,310 948 00:47:16,310 --> 00:47:16,950 >> PUBBLICO: No, sì. 949 00:47:16,950 --> 00:47:19,050 Ho un segno di minore lì. 950 00:47:19,050 --> 00:47:22,890 >> JASON HIRSCHHORN: Giusto, se ri è meno di quello che c'è nella radice - 951 00:47:22,890 --> 00:47:25,660 la nostra radice attuale - allora vuole andare a sinistra. 952 00:47:25,660 --> 00:47:26,960 E qual è l'ultima riga, vero? 953 00:47:26,960 --> 00:47:30,930 >> AUDIENCE: fondamentalmente la stessa cosa, tranne commutare la maggiore o 954 00:47:30,930 --> 00:47:34,690 pari a meno e da sinistra a destra. 955 00:47:34,690 --> 00:47:43,590 956 00:47:43,590 --> 00:47:43,680 >> JASON HIRSCHHORN: Excellent. 957 00:47:43,680 --> 00:47:48,430 Qualcuno ha domande su questo? 958 00:47:48,430 --> 00:47:52,560 Così alcune altre cose che sarebbero sono stati corretti è che 959 00:47:52,560 --> 00:47:53,810 potrebbe essere il-ltiff. 960 00:47:53,810 --> 00:47:56,520 961 00:47:56,520 --> 00:47:59,520 Indovina, tecnicamente, nessuno di questi davvero bisogno anche di essere-ltiff. 962 00:47:59,520 --> 00:48:00,950 >> Inoltre, c'è probabilmente solo un caso qui. 963 00:48:00,950 --> 00:48:02,380 Ecco, questo è probabilmente il vostro ultimo caso. 964 00:48:02,380 --> 00:48:04,000 Non hai nemmeno bisogno di quel-ltiff. 965 00:48:04,000 --> 00:48:06,160 Ma probabilmente buona per scrivere che, per essere chiari. 966 00:48:06,160 --> 00:48:06,660 Già. 967 00:48:06,660 --> 00:48:09,200 >> AUDIENCE: Quindi non pensate che il quiz - se facciamo degli errori, per esempio, 968 00:48:09,200 --> 00:48:11,725 nella sintassi - 969 00:48:11,725 --> 00:48:13,990 piccoli errori di sintassi - 970 00:48:13,990 --> 00:48:17,810 come si fa che ottenere adottare in quiz? 971 00:48:17,810 --> 00:48:21,300 >> JASON HIRSCHHORN: Generalmente il quiz, piccoli errori di sintassi o piccolo 972 00:48:21,300 --> 00:48:24,010 errori di stile non perdono si punti. 973 00:48:24,010 --> 00:48:26,610 Quindi, se hai dimenticato un punto e virgola qui, sarebbe OK. 974 00:48:26,610 --> 00:48:30,290 Se hai dimenticato di chiudere questa parentesi, che sarebbe OK. 975 00:48:30,290 --> 00:48:34,880 >> Errori di sintassi Enormi che alterano la significato funzionale del codice 976 00:48:34,880 --> 00:48:37,600 drammaticamente, si potrebbe ottenere tolto punti per. 977 00:48:37,600 --> 00:48:40,330 O in generale, solo voi classificazione o meno la vostra 978 00:48:40,330 --> 00:48:42,150 codice funzioni, anche - 979 00:48:42,150 --> 00:48:44,830 non suo design tanto, e non il suo stile. 980 00:48:44,830 --> 00:48:50,780 981 00:48:50,780 --> 00:48:55,480 >> Vediamo ora un codice iterativo versione del ritrovamento. 982 00:48:55,480 --> 00:49:00,400 983 00:49:00,400 --> 00:49:03,450 Così sta andando essere abbastanza simili, ma Ci sono certamente sarà 984 00:49:03,450 --> 00:49:06,250 alcune differenze fondamentali. 985 00:49:06,250 --> 00:49:09,160 Tuttavia, il nostro pseudocodice probabilmente può andare - 986 00:49:09,160 --> 00:49:11,610 possiamo ancora prendere una riga del pseudocodice e capire cosa l' 987 00:49:11,610 --> 00:49:14,160 linea è in questo caso. 988 00:49:14,160 --> 00:49:18,010 >> Quindi, in una versione iterativa, cosa pensi, Julia, dovrebbe 989 00:49:18,010 --> 00:49:19,260 essere la prima linea? 990 00:49:19,260 --> 00:49:23,100 991 00:49:23,100 --> 00:49:26,920 >> PUBBLICO: Ancora una volta, in booleano iterativo, è necessario impostare un ciclo for, giusto? 992 00:49:26,920 --> 00:49:27,660 >> JASON HIRSCHHORN: OK. 993 00:49:27,660 --> 00:49:38,480 >> AUDIENCE: Così, per come, k, per x è uguale a 0, x è minore di i. 994 00:49:38,480 --> 00:49:42,260 O no, x è inferiore al dimensione dell'albero. 995 00:49:42,260 --> 00:49:42,760 >> JASON HIRSCHHORN: L'albero. 996 00:49:42,760 --> 00:49:46,660 Quindi noi non sappiamo veramente la dimensione del albero, e noi non sappiamo veramente per 997 00:49:46,660 --> 00:49:48,900 quante volte si può andare, così che cosa è un diverso tipo di ciclo che potrebbe essere 998 00:49:48,900 --> 00:49:50,150 meglio in questo caso? 999 00:49:50,150 --> 00:49:53,250 1000 00:49:53,250 --> 00:49:55,244 >> AUDIENCE: Se altro? 1001 00:49:55,244 --> 00:49:57,070 >> JASON HIRSCHHORN: Se altro non può essere un ciclo. 1002 00:49:57,070 --> 00:49:58,935 Allora che cosa è un tipo di ciclo possiamo solo andare finché non viene soddisfatta alcuni casi? 1003 00:49:58,935 --> 00:50:07,250 1004 00:50:07,250 --> 00:50:11,560 Qual è l'unico altro tipo di ciclo in C oltre a un ciclo for? 1005 00:50:11,560 --> 00:50:11,930 >> AUDIENCE: While. 1006 00:50:11,930 --> 00:50:13,380 >> JASON HIRSCHHORN: Mentre, esattamente. 1007 00:50:13,380 --> 00:50:16,430 In un ciclo while, non bisogno di sapere come - 1008 00:50:16,430 --> 00:50:18,450 un ciclo while e ciclo for può fare il esattamente la stessa cosa, ma la cosa bella 1009 00:50:18,450 --> 00:50:21,500 di un ciclo while è che non abbiamo bisogno per sapere quanto è grande il nostro albero. 1010 00:50:21,500 --> 00:50:23,060 Quindi stiamo per andare fino a quale? 1011 00:50:23,060 --> 00:50:25,880 1012 00:50:25,880 --> 00:50:28,032 >> AUDIENCE: Fino a quando non è uguale le dimensioni di - 1013 00:50:28,032 --> 00:50:32,320 >> JASON HIRSCHHORN: Beh, è ​​molto simile al nostro caso ricorsivo. 1014 00:50:32,320 --> 00:50:33,360 So - 1015 00:50:33,360 --> 00:50:36,470 >> AUDIENCE: Mentre radice Io non lo fa uguale i. 1016 00:50:36,470 --> 00:50:37,620 >> JASON HIRSCHHORN: Questo è davvero vicino. 1017 00:50:37,620 --> 00:50:39,430 Mentre radice i - 1018 00:50:39,430 --> 00:50:40,610 proviamo. 1019 00:50:40,610 --> 00:50:41,180 Non penso che [incomprensibile] 1020 00:50:41,180 --> 00:50:43,026 dove root io non è uguale a i. 1021 00:50:43,026 --> 00:50:47,380 1022 00:50:47,380 --> 00:50:49,460 Potremmo aver bisogno di cambiarlo in un po ' po ', ma che suona come è abbastanza 1023 00:50:49,460 --> 00:50:50,160 bene, per ora. 1024 00:50:50,160 --> 00:50:51,710 Quindi lo faremo. 1025 00:50:51,710 --> 00:50:55,660 >> Inoltre, ricordiamo, non possiamo assumere per la domanda. 1026 00:50:55,660 --> 00:50:57,880 Non si assume che la root sarà non nullo. 1027 00:50:57,880 --> 00:51:01,914 Allora, cosa ne pensi la stessa prima cosa da fare è? 1028 00:51:01,914 --> 00:51:02,770 >> AUDIENCE: Basta fare lo stesso cosa di prima. 1029 00:51:02,770 --> 00:51:05,260 Se la radice è uguale uguale null, restituire false. 1030 00:51:05,260 --> 00:51:11,030 1031 00:51:11,030 --> 00:51:12,130 >> JASON HIRSCHHORN: Great. 1032 00:51:12,130 --> 00:51:13,820 Così potrebbe essere nullo. 1033 00:51:13,820 --> 00:51:15,810 Quindi vogliamo sbarazzarci di subito. 1034 00:51:15,810 --> 00:51:19,560 E poi stiamo andando controllo se radice i non è uguale a i. 1035 00:51:19,560 --> 00:51:24,480 Quindi, diciamo che stiamo cercando in questo albero per 3, radice i non uguali i, ora 1036 00:51:24,480 --> 00:51:25,950 siamo nel nostro ciclo while. 1037 00:51:25,950 --> 00:51:27,500 Che cosa vogliamo fare? 1038 00:51:27,500 --> 00:51:32,320 1039 00:51:32,320 --> 00:51:35,430 E ancora, che sta per essere abbastanza simile alla nostra versione ricorsiva. 1040 00:51:35,430 --> 00:51:36,230 Già. 1041 00:51:36,230 --> 00:51:40,470 >> AUDIENCE: Così ci si vuole iterare, o proseguire lungo l'albero fino a quando 1042 00:51:40,470 --> 00:51:42,400 la radice non è uguale a zero. 1043 00:51:42,400 --> 00:51:45,120 1044 00:51:45,120 --> 00:51:46,640 >> JASON HIRSCHHORN: Finché l' root non è uguale a null? 1045 00:51:46,640 --> 00:51:50,200 >> PUBBLICO: Il cruscotto radice i non è uguale a zero. 1046 00:51:50,200 --> 00:51:51,220 Proprio la radice, sì. 1047 00:51:51,220 --> 00:51:52,920 Come fintanto che la radice è non uguale a null. 1048 00:51:52,920 --> 00:51:54,240 >> JASON HIRSCHHORN: Quindi vuoi per cambiare questo in radice 1049 00:51:54,240 --> 00:51:56,590 non è uguale a zero? 1050 00:51:56,590 --> 00:51:59,020 >> AUDIENCE: Già. 1051 00:51:59,020 --> 00:52:00,800 >> AUDIENCE: Potremmo combinare questi, giusto? 1052 00:52:00,800 --> 00:52:02,990 Non abbiamo bisogno del se, inizialmente. 1053 00:52:02,990 --> 00:52:05,180 >> JASON HIRSCHHORN: OK, quindi se Non. - 1054 00:52:05,180 --> 00:52:08,140 se li uniamo, quindi andremo a fare mentre la radice non è uguale a null, e 1055 00:52:08,140 --> 00:52:10,800 se la radice sembra essere nullo alla inizio, cosa facciamo qui? 1056 00:52:10,800 --> 00:52:11,450 >> AUDIENCE: Ritorno false. 1057 00:52:11,450 --> 00:52:12,730 >> JASON HIRSCHHORN: Great. 1058 00:52:12,730 --> 00:52:14,110 Quindi in entrambi i modi, probabilmente avrebbe funzionato. 1059 00:52:14,110 --> 00:52:15,645 Questo è un modo diverso, e questo combina. 1060 00:52:15,645 --> 00:52:18,950 Ma ancora una volta, se l'avete fatto in entrambi i casi, siamo non andare a decollare progettazione 1061 00:52:18,950 --> 00:52:19,800 punti sul quiz. 1062 00:52:19,800 --> 00:52:21,020 Ma questo sembra buono. 1063 00:52:21,020 --> 00:52:23,940 >> Così, mentre root non è uguale nullo, qual è il primo 1064 00:52:23,940 --> 00:52:25,400 cosa che vogliamo controllare? 1065 00:52:25,400 --> 00:52:26,330 Qualcun altro? 1066 00:52:26,330 --> 00:52:29,720 Null, qual è la prima cosa? 1067 00:52:29,720 --> 00:52:32,850 >> AUDIENCE: se ri è inferiore a - 1068 00:52:32,850 --> 00:52:36,140 oh, credo che, se abbiamo già trovato nella radice. 1069 00:52:36,140 --> 00:52:40,830 Quindi, se radice freccia i è uguale a i - 1070 00:52:40,830 --> 00:52:40,990 >> JASON HIRSCHHORN: Sorry? 1071 00:52:40,990 --> 00:52:45,840 >> AUDIENCE: Se radice freccia i è uguale uguale i - 1072 00:52:45,840 --> 00:52:47,090 >> JASON HIRSCHHORN: Che cosa facciamo? 1073 00:52:47,090 --> 00:52:50,300 1074 00:52:50,300 --> 00:52:51,550 >> AUDIENCE: Restituisce vero. 1075 00:52:51,550 --> 00:52:58,850 1076 00:52:58,850 --> 00:52:59,280 >> JASON HIRSCHHORN: Great. 1077 00:52:59,280 --> 00:53:00,530 E adesso? 1078 00:53:00,530 --> 00:53:04,510 1079 00:53:04,510 --> 00:53:06,843 Jeff, qual è la seguente riga di codice? 1080 00:53:06,843 --> 00:53:16,190 >> AUDIENCE: se i è minore della radice freccia i, allora radice è uguale a radice freccia sinistra. 1081 00:53:16,190 --> 00:53:21,550 >> JASON Hirschhorn: equals Root radice freccia a sinistra. 1082 00:53:21,550 --> 00:53:24,530 Ecco, questo è probabilmente il più grande differenza in questa iterativo 1083 00:53:24,530 --> 00:53:26,600 versione opposta alla versione ricorsiva. 1084 00:53:26,600 --> 00:53:28,970 La versione ricorsiva, si chiamare di nuovo la funzione. 1085 00:53:28,970 --> 00:53:32,640 Saremo aggiornando root chiamiamo la nuova funzione. 1086 00:53:32,640 --> 00:53:34,170 Qui non stiamo chiamando una nuova funzione. 1087 00:53:34,170 --> 00:53:37,610 Stiamo semplicemente aggiornando radice in questa funzione. 1088 00:53:37,610 --> 00:53:38,880 Questo è eccellente. 1089 00:53:38,880 --> 00:53:40,730 E qual è l'ultima riga di codice? 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 >> AUDIENCE: equals radice Else radice freccia destra. 1093 00:53:48,290 --> 00:53:49,492 >> JASON HIRSCHHORN: Sorry? 1094 00:53:49,492 --> 00:53:52,340 >> Equals Root: UDIENZA radice freccia destra. 1095 00:53:52,340 --> 00:53:55,590 1096 00:53:55,590 --> 00:53:57,140 >> JASON HIRSCHHORN: si potrebbe anche scrivere qualcosa del genere? 1097 00:53:57,140 --> 00:54:02,786 1098 00:54:02,786 --> 00:54:03,890 >> PUBBLICO: Non ho idea. 1099 00:54:03,890 --> 00:54:05,140 >> JASON HIRSCHHORN: non è possibile. 1100 00:54:05,140 --> 00:54:07,302 1101 00:54:07,302 --> 00:54:08,270 Non si può fare più eguali. 1102 00:54:08,270 --> 00:54:10,780 Ok, quindi questo sembra buono. 1103 00:54:10,780 --> 00:54:13,620 Perché non solo facciamo per ripulirlo. 1104 00:54:13,620 --> 00:54:15,220 Questo sembra grande, e questo dovrebbe funzionare. 1105 00:54:15,220 --> 00:54:16,920 E vorremmo uscire. 1106 00:54:16,920 --> 00:54:21,460 >> Se radice di sinistra era proprio nullo o root era nullo, saremmo venuti qui. 1107 00:54:21,460 --> 00:54:22,470 Root sarebbe pari a null. 1108 00:54:22,470 --> 00:54:24,270 Saremmo spezziamo fuori del nostro ciclo, e ci piacerebbe tornare false. 1109 00:54:24,270 --> 00:54:26,280 Così, quando usciamo di loop, torniamo false. 1110 00:54:26,280 --> 00:54:29,520 1111 00:54:29,520 --> 00:54:32,793 >> E ancora, il un ciclo while era perfetto qui perché noi non sappiamo come 1112 00:54:32,793 --> 00:54:33,850 grande il nostro albero è. 1113 00:54:33,850 --> 00:54:36,460 Abbiamo provato a scrivere il ciclo for, ma noi capito hai avuto modo di capire come 1114 00:54:36,460 --> 00:54:37,410 è grande prima del tempo. 1115 00:54:37,410 --> 00:54:38,720 Già. 1116 00:54:38,720 --> 00:54:41,790 >> AUDIENCE: Se non fosse un binario albero di ricerca, sarebbe reale math-y 1117 00:54:41,790 --> 00:54:44,220 a scriverlo in modo iterativo, giusto? 1118 00:54:44,220 --> 00:54:47,170 Come se fosse un albero, ma non necessariamente - 1119 00:54:47,170 --> 00:54:49,730 quindi non era più piccolo sulla sinistra, e tutta più grande sulla destra. 1120 00:54:49,730 --> 00:54:52,540 Sarebbe davvero difficile per scorrere su di esso, giusto? 1121 00:54:52,540 --> 00:54:55,720 Dovremmo salvare ciò che era prima sul nell'albero e tornare indietro, 1122 00:54:55,720 --> 00:54:56,970 e cose del genere. 1123 00:54:56,970 --> 00:54:59,690 1124 00:54:59,690 --> 00:55:02,010 >> JASON HIRSCHHORN: Se non fosse un binario albero di ricerca, se fosse solo un 1125 00:55:02,010 --> 00:55:04,740 albero e le cose non erano ordinato come questo - 1126 00:55:04,740 --> 00:55:07,440 e ci siamo resi conto prima, quando Anna ci stava aiutando che lo rende 1127 00:55:07,440 --> 00:55:08,800 ordinato ci aiuta molto - 1128 00:55:08,800 --> 00:55:12,610 dovremmo, sì, salva sempre dove eravamo prima. 1129 00:55:12,610 --> 00:55:14,430 Ma ci potrebbe essere un sacco di dove eravamo previouslys. 1130 00:55:14,430 --> 00:55:17,730 Ci potrebbe essere un sacco di nodi padre. 1131 00:55:17,730 --> 00:55:22,530 >> Probabilmente il modo migliore per farlo sarebbe essere quello di continuare a spingere le cose su qualche 1132 00:55:22,530 --> 00:55:24,170 tipo di pila o di coda. 1133 00:55:24,170 --> 00:55:26,030 Si sarebbe mai bisogno di codificare questa perché è un problema difficile. 1134 00:55:26,030 --> 00:55:30,820 Ma si spinge alcune cose su una pila o in coda e poi pop off, e 1135 00:55:30,820 --> 00:55:31,890 poi valutare. 1136 00:55:31,890 --> 00:55:34,200 >> E poi avere qualche altra cosa, dove si sta effettivamente mettendo i nodi, e 1137 00:55:34,200 --> 00:55:36,090 quindi creare che, quindi la ricerca in questo. 1138 00:55:36,090 --> 00:55:38,700 Questo potrebbe essere il modo migliore per farlo. 1139 00:55:38,700 --> 00:55:42,410 OK, domande su questo problema? 1140 00:55:42,410 --> 00:55:44,670 >> AUDIENCE: Questo è su una nota correlata. 1141 00:55:44,670 --> 00:55:50,460 Avremo di confrontare i tempi di esecuzione per le tabelle hash, binario 1142 00:55:50,460 --> 00:55:52,160 alberi di ricerca, et cetera? 1143 00:55:52,160 --> 00:55:54,310 >> JASON HIRSCHHORN: Probabilmente. 1144 00:55:54,310 --> 00:55:56,150 Allora, facciamo che molto velocemente. 1145 00:55:56,150 --> 00:55:58,490 Tempo di esecuzione per la tabella hash - 1146 00:55:58,490 --> 00:55:59,090 quali sono gli altri? 1147 00:55:59,090 --> 00:56:00,050 Albero binario? 1148 00:56:00,050 --> 00:56:02,920 >> AUDIENCE: elenchi di link. 1149 00:56:02,920 --> 00:56:04,780 >> JASON HIRSCHHORN: OK, facciamolo inserto. 1150 00:56:04,780 --> 00:56:09,980 Qual è il grande O dell'inserto su una tabella hash? 1151 00:56:09,980 --> 00:56:13,080 1152 00:56:13,080 --> 00:56:15,285 Quali sono i presupposti che stai facendo? 1153 00:56:15,285 --> 00:56:17,760 >> AUDIENCE: Stai inserendo al brano dell'elenco collegamento. 1154 00:56:17,760 --> 00:56:19,860 >> JASON HIRSCHHORN: Probabilmente il primo presupposto è non ci sono collisioni. 1155 00:56:19,860 --> 00:56:22,340 Se non ci sono collisioni, allora il tempo di inserimento è uno. 1156 00:56:22,340 --> 00:56:26,560 Se ci sono collisioni, e siete facendo concatenazioni separate e l'inserimento 1157 00:56:26,560 --> 00:56:31,880 all'inizio della lista di link, allora inserimento è anche costante. 1158 00:56:31,880 --> 00:56:34,700 >> Se stai facendo una tabella hash, ma si avere un diverso metodo di trattare 1159 00:56:34,700 --> 00:56:36,040 con collisioni, ciò che è un metodo diverso? 1160 00:56:36,040 --> 00:56:41,580 1161 00:56:41,580 --> 00:56:42,960 Cosa c'è è un metodo diverso di trattare con 1162 00:56:42,960 --> 00:56:44,205 collisione in una tabella hash? 1163 00:56:44,205 --> 00:56:44,915 >> AUDIENCE: programmazione lineare. 1164 00:56:44,915 --> 00:56:45,540 >> JASON HIRSCHHORN: programmazione lineare. 1165 00:56:45,540 --> 00:56:47,770 Quindi stiamo andando a continuare a cercare per il prossimo luogo aperto. 1166 00:56:47,770 --> 00:56:50,390 Questo non è il tempo di inserimento costante. 1167 00:56:50,390 --> 00:56:52,266 Si potrebbe passare attraverso l'intera tabella, in modo che 1168 00:56:52,266 --> 00:56:53,936 potrebbe essere grande O di n. 1169 00:56:53,936 --> 00:56:54,740 Già. 1170 00:56:54,740 --> 00:56:57,690 >> AUDIENCE: Altrimenti basta concatenamento? 1171 00:56:57,690 --> 00:57:00,160 >> JASON HIRSCHHORN: Abbiamo fatto concatenazioni separate. 1172 00:57:00,160 --> 00:57:00,720 Questo è stato il primo. 1173 00:57:00,720 --> 00:57:01,560 Questo è ciò che la lista di link. 1174 00:57:01,560 --> 00:57:03,720 Il nome di fantasia è concatenazioni separate. 1175 00:57:03,720 --> 00:57:06,880 Potrebbe essere qualsiasi tipo di struttura della lista ci capita di fare in lista di link. 1176 00:57:06,880 --> 00:57:10,490 >> Quindi, di nuovo, di inserimento su una tabella hash potrebbe essere tempo costante. 1177 00:57:10,490 --> 00:57:13,160 Che dire di inserimento su una coda stacker? 1178 00:57:13,160 --> 00:57:19,260 1179 00:57:19,260 --> 00:57:20,640 >> AUDIENCE: Non è che costante? 1180 00:57:20,640 --> 00:57:21,530 >> JASON HIRSCHHORN: E 'tempo costante. 1181 00:57:21,530 --> 00:57:23,420 Stai solo spingendo su. 1182 00:57:23,420 --> 00:57:24,120 OK. 1183 00:57:24,120 --> 00:57:25,380 Inserimento, quali erano gli altri? 1184 00:57:25,380 --> 00:57:27,100 In una prova? 1185 00:57:27,100 --> 00:57:30,252 Qual è la grande O di inserimento su una prova? 1186 00:57:30,252 --> 00:57:32,808 >> AUDIENCE: Lunghezza è costante. 1187 00:57:32,808 --> 00:57:34,560 Lunghezza del più lungo - 1188 00:57:34,560 --> 00:57:36,998 la lunghezza della parola si sta inserendo. 1189 00:57:36,998 --> 00:57:38,210 >> JASON HIRSCHHORN: Sorry? 1190 00:57:38,210 --> 00:57:39,120 Aspetta, quindi quello che ho sentito? 1191 00:57:39,120 --> 00:57:40,260 Hai detto - che cosa hai detto? 1192 00:57:40,260 --> 00:57:41,650 Qual è stata la tua risposta, Marcus? 1193 00:57:41,650 --> 00:57:43,640 >> Pubblico: La lunghezza della parola si sta inserendo in caratteri, 1194 00:57:43,640 --> 00:57:45,480 ammesso che sia una prova di carattere. 1195 00:57:45,480 --> 00:57:46,840 >> JASON HIRSCHHORN: OK, così la lunghezza della parola. 1196 00:57:46,840 --> 00:57:49,500 Faremo un presupposto che si tratta di una stringa di caratteri. 1197 00:57:49,500 --> 00:57:51,930 Hai detto qualcosa di diverso, però. 1198 00:57:51,930 --> 00:57:55,490 Hai detto lunghezza della parola più lunga. 1199 00:57:55,490 --> 00:57:57,600 >> AUDIENCE: Questo è solo costante, giusto? 1200 00:57:57,600 --> 00:57:58,440 >> JASON HIRSCHHORN: Perché sarebbe che sia costante? 1201 00:57:58,440 --> 00:58:00,970 >> PUBBLICO: Come, se si utilizza O grande notazione, allora non variano in base 1202 00:58:00,970 --> 00:58:04,680 il numero di cose che sono già in prova. 1203 00:58:04,680 --> 00:58:07,344 >> JASON HIRSCHHORN: così avremmo dire che è tempo costante. 1204 00:58:07,344 --> 00:58:11,840 È inserimento costante, e questo perché questa idea - 1205 00:58:11,840 --> 00:58:14,820 dire che abbiamo una parola che è 45, o una parola che è 60, che 1206 00:58:14,820 --> 00:58:16,800 ha un numero costante. 1207 00:58:16,800 --> 00:58:21,050 E sarebbe solo essere inserita in tempo costante. 1208 00:58:21,050 --> 00:58:26,060 >> In pratica, tuttavia, non sarebbe, ovviamente, accadere in un millisecondo, 1209 00:58:26,060 --> 00:58:26,590 per esempio. 1210 00:58:26,590 --> 00:58:28,880 Ma diremmo grande O è costante per una prova. 1211 00:58:28,880 --> 00:58:31,330 E questo è uno dei suoi maggiori vantaggi. 1212 00:58:31,330 --> 00:58:33,330 >> Che dire di inserimento in un elenco di link? 1213 00:58:33,330 --> 00:58:37,220 Solo un elenco di link ordinati generico? 1214 00:58:37,220 --> 00:58:37,700 Già. 1215 00:58:37,700 --> 00:58:38,530 >> PUBBLICO: avevo una domanda. 1216 00:58:38,530 --> 00:58:42,670 Nella prova, avrebbero mai noi il chiedere all'ora di inserimento che è quattro passi, 1217 00:58:42,670 --> 00:58:43,270 o qualcosa del genere? 1218 00:58:43,270 --> 00:58:44,300 O è solo - 1219 00:58:44,300 --> 00:58:47,670 quando si dice il tempo di inserimento è uno, questo significa solo tempo costante? 1220 00:58:47,670 --> 00:58:49,770 >> JASON HIRSCHHORN: Sì, avrebbero sempre chiedere, è grande O di n? 1221 00:58:49,770 --> 00:58:51,440 Big O di log n? 1222 00:58:51,440 --> 00:58:53,960 N quadrato costante. 1223 00:58:53,960 --> 00:58:56,520 Quelli sono davvero l'unica quelli che dovete sapere. 1224 00:58:56,520 --> 00:58:58,420 Che dire di inserimento su ordinati elenco di link? 1225 00:58:58,420 --> 00:58:59,440 >> PUBBLICO: avevo una domanda - 1226 00:58:59,440 --> 00:58:59,980 una domanda - 1227 00:58:59,980 --> 00:59:01,060 >> JASON HIRSCHHORN: Qual è la risposta a questa domanda, però? 1228 00:59:01,060 --> 00:59:02,120 >> PUBBLICO: Aspetta, che cosa hai chiesto? 1229 00:59:02,120 --> 00:59:06,750 >> JASON HIRSCHHORN: Che cosa è grande O di l'inserimento in un elenco di link ordinati? 1230 00:59:06,750 --> 00:59:07,070 >> AUDIENCE: One? 1231 00:59:07,070 --> 00:59:09,400 No aspetta, No aspetta, n. 1232 00:59:09,400 --> 00:59:11,420 >> JASON HIRSCHHORN: N. Oltre l'elenco di link. 1233 00:59:11,420 --> 00:59:12,706 E qual è stata la tua domanda? 1234 00:59:12,706 --> 00:59:16,440 >> AUDIENCE: Quindi vuoi scrivere o di k o o 1 per il - 1235 00:59:16,440 --> 00:59:18,150 >> JASON HIRSCHHORN: Oh. 1236 00:59:18,150 --> 00:59:21,830 Vorrei scrivere o di 1, probabilmente. 1237 00:59:21,830 --> 00:59:24,160 C'era un'altra struttura dati che sarebbe stato buono. 1238 00:59:24,160 --> 00:59:25,730 Albero, albero binario di ricerca. 1239 00:59:25,730 --> 00:59:27,510 Cosa c'è di inserimento su una albero binario di ricerca? 1240 00:59:27,510 --> 00:59:31,190 1241 00:59:31,190 --> 00:59:33,900 >> AUDIENCE: Effettua il login. 1242 00:59:33,900 --> 00:59:39,260 >> JASON HIRSCHHORN: Quindi, qual è il peggiore caso in un albero binario di ricerca? 1243 00:59:39,260 --> 00:59:45,350 Quindi, se ci capita di cominciare a 5, ed ogni numero è maggiore di 5, allora 1244 00:59:45,350 --> 00:59:48,760 abbiamo 5, 7, 9, 11, et cetera. 1245 00:59:48,760 --> 00:59:52,255 In questo caso, è fondamentalmente solo un link lista, e abbiamo bisogno di inserire tutti 1246 00:59:52,255 --> 00:59:52,680 il modo alla fine. 1247 00:59:52,680 --> 00:59:54,350 Quindi è grande O di n. 1248 00:59:54,350 --> 00:59:57,720 >> Questo potrebbe essere il nostro caso peggiore su un albero binario di ricerca. 1249 00:59:57,720 --> 01:00:00,890 Ovviamente, non avresti mai costruire un albero di ricerca binario con 5 nella 1250 01:00:00,890 --> 01:00:04,270 mezzo, sapendo 5 sarebbe essere il numero più basso. 1251 01:00:04,270 --> 01:00:08,030 Ma potrebbe essere, se siete partendo da zero. 1252 01:00:08,030 --> 01:00:10,980 Hai domande su questo prima di passare a un'altra domanda? 1253 01:00:10,980 --> 01:00:11,560 Quella era una buona domanda. 1254 01:00:11,560 --> 01:00:15,100 Vorrei sapere grande O di - 1255 01:00:15,100 --> 01:00:18,620 >> AUDIENCE: Cosa sulla ricerca per quei quattro? 1256 01:00:18,620 --> 01:00:20,400 >> JASON HIRSCHHORN: Sicuramente noi ha ricerca e l'ordinamento. 1257 01:00:20,400 --> 01:00:22,160 Abbiamo fatto tutti questi algoritmi, giusto. 1258 01:00:22,160 --> 01:00:23,390 Aspetta, era che per Quiz 1? 1259 01:00:23,390 --> 01:00:23,980 Era quello coperto - 1260 01:00:23,980 --> 01:00:25,860 hai già che questione Quiz 1? 1261 01:00:25,860 --> 01:00:29,650 Il grande O runtime di ricerca binaria, insertion sort, bubble sort? 1262 01:00:29,650 --> 01:00:30,160 >> AUDIENCE: Già. 1263 01:00:30,160 --> 01:00:32,790 >> JASON HIRSCHHORN: Se tu avessi che questione Quiz 0, le probabilità sono che non sarà 1264 01:00:32,790 --> 01:00:35,180 ottenere la stessa domanda esatta Quiz 1. 1265 01:00:35,180 --> 01:00:36,300 Potrebbe essere comunque bene sapere chi. 1266 01:00:36,300 --> 01:00:38,520 Sperabilmente dovreste sapere gh già. 1267 01:00:38,520 --> 01:00:40,740 >> Ma altri runtime logaritmiche sono probabilmente buono a sapersi. 1268 01:00:40,740 --> 01:00:42,890 Le cose che non erano coperti su Quiz 0. 1269 01:00:42,890 --> 01:00:47,300 Come tutti questi operatori questi tipi di dati astratti. 1270 01:00:47,300 --> 01:00:50,760 >> Ok, andiamo avanti. 1271 01:00:50,760 --> 01:00:52,190 Questo dovrebbe essere piuttosto veloce. 1272 01:00:52,190 --> 01:00:56,170 E questo è un nuovo linguaggio che non abbiamo effettivamente codificata in prima. 1273 01:00:56,170 --> 01:00:59,300 Questa è una domanda che chiede al codice in PHP. 1274 01:00:59,300 --> 01:01:01,950 Quindi prendere in considerazione l'array PHP sotto. 1275 01:01:01,950 --> 01:01:06,150 Scrivere codice PHP e / o HTML in modo tale da emette una tabella a due colonne con TF 1276 01:01:06,150 --> 01:01:08,810 I nomi e le case. 1277 01:01:08,810 --> 01:01:11,600 >> Non hai mai fatto prima, questo problema specifico. 1278 01:01:11,600 --> 01:01:16,270 Ma questo dovrebbe essere molto familiare a quello che hai fatto in problema di set 7. 1279 01:01:16,270 --> 01:01:21,250 Quindi io sarei pronto a scommettere che sarà chiesto di codificare qualcosa in PHP che 1280 01:01:21,250 --> 01:01:23,880 è molto simile a quello che si fatto nel problema set 7. 1281 01:01:23,880 --> 01:01:26,300 >> In primo luogo, non è matrice che specifica. 1282 01:01:26,300 --> 01:01:28,140 Che tipo di matrice è questa? 1283 01:01:28,140 --> 01:01:29,080 >> AUDIENCE: associativa. 1284 01:01:29,080 --> 01:01:31,250 >> JASON HIRSCHHORN: E ' un array associativo. 1285 01:01:31,250 --> 01:01:33,750 E qual è la differenza tra un array associativo e un oggetto? 1286 01:01:33,750 --> 01:01:41,780 1287 01:01:41,780 --> 01:01:44,857 >> PUBBLICO: Un array oggetto ha un indice di interi e un array associativo 1288 01:01:44,857 --> 01:01:47,814 è un indice di una stringa, o qualcosa di simile. 1289 01:01:47,814 --> 01:01:50,570 1290 01:01:50,570 --> 01:01:54,880 >> JASON HIRSCHHORN: Quindi una serie di oggetti avrebbero indici di 1291 01:01:54,880 --> 01:01:57,090 numeri interi, ma un oggetto ha campi. 1292 01:01:57,090 --> 01:02:01,590 Ha i nomi dei campi come nome, casa, studente. 1293 01:02:01,590 --> 01:02:03,720 Avete un'idea? 1294 01:02:03,720 --> 01:02:06,630 >> PUBBLICO: Beh, associativa array è in PHP, giusto? 1295 01:02:06,630 --> 01:02:07,880 E oggetto è in JavaScript? 1296 01:02:07,880 --> 01:02:12,330 1297 01:02:12,330 --> 01:02:14,820 >> JASON HIRSCHHORN: Onestamente, non c'è vera differenza tra i due. 1298 01:02:14,820 --> 01:02:19,540 Entrambi hanno stringhe come le chiavi, e può hanno praticamente nulla come valore. 1299 01:02:19,540 --> 01:02:21,250 Lingue diverse chiamano uno cosa array associativo, 1300 01:02:21,250 --> 01:02:22,750 una cosa un oggetto. 1301 01:02:22,750 --> 01:02:25,960 Quindi onestamente, non c'è una vera differenza, ma c'è sicuramente un po ' 1302 01:02:25,960 --> 01:02:27,730 differenze sintattiche tra i due. 1303 01:02:27,730 --> 01:02:28,200 Già. 1304 01:02:28,200 --> 01:02:33,580 >> AUDIENCE: Così è oggetto anche codificata sotto la cappa come una tabella hash, allora? 1305 01:02:33,580 --> 01:02:35,796 >> JASON HIRSCHHORN: Quello che fai significa, codificata sotto il cofano? 1306 01:02:35,796 --> 01:02:38,017 >> AUDIENCE: Ci hanno detto che associativo matrice era tecnicamente un 1307 01:02:38,017 --> 01:02:39,960 Hash Table. 1308 01:02:39,960 --> 01:02:44,510 Così è oggetto anche tecnicamente una tabella di hash? 1309 01:02:44,510 --> 01:02:45,350 >> JASON HIRSCHHORN: non mi va per rispondere a questa domanda. 1310 01:02:45,350 --> 01:02:46,600 Tornerò a voi su questo. 1311 01:02:46,600 --> 01:02:48,980 Ma non vorrei pensare a entrambi di quelli come tale. 1312 01:02:48,980 --> 01:02:53,790 Ma, in ogni modo, array associativo e oggetto, in generale, la gente usa quelli 1313 01:02:53,790 --> 01:02:54,910 termini in modo intercambiabile. 1314 01:02:54,910 --> 01:02:57,630 In questo caso, la parte fredda è possibile utilizzare i tasti. 1315 01:02:57,630 --> 01:03:00,580 Stringhe come chiavi, anziché solo semplici numeri. 1316 01:03:00,580 --> 01:03:02,070 >> Così ho parlato questo per un po '. 1317 01:03:02,070 --> 01:03:04,090 Speriamo, alcune persone hanno ottenuto iniziato su questo. 1318 01:03:04,090 --> 01:03:08,050 Stiamo andando a scrivere qualche PHP e HTML codice, in modo che si ottiene un due colonne 1319 01:03:08,050 --> 01:03:11,830 tabella con i nomi TFs e le case. 1320 01:03:11,830 --> 01:03:15,380 >> OK, mi piacerebbe anche un colpo di testa riga in questa tabella. 1321 01:03:15,380 --> 01:03:18,410 Quindi ho intenzione di andare dritto in questo. 1322 01:03:18,410 --> 01:03:20,770 Stiamo andando a File, Nuovo, e stiamo andando - 1323 01:03:20,770 --> 01:03:27,780 1324 01:03:27,780 --> 01:03:28,320 >> OK. 1325 01:03:28,320 --> 01:03:29,970 Come faccio a iniziare un tavolo? 1326 01:03:29,970 --> 01:03:32,090 Qual è il tag, Michael, ad iniziare una tabella? 1327 01:03:32,090 --> 01:03:32,890 >> AUDIENCE: Table. 1328 01:03:32,890 --> 01:03:34,020 >> JASON HIRSCHHORN: Table. 1329 01:03:34,020 --> 01:03:37,870 E se apro un tag, cosa cosa ho bisogno? 1330 01:03:37,870 --> 01:03:39,810 >> PUBBLICO: Una testa? 1331 01:03:39,810 --> 01:03:41,040 O, suppongo, di classe. 1332 01:03:41,040 --> 01:03:41,730 >> JASON HIRSCHHORN: Quindi, mi dispiace. 1333 01:03:41,730 --> 01:03:45,430 Supponiamo che abbiamo già scritto doctab, HTML, tutta quella roba. 1334 01:03:45,430 --> 01:03:50,230 Ma se apro questo tag table, cosa altrimenti devo scrivere? 1335 01:03:50,230 --> 01:03:53,450 per validare HTML? 1336 01:03:53,450 --> 01:03:55,000 >> AUDIENCE: Chiuderlo. 1337 01:03:55,000 --> 01:03:56,050 >> JASON HIRSCHHORN: chiudere il tag. 1338 01:03:56,050 --> 01:03:57,575 Come faccio a scrivere un tag close-tavolo? 1339 01:03:57,575 --> 01:03:59,580 >> AUDIENCE: Dot ridurre drasticamente tavolo. 1340 01:03:59,580 --> 01:04:00,960 >> JASON HIRSCHHORN: Slash tavolo, grande. 1341 01:04:00,960 --> 01:04:02,730 Probabilmente un senso di scrivere sia di coloro che insieme perché 1342 01:04:02,730 --> 01:04:03,870 hai avuto modo di farlo. 1343 01:04:03,870 --> 01:04:08,575 OK, se voglio una riga di intestazione, come si fa Scrivo una riga di intestazione con i titoli? 1344 01:04:08,575 --> 01:04:11,650 1345 01:04:11,650 --> 01:04:19,290 >> PUBBLICO: E 'meno di 10 ore close - 1346 01:04:19,290 --> 01:04:21,550 TR, sì. 1347 01:04:21,550 --> 01:04:22,100 >> JASON HIRSCHHORN: TR? 1348 01:04:22,100 --> 01:04:25,080 >> AUDIENCE: Allora stessa cosa, la barra, sì. 1349 01:04:25,080 --> 01:04:26,610 >> JASON HIRSCHHORN: OK, e dammi due colonne. 1350 01:04:26,610 --> 01:04:30,100 1351 01:04:30,100 --> 01:04:33,210 >> AUDIENCE: 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 Voglio due colonne. 1355 01:04:39,520 --> 01:04:40,960 Questo mi dà due colonne? 1356 01:04:40,960 --> 01:04:43,880 Quante colonne è questo? 1357 01:04:43,880 --> 01:04:45,920 Uno. 1358 01:04:45,920 --> 01:04:47,170 Quindi cerchiamo di copiare e incollare questo. 1359 01:04:47,170 --> 01:04:59,750 1360 01:04:59,750 --> 01:05:03,390 >> Quindi, in realtà, sul quiz, tutto questo codice che abbiamo scritto finora è stato 1361 01:05:03,390 --> 01:05:04,710 effettivamente dato a voi. 1362 01:05:04,710 --> 01:05:06,200 Ma si dovrebbe probabilmente ancora sa come scriverlo. 1363 01:05:06,200 --> 01:05:06,470 Già. 1364 01:05:06,470 --> 01:05:10,636 >> PUBBLICO: La vostra casa è tra i due. 1365 01:05:10,636 --> 01:05:11,130 >> JASON HIRSCHHORN: Boom. 1366 01:05:11,130 --> 01:05:12,720 Dovrebbe andare proprio lì, giusto? 1367 01:05:12,720 --> 01:05:14,600 Buona chiamata. 1368 01:05:14,600 --> 01:05:17,760 Quindi, di nuovo, tutto questo codice è in realtà dato a voi il quiz vero e proprio. 1369 01:05:17,760 --> 01:05:19,570 Ma è divertente da scrivere, e si dovrebbe sapere come scriverlo. 1370 01:05:19,570 --> 01:05:23,640 Quindi questo è dove è necessario per iniziare il vostro codice. 1371 01:05:23,640 --> 01:05:25,150 Di cosa abbiamo bisogno per scrivere qui? 1372 01:05:25,150 --> 01:05:28,640 1373 01:05:28,640 --> 01:05:30,565 >> Spiacente, ho bisogno di cambiare il nome di questo file. 1374 01:05:30,565 --> 01:05:41,180 1375 01:05:41,180 --> 01:05:44,270 Così abbiamo salvato in un file HTML., non in un file PHP.. 1376 01:05:44,270 --> 01:05:47,030 Queste cose non significherebbe nulla in un file PHP.. 1377 01:05:47,030 --> 01:05:48,500 Quindi siamo in un file HTML.. 1378 01:05:48,500 --> 01:05:50,090 Qual è la prima cosa Ho bisogno di scrivere? 1379 01:05:50,090 --> 01:05:52,990 Voglio mettere un po 'di PHP codice in un HTML. 1380 01:05:52,990 --> 01:05:57,300 >> PUBBLICO: PHP, come un altro carota e il punto interrogativo PHP, giusto? 1381 01:05:57,300 --> 01:05:58,310 >> JASON HIRSCHHORN: Great. 1382 01:05:58,310 --> 01:05:59,360 E come faccio a finire così? 1383 01:05:59,360 --> 01:06:02,510 >> AUDIENCE: Con un punto interrogativo. 1384 01:06:02,510 --> 01:06:03,120 >> JASON HIRSCHHORN: Questo è grande. 1385 01:06:03,120 --> 01:06:07,090 Questa è la prima cosa che mi serve se voglio mettere un po 'di codice PHP in qui. 1386 01:06:07,090 --> 01:06:11,210 >> PUBBLICO:. Ho pensato che un PHP file potrebbe richiedere HTML. 1387 01:06:11,210 --> 01:06:12,290 >> JASON HIRSCHHORN: Già. 1388 01:06:12,290 --> 01:06:15,330 Un file PHP. Può richiedere un certo HTML e visualizzato. 1389 01:06:15,330 --> 01:06:16,450 Quello era il mio male. 1390 01:06:16,450 --> 01:06:18,300 Stavo solo cercando di imitare quello che era il quiz. 1391 01:06:18,300 --> 01:06:21,910 1392 01:06:21,910 --> 01:06:24,720 >> OK, mi dispiace per confondervi. 1393 01:06:24,720 --> 01:06:25,550 Sì, practice.HTML. 1394 01:06:25,550 --> 01:06:27,340 Ora stiamo andando a mettere codice PHP dentro 1395 01:06:27,340 --> 01:06:30,530 Qual è la prima linea di Codice PHP dovrei scrivere? 1396 01:06:30,530 --> 01:06:33,360 Ho intenzione di passare attraverso questa matrice e farne una tabella. 1397 01:06:33,360 --> 01:06:34,600 Già. 1398 01:06:34,600 --> 01:06:37,160 >> PUBBLICO: È possibile utilizzare una per H loop o un ciclo for. 1399 01:06:37,160 --> 01:06:38,415 >> JASON HIRSCHHORN: OK, cosa vuoi usare? 1400 01:06:38,415 --> 01:06:40,720 >> PUBBLICO: Vorrei usare un ciclo for. 1401 01:06:40,720 --> 01:06:48,700 Per, e poi si fa il segno del dollaro i è uguale a 0 virgola dollaro 1402 01:06:48,700 --> 01:06:51,580 firmare i meno di 2. 1403 01:06:51,580 --> 01:06:55,455 E poi punto e virgola i dollari firmare i plus plus. 1404 01:06:55,455 --> 01:07:01,890 1405 01:07:01,890 --> 01:07:03,880 >> JASON HIRSCHHORN: come fare sai usare un 2? 1406 01:07:03,880 --> 01:07:10,444 >> AUDIENCE: Perché c'erano due array associativi all'interno del più grande 1407 01:07:10,444 --> 01:07:11,960 array associativo. 1408 01:07:11,960 --> 01:07:13,610 >> JASON HIRSCHHORN: Quindi la cosa grosso Non una matrice socio. 1409 01:07:13,610 --> 01:07:15,500 La cosa grande è solo una matrice normale. 1410 01:07:15,500 --> 01:07:17,380 Ma hai ragione, ci sono due array associativi 1411 01:07:17,380 --> 01:07:18,910 all'interno del nostro array più grande. 1412 01:07:18,910 --> 01:07:20,310 Ecco perché si utilizzano due. 1413 01:07:20,310 --> 01:07:24,270 Mi sento a disagio assumendo che sono 2, quindi qual è un modo per scrivere 1414 01:07:24,270 --> 01:07:26,810 questo senza supponendo che sono 2? 1415 01:07:26,810 --> 01:07:27,507 >> AUDIENCE: [incomprensibile]? 1416 01:07:27,507 --> 01:07:29,165 >> JASON HIRSCHHORN: OK, come si scrive così? 1417 01:07:29,165 --> 01:07:35,262 >> AUDIENCE: Foreach segno del dollaro tfs o come segno di dollaro tf. 1418 01:07:35,262 --> 01:07:38,360 1419 01:07:38,360 --> 01:07:41,960 >> JASON HIRSCHHORN: OK, quindi per ogni tfs tfs come, voglio, adesso 1420 01:07:41,960 --> 01:07:43,650 ancora una volta, il mio tavolo. 1421 01:07:43,650 --> 01:07:45,250 Allora, chi mi può dare il successiva riga di codice? 1422 01:07:45,250 --> 01:07:52,870 1423 01:07:52,870 --> 01:07:59,810 >> PUBBLICO: Stampa e quindi in citazioni, fine staffa tr 1424 01:07:59,810 --> 01:08:02,670 staffa, fine citazione. 1425 01:08:02,670 --> 01:08:05,300 Tra parentesi End, il punto e virgola. 1426 01:08:05,300 --> 01:08:07,135 >> JASON HIRSCHHORN: OK, e Cosa c'è di che andare a fare? 1427 01:08:07,135 --> 01:08:08,610 >> AUDIENCE: Sta andando a dire, nuova riga. 1428 01:08:08,610 --> 01:08:11,070 Sta andando a mettere l' tag per una nuova riga. 1429 01:08:11,070 --> 01:08:13,000 >> JASON HIRSCHHORN: Destra, questa PHP, come abbiamo parlato in precedenza - questo 1430 01:08:13,000 --> 01:08:22,160 PHP sta per essere valutati, e quindi sta andando a stampare a questo file una 1431 01:08:22,160 --> 01:08:26,350 Tavolo traino, e quindi che HTML sarà valutata. 1432 01:08:26,350 --> 01:08:27,810 Stiamo solo copiando questo HTML che abbiamo avuto qui. 1433 01:08:27,810 --> 01:08:28,120 Già. 1434 01:08:28,120 --> 01:08:29,470 >> AUDIENCE: [incomprensibile]? 1435 01:08:29,470 --> 01:08:30,290 >> JASON HIRSCHHORN: Sorry? 1436 01:08:30,290 --> 01:08:31,240 E 'proprio qui. 1437 01:08:31,240 --> 01:08:33,590 Autunno 2012. 1438 01:08:33,590 --> 01:08:35,970 Non guardare le risposte, cerchiamo di risolverlo insieme. 1439 01:08:35,970 --> 01:08:37,330 Quindi stampiamo riga della tabella. 1440 01:08:37,330 --> 01:08:38,550 Allora probabilmente siete l'altalena delle cose. 1441 01:08:38,550 --> 01:08:41,060 Qual è la prossima linea di codice abbiamo bisogno di scrivere? 1442 01:08:41,060 --> 01:08:42,926 Assam, dammi la successiva riga di codice. 1443 01:08:42,926 --> 01:08:46,290 >> PUBBLICO: È necessario il nome del tf. 1444 01:08:46,290 --> 01:08:54,319 Tf staffe virgoletta aperta nome staffe chiuse. 1445 01:08:54,319 --> 01:08:57,310 >> JASON HIRSCHHORN: Dammi il loro nome. 1446 01:08:57,310 --> 01:08:58,540 >> AUDIENCE: è necessario stampare questo. 1447 01:08:58,540 --> 01:08:59,790 >> [VOCI interponendo] 1448 01:08:59,790 --> 01:09:01,963 1449 01:09:01,963 --> 01:09:03,430 >> JASON HIRSCHHORN: OK, come faccio a stampare questo? 1450 01:09:03,430 --> 01:09:04,680 >> [VOCI interponendo] 1451 01:09:04,680 --> 01:09:08,609 1452 01:09:08,609 --> 01:09:10,350 >> JASON HIRSCHHORN: mi manca qualcosa adesso. 1453 01:09:10,350 --> 01:09:12,470 Che cosa mi manca? 1454 01:09:12,470 --> 01:09:13,720 >> AUDIENCE: Hai bisogno di un segno di dollaro. 1455 01:09:13,720 --> 01:09:15,960 1456 01:09:15,960 --> 01:09:17,210 >> JASON HIRSCHHORN: Cosa altro mi manca? 1457 01:09:17,210 --> 01:09:20,100 1458 01:09:20,100 --> 01:09:21,650 Tutti abbiamo stampato finora è il tr. 1459 01:09:21,650 --> 01:09:25,589 1460 01:09:25,589 --> 01:09:27,470 >> AUDIENCE: Chiudere il TR dopo. 1461 01:09:27,470 --> 01:09:28,720 >> JASON HIRSCHHORN: Quindi abbiamo bisogno per chiudere il tr dopo. 1462 01:09:28,720 --> 01:09:34,390 1463 01:09:34,390 --> 01:09:37,906 Chi vede ciò che ci manca sulla linea 16? 1464 01:09:37,906 --> 01:09:39,340 Sì, Anna. 1465 01:09:39,340 --> 01:09:47,050 >> PUBBLICO: È necessario aprire un td e parentesi graffe. 1466 01:09:47,050 --> 01:09:49,380 >> JASON HIRSCHHORN: E dove Non mettiamo tra parentesi graffe? 1467 01:09:49,380 --> 01:09:51,790 >> AUDIENCE: Intorno al nome tf. 1468 01:09:51,790 --> 01:09:53,080 >> JASON HIRSCHHORN: Ti piace? 1469 01:09:53,080 --> 01:09:55,420 >> AUDIENCE: Già. 1470 01:09:55,420 --> 01:09:59,000 E quindi chiudere il td. 1471 01:09:59,000 --> 01:10:00,250 >> JASON HIRSCHHORN: Ti piace questo? 1472 01:10:00,250 --> 01:10:03,370 1473 01:10:03,370 --> 01:10:06,950 >> AUDIENCE: Avete bisogno di virgolette doppie segni accanto alle parentesi graffe? 1474 01:10:06,950 --> 01:10:07,460 >> JASON HIRSCHHORN: Proprio qui? 1475 01:10:07,460 --> 01:10:08,710 No, non lo fai. 1476 01:10:08,710 --> 01:10:10,820 1477 01:10:10,820 --> 01:10:12,550 Ecco, questo è esattamente vero. 1478 01:10:12,550 --> 01:10:12,940 Già. 1479 01:10:12,940 --> 01:10:15,290 >> AUDIENCE: Quindi la differenza tra tale e encatenating con puntini è, se 1480 01:10:15,290 --> 01:10:18,420 si utilizza punti, avresti avere il doppie virgolette, poi un punto, 1481 01:10:18,420 --> 01:10:20,370 poi il punto - 1482 01:10:20,370 --> 01:10:20,520 >> JASON HIRSCHHORN: Corretto. 1483 01:10:20,520 --> 01:10:23,800 Quindi stai dicendo che c'è un ultimo modo di scrivere questo genere. 1484 01:10:23,800 --> 01:10:26,760 1485 01:10:26,760 --> 01:10:28,966 Che l'operatore di concatenazione in JavaScript? 1486 01:10:28,966 --> 01:10:31,200 >> PUBBLICO: Un segno più. 1487 01:10:31,200 --> 01:10:34,710 Hai dimenticato di mettere il ricci tutore indietro. 1488 01:10:34,710 --> 01:10:35,760 >> JASON HIRSCHHORN: Great. 1489 01:10:35,760 --> 01:10:38,850 E c'è ancora una linea di codice mancante. 1490 01:10:38,850 --> 01:10:40,130 Chi mi può dare l'ultima riga del codice ci manca? 1491 01:10:40,130 --> 01:10:43,940 1492 01:10:43,940 --> 01:10:47,602 >> AUDIENCE: Basta la stessa identica cosa, solo con casa al posto del nome. 1493 01:10:47,602 --> 01:10:52,960 1494 01:10:52,960 --> 01:10:53,450 Grande 1495 01:10:53,450 --> 01:10:54,390 >> JASON HIRSCHHORN: Great. 1496 01:10:54,390 --> 01:10:59,320 E la sintassi è esattamente giusto per fare le cose in una matrice socio. 1497 01:10:59,320 --> 01:11:04,450 Così nel quiz vero e proprio, si è effettivamente dato fino a qui. 1498 01:11:04,450 --> 01:11:05,710 Quindi questo codice è stato dato a voi. 1499 01:11:05,710 --> 01:11:07,750 Tutto quello che doveva scrivere erano questi quattro linee e ricordarsi di 1500 01:11:07,750 --> 01:11:09,190 chiudere il tag table. 1501 01:11:09,190 --> 01:11:11,370 Voi ragazzi effettivamente fatto tutto questo e altro. 1502 01:11:11,370 --> 01:11:11,810 Già. 1503 01:11:11,810 --> 01:11:14,850 >> AUDIENCE: Quindi sarebbe funzionalmente lo stesso se hai appena avuto che tutti in 1504 01:11:14,850 --> 01:11:17,250 una grande chiamata di stampa, giusto? 1505 01:11:17,250 --> 01:11:19,630 E poi basta concatenato su, eccetera? 1506 01:11:19,630 --> 01:11:20,730 >> JASON HIRSCHHORN: Ti piace questo? 1507 01:11:20,730 --> 01:11:21,980 >> AUDIENCE: Già. 1508 01:11:21,980 --> 01:11:23,810 1509 01:11:23,810 --> 01:11:26,940 Semplicemente non sarebbe guardare bene se tu fossi guardando quando si sta ispezionando 1510 01:11:26,940 --> 01:11:28,550 l'elemento sul vostro sito, giusto? 1511 01:11:28,550 --> 01:11:29,800 >> JASON HIRSCHHORN: Sono d'accordo. 1512 01:11:29,800 --> 01:11:35,410 1513 01:11:35,410 --> 01:11:38,710 Se ho caricato questa pagina, sarei in grado di vedere il codice PHP, mai? 1514 01:11:38,710 --> 01:11:39,240 >> PUBBLICO: No. 1515 01:11:39,240 --> 01:11:40,080 >> JASON HIRSCHHORN: No. 1516 01:11:40,080 --> 01:11:42,240 E in realtà, non lo farei. 1517 01:11:42,240 --> 01:11:43,920 >> AUDIENCE: Questo non è HTML, giusto? 1518 01:11:43,920 --> 01:11:45,000 Così si potrebbe essere in grado di - 1519 01:11:45,000 --> 01:11:46,780 >> JASON HIRSCHHORN: Quindi questo sarebbe PHP essere valutata lato server. 1520 01:11:46,780 --> 01:11:51,020 PHP viene sempre valutata lato server, così non si è mai in grado di vedere il codice PHP. 1521 01:11:51,020 --> 01:11:52,980 >> AUDIENCE: Ma tu saresti in grado di vedere il risultato delle stampe. 1522 01:11:52,980 --> 01:11:53,480 >> JASON HIRSCHHORN: Giusto. 1523 01:11:53,480 --> 01:11:55,510 E onestamente non potrebbe mettere tutto sulla linea. 1524 01:11:55,510 --> 01:11:59,740 Potrebbe formattarlo bene per voi, oppure potrebbe metterlo sulla stessa riga. 1525 01:11:59,740 --> 01:12:01,521 Chiaro. 1526 01:12:01,521 --> 01:12:03,596 Ma sì, buon punto. 1527 01:12:03,596 --> 01:12:06,470 >> AUDIENCE: Come prima non sia venuta sta nessuna evidenziazione di testo per 1528 01:12:06,470 --> 01:12:07,550 uno dei comandi PHP? 1529 01:12:07,550 --> 01:12:09,370 Perché mi ricordo di aver visto che. 1530 01:12:09,370 --> 01:12:11,620 >> JASON HIRSCHHORN: Perché è un Il file. HTML qui in alto. 1531 01:12:11,620 --> 01:12:20,390 1532 01:12:20,390 --> 01:12:21,650 Ci si va. 1533 01:12:21,650 --> 01:12:25,752 1534 01:12:25,752 --> 01:12:28,800 >> AUDIENCE: Se abbiamo fatto il metodo iniziale con cicli for, giusto, se noi 1535 01:12:28,800 --> 01:12:33,500 voluto per accedere a un tfs, avremmo fare staffa tfs 0 staffa, quindi 1536 01:12:33,500 --> 01:12:35,180 [Incomprensibile]? 1537 01:12:35,180 --> 01:12:35,970 >> JASON HIRSCHHORN: Lei sarebbe - 1538 01:12:35,970 --> 01:12:40,560 quindi stai dicendo per il ciclo for, è farebbe in segno del dollaro staffa tfs 1 1539 01:12:40,560 --> 01:12:41,850 o io, a destra. 1540 01:12:41,850 --> 01:12:46,780 O il segno del dollaro chiudo staffa e poi parentesi quadra 1541 01:12:46,780 --> 01:12:49,600 virgolette, sì. 1542 01:12:49,600 --> 01:12:50,640 >> OK, eccellente. 1543 01:12:50,640 --> 01:12:53,020 Abbiamo uno più uno rapido. 1544 01:12:53,020 --> 01:12:55,090 Sette minuti, quindi voglio andare oltre questo. 1545 01:12:55,090 --> 01:12:56,160 Questo è un altro esempio. 1546 01:12:56,160 --> 01:12:58,740 Siamo ormai totalmente altra lingua. 1547 01:12:58,740 --> 01:12:59,990 >> Abbiamo un po 'di codice HTML. 1548 01:12:59,990 --> 01:13:02,480 1549 01:13:02,480 --> 01:13:07,460 È una specie di piccolo sullo schermo, ma Voglio che tu guardi attraverso di essa veramente 1550 01:13:07,460 --> 01:13:11,140 rapidamente, e qualcuno può dirmi, se dovessi caricare questa pagina web, 1551 01:13:11,140 --> 01:13:12,390 quello che vorrei vedere? 1552 01:13:12,390 --> 01:13:22,710 1553 01:13:22,710 --> 01:13:26,450 Descrivere tutto ciò che riguarda questa pagina. 1554 01:13:26,450 --> 01:13:28,630 Noè? 1555 01:13:28,630 --> 01:13:30,450 Che cosa dovrei vedere? 1556 01:13:30,450 --> 01:13:38,140 >> AUDIENCE: Codice all'estremità anteriore del Google con un tatto per il testo e un 1557 01:13:38,140 --> 01:13:39,190 pulsante di invio. 1558 01:13:39,190 --> 01:13:41,180 >> JASON HIRSCHHORN: E che cosa Sarebbe il pulsante dire? 1559 01:13:41,180 --> 01:13:42,430 >> AUDIENCE: Submit. 1560 01:13:42,430 --> 01:13:44,620 1561 01:13:44,620 --> 01:13:45,160 Oh, ricerca. 1562 01:13:45,160 --> 01:13:45,840 Mi dispiace. 1563 01:13:45,840 --> 01:13:46,830 >> JASON HIRSCHHORN: Si direbbe ricerca. 1564 01:13:46,830 --> 01:13:47,520 Ricorda, il nome. 1565 01:13:47,520 --> 01:13:50,550 Quello che usiamo nome? 1566 01:13:50,550 --> 01:13:53,774 Questo attributo name, che cosa è quello utilizzato per? 1567 01:13:53,774 --> 01:13:55,470 >> [VOCI interponendo] 1568 01:13:55,470 --> 01:13:59,300 >> AUDIENCE: Questo è il suo nome per quando viene cliccato? 1569 01:13:59,300 --> 01:14:00,160 >> JASON HIRSCHHORN: Che potrebbe essere. 1570 01:14:00,160 --> 01:14:02,690 Ma cosa generalmente vediamo - perché stiamo dando questa coda nome? 1571 01:14:02,690 --> 01:14:03,830 Perché vediamo che? 1572 01:14:03,830 --> 01:14:05,220 Già. 1573 01:14:05,220 --> 01:14:08,600 >> AUDIENCE: Non che diventerà indice della variabile globale super? 1574 01:14:08,600 --> 01:14:12,740 >> JASON HIRSCHHORN: Sì, in genere quando questa forma avrebbe presentato, e poi dove 1575 01:14:12,740 --> 01:14:13,500 Sarebbe questo presenta al? 1576 01:14:13,500 --> 01:14:14,750 Cosa pagina? 1577 01:14:14,750 --> 01:14:16,820 1578 01:14:16,820 --> 01:14:18,460 Noè, che cosa sarebbe questa pagina presenta al? 1579 01:14:18,460 --> 01:14:25,710 1580 01:14:25,710 --> 01:14:27,700 >> PUBBLICO: Non sono sicuro. 1581 01:14:27,700 --> 01:14:28,920 >> JASON HIRSCHHORN: Dove potremmo possiamo trovare? 1582 01:14:28,920 --> 01:14:31,025 Dove trovare ciò che La pagina si sottomette? 1583 01:14:31,025 --> 01:14:32,850 Che riga di codice? 1584 01:14:32,850 --> 01:14:34,040 >> AUDIENCE: l'azione modulo. 1585 01:14:34,040 --> 01:14:34,650 >> JASON HIRSCHHORN: Esattamente. 1586 01:14:34,650 --> 01:14:35,130 Azione. 1587 01:14:35,130 --> 01:14:37,100 Così sottopone alla pagina di ricerca. 1588 01:14:37,100 --> 01:14:38,630 Ricerca backslash. 1589 01:14:38,630 --> 01:14:40,140 Ecco, questo è esattamente vero. 1590 01:14:40,140 --> 01:14:40,680 Quale metodo? 1591 01:14:40,680 --> 01:14:42,090 >> AUDIENCE: Get. 1592 01:14:42,090 --> 01:14:42,490 >> JASON HIRSCHHORN: Get. 1593 01:14:42,490 --> 01:14:43,420 Esattamente. 1594 01:14:43,420 --> 01:14:44,490 Così leggiamo questo. 1595 01:14:44,490 --> 01:14:45,180 Ciò sta andando essere una forma. 1596 01:14:45,180 --> 01:14:45,910 Hai perfettamente ragione. 1597 01:14:45,910 --> 01:14:50,340 Due cose sulla forma, il titolo della pagina e il top sarebbe Google. 1598 01:14:50,340 --> 01:14:54,270 >> Così qui sono due domande che dovreste essere in grado di rispondere su questa pagina. 1599 01:14:54,270 --> 01:15:01,760 Se questo HTML vive su questo sito e l'utente immette bug in questo testo 1600 01:15:01,760 --> 01:15:06,900 campo proprio qui, cosa farà URL l'utente a trovare se stessa su 1601 01:15:06,900 --> 01:15:08,150 l'invio del modulo? 1602 01:15:08,150 --> 01:15:10,980 1603 01:15:10,980 --> 01:15:12,510 >> Quindi abbiamo questo qui. 1604 01:15:12,510 --> 01:15:13,720 Ho intenzione di tornare a questa pagina, però. 1605 01:15:13,720 --> 01:15:16,980 Ti scrivo questa prima parte. 1606 01:15:16,980 --> 01:15:18,230 Chiunque può vedere qui? 1607 01:15:18,230 --> 01:15:30,620 1608 01:15:30,620 --> 01:15:32,906 OK, Mario, pensi di sapere? 1609 01:15:32,906 --> 01:15:34,700 Cosa pagina? 1610 01:15:34,700 --> 01:15:37,630 >> AUDIENCE: Barra rovesciata ricerca. 1611 01:15:37,630 --> 01:15:38,880 >> JASON HIRSCHHORN: Io vado per scendere qui. 1612 01:15:38,880 --> 01:15:44,800 1613 01:15:44,800 --> 01:15:49,155 OK, ricerca backslash domanda mark q è uguale bug. 1614 01:15:49,155 --> 01:15:53,560 1615 01:15:53,560 --> 01:15:55,165 Qualcuno ha un suggerimento diverso? 1616 01:15:55,165 --> 01:15:57,910 1617 01:15:57,910 --> 01:15:59,160 Già. 1618 01:15:59,160 --> 01:16:01,700 1619 01:16:01,700 --> 01:16:03,740 >> Quindi, come possiamo ottenere questo? 1620 01:16:03,740 --> 01:16:05,520 Beh, abbiamo visto prima. 1621 01:16:05,520 --> 01:16:07,170 E si avvicinò con questa precedenza. 1622 01:16:07,170 --> 01:16:08,870 Avevi ragione, Noah, che la azione ci sta dicendo cosa 1623 01:16:08,870 --> 01:16:11,700 Pagina stiamo andando a. 1624 01:16:11,700 --> 01:16:12,820 >> Sappiamo anche che metodo. 1625 01:16:12,820 --> 01:16:13,420 Stiamo facendo get. 1626 01:16:13,420 --> 01:16:17,040 E la differenza tra GET e POST è che ottenere visualizzazioni nell'URL 1627 01:16:17,040 --> 01:16:18,490 e dopo non lo fa. 1628 01:16:18,490 --> 01:16:22,760 Quindi, se ho scritto palo destro lì in metodo, quello che sarebbe stato diverso? 1629 01:16:22,760 --> 01:16:24,250 >> AUDIENCE: sarebbe solo essere barra di ricerca. 1630 01:16:24,250 --> 01:16:25,400 >> JASON HIRSCHHORN: Sarebbe solo essere tagliare la ricerca. 1631 01:16:25,400 --> 01:16:27,400 Nulla qui sarebbe accaduto. 1632 01:16:27,400 --> 01:16:30,030 Ma perché è un ricevere, l'URL viene visualizzato come segue. 1633 01:16:30,030 --> 01:16:35,140 In primo luogo vediamo un punto interrogativo e vediamo il nome e il valore. 1634 01:16:35,140 --> 01:16:42,730 Dire che c'era un altro campo di testo e Ho dato un nome di r e ingresso I un 1635 01:16:42,730 --> 01:16:45,220 valore, caterpillar. 1636 01:16:45,220 --> 01:16:48,560 Cosa sarebbe questo momento simile? 1637 01:16:48,560 --> 01:16:52,040 Ho più un campo di testo, posso dare un il nome di r e un valore di bruco. 1638 01:16:52,040 --> 01:16:56,990 >> PUBBLICO: Dopo il bar avresti il bruco e commerciale. 1639 01:16:56,990 --> 01:16:58,380 >> JASON HIRSCHHORN: Ecco non commerciale. 1640 01:16:58,380 --> 01:17:00,500 >> AUDIENCE: O semplicemente qualunque la e simbolo. 1641 01:17:00,500 --> 01:17:01,330 >> JASON HIRSCHHORN: Sì, no. 1642 01:17:01,330 --> 01:17:03,700 Avevi ragione, mi sbagliavo. 1643 01:17:03,700 --> 01:17:05,660 Questo è come un g. 1644 01:17:05,660 --> 01:17:06,910 >> AUDIENCE: Caterpillar. 1645 01:17:06,910 --> 01:17:08,840 1646 01:17:08,840 --> 01:17:11,090 r è uguale a bruco, mi dispiace. 1647 01:17:11,090 --> 01:17:13,970 1648 01:17:13,970 --> 01:17:14,700 >> JASON HIRSCHHORN: C'è no r in là? 1649 01:17:14,700 --> 01:17:16,680 >> PUBBLICO: No, non c'è. 1650 01:17:16,680 --> 01:17:18,030 >> JASON HIRSCHHORN: Parleremo a tale proposito dopo le lezioni. 1651 01:17:18,030 --> 01:17:18,930 Questo è esattamente vero. 1652 01:17:18,930 --> 01:17:20,530 Così il ed è corretto. 1653 01:17:20,530 --> 01:17:23,430 E allora si potrebbe avere molti di questi, e sarebbero tutti essere concatenati 1654 01:17:23,430 --> 01:17:24,950 insieme a quella e. 1655 01:17:24,950 --> 01:17:25,900 Ecco, questo è esattamente vero. 1656 01:17:25,900 --> 01:17:27,700 >> C'è un'altra domanda. 1657 01:17:27,700 --> 01:17:30,676 Disegnare DOM di questo HTML, a partire con il documento. 1658 01:17:30,676 --> 01:17:33,330 1659 01:17:33,330 --> 01:17:34,570 Potremmo farlo in due minuti. 1660 01:17:34,570 --> 01:17:36,790 Lo faremo qui. 1661 01:17:36,790 --> 01:17:38,040 Tornerò a questa pagina. 1662 01:17:38,040 --> 01:17:40,630 1663 01:17:40,630 --> 01:17:42,160 OK, iniziamo con il documento. 1664 01:17:42,160 --> 01:17:49,698 1665 01:17:49,698 --> 01:17:52,090 >> Quali sono le prospettive? 1666 01:17:52,090 --> 01:17:53,910 Così, quando stai leggendo - 1667 01:17:53,910 --> 01:17:54,540 >> AUDIENCE: HTML. 1668 01:17:54,540 --> 01:17:55,790 >> JASON HIRSCHHORN: HTML è vicino. 1669 01:17:55,790 --> 01:17:57,850 Stiamo per andare tag per tag. 1670 01:17:57,850 --> 01:18:00,890 Cosa c'è dopo l'HTML? 1671 01:18:00,890 --> 01:18:01,550 >> AUDIENCE: 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 Cosa c'è dopo la testa? 1675 01:18:08,520 --> 01:18:09,770 >> AUDIENCE: Titolo. 1676 01:18:09,770 --> 01:18:11,880 1677 01:18:11,880 --> 01:18:12,560 >> JASON HIRSCHHORN: Titolo. 1678 01:18:12,560 --> 01:18:14,740 E il titolo ha un valore di Google, ma io non ho intenzione di 1679 01:18:14,740 --> 01:18:16,240 scrivere che in per ora. 1680 01:18:16,240 --> 01:18:18,750 OK, dove fa il corpo va? 1681 01:18:18,750 --> 01:18:20,890 >> AUDIENCE: venuta anche fuori del codice HTML. 1682 01:18:20,890 --> 01:18:21,490 >> JASON HIRSCHHORN: Esattamente. 1683 01:18:21,490 --> 01:18:22,820 Corpo viene fuori da qui. 1684 01:18:22,820 --> 01:18:25,970 1685 01:18:25,970 --> 01:18:30,330 Fa vedere a tutti perché questo è il caso? 1686 01:18:30,330 --> 01:18:32,970 Probabilmente si dovrebbe essere in grado di capire questo fuori, troppo, anche se non ha avuto 1687 01:18:32,970 --> 01:18:33,665 questo bel rientro. 1688 01:18:33,665 --> 01:18:37,680 >> Il rientro sorta di dà via, ma si può vedere che il tag testa ha 1689 01:18:37,680 --> 01:18:41,240 stato chiuso, il che significa che probabilmente non si può andare qui. 1690 01:18:41,240 --> 01:18:43,460 Abbiamo bisogno di tornare a qualunque era giusto prima che la testa 1691 01:18:43,460 --> 01:18:44,730 tag, o sotto quello. 1692 01:18:44,730 --> 01:18:46,720 Siamo anche con il tag head. 1693 01:18:46,720 --> 01:18:48,560 >> E sotto il corpo va forma. 1694 01:18:48,560 --> 01:18:50,300 Sotto forma, ci sono due ingressi. 1695 01:18:50,300 --> 01:18:53,330 1696 01:18:53,330 --> 01:18:54,420 OK. 1697 01:18:54,420 --> 01:18:55,490 Questo è tutto quello che ho. 1698 01:18:55,490 --> 01:18:56,980 Quiz 1 è domani. 1699 01:18:56,980 --> 01:18:58,350 Sono così eccitata per voi ragazzi. 1700 01:18:58,350 --> 01:18:59,690 Sta andando essere un colpo. 1701 01:18:59,690 --> 01:19:00,250 >> Se si dispone - 1702 01:19:00,250 --> 01:19:00,600 >> AUDIENCE: [applausi] 1703 01:19:00,600 --> 01:19:02,460 >> JASON HIRSCHHORN: Oh stop, stop. 1704 01:19:02,460 --> 01:19:04,520 Ma no, sto scherzando. 1705 01:19:04,520 --> 01:19:07,220 Se avete domande, a destra dopo la sezione, sarò fuori. 1706 01:19:07,220 --> 01:19:11,700 Se avete domande, stasera, non esitate a chiamare, e-mail, Gchat, 1707 01:19:11,700 --> 01:19:12,740 carrier me piccione. 1708 01:19:12,740 --> 01:19:13,950 Buona fortuna domani. 1709 01:19:13,950 --> 01:19:16,220 Avere una meravigliosa vacanza del Ringraziamento, se non ti vedo prima di allora. 1710 01:19:16,220 --> 01:19:19,320 E io ti vedrò dopo il Ringraziamento il Martedì per il nostro finale 1711 01:19:19,320 --> 01:19:20,295 sezione di partito mai. 1712 01:19:20,295 --> 01:19:21,545 >> AUDIENCE: [incomprensibile]. 1713 01:19:21,545 --> 01:19:25,270 1714 01:19:25,270 --> 01:19:25,790 >> JASON HIRSCHHORN: Great. 1715 01:19:25,790 --> 01:19:28,900 OK, vedrò voi ragazzi prossimo settimana, oppure in due settimane. 1716 01:19:28,900 --> 01:19:30,150 E buona fortuna domani. 1717 01:19:30,150 --> 01:19:32,203