1 00:00:00,000 --> 00:00:02,270 >> [Reviżjoni: Quiz 1] 2 00:00:02,270 --> 00:00:04,620 [Ali Nahm, Oreoluwa Barbarinsa, Lucas Freitas, Rob Bowden] [Harvard University] 3 00:00:04,620 --> 00:00:07,660 [Dan huwa CS50.] [CS50.TV] 4 00:00:07,660 --> 00:00:11,610 [Lucas Freitas] Merħba kulħadd. Dan huwa ta 'reviżjoni għall-kwizz 1. 5 00:00:11,610 --> 00:00:15,040 Just bħala ċaħda, din hija - I mean, aħna qed tmur biex tipprova tkopri 6 00:00:15,040 --> 00:00:17,770 materjal kemm jista 'jkun, iżda dan ma jfissirx li 7 00:00:17,770 --> 00:00:20,780 aħna qed tmur biex ikopru l-affarijiet li jistgħu jkunu fil-kwizz 1. 8 00:00:20,780 --> 00:00:25,270 Allura jkun żgur ukoll tagħti ħarsa lejn lecture, sezzjonijiet, dak kollu li tista '. 9 00:00:25,270 --> 00:00:28,240 Quiz 1 se tkun nhar l-Erbgħa, l-Erbgħa li jmiss. 10 00:00:28,240 --> 00:00:33,800 Sabiex ikun żgur li l-istudju. Li għaddej biex tkun, pretty ħafna, bħall-ewwel kwizz 11 00:00:33,800 --> 00:00:36,390 dwar format tagħha, imma hija probabbilment se jkun aktar diffiċli. 12 00:00:36,390 --> 00:00:39,600 Mill-inqas, is-sena meta I ħa 50, ħsibt li kien aktar diffiċli. 13 00:00:39,600 --> 00:00:42,410 Allura tistudja ħafna. 14 00:00:42,410 --> 00:00:45,190 >> Jien ser tkopri data strutturi u Huffman kodifikazzjoni. 15 00:00:45,190 --> 00:00:47,910 Din hija xi ħaġa li ħafna nies jaħsbu huwa kumpless, 16 00:00:47,910 --> 00:00:51,930 imma jien ser jippruvaw jagħmluha faċli kemm possibbli. 17 00:00:51,930 --> 00:00:56,330 L-ewwelnett, dak li rridu inti guys tkun taf għall-kwizz 1 huwa li 18 00:00:56,330 --> 00:01:00,970 jifhmu d-deskrizzjonijiet kunċettwali ta 'kull strutturi ta' dejta li jien ser tippreżenta. 19 00:01:00,970 --> 00:01:03,960 Dan ifisser li inti ma għandekx biex effettivament 20 00:01:03,960 --> 00:01:07,020 jimplimentaw tabella hash fil-kwizz tiegħek 1. 21 00:01:07,020 --> 00:01:10,250 Aħna ma rridux li inti timplimenta tabella hash kollu; forsi aħna ser nippruvaw 22 00:01:10,250 --> 00:01:13,090 li tagħmel inti jimplimentaw xi funzjonijiet, 23 00:01:13,090 --> 00:01:16,940 l-operazzjonijiet l-aktar komuni, iżda aħna mhux se tagħmel inti jimplimentaw kollox. 24 00:01:16,940 --> 00:01:21,010 Allura huwa importanti li inti tifhem il-kunċett wara kull struttura data 25 00:01:21,010 --> 00:01:23,510 u wkoll li inti kapaċi għall-kodiċi fis-C, 26 00:01:23,510 --> 00:01:27,880 biss l-operazzjonijiet l-aktar komuni huma għandhom għal kull struttura tad-data. 27 00:01:27,880 --> 00:01:30,090 U wkoll tkun tista 'tirrevedi pointers u structs, 28 00:01:30,090 --> 00:01:33,470 għax jidher ħafna f'dawn l-istrutturi tad-data. 29 00:01:33,470 --> 00:01:37,380 >> L-ewwel, listi marbuta. Listi Linked huma attwalment simili ħafna għal arrays, 30 00:01:37,380 --> 00:01:39,930 iżda d-differenza bejn lista marbuta u firxa, 31 00:01:39,930 --> 00:01:45,160 ewwel nett, hija li lista marbut għandu daqs flessibbli ħafna, 32 00:01:45,160 --> 00:01:50,060 filwaqt li fil arrays inti għandek tagħżel jew daqs kbir ħafna għall-array, 33 00:01:50,060 --> 00:01:53,710 sabiex inti taf li int ser jkun kapaċi li jaħżen id-data kollha tiegħek f'dan il-firxa, 34 00:01:53,710 --> 00:01:59,370 jew inti għandek tuża malloc li jkollhom tul flessibbli ta 'firxa. 35 00:01:59,370 --> 00:02:03,680 Fil-listi marbutin huwa faċli ħafna li tikseb biss aktar elementi, 36 00:02:03,680 --> 00:02:07,210 tpoġġi aktar elementi fil-lista marbuta jew ineħħu elementi. 37 00:02:07,210 --> 00:02:09,370 U fil-fatt, jekk inti ma tridx il-lista marbuta ma jiġu magħżula, 38 00:02:09,370 --> 00:02:13,950 inti tista 'tfittex u neħħi l-elementi fil-ħin kostanti, 39 00:02:13,950 --> 00:02:16,800 hekk O (1) ħin, dan huwa konvenjenti ħafna. 40 00:02:16,800 --> 00:02:20,660 Inti sempliċiment għandek tkun attenta li dejjem tiftakar li malloc u ħielsa l-lymph, 41 00:02:20,660 --> 00:02:25,510 sempliċiment għaliex jekk inti ma, inti ser ikollok tnixxijiet memorja. 42 00:02:25,510 --> 00:02:31,480 Listi hekk marbutin - id-definizzjoni ta 'node huwa biss bħal dak li għandna hemm dritt. 43 00:02:31,480 --> 00:02:35,110 Nressaq int n, iżda inti jista 'jaħżen kwalunkwe informazzjoni li inti tixtieq. 44 00:02:35,110 --> 00:02:37,280 Mela jekk inti tixtieq li taħżen string, huwa multa. 45 00:02:37,280 --> 00:02:41,690 Jekk inti tixtieq li taħżen Struct, huwa multa, doppja, tkun xi tkun trid. 46 00:02:41,690 --> 00:02:44,630 I biss jitqiegħed int n għall-eżempji hawn. 47 00:02:44,630 --> 00:02:46,800 U inti għandek pointer għall-node li jmiss. 48 00:02:46,800 --> 00:02:51,940 Allura, bażikament, lista marbuta għandha xi data, u allura jinnota l-node li jmiss. 49 00:02:51,940 --> 00:02:56,710 Jekk huwa l-aħħar element fil-lista marbuta, li għaddej għall-punt li NULL. 50 00:02:56,710 --> 00:02:59,060 Allura dan huwa eżempju ta 'lista marbuta. 51 00:02:59,250 --> 00:03:05,960 >> Okay, hekk issa ejja ara dak li għandna nagħmlu jekk irrid li daħħal element f'lista marbuta. 52 00:03:05,960 --> 00:03:08,810 L-ewwel, daħħal funzjoni se jkunu tat-tip null 53 00:03:08,810 --> 00:03:11,350 minħabba I ma jridux li jirritornaw xejn. 54 00:03:11,350 --> 00:03:14,200 U jien ser jieħdu int bħala argument, 55 00:03:14,200 --> 00:03:17,090 minħabba I trid tkun taf dak li nixtieq li daħħal. 56 00:03:17,090 --> 00:03:21,840 Allura x'inhu l-ewwel ħaġa I għandha tagħmel? Well, I għandu malloc fuq newnode, 57 00:03:21,840 --> 00:03:24,240 b'tali mod li huwa l-ewwel linja. 58 00:03:24,240 --> 00:03:27,580 Jien biss toħloq node ġdid biex jitqiegħdu fil-lista marbuta. 59 00:03:27,580 --> 00:03:32,360 Allura x'nista 'nagħmel? Well, nafu li fl-implimentazzjonijiet tagħna ta 'listi marbuta 60 00:03:32,360 --> 00:03:38,180 fil-klassi, aħna dejjem tpoġġi l-ras bħala varjabbli globali. 61 00:03:38,180 --> 00:03:41,800 Allura dak li nistgħu nagħmlu huwa jibdlu l-head. 62 00:03:41,800 --> 00:03:44,300 I tista 'tagħmel dan node ġdid jkun il-kap il-ġdid, 63 00:03:44,300 --> 00:03:46,670 u li għaddej biex jindikaw lill-kap ta 'qabel. 64 00:03:46,670 --> 00:03:50,390 Kif nistgħu nagħmlu dan? L-ewwel ħaġa li nagħmel 65 00:03:50,390 --> 00:03:54,770 hija l-bidla l-"n" fil-node ġdid għall-valur, 66 00:03:54,770 --> 00:03:57,530 li għaddiet għall-funzjoni. 67 00:03:57,530 --> 00:04:01,050 Imbagħad l newnode jmiss se jkun il-kap. 68 00:04:01,050 --> 00:04:05,800 Il-kap se tkun newnode. Allura huwa pjuttost sempliċi. 69 00:04:05,800 --> 00:04:10,090 Għal tħassar node, nistgħu nagħmlu dan simili - 70 00:04:10,090 --> 00:04:14,790 Mod wieħed stajna nagħmlu jiġifieri, 71 00:04:14,790 --> 00:04:18,160 okay, jekk jien ridt li tħassar, per eżempju, 3, 72 00:04:18,160 --> 00:04:24,850 dak I tista 'tagħmel huwa biss il-punt l-node preċedenti 73 00:04:24,850 --> 00:04:27,580 l-node li jmiss ta '3. 74 00:04:27,580 --> 00:04:29,400 So I se biss tagħmel xi ħaġa bħal dik. 75 00:04:29,400 --> 00:04:33,400 Imma x'inhi l-problema ma tagħmel dan? 76 00:04:33,400 --> 00:04:37,400 I jkollhom nixxija memorja, so I ma jkollhomx aċċess għan-numru 3 jibqgħalu. 77 00:04:37,400 --> 00:04:42,480 Il-problema ma 'dan huwa li jien mhux se jkun jista' jeħles dak node. 78 00:04:42,480 --> 00:04:45,360 Jien ser ikollhom tnixxija memorja u (mhux intelliġibbli) se mibegħda lili. 79 00:04:45,360 --> 00:04:49,370 Allura minflok tagħmel dan, I għandu probabilment jkollhom pointer temporanju. 80 00:04:49,370 --> 00:04:53,210 So I tpoġġi temp. Huwa se punt li l-node li nixtieq li tħassar. 81 00:04:53,210 --> 00:04:58,170 U mbagħad I tista 'timxi l-lymph preċedenti biex jindikaw il-node li jmiss 82 00:04:58,170 --> 00:05:00,390 tal-node li nixtieq li tħassar. 83 00:05:00,390 --> 00:05:02,730 U fl-aħħarnett, I jista 'b'xejn il-pointer. 84 00:05:02,730 --> 00:05:07,480 Għandi ħielsa l-pointer li I maħluqa hemm dritt? 85 00:05:07,480 --> 00:05:09,560 I ma jkollhom, sempliċement minħabba - 86 00:05:09,560 --> 00:05:13,430 id-differenza hija li din node ġiet maħluqa bl-użu malloc, 87 00:05:13,430 --> 00:05:17,280 dan huwa fil-borġ, filwaqt li dan wieħed kien biss iddikjarata bħala swiċċ NULL fil-ċmieni. 88 00:05:17,280 --> 00:05:20,000 So I ma jkollhomx biex ħielsa minnha. 89 00:05:20,000 --> 00:05:22,030 >> Okay. Allura issa ejja nitkellmu dwar stacks. 90 00:05:22,030 --> 00:05:24,680 Stacks huma pjuttost sempliċi. 91 00:05:24,680 --> 00:05:29,540 Aħna ma stacks u kjuwijiet fil-klassi biss bl-użu arrays, 92 00:05:29,540 --> 00:05:32,820 iżda inti għandek tkun familjari - biss ikunu konxji 93 00:05:32,820 --> 00:05:40,740 li inti tista 'ukoll tagħmel stacks fil-kjuwijiet li jużaw listi konnessi kif ukoll. 94 00:05:40,740 --> 00:05:44,460 Mela jekk għandek firxa, dak li jkun stack? 95 00:05:44,460 --> 00:05:46,810 A munzell, l-ewwel, ser jibqa 'jkollhom daqs. 96 00:05:46,810 --> 00:05:49,950 Int għandek taħżen x'inhu d-daqs tal-munzell li inti għandek id-dritt issa. 97 00:05:49,950 --> 00:05:52,980 U wkoll inti jkollha firxa, f'dan il-każ ta 'numri, 98 00:05:52,980 --> 00:05:55,120 imma jekk inti tixtieq, tista 'tkun firxa 99 00:05:55,120 --> 00:06:00,380 ta 'spag, firxa ta' Struct, xi ħaġa li inti tixtieq li taħżen. 100 00:06:00,380 --> 00:06:03,240 Dwar il-munzell: Id-differenza bejn munzell u lista marbuta 101 00:06:03,240 --> 00:06:08,590 hija li fil-munzell inti biss ikollhom aċċess għall-aħħar element li tqiegħed fil-ċmieni. 102 00:06:08,590 --> 00:06:11,770 Huwa sejjaħ l-aħħar fl-ewwel out. 103 00:06:11,770 --> 00:06:15,090 Eżatt bħal inti għandek munzell ta 'dixxijiet, 104 00:06:15,090 --> 00:06:17,670 jekk inti tpoġġi trej fuq il-quċċata tal-munzell, 105 00:06:17,670 --> 00:06:22,670 għandek tneħħi l-trej ewwel li jkollhom aċċess għall-trejs oħra. 106 00:06:22,670 --> 00:06:26,310 Huwa l-istess ħaġa ma stacks. 107 00:06:26,310 --> 00:06:31,220 Mela jekk jien tixtieq li, per eżempju, iżidu element li munzell, x'għandi nagħmel? 108 00:06:31,220 --> 00:06:34,070 Huwa sejjaħ timbotta, u huwa pjuttost sempliċi. 109 00:06:34,070 --> 00:06:37,130 L-ewwel ħaġa li għandek tagħmel huwa check jekk id-daqs tal-munzell 110 00:06:37,130 --> 00:06:40,150 ma tkunx ikbar jew daqs il-kapaċità tal-munzell. 111 00:06:40,150 --> 00:06:45,810 Għaliex jekk inti diġà fuq il-kapaċità sħiħa, inti ma tista 'żżid kull ħaġ'oħra. 112 00:06:45,810 --> 00:06:51,140 U mbagħad jekk le, inti biss għandek biex iżidu l-element li l-munzell. 113 00:06:51,140 --> 00:06:54,530 U fl-aħħarnett, inkrement-daqs. Allura huwa pjuttost sempliċi. 114 00:06:54,530 --> 00:06:57,140 So I biss żid in-numru 2. 115 00:06:57,140 --> 00:07:00,350 U jekk irrid li pop, li jfisser li nixtieq li tneħħi 116 00:07:00,350 --> 00:07:03,870 l-aħħar element li kien miżjud u jirritorna l-valur tal-element, 117 00:07:03,870 --> 00:07:09,180 l-ewwel ħaġa I għandhom jiċċekkjaw hija li l-munzell ma tkunx vojta. 118 00:07:09,180 --> 00:07:11,510 Għaliex jekk huwa vojt, I ma jistgħux jirritornaw xejn. 119 00:07:11,510 --> 00:07:14,820 F'dak il-każ, jien jirritornaw -1. 120 00:07:14,820 --> 00:07:18,960 Inkella, jien ser decrement-daqs tal-spec, 121 00:07:18,960 --> 00:07:22,510 u r-ritorn numri (s.size). 122 00:07:22,510 --> 00:07:27,230 Għaliex ma I decrement-daqs u mbagħad jirritornaw s.size? 123 00:07:27,230 --> 00:07:30,930 Huwa minħabba, f'dan il-każ, il-spec għandu daqs 4, 124 00:07:30,930 --> 00:07:33,810 u nixtieq li jirritorna l-raba 'element, id-dritt? 125 00:07:33,810 --> 00:07:36,030 Imma dak li hu l-indiċi tar-raba 'element? Tlieta. 126 00:07:36,030 --> 00:07:44,510 Peress I do daqs - se tkun 3, I tista 'biss s.numbers ritorn (s.size) 127 00:07:44,510 --> 00:07:48,410 għaliex dan huwa 3. Allura huwa biss l-indiċi. 128 00:07:48,410 --> 00:07:50,380 >> Issa kjuwijiet. Kjuwijiet huma pjuttost l-istess ħaġa. 129 00:07:50,380 --> 00:07:54,950 L-unika differenza hija li minflok li għadda, l-ewwel barra, 130 00:07:54,950 --> 00:07:57,480 għandek l-ewwel fl-ewwel out. 131 00:07:57,480 --> 00:07:59,460 Probabbilment jekk inti qed jistennew biex tmur għal kunċert, 132 00:07:59,460 --> 00:08:04,260 inti mhux se jkunu kuntenti jekk kellek munzell minflok kju. 133 00:08:04,260 --> 00:08:07,730 Li l-aħħar persuna li ġejjin ikun l-ewwel persuna li jidħlu fil-kunċert. 134 00:08:07,730 --> 00:08:09,760 Inti probabilment mhux se jkunu kuntenti. 135 00:08:09,760 --> 00:08:15,020 Fil-kju, l-ewwel persuna li tikseb fl huwa wkoll l-ewwel persuna li toħroġ. 136 00:08:15,020 --> 00:08:18,720 Allura fid-definizzjoni ta 'kju, minbarra li jkollhom id-daqs l-array, 137 00:08:18,720 --> 00:08:23,360 inti wkoll trid li jkollha l-ras, li hija l-indiċi għall-kap tal-munzell. 138 00:08:23,360 --> 00:08:29,000 Allura l-ewwel element dritt issa. 139 00:08:29,000 --> 00:08:32,710 Enqueue huwa l-istess ħaġa bħat push għall stacks. 140 00:08:32,710 --> 00:08:34,980 Jekk inti kienu naive ħafna, inti biss jgħidu, 141 00:08:34,980 --> 00:08:39,289 ukoll, I tista 'biss tagħmel eżattament l-istess ħaġa kif għamilt għall push. 142 00:08:39,289 --> 00:08:44,030 I tista 'biss tivverifika jekk mhuwiex lil hinn mill-kapaċità. 143 00:08:44,030 --> 00:08:48,760 Jekk huwa, I-ritorn foloz, inkella I tista 'biss tesporta il-valur il-ġdid 144 00:08:48,760 --> 00:08:50,630 u mbagħad inkrement-daqs. 145 00:08:50,630 --> 00:08:52,750 Iżda għaliex dan huwa ħażin? 146 00:08:52,750 --> 00:08:55,010 Ejja ara dan l-eżempju. 147 00:08:55,010 --> 00:08:57,020 Jien tipprova enqueue mazz ta 'għalf, 148 00:08:57,020 --> 00:08:58,390 u mbagħad jien ser dequeue u enqueue. 149 00:08:58,390 --> 00:09:00,550 Hemm ħafna ta 'kmandi, imma hija sempliċi ħafna. 150 00:09:00,550 --> 00:09:04,790 Jien ser enqueue 5, hekk żid 5, u mbagħad 7, 151 00:09:04,790 --> 00:09:09,310 1, 4, 6, u mbagħad nixtieq li dequeue xi ħaġa, 152 00:09:09,310 --> 00:09:12,000 li jfisser li jien ser tneħħi l-ewwel element. 153 00:09:12,000 --> 00:09:14,640 Hekk jien ser ineħħi n-numru 3, id-dritt? 154 00:09:14,640 --> 00:09:17,320 L-ewwel element. Okay. 155 00:09:17,320 --> 00:09:21,450 Issa jekk nipprova enqueue xi ħaġa oħra, dak li qed jiġri? 156 00:09:21,450 --> 00:09:24,290 Skond implimentazzjoni tiegħi, 157 00:09:24,290 --> 00:09:31,040 I kienet se tqiegħed in-numru li jmiss fil-q.size indiċi. 158 00:09:31,040 --> 00:09:35,140 F'dan il-każ, id-daqs huwa ta '8, 159 00:09:35,140 --> 00:09:38,640 hekk l-indiċi 8 se jkun dritt hawn fl-aħħar pożizzjoni. 160 00:09:38,640 --> 00:09:43,900 Jekk nipprova enqueue 1 dritt hawn, inkun kitba fuq l-aħħar pożizzjoni 161 00:09:43,900 --> 00:09:45,870 għan-numru 1, li hija kompletament żbaljata. 162 00:09:45,870 --> 00:09:49,870 What I trid tagħmel hu around u jmorru l-ewwel pożizzjoni. 163 00:09:49,870 --> 00:09:52,870 Forsi inti biss jgħidu, ukoll, I biss għandhom jiċċekkjaw 164 00:09:52,870 --> 00:09:55,600 jekk I jistgħu attwalment tpoġġi xi ħaġa hemmhekk. 165 00:09:55,600 --> 00:09:58,560 Jekk le, I biss jgħidu, oh, il-kapaċità sħiħa ġdida 166 00:09:58,560 --> 00:10:02,010 huwa attwalment kapaċità - 1, u inti ma tistax tpoġġi element hemmhekk. 167 00:10:02,010 --> 00:10:06,150 Imma x'inhi l-problema? Il-problema hija li jekk jien biss dequeue kollox dritt hawn 168 00:10:06,150 --> 00:10:08,240 u mbagħad I tipprova żżid xi ħaġa oħra, ikun biss jgħidu, 169 00:10:08,240 --> 00:10:11,210 ukoll, inti kienu bil-kapaċità sħiħa, li hija 0. 170 00:10:11,210 --> 00:10:13,620 Allura kju tiegħek hija marret. 171 00:10:13,620 --> 00:10:16,990 Inti għandek biex nagħlaq madwar, u mod ta 'kisi madwar 172 00:10:16,990 --> 00:10:22,040 li inti guys tgħallmu fil psets viżjonarju u oħra kienet qed tuża mod. 173 00:10:22,040 --> 00:10:29,090 Tista 'tipprova dan fid-dar li wieħed jifhem għaliex inti se tagħmel q.size + q.head 174 00:10:29,090 --> 00:10:31,080 kapaċità mod, imma jekk inti tiċċekkja dritt hawn, 175 00:10:31,080 --> 00:10:34,760 nistgħu naraw li taħdem. 176 00:10:34,760 --> 00:10:37,760 Għalhekk fl-aħħar eżempju, kien q.size 8 177 00:10:37,760 --> 00:10:47,590 u l-kap kien 1, minħabba li kienet din il-pożizzjoni hawn mill-firxa. 178 00:10:47,590 --> 00:10:51,970 Għalhekk se jkun 8 + 1, 9. Kapaċità Mod 9 tkun 0. 179 00:10:51,970 --> 00:10:56,640 Dan imur għall-indiċi 0. Aħna ser ikunu fil-pożizzjoni dritt. 180 00:10:56,640 --> 00:10:59,750 U mbagħad jippruvaw-kju fid-dar. 181 00:10:59,750 --> 00:11:04,950 Xi affarijiet importanti: jippruvaw jifhmu d-differenza bejn munzell u kju. 182 00:11:04,950 --> 00:11:11,620 Fid-dar, nipprova nikseb familjari ħafna mal-implimentazzjoni enqueue, dequeue, push u pop. 183 00:11:11,620 --> 00:11:16,560 U wkoll jifhmu meta inti tuża kull wieħed minnhom. 184 00:11:16,560 --> 00:11:22,830 >> Mela ejja jirrilassaw għal 10 sekonda bil-mazz ta 'Pokemons. 185 00:11:22,830 --> 00:11:26,080 U issa ejja mmorru lura għall strutturi ta 'dejta. 186 00:11:26,080 --> 00:11:29,770 Hash tabelli. Ħafna nies kienu jibżgħu ta 'tabelli hash. 187 00:11:29,770 --> 00:11:33,650 fil-problema sett 6, Jifformulaw Checker. 188 00:11:33,650 --> 00:11:35,980 Tabelli hash u tentattivi, ħafna nies jibżgħu minnhom. 189 00:11:35,980 --> 00:11:38,540 Huma jaħsbu li qed hekk diffiċli li wieħed jifhem. Yeah? 190 00:11:38,540 --> 00:11:41,490 [Rob Bowden] Problem stabbiliti 5. >> Problem stabbiliti 5, yeah. Grazzi Rob. 191 00:11:41,490 --> 00:11:43,370 Yeah. Six kien Huff n "Puff, yeah. 192 00:11:43,370 --> 00:11:49,340 Problema stabbiliti 5 kien Jifformulaw Checker, u inti kellha tuża jew tabella hash jew jipprova. 193 00:11:49,340 --> 00:11:55,360 Ħafna nies ħasbu li kienu super diffiċli li wieħed jifhem, iżda dawn qed attwalment pjuttost sempliċi. 194 00:11:55,360 --> 00:12:01,290 X'inhu tabella hash, bażikament? A tabella hash firxa ta 'listi marbuta. 195 00:12:01,290 --> 00:12:06,730 L-unika differenza bejn firxa u tabella hash 196 00:12:06,730 --> 00:12:09,730 hija li fil-tabella hash ikollok xi ħaġa imsejħa funzjoni hash. 197 00:12:09,730 --> 00:12:12,080 X'inhu funzjoni hash? 198 00:12:12,080 --> 00:12:13,970 I do not know jekk inti guys tista 'taqra hawn. 199 00:12:13,970 --> 00:12:16,090 Dan huwa eżempju ta 'tabella hash. 200 00:12:16,090 --> 00:12:19,220 Allura tista 'tara li għandek firxa b'31 elementi. 201 00:12:19,220 --> 00:12:22,440 U dak li nagħmlu fit-tabella hash hija jkollha funzjoni hash 202 00:12:22,440 --> 00:12:26,660 li ser jittraduċu ewlenin, kull int għal indiċi. 203 00:12:26,660 --> 00:12:31,740 Jekk, per eżempju, jekk irrid li jagħżlu għal B. Harrison, 204 00:12:31,740 --> 00:12:34,190 I iqiegħed B. Harrison fil-funzjonijiet hash tiegħi, 205 00:12:34,190 --> 00:12:36,960 u l-funzjoni hash se jerġa 'lura 24. 206 00:12:36,960 --> 00:12:40,930 So I jafu li nixtieq li jaħżen B. Harrison f'24. 207 00:12:40,930 --> 00:12:46,580 Allura dak hu d-differenza bejn biss li firxa u jkollhom tabella hash. 208 00:12:46,580 --> 00:12:48,740 Fit-tabella hash inti ser ikollhom funzjoni li se jgħidlek 209 00:12:48,740 --> 00:12:54,740 fejn jaħżen id-data li inti tixtieq li taħżen. 210 00:12:54,740 --> 00:12:57,040 Għall-funzjoni hash, inti trid tfittex għal funzjoni hash 211 00:12:57,040 --> 00:13:00,600 jiġifieri deterministic u sew distribwiti. 212 00:13:00,600 --> 00:13:07,810 Kif tistgħu taraw hawn, tara li ħafna tad-dejta li xtaqt li jaħżnu kien effettivament 19 213 00:13:07,810 --> 00:13:12,470 minflok li jużaw 31 u 30 u 29, li kienu kollha b'xejn. 214 00:13:12,470 --> 00:13:16,920 Allura l-funzjoni hash I li jintużaw ma kienx tajjeb ħafna mqassma. 215 00:13:16,920 --> 00:13:20,710 Meta ngħidu sew distribwiti, dan ifisser li rridu li jkollhom, 216 00:13:20,710 --> 00:13:26,520 bejn wieħed u ieħor, mill-inqas 1 jew 2 għal kull - 217 00:13:26,520 --> 00:13:32,190 bħal, differenza ta '1 jew 2 għal kull wieħed mill-indiċijiet fil-matriċi. 218 00:13:32,190 --> 00:13:43,950 Inti tixtieq li jkollok, bejn wieħed u ieħor, l-istess numru ta 'elementi f'kull lista marbuta fis-array. 219 00:13:43,950 --> 00:13:48,600 U huwa faċli biex jiċċekkjaw jekk huwa validu fit-tabella hash, jikkunsidraw bħala tabelli hash. 220 00:13:48,600 --> 00:13:51,770 >> Imbagħad siġar. Din hija siġra. 221 00:13:51,770 --> 00:13:56,400 Siġar fil-xjenza tal-kompjuter huma rasu 'l isfel għal xi raġuni. 222 00:13:56,400 --> 00:14:00,150 Allura dritt hawn inti għandek l-għerq tal-siġra u mbagħad l-weraq. 223 00:14:00,150 --> 00:14:05,630 Inti għandek biss tkun taf in-nomenklatura għall-ġenituri u tfal. 224 00:14:05,630 --> 00:14:12,880 Kull node għandu tfal tagħha, li huma l-għoqiedi li huma taħt l-ġenitur. 225 00:14:12,880 --> 00:14:19,660 Għalhekk, per eżempju, 2 se tkun il-ġenitur għat-3 u għat-tfal l-oħra hemm dritt, 226 00:14:19,660 --> 00:14:25,290 filwaqt 3 se tkun il-ġenitur għall-1 u t-tfal oħra li huma hemmhekk. 227 00:14:25,290 --> 00:14:29,990 U 1 se jkun ta '3-tfal, u l-bqija. 228 00:14:29,990 --> 00:14:34,610 Aħna għandna xi ħaġa ferm aktar interessanti, imsejħa siġra tfittxija binarju, 229 00:14:34,610 --> 00:14:39,040 li fiha l-valuri dwar id-dritt ta 'node 230 00:14:39,040 --> 00:14:41,660 ser ikunu fuq il-lemin, dritt hawn - fuq il-lemin 231 00:14:41,660 --> 00:14:46,780 ser ikunu akbar mill-element fl-għerq. 232 00:14:46,780 --> 00:14:49,780 Hekk jekk I jkollhom in-numru 5 dritt hawn, l-elementi kollha dwar id-dritt 233 00:14:49,780 --> 00:14:51,940 ser ikunu akbar minn 5, u fuq ix-xellug 234 00:14:51,940 --> 00:14:56,770 l-elementi kollha ser ikunu inqas minn 5. 235 00:14:56,770 --> 00:14:58,780 Għaliex dan huwa utli? 236 00:14:58,780 --> 00:15:01,660 Ukoll, jekk I jridu jiċċekkjaw jekk in-numru 7 huwa hawn, per eżempju, 237 00:15:01,660 --> 00:15:05,960 I biss jmorru sa 5 l-ewwel u jien ser tara, huwa 7 ikbar jew inqas minn 5? 238 00:15:05,960 --> 00:15:09,540 Huwa akbar, hekk naf li għaddej biex għandek tkun fuq il-lemin tas-siġra. 239 00:15:09,540 --> 00:15:13,980 So I għandhom ħafna inqas Jittieħed li tħares lejn. 240 00:15:13,980 --> 00:15:19,520 Fl-implimentazzjoni ta 'siġra tfittxija binarju, il-node, jien biss ser ikollhom jkollhom data, 241 00:15:19,520 --> 00:15:21,750 hekk int n, inti tista 'wkoll ikollha string 242 00:15:21,750 --> 00:15:23,630 jew xejn int riedu. 243 00:15:23,630 --> 00:15:28,100 Inti sempliċiment għandek tkun attenta fuq jiddefinixxu dak huwa akbar, dak li huwa inqas. 244 00:15:28,100 --> 00:15:30,390 Mela jekk kellek kordi, per eżempju, inti tista 'tiddefinixxi 245 00:15:30,390 --> 00:15:34,690 li dawk kollha affarijiet dwar id-dritt huma ser ikollhom tul akbar, 246 00:15:34,690 --> 00:15:40,940 ix-xellug se jkollhom tulijiet aktar baxxi, hekk huwa verament sa inti. 247 00:15:40,940 --> 00:15:44,930 >> Kif nista jimplimentaw ssib għal BST? 248 00:15:44,930 --> 00:15:47,840 L-ewwel ħaġa aħna ser ikollok tagħmel huwa li jiċċekkja jekk il-għeruq huwa NULL. 249 00:15:47,840 --> 00:15:50,920 Jekk huwa NULL, dan ifisser li l-ħaġa ma jkunx hemm 250 00:15:50,920 --> 00:15:53,330 għaliex inti ma jkollhomx siġra, id-dritt? 251 00:15:53,330 --> 00:15:55,790 So I ritorn foloz. 252 00:15:55,790 --> 00:15:58,740 Inkella, jien ser jiċċekkja jekk in-numru huwa akbar 253 00:15:58,740 --> 00:16:01,720 mill-valur fil-għerq. 254 00:16:01,720 --> 00:16:04,250 Jien ser tipprova ssib l-element fuq il-lemin 255 00:16:04,250 --> 00:16:08,590 tas-siġra. 256 00:16:08,590 --> 00:16:11,310 Tara li jien jużaw recursion hawn. 257 00:16:11,310 --> 00:16:14,150 U allura jekk huwa inqas, jien ser tħares lejn ix-xellug. 258 00:16:14,150 --> 00:16:18,330 U fl-aħħarnett, inkella, jekk mhuwiex inqas jew le akbar, 259 00:16:18,330 --> 00:16:20,660 dan ifisser li huwa l-valur innifsu. 260 00:16:20,660 --> 00:16:23,010 So I biss ritorn vera. 261 00:16:23,010 --> 00:16:26,360 Tista 'tara hawn I li jintużaw jekk, jekk, jekk. 262 00:16:26,360 --> 00:16:30,820 U ftakar, fil-kwizz 0, kellna problema li kieku, jekk, jekk, 263 00:16:30,820 --> 00:16:32,780 u inti suppost kellhom isibu l-ineffiċjenza, 264 00:16:32,780 --> 00:16:35,180 u l-ineffiċjenza kien li inti jintuża jekk. 265 00:16:35,180 --> 00:16:39,060 Għandek użaw jekk, inkella jekk, inkella jekk, u ieħor. 266 00:16:39,060 --> 00:16:44,240 Għalhekk, għandi nuża inkella jekk u inkella jekk u ieħor hawn? 267 00:16:44,240 --> 00:16:46,200 Hawn xi ħadd - yeah? 268 00:16:46,200 --> 00:16:51,140 [Student speaking, inaudible] 269 00:16:51,140 --> 00:16:53,480 Li perfett. Hekk hi kien qal li ma jimpurtax, 270 00:16:53,480 --> 00:16:55,930 biss minħabba l-ineffiċjenza li kellna qabel 271 00:16:55,930 --> 00:16:59,550 kienet li minħabba, forsi jekk xi kundizzjoni ġiet sodisfatta, 272 00:16:59,550 --> 00:17:03,570 hekk ikollok mwettqa azzjoni, iżda imbagħad inti kienu ser jiċċekkja l-kondizzjonijiet kollha l-oħra. 273 00:17:03,570 --> 00:17:06,319 Iżda f'dan il-każ, huwa lura dritt bogħod, hekk ma jimpurtax. 274 00:17:06,319 --> 00:17:09,220 Allura inti ma għandekx tuża inkella jekk. 275 00:17:09,220 --> 00:17:11,740 >> U fl-aħħarnett, ejja nitkellmu dwar tentattivi, 276 00:17:11,740 --> 00:17:13,800 li huwa favorit ta 'kulħadd. 277 00:17:13,800 --> 00:17:15,980 A jippruvaw hija siġra ta 'arrays. 278 00:17:15,980 --> 00:17:20,369 Huwa mgħaġġel ħafna biex tfittex up valuri, iżda juża ħafna ta 'memorja. 279 00:17:20,369 --> 00:17:22,530 U huwa normalment biex filtru kliem, hekk meta inti 280 00:17:22,530 --> 00:17:27,920 jridu jimplimentaw, per eżempju, I do not know, bħal ktieb tat-telefon fil-telefon tiegħek 281 00:17:27,920 --> 00:17:30,440 u inti tixtieq li tkun tista 'tip B 282 00:17:30,440 --> 00:17:32,510 u biss ikollhom ismijiet ta 'nies li jkollhom B. 283 00:17:32,510 --> 00:17:37,960 Huwa faċli ħafna li jimplimentaw dik użu jipprova, per eżempju. 284 00:17:37,960 --> 00:17:39,820 Kif inti tiddefinixxi node fi jipprova? 285 00:17:39,820 --> 00:17:43,910 Inti sempliċiment għandek jkollhom bool li se tkun is_word. 286 00:17:43,910 --> 00:17:48,660 Li jirrappreżenta li l-użu l-karattri qabel dik node, 287 00:17:48,660 --> 00:17:51,920 inti kienu kapaċi li jiffurmaw kelma, 288 00:17:51,920 --> 00:17:57,230 u allura inti ser ikollok firxa ta 'pointers għal lymph. 289 00:17:57,230 --> 00:18:03,120 Tista 'tara li aħna għandna firxa ta' punti ta 'konġunzjoni prinċipali, hekk node * firxa? Yeah? 290 00:18:03,120 --> 00:18:06,050 Mela ejja ara kif dan se taħdem. Għall-kontroll jespliċitaw, 291 00:18:06,050 --> 00:18:08,230 għandna firxa ta '27 elementi, 292 00:18:08,230 --> 00:18:12,150 għaliex għandna l-ittri flimkien mal-apostrophe. 293 00:18:12,150 --> 00:18:17,800 Qabel hawn jien biss ser tuża 2 għaliex nixtieq li tkun tista 'tikteb fuq il-bord. 294 00:18:17,800 --> 00:18:20,230 Okay. Allura dan huwa eżempju ta 'jipprova. 295 00:18:20,230 --> 00:18:25,600 Jekk I biss jiddefinixxu l-ewwel node, I ser ikollhom firxa ta '2 elementi 296 00:18:25,600 --> 00:18:29,290 li huma 2 pointers għall NULL, so I biss jitqiegħed "a" u "b". 297 00:18:29,290 --> 00:18:32,430 U jien se jkollhom bool li tgħid is_word. 298 00:18:32,430 --> 00:18:34,420 Li għaddej biex tkun falza għall-ewwel waħda, 299 00:18:34,420 --> 00:18:37,370 biss għaliex, qabel li inti ma għandekx xi karattri. 300 00:18:37,370 --> 00:18:40,900 Allura kelma vojta mhijiex kelma. Allura huwa falz. 301 00:18:40,900 --> 00:18:46,320 Jekk I tixtieq iżżid "a" għal din il-dizzjunarju, dak li nagħmel? 302 00:18:46,320 --> 00:18:49,760 I biss għandhom malloc node ġdid għal "a", 303 00:18:49,760 --> 00:18:54,630 u mbagħad żid kelma tiegħu li veru. 304 00:18:54,630 --> 00:19:00,180 Allura hija biss jirrappreżenta dak li 'a' se jkun veru. Jagħmel sens? 305 00:19:00,180 --> 00:19:04,120 Imbagħad jekk I trid iżżid "ba", I ser ikollhom malloc 1 għal 'b', 306 00:19:04,120 --> 00:19:07,550 u mbagħad jien ser twaqqaf il Boolean biex falza, 307 00:19:07,550 --> 00:19:10,160 għaliex "b" fiha nnifisha mhijiex kelma. 308 00:19:10,160 --> 00:19:13,010 Imbagħad jien ser malloc xulxin għal "a", hekk "ba", 309 00:19:13,010 --> 00:19:16,290 u mbagħad jien ser jitwaqqaf huwa kelma li veru. 310 00:19:16,290 --> 00:19:18,950 Minħabba "ba" hija kelma. 311 00:19:18,950 --> 00:19:21,910 U mbagħad jekk irrid biex tara jekk "b" huwa f'dan dizzjunarju, 312 00:19:21,910 --> 00:19:26,730 I tista 'biss tmur għall-ewwel waħda, "b". I jinżlu, u nħares lejn kelma, u jgħid falza. 313 00:19:26,730 --> 00:19:30,110 Hekk mhuwiex kelma. Jekk I tixtieq li jiċċekkjaw "ba", 314 00:19:30,110 --> 00:19:38,010 Mmur għall-ewwel waħda, "b", u mbagħad mur "a", u nara vera, għalhekk huwa kelma. Jagħmel sens? 315 00:19:38,010 --> 00:19:41,950 Ħafna nies jiksbu konfuż bid jipprova. Nru? 316 00:19:41,950 --> 00:19:44,740 >> Aħħarnett, Huffman kodifikazzjoni. Huffman kodifikazzjoni huwa utli ħafna 317 00:19:44,740 --> 00:19:47,550 biex jiffrankaw memorja u kkompressat fajls test, 318 00:19:47,550 --> 00:19:52,270 biss minħabba ħafna drabi tuża "a" u "e", per eżempju, 319 00:19:52,270 --> 00:19:57,710 fid-dokumenti tiegħek, imma jien ma nafx jekk inti guys jużaw "q" jew "z" kemm. 320 00:19:57,710 --> 00:20:02,040 Wara biss 1 byte għal kull karattru wieħed, 321 00:20:02,040 --> 00:20:08,520 kull waħda - il-karattri 256 li għandna fit-tabella ASCII mhuwiex l-aħjar ħafna, 322 00:20:08,520 --> 00:20:11,410 sempliċiment minħabba li hemm xi karattri li tuża ħafna aktar, 323 00:20:11,410 --> 00:20:15,180 allura inti għandek probabbilment tuża memorja inqas għal dawk. 324 00:20:15,180 --> 00:20:17,560 Kif nista 'użu Huffman kodifika? 325 00:20:17,560 --> 00:20:20,010 Għandna nagħmlu siġra Huffman. 326 00:20:20,010 --> 00:20:23,370  A siġra Huffman għandha lymph 327 00:20:23,370 --> 00:20:27,760 li jkollhom simbolu li se tkun simili, "a", "b", "c", l-ittra, 328 00:20:27,760 --> 00:20:32,990 kwalunkwe ittra għandek, frekwenza li hija l-frekwenza li l-kelma tidher fit-test, 329 00:20:32,990 --> 00:20:36,280 li inti kienu joħolqu l-siġra Huffman għal, 330 00:20:36,280 --> 00:20:41,800 u mbagħad node li se punt għall-xellug tal-siġra Huffman 331 00:20:41,800 --> 00:20:47,210 u ieħor node li se punt lejn il-lemin. Hekk biss bħal siġra. 332 00:20:47,210 --> 00:20:49,440 Kif inti tibni siġra Huffman? 333 00:20:49,440 --> 00:20:54,020 Int ser pick-lymph 2 li jkollhom l-frekwenzi baxxi. 334 00:20:54,020 --> 00:20:56,490 Jekk għandek rabta int ser pick-lymph 2 335 00:20:56,490 --> 00:20:59,870 li jkollhom l-valuri ASCII aktar baxx ukoll. 336 00:20:59,870 --> 00:21:02,420 Imbagħad int ser toħloq siġra ġdida out ta'dawk il-lymph 2 337 00:21:02,420 --> 00:21:08,030 li ser ikollhom il-frekwenza magħquda fl-node ġenitur. 338 00:21:08,030 --> 00:21:13,240 U allura int ser ineħħu lit-tfal 2 mill-foresta 339 00:21:13,240 --> 00:21:15,570 u jibdilhom mal-ġenitur. 340 00:21:15,570 --> 00:21:18,930 U int ser nirrepeti li sakemm inti biss għandek 1 siġar fil-foresti. 341 00:21:18,930 --> 00:21:23,840 Mela ejja ara kemm inti tagħmel siġra Huffman għall ZAMYLA. 342 00:21:23,840 --> 00:21:29,220 Tista 'tara hawnhekk li l-ittri jkollhom frekwenza 1 ħlief għas "A", li għandu frekwenza ta' 2. 343 00:21:29,220 --> 00:21:34,090 So I maħluqa nodes għal-ittri kollha nressaq fl-ordni tal-valur ASCII u l-frekwenza. 344 00:21:34,090 --> 00:21:40,090 Mela jekk jien tixtieq li joħolqu l-ewwel siġra, se jkun ma '"L" u "M". 345 00:21:40,090 --> 00:21:43,100 Allura huwa hawnhekk. Il-frekwenza tal-par se jkun 2 346 00:21:43,100 --> 00:21:49,470 għaliex dan huwa 1 + 1, allura l-2 li jmiss mal-frekwenzi aktar baxxi huma "Y" u "Z". 347 00:21:49,470 --> 00:21:53,180 U mbagħad I kollha minnhom tkun - ikollhom frekwenza ta '2. 348 00:21:53,180 --> 00:22:00,470 Iva, liema huma dawk li għandhom il-valur ASCII aktar baxx għall-wieħed li jmiss? 349 00:22:00,470 --> 00:22:04,830 "A" u "L". So I joħolqu l-node ġdid, 350 00:22:04,830 --> 00:22:09,930 u finalment, huwa 4 u 2, so 2 se tkun fuq ix-xellug. 351 00:22:09,930 --> 00:22:12,430 U dan huwa l-siġra Huffman. 352 00:22:12,430 --> 00:22:16,060 Imbagħad jekk I jridu jiktbu xi test, 353 00:22:16,060 --> 00:22:24,440 bħal fil binarja li jikkonvertu test, bl-użu siġra Huffman huwa faċli ħafna. 354 00:22:24,440 --> 00:22:30,220 Per eżempju, jekk ngħid li jiċċaqalqu lejn ix-xellug huwa ta '0 u jimxu lejn il-lemin huwa 1, 355 00:22:30,220 --> 00:22:32,410 X'inhu li se jirrappreżenta? 356 00:22:32,410 --> 00:22:35,530 Allura simili 1, 1, hekk id-dritt, id-dritt, 357 00:22:35,530 --> 00:22:40,370 u mbagħad 0, sabiex titħalla tkun L, u mbagħad 1, 0, 0. 358 00:22:40,370 --> 00:22:43,950 Allura 1, 0, hekk biss 1, 0, "A". 359 00:22:43,950 --> 00:22:47,540 U mbagħad 0, 1, sabiex "Z". 360 00:22:47,540 --> 00:22:52,170 U mbagħad 1, 0, 0 - l-ebda. 361 00:22:52,170 --> 00:22:56,780 0, 0 se tkun "Y", hekk għażżien. 362 00:22:56,780 --> 00:23:06,060 Hekk li kollox għalija, Rob għaddej biex tieħu f'idejha. 363 00:23:06,060 --> 00:23:08,400 >> [Rob Bowden] Għalhekk, Ġimgħa 7 Jittieħed. 364 00:23:08,400 --> 00:23:11,390 Imxejna ltqajna ħafna li jmorru fuq verament mgħaġġel. 365 00:23:11,390 --> 00:23:13,430 Operaturi bitwise, overflow buffer, 366 00:23:13,430 --> 00:23:16,760 Librerija CS50, imbagħad HTML, HTTP, CSS. 367 00:23:16,760 --> 00:23:20,990 Kollox bħal 15 sa 20 minuta. 368 00:23:20,990 --> 00:23:24,330 Operaturi bitwise. Hemm 6 minnhom li għandek bżonn tkun taf. 369 00:23:24,330 --> 00:23:31,200 Bitwise u, bitwise jew, XOR, shift xellug, shift dritt, u mhux. 370 00:23:31,200 --> 00:23:35,420 Dritt shift u ma jkunx inti bilkemm raw lecture fil-livelli kollha. 371 00:23:35,420 --> 00:23:40,480 Aħna ser jmorru fuq dan malajr hawnhekk, iżda huwa tajjeb li tkun taf li dawn huma l-6 li jeżistu. 372 00:23:40,480 --> 00:23:45,070 Ftakar li l-operaturi bitwise huma simili meta inti tagħmel 3 + 4. 373 00:23:45,070 --> 00:23:49,420 M'intix jittrattaw il-binarju ta '3 u 4. 374 00:23:49,420 --> 00:23:56,550 Mal-operaturi bitwise int attwalment jittrattaw il-bits individwali tan-numri 3 u 4. 375 00:23:56,550 --> 00:23:59,120 >> Allura l-ewwel waħda li aħna ser ngħid huwa bitwise le, 376 00:23:59,120 --> 00:24:02,340 u kull ma huwa flip l-bits. 377 00:24:02,340 --> 00:24:05,500 Allura hawnhekk, jekk int bil-miktub dan fis-C, inti ma jiktbu 378 00:24:05,500 --> 00:24:09,380 bħala ~ 11011 jew kwalunkwe, inti tiktibha tixtieq ~ 4, 379 00:24:09,380 --> 00:24:12,970 u allura flip-rappreżentazzjoni binarja ta '4. 380 00:24:12,970 --> 00:24:24,800 Allura hawnhekk, ~ ta 'xi numru binarju 1101101 se eżattament flip tal kollha 1 għal 0 u tan 0 kollha 1 ta. 381 00:24:24,800 --> 00:24:27,600 Kif jgħidu li hemm, l-użu frekwenti ta 'dan, 382 00:24:27,600 --> 00:24:30,830 u aħna ser tara dan fil-bit, huwa simili irridu li toħroġ bi xi numru 383 00:24:30,830 --> 00:24:35,460 fejn kollha tal-bits huma 1, ħlief għal wieħed minnhom. 384 00:24:35,460 --> 00:24:38,560 Allura huwa ġeneralment aktar faċli biex jesprimu n-numru 385 00:24:38,560 --> 00:24:40,630 fejn biss li ftit wieħed huwa stabbilit, 386 00:24:40,630 --> 00:24:44,650 u imbagħad ħu l-~ ta 'dan, sabiex kull daqsxejn oħra huwa stabbilit ħlief għal li wieħed. 387 00:24:44,650 --> 00:24:50,300 Allura dak hu li aħna qed tmur biex jużaw aktar fil-daqsxejn. 388 00:24:50,300 --> 00:24:58,220 >> Bitwise jew. Hawnhekk huma 2 numri binarja, u dawn in-numri 2 389 00:24:58,220 --> 00:25:00,780 huma pjuttost rappreżentattivi, peress li tirrappreżenta kull possibbli 390 00:25:00,780 --> 00:25:07,290 kombinazzjoni ta 'bits inti tista bżonn biex joperaw fuq. 391 00:25:07,290 --> 00:25:13,540 Hawnhekk, meta I or'd kull bit, aħna qed biss ser tqabbel dritta stabbiliti. 392 00:25:13,540 --> 00:25:15,410 Allura fuq ix-xellug għandna 1 u 1. 393 00:25:15,410 --> 00:25:20,510 Meta I bitwise | dawk, dak li jien se tikseb? One. 394 00:25:20,510 --> 00:25:25,320 Imbagħad bitwise | 0 u 1 huwa ser jagħti me? One. 395 00:25:25,320 --> 00:25:27,840 Bitwise 1 u 0 se tkun l-istess ħaġa, wieħed. 396 00:25:27,840 --> 00:25:31,880 Bitwise 0 | 0 ser jagħti lili 0. 397 00:25:31,880 --> 00:25:37,300 Allura l-uniku każ fejn nista 'nikseb 0 hija fil-0 | 0 każ. 398 00:25:37,300 --> 00:25:40,020 U inti tista 'taħseb li biss bħal ORs loġiku tiegħek. 399 00:25:40,020 --> 00:25:44,830 Mela jekk inti taħseb 1 kif vera u 0 falza, l-istess ħaġa tapplika hawnhekk. 400 00:25:44,830 --> 00:25:50,040 Hekk vera jew vera hija vera; vera jew falza huwa veru. 401 00:25:50,040 --> 00:25:57,150 Falza jew vera hija vera; falza jew foloz hija l-unika ħaġa li fil-fatt falza. 402 00:25:57,150 --> 00:26:00,100 Hawn l-eżempju li inti għandek tkun taf 403 00:26:00,100 --> 00:26:05,160 bħala eżempju pjuttost tajba ta 'meta l-operaturi bitwise huma użati. 404 00:26:05,160 --> 00:26:08,660 Hawnhekk jekk aħna jew kapital "A" ma Ox20, 405 00:26:08,660 --> 00:26:11,830 u aħna ser tħares lejn dawn fit-tieni, irridu jiksbu xi ħaġa. 406 00:26:11,830 --> 00:26:16,020 U jekk aħna jew zghar "a" ma Ox20, irridu jiksbu xi ħaġa. 407 00:26:16,020 --> 00:26:26,750 Mela ejja pull up tabella ASCII. 408 00:26:26,750 --> 00:26:34,000 Okay. Hawnhekk naraw li "A" hija - 409 00:26:34,000 --> 00:26:36,920 hawnhekk għandna "A" hija informazzjoni 65. 410 00:26:36,920 --> 00:26:45,120 Imma jien ser jmorru ma hexadecimal, li huwa Ox41. 411 00:26:45,120 --> 00:26:48,280 Pretty żgur aħna raw dan fil-klassi. I think we raw dan fil-klassi 412 00:26:48,280 --> 00:26:52,730 li huwa pjuttost faċli li wieħed jaqleb minn hexadecimal għal binarja. 413 00:26:52,730 --> 00:26:55,280 So here, jekk jien tixtieq li tqiegħed 4 fis binarju, 414 00:26:55,280 --> 00:26:59,550 li jinsab biss ser ikunu 0100. 415 00:26:59,550 --> 00:27:03,620 Dan huwa 1 tal-post, post 2, l-4 ta 'post, għalhekk dan huwa 4. 416 00:27:03,620 --> 00:27:08,550 Imbagħad I tista 'tinqasam 1 fis binarju, li se tkun 0001. 417 00:27:08,550 --> 00:27:14,280 U hekk dan se jkun ir-rappreżentanza ta 'A "fl binarja. 418 00:27:14,280 --> 00:27:22,720 Teħid zghar "a", huwa issa se tkun Ox61, 419 00:27:22,720 --> 00:27:27,050 fejn, qsim dawn up fis binarju tagħha, so a 6 - 420 00:27:27,050 --> 00:27:37,830 Ejja filfatt jagħmlu dan - m'hemmx Eraser? Eraser. 421 00:27:37,830 --> 00:27:48,220 Ox61. Allura qsim 6 fis binarja se tkun 0 + 4 + 2 + 0. 422 00:27:48,220 --> 00:27:54,610 U qsim 1 se tkun 0001. 423 00:27:54,610 --> 00:27:56,520 Ħarsa lejn id-differenza bejn dawn 2, 424 00:27:56,520 --> 00:28:04,250 naraw li l-unika differenza bejn zghar u kapital "A" huwa dan bitsingle. 425 00:28:04,250 --> 00:28:11,810 Allura ġejjin lura hawn - okay. 426 00:28:11,810 --> 00:28:15,920 Niġu lura għal hawn, jekk inħarsu lejn dak il bit Ox20 hija, 427 00:28:15,920 --> 00:28:22,210 Ox20 hekk qsim fis binarju tagħha, 428 00:28:22,210 --> 00:28:27,310 huwa 0010, 0000. 429 00:28:27,310 --> 00:28:33,470 Ox20, l-uniku ftit li huwa stabbilit huwa dan daqsxejn li ninsabu kkonċernati, 430 00:28:33,470 --> 00:28:38,210 ma 'bidla bejn il-kapital u zghar "a". 431 00:28:38,210 --> 00:28:47,610 Jekk I jew "A", li huwa dan wieħed, "A", 432 00:28:47,610 --> 00:28:50,580 jekk I jew "A" ma Ox20, 433 00:28:50,580 --> 00:28:53,490 dak li jien se tikseb? 434 00:28:53,490 --> 00:28:58,960 [Student, inaudible] >> zghar "a", minħabba li għaddej biex flip din id-daqsxejn għal 1. 435 00:28:58,960 --> 00:29:04,170 U jekk I jew "a" ma Ox20, dak li jien se tikseb? 436 00:29:04,170 --> 00:29:08,780 Zghar a, għaliex biss oring "a" ma Ox20, 437 00:29:08,780 --> 00:29:14,580 Jien biss se tkun oring din id-daqsxejn waħda għal 1, huwa diġà 1, hekk ma jimpurtax. 438 00:29:14,580 --> 00:29:17,960 Allura irridu jiksbu "a" u "a". 439 00:29:17,960 --> 00:29:24,820 >> Bitwise u. Għal darb'oħra, nistgħu naħsbu ta 'dan bħala kontroparti loġiku u tagħna. 440 00:29:24,820 --> 00:29:28,180 Fuq ix-xellug għandna veru & veru. 441 00:29:28,180 --> 00:29:31,160 Li għaddej biex ikunu vera, u għall-każijiet kollha, 442 00:29:31,160 --> 00:29:36,270 falza & vera jew vera u falza, jew falza & falza, 443 00:29:36,270 --> 00:29:38,550 ebda wieħed minn dawk l-affarijiet huma veri. 444 00:29:38,550 --> 00:29:44,170 Allura dak li aħna jispiċċaw jkollna huwa 1000. 445 00:29:44,170 --> 00:29:48,830 Allura issa, hawn, hawn fejn stajt użat il-bitwise trusty le, 446 00:29:48,830 --> 00:29:52,230 fejn kellna Ox20. 447 00:29:52,230 --> 00:29:54,350 Allura dan huwa Ox20. 448 00:29:54,350 --> 00:29:59,570 Issa dak I trid tagħmel, bitwise ~ ta Ox20. 449 00:29:59,570 --> 00:30:03,600 Li ser flip l-bits. 450 00:30:03,600 --> 00:30:09,330 So I jkollhom 1101, 1111. 451 00:30:09,330 --> 00:30:18,940 U hekk "A" anded mal ~ Ox20 ser jagħti lili dak? 452 00:30:18,940 --> 00:30:22,430 L-unika bit aħna verament bżonn biex jaħsbu dwar huwa dan wieħed, 453 00:30:22,430 --> 00:30:26,020 peress li, jekk dawn il bits huma stabbiliti għal 1, 454 00:30:26,020 --> 00:30:29,000 allura aħna qed tmur biex tikseb eżattament dak "A" kien, 455 00:30:29,000 --> 00:30:31,260 ħlief għal, possibilment, dak li dan bit hija. 456 00:30:31,260 --> 00:30:34,460 Għaliex jekk kien 1, issa li għaddej biex jiġu stabbiliti għal 0, 457 00:30:34,460 --> 00:30:39,810 għaliex dak kollu dan huwa, anded ma 'dan se tkun 0. 458 00:30:39,810 --> 00:30:43,280 Allura dak li huwa "A" & ~ Ox20 ser jagħti me? 459 00:30:43,280 --> 00:30:48,200 [Studenti twieġeb, inaudible] >> U dak huwa 'a' u - huwa "A". 460 00:30:48,200 --> 00:30:52,170 U dak li huwa 'a' & ~ Ox20 ser jagħti me? 461 00:30:52,170 --> 00:30:56,720 "A." Minħabba li bħalissa dan huwa ta '1. 462 00:30:56,720 --> 00:30:59,570 Anding ma 'din 0 se jagħmilha 0, 463 00:30:59,570 --> 00:31:02,530 u issa aħna qed tmur biex tikseb "A". 464 00:31:02,530 --> 00:31:06,600 >> Kemm huma "A," u l-aħħar iżda mhux l-inqas ta 'dan it-tip, 465 00:31:06,600 --> 00:31:10,830 għandna XOR. Huwa simili ħafna jew, 466 00:31:10,830 --> 00:31:14,400 ħlief dan ifisser esklussivament jew. 467 00:31:14,400 --> 00:31:18,420 Dan huwa simili dak li inti normalment jaħsbu bħala jew fid-dinja reali. 468 00:31:18,420 --> 00:31:23,190 Allura inti tagħmel jew "x" jew "y", iżda mhux it-tnejn. 469 00:31:23,190 --> 00:31:28,700 Hawnhekk 1 ^ 1 se tkun 0. 470 00:31:28,700 --> 00:31:33,650 Minħabba vera, dan huwa - din ma taħdimx kif ukoll mal-veru loġiku u falza 471 00:31:33,650 --> 00:31:37,150 bħala bitwise & u jew jagħmlu, 472 00:31:37,150 --> 00:31:40,100 imma veru ^ vera hija falza. 473 00:31:40,100 --> 00:31:44,810 Għaliex aħna biss jridu jirritornaw veru jekk wieħed biss minnhom huwa veru. 474 00:31:44,810 --> 00:31:50,950 Allura 1 ^ 1 hija 0. What about 0 ^ 1? 475 00:31:50,950 --> 00:31:56,010 Huwa 1. 1 ^ 0 hija l-1, 0 ^ 0 hija 0. 476 00:31:56,010 --> 00:32:03,890 Allura fiċ-ċirkustanzi kollha, 0 bitwise xi ħaġa 0 se tkun 0. 477 00:32:03,890 --> 00:32:10,270 1 bitwise xi ħaġa 0 jew 0 bitwise 1, 478 00:32:10,270 --> 00:32:14,660 jekk huwa | jew ^, dan ser ikun ta '1, u jekk huwa & inneħħu ikunu 0. 479 00:32:14,660 --> 00:32:20,850 U l-uniku każ fejn 1 bitwise 1 mhuwiex 1 huwa ma esklussiva jew. 480 00:32:20,850 --> 00:32:24,580 C'est 0110. 481 00:32:24,580 --> 00:32:36,520 Allura hawn issa, jużaw XOR - hekk aħna qed lura fi 20. 482 00:32:36,520 --> 00:32:43,480 "A" ^ Ox20 huwa dawn bits 2 aħna qed jitqabblu. 483 00:32:43,480 --> 00:32:50,020 Allura 1 ^ 0 ser jagħti me a liema? A waħda. 484 00:32:50,020 --> 00:32:58,430 "A" ^ Ox20 ser jagħti me? Zghar a. 485 00:32:58,430 --> 00:33:04,010 "A" ^ Ox20 ser jagħti me? Kapital A. 486 00:33:04,010 --> 00:33:09,310 Minħabba dak kollu din qed tagħmel, dan XORing ma Ox20 487 00:33:09,310 --> 00:33:15,380 effettivament flipping x'ikun dan bit hija. 488 00:33:15,380 --> 00:33:21,240 Jekk dan huwa ta '0, issa għaddej biex issir 1. 489 00:33:21,240 --> 00:33:26,160 Peress li din hija 1, 1 ^ 1 hija 0. 490 00:33:26,160 --> 00:33:33,280 Allura tagħna "a" saret "A", u "A" tagħna saret "a". 491 00:33:33,280 --> 00:33:36,910 Allura XOR huwa mod verament konvenjenti ta 'ftit flipping-każ. 492 00:33:36,910 --> 00:33:39,960 Inti biss jixtiequ jtenni fuq serje ta 'ittri 493 00:33:39,960 --> 00:33:44,330 u supplenti-każ ta 'kull karattru wieħed, 494 00:33:44,330 --> 00:33:50,680 inti biss XOR kollox ma Ox20. 495 00:33:50,680 --> 00:33:55,220 >> Issa fadlilna shift. Bidla xellug huwa biss se, bażikament, 496 00:33:55,220 --> 00:34:01,250 imbotta kollha tal-numri fi, jew lejn ix-xellug, u daħħal 0 tal warajhom. 497 00:34:01,250 --> 00:34:05,550 Allura hawnhekk għandna 00001101. 498 00:34:05,550 --> 00:34:08,560 Aħna qed tmur biex timbotta 3 0 tal-lemin, 499 00:34:08,560 --> 00:34:13,580 u nikbru 01101000. 500 00:34:13,580 --> 00:34:16,380 F'termini nonbinary, 501 00:34:16,380 --> 00:34:24,699 naraw li din verament jittrattaw 13 left-jixxaqleb bi 3, li jagħtina 104. 502 00:34:24,699 --> 00:34:32,530 Ċaqliq Allura xellug, naraw hawn, x << y hija bażikament x * 2 ^ y. 503 00:34:32,530 --> 00:34:40,139 13 * 2 ^ 3, 2 ^ 3 hija 8, so 13 * 8 huwa 104. 504 00:34:40,139 --> 00:34:45,679 Jekk inti biss jaħsbu dwar binarju b'mod ġenerali, kif kull ċifri, 505 00:34:45,679 --> 00:34:49,530 jekk nibdew mid-dritt, huwa l-1 ta 'post, imbagħad poġġi l-2, allura l-4 ta' post. 506 00:34:49,530 --> 00:34:51,330 Allura billi timbotta 0 tal-lemin, 507 00:34:51,330 --> 00:34:55,080 aħna qed biss timbotta l-affarijiet li kienu fil-4 ta 'post għall-post tal-8, il- 508 00:34:55,080 --> 00:34:57,920 u affarijiet li kienu fis-seħħ 8 għall-16 ta 'post. 509 00:34:57,920 --> 00:35:01,280 Kull bidla biss timmultiplika bi 2. Yeah? 510 00:35:01,280 --> 00:35:05,210 [Student] X'jiġri jekk inti qalbu minn 5? 511 00:35:05,210 --> 00:35:10,790 [Bowden] Jekk inti qalbu minn 5 inti biss titlef ċifri. 512 00:35:10,790 --> 00:35:15,410 Inevitabbilment, huwa l-istess ħaġa. Bħal, interi huma biss 32 bits, 513 00:35:15,410 --> 00:35:20,750 hekk jekk inti żid 2 interi verament kbir, hija biss ma tajbin fil integer. 514 00:35:20,750 --> 00:35:23,660 Allura huwa l-istess ħaġa hawn. Jekk inti qalbu minn 5, 515 00:35:23,660 --> 00:35:25,650 aħna biss jitilfu dan wieħed. 516 00:35:25,650 --> 00:35:28,820 U dan huwa tip ta 'dak li jfisser bi "bejn wieħed u ieħor," 517 00:35:28,820 --> 00:35:37,470 fejn jekk inti shift wisq, inti titlef bits. 518 00:35:37,470 --> 00:35:39,830 >> Shift Dritt se tkun l-oppost, 519 00:35:39,830 --> 00:35:43,090 fejn aħna qed tmur biex shove 0 off-aħħar, 520 00:35:43,090 --> 00:35:48,400 u għall-għanijiet tagħna, imla 0'S MILL-xellug. 521 00:35:48,400 --> 00:35:52,910 Allura tagħmel dan, aħna qed bażikament rivers dak li aħna kienu diġà għamlu. 522 00:35:52,910 --> 00:35:57,780 U naraw li t-tliet 0 dwar id-dritt għadek waqa off, 523 00:35:57,780 --> 00:36:02,020 u għandna imbuttat il-1101 it-triq kollha lejn il-lemin. 524 00:36:02,020 --> 00:36:08,380 Dan qed tagħmel 104 >> 3, li huwa, effettivament, x / 2 ^ y. 525 00:36:08,380 --> 00:36:11,200 Allura issa, hawn, din hija idea simili. 526 00:36:11,200 --> 00:36:18,720 Għaliex huwa biss madwar x / 2 ^ y, u mhux fil-fatt x / 2 ^ y? 527 00:36:18,720 --> 00:36:22,240 Għaliex jekk I kien qaleb b'4, nixtieq tilfu 1. 528 00:36:22,240 --> 00:36:25,950 Bażikament, dak li inti taħseb, just think ta 'diviżjoni numru sħiħ b'mod ġenerali. 529 00:36:25,950 --> 00:36:31,070 Allura, bħal 5/2 huwa 2. Mhuwiex 2.5. 530 00:36:31,070 --> 00:36:35,000 Huwa l-istess idea hawnhekk. Meta aħna iddividi 2, 531 00:36:35,000 --> 00:36:39,910 nistgħu jitilfu bits fard tul it-triq. 532 00:36:39,910 --> 00:36:43,870 Allura issa - li hija għall bitwise. Li kollox għandek bżonn tkun taf. 533 00:36:43,870 --> 00:36:46,340 Ftakar il-każijiet ta 'użu rajna fil-klassi, 534 00:36:46,340 --> 00:36:49,340 bħal maskra bit hija utli għall-operaturi bitwise, 535 00:36:49,340 --> 00:36:53,220 jew inti jużawhom għal maskri bit. 536 00:36:53,220 --> 00:36:58,620 Ittri kapitali u ittri zghar, konverżjonijiet huwa eżempju pjuttost prototip. 537 00:36:58,620 --> 00:37:01,640 >> Okay, so buffer overflow attakki. 538 00:37:01,640 --> 00:37:05,110 Kulħadd tiftakar dak li kien ħażin ma 'din il-funzjoni? 539 00:37:05,110 --> 00:37:10,140 Avviż aħna ddikjarat firxa ta '12 bytes, 12 Chars, 540 00:37:10,140 --> 00:37:18,510 u allura aħna kopja fis buffer tagħna ta '12 Chars l-bar string kollu. 541 00:37:18,510 --> 00:37:25,080 Allura x'inhu l-problema hawn? 542 00:37:25,080 --> 00:37:32,270 In-numru magic 12 għandhom pretty ħafna immedjatament pop out kif - għaliex 12? 543 00:37:32,270 --> 00:37:35,050 X'jiġri jekk bar jiġri li jkun aktar minn 12-il karattru? 544 00:37:35,050 --> 00:37:41,200 X'jiġri jekk bar huwa miljuni ta 'karattri? 545 00:37:41,200 --> 00:37:46,010 Hawnhekk il-kwistjoni hija memcpy. Jekk bar huwa twil biżżejjed, 546 00:37:46,010 --> 00:37:50,330 se biss kompletament - "c", "c" ma 'kura li kien biss 12 karattri; 547 00:37:50,330 --> 00:37:53,280 "C" ma 'kura li ma jistgħux jitwaħħlu li ħafna bytes. 548 00:37:53,280 --> 00:37:58,250 Hija se jissostitwixxu biss kompletament char, 12-il bytes konna allokati għal dan, 549 00:37:58,250 --> 00:38:01,830 u kollox passat fil-memorja li attwalment ma jappartjenix għal dak buffer 550 00:38:01,830 --> 00:38:06,520 bi kwalunkwe-bar sekwenza hu. 551 00:38:06,520 --> 00:38:09,780 Allura dan kien l-istampa rajna fil-klassi 552 00:38:09,780 --> 00:38:12,220 fejn għandna munzell tagħna jikbru. 553 00:38:12,220 --> 00:38:16,040 Għandek jintużaw biex dawn l-istampi jew tikseb familjari magħhom mill-ġdid. 554 00:38:16,040 --> 00:38:21,260 Aħna munzell tagħna jikbru, indirizzi memorja tibda b'0 fil-quċċata 555 00:38:21,260 --> 00:38:26,270 u jikbru sa tixtieq 4 biljuni fil-qiegħ. 556 00:38:26,270 --> 00:38:28,820 Għandna firxa tagħna "c" x'imkien fil-memorja, 557 00:38:28,820 --> 00:38:32,260 allura għandna pointer tagħna biex bar dritt taħtu, 558 00:38:32,260 --> 00:38:38,720 u allura għandna dan il-werrej qafas salvati indirizz ta 'ritorn tagħna u munzell ta' rutina ġenitur tagħna. 559 00:38:38,720 --> 00:38:40,800 Ftakar dak l-indirizz ta 'ritorn huwa? 560 00:38:40,800 --> 00:38:45,360 Huwa meta prinċipali sejħiet foo funzjoni, jitlob bar funzjoni, 561 00:38:45,360 --> 00:38:48,100 inevitabbilment, bar prospetti. 562 00:38:48,100 --> 00:38:52,610 Allura meta jerġa bar, jeħtieġ li tkun taf li sejjer lura l-foo li hija imsejħa. 563 00:38:52,610 --> 00:39:01,360 Allura l-indirizz ta 'ritorn huwa l-indirizz tal-funzjoni li għandu li jirritornaw għall meta l-funzjoni terġa' lura. 564 00:39:01,360 --> 00:39:05,830 Ir-raġuni li l-importanti għal attakki tifwir buffer għaliex, konvenjenti, 565 00:39:05,830 --> 00:39:09,580 hackers tixtieq li bidla f'dak l-indirizz ta 'ritorn. 566 00:39:09,580 --> 00:39:14,950 Minflok tmur lura għall foo, jien ser jmorru lura għall kull fejn il-Hacker trid lili li jmorru lura għall. 567 00:39:14,950 --> 00:39:17,760 U, konvenjenti, fejn il-Hacker spiss trid tmur lura għall- 568 00:39:17,760 --> 00:39:22,400 huwa l-bidu tal-buffer li aħna oriġinarjament kien. 569 00:39:22,400 --> 00:39:26,170 Allura avviż, għal darb'oħra, Little Indjan. 570 00:39:26,170 --> 00:39:28,490 L-apparat huwa eżempju ta 'sistema Indjan Little, 571 00:39:28,490 --> 00:39:34,140 hekk integer jew pointer hija maħżuna mal-bytes maqluba. 572 00:39:34,140 --> 00:39:38,980 Allura hawnhekk naraw - huwa dan? Yeah. 573 00:39:38,980 --> 00:39:45,660 Naraw Ox80, OxC0, Ox35, OxO8. 574 00:39:45,660 --> 00:39:48,250 Ftakar il-numri hexadecimal? 575 00:39:48,250 --> 00:39:50,640 Aħna ma jaqleb l-ċifri hexadeċimali fl Little Indjan, 576 00:39:50,640 --> 00:39:56,110 għaliex 2 numri hexadecimal jiffurmaw byte waħda, u aħna jaqilbu l-bytes. 577 00:39:56,110 --> 00:40:00,300 C'est pourquoi aħna ma taħżen, bħal, 80530CO8. 578 00:40:00,300 --> 00:40:07,520 Aħna taħżen, minflok, kull par ta '2 numri, li jibdew mid-dritt. 579 00:40:07,520 --> 00:40:10,880 Li indirizz jirreferi għall-indirizz tal-bidu 580 00:40:10,880 --> 00:40:15,190 ta 'buffer tagħna li aħna fil-fatt riedu kopja fil fl-ewwel post. 581 00:40:15,190 --> 00:40:19,230 Ir-raġuni li utli huwa minħabba, jekk dak l-attakkant 582 00:40:19,230 --> 00:40:24,100 ġara li, minflok li string li kien biss 583 00:40:24,100 --> 00:40:27,060 sensiela jagħmlux ħsara ta 'prodotti simili, l-isem tagħhom jew xi ħaġa, 584 00:40:27,060 --> 00:40:33,900 dak jekk, minflok, li string kienu biss xi kodiċi arbitrarja 585 00:40:33,900 --> 00:40:38,610 li għamilt dak kollu li riedu li tagħmel? 586 00:40:38,610 --> 00:40:45,630 Sabiex ikunu jistgħu - I ma tistax think ta 'kull kodiċi jibred. 587 00:40:45,630 --> 00:40:47,780 Dan jista 'jkun xejn, għalkemm. Kwalunkwe kodiċi diżastruż. 588 00:40:47,780 --> 00:40:51,440 Jekk riedu, dawn jistgħu biss jagħmlu xi ħaġa fuq difetti seg, iżda li jkunu inutli. 589 00:40:51,440 --> 00:40:54,950 Dawn normalment jagħmlu dan Hack sistema tiegħek. 590 00:40:54,950 --> 00:40:59,930 >> Okay. Librerija CS50. 591 00:40:59,930 --> 00:41:04,800 Dan huwa, bażikament, getInt, getString, dawk il-funzjonijiet kollha we pprovduti għalik. 592 00:41:04,800 --> 00:41:10,630 Allura aħna għandna * string char, u dak l-estrazzjoni li aħna nefaħ bogħod 593 00:41:10,630 --> 00:41:12,450 f'xi punt matul is-semestru. 594 00:41:12,450 --> 00:41:18,220 Ftakar li string huwa biss firxa ta 'karattri. 595 00:41:18,220 --> 00:41:23,240 Allura hawnhekk naraw verżjoni mqassra ta getString. 596 00:41:23,240 --> 00:41:25,920 Għandek tfittex lura lejn din li tiftakar kif huwa attwalment implimentati. 597 00:41:25,920 --> 00:41:30,950 Dettalji ewlenin huma, avviż nikbru fil karattru wieħed fi żmien 598 00:41:30,950 --> 00:41:34,570 minn standard, li huwa biss bħalna ittajpjar fuq il-keyboard. 599 00:41:34,570 --> 00:41:37,890 Allura karattru wieħed fi żmien, u jekk irridu jiksbu wisq karattri, 600 00:41:37,890 --> 00:41:40,580 hekk jekk n + 1 hi akbar mill-kapaċità, 601 00:41:40,580 --> 00:41:44,140 allura għandna bżonn li tiżdied il-kapaċità ta 'buffer tagħna. 602 00:41:44,140 --> 00:41:47,780 Allura hawnhekk aħna qed jirdoppja d-daqs ta 'buffer tagħna. 603 00:41:47,780 --> 00:41:51,840 U li jżomm għaddejjin; aħna daħħal il-karattru fil-buffer tagħna 604 00:41:51,840 --> 00:41:56,220 sakemm nirċievu linja ġdida jew tmiem tal-fajl jew kwalunkwe, 605 00:41:56,220 --> 00:41:59,380 f'liema każ, aħna qed isir mal-spag u mbagħad l getString reali 606 00:41:59,380 --> 00:42:05,120 jiċkien l-memorja, bħal jekk aħna allokati memorja wisq inneħħu mur lura u tiċkien a bit. 607 00:42:05,120 --> 00:42:08,830 Allura aħna ma jurux li, imma l-idea prinċipali huwa 608 00:42:08,830 --> 00:42:11,960 għandu jinqara karattru wieħed fi żmien. 609 00:42:11,960 --> 00:42:17,140 Hija ma tistax biss jinqraw ħaġa sħiħa f'daqqa, 610 00:42:17,140 --> 00:42:19,550 minħabba buffer tagħhom hija biss ta 'ċertu daqs. 611 00:42:19,550 --> 00:42:26,590 Allura jekk il-string li tipprova ddaħħal fil buffer hija kbira wisq, allura overflow. 612 00:42:26,590 --> 00:42:28,940 So here we jiġi evitat li biss qari karattru wieħed 613 00:42:28,940 --> 00:42:33,750 fi żmien u li qed jikber kull meta għandna bżonn. 614 00:42:33,750 --> 00:42:40,270 Allura getInt u l-funzjonijiet l-oħra tal-librerija CS50 għandhom tendenza li jużaw getString 615 00:42:40,270 --> 00:42:42,310 fil-implimentazzjonijiet tagħhom. 616 00:42:42,310 --> 00:42:45,370 So I enfasizzat l-affarijiet importanti hawn. 617 00:42:45,370 --> 00:42:49,460 Huwa jappella getString tikseb string. 618 00:42:49,460 --> 00:42:51,710 Jekk getString naqas milli jirritornaw memorja, 619 00:42:51,710 --> 00:42:54,270 ftakar li getString mallocs xi ħaġa, sabiex kull meta inti sejħa getString 620 00:42:54,270 --> 00:42:57,820 inti m'għandekx (mhux intelliġibbli) ħielsa li string li inti ltqajna. 621 00:42:57,820 --> 00:43:02,870 Allura hawnhekk, jekk hija naqset milli malloc xi ħaġa, nerġgħu lura INT_MAX biss bħala bandiera li, 622 00:43:02,870 --> 00:43:05,650 ħej, aħna ma kinux verament kapaċi li tikseb numru sħiħ. 623 00:43:05,650 --> 00:43:10,830 Għandek jinjora kwalunkwe I ritorn lilek, jew 624 00:43:10,830 --> 00:43:15,540 inti ma għandhom jittrattaw dan bħala input valida. 625 00:43:15,540 --> 00:43:21,360 Fl-aħħarnett, jekk wieħed jassumi li ma tirnexxi, nużaw sscanf ma 'dik il-bandiera speċjali, 626 00:43:21,360 --> 00:43:23,820 li tfisser, l-ewwel jaqblu integer, 627 00:43:23,820 --> 00:43:26,770 mbagħad iqabblu xi karattri wara li numru sħiħ. 628 00:43:26,770 --> 00:43:29,070 Allura avviż irridu li ugwali 1. 629 00:43:29,070 --> 00:43:32,940 Prospetti Allura sscanf kemm logħbiet jekk magħmul b'suċċess? 630 00:43:32,940 --> 00:43:37,010 Huwa ser jerġa 1 jekk imqabbla b'suċċess integer, 631 00:43:37,010 --> 00:43:40,890 huwa ser jerġa u 0 jekk ma jaqblux ma 'numru sħiħ, u ser jirritorna 2 632 00:43:40,890 --> 00:43:45,920 jekk mqabbla integer segwit minn xi karattru. 633 00:43:45,920 --> 00:43:49,780 Allura avviż aħna retry jekk aħna jaqblu xejn iżda 1. 634 00:43:49,780 --> 00:43:55,230 Hekk jekk dħalna 1, 2, 3, C, jew 1, 2, 3, X, 635 00:43:55,230 --> 00:43:57,400 imbagħad 1, 2, 3 se tikseb maħżuna fil-numru sħiħ, 636 00:43:57,400 --> 00:43:59,620 X se tikseb maħżuna fil-karattru, 637 00:43:59,620 --> 00:44:06,410 sscanf se jerġa 'lura 2, u aħna se retry, għaliex aħna biss trid integer. 638 00:44:06,410 --> 00:44:09,810 >> Malajr blowing permezz HTML, HTTP, CSS. 639 00:44:09,810 --> 00:44:15,340 HyperText Markup Language hija l-istruttura u semantika tal-web. 640 00:44:15,340 --> 00:44:19,960 Hawn hu l-eżempju minn lecture fejn għandna tags HTML. 641 00:44:19,960 --> 00:44:22,110 Għandna tags ras, tags ġisem, 642 00:44:22,110 --> 00:44:27,770 għandna eżempji ta 'tikketti vojta fejn aħna fil-fatt ma jkollhomx bidu u tag qrib, 643 00:44:27,770 --> 00:44:30,820 aħna biss għandhom rabta u l-immaġni. 644 00:44:30,820 --> 00:44:38,480 M'hemm l-ebda għeluq image tag; hemm biss tag waħda li accomplishes kollox l-tikketta teħtieġ li tagħmel. 645 00:44:38,480 --> 00:44:41,950 Il-link huwa eżempju; aħna ser tara kif inti link għal CSS, 646 00:44:41,950 --> 00:44:45,910 l-iskrittura huwa eżempju ta 'kif inti link għal JavaScript estern. 647 00:44:45,910 --> 00:44:53,100 Huwa pjuttost sempliċi, u ftakar, HTML mhix lingwa ta 'programmar. 648 00:44:53,100 --> 00:44:58,250 Hawnhekk, tiftakar kif inti tiddefinixxi forma jew għall-inqas dak li dan se tagħmel? 649 00:44:58,250 --> 00:45:01,740 Tali formola għandu azzjoni u metodu. 650 00:45:01,740 --> 00:45:06,210 Il-metodi inti se biss qatt tara huma IKOLLOK u POST. 651 00:45:06,210 --> 00:45:09,040 Allura IKOLLOK hija l-verżjoni fejn il-ħaġa gets jitqiegħdu fil-URL. 652 00:45:09,040 --> 00:45:11,680 POST huwa meta ma jitqiegħdu fil-URL. 653 00:45:11,680 --> 00:45:18,520 Minflok, kwalunkwe data mill-formola huwa mdaħħal aktar moħbi fit-talba HTTP. 654 00:45:18,520 --> 00:45:22,390 So here, azzjoni jiddefinixxi fejn it-talba HTTP tmur. 655 00:45:22,390 --> 00:45:27,490 Fejn għaddej huwa google.com / search. 656 00:45:27,490 --> 00:45:32,890 Metodu. Ftakar id-differenzi bejn IKOLLOK u POST, 657 00:45:32,890 --> 00:45:37,200 u, biss jgħidu bħala eżempju, jekk inti tixtieq li xi ħaġa bookmark. 658 00:45:37,200 --> 00:45:40,660 Qatt m'int se tkun kapaċi li jimmarka URL POST 659 00:45:40,660 --> 00:45:44,970 għaliex id-data mhijiex inkluża fil-URL. 660 00:45:44,970 --> 00:45:49,790 >> HTTP, issa, huwa HyperText Transfer Protocol. 661 00:45:49,790 --> 00:45:54,080 Il Transfer Protocol HyperText, inti tistenna li tittrasferixxi 662 00:45:54,080 --> 00:45:57,710 HyperText Markup Language, u ma. 663 00:45:57,710 --> 00:46:00,170 Iżda huwa jittrasferixxi wkoll xi ritratti li inti ssib fuq il-Web, 664 00:46:00,170 --> 00:46:05,400 xi downloads inti tagħmel tibda bħala talba HTTP. 665 00:46:05,400 --> 00:46:10,350 Allura HTTP huwa biss il-lingwa tal-World Wide Web. 666 00:46:10,350 --> 00:46:15,610 U hawn għandek bżonn biex jirrikonoxxu dan it-tip ta 'talba HTTP. 667 00:46:15,610 --> 00:46:19,300 Hawnhekk HTTP/1.1 fuq in-naħa biss jgħid li l-verżjoni 668 00:46:19,300 --> 00:46:21,570 tal-protokoll jien jużaw. 669 00:46:21,570 --> 00:46:25,770 Huwa pretty ħafna dejjem se jkunu HTTP/1.1, kif tkun taf tara dan. 670 00:46:25,770 --> 00:46:30,110 Imbagħad naraw li dan kien IKOLLOK, l-alternattiva tkun POST, li inti tista 'tara. 671 00:46:30,110 --> 00:46:40,790 U l-URL li I kien qed jipprova iżuru kien www.google.com/search?q = blah, blah, blah. 672 00:46:40,790 --> 00:46:44,240 Mela ftakar li dan, il-kwistjoni mark q = blah blah blah, 673 00:46:44,240 --> 00:46:49,040 huwa t-tip ta 'għalf li tiġi ppreżentata minn formola. 674 00:46:49,040 --> 00:46:51,830 Ir-rispons jista 'ritorn lejn lili se tfittex xi ħaġa bħal din. 675 00:46:51,830 --> 00:46:54,050 Għal darb'oħra, li tibda bil-protokoll, li se tkun li, 676 00:46:54,050 --> 00:46:59,190 segwita mill-kodiċi istat. Hawnhekk huwa 200 OK. 677 00:46:59,190 --> 00:47:05,060 U fl-aħħarnett, il-paġna web li I attwalment talab se jiġu segwiti. 678 00:47:05,060 --> 00:47:08,210 Il-kodiċi istat possibbli inti tista 'tara, u inti għandek tkun taf diversi minnhom. 679 00:47:08,210 --> 00:47:12,770 200 OK probabilment ikollok dehru qabel. 680 00:47:12,770 --> 00:47:17,830 403 Projbit, 404 Mhux Found, Error 500 Server Intern 681 00:47:17,830 --> 00:47:22,140 huwa normalment jekk inti tmur għal websajt u xi ħaġa imkisser jew ġġarrfu kodiċi PHP tagħhom, 682 00:47:22,140 --> 00:47:24,930 billi fil-appliance għandna dik il-kaxxa oranġjo big 683 00:47:24,930 --> 00:47:27,830 li jitla 'u jgħid, bħal, xi ħaġa ħażina, dan il-kodiċi ma taħdimx 684 00:47:27,830 --> 00:47:30,380 jew din il-funzjoni tal-bad. 685 00:47:30,380 --> 00:47:33,230 Normalment websajts ma tridx inti taf liema funzjonijiet huma ħżiena, 686 00:47:33,230 --> 00:47:37,880 Allura minflok dawn ser biss jagħtuk 500 Żbalji Server Intern. 687 00:47:37,880 --> 00:47:43,050 >> TCP / IP huwa 1 saff taħt HTTP. 688 00:47:43,050 --> 00:47:47,550 Ftakar li hemm Internet barra tal-World Wide Web. 689 00:47:47,550 --> 00:47:52,270 Bħal jekk inti tilgħab logħba online li ma jgħaddu HTTP, 690 00:47:52,270 --> 00:47:55,740 huwa għaddejjin minn differenti - huwa għadu jużaw l-Internet, 691 00:47:55,740 --> 00:47:58,900 iżda ma tuża HTTP. 692 00:47:58,900 --> 00:48:02,470 HTTP huwa biss eżempju wieħed ta 'protokoll mibnija fuq TCP / IP. 693 00:48:02,470 --> 00:48:07,820 IP letteralment tfisser Internet Protocol. 694 00:48:07,820 --> 00:48:11,500 Kull kompjuter għandu l-indirizz IP, iżda huma dawk l-affarijiet ta '4 ċifri 695 00:48:11,500 --> 00:48:16,510 bħal 192.168.2.1, jew tkun liema tkun; li għandha tendenza li tkun waħda lokali. 696 00:48:16,510 --> 00:48:23,390 Iżda dan huwa l-mudell ta 'indirizz IP. 697 00:48:23,390 --> 00:48:29,060 Allura l-DNS, Isem ta 'Dominju Service, 698 00:48:29,060 --> 00:48:33,410 dak hu li jittraduċi affarijiet simili google.com għal indirizz attwali IP. 699 00:48:33,410 --> 00:48:37,700 Mela jekk inti tip li l-indirizz IP fis-URL, 700 00:48:37,700 --> 00:48:40,850 li ġġib inti Google, iżda inti għandek tendenza li ma tiftakar dawk l-affarijiet. 701 00:48:40,850 --> 00:48:45,470 Inti għandek tendenza li tiftakar google.com minflok. 702 00:48:45,470 --> 00:48:51,560 L-aħħar ħaġa li għandna huwa portijiet, fejn dan huwa l-parti TCP ta 'IP. 703 00:48:51,560 --> 00:48:54,880 TCP ma aktar. Aħseb dwar, bħal, ikollok web browser tiegħek running. 704 00:48:54,880 --> 00:48:58,670 Forsi inti għandek xi applikazzjoni email running; 705 00:48:58,670 --> 00:49:02,150 forsi ikollok xi programm ieħor li juża l-Internet running. 706 00:49:02,150 --> 00:49:05,090 Dawn kollha għandhom bżonn aċċess għall-Internet, 707 00:49:05,090 --> 00:49:08,100 imma kompjuter tiegħek biss tkun 1 card WiFi jew ikun x'ikun. 708 00:49:08,100 --> 00:49:10,780 Allura portijiet huma l-mod li aħna qed kapaċi li jifred 709 00:49:10,780 --> 00:49:13,550 kif dawn l-applikazzjonijiet huma kapaċi li jużaw l-Internet. 710 00:49:13,550 --> 00:49:17,230 Kull applikazzjoni gets 1 port speċifiku li jistgħu jisimgħu fuq, 711 00:49:17,230 --> 00:49:19,670 u fil-kontumaċja, HTTP użi port 80. 712 00:49:19,670 --> 00:49:22,410 Xi servizzi email jużaw 25. 713 00:49:22,410 --> 00:49:24,490 Dawk baxx nnumerati tendenza li għandhom jiġu rriżervati. 714 00:49:24,490 --> 00:49:29,270 Inti normalment tista 'tikseb dawk ogħla numerati għalik innifsek. 715 00:49:29,270 --> 00:49:32,010 >> CSS, Cascading Style Sheets. 716 00:49:32,010 --> 00:49:36,030 Paġni web Aħna istil ma CSS, mhux ma HTML. 717 00:49:36,030 --> 00:49:38,440 Hemm 3 postijiet inti tista 'tpoġġi CSS tiegħek. 718 00:49:38,440 --> 00:49:46,300 Hija tista 'tkun inline, bejn tags stil, jew fil-fajl separat kompletament u mbagħad marbuta pulzieri 719 00:49:46,300 --> 00:49:48,470 U hawn huwa biss eżempju ta 'CSS. 720 00:49:48,470 --> 00:49:50,450 Għandek jirrikonoxxu dan il-mudell, 721 00:49:50,450 --> 00:49:54,310 fejn l-ewwel eżempju huwa aħna qed taqbel mal-tag ġisem, 722 00:49:54,310 --> 00:49:56,680 u hawn aħna qed tiffoka l-tikketta ġisem. 723 00:49:56,680 --> 00:50:00,420 It-tieni eżempju, aħna qed taqbel mal-ħaġa 724 00:50:00,420 --> 00:50:04,740 ma footer ID, u aħna qed tapplika xi stili għal dan. 725 00:50:04,740 --> 00:50:07,310 Avviż li ID footer test tallinja lejn ix-xellug, 726 00:50:07,310 --> 00:50:09,840 billi korp test tallinja center. 727 00:50:09,840 --> 00:50:13,180 Footer hija ġewwa l-korp. 728 00:50:13,180 --> 00:50:16,470 Hija se, minflok, test tallinja xellug, anke jekk korp jgħid center test tallinja. 729 00:50:16,470 --> 00:50:18,880 Din hija l-parti cascading kollu kemm hu. 730 00:50:18,880 --> 00:50:22,110 Inti jista 'jkollhom - inti tista' tispeċifika stili għall-korp, 731 00:50:22,110 --> 00:50:25,320 u mbagħad l-affarijiet fil-ġisem inti tista 'tispeċifika stili aktar speċifiċi, 732 00:50:25,320 --> 00:50:28,160 u jaħdmu l-affarijiet kif inti tistenna. 733 00:50:28,160 --> 00:50:34,420 Specifiers aktar speċifiċi CSS jieħdu preċedenza. 734 00:50:34,420 --> 00:50:46,140 Naħseb li hu. 735 00:50:46,140 --> 00:50:49,260 >> [Ali Nahm] Hi kulħadd. Jekk I tista 'biss tikseb l-attenzjoni tiegħek. 736 00:50:49,260 --> 00:50:53,990 Jien Ali u jien se jmorru permezz PHP u SQL verament mgħaġġel. 737 00:50:53,990 --> 00:51:00,310 Allura nistgħu nibdew. PHP huwa qasir għall PHP: Portugues Preprocessor. 738 00:51:00,310 --> 00:51:03,730 U kif inti kollha tkun taf, huwa scripting lingwa server-ġenb, 739 00:51:03,730 --> 00:51:06,800 u nużawha għall-aħħar lura ta 'websajts, 740 00:51:06,800 --> 00:51:12,540 u kif tagħmlu lott tal-komputazzjonijiet, il-parti behind-kwinti. 741 00:51:12,540 --> 00:51:17,510 Sintassi. Mhuwiex simili C, sorpriża, sorpriża. 742 00:51:17,510 --> 00:51:22,060 Hija dejjem għandha tibda bil-, jekk inti tista 'tara, l - I ma tistax timxi' l quddiem. 743 00:51:22,060 --> 00:51:31,340 Tista 'tara li għandek bżonn it-tipi ġodda ta' braces u allura inti wkoll bżonn l-? PHP. 744 00:51:31,340 --> 00:51:35,780 Li dejjem kif ikollok biex jinkwadra test PHP tiegħek, kodiċi PHP tiegħek. 745 00:51:35,780 --> 00:51:39,180 Għalhekk ma tistax biss tkun simili C, fejn inti tip ta 'poġġih fuq l-ewwel. 746 00:51:39,180 --> 00:51:42,290 Ikollok bżonn li dejjem madwaru. 747 00:51:42,290 --> 00:51:47,610 U issa, il-sintassi ewlenija hija li l-fatturi kollha bżonn biex tibda bil-karattru $. 748 00:51:47,610 --> 00:51:49,490 Ikollok bżonn tagħmel dan meta int jiddefinixxu lilhom, inti għandek bżonn tagħmel dan 749 00:51:49,490 --> 00:51:51,860 meta int jirreferu għall lilhom aktar tard. 750 00:51:51,860 --> 00:51:56,510 Inti dejjem bżonn li $. Huwa aqwa ħabib ġdid tiegħek, pretty ħafna. 751 00:51:56,510 --> 00:52:01,690 Inti ma - b'differenza C, inti m'għandekx bżonn biex liema tip ta 'tip varjabbli huwa. 752 00:52:01,690 --> 00:52:04,940 Għalhekk, filwaqt li inti tagħmel bżonn l-$, inti m'għandekx bżonn biex, bħal, 753 00:52:04,940 --> 00:52:09,470 int x jew y string, etcetera, etcetera. 754 00:52:09,470 --> 00:52:11,490 Allura differenza żgħira. 755 00:52:11,490 --> 00:52:15,590 Bħala riżultat ta 'dan, dan ifisser li PHP huwa tip dgħajjef. 756 00:52:15,590 --> 00:52:19,310 PHP hija lingwa tip dgħajjef, u dan dgħajjef varjabbli ittajpjat. 757 00:52:19,310 --> 00:52:24,020 Fi kliem ieħor, dan ifisser li inti tista 'taqleb bejn tipi differenti ta' tipi varjabbli. 758 00:52:24,020 --> 00:52:27,230 Inti jista 'jaħżen numru tiegħek 1 bħala int, 759 00:52:27,230 --> 00:52:29,650 inti jista 'jaħżen bħala string, u inti jista' jaħżen bħala float, 760 00:52:29,650 --> 00:52:33,550 u dan kollu se jkun dak in-numru 1. 761 00:52:33,550 --> 00:52:36,080 Anki jekk int maħżuna fil-forom differenti, 762 00:52:36,080 --> 00:52:39,120 huwa għadu - it-tipi varjabbli għadhom azjenda fl-aħħar. 763 00:52:39,120 --> 00:52:41,540 Mela jekk inti tfittex hawn, jekk tiftakar minn pset 7, 764 00:52:41,540 --> 00:52:43,500 ħafna minnkom probabbilment kellha kwistjonijiet b'din. 765 00:52:43,500 --> 00:52:47,280 Żewġ sinjali ugwali, 3 sinjali ugwali, 4 sinjali indaqs. 766 00:52:47,280 --> 00:52:49,990 Okay, m'hemmx 4 sinjali ugwali, imma hemm 2 u 3. 767 00:52:49,990 --> 00:52:53,320 Tuża 2 sinjali ugwali biex jiċċekkja l-valuri. 768 00:52:53,320 --> 00:52:55,830 Hija tista 'tiċċekkja madwar tipi. 769 00:52:55,830 --> 00:52:58,770 Hekk jekk inti tista 'tara fl-ewwel eżempju, 770 00:52:58,770 --> 00:53:02,210 Għandi num_string == num_int. 771 00:53:02,210 --> 00:53:06,710 Allura int tiegħek u string tiegħek huma t-tnejn, teknikament, 1, 772 00:53:06,710 --> 00:53:10,790 iżda dawn qed tipi differenti. Iżda għall-partijiet ugwali doppja, xorta ser jgħaddu. 773 00:53:10,790 --> 00:53:15,510 Madankollu, għall-partijiet ugwali tripla, hija għandha tivverifika valur kif ukoll it-tipi differenti. 774 00:53:15,510 --> 00:53:18,760 Dan ifisser li mhuwiex ser jgħaddu f'dan it-tieni każ hawnhekk, 775 00:53:18,760 --> 00:53:22,350 fejn inti qed tuża 3 sinjali ugwali minflok. 776 00:53:22,350 --> 00:53:26,590 Allura dak differenza kbira li inti għandek kollha wrew issa. 777 00:53:26,590 --> 00:53:31,570 >> Konkatenazzjoni String hija ħaġa oħra qawwija tista 'tuża fil-PHP. 778 00:53:31,570 --> 00:53:34,080 Huwa bażikament biss dan handy dot notazzjoni, 779 00:53:34,080 --> 00:53:36,230 u li kif inti tista 'torbot kordi flimkien. 780 00:53:36,230 --> 00:53:40,800 Mela jekk għandek Cat u ikollok Dog, u inti tixtieq li tqiegħed il-kordi 2 flimkien, 781 00:53:40,800 --> 00:53:44,080 inti tista 'tuża il-perjodu, u li tip ta' kif taħdem. 782 00:53:44,080 --> 00:53:46,660 Tista 'wkoll biss tpoġġihom ħdejn xulxin, 783 00:53:46,660 --> 00:53:49,030 kif tistgħu taraw hawn fl-eżempju tal-qiegħ, 784 00:53:49,030 --> 00:53:51,610 fejn I eku string 1, l-ispazju string 2. 785 00:53:51,610 --> 00:53:56,930 PHP se tkun taf biex jissostitwuhom bħala tali. 786 00:53:56,930 --> 00:53:59,780 Arrays. Issa, fil-PHP, hemm 2 tipi differenti ta 'arrays. 787 00:53:59,780 --> 00:54:03,180 Inti jista 'jkollhom arrays regolari, u inti jista' jkollhom ukoll arrays assoċjattiva, 788 00:54:03,180 --> 00:54:06,040 u aħna qed tmur biex jgħaddu minnhom dritt issa. 789 00:54:06,040 --> 00:54:08,280 Arrays regolari huma biss dan fis-C, 790 00:54:08,280 --> 00:54:11,240 u hekk ikollok indiċijiet li huma nnumerati. 791 00:54:11,240 --> 00:54:13,160 Dritt issa aħna qed biss ser toħloq waħda u mqiegħda - 792 00:54:13,160 --> 00:54:15,500 għalhekk dan huwa kif aħna toħloq firxa vojta, allura aħna qed tmur biex 793 00:54:15,500 --> 00:54:17,310 tqiegħed fil-numru tal-indiċi 0. 794 00:54:17,310 --> 00:54:19,200 Aħna ser tpoġġi l-numru 6, il-valur 6. 795 00:54:19,200 --> 00:54:21,500 Tista 'tara fil-qiegħ hawn. 796 00:54:21,500 --> 00:54:24,240 Where's - fil-numru indiċi 1 aħna qed tmur biex tpoġġi valur numru 4, 797 00:54:24,240 --> 00:54:26,720 u sabiex inti tista 'tara hemm 6, hemm 4, 798 00:54:26,720 --> 00:54:29,160 u allura kif aħna qed affarijiet istampar, 799 00:54:29,160 --> 00:54:33,550 meta nippruvaw u pprintja l-valur maħżun fl-indiċi numru 0, 800 00:54:33,550 --> 00:54:36,900 allura aħna ser tara l-valur 6 jiġi stampat. Kessaħ? 801 00:54:36,900 --> 00:54:40,160 Allura dak arrays regolari għalik. 802 00:54:40,160 --> 00:54:42,750 Mod ieħor inti tista 'wkoll żżid affarijiet li arrays regolari issa 803 00:54:42,750 --> 00:54:44,780 hija tista 'biss tehmeż minnhom fl-aħħar. 804 00:54:44,780 --> 00:54:47,240 Dan ifisser li inti ma għandekx biex tispeċifika l-indiċi speċifika. 805 00:54:47,240 --> 00:54:51,000 Tista 'tara numru, u mbagħad fil-parentesi kwadri hemm ebda indiċi speċifikat. 806 00:54:51,000 --> 00:54:56,270 U se tkun taf - PHP se tkun taf li biss iżżidhiex mal-aħħar tal-lista, il-post liberu li jmiss. 807 00:54:56,270 --> 00:54:59,190 Allura tista 'tara l-1 hemm dritt f'dak 0 spot, 808 00:54:59,190 --> 00:55:02,690 2 marru hemm dritt fl-ewwel post. 809 00:55:02,690 --> 00:55:04,690 3 tmur - hija miżjuda hemm ukoll. 810 00:55:04,690 --> 00:55:06,720 Allura dak it-tip ta 'jagħmel sens. Int biss constantly żżid dan, 811 00:55:06,720 --> 00:55:09,360 u mbagħad meta aħna qed b'repetizzjoni l-indiċi ta 'numru 1, 812 00:55:09,360 --> 00:55:13,080 se jistampa l-valur 2. 813 00:55:13,080 --> 00:55:16,800 >> Imbagħad għandna arrays li huma arrays assoċjattiva. 814 00:55:16,800 --> 00:55:19,370 Arrays assoċjattiva, minflok li jkollhom indiċi numeriċi, 815 00:55:19,370 --> 00:55:23,630 dak li tagħmel huwa, huma jkollhom indiċijiet li huma mill string. 816 00:55:23,630 --> 00:55:25,670 Tista 'tara, minflok - I ħassar dawk l-indiċijiet kollha numru, 817 00:55:25,670 --> 00:55:32,140 u issa huwa key1, key2, key3, u dawn qed fil-kwotazzjonijiet doppja li turi li dawn qed kordi kollha. 818 00:55:32,140 --> 00:55:34,470 Allura jista 'jkollna eżempju ta' dan. 819 00:55:34,470 --> 00:55:38,790 L-eżempju ta 'dan huwa li aħna għandna l-tf, u dak l-isem indiċi. 820 00:55:38,790 --> 00:55:42,030 Aħna ser tpoġġi "Ali" bħala l-isem, fl-indiċi, kaloriji jittiekel, 821 00:55:42,030 --> 00:55:47,640 nistgħu tpoġġi int f'dan il-ħin minflok ta 'spag, 822 00:55:47,640 --> 00:55:52,240 u mbagħad fil-jħobb indiċi, nistgħu npoġġu firxa sħiħa ġewwa ta 'dan. 823 00:55:52,240 --> 00:55:55,490 Allura dan huwa tip ta '- huwa kunċett simili għal kif kellna 824 00:55:55,490 --> 00:55:58,930 indiċi bin-numri, iżda issa nistgħu nbiddlu l-indiċi madwar 825 00:55:58,930 --> 00:56:03,890 li jkollhom magħhom bħala kordi minflok. 826 00:56:03,890 --> 00:56:06,070 Tista 'wkoll tagħmel dan, minbarra biss tagħmel dan b'mod individwali, 827 00:56:06,070 --> 00:56:09,400 inti tista 'tagħmel dan kollu fil-blokki waħda. Allura tista 'tara li tf' dak array, 828 00:56:09,400 --> 00:56:13,350 u mbagħad aħna waqqafna lilhom kollha f 'sett wieħed ġgant parentesi kwadri. 829 00:56:13,350 --> 00:56:15,220 Allura li tista 'tħaffef affarijiet up. 830 00:56:15,220 --> 00:56:19,730 Huwa aktar ta 'għażla stilistika milli le. 831 00:56:19,730 --> 00:56:21,550 Għandna wkoll loops. 832 00:56:21,550 --> 00:56:26,020 Fl C għandna loops li jaħdmu bħal dan. 833 00:56:26,020 --> 00:56:29,690 Kellna firxa tagħna, u aħna marru minn indiċi 0 sa l-aħħar tal-lista, 834 00:56:29,690 --> 00:56:31,740 u aħna jistampaw kollox, id-dritt? 835 00:56:31,740 --> 00:56:33,880 Ħlief l-problema hija, għall-arrays assoċjattiva, 836 00:56:33,880 --> 00:56:36,610 aħna ma neċessarjament jaf dawk indiċi numeriċi 837 00:56:36,610 --> 00:56:39,610 għaliex issa għandna l-indiċijiet string. 838 00:56:39,610 --> 00:56:44,800 Issa nużaw loops foreach, li, għal darb'oħra, inti nisperaw użati fil pset 7. 839 00:56:44,800 --> 00:56:48,930 Loops foreach se biss jafu kull parti waħda tal-lista. 840 00:56:48,930 --> 00:56:52,450 U ma għandek tkun taf eżattament l-indiċi numeriku li għandek. 841 00:56:52,450 --> 00:56:56,490 Allura inti għandek l-sintassi foreach, dan huwa foreach, inti tpoġġi l-array. 842 00:56:56,490 --> 00:57:00,430 Allura firxa tiegħi huwa msejjaħ pset, u mbagħad, tal-kelma bħala, 843 00:57:00,430 --> 00:57:04,530 u allura inti tpoġġi dan il-varjabbli temporanja lokali li int ser tuża 844 00:57:04,530 --> 00:57:10,690 biss għall-ħaġa speċifika li għaddej biex iżommu l-speċifiku - 845 00:57:10,690 --> 00:57:14,770 eżempju wieħed jew sezzjoni waħda ta 'l-array. 846 00:57:14,770 --> 00:57:18,350 Num Pset se torganizza 1, u mbagħad forsi se żżomm in-numru 6, 847 00:57:18,350 --> 00:57:20,410 u mbagħad se żżomm in-numru 2. 848 00:57:20,410 --> 00:57:26,630 Iżda huwa garantit li jmorru permezz ta 'kull valur wieħed li fil-array. 849 00:57:26,630 --> 00:57:30,530 Funzjonijiet utli li inti għandek tkun taf fil-PHP huma jeħtieġu, 850 00:57:30,530 --> 00:57:35,880 sabiex jagħmel ċert li int inklużi ċerti files, eku, ħruġ, vojta. 851 00:57:35,880 --> 00:57:40,490 I jirrakkomanda ħafna li inti tħares lejn pset 7 u tħares lejn dawk il-funzjonijiet. 852 00:57:40,490 --> 00:57:42,810 Inti jista 'jkollhom taf dawk, 853 00:57:42,810 --> 00:57:47,060 so I definittivament taf liema, eżattament, dawk qed jagħmlu kollha. 854 00:57:47,060 --> 00:57:50,080 >> U issa aħna qed tmur biex jmorru permezz ambitu verament malajr. 855 00:57:50,080 --> 00:57:53,490 Fl-ambitu, PHP huwa tip ta 'ħaġa funky, b'differenza C, 856 00:57:53,490 --> 00:57:56,170 u hekk aħna qed biss se jgħaddu malajr. 857 00:57:56,170 --> 00:57:58,930 Mela ejja ngħidu nibdew f'dak vleġġa li għandna hemmhekk. 858 00:57:58,930 --> 00:58:02,900 U aħna qed tmur biex tibda bil $ i. Allura l-varjabbli "i" se tkun 0, 859 00:58:02,900 --> 00:58:06,730 u aħna qed biss ser iżommu l-istampar li f'dik il-kaxxa bajda kbira hemmhekk. 860 00:58:06,730 --> 00:58:09,220 Aħna qed tmur biex tibda bil i0, u allura aħna qed tmur biex eku. 861 00:58:09,220 --> 00:58:12,670 Allura hemm l-0. 862 00:58:12,670 --> 00:58:15,210 U allura aħna qed tmur biex inkrement lilha mill-għall-loop, 863 00:58:15,210 --> 00:58:17,810 u mbagħad li għaddej biex jkun il-valur ta '1. 864 00:58:17,810 --> 00:58:20,070 Wieħed huwa inqas minn 3, u għalhekk għaddej biex jgħaddi li għal loop, 865 00:58:20,070 --> 00:58:23,230 u allura aħna qed tmur biex tara stampata mill-ġdid. 866 00:58:23,230 --> 00:58:25,520 Aħna ser inkrement darb'oħra għal 2, 867 00:58:25,520 --> 00:58:29,860 u 2 ikun anqas minn 3, u għalhekk ser jgħaddu l-għall-loop, u inneħħu jistampaw il-2. 868 00:58:29,860 --> 00:58:35,100 Imbagħad inti ser jinnota li 3 ma tkunx anqas minn 3, hekk aħna ser toħroġ 'il barra għal loop. 869 00:58:35,100 --> 00:58:40,050 Allura issa konna ħareġ, u allura aħna qed tmur biex tmur fil aFunction. 870 00:58:40,050 --> 00:58:45,010 Okay. Allura inti għandek li wieħed jinnota li dan il-varjabbli li ħloqna, 871 00:58:45,010 --> 00:58:48,270 l-'i' tvarja, mhux scoped lokalment. 872 00:58:48,270 --> 00:58:50,280 Dan ifisser li mhuwiex lokali għal-linja, 873 00:58:50,280 --> 00:58:58,060 u dak il-varjabbli aħna xorta tista 'aċċess u l-bidla wara, u xorta se tkun effettiva. 874 00:58:58,060 --> 00:59:02,160 Mela jekk inti tmur fil-funzjoni issa, int ser tara li aħna wkoll tuża l-"i" varjabbli, 875 00:59:02,160 --> 00:59:05,320 u aħna qed tmur biex inkrement "i" + +. 876 00:59:05,320 --> 00:59:09,410 Inti ser jaħseb, fl-ewwel, ibbażat fuq C, li din l-kopja tal-"i" varjabbli. 877 00:59:09,410 --> 00:59:12,830 Hija ħaġa totalment differenti, li hija korretta. 878 00:59:12,830 --> 00:59:16,560 Allura meta aħna jistampaw, aħna qed tmur biex jistampaw "i" + +, li se jistampa li 4, 879 00:59:16,560 --> 00:59:19,640 u allura aħna qed tmur biex - sorry. 880 00:59:19,640 --> 00:59:22,030 Imbagħad aħna qed tmur biex jispiċċa barra ta 'dik il-funzjoni, 881 00:59:22,030 --> 00:59:24,820 u aħna qed tmur biex tkun fejn dik vleġġa huwa dritt issa. 882 00:59:24,820 --> 00:59:29,190 Dan ifisser li mbagħad, madankollu, anki jekk il-funzjoni biddel il-valur ta '"i", 883 00:59:29,190 --> 00:59:32,620 hija ma biddlitx barra tal-funzjoni, 884 00:59:32,620 --> 00:59:35,060 minħabba l-funzjoni għandu skop separat. 885 00:59:35,060 --> 00:59:38,960 Dan ifisser li meta aħna eku "i", din ma nbidlitx fl-ambitu tal-funzjoni, 886 00:59:38,960 --> 00:59:43,660 u hekk allura aħna qed tmur biex jistampaw 3 ġdid. 887 00:59:43,660 --> 00:59:47,520 Affarijiet differenti madwar ambitu PHP milli C. 888 00:59:47,520 --> 00:59:51,130 >> Issa fil-PHP u HTML. 889 00:59:51,130 --> 00:59:53,510 PHP hija użata biex tagħmel paġni web dinamiku. 890 00:59:53,510 --> 00:59:58,660 Huwa tip ta 'jagħmel l-affarijiet differenti. 891 00:59:58,660 --> 01:00:02,090 Aħna għandna hija differenti minn HTML. 892 01:00:02,090 --> 01:00:05,230 Bil HTML, aħna dejjem biss ikollhom l-istess ħaġa statika, bħal kif Rob wera, 893 01:00:05,230 --> 01:00:09,370 billi PHP, tista 'tbiddel l-affarijiet bbażata fuq min l-utent huwa. 894 01:00:09,370 --> 01:00:11,830 Hekk jekk I jkollhom din, jien, "Inti illoggjat bħala -" u mbagħad l-isem, 895 01:00:11,830 --> 01:00:14,420 u I tista 'tibdel l-isem. Allura issa dritt l-isem huwa Joseph, 896 01:00:14,420 --> 01:00:18,880 u għandha l-"dwar me," iżda mbagħad I tista 'wkoll tbiddel l-isem li jkollhom Tommy. 897 01:00:18,880 --> 01:00:21,700 U li tkun ħaġa differenti. 898 01:00:21,700 --> 01:00:23,840 Hekk allura nistgħu wkoll ibiddlu l-affarijiet differenti dwar lilu, 899 01:00:23,840 --> 01:00:27,070 u se juri kontenut differenti bbażat fuq l-isem. 900 01:00:27,070 --> 01:00:31,430 Allura PHP tista 'tip ta' bidla x'inhu għaddej fil-website tiegħek. 901 01:00:31,430 --> 01:00:33,540 Istess hawn. Still, jinnotaw li għandhom kontenut differenti, 902 01:00:33,540 --> 01:00:38,870 anki jekk inti teknikament xorta aċċess l-istess paġna web fuq il-wiċċ. 903 01:00:38,870 --> 01:00:43,450 Jiġġeneraw HTML. Hemm 2 modi differenti li inti tista 'tagħmel dan. 904 01:00:43,450 --> 01:00:48,980 Allura aħna ser jgħaddu dan id-dritt issa. L-ewwel mod huwa, ikollok - yeah, sorry. 905 01:00:48,980 --> 01:00:51,150 Allura inti biss għandek regolari tiegħek għal loop fil-PHP, 906 01:00:51,150 --> 01:00:56,270 u allura inti eku fil-PHP u inti eku out HTML. 907 01:00:56,270 --> 01:00:58,720 Bl-użu dak li Rob wera inti ta 'iskrittura HTML 908 01:00:58,720 --> 01:01:04,030 u mbagħad tuża l-istampar PHP biss ipprintjaha għall-paġna web. 909 01:01:04,030 --> 01:01:09,520 Il-mod alternattiv huwa li tagħmel dan jekk inti separati l-PHP u l-HTML. 910 01:01:09,520 --> 01:01:11,940 Allura inti jista 'jkollhom linja ta' PHP li jibda l-għal loop, 911 01:01:11,940 --> 01:01:16,020 allura inti jista 'jkollhom l-linja ta' l-HTML ħaġa separata, 912 01:01:16,020 --> 01:01:19,700 u mbagħad inti tispiċċa l-loop, għal darb'oħra, bil-PHP. 913 01:01:19,700 --> 01:01:21,800 Allura huwa tip ta 'separazzjoni out. 914 01:01:21,800 --> 01:01:24,020 Fuq in-naħa tax-xellug, inti tista 'li inti għandek l-- 915 01:01:24,020 --> 01:01:26,360 huwa biss 1 blokki ta 'PHP. 916 01:01:26,360 --> 01:01:28,510 Dwar id-dritt tista 'tara li għandek linja ta' PHP, 917 01:01:28,510 --> 01:01:32,540 għandek linja ta 'HTML, u inti għandek linja ta' PHP darb'oħra. 918 01:01:32,540 --> 01:01:36,870 Allura separazzjoni out fil dak li qed isir. 919 01:01:36,870 --> 01:01:39,330 U inti ser jinnota li kemm il-mod, għal wieħed minnhom, 920 01:01:39,330 --> 01:01:41,980 dawn xorta jistampa l-immaġni, l-immaġni, l-immaġni, 921 01:01:41,980 --> 01:01:44,540 sabiex HTML xorta huwa stampat bl-istess mod. 922 01:01:44,540 --> 01:01:49,870 U allura inti taf xorta tara l-3 immaġini juru up fuq website tiegħek. 923 01:01:49,870 --> 01:01:52,820 Allura huwa 2 modi differenti ta 'kif isir l-istess ħaġa. 924 01:01:52,820 --> 01:01:55,060 >> Issa għandna forom u t-talbiet. Kif Rob wera inti, 925 01:01:55,060 --> 01:01:59,400 hemm forom ta HTML, u aħna se biss riħ permezz ta 'dan. 926 01:01:59,400 --> 01:02:02,040 Inti għandek l-azzjoni u inti għandek metodu, u l-azzjoni tiegħek 927 01:02:02,040 --> 01:02:04,350 tip ta 'turi li inti fejn int ser tibgħat, u l-metodu hija jekk 928 01:02:04,350 --> 01:02:06,960 li għaddej biex tkun IKOLLOK jew POST. 929 01:02:06,960 --> 01:02:11,220 U IKOLLOK talba, kif Rob qal, ifisser li int ser poġġih fil-forma 930 01:02:11,220 --> 01:02:15,760 u tkun taf tara bħala URL, billi talba POST inti mhux se tara fil-URL. 931 01:02:15,760 --> 01:02:17,840 Allura differenza żgħira. 932 01:02:17,840 --> 01:02:19,950 Madankollu, ħaġa waħda li l-ħaġa simili 933 01:02:19,950 --> 01:02:22,560 hija li POST u IKOLLOK huma ugwalment siguri. 934 01:02:22,560 --> 01:02:26,430 Allura inti tista 'taħseb li sempliċiment għaliex inti ma tara fil-URL, 935 01:02:26,430 --> 01:02:28,790 li tfisser il-POST hija aktar sikura, 936 01:02:28,790 --> 01:02:34,420 imma inti xorta tista 'tara fil cookies tiegħek fl-informazzjoni li int tibgħat. 937 01:02:34,420 --> 01:02:38,260 Allura ma naħsibx li madwar wieħed jew l-oħra. 938 01:02:38,260 --> 01:02:42,160 Ħaġa oħra li wieħed jinnota huwa li inti ukoll għandek varjabbli taqsima. 939 01:02:42,160 --> 01:02:45,850 Inti guys użat dan pset 7 li tinkiseb informazzjoni tiegħek user ID. 940 01:02:45,850 --> 01:02:48,550 Dak li ġara kien li inti tista 'tuża dan firxa assoċjattiva, 941 01:02:48,550 --> 01:02:53,310 l $ _SESSION, u allura int tista 'aċċess affarijiet differenti 942 01:02:53,310 --> 01:02:57,720 u jaħżnu l-affarijiet differenti madwar il-paġni. 943 01:02:57,720 --> 01:03:00,750 >> Last ħaġa hija li għandna SQL, Strutturat Mistoqsija Lingwa, 944 01:03:00,750 --> 01:03:04,360 u din hija lingwa ta 'programmar biex jamministraw databases. 945 01:03:04,360 --> 01:03:08,220 X'inhuma, eżattament, huma databases? Huma qed kollezzjonijiet ta 'tabelli, 946 01:03:08,220 --> 01:03:10,630 u kull tabella jista 'jkollhom tipi simili ta' oġġetti. 947 01:03:10,630 --> 01:03:14,990 Allura kellna tabella ta 'utenti pset finanzi tiegħek. 948 01:03:14,990 --> 01:03:20,610 U għaliex dawn huma utli? Għaliex dan huwa mod ta 'ħażna permanenti informazzjoni. 949 01:03:20,610 --> 01:03:22,840 Huwa mod ta 'tracking l-affarijiet u l-ġestjoni affarijiet 950 01:03:22,840 --> 01:03:25,890 u fil-fatt dan iqisuh fuq il-paġni differenti u żamma track. 951 01:03:25,890 --> 01:03:29,930 Billi jekk inti biss jaħżnu f'dak il-mument immedjat wieħed 952 01:03:29,930 --> 01:03:33,720 u mbagħad jużaw dan aktar tard, inti mhux ser ikunu jistgħu jkollhom aċċess kwalunkwe ħaġa li inti stajt salvati. 953 01:03:33,720 --> 01:03:37,660 Aħna 4 affarijiet kbar li nużaw għal kmandijiet SQL. 954 01:03:37,660 --> 01:03:40,190 Għandna tagħżel, daħħal, tħassar, u aġġornament. 955 01:03:40,190 --> 01:03:42,880 Dawk huma verament importanti għalik guys li jkunu jafu għal kwizz tiegħek. 956 01:03:42,880 --> 01:03:45,990 >> Aħna ser malajr jmorru fuq agħżel dritt issa. 957 01:03:45,990 --> 01:03:48,540 Bażikament, int tagħżel ringieli minn database. 958 01:03:48,540 --> 01:03:52,400 Mela jekk għandek, dritt hawn - 959 01:03:52,400 --> 01:03:56,740 għandna dawn 2 affarijiet differenti, u rridu li tagħżel mill-tabella klassijiet 960 01:03:56,740 --> 01:04:01,480 fejn biża - fejn fil-kolonna tal-biża il-valur huwa 1. 961 01:04:01,480 --> 01:04:04,460 Allura tista 'tara hawn, aħna għandna dawn l-affarijiet 2 ta' isem il-klassi, 962 01:04:04,460 --> 01:04:08,490 CS50 u Stat110, u aħna għandna l-IDs klassi u l-islogan. 963 01:04:08,490 --> 01:04:13,150 Hekk irridu tagħżel kollha ta 'dik l-informazzjoni. 964 01:04:13,150 --> 01:04:17,480 Imbagħad int tista 'tara dritt hawn li huwa tip ta' picking 'dak kolonna tal-biża, 965 01:04:17,480 --> 01:04:25,170 fejn l-affarijiet huma 1, u allura għandu l-klassi ID, l-isem tal-klassi u slogan li tista 'pick out. 966 01:04:25,170 --> 01:04:28,100 Kif eżattament do inti tagħmel dan fil-kodiċi? Inti għandek tuża PHP. 967 01:04:28,100 --> 01:04:33,830 Allura dak it-tip ta 'kif PHP u SQL huma relatati ma' xulxin. 968 01:04:33,830 --> 01:04:38,130 Issa għandna kodiċi tagħna, u aħna qed tmur biex jużaw funzjoni query tagħna 969 01:04:38,130 --> 01:04:41,370 kif għamilna fil pset 7, u aħna qed tmur biex imexxu l-mistoqsija SQL. 970 01:04:41,370 --> 01:04:43,870 Imbagħad aħna qed tmur biex ikollhom - 971 01:04:43,870 --> 01:04:46,280 aħna dejjem ikollhom jiċċekkjaw jekk ugwali triple ringiela jekk falza. 972 01:04:46,280 --> 01:04:49,010 Għalhekk għal darb'oħra, inti tixtieq li jiċċekkjaw it-tip u l-valur, 973 01:04:49,010 --> 01:04:53,880 u mbagħad jekk din ma taħdimx, allura inti tixtieq li ruhna, bħas-soltu, kif għamilna fil pset 7. 974 01:04:53,880 --> 01:04:55,870 Inkella, inti tixtieq li loop permezz kollox ma 'dawk handy 975 01:04:55,870 --> 01:04:59,410 foreach loops li aħna biss marru fuq. 976 01:04:59,410 --> 01:05:01,280 Issa li aħna qed looping permezz u aħna ħadna passat, 977 01:05:01,280 --> 01:05:05,080 ejja nassumu li mistoqsija tagħna għaddew, issa għandna loop foreach tagħna. 978 01:05:05,080 --> 01:05:11,050 U l-ewwel ringiela hija għandha, hekk hawn l-ringiela, dritt hawn, huwa ppakkjata. 979 01:05:11,050 --> 01:05:14,010 Huwa ser jistampa l-informazzjoni kollha li huwa gotten. 980 01:05:14,010 --> 01:05:18,070 Allura li għaddej biex jistampa fil-qiegħ "Trid Tgħallem HTML?" 981 01:05:18,070 --> 01:05:23,370 Imbagħad li għaddej biex tmur fil-filliera li jmiss, għaliex dan huwa temm l-ewwel għall-loop, 982 01:05:23,370 --> 01:05:26,510 u hekk allura li għaddej biex jistampa l-tieni linja ta 'dan, 983 01:05:26,510 --> 01:05:32,120 li se tkun STAT110, Sib l-mumenti. 984 01:05:32,120 --> 01:05:34,290 >> Ħaġa waħda aħħar huwa fuq SQL Vulnerabilitajiet. 985 01:05:34,290 --> 01:05:37,300 Naf David ttrattaw din ftit fil-lecture. 986 01:05:37,300 --> 01:05:40,730 Tista 'taqra dan aktar tard. Huwa verament umoristiċi. 987 01:05:40,730 --> 01:05:45,320 SQL Injezzjoni huwa tip ta 'ħaġa delikata. 988 01:05:45,320 --> 01:05:49,890 Ejja ngħidu li inti biss twaħħal dawk il-varjabbli dritt fis-mistoqsija tiegħek, 989 01:05:49,890 --> 01:05:52,290 kif tistgħu taraw f'dan l-ewwel linja. 990 01:05:52,290 --> 01:05:54,520 Għalhekk jidher multa, right? Inti biss it-tqegħid fl-isem l-utent 991 01:05:54,520 --> 01:05:58,820 u password għall-mistoqsija SQL tiegħek, u inti tixtieq li vapur off u jiksbu dak kollu li huwa fit-tabella tad-data tiegħek. 992 01:05:58,820 --> 01:06:01,450 Dan jidher pjuttost sempliċi. Allura tikri say xi ħadd ipoġġi fi, 993 01:06:01,450 --> 01:06:04,910 għall-password, dan jew test dritt hawn - 994 01:06:04,910 --> 01:06:06,780 għandu attwalment ikun fil-kaxxa aħmar. 995 01:06:06,780 --> 01:06:11,920 Mela ejja ngħidu li dawn jitqiegħdu li password fi - dan huwa dak li jidħol. 996 01:06:11,920 --> 01:06:16,520 Allura dawn qed tqegħid jew "1" = 1. 997 01:06:16,520 --> 01:06:20,880 Tip ta 'password iblah li jkollhom. 998 01:06:20,880 --> 01:06:25,070 Issa ejja biss tibdilha fi, u tkun taf josservaw li f'dik mistoqsija SQL issa, 999 01:06:25,070 --> 01:06:29,090 tevalwa l li dejjem veru, għaliex inti ser jinnota li 1000 01:06:29,090 --> 01:06:32,240 inti tista mistoqsija SQL tagħżel kollha ta 'din l-informazzjoni 1001 01:06:32,240 --> 01:06:35,420 jew tista 'biss ikollha 1 = 1. 1002 01:06:35,420 --> 01:06:41,030 Allura li dejjem għaddej biex jevalwa veru. 1003 01:06:41,030 --> 01:06:46,610 Li mhux se verament ix-xogħol, għaliex dan ifisser li l-Hacker jistgħu jidħlu fis-sistema tiegħek. 1004 01:06:46,610 --> 01:06:49,300 Is-soluzzjoni għal dan huwa li inti għandek tuża s-sistema PDO, 1005 01:06:49,300 --> 01:06:51,360 li jfisser li inti għandek tuża trade marks in kwistjoni, 1006 01:06:51,360 --> 01:06:53,350 li huwa dak li inti guys użati fil pset 7, 1007 01:06:53,350 --> 01:06:57,620 fejn int ser tuża marka kwistjoni fil-post ta 'fejn inti tixtieq li tqiegħed xi ħaġa, 1008 01:06:57,620 --> 01:07:01,430 u allura int se jkollhom comma, u allura inti ser ikollok wara, 1009 01:07:01,430 --> 01:07:07,610 wara string tiegħek, il-varjabbli differenti li inti tixtieq li tieħu post in kwistjoni mark tiegħek. 1010 01:07:07,610 --> 01:07:10,330 Allura inti ser jinnota hawnhekk li issa għandi dawn trade marks in kwistjoni aħmar. 1011 01:07:10,330 --> 01:07:15,420 Imbagħad nressaq-varjabbli wara kordi tiegħi hekk naf li jibdilhom f'dik l-ordni wara. 1012 01:07:15,420 --> 01:07:18,470 Li se jagħmel ċert li jekk xi ħadd ma dan bħal dan, 1013 01:07:18,470 --> 01:07:24,050 u dawn ikollhom l jew 1 = 1 sitwazzjoni, li se tiżgura ruħha, 1014 01:07:24,050 --> 01:07:30,490 fl-aħħar lura, kun żgur li mhux se attwalment jiksru l-mistoqsija SQL. 1015 01:07:30,490 --> 01:07:33,660 Okay, hekk li pjuttost ħafna dan, whirlwind ta 'PHP u SQL. 1016 01:07:33,660 --> 01:07:41,520 Aħjar ta 'xortih kollu inti, u issa biex Ore 1017 01:07:41,520 --> 01:07:44,270 >> [Oreoluwatomiwa Babarinsa] kulħadd Okay. Ħin biex tmur fuq xi JavaScript 1018 01:07:44,270 --> 01:07:48,840 u xi affarijiet oħra malajr ħafna hekk aħna ma inti żżomm up tonight. 1019 01:07:48,840 --> 01:07:56,930 JavaScript. Iva. JavaScript huwa tip ta 'ħaġa jibred, allegatament. 1020 01:07:56,930 --> 01:07:59,090 L-affarijiet int verament bżonn tkun taf dwar JavaScript, huwa tip simili 1021 01:07:59,090 --> 01:08:03,810 l-aħħar client-side 'dak app web tiegħek se tkun qiegħda tagħmel. 1022 01:08:03,810 --> 01:08:08,280 Hemm xi affarijiet li inti biss ma tixtieq li tieħu kura ta 'l-ħin kollu fuq in-naħa server. 1023 01:08:08,280 --> 01:08:12,880 L-interazzjonijiet ftit, li tenfasizza ħaġa waħda, jagħmel xi ħaġa jisparixxu. 1024 01:08:12,880 --> 01:08:15,340 Int verament ma jridux li jkollhom biex jitkellem server tiegħek il-ħin kollu għal dan. 1025 01:08:15,340 --> 01:08:18,069 U xi wħud li lanqas ma huwa possibbli li jsir fuq in-naħa server. 1026 01:08:18,069 --> 01:08:21,899 Dan huwa għaliex għandna bżonn xi ħaġa bħal JavaScript. 1027 01:08:21,899 --> 01:08:24,359 Affarijiet jibred dwar JavaScript: Huwa huwa dinamikament ittajpjat. 1028 01:08:24,359 --> 01:08:27,149 X'inhu dan ifisser huwa li programm tiegħek ma bżonn tkun taf 1029 01:08:27,149 --> 01:08:30,970 dak, eżattament, il-varjabbli huma meta tikteb it out. 1030 01:08:30,970 --> 01:08:34,510 Hija ser biss tip ta 'figura hija out kif huwa taħdem. 1031 01:08:34,510 --> 01:08:37,520 Affarijiet oħra li huma jibred dwar dan: Huwa lingwa Brace kaboċċi, 1032 01:08:37,520 --> 01:08:41,359 li tfisser il-sintassi huwa simili għal C u PHP. 1033 01:08:41,359 --> 01:08:47,050 Inti ma għandekx tagħmel ħafna tinħadem mill-ġdid meta int tagħlim JavaScript. 1034 01:08:47,050 --> 01:08:49,180 Hawnhekk għandna ftit ta 'JavaScript. 1035 01:08:49,180 --> 01:08:52,560 Interessanti ħaġa dritt hawnhekk hija li, jekk inti tħares lejn din, 1036 01:08:52,560 --> 01:08:56,330 għandna daqsxejn ta 'JavaScript hemm dritt fil-tag ras. 1037 01:08:56,330 --> 01:08:59,479 X'inhu ma huwa bażikament biss jinkludu fajl JavaScript. 1038 01:08:59,479 --> 01:09:02,260 Dan huwa mod wieħed li inti tista 'tinkludi JavaScript fil-programm tiegħek. 1039 01:09:02,260 --> 01:09:06,910 Imbagħad it-tieni ftit huwa attwalment ftit JavaScript inline, 1040 01:09:06,910 --> 01:09:10,790 simili ħafna għal stil inline CSS, 1041 01:09:10,790 --> 01:09:16,180 u int biss bil-miktub xi kodiċi ħafna malajr hemmhekk. 1042 01:09:16,180 --> 01:09:18,120 JavaScript għandha arrays. 1043 01:09:18,120 --> 01:09:20,850 Biss mod ieħor biex iżommu data madwar, utli ħafna. 1044 01:09:20,850 --> 01:09:25,180 Sintassi sabiħ ħafna u faċli. 1045 01:09:25,180 --> 01:09:29,870 Tuża parentesi kwadri aċċess kollox u jżomm kollox flimkien. 1046 01:09:29,870 --> 01:09:35,020 Xejn wisq kumplessi. 1047 01:09:35,020 --> 01:09:38,630 Il-ħaġa jibred dwar JavaScript u lingwi scripting b'mod ġenerali 1048 01:09:38,630 --> 01:09:40,920 hija li inti ma għandekx għalfejn tinkwieta dwar daqsijiet array. 1049 01:09:40,920 --> 01:09:43,880 Tista 'biss tuża array.length u jżommu rekord ta' dan, 1050 01:09:43,880 --> 01:09:46,960 u wkoll il-firxa tista 'tikber jew tiċkien kif għandek bżonn li. 1051 01:09:46,960 --> 01:09:49,279 Allura inti lanqas biss bżonn ninkwetaw dwar xi tip ta ', 1052 01:09:49,279 --> 01:09:57,050 oh no, I bżonn jallokaw aktar affarijiet, jew xi ħaġa bħal dik. 1053 01:09:57,050 --> 01:10:00,090 >> Il-ħaġa jibred hawnhekk hija li JavaScript għandu xi ħaġa imsejħa oġġetti. 1054 01:10:00,090 --> 01:10:04,800 Huwa ta 'lingwa oġġett orjentati lejn, sabiex dak li jkun huwa, essenzjalment, 1055 01:10:04,800 --> 01:10:10,100 mod għalik biex data grupp flimkien, kemmxejn simili għal Istituzzjonjijiet, 1056 01:10:10,100 --> 01:10:17,280 imma int tista 'aċċess bħal Struct jew fi sintassi firxa assoċjattiva. 1057 01:10:17,280 --> 01:10:22,520 Huwa pjuttost sempliċi u x'tista 'tagħmel ma' dan huwa tagħrif grupp flimkien 1058 01:10:22,520 --> 01:10:24,810 jekk għandek mazz ta 'data thats relatati. 1059 01:10:24,810 --> 01:10:26,850 Għaliex dan huwa l-affarijiet kollha li għandek bżonn biex jiddeskrivu karozza, 1060 01:10:26,850 --> 01:10:29,050 inti m'għandekx bżonn li jkollhom fil-mazz ta 'postijiet differenti. 1061 01:10:29,050 --> 01:10:35,300 Tista 'biss stick fis 1 oġġett fil JavaScript. 1062 01:10:35,300 --> 01:10:39,090 As you know probabbilment, iterazzjoni hija waħda minn dawk il-kompiti tedious. 1063 01:10:39,090 --> 01:10:43,810 Inti biss tagħmel dan fuq aktar mill-ġdid. Għandek bżonn biex jitkellmu ma 'kull oġġett fil-karozza, 1064 01:10:43,810 --> 01:10:47,340 jew għandek bżonn li jmorru permezz ta 'kull oġġett fil-lista jew xi ħaġa bħal dik. 1065 01:10:47,340 --> 01:10:51,770 Allura JavaScript għandha, simili għal PHP, sintassi foreach. 1066 01:10:51,770 --> 01:10:54,590 F'dan il-każ, huwa fl loop. 1067 01:10:54,590 --> 01:10:57,300 Inti tixtieq li tuża dan biss fuq oġġetti. 1068 01:10:57,300 --> 01:11:01,030 Hemm xi problemi li jseħħu jekk tuża dan fuq arrays. 1069 01:11:01,030 --> 01:11:03,750 Huwa ġeneralment hija waħda minn dawk l-affarijiet, madankollu, li huwa utli ħafna, 1070 01:11:03,750 --> 01:11:06,590 għaliex inti telimina ħafna ta 'overhead 1071 01:11:06,590 --> 01:11:10,270 għaliex inti ma għandekx pull up kollox fil-għan tiegħek mill yourself. 1072 01:11:10,270 --> 01:11:12,300 Inti ma għandek tiftakar l-ismijiet kollha ewlenin. 1073 01:11:12,300 --> 01:11:18,270 Inti biss tip ta tikseb lura f'dan sintassi. 1074 01:11:18,270 --> 01:11:21,500 F'dan, ma, inti biss trid tiftakar 1075 01:11:21,500 --> 01:11:27,180 li int jkollna lura l-ċwievet, b'mod simili ħafna għall hash tabella. 1076 01:11:27,180 --> 01:11:30,880 Jekk tiftakar minn dan, meta inti tpoġġi fil string inti tista 'tikseb xi ħaġa out 1077 01:11:30,880 --> 01:11:33,840 li jkollha valur assoċjat miegħu. 1078 01:11:33,840 --> 01:11:36,360 X'tista 'tagħmel ma' dan huwa inti tista 'tgħid, id-dritt, 1079 01:11:36,360 --> 01:11:42,120 I tpoġġi fil-karozza, u I sejħitilha Ferrari. 1080 01:11:42,120 --> 01:11:45,290 Allura inti tista 'tpoġġi fis-sekwenza Ferrari again later, u tista' tikseb dan out. 1081 01:11:45,290 --> 01:11:50,000 U inti tista 'tagħmel dan fil-linja, bil-fil loop. 1082 01:11:50,000 --> 01:11:53,320 Hekk biss aktar dwar oġġetti. Il-ħaġa importanti minn dan għandek bżonn biex tiftakar 1083 01:11:53,320 --> 01:12:00,340 hija li inti tista 'tuża l-Struct oġġett simili sintassi kull meta trid ma' dawn, 1084 01:12:00,340 --> 01:12:04,590 ħlief jekk dak tiegħek ser tuża bħala string mhuwiex isem varjabbli valida. 1085 01:12:04,590 --> 01:12:07,650 Mela jekk inti tħares lejn li hemm, għandna ewlenin bi spazji. 1086 01:12:07,650 --> 01:12:12,500 Ukoll, jekk ġejt biex tpoġġi object.key, ispazju, bil, ispazju, spazji, 1087 01:12:12,500 --> 01:12:15,320 biss li ma tkunx tagħmel sens sintattikament. 1088 01:12:15,320 --> 01:12:22,730 Allura inti biss tista 'tagħmel dan ma' dan it-tip ta 'sintassi bracket. 1089 01:12:22,730 --> 01:12:26,520 >> Ukoll, JavaScript huwa ferm 'ambitu għaqli li PHP. 1090 01:12:26,520 --> 01:12:29,050 Għandek 2 modi kif jiġu indirizzati ambitu. 1091 01:12:29,050 --> 01:12:31,960 Ma jistax ikollok il-var quddiem ta 'varjabbli, 1092 01:12:31,960 --> 01:12:34,060 u li ifisser biss dan huwa globali. 1093 01:12:34,060 --> 01:12:37,050 Tista 'tara minn kullimkien. Anki jekk ġejt biex tpoġġi dan fi jekk id-dikjarazzjoni, 1094 01:12:37,050 --> 01:12:42,430 imkien ieħor fil-kodiċi tiegħek wara dak il-punt inti tista 'tara dak il-varjabbli. 1095 01:12:42,430 --> 01:12:46,730 Ħaġa oħra, għalkemm, huwa bl-var, huwa limitat għal dak kollu funzjoni int pulzieri 1096 01:12:46,730 --> 01:12:48,870 Jekk int mhux fil-funzjoni, ukoll, huwa globali. 1097 01:12:48,870 --> 01:12:53,900 Imma jekk inti fil-funzjoni huwa viżibbli biss fi ħdan dik il-funzjoni. 1098 01:12:53,900 --> 01:12:56,420 I m'għandhomx eżempju, iżda, yeah. Huwa wieħed minn dawk l-affarijiet fejn 1099 01:12:56,420 --> 01:12:59,900 inti tista 'tmexxi dak varjabbli inti tixtieq li tkun globali, 1100 01:12:59,900 --> 01:13:03,810 dak varjabbli inti tixtieq li tkun lokali, imma inti jeħtieġ li tkun attenta dwar dan, 1101 01:13:03,810 --> 01:13:06,890 għaliex inti ma għandekx it-tip ta 'kontroll qamħ fin tagħmel fl C, 1102 01:13:06,890 --> 01:13:15,820 fejn jekk xi ħaġa hija dikjarata għall-loop, li għaddej biex joqogħdu f'dak l għal loop. 1103 01:13:15,820 --> 01:13:18,790 Il-ħaġa li għandna attwalment kura dwar l-użu JavaScript għall huwa manipulazzjoni paġni web, right? 1104 01:13:18,790 --> 01:13:21,800 I mean, huwa għalhekk li għandna qed tagħmel dan. 1105 01:13:21,800 --> 01:13:23,840 >> Biex tagħmel dan, aħna nużaw xi ħaġa imsejħa l-DOM. 1106 01:13:23,840 --> 01:13:25,850 Il-Mudell Għan Dokument. 1107 01:13:25,850 --> 01:13:29,430 Bażikament, dak li ma huwa jieħu kollha HTML tiegħek 1108 01:13:29,430 --> 01:13:34,110 u mudelli out fis-mazz ta 'oġġetti li huma nested fi ħdan xulxin. 1109 01:13:34,110 --> 01:13:37,080 Tibda ma 'xi ħaġa bħal din. 1110 01:13:37,080 --> 01:13:44,770 Inti għandek, dwar id-dritt għalija, mazz ta 'kodiċi hemmhekk li tip ta' prodotti - 1111 01:13:44,770 --> 01:13:46,640 Inti ser jaħseb li d jkun diffiċli ħafna biex jimmanipulaw, 1112 01:13:46,640 --> 01:13:48,700 għaliex youd tkun parsing permezz mazz ta 'test 1113 01:13:48,700 --> 01:13:52,080 u li għall-biċċa apparti affarijiet. U jekk dak ma kienx formattjati b'mod korrett? 1114 01:13:52,080 --> 01:13:54,880 Affarijiet ħżiena jiġri. 1115 01:13:54,880 --> 01:13:58,140 Allura JavaScript jieħu ħsieb ta 'dan għalik, u ikollok struttura data sabiħ, 1116 01:13:58,140 --> 01:14:01,390 bħal dik fuq xellug tiegħi, fejn inti biss għandek dokument, 1117 01:14:01,390 --> 01:14:03,530 u ġewwa li għandek xi ħaġa imsejħa HTML, 1118 01:14:03,530 --> 01:14:05,600 u ġewwa li għandek ras u korp, 1119 01:14:05,600 --> 01:14:08,420 u ġewwa li ras għandek titolu, etcetera, etcetera, etcetera. 1120 01:14:08,420 --> 01:14:11,810 Dan jissimplifika manipulazzjoni paġna web b'tali mod li huwa biss, 1121 01:14:11,810 --> 01:14:14,190 oh, I biss trid titkellem ma 'dan l-oġġett. 1122 01:14:14,190 --> 01:14:21,340 Sort ta 'mod simili ħafna inti tkellem oġġett ieħor li tkun għamilt yourself. 1123 01:14:21,340 --> 01:14:25,980 Like I said, l-DOM huwa fid-dokument oġġett. 1124 01:14:25,980 --> 01:14:29,290 Jew huwa biss f'post wieħed u mbagħad inti tista 'tmur fi ħdanu biex isibu affarijiet, 1125 01:14:29,290 --> 01:14:33,880 u inti tista 'tagħmel dan - dan huwa l-istil antik ta' nagħmilx hekk, hemm, 1126 01:14:33,880 --> 01:14:38,130 fejn inti tagħmel document.getElementById, u mbagħad l-isem, 1127 01:14:38,130 --> 01:14:42,420 u kif inti tista 'probabbilment tgħid, din gets dens ħafna wara ftit żmien. 1128 01:14:42,420 --> 01:14:44,480 Allura inti probabilment ma tridx tagħmel dan. C'est pourquoi għandna 1129 01:14:44,480 --> 01:14:48,760 il-ħaġa li jmiss aħna qed tmur biex jitkellmu dwar wara dan. 1130 01:14:48,760 --> 01:14:52,510 Il-ħaġa prinċipali hawnhekk hija li, id-dritt, inti għandek dawn l-elementi kollha, id-dritt? 1131 01:14:52,510 --> 01:14:56,400 Hekk forsi I jistgħu jibdlu l-kulur ta 'xi ħaġa meta l-tagħbijiet paġna. 1132 01:14:56,400 --> 01:14:58,380 Allura dak? X'jiġri jekk l-utent tiegħi klikks xi ħaġa? 1133 01:14:58,380 --> 01:15:00,540 I tixtieq li tagħmel xi ħaġa interessanti meta ikklikkja xi ħaġa. 1134 01:15:00,540 --> 01:15:02,600 C'est pourquoi għandna avvenimenti. 1135 01:15:02,600 --> 01:15:05,330 Tista ', bażikament, issib xi element fil DOM tiegħek, 1136 01:15:05,330 --> 01:15:08,560 u mbagħad jgħidu, ħej. Meta dan tagħbijiet jew xi ħadd klikks, 1137 01:15:08,560 --> 01:15:11,410 jew meta maws fuqha, tagħmel xi ħaġa magħha. 1138 01:15:11,410 --> 01:15:15,330 U dak li għandek huwa, inti għandek funzjonijiet li jimmaniġġaw dan għalik. 1139 01:15:15,330 --> 01:15:17,980 Dawn il-funzjonijiet huma handlers avveniment. 1140 01:15:17,980 --> 01:15:20,440 What they're - huwa biss mod fancy ta 'tgħid, 1141 01:15:20,440 --> 01:15:23,500 din il-funzjoni hija esegwita biss meta jiġri dan l-avveniment. 1142 01:15:23,500 --> 01:15:28,070 Għalhekk mankijiet l-avveniment li jseħħ. 1143 01:15:28,070 --> 01:15:30,810 Dan huwa kif inti jistabbilixxu avveniment handler. 1144 01:15:30,810 --> 01:15:34,750 Għandi xi buttuna, u meta inti ikklikkja, tisplodi. 1145 01:15:34,750 --> 01:15:40,560 Allura ma ikklikkja l-buttuna. 1146 01:15:40,560 --> 01:15:42,910 Dan huwa mod wieħed ta 'toqrob dan, id-dritt? 1147 01:15:42,910 --> 01:15:46,430 Għandek tag buttuna, u fuq ikklikkja inti għandek string li tgħid, 1148 01:15:46,430 --> 01:15:50,460 oh, mill-mod, I do dan ħaġa jisplodi għalija. 1149 01:15:50,460 --> 01:15:53,990 Inkella, huwa biss bħal buttuna regolari inti biss magħmula. 1150 01:15:53,990 --> 01:15:56,550 Tista 'wkoll tagħmel dan il-mod ieħor, 1151 01:15:56,550 --> 01:16:02,770 billi ħtif l-element DOM, iżda aħna ser tiffranka li wara nitkellmu dwar jQuery. 1152 01:16:02,770 --> 01:16:07,580 >> JQuery: Huwa librerija li huwa cross-browser. 1153 01:16:07,580 --> 01:16:09,580 Tista 'tużah fil xi ħaġa pjuttost ħafna. 1154 01:16:09,580 --> 01:16:12,090 U hija biss jagħtik ħafna ta 'għodod li jaħdmu magħhom. 1155 01:16:12,090 --> 01:16:15,850 Minħabba JavaScript, filwaqt qawwija, ma jkollhom l-għodda kollha li għandek bżonn 1156 01:16:15,850 --> 01:16:20,550 barra mill-kaxxa li verament jindirizzaw app web inti tista 'tixtieq li tagħmel. 1157 01:16:20,550 --> 01:16:24,650 Għalhekk tissimplifika ħafna affarijiet, jagħtik ħafna ta 'funzjonijiet 1158 01:16:24,650 --> 01:16:28,760 barra mill-kaxxa li inti normalment għandek tikteb lilek innifsek, aktar u aktar u aktar mill-ġdid. 1159 01:16:28,760 --> 01:16:31,600 U biss tagħmel affarijiet sempliċi ħafna. 1160 01:16:31,600 --> 01:16:35,780 Inti ukoll għandek seletturi, li tavżak jitneħħew dawk l-elementi kollha 1161 01:16:35,780 --> 01:16:42,800 mill DOM tiegħek ħafna aktar sempliċi, minflok li jużaw dawn is-sejħiet funzjoni twal ħafna. 1162 01:16:42,800 --> 01:16:46,630 Aktar dwar dawn seletturi. Inti għandek, up hemm ikollok, ejja ngħidu 1163 01:16:46,630 --> 01:16:49,800 I rridu nġibu element bl-ID "rock." 1164 01:16:49,800 --> 01:16:56,450 Ukoll, fil jQuery, huwa biss $ u mbagħad string li għandha lira, u mbagħad "rock." 1165 01:16:56,450 --> 01:17:01,960 Huwa sempliċi ħafna u ħafna aktar malajr milli l-mod JavaScript tradizzjonali ta 'indirizzar din il-problema. 1166 01:17:01,960 --> 01:17:06,120 U inti għandek affarijiet simili għall-klassijiet u t-tipi element. 1167 01:17:06,120 --> 01:17:08,140 jQuery huwa - waħda mill-karatteristiċi jibred huwa inti tista 'tip ta' kkompressat 1168 01:17:08,140 --> 01:17:14,350 down mistoqsijiet tiegħek dwar DOM tiegħek ħafna, malajr ħafna. 1169 01:17:14,350 --> 01:17:18,980 Issa aħna qed lura għall-immaniġġjar-każ, u dan huwa kif inti jimmaniġġaw avveniment wieħed fil jQuery. 1170 01:17:18,980 --> 01:17:23,090 Allura dak li aħna qed tmur hawnhekk huwa li aħna qed tgħid, id-dritt. I jkollhom tikketta iskript, id-dritt? 1171 01:17:23,090 --> 01:17:25,400 So I jkollhom din inline JavaScript. 1172 01:17:25,400 --> 01:17:27,750 Dak li aħna qed tmur biex tagħmel hu li aħna qed tmur biex ngħid, id-dritt. 1173 01:17:27,750 --> 01:17:30,860 Meta d-dokument huwa lest, li tfisser id-dokument kien mgħobbi, 1174 01:17:30,860 --> 01:17:34,660 aħna se jmorru fl għal dik il-funzjoni, u aħna qed tmur biex ngħid, id-dritt, 1175 01:17:34,660 --> 01:17:37,060 din il-funzjoni fil-fatt tagħmel xi ħaġa oħra. 1176 01:17:37,060 --> 01:17:42,320 Huwa bażikament qal, id-dritt, jiksbu me-element bl-ID "myid." 1177 01:17:42,320 --> 01:17:47,960 U mbagħad tagħti dan handler funzjoni li tesegwixxi meta inti ikklikkja dan. 1178 01:17:47,960 --> 01:17:49,820 Bażikament dak li dan ma huwa, huwa jgħid, id-dritt. 1179 01:17:49,820 --> 01:17:52,630 Il-paġna hija mgħobbija, hekk jien ser fi, isibu dan l-element, 1180 01:17:52,630 --> 01:17:56,420 tagħtiha din handler avveniment, u huwa bażikament tistabbilixxi page tiegħek għalik. 1181 01:17:56,420 --> 01:18:00,520 U dan huwa kif inti tixtieq li jaħsbu dwar tqandil avveniment. 1182 01:18:00,520 --> 01:18:06,310 Inti biss tixtieq li jaħsbu dwar, id-dritt, meta jseħħ xi ħaġa, dak li nixtieq li jiġri? 1183 01:18:06,310 --> 01:18:10,520 Inti ma tridx li wieħed jaħseb dwar, okay, I bżonn tagħmel ċert taħdidiet dan ħaġa li dan il-ħaġa, 1184 01:18:10,520 --> 01:18:14,660 dan ħaġa blah blah blah, għaliex inti biss trid titkellem ħaġa f'termini ta 'avvenimenti. 1185 01:18:14,660 --> 01:18:17,650 Meta jiġri dan, dan jiġri. Meta jiġri dan, li jiġri. 1186 01:18:17,650 --> 01:18:20,240 U jekk l-affarijiet jikkawżaw affarijiet oħra, li l-kbir. 1187 01:18:20,240 --> 01:18:22,150 Imma inti ma tridx tipprova tagħmel kodiċi kkumplikata 1188 01:18:22,150 --> 01:18:24,130 fejn int triggering affarijiet multipli fl-istess ħin, 1189 01:18:24,130 --> 01:18:28,860 għax int biss ser tagħti lilek innifsek ras. 1190 01:18:28,860 --> 01:18:32,340 >> Id-dritt. Issa nistgħu nibdew page tagħna biex jimmaniġġaw avvenimenti, 1191 01:18:32,340 --> 01:18:35,640 imma ejja ngħidu utent tiegħi klikks buttuna. 1192 01:18:35,640 --> 01:18:38,040 X'jiġri jekk I trid tibgħat dik it-talba lura lill-server, 1193 01:18:38,040 --> 01:18:41,100 imma ma rridx li rikarigu-paġna, minħabba li jkollhom biex jerġgħu jitgħabbew paġna ġdida 1194 01:18:41,100 --> 01:18:44,390 kull wieħed ħin gets tip ta 'tedious, u għaliex għandi bżonn 1195 01:18:44,390 --> 01:18:47,430 biex jiġbdu l-header-ġdid, u l-footer għal darb'oħra, 1196 01:18:47,430 --> 01:18:49,670 u l-elementi kollha tal-paġna darb'oħra 1197 01:18:49,670 --> 01:18:53,180 biss li jġedded l-greeting jew il-ħin? 1198 01:18:53,180 --> 01:18:55,290 Allura hu għalhekk li aħna għandna xi ħaġa bħal Ajax. 1199 01:18:55,290 --> 01:18:59,150 Dak li nistgħu nagħmlu hawn ma Ajax huwa nistgħu ngħidu, id-dritt, 1200 01:18:59,150 --> 01:19:01,290 Irrid li jibgħat xi data lill-server, 1201 01:19:01,290 --> 01:19:04,010 u nixtieq li tikseb rispons lura sabiex I tista 'taġġorna paġna tiegħi, 1202 01:19:04,010 --> 01:19:12,120 jew forsi ftit jagħmlu xi kalkolu algorithmic li mhux bilfors juri xejn għall-utent. 1203 01:19:12,120 --> 01:19:15,500 What do għandek bżonn tagħmel dan? Well, inti għandek bżonn URL għandek bżonn biex jitkellem. 1204 01:19:15,500 --> 01:19:18,650 Server tiegħek tista 'mhux biss magically jisimgħu minn imkien. 1205 01:19:18,650 --> 01:19:21,960 Ikollok bżonn li jkollhom post speċifiku int tibgħat din id-data li. 1206 01:19:21,960 --> 01:19:26,240 U inti wkoll bżonn xi data li tibgħat, jew forsi huwa a query dataless. 1207 01:19:26,240 --> 01:19:31,380 Biss inti tixtieq li ping lura lill-server u jgħidu, ħej, jien ħaj, jew xi ħaġa bħal dik. 1208 01:19:31,380 --> 01:19:35,150 U allura inti tixtieq funzjoni li bażikament mankijiet ta 'suċċess. 1209 01:19:35,150 --> 01:19:38,250 Ejja ngħidu ikollok lura xi informazzjoni minn server tiegħek, 1210 01:19:38,250 --> 01:19:42,960 u inti tixtieq li tibdel it-titolu l-utent fuq il-paġna tagħhom. 1211 01:19:42,960 --> 01:19:44,930 Allura inti se tikseb l-informazzjoni lura, 1212 01:19:44,930 --> 01:19:48,860 u inti timbotta li l-iskrin. 1213 01:19:48,860 --> 01:19:51,170 Dak li jiġri huwa, meta l-paġna hija lesta, 1214 01:19:51,170 --> 01:19:56,500 inti toħloq ikklikkja fuq il-funzjoni għal din il-buttuna imsejħa greeter. 1215 01:19:56,500 --> 01:19:58,810 X'inhu dan allura ma huwa, meta dik buttuna hu imbuttata, 1216 01:19:58,810 --> 01:20:03,700 tkellem lill greetings.php, inti tagħmel talba POST, 1217 01:20:03,700 --> 01:20:07,290 u inti tgħidli, ħej, nikseb me xi ħaġa mill-paġna tiegħek. 1218 01:20:07,290 --> 01:20:09,890 Aħna ma verament bżonn biex jiddeskrivu, iżda greetings.php, 1219 01:20:09,890 --> 01:20:12,480 ejja biss jgħidu, jagħti lura "bonjour dinja." 1220 01:20:12,480 --> 01:20:15,650 Allura aħna terġa 'lura dan "bonjour dinja," u fuq is-suċċess ta' dan, 1221 01:20:15,650 --> 01:20:20,730 jekk wieħed jassumi xejn tmur ħażin, allura aħna biss jmorru għal dan il-post fil-mira 1222 01:20:20,730 --> 01:20:25,720 li aħna speċifikat u aħna biss stick-rispons fil hemmhekk. 1223 01:20:25,720 --> 01:20:31,560 U dan huwa mod sempliċi ħafna li jitwaqqaf query Ajax. 1224 01:20:31,560 --> 01:20:34,340 >> Malajr ħafna, Rob tip ta jissemma dan diġà, 1225 01:20:34,340 --> 01:20:37,170 affarijiet jistgħu imorru ħażin, affarijiet ħżiena jista 'jiġri, 1226 01:20:37,170 --> 01:20:42,660 sabiex inti tixtieq li tiffamiljarizza ruħek ma 'dawn il-kodiċijiet ta' rispons HTTP. 1227 01:20:42,660 --> 01:20:46,030 X'inhuma dawn huma huma biss, bħal, 200, kollox mexa okay. 1228 01:20:46,030 --> 01:20:48,670 Xi ħaġa oħra, affarijiet ħżiena li ġara. 1229 01:20:48,670 --> 01:20:50,790 Huwa ġeneralment l-ħaġa li trid tiftakar. 1230 01:20:50,790 --> 01:20:53,440 Iżda huwa sbieħ li tkun taf dawn kollha. 1231 01:20:53,440 --> 01:20:55,970 U fl-aħħarnett, ladarba aħna ħadthom marret kollha permezz ta 'li, 1232 01:20:55,970 --> 01:20:58,680 għandna bżonn biex jitkellmu malajr ħafna dwar id-disinn, 1233 01:20:58,680 --> 01:21:00,620 u allura nistgħu tavżak kollha leave. 1234 01:21:00,620 --> 01:21:03,410 Disinn. Affarijiet inti trid tiftakar. 1235 01:21:03,410 --> 01:21:06,950 Staqsi lilek innifsek dawn il-mistoqsijiet: Min ser tkun qed tuża dan? 1236 01:21:06,950 --> 01:21:09,580 Liema se jkunu huma li tkun qed tuża lilha għall? What do utenti tiegħi jimpurtahom? 1237 01:21:09,580 --> 01:21:11,750 What ma li jimpurtahom? 1238 01:21:11,750 --> 01:21:14,500 Inti biss ma jridux li tagħmel app u ħalliha biss jikbru 1239 01:21:14,500 --> 01:21:18,270 u jsiru dan il-ġgant, ħaġa kollha li jikkunsmaw li inti ma tistax anki finitura. 1240 01:21:18,270 --> 01:21:23,900 Inti tixtieq li jkollha għanijiet diskreti u l-pjanijiet u l-affarijiet inti trid tindirizza. 1241 01:21:23,900 --> 01:21:29,000 Jagħmluha effortless. Kollha ta 'dan jgħid, bażikament, 1242 01:21:29,000 --> 01:21:34,950 tagħmilha faċli għall-utent biex jużawha; ma jagħmilhiex blob ġgant ta 'test bħal dan slide hija, fil-fatt. 1243 01:21:34,950 --> 01:21:38,020 Inti biss jixtiequ li din tkun xi ħaġa fejn huwa faċli ħafna għal xi ħadd li jmorru fl 1244 01:21:38,020 --> 01:21:40,800 u jagħmlu dak li jridu jagħmlu. 1245 01:21:40,800 --> 01:21:42,920 Inti ma tridx li jkollhom biex jinnaviga 5 paġni 1246 01:21:42,920 --> 01:21:45,460 biex jiksbu l-funzjoni ewlenija tiegħek ta 'sit tiegħek. 1247 01:21:45,460 --> 01:21:49,290 Jekk Google kellhom 5 paġni qabel ma inti tista 'anki tfittxija xi ħaġa, 1248 01:21:49,290 --> 01:21:53,080 ebda wieħed jużaha. 1249 01:21:53,080 --> 01:21:55,890 U fl-aħħarnett, prototip karta, focus group. 1250 01:21:55,890 --> 01:21:59,220 Jkollhom disinn tajba u prattika ta 'ittestjar. 1251 01:21:59,220 --> 01:22:00,730 Just għaliex taħseb li jaħdem għalik, 1252 01:22:00,730 --> 01:22:04,860 ma jfissirx xi ħadd ieħor jaħseb taħdem. 1253 01:22:04,860 --> 01:22:14,490 Iżda yeah, thats it. 1254 01:22:14,490 --> 01:22:17,490 [CS50.TV]