1 00:00:00,000 --> 00:00:12,610 2 00:00:12,610 --> 00:00:12,900 >> DAVID J. Malan: Kull dritt. 3 00:00:12,900 --> 00:00:16,790 Allura merħba lill-ewwel darba Postmortem CS50 għal kwizz. 4 00:00:16,790 --> 00:00:18,340 Ħsibna aħna'd jinawgura din it-tradizzjoni din is-sena. 5 00:00:18,340 --> 00:00:20,960 U dan se jkun opportunità jimxu permezz tal- 6 00:00:20,960 --> 00:00:22,220 soluzzjonijiet għall-kwizz. 7 00:00:22,220 --> 00:00:26,160 U aħna ser tħaffef jew inaqqsu bbażati fuq l-interess ta 'dawk hawn. 8 00:00:26,160 --> 00:00:29,730 >> Allura int probabilment hawn għax int interessati dwar kif jista 'jkollok jew 9 00:00:29,730 --> 00:00:31,170 kellha wkoll tirrispondi xi ta 'dawn il-problemi. 10 00:00:31,170 --> 00:00:33,300 Allura għaliex ma we tagħti ħarsa fuq din it-taqsima l-ewwel? 11 00:00:33,300 --> 00:00:34,450 Allura jkollna kordi. 12 00:00:34,450 --> 00:00:37,600 Dan ħadt tliet verżjonijiet differenti ta 'programm li kien, finalment, 13 00:00:37,600 --> 00:00:39,650 maħsuba biex tikseb string minn utent. 14 00:00:39,650 --> 00:00:42,530 Jew le ma li kien xellug inti biex jiddeterminaw. 15 00:00:42,530 --> 00:00:45,150 >> U aħna mitluba fil-Mistoqsija 0, jissoponi li Verżjoni 1 hija 16 00:00:45,150 --> 00:00:46,400 miġbura u esegwiti. 17 00:00:46,400 --> 00:00:48,860 Għaliex jista 'il-programm segfault? 18 00:00:48,860 --> 00:00:51,150 Ewwel daqqa t'għajn, kwalunkwe suġġerimenti għaliex? 19 00:00:51,150 --> 00:00:54,012 20 00:00:54,012 --> 00:00:54,489 Yeah. 21 00:00:54,489 --> 00:00:59,260 >> UDJENZA: So I remember jaraw dan eżempju preċedenti ta 'tħares lejn l- 22 00:00:59,260 --> 00:01:05,506 char * i u tara l-iskan ta 'l iu jaraw għaliex dan huwa pointer, kif 23 00:01:05,506 --> 00:01:07,971 ma taffettwa dak li inti skanjata fil-? 24 00:01:07,971 --> 00:01:10,940 Huwa s jew l-indirizz ta 'i? 25 00:01:10,940 --> 00:01:11,180 >> DAVID J. Malan: OK. 26 00:01:11,180 --> 00:01:11,480 Tajba. 27 00:01:11,480 --> 00:01:14,830 Allura finalment, is-sors ta 'xi problema huwa preżumibbilment se jitnaqqas 28 00:01:14,830 --> 00:01:16,210 għal dak il-varjabbli s. 29 00:01:16,210 --> 00:01:17,280 U huwa tabilħaqq varjabbli. 30 00:01:17,280 --> 00:01:19,900 Dejta tat-tip ta 'dak il-varjabbli huwa char *, li jfisser li għaddej biex 31 00:01:19,900 --> 00:01:22,570 fihom l-indirizz ta 'karattru. 32 00:01:22,570 --> 00:01:23,850 U fih tinsab l-għarfien. 33 00:01:23,850 --> 00:01:28,330 Huwa ser jinkludi l-indirizz ta ' karattru jew, b'mod aktar ġenerali, il- 34 00:01:28,330 --> 00:01:32,110 indirizz ta 'l-ewwel karattru blokk kollu ta 'karattri. 35 00:01:32,110 --> 00:01:36,680 >> Iżda l-qabda hija li scan s, skop ħajja, huwa jingħata indirizz u mogħtija 36 00:01:36,680 --> 00:01:40,960 kodiċi format, bħal% s, moqri string fil-blokki ta ' 37 00:01:40,960 --> 00:01:42,330 memorja f'dak l-indirizz. 38 00:01:42,330 --> 00:01:46,040 Iżda għaliex hemm l-ebda sinjal ugwali quddiem li semicolon fl-ewwel 39 00:01:46,040 --> 00:01:49,310 linja tal-kodiċi, għaliex aħna ma attwalment jalloka memorja ma 40 00:01:49,310 --> 00:01:53,020 malloc, għaliex hija ma attwalment talloka firxa ta 'ċertu daqs, kollha 41 00:01:53,020 --> 00:01:57,620 qed tagħmel huwa qari tal-l-utent input keyboard fis xi kompluta 42 00:01:57,620 --> 00:02:00,490 valur żibel, li huwa s-kontumaċja. 43 00:02:00,490 --> 00:02:04,480 Allura odds huma int ser segfault jekk dak l-indirizz ma biss hekk jiġri 44 00:02:04,480 --> 00:02:08,009 li tkun valur li inti tista ', fil-fatt, jikteb lill. 45 00:02:08,009 --> 00:02:10,889 Daqshekk ħżiena li ma tallokax memorja tiegħek hemmhekk. 46 00:02:10,889 --> 00:02:13,150 >> Allura fid-domanda 1, staqsejna, jissoponi li verżjoni 2 hija 47 00:02:13,150 --> 00:02:14,230 miġbura u esegwiti. 48 00:02:14,230 --> 00:02:15,900 Għaliex jista 'dan il-programm segfault? 49 00:02:15,900 --> 00:02:17,990 Allura dan huwa wieħed inqas Buggy. 50 00:02:17,990 --> 00:02:21,470 U hemm verament biss wieħed mod ovvju fejn tista ' 51 00:02:21,470 --> 00:02:22,810 jikkawżaw segfault hawn. 52 00:02:22,810 --> 00:02:23,730 U dan huwa tematika. 53 00:02:23,730 --> 00:02:28,180 Kwalunkwe ħin aħna qed jużaw c fil-memorja, liema inti tista 'tagħmel biex jinduċi segfault 54 00:02:28,180 --> 00:02:30,718 mal-verżjoni 2? 55 00:02:30,718 --> 00:02:35,560 >> UDJENZA: Jekk tuża dan input string li l-itwal minn 49 56 00:02:35,560 --> 00:02:35,975 karattri. 57 00:02:35,975 --> 00:02:37,260 >> DAVID J. Malan: Eżattament. 58 00:02:37,260 --> 00:02:41,420 Kwalunkwe ħin li inti tara xi ħaġa fiss tul meta niġu għall-firxa, tiegħek 59 00:02:41,420 --> 00:02:44,650 radar għandhom imorru off li dan jista 'jkun problematika jekk int ma iċċekkjar tal- 60 00:02:44,650 --> 00:02:45,810 konfini ta 'firxa. 61 00:02:45,810 --> 00:02:46,650 U li l-problema hawnhekk. 62 00:02:46,650 --> 00:02:47,910 Aħna qed għadhom jużaw scanf. 63 00:02:47,910 --> 00:02:52,200 Aħna qed għadhom jużaw% s, li jfisser jippruvaw biex jaqra string mill-utent. 64 00:02:52,200 --> 00:02:56,300 Li għaddej biex jinqraw fis s, li, f'dan il-punt, huwa effettivament il- 65 00:02:56,300 --> 00:02:58,570 indirizz ta 'blokki ta' memorja jew huwa ekwivalenti. 66 00:02:58,570 --> 00:03:02,080 Hu l-isem ta 'firxa ta 'karattri ta' memorja. 67 00:03:02,080 --> 00:03:07,610 >> Imma eżattament dan, jekk inti taqra string dan huwa itwal minn 49 karattri, 49 68 00:03:07,610 --> 00:03:10,440 għaliex għandek bżonn spazju għall-backslash 0, int ser jfur 69 00:03:10,440 --> 00:03:11,390 li buffer. 70 00:03:11,390 --> 00:03:16,410 U inti tista 'tikseb xortik tajba u tkun tista' jiktbu karattru 51, 52, 53. 71 00:03:16,410 --> 00:03:18,560 Iżda f'xi punt, l-OS se ngħid, no. 72 00:03:18,560 --> 00:03:21,270 Dan żgur m'huwiex memorja int permess tmissx. 73 00:03:21,270 --> 00:03:23,380 U l-programm se segfault. 74 00:03:23,380 --> 00:03:26,650 >> Allura hemm, il-heuristics għandu jkun kwalunkwe ħin li inti stajt ltqajna tul fiss, għandek 75 00:03:26,650 --> 00:03:30,150 tagħmel żgur li int iċċekkjar it-tul ta 'kwalunkwe huwa inti qed tipprova 76 00:03:30,150 --> 00:03:31,090 biex jinqara fis dan. 77 00:03:31,090 --> 00:03:35,110 >> UDJENZA: Allura biex issolvi dan, inti tista ' kellhom dikjarazzjoni verifika attwalment 78 00:03:35,110 --> 00:03:37,140 huwa l-aktar fit-tul jew inqas minn? 79 00:03:37,140 --> 00:03:37,730 >> DAVID J. Malan: Assolutament. 80 00:03:37,730 --> 00:03:41,706 Inti sempliċiment għandek kundizzjoni li tgħid, jekk il - 81 00:03:41,706 --> 00:03:46,080 jew pjuttost inti ma neċessarjament jaf bil-quddiem kemm-karattri l- 82 00:03:46,080 --> 00:03:49,060 utent se tip, għaliex għandek tiġieġ u l-bajd. 83 00:03:49,060 --> 00:03:51,860 Mhux sakemm inti stajt taqrah ma scanf inti tista 'figura kemm żmien huwa. 84 00:03:51,860 --> 00:03:54,500 Iżda f'dak il-punt, huwa tard wisq, għaliex inti stajt diġà taqraha fis 85 00:03:54,500 --> 00:03:55,710 xi blokk ta 'memorja. 86 00:03:55,710 --> 00:03:59,590 Allura Bħala twarrib, il jevita librerija CS50 din il-kwistjoni għal kollox, recall 87 00:03:59,590 --> 00:04:01,060 bl-użu fgetc. 88 00:04:01,060 --> 00:04:05,390 U jgħid karattru wieħed fi żmien, flimkien, jafu toeing-ponta li inti 89 00:04:05,390 --> 00:04:08,060 ma tistax overflow karattru jekk inti taqra wieħed kull darba. 90 00:04:08,060 --> 00:04:11,580 >> Il-qabda hija ma recall getstring huwa li għandna kontinwament daqs ri 91 00:04:11,580 --> 00:04:13,590 li blokki ta 'memorja, li huwa biss uġigħ. 92 00:04:13,590 --> 00:04:15,310 Huwa ħafna ta 'linji ta' kodiċi sabiex tagħmel dan. 93 00:04:15,310 --> 00:04:18,779 Allura approċċ ieħor ikun li attwalment jużaw ku, hekk 94 00:04:18,779 --> 00:04:19,790 biex jitkellmu, ta scanf. 95 00:04:19,790 --> 00:04:22,820 Hemm varjanti ta 'lott ta' dawn funzjonijiet li attwalment jikkontrollaw l- 96 00:04:22,820 --> 00:04:25,870 tul ta 'kif ħafna karattri inti tista 'taqra maximally. 97 00:04:25,870 --> 00:04:29,430 U inti tista 'tispeċifika, ma taqra aktar minn 50 karattru. 98 00:04:29,430 --> 00:04:34,110 Allura li jkun approċċ ieħor iżda inqas akkomodazzjoni ta 'inputs akbar. 99 00:04:34,110 --> 00:04:37,040 >> Allura mistoqsija 2 tistaqsi, jissoponi li verżjoni 3 hija miġbura u esegwiti. 100 00:04:37,040 --> 00:04:39,960 Għaliex jista 'dak il-programm segfault? 101 00:04:39,960 --> 00:04:42,650 Allura dan huwa wieħed attwalment l-istess tingħata risposta, anki jekk 102 00:04:42,650 --> 00:04:43,590 jistenna ftit fancier. 103 00:04:43,590 --> 00:04:46,440 Aħna qed tuża malloc, li jħoss simili aħna qed jagħtu lilna nfusna aktar għażliet. 104 00:04:46,440 --> 00:04:48,030 U allura aħna qed ħelsien li memorja fl-aħħar. 105 00:04:48,030 --> 00:04:49,580 Huwa għadu biss 50 bytes ta 'memorja. 106 00:04:49,580 --> 00:04:53,620 Allura aħna xorta tista 'tipprova li jaqra f'51, 52, 1,000 bytes. 107 00:04:53,620 --> 00:04:55,830 Li għaddej biex segfault għal eżattament l-istess raġuni. 108 00:04:55,830 --> 00:04:57,530 >> Iżda hemm raġuni oħra wisq. 109 00:04:57,530 --> 00:05:03,890 X'aktar jista malloc ritorn minbarra l-indirizz ta 'blokki ta' memorja? 110 00:05:03,890 --> 00:05:04,920 Dan jista 'ritorn null. 111 00:05:04,920 --> 00:05:07,560 U għaliex aħna mhux qed iċċekkjar għall- dan, aħna jista 'jkun tagħmel xi ħaġa 112 00:05:07,560 --> 00:05:11,350 stupid għal raġuni oħra, li huwa li aħna jista 'jkun javżak scanf, moqri 113 00:05:11,350 --> 00:05:16,050 input tal-utent mill-keyboard fis 0 lokazzjoni, null AKA. 114 00:05:16,050 --> 00:05:18,890 U li, wisq, definittivament se jikkawżaw segfault. 115 00:05:18,890 --> 00:05:21,590 Allura għall-iskop tal-kwizz, aħna kieku aċċettaw jew ta 'dawk bħala 116 00:05:21,590 --> 00:05:22,740 raġuni valida. 117 00:05:22,740 --> 00:05:23,420 Wieħed huwa identiku. 118 00:05:23,420 --> 00:05:25,720 Wieħed huwa xi ftit aktar sfumata. 119 00:05:25,720 --> 00:05:28,975 >> Fl-aħħar nett, rigward il-tal-programm użu tal-memorja, kif do verżjoni 2 u 120 00:05:28,975 --> 00:05:30,350 Verżjoni 3 differenti? 121 00:05:30,350 --> 00:05:35,070 Allura għal dak li hi ta 'valur, rajna provvista donnu ma jieqaf ta 'possibbli 122 00:05:35,070 --> 00:05:35,770 tweġibiet għal dan. 123 00:05:35,770 --> 00:05:39,300 U fost tweġibiet tan-nies, dak li konna bit-tama għal, iżda aħna aċċettati oħra 124 00:05:39,300 --> 00:05:42,250 affarijiet, kien xi referenza għall- fatt li verżjoni 2 qed tuża 125 00:05:42,250 --> 00:05:44,560 l-hekk imsejħa munzell. 126 00:05:44,560 --> 00:05:46,710 Verżjoni 3 qed tuża l-borġ. 127 00:05:46,710 --> 00:05:50,060 U funzjonalment, dan ma verament jagħmlu dak kollu li ħafna ta 'differenza. 128 00:05:50,060 --> 00:05:54,040 Fl-aħħar tal-ġurnata, aħna qed għadhom biss jkollna 50 bytes ta 'memorja. 129 00:05:54,040 --> 00:05:56,640 >> Iżda dan kien wieħed mis-soluzzjonijiet possibbli li konna tħares lejn. 130 00:05:56,640 --> 00:05:59,730 Imma int ser tara, kif ikollok kwizzijiet tiegħek lura mill-TFS, li għamilna 131 00:05:59,730 --> 00:06:04,330 jaċċettaw diskussjonijiet oħra ta 'tagħhom użi differenti tal-memorja kif ukoll. 132 00:06:04,330 --> 00:06:08,600 Iżda munzell u borġ kien ikun tweġiba faċli li jmorru magħhom. 133 00:06:08,600 --> 00:06:11,150 Kwalunkwe mistoqsijiet? 134 00:06:11,150 --> 00:06:12,400 I jagħtuk Rob. 135 00:06:12,400 --> 00:06:18,360 136 00:06:18,360 --> 00:06:20,210 >> ROB BOWDEN: Allura problema 4. 137 00:06:20,210 --> 00:06:21,985 Dan huwa dak fejn kellek li timla fin-numru ta 'bytes barra minn kull 138 00:06:21,985 --> 00:06:23,460 dawn it-tipi differenti użati. 139 00:06:23,460 --> 00:06:24,830 Allura l-ewwel ħaġa li naraw. 140 00:06:24,830 --> 00:06:27,930 Assumi arkitettura 32-bit, bħal dan appliance CS50. 141 00:06:27,930 --> 00:06:33,530 Allura waħda mill-affarijiet fundamentali dwar Arkitetturi 32-bit, li tgħidilna 142 00:06:33,530 --> 00:06:37,490 eżattament kif big a pointer huwa għaddej li jkun fl-arkitettura. 143 00:06:37,490 --> 00:06:43,020 >> Allura immedjatament, nafu li kull pointer tip huwa 32-bits jew 4 bytes. 144 00:06:43,020 --> 00:06:46,010 Allura tħares lejn din it-tabella, a node * huwa tip pointer. 145 00:06:46,010 --> 00:06:47,250 Li għaddej biex jkun ta '4 bytes. 146 00:06:47,250 --> 00:06:51,640 Node Struct *, li litteralment identika għal star node. 147 00:06:51,640 --> 00:06:53,590 U hekk li għaddej biex jkun ta '4 bytes. 148 00:06:53,590 --> 00:06:58,270 String, u għalhekk ma look like a pointer s'issa, iżda l-typedef, a 149 00:06:58,270 --> 00:07:01,590 string huwa biss char a *, li huwa tip pointer. 150 00:07:01,590 --> 00:07:03,550 Allura li għaddej biex jkun ta '4 bytes. 151 00:07:03,550 --> 00:07:06,150 >> Allura dawn it-tlieta huma 4 bytes kollha. 152 00:07:06,150 --> 00:07:09,350 Issa, node u student huma daqsxejn aktar ikkumplikata. 153 00:07:09,350 --> 00:07:15,160 Allura tħares lejn node u student, naraw node bħala numru sħiħ u pointer. 154 00:07:15,160 --> 00:07:18,050 U student huwa żewġ pointers ġewwa ta 'dan. 155 00:07:18,050 --> 00:07:23,340 Dan bl-inqas għall-każ tagħna hawn, il-mod li aħna jispiċċaw kalkolu tad-daqs tal- 156 00:07:23,340 --> 00:07:27,020 din Struct huwa biss jammontaw kollox dan huwa ġewwa l-Struct. 157 00:07:27,020 --> 00:07:30,690 >> Allura għal node, għandna integer, li huwa 4 bytes. 158 00:07:30,690 --> 00:07:32,830 Għandna pointer, li huwa 4 bytes. 159 00:07:32,830 --> 00:07:35,820 U għalhekk node wieħed ikun ser li jibdew 8 bytes. 160 00:07:35,820 --> 00:07:39,490 U l-istess għall-istudenti, għandna pointer li l-4 bytes u ieħor 161 00:07:39,490 --> 00:07:40,770 pointer li l-4 bytes. 162 00:07:40,770 --> 00:07:43,180 Allura li għaddej biex tintemm jiddiżappuntaw 8 bytes. 163 00:07:43,180 --> 00:07:45,480 Allura node u student huma 8 bytes. 164 00:07:45,480 --> 00:07:48,950 U dawn it-tliet huma 4 bytes kollha. 165 00:07:48,950 --> 00:07:50,240 Mistoqsijiet dwar li? 166 00:07:50,240 --> 00:07:54,640 167 00:07:54,640 --> 00:07:54,990 Iva. 168 00:07:54,990 --> 00:07:58,413 >> UDJENZA: Huwa kien 64-bit arkitettura, kieku dik 169 00:07:58,413 --> 00:07:59,880 tirdoppja kull wieħed minnhom? 170 00:07:59,880 --> 00:08:01,790 >> ROB BOWDEN: ma jkunx tirdoppja kull wieħed minnhom. 171 00:08:01,790 --> 00:08:05,830 Allura arkitettura 64-bit, huwa, għal darb'oħra, bidliet li ħaġa fundamentali li 172 00:08:05,830 --> 00:08:08,910 pointer issa huwa 64 bits. 173 00:08:08,910 --> 00:08:09,290 Yeah. 174 00:08:09,290 --> 00:08:10,930 Allura pointer huwa 8 bytes. 175 00:08:10,930 --> 00:08:15,420 Allura dawn li kienu 4 bytes ser ikunu 8 bytes. 176 00:08:15,420 --> 00:08:18,617 Student, li kien żewġ pointers, ukoll, issa li għaddej biex 177 00:08:18,617 --> 00:08:19,800 jkun 8 bytes, 8 bytes. 178 00:08:19,800 --> 00:08:21,980 Huwa ser jagħmlu 16 bytes. 179 00:08:21,980 --> 00:08:25,710 >> Iżda node xorta huwa 4 bytes. 180 00:08:25,710 --> 00:08:27,800 Allura dan il-werrej huwa għaddej li jkun 8 bytes. 181 00:08:27,800 --> 00:08:28,930 Dan huwa 4 bytes. 182 00:08:28,930 --> 00:08:30,870 Allura node huwa biss se li jkun ta '12 bytes. 183 00:08:30,870 --> 00:08:36,309 184 00:08:36,309 --> 00:08:39,280 Kwalunkwe mistoqsijiet oħra fuq li wieħed? 185 00:08:39,280 --> 00:08:44,500 Allura dak li jmiss, dawn huma il-kodiċijiet ta 'stat HTTP. 186 00:08:44,500 --> 00:08:48,000 U kellek biex tiddeskrivi ċ-ċirkostanzi li taħthom dawn jistgħu 187 00:08:48,000 --> 00:08:49,810 jiġu rritornati lilek. 188 00:08:49,810 --> 00:08:56,730 problema waħda li smajt xi studenti għandhom hija li huma ppruvaw jagħmlu l- 189 00:08:56,730 --> 00:08:58,950 żbalji jkun fuq il-għan tal-klijent. 190 00:08:58,950 --> 00:09:02,320 Allura meta aħna nippruvaw nagħmlu t-talba għall-server, xi ħaġa tmur 191 00:09:02,320 --> 00:09:03,820 ħażin fuq il-għan tagħna. 192 00:09:03,820 --> 00:09:07,660 Iżda ġeneralment, dawn il-kodiċijiet huma jkun mibgħut lura mill-server. 193 00:09:07,660 --> 00:09:11,720 Hekk irridu insemmu x'inhu għaddej żbaljata jew dritt fuq il-server li 194 00:09:11,720 --> 00:09:14,280 tikkawża dawn l-affarijiet jiġu rritornati. 195 00:09:14,280 --> 00:09:18,670 Allura għaliex jista 'server prospetti kodiċi istat 200? 196 00:09:18,670 --> 00:09:19,920 Kwalunkwe ħsibijiet? 197 00:09:19,920 --> 00:09:23,360 198 00:09:23,360 --> 00:09:23,730 >> Yeah. 199 00:09:23,730 --> 00:09:27,850 Allura xi ħaġa dwar b'suċċess it-talba għaddiet. 200 00:09:27,850 --> 00:09:30,260 U dawn qed kapaċi li jirritornaw x'ikun inti mitlub. 201 00:09:30,260 --> 00:09:32,240 Hekk kollox kien multa. 202 00:09:32,240 --> 00:09:35,662 What about 302 misjuba? 203 00:09:35,662 --> 00:09:36,618 Yeah. 204 00:09:36,618 --> 00:09:39,008 >> UDJENZA: Il-server kien qed ifittex għal dak li inti mitlub. 205 00:09:39,008 --> 00:09:40,442 Iżda ma setgħetx issib lilha. 206 00:09:40,442 --> 00:09:42,850 Allura hemm żball. 207 00:09:42,850 --> 00:09:47,720 >> ROB BOWDEN: Allura l-server kien tfittex dak li riedu. 208 00:09:47,720 --> 00:09:51,682 Hekk biss tfittex hawn, 302 misjuba, hija kienet f'pożizzjoni li jsibuha. 209 00:09:51,682 --> 00:09:53,035 >> UDJENZA: Jien sorry. 210 00:09:53,035 --> 00:09:54,388 Misjuba ifisser li huma għamlu jsibuha. 211 00:09:54,388 --> 00:09:55,638 Jiddispjacini. 212 00:09:55,638 --> 00:09:58,120 213 00:09:58,120 --> 00:10:00,160 >> ROB BOWDEN: So 302 misjuba. 214 00:10:00,160 --> 00:10:02,350 Il-server huwa kapaċi li jsibu dak li riedu. 215 00:10:02,350 --> 00:10:04,640 >> UDJENZA: Imma din mhix l-wiri? 216 00:10:04,640 --> 00:10:08,180 >> ROB BOWDEN: Id-differenza bejn dan 302 u 200 huwa li 217 00:10:08,180 --> 00:10:09,280 jaf dak li trid. 218 00:10:09,280 --> 00:10:12,000 Iżda mhuwiex eżattament fejn inti ridt li jistaqsu. 219 00:10:12,000 --> 00:10:14,580 Allura 302 hija direzzjoni ġdida tipiku. 220 00:10:14,580 --> 00:10:16,510 Allura inti mitlub paġna. 221 00:10:16,510 --> 00:10:19,590 Huwa jaf, oh, I jridu li inti tirritorna dan. 222 00:10:19,590 --> 00:10:21,070 Iżda dan huwa bi URL differenti. 223 00:10:21,070 --> 00:10:23,534 Allura ħej, inti fil-fatt tixtieq dan. 224 00:10:23,534 --> 00:10:26,950 >> DAVID J. Malan: Huwa biċċa li qal li aħna taw inti guys direzzjoni ġdida 225 00:10:26,950 --> 00:10:30,830 funzjoni li jintuża l-funzjoni header li, imbagħad, stampata post, 226 00:10:30,830 --> 00:10:34,110 kolon, u allura l-URL li inti tixtieq li tirrifjuta l-utent. 227 00:10:34,110 --> 00:10:37,480 Anke jekk inti ma tara 302 espliċitu hemmhekk, dan huwa dak PHP 228 00:10:37,480 --> 00:10:41,550 se magically daħħal l-header tgħid eżattament dak li Rob qal hemm - 229 00:10:41,550 --> 00:10:41,930 misjuba. 230 00:10:41,930 --> 00:10:43,180 Iżda mur hawn minflok. 231 00:10:43,180 --> 00:10:45,960 232 00:10:45,960 --> 00:10:46,160 >> ROB BOWDEN: OK. 233 00:10:46,160 --> 00:10:47,630 Allura dak dwar 403 pprojbit? 234 00:10:47,630 --> 00:10:52,240 235 00:10:52,240 --> 00:10:57,120 >> UDJENZA: Naħseb li huwa li s-server hija bażikament tgħid li l-klijent 236 00:10:57,120 --> 00:10:59,970 ma jistgħux jaċċessaw il-home page. 237 00:10:59,970 --> 00:11:03,260 >> ROB BOWDEN: Allura iva. 238 00:11:03,260 --> 00:11:07,670 Ukoll, ir-risposta tipiċi konna jistennew xi ħaġa simili, il-fajls 239 00:11:07,670 --> 00:11:08,920 mhumiex chmodded xieraq. 240 00:11:08,920 --> 00:11:11,590 Li probabbilment taħt liema ċirkostanzi inti raw lilhom. 241 00:11:11,590 --> 00:11:18,920 Iżda hemm raġuni li l-klijent jista 'jkun tort hawn. 242 00:11:18,920 --> 00:11:20,440 Hemm attwalment kodiċi ieħor status - 243 00:11:20,440 --> 00:11:21,210 401. 244 00:11:21,210 --> 00:11:22,820 Allura dawn huma simili ħafna. 245 00:11:22,820 --> 00:11:24,590 >> 401 hija mhux awtorizzat. 246 00:11:24,590 --> 00:11:26,130 U 403 huwa pprojbit. 247 00:11:26,130 --> 00:11:31,890 U għalhekk mhux awtorizzat inti esklussivament nikseb jekk int ma logged pulzieri 248 00:11:31,890 --> 00:11:34,520 Iżda qtugħ fil jista 'jfisser li inti huma awtorizzati. 249 00:11:34,520 --> 00:11:37,930 Imma jekk int diġà illoggjat u int xorta ma jkollhomx permess, imbagħad 250 00:11:37,930 --> 00:11:40,140 inti tista 'wkoll tikseb pprojbit. 251 00:11:40,140 --> 00:11:45,320 Mela jekk inti illoggjat u ma jkollhom permess, projbiti wkoll 252 00:11:45,320 --> 00:11:47,164 xi ħaġa li tista 'tikseb. 253 00:11:47,164 --> 00:11:48,900 >> DAVID J. Malan: U l-mekkaniżmu li dawn il-problemi huma normalment 254 00:11:48,900 --> 00:11:53,100 solvuti fuq is-server huwa via liema kmand? 255 00:11:53,100 --> 00:11:57,700 Chmod, jekk huwa, tabilħaqq, permessi joħroġ fuq il-fajl jew direttorju. 256 00:11:57,700 --> 00:11:59,220 >> ROB BOWDEN: Imbagħad 404 ma nstabx. 257 00:11:59,220 --> 00:12:03,100 258 00:12:03,100 --> 00:12:03,470 Yeah. 259 00:12:03,470 --> 00:12:10,150 Allura b'differenza 302 fejn ma kienx eżattament fejn int tistaqsi imma jaf liema 260 00:12:10,150 --> 00:12:12,710 tixtieq, dan, hija biss għandha ebda idea dak li trid. 261 00:12:12,710 --> 00:12:15,648 U inti ma jitlob xi ħaġa valida. 262 00:12:15,648 --> 00:12:18,580 263 00:12:18,580 --> 00:12:22,310 418 jien teapot u mbagħad 500 server intern. 264 00:12:22,310 --> 00:12:24,870 Allura għaliex jista 'ikollok dan? 265 00:12:24,870 --> 00:12:26,120 >> Allura segfault - 266 00:12:26,120 --> 00:12:28,760 267 00:12:28,760 --> 00:12:30,640 I attwalment ma jafux il-gradazzjoni standard għal din. 268 00:12:30,640 --> 00:12:34,850 Iżda jekk il-kodiċi PHP tiegħek kienet xi ħaġa ħażin fiha, fit-teorija, din tista ' 269 00:12:34,850 --> 00:12:39,650 attwalment segfault, f'liema każ, dan 500 żball server intern, xi ħaġa 270 00:12:39,650 --> 00:12:41,400 li hu ħażin ma 'l server tiegħek konfigurazzjoni. 271 00:12:41,400 --> 00:12:44,320 Jew hemm żball sintassi fil-kodiċi PHP tiegħek. 272 00:12:44,320 --> 00:12:46,095 Jew xi ħaġa ħażina li qed jiġri. 273 00:12:46,095 --> 00:12:48,320 >> DAVID J. Malan: Aħna ma tara segfault fost tweġibiet ftit tan-nies. 274 00:12:48,320 --> 00:12:49,490 U teknikament, jista 'jiġri. 275 00:12:49,490 --> 00:12:53,820 Iżda li tkun PHP, il-programm miktuba minn nies oħra, attwalment 276 00:12:53,820 --> 00:12:57,790 segfaulted, li biss jekk dawk il-persuni invitat up u kiteb kodiċi Buggy fl 277 00:12:57,790 --> 00:13:00,680 interpretu tagħhom kieku PHP innifsu segfault. 278 00:13:00,680 --> 00:13:06,460 Allura anke jekk 500 huwa bħal segfault fl-ispirtu, huwa kważi dejjem l- 279 00:13:06,460 --> 00:13:10,490 riżultat ta 'kwistjoni fajl konfigurazzjoni ma 'web server tiegħek jew, kif Rob imsemmi, 280 00:13:10,490 --> 00:13:13,200 żball sintassi, bħalek ma jagħlqu kwotazzjoni. 281 00:13:13,200 --> 00:13:16,180 Jew int mitluf virgola x'imkien. 282 00:13:16,180 --> 00:13:23,677 >> UDJENZA: Dan għall-pset Shuttle, I jaħsbu meta I ma kien darba I għafast il- 283 00:13:23,677 --> 00:13:26,300 browser, iżda xejn daħal up, dak li jissejjaħ paġna abjad. 284 00:13:26,300 --> 00:13:28,056 Iżda kien minħabba l-kodiċi. 285 00:13:28,056 --> 00:13:29,440 Naħseb li kien JavaScript, right? 286 00:13:29,440 --> 00:13:29,770 >> ROB BOWDEN: Yeah. 287 00:13:29,770 --> 00:13:31,180 >> UDJENZA: Would dan l-iżball xorta toħroġ? 288 00:13:31,180 --> 00:13:34,290 >> ROB BOWDEN: Allura inti ma gotten dan l-iżball għaliex kollox 289 00:13:34,290 --> 00:13:36,930 mill-perspettiva tal-web server kien kompletament multa. 290 00:13:36,930 --> 00:13:39,090 Imma inti mitlub index.html. 291 00:13:39,090 --> 00:13:42,000 Inti mitlub shuttle.js u service.js. 292 00:13:42,000 --> 00:13:44,580 U kien kapaċi b'suċċess jirritornaw lilek kollha ta 'dawk l-affarijiet - 293 00:13:44,580 --> 00:13:44,980 200. 294 00:13:44,980 --> 00:13:45,680 OK. 295 00:13:45,680 --> 00:13:49,330 Huwa biss meta browser tiegħek ppruvaw tinterpreta l-kodiċi JavaScript li 296 00:13:49,330 --> 00:13:51,370 Huwa simili, stenna, dan mhuwiex żball JavaScript valida. 297 00:13:51,370 --> 00:13:55,720 298 00:13:55,720 --> 00:13:58,210 Kwalunkwe mistoqsijiet oħra? 299 00:13:58,210 --> 00:14:00,750 Kull dritt. 300 00:14:00,750 --> 00:14:04,120 >> DAVID J. Malan: Allura li jmiss up kien numru 11. 301 00:14:04,120 --> 00:14:07,610 U 11 kienet l-scariest għal ħafna nies. 302 00:14:07,610 --> 00:14:14,620 303 00:14:14,620 --> 00:14:18,570 Allura l-aktar ħaġa importanti li wieħed jinnota hawnhekk kienet li dan kien, fil-fatt, dwar 304 00:14:18,570 --> 00:14:19,840 lista marbuta doppjament. 305 00:14:19,840 --> 00:14:23,160 Iżda dan ma kienx l-istess bħal tas-sena loħra problema lista marbuta doppjament, 306 00:14:23,160 --> 00:14:27,170 li ma jagħtuk l-twiddiba li il-lista tista ', fil-fatt, tkun mhux magħżul. 307 00:14:27,170 --> 00:14:29,640 >> Allura l-fatt li l-lista kienet mhux magħżul u l-fatt li din il-kelma kienet 308 00:14:29,640 --> 00:14:32,930 li enfasizzat hemm kienet maħsuba biex twassal li dan huwa effettivament simplifikazzjoni 309 00:14:32,930 --> 00:14:35,430 ta 'dak li kieku kien ikun problema aktar ta 'sfida 310 00:14:35,430 --> 00:14:36,600 u wieħed itwal. 311 00:14:36,600 --> 00:14:40,760 Allura żball komuni hawn kien li poġġew Soluzzjoni tas-sena loħra fuq waħda tiegħek 312 00:14:40,760 --> 00:14:45,580 pager u mbagħad biss bl-addoċċ kopja li stabbiliti bħala r-risposta, li huwa d-dritt 313 00:14:45,580 --> 00:14:48,520 twieġeb għal mistoqsija differenti simili fl-ispirtu. 314 00:14:48,520 --> 00:14:51,340 Iżda l-irqaqat hawn kienu kif ġej. 315 00:14:51,340 --> 00:14:55,200 >> Allura wieħed, aħna għandna node dikjarati u definit fil-mod tas-soltu hawnhekk. 316 00:14:55,200 --> 00:14:59,230 Imbagħad aħna lista definita ta 'jkun globali pointer initialized li null. 317 00:14:59,230 --> 00:15:02,150 Imbagħad apparentement, hemm żewġ funzjonijiet għandna prototipi għall hawn, daħħal 318 00:15:02,150 --> 00:15:03,240 u neħħi. 319 00:15:03,240 --> 00:15:06,600 U allura aħna għandna xi kodiċi tal-kampjun hawn jagħmlu mazz ta 'inserzjonijiet. 320 00:15:06,600 --> 00:15:09,930 U allura aħna nitolbuk biex jitlesta l- implimentazzjoni tal daħħal hawn taħt f'tali 321 00:15:09,930 --> 00:15:14,380 b'mod li huwa introduċa n fil-lista fil-ħin kostanti, enfasizza wkoll, 322 00:15:14,380 --> 00:15:15,730 anki jekk diġà preżenti. 323 00:15:15,730 --> 00:15:20,600 >> Allura l-sbuħija li tkun tista 'daħħal fil-ħin kostanti huwa li jimplika 324 00:15:20,600 --> 00:15:23,060 li inti għandek daħħal l-node ġdid fejn? 325 00:15:23,060 --> 00:15:23,690 Fil-faċċata. 326 00:15:23,690 --> 00:15:27,760 Għalhekk jelimina, B'xorti tajba, għall-inqas wieħed mill-każijiet li jintużaw biex jeħtieġu 327 00:15:27,760 --> 00:15:30,520 saħansitra aktar linji ta 'kodiċi, bhalu għamlet aħħar sena u anke fil-klassi meta aħna 328 00:15:30,520 --> 00:15:34,040 tkellem permezz ta 'dan it-tip ta' ħaġa mal-bnedmin u ma 'xi 329 00:15:34,040 --> 00:15:35,250 kodiċi psewdo verbali. 330 00:15:35,250 --> 00:15:39,190 Allura fis-soluzzjoni hawn, ejja skip fuq għal dak biss li jkollhom fuq viżwali 331 00:15:39,190 --> 00:15:40,480 l-iskrin. 332 00:15:40,480 --> 00:15:42,230 >> Avviż li aħna qed tagħmel dan li ġej. 333 00:15:42,230 --> 00:15:45,140 U wkoll avviż-simplifikazzjonijiet oħrajn kienet li anke jekk huwa 334 00:15:45,140 --> 00:15:48,280 diġà preżenti, għalhekk dan ifisser li anki jekk in-numru huwa diġà hemm, inti tista ' 335 00:15:48,280 --> 00:15:50,280 biss bl-addoċċ daħħal ieħor kopja ta 'dan. 336 00:15:50,280 --> 00:15:52,560 U li, wisq, kien intenzjonat li jkun simplifikazzjoni, sabiex inti tista ' 337 00:15:52,560 --> 00:15:54,940 tiffoka fuq, verament, xi wħud mill-aktar parti intellettwalment interessanti u 338 00:15:54,940 --> 00:15:58,090 mhux biss xi żball kkontrollar addizzjonali minħabba ż-żmien limitat. 339 00:15:58,090 --> 00:16:02,880 >> Allura f'dan il-soluzzjoni tal-kampjun, aħna jallokaw a pointer fuq il-naħa tax-xellug 340 00:16:02,880 --> 00:16:04,510 ġenb hawn biex node. 341 00:16:04,510 --> 00:16:07,190 Issa, jirrealizzaw li pointer, kif Rob qal, huwa biss 32 bits. 342 00:16:07,190 --> 00:16:09,060 U din attwalment ma fihom indirizz sakemm inti 343 00:16:09,060 --> 00:16:09,970 tassenja din il indirizz. 344 00:16:09,970 --> 00:16:13,220 U nagħmlu dan fuq il-lemin naħa via malloc. 345 00:16:13,220 --> 00:16:16,550 Bħal ċittadin tajba, aħna jivverifikaw li malloc mhuwiex, fil-fatt, null, sabiex 346 00:16:16,550 --> 00:16:18,690 aħna ma joħolqu aċċidentalment a segfault hawn. 347 00:16:18,690 --> 00:16:22,840 U kull darba li tuża malloc fil-ħajja, inti għandu jiġi verifikat għal null, lest 348 00:16:22,840 --> 00:16:24,090 għandek bug sottili. 349 00:16:24,090 --> 00:16:28,460 >> Imbagħad aħna initialize li null minn tassenja n u Preċedenti u li jmiss. 350 00:16:28,460 --> 00:16:32,450 U f'dan il-każ hawnhekk, I initialized preċedenti li null, għaliex dan ġdida 351 00:16:32,450 --> 00:16:34,780 node se tkun l-ġodda bidu tal-lista tiegħi. 352 00:16:34,780 --> 00:16:37,050 Allura hemm għaddej li jkun xejn quddiemha. 353 00:16:37,050 --> 00:16:42,010 U nixtieq li tehmeż essenzjalment l- lista eżistenti għall-node ġdid billi 354 00:16:42,010 --> 00:16:44,700 iffissar li jmiss ugwali għall-lista innifsu. 355 00:16:44,700 --> 00:16:47,120 Imma jien ma jsirx għadha biss. 356 00:16:47,120 --> 00:16:51,780 Allura jekk il-lista nnifisha diġà kienu jeżistu, u kien hemm node mill-inqas wieħed 357 00:16:51,780 --> 00:16:57,070 diġà fis-seħħ, jekk dan huwa l-lista hawn u I daħħal node ġdid hawn, I 358 00:16:57,070 --> 00:17:01,840 għandek bżonn tagħmel ċert li node ex tiegħi punti lura lill node ġdid tiegħi, 359 00:17:01,840 --> 00:17:04,260 għaliex dan huwa, għal darb'oħra, lista marbuta doppjament. 360 00:17:04,260 --> 00:17:05,460 >> Allura aħna tagħmel verifika sanità. 361 00:17:05,460 --> 00:17:10,109 Jekk il-lista ma huwiex null, jekk hemm diġà lymph wieħed jew aktar hemmhekk, allura 362 00:17:10,109 --> 00:17:12,470 jżidu li back referenza biex ngħidu hekk. 363 00:17:12,470 --> 00:17:15,420 U allura l-ħafna aħħar ħaġa li għandna bżonn tagħmel huwa attwalment taġġorna l-globali 364 00:17:15,420 --> 00:17:20,329 lista varjabbli ruħha għall-punt għal dak node ġdid. 365 00:17:20,329 --> 00:17:21,790 Yeah. 366 00:17:21,790 --> 00:17:26,579 >> UDJENZA: Fil-vleġġa pointer [Inaudible] hija ugwali null, ma li 367 00:17:26,579 --> 00:17:30,420 tittratta l-lista għaliex il-lista huwa null? 368 00:17:30,420 --> 00:17:30,596 >> DAVID J. Malan: Nope. 369 00:17:30,596 --> 00:17:34,500 Dan huwa sempliċiment me tkun proattiv bir-reqqa, b'mod li jekk dan huwa tiegħi 370 00:17:34,500 --> 00:17:38,730 lista oriġinali ma forsi xi lymph aktar minn hawn u jien ddaħħal tiegħi 371 00:17:38,730 --> 00:17:42,380 node ġdid hawn, hemm għaddej li tkun xejn hawn. 372 00:17:42,380 --> 00:17:44,720 U nixtieq li jaqbdu l-idea billi jistabbilixxu preċedenti li 373 00:17:44,720 --> 00:17:47,740 null fuq il-node ġdid. 374 00:17:47,740 --> 00:17:51,410 U preżumibbilment, jekk il-kodiċi tiegħi hija korretta u hemm ebda mod ieħor li daħħal 375 00:17:51,410 --> 00:17:54,970 punti strateġiċi oħrajn minn din il-funzjoni, preżumibbilment, anki jekk il-lista diġà 376 00:17:54,970 --> 00:18:00,090 lymph wieħed jew aktar fiha, preżumibbilment l- lista, l-ewwel node, ikollu 377 00:18:00,090 --> 00:18:02,750 pointer preċedenti ta null innifsu. 378 00:18:02,750 --> 00:18:03,550 >> UDJENZA: U biss segwitu. 379 00:18:03,550 --> 00:18:08,139 Ir-raġuni inti tpoġġi pointer ugwali jmiss lista int tagħmel il-pointer 380 00:18:08,139 --> 00:18:13,579 qabel lista li huwa tipponta għall-ieħor, I raden - 381 00:18:13,579 --> 00:18:14,980 I Don - 382 00:18:14,980 --> 00:18:15,450 biss jelenka? 383 00:18:15,450 --> 00:18:16,400 >> DAVID J. Malan: Eżattament. 384 00:18:16,400 --> 00:18:19,400 U hekk ejja attwalment jikkunsidraw żewġ każijiet hawn verament, anki jekk il- 385 00:18:19,400 --> 00:18:22,070 sabiex aħna ser jikkunsidraw lilhom mhix pjuttost l-istess bħall-kodiċi. 386 00:18:22,070 --> 00:18:26,250 Iżda fuq livell għoli, jekk din tirrapreżenta lista u din hija 32-bit 387 00:18:26,250 --> 00:18:29,560 pointer, ix-xenarju sempliċi hija li dan huwa null fil-kontumaċja. 388 00:18:29,560 --> 00:18:33,010 U jissoponi nixtieq li daħħal il- numru 50 kien l-ewwel numru. 389 00:18:33,010 --> 00:18:37,640 Hekk jien ser imorru quddiem u jallokaw node, li se jkun fiha 390 00:18:37,640 --> 00:18:38,770 tliet oqsma - 391 00:18:38,770 --> 00:18:42,070 n, qabel, u li jmiss. 392 00:18:42,070 --> 00:18:44,580 >> Jien ser tpoġġi l-għadd 50 hawn, għaliex dan se jkun n. 393 00:18:44,580 --> 00:18:46,130 Dan se jkun jmiss. 394 00:18:46,130 --> 00:18:48,530 U dan se jkun ta 'qabel. 395 00:18:48,530 --> 00:18:50,910 U hekk x'għandi nagħmel f'dan il-każ? 396 00:18:50,910 --> 00:18:53,900 Well, stajt biss isir linja 1 hawn. 397 00:18:53,900 --> 00:18:55,400 Pointer n gets n. 398 00:18:55,400 --> 00:18:57,740 Jien imbagħad qal, qabel għandhom jingħataw null. 399 00:18:57,740 --> 00:18:59,470 Allura dan se jkun null. 400 00:18:59,470 --> 00:19:01,365 Imbagħad jien se ngħid li jmiss hija se tikseb lista. 401 00:19:01,365 --> 00:19:05,150 >> U dan biss xogħlijiet out ukoll. 402 00:19:05,150 --> 00:19:06,500 Dan huwa null. 403 00:19:06,500 --> 00:19:10,620 U hekk jien qal, il-l-node ġdid li jmiss qasam għandha tikseb xi din hija. 404 00:19:10,620 --> 00:19:12,570 Allura li tpoġġi null ieħor hemmhekk. 405 00:19:12,570 --> 00:19:14,510 U allura l-aħħar ħaġa I do huwa check hawn. 406 00:19:14,510 --> 00:19:17,870 Jekk il-lista mhix ugwali għal null, iżda hija ugwali għal null, hekk aħna skip li 407 00:19:17,870 --> 00:19:18,470 għal kollox. 408 00:19:18,470 --> 00:19:23,520 U hekk kollha I do jmiss huwa lista gets pointer, li pictorially jirriżulta 409 00:19:23,520 --> 00:19:25,570 stampa bħal dik. 410 00:19:25,570 --> 00:19:26,620 Allura dak xenarju wieħed. 411 00:19:26,620 --> 00:19:30,490 >> U dak li inti kienu tistaqsi dwar speċifikament hija sitwazzjoni bħal din, 412 00:19:30,490 --> 00:19:33,190 fejn diġà għandna lista one-node. 413 00:19:33,190 --> 00:19:36,240 U jekk immur lura up fl-oriġinal dikjarazzjoni problema, il-li jmiss aħna ser 414 00:19:36,240 --> 00:19:39,320 daħħal ngħid huwa 34, biss għall- raġunijiet ta 'diskussjoni. 415 00:19:39,320 --> 00:19:46,210 Hekk jien ser biss konvenjenti tfassal dik hawn fuq. 416 00:19:46,210 --> 00:19:47,540 Stajt biss malloced. 417 00:19:47,540 --> 00:19:49,310 Ejja nassumu jien iċċekkjar għall null. 418 00:19:49,310 --> 00:19:51,870 >> Issa, jien ser initialize n li jkun 34. 419 00:19:51,870 --> 00:19:53,040 U dan se jkun n. 420 00:19:53,040 --> 00:19:54,670 Dan se jkun jmiss. 421 00:19:54,670 --> 00:19:57,100 U dan se jkun ta 'qabel. 422 00:19:57,100 --> 00:19:59,370 Ejja jagħmlu ċert I ma tikseb dan lura. 423 00:19:59,370 --> 00:20:01,110 Preċedenti jiġi l-ewwel fid-definizzjoni. 424 00:20:01,110 --> 00:20:03,070 Let me jiffissaw dan. 425 00:20:03,070 --> 00:20:04,410 Dan huwa qabel. 426 00:20:04,410 --> 00:20:05,780 Dan huwa li jmiss. 427 00:20:05,780 --> 00:20:08,620 Anke jekk dawn huma identiċi, ejja tinżamm konsistenti. 428 00:20:08,620 --> 00:20:09,450 >> Preċedenti. 429 00:20:09,450 --> 00:20:11,030 Dan huwa li jmiss. 430 00:20:11,030 --> 00:20:16,310 So I stajt biss malloced nota tiegħi, ikkontrollati għall null, assenjati 34 fil-node. 431 00:20:16,310 --> 00:20:17,570 Preċedenti gets null. 432 00:20:17,570 --> 00:20:19,480 Allura li tagħti me dak. 433 00:20:19,480 --> 00:20:21,010 Next gets lista. 434 00:20:21,010 --> 00:20:22,370 Allura lista hija din. 435 00:20:22,370 --> 00:20:26,520 Allura dan huwa l-istess bħal issa tpinġija dan vleġġa, b'tali mod li dawn jindikaw waħda 436 00:20:26,520 --> 00:20:27,940 fl-istess. 437 00:20:27,940 --> 00:20:30,400 U mbagħad jien iċċekkjar jekk lista mhuwiex ugwali għal null. 438 00:20:30,400 --> 00:20:31,740 U m'humiex dan iż-żmien. 439 00:20:31,740 --> 00:20:35,580 Imbagħad jien ser tagħmel lista preċedenti gets pointer. 440 00:20:35,580 --> 00:20:39,700 >> Allura lista preċedenti gets PTR. 441 00:20:39,700 --> 00:20:44,300 Allura dan għandu l-effett li tpoġġi vleġġa grafika hawn. 442 00:20:44,300 --> 00:20:46,930 U li jkollna ftit immewġin, il-linji. 443 00:20:46,930 --> 00:20:50,780 U mbagħad, fl-aħħarnett, I taġġorna lista għall-punt li pointer. 444 00:20:50,780 --> 00:20:55,560 Hekk issa dan jindika li dan Guy. 445 00:20:55,560 --> 00:20:57,170 U issa, ejja do a quick check sanità. 446 00:20:57,170 --> 00:20:59,470 >> Hawn il-lista, li hija il-varjabbli globali. 447 00:20:59,470 --> 00:21:02,850 L-ewwel node huwa, tabilħaqq, 34, minħabba Jien wara dik vleġġa. 448 00:21:02,850 --> 00:21:05,210 U li korretta għaliex nixtieq li daħħal fil-bidu tal-lista 449 00:21:05,210 --> 00:21:06,070 kollha lymph ġodda. 450 00:21:06,070 --> 00:21:08,860 Qasam li jmiss tiegħu twassalni għal dan Guy. 451 00:21:08,860 --> 00:21:10,710 Jekk I iżommu għaddejjin, I hit li jmiss huwa null. 452 00:21:10,710 --> 00:21:11,760 Hekk hemm ebda lista aktar. 453 00:21:11,760 --> 00:21:14,460 Jekk I hit preċedenti, nasal lura fejn I jistennew. 454 00:21:14,460 --> 00:21:16,435 >> Allura għad hemm ftit indikaturi, ovvjament, li jimmanipulaw. 455 00:21:16,435 --> 00:21:19,870 Imma l-fatt li inti qalulhom li tagħmel din fil-ħin kostanti ifisser li inti biss 456 00:21:19,870 --> 00:21:22,910 għandhom numru finit ta 'affarijiet int permess li tagħmel. 457 00:21:22,910 --> 00:21:24,290 U dak li huwa dak in-numru? 458 00:21:24,290 --> 00:21:25,185 Jista 'jkun pass wieħed. 459 00:21:25,185 --> 00:21:25,700 Jista 'jkun tnejn. 460 00:21:25,700 --> 00:21:26,820 Jista 'jkun 1,000 passi. 461 00:21:26,820 --> 00:21:30,500 Iżda huwa finite, li jfisser li inti ma tistax kwalunkwe tip ta 'looping għaddej 462 00:21:30,500 --> 00:21:32,010 hawn, l-ebda recursion, ebda loops. 463 00:21:32,010 --> 00:21:37,390 Huwa biss ltqajna biex ikunu linji hard-kodifikati ta 'kodiċi kif għandna f'dan kampjun. 464 00:21:37,390 --> 00:21:42,330 >> Allura l-problema li jmiss 12 talabna biex tlesti l-implimentazzjoni tal neħħi 465 00:21:42,330 --> 00:21:46,740 taħt b'tali mod li tneħħi n mil-lista fil-ħin lineari. 466 00:21:46,740 --> 00:21:48,740 Hekk ikollok ftit aktar kamra wiggle issa. 467 00:21:48,740 --> 00:21:52,380 Inti jista 'jassumi li n, jekk preżenti fil-lista, se jkunu preżenti 468 00:21:52,380 --> 00:21:53,340 mhux aktar minn darba. 469 00:21:53,340 --> 00:21:56,770 U li wisq huwa intenzjonat li jkun ibbażat fuq il-kwizz simplifikazzjoni suppożizzjoni, hekk 470 00:21:56,770 --> 00:21:59,780 li jekk issib in-numru 50 x'imkien fil-lista, inti ma wkoll 471 00:21:59,780 --> 00:22:02,890 jkollhom għalfejn tinkwieta dwar tkompli jtenni, tfittex kull possibbli 472 00:22:02,890 --> 00:22:06,990 kopja ta '50, li kien biss jiddevolvu fis xi dettall fil-ħin limitat. 473 00:22:06,990 --> 00:22:10,460 >> Allura ma tneħħi, dan wieħed kien definittivament aktar ta 'sfida u aktar 474 00:22:10,460 --> 00:22:11,640 kodiċi li tikteb. 475 00:22:11,640 --> 00:22:14,990 Iżda fl-ewwel daqqa t'għajn, franchement, huwa jista ' tfittex xi ħaġa kbira u simili 476 00:22:14,990 --> 00:22:17,060 hemm ebda mod inti jista 'jkollhom toħroġ bi fuq kwizz. 477 00:22:17,060 --> 00:22:22,450 Imma jekk aħna niffukaw fuq il-passi individwali, wieħed jittama, se f'daqqa 478 00:22:22,450 --> 00:22:26,060 jolqot lilek li kull wieħed minn dawn individwali passi jagħmel sens ovvju 479 00:22:26,060 --> 00:22:27,080 retrospettivament. 480 00:22:27,080 --> 00:22:28,200 Mela ejja tagħti ħarsa. 481 00:22:28,200 --> 00:22:32,570 >> Allura l-ewwel, aħna initialize pointer li tkun lista innifsu. 482 00:22:32,570 --> 00:22:36,040 Għaliex nixtieq ħin lineari, li l-mezzi Jien ser ikollhom xi loop. 483 00:22:36,040 --> 00:22:39,730 U mod komuni biex jtenni fuq il- nodes fi struttura lista jew kwalunkwe tip 484 00:22:39,730 --> 00:22:43,860 ta 'struttura iteratively huwa li jieħdu pointer lejn il-quddiem tad-data 485 00:22:43,860 --> 00:22:46,990 istruttura u mbagħad biss tibda aġġornament dan u jimxu tiegħek mod 486 00:22:46,990 --> 00:22:48,650 permezz tal-istruttura tad-data. 487 00:22:48,650 --> 00:22:50,040 Hekk jien ser tagħmel eżattament dan. 488 00:22:50,040 --> 00:22:54,260 >> Filwaqt pointer, varjabbli temporanju tiegħi, mhuwiex ugwali għal null, ejja 489 00:22:54,260 --> 00:22:55,660 imorru quddiem u jiċċekkjaw. 490 00:22:55,660 --> 00:22:56,910 Did I nikseb xxurtjati? 491 00:22:56,910 --> 00:23:01,740 Huwa l-qasam n fil-node jien bħalissa tħares lejn ugwali għall- 492 00:23:01,740 --> 00:23:03,380 Numru jien infittxu? 493 00:23:03,380 --> 00:23:05,410 U jekk iva, ejja nagħmlu xi ħaġa. 494 00:23:05,410 --> 00:23:10,020 Issa, avviż dan jekk il-kundizzjoni jdawru l kollu 495 00:23:10,020 --> 00:23:11,520 ġejjin linji ta 'kodiċi. 496 00:23:11,520 --> 00:23:14,610 Dan huwa l-unika ħaġa I jimpurtahom - sejba ta 'numru in kwistjoni. 497 00:23:14,610 --> 00:23:18,010 Allura hemm ebda inkella, li jissimplifika affarijiet kunċettwali ftit. 498 00:23:18,010 --> 00:23:22,040 >> Imma issa, I realizzati, u inti jista 'jkollok biss realizzati dan wara ħsieb 499 00:23:22,040 --> 00:23:24,720 permezz daqsxejn, hemm attwalment żewġ każijiet hawn. 500 00:23:24,720 --> 00:23:28,060 Wieħed huwa fejn il-node huwa fil- bidu tal-lista, li hija 501 00:23:28,060 --> 00:23:31,040 ftit annoying, għaliex thats każ speċjali, għax għandek biex jittrattaw 502 00:23:31,040 --> 00:23:33,340 ma 'dan il-ħaġa, li huwa l-uniku anomalija. 503 00:23:33,340 --> 00:23:35,720 Kullimkien inkella fil-lista, huwa l-istess ħaġa. 504 00:23:35,720 --> 00:23:38,050 Hemm node preċedenti u li jmiss node, node preċedenti, node jmiss. 505 00:23:38,050 --> 00:23:40,940 Iżda dan Guy huwa ftit speċjali jekk hu fil-bidu. 506 00:23:40,940 --> 00:23:48,710 >> Allura jekk il-pointer huwa daqs il-lista nnifisha, hekk jekk jien fil-bidu ta ' 507 00:23:48,710 --> 00:23:53,960 il-lista u I sabu n, I bżonn biex jagħmlu ftit affarijiet. 508 00:23:53,960 --> 00:23:59,230 Waħda, I bżonn għall-bidla lista biex punt għall-qasam li jmiss, 50. 509 00:23:59,230 --> 00:24:01,270 So jissoponi li jien jippruvaw biex jitneħħew 34. 510 00:24:01,270 --> 00:24:03,560 Allura li dan Guy ltqajna biex tmur bogħod fi ftit mument. 511 00:24:03,560 --> 00:24:07,210 >> Hekk jien se ngħid, lista gets pointer li jmiss. 512 00:24:07,210 --> 00:24:08,570 Ukoll, dan huwa pointer. 513 00:24:08,570 --> 00:24:10,360 Li jmiss hija li tipponta hawn fuq. 514 00:24:10,360 --> 00:24:17,470 Allura dan qed tinbidel dan id-dritt arrow issa għall-punt li dan Guy hawn. 515 00:24:17,470 --> 00:24:19,580 Issa, ftakar, għandna varjabbli temporanja. 516 00:24:19,580 --> 00:24:23,520 Allura aħna ma orfni xi nodes, minħabba I wkoll ikollhom dan Guy fil tiegħi 517 00:24:23,520 --> 00:24:25,010 implimentazzjoni tal tneħħi. 518 00:24:25,010 --> 00:24:29,600 Allura issa, jekk il-lista nnifisha mhix null, I ħtieġa li jiffissaw ftit xi ħaġa. 519 00:24:29,600 --> 00:24:32,690 >> I bżonn issa tiżgura li dan vleġġa, li qabel kienu tipponta 520 00:24:32,690 --> 00:24:36,830 50-34, dan s'est li jmorru lil hinn, għaliex jekk jien tipprova teħles 521 00:24:36,830 --> 00:24:41,910 ta '34, 50 kienu aħjar ma jżomm kwalunkwe tip ta 'back referenza għalih bħala l- 522 00:24:41,910 --> 00:24:42,820 vleġġa suġġerit. 523 00:24:42,820 --> 00:24:44,820 So I biss ma din il-linja. 524 00:24:44,820 --> 00:24:46,520 Mela allura jien jsir. 525 00:24:46,520 --> 00:24:48,040 F'dak il-każ huwa attwalment pjuttost faċli. 526 00:24:48,040 --> 00:24:51,010 Tqattiegħ off-kap tal-lista huwa relattivament sempliċi. 527 00:24:51,010 --> 00:24:52,980 >> Sfortunatament, hemm dan blokk annoying ieħor. 528 00:24:52,980 --> 00:24:56,170 Allura issa, I għandek tikkunsidra l-każ fejn hemm xi ħaġa fin-nofs. 529 00:24:56,170 --> 00:24:59,880 Iżda mhux wisq terribbli, ħlief għal sintassi bħal dan. 530 00:24:59,880 --> 00:25:03,080 Mela jekk jien ma fil-bidu tal- lista, jien x'imkien fin-nofs. 531 00:25:03,080 --> 00:25:08,160 U din il-linja hawnhekk qed tgħid, bidu fi kwalunkwe node int fuq. 532 00:25:08,160 --> 00:25:11,210 533 00:25:11,210 --> 00:25:18,550 Mur fil-qasam li jmiss tal-node qabel u l-punt li fil-pointer. 534 00:25:18,550 --> 00:25:20,390 >> Ejja nagħmlu dan pictorially. 535 00:25:20,390 --> 00:25:21,640 Li kien qed ikkumplikata. 536 00:25:21,640 --> 00:25:30,480 537 00:25:30,480 --> 00:25:37,990 Mela jekk għandi oqsma preċedenti hawn - ejja tagħmel dan - oqsma li jmiss hawn. 538 00:25:37,990 --> 00:25:41,200 Jien ser tissimplifika pointers tiegħi pjuttost minn jiġbed mazz sħiħ ta ' 539 00:25:41,200 --> 00:25:45,710 affarijiet quddiem u lura crisscrossing xulxin. 540 00:25:45,710 --> 00:25:50,870 U issa, ejja biss jgħidu li dan huwa 1, 2, 3 għall-fini ta 'diskussjoni, anke 541 00:25:50,870 --> 00:25:53,410 għalkemm dan ma line up ma ' il-problema inkwistjoni. 542 00:25:53,410 --> 00:25:55,900 >> Allura hawnhekk lista marbuta tiegħi. 543 00:25:55,900 --> 00:25:59,300 I am tipprova tneħħi tnejn f'din verżjoni partikolari ta 'l-istorja. 544 00:25:59,300 --> 00:26:01,960 Hekk stajt aġġornati pointer biex tkun tipponta lejn dan Guy. 545 00:26:01,960 --> 00:26:03,315 Allura dan huwa PTR. 546 00:26:03,315 --> 00:26:04,530 Hu tipponta hawn. 547 00:26:04,530 --> 00:26:07,170 Din hija lista, li teżisti globalment bħal qabel. 548 00:26:07,170 --> 00:26:09,200 U hu tipponta hawn x'ikun. 549 00:26:09,200 --> 00:26:10,800 U issa, jien tipprova tneħħi tnejn. 550 00:26:10,800 --> 00:26:13,850 >> Mela jekk pointer hija li tipponta hawn, jien ser isegwu, apparentement, il- 551 00:26:13,850 --> 00:26:17,110 pointer preċedenti, li jpoġġi lili fl-1. 552 00:26:17,110 --> 00:26:22,290 Jien imbagħad se ngħid li jmiss qasam, li jwassalni fuq għal dan 553 00:26:22,290 --> 00:26:25,410 kaxxa hawn, se pointer ugwali jmiss. 554 00:26:25,410 --> 00:26:28,400 Hekk jekk dan il-werrej, dan huwa li jmiss. 555 00:26:28,400 --> 00:26:31,840 Dan ifisser li dan vleġġa bżonnijiet għall-punt li dan Guy. 556 00:26:31,840 --> 00:26:35,140 >> Allura dak li l-linja tal-kodiċi għandu biss jsir huwa xi ftit ta 'dan. 557 00:26:35,140 --> 00:26:37,500 U issa, dan huwa tfittex bħal pass fid-direzzjoni t-tajba. 558 00:26:37,500 --> 00:26:41,390 Aħna essenzjalment tixtieq snip 2 out tal-nofs ta '1 u 3. 559 00:26:41,390 --> 00:26:44,400 Għalhekk jagħmel sens li rridu rotta din pointer madwaru. 560 00:26:44,400 --> 00:26:50,400 Allura din il-linja li jmiss qed jiċċekkja jekk pointer jmiss ma huwiex null, hemm 561 00:26:50,400 --> 00:26:54,200 tabilħaqq xi ħadd li d-dritt ta '2, li jfisser irridu wkoll tagħmel 562 00:26:54,200 --> 00:26:55,850 ftit snip hawn. 563 00:26:55,850 --> 00:27:00,590 >> So I issa jeħtieġ li jsegwu dan il-werrej u taġġorna l-pointer preċedenti dwar 564 00:27:00,590 --> 00:27:05,410 dan Guy li tagħmel ftit ta ' workaround hawn il-punt hawnhekk. 565 00:27:05,410 --> 00:27:07,100 U issa, viżwalment dan huwa sbieħ. 566 00:27:07,100 --> 00:27:11,930 Huwa ftit messy f'dak hemm ebda waħda tipponta lejn l-2 aktar. 567 00:27:11,930 --> 00:27:13,600 2 hija li tipponta lejn ix-xellug. 568 00:27:13,600 --> 00:27:14,980 U 2 hija li tipponta lejn il-lemin. 569 00:27:14,980 --> 00:27:17,480 Imma hu jista 'jagħmel kull ma trid, għax hu wasal biex tikseb meħlusa. 570 00:27:17,480 --> 00:27:19,480 U ma jimpurtax liema dawk il-valuri huma aktar. 571 00:27:19,480 --> 00:27:23,040 >> X'hemm importanti huwa li l-bqija guys huma routing hawn fuq 572 00:27:23,040 --> 00:27:24,280 u taħt lilu issa. 573 00:27:24,280 --> 00:27:25,810 U fil-fatt, dan huwa dak li nagħmlu jmiss. 574 00:27:25,810 --> 00:27:29,360 Aħna pointer ħielsa, li jfisser li għandna tgħid il- sistema operattiva, inti merħba 575 00:27:29,360 --> 00:27:30,906 li titlob lura dan. 576 00:27:30,906 --> 00:27:34,900 U mbagħad fl-aħħar, nerġgħu lura. 577 00:27:34,900 --> 00:27:37,220 Else impliċitament, jekk aħna ma ġewx lura s'issa, 578 00:27:37,220 --> 00:27:38,290 konna ltqajna biex iżommu tfittex. 579 00:27:38,290 --> 00:27:41,485 Allura pointer ugwali pointer li jmiss biss ifisser jimxu dan Guy hawn. 580 00:27:41,485 --> 00:27:42,600 Nimxu dan Guy hawn. 581 00:27:42,600 --> 00:27:45,400 Nimxu dan Guy hawn jekk, fil-fatt, aħna ma sabx l-għadd 582 00:27:45,400 --> 00:27:46,960 aħna qed tfittex għal darb'oħra. 583 00:27:46,960 --> 00:27:49,630 >> Allura franchement, jidher kompletament kbira, I think, fl-ewwel 584 00:27:49,630 --> 00:27:52,180 daqqa t'għajn, speċjalment jekk inti tħabtu ma 'dan matul l-kwizz mbagħad tara 585 00:27:52,180 --> 00:27:52,850 xi ħaġa bħal din. 586 00:27:52,850 --> 00:27:55,050 U inti pat lilek innifsek fuq id-dahar. 587 00:27:55,050 --> 00:27:57,080 Ukoll, hemm ebda mod I jista 'jkollhom toħroġ ma 'dak fuq il-kwizz. 588 00:27:57,080 --> 00:28:00,470 Iżda nixtieq jargumentaw, inti tista 'jekk inti break isfel lejn dawn individwali 589 00:28:00,470 --> 00:28:04,400 każijiet u biss walk permezz ta 'dan bir-reqqa, għalkemm, ċertament, taħt 590 00:28:04,400 --> 00:28:06,300 ċirkostanzi stressanti. 591 00:28:06,300 --> 00:28:09,470 >> Thankfully, l-istampa magħmula kollox kuntenti. 592 00:28:09,470 --> 00:28:11,050 Inti tista 'tiġbed dan kwalunkwe numru ta 'modi. 593 00:28:11,050 --> 00:28:12,760 Inti ma għandekx tagħmel l crisscrossing ħaġa hawn. 594 00:28:12,760 --> 00:28:14,520 Inti tista 'tagħmel dan ma dritta linji bħal dan. 595 00:28:14,520 --> 00:28:18,790 Iżda l-gist ta 'din il-problema, fil- ġenerali, kien li tirrealizza li l- 596 00:28:18,790 --> 00:28:22,060 stampa fl-aħħar għandha tfittex ftit xi ħaġa bħal din, minħabba li 597 00:28:22,060 --> 00:28:25,030 ħin kostanti implika li inti żżomm disturbazzjoni u disturbazzjoni u disturbazzjoni l- 598 00:28:25,030 --> 00:28:29,900 punti strateġiċi ġodda fil-bidu tal-lista. 599 00:28:29,900 --> 00:28:31,960 Kwalunkwe mistoqsijiet? 600 00:28:31,960 --> 00:28:34,565 Probabbilment l-aktar sfida ta ' ċertament l-mistoqsijiet kodifikazzjoni. 601 00:28:34,565 --> 00:28:37,690 >> UDJENZA: Allura huwa lista simili għal ras eżempji preċedenti. 602 00:28:37,690 --> 00:28:39,640 >> DAVID J. Malan: Eżattament, eżattament. 603 00:28:39,640 --> 00:28:43,130 Just isem differenti għall- varjabbli globali. 604 00:28:43,130 --> 00:28:44,380 Madwar id-dinja liema? 605 00:28:44,380 --> 00:28:48,880 606 00:28:48,880 --> 00:28:49,730 >> ROB BOWDEN: OK. 607 00:28:49,730 --> 00:28:52,020 Allura dan huwa dak fejn inti kellu jikteb il-paragrafu. 608 00:28:52,020 --> 00:28:56,060 Xi nies kiteb esejs għal din il-mistoqsija. 609 00:28:56,060 --> 00:29:00,230 Imma inti biss bżonn jużaw dawn is-sitt termini biex jiddeskrivu dak li jiġri meta 610 00:29:00,230 --> 00:29:02,440 inti tipprova tikkuntattja facebook.com. 611 00:29:02,440 --> 00:29:07,930 So I ser biss jitkellmu permezz tal-proċess jużaw dawn it-termini kollha. 612 00:29:07,930 --> 00:29:11,290 Allura fil-browser tagħna, aħna tip facebook.com u hit Ikteb. 613 00:29:11,290 --> 00:29:17,280 Allura browser tagħna għaddej biex jinbena HTTP titlob li għaddej biex tibgħat 614 00:29:17,280 --> 00:29:22,220 permezz ta 'xi proċess biex Facebook għal Facebook biex jirrispondu lilna mal- 615 00:29:22,220 --> 00:29:24,450 HTML tal-paġna tagħha. 616 00:29:24,450 --> 00:29:28,800 >> Allura dak li huwa l-proċess li t-talba HTTP 617 00:29:28,800 --> 00:29:30,730 attwalment gets Facebook? 618 00:29:30,730 --> 00:29:32,790 Allura l-ewwel, għandna bżonn biex tittraduċi Facebook.com. 619 00:29:32,790 --> 00:29:38,780 Hekk biss minħabba l-isem Facebook.com, fejn attwalment ma t-talba HTTP 620 00:29:38,780 --> 00:29:39,940 bżonn biex tmur? 621 00:29:39,940 --> 00:29:44,120 Għalhekk għandna bżonn li jittraduċu Facebook.com għal indirizz IP, li unikament 622 00:29:44,120 --> 00:29:47,620 jidentifika liema magna għandna attwalment trid tibgħat din it-talba. 623 00:29:47,620 --> 00:29:49,310 Laptop tiegħek ikollu indirizz IP. 624 00:29:49,310 --> 00:29:52,240 Xejn konness mal-internet għandha l-indirizz IP. 625 00:29:52,240 --> 00:29:59,030 >> Allura DNS, Domain Name System, li hija dak li għaddej biex jimmaniġġaw it-traduzzjoni 626 00:29:59,030 --> 00:30:03,750 minn facebook.com għal indirizz IP li inti fil-fatt tixtieq tikkuntattja. 627 00:30:03,750 --> 00:30:08,075 Allura aħna tikkuntattja l-DNS servers u jiġifieri, dak li huwa facebook.com? 628 00:30:08,075 --> 00:30:16,560 Huwa jgħid, oh, huwa IP indirizz 190.212 xi ħaġa, xi ħaġa, xi ħaġa. 629 00:30:16,560 --> 00:30:16,900 Kull dritt. 630 00:30:16,900 --> 00:30:18,850 Issa, naf liema magna I tixtieq tikkuntattja. 631 00:30:18,850 --> 00:30:22,360 >> Mela allura inti tibgħat talba HTTP tiegħek lejn dik magna. 632 00:30:22,360 --> 00:30:24,140 Allura kif ma jiksbu għal dak magna? 633 00:30:24,140 --> 00:30:27,200 Ukoll, it-talba jmur minn router li bouncing router. 634 00:30:27,200 --> 00:30:32,630 Ftakar l-eżempju fil-klassi, fejn għandna attwalment raw ir-rotta li l- 635 00:30:32,630 --> 00:30:35,340 pakketti ħa meta aħna ppruvaw biex jikkomunikaw. 636 00:30:35,340 --> 00:30:38,460 Rajna dan jaqbżu fuq l-Atlantiku Oċean fuq punt wieħed jew ikun x'ikun. 637 00:30:38,460 --> 00:30:42,820 >> Allura l-aħħar port tul. 638 00:30:42,820 --> 00:30:46,520 Allura issa dan huwa fuq il-kompjuter tiegħek. 639 00:30:46,520 --> 00:30:49,970 Inti jista 'jkollhom affarijiet multipli bħalissa komunikazzjoni mal-internet. 640 00:30:49,970 --> 00:30:53,730 So I tista 'tkun qed taħdem, jiġifieri, Skype. 641 00:30:53,730 --> 00:30:55,670 I jista 'jkollhom web browser miftuħa. 642 00:30:55,670 --> 00:30:59,010 I jista 'jkollhom xi ħaġa li torrenting files. 643 00:30:59,010 --> 00:31:00,880 Allura kollha ta 'dawn l-affarijiet huma komunikazzjoni mal- 644 00:31:00,880 --> 00:31:02,600 internet b'xi mod. 645 00:31:02,600 --> 00:31:08,070 >> Allura meta l-kompjuter tiegħek tirċievi xi data mill-internet, kif ma dan 646 00:31:08,070 --> 00:31:10,130 taf liema applikazzjoni attwalment irid li l-data? 647 00:31:10,130 --> 00:31:12,610 Kif tkun taf jekk din partikolari data huwa maħsub għall- 648 00:31:12,610 --> 00:31:16,070 torrenting applikazzjoni għall-kuntrarju għall-web browser? 649 00:31:16,070 --> 00:31:20,980 Allura dan huwa l-iskop tal-portijiet f'dak dawn l-applikazzjonijiet jkollhom 650 00:31:20,980 --> 00:31:22,720 ddikjaraw port fuq il-kompjuter tiegħek. 651 00:31:22,720 --> 00:31:27,580 Allura web browser tiegħek jgħid, ħej, Qiegħda nisma fuq il-port 1000. 652 00:31:27,580 --> 00:31:32,240 U l-programm torrenting tiegħek huwa qal, Qiegħda nisma fuq il-port 3000. 653 00:31:32,240 --> 00:31:34,770 U Skype jgħid, jien jużaw port 4000. 654 00:31:34,770 --> 00:31:41,950 >> Allura meta ikollok xi data li tappartjeni għal waħda minn dawn l-applikazzjonijiet, id-data 655 00:31:41,950 --> 00:31:45,510 huwa mmarkat li magħhom port attwalment għandhom jintbagħtu flimkien biex. 656 00:31:45,510 --> 00:31:47,950 Allura dan jgħid, oh, I jappartjenu port 1000. 657 00:31:47,950 --> 00:31:50,950 Naf imbagħad I bżonn biex jgħaddi din flimkien biex web browser tiegħi. 658 00:31:50,950 --> 00:31:56,440 Allura r-raġuni huwa rilevanti hawnhekk hija li servers mill-web tendenza li 659 00:31:56,440 --> 00:31:58,240 jisimgħu fuq il-port 80. 660 00:31:58,240 --> 00:32:02,420 Allura meta I tikkuntattja Facebook.com, jien komunikazzjoni ma 'xi magna. 661 00:32:02,420 --> 00:32:06,390 Imma I bżonn biex ngħid li port ta 'dak magna Irrid li jikkomunikaw ma. 662 00:32:06,390 --> 00:32:09,160 U servers mill-web tendenza li jkunu jisimgħu fuq il-port 80. 663 00:32:09,160 --> 00:32:14,010 >> Jekk riedu, dawn jistgħu jistabbilixxu li up hekk hija telenka fuq port 7000. 664 00:32:14,010 --> 00:32:19,090 U mbagħad fil-web browser, I tista ' manwalment tip Facebook.com: 7000 sa 665 00:32:19,090 --> 00:32:24,600 tibgħat it-talba lill-port 7000 ta 'web server Facebook. 666 00:32:24,600 --> 00:32:26,820 >> DAVID J. Malan: U f'dan il-każ, anki għalkemm aħna ma jeħtieġu li n-nies 667 00:32:26,820 --> 00:32:30,000 jsemmi dan, f'dan il-każ, liema port kieku t-talba fil-fatt imorru għall? 668 00:32:30,000 --> 00:32:36,630 669 00:32:36,630 --> 00:32:37,880 Erġa 'pprova. 670 00:32:37,880 --> 00:32:42,810 671 00:32:42,810 --> 00:32:44,300 Eżattament. 672 00:32:44,300 --> 00:32:47,960 Ma tfittex għal dan, iżda subtlety li hemm xejn l-aħħar. 673 00:32:47,960 --> 00:32:51,770 >> ROB BOWDEN: Allura l-HTTPS, peress li huwa jisimgħu speċifikament għall- 674 00:32:51,770 --> 00:32:55,180 encrypted, huwa fuq il-port 4430. 675 00:32:55,180 --> 00:32:57,680 >> Udjenza: U emails huma 25, id-dritt? 676 00:32:57,680 --> 00:33:00,670 >> DAVID J. Malan: Outbound emails, 25, Yep. 677 00:33:00,670 --> 00:33:03,760 >> ROB BOWDEN: I lanqas biss jafu aktar ta ' il - kollha ta 'dawk aktar baxxi għandhom tendenza li jkunu 678 00:33:03,760 --> 00:33:06,310 riżervati għall-affarijiet. 679 00:33:06,310 --> 00:33:09,260 I think kollox taħt 1024 hija rriżervata. 680 00:33:09,260 --> 00:33:13,450 >> UDJENZA: Għaliex ma inti tgħid 3 kien in-numru ħażin? 681 00:33:13,450 --> 00:33:18,820 >> ROB BOWDEN: Minħabba fl-indirizz IP, hemm erba 'gruppi ta' numri. 682 00:33:18,820 --> 00:33:21,090 U dawn qed 0-255. 683 00:33:21,090 --> 00:33:28,060 Allura 192.168.2.1 huwa komuni netwerk lokali indirizz IP. 684 00:33:28,060 --> 00:33:30,840 Avviż kollha ta 'dawn huma inqas minn 255. 685 00:33:30,840 --> 00:33:33,570 Allura meta I bdew mal 300, li ma jista 'possibbilment ikollu 686 00:33:33,570 --> 00:33:35,210 kien wieħed mill-numri. 687 00:33:35,210 --> 00:33:38,170 >> DAVID J. Malan: Imma dak clip iblah minn - ma kien CSI, fejn huma kellhom 688 00:33:38,170 --> 00:33:39,970 numru li kienet kbira wisq għall-indirizz IP. 689 00:33:39,970 --> 00:33:42,940 690 00:33:42,940 --> 00:33:46,110 >> ROB BOWDEN: Kwalunkwe mistoqsijiet dwar dan? 691 00:33:46,110 --> 00:33:51,710 Il-wieħed li jmiss, bidla tant komplet fl suġġett, iżda aħna għandna dan array PHP għal 692 00:33:51,710 --> 00:33:53,270 l-djar fil-quad. 693 00:33:53,270 --> 00:33:56,360 U aħna għandna lista unordered. 694 00:33:56,360 --> 00:33:59,550 U rridu li jistampa kull oġġett lista biss li jkun fih l-isem house. 695 00:33:59,550 --> 00:34:09,090 696 00:34:09,090 --> 00:34:11,870 Allura aħna għandna loop foreach. 697 00:34:11,870 --> 00:34:17,540 Mela ftakar, s-sintassi hija foreach array bħala punt fl-array. 698 00:34:17,540 --> 00:34:22,360 Allura permezz ta 'kull iterazzjoni tal-linja, house se jieħu fuq waħda mill- 699 00:34:22,360 --> 00:34:24,060 Valuri ġewwa tal-firxa. 700 00:34:24,060 --> 00:34:26,530 >> Fuq l-ewwel iterazzjoni, house se jkun Cabot House. 701 00:34:26,530 --> 00:34:30,370 Fuq iterazzjoni tieni, house se jkun Courier House u l-bqija. 702 00:34:30,370 --> 00:34:34,370 Allura għal kull quad bħala house, aħna qed biss jmorru għall-istampar - 703 00:34:34,370 --> 00:34:37,250 inti ukoll setgħet ittennew - 704 00:34:37,250 --> 00:34:42,199 l-oġġett lista u mbagħad isem l-dar tal- u mbagħad agħlaq il-partita lista. 705 00:34:42,199 --> 00:34:45,210 Il-braces kaboċċi huma fakultattivi hawn. 706 00:34:45,210 --> 00:34:49,480 >> U allura aħna qal ukoll fil-kwistjoni innifsu, ftakar li tagħlaq il- 707 00:34:49,480 --> 00:34:50,770 tag lista unordered. 708 00:34:50,770 --> 00:34:53,949 Għalhekk għandna bżonn li ħruġ modalità PHP sabiex jagħmlu dan. 709 00:34:53,949 --> 00:35:00,280 Jew jista 'jkollna ittennew l- qrib lista tag unordered. 710 00:35:00,280 --> 00:35:02,380 >> DAVID J. Malan: Ukoll multa hawn kieku kienu jużaw iskola antika għal 711 00:35:02,380 --> 00:35:07,340 loop bi $ i = 0 0 u jużaw għadd sa insemmu l-tul tal-ray. 712 00:35:07,340 --> 00:35:09,240 Totally multa wisq, just a wordier ftit. 713 00:35:09,240 --> 00:35:12,170 714 00:35:12,170 --> 00:35:14,742 >> UDJENZA: Mela jekk inti kienu se [Inaudible], would you do - 715 00:35:14,742 --> 00:35:16,734 I tinsa dak l loop [inaudible] hija. 716 00:35:16,734 --> 00:35:21,380 Would you $ quad i bracket? 717 00:35:21,380 --> 00:35:21,850 >> DAVID J. Malan: Eżattament. 718 00:35:21,850 --> 00:35:23,100 Yeah, eżattament. 719 00:35:23,100 --> 00:35:26,650 720 00:35:26,650 --> 00:35:27,900 >> ROB BOWDEN: Xi ħaġa oħra? 721 00:35:27,900 --> 00:35:31,350 722 00:35:31,350 --> 00:35:32,010 >> DAVID J. Malan: Kull dritt. 723 00:35:32,010 --> 00:35:32,300 Kompromessi. 724 00:35:32,300 --> 00:35:38,290 Allura kien hemm għenieqed ta 'tweġibiet possibbli għal kull wieħed minn dawn. 725 00:35:38,290 --> 00:35:40,510 Konna verament tfittex biss għal xi ħaġa konvinċenti għal rasu u 726 00:35:40,510 --> 00:35:41,100 żvantaġġ. 727 00:35:41,100 --> 00:35:44,830 U n-numru 16 talab, validazzjoni utenti " input client-side, kif ma 'JavaScript, 728 00:35:44,830 --> 00:35:47,280 minflok server-ġenb, kif ma PHP. 729 00:35:47,280 --> 00:35:49,450 Allura x'hemm rasu ta ' tagħmel-naħa tal-klijent? 730 00:35:49,450 --> 00:35:53,780 >> Well, waħda mill-affarijiet aħna proposti huwa li inti tnaqqas latency, għaliex inti 731 00:35:53,780 --> 00:35:56,750 ma għandekx li jolqot tikkuntattja lill- server, li tista 'tieħu ftit 732 00:35:56,750 --> 00:36:00,390 millisekondi jew saħansitra ftit sekondi billi tevita dan u biss 733 00:36:00,390 --> 00:36:04,670 validazzjoni utenti input client-side minn tqajjem fuq jissottomettuh handler u 734 00:36:04,670 --> 00:36:06,650 biss verifika, ma dawn it-tip xi ħaġa għall-isem? 735 00:36:06,650 --> 00:36:08,080 Did xi ħaġa tip fl għal indirizz email? 736 00:36:08,080 --> 00:36:10,950 Ma huma jagħżlu dorm minn il-menu drop-down? 737 00:36:10,950 --> 00:36:14,360 >> Inti tista 'tagħtihom feedback istantanja tuża l-kompjuter gigahertz 738 00:36:14,360 --> 00:36:16,770 jew kwalunkwe ikollhom thats attwalment fuq desk tagħhom. 739 00:36:16,770 --> 00:36:19,310 Allura huwa biss aħjar għall-utent esperjenza tipikament. 740 00:36:19,310 --> 00:36:24,460 Iżda żvantaġġ jagħmlu client-side validazzjoni, jekk inti tagħmel dan mingħajr wkoll 741 00:36:24,460 --> 00:36:29,860 tagħmel validazzjoni server-side hija li xi ħadd aktar li joħorġu ta 'CS50 jaf 742 00:36:29,860 --> 00:36:33,980 li inti tista 'biss tibgħat kwalunkwe informazzjoni li inti tixtieq għal server kwalunkwe numru ta 'modi. 743 00:36:33,980 --> 00:36:37,030 Franchement, fil-maġġoranza f'kull browser, inti tista ' ikklikkja madwar fil-settings u biss 744 00:36:37,030 --> 00:36:40,110 itfi JavaScript, li, Għalhekk, jiskonnettja xi forma ta ' 745 00:36:40,110 --> 00:36:41,080 validazzjoni. 746 00:36:41,080 --> 00:36:44,460 >> Imma int wkoll tista 'recall li anke I għamilt xi affarijiet arcane fil-klassi bl-użu 747 00:36:44,460 --> 00:36:47,790 telnet u fil-fatt feint tkun browser billi tibgħat get 748 00:36:47,790 --> 00:36:49,240 talbiet għal server. 749 00:36:49,240 --> 00:36:51,030 U li ċertament mhux tuża kwalunkwe JavaScript. 750 00:36:51,030 --> 00:36:53,290 Li jinsab biss lili ittajpjar jikkmanda fil-keyboard. 751 00:36:53,290 --> 00:36:57,410 Allura verament, kull programmer fi biżżejjed kumdità mal-web u HTTP 752 00:36:57,410 --> 00:37:01,690 tista 'tibgħat kwalunkwe data hu jew hi trid għal server mingħajr validazzjoni. 753 00:37:01,690 --> 00:37:05,470 U jekk server tiegħek ma tkunx ukoll verifika, ma jagħtu me isem, huwa 754 00:37:05,470 --> 00:37:08,930 dan l-indirizz email attwalment validu, għamlet jagħżlu dorm, inti tista 'tispiċċa 755 00:37:08,930 --> 00:37:12,800 up ddaħħal fittizji jew biss data vojt fis database tiegħek, li probabbilment 756 00:37:12,800 --> 00:37:15,450 mhux se tkun ħaġa tajba jekk inti kienu qed jassumu li kien hemm. 757 00:37:15,450 --> 00:37:16,770 >> Allura dan huwa realtà annoying. 758 00:37:16,770 --> 00:37:19,890 Iżda b'mod ġenerali, client-side validazzjoni hija kbira. 759 00:37:19,890 --> 00:37:21,810 Iżda jfisser darbtejn ħafna xogħol. 760 00:37:21,810 --> 00:37:25,970 Għalkemm hemm jeżistu diversi libreriji, JavaScript libreriji għall- 761 00:37:25,970 --> 00:37:28,830 eżempju, li jagħmlu dan ħafna, ħafna inqas ta 'ras. 762 00:37:28,830 --> 00:37:31,940 U inti tista 'użu mill-ġdid xi wħud mill-kodiċi server-ġenb, client-side. 763 00:37:31,940 --> 00:37:35,980 Imma tirrealizza li huwa tipikament xogħol addizzjonali. 764 00:37:35,980 --> 00:37:36,415 Yeah. 765 00:37:36,415 --> 00:37:37,792 >> UDJENZA: Mela jekk aħna biss qal inqas sikura - 766 00:37:37,792 --> 00:37:39,205 >> DAVID J. Malan: [laughs] 767 00:37:39,205 --> 00:37:39,680 Ugh. 768 00:37:39,680 --> 00:37:43,105 Dawk huma dejjem l-aktar diffiċli dawk li tingħata deċiżjoni. 769 00:37:43,105 --> 00:37:44,480 >> ROB BOWDEN: Li kieku ġew aċċettati. 770 00:37:44,480 --> 00:37:44,810 >> DAVID J. Malan: What? 771 00:37:44,810 --> 00:37:45,810 >> ROB BOWDEN: I ħolqot din il-problema. 772 00:37:45,810 --> 00:37:46,735 Li ġew aċċettati. 773 00:37:46,735 --> 00:37:47,220 >> DAVID J. Malan: Yeah. 774 00:37:47,220 --> 00:37:47,830 >> UDJENZA: Kessaħ. 775 00:37:47,830 --> 00:37:51,770 >> ROB BOWDEN: Iżda aħna ma aċċettax għall-ewwel waħda - 776 00:37:51,770 --> 00:37:53,630 ukoll, dak li aħna kienu qed ifittxu huwa xi ħaġa bħal inti ma għandekx 777 00:37:53,630 --> 00:37:55,270 jikkomunikaw mal-server. 778 00:37:55,270 --> 00:37:58,355 Aħna ma jaċċettaw biss aktar malajr. 779 00:37:58,355 --> 00:38:00,080 >> UDJENZA: What about ma rikarigu-paġna? 780 00:38:00,080 --> 00:38:00,430 >> ROB BOWDEN: Iva. 781 00:38:00,430 --> 00:38:03,000 Dan kien risposta aċċettata. 782 00:38:03,000 --> 00:38:06,300 >> DAVID J. Malan: xejn fejn ħassejna kien aktar probabbli milli le probabbli 783 00:38:06,300 --> 00:38:09,780 li inti taf dak li inti kienu qal, li hija iebsa 784 00:38:09,780 --> 00:38:13,500 linja li tiġbed kultant. 785 00:38:13,500 --> 00:38:16,000 Tintuża lista marbut minflok ta 'firxa biex tinżamm 786 00:38:16,000 --> 00:38:17,590 magħżula lista tan-numri interi. 787 00:38:17,590 --> 00:38:21,000 Allura rasu aħna spiss jirreferu bl marbuta listi li mmotivaw kollu tagħhom 788 00:38:21,000 --> 00:38:22,370 introduzzjoni kienet ikollok dinamiżmu. 789 00:38:22,370 --> 00:38:23,030 Huma jistgħu jikbru. 790 00:38:23,030 --> 00:38:23,950 Huma jistgħu tiċkien. 791 00:38:23,950 --> 00:38:27,370 Allura inti ma għandekx biex tiżdied permezz ta 'ċrieki li attwalment joħolqu memorja aktar 792 00:38:27,370 --> 00:38:28,140 ma 'firxa. 793 00:38:28,140 --> 00:38:30,310 Jew inti ma għandekx biss jgħidu, sorry, l-utent. 794 00:38:30,310 --> 00:38:31,410 Il-firxa hija mimlija. 795 00:38:31,410 --> 00:38:35,850 Tkabbir sabiex dinamiku tal-lista. 796 00:38:35,850 --> 00:38:37,210 A negattivi għalkemm listi marbuta? 797 00:38:37,210 --> 00:38:40,916 798 00:38:40,916 --> 00:38:43,356 >> UDJENZA: Huwa lineari. 799 00:38:43,356 --> 00:38:45,800 Tiftix fuq il-lista marbuta hija lineari minflok ta 'dak li inti log pulzieri 800 00:38:45,800 --> 00:38:46,360 >> DAVID J. Malan: Eżattament. 801 00:38:46,360 --> 00:38:50,160 Tiftix fuq lista marbuta ma huwa lineari, anki jekk huwa magħżula, għaliex inti tista ' 802 00:38:50,160 --> 00:38:53,170 biss issegwi dawn frak tal-ħobż, dawn pointers, mill-bidu tal-lista 803 00:38:53,170 --> 00:38:53,570 sa l-aħħar. 804 00:38:53,570 --> 00:38:57,970 Inti ma tistax lieva aċċess bl-addoċċ u, B'hekk, it-tiftix binarju, anki jekk huwa 805 00:38:57,970 --> 00:39:00,740 magħżula, li inti tista ' tagħmel ma 'firxa. 806 00:39:00,740 --> 00:39:02,390 U hemm ukoll spejjeż oħra. 807 00:39:02,390 --> 00:39:02,966 Yeah. 808 00:39:02,966 --> 00:39:03,800 >> UDJENZA: Memorja ineffiċjenti? 809 00:39:03,800 --> 00:39:04,130 >> DAVID J. Malan: Yeah. 810 00:39:04,130 --> 00:39:06,940 Well, I mhux bilfors jgħidu ineffiċjenti. 811 00:39:06,940 --> 00:39:10,110 Iżda dan ma jiswik memorja aktar, għaliex ikollok bżonn 32 bits għal kull 812 00:39:10,110 --> 00:39:13,400 node għall-pointer addizzjonali, fi inqas għal lista marbuta weħidhom. 813 00:39:13,400 --> 00:39:16,660 Issa, jekk int biss ħażna interi u int żżid il-pointer, li 814 00:39:16,660 --> 00:39:17,830 fil-fatt tip ta 'non-trivjali. 815 00:39:17,830 --> 00:39:19,340 Huwa irduppjar tal-ammont tal-memorja. 816 00:39:19,340 --> 00:39:22,330 Iżda fir-realtà, jekk int jaħżen lista marbuta ta structs li jista 'jkollhom 817 00:39:22,330 --> 00:39:25,540 8 bytes, 16 bytes, saħansitra aktar minn dan, forsi huwa inqas 818 00:39:25,540 --> 00:39:26,500 ta 'spejjeż marġinali. 819 00:39:26,500 --> 00:39:28,320 Imma hija spiża xorta. 820 00:39:28,320 --> 00:39:31,880 Dan jew ta 'dawk stajt Kien multa bħala negattivi. 821 00:39:31,880 --> 00:39:32,110 >> 18. 822 00:39:32,110 --> 00:39:36,100 Bl-użu PHP minflok C li tikteb programm kmand tal-linja. 823 00:39:36,100 --> 00:39:41,890 So here, huwa spiss aktar malajr li jużaw lingwa bħal PHP jew Ruby jew Python. 824 00:39:41,890 --> 00:39:43,700 Inti biss malajr tiftaħ up editur test. 825 00:39:43,700 --> 00:39:45,900 Inti għandek bosta funzjonijiet aktar disponibbli lilek. 826 00:39:45,900 --> 00:39:49,325 PHP għandha l-sink tal-kċina tal-funzjonijiet, billi fis-C, inti 827 00:39:49,325 --> 00:39:50,420 jkollhom ħafna, ftit li xejn. 828 00:39:50,420 --> 00:39:53,820 Fil-fatt, guys l jafu l-mod iebes li inti ma għandekx tabelli hash. 829 00:39:53,820 --> 00:39:55,000 Inti ma rabtu listi. 830 00:39:55,000 --> 00:39:57,470 Jekk inti tixtieq dawn, inti għandek jimplimentawhom yourself. 831 00:39:57,470 --> 00:40:00,950 >> Allura rasu wieħed mill PHP jew verament xi lingwa interpretat hija l-ħeffa 832 00:40:00,950 --> 00:40:02,920 li magħhom inti tista 'jikteb il-kodiċi. 833 00:40:02,920 --> 00:40:06,660 Iżda żvantaġġ, rajna dan meta I malajr bit-tarjola up a misspeller 834 00:40:06,660 --> 00:40:11,780 implimentazzjoni fl lecture jużaw PHP, huwa li l-użu ta 'lingwa interpretat 835 00:40:11,780 --> 00:40:13,570 huwa normalment aktar kajman. 836 00:40:13,570 --> 00:40:18,420 U rajna li b'mod ċar ma ' żieda fil-ħin minn 0.3 sekondi għal 3 837 00:40:18,420 --> 00:40:24,440 sekondi, minħabba l-interpretazzjoni li attwalment jiġri. 838 00:40:24,440 --> 00:40:27,060 >> Rasu ieħor kien li inti ma għandekx biex jikkompilaw. 839 00:40:27,060 --> 00:40:30,130 Għalhekk wkoll tħaffef l-iżvilupp inċidentalment, għaliex inti ma għandekx 840 00:40:30,130 --> 00:40:31,360 żewġ passi lejn tmexxija ta 'programm. 841 00:40:31,360 --> 00:40:32,140 Inti biss għandek wieħed. 842 00:40:32,140 --> 00:40:35,260 U hekk dan huwa pretty konvinċenti kif ukoll. 843 00:40:35,260 --> 00:40:38,450 Permezz ta 'database SQL minflok fajl CSV li jaħżen data. 844 00:40:38,450 --> 00:40:40,230 Database hekk SQL huwa użat għall pset7. 845 00:40:40,230 --> 00:40:42,060 CSV fajls li inti ma jużawx ħafna. 846 00:40:42,060 --> 00:40:45,960 Imma inti użati indirettament pset7 bħala ukoll billi tkellem lill Yahoo Finanzi. 847 00:40:45,960 --> 00:40:49,330 >> Iżda CSV huwa bħad fajl Excel iżda super sempliċi, fejn il-kolonni huma 848 00:40:49,330 --> 00:40:54,010 biss demarked b'virgoli ġewwa ta 'fajl test mod ieħor. 849 00:40:54,010 --> 00:40:56,740 U l-użu ta 'database SQL hija ftit aktar konvinċenti. 850 00:40:56,740 --> 00:41:00,060 Huwa ta 'rasu, għaliex inti tikseb l-affarijiet bħall tagħżel u daħħal u ħassar. 851 00:41:00,060 --> 00:41:03,790 U ikollok, preżumibbilment, l-indiċi li MySQL u databases oħra, bħal 852 00:41:03,790 --> 00:41:07,510 Oracle, jibnu għalik fil-memorja, li ifisser tagħżel tiegħek probabbilment ma jkunx 853 00:41:07,510 --> 00:41:09,000 se tkun top lineari għal isfel. 854 00:41:09,000 --> 00:41:11,300 Huwa fil-fatt se tkun xi ħaġa bħal tfittxija binarju jew xi ħaġa 855 00:41:11,300 --> 00:41:12,520 simili fl-ispirtu. 856 00:41:12,520 --> 00:41:13,930 Allura dawn qed ġeneralment aktar malajr. 857 00:41:13,930 --> 00:41:16,040 >> Iżda tnaqqis hija li huwa biss aktar xogħol. 858 00:41:16,040 --> 00:41:16,730 Huwa aktar sforz. 859 00:41:16,730 --> 00:41:18,140 Għandek tifhem databases. 860 00:41:18,140 --> 00:41:18,940 Inti għandek li din tintrama. 861 00:41:18,940 --> 00:41:20,840 Ikollok bżonn ta 'server jiddekorri li database fuq. 862 00:41:20,840 --> 00:41:22,750 Inti jeħtieġ li jifhmu kif kkonfigurat. 863 00:41:22,750 --> 00:41:24,930 Allura dawn huma biss dawn tipi ta 'kompromessi. 864 00:41:24,930 --> 00:41:27,860 Billi fajl CSV, inti tista ' joħolqu dan ma gedit. 865 00:41:27,860 --> 00:41:28,770 U int tajba biex tmur. 866 00:41:28,770 --> 00:41:31,550 M'hemm l-ebda kumplessità lil hinn minnha. 867 00:41:31,550 --> 00:41:34,870 >> Permezz ta 'trie minflok ta' tabella hash ma 'chaining separat li jaħżen 868 00:41:34,870 --> 00:41:37,490 dizzjunarju ta 'kliem reminixxenti ta pset5. 869 00:41:37,490 --> 00:41:42,480 Allura jipprova rasu, fit-teorija għall-inqas, huwa dak? 870 00:41:42,480 --> 00:41:46,380 Ħin kostanti, għall-inqas jekk int hashing fuq kull wieħed mill-individwu 871 00:41:46,380 --> 00:41:48,990 ittri fil-kelma, bħalek jista 'jkollhom għall pset5. 872 00:41:48,990 --> 00:41:52,720 Li jista 'jkun ta' ħames hashes, sitt hashes jekk hemm ħames jew sitt 873 00:41:52,720 --> 00:41:53,900 ittri fil-kelma. 874 00:41:53,900 --> 00:41:54,580 U li pjuttost tajba. 875 00:41:54,580 --> 00:41:56,910 U jekk hemm xi rbit għoli dwar kif twil kliem tiegħek jista 'jkun, li l- 876 00:41:56,910 --> 00:41:59,320 żmien tassew asimptotikalment kostanti. 877 00:41:59,320 --> 00:42:05,180 >> Billi tabella hash ma separata ikkatenar, il-problema hemmhekk ma 'dak 878 00:42:05,180 --> 00:42:09,070 tip ta 'struttura data huwa li l- prestazzjoni ta 'algoritmi tiegħek normalment 879 00:42:09,070 --> 00:42:12,700 jiddependi min-numru ta 'affarijiet diġà fl-istruttura tad-data. 880 00:42:12,700 --> 00:42:15,660 U li definittivament il-każ ma ktajjen, fejn l-għalf aktar inti tpoġġi 881 00:42:15,660 --> 00:42:18,800 fis-tabella hash, l-itwal dawk ktajjen imorru, li jfisser fl-agħar 882 00:42:18,800 --> 00:42:21,960 każ, il-ħaġa inti tista 'tfittex għal huwa it-triq kollha fl-aħħar ta 'wieħed 883 00:42:21,960 --> 00:42:26,000 dawn in-netwerks, li effettivament jaqa 'fis xi ħaġa lineari. 884 00:42:26,000 --> 00:42:29,450 >> Issa, fil-prattika, jista assolutament jkun il-każ li tabella hash ma 885 00:42:29,450 --> 00:42:32,820 ktajjen hija aktar mgħaġġla minn korrispondenti implimentazzjoni trie. 886 00:42:32,820 --> 00:42:35,570 Iżda li għal diversi raġunijiet, fost li jipprova juża lott kollu ta ' 887 00:42:35,570 --> 00:42:39,240 memorja li jistgħu, fil-fatt, l-affarijiet bil-mod isfel, għaliex inti ma tieħux sbieħ 888 00:42:39,240 --> 00:42:42,410 benefiċċji ta 'xi ħaġa imsejħa caching, fejn l-affarijiet li huma qrib flimkien 889 00:42:42,410 --> 00:42:45,420 fil-memorja tista 'tkun aċċessata spiss aktar malajr. 890 00:42:45,420 --> 00:42:48,180 U xi kultant inti tista 'toħroġ bi funzjoni hash verament tajba. 891 00:42:48,180 --> 00:42:51,060 Anki jekk għandek l-iskart daqsxejn ta ' memorja, inti tista ', tabilħaqq, tkun tista' 892 00:42:51,060 --> 00:42:54,430 isibu affarijiet malajr u mhux ħażin kif linearment. 893 00:42:54,430 --> 00:42:58,410 >> Għalhekk fil-qosor, ma kienx hemm neċessarjament ma 'kwalunkwe minn dawn wieħed jew saħansitra tnejn 894 00:42:58,410 --> 00:43:00,050 affarijiet speċifiċi aħna kienu qed ifittxu. 895 00:43:00,050 --> 00:43:03,080 Really xejn konvinċenti bħala pożittivi u negattivi 896 00:43:03,080 --> 00:43:04,800 ġeneralment maqbuda għajn tagħna. 897 00:43:04,800 --> 00:43:11,840 >> ROB BOWDEN: Dan għall-rasu, għamilna ma jaċċettawx waħdu "aktar malajr." You 898 00:43:11,840 --> 00:43:14,540 kellhom jgħidu xi ħaġa dwar dan. 899 00:43:14,540 --> 00:43:17,910 Anke jekk inti qal teoretikament aktar mgħaġġla, aħna kien jaf li inti tip ta 'mifhuma 900 00:43:17,910 --> 00:43:19,470 li huwa 0 tar 1. 901 00:43:19,470 --> 00:43:22,820 U tabella hash, fit-teorija, mhuwiex 0 ta '1. 902 00:43:22,820 --> 00:43:26,550 Isemmi xejn dwar runtime ġeneralment ltqajna inti l-punti. 903 00:43:26,550 --> 00:43:32,640 Imma "aktar malajr," ħafna mill-soluzzjonijiet fuq il-bord kbir li jipprova kienu ġew 904 00:43:32,640 --> 00:43:34,990 oġġettivament aktar kajman minn soluzzjonijiet li kienu tabelli hash. 905 00:43:34,990 --> 00:43:37,250 Allura aktar mgħaġġel u fih innifsu mhuwiex verament veru. 906 00:43:37,250 --> 00:43:41,550 907 00:43:41,550 --> 00:43:44,380 >> DAVID J. Malan: Dom de dom dom. 908 00:43:44,380 --> 00:43:46,686 Jien probabbilment l-unika waħda li jirrealizza li kif li suppost 909 00:43:46,686 --> 00:43:47,500 jiġi ppronunzjat, right? 910 00:43:47,500 --> 00:43:50,400 >> ROB BOWDEN: I kellhom attwalment l-ebda idea. 911 00:43:50,400 --> 00:43:51,650 >> DAVID J. Malan: Huwa magħmul sens in my head. 912 00:43:51,650 --> 00:43:53,830 913 00:43:53,830 --> 00:43:57,580 >> ROB BOWDEN: jien tagħmel dan wieħed. 914 00:43:57,580 --> 00:43:58,020 OK. 915 00:43:58,020 --> 00:44:04,243 Allura dan huwa l-waħda fejn inti kellha tfassal -dijagramma simili inti tista ' 916 00:44:04,243 --> 00:44:06,040 raw fuq eżamijiet passat. 917 00:44:06,040 --> 00:44:12,200 Mela ejja biss ħarsa lejn dan. 918 00:44:12,200 --> 00:44:18,170 Allura mill-node HTML, għandna żewġ tfal, ir-ras u l-ġisem. 919 00:44:18,170 --> 00:44:20,570 Allura aħna fergħa - ras u l-ġisem. 920 00:44:20,570 --> 00:44:22,280 Il-kap għandu tag titolu. 921 00:44:22,280 --> 00:44:23,710 Allura aħna għandna titolu. 922 00:44:23,710 --> 00:44:28,450 >> Issa, l-unika ħaġa li ħafna nies nesa hija li dawn lymph test huma 923 00:44:28,450 --> 00:44:30,430 elementi fi ħdan din is-siġra. 924 00:44:30,430 --> 00:44:36,260 So here we jiġri li tiġbed minnhom bħala ovali li jiddistingwihom minn dawn 925 00:44:36,260 --> 00:44:37,380 tipi ta 'nodes. 926 00:44:37,380 --> 00:44:41,450 Imma avviż wkoll hawnhekk għandna top, tan-nofs, u fil-qiegħ se jispiċċaw 927 00:44:41,450 --> 00:44:42,560 lymph test. 928 00:44:42,560 --> 00:44:46,250 Allura jinsa dawk kien kemmxejn ta 'żball komuni. 929 00:44:46,250 --> 00:44:48,770 >> Il-korp għandu tlett itfal - dawn it-tliet divs. 930 00:44:48,770 --> 00:44:53,340 Allura div, div, div u mbagħad it-test tfal node ta 'dawk divs. 931 00:44:53,340 --> 00:44:55,900 Li pjuttost ħafna huwa għal dak il-mistoqsijiet. 932 00:44:55,900 --> 00:44:57,860 >> DAVID J. Malan: U huwa ta 'min jinnota, anke jekk aħna ma nitkellem fuq dawn 933 00:44:57,860 --> 00:45:01,040 dettalji fil-ħin aħna jonfqu fuq JavaScript, li l-ordni ma, fil- 934 00:45:01,040 --> 00:45:02,290 fatt, kwistjoni teknikament. 935 00:45:02,290 --> 00:45:06,330 Mela jekk head jasal quddiem korp fil- HTML, allura dan għandu jidher li l- 936 00:45:06,330 --> 00:45:08,860 xellug tal-ġisem fil-DOM attwali. 937 00:45:08,860 --> 00:45:12,265 Li tiegħu huwa, b'mod ġenerali, biss FYI, xi ħaġa imsejħa ordni dokument, fejn 938 00:45:12,265 --> 00:45:13,260 dan ma materja. 939 00:45:13,260 --> 00:45:17,470 U jekk inti kienu qed jimplimentaw parser, a program li taqra HTML fil-bini 940 00:45:17,470 --> 00:45:20,960 l-siġra fil-memorja, li tkun onest, dan huwa intuwittivament probabbilment dak li inti 941 00:45:20,960 --> 00:45:24,720 jagħmlu xorta waħda - fuq għal isfel, xellug għal-lemin. 942 00:45:24,720 --> 00:45:26,116 >> ROB BOWDEN: Mistoqsijiet dwar li? 943 00:45:26,116 --> 00:45:29,080 944 00:45:29,080 --> 00:45:30,000 Nagħmel dak li jmiss? 945 00:45:30,000 --> 00:45:32,380 >> DAVID J. Malan: Sure. 946 00:45:32,380 --> 00:45:33,810 >> ROB BOWDEN: OK. 947 00:45:33,810 --> 00:45:39,320 Allura dan huwa l-buffer qbiż kwistjoni attakk. 948 00:45:39,320 --> 00:45:43,740 Il-ħaġa prinċipali li jirrikonoxxu hawnhekk hija, ukoll, kif jista trick avversarju 949 00:45:43,740 --> 00:45:46,170 dan il-programm fis eżekuzzjoni kodiċi arbitrarja? 950 00:45:46,170 --> 00:45:51,860 Allura argv1, l-ewwel linja tal-kmand argument li dan il-programm, li jista 'jkun 951 00:45:51,860 --> 00:45:53,920 twil arbitrarju. 952 00:45:53,920 --> 00:45:59,160 Iżda hawnhekk aħna qed jużaw memcpy li kopja argv1, li hawnhekk huwa bar. 953 00:45:59,160 --> 00:46:00,165 Aħna qed tgħaddi bħala l-argument. 954 00:46:00,165 --> 00:46:02,050 U għalhekk huwa tieħu fuq l-isem bar. 955 00:46:02,050 --> 00:46:08,040 >> Allura aħna qed memcpying bar fis dan buffer c. 956 00:46:08,040 --> 00:46:09,400 Kemm bytes aħna ikkupjar? 957 00:46:09,400 --> 00:46:14,040 Well bytes bar iżda ħafna jiġri li tkun qed tuża, it-tul ta 'dan l-argument. 958 00:46:14,040 --> 00:46:17,930 Iżda c huwa biss 12 bytes wiesgħa. 959 00:46:17,930 --> 00:46:22,280 Allura jekk aħna tip ta 'argument linja tal-kmand dan huwa itwal minn 12 bytes, aħna qed 960 00:46:22,280 --> 00:46:25,470 se jfur dan partikolari buffer. 961 00:46:25,470 --> 00:46:31,000 Issa, kif jista 'avversarju trick l- programm fis eżekuzzjoni kodiċi arbitrarja? 962 00:46:31,000 --> 00:46:34,910 >> Mela ftakar li hawn prinċipali qed titlob foo. 963 00:46:34,910 --> 00:46:37,340 U hekk allura sejħiet ewlenin foo. 964 00:46:37,340 --> 00:46:40,408 Ejja tiġbed. 965 00:46:40,408 --> 00:46:44,720 966 00:46:44,720 --> 00:46:46,990 Allura aħna għandna munzell tagħna. 967 00:46:46,990 --> 00:46:49,090 U prinċipali għandha qafas stack fil-qiegħ. 968 00:46:49,090 --> 00:46:51,860 969 00:46:51,860 --> 00:46:53,250 F'xi punt, sejħiet ewlenin foo. 970 00:46:53,250 --> 00:46:55,390 Well, immedjatament, sejħiet ewlenin foo. 971 00:46:55,390 --> 00:46:57,130 U hekk foo gets frame munzell tagħha stess. 972 00:46:57,130 --> 00:46:59,650 973 00:46:59,650 --> 00:47:02,220 >> Issa, f'xi punt, foo se jirritorna. 974 00:47:02,220 --> 00:47:06,810 U marru prospetti foo, għandna bżonn inkunu nafu fuq liema linja tal-kodiċi ġewwa ta ewlenin li għandna 975 00:47:06,810 --> 00:47:10,610 kienu sabiex tkun taf fejn għandna jerġgħu jibdew fi prinċipali. 976 00:47:10,610 --> 00:47:13,100 Nistgħu sejħa foo minn kollu mazz ta 'postijiet differenti. 977 00:47:13,100 --> 00:47:14,620 Kif inkunu nafu fejn jirritornaw? 978 00:47:14,620 --> 00:47:16,460 Well, għandna bżonn li taħżen din x'imkien. 979 00:47:16,460 --> 00:47:23,010 >> Allura x'imkien dritt madwar hawn, aħna maħżen fejn aħna għandhom imorru lura għal darba 980 00:47:23,010 --> 00:47:24,070 prospetti foo. 981 00:47:24,070 --> 00:47:26,350 U dan huwa l-indirizz ta 'ritorn. 982 00:47:26,350 --> 00:47:30,490 Allura kif avversarju jista 'jieħu vantaġġ ta 'dan huwa l-fatt li 983 00:47:30,490 --> 00:47:37,550 dan buffer c jiġi maħżun, ejja jgħidu, dritt hawn huwa ċ. 984 00:47:37,550 --> 00:47:39,690 Allura konna ltqajna 12 bytes għal c. 985 00:47:39,690 --> 00:47:40,540 Dan huwa ċ. 986 00:47:40,540 --> 00:47:43,030 U dan huwa ċirku munzell foo tal. 987 00:47:43,030 --> 00:47:49,970 Mela jekk l-utent malizzjużi jidħol aktar bytes minn 12 jew jidħlu kmand 988 00:47:49,970 --> 00:47:54,570 argument linja li l-aktar minn 12 karattri, allura aħna qed tmur biex 989 00:47:54,570 --> 00:47:57,540 overflow dan buffer. 990 00:47:57,540 --> 00:47:59,910 >> Nistgħu jibqgħu għaddejjin. 991 00:47:59,910 --> 00:48:02,220 U f'xi punt, aħna tmur ferm biżżejjed li nibdew 992 00:48:02,220 --> 00:48:05,120 kitba fuq dan l-indirizz ta 'ritorn. 993 00:48:05,120 --> 00:48:08,310 Allura ladarba aħna jissostitwixxu l-indirizz ta 'ritorn, dan ifisser li meta foo 994 00:48:08,310 --> 00:48:14,220 prospetti, aħna qed jirritornaw lejn kull fejn il- utent malizzjużi huwa javżak li minn 995 00:48:14,220 --> 00:48:19,490 kwalunkwe valur daħal, b'kull karattru l-utent daħal. 996 00:48:19,490 --> 00:48:24,320 U għalhekk jekk l-utent malizzjużi qed partikolarment għaqlija, huwa jista 'jkollhom dan 997 00:48:24,320 --> 00:48:29,255 ritorn lejn x'imkien fil-printDef funzjoni jew x'imkien fil-malloc 998 00:48:29,255 --> 00:48:31,830 funzjoni, biss kullimkien arbitrarja. 999 00:48:31,830 --> 00:48:38,420 >> Iżda anke aktar għaqlija huwa dak jekk ikollu l-utent ritorn lejn dritt hawn. 1000 00:48:38,420 --> 00:48:41,920 U mbagħad tibda eżekuzzjoni dawn bħala linji ta 'kodiċi. 1001 00:48:41,920 --> 00:48:46,610 Allura f'dak il-punt, l-utent jista 'jidħol kull ma trid f'dan ir reġjun. 1002 00:48:46,610 --> 00:48:52,210 U hu għandu kontroll sħiħ il-programm tiegħek. 1003 00:48:52,210 --> 00:48:53,460 Mistoqsijiet dwar li? 1004 00:48:53,460 --> 00:48:56,380 1005 00:48:56,380 --> 00:49:00,970 Allura l-mistoqsija li jmiss hija kompluta l- implementazzjoni ġdida ta foo b'tali mod 1006 00:49:00,970 --> 00:49:02,620 li huwa m'għadux vulnerabbli. 1007 00:49:02,620 --> 00:49:03,870 >> Hekk hemm koppja ta 'modi li seta 'jsir dan. 1008 00:49:03,870 --> 00:49:10,900 1009 00:49:10,900 --> 00:49:13,330 Għad għandna c biss benesseri ta 'tul ta' 12. 1010 00:49:13,330 --> 00:49:16,480 Inti tista inbidlu dan bħala parti mill-soluzzjoni tiegħek. 1011 00:49:16,480 --> 00:49:18,930 Aħna wkoll miżjuda verifika biex tagħmel żgur bar ma kienx null. 1012 00:49:18,930 --> 00:49:24,460 Għalkemm inti ma bżonn li għal kreditu sħiħa. 1013 00:49:24,460 --> 00:49:27,690 Allura aħna qed iċċekkjar ewwel l- tul sensiela ta 'bar. 1014 00:49:27,690 --> 00:49:31,650 Jekk huwa akbar minn 12, imbagħad ma attwalment jagħmlu l-kopja. 1015 00:49:31,650 --> 00:49:33,010 Allura dak mod wieħed ta 'iffissar. 1016 00:49:33,010 --> 00:49:36,750 >> Mod ieħor ta 'iffissar huwa minflok jkollhom c jkunu biss ta tul ta '12, li huwa 1017 00:49:36,750 --> 00:49:39,310 jkun ta 'tul strlen (bar). 1018 00:49:39,310 --> 00:49:43,370 Mod ieħor ta 'iffissar huwa li attwalment biss ritorn. 1019 00:49:43,370 --> 00:49:46,690 Mela jekk kellek biss gotten rid ta 'kollha ta' dan, jekk kellek biss mħassra kollha 1020 00:49:46,690 --> 00:49:51,830 linji ta 'kodiċi, inti tkun gotten kreditu sħiħa, peress li din il-funzjoni 1021 00:49:51,830 --> 00:49:54,150 attwalment ma twettaq xejn. 1022 00:49:54,150 --> 00:49:57,650 Huwa ikkupjar kmand tal-linja argument fis xi array b'mod 1023 00:49:57,650 --> 00:49:59,960 frame munzell lokali tiegħu. 1024 00:49:59,960 --> 00:50:01,310 U allura l-ħaġa huwa jirritorna. 1025 00:50:01,310 --> 00:50:04,020 U tkun xi jitlestew hija marret. 1026 00:50:04,020 --> 00:50:09,740 Allura ritorn kien ukoll suffiċjenti mod ta 'jkollna kreditu sħiħa. 1027 00:50:09,740 --> 00:50:13,425 >> DAVID J. Malan: Mhux pjuttost l-ispirtu ta ' il-kwistjoni iżda aċċettabbli kull l- 1028 00:50:13,425 --> 00:50:15,580 spec xorta. 1029 00:50:15,580 --> 00:50:18,260 >> ROB BOWDEN: Mistoqsijiet dwar xi li? 1030 00:50:18,260 --> 00:50:22,270 L-unika ħaġa li għandek inqas meħtieġa li kompilazzjoni kodiċi. 1031 00:50:22,270 --> 00:50:24,810 Allura anke jekk teknikament m'intix vulnerabbli jekk il-kodiċi tiegħek ma 1032 00:50:24,810 --> 00:50:29,130 jikkumpilaw, aħna ma jaċċettaw li. 1033 00:50:29,130 --> 00:50:31,350 Ebda mistoqsijiet? 1034 00:50:31,350 --> 00:50:33,320 OK. 1035 00:50:33,320 --> 00:50:34,580 >> DAVID J. Malan: Tixtieq jiġifieri dan it-titolu? 1036 00:50:34,580 --> 00:50:37,230 >> ROB BOWDEN: Le 1037 00:50:37,230 --> 00:50:40,470 >> DAVID J. Malan: Allura f'dan il-wieħed, dan kien jew aħbar tajba jew aħbar ħażina. 1038 00:50:40,470 --> 00:50:43,870 Dan huwa litteralment l-istess problema bħala l-ewwel kwizz. 1039 00:50:43,870 --> 00:50:46,140 U huwa kważi l-istess problema pset1. 1040 00:50:46,140 --> 00:50:49,980 Iżda kien simplifikata apposta biex ikunu piramida sempliċi, wieħed li jista 'jkun 1041 00:50:49,980 --> 00:50:52,330 solvuti bi ftit iterazzjoni sempliċi. 1042 00:50:52,330 --> 00:50:55,680 U tassew, dak li konna jkollna fuq hawn ma kienx daqstant il-loġika, 1043 00:50:55,680 --> 00:50:58,100 għaliex probabbilment, minn dan il-punt, int aktar komdi milli suppost kienu 1044 00:50:58,100 --> 00:51:01,850 fil-ġimgħa ma 'għal loops jew għaliex loops, imma verament tease apparti li 1045 00:51:01,850 --> 00:51:04,790 int ftit komda mal- idea li PHP huwa mhux biss dwar dak 1046 00:51:04,790 --> 00:51:05,290 programmazzjoni. 1047 00:51:05,290 --> 00:51:07,820 Fil-fatt din tista 'tintuża bħala lingwa biex jiktbu programmi linja tal-kmand. 1048 00:51:07,820 --> 00:51:10,060 >> U fil-fatt, dan huwa dak li aħna kienu qegħdin jippruvaw niġbidlek l-attenzjoni għall. 1049 00:51:10,060 --> 00:51:12,060 Dan huwa programm PHP linja ta 'kmand. 1050 00:51:12,060 --> 00:51:16,690 So kodiċi C hawnhekk, filwaqt korretta fis-C, mhux korretta għall PHP. 1051 00:51:16,690 --> 00:51:17,940 Iżda l-kodiċi huwa verament l-istess. 1052 00:51:17,940 --> 00:51:21,720 Jekk tqabbel l-soluzzjonijiet għall Quiz 0 kontra Quiz 1, inti ser issib li 1053 00:51:21,720 --> 00:51:25,630 huwa kważi identiku, ħlief għall- xi sinjali dollaru u għall- 1054 00:51:25,630 --> 00:51:27,250 nuqqas ta 'tip data. 1055 00:51:27,250 --> 00:51:31,720 B'mod partikolari, jekk nieħdu ħarsa hawn, tkun taf tara li aħna jtenni, f'dan 1056 00:51:31,720 --> 00:51:33,730 każ, mill-1 sa permezz 7. 1057 00:51:33,730 --> 00:51:34,910 >> Aħna seta 'jsir indiċi 0. 1058 00:51:34,910 --> 00:51:37,320 Imma kultant, naħseb huwa biss mentalment aktar faċli li wieħed jaħseb dwar affarijiet 1059 00:51:37,320 --> 00:51:38,200 minn 1 sa 7. 1060 00:51:38,200 --> 00:51:40,300 Jekk inti tixtieq blokka waħda, imbagħad tnejn blokki, imbagħad tlieta, imbagħad 1061 00:51:40,300 --> 00:51:41,770 dot, dot, dot seba. 1062 00:51:41,770 --> 00:51:45,960 Aħna j jiġu initialized 1 u mbagħad isserraħ fuq sa i. 1063 00:51:45,960 --> 00:51:48,150 U kollox hawnhekk huwa inkella identiċi. 1064 00:51:48,150 --> 00:51:49,790 Iżda denja ta 'nota huma koppja ta 'affarijiet. 1065 00:51:49,790 --> 00:51:53,230 Aħna nagħtuk dawn iż-żewġ linji, dan l-ewwel waħda, goofily imsemmi bħala shebang 1066 00:51:53,230 --> 00:51:54,560 għall bang qawwija. 1067 00:51:54,560 --> 00:51:58,770 U li biss jispeċifika il-passaġġ, il- folder, li fiha programm jista 'jkun 1068 00:51:58,770 --> 00:52:02,160 sabet li inti tixtieq li tuża li tinterpreta dan il-fajl. 1069 00:52:02,160 --> 00:52:04,710 >> U allura l-linja wara li, ta ' naturalment, ifisser jidħol fil-modalità PHP. 1070 00:52:04,710 --> 00:52:07,740 U l-linja fil-qiegħ nett ifisser modalità PHP ħruġ. 1071 00:52:07,740 --> 00:52:09,740 U dan jaħdem, b'mod ġenerali, ma interpretat lingwi. 1072 00:52:09,740 --> 00:52:14,370 Huwa tip ta 'annoying jekk tikteb programm fajl imsejjaħ foo.php. 1073 00:52:14,370 --> 00:52:17,320 U mbagħad utenti tiegħek għandek biss ftakar, OK, biex imexxu dan il-programm, I 1074 00:52:17,320 --> 00:52:22,320 għandek tip "foo.php ispazju PHP." Kind ta 'annoying jekk xejn. 1075 00:52:22,320 --> 00:52:25,270 U wkoll tiżvela dak il-programm tiegħek huwa miktub fil-PHP, li mhux kollox 1076 00:52:25,270 --> 00:52:27,060 li jdawwal għall-utent. 1077 00:52:27,060 --> 00:52:30,100 >> Allura inti tista 'tneħħi l. PHP kollox recall minn lecture. 1078 00:52:30,100 --> 00:52:35,690 U inti tista 'attwalment jagħmlu. / Foo jekk inti stajt chmodded dan billi jagħmilha 1079 00:52:35,690 --> 00:52:36,500 eżekutibbli. 1080 00:52:36,500 --> 00:52:39,630 Allura chmod a + x foo kien jagħmel dan. 1081 00:52:39,630 --> 00:52:41,460 U jekk inti wkoll żżid il-shebang hawn. 1082 00:52:41,460 --> 00:52:45,320 Imma verament, il-problema ġiet jkollna fi stampar xi ħaġa bħal din. 1083 00:52:45,320 --> 00:52:51,100 Nru HTML, ebda C-kodiċi ċertament, biss ftit PHP. 1084 00:52:51,100 --> 00:52:54,100 Allura Milo mbagħad jintbagħat lura fil-problema 25. 1085 00:52:54,100 --> 00:52:58,050 U fl-25, inti ngħataw l-segwenti kodiċi iskeletru, li kien 1086 00:52:58,050 --> 00:52:59,730 paġna web pretty sempliċi. 1087 00:52:59,730 --> 00:53:04,230 U l-parti mmerraq HTML għaqli kien jistabbilixxi hawn, fejn għandna ġewwa tal-ġisem 1088 00:53:04,230 --> 00:53:09,160 forma li għandha ID unika ta 'inputs ġewwa li minnhom kien żewġ inputs, wieħed 1089 00:53:09,160 --> 00:53:11,950 bl-idea ta 'isem, wieħed bl-idea ta 'buttuna. 1090 00:53:11,950 --> 00:53:14,240 >> L-ewwel kien test tip, il- tieni ta 'tip jissottomettu. 1091 00:53:14,240 --> 00:53:16,930 U hekk aħna taw inti, attwalment, aktar ingredjenti milli għandek bżonn, biss hekk 1092 00:53:16,930 --> 00:53:19,230 inti guys kellhom għażliet li magħhom biex issolvi din il-problema. 1093 00:53:19,230 --> 00:53:21,130 Inti ma għandekx bżonn strettament kollha ta 'dawn IDs. 1094 00:53:21,130 --> 00:53:23,580 Iżda tippermetti li inti biex isolvu b'modi differenti. 1095 00:53:23,580 --> 00:53:27,050 U fil-quċċata, avviż li l-għan kien biex jiġu xprunati 1096 00:53:27,050 --> 00:53:27,960 tieqa bħal dan - 1097 00:53:27,960 --> 00:53:28,780 Hello, Milo! - 1098 00:53:28,780 --> 00:53:31,270 pop up fil-browser użu sempliċi super, jekk 1099 00:53:31,270 --> 00:53:33,190 mhux ikrah, funzjoni ta 'twissija. 1100 00:53:33,190 --> 00:53:37,480 U għalhekk, finalment, dan jeħodna kunċettwalment li b'xi mod jisimgħu għal 1101 00:53:37,480 --> 00:53:41,290 sottomissjonijiet tal-client-side forma , Mhux il-ġenb server, b'xi 1102 00:53:41,290 --> 00:53:45,640 jirrispondu għal dik is-sottomissjoni mill- ħtif-valur li l-utent ittajpjat 1103 00:53:45,640 --> 00:53:50,120 fil lill-qasam isem, u mbagħad wiri fil-ġisem ta 'twissija. 1104 00:53:50,120 --> 00:53:53,460 >> Allura mod wieħed li inti tista 'tagħmel dan huwa ma jQuery, li jistenna ftit 1105 00:53:53,460 --> 00:53:56,880 sintattikament mħawda fl-ewwel. 1106 00:53:56,880 --> 00:54:00,760 Tista 'tagħmel dan bil-kodiċi DOM pur - document.getelement minn ID. 1107 00:54:00,760 --> 00:54:02,530 Iżda ejja tagħti ħarsa lejn din il-verżjoni. 1108 00:54:02,530 --> 00:54:05,110 I jkollhom koppja ta 'importanti Linji ewwel. 1109 00:54:05,110 --> 00:54:09,460 Allura wieħed, aħna għandna din il-linja, li hija identiku għal dak li inti tista raw 1110 00:54:09,460 --> 00:54:13,830 fil, nemmen, form2.html mill-klassi fil-ġimgħa 9. 1111 00:54:13,830 --> 00:54:16,960 U dan huwa biss qal, jesegwixxu il-kodiċi li ġejjin meta 1112 00:54:16,960 --> 00:54:18,430 d-dokument huwa lest. 1113 00:54:18,430 --> 00:54:21,770 Din hija importanti biss minħabba Paġni HTML jinqraw fuq għal 1114 00:54:21,770 --> 00:54:23,280 qiegħ, xellug għal-lemin. 1115 00:54:23,280 --> 00:54:27,910 >> U għalhekk, jekk inti tipprova tagħmel xi ħaġa fil-kodiċi up hawn biex xi DOM 1116 00:54:27,910 --> 00:54:31,560 element, xi tag HTML, li jistabbilixxi hawn, int tagħmel wisq malajr, 1117 00:54:31,560 --> 00:54:34,220 minħabba li dan m'għandux lanqas ġie moqri fil-memorja. 1118 00:54:34,220 --> 00:54:37,740 Allura billi qal dan document.ready linja, aħna qed tgħid, 1119 00:54:37,740 --> 00:54:39,040 hawn xi kodiċi, browser. 1120 00:54:39,040 --> 00:54:42,440 Imma ma teżegwixxi dan sakemm il-sħiħ dokument huwa lest, li hija l-DOM 1121 00:54:42,440 --> 00:54:44,320 siġra teżisti fil-memorja. 1122 00:54:44,320 --> 00:54:47,110 Dan huwa wieħed ftit aktar sempliċi, jekk sintattikament a 1123 00:54:47,110 --> 00:54:51,890 daqsxejn differenti, fejn jien qal, grab l-element HTML li unika 1124 00:54:51,890 --> 00:54:53,560 identifikatur inputs. 1125 00:54:53,560 --> 00:54:56,220 Dak hu l-tikketta hash tindika, l-ID uniku. 1126 00:54:56,220 --> 00:54:58,070 U mbagħad jien sejħa. Jissottomettu. 1127 00:54:58,070 --> 00:55:01,660 >> So. Jissottomettu hawnhekk hija funzjoni, inkella magħrufa bħala metodu, li l- 1128 00:55:01,660 --> 00:55:05,850 ġewwa tal-oġġett fuq it-naħa tax-xellug naħa hemmhekk li I ma jenfasizzaw. 1129 00:55:05,850 --> 00:55:08,990 Mela jekk inti taħseb inputs bħala oġġett fil-memorja - u tabilħaqq huwa. 1130 00:55:08,990 --> 00:55:10,440 Huwa node fil-siġra - 1131 00:55:10,440 --> 00:55:16,580 . Jissottomettu mezzi meta din il-formola ma ' din ID tiġi sottomessa, jesegwixxu 1132 00:55:16,580 --> 00:55:17,700 il-kodiċi li ġej. 1133 00:55:17,700 --> 00:55:20,290 I ma kura dak l-isem tal- funzjoni huwa jien esekuzzjoni. 1134 00:55:20,290 --> 00:55:23,760 So here jien jużaw, bħal qabel, x'hemm imsejjaħ il-funzjoni lambda jew 1135 00:55:23,760 --> 00:55:24,720 funzjoni anonima. 1136 00:55:24,720 --> 00:55:27,640 Mhuwiex fil-livelli kollha intellettwalment interessanti oħra milli għandu l-ebda isem, 1137 00:55:27,640 --> 00:55:30,220 li huwa multa jekk int biss qatt ser sejħa darba. 1138 00:55:30,220 --> 00:55:34,490 U hemm ġewwa I attwalment jimmaniġġaw il-preżentazzjoni tal-formola. 1139 00:55:34,490 --> 00:55:36,810 I ewwel tiddikjara varjabbli imsejħa valur. 1140 00:55:36,810 --> 00:55:40,610 U allura dak huwa l-effett ta 'din enfasizzat porzjon hawn issa? 1141 00:55:40,610 --> 00:55:44,755 Dak li ma tagħmel fi livell għoli għalija? 1142 00:55:44,755 --> 00:55:48,539 >> UDJENZA: Jiġrilha l-valur li l- utent ma fil-HTML hawn taħt. 1143 00:55:48,539 --> 00:55:50,920 Jiġrilha li ID u mbagħad isib il-valur ta 'dan. 1144 00:55:50,920 --> 00:55:51,590 >> DAVID J. Malan: Eżattament. 1145 00:55:51,590 --> 00:55:54,300 Hija grabs l-node, li l unika identifikatur huwa l-isem. 1146 00:55:54,300 --> 00:55:56,900 Jiġrilha l-valur fihom, li huwa, preżumibbilment, dak l-utent 1147 00:55:56,900 --> 00:55:58,190 ittajpjat lilu jew lilha nfisha. 1148 00:55:58,190 --> 00:56:01,020 U allura huwa jaħżen li fil- varjabbli imsejħa valur. 1149 00:56:01,020 --> 00:56:03,720 Bħala twarrib, jista 'jkollok ukoll għamlu dan ftit differenti. 1150 00:56:03,720 --> 00:56:09,250 Totally aċċettabbli billi tagħmel xi ħaġa valur jinsabu var gets 1151 00:56:09,250 --> 00:56:10,500 document.getElementById. 1152 00:56:10,500 --> 00:56:12,860 1153 00:56:12,860 --> 00:56:15,460 U dan huwa għaliex huwa ftit tedious li ma jużawx jQuery. 1154 00:56:15,460 --> 00:56:16,710 "Name". Valur. 1155 00:56:16,710 --> 00:56:18,330 1156 00:56:18,330 --> 00:56:19,620 Allura totalment aċċettabbli. 1157 00:56:19,620 --> 00:56:22,770 Modi differenti biex jagħmlu dan. jQuery biss tendenza li jkunu ftit aktar konċiż u 1158 00:56:22,770 --> 00:56:25,230 definittivament aktar popolari fost programmaturi. 1159 00:56:25,230 --> 00:56:27,590 >> Issa, jien tagħmel daqsxejn ta 'sanità jivverifikaw, minħabba fil-problema 1160 00:56:27,590 --> 00:56:30,820 dikjarazzjoni aħna espliċitament qal, jekk il- utent għadu ma ittajpjat tiegħu jew tagħha 1161 00:56:30,820 --> 00:56:32,580 isem, ma jurux allerti. 1162 00:56:32,580 --> 00:56:35,390 Iżda tista 'tiċċekkja għal dan, bi ftit verifika għall-sekwenza vojta għal 1163 00:56:35,390 --> 00:56:37,850 quote-unquote jekk hemm xejn fil-fatt hemmhekk. 1164 00:56:37,850 --> 00:56:40,880 Imma jekk mhuwiex ugwali għal kwotazzjoni-unquote, I tixtieq li sejħa allerti. 1165 00:56:40,880 --> 00:56:45,610 U l-parti interessanti hawnhekk huwa li aħna qed jużaw l-operatur plus, li 1166 00:56:45,610 --> 00:56:48,130 ma dak fl JavaScript? 1167 00:56:48,130 --> 00:56:48,740 Concatenate. 1168 00:56:48,740 --> 00:56:50,690 Allura huwa simili PHPs operatur dot. 1169 00:56:50,690 --> 00:56:52,820 Istess idea, sintassi kemmxejn differenti. 1170 00:56:52,820 --> 00:56:55,280 U jien biss joħolqu l-sekwenza li inti raw fuq l-isparatura iskrin - 1171 00:56:55,280 --> 00:56:57,750 Hello, hekk u hekk. 1172 00:56:57,750 --> 00:56:59,200 >> U allura l-aħħar dettall huwa dan. 1173 00:56:59,200 --> 00:57:04,970 Why do I ritorn ġewwa falza ta 'din il-funzjoni anonimi? 1174 00:57:04,970 --> 00:57:07,420 >> UDJENZA: M'hemm l-ebda valur. 1175 00:57:07,420 --> 00:57:09,380 You poġġih fil-forma. 1176 00:57:09,380 --> 00:57:12,320 1177 00:57:12,320 --> 00:57:16,730 Huwa biss jgħid, jekk il-valur ma jkunx daqs blank, mbagħad jagħmluh. 1178 00:57:16,730 --> 00:57:20,040 1179 00:57:20,040 --> 00:57:20,940 Kien hemm vojt f'dak sottomissjoni. 1180 00:57:20,940 --> 00:57:21,170 >> DAVID J. Malan: OK. 1181 00:57:21,170 --> 00:57:21,640 Attenta għalkemm. 1182 00:57:21,640 --> 00:57:22,830 M'hemm l-ebda wieħed inkella hawn. 1183 00:57:22,830 --> 00:57:25,510 U li falza ritorn hija barra tal-jekk il-kondizzjonijiet. 1184 00:57:25,510 --> 00:57:29,470 Allura din il-linja enfasizzat, ritorn foloz, tesegwixxi x'ikun meta 1185 00:57:29,470 --> 00:57:32,310 il-formola tiġi sottomessa. 1186 00:57:32,310 --> 00:57:36,810 Dak ma jirritornaw ġewwa falza ta 'dan handler avveniment, kif huwa msejjaħ, 1187 00:57:36,810 --> 00:57:38,450 l-avveniment inkwistjoni jkunu sottomissjoni? 1188 00:57:38,450 --> 00:57:42,350 1189 00:57:42,350 --> 00:57:44,470 >> UDJENZA: Minħabba li jiġri darba biss. 1190 00:57:44,470 --> 00:57:45,320 >> DAVID J. Malan: Biss jiġri darba. 1191 00:57:45,320 --> 00:57:46,821 Mhux pjuttost. 1192 00:57:46,821 --> 00:57:47,292 Yeah? 1193 00:57:47,292 --> 00:57:50,589 >> UDJENZA: Dan jipprevjeni l-forma minn tippreżenta lill-imġieba default, 1194 00:57:50,589 --> 00:57:52,480 li jagħmlu l-rikarigu-paġna. 1195 00:57:52,480 --> 00:57:53,110 >> DAVID J. Malan: Eżattament. 1196 00:57:53,110 --> 00:57:56,490 Hekk jien tagħbija żejda-terminu jissottomettu hawn, għaliex jien qal, il-formola hija 1197 00:57:56,490 --> 00:57:57,670 jiġi sottomess. 1198 00:57:57,670 --> 00:58:02,240 Imma kif inti jissuġġerixxu, huwa attwalment mhux ġiet ippreżentata fil-mod HTTP veru. 1199 00:58:02,240 --> 00:58:06,870 Meta tikklikkja Submit, minħabba tagħna handler onSubmit, aħna qed jinterċetta 1200 00:58:06,870 --> 00:58:09,040 dik is-sottomissjoni formola biex ngħidu hekk. 1201 00:58:09,040 --> 00:58:11,290 Aħna qed mbagħad tagħmel ħaġa tagħna bil-kodiċi JavaScript. 1202 00:58:11,290 --> 00:58:14,070 Imma jien deliberatament jirritornaw falza, għaliex dak li ma rridx li jiġri 1203 00:58:14,070 --> 00:58:18,430 qasma tat-tieni wara huwa għall-forma kollu ruħha li jiġu sottomessi lill-web 1204 00:58:18,430 --> 00:58:22,800 server ma 'pari valur ewlenin billi jinbidlu il-URL li tkun xi ħaġa simili 1205 00:58:22,800 --> 00:58:26,180 Q = il-qtates jew kwalunkwe għamilna, per eżempju, fil-klassi. 1206 00:58:26,180 --> 00:58:29,640 Ma rridx li jiġri, għax m'hemm l-ebda smigħ server għal dan 1207 00:58:29,640 --> 00:58:30,690 formola ta 'sottomissjoni. 1208 00:58:30,690 --> 00:58:32,320 Huwa purament isir fil-kodiċi JavaScript. 1209 00:58:32,320 --> 00:58:35,760 U hu għalhekk li I lanqas ikollhom azzjoni attribut fuq formola tiegħi, minħabba I 1210 00:58:35,760 --> 00:58:38,870 ma intenzjoni biex dan qatt tmur għall-server. 1211 00:58:38,870 --> 00:58:40,780 >> Għalhekk huwa qed sottomessa. 1212 00:58:40,780 --> 00:58:44,340 Iżda aħna qed jinterċetta dik il-formola sottomissjoni u l-prevenzjoni tal-default 1213 00:58:44,340 --> 00:58:47,477 imġieba, li huwa li attwalment jmorru it-triq kollha għall-server. 1214 00:58:47,477 --> 00:58:48,730 >> UDJENZA: Allura jżommuha client-side. 1215 00:58:48,730 --> 00:58:49,780 >> DAVID J. Malan: Żamma -naħa tal-klijent dan. 1216 00:58:49,780 --> 00:58:51,030 Eżattament id-dritt. 1217 00:58:51,030 --> 00:58:53,240 1218 00:58:53,240 --> 00:58:55,757 Up li jmiss kien tiegħi oh MySQL. 1219 00:58:55,757 --> 00:59:00,000 1220 00:59:00,000 --> 00:59:00,430 >> ROB BOWDEN: OK. 1221 00:59:00,430 --> 00:59:04,990 Għalhekk din l-ewwel kwistjoni kienet ġeneralment rough għall-persuni. 1222 00:59:04,990 --> 00:59:07,270 Għalkemm dawk aktar tard marru aħjar. 1223 00:59:07,270 --> 00:59:12,260 Allura inti kellhom jagħżlu l-data korretta tipi kemm ta 'dawn il-kolonni. 1224 00:59:12,260 --> 00:59:17,750 U kemm ta 'dawn għandhom xi affarijiet dwar minnhom li 1225 00:59:17,750 --> 00:59:20,620 jagħmlu l-għażla diffiċli. 1226 00:59:20,620 --> 00:59:24,430 Allura int ma kinitx valida tip għal numru. 1227 00:59:24,430 --> 00:59:29,410 Ir-raġuni li kont 12-il ċifra numru, l-int mhuwiex kbir biżżejjed biex 1228 00:59:29,410 --> 00:59:31,070 taħżen numri totali. 1229 00:59:31,070 --> 00:59:36,570 Allura għażla valida kien ikun kbir int jekk jiġri li tkun taf li. 1230 00:59:36,570 --> 00:59:42,090 Ieħor għażla seta 'kien qasam char ta 'tul ta' 12. 1231 00:59:42,090 --> 00:59:44,560 Allura kieku ħadmu waħda minn dawk. 1232 00:59:44,560 --> 00:59:46,100 Int ma. 1233 00:59:46,100 --> 00:59:50,170 >> Issa, il-bilanċ, think lura għall pset7. 1234 00:59:50,170 --> 00:59:59,540 Allura aħna speċifikament użati ta 'informazzjoni biex jaħżnu l-valur tal-ishma jew - 1235 00:59:59,540 --> 01:00:00,550 >> DAVID J. Malan: Cash. 1236 01:00:00,550 --> 01:00:01,060 >> ROB BOWDEN: Cash. 1237 01:00:01,060 --> 01:00:05,710 Aħna użati ta 'informazzjoni biex jaħżnu l-ammont ta' flus kontanti li l-utent bħalissa għandha. 1238 01:00:05,710 --> 01:00:10,950 Allura r-raġuni nagħmlu dan huwa għaliex, ftakar, sufruni. 1239 01:00:10,950 --> 01:00:12,480 Hemm floating point fil-preċiżjoni. 1240 01:00:12,480 --> 01:00:18,200 Ma jistax jaħżen preċiżament l-flus Valuri bħal rridu hawn. 1241 01:00:18,200 --> 01:00:23,630 Allura informazzjoni hija kapaċi preċiżament maħżen xi ħaġa li, jgħidu, żewġ postijiet deċimali. 1242 01:00:23,630 --> 01:00:27,630 C'est pourquoi bilanċ, irridu li jkunu ta 'informazzjoni u mhux float. 1243 01:00:27,630 --> 01:00:30,230 >> DAVID J. Malan: U wkoll, wisq, għalkemm seta 'kien għaqlija f'pajjiżi oħra 1244 01:00:30,230 --> 01:00:32,760 kuntesti biex jaħsbu, forsi dan hija opportunità għal int. 1245 01:00:32,760 --> 01:00:34,420 I ser biss iżommu kont ta ' affarijiet fil pennies. 1246 01:00:34,420 --> 01:00:38,670 Għaliex aħna wera b'mod espliċitu l-default valur li jkunu 100.00, li 1247 01:00:38,670 --> 01:00:40,380 ifisser li tista 'biss tkun int. 1248 01:00:40,380 --> 01:00:45,310 U subtlety ieħor wisq bin-numru kienet li ma kienx maħsub 1249 01:00:45,310 --> 01:00:46,180 li tkun kwistjoni trick. 1250 01:00:46,180 --> 01:00:49,860 Iżda tfakkar li int fil MySQL, bħal fil-C, għall-inqas fil- 1251 01:00:49,860 --> 01:00:51,440 appliance, huwa 32-bit. 1252 01:00:51,440 --> 01:00:53,960 U anke jekk aħna ma jistennew li inti taf eżattament kemm ċifri li 1253 01:00:53,960 --> 01:00:56,910 mezzi, do tfakkar li l-akbar numru inti tista 'potenzjalment jirrappreżenta 1254 01:00:56,910 --> 01:01:00,710 ma 'numru 32-bit hija bejn wieħed u ieħor dak? 1255 01:01:00,710 --> 01:01:02,760 >> What numru nistgħu dejjem ngħid? 1256 01:01:02,760 --> 01:01:04,530 2 għall-32, li huwa dak li bejn wieħed u ieħor? 1257 01:01:04,530 --> 01:01:07,492 1258 01:01:07,492 --> 01:01:08,780 Inti ma għandekx tkun taf b'mod preċiż. 1259 01:01:08,780 --> 01:01:10,580 Imma bejn wieħed u ieħor huwa utli fil-ħajja. 1260 01:01:10,580 --> 01:01:12,200 Huwa madwar 4 biljuni. 1261 01:01:12,200 --> 01:01:14,430 Allura aħna ħadthom qal li għal xi ftit drabi. 1262 01:01:14,430 --> 01:01:16,360 I know I qal li għal xi ftit drabi. 1263 01:01:16,360 --> 01:01:17,670 U huwa madwar 4 biljuni. 1264 01:01:17,670 --> 01:01:19,710 U li l-istat tajjeb ta 'thumb tkun taf. 1265 01:01:19,710 --> 01:01:21,880 Jekk għandek 8 bits, 256 huwa n-numru magic. 1266 01:01:21,880 --> 01:01:24,160 Jekk għandek 32 bits, 4 biljun jagħtu jew jieħu. 1267 01:01:24,160 --> 01:01:27,140 Mela jekk inti biss ikteb 4 biljuni, tkun taf tara li huwa inqas ċifri minn 1268 01:01:27,140 --> 01:01:30,970 12, li jfisser li l-ċar ma biżżejjed expressiveness jaqbad 1269 01:01:30,970 --> 01:01:34,220 Numru tal-kont 12 figuri. 1270 01:01:34,220 --> 01:01:34,940 >> ROB BOWDEN: OK. 1271 01:01:34,940 --> 01:01:38,520 Allura l-oħrajn marru aħjar. 1272 01:01:38,520 --> 01:01:40,900 Allura jissoponi li l-bank timponi $ 20 kull xahar 1273 01:01:40,900 --> 01:01:42,400 ħlas ta 'manteniment fuq il-kontijiet kollha. 1274 01:01:42,400 --> 01:01:45,506 Ma 'dak SQL query tista' l-bank tnaqqas $ 20 min kull għadd, anke jekk 1275 01:01:45,506 --> 01:01:47,520 jirriżulta f'xi bilanċi negattivi? 1276 01:01:47,520 --> 01:01:50,380 Allura bażikament, hemm erba ' tipi ewlenin ta 'mistoqsijiet - 1277 01:01:50,380 --> 01:01:52,840 daħħal, tagħżel, jaġġornaw, u ħassar. 1278 01:01:52,840 --> 01:01:56,080 Allura dak li aħna naħsbu li aħna qed ser tuża hawn? 1279 01:01:56,080 --> 01:01:57,000 Aġġornament. 1280 01:01:57,000 --> 01:01:58,260 >> Mela ejja tagħti ħarsa. 1281 01:01:58,260 --> 01:02:04,290 1282 01:02:04,290 --> 01:02:05,870 So here we qed aġġornament. 1283 01:02:05,870 --> 01:02:09,900 Dak tabella huma we aġġornament kontijiet? 1284 01:02:09,900 --> 01:02:11,670 Allura aġġornament kontijiet. 1285 01:02:11,670 --> 01:02:15,390 U allura l-sintassi jgħid, liema fil-kontijiet aħna aġġornament? 1286 01:02:15,390 --> 01:02:19,520 Well, aħna qed jistabbilixxu bilanċ ugwali għad- valur kurrenti ta 'bilanċ minus 20. 1287 01:02:19,520 --> 01:02:22,860 Allura dan se taġġorna ringieli kollha tal-kontijiet, jitnaqqas 1288 01:02:22,860 --> 01:02:26,250 $ 20 min-bilanċ. 1289 01:02:26,250 --> 01:02:29,260 >> DAVID J. Malan: A żball komuni hawn, anke jekk aħna kultant ħaffru dan, 1290 01:02:29,260 --> 01:02:32,990 kien li attwalment ikollhom kodiċi PHP hawn ssejjaħ il-funzjoni query jew it-tqegħid 1291 01:02:32,990 --> 01:02:35,460 kwotazzjonijiet madwar dak kollu li ma kellhomx bżonn li jkun hemm. 1292 01:02:35,460 --> 01:02:39,780 >> ROB BOWDEN: Ftakar li MySQL hija lingwa separat mill PHP. 1293 01:02:39,780 --> 01:02:42,410 Aħna jiġri li jkun miktub MySQL fil-PHP. 1294 01:02:42,410 --> 01:02:46,180 U PHP huwa mbagħad jibagħtuha trasferiti għas-server MySQL. 1295 01:02:46,180 --> 01:02:51,120 Imma inti m'għandekx bżonn PHP sabiex jikkomunikaw ma 'server MySQL. 1296 01:02:51,120 --> 01:02:51,730 >> DAVID J. Malan: Eżattament. 1297 01:02:51,730 --> 01:02:54,240 Allura l-ebda varjabbli b'sinjali dollaru għandu jkun f'dan il-kuntest. 1298 01:02:54,240 --> 01:02:59,550 Hija tista 'biss tagħmel kollha ta' l-matematika fid-database innifsu. 1299 01:02:59,550 --> 01:03:00,080 >> ROB BOWDEN: OK. 1300 01:03:00,080 --> 01:03:01,300 Allura dak li jmiss. 1301 01:03:01,300 --> 01:03:02,731 Huwa dan dak li jmiss? 1302 01:03:02,731 --> 01:03:03,210 Yeah. 1303 01:03:03,210 --> 01:03:06,570 Allura ma 'dak SQL query tista' l-bank irkuprata l-numri tal-kont ta taghha 1304 01:03:06,570 --> 01:03:09,300 klijenti sinjuri, dawk bi bilanċi akbar minn 1,000? 1305 01:03:09,300 --> 01:03:13,280 Allura liema mill-erba 'tipi ewlenin aħna se tixtieq hawnhekk? 1306 01:03:13,280 --> 01:03:14,430 Agħżel. 1307 01:03:14,430 --> 01:03:16,650 Hekk irridu li tagħżel. 1308 01:03:16,650 --> 01:03:17,610 What do we trid tagħżel? 1309 01:03:17,610 --> 01:03:19,380 What kolonna irridu li tagħżel? 1310 01:03:19,380 --> 01:03:20,970 Aħna se tkun trid speċifikament li tagħżel numru. 1311 01:03:20,970 --> 01:03:23,910 Imma jekk inti qal star, aħna wkoll ammess. 1312 01:03:23,910 --> 01:03:25,820 >> Allura tagħżel numru minn dak tabella? 1313 01:03:25,820 --> 01:03:26,640 Kontijiet. 1314 01:03:26,640 --> 01:03:28,370 U allura l-kundizzjoni li rridu? 1315 01:03:28,370 --> 01:03:30,140 Fejn bilanċ akbar minn 1,000. 1316 01:03:30,140 --> 01:03:31,720 Aħna wkoll aċċettata akbar minn jew ugwali. 1317 01:03:31,720 --> 01:03:35,230 1318 01:03:35,230 --> 01:03:36,190 Aħħar wieħed. 1319 01:03:36,190 --> 01:03:42,940 Ma 'dak SQL query tista' l-bank qrib, jiġifieri, iħassru kull kont li 1320 01:03:42,940 --> 01:03:44,480 għandha bilanċ ta '$ 0? 1321 01:03:44,480 --> 01:03:47,620 Allura liema mill-erba aħna tmur jridu jużaw? 1322 01:03:47,620 --> 01:03:48,320 Ħassar. 1323 01:03:48,320 --> 01:03:50,180 Allura l-sintassi għal dan? 1324 01:03:50,180 --> 01:03:51,890 Ħassar minn dak tabella? 1325 01:03:51,890 --> 01:03:53,550 Kontijiet. 1326 01:03:53,550 --> 01:03:55,790 U allura l-kondizzjoni li fuqha irridu li jħassru - 1327 01:03:55,790 --> 01:03:57,280 fejn bilanċ ugwali żero. 1328 01:03:57,280 --> 01:04:03,050 Allura tħassar ringieli kollha mill-kontijiet meta l-bilanċ huwa żero. 1329 01:04:03,050 --> 01:04:04,300 Mistoqsijiet dwar xi waħda minn dawn? 1330 01:04:04,300 --> 01:04:08,840 1331 01:04:08,840 --> 01:04:10,260 Trid kju? 1332 01:04:10,260 --> 01:04:11,200 >> DAVID J. Malan: gwida kju. 1333 01:04:11,200 --> 01:04:17,110 Allura f'dan il-wieħed, aħna ħadt kemmxejn struttura familjari li aħna esplorati 1334 01:04:17,110 --> 01:04:20,450 daqsxejn fil-klassi flimkien ta structs, li kienet data 1335 01:04:20,450 --> 01:04:21,910 struttura relatata fl-ispirtu. 1336 01:04:21,910 --> 01:04:24,670 Id-differenza għalkemm kju hija li kellna li b'xi mod tiftakar li 1337 01:04:24,670 --> 01:04:27,900 kien fuq quddiem tal-kju, fil-kbar parti b'tali mod li nistgħu nagħmlu aktar 1338 01:04:27,900 --> 01:04:30,530 użu effiċjenti tal-memorja, mill-inqas jekk aħna kienu qed jużaw firxa. 1339 01:04:30,530 --> 01:04:35,460 >> Minħabba recall, jekk ikollna firxa, jekk, per eżempju, dan huwa l-quddiem ta ' 1340 01:04:35,460 --> 01:04:38,470 -kju, jekk I tikseb fis-kju hawn, u mbagħad xi ħadd gets fil-linja 1341 01:04:38,470 --> 01:04:42,710 lura lili, wara me, lura lili, u persuna waħda passi barra tal-linja, inti 1342 01:04:42,710 --> 01:04:45,930 tista ', kif rajna xi wħud mill-bniedem tagħna voluntiera fil-klassi, ikollhom kulħadd 1343 01:04:45,930 --> 01:04:47,100 shift b'dan il-mod. 1344 01:04:47,100 --> 01:04:50,880 Iżda b'mod ġenerali, li jagħmlu kulħadd xi ħaġa mhux l-aħjar użu tal-ħin 1345 01:04:50,880 --> 01:04:54,600 fi programm, għaliex dan ikun ifisser tiegħek algoriżmu jkun qed jaħdem f'dak li 1346 01:04:54,600 --> 01:04:56,520 running time asintotiku? 1347 01:04:56,520 --> 01:04:57,420 Huwa lineari. 1348 01:04:57,420 --> 01:04:59,600 >> U inħoss bħal dan huwa tip ta 'stupid. 1349 01:04:59,600 --> 01:05:02,890 Jekk il-persuna li jmiss fil-linja huwa li jmiss persuna li suppost li jmorru fil- 1350 01:05:02,890 --> 01:05:04,660 maħżen, dawn mhux kollha għandhom li jiċċaqalqu flimkien. 1351 01:05:04,660 --> 01:05:08,200 Just let tali persuna tiġi mnittfa off meta jasal iż-żmien, per eżempju. 1352 01:05:08,200 --> 01:05:09,870 Allura aħna tista 'tiffranka ftit ta' żmien hemmhekk. 1353 01:05:09,870 --> 01:05:14,840 U hekk li tagħmel dan għalkemm, li l-mezzi li l-kap tal-kju jew il- 1354 01:05:14,840 --> 01:05:18,060 quddiem tal-kju se timxi progressivament aktar profonda u aktar profonda 1355 01:05:18,060 --> 01:05:23,340 fil-firxa u eventwalment tista ' attwalment perimetrika jekk aħna qed jużaw 1356 01:05:23,340 --> 01:05:25,790 array biex jaħżnu l-poplu f'dan kju. 1357 01:05:25,790 --> 01:05:28,390 Allura inti tista 'kważi think tal- array bħala data ċirkolari 1358 01:05:28,390 --> 01:05:29,880 istruttura f'dan is-sens. 1359 01:05:29,880 --> 01:05:33,970 >> Allura inti b'xi għandhom iżommu rekord ta 'l- daqs ta 'dan jew verament l-aħħar ta' dan 1360 01:05:33,970 --> 01:05:36,250 u mbagħad meta l-bidu ta 'dan huwa. 1361 01:05:36,250 --> 01:05:39,490 Allura aħna nipproponu li inti tiddikjara kju waħda tali, li ssejjaħ 1362 01:05:39,490 --> 01:05:41,330 it q, biss ittra waħda. 1363 01:05:41,330 --> 01:05:44,570 Imbagħad aħna nipproponu li l-front jkun initialized għal żero u li d-daqs 1364 01:05:44,570 --> 01:05:45,470 jiġu initialized għal żero. 1365 01:05:45,470 --> 01:05:47,770 >> Allura issa dritt, m'hemm xejn ġewwa ta 'dak kju. 1366 01:05:47,770 --> 01:05:50,910 U aħna nitolbuk biex jitlesta l- implimentazzjoni ta 'enqueue hawn taħt fil 1367 01:05:50,910 --> 01:05:55,250 b'tali mod li l-funzjoni żżid n biex l-aħħar ta 'q u mbagħad jirritornaha vera. 1368 01:05:55,250 --> 01:05:58,690 Imma jekk q hija sħiħa jew negattiva, il- funzjoni għandha minflok jirritornaw falza. 1369 01:05:58,690 --> 01:06:01,060 U aħna ħadt koppja ta 'suppożizzjonijiet. 1370 01:06:01,060 --> 01:06:04,320 Iżda dawn mhux qed verament funzjonalment rilevanti, biss li bool jeżisti, 1371 01:06:04,320 --> 01:06:06,690 għaliex, teknikament, bool ma jeżistu C sakemm inti jinkludu 1372 01:06:06,690 --> 01:06:07,310 ċerti fajl header. 1373 01:06:07,310 --> 01:06:09,350 Allura li kien biss tagħmel ċert li jkun hemm kinux dan huwa trick 1374 01:06:09,350 --> 01:06:10,940 kwistjoni tip ta 'ħaġa. 1375 01:06:10,940 --> 01:06:16,280 >> Allura enqueue, aħna propost fil-kampjun soluzzjonijiet biex jimplimentaw kif ġej. 1376 01:06:16,280 --> 01:06:20,420 Waħda, aħna l-ewwel jivverifika l-faċilità, l-frott jiddendlu baxx. 1377 01:06:20,420 --> 01:06:23,820 Jekk il-kju hija sħiħa jew in-numru li int tipprova li daħħal hija anqas 1378 01:06:23,820 --> 01:06:26,380 minn żero, li għidna fil- ispeċifikazzjoni tal-problema għandha 1379 01:06:26,380 --> 01:06:30,320 ma jitħalliex, għaliex aħna biss trid Valuri mhux negattivi, imbagħad inti għandek 1380 01:06:30,320 --> 01:06:31,640 biss ritorn foloz immedjatament. 1381 01:06:31,640 --> 01:06:33,820 Allura xi relattivament faċli verifika żball. 1382 01:06:33,820 --> 01:06:38,720 Jekk għalkemm inti tixtieq iżżid li attwali numru, inti kellha tagħmel daqsxejn ta ' 1383 01:06:38,720 --> 01:06:39,440 ħsieb hawnhekk. 1384 01:06:39,440 --> 01:06:41,330 U dan huwa fejn huwa ftit annoying mentalment, peress li inti għandek 1385 01:06:41,330 --> 01:06:43,000 figura kif jimmaniġġjaw trembil. 1386 01:06:43,000 --> 01:06:46,870 >> Iżda l-raħs tal-idea hawnhekk li l-ta interess lilna huwa li trembil 1387 01:06:46,870 --> 01:06:51,480 spiss jimplika aritmetika modulari u l-operatur mod, il-ġenb fil-mija, 1388 01:06:51,480 --> 01:06:55,140 fejn inti tista 'tmur minn valur ikbar lura għal żero u mbagħad wieħed u tnejn u 1389 01:06:55,140 --> 01:06:58,650 tlieta u mbagħad lura madwar għal żero, wieħed u tnejn u tlieta u oħrajn 1390 01:06:58,650 --> 01:06:59,380 ġdid u għal darb'oħra. 1391 01:06:59,380 --> 01:07:02,880 Allura l-mod kif qed nipproponu isir dan huwa li rridu nagħmlu għall-indiċi fil- 1392 01:07:02,880 --> 01:07:05,850 array ċemplu numri fejn interi tagħna jinsabu. 1393 01:07:05,850 --> 01:07:10,740 Iżda biex naslu s'hemm, aħna l-ewwel trid tagħmel x'ikun id-daqs tal-kju, iżda huwa 1394 01:07:10,740 --> 01:07:14,080 imbagħad żid li tkun xi tkun l- quddiem il-lista hija. 1395 01:07:14,080 --> 01:07:17,880 U l-effett ta 'dan huwa li tpoġġi us fi il-pożizzjoni dritt fil-kju u 1396 01:07:17,880 --> 01:07:20,970 Ma jassumu li l-ewwel persuna fil-linja huwa fil-bidu, li hu jew 1397 01:07:20,970 --> 01:07:24,130 hi assolutament tista 'tkun jekk aħna kienu ċaqliq wkoll kulħadd. 1398 01:07:24,130 --> 01:07:26,710 Iżda aħna qed biss ħolqien tax-xogħol għalina jekk aħna ħa 1399 01:07:26,710 --> 01:07:27,800 dik it-triq partikolari. 1400 01:07:27,800 --> 01:07:29,330 >> Allura nistgħu jżommha relattivament sempliċi. 1401 01:07:29,330 --> 01:07:32,180 We do niftakru li aħna biss żiedet int mal-kju. 1402 01:07:32,180 --> 01:07:35,850 U allura aħna biss jirritornaw veru. 1403 01:07:35,850 --> 01:07:38,560 Sadanittant, fl dequeue, staqsejna inti tagħmel dan li ġej. 1404 01:07:38,560 --> 01:07:42,260 Jimplimentawha b'tali mod li dequeues, li hija tneħħi u prospetti, 1405 01:07:42,260 --> 01:07:44,190 l-int fuq quddiem tal-kju. 1406 01:07:44,190 --> 01:07:46,410 Biex tneħħi l-int, huwa biżżejjed biex tinsa dan. 1407 01:07:46,410 --> 01:07:47,650 Inti ma għandekx bżonn li jiskarta daqsxejn tagħha. 1408 01:07:47,650 --> 01:07:48,820 Allura huwa għadu attwalment hemm. 1409 01:07:48,820 --> 01:07:51,930 Eżatt bħal data dwar hard drive, aħna qed biss jinjora l-fatt 1410 01:07:51,930 --> 01:07:52,970 li huwa issa hemmhekk. 1411 01:07:52,970 --> 01:07:55,520 U jekk q hija vojta, għandna minflok jirritornaw negattiv 1. 1412 01:07:55,520 --> 01:07:56,750 Allura dan iħoss arbitrarja. 1413 01:07:56,750 --> 01:08:01,640 Għaliex ritorn negattiv 1 minflok falza? 1414 01:08:01,640 --> 01:08:02,620 Yeah. 1415 01:08:02,620 --> 01:08:05,070 >> UDJENZA: Q hija l-ħażna valuri pożittivi. 1416 01:08:05,070 --> 01:08:10,950 Peress li inti biss żżomm il-valuri pożittivi fil-q, negattiv huwa żball. 1417 01:08:10,950 --> 01:08:11,510 >> DAVID J. Malan: OK, veru. 1418 01:08:11,510 --> 01:08:14,850 Allura għaliex aħna qed biss ħażna pożittiv valuri jew żero, allura huwa multa li 1419 01:08:14,850 --> 01:08:18,050 ritorn valur negattiv bħala sentinella valur, simbolu speċjali. 1420 01:08:18,050 --> 01:08:21,630 Imma int riskrittura istorja hemmhekk, minħabba r-raġuni aħna qed biss 1421 01:08:21,630 --> 01:08:25,890 jirritornaw valuri negattivi mhux huwa għaliex irridu li 1422 01:08:25,890 --> 01:08:27,670 għandhom valur sentinella. 1423 01:08:27,670 --> 01:08:32,617 Allura aktar speċifiku, għaliex mhux biss ritorn foloz f'każijiet ta 'żbalji? 1424 01:08:32,617 --> 01:08:33,099 Yeah. 1425 01:08:33,099 --> 01:08:35,510 >> UDJENZA: You ħadthom fallew li jirritorna numru sħiħ. 1426 01:08:35,510 --> 01:08:36,630 >> DAVID J. Malan: Eżattament. 1427 01:08:36,630 --> 01:08:38,569 U dan huwa fejn C gets jillimita pretty. 1428 01:08:38,569 --> 01:08:40,590 Jekk inti qed tgħid int ser li jirritorna l int, inti stajt ltqajna 1429 01:08:40,590 --> 01:08:41,279 li jirritorna l int. 1430 01:08:41,279 --> 01:08:43,689 Inti ma tistax tikseb fancy u jibdew jirritornaw a bool jew float jew 1431 01:08:43,689 --> 01:08:45,040 string jew xi ħaġa bħal dik. 1432 01:08:45,040 --> 01:08:49,370 Issa, sadanittant, JavaScript u PHP u xi lingwi oħra jista ', fil-fatt, 1433 01:08:49,370 --> 01:08:51,310 usted jirritornaw differenti tipi ta 'valuri. 1434 01:08:51,310 --> 01:08:54,819 U li jista 'effettivament tkun utli, fejn inti tista 'ritorn ints pożittivi, żerijiet, 1435 01:08:54,819 --> 01:08:59,439 ints negattivi, jew falz jew null anki li turi żball. 1436 01:08:59,439 --> 01:09:01,890 Iżda aħna ma jkollhomx dak versatilità C. 1437 01:09:01,890 --> 01:09:04,569 >> Allura ma dequeue, dak li aħna tipproponi li tagħmel huwa - 1438 01:09:04,569 --> 01:09:07,350 1439 01:09:07,350 --> 01:09:09,830 >> ROB BOWDEN: Inti tista 'ritorn foloz. 1440 01:09:09,830 --> 01:09:13,189 Huwa biss li foloz hija hash jiddefinixxu falza għal żero. 1441 01:09:13,189 --> 01:09:16,000 Mela jekk inti tirritorna falza, int jirritornaw żero. 1442 01:09:16,000 --> 01:09:25,470 U żero hija ħaġa valida fil-kju tagħna, billi negattiva 1 mhix jekk 1443 01:09:25,470 --> 01:09:27,000 falza li jkun ġara negattiv 1. 1444 01:09:27,000 --> 01:09:29,972 Imma inti m'għandekx anki bżonn tkun taf li. 1445 01:09:29,972 --> 01:09:32,399 >> DAVID J. Malan: C'est għaliex I ma jgħidu li din. 1446 01:09:32,399 --> 01:09:36,450 >> ROB BOWDEN: Iżda dan ma kienx veru li inti ma jistgħux jirritornaw falza. 1447 01:09:36,450 --> 01:09:37,700 >> DAVID J. Malan: Sure. 1448 01:09:37,700 --> 01:09:40,920 1449 01:09:40,920 --> 01:09:44,240 Allura dequeue, avviż naċċettaw null bħala argument tagħha. 1450 01:09:44,240 --> 01:09:45,479 U dan għaliex aħna mhux qed tgħaddi xejn pulzieri 1451 01:09:45,479 --> 01:09:48,359 Aħna biss tixtieq li tneħħi l-element fuq quddiem tal-kju. 1452 01:09:48,359 --> 01:09:49,819 Allura kif tista we go dwar kif isir dan? 1453 01:09:49,819 --> 01:09:51,290 Ukoll, l-ewwel, ejja tagħmel dan check sanità malajr. 1454 01:09:51,290 --> 01:09:53,350 Jekk id-daqs kju hija 0, hemm ebda xogħol li għandu jsir. 1455 01:09:53,350 --> 01:09:54,210 Ritorn negattiv 1. 1456 01:09:54,210 --> 01:09:54,800 Magħmul. 1457 01:09:54,800 --> 01:09:56,340 Allura dak ftit linji tal-programm tiegħi. 1458 01:09:56,340 --> 01:09:58,180 Allura biss erba 'linji jibqgħu. 1459 01:09:58,180 --> 01:10:01,310 >> So here I tiddeċiedi li decrement id-daqs. 1460 01:10:01,310 --> 01:10:04,620 U decrementing-daqs effettiv ifisser li jien jinsa 1461 01:10:04,620 --> 01:10:06,010 xi ħaġa fil hemm. 1462 01:10:06,010 --> 01:10:09,910 I iżda wkoll ikollhom jaġġornaw fejn quddiem tal-numri huma. 1463 01:10:09,910 --> 01:10:11,620 Allura biex tagħmel dan, għandi bżonn li tagħmel żewġ affarijiet. 1464 01:10:11,620 --> 01:10:16,390 I ewwel jeħtieġ li jiftakru dak in-numru hija fuq quddiem tal-kju, 1465 01:10:16,390 --> 01:10:17,860 minħabba I bżonn li jirritornaw li ħaġa. 1466 01:10:17,860 --> 01:10:20,910 So I ma tridx aċċidentalment tinsa dwar dan u mbagħad jissostitwixxu dan. 1467 01:10:20,910 --> 01:10:22,840 Jien biss se tiftakar fi int. 1468 01:10:22,840 --> 01:10:27,310 >> U issa, nixtieq li taġġorna q.front li jiġu q.front +1. 1469 01:10:27,310 --> 01:10:30,070 Hekk jekk dan kien l-ewwel persuna fil- linja, issa, I trid tagħmel plus 1 1470 01:10:30,070 --> 01:10:31,930 punt fuq il-persuna li jmiss fil-linja. 1471 01:10:31,930 --> 01:10:33,420 Imma I jkollhom biex jimmaniġġaw dak trembil. 1472 01:10:33,420 --> 01:10:37,270 U jekk il-kapaċità hi kostanti globali, li għaddej biex jippermettu nagħmel ċert 1473 01:10:37,270 --> 01:10:41,140 kif I punt li l-ħafna aħħar persuna line, l-operazzjoni modulo se jġib 1474 01:10:41,140 --> 01:10:43,840 me lura għal żero fil- quddiem tal-kju. 1475 01:10:43,840 --> 01:10:46,050 U li mankijiet-trembil hawn. 1476 01:10:46,050 --> 01:10:48,950 U mbagħad I tipproċedi biex jirritorna n. 1477 01:10:48,950 --> 01:10:51,530 >> Issa, strettament, I ma jkollha tiddikjara n. 1478 01:10:51,530 --> 01:10:53,880 I ma kellhomx biex grab u jaħżnu temporanjament, għaliex il-valur huwa 1479 01:10:53,880 --> 01:10:54,740 għadha hemm. 1480 01:10:54,740 --> 01:10:57,490 So I tista 'biss tagħmel l-aritmetika dritt biex jirritorna l-eks kap 1481 01:10:57,490 --> 01:10:58,450 tal-kju. 1482 01:10:58,450 --> 01:11:01,850 Imma I biss ħassew li dan kien aktar ċar li attwalment grab l-int, poġġih 1483 01:11:01,850 --> 01:11:04,320 fil-n, u mbagħad jirritornaw li f'ġieħ iċ-ċarezza iżda 1484 01:11:04,320 --> 01:11:05,735 mhux strettament neċessarju. 1485 01:11:05,735 --> 01:11:09,313 1486 01:11:09,313 --> 01:11:12,130 PSST. 1487 01:11:12,130 --> 01:11:13,410 Huma qed kollha pronunċabbli my head. 1488 01:11:13,410 --> 01:11:15,940 1489 01:11:15,940 --> 01:11:19,110 >> ROB BOWDEN: Allura l-ewwel domanda hija l-problema siġra binarju. 1490 01:11:19,110 --> 01:11:22,140 Allura l-ewwel kwistjoni hija, aħna qed minħabba dawn in-numri. 1491 01:11:22,140 --> 01:11:27,160 U rridu li b'xi mod daħħal minnhom fil dawn in-nodi tali li huwa 1492 01:11:27,160 --> 01:11:30,110 siġra tfittxija binarja valida. 1493 01:11:30,110 --> 01:11:36,260 Allura l-unika ħaġa li tiftakar dwar siġar tat-tiftix binarju huwa li mhuwiex 1494 01:11:36,260 --> 01:11:39,800 biss li l-ħaġa ix-xellug huwa inqas u l-ħaġa li 1495 01:11:39,800 --> 01:11:41,120 id-dritt huwa akbar. 1496 01:11:41,120 --> 01:11:44,580 Jeħtieġ li jkun li s-siġra kollu biex ix-xellug huwa inqas, u l-siġra kollu 1497 01:11:44,580 --> 01:11:45,740 lejn il-lemin huwa akbar. 1498 01:11:45,740 --> 01:11:55,260 >> Mela jekk nressaq 34 hawn fil-quċċata, u mbagħad Nressaq 20 hawn, b'tali mod li validu hekk 1499 01:11:55,260 --> 01:11:56,970 ferm, għaliex 34 up here. 1500 01:11:56,970 --> 01:11:57,920 20 huwa għaddej ix-xellug. 1501 01:11:57,920 --> 01:11:58,950 Hekk li l-anqas. 1502 01:11:58,950 --> 01:12:03,640 Imma ma nistax mbagħad titqiegħed 59 hawn, għaliex għalkemm 59 dwar id-dritt ta '20, 1503 01:12:03,640 --> 01:12:06,140 huwa għadu fuq ix-xellug ta '34. 1504 01:12:06,140 --> 01:12:10,760 Allura ma din ir-restrizzjoni fil-moħħ, il- eħfef mod ta 'probabbilment isolvi din 1505 01:12:10,760 --> 01:12:14,330 problema hija biss tip ta 'dawn in-numri - 1506 01:12:14,330 --> 01:12:18,720 hekk 20, 34, 36, 52, 59, 106. 1507 01:12:18,720 --> 01:12:21,640 U mbagħad daħħal dawk mix-xellug għal-lemin. 1508 01:12:21,640 --> 01:12:23,390 >> So 20 tmur hawn. 1509 01:12:23,390 --> 01:12:24,630 34 tmur hawn. 1510 01:12:24,630 --> 01:12:25,830 36 tmur hawn. 1511 01:12:25,830 --> 01:12:29,360 52, 59, 106. 1512 01:12:29,360 --> 01:12:34,730 U inti tista 'wkoll dehret ma xi ħofor fil u t-twettiq, 1513 01:12:34,730 --> 01:12:38,830 oh, stenna, jien ma jkollhom numri biżżejjed biex timla dan hawn fuq. 1514 01:12:38,830 --> 01:12:42,170 So I bżonn reshift dak tiegħi nota rotta se tkun. 1515 01:12:42,170 --> 01:12:47,490 Iżda tinnota li fit-tliet finali, jekk taqra mix-xellug għal-lemin, huwa fl 1516 01:12:47,490 --> 01:12:48,740 tiżdied ordni. 1517 01:12:48,740 --> 01:12:52,150 1518 01:12:52,150 --> 01:12:56,540 >> Allura issa, irridu li tiddikjara dak il- Struct se tkun għall- 1519 01:12:56,540 --> 01:12:58,300 punti strateġiċi din is-siġra. 1520 01:12:58,300 --> 01:13:02,720 Allura dak li għandna bżonn fil-siġra binarju? 1521 01:13:02,720 --> 01:13:05,830 Allura aħna jkollhom valur ta 'tip int, hekk xi valur int. 1522 01:13:05,830 --> 01:13:07,220 I do not know dak li aħna imsejjaħ fil-soluzzjoni - 1523 01:13:07,220 --> 01:13:08,500 int n. 1524 01:13:08,500 --> 01:13:13,570 Għandna bżonn pointer lill-wild xellug u pointer lill-wild dritt. 1525 01:13:13,570 --> 01:13:17,540 Allura li għaddej biex teżamina bħal dan. 1526 01:13:17,540 --> 01:13:20,510 U inneħħu fatt tfittex qabel meta għamlet il-doppjament-linked 1527 01:13:20,510 --> 01:13:25,090 Jittieħed lista, hekk avviż - 1528 01:13:25,090 --> 01:13:27,860 Jien ser ikollhom biex tiskrollja l- mod lura għal problema 11. 1529 01:13:27,860 --> 01:13:30,980 1530 01:13:30,980 --> 01:13:36,390 >> Allura tinnota li tidher identika għall-dan, ħlief aħna biss jiġri li jsejħu dawn 1531 01:13:36,390 --> 01:13:38,590 ismijiet differenti. 1532 01:13:38,590 --> 01:13:41,440 Għad għandna integer valur u żewġ pointers. 1533 01:13:41,440 --> 01:13:44,850 Huwa biss li minflok ta 'trattament l- pointers dwar tipponta lejn il-ħaġa li jmiss 1534 01:13:44,850 --> 01:13:47,955 u l-ħaġa qabel, aħna qed trattament l-pointers għall-punt li tifel xellug 1535 01:13:47,955 --> 01:13:49,205 u tfal dritt. 1536 01:13:49,205 --> 01:13:57,372 1537 01:13:57,372 --> 01:13:57,860 OK. 1538 01:13:57,860 --> 01:13:59,650 Allura dak node Struct tagħna. 1539 01:13:59,650 --> 01:14:03,920 U issa, l-unika funzjoni għandna bżonn li jimplimentaw għal dan hija travers, li 1540 01:14:03,920 --> 01:14:08,320 irridu li jmorru fuq il-siġra, l-istampar il-valuri tas-siġra fil-ordni. 1541 01:14:08,320 --> 01:14:15,241 >> Allura tfittex hawn, aħna rridu li jistampaw out 20, 34, 36, 52, 59, u 106. 1542 01:14:15,241 --> 01:14:17,970 Kif nistgħu tlesti dan? 1543 01:14:17,970 --> 01:14:18,890 Allura huwa pjuttost simili. 1544 01:14:18,890 --> 01:14:22,910 Jekk inti raw fil-eżami passat il-problema li inti ridt li jistampa 1545 01:14:22,910 --> 01:14:25,940 l-siġra sħiħa ma virgoli fl bejn kollox, kien effettivament anke 1546 01:14:25,940 --> 01:14:27,320 eħfef minn dak. 1547 01:14:27,320 --> 01:14:30,950 Allura hawnhekk huwa s-soluzzjoni. 1548 01:14:30,950 --> 01:14:33,110 Dan kien b'mod sinifikanti aktar faċli jekk inti ma kien recursively. 1549 01:14:33,110 --> 01:14:36,650 I do not know jekk xi ħadd attentat biex tagħmel dan iteratively. 1550 01:14:36,650 --> 01:14:38,340 >> Iżda l-ewwel, għandna każ bażi tagħna. 1551 01:14:38,340 --> 01:14:39,660 X'jiġri jekk l-għerq huwa null? 1552 01:14:39,660 --> 01:14:40,610 Imbagħad aħna qed biss ser jirritornaw. 1553 01:14:40,610 --> 01:14:42,300 Aħna ma rridux li jistampaw xejn. 1554 01:14:42,300 --> 01:14:45,940 Else aħna qed tmur biex travers recursively isfel. 1555 01:14:45,940 --> 01:14:48,140 Stampa l-subtree xellug kollu. 1556 01:14:48,140 --> 01:14:51,440 Allura print kollox inqas mill-valur kurrenti tiegħi. 1557 01:14:51,440 --> 01:14:53,930 U allura jien ser jistampaw myself. 1558 01:14:53,930 --> 01:14:57,310 U allura jien ser recurse down tiegħi subtree dritt kollu, hekk kollox 1559 01:14:57,310 --> 01:14:58,810 akbar mill-valur tiegħi. 1560 01:14:58,810 --> 01:15:03,870 U dan se jistampaw kollox fl-ordni. 1561 01:15:03,870 --> 01:15:05,860 Mistoqsijiet dwar kif dan attwalment accomplishes dan? 1562 01:15:05,860 --> 01:15:09,892 1563 01:15:09,892 --> 01:15:12,545 >> UDJENZA: Għandi mistoqsija fuq il-[inaudible]. 1564 01:15:12,545 --> 01:15:15,090 1565 01:15:15,090 --> 01:15:23,550 >> ROB BOWDEN: Allura mod wieħed joqrob kwalunkwe problema rikursivi huwa li jaħsbu biss 1566 01:15:23,550 --> 01:15:26,275 dwar dan simili trid taħseb dwar il-każijiet kantuniera. 1567 01:15:26,275 --> 01:15:32,150 1568 01:15:32,150 --> 01:15:38,110 Għalhekk tikkunsidra li rridu Stampa din il-siġra kollu. 1569 01:15:38,110 --> 01:15:42,030 Allura kollha aħna ser tiffoka fuq huwa dan node partikolari - 1570 01:15:42,030 --> 01:15:43,740 36. 1571 01:15:43,740 --> 01:15:47,420 Is-sejħiet rikursivi, aħna nippretendu dawk biss xogħol. 1572 01:15:47,420 --> 01:15:54,000 Allura hawn, din is-sejħa rikursivi li travers, aħna mingħajr ma jaħsbu 1573 01:15:54,000 --> 01:15:58,640 dwar dan, biss jaqsmu ix-xellug tlieta, jimmaġina li diġà prints 20 1574 01:15:58,640 --> 01:16:00,730 u 34 għalina. 1575 01:16:00,730 --> 01:16:03,350 U mbagħad meta aħna eventwalment recursively sejħa travers fuq il- 1576 01:16:03,350 --> 01:16:07,890 dritt, li se print korrett 52, 59, u 106 għalina. 1577 01:16:07,890 --> 01:16:13,620 >> Allura peress li dan jista 'jistampa 20, 34, u l-ieħor jistgħu jistampaw 52, ​​59, 108, 1578 01:16:13,620 --> 01:16:17,180 kollha għandna bżonn li tkun tista 'tagħmel huwa istampar ourself fin-nofs ta 'dak. 1579 01:16:17,180 --> 01:16:21,250 Allura jistampa kollox quddiemna. 1580 01:16:21,250 --> 01:16:27,710 Stampa ourself, hekk l-istampar node attwali 36, printf regolari, u mbagħad 1581 01:16:27,710 --> 01:16:31,170 print kollox wara us. 1582 01:16:31,170 --> 01:16:32,730 >> DAVID J. Malan: Dan huwa fejn recursion gets tassew sbieħ. 1583 01:16:32,730 --> 01:16:36,270 Huwa dan qabża aqwa ta 'fidi fejn inti tagħmel l-tiniest daqsxejn ta 'xogħol. 1584 01:16:36,270 --> 01:16:38,460 U mbagħad inti let xi ħadd inkella tagħmel l-bqija. 1585 01:16:38,460 --> 01:16:40,180 U li xi ħadd ieħor hija, ironikament, inti. 1586 01:16:40,180 --> 01:16:44,260 1587 01:16:44,260 --> 01:16:48,360 Allura għal punti brownie serji, jekk inti iscroll fuq il-mistoqsijiet - 1588 01:16:48,360 --> 01:16:50,530 >> ROB BOWDEN: Fuq id-domandi? 1589 01:16:50,530 --> 01:16:53,490 >> DAVID J. Malan: U jistabbilixxi ftit li in-numri, ħadd ma jaf fejn 1590 01:16:53,490 --> 01:16:55,190 dawn in-numri jiġu minn? 1591 01:16:55,190 --> 01:16:56,610 >> ROB BOWDEN: I jkollhom litteralment ebda idea. 1592 01:16:56,610 --> 01:16:59,794 >> DAVID J. Malan: Huma jidhru matul il-kwizz. 1593 01:16:59,794 --> 01:17:01,150 >> UDJENZA: Dawn huma l-istess numri? 1594 01:17:01,150 --> 01:17:01,910 >> DAVID J. Malan: Dawk in-numri. 1595 01:17:01,910 --> 01:17:03,260 A bajd tal-Għid ftit. 1596 01:17:03,260 --> 01:17:08,100 Għalhekk għal dawk minnkom jaraw online fuq dar, jekk inti tista 'tgħidilna via email 1597 01:17:08,100 --> 01:17:12,680 heads@CS50.net dak is-sinifikat ta 'dawn is-sitt numri rikorrenti huma 1598 01:17:12,680 --> 01:17:18,560 matul Quiz 1, aħna se doċċa inti b'attenzjoni aqwa fil-finali 1599 01:17:18,560 --> 01:17:21,610 lecture u ballun stress. 1600 01:17:21,610 --> 01:17:25,460 1601 01:17:25,460 --> 01:17:27,790 Nizza, sottili. 1602 01:17:27,790 --> 01:17:29,570 >> ROB Bowden: Kwalunkwe mistoqsijiet aħħar dwar xi ħaġa fuq l-kwizz? 1603 01:17:29,570 --> 01:17:32,608