1 00:00:00,000 --> 00:00:02,670 [Powered by Google Translate] Sehemu ya tatizo Kuweka 2: Haka Edition 2 00:00:02,670 --> 00:00:04,910 Rob Bowden, Chuo Kikuu cha Harvard 3 00:00:04,910 --> 00:00:07,410 Hii ni CS50. CS50.TV 4 00:00:07,410 --> 00:00:15,770 Kwa hiyo, mimi nina Rob. Mimi nina mwandamizi katika Kirkland. Huu ni mwaka wa tatu yangu TFing CS50. 5 00:00:15,770 --> 00:00:22,220 Ni mara ya kwanza kwamba sisi ni kubadilisha kutoka sehemu jadi-hotuba-style, 6 00:00:22,220 --> 00:00:25,610 ambapo sisi tu aina ya mapitio kile kilichotokea katika hotuba na kisha guys kuuliza maswali, 7 00:00:25,610 --> 00:00:32,250 sasa kwa kuwa mengi zaidi tatizo-msingi, ambapo sisi kutumia Spaces, na - 8 00:00:32,250 --> 00:00:37,410 Oh, hivyo wazo ni kwenda zilizounganishwa nilipowatuma na kisha wewe utakuwa katika nafasi yangu. 9 00:00:37,410 --> 00:00:42,410 Je, mtu yeyote kuwa mbali? Sawa. 10 00:00:42,410 --> 00:00:47,050 Hivyo sisi ni kwenda kuwa na kutumia hii, na sisi ni kwenda kufanya matatizo kuishi katika sehemu 11 00:00:47,050 --> 00:00:50,740 na kujadili nao na kuhesabia nje nini makosa 12 00:00:50,740 --> 00:00:56,390 na mimi ili kuvuta up baadhi ya code yako, na mimi ili kujadili mawazo yako. 13 00:00:56,390 --> 00:01:02,140 Hivyo ina mtu alikuwa na shida? 14 00:01:02,140 --> 00:01:07,000 Unaweza kuzungumza upande; mimi sijui kama tutaweza kuwa na sababu kwa ajili hiyo. 15 00:01:07,000 --> 00:01:12,270 Sasa, kama supersection uliopita, kama walikuwa katika darasa kwamba, unajua nini hiyo ni juu. 16 00:01:12,270 --> 00:01:19,200 Juu ya yote ya seti P kuna kwenda kuwa hizi sehemu. 17 00:01:19,200 --> 00:01:22,550 Hivyo P-set 2, specifikationer, Nadhani kuona jambo P-set 1 tayari. 18 00:01:22,550 --> 00:01:27,400 Lakini tunaweza kuangalia P-set 2 kwa nini tuko kwenda kwenda juu ya leo. 19 00:01:27,400 --> 00:01:29,460 Na utaona sehemu ya maswali. 20 00:01:29,460 --> 00:01:37,530 Hivyo hii itakuwa katika yote ya P-seti; kutakuwa sehemu ya maswali. 21 00:01:37,530 --> 00:01:41,340 Hadi sasa tumekuwa alisema, "Fikiria fursa hii ya kufanya mazoezi." 22 00:01:41,340 --> 00:01:44,940 Huwezi kuwa na kuulizwa kuwasilisha mpango huu. 23 00:01:44,940 --> 00:01:48,480 Wazo ni kwamba hawa wanatakiwa aina ya kusaidia kupata kuanza kwa kuweka tatizo. 24 00:01:48,480 --> 00:01:53,220 Nadhani katika toleo Hacker, mengi yao wanatakiwa tu kuwa mpya, ya kuvutia mambo ya kujifunza. 25 00:01:53,220 --> 00:01:58,590 Wanaweza kuwa na moja kwa moja husika na kuweka tatizo. 26 00:01:58,590 --> 00:02:01,810 Na hivi sasa sisi siyo kuwa wewe kuwasilisha yao, lakini katika nadharia, 27 00:02:01,810 --> 00:02:07,480 kwa seti baadaye tatizo, unaweza kuwasilisha yao, na hivyo unaweza ama kuja sehemu 28 00:02:07,480 --> 00:02:10,380 au kutazama sehemu ya kupata majibu, au unaweza tu kupata yao juu yako mwenyewe 29 00:02:10,380 --> 00:02:16,350 kama huna wanaona kama kufurahia uwepo wangu. 30 00:02:16,350 --> 00:02:21,010 Hivyo - Nadhani hii ni moja ya kwanza. 31 00:02:21,010 --> 00:02:29,280 Oh. Pia, chini ya sehemu hizi za maswali sisi pia kuuliza maswali kuhusu kaptula. 32 00:02:29,280 --> 00:02:33,440 Basi, mimi nadhani, katika nadharia, wewe wanatakiwa kuangalia hizi kabla ya kuja kwa sehemu, 33 00:02:33,440 --> 00:02:38,550 lakini ni faini kama huna, tutaweza kwenda juu yao anyway. 34 00:02:38,550 --> 00:02:42,590 Basi, tunaweza kuanza na haya: "Jinsi gani kitanzi wakati tofauti na kitanzi do-wakati? 35 00:02:42,590 --> 00:02:46,210 Wakati ni muhimu hasa mwisho? " 36 00:02:46,210 --> 00:02:49,390 Hivyo mtu yeyote kuwa yoyote -? 37 00:02:49,390 --> 00:02:52,730 [Mwanafunzi] do-wakati kitanzi daima nitafanya angalau mara moja. 38 00:02:52,730 --> 00:03:02,950 Ndiyo. Hivyo kwamba ni tofauti. kitanzi wakati - I'll tu kufanya hivyo hapa - wakati kitanzi, tuna hali 39 00:03:02,950 --> 00:03:19,760 haki hapa, ambapo do-wakati, huna hali mpaka sisi kupata chini hapa. 40 00:03:19,760 --> 00:03:24,130 Na hivyo, wakati mpango wako s utekelezaji, na anapata kwa kitanzi wakati, 41 00:03:24,130 --> 00:03:26,380 mara moja hundi kama hali hii ni kweli. 42 00:03:26,380 --> 00:03:30,710 Kama hali hiyo siyo kweli, itakuwa tu ruka juu ya kitanzi kabisa. 43 00:03:30,710 --> 00:03:34,390 Do-wakati kitanzi, kama mpango wa utekelezaji, anapata na "kufanya." 44 00:03:34,390 --> 00:03:37,920 Hakuna kinachotokea katika hatua hii, tu inaendelea utekelezaji. 45 00:03:37,920 --> 00:03:42,690 Kisha wakati hits "wakati," kama hali ni ya kweli, hivyo itabidi kitanzi nyuma na kufanya hivyo tena 46 00:03:42,690 --> 00:03:46,730 na tena na tena mpaka hali si kweli na kisha tu falls kupitia. 47 00:03:46,730 --> 00:03:50,600 Hivyo, tofauti kuwa, kwamba huu unaweza ruka haki, tangu mwanzo sana. 48 00:03:50,600 --> 00:03:56,770 Hii lazima executes mara moja na kisha inaweza kutekeleza mara zaidi kama hali bado ni kweli. 49 00:03:56,770 --> 00:04:03,720 Hivyo kitanzi wakati tu kufanya hivyo mara moja, au - wakati kitanzi - sisi wanaweza haja ya kufanya hivyo wakati wote, 50 00:04:03,720 --> 00:04:07,900 tangu haraka kama sisi kupata hiyo, kama hali ni uongo, tutaweza tu ruka haki juu yake. 51 00:04:07,900 --> 00:04:11,770 Wakati kufanya-wakati kitanzi, sisi nitafanya hivyo mara moja, lazima. 52 00:04:11,770 --> 00:04:14,560 Kisha, wakati sisi kupata hali, sisi kuangalia kama ni kweli au uongo. 53 00:04:14,560 --> 00:04:19,790 Kama ni kweli, tutaweza kufanya hivyo tena; kama ni uongo, tutaweza tu kuendelea kwenda. 54 00:04:19,790 --> 00:04:24,680 Hivyo wakati ni muhimu hasa masika? 55 00:04:24,680 --> 00:04:31,190 Hivyo naweza kusema kwamba katika ukamilifu wa miaka 4, miaka 3, chochote, 56 00:04:31,190 --> 00:04:38,780 kwamba nimekuwa programu, mimi sikutumia hii, kama, chini ya mara 10. 57 00:04:38,780 --> 00:04:43,140 Na pengine 5 kati yao ni katika CS50 wakati sisi ni kuanzisha matanzi kufanya-wakati. 58 00:04:43,140 --> 00:04:47,510 Hivyo wakati wewe kutumika kufanya-wakati matanzi? 59 00:04:47,510 --> 00:04:49,510 Wakati ni - yeah? 60 00:04:49,510 --> 00:04:53,180 [Mwanafunzi] Wakati wewe ni kujaribu kupata pembejeo user, au kitu unataka kuangalia - 61 00:04:53,180 --> 00:04:59,700 Yeah. Hivyo kufanya-wakati tanzi, mtumiaji pembejeo ni moja kubwa. 62 00:04:59,700 --> 00:05:03,160 Hiyo ndiyo siku ya kwanza ya wanandoa tatizo seti, wakati unataka kuuliza user, kama, 63 00:05:03,160 --> 00:05:08,520 "Nipe kamba," huwezi kuendelea mpaka kupata ile kamba. 64 00:05:08,520 --> 00:05:12,980 Na hivyo, lazima, haja ya kuuliza kwa kamba angalau mara moja. 65 00:05:12,980 --> 00:05:16,950 Lakini basi kama wao kujibu kitu mbaya, basi unahitaji kitanzi nyuma na kuuliza tena. 66 00:05:16,950 --> 00:05:20,810 Lakini zaidi ya pembejeo user, ni nadra sana kwamba mimi kukutana kesi 67 00:05:20,810 --> 00:05:27,170 ambapo nataka kitanzi "angalau mara moja" lakini pengine zaidi. 68 00:05:27,170 --> 00:05:33,370 Maswali au -? Kuna mtu yeyote kutumika kufanya-wakati kitanzi popote mwingine? 69 00:05:33,370 --> 00:05:36,780 Sawa. Hivyo moja ya pili ni, "Je, Undeclared kitambulisho 70 00:05:36,780 --> 00:05:43,310 kawaida zinaonyesha kama outputted na Clang? " 71 00:05:43,310 --> 00:05:47,380 Hivyo ni aina gani ya maadili inaweza mimi kuandika kupata 'kitambulisho Undeclared?' 72 00:05:47,380 --> 00:05:49,550 [Mwanafunzi] Hayo x = 2? 73 00:05:49,550 --> 00:05:52,650 Hivyo tunaweza tu kujaribu katika hapa, x = 2. 74 00:05:52,650 --> 00:06:04,830 Tutaweza kukimbia hii - oh, sikuweza bonyeza yake. Hivyo hapa sisi kupata - wote haki. 75 00:06:04,830 --> 00:06:07,100 "Matumizi ya x Undeclared kitambulisho." 76 00:06:07,100 --> 00:06:11,610 Basi hiyo ni kitambulisho Undeclared, hazibadiliki. 77 00:06:11,610 --> 00:06:13,910 Itakuwa mara nyingi kuwaita variable kitambulisho. 78 00:06:13,910 --> 00:06:17,300 Hivyo nisifahamu ni kweli variable, haina kujua ni nini. 79 00:06:17,300 --> 00:06:19,380 Hivyo ni kitambulisho. 80 00:06:19,380 --> 00:06:26,060 Hivyo ni kwa nini Undeclared? Yeah. 81 00:06:26,060 --> 00:06:32,190 Hivyo kwa kuwa wazi juu ya istilahi, tamko la variable 82 00:06:32,190 --> 00:06:37,360 ni wakati wewe kusema "x int," au "string y," lolote. 83 00:06:37,360 --> 00:06:41,910 initialization ya kutofautiana, au zoezi la kutofautiana, 84 00:06:41,910 --> 00:06:44,510 ni wakati wewe kusema "x = 2." 85 00:06:44,510 --> 00:06:52,950 Hivyo tunaweza kufanya haya katika hatua tofauti, int x, x = 2, na mpaka - tunaweza kuwa na rundo la stuff katika hapa - 86 00:06:52,950 --> 00:07:00,350 lakini mpaka mstari huu hutokea, x bado uninitialized, lakini imekuwa alitangaza. 87 00:07:00,350 --> 00:07:06,760 Na hivyo tunaweza kufanya hivyo ni wazi katika mstari 1, na sasa tunatangaza na initializing. 88 00:07:06,760 --> 00:07:10,730 Maswali? 89 00:07:10,730 --> 00:07:18,390 Na hatimaye, "Kwa nini ni Cipher Kaisari si salama sana?" 90 00:07:18,390 --> 00:07:23,830 Hivyo kwanza, haina mtu yeyote unataka kusema nini Cipher Kaisari ni? 91 00:07:23,830 --> 00:07:28,100 [Mwanafunzi] Kaisari Cipher tu ni kwamba wewe ramani, wewe kuhama kila herufi, 92 00:07:28,100 --> 00:07:34,420 idadi fulani ya barua kwenda juu, na hoja juu ya nyuma, na ni si salama sana kwa sababu 93 00:07:34,420 --> 00:07:42,260 kuna tu 26 chaguzi inawezekana na wewe tu na kujaribu kila 1 ya wale mpaka kupata. 94 00:07:42,260 --> 00:07:45,470 Oh. Hivyo, mimi lazima kurudia? 95 00:07:45,470 --> 00:07:51,600 Cipher Kaisari, it's - I mean, wewe utakuwa ni kushughulika na juu ya matatizo ambayo wewe - 96 00:07:51,600 --> 00:07:56,110 au mimi nadhani toleo la kawaida ya kuweka tatizo si kwamba katika toleo hacker. 97 00:07:56,110 --> 00:08:01,550 Kadhalika toleo la kawaida kwa kuweka tatizo, wewe kupata ujumbe kama "dunia Hello,," 98 00:08:01,550 --> 00:08:08,410 na wewe pia kuwa na idadi kama 6, na wewe kuchukua kwamba ujumbe, na kila tabia ya mtu binafsi, 99 00:08:08,410 --> 00:08:11,310 wewe ni mzunguko na nyadhifa 6 katika alfabeti. 100 00:08:11,310 --> 00:08:16,560 Hivyo 'h' katika hujambo bila kuwa h-i-j-k-l-m-n. 101 00:08:16,560 --> 00:08:19,600 Hivyo barua ya kwanza itakuwa n. Sisi kufanya kitu kimoja na e. 102 00:08:19,600 --> 00:08:23,530 Kama tuna, kama, z au kitu, basi sisi wrap nyuma karibu na '.' 103 00:08:23,530 --> 00:08:29,280 Lakini tabia ya kila anapata waliendesha 6 wahusika baadaye katika alfabeti, na si salama sana 104 00:08:29,280 --> 00:08:35,440 tangu kuna uwezekano tu 26 kwa jinsi njia nyingi unaweza wrap barua moja. 105 00:08:35,440 --> 00:08:42,919 Hivyo unaweza tu kujaribu yote 26 ya kwao na, pengine, kwa ujumbe mrefu wa kutosha, 106 00:08:42,919 --> 00:08:46,860 tu 1 ya mambo hayo kutokea 26 ni kwenda kuwa legible, 107 00:08:46,860 --> 00:08:50,300 na moja legible ni kwenda kuwa ujumbe halisi. 108 00:08:50,300 --> 00:08:56,240 Hivyo si njia nzuri sana ya encrypting chochote wakati wote. 109 00:08:56,240 --> 00:08:59,070 Lisilohusiana na kaptula hizo, "Ni nini kazi?" 110 00:08:59,070 --> 00:09:03,370 Hivyo kile ni kazi? Ndiyo. 111 00:09:03,370 --> 00:09:11,640 [Mwanafunzi] Ni kama kipande tofauti ya kificho kwamba unaweza kupiga kupitia na kisha kupata thamani ya kurudi kwa chochote. 112 00:09:11,640 --> 00:09:18,160 Yeah. Hivyo mimi itabidi kujibu ni kwa kujibu pia ijayo - au kurudia na pia tu kujibu moja ijayo. 113 00:09:18,160 --> 00:09:22,410 Unaweza kutumia kazi badala ya kuiga na pasting code juu na juu tena. 114 00:09:22,410 --> 00:09:27,200 Tu kuchukua kwamba code, kuiweka katika fuction, na kisha unaweza kuwaita tu kazi 115 00:09:27,200 --> 00:09:29,870 popote umekuwa kuiga na pasting. 116 00:09:29,870 --> 00:09:33,350 Hivyo kazi ni muhimu. 117 00:09:33,350 --> 00:09:35,860 Hivyo sasa tutaweza kufanya matatizo halisi. 118 00:09:35,860 --> 00:09:46,490 moja ya kwanza. Hivyo wazo la kwanza ni, wewe kupita kamba, na bila kujali - 119 00:09:46,490 --> 00:09:52,060 au gani kusema yote lowercase? Haisemi wote lowercase. 120 00:09:52,060 --> 00:09:57,730 Hivyo ujumbe inaweza kuwa kitu chochote, na - oh no. Ni gani. 121 00:09:57,730 --> 00:10:01,610 "Kwa unyenyekevu, unaweza kudhani kwamba mtumiaji mapenzi tu pembejeo barua lowercase na mazingira." 122 00:10:01,610 --> 00:10:08,180 Hivyo sisi kupita ujumbe na barua tu lowercase na kisha sisi Alternate 123 00:10:08,180 --> 00:10:15,450 kati ya mji mkuu na ndogo - sisi mabadiliko string kuwa mji mkuu na ndogo, alternating. 124 00:10:15,450 --> 00:10:22,920 Hivyo kabla ya sisi kukupa pili hata kupiga mbizi katika tatizo, 125 00:10:22,920 --> 00:10:32,420 nini ni jambo la kwanza kwamba tunahitaji kufanya nini? 126 00:10:32,420 --> 00:10:36,900 Oh, nini mimi bonyeza tu juu? Oh, mimi tu clicked kwenye email katika hapa. 127 00:10:36,900 --> 00:10:42,870 Hivyo kitu ya kwanza tunahitaji kufanya - mimi kuangalia moja sahihi? 128 00:10:42,870 --> 00:10:49,320 Je, hii ni sehemu ya huu? 129 00:10:49,320 --> 00:10:51,320 Hapana, wale bado huko, ingawa. 130 00:10:51,320 --> 00:10:55,160 Okay, bado hapa. 131 00:10:55,160 --> 00:11:03,160 Sasa hatuwezi kudhani -? Ndiyo. Hapa hatuwezi kudhani kwamba ni tu lowercase na mazingira. 132 00:11:03,160 --> 00:11:07,770 Hivyo sasa inabidi kushughulika na ukweli kwamba barua inaweza kuwa chochote sisi unataka yao kuwa. 133 00:11:07,770 --> 00:11:11,910 Na hivyo jambo la kwanza tunataka kufanya ni kupata tu ujumbe. 134 00:11:11,910 --> 00:11:19,790 Sisi tu wanahitaji kupata kamba, kamba s = GetString, okay. 135 00:11:19,790 --> 00:11:24,890 Sasa tatizo hili, kuna wanandoa wa njia za kufanya hivyo. 136 00:11:24,890 --> 00:11:29,840 Lakini sisi ni kwenda wanataka kutumia waendeshaji bitwise hapa. 137 00:11:29,840 --> 00:11:35,280 Je, kuna watu ambao ama walikuwa si katika supersection, 138 00:11:35,280 --> 00:11:37,480 au kitu, na hawajui nini bitwise operators ni? 139 00:11:37,480 --> 00:11:41,710 Au jinsi wanavyohusiana na ASCII katika njia yoyote? 140 00:11:41,710 --> 00:11:45,650 [Mwanafunzi] Mimi si wakati supersection, lakini Mimi najua kile bitwise operators ni. 141 00:11:45,650 --> 00:11:49,560 Sawa. Hivyo basi mimi si kwenda juu ya misingi ya yao, lakini mimi itabidi kueleza 142 00:11:49,560 --> 00:11:51,830 nini tunakwenda wanataka kutumia hapa. 143 00:11:51,830 --> 00:11:59,680 Hivyo '': binary uwakilishi wa mji mkuu, idadi ni 65. 144 00:11:59,680 --> 00:12:07,560 Mimi tu kwenda kuangalia - 41 ni kwenda kuwa 01,000,001. 145 00:12:07,560 --> 00:12:14,170 Hivyo kwamba wanapaswa kuwa 65 katika decimal; hivyo hii ni ya uwakilishi binary ya mji mkuu wa tabia A. 146 00:12:14,170 --> 00:12:19,440 Sasa, uwakilishi binary ya tabia Herufi za chini '' 147 00:12:19,440 --> 00:12:33,350 ni kwenda kuwa kitu kimoja, karibu. Ni kwamba - 6, yeah. Hii ni haki. 148 00:12:33,350 --> 00:12:37,670 Hivyo binary mji mkuu, binary lowercase '.' 149 00:12:37,670 --> 00:12:43,940 Hivyo taarifa kwamba tofauti kati na '' ni hii kidogo moja. 150 00:12:43,940 --> 00:12:49,440 Na hii hufanyika kuwa ni kidogo 32, kidogo anayewakilisha idadi 32. 151 00:12:49,440 --> 00:12:53,910 Na kwamba inafanya hisia tangu ni 65; '' ni 97. 152 00:12:53,910 --> 00:12:56,610 Tofauti kati yao ni 32. 153 00:12:56,610 --> 00:13:03,770 Hivyo sasa tunajua tunaweza kubadili kutoka kwa '' kwa kuchukua 154 00:13:03,770 --> 00:13:09,710 na bitwise ORing, pamoja na - kwamba inaonekana kama 1. 155 00:13:09,710 --> 00:13:20,900 Hii ni bitwise AU, na 00100000, na kwamba kutakuwa na kutupa '.' 156 00:13:20,900 --> 00:13:26,850 Na tunaweza kupata kutoka 'A' na kwa bitwise ANDing 157 00:13:26,850 --> 00:13:33,700 na 11, 0 katika nafasi hiyo, 11,111. 158 00:13:33,700 --> 00:13:43,840 Hivyo hii itakuwa kisha kutupa nini hasa '' ilikuwa; lakini kufuta nje hii kidogo ya mtu binafsi, 159 00:13:43,840 --> 00:13:50,070 hivyo tutaweza kuwa na 01000001, mimi sijui kama mimi kuhesabiwa haki. 160 00:13:50,070 --> 00:13:56,750 Lakini mbinu hii ya bitwise ORing kupata kutoka mji mkuu wa Herufi za chini, 161 00:13:56,750 --> 00:14:02,080 na bitwise ANDing kupata kutoka lowercase kwa mkuu ni si ya kipekee ya A. 162 00:14:02,080 --> 00:14:06,510 Yote ya barua, K vs k, Z vs z, 163 00:14:06,510 --> 00:14:10,080 wote ni kwenda tu kidogo tofauti na hii moja. 164 00:14:10,080 --> 00:14:16,290 Na hivyo unaweza kutumia hii kubadili kutoka barua yoyote lowercase kwa barua yoyote mtaji na kinyume chake. 165 00:14:16,290 --> 00:14:26,670 Sawa. Hivyo njia rahisi ya kupata kutoka hilo - hivyo badala ya kuwa na 166 00:14:26,670 --> 00:14:32,170 kuandika chochote 1011111 ni - njia rahisi ya anayewakilisha idadi hii, na hii si moja 167 00:14:32,170 --> 00:14:39,710 kwamba mimi akaenda juu katika supersection, lakini tilde (~) ni mwingine operator bitwise. 168 00:14:39,710 --> 00:14:42,520 Nini ~ gani ni inaonekana katika uwakilishi kidogo. 169 00:14:42,520 --> 00:14:45,630 Hebu kuchukua idadi yoyote. 170 00:14:45,630 --> 00:14:53,130 Hii ni baadhi tu ya idadi binary, na kile ~ haina ni kama tu flips wote wa bits. 171 00:14:53,130 --> 00:15:00,630 Hivyo hii ilikuwa 1, sasa 0, hii ni 0, sasa 1, 010,100. 172 00:15:00,630 --> 00:15:08,320 Basi hiyo ni ~ wote gani. Hivyo 32 ni kwenda kuwa idadi - kujikwamua kwamba - 173 00:15:08,320 --> 00:15:23,320 hivyo 32 ni kwenda kuwa idadi 00,100,000, na hivyo ~ ya hii ni kwenda kuwa 174 00:15:23,320 --> 00:15:29,980 idadi hii hapa kwamba mimi ANDed '' kwa. 175 00:15:29,980 --> 00:15:35,600 Je, kila mtu kuona kwamba? Hii ni pretty kawaida, kama wakati unataka kufikiri 176 00:15:35,600 --> 00:15:40,740 kwa ajili ya mambo ya baadaye ili sisi tupate kuwa kuona, wakati tunataka kuona kama - 177 00:15:40,740 --> 00:15:44,710 au tunataka kila kitu, kila moja kidogo kuweka isipokuwa kwa 1 178 00:15:44,710 --> 00:15:47,910 wewe huwa na kufanya ~ ya kidogo kwamba sisi si unataka kuweka. 179 00:15:47,910 --> 00:15:53,090 Hivyo hatutaki 32 kidogo kuweka, hivyo hatuna ~ ya 32. 180 00:15:53,090 --> 00:15:57,790 Sawa. Hivyo tunaweza kutumia wale wote hapa. 181 00:15:57,790 --> 00:16:03,000 Haki wote, hivyo ni faini kama wewe si kosa, tutakuwa polepole kutembea juu ya pamoja, 182 00:16:03,000 --> 00:16:11,870 au kutembea juu ya hili, hivyo - kwa njia hii. Kutembea kwa njia hii. 183 00:16:11,870 --> 00:16:20,790 Hivyo tuna string yetu, na tunataka kitanzi juu ya kila tabia katika string kwamba na kufanya kitu kwa hayo. 184 00:16:20,790 --> 00:16:26,710 Hivyo ni jinsi kufanya sisi kitanzi juu ya kamba? Tufanye kutumia? 185 00:16:26,710 --> 00:16:30,980 Sitakuja kufanya hivyo hapa. Yeah. 186 00:16:30,980 --> 00:16:42,940 Hivyo nina iterator yangu, na yeye alisema, lakini jinsi gani mimi kujua jinsi wengi wahusika ni katika kamba? 187 00:16:42,940 --> 00:16:47,030 Strlen (s), kisha i + +. 188 00:16:47,030 --> 00:16:49,860 Hivyo kile nimepata kufanyika hapa ni si njia bora ya kufanya mambo. 189 00:16:49,860 --> 00:16:51,860 Je, mtu yeyote kujua kwa nini? 190 00:16:51,860 --> 00:16:55,290 Kwa sababu wewe ni kuangalia lugha ya kamba kila wakati. 191 00:16:55,290 --> 00:17:06,859 Hivyo sisi ni kwenda kutaka hoja strlen, mimi naweza kusema hapa juu int urefu = strlen (s), 192 00:17:06,859 --> 00:17:11,900 na kisha gani i 00:17:20,410 Mimi naweza pia kufanya int i = 0, urefu = strlen (s). 194 00:17:20,410 --> 00:17:25,010 Na hivyo hii ni kiasi fulani vyema, tangu sasa nimekuwa vikwazo wigo 195 00:17:25,010 --> 00:17:29,150 urefu wa kutofautiana tu hii 'kwa' kitanzi, badala ya kutamka hivyo kabla 196 00:17:29,150 --> 00:17:34,990 na kwamba daima lipo, na katika kesi hukutaka kukamata nini hiyo ni mbaya, 197 00:17:34,990 --> 00:17:39,410 au kwa nini awali ilikuwa mbaya, it's - kuanza saa kwa kitanzi. 198 00:17:39,410 --> 00:17:43,380 I checked hali hiyo. Ni i 00:17:46,790 Hivyo urefu wa s, hebu kazi na "hello" wakati wote. 200 00:17:46,790 --> 00:17:49,670 Hivyo urefu wa s, h-e-l-l-o. Urefu ni 5. 201 00:17:49,670 --> 00:17:57,580 Hivyo i = 0, urefu ni 5, hivyo i si <5, hivyo kitanzi inaendelea. 202 00:17:57,580 --> 00:18:02,750 Kisha sisi kwenda tena. Sisi kuangalia hali. Ni i 00:18:08,390 Basi hebu angalia urefu wa hello. H-e-l-l-o. Hiyo ni 5; i si <5, hivyo sisi kuendelea tena. 204 00:18:08,390 --> 00:18:13,330 Hivyo sisi ni kuhesabu, sisi ni kuhesabu hello, kwa kila iteration ya kitanzi, 205 00:18:13,330 --> 00:18:17,380 hata mawazo ni kamwe kwenda na mabadiliko; ni daima itakuwa 5. 206 00:18:17,380 --> 00:18:22,530 Hivyo sisi kumbuka tu 5 hadi mbele, na sasa kila kitu ni bora. 207 00:18:22,530 --> 00:18:24,990 Hivyo iterating zaidi string nzima. 208 00:18:24,990 --> 00:18:31,470 Nini tunataka kufanya kwa kila tabia ya kamba? 209 00:18:31,470 --> 00:18:38,510 [Mwanafunzi akizungumza, unintelligible] 210 00:18:38,510 --> 00:18:47,000 Yeah. Hivyo, kama tabia ni zisizo za kialfabeti, basi sisi nataka tu ruka juu yake. 211 00:18:47,000 --> 00:18:52,300 Kwa sababu sisi tu huduma kuhusu barua alphabetic; hatuwezi capitalize idadi. 212 00:18:52,300 --> 00:19:10,850 Hivyo ni jinsi gani tunaweza kufanya hili? Hivyo hali yetu, hivyo kama tunataka kitu - kuangalia kama ni herufi. 213 00:19:10,850 --> 00:19:14,060 Hivyo ni jinsi gani sisi kuangalia hii? 214 00:19:14,060 --> 00:19:18,720 [Mwanafunzi] Unaweza tu kutumia kazi ni alpha. 215 00:19:18,720 --> 00:19:23,160 Ni kwamba pamoja na katika aidha ya hizi, au ni pamoja na kama, char.h au kitu? 216 00:19:23,160 --> 00:19:32,710 Hebu si kutumia ni alfa na kazi, na kutumia wazi - hivyo tuna s [i], 217 00:19:32,710 --> 00:19:40,460 kwamba ni tabia ya nane ya s, kumbuka kwamba string ni safu ya wahusika, 218 00:19:40,460 --> 00:19:43,180 hivyo tabia ya nane ya s. 219 00:19:43,180 --> 00:19:49,280 Sasa, kama ni barua mji mkuu, tunajua ina kuwa katika mbalimbali maalum. 220 00:19:49,280 --> 00:19:54,370 Na ni nini mbalimbali kwamba? 221 00:19:54,370 --> 00:20:07,860 Yeah. Hivyo kama s [i] ni ≥ 65, na s [i] ni ≤ 90, nifanye nini badala yake? 222 00:20:07,860 --> 00:20:18,470 Yeah. Hivyo unapaswa kabisa kamwe hata haja ya kujua maadili ASCII ya kitu chochote milele. 223 00:20:18,470 --> 00:20:25,640 Kamwe kufikiria idadi 65, 90, 97 na 102, au chochote ni. 224 00:20:25,640 --> 00:20:32,470 Huna haja - 112 -? Huna haja ya kujua wale wakati wote. Hiyo ni vibaya mno. 225 00:20:32,470 --> 00:20:41,940 Tu kutumia herufi moja-quote, moja quote constants. Hivyo '' na chini ya 90 ni 'Z.' 226 00:20:41,940 --> 00:20:47,930 Na hii ni kikubwa zaidi - mimi bila kujua mbali juu ya kichwa yangu kwamba Z ni 90. 227 00:20:47,930 --> 00:20:52,690 Najua mbali juu ya kichwa yangu kwamba 'Z' ni mji mkuu Z. 228 00:20:52,690 --> 00:21:02,100 Hivyo kwa muda mrefu kama hii ni katika aina mbalimbali ya mji mkuu na mji mkuu Z, au tuweze kuangalia kwa lowercase, 229 00:21:02,100 --> 00:21:17,010 Au kama ni katika mbalimbali ≥ 'a' na ≤ z. 230 00:21:17,010 --> 00:21:19,010 Basi hiyo ni hali yetu. 231 00:21:19,010 --> 00:21:22,520 style kwa ambapo kuweka mambo haya hutofautiana. 232 00:21:22,520 --> 00:21:29,520 Nitafanya hivyo kama hii. 233 00:21:29,520 --> 00:21:31,520 Sasa, je, tunataka kufanya? 234 00:21:31,520 --> 00:21:39,530 Tunajua barua hii ni tabia, tabia ya alfabeti. 235 00:21:39,530 --> 00:21:46,270 Hivyo tunahitaji Alternate kati ya kama hii lazima sasa kuwa barua mtaji au barua lowercase. 236 00:21:46,270 --> 00:21:48,820 Jinsi gani sisi kuweka wimbo wa moja ambayo sisi nataka kuwa? 237 00:21:48,820 --> 00:21:55,520 [Mwanafunzi sauti, unintelligible] 238 00:21:55,520 --> 00:21:59,150 Hivyo ndiyo, lakini napenda kuangalia. 239 00:21:59,150 --> 00:22:04,910 Module 0-2 alikuwa alisema, ilikuwa pendekezo kutupwa nje, na nakubaliana na hilo. 240 00:22:04,910 --> 00:22:11,780 Ila taarifa kwamba, kama - ni kesi hii? Yeah. 241 00:22:11,780 --> 00:22:18,270 Ni kila mtu mwingine, lakini hatuwezi moduli 2 ya i, au i Mod 2, tangu 242 00:22:18,270 --> 00:22:22,950 taarifa kwamba E ni mji mkuu na '' ni herufi ndogo? Lakini kuna nafasi kutenganisha yao? 243 00:22:22,950 --> 00:22:27,150 Hivyo ni kwenda kuwa Mod sawa 2, lakini wao ni tofauti kesi. 244 00:22:27,150 --> 00:22:29,150 [Mwanafunzi swali, unintelligible] 245 00:22:29,150 --> 00:22:34,690 Yeah. Hivyo sisi ni kwenda tu kuweka kuhesabu. 246 00:22:34,690 --> 00:22:38,730 Tunaweza pia kufanya hivyo katika hapa kama sisi alitaka; kwamba ili kupata unwieldy kidogo 247 00:22:38,730 --> 00:22:41,300 katika maazimio kwa kitanzi; mimi itabidi kuweka it up hapa. 248 00:22:41,300 --> 00:22:48,840 Hivyo kuhesabu int = kuanza saa 0. 249 00:22:48,840 --> 00:22:54,070 Na hivyo kwa sasa, mimi naenda uhesabu alfabeti wahusika tulikuwa. 250 00:22:54,070 --> 00:22:59,550 Hivyo sisi ni inevitably kwenda kuhesabu + + tangu sisi kupatikana mwingine tabia alfabeti. 251 00:22:59,550 --> 00:23:09,130 Lakini, sasa wewe ni kusema kama kuhesabu Mod 2. 252 00:23:09,130 --> 00:23:12,590 Basi nini kama kuhesabu Mod 2? Oh. Mimi itabidi kufanya == 0 kwa sasa. 253 00:23:12,590 --> 00:23:21,740 Tutaweza pia kwenda juu ya hilo. Hivyo kama kuhesabu Mod 2 == 0, basi ni nini? 254 00:23:21,740 --> 00:23:27,830 [Wanafunzi jibu, unintelligible] 255 00:23:27,830 --> 00:23:32,750 Hivyo tunataka kwa kuishia uppercase. 256 00:23:32,750 --> 00:23:37,520 Kuna kesi 2; kubwa na ndogo ni kesi 2. 257 00:23:37,520 --> 00:23:40,990 Hivyo kama tuko katika lowercase sisi haja ya kufanya hivyo uppercase. 258 00:23:40,990 --> 00:23:43,710 Kama ni uppercase hatuna haja ya kufanya kitu chochote. 259 00:23:43,710 --> 00:23:50,760 Lakini, kuna njia - shouldn't have flipped - 260 00:23:50,760 --> 00:23:54,800 kwamba hatuna hata haja ya kuangalia kama ni uppercase au lowercase? 261 00:23:54,800 --> 00:24:02,240 Tunaweza kufanya nini kwa siku zote kuhakikisha kwamba sisi daima kuishia katika uppercase? 262 00:24:02,240 --> 00:24:07,830 Hivyo taarifa tulichokifanya kwa lowercase ''; nini kama sisi alifanya hivyo sawa exact kitu kwa uppercase? 263 00:24:07,830 --> 00:24:11,900 Je uppercase mabadiliko, au anafanya mabadiliko ya thamani? 264 00:24:11,900 --> 00:24:23,100 Yeah. Hivyo barua yoyote mtaji bitwise ANDed na ~ 32 ni kwenda kuwa huo uppercase tabia 265 00:24:23,100 --> 00:24:29,220 kwa sababu kwa tabia yoyote uppercase kidogo 32 si kuweka. 266 00:24:29,220 --> 00:24:40,920 Hivyo kama tunataka kuleta tabia s [i], sisi nataka iwe lowercase au uppercase. 267 00:24:40,920 --> 00:24:46,890 Hivyo kama ilikuwa lowercase, ni sasa uppercase, kama ilikuwa uppercase, bado uppercase, na hiyo ni yake. 268 00:24:46,890 --> 00:24:54,290 Mimi alisema hii katika supersection: Unaweza kutumia 32 kama unataka, lakini mimi huwa wanapendelea kufanya '' -, 269 00:24:54,290 --> 00:25:01,150 badala ya 32 wazi tu, kwa sababu inaweza kuwa yoyote kidogo nyingine. 270 00:25:01,150 --> 00:25:03,610 Baada ya kidogo 32, inaweza kuwa yoyote ya hizi, au tunataka kuwa kutosha 271 00:25:03,610 --> 00:25:05,840 idadi ya kuwakilisha yote ya wahusika. 272 00:25:05,840 --> 00:25:09,110 Hivyo kama wewe kupata kidogo 32, inaweza kuwa ni kidogo 64, inaweza kuwa ni kidogo 128. 273 00:25:09,110 --> 00:25:13,990 Yoyote ya bits wale inaweza kuwa kidogo kwamba tofauti kati ya kubwa na ndogo. 274 00:25:13,990 --> 00:25:18,350 Mimi lazima haja ya kujua kwamba ni kidogo 32. 275 00:25:18,350 --> 00:25:27,130 Naweza kutumia hii 'a' - kupata kidogo kwamba hutofautiana kati ya mbili 276 00:25:27,130 --> 00:25:33,000 bila wanaohitaji kutegemea idadi uchawi kwamba ni 32. 277 00:25:33,000 --> 00:25:38,770 Na hivyo sasa, mwingine kuhesabu ilikuwa isiyo ya kawaida, na hivyo nini nataka kufanya? 278 00:25:38,770 --> 00:25:43,920 [Mwanafunzi majibu, unintelligible] 279 00:25:43,920 --> 00:25:45,920 [Mwanafunzi] Nini hiyo? 280 00:25:45,920 --> 00:25:49,850 Nitawafanyieni katika pili 1. 281 00:25:49,850 --> 00:25:55,690 Hivyo sasa kama nataka - mimi nataka kuhakikisha tabia ni sasa lowercase, 282 00:25:55,690 --> 00:26:04,140 na hivyo naweza AU na 32, na 32, maana yake '' - A. 283 00:26:04,140 --> 00:26:06,510 Lakini taarifa, kwa hoja hiyo kama moja ya awali, kwamba kama 284 00:26:06,510 --> 00:26:11,670 barua tayari alikuwa lowercase, basi ORing na 32 tu anaendelea kuwa Herufi za chini. 285 00:26:11,670 --> 00:26:16,220 Ni hajabadilika tabia ya awali. 286 00:26:16,220 --> 00:26:19,910 Lakini sasa mimi hawana kuepuka akisema, "Kama ni lowercase, tu kusahau kuhusu hilo, 287 00:26:19,910 --> 00:26:23,650 kama ni uppercase, basi mabadiliko hayo. " 288 00:26:23,650 --> 00:26:26,900 Ni rahisi zaidi kufanya kazi hii. 289 00:26:26,900 --> 00:26:33,190 [Mwanafunzi] Laiti mkakati wa kutoa mapato uppercase kutoka kazi lowercase kama si 32? 290 00:26:33,190 --> 00:26:35,330 Kama ilikuwa, kama, 34 au kitu? 291 00:26:35,330 --> 00:26:41,840 Hivyo, unahitaji kujua kwamba tofauti kati ya 2 ni -? >> 1 kidogo. 292 00:26:41,840 --> 00:26:49,840 Ni inaweza kuwa zaidi ya 1 kidogo, kwa muda mrefu kama aina ya sarafu chini ya msimamo huu ni sawa. 293 00:26:49,840 --> 00:26:58,500 Hivyo tunahitaji angalau herufi 26 - au, kuna 26 wahusika. 294 00:26:58,500 --> 00:27:04,590 Hivyo tunahitaji idadi angalau 26 ili kuwakilisha tofauti - 295 00:27:04,590 --> 00:27:07,650 Tofauti kati na 'ina kuwa angalau 26, 296 00:27:07,650 --> 00:27:10,760 au mwingine tunataka kuwa kuwakilishwa namba zote mtaji. 297 00:27:10,760 --> 00:27:18,630 Hiyo ina maana kwamba, kama tunataka kuanza saa 1, itakuja kutumia yote ya bits hizi, 298 00:27:18,630 --> 00:27:23,900 wote wa bits hizi kwanza 5, kuwakilisha kila kitu kwa njia ya Z. 299 00:27:23,900 --> 00:27:32,170 Hiyo ndiyo sababu kidogo ijayo, au hii kidogo, kidogo ijayo ni moja hiyo waliochaguliwa kutofautisha kati na '.' 300 00:27:32,170 --> 00:27:40,930 Hiyo pia ni kwa nini, katika meza ASCII, kuna 5 alama kutenganisha herufi kubwa kutoka barua lowercase. 301 00:27:40,930 --> 00:27:49,050 Tangu wale ni ishara, 5 ziada huleta juu 32 kuwa tofauti baina yao. 302 00:27:49,050 --> 00:27:51,840 [Mwanafunzi] Basi tunaweza kufanya hivyo, kwa sababu ASCII iliyoundwa kwa njia hiyo. 303 00:27:51,840 --> 00:27:57,280 Ndiyo. Lakini ASCII - tofauti pia inaweza kuwa wote wawili wa bits haya. 304 00:27:57,280 --> 00:28:12,040 Kama, kama walikuwa 10000001, na '' ilikuwa 11100001 - mimi kusahau, chochote. 305 00:28:12,040 --> 00:28:18,100 Lakini ikiwa ni hii, basi sisi inaweza kutumia '- A. 306 00:28:18,100 --> 00:28:22,650 Ni sasa tu na tofauti kati ya 'bado ni haya bits 2. 307 00:28:22,650 --> 00:28:32,240 Nadhani imeandikwa 48. Je, ni 32 + 64? Nadhani ni? 308 00:28:32,240 --> 00:28:40,160 Bado ingekuwa 2 bits; kila tabia moja, kama, Z na z, K na k, 309 00:28:40,160 --> 00:28:45,160 wangeweza bado kuwa sawa bits halisi kuweka isipokuwa kwa wale bits 2. 310 00:28:45,160 --> 00:28:48,870 Hivyo kwa muda mrefu kama hiyo ni kweli daima, bila ya kujali kama sisi ni kutumia ASCII au baadhi mfumo mwingine, 311 00:28:48,870 --> 00:28:53,050 muda mrefu kama kuna tu kuweka idadi ya vipande ambayo ni tofauti kwa ajili ya tabia ya kila, 312 00:28:53,050 --> 00:28:55,050 basi kazi nzuri. 313 00:28:55,050 --> 00:29:06,110 Ni kwamba tu 32 ilianzishwa kwa sababu ni moja ya kwanza sisi inaweza uwezekano kutumia. >> Cool. 314 00:29:06,110 --> 00:29:14,520 Mimi huwa wanapendelea, katika kesi hawajaona, kama block ni line moja tu, 315 00:29:14,520 --> 00:29:24,280 unaweza kujikwamua ya braces curly; hivyo mimi huwa wanapendelea kufanya hili. 316 00:29:24,280 --> 00:29:34,010 Pia, unajua jinsi gani tunaweza kufanya mambo kama s [i] + = 1? 317 00:29:34,010 --> 00:29:41,090 Unaweza pia kufanya s [i] bitwise NA = 32. 318 00:29:41,090 --> 00:29:46,400 Na bitwise AU = 32. 319 00:29:46,400 --> 00:29:51,490 Pia, kuhesabu Mod 2 == 0. 320 00:29:51,490 --> 00:30:00,900 Basi kumbuka kwamba - mimi si kuandika ni - thamani yoyote yasiyo ya sifuri ni kweli, na 0 ni uongo. 321 00:30:00,900 --> 00:30:07,880 Hivyo "kama kuhesabu Mod 2 == 0" ni sawa na kusema "kama si kuhesabu Mod 2." 322 00:30:07,880 --> 00:30:11,580 Mimi pengine ingekuwa tu kuachwa mistari na alisema, "kama kuhesabu Mod 2, 323 00:30:11,580 --> 00:30:15,350 je AU 1, mwingine kufanya NA 1, "ili kwamba mimi hakuwa na haja ya" si. " 324 00:30:15,350 --> 00:30:18,650 Lakini hii kazi tu kama vizuri. 325 00:30:18,650 --> 00:30:25,660 Na kile kingine naweza kufanya hapa? 326 00:30:25,660 --> 00:30:29,060 Unaweza kuchanganya yao na ternary kama alitaka, lakini basi d tu kufanya mambo messier 327 00:30:29,060 --> 00:30:33,770 na pengine zaidi vigumu kusoma, hivyo tutakuwa na si kufanya hivyo. 328 00:30:33,770 --> 00:30:37,330 Mtu yeyote kuwa mapendekezo yoyote mengine? 329 00:30:37,330 --> 00:30:41,580 Ni kwamba tatizo yote aliuliza kwa? Oh yeah. 330 00:30:41,580 --> 00:30:51,070 Hivyo kujikwamua mistari haya ya tupu, sasa tutaweza magazeti f,% s kuwa moja kwa masharti, 331 00:30:51,070 --> 00:30:56,620 Sisi magazeti f, s. 332 00:30:56,620 --> 00:30:59,330 Sasa hebu kukimbia. Je, mimi kufanya kitu chochote kibaya? 333 00:30:59,330 --> 00:31:03,200 Hiyo ni \ ", mimi nataka n. 334 00:31:03,200 --> 00:31:07,840 Sawa. Sasa tutaweza kukimbia. Ni pengine itabidi yell saa yangu. 335 00:31:07,840 --> 00:31:11,250 Strlen ni katika string.h. 336 00:31:11,250 --> 00:31:14,290 Hivyo hii ni kitu kizuri kuhusu Clang ni anakwambia nini ni katika, 337 00:31:14,290 --> 00:31:19,140 badala ya GCC ambayo tu anasema, "Hey, wewe wamesahau kitu, sijui ni kitu gani." 338 00:31:19,140 --> 00:31:29,220 Lakini hii kuniambia, "Wewe ni pamoja na maana ya string.h." 339 00:31:29,220 --> 00:31:32,130 Hivyo sikuweza kuchochea kwa kitu chochote, hivyo si kusema chochote. 340 00:31:32,130 --> 00:31:42,540 Lakini tutaweza kufanya mfano wao, "Shukrani 4 kuongeza". 341 00:31:42,540 --> 00:31:47,880 Hiyo inaonekana haki. Hooray. 342 00:31:47,880 --> 00:31:52,370 Hivyo kurejea kuu yako, mimi karibu kamwe kufanya hivyo. 343 00:31:52,370 --> 00:31:57,110 Ni hiari. Na kuu ni kazi tu kwa ajili ya ambayo ni ya hiari. 344 00:31:57,110 --> 00:32:07,140 Kama huna kurudi kitu chochote kutoka kuu, ni kudhani kuwa wewe maana kurudi 0. 345 00:32:07,140 --> 00:32:13,070 Maswali? 346 00:32:13,070 --> 00:32:20,980 Sawa. Hivyo sasa tatizo la pili. 347 00:32:20,980 --> 00:32:24,810 "Kumbuka kutoka hotuba wiki 2 wa pili kwamba swapping maadili 2 vigezo 'kwa kupita 348 00:32:24,810 --> 00:32:30,780 wale vigezo 2 kwa kazi (hata kama kuitwa byta) haina hasa kazi, angalau si bila 'kuyatumia.' " 349 00:32:30,780 --> 00:32:37,020 Na kupuuza kuyatumia mpaka sisi kupata kwao. 350 00:32:37,020 --> 00:32:40,070 Tunataka wabadilishane vigezo 2; sisi siyo kutumia kazi ya kufanya. 351 00:32:40,070 --> 00:32:43,410 Bado tuko kwenda kufanya hivyo katika kuu kama inavyosema. 352 00:32:43,410 --> 00:32:48,360 Lakini kwa kutumia vigezo wale 2, hatutaki kutumia variable muda. 353 00:32:48,360 --> 00:32:50,770 Kuna 2 njia za kufanya hivi. 354 00:32:50,770 --> 00:32:56,310 Unaweza kufanya hivyo kwa kutumia waendeshaji yako jadi binary. 355 00:32:56,310 --> 00:33:00,180 Hivyo haina mtu yeyote kujua njia ya haraka na chafu ya kufanya hivyo? 356 00:33:00,180 --> 00:33:07,650 Inawezekana kweli kuchukua dakika ya kufikiri. Kama mimi na - 357 00:33:07,650 --> 00:33:12,130 Mimi itabidi kuweka tatizo juu kama wao kuomba. Hivyo kama nina vigezo 2,, ambayo ni tu integer 358 00:33:12,130 --> 00:33:17,800 kwamba wao nipe, na Jumla B variable, ambayo ni mwingine integer kwamba mimi nina aliyopewa. 359 00:33:17,800 --> 00:33:22,700 Hivyo kama nina vigezo hizi 2, sasa mimi nataka byta yao. 360 00:33:22,700 --> 00:33:31,550 jadi, kwa kutumia waendeshaji yako ya kawaida binary, I mean, kama +, -, ÷. 361 00:33:31,550 --> 00:33:36,630 Si bitwise waendeshaji ambayo kutenda juu ya binary. 362 00:33:36,630 --> 00:33:39,600 Hivyo kwa kutumia -, +, ÷, na wale wote. 363 00:33:39,600 --> 00:33:52,980 Tunaweza wabadilishane kwa kufanya kitu kama = a + b, na b = a - b, a = a - b. 364 00:33:52,980 --> 00:34:04,260 Hivyo, sanity kuangalia, na kisha tutaweza kuona kwa nini kazi hiyo. 365 00:34:04,260 --> 00:34:13,320 Hebu sema = 7, b = 3, kisha + b ni kwenda kuwa 10. 366 00:34:13,320 --> 00:34:18,820 Hivyo sisi ni sasa kuweka 10 =, na kisha sisi ni kufanya b = a - b. 367 00:34:18,820 --> 00:34:30,250 Hivyo sisi ni kufanya b = a - b, ambayo ni kwenda kuwa 7, na b = a - b tena, 368 00:34:30,250 --> 00:34:38,650 au = a - b. Ambayo ni kwenda kuwa 10-7 ambayo ni 3. 369 00:34:38,650 --> 00:34:44,850 Hivyo sasa, kwa usahihi, '' ilikuwa 7, b mara 3, na sasa ni 7 na b '' ni 3. 370 00:34:44,850 --> 00:34:48,679 Hivyo kwamba aina ya mantiki; '' ni mchanganyiko wa namba 2. 371 00:34:48,679 --> 00:34:53,000 Katika hatua hii, '' ni mchanganyiko, na kisha sisi ni subtracting nje b awali, 372 00:34:53,000 --> 00:34:56,860 na kisha sisi ni subtracting nje nini mara ya awali '.' 373 00:34:56,860 --> 00:35:01,150 Lakini hii haina kazi kwa namba zote. 374 00:35:01,150 --> 00:35:08,880 Kuona hii, hebu fikiria mfumo; hivyo sisi kufikiri ya kawaida integers kama bits 32. 375 00:35:08,880 --> 00:35:13,050 Hebu kazi juu ya kitu tu kama bits 4. 376 00:35:13,050 --> 00:35:15,450 Hopefully mimi kuja na mfano mzuri sasa. 377 00:35:15,450 --> 00:35:18,680 Kwa hiyo, mimi kujua, hii itakuwa rahisi. 378 00:35:18,680 --> 00:35:26,720 Hebu sema wetu 2 idadi ni 1111, na 1111, hivyo tuko katika binary hivi sasa. 379 00:35:26,720 --> 00:35:34,630 Katika decimals halisi, kama unataka kufikiria ni kwa njia hiyo, = 15 na b = 15. 380 00:35:34,630 --> 00:35:37,630 Na hivyo sisi kutarajia, baada ya sisi byta yao - hawana hata kuwa idadi sawa, 381 00:35:37,630 --> 00:35:41,140 lakini mimi alifanya hivyo kwa njia hii. 382 00:35:41,140 --> 00:35:47,100 Hebu kufanya nao si namba moja. Hebu kufanya 1111 na 0001. 383 00:35:47,100 --> 00:35:51,860 Hivyo = 15 na b = 1. 384 00:35:51,860 --> 00:35:57,670 Baada ya sisi byta yao, sisi kutarajia '' kuwa na 1 b kuwa 15. 385 00:35:57,670 --> 00:36:01,780 Hivyo hatua yetu ya kwanza ni = a + b. 386 00:36:01,780 --> 00:36:08,770 Idadi yetu ni 4 tu bits mbalimbali, hivyo ',' ambayo ni 1111, + b, ambayo ni 0001, 387 00:36:08,770 --> 00:36:16,780 ni kwenda kuishia kuwa 10,000, lakini sisi tu bits 4. 388 00:36:16,780 --> 00:36:22,540 Hivyo sasa = 0. 389 00:36:22,540 --> 00:36:34,080 Na sasa tunataka kuweka b = a - b - kweli, hii bado kazi nje kikamilifu. 390 00:36:34,080 --> 00:36:39,630 = A - hebu angalia kama hii kazi nje kikamilifu - b. 391 00:36:39,630 --> 00:36:53,720 Hivyo basi b = 0-1, ambayo bado ingekuwa 15, na kisha = a - b, ambayo itakuwa ni 1. 392 00:36:53,720 --> 00:36:56,210 Labda hii haina kazi. 393 00:36:56,210 --> 00:36:59,020 Najisikia kama kuna sababu haifanyi kazi kwa kutumia mara kwa mara. 394 00:36:59,020 --> 00:37:06,400 Sawa, hivyo kufanya kazi kwa kudhani kuwa haifanyi kazi na shughuli za mara kwa mara binary, 395 00:37:06,400 --> 00:37:15,040 nami kuangalia kwa - Mimi Google kuona kama ni kweli. 396 00:37:15,040 --> 00:37:23,490 Hivyo tunataka kufanya hivyo kwa kutumia kampuni za bitwise, na kidokezo hapa ni XOR. 397 00:37:23,490 --> 00:37:28,780 Hivyo, kuanzisha XOR (^) kama hawajaona bado. 398 00:37:28,780 --> 00:37:34,610 Ni, tena, operator bitwise hivyo ni vitendo kidogo kidogo, na it's - 399 00:37:34,610 --> 00:37:39,910 Kama una bits 0 na 1, basi hii itakuwa 1. 400 00:37:39,910 --> 00:37:45,230 Kama una bits 1 na 0, utakuwa ni 1, una bits 0 0 na utakuwa 0, 401 00:37:45,230 --> 00:37:47,640 na kama una bits 1 na 1 utakuwa 0. 402 00:37:47,640 --> 00:37:56,180 Hivyo ni kama AU. Kama mojawapo ya bits ni kweli, ni 1, lakini tofauti na AU, haiwezi kuwa wote bits kwamba ni kweli. 403 00:37:56,180 --> 00:37:59,320 AU ingekuwa hii kuwa 1, XOR ingekuwa hii kuwa 0. 404 00:37:59,320 --> 00:38:02,250 Hivyo sisi ni kwenda wanataka kutumia XOR hapa. 405 00:38:02,250 --> 00:38:09,960 Fikiria juu yake kwa dakika; nitakacho Google. 406 00:38:09,960 --> 00:38:16,230 Naam, huwezi kusoma kwamba, mimi nina sasa juu ya ukurasa XOR byta algorithm. 407 00:38:16,230 --> 00:38:21,340 Hopefully hii kueleza kwa nini mimi can't - 408 00:38:21,340 --> 00:38:34,190 Hii ni hasa algorithm kwamba sisi tu alivyofanya. 409 00:38:34,190 --> 00:38:37,330 Mimi bado hawaoni ni kwa nini - Mimi lazima tu ilichukua mfano mbaya, 410 00:38:37,330 --> 00:38:44,940 lakini kesi hii ambapo 'kilichotokea kwa kuwa 0, baada ya kupata bits 5, hivyo sasa' ni 0, 411 00:38:44,940 --> 00:38:48,730 kwamba ni kile kinachoitwa "integer kufurika." 412 00:38:48,730 --> 00:38:54,370 Kulingana na Wikipedia, "Tofauti byta XOR, tofauti hii inahitaji kwamba anatumia mbinu baadhi 413 00:38:54,370 --> 00:38:59,780 kuhakikisha kwamba x + y haina kusababisha kufurika integer. " 414 00:38:59,780 --> 00:39:08,350 Hivyo hii ina matatizo, hii ilikuwa integer kufurika, lakini mimi alifanya kitu kibaya. 415 00:39:08,350 --> 00:39:10,520 Mimi nina uhakika. Nitajaribu kuja na mwingine mmoja. 416 00:39:10,520 --> 00:39:13,640 [Mwanafunzi] Naam, ni si integer kufurika wakati wewe ni kujaribu kuweka namba katika huko 417 00:39:13,640 --> 00:39:16,640 kubwa kuliko kiasi cha bits una zilizotengwa? 418 00:39:16,640 --> 00:39:23,730 Yeah. Tuna bits 4. That's - tulikuwa na bits 4, sisi basi kujaribu kuongeza 1 kwa hivyo, hivyo sisi kuishia na bits 5. 419 00:39:23,730 --> 00:39:26,690 Lakini kidogo tu tano yanakatwa, yeah. 420 00:39:26,690 --> 00:39:28,970 Ni nguvu kweli - 421 00:39:28,970 --> 00:39:33,010 [Mwanafunzi] Je, hiyo kutupa wewe makosa, au gani kwamba - itakuwa kwamba kutupa kosa? 422 00:39:33,010 --> 00:39:40,720 No Hivyo hakuna makosa. Wakati wewe kupata ngazi ya kanisa, kidogo maalum 423 00:39:40,720 --> 00:39:47,020 mahali fulani kwamba ni kuweka alisema kuna kufurika, lakini katika C wewe aina ya si tu kukabiliana na kwamba. 424 00:39:47,020 --> 00:39:55,160 Wewe kweli hawawezi kukabiliana nayo isipokuwa wewe kutumia maelekezo maalum mkutano katika C. 425 00:39:55,160 --> 00:39:58,110 Hebu fikiria kuhusu byta XOR. 426 00:39:58,110 --> 00:40:02,220 Na nadhani makala ya Wikipedia inaweza pia wamekuwa wakisema kwamba - 427 00:40:02,220 --> 00:40:07,310 Hivyo ni pia akalileta hesabu msimu, hivyo mimi nadhani ilikuwa, katika nadharia, kufanya hesabu byggelement 428 00:40:07,310 --> 00:40:11,160 wakati mimi alisema kuwa 0-1 ni 15 tena. 429 00:40:11,160 --> 00:40:15,410 Hivyo kwamba kunaweza - juu ya processor mara kwa mara kwamba anafanya 0-1 = 15. 430 00:40:15,410 --> 00:40:20,430 Tangu sisi kuishia katika 0, sisi Ondoa 1, hivyo basi tu Wraps nyuma karibu na 1111. 431 00:40:20,430 --> 00:40:28,930 Hivyo algorithm hii ili kweli kazi, + b, - b, b - a; ambayo inaweza kuwa faini. 432 00:40:28,930 --> 00:40:34,030 Lakini kuna baadhi ya wasindikaji ambayo si kufanya hivyo, na hivyo itakuwa ni faini katika wale wale maalum. 433 00:40:34,030 --> 00:40:39,880 XOR byta kazi juu ya processor yoyote. Sawa. 434 00:40:39,880 --> 00:40:42,280 Wazo ni kwamba, ni walidhani kuwa sawa, ingawa. 435 00:40:42,280 --> 00:40:50,120 Ambapo sisi ni kutumia XOR kwa namna fulani kupata taarifa ya wote ndani ya 1 ya vigezo, 436 00:40:50,120 --> 00:40:54,120 na kisha kuvuta habari nje ya vigezo ya mtu binafsi tena. 437 00:40:54,120 --> 00:41:04,330 Hivyo haina mtu yeyote kuwa na mawazo / jibu? 438 00:41:04,330 --> 00:41:14,540 [Mwanafunzi jibu, unintelligible] 439 00:41:14,540 --> 00:41:22,220 Hivyo hii lazima kazi, na pia, ni XOR unaofanyika. 440 00:41:22,220 --> 00:41:27,620 Bila kujali ambayo ili hizi namba 2 kutokea kwa kuwa katika hapa, 441 00:41:27,620 --> 00:41:30,100 matokeo haya ni kwenda kuwa sawa. 442 00:41:30,100 --> 00:41:35,800 Hivyo ^ b ni b ^ a. 443 00:41:35,800 --> 00:41:51,860 Unaweza pia kuona hii imeandikwa kama ^ = b, b ^ = a, a ^ = b tena. 444 00:41:51,860 --> 00:42:00,200 Hivyo hii ni haki, na kuona kwa nini hii kazi, kufikiri ya sarafu. 445 00:42:00,200 --> 00:42:10,400 Kutumia idadi smallish, hebu kusema 11,001, na 01,100. 446 00:42:10,400 --> 00:42:12,790 Hivyo hii ni '', hii ni kwa b. 447 00:42:12,790 --> 00:42:15,540 Hivyo ^ = b. 448 00:42:15,540 --> 00:42:22,380 Sisi wanaenda kuweka = 'A' na XOR ya mambo haya 2. 449 00:42:22,380 --> 00:42:32,920 Hivyo 1 ^ 0 ni 1; 1 ^ 1 ni 0; 0 ^ 1 ni 1, na 0 0 ^ ni 0; 1 ^ 0 ni 1. 450 00:42:32,920 --> 00:42:37,380 Hivyo ',' kama ukiangalia idadi decimal, itakavyo kuwa - 451 00:42:37,380 --> 00:42:41,160 wewe si kwenda kuona mengi ya uhusiano kati ya awali 'na mpya', ' 452 00:42:41,160 --> 00:42:45,600 lakini kuangalia bits, '' sasa ni kama matundu ya habari 453 00:42:45,600 --> 00:42:49,970 wa wote asili 'na b awali. 454 00:42:49,970 --> 00:42:57,930 Hivyo kama sisi kuchukua b ^, tunaona kwamba sisi kuishia katika asili '.' 455 00:42:57,930 --> 00:43:08,910 Na kama sisi kuchukua asili '' ^ mpya ',' tunaona sisi kuishia katika b awali. 456 00:43:08,910 --> 00:43:18,380 Hivyo (a ^ b) ^ b = awali '.' 457 00:43:18,380 --> 00:43:27,910 Na (a ^ b) ^ a = b awali. 458 00:43:27,910 --> 00:43:37,010 Kuna - njia nyingine ya kuona hii ni kitu chochote XOR yenyewe ni daima 0. 459 00:43:37,010 --> 00:43:45,020 Hivyo 1101 ^ 1101, bits wote wataenda kuwa sawa. 460 00:43:45,020 --> 00:43:47,920 Hivyo kuna kamwe kwenda kuwa kesi ambapo 1 ni 0 na nyingine ni 1. 461 00:43:47,920 --> 00:43:51,080 Hivyo hii ni 0000. 462 00:43:51,080 --> 00:43:57,240 sawa na hii. (^ B) ^ b ni kama ^ (b ^ b). 463 00:43:57,240 --> 00:44:03,680 (B ^ b) ni kwenda kuwa 0; ^ 0 ni kwenda tu kuwa ',' tangu bits wote ni 0. 464 00:44:03,680 --> 00:44:08,050 Hivyo wale tu kwamba ni kwenda kuwa ambapo 'awali ilikuwa 1 - alikuwa ndio. 465 00:44:08,050 --> 00:44:12,070 Na wazo sawa hapa, mimi nina uhakika pretty pia ni unaofanyika. 466 00:44:12,070 --> 00:44:17,590 Yeah. Sikuweza kusema kabla ya kuwa ni unaofanyika. 467 00:44:17,590 --> 00:44:24,680 ^ ',' Na ni associative, hivyo sasa (b ^ a) ^ a. 468 00:44:24,680 --> 00:44:28,970 Na tunaweza kufanya b ^ (a ^ a). 469 00:44:28,970 --> 00:44:31,540 Na hivyo tena, sisi kupata b awali. 470 00:44:31,540 --> 00:44:37,120 Hivyo '' sasa ni mchanganyiko wa b 'na kwa pamoja. 471 00:44:37,120 --> 00:44:49,660 Kutumia combo wetu mpya 'tunasema b = combo' '^ b awali, sisi kupata asili'. ' 472 00:44:49,660 --> 00:45:05,170 Na sasa combo = '' ^ b mpya, ambayo ilikuwa ya awali - au ambayo sasa ni nini ilikuwa '' au b. 473 00:45:05,170 --> 00:45:13,620 Hiyo ni kesi hii chini hapa. Hii ni = b, umri b. 474 00:45:13,620 --> 00:45:16,550 Hivyo sasa kila kitu ni nyuma ili swapped. 475 00:45:16,550 --> 00:45:22,960 Kama sisi kweli inaonekana katika bits, b = a ^ b, ni kwenda XOR hizi 2, 476 00:45:22,960 --> 00:45:33,920 na jibu ni kwenda kuwa hii, na kisha = a ^ b ni XORing hizi 2 na jibu ni hili. 477 00:45:33,920 --> 00:45:41,090 Maswali? Sawa. Hivyo moja ya mwisho ni kiasi fulani kwa kiasi kikubwa magumu zaidi. 478 00:45:41,090 --> 00:45:43,180 [Mwanafunzi] Nadhani yeye ana swali kuhusu hilo. >> Oh, sorry. 479 00:45:43,180 --> 00:45:49,380 [Mwanafunzi] Nini kweli kasi? Kama wewe kutumia hii XOR, au ni kama wewe kutangaza variable mpya? 480 00:45:49,380 --> 00:45:55,190 Hiyo ni nini kweli kasi, kutangaza variable mpya au kutumia XOR wabadilishane? 481 00:45:55,190 --> 00:45:59,600 Jibu ni, katika uwezekano wote, variable muda. 482 00:45:59,600 --> 00:46:05,780 Na kwamba ni kwa sababu mara moja ni compiled chini - hivyo katika ngazi ya kanisa, 483 00:46:05,780 --> 00:46:12,320 hakuna kitu kama vigezo mitaa au vigezo yoyote muda au yoyote ya mambo haya. 484 00:46:12,320 --> 00:46:16,060 Wao ni kama tu - kuna kumbukumbu, na kuna madaftari. 485 00:46:16,060 --> 00:46:20,920 Madaftari ni ambapo mambo ni juhudi kinachotokea. 486 00:46:20,920 --> 00:46:24,750 Huwezi kuongeza mambo 2 katika kumbukumbu; wewe kuongeza 2 mambo katika madaftari. 487 00:46:24,750 --> 00:46:28,160 Na wewe kuleta mambo kutoka katika kumbukumbu madaftari na kisha kuongeza yao, 488 00:46:28,160 --> 00:46:33,180 na basi unaweza kuweka yao nyuma katika kumbukumbu, lakini hatua zote hufanyika katika madaftari. 489 00:46:33,180 --> 00:46:38,750 Hivyo wakati wewe ni kutumia muda variable mbinu, kwa kawaida kinachotokea ni 490 00:46:38,750 --> 00:46:42,810 nambari hizi 2 ni tayari katika madaftari. 491 00:46:42,810 --> 00:46:46,570 Na kisha kutoka kwamba uhakika juu, baada ya umefanya swapped yao, 492 00:46:46,570 --> 00:46:51,540 hivyo itabidi tu kuanza kutumia rejesta nyingine. 493 00:46:51,540 --> 00:46:56,510 Popote wewe amekuwa kutumia b, hivyo itabidi tu kutumia daftari kwamba alikuwa tayari hifadhi '.' 494 00:46:56,510 --> 00:47:02,180 Hivyo hana haja ya kufanya kitu chochote kwa kweli kufanya byta. Yeah? 495 00:47:02,180 --> 00:47:05,690 [Mwanafunzi] Lakini pia inachukua zaidi ya kumbukumbu, haki? 496 00:47:05,690 --> 00:47:10,280 Itakuwa tu kuchukua zaidi ya kumbukumbu kama anahitaji kuhifadhi kwamba variable muda. 497 00:47:10,280 --> 00:47:14,830 Kama kama wewe matumizi ya baadaye kwamba variable muda tena mahali fulani, 498 00:47:14,830 --> 00:47:18,920 basi - au wewe hawawajui kitu variable kwamba muda mfupi. 499 00:47:18,920 --> 00:47:24,630 Hivyo kama katika hatua yoyote katika muda ',' b katika temp kuwa na maadili tofauti au kitu, 500 00:47:24,630 --> 00:47:30,680 basi ni kwenda na maeneo tofauti katika kumbukumbu, lakini ni kweli kwamba 501 00:47:30,680 --> 00:47:34,800 kuna mengi ya ndani ambayo itakuwa vigezo tu kuwepo katika madaftari. 502 00:47:34,800 --> 00:47:44,370 Katika kesi ambayo, ni kamwe kuweka katika kumbukumbu, na hivyo wewe kamwe kupoteza kumbukumbu. 503 00:47:44,370 --> 00:47:58,620 Sawa. Swali la mwisho ni kidogo zaidi. 504 00:47:58,620 --> 00:48:04,850 Hivyo hapa, katika hii appliance CS50, kuna kamusi. 505 00:48:04,850 --> 00:48:12,390 Na sababu hii ni kwa sababu [?? B66] Kibonyezo cha kusahihisha kipo wapi wewe utakuwa kuandika 506 00:48:12,390 --> 00:48:15,780 kutumia meza hash au inajaribu au baadhi muundo data. 507 00:48:15,780 --> 00:48:22,660 Wewe utaenda kuandika kusahihisha Spell, na mtaenda kuwa na kutumia hii kamusi kufanya hivyo. 508 00:48:22,660 --> 00:48:28,280 Lakini kwa tatizo hili, sisi ni kwenda tu kuangalia juu ya kuona kama ni neno moja katika kamusi. 509 00:48:28,280 --> 00:48:31,250 Hivyo badala ya hifadhi ya kamusi nzima katika muundo baadhi data 510 00:48:31,250 --> 00:48:35,180 na kisha kuangalia juu ya hati yote ili kuona kama kitu chochote ambacho misspelled, 511 00:48:35,180 --> 00:48:38,490 sisi tu wanataka kupata 1 neno. Hivyo tunaweza tu Scan zaidi ya kamusi nzima 512 00:48:38,490 --> 00:48:44,300 na kama sisi kamwe kupata neno katika kamusi nzima, basi ilikuwa si huko. 513 00:48:44,300 --> 00:48:52,150 Kama sisi Scan zaidi ya kamusi nzima na wala kuona neno, basi sisi ni nzuri, sisi kupatikana. 514 00:48:52,150 --> 00:48:56,580 Ni anasema hapa kwamba tunataka kuanza kuangalia katika hafla ya C ya faili-utunzaji, 515 00:48:56,580 --> 00:48:59,930 tangu tunataka kusoma dictionary, 516 00:48:59,930 --> 00:49:07,680 lakini mimi nitakupa dokezo hapa kama ambayo kazi unapaswa kufikiria. 517 00:49:07,680 --> 00:49:11,510 Nitaandika juu yao Spaces. 518 00:49:11,510 --> 00:49:20,490 Hivyo ndio kuu utasikia wanataka kuangalia ni f wazi na kisha, inevitably, f imefungwa, 519 00:49:20,490 --> 00:49:26,540 ambayo kwenda katika mwisho wa programu yako, na f Scan f. 520 00:49:26,540 --> 00:49:31,060 Unaweza pia kutumia f kusoma, lakini pengine hawataki 521 00:49:31,060 --> 00:49:34,200 kwa sababu ya kuwa - wewe wala kuishia wanaohitaji kwamba. 522 00:49:34,200 --> 00:49:41,880 F Scan f ni nini wewe kwenda kuwa na kutumia kwa Scan zaidi ya kamusi. 523 00:49:41,880 --> 00:49:46,370 Na hivyo hawana haja ya Kanuni up ufumbuzi, kujaribu tu na kama Pseudo-code njia yako 524 00:49:46,370 --> 00:50:05,200 kwa ufumbuzi, na kisha tutaweza kujadili. 525 00:50:05,200 --> 00:50:14,110 Na kweli, tangu mimi tayari aliwapa hawa, kama kwenda ndani yoyote terminal au shell appliance yako, 526 00:50:14,110 --> 00:50:18,250 Napenda - Mimi kawaida - kama hawajaona bado, sijui kama alivyofanya katika darasa, 527 00:50:18,250 --> 00:50:23,490 lakini mtu, hivyo kurasa mtu, ni muhimu kwa ajili ya pretty kuangalia kiasi pretty kazi yoyote. 528 00:50:23,490 --> 00:50:27,330 Hivyo siwezi kufanya, kama, mtu f, Scan f. 529 00:50:27,330 --> 00:50:32,300 Hii sasa ni info kuhusu familia Scan f ya kazi. 530 00:50:32,300 --> 00:50:37,070 Mimi naweza pia kufanya f mtu, wazi, na kwamba kutakuwa na nipe maelezo ya kwamba. 531 00:50:37,070 --> 00:50:40,750 Hivyo kama unajua nini kazi ni kwa kutumia, au wewe ni kusoma code 532 00:50:40,750 --> 00:50:43,000 na unaweza kuona baadhi ya kazi na wewe ni kama, "Je, hii nini?" 533 00:50:43,000 --> 00:50:45,280 Tu mtu kwamba kazi jina. 534 00:50:45,280 --> 00:50:47,340 Kuna michache ya mifano weird ambapo unaweza kusema 535 00:50:47,340 --> 00:50:51,620 kama. mtu 2 kwamba kazi jina, au mtu 3 kwamba jina kazi, 536 00:50:51,620 --> 00:50:58,230 lakini wewe tu kufanya hivyo kama mtu kazi jina haina kutokea kwa kazi mara ya kwanza. 537 00:50:58,230 --> 00:51:03,010 [Mwanafunzi] Hivyo nina kusoma ukurasa mtu kwa ajili ya wazi, lakini mimi bado wamechanganyikiwa juu ya jinsi ya kutumia hiyo na mpango. 538 00:51:03,010 --> 00:51:06,170 Sawa. mengi ya kurasa mtu ni chini ya msaada. 539 00:51:06,170 --> 00:51:08,470 Wao ni kufaa zaidi kama tayari kujua nini kufanya 540 00:51:08,470 --> 00:51:12,670 na kisha wewe tu haja ya kukumbuka amri ya hoja au kitu. 541 00:51:12,670 --> 00:51:17,640 Au wanaweza kukupa overview ujumla, lakini baadhi yao ni sana balaa. 542 00:51:17,640 --> 00:51:22,220 Kama f Scan f, pia. Ni inakupa habari kwa wote wa kazi hizo, 543 00:51:22,220 --> 00:51:28,120 na 1 line chini hapa kinachotokea kwa kusema, "F Scan f anayesoma kutoka hatua string au mkondo." 544 00:51:28,120 --> 00:51:32,360 Lakini f kufungua. Hivyo, jinsi gani sisi kutumia f wazi? 545 00:51:32,360 --> 00:51:38,470 wazo la mpango ambayo inahitaji kufanya faili I / O ni kwamba 546 00:51:38,470 --> 00:51:45,070 wewe kwanza haja ya kufungua faili unataka kufanya mambo kwa, na inevitably, 547 00:51:45,070 --> 00:51:51,220 kusoma mambo kutoka faili hilo na kufanya mambo pamoja nao. 548 00:51:51,220 --> 00:51:55,350 F wazi ni nini sisi kutumia kufungua faili. 549 00:51:55,350 --> 00:52:04,190 kitu sisi kupata nyuma, ili kile faili gani tunataka kufungua, ni inatupa - 550 00:52:04,190 --> 00:52:11,970 katika hapa anasema "/ user / sehemu / Dict / maneno." 551 00:52:11,970 --> 00:52:16,740 Hii ni faili kwamba tunataka kufungua, na tunataka kufungua - 552 00:52:16,740 --> 00:52:21,440 tuna kupanga bayana kama tunataka kufungua kusoma au kama tunataka kufungua kuandika. 553 00:52:21,440 --> 00:52:26,490 Kuna wanandoa ya mchanganyiko na stuff, lakini tunataka kufungua hili kwa ajili ya kusoma. 554 00:52:26,490 --> 00:52:29,380 Tunataka kusoma kutoka faili. 555 00:52:29,380 --> 00:52:34,290 Hivyo nini kurudi hili? Kuirudisha nyota faili (*), 556 00:52:34,290 --> 00:52:37,260 na mimi itabidi kuonyesha kila kitu katika f variable, hivyo *, 557 00:52:37,260 --> 00:52:40,840 tena, ni pointer, lakini hatutaki kukabiliana na kuyatumia. 558 00:52:40,840 --> 00:52:46,470 Unaweza kufikiri ya f kama, f sasa ni kutofautiana utaenda kutumia kuwakilisha faili. 559 00:52:46,470 --> 00:52:49,850 Hivyo kama unataka kusoma kutoka faili, unaweza kusoma kutoka f. 560 00:52:49,850 --> 00:52:54,820 Kama unataka karibu ya SVG, wewe karibu f. 561 00:52:54,820 --> 00:53:00,350 Hivyo mwisho wa mpango wakati sisi inevitably unataka kufunga faili, tunapaswa kufanya nini? 562 00:53:00,350 --> 00:53:06,750 Tunataka kuifunga f. 563 00:53:06,750 --> 00:53:12,600 Hivyo sasa mwisho faili kazi kwamba sisi ni kwenda wanataka kutumia ni Scan f, f Scan f. 564 00:53:12,600 --> 00:53:20,930 Na nini kwamba hana ni scans juu ya faili kuangalia mfano kwa mechi. 565 00:53:20,930 --> 00:53:39,100 Kuangalia ukurasa mtu hapa, tunaona int f Scan f, kupuuza thamani ya kurudi kwa sasa. 566 00:53:39,100 --> 00:53:45,230 Hoja ya kwanza ni * faili mkondo, hivyo hoja ya kwanza tunakwenda wanataka kupitisha ni f. 567 00:53:45,230 --> 00:53:47,900 Sisi ni skanning zaidi f. 568 00:53:47,900 --> 00:53:53,680 Hoja ya pili ni string format. 569 00:53:53,680 --> 00:53:58,310 Mimi nitakupa string format hivi sasa. 570 00:53:58,310 --> 00:54:05,180 Nadhani sisi kutokea kwa kusema, 127s \ n, mengi ya kwamba lazima. 571 00:54:05,180 --> 00:54:12,490 wazo la nini kwamba string format ni, ni unaweza kufikiria f Scan kama kinyume cha f magazeti. 572 00:54:12,490 --> 00:54:17,160 Hivyo magazeti f, magazeti f sisi pia kutumia aina hii ya parameter format, 573 00:54:17,160 --> 00:54:25,000 lakini katika f magazeti nini tuko kufanya ni - hebu angalia sawa. 574 00:54:25,000 --> 00:54:32,550 Hivyo magazeti f, na huko ni kweli pia f magazeti f, ambapo hoja ya kwanza ni kwenda kuwa f. 575 00:54:32,550 --> 00:54:40,980 Wakati magazeti f, tunaweza kusema kitu kama, "magazeti 127s \ n" na kisha kama sisi kupita baadhi kamba, 576 00:54:40,980 --> 00:54:44,050 itakavyo magazeti hii kamba na kisha mstari mpya. 577 00:54:44,050 --> 00:54:49,690 Nini 127 njia, nina uhakika pretty, lakini sijawahi vikwazo mwenyewe kwa hiyo, 578 00:54:49,690 --> 00:54:52,470 Wewe bila hata haja ya kusema '127 'katika f magazeti, 579 00:54:52,470 --> 00:54:57,090 lakini nini maana ni magazeti kwanza wahusika 127. 580 00:54:57,090 --> 00:54:59,350 Hivyo nina uhakika pretty hiyo kesi. Unaweza Google kwa ajili hiyo. 581 00:54:59,350 --> 00:55:03,000 Lakini katika moja ijayo nina karibu chanya maana yake ni kwamba. 582 00:55:03,000 --> 00:55:08,880 Hivyo hii ni magazeti kwanza wahusika 127, ikifuatiwa na mstari mpya. 583 00:55:08,880 --> 00:55:14,680 F Scan f sasa, badala ya kuangalia kutofautiana na uchapishaji yake, 584 00:55:14,680 --> 00:55:22,620 ni kwenda kuangalia string baadhi, na kuhifadhi mfano ndani ya kutofautiana. 585 00:55:22,620 --> 00:55:26,360 Hebu kweli matumizi Scan f katika mfano tofauti. 586 00:55:26,360 --> 00:55:31,670 Hivyo hebu sema tulikuwa baadhi int, x = 4, 587 00:55:31,670 --> 00:55:41,110 na sisi alitaka kujenga string maandishi - alitaka kujenga string 588 00:55:41,110 --> 00:55:44,250 kwamba ilikuwa kama, hii itakuja baadaye sana, 589 00:55:44,250 --> 00:55:49,020 kitu ambacho kama tu 4.jpg. 590 00:55:49,020 --> 00:55:51,870 Hivyo hii inaweza kuwa mpango ambapo utakuwa na jumla ya kukabiliana, 591 00:55:51,870 --> 00:55:56,420 jumla kukabiliana i, na unataka kuokoa rundo la images. 592 00:55:56,420 --> 00:56:02,430 Hivyo unataka kuokoa i.jpg, ambapo i ni baadhi iteration ya kitanzi wako. 593 00:56:02,430 --> 00:56:05,500 Hivyo ni jinsi gani sisi kufanya hii string kwa kuwa JPEG? 594 00:56:05,500 --> 00:56:11,720 Kama alitaka magazeti 4.jpg, tunaweza kusema tu magazeti f,% d.jpg, 595 00:56:11,720 --> 00:56:14,410 na basi ingekuwa magazeti kwa kuwa JPEG. 596 00:56:14,410 --> 00:56:20,050 Lakini kama tunataka kuokoa 4.jpg kamba, sisi kutumia Scan f. 597 00:56:20,050 --> 00:56:30,860 Hivyo string s - kweli sisi can't - tabia, char s, hebu kwenda 100. 598 00:56:30,860 --> 00:56:35,400 Hivyo mimi tu alitangaza baadhi ya safu ya wahusika 100, 599 00:56:35,400 --> 00:56:39,830 na kwamba ni nini sisi ni inevitably kwenda kuwa hifadhi ya kwamba JPEG in 600 00:56:39,830 --> 00:56:47,920 Hivyo sisi ni kwenda kutumia Scan f, na format, jinsi sisi kusema% d.jpg 601 00:56:47,920 --> 00:56:54,980 ili magazeti 4.jpg, muundo wa hii ni kwenda kuwa% d.jpg. 602 00:56:54,980 --> 00:57:04,020 Hivyo ni format% d.jpg, nini tunataka kuchukua nafasi% d na ni x, 603 00:57:04,020 --> 00:57:06,590 na sasa tunahitaji kuhifadhi kwamba string mahali fulani. 604 00:57:06,590 --> 00:57:12,500 Na pale ambapo sisi ni kwenda kuhifadhi hii string ni katika safu ya. 605 00:57:12,500 --> 00:57:21,640 Hivyo baada ya line hii ya maadili, s, ikiwa sisi magazeti f,% s ya s variable, 606 00:57:21,640 --> 00:57:26,280 itakavyo magazeti 4.jpg. 607 00:57:26,280 --> 00:57:38,930 Hivyo f Scan f ni sawa kama Scan f, ila sasa ni kuangalia juu ya faili hii 608 00:57:38,930 --> 00:57:43,600 kwa nini kuhifadhi katika s. 609 00:57:43,600 --> 00:57:46,160 Hiyo ni nini hoja ya mwisho itakuja kuwa. 610 00:57:46,160 --> 00:57:54,170 Tunataka kuhifadhi - "Scan f familia ya scans kazi katika wote kulingana na muundo kama walijaribu chini. 611 00:57:54,170 --> 00:58:02,450 Kama yoyote ni kuhifadhiwa katika pointi mahali unaweza kurudi - " 612 00:58:02,450 --> 00:58:12,910 Hapana, sisi inaweza kuwa nzuri. Hebu fikiria kwa pili. 613 00:58:12,910 --> 00:58:26,350 Hivyo Scan f haina - nini heck ni kazi ambayo hana kwamba? 614 00:58:26,350 --> 00:58:31,650 Hivyo Scan f si kwenda kuchukua integer na kufanya dot jpg. 615 00:58:31,650 --> 00:58:43,490 Ni kwenda [mumbles]. 616 00:58:43,490 --> 00:58:49,360 Ila variable int katika string int C. 617 00:58:49,360 --> 00:58:55,940 Nini ni variable hii, au ni nini kazi hii iitwayo? 618 00:58:55,940 --> 00:59:04,950 Ndiyo. That's - ndiyo. Hivyo kile nilikuwa na kufafanua kwa wewe kabla ilikuwa s magazeti f, 619 00:59:04,950 --> 00:59:09,820 ambayo - kwamba inafanya mengi zaidi akili, kwa nini mimi alisema ilikuwa zaidi kama f magazeti. 620 00:59:09,820 --> 00:59:14,700 Scan f bado ni aina ya kama f magazeti, lakini s magazeti f ni kwenda Scan juu ya 621 00:59:14,700 --> 00:59:17,510 na kuchukua nafasi ya vigezo na sasa kuhifadhi katika kamba. 622 00:59:17,510 --> 00:59:19,620 Badala ya uchapishaji hilo, ni maduka yake katika kamba. 623 00:59:19,620 --> 00:59:25,070 Hivyo kupuuza kwamba kabisa. Unaweza bado kufikiria specifier format kama kama wa f magazeti. 624 00:59:25,070 --> 00:59:34,510 Hivyo sasa, kama sisi alitaka kufanya kitu 4.jpg, tunataka kufanya s magazeti f, x ya hili. 625 00:59:34,510 --> 00:59:38,520 Basi nini Scan f ni kufanya - kile swali lako kwenda kuwa? 626 00:59:38,520 --> 00:59:40,820 [Mwanafunzi] Nina kuchanganyikiwa tu juu ya nini sisi ni kujaribu kufanya haki hapa 627 00:59:40,820 --> 00:59:43,450 na kwamba JPEG. Je, unaweza kueleza kwamba 1 zaidi ya muda? 628 00:59:43,450 --> 00:59:52,710 Hivyo hii ilikuwa - ni chini relevent kwa f Scan f sasa; hopefully, itakuwa kumfunga nyuma katika baadhi ya aina ya njia. 629 00:59:52,710 --> 01:00:02,240 Lakini kile Mimi awali alikuwa amekusudia kuonyesha ilikuwa - hii ni kweli moja kwa moja muhimu kwa [haya? F5] 630 01:00:02,240 --> 01:00:08,520 Wewe utaenda kuwa wanatumia magazeti f, ambapo, kusema tuna images 100, 631 01:00:08,520 --> 01:00:13,630 na unataka kusoma picha 1.jpg, 2.jpg, 3.jpg. 632 01:00:13,630 --> 01:00:21,520 Hivyo ili kufanya hivyo, unahitaji f wazi, na kisha una kupita katika string kwamba unataka kufungua. 633 01:00:21,520 --> 01:00:30,020 Hivyo tunataka unataka kufungua 1.jpg; ili kujenga string kwamba ni 1.jpg, 634 01:00:30,020 --> 01:00:37,660 magazeti sisi kufanya s f% d.jpg-sisi hakufanya kwa int i = 0. 635 01:00:37,660 --> 01:00:46,580 i <40, i + +. 636 01:00:46,580 --> 01:00:51,130 Hivyo s magazeti f% d.jpg ya i. 637 01:00:51,130 --> 01:00:56,320 Hivyo baada ya mstari huu, sasa variable au s safu ni kwenda 1.jpg. 638 01:00:56,320 --> 01:01:10,610 Au, 0.jpg, 1.jpg, 2.jpg. Na hivyo tunaweza kufungua, kwa upande mwingine, kila picha kwa ajili ya kusoma. 639 01:01:10,610 --> 01:01:19,550 Hivyo kwamba ni nini s magazeti f gani. Je, unaweza kuona nini s magazeti f sasa ni kufanya? 640 01:01:19,550 --> 01:01:25,720 [Mwanafunzi] Sawa, hivyo ni kuchukua - inajenga kamba, something.jpg, na kisha maduka hayo. 641 01:01:25,720 --> 01:01:30,360 Ndiyo. Ni inajenga - hii ni mwingine string format, kama tu Scan f na f magazeti, 642 01:01:30,360 --> 01:01:37,530 ambapo ni kuwekeza yote ya vigezo katika hoja ya pili, inaweza kuwa ni kinyume na i. 643 01:01:37,530 --> 01:01:42,280 Labda - I mean, hiyo kesi. Lakini chochote utaratibu wa hoja ni. 644 01:01:42,280 --> 01:01:45,440 Ni kwenda Insert wote wa vigezo katika string format 645 01:01:45,440 --> 01:01:52,250 na kisha kuhifadhi katika buffer yetu, sisi wito kwamba buffer, ni mahali ambapo sisi ni hifadhi ya kamba. 646 01:01:52,250 --> 01:02:00,750 Hivyo sisi ni hifadhi ndani ya s string usahihi-formatted, d% baada ya kubadilishwa na 4. 647 01:02:00,750 --> 01:02:08,080 [Mwanafunzi] Hivyo kama sisi alifanya hivyo, ni f variable tu kwenda kuwa reassigned? 648 01:02:08,080 --> 01:02:18,110 Ndiyo. Hivyo tunapaswa kufunga f awali kabla ya kufanya hivyo. 649 01:02:18,110 --> 01:02:22,810 Lakini - na kisha pia, kama kulikuwa na si f kufungua hapa, basi tutakuwa haja ya kusema - 650 01:02:22,810 --> 01:02:29,280 Yeah. Lakini itakuwa ni wazi mia files tofauti. 651 01:02:29,280 --> 01:02:37,360 [Mwanafunzi] Lakini sisi bila kuwa na uwezo wa kupata au - sawa. 652 01:02:37,360 --> 01:02:44,230 Sawa. Hivyo Scan f, f Scan f, ni aina ya wazo moja, 653 01:02:44,230 --> 01:02:53,610 lakini badala yake, badala ya hifadhi hiyo ndani ya kamba, ni zaidi kama wewe ni sasa 654 01:02:53,610 --> 01:03:02,420 kwenda juu ya kuumwa na muundo vinavyolingana dhidi string kwamba na kuhifadhi matokeo katika vigezo. 655 01:03:02,420 --> 01:03:11,290 Unaweza kutumia f Scan kuchanganua juu ya kitu kama 4.jpg, na kuhifadhi 4 integer ndani ya x int Jumla. 656 01:03:11,290 --> 01:03:13,430 Hiyo ni nini tunaweza kutumia Scan f kwa. 657 01:03:13,430 --> 01:03:16,300 F Scan f anaenda kufanya kuwa katika mstari amri. 658 01:03:16,300 --> 01:03:19,200 Mimi kwa kweli pretty sure hii ni nini maktaba CS50 gani. 659 01:03:19,200 --> 01:03:29,050 Hivyo wakati wewe kusema, "kupata int," ni Scan f-ing juu - Scan f ni njia ya kupata mtumiaji pembejeo. 660 01:03:29,050 --> 01:03:34,670 F Scan f ni kwenda kufanya kitu kimoja lakini kwa kutumia faili Scan juu. 661 01:03:34,670 --> 01:03:41,090 Hiyo hapa, sisi ni juu ya skanning faili hii. 662 01:03:41,090 --> 01:03:45,460 mfano sisi ni kujaribu mechi ni baadhi string kwamba ni wahusika 127 kwa muda mrefu 663 01:03:45,460 --> 01:03:48,100 ikifuatiwa na mstari mpya 664 01:03:48,100 --> 01:03:54,770 Hivyo nina uhakika pretty tunaweza hata kusema tu "mechi s," tangu katika kamusi 665 01:03:54,770 --> 01:03:57,770 sisi kutokea kwa kuwa, sisi ni uhakika hakuna neno ni kwamba kwa muda mrefu, 666 01:03:57,770 --> 01:04:03,310 na pia f Scan f, nadhani, itakuwa kuacha katika mstari mpya bila kujali. 667 01:04:03,310 --> 01:04:06,970 Lakini tutaweza ni pamoja na mstari mpya katika mechi, na - 668 01:04:06,970 --> 01:04:13,960 [Mwanafunzi] Kama sisi hawakuwa ni pamoja na mstari mpya, bila kupata sehemu ya neno? 669 01:04:13,960 --> 01:04:22,900 Ni - kila - kuangalia kamusi - 670 01:04:22,900 --> 01:04:26,200 Hivyo katika kamusi, haya yote ni ya maneno yetu. 671 01:04:26,200 --> 01:04:30,500 Kila mmoja ni juu ya mstari mpya. 672 01:04:30,500 --> 01:04:32,510 f Scan ni kwenda kuchukua neno hili. 673 01:04:32,510 --> 01:04:38,750 Kama hatuwezi ni pamoja na mstari mpya, basi inawezekana kwamba ijayo Scan f tu kusoma mstari mpya. 674 01:04:38,750 --> 01:04:44,180 Lakini ikiwa ni pamoja na mstari mpya basi tu kupuuza mstari mpya. 675 01:04:44,180 --> 01:04:49,440 Lakini tutaweza kamwe kupata sehemu ya neno, kwani sisi ni daima kusoma hadi mstari mpya, bila kujali. 676 01:04:49,440 --> 01:04:54,530 [Mwanafunzi] Lakini nini kama wewe tafuta kwa neno "cissa," kama cissa. 677 01:04:54,530 --> 01:04:57,380 Je, ni kupata kwamba, na kusema ni mechi? 678 01:04:57,380 --> 01:05:05,110 Hivyo hapa sisi - itakuwa kusoma katika - hii ni hatua nzuri kwa kweli. 679 01:05:05,110 --> 01:05:10,660 Sisi ni kamwe kutumia sasa - neno sisi ni kuangalia kwa ni ya kwanza ya mstari amri hoja. 680 01:05:10,660 --> 01:05:16,460 Hivyo kamba, neno = argv 1. 681 01:05:16,460 --> 01:05:20,020 Hivyo string sisi ni kuangalia kwa ni argv 1. 682 01:05:20,020 --> 01:05:23,290 Sisi si kutafuta neno wakati wote katika Scan f yetu. 683 01:05:23,290 --> 01:05:28,030 Nini tunafanya kwa Scan f ni kupata kila neno katika kamusi, 684 01:05:28,030 --> 01:05:34,320 na kisha mara moja kwamba tuna neno tunakwenda kutumia strcmp kwa kulinganisha yao. 685 01:05:34,320 --> 01:05:39,210 Sisi ni kwenda kulinganisha neno yetu na nini sisi kusoma tu in 686 01:05:39,210 --> 01:05:45,110 Hivyo inevitably, tunakwenda kuishia kufanya rundo la Scan FS 687 01:05:45,110 --> 01:05:52,130 mpaka tu hivyo hutokea kwamba f Scan atarudi - 688 01:05:52,130 --> 01:05:54,800 itakuwa kurudi moja, kwa muda mrefu kama ina kuendana neno jipya, 689 01:05:54,800 --> 01:06:01,360 na atarudi kitu kingine kwa haraka kama ni imeshindwa mechi neno. 690 01:06:01,360 --> 01:06:08,440 Sisi ni kusoma zaidi ya kamusi nzima, hifadhi mstari kwa mstari kila neno katika s kutofautiana. 691 01:06:08,440 --> 01:06:17,240 Kisha sisi ni kulinganisha neno na s, na kama kulinganisha == 0, 692 01:06:17,240 --> 01:06:21,650 strcmp kinachotokea kuleta 0 ikiwa mechi kilichofanyika. 693 01:06:21,650 --> 01:06:31,510 Hivyo kama ilikuwa 0, basi tunaweza magazeti f, kuwianishwa, 694 01:06:31,510 --> 01:06:35,370 au neno ni katika kamusi, au chochote unataka magazeti f. 695 01:06:35,370 --> 01:06:41,450 Na kisha - sisi hawataki f karibu tena na tena. 696 01:06:41,450 --> 01:06:50,410 Hii ni aina ya kitu tunataka kufanya, na sisi si kuangalia tu kwa neno katika kamusi. 697 01:06:50,410 --> 01:06:56,660 Hivyo tunaweza kufanya kwamba, kama sisi alitaka kuangalia kwa mfano wao, cissa, kama wewe alisema kabla, 698 01:06:56,660 --> 01:07:00,260 kama sisi alitaka kuangalia kwa mfano kwamba, basi ingekuwa kushindwa katika kesi 699 01:07:00,260 --> 01:07:08,010 kwa sababu hiyo siyo kweli neno, lakini moja ya maneno katika kamusi kinachotokea kwa kuwa katika siku hiyo. 700 01:07:08,010 --> 01:07:13,560 Hivyo itakuwa mechi neno hili, lakini hii subset ya neno ni neno lenyewe. 701 01:07:13,560 --> 01:07:17,250 Lakini si kwamba jinsi tunayatumia; sisi ni kusoma katika kila neno 702 01:07:17,250 --> 01:07:19,740 na kisha kulinganisha neno ya sisi kuwa na neno hilo. 703 01:07:19,740 --> 01:07:25,780 Hivyo sisi ni daima kulinganisha maneno kamili. 704 01:07:25,780 --> 01:07:29,620 Siwezi kutuma nje ufumbuzi kukamilika baadaye. 705 01:07:29,620 --> 01:07:32,050 Hii ni aina ya jibu sahihi karibu, nadhani. 706 01:07:32,050 --> 01:07:34,720 [Mwanafunzi maoni, unintelligible] 707 01:07:34,720 --> 01:07:40,870 Oh, je, mimi kujikwamua kwamba kabla? Char, nadhani sisi alisema 127 - I kusahau kile kubwa ni. 708 01:07:40,870 --> 01:07:44,100 Tutaweza tu kufanya 128, hivyo sasa s ni muda wa kutosha. 709 01:07:44,100 --> 01:07:46,570 Hatuna haja ya magazeti ya kitu chochote. 710 01:07:46,570 --> 01:07:56,440 Sisi ni pia atataka tufunge faili wetu, na kwamba lazima kuhusu jibu sahihi. 711 01:07:56,440 --> 01:07:59,440 CS50.TV