1 00:00:00,000 --> 00:00:00,980 2 00:00:00,980 --> 00:00:04,410 >> [MUSIC KUCHEZA] 3 00:00:04,410 --> 00:00:11,147 4 00:00:11,147 --> 00:00:12,230 DAVID J. Malan: All wa kulia. 5 00:00:12,230 --> 00:00:16,440 Hii ni CS50, na hii ni mwisho wa Wiki 2. 6 00:00:16,440 --> 00:00:18,480 Kwa hiyo leo, tunakwenda kuendelea kuangalia yetu 7 00:00:18,480 --> 00:00:21,150 jinsi sisi kuwakilisha mambo chini ya hood-- kusonga mbali 8 00:00:21,150 --> 00:00:23,520 kutoka namba kama integers na yaliyo maadili uhakika 9 00:00:23,520 --> 00:00:26,810 na kuelekeza nguvu juu ya masharti na mipango hatimaye kuvutia zaidi. 10 00:00:26,810 --> 00:00:30,140 Lakini tutaweza pia kuangalia michache ya domain maalum problems-- 11 00:00:30,140 --> 00:00:33,620 ya kwanza ambayo itakuwa kuwa kuwashirikisha cryptography, 12 00:00:33,620 --> 00:00:36,570 sanaa ya scrambling habari, katika ambayo unaweza kuona hapo juu hapa 13 00:00:36,570 --> 00:00:41,480 ni picha ya Radio Yatima Annie ya siri avkodare pete kutoka yesteryear. 14 00:00:41,480 --> 00:00:46,490 >> Hii ni kweli aina primitive sana na aina ya cryptopgraphy mtoto ya kirafiki 15 00:00:46,490 --> 00:00:50,590 ambapo pete hii ina disks-- mbili ndani ya moja na moja nje. 16 00:00:50,590 --> 00:00:54,740 Na kwa kupokezana mmoja wa wale, unaweza kimsingi kujipanga barua kama A 17 00:00:54,740 --> 00:00:59,520 kupitia Z na barua nyingine kama B kupitia A. Kwa maneno mengine, 18 00:00:59,520 --> 00:01:03,730 unaweza literally mzunguko alfabeti, hivyo kuja juu na ramani kutoka 19 00:01:03,730 --> 00:01:07,820 barua kwa barua ili, kama wewe alitaka kutuma ujumbe wa siri 20 00:01:07,820 --> 00:01:11,820 kwa mtu kama Annie, unaweza kuandika chini ujumbe wako na kisha mzunguko 21 00:01:11,820 --> 00:01:15,370 barua, ambapo, kama wewe maana kusema "A," wewe badala kusema "B," 22 00:01:15,370 --> 00:01:17,280 wewe maana ya kusema "B," wewe badala kusema "C" - 23 00:01:17,280 --> 00:01:20,240 au kitu wajanja kidogo zaidi kuliko that-- na kisha, hatimaye, 24 00:01:20,240 --> 00:01:24,630 hivyo muda mrefu kama Annie ina avkodare hii pete, yeye unaweza Decode ujumbe. 25 00:01:24,630 --> 00:01:28,540 Sasa, unaweza kukumbuka, kwa kweli, kwamba hii ilitumika katika filamu maarufu sana kwamba 26 00:01:28,540 --> 00:01:31,140 ina ad nauseum wakati wa Msimu wa Krismasi. 27 00:01:31,140 --> 00:01:32,650 Hebu tuangalie hapa. 28 00:01:32,650 --> 00:01:35,294 29 00:01:35,294 --> 00:01:37,210 RALPHIE PARKER: "Kuwa ni unaojulikana kwa wote kwa muhtasari 30 00:01:37,210 --> 00:01:41,000 kwamba Ralph Parker ni hili maalumu mwanachama wa Little Yatima Annie Secret 31 00:01:41,000 --> 00:01:44,860 Circle na ni haki ya kila heshima na faida zinazotokea lazimishwa. " 32 00:01:44,860 --> 00:01:47,410 >> RALPHIE PARKER (akisimulia): Saini Little Yatima Annie. 33 00:01:47,410 --> 00:01:50,070 Countersigned, Pierre Andre! 34 00:01:50,070 --> 00:01:51,490 Katika wino. 35 00:01:51,490 --> 00:01:55,494 Heshima na faida, tayari katika umri wa miaka tisa. 36 00:01:55,494 --> 00:01:57,402 >> [MUSIC KUCHEZA] 37 00:01:57,402 --> 00:02:00,470 >> [RADIO chatter] 38 00:02:00,470 --> 00:02:01,470 RALPHIE PARKER: hebu njoo. 39 00:02:01,470 --> 00:02:02,344 Hebu kupata tarehe na hayo. 40 00:02:02,344 --> 00:02:06,029 Mimi hawana haja ya jazz kwamba wote kuhusu smugglers na maharamia. 41 00:02:06,029 --> 00:02:08,820 RADIO ANNOUNCER: Sikiliza kesho usiku kwa adventure kuhitimisha 42 00:02:08,820 --> 00:02:11,060 ya Black Pirate meli. 43 00:02:11,060 --> 00:02:14,740 Sasa, ni wakati kwa Annie ya Ujumbe siri kwa ajili yenu wanachama 44 00:02:14,740 --> 00:02:17,110 ya Circle Secret. 45 00:02:17,110 --> 00:02:20,700 Kumbuka watoto, wanachama tu Annie ya siri ya Circle 46 00:02:20,700 --> 00:02:23,270 unaweza Decode Annie ya siri ujumbe. 47 00:02:23,270 --> 00:02:27,270 >> Kumbuka, Annie ni kutegemea wewe. 48 00:02:27,270 --> 00:02:30,060 Kuweka pini yako kwa B-2. 49 00:02:30,060 --> 00:02:34,004 Hapa ni message-- 12, 11, 2-- 50 00:02:34,004 --> 00:02:36,503 RALPHIE PARKER (akisimulia): I ni katika wangu siri mkutano wa kwanza. 51 00:02:36,503 --> 00:02:40,041 RADIO ANNOUNCER: --25, 14, 11, 18, 16-- 52 00:02:40,041 --> 00:02:42,790 RALPHIE PARKER (akisimulia): Oh, Pierre mara kwa sauti kubwa usiku wa leo. 53 00:02:42,790 --> 00:02:46,110 Mimi nilikuwa naona kuwa usiku wa leo ujumbe ulikuwa kweli ni muhimu. 54 00:02:46,110 --> 00:02:47,930 >> RADIO ANNOUNCER: --3, 25. 55 00:02:47,930 --> 00:02:49,940 Hiyo ni ujumbe kutoka Annie mwenyewe. 56 00:02:49,940 --> 00:02:52,182 Kumbuka, usimwambie mtu yeyote. 57 00:02:52,182 --> 00:02:55,077 >> [Panting] 58 00:02:55,077 --> 00:02:57,285 RALPHIE PARKER (akisimulia): Sekunde tisini baadaye, mimi nina 59 00:02:57,285 --> 00:03:00,090 katika chumba tu katika nyumba ambapo kijana wa tisa 60 00:03:00,090 --> 00:03:04,380 wanaweza kukaa katika faragha na Decode. 61 00:03:04,380 --> 00:03:04,990 Ah. 62 00:03:04,990 --> 00:03:05,680 "B." 63 00:03:05,680 --> 00:03:06,524 >> [Chuckles] 64 00:03:06,524 --> 00:03:08,684 >> RALPHIE PARKER (akisimulia): Nilikwenda ijayo. 65 00:03:08,684 --> 00:03:09,610 "E." 66 00:03:09,610 --> 00:03:11,641 neno la kwanza ni "kuwa." 67 00:03:11,641 --> 00:03:12,140 Ndiyo! 68 00:03:12,140 --> 00:03:14,293 Ni alikuwa anakuja rahisi sasa. 69 00:03:14,293 --> 00:03:15,259 "U." 70 00:03:15,259 --> 00:03:16,225 >> [Chuckles] 71 00:03:16,225 --> 00:03:18,157 >> RANDY PARKER: Aw, kuja juu, Ralphie. 72 00:03:18,157 --> 00:03:19,606 I gotta go! 73 00:03:19,606 --> 00:03:21,538 >> RALPHIE PARKER: Mimi itabidi kuwa na haki chini, Ma. 74 00:03:21,538 --> 00:03:22,504 Gee whiz. 75 00:03:22,504 --> 00:03:25,402 76 00:03:25,402 --> 00:03:31,220 "T." "O." "Kuwa na uhakika kwa. "" Kuwa na uhakika wa "nini? 77 00:03:31,220 --> 00:03:33,981 Nini ilikuwa Little Yatima Annie anajaribu kusema nini? "Kuwa na uhakika wa" nini? 78 00:03:33,981 --> 00:03:35,522 MOTHER: Ralphie, Randy ina got kwenda. 79 00:03:35,522 --> 00:03:36,735 Je, tafadhali kuja nje? 80 00:03:36,735 --> 00:03:38,190 >> RALPHIE PARKER: zote haki, Mama! 81 00:03:38,190 --> 00:03:39,787 Mimi itabidi kuwa haki ya nje! 82 00:03:39,787 --> 00:03:41,995 RALPHIE PARKER (akisimulia): Mimi nilikuwa kupata karibu sasa. 83 00:03:41,995 --> 00:03:43,370 mvutano ilikuwa ya kutisha. 84 00:03:43,370 --> 00:03:44,794 Ilikuwa ni nini? 85 00:03:44,794 --> 00:03:47,656 hatima ya sayari inaweza hutegemea katika mizani. 86 00:03:47,656 --> 00:03:50,518 >> MOTHER: Ralphie, Randy got kwenda! 87 00:03:50,518 --> 00:03:53,635 >> RALPHIE PARKER: Mimi itabidi kuwa na haki nje, kwa kelele kubwa! 88 00:03:53,635 --> 00:03:55,343 RALPHIE PARKER (Akisimulia): Karibu hapo! 89 00:03:55,343 --> 00:03:56,520 Vidole yangu akaruka! 90 00:03:56,520 --> 00:03:58,500 Mawazo yangu yalikuwa ni chuma mtego. 91 00:03:58,500 --> 00:03:59,850 Kila pore vibrated. 92 00:03:59,850 --> 00:04:01,806 Ilikuwa ni karibu wazi! 93 00:04:01,806 --> 00:04:02,773 Ndiyo! 94 00:04:02,773 --> 00:04:03,273 Ndiyo! 95 00:04:03,273 --> 00:04:03,773 Ndiyo! 96 00:04:03,773 --> 00:04:04,740 Ndiyo! 97 00:04:04,740 --> 00:04:10,250 >> RALPHIE PARKER: "Kuwa na uhakika kunywa Ovaltine yako. " 98 00:04:10,250 --> 00:04:10,750 Ovaltine? 99 00:04:10,750 --> 00:04:14,864 100 00:04:14,864 --> 00:04:17,539 kibiashara crummy? 101 00:04:17,539 --> 00:04:19,439 >> [MUSIC KUCHEZA] 102 00:04:19,439 --> 00:04:21,724 >> RALPHIE PARKER: Mwana wa bitch. 103 00:04:21,724 --> 00:04:23,460 >> [Laughing] 104 00:04:23,460 --> 00:04:27,070 >> DAVID J. Malan: Hivyo kwamba basi ni glimpse katika kile cryptography 105 00:04:27,070 --> 00:04:29,880 inaweza kuwa kwa Haya a kunywa kutoka yesteryear. 106 00:04:29,880 --> 00:04:30,900 Hivyo tangazo haraka. 107 00:04:30,900 --> 00:04:33,410 Kama wewe ni bure hii Ijumaa saa 1:15 na ingekuwa 108 00:04:33,410 --> 00:04:36,610 kama kujiunga na sisi kwa CS50 chakula cha mchana, kichwa na URL hii hapa. 109 00:04:36,610 --> 00:04:38,080 Kwanza kuja, kwanza kutumika kama kawaida. 110 00:04:38,080 --> 00:04:41,840 Lakini baada ya muda, tutaweza kuhakikisha kwamba zaidi mtu yeyote ambaye Ningependa kushiriki 111 00:04:41,840 --> 00:04:43,640 inaweza ratiba ya-busara. 112 00:04:43,640 --> 00:04:45,170 >> Hivyo masharti. 113 00:04:45,170 --> 00:04:47,940 Tuna Zamyla-- ambaye umefanya sasa alikutana uwezekano mkubwa 114 00:04:47,940 --> 00:04:50,750 Tatizo Set katika 1-- ambao jina ni yameandikwa hivyo. 115 00:04:50,750 --> 00:04:53,570 Na tuseme wewe typed jina lake ndani ya programu ya kompyuta ambayo ni 116 00:04:53,570 --> 00:04:55,710 kutumia kitu kama GetString. 117 00:04:55,710 --> 00:04:57,890 Ili retrieve keystrokes hayo, jinsi 118 00:04:57,890 --> 00:05:01,620 je, sisi kwenda juu ya anayewakilisha kamba, neno, aya, 119 00:05:01,620 --> 00:05:03,960 au barua nyingi kama hizi hapa? 120 00:05:03,960 --> 00:05:06,790 >> Sisi aliyesema mara ya mwisho kuhusu integers na matatizo 121 00:05:06,790 --> 00:05:09,960 kwamba kutokea kwa integer kufurika na yaliyo maadili uhakika 122 00:05:09,960 --> 00:05:12,190 na matatizo ambayo kutokea ndani ya usahihi. 123 00:05:12,190 --> 00:05:16,080 Pamoja na masharti, sisi angalau kuwa na kubadilika kidogo zaidi 124 00:05:16,080 --> 00:05:17,970 kwa sababu strings-- tu katika world-- halisi 125 00:05:17,970 --> 00:05:19,790 inaweza kuwa urefu pretty holela. 126 00:05:19,790 --> 00:05:21,055 Pretty short, pretty muda mrefu. 127 00:05:21,055 --> 00:05:23,680 Lakini hata hivyo, tunakwenda kupata kwamba kompyuta wakati mwingine 128 00:05:23,680 --> 00:05:27,200 kukimbia nje ya kumbukumbu na hata kuhifadhi kubwa kamba ya kutosha. 129 00:05:27,200 --> 00:05:30,840 >> Lakini kwa sasa, hebu kuanza taswira kamba kama kitu katika masanduku hayo 130 00:05:30,840 --> 00:05:31,340 hapa. 131 00:05:31,340 --> 00:05:36,410 Hivyo sita kama masanduku, ambayo kila mmoja inawakilisha tabia au "char." 132 00:05:36,410 --> 00:05:40,646 Hivyo kukumbuka kwamba "char" - c-h-r-- ni moja ya kujengwa katika aina data katika C. 133 00:05:40,646 --> 00:05:43,520 Na nini ni nzuri ni kwamba unaweza kutumia kwamba aina ya kama block jengo, 134 00:05:43,520 --> 00:05:47,880 puzzle kipande, kama wewe, ili kuunda aina kubwa ya data kwamba tutaweza kuendelea 135 00:05:47,880 --> 00:05:49,410 kuwaita "kamba." 136 00:05:49,410 --> 00:05:53,650 >> Sasa, nini muhimu kuhusu kufikiri juu ya mambo kama masharti kwa njia hii? 137 00:05:53,650 --> 00:05:57,720 Naam, ni zamu nje kwamba tunaweza kweli kujiinua muundo huu 138 00:05:57,720 --> 00:06:01,420 kwa kweli kupata wahusika binafsi katika njia pretty moja kwa moja. 139 00:06:01,420 --> 00:06:04,099 Mimi nina kwenda mbele na kujenga faili inayoitwa "stringzero.c," 140 00:06:04,099 --> 00:06:05,765 lakini unaweza kuiita chochote Ningependa. 141 00:06:05,765 --> 00:06:08,500 Na kwenye tovuti bila shaka ni tayari mfano huu mapema, 142 00:06:08,500 --> 00:06:10,430 hivyo huna haja ya aina kila kitu nje. 143 00:06:10,430 --> 00:06:13,820 >> Na mimi nina kwenda mbele na kwanza kufanya int kuu utupu. 144 00:06:13,820 --> 00:06:15,980 Na ndani ya siku chache, tutaweza kuanza kwa tease mbali 145 00:06:15,980 --> 00:06:19,070 nini utupu ni hapa, kwa nini ni int karibu na kuu, na kadhalika. 146 00:06:19,070 --> 00:06:21,180 Lakini kwa sasa, hebu kuendelea nakala kuweka kwamba. 147 00:06:21,180 --> 00:06:23,455 >> Mimi nina kwenda kutangaza string kuitwa s. 148 00:06:23,455 --> 00:06:26,920 Na mimi nina kwenda na kurudi kutoka GetString chochote aina user katika. 149 00:06:26,920 --> 00:06:29,170 Hii ni kwenda kuwa rahisi mpango, hakuna maelekezo, 150 00:06:29,170 --> 00:06:31,336 Mimi nina kwenda tu kwa upofu kutarajia kwamba user anajua 151 00:06:31,336 --> 00:06:32,600 nini cha kufanya ili kuitunza rahisi. 152 00:06:32,600 --> 00:06:34,220 >> Na sasa mimi nina kwenda kuwa kwa kitanzi. 153 00:06:34,220 --> 00:06:37,450 Na ndani ya yangu kwa kitanzi mimi nina kwenda na int i anapata sifuri. 154 00:06:37,450 --> 00:06:40,660 Na i ni, tena, tu mkataba huo, index variable kwa kuhesabu, 155 00:06:40,660 --> 00:06:42,350 lakini mimi naweza wito huu chochote mimi nataka. 156 00:06:42,350 --> 00:06:46,275 Mimi nina kwenda kufanya i ni chini than-- vizuri Jina Zamyla ni barua sita kwa muda mrefu. 157 00:06:46,275 --> 00:06:48,150 Hivyo nina kwenda kwa bidii kificho kwamba kuna kwa sasa. 158 00:06:48,150 --> 00:06:49,730 >> Na kisha i ++. 159 00:06:49,730 --> 00:06:53,190 Na sasa ndani ya hizi curly braces mimi nina kwenda kufanya printf, 160 00:06:53,190 --> 00:06:55,460 na nataka magazeti moja tabia ya wakati huo. 161 00:06:55,460 --> 00:06:58,227 Hivyo nina kwenda kutumia% c kwa labda mara ya kwanza. 162 00:06:58,227 --> 00:07:00,560 Na kisha nataka magazeti kila tabia ya juu ya line yake mwenyewe. 163 00:07:00,560 --> 00:07:02,550 Hivyo nina kwenda kuweka backslash kidogo n huko. 164 00:07:02,550 --> 00:07:03,640 Close quote. 165 00:07:03,640 --> 00:07:06,250 >> Na sasa mimi wanataka kufanya kitu hapa. 166 00:07:06,250 --> 00:07:10,610 Nataka magazeti nje barua maalum katika kamba, 167 00:07:10,610 --> 00:07:13,670 s, kama mimi nina iterating kutoka sifuri juu ya hadi sita. 168 00:07:13,670 --> 00:07:17,150 Kwa maneno mengine, nataka magazeti tabia ya i'th ya s. 169 00:07:17,150 --> 00:07:18,420 Sasa jinsi gani naweza kufanya hili? 170 00:07:18,420 --> 00:07:21,550 >> Naam kiasi kama masanduku katika uwakilishi hii hapa, 171 00:07:21,550 --> 00:07:25,560 aina ya, conjure up wazo la ndondi barua katika, unaweza vile vile kufanya hivyo 172 00:07:25,560 --> 00:07:32,630 syntactically katika C kwa kifupi kubainisha, Nataka magazeti nje s ya i'th tabia. 173 00:07:32,630 --> 00:07:35,640 Kutumia mabano mraba juu ya keyboard ya kompyuta yako 174 00:07:35,640 --> 00:07:38,910 kwamba juu ya Marekani keyboard ni kwa ujumla juu ya kurudi muhimu yako. 175 00:07:38,910 --> 00:07:42,630 >> Hivyo hii ni si haki kabisa hata hivyo, kama unaweza kuwa niliona. 176 00:07:42,630 --> 00:07:44,780 Lakini mimi nina kwenda aina ya upofu kusonga mbele hapa. 177 00:07:44,780 --> 00:07:47,020 Na mimi nina kwenda kufanya kufanya string 0. 178 00:07:47,020 --> 00:07:50,860 Lakini kabla ya kufanya hivyo, hebu angalia kama sisi hawezi wanatarajia baadhi ya makosa ya kawaida. 179 00:07:50,860 --> 00:07:52,844 Je, hii ni kwenda kukusanya? 180 00:07:52,844 --> 00:07:54,510 Hapana, mimi kukosa rundo zima la mambo. 181 00:07:54,510 --> 00:07:55,280 Maktaba nikasikia. 182 00:07:55,280 --> 00:07:58,480 >> Hivyo ambayo header files wanaweza Nataka kuongeza hapa? 183 00:07:58,480 --> 00:07:59,205 Yeah. 184 00:07:59,205 --> 00:08:01,580 >> Watazamaji: Unahitaji standard I / O [inaudible] 185 00:08:01,580 --> 00:08:02,663 >> DAVID J. Malan: Excellent. 186 00:08:02,663 --> 00:08:06,060 Kwa hiyo mimi haja standard I / O. Kwa nini kusudi kufanya mimi nataka standard I / O? 187 00:08:06,060 --> 00:08:06,670 Kwa printf. 188 00:08:06,670 --> 00:08:09,220 Hivyo ni pamoja na stdio.h. 189 00:08:09,220 --> 00:08:13,490 Na wewe pia kupendekeza kwamba mimi ni pamoja na Maktaba kwa sababu gani CS50? 190 00:08:13,490 --> 00:08:14,650 Kuwa na masharti. 191 00:08:14,650 --> 00:08:17,780 Hivyo tutaweza kuona nini Maktaba CS50 ni kufanya 192 00:08:17,780 --> 00:08:19,260 kujenga wazo hili la kamba. 193 00:08:19,260 --> 00:08:21,930 Lakini kwa sasa, unaweza kufikiria tu yake kama halisi ya aina data. 194 00:08:21,930 --> 00:08:23,596 >> Hivyo kwamba inaonekana kuwa kidogo kusafishwa up. 195 00:08:23,596 --> 00:08:27,060 Na sasa mimi nina kwenda mbele na kwa kweli kufanya kufanya string 0. 196 00:08:27,060 --> 00:08:27,700 Imekusanywa. 197 00:08:27,700 --> 00:08:28,370 Hivyo hiyo ni nzuri. 198 00:08:28,370 --> 00:08:32,799 Hivyo basi mimi ./string0 zoom katika ili tuweze kuona kwa karibu zaidi nini kinatokea. 199 00:08:32,799 --> 00:08:33,850 Kuingia. 200 00:08:33,850 --> 00:08:37,789 Z-A-M-Y-L-A kuingia. 201 00:08:37,789 --> 00:08:39,440 Na tumekuwa kuchapishwa kufanyika kwa jina Zamyla ya. 202 00:08:39,440 --> 00:08:40,409 >> Hivyo hiyo ni nzuri sana. 203 00:08:40,409 --> 00:08:43,220 Hivyo sasa hebu kwenda mbele na kuendesha programu hii tena, 204 00:08:43,220 --> 00:08:45,659 na aina nje jina Daven ya full. 205 00:08:45,659 --> 00:08:46,450 Surprise, mshangao. 206 00:08:46,450 --> 00:08:48,021 Kuingia. 207 00:08:48,021 --> 00:08:48,520 Hmm. 208 00:08:48,520 --> 00:08:51,750 Sisi si kuchapishwa Daven ya jina kamili kwanza kwa usahihi. 209 00:08:51,750 --> 00:08:54,250 Sasa hii inapaswa kuwa wazi katika retrospect kwa sababu ya nini, 210 00:08:54,250 --> 00:08:57,010 aina ya, kijinga uamuzi wa kubuni? 211 00:08:57,010 --> 00:08:59,590 >> Yeah, mimi ngumu coded sita ndani ya yangu kwa kitanzi. 212 00:08:59,590 --> 00:09:01,610 Sasa mimi kwamba tu kwa sababu Nilijua jina Zamyla ya 213 00:09:01,610 --> 00:09:02,776 alikuwa anaenda kuwa barua sita. 214 00:09:02,776 --> 00:09:04,720 Lakini bila ya shaka hii ni si ufumbuzi kwa ujumla. 215 00:09:04,720 --> 00:09:07,720 Hivyo ni zamu nje tunaweza dynamically kufikiri urefu wa kamba 216 00:09:07,720 --> 00:09:10,440 kwa kupiga kazi kuitwa strlen. 217 00:09:10,440 --> 00:09:12,840 >> Tena, kwa makusudi ufupi aitwaye tu 218 00:09:12,840 --> 00:09:14,450 kufanya ni rahisi zaidi kwa aina. 219 00:09:14,450 --> 00:09:17,170 Lakini hiyo ni sawa na kupata urefu wa kamba. 220 00:09:17,170 --> 00:09:23,190 Mimi nina kwenda nyuma katika terminal yangu dirisha na re-kukimbia compiler. 221 00:09:23,190 --> 00:09:24,170 Lakini ni yelling saa yangu. 222 00:09:24,170 --> 00:09:29,130 Inamuunga kutangaza kazi maktaba strlen kwa ajili ya aina unsigned int const-- 223 00:09:29,130 --> 00:09:29,780 Mimi nina waliopotea. 224 00:09:29,780 --> 00:09:30,590 Kabisa. 225 00:09:30,590 --> 00:09:32,940 >> Hivyo, hasa kama yako macho kuanza glaze juu 226 00:09:32,940 --> 00:09:36,000 na ujumbe wa makosa kama hii, lengo uaminifu juu ya maneno machache ya kwanza. 227 00:09:36,000 --> 00:09:38,590 Tunajua tatizo ni katika mstari wa 8, kama unahitajika hapa. 228 00:09:38,590 --> 00:09:40,500 Na ni katika string-0.c. 229 00:09:40,500 --> 00:09:43,580 Inamuunga kutangaza kazi maktaba strlen. 230 00:09:43,580 --> 00:09:47,000 Hivyo kwamba kwa ujumla kwenda kuwa mfano wa ujumbe wa makosa. 231 00:09:47,000 --> 00:09:49,190 Inamuunga kutangaza kitu. 232 00:09:49,190 --> 00:09:53,250 >> Hivyo katika muda mfupi, nini na mimi walionekana wamefanya kwa heshima na line ya 8, hapa. 233 00:09:53,250 --> 00:09:56,880 Nini kinaweza kuwa suluhisho kuwa hata kama wewe sijawahi kutumika strlen mwenyewe? 234 00:09:56,880 --> 00:09:58,907 >> Watazamaji: Sehemu ya maktaba tofauti? 235 00:09:58,907 --> 00:10:00,740 DAVID J. Malan: Sehemu ya maktaba tofauti. 236 00:10:00,740 --> 00:10:02,400 Hivyo ni alitangaza, hivyo kusema. 237 00:10:02,400 --> 00:10:07,510 Imetajwa katika baadhi ya faili nyingine zaidi ya stdio.h na CS50.h. 238 00:10:07,510 --> 00:10:09,179 Sasa ambapo ni ni defined? 239 00:10:09,179 --> 00:10:12,220 Kwa kuwa waaminifu, wewe ama kuwa na tu kujua hii mbali juu ya kichwa yako, 240 00:10:12,220 --> 00:10:13,640 au wewe Google huu na kupata nje. 241 00:10:13,640 --> 00:10:18,150 Au unajua hii, nilipofungua up katika CS50 appliance terminal mpango, ambayo 242 00:10:18,150 --> 00:10:22,200 ni tu kubwa, screen toleo kamili ya nini katika chini ya dirisha gedit ya. 243 00:10:22,200 --> 00:10:24,970 >> Na zinageuka kwamba kuna vile vile succinct amri, iitwayo 244 00:10:24,970 --> 00:10:29,280 mtu kwa ajili ya mwongozo, ambapo kama wewe aina katika jina ya kazi na hit Enter, 245 00:10:29,280 --> 00:10:32,240 utasikia kupata nyuma haki arcane nyaraka. 246 00:10:32,240 --> 00:10:35,299 Ni Nakala tu ni kwamba kwa ujumla inaonekana kitu kidogo kama hii. 247 00:10:35,299 --> 00:10:37,090 Ni kidogo mno katika mtazamo wa kwanza. 248 00:10:37,090 --> 00:10:39,048 Lakini kusema ukweli mimi nina kwenda achilia macho yangu glaze juu 249 00:10:39,048 --> 00:10:41,930 na tu kuelekeza nguvu katika sehemu Mimi huduma ya juu kwa sasa. 250 00:10:41,930 --> 00:10:42,780 >> Ambayo ni hii. 251 00:10:42,780 --> 00:10:45,470 Ambayo inaonekana kimuundo kama kitu mimi nina familiar with. 252 00:10:45,470 --> 00:10:48,080 Hakika ukurasa mwanamume, vivyo hivyo kusema, atakuambia 253 00:10:48,080 --> 00:10:51,590 katika kile header faili kazi kama strlen inaelezwa. 254 00:10:51,590 --> 00:10:54,170 Hivyo mimi nina kwenda nyuma sasa kwa gedit. 255 00:10:54,170 --> 00:10:59,070 Na mimi nina kwenda mbele na kuongeza katika hapa #include 256 00:10:59,070 --> 00:11:00,480 na kuokoa faili. 257 00:11:00,480 --> 00:11:04,300 >> Mimi nina kwenda wazi screen na Kudhibiti L Kama tumekuwa wanashangaa. 258 00:11:04,300 --> 00:11:08,210 Na mimi nina kwenda re-kukimbia kufanya string.0, inaandaa wakati huu. 259 00:11:08,210 --> 00:11:11,790 ./string.0 Zamyla. 260 00:11:11,790 --> 00:11:15,020 Hiyo walionekana kazi Hebu kwenda mbele na rerun ni pamoja na Davenport. 261 00:11:15,020 --> 00:11:15,860 Kuingia. 262 00:11:15,860 --> 00:11:17,730 Na kwamba, pia, walionekana kazi. 263 00:11:17,730 --> 00:11:21,220 >> Hivyo tunaweza kufanya kidogo bora kuliko hayo, Hata hivyo, tunaweza kuanza kwa mambo tidy 264 00:11:21,220 --> 00:11:23,257 up kidogo tu. 265 00:11:23,257 --> 00:11:25,590 Na mimi nina kwenda kwa kweli kuanzisha jambo moja nyingine sasa. 266 00:11:25,590 --> 00:11:28,930 Mimi nina kwenda mbele na kuokoa hii katika faili tofauti. 267 00:11:28,930 --> 00:11:31,770 Na mimi nina kwenda kuwaita hii string1.c faili tu 268 00:11:31,770 --> 00:11:34,620 kuwa thabiti na code wewe utakuwa na uwezo wa kupata online. 269 00:11:34,620 --> 00:11:37,050 >> Na hebu kuzingatia katika juu ya hasa code huo. 270 00:11:37,050 --> 00:11:39,000 Ni zinageuka kuwa nimekuwa wamekuwa aina ya kuchukua 271 00:11:39,000 --> 00:11:42,600 kwa nafasi ukweli kwamba mbali yangu, na kwa upande wake, CS50 appliance 272 00:11:42,600 --> 00:11:47,450 ina mengi ya kumbukumbu, mengi ya RAM, mengi ya ka wa nafasi 273 00:11:47,450 --> 00:11:48,920 katika ambayo naweza kuhifadhi masharti. 274 00:11:48,920 --> 00:11:53,560 >> Lakini ukweli kama mimi typed kwa muda mrefu kutosha, na kutosha keystrokes, 275 00:11:53,560 --> 00:11:56,170 Mimi nilikuwa katika nadharia ya aina katika wahusika zaidi 276 00:11:56,170 --> 00:11:58,830 kuliko kompyuta yangu kimwili ana kumbukumbu kwa. 277 00:11:58,830 --> 00:11:59,830 Na hili ni tatizo. 278 00:11:59,830 --> 00:12:03,050 Mengi kama int unaweza tu kuhesabu juu, katika nadharia, 279 00:12:03,050 --> 00:12:06,600 unaweza tu cram wahusika wengi ndani ya RAM ya kompyuta yako au Random 280 00:12:06,600 --> 00:12:07,920 Access Memory. 281 00:12:07,920 --> 00:12:11,140 >> Kwa hiyo mimi alikuwa bora wanatarajia tatizo hili, hata 282 00:12:11,140 --> 00:12:13,660 ingawa inaweza kuwa adimu kona kesi, hivyo kusema. 283 00:12:13,660 --> 00:12:15,670 Haina kutokea kwamba mara nyingi, inaweza kutokea. 284 00:12:15,670 --> 00:12:18,815 Na kama ni hutokea na mimi si wanatarajia na mpango kwa ajili yake, 285 00:12:18,815 --> 00:12:20,300 mpango wangu naweza kufanya ambaye anajua nini. 286 00:12:20,300 --> 00:12:22,220 Freeze, hutegemea, reboot, chochote. 287 00:12:22,220 --> 00:12:24,490 Kitu kutarajia inaweza kutokea. 288 00:12:24,490 --> 00:12:27,120 >> Basi nini mimi nina kwenda kufanya sasa, tangu sasa kweli, 289 00:12:27,120 --> 00:12:31,630 ni kabla ya mimi milele upofu kutumia variable kama s kwamba 290 00:12:31,630 --> 00:12:36,790 imekuwa assigned ya thamani ya kurudi kwa baadhi ya kazi nyingine kama GetString, 291 00:12:36,790 --> 00:12:40,200 Mimi nina kwenda kuhakikisha kwamba thamani yake ni halali. 292 00:12:40,200 --> 00:12:44,280 Hivyo najua tu kutoka baada ya kusoma CS50 ya nyaraka kwa ajili ya GetString, 293 00:12:44,280 --> 00:12:49,020 ambayo hatimaye tutaweza kumweka wewe katika, kwamba GetString anarudi ishara maalum 294 00:12:49,020 --> 00:12:53,610 kuitwa NULL, N-U-L-L katika kila kofia, kama kitu fulani kitaenda vibaya. 295 00:12:53,610 --> 00:12:55,650 >> Hivyo kwa kawaida, ni anarudi kamba. 296 00:12:55,650 --> 00:12:59,700 Lakini vinginevyo kama kuirudisha N-U-L-L-- tutaweza hatimaye kuona nini kwamba kweli 297 00:12:59,700 --> 00:13:01,790 means-- kwamba tu njia kitu mbaya kilichotokea. 298 00:13:01,790 --> 00:13:05,560 Sasa hii inamaanisha, kiasi kama katika Scratch, Siwezi kuangalia hali hapa katika C, 299 00:13:05,560 --> 00:13:08,830 kama s haina NULL sawa. 300 00:13:08,830 --> 00:13:11,930 Hivyo kama wewe wameweza si hii kuona mbele, hii ina maana tu haina sawa. 301 00:13:11,930 --> 00:13:15,290 >> Hivyo ni kinyume cha sawa sawa, ambayo, kukumbuka, 302 00:13:15,290 --> 00:13:18,940 ni tofauti na single sawa, ambayo ni kazi. 303 00:13:18,940 --> 00:13:23,030 Hivyo kama s haina sawa NULL, basi tu kufanya 304 00:13:23,030 --> 00:13:25,980 Nataka nitafanya mistari haya ya code. 305 00:13:25,980 --> 00:13:28,080 Hivyo kwa maneno mengine, kabla ya mimi kupiga mbizi katika upofu 306 00:13:28,080 --> 00:13:30,919 na kuanza iterating juu ya s, na kutibu ni 307 00:13:30,919 --> 00:13:33,710 kana kwamba ni mlolongo wa wahusika, mimi nina kwenda kuangalia kwanza, 308 00:13:33,710 --> 00:13:37,900 kusubiri dakika, ni s dhahiri si sawa na thamani hii maalum, NULL? 309 00:13:37,900 --> 00:13:40,030 >> Kwa sababu kama ni, mambo mabaya yanaweza kutokea. 310 00:13:40,030 --> 00:13:43,080 Na kwa sasa, kudhani mambo kuwa mbaya kinachotokea maana shambulio mpango wako, 311 00:13:43,080 --> 00:13:45,070 na unaweza si lazima kupona. 312 00:13:45,070 --> 00:13:46,800 Hivyo kusema ukweli, inaonekana uglier. 313 00:13:46,800 --> 00:13:48,660 ni aina ya utata sasa kwa mtazamo saa. 314 00:13:48,660 --> 00:13:50,780 Lakini hii itakuwa zaidi familiar kabla ya muda mrefu. 315 00:13:50,780 --> 00:13:52,920 >> Lakini mimi nina kwenda kupendekeza sasa wengine kuboresha moja. 316 00:13:52,920 --> 00:13:54,660 Hiyo ni kuboresha na usahihi. 317 00:13:54,660 --> 00:13:58,800 Mpango wangu ni sasa sahihi zaidi, kwa sababu katika kesi nadra kuwa kumbukumbu haitoshi 318 00:13:58,800 --> 00:14:01,180 lipo, mimi kushughulikia hilo, na mimi itabidi kufanya chochote. 319 00:14:01,180 --> 00:14:02,680 Mimi angalau si ajali. 320 00:14:02,680 --> 00:14:05,000 >> Lakini hebu kufanya toleo la mwisho hapa. 321 00:14:05,000 --> 00:14:07,690 Na faili inayoitwa string2.c. 322 00:14:07,690 --> 00:14:10,190 Mimi nina kwenda kuweka kwamba huo code kwa muda tu, 323 00:14:10,190 --> 00:14:14,210 na mimi nina kwenda kwa kuonyesha hii line, 11, hapa, kwa muda tu. 324 00:14:14,210 --> 00:14:18,179 Sasa ukweli ni kwamba compilers smart kama Clang inaweza kurekebisha hili kwa ajili yetu 325 00:14:18,179 --> 00:14:19,970 nyuma ya pazia bila wetu milele kujua. 326 00:14:19,970 --> 00:14:24,670 Lakini hebu fikiria kuhusu hili kimsingi kama kubuni tatizo. 327 00:14:24,670 --> 00:14:29,010 >> Mstari wa kanuni ni, bila shaka, akisema, initialize variable i baadhi kwa 0. 328 00:14:29,010 --> 00:14:30,260 Hiyo ni pretty moja kwa moja. 329 00:14:30,260 --> 00:14:34,691 Na nini tena ni hii kauli, hapa, i ++, kufanya? 330 00:14:34,691 --> 00:14:37,066 Tumeona hivyo kabla, lakini sisi hawakuwa kweli kuzungumza juu yake. 331 00:14:37,066 --> 00:14:37,900 >> Watazamaji: incrementing i. 332 00:14:37,900 --> 00:14:39,191 >> DAVID J. Malan: incrementing i. 333 00:14:39,191 --> 00:14:41,890 Kadhalika kila iteration kupitia kitanzi hii, kila mzunguko, 334 00:14:41,890 --> 00:14:43,570 wewe ni incrementing i kwa moja. 335 00:14:43,570 --> 00:14:45,740 Hivyo anapata kubwa zaidi, na kubwa zaidi, na kubwa mpaka kitanzi vipoe. 336 00:14:45,740 --> 00:14:46,810 Jinsi gani kusitisha? 337 00:14:46,810 --> 00:14:49,430 Naam kuna katikati huu hali ambayo tumekuwa kutumika kabla. 338 00:14:49,430 --> 00:14:52,500 Ve kuonekana na katika walkthroughs katika P kuweka. 339 00:14:52,500 --> 00:14:53,880 >> Lakini ni nini maneno yako? 340 00:14:53,880 --> 00:14:58,352 Kufanya kitanzi yafuatayo ili muda mrefu kama i ni chini ya nini? 341 00:14:58,352 --> 00:14:59,810 Watazamaji: urefu wa kamba. 342 00:14:59,810 --> 00:15:01,518 DAVID J. Malan: urefu wa kamba. 343 00:15:01,518 --> 00:15:04,300 Hivyo ni tafsiri pretty cleanly kwa Kiingereza katika maana hiyo. 344 00:15:04,300 --> 00:15:08,810 Sasa tatizo ni kwamba kila wakati mimi iterate kwa njia ya kitanzi hii katika nadharia, 345 00:15:08,810 --> 00:15:10,000 Mimi nina kuuliza swali hili. 346 00:15:10,000 --> 00:15:12,250 Ni i chini ya urefu wa kamba s? 347 00:15:12,250 --> 00:15:14,500 Ni i chini ya urefu wa kamba s? 348 00:15:14,500 --> 00:15:18,380 >> Sasa i kubadilisha juu ya kila iteration? 349 00:15:18,380 --> 00:15:18,880 Ni. 350 00:15:18,880 --> 00:15:19,629 Kwa sababu ya ++. 351 00:15:19,629 --> 00:15:21,700 Hivyo kila iteration i ni kupata kubwa. 352 00:15:21,700 --> 00:15:25,411 Lakini ni s kupata kubwa, au ndogo, au kubadilisha wakati wote? 353 00:15:25,411 --> 00:15:25,910 Hapana 354 00:15:25,910 --> 00:15:30,240 Hivyo katika suala la kubuni, moja ya shoka pamoja ambayo sisi kujaribu kutathmini code 355 00:15:30,240 --> 00:15:32,610 darasani, hii anahisi aina ya kijinga. 356 00:15:32,610 --> 00:15:34,690 >> Kama wewe ni literally, juu ya kila iteration 357 00:15:34,690 --> 00:15:37,110 ya kitanzi hii kuuliza huo damn swali tena, 358 00:15:37,110 --> 00:15:40,770 na tena, na tena, na literally ni kamwe kwenda na mabadiliko. 359 00:15:40,770 --> 00:15:44,220 Angalau kama mimi si kugusa s na kujaribu kubadilisha yaliyomo ya s. 360 00:15:44,220 --> 00:15:46,610 Hivyo siwezi kufanya kidogo bora zaidi kuliko haya. 361 00:15:46,610 --> 00:15:49,530 >> Na kile Mimi naenda kufanya ni si kutangaza moja tu variable i, 362 00:15:49,530 --> 00:15:53,330 lakini variable pili mimi itabidi kiholela, lakini conventionally, simu yake n. 363 00:15:53,330 --> 00:15:55,940 Mpe n sawa na kamba urefu wa s. 364 00:15:55,940 --> 00:15:59,090 Na kisha zaidi ya hapa, mimi nina kwenda kufanya wajanja optimization kidogo, hivyo 365 00:15:59,090 --> 00:16:03,460 kusema, kwamba mwishoni mwa siku hakuna zaidi sahihi au si chini sahihi 366 00:16:03,460 --> 00:16:04,260 kuliko kabla. 367 00:16:04,260 --> 00:16:05,500 Lakini ni kubuni bora. 368 00:16:05,500 --> 00:16:09,480 Katika ukweli kwamba mimi nina kutumia muda kidogo, mzunguko wachache CPU, hivyo 369 00:16:09,480 --> 00:16:14,040 kusema, kujibu huo swali, lakini mara moja tu. 370 00:16:14,040 --> 00:16:17,870 >> Maswali yoyote juu ya kwamba kwa ujumla kanuni ya kuboresha, 371 00:16:17,870 --> 00:16:21,294 kusema, ufanisi wa programu hiyo? 372 00:16:21,294 --> 00:16:21,991 Yeah? 373 00:16:21,991 --> 00:16:23,699 Watazamaji: Kwa nini kutumia [inaudible]? 374 00:16:23,699 --> 00:16:25,760 375 00:16:25,760 --> 00:16:27,010 DAVID J. Malan: Swali Good. 376 00:16:27,010 --> 00:16:30,690 Hivyo kwa nini sisi kuweka ++ tarehe ya mwisho ya i badala ya mwanzo wa i? 377 00:16:30,690 --> 00:16:33,070 Katika kesi hiyo, ina hakuna madhara kazi. 378 00:16:33,070 --> 00:16:36,670 Na kwa ujumla, mimi huwa na kutumia postfix operator 379 00:16:36,670 --> 00:16:41,750 ili ni wazi kidogo zaidi kama kwa wakati operesheni kinachotokea. 380 00:16:41,750 --> 00:16:46,670 >> Kwa wale usio wa kawaida, kuna mwingine kauli ambapo unaweza kufanya ++ i. 381 00:16:46,670 --> 00:16:48,747 Hizi ni functionally sawa katika kesi hii 382 00:16:48,747 --> 00:16:51,080 kwa sababu kuna kitu kingine kuzunguka kwamba incrementation. 383 00:16:51,080 --> 00:16:54,435 Lakini unaweza kuja na kesi na mstari wa kanuni 384 00:16:54,435 --> 00:16:55,810 katika ambayo kwamba inafanya tofauti. 385 00:16:55,810 --> 00:16:57,810 Hivyo kwa ujumla, hatufanyi hata kuzungumza kuhusu suala hili moja. 386 00:16:57,810 --> 00:17:00,690 Kwa sababu kusema ukweli, inafanya yako code sexier, na aina ya slicker, 387 00:17:00,690 --> 00:17:01,776 na wachache wahusika. 388 00:17:01,776 --> 00:17:04,859 Lakini ukweli ni vigumu sana, Nadhani, hata kwa ajili yangu na wrap akili yangu 389 00:17:04,859 --> 00:17:07,319 kuzunguka wakati mwingine, utaratibu wa shughuli. 390 00:17:07,319 --> 00:17:09,750 Hivyo kama kando, kama wewe kweli si kama hii, 391 00:17:09,750 --> 00:17:14,650 ingawa hii ni aina ya sexy kuangalia, unaweza pia kufanya i + = 1, 392 00:17:14,650 --> 00:17:18,880 ambayo ni toleo uglier ya wazo moja kwa postfix incrementation. 393 00:17:18,880 --> 00:17:22,250 >> Nasema hili na wewe lazima kufanya furaha yake, 394 00:17:22,250 --> 00:17:25,140 lakini wewe kuja kuona kanuni kama kitu kizuri kabla ya muda mrefu. 395 00:17:25,140 --> 00:17:27,160 >> [Kicheko] 396 00:17:27,160 --> 00:17:28,410 >> DAVID J. Malan: Haki? 397 00:17:28,410 --> 00:17:29,360 Yeah. 398 00:17:29,360 --> 00:17:30,480 Swali katikati. 399 00:17:30,480 --> 00:17:32,146 >> Watazamaji: Je, unahitaji kusema int n? 400 00:17:32,146 --> 00:17:34,020 DAVID J. Malan: Je, si haja ya kusema int n. 401 00:17:34,020 --> 00:17:37,670 Hivyo kwa sababu sisi tayari alisema int, huna haja ya kusema hivyo tena. 402 00:17:37,670 --> 00:17:41,820 catch ni kwamba n ina kuwa data aina moja kama i. 403 00:17:41,820 --> 00:17:43,310 Hivyo hiyo ni urahisi hapa. 404 00:17:43,310 --> 00:17:44,058 Yeah. 405 00:17:44,058 --> 00:17:47,806 >> Watazamaji: Je, unaweza kwenda juu ya magazeti tabia ya s bracket i tena? 406 00:17:47,806 --> 00:17:48,930 DAVID J. Malan: Ndiyo. 407 00:17:48,930 --> 00:17:52,110 Hivyo% c, kukumbuka kutoka mwisho wakati, ni tu placeholder. 408 00:17:52,110 --> 00:17:53,930 Ina maana kuweka char hapa. 409 00:17:53,930 --> 00:17:56,780 backslash n, bila shaka, tu njia kuweka line kuvunja hapa. 410 00:17:56,780 --> 00:17:59,540 Hivyo kwamba tu majani, sasa, kipande cha syntax mpya. 411 00:17:59,540 --> 00:18:03,730 Na hii ni literally kusema, kunyakua string kuitwa s na kwenda kupata wake 412 00:18:03,730 --> 00:18:06,050 i'th tabia, hivyo kusema. 413 00:18:06,050 --> 00:18:10,590 >> Na mimi kuendelea kusema i'th tabia ya kwa sababu juu ya kila iteration ya kitanzi hii 414 00:18:10,590 --> 00:18:14,540 ni kana kwamba sisi ni kuchapisha nje, kwanza s bracket 0, 415 00:18:14,540 --> 00:18:15,780 kama programu anaweza kusema. 416 00:18:15,780 --> 00:18:18,680 Kisha s bracket 1, kisha s bracket 2, kisha 3, kisha 4. 417 00:18:18,680 --> 00:18:21,610 Lakini bila shaka ni variable, hivyo mimi tu kueleza ni pamoja na i. 418 00:18:21,610 --> 00:18:23,900 >> Muhimu, ingawa, ni kutambua, hasa kama wameweza si 419 00:18:23,900 --> 00:18:26,358 wamekuwa acclimating ya dunia hii ya programu, ambapo sisi wote 420 00:18:26,358 --> 00:18:28,950 wanaonekana kuhesabu kutoka sifuri, gotta kuanza kuhesabu kutoka sifuri sasa. 421 00:18:28,950 --> 00:18:35,130 Kwa sababu masharti, tabia ya kwanza, z katika Zamyla ni kwa bora au mbaya 422 00:18:35,130 --> 00:18:40,490 kwenda kuishi katika eneo ya simu sifuri. 423 00:18:40,490 --> 00:18:48,210 >> Haki zote, hivyo basi mimi kuleta sisi nyuma hapa kwa Zamyla 424 00:18:48,210 --> 00:18:50,746 na kuona nini kweli kwenda juu ya chini ya Hood. 425 00:18:50,746 --> 00:18:52,370 Hivyo kuna wazo hili la aina akitoa. 426 00:18:52,370 --> 00:18:53,800 Unaweza kuwa na kweli alicheza na hii tayari, 427 00:18:53,800 --> 00:18:55,970 labda kwa hacker toleo la P kuweka moja. 428 00:18:55,970 --> 00:19:00,320 Lakini aina akitoa tu inahusu uwezo katika C na baadhi ya lugha nyingine 429 00:19:00,320 --> 00:19:03,170 kubadili data ya aina moja hadi nyingine. 430 00:19:03,170 --> 00:19:05,450 >> Sasa jinsi gani sisi kuona hii pretty straightforwardly? 431 00:19:05,450 --> 00:19:08,530 Hivyo hii, kukumbuka, ni mwanzo alfabeti ya Kiingereza. 432 00:19:08,530 --> 00:19:11,265 Na mazingira, kukumbuka, kutoka kama wiki iliyopita ni ASCII. 433 00:19:11,265 --> 00:19:13,790 American Standard Code Habari Interchange. 434 00:19:13,790 --> 00:19:17,080 Ambayo ni njia tu kweli kwa muda mrefu ramani ya kusema kutoka barua 435 00:19:17,080 --> 00:19:19,370 kwa idadi, na kutoka idadi ya barua. 436 00:19:19,370 --> 00:19:22,940 >> Hivyo kwa njia ya M hapa, dot dot dot, yanaendana na, kukumbuka, 437 00:19:22,940 --> 00:19:25,582 simu decimal 65 juu ya up. 438 00:19:25,582 --> 00:19:27,290 Na sisi hakuwa na majadiliano kuhusu hili kwa uwazi, 439 00:19:27,290 --> 00:19:29,850 lakini kwa hakika kuna sawa namba kwa barua lowercase. 440 00:19:29,850 --> 00:19:30,820 Na hakika, kuna. 441 00:19:30,820 --> 00:19:33,730 dunia aliamua baadhi ya miaka iliyopita kuwa kidogo, Herufi za chini, 442 00:19:33,730 --> 00:19:35,020 ni kwenda kuwa 97. 443 00:19:35,020 --> 00:19:38,010 Na kidogo b ni kwenda kuwa 98, na kadhalika. 444 00:19:38,010 --> 00:19:40,200 >> Na kwa wengine muhimu yoyote juu ya keyboard yako, kuna 445 00:19:40,200 --> 00:19:42,190 kwenda kuwa mfano unaofanana na wa bits. 446 00:19:42,190 --> 00:19:44,540 Au equivalently, idadi decimal. 447 00:19:44,540 --> 00:19:47,110 Hivyo swali katika mkono, basi, ni jinsi gani tunaweza 448 00:19:47,110 --> 00:19:49,400 kweli kuona hii chini ya Hood? 449 00:19:49,400 --> 00:19:51,539 Hivyo mimi nina kwenda juu ya gedit tena. 450 00:19:51,539 --> 00:19:53,330 Na badala ya aina hii moja kutoka mwanzo, 451 00:19:53,330 --> 00:19:55,330 Mimi nina kwenda mbele na tu kufungua kitu 452 00:19:55,330 --> 00:19:58,350 kutoka code leo kuitwa ASCII sifuri. 453 00:19:58,350 --> 00:20:01,210 >> Na ASCII zero inaonekana kama hii. 454 00:20:01,210 --> 00:20:02,710 Basi hebu wrap akili zetu kuzunguka hili. 455 00:20:02,710 --> 00:20:04,969 Hivyo kwanza, nimekuwa maoni code, ambayo ni nzuri. 456 00:20:04,969 --> 00:20:07,010 Kwa sababu ni literally kuniambia nini cha kutarajia, 457 00:20:07,010 --> 00:20:08,950 kuonyesha ramani kwa herufi kubwa. 458 00:20:08,950 --> 00:20:13,690 Sasa mimi si kabisa kujua nini mimi maana na kwamba, hivyo hebu infer. 459 00:20:13,690 --> 00:20:16,870 >> Katika lugha ya Kiingereza, labda kiasi fulani techie Kiingereza, 460 00:20:16,870 --> 00:20:20,660 nini line 18 itaonekana kuwa kufanya kwa ajili yetu? 461 00:20:20,660 --> 00:20:21,500 Tu line 18. 462 00:20:21,500 --> 00:20:22,430 Nini ni inducing? 463 00:20:22,430 --> 00:20:25,192 Nini ni kwenda kick off hapa? 464 00:20:25,192 --> 00:20:26,100 >> Watazamaji: kitanzi. 465 00:20:26,100 --> 00:20:26,630 >> DAVID J. Malan: kitanzi. 466 00:20:26,630 --> 00:20:28,463 Na jinsi mara nyingi ni kwamba kwenda iterate? 467 00:20:28,463 --> 00:20:31,562 468 00:20:31,562 --> 00:20:33,270 Watazamaji: [INTERPOSING VOICES] mara sita. 469 00:20:33,270 --> 00:20:34,830 DAVID J. Malan: Si mara sita. 470 00:20:34,830 --> 00:20:35,840 Watazamaji: Mara 26. 471 00:20:35,840 --> 00:20:36,560 DAVID J. Malan: Mara 26. 472 00:20:36,560 --> 00:20:37,060 Yeah, sorry. 473 00:20:37,060 --> 00:20:37,960 26 mara kwa mara. 474 00:20:37,960 --> 00:20:38,460 Kwa nini? 475 00:20:38,460 --> 00:20:41,590 Naam, ni kidogo weird, lakini Nimeanza kuhesabu kutoka 65. 476 00:20:41,590 --> 00:20:43,300 Ambayo ni weird, lakini si vibaya. 477 00:20:43,300 --> 00:20:44,610 Ni si mbaya kwa kusema. 478 00:20:44,610 --> 00:20:46,980 Na mimi nina kufanya hivyo tu kwa sababu, kwa mfano huu, 479 00:20:46,980 --> 00:20:50,455 Mimi nina aina ya unatarajia kuwa mji mkuu wa A mara 65. 480 00:20:50,455 --> 00:20:53,330 Sasa hii si kifahari zaidi njia ya kufanya hili, kwa aina ya maadili ya ngumu 481 00:20:53,330 --> 00:20:56,130 maadili esoteric kwamba hakuna mtu ni milele inatarajiwa kukumbuka. 482 00:20:56,130 --> 00:21:00,155 >> Lakini kwa sasa, taarifa kwamba mimi nina kufanya hivyo juu kupitia 65 plus 26. 483 00:21:00,155 --> 00:21:03,030 Kwa sababu inaonekana mimi hawana hata wanataka kufanya hesabu katika kichwa changu. 484 00:21:03,030 --> 00:21:04,440 Hivyo mimi itabidi basi compiler kufanya hivyo. 485 00:21:04,440 --> 00:21:08,600 Lakini basi juu ya kila kitanzi, kila iteration ya kitanzi, mimi nina incrementing i. 486 00:21:08,600 --> 00:21:10,196 >> Hivyo sasa hii inaonekana kidogo cryptic. 487 00:21:10,196 --> 00:21:13,320 Lakini tunapaswa kuwa na jengo msingi vitalu na ambayo kwa kuelewa hili. 488 00:21:13,320 --> 00:21:15,510 % C ni tu placeholder kwa char. 489 00:21:15,510 --> 00:21:19,010 % I ni placeholder kwa int. 490 00:21:19,010 --> 00:21:23,310 Na zinageuka kwamba kwa kutumia hii syntax mpya, mabano huu, hivyo 491 00:21:23,310 --> 00:21:26,100 kusema, hivyo aina data ndani ya mabano, 492 00:21:26,100 --> 00:21:32,270 Siwezi nguvu compiler kutibu i si ni integer, lakini kama char. 493 00:21:32,270 --> 00:21:35,520 >> Hivyo kuonyesha mimi tabia ya sawa ya idadi hiyo. 494 00:21:35,520 --> 00:21:37,986 Sasa hapa chini, kanuni hii ni pretty much kufanana. 495 00:21:37,986 --> 00:21:39,860 Mimi nilitaka kufanya super wazi ukweli 496 00:21:39,860 --> 00:21:42,095 kwamba mimi nina kuanzia saa 97, ambayo ni Herufi za chini. 497 00:21:42,095 --> 00:21:44,080 On up kupitia barua 26 zaidi. 498 00:21:44,080 --> 00:21:46,970 Na mimi nina doing-- tena, akitoa i, hivyo kusema. 499 00:21:46,970 --> 00:21:49,160 Au aina akitoa i, hivyo kusema. 500 00:21:49,160 --> 00:21:51,420 >> Kutoka int kwa Char. 501 00:21:51,420 --> 00:21:55,760 Hivyo matokeo ya mwisho ni kwenda kuwa, kusema ukweli, habari sisi tayari kujua. 502 00:21:55,760 --> 00:21:59,411 Mimi nina kwenda kufanya ascii-0 dot-- si dot c. 503 00:21:59,411 --> 00:22:02,160 Ilani, pengine alifanya kwamba kosa kama mimi tu alifanya ajali. 504 00:22:02,160 --> 00:22:03,820 Kufanya ascii-0. 505 00:22:03,820 --> 00:22:06,090 Sasa mimi nina kwenda kufanya ./ascii-0. 506 00:22:06,090 --> 00:22:09,050 Mimi itabidi zoom katika, na kwa bahati mbaya ni kwenda na kitabu mbali screen. 507 00:22:09,050 --> 00:22:15,060 Lakini sisi tazama chati nzima ambapo ramani ya 97, ramani b 98, 508 00:22:15,060 --> 00:22:18,931 na kama sisi kitabu juu zaidi , Bila shaka, ramani ya 65. 509 00:22:18,931 --> 00:22:21,180 Hivyo hii ni tu kusema kwamba nini tumekuwa kuhubiri, 510 00:22:21,180 --> 00:22:25,310 kuna yanayolinagana hii, ni kwa kweli kesi katika hali halisi. 511 00:22:25,310 --> 00:22:28,000 Hivyo muundo wa haraka wa hii. 512 00:22:28,000 --> 00:22:31,220 Hebu kufungua ascii-1.c. 513 00:22:31,220 --> 00:22:38,070 Na taarifa hii wajanja, aina wa, ufafanuzi wa hii. 514 00:22:38,070 --> 00:22:41,770 Hii ni ascii-1.c, na taarifa jambo hili mambo. 515 00:22:41,770 --> 00:22:45,120 >> Na hii kweli anapata kwa moyo ya nini kompyuta ni kufanya. 516 00:22:45,120 --> 00:22:48,150 Hata ingawa sisi binadamu ingekuwa si kuhesabu katika suala la letters-- 517 00:22:48,150 --> 00:22:50,380 Mimi si kuanza kufikiri, haki zote kisha b, 518 00:22:50,380 --> 00:22:52,590 na kutumia hayo kwa kuhesabu vitu kimwili. 519 00:22:52,590 --> 00:22:58,680 Unaweza shaka kusema kwamba mimi nataka initialize variable kuitwa baadhi c-- 520 00:22:58,680 --> 00:23:03,220 lakini mimi naweza kuwa na kuitwa anything-- hii hivyo c ni initialized katika mji mkuu wa A. 521 00:23:03,220 --> 00:23:07,560 >> Kwa sababu mwisho wa siku, kompyuta haina huduma nini wewe kuhifadhi, 522 00:23:07,560 --> 00:23:10,170 ni anayejali tu jinsi gani unataka kuwasilisha taarifa hiyo. 523 00:23:10,170 --> 00:23:13,560 Je, unataka kompyuta kwa kutafsiri kwamba mfano wa bits? 524 00:23:13,560 --> 00:23:16,320 Hivyo hii si kitu mimi ingekuwa ujumla kupendekeza kufanya. 525 00:23:16,320 --> 00:23:19,500 Ni kweli tu mfano kwa kufikisha kwamba unaweza kabisa 526 00:23:19,500 --> 00:23:22,049 initialize integer kwa char. 527 00:23:22,049 --> 00:23:24,090 Kwa sababu chini ya kofia ya char, bila shaka, 528 00:23:24,090 --> 00:23:26,170 ni tu idadi 0-255. 529 00:23:26,170 --> 00:23:28,540 >> Hivyo unaweza hakika kuweka ndani ya int. 530 00:23:28,540 --> 00:23:30,890 Na nini hii pia inaonyesha ni kwamba sisi 531 00:23:30,890 --> 00:23:34,040 unaweza kubadilisha kutoka moja aina ya mwingine, hapa, 532 00:23:34,040 --> 00:23:36,780 hatimaye uchapishaji kitu kimoja. 533 00:23:36,780 --> 00:23:44,760 Na kwa kweli, hii nami kurekebisha online-- alikuwa na maana ya kusema hayo, tena, hapa. 534 00:23:44,760 --> 00:23:48,610 Hebu safi hii up online, na tutaweza kuona katika walkthrough online kama inahitajika, 535 00:23:48,610 --> 00:23:50,280 kile kilichokusudiwa huko. 536 00:23:50,280 --> 00:23:50,960 >> OK. 537 00:23:50,960 --> 00:23:53,892 Mfano ili mwisho sasa kuwashirikisha a na b na kisha tutaweza 538 00:23:53,892 --> 00:23:54,850 kuchukua mambo up notch. 539 00:23:54,850 --> 00:23:58,330 Hivyo, pamoja na na b na c katika mtaji 540 00:23:58,330 --> 00:24:01,560 na yanayolinagana yake, hebu kuangalia mfano huu, hapa. 541 00:24:01,560 --> 00:24:02,752 Mwingine code mfano. 542 00:24:02,752 --> 00:24:04,460 Tutaweza kufungua moja ambayo tayari alifanya, hivyo sisi 543 00:24:04,460 --> 00:24:06,440 hawana aina yake wote nje kutoka mwanzo. 544 00:24:06,440 --> 00:24:09,420 >> Na taarifa kwa kutarajia sisi ni kutumia header nyingi 545 00:24:09,420 --> 00:24:13,240 files, kati ya ambayo ni rafiki yetu mpya, string.h. 546 00:24:13,240 --> 00:24:15,597 Sasa hii inaonekana, kwa mara ya kwanza mtazamo, kidogo cryptic. 547 00:24:15,597 --> 00:24:18,180 Lakini hebu angalia kama hatuwezi kufikiri njia ya nini kinaendelea hapa. 548 00:24:18,180 --> 00:24:21,150 Kwanza mimi kupata kamba kutoka kwa mtumiaji, na mimi kuweka kamba kwamba katika variable 549 00:24:21,150 --> 00:24:22,286 kuitwa s. 550 00:24:22,286 --> 00:24:24,090 Nakala kuweka kutoka kabla. 551 00:24:24,090 --> 00:24:27,250 Katika line 22, mimi nina inaonekana kufanya nini hasa 552 00:24:27,250 --> 00:24:30,760 Mimi wakati iliyopita, mimi nina iterating juu ya wahusika katika s. 553 00:24:30,760 --> 00:24:34,780 >> Na mbinu mpya hapa ni kutumia kamba urefu, optimization madogo 554 00:24:34,780 --> 00:24:37,930 ya kuhifadhi kamba urefu katika n, badala ya wito strlen tena, 555 00:24:37,930 --> 00:24:38,850 na tena, na tena. 556 00:24:38,850 --> 00:24:41,120 Na tu kuangalia kwamba i ni chini ya n. 557 00:24:41,120 --> 00:24:43,330 Sasa hapa, mambo kupata kidogo ya kuvutia. 558 00:24:43,330 --> 00:24:45,980 Lakini ni tu ya maombi mpya wazo hili moja. 559 00:24:45,980 --> 00:24:48,470 Nini katika lugha ya Kiingereza gani s bracket i kuwakilisha? 560 00:24:48,470 --> 00:24:51,772 561 00:24:51,772 --> 00:24:54,260 >> Watazamaji: kuhesabu kila tabia ya [inaudible]. 562 00:24:54,260 --> 00:24:55,926 >> DAVID J. Malan: kuhesabu kila tabia. 563 00:24:55,926 --> 00:24:58,680 Na hata zaidi kwa ufupi, s bracket i kuwakilisha nini? 564 00:24:58,680 --> 00:25:00,950 Je, wewe kusema. 565 00:25:00,950 --> 00:25:04,084 Si kuweka wewe juu ya doa hapa. 566 00:25:04,084 --> 00:25:06,375 >> Watazamaji: Well-- 567 00:25:06,375 --> 00:25:09,500 DAVID J. Malan: Hivyo kama neno is-- kama kamba ni Zamyla, ambayo starts-- 568 00:25:09,500 --> 00:25:12,380 Watazamaji: --you kukabiliana na wahusika separately-- 569 00:25:12,380 --> 00:25:13,690 DAVID J. Malan: Good. 570 00:25:13,690 --> 00:25:14,190 Hasa. 571 00:25:14,190 --> 00:25:17,940 mraba bracket nukuu utapata kupata kila tabia mmoja mmoja, 572 00:25:17,940 --> 00:25:21,120 hivyo s bracket 0 ni kwenda kuwa tabia ya kwanza katika kamba. 573 00:25:21,120 --> 00:25:24,110 s bracket 1 ni kwenda kuwa pili, na kadhalika. 574 00:25:24,110 --> 00:25:28,050 Hivyo swali mimi nina kuuliza, hapa, katika hali hii ni nini? 575 00:25:28,050 --> 00:25:33,984 Ni tabia ya i'th ya s zaidi kuliko au sawa na Herufi za chini? 576 00:25:33,984 --> 00:25:36,400 Na hii ina maana gani, hapa, na ampersands mara mbili? 577 00:25:36,400 --> 00:25:36,800 Watazamaji (PAMOJA): Na. 578 00:25:36,800 --> 00:25:37,210 DAVID J. Malan: Na. 579 00:25:37,210 --> 00:25:38,418 Ni tu sawa na hii. 580 00:25:38,418 --> 00:25:42,310 Na ni si keyword katika C, una matumizi, annoyingly, Ampersand Ampersand. 581 00:25:42,310 --> 00:25:47,520 Na hii, kinyume chake, ni kuuliza ni s ya i'th tabia ya chini ya au sawa 582 00:25:47,520 --> 00:25:49,030 Herufi za chini kwa z? 583 00:25:49,030 --> 00:25:52,440 Na tena, hapa ambapo kuelewa msingi 584 00:25:52,440 --> 00:25:54,550 utekelezaji wa kompyuta hufanya akili. 585 00:25:54,550 --> 00:25:57,330 Taarifa kwamba, hata mimi na dot dot dot zaidi ya hapo, 586 00:25:57,330 --> 00:26:04,410 inaonekana kama njia ya z katika lowercase ni maadili yote contiguous up kutoka 97 juu ya up. 587 00:26:04,410 --> 00:26:07,820 >> Na moja kwa ajili uppercase kuanzia saa 65. 588 00:26:07,820 --> 00:26:10,410 Hivyo takeaway, basi, ni kwamba katika Kiingereza, 589 00:26:10,410 --> 00:26:12,760 jinsi gani unaweza kuelezea nini line 24 anafanya? 590 00:26:12,760 --> 00:26:15,736 591 00:26:15,736 --> 00:26:16,728 Yeah? 592 00:26:16,728 --> 00:26:21,575 >> Watazamaji: Tarehe 24 ni kuangalia kuona kama kila tabia ni ndogo. 593 00:26:21,575 --> 00:26:24,700 DAVID J. Malan: Ni kuangalia kama tabia ya kila mmoja ni barua lowercase. 594 00:26:24,700 --> 00:26:28,590 Hivyo hata zaidi kwa ufupi, ni i'th tabia ya s lowercase? 595 00:26:28,590 --> 00:26:30,690 Hayo ni yote sisi ni akielezea hapa mantiki, 596 00:26:30,690 --> 00:26:33,750 kidogo isiyoeleweka kirahisi, lakini hatimaye pretty straightforwardly. 597 00:26:33,750 --> 00:26:36,480 Ni s ya i'th tabia ya lowercase? 598 00:26:36,480 --> 00:26:40,130 >> Kama ni hivyo, na hapa ni ambapo mambo kupata mawazo kidogo bending 599 00:26:40,130 --> 00:26:44,760 kwa muda tu, kama ni hivyo, kwenda mbele na magazeti nje tabia. 600 00:26:44,760 --> 00:26:47,360 Hivyo hii ni tu placeholder, lakini nini tabia? 601 00:26:47,360 --> 00:26:53,710 Kwa nini mimi kufanya s bracket i minus msemo huu hapa? 602 00:26:53,710 --> 00:26:55,110 >> Naam taarifa muundo hapa. 603 00:26:55,110 --> 00:26:57,380 idadi halisi si jambo sana. 604 00:26:57,380 --> 00:27:02,700 Lakini taarifa kwamba 97 ni jinsi mbali mbali kutoka 65? 605 00:27:02,700 --> 00:27:03,560 >> Watazamaji: 32. 606 00:27:03,560 --> 00:27:04,480 >> DAVID J. Malan: 32. 607 00:27:04,480 --> 00:27:06,890 Jinsi mbali mbali ni 98 kutoka 66? 608 00:27:06,890 --> 00:27:07,740 >> Watazamaji: 32. 609 00:27:07,740 --> 00:27:09,890 >> DAVID J. Malan: Little c kutoka kubwa C? 610 00:27:09,890 --> 00:27:10,420 32. 611 00:27:10,420 --> 00:27:14,550 Hivyo kuna humle 32 kutoka barua moja hadi nyingine. 612 00:27:14,550 --> 00:27:17,790 Hivyo kusema ukweli mimi, inaweza kurahisisha hii kwamba. 613 00:27:17,790 --> 00:27:20,400 Lakini basi mimi nina aina ya vigumu coding ngazi hii uelewa mdogo 614 00:27:20,400 --> 00:27:21,740 kwamba hakuna msomaji ni milele kwenda kuelewa. 615 00:27:21,740 --> 00:27:25,080 Hivyo nina kwenda kujumlisha ni kama, mimi kujua barua lowercase ni kubwa. 616 00:27:25,080 --> 00:27:28,400 Mimi najua mji mkuu wa barua ni maadili ndogo, hazijaingizwa. 617 00:27:28,400 --> 00:27:33,216 >> Lakini hii ni sawa na ufanisi akisema Ondoa 32 kutoka s bracket i. 618 00:27:33,216 --> 00:27:35,430 Hivyo katika mazingira ya haya barua, kama barua 619 00:27:35,430 --> 00:27:38,950 hutokea kwa kuwa, lowercase a, na mimi Ondoa 32, 620 00:27:38,950 --> 00:27:43,442 nini athari gani kwamba kuwa, mathematically, juu ya Herufi za chini? 621 00:27:43,442 --> 00:27:44,400 Watazamaji: Capitalizes-- 622 00:27:44,400 --> 00:27:45,691 DAVID J. Malan: herufi yake. 623 00:27:45,691 --> 00:27:48,440 Na hakika, hii ni kwa nini wetu mpango inaitwa capitalize sifuri. 624 00:27:48,440 --> 00:27:51,590 Mpango huu ama herufi kubwa katika herufi, 625 00:27:51,590 --> 00:27:54,580 baada ya kuangalia kama ni kweli ya mbili lowercase. 626 00:27:54,580 --> 00:27:59,810 Vinginevyo, katika line 30, je, mimi kufanya kama si ya mbili lowercase kwamba mimi nina 627 00:27:59,810 --> 00:28:02,852 kuangalia saa fulani iteration katika kitanzi. 628 00:28:02,852 --> 00:28:03,890 Tu magazeti nje. 629 00:28:03,890 --> 00:28:07,010 >> Hivyo si mabadiliko ya mambo si kwamba hata lowercase. 630 00:28:07,010 --> 00:28:10,790 Kuzuia mwenyewe a kidogo kupitia z kidogo. 631 00:28:10,790 --> 00:28:12,730 Sasa hii ni haki arcane. 632 00:28:12,730 --> 00:28:15,230 Lakini mwisho wa siku, hii ni jinsi sisi, mara moja juu ya muda, 633 00:28:15,230 --> 00:28:16,460 alikuwa na kutekeleza mambo. 634 00:28:16,460 --> 00:28:19,780 Kama mimi badala wazi capitalize moja, oh kumshukuru mungu. 635 00:28:19,780 --> 00:28:22,320 Kuna kazi kuitwa juu kwamba unaweza 636 00:28:22,320 --> 00:28:25,410 kufanya kila kitu sisi tu alifanya katika ngazi ya haki ya chini. 637 00:28:25,410 --> 00:28:28,752 >> Sasa kwa juu ni ya kuvutia kwa sababu ni alitangaza katika faili, 638 00:28:28,752 --> 00:28:31,210 na ungependa kujua tu hii kwa kuangalia nyaraka, 639 00:28:31,210 --> 00:28:35,730 au kuambiwa, kusema, katika darasa, ambapo ipo, katika faili inayoitwa ctype.h. 640 00:28:35,730 --> 00:28:37,630 Hivyo hii ni rafiki mwingine mpya yetu. 641 00:28:37,630 --> 00:28:40,750 Na kwa juu gani hasa nini jina lake anapendekeza. 642 00:28:40,750 --> 00:28:44,860 >> Unaweza kupita katika, kama hoja, kati ya mabano haya, baadhi tabia. 643 00:28:44,860 --> 00:28:48,390 Mimi nina kwenda kupita katika tabia ya i'th ya s kutumia dhana mpya nukuu yetu 644 00:28:48,390 --> 00:28:49,870 kuwashirikisha mabano mraba. 645 00:28:49,870 --> 00:28:53,391 Na kuchukua nadhani, ni nini kurudi thamani ya juu kwa inaonekana kwenda 646 00:28:53,391 --> 00:28:53,890 kuwa? 647 00:28:53,890 --> 00:28:56,460 648 00:28:56,460 --> 00:28:57,770 barua mji mkuu. 649 00:28:57,770 --> 00:28:58,620 barua mji mkuu. 650 00:28:58,620 --> 00:29:02,330 >> Hivyo kama mimi kupita katika lowercase a, hopefully, kwa ufafanuzi wa kwa juu, 651 00:29:02,330 --> 00:29:05,600 ni kwenda na kurudi uppercase A. Vinginevyo, 652 00:29:05,600 --> 00:29:08,590 kama si ya mbili lowercase katika nafasi ya kwanza, mimi tu magazeti nje. 653 00:29:08,590 --> 00:29:10,800 Na hakika, taarifa rafiki ya pili hapa. 654 00:29:10,800 --> 00:29:13,840 Si tu kwa juu lipo, lakini ni ya chini, ambayo 655 00:29:13,840 --> 00:29:16,200 kweli majibu kwamba swali kwa ajili yangu. 656 00:29:16,200 --> 00:29:19,730 >> Sasa mtu aliandika mambo haya, 10s ya miaka iliyopita, unajua nini? 657 00:29:19,730 --> 00:29:23,840 Kutekelezwa kwa juu na ni kupunguza kwa kutumia kanuni kama hii. 658 00:29:23,840 --> 00:29:27,270 Lakini tena, sambamba na wazo hili la abstracting mbali, 659 00:29:27,270 --> 00:29:29,190 aina ya, ngazi ya chini utekelezaji maelezo. 660 00:29:29,190 --> 00:29:32,600 Na kusimama juu ya mabega ya watu ambaye alikuja mbele yetu, kwa kutumia kazi 661 00:29:32,600 --> 00:29:36,300 kama kwa juu na ni ya chini, ambayo ajabu ya kutosha ni nicely 662 00:29:36,300 --> 00:29:40,190 jina lake kwa kusema nini wao kufanya, ni dhana ya ajabu kupitisha. 663 00:29:40,190 --> 00:29:44,040 >> Sasa, ni zinageuka kuwa kama mimi kusoma mtu kwa ukurasa, kusema, kwa juu, 664 00:29:44,040 --> 00:29:45,010 Mimi kujifunza kitu kingine. 665 00:29:45,010 --> 00:29:46,890 Hivyo mtu toupper. 666 00:29:46,890 --> 00:29:48,050 Ni kidogo mno. 667 00:29:48,050 --> 00:29:51,110 Lakini sikia, hapa ni kwamba kutaja ya header faili kwamba mimi wanapaswa kutumia. 668 00:29:51,110 --> 00:29:54,460 Kama kando, kwa sababu hii ni kupotosha, kazi 669 00:29:54,460 --> 00:29:59,070 anatumia ints badala ya chars kwa sababu ya kuangalia makosa. 670 00:29:59,070 --> 00:30:01,260 Lakini tutaweza labda kuja nyuma na kwamba katika siku zijazo. 671 00:30:01,260 --> 00:30:05,910 >> Lakini taarifa, hapa, kwa waumini juu barua c kwa uppercase kama inawezekana. 672 00:30:05,910 --> 00:30:07,674 Hivyo hiyo ni pretty moja kwa moja. 673 00:30:07,674 --> 00:30:09,340 Na sasa hebu kuwa maalum kidogo zaidi. 674 00:30:09,340 --> 00:30:12,750 Hebu tuangalie sehemu ya mtu chini ya ukurasa thamani kurudi. 675 00:30:12,750 --> 00:30:15,420 thamani akarudi ni kwamba wa barua waongofu. 676 00:30:15,420 --> 00:30:18,690 Au c, kama kubadilika haikuwezekana, 677 00:30:18,690 --> 00:30:20,250 ambapo c ni ya awali ya pembejeo. 678 00:30:20,250 --> 00:30:24,140 Ambayo najua kutoka hapa, kutoka hoja ya kwa juu. 679 00:30:24,140 --> 00:30:25,780 >> Hivyo ni takeaway ya hii nini? 680 00:30:25,780 --> 00:30:28,060 thamani akarudi ni kwamba wa barua waongofu, 681 00:30:28,060 --> 00:30:32,110 au c, barua ya awali, kama uongofu hakuwa iwezekanavyo. 682 00:30:32,110 --> 00:30:36,460 Nini kuboresha naweza hiyo kufanya kwa kubuni kanuni wangu? 683 00:30:36,460 --> 00:30:37,146 Yeah? 684 00:30:37,146 --> 00:30:38,810 >> Watazamaji: Unaweza kuondoa mwingine. 685 00:30:38,810 --> 00:30:40,810 DAVID J. Malan: Mimi unaweza kuondoa kingine kauli, 686 00:30:40,810 --> 00:30:42,510 na si tu mwingine taarifa. 687 00:30:42,510 --> 00:30:44,150 >> Watazamaji: Unaweza kuondoa [inaudible]. 688 00:30:44,150 --> 00:30:46,310 >> DAVID J. Malan: Mimi unaweza kuondoa uma nzima 689 00:30:46,310 --> 00:30:48,209 katika barabara, akaonekana na kama mwingine kabisa. 690 00:30:48,209 --> 00:30:50,250 Hivyo kweli, basi mimi kufungua toleo la mwisho la hii, 691 00:30:50,250 --> 00:30:55,540 capitalize-2 na taarifa tu jinsi gani, kama wewe, sexy, kanuni na sasa ni kupata, 692 00:30:55,540 --> 00:31:00,040 katika kwamba nimepata kupunguzwa kutoka kwa baadhi ya saba au hivyo mistari ya nne tu, 693 00:31:00,040 --> 00:31:03,850 utendaji kwamba mimi nia kwa kifupi wito kwa juu, 694 00:31:03,850 --> 00:31:09,410 kupita katika s bracket i, na uchapishaji nje, na placeholder% c, 695 00:31:09,410 --> 00:31:11,090 kwamba tabia fulani. 696 00:31:11,090 --> 00:31:14,560 >> Sasa arguably, kuna mdudu, au angalau hatari ya mdudu, 697 00:31:14,560 --> 00:31:15,350 katika mpango huu. 698 00:31:15,350 --> 00:31:18,200 Hivyo tu kurudi kwa takeaway awali, 699 00:31:18,200 --> 00:31:21,820 kile lazima mimi pengine pia kufanya katika mpango huu kwa kufanya hivyo imara zaidi, 700 00:31:21,820 --> 00:31:24,974 hivyo kwamba hakuna njia hiyo unaweza ajali, hata katika kesi nadra? 701 00:31:24,974 --> 00:31:26,390 Watazamaji: Hakikisha siyo null. 702 00:31:26,390 --> 00:31:28,056 DAVID J. Malan: Hakikisha siyo null. 703 00:31:28,056 --> 00:31:31,030 Hivyo kweli, kufanya hii super sahihi, mimi lazima kufanya kitu kama, 704 00:31:31,030 --> 00:31:35,300 kama s ni si null, basi kwenda mbele na kutekeleza 705 00:31:35,300 --> 00:31:38,470 mistari haya ya kanuni, ambayo Naweza kisha Indent kama kwamba, 706 00:31:38,470 --> 00:31:39,870 na kisha kuweka katika brace yangu wa karibu. 707 00:31:39,870 --> 00:31:41,550 Hivyo nzuri tying pamoja wa mawazo mawili. 708 00:31:41,550 --> 00:31:42,429 Yeah? 709 00:31:42,429 --> 00:31:44,470 Watazamaji: Je, unaweza kutumia a kufanya wakati kitanzi, badala yake? 710 00:31:44,470 --> 00:31:47,270 DAVID J. Malan: Inawezekana Mimi kufanya wakati kitanzi do? 711 00:31:47,270 --> 00:31:50,020 Watazamaji: --you unataka kuhakikisha kwamba wewe kweli [inaudible]. 712 00:31:50,020 --> 00:31:51,728 DAVID J. Malan: Inawezekana matumizi do wakati? 713 00:31:51,728 --> 00:31:52,450 Short jibu, hakuna. 714 00:31:52,450 --> 00:31:54,700 Kwa sababu wewe ni kuhusu kuanzisha kesi nyingine kona. 715 00:31:54,700 --> 00:31:56,660 Kama string ni ya sifuri urefu. 716 00:31:56,660 --> 00:31:59,600 Kama kwa mfano, mimi tu hit Kuingia, bila hata kuandika Zamyla. 717 00:31:59,600 --> 00:32:02,490 Mimi nina kwenda mkono wewe nyuma halisi kamba, kama tutaweza hatimaye kuona, 718 00:32:02,490 --> 00:32:03,780 ambayo ina wahusika sifuri. 719 00:32:03,780 --> 00:32:05,630 Bado kamba, ni tu super short. 720 00:32:05,630 --> 00:32:07,960 Lakini kama wewe kutumia do wakati, wewe ni kwenda upofu 721 00:32:07,960 --> 00:32:10,050 kujaribu kufanya kitu kwa heshima kwa kamba kwamba, 722 00:32:10,050 --> 00:32:12,537 na hakuna kitu kinaendelea kuwa huko. 723 00:32:12,537 --> 00:32:18,607 >> Watazamaji: Naam, kama alivyofanya kufanya [inaudible] wakati s-- 724 00:32:18,607 --> 00:32:21,190 DAVID J. Malan: Oh mimi kuona, kuweka kupata kamba kutoka kwa mtumiaji. 725 00:32:21,190 --> 00:32:23,525 Jibu Hivyo short, wewe inaweza, na kushika kuwalazimisha 726 00:32:23,525 --> 00:32:26,150 yao kukupa kamba hiyo ni short kutosha walionao katika kumbukumbu. 727 00:32:26,150 --> 00:32:26,700 Kabisa. 728 00:32:26,700 --> 00:32:27,630 Mimi tu alichagua si kwa. 729 00:32:27,630 --> 00:32:30,505 Kama hawana nipe kamba mimi wanataka, mimi nina kuacha, mimi nina kutoa up. 730 00:32:30,505 --> 00:32:33,260 Lakini kabisa, kwa ajili hiyo, unaweza kabisa kufanya hivyo. 731 00:32:33,260 --> 00:32:37,500 >> Hivyo header files maktaba kwamba sisi ni sasa ukoo na ni hizi, hapa. 732 00:32:37,500 --> 00:32:41,550 Standard I / O, CS50.h, string.h, ctype.h, na kuna ni kweli, wengine. 733 00:32:41,550 --> 00:32:44,460 Baadhi ya umegundua maktaba math katika math.h. 734 00:32:44,460 --> 00:32:48,200 Lakini ngoja kuanzisha wewe, sasa, kwa rasilimali hii kwamba CS50 wafanyakazi, Davin, 735 00:32:48,200 --> 00:32:50,630 na Rob, na Gabe hasa kuweka pamoja. 736 00:32:50,630 --> 00:32:52,630 Kwamba hivi karibuni kiungo juu ya tovuti shaka ya. 737 00:32:52,630 --> 00:32:54,870 Ni wito CS50 kumbukumbu. 738 00:32:54,870 --> 00:32:58,230 >> Ambayo tu kukupa haraka ladha yake, kazi kama ifuatavyo. 739 00:32:58,230 --> 00:33:00,740 Hebu kwenda reference.cs50.net. 740 00:33:00,740 --> 00:33:02,990 Utaona upande wa kushoto upande orodha balaa 741 00:33:02,990 --> 00:33:04,595 ya kazi ya kwamba kuja na c. 742 00:33:04,595 --> 00:33:07,790 Lakini kama mimi huduma, kwa sasa, juu ya kitu kama strlen, 743 00:33:07,790 --> 00:33:08,746 Siwezi aina yake huko. 744 00:33:08,746 --> 00:33:10,870 Ni filters chini orodha kwa kile tu huduma ya juu. 745 00:33:10,870 --> 00:33:11,940 Mimi nina kwenda bonyeza yake. 746 00:33:11,940 --> 00:33:14,740 Na sasa juu ya kushoto, utaona nini sisi matumaini 747 00:33:14,740 --> 00:33:18,290 ni zaidi moja kwa moja, binadamu kirafiki maelezo ya jinsi ya 748 00:33:18,290 --> 00:33:19,170 kazi hii matendo. 749 00:33:19,170 --> 00:33:20,600 >> Anarudi urefu wa kamba. 750 00:33:20,600 --> 00:33:24,060 Hapa ni synopsis, hapa ni jinsi gani matumizi yake katika suala la header ya faili, 751 00:33:24,060 --> 00:33:27,430 na katika suala la nini kazi inaonekana kama katika suala la hoja yake. 752 00:33:27,430 --> 00:33:30,250 Na kisha hapa, anarudi urefu wa kamba. 753 00:33:30,250 --> 00:33:34,280 Lakini kwa wale wa wewe vizuri zaidi, unaweza kweli click zaidi comfy, 754 00:33:34,280 --> 00:33:37,070 na yaliyomo ya hii ukurasa, sasa, kutakuwa na mabadiliko 755 00:33:37,070 --> 00:33:41,660 kuwa na maadili default ya nini kupata kwa kutumia ukurasa mwanadamu. 756 00:33:41,660 --> 00:33:44,100 >> Kwa maneno mengine, CS50 kumbukumbu ni kurahisisha 757 00:33:44,100 --> 00:33:46,220 ya mtu kurasa na wafanyakazi, kwa ajili ya wanafunzi. 758 00:33:46,220 --> 00:33:49,320 Hasa, wale chini ya starehe na katika kati ya, ili 759 00:33:49,320 --> 00:33:51,660 hawana kujaribu wrap akili yako karibu, kusema ukweli, 760 00:33:51,660 --> 00:33:55,030 baadhi syntax haki cryptic na nyaraka wakati mwingine. 761 00:33:55,030 --> 00:33:57,650 >> Hivyo kuendelea kuwa katika akili katika siku zijazo. 762 00:33:57,650 --> 00:33:59,560 Hivyo hapa, tena, ni Zamyla. 763 00:33:59,560 --> 00:34:03,255 Hebu sasa kuuliza swali kwamba binadamu kidogo zaidi kupatikana. 764 00:34:03,255 --> 00:34:05,380 Shukrani kwa Chang, ambaye imekuwa uchapishaji tembo zaidi 765 00:34:05,380 --> 00:34:07,090 nonstop kwa siku chache zilizopita. 766 00:34:07,090 --> 00:34:09,730 Tuna nafasi ya kutoa angalau mmoja wao mbali. 767 00:34:09,730 --> 00:34:13,239 Kama tunaweza kupata kujitolea moja tu kuja juu hadi kuteka juu ya screen. 768 00:34:13,239 --> 00:34:14,530 Vipi kuhusu hapa? 769 00:34:14,530 --> 00:34:15,340 >> Kuja juu juu. 770 00:34:15,340 --> 00:34:16,720 Jina lako ni nani? 771 00:34:16,720 --> 00:34:17,219 ALEX: Alex. 772 00:34:17,219 --> 00:34:17,760 DAVID J. Malan: Alex. 773 00:34:17,760 --> 00:34:18,259 Wote haki. 774 00:34:18,259 --> 00:34:19,388 Alex, kuja juu up. 775 00:34:19,388 --> 00:34:21,679 Sisi ni juu ya kuona yako mwandiko juu ya screen hapa. 776 00:34:21,679 --> 00:34:24,325 777 00:34:24,325 --> 00:34:25,570 Haki zote, nzuri ya kukutana na wewe. 778 00:34:25,570 --> 00:34:26,429 >> ALEX: Nice wewe kukutana na wewe. 779 00:34:26,429 --> 00:34:27,512 >> DAVID J. Malan: All wa kulia. 780 00:34:27,512 --> 00:34:28,969 Hivyo, zoezi super rahisi. 781 00:34:28,969 --> 00:34:31,440 Bar ni si juu kwa kupata tembo leo. 782 00:34:31,440 --> 00:34:33,439 Wewe ni kucheza nafasi ya GetString. 783 00:34:33,439 --> 00:34:35,980 Na mimi nina kwenda tu kukuambia kamba kwamba wewe wameweza kujipatia. 784 00:34:35,980 --> 00:34:38,080 Na kudhani kwamba, GetString, wamekuwa kuitwa. 785 00:34:38,080 --> 00:34:42,480 Na binadamu, kama mimi, ina typed katika Zamyla, Z-A-M-Y-L-A. 786 00:34:42,480 --> 00:34:45,650 Tu kwenda mbele na kuandika Zamyla juu ya screen kama wewe ingawa waliopata ni 787 00:34:45,650 --> 00:34:47,250 na kuhifadhiwa mahali fulani katika kumbukumbu. 788 00:34:47,250 --> 00:34:52,370 789 00:34:52,370 --> 00:34:55,570 >> Kuondoka chumba kwa nini itakuwa kadhaa words-- mengine ambayo sawa, kuendelea. 790 00:34:55,570 --> 00:34:59,620 >> [Kicheko] 791 00:34:59,620 --> 00:35:00,800 >> Hivyo Zamyla, Excellent. 792 00:35:00,800 --> 00:35:04,880 Hivyo sasa tuseme kwamba wewe, GetString, wameitwa tena. 793 00:35:04,880 --> 00:35:09,350 Na kwa sababu hiyo, mimi kutoa, katika keyboard, na jina la mtu mwingine, Belinda. 794 00:35:09,350 --> 00:35:17,560 795 00:35:17,560 --> 00:35:18,060 Wote haki. 796 00:35:18,060 --> 00:35:22,380 Na sasa wakati mwingine GetString ni kuitwa, mimi aina katika kitu kama Gabe, 797 00:35:22,380 --> 00:35:27,560 G-A-B-E. Wewe ni kweli kuchukua kwa moyo random kupata kumbukumbu. 798 00:35:27,560 --> 00:35:29,631 Ambayo ni kuchora kila kitu kabisa nasibu. 799 00:35:29,631 --> 00:35:30,130 OK. 800 00:35:30,130 --> 00:35:31,104 >> [Kicheko] 801 00:35:31,104 --> 00:35:32,520 ALEX: Sorry handwriting yangu ni mbaya. 802 00:35:32,520 --> 00:35:33,770 DAVID J. Malan: Hapana, hiyo ni sawa. 803 00:35:33,770 --> 00:35:40,480 Na vipi kuhusu Rob, R-O-B. OK. 804 00:35:40,480 --> 00:35:41,020 Good. 805 00:35:41,020 --> 00:35:43,853 Hivyo sikuwa wanatarajia ungependa aina ya kuweka mambo ya nje kwa njia hii. 806 00:35:43,853 --> 00:35:45,020 Lakini tunaweza kufanya kazi hii. 807 00:35:45,020 --> 00:35:48,810 Hivyo ni jinsi gani wewe kwenda juu ya kuwekewa nje chars hizi katika kumbukumbu? 808 00:35:48,810 --> 00:35:51,310 Kwa maneno mengine, kama sisi kufikiri ya hii screen rectangular nyeusi 809 00:35:51,310 --> 00:35:53,550 kama anayewakilisha kompyuta ya RAM, au kumbukumbu. 810 00:35:53,550 --> 00:35:55,850 >> Na kukumbuka kwamba RAM ni tu rundo zima la ka, 811 00:35:55,850 --> 00:35:57,480 na ka ni rundo zima la bits. 812 00:35:57,480 --> 00:35:59,350 Na bits ni kwa namna fulani kutekelezwa, kwa ujumla 813 00:35:59,350 --> 00:36:01,119 na baadhi ya fomu ya umeme katika vifaa. 814 00:36:01,119 --> 00:36:03,160 Hivyo hiyo ni aina ya layering tumekuwa aliyesema kuhusu 815 00:36:03,160 --> 00:36:04,510 na sasa wanaweza kuchukua kwa nafasi. 816 00:36:04,510 --> 00:36:07,020 Jinsi gani wewe kwenda juu ya kuamua wapi kuandika 817 00:36:07,020 --> 00:36:11,634 Rob dhidi ya Gabe dhidi ya Belinda dhidi ya Zamyla? 818 00:36:11,634 --> 00:36:14,020 >> ALEX: mimi tu alifanya hivyo katika kuamuru kwamba wewe aliniambia. 819 00:36:14,020 --> 00:36:15,650 >> DAVID J. Malan: Na kwamba ni kweli. 820 00:36:15,650 --> 00:36:20,100 Lakini nini serikali ambapo wewe kuweka Jina Belinda na jina Gabe ya? 821 00:36:20,100 --> 00:36:20,764 >> ALEX: Hakuna? 822 00:36:20,764 --> 00:36:22,930 DAVID J. Malan: [anacheka] Hivyo kwamba kazi, hiyo faini. 823 00:36:22,930 --> 00:36:25,290 Hivyo kompyuta ni kidogo mzuri zaidi kuliko hiyo. 824 00:36:25,290 --> 00:36:29,000 Na hivyo wakati sisi implement-- kukaa huko kwa tu moment-- wakati sisi kweli 825 00:36:29,000 --> 00:36:31,470 kutekeleza kitu kama GetString katika kompyuta, 826 00:36:31,470 --> 00:36:34,480 Zamyla inaweza kuwa kuweka nje pretty much kama alivyofanya juu ya screen, huko. 827 00:36:34,480 --> 00:36:36,660 >> Na nini ni muhimu kwa taarifa hapa, nini Alex hivyo, 828 00:36:36,660 --> 00:36:40,260 ni kuna aina ya utengenezaji kati ya kila moja ya maneno haya, sawa? 829 00:36:40,260 --> 00:36:46,580 You hakuwa na kuandika Z-A-M-Y-L-A-B-E-L-I-N-D-A-G-A-B-- 830 00:36:46,580 --> 00:36:49,740 kwa maneno mengine, kuna aina fulani wa utengo ambayo inaonekana kuwa, 831 00:36:49,740 --> 00:36:52,370 aina ya, random nafasi kati ya maneno haya mbalimbali. 832 00:36:52,370 --> 00:36:54,120 Lakini hiyo ni nzuri, kwa sababu sisi wanadamu sasa wanaweza 833 00:36:54,120 --> 00:36:56,470 taswira kwamba haya ni nne masharti tofauti. 834 00:36:56,470 --> 00:36:59,540 Siyo mlolongo moja tu ya kura ya wahusika. 835 00:36:59,540 --> 00:37:04,190 Hivyo kompyuta, basi, wakati huo huo, inaweza kuchukua string kama Zamyla, 836 00:37:04,190 --> 00:37:07,220 kuweka kila ya barua hizo ndani ya byte ya kumbukumbu. 837 00:37:07,220 --> 00:37:10,400 Lakini idadi hiyo ni kubwa sana, bila shaka, kuliko wahusika sita. 838 00:37:10,400 --> 00:37:11,690 >> Kuna rundo zima la RAM. 839 00:37:11,690 --> 00:37:15,330 Na hivyo tena, hii gridi ya masanduku ni kwenda 840 00:37:15,330 --> 00:37:17,560 kuwakilisha nini Alex tu alifanya hapa juu ya screen. 841 00:37:17,560 --> 00:37:20,937 Na sasa, Alex, tunaweza kutoa rangi ya bluu au tembo machungwa kutoka Chang. 842 00:37:20,937 --> 00:37:22,270 ALEX: Mimi itabidi kuchukua tembo bluu. 843 00:37:22,270 --> 00:37:23,120 DAVID J. Malan: tembo bluu. 844 00:37:23,120 --> 00:37:25,580 Hivyo duru kubwa ya applause, kama tunaweza, kwa Alex hapa. 845 00:37:25,580 --> 00:37:26,100 >> [Makofi] 846 00:37:26,100 --> 00:37:26,766 >> ALEX: Asante. 847 00:37:26,766 --> 00:37:28,820 DAVID J. Malan: Asante. 848 00:37:28,820 --> 00:37:36,230 Hivyo takeaway ni kwamba, ingawa muundo aina ya iliyopita baada ya muda, hapa 849 00:37:36,230 --> 00:37:40,430 juu ya bodi, kulikuwa na hii utengenezaji wa kati ya masharti mbalimbali 850 00:37:40,430 --> 00:37:42,610 kwamba Alex got kwa ajili yetu. 851 00:37:42,610 --> 00:37:45,230 Sasa kompyuta, kusema ukweli, inaweza kufanya kitu kimoja. 852 00:37:45,230 --> 00:37:48,210 Wangeweza aina ya plop masharti mahali popote katika RAM. 853 00:37:48,210 --> 00:37:50,710 Up hapa, zaidi ya hapa, hapa chini, chini hapa. 854 00:37:50,710 --> 00:37:52,020 >> Wangeweza kufanya hasa kwamba. 855 00:37:52,020 --> 00:37:54,280 Lakini, bila shaka, hiyo ni pengine si mipango bora. 856 00:37:54,280 --> 00:37:54,780 Haki? 857 00:37:54,780 --> 00:37:57,340 Kama mimi naendelea kuuliza Alex kwa kupata majina, pengine yeye d 858 00:37:57,340 --> 00:38:01,370 kuweka baadhi ya zaidi hapa chini, labda up hapa, zaidi ya hapa, zaidi ya hapa, hatimaye 859 00:38:01,370 --> 00:38:02,211 zaidi ya hapa. 860 00:38:02,211 --> 00:38:05,460 Lakini pamoja na kidogo zaidi mipango, kwa hakika, tunaweza kuweka mambo ya nje zaidi cleanly. 861 00:38:05,460 --> 00:38:07,350 Na hakika, kwamba ni nini kompyuta gani. 862 00:38:07,350 --> 00:38:10,720 >> Lakini catch ni kwamba kama string ijayo mimi kupata 863 00:38:10,720 --> 00:38:14,050 baada ya Zamyla ni kitu kama Belinda, 864 00:38:14,050 --> 00:38:17,929 kupendekeza ambapo tupate kuandika barua b kwa heshima na gridi ya taifa hili? 865 00:38:17,929 --> 00:38:18,720 Wapi ungekwenda? 866 00:38:18,720 --> 00:38:21,480 Na haki ya a, chini z, chini a? 867 00:38:21,480 --> 00:38:23,204 Gani silika yako ya kwanza kuwa? 868 00:38:23,204 --> 00:38:24,120 Watazamaji: Chini ya z. 869 00:38:24,120 --> 00:38:25,100 DAVID J. Malan: Hivyo chini z. 870 00:38:25,100 --> 00:38:26,530 Na kwamba ni pretty moja kwa moja, haki? 871 00:38:26,530 --> 00:38:29,321 Ni aina ya nadhifu, ni nini cha kufanya juu ya keyboard wakati sisi hit Enter, 872 00:38:29,321 --> 00:38:31,770 au barua pepe wakati wa kufanya Vitone orodha ya mambo. 873 00:38:31,770 --> 00:38:34,310 Lakini ukweli ni kwamba kompyuta kujaribu kuwa na ufanisi zaidi, 874 00:38:34,310 --> 00:38:37,170 na Cram hakika kama kiasi data katika RAM kama inawezekana, 875 00:38:37,170 --> 00:38:38,890 hivyo kwamba huna kupoteza ka yoyote. 876 00:38:38,890 --> 00:38:41,545 Hivyo kwamba huna kupoteza yoyote screen mali isiyohamishika. 877 00:38:41,545 --> 00:38:44,170 Na tatizo, ingawa, ni kwamba kama sisi literally kuweka barua 878 00:38:44,170 --> 00:38:49,940 b baada ya, jinsi sisi kwenda kujua ambapo jina Zamyla ya mwisho 879 00:38:49,940 --> 00:38:51,840 na jina Belinda inaanza? 880 00:38:51,840 --> 00:38:55,270 Hivyo binadamu tu mapendekezo, vizuri, hit Enter muhimu, kimsingi. 881 00:38:55,270 --> 00:38:56,410 Kuiweka chini chini. 882 00:38:56,410 --> 00:38:59,750 Au hata kama Alex hivyo, tu kuanza kuandika jina ya chini mmoja uliopita, 883 00:38:59,750 --> 00:39:01,583 na chini kwamba mmoja, na kisha chini ya kwamba moja. 884 00:39:01,583 --> 00:39:02,510 Hiyo ni cue Visual. 885 00:39:02,510 --> 00:39:05,960 >> Kompyuta na mwingine cue Visual, lakini ni kidogo zaidi succinct. 886 00:39:05,960 --> 00:39:07,840 Ni tabia hii funky. 887 00:39:07,840 --> 00:39:11,890 Backslash 0, ambayo ni labda kukumbusha ya backslash n, 888 00:39:11,890 --> 00:39:12,640 na kadhalika, sasa. 889 00:39:12,640 --> 00:39:14,120 maalum kutoroka Mwandamano. 890 00:39:14,120 --> 00:39:19,120 Backslash 0 ni njia ya anayewakilisha nane zero bits katika mfululizo. 891 00:39:19,120 --> 00:39:22,000 0000 0000. 892 00:39:22,000 --> 00:39:26,130 >> njia wewe kueleza kwamba si hit idadi sifuri juu ya keyboard yako, 893 00:39:26,130 --> 00:39:28,140 kwa sababu katika ukweli kwamba ni char ASCII. 894 00:39:28,140 --> 00:39:30,990 Inaonekana kama idadi, lakini ni kweli idadi decimal 895 00:39:30,990 --> 00:39:35,910 kwamba inawakilisha mviringo glyph, typeface mduara. 896 00:39:35,910 --> 00:39:38,410 Wakati huo huo, backslash zero maana yake, literally 897 00:39:38,410 --> 00:39:40,700 kuweka nane zero ka hapa kwa ajili yangu. 898 00:39:40,700 --> 00:39:42,136 >> Hivyo hii ni kiasi fulani holela. 899 00:39:42,136 --> 00:39:44,260 Tunaweza tumekuwa kutumika yoyote mfano ya bits, lakini dunia 900 00:39:44,260 --> 00:39:46,610 aliamua baadhi ya miaka iliyopita, kwamba kuwakilisha 901 00:39:46,610 --> 00:39:49,710 mwisho wa kamba katika kumbukumbu, tu ya kuweka rundo zima la zeros. 902 00:39:49,710 --> 00:39:51,000 Kwa sababu tunaweza kugundua kwamba. 903 00:39:51,000 --> 00:39:54,790 Sasa hiyo ina maana kwamba hakuna barua ya alfabeti inaweza kuwakilishwa na zeros. 904 00:39:54,790 --> 00:39:58,480 >> Lakini hiyo ni OK, tumekuwa tayari kuona kwamba sisi ni kutumia 65 juu ya up katika 97 juu ya up. 905 00:39:58,480 --> 00:40:00,290 Sisi hakuwa na kupata mahali popote karibu na zeros wote. 906 00:40:00,290 --> 00:40:03,040 907 00:40:03,040 --> 00:40:06,540 Hivyo Belinda katika kumbukumbu ya kompyuta ni kweli kwenda kwenda hapa. 908 00:40:06,540 --> 00:40:09,764 Nimekuwa inayotolewa katika njano tu kuteka usikivu wetu kwa hilo. 909 00:40:09,764 --> 00:40:11,680 Na taarifa, pia, hii ni kabisa holela. 910 00:40:11,680 --> 00:40:12,680 Nimekuwa inayotolewa ni kama gridi ya taifa. 911 00:40:12,680 --> 00:40:14,460 Kama, RAM ni baadhi tu kitu kimwili. 912 00:40:14,460 --> 00:40:17,300 Ni siyo lazima safu na nguzo, per se. 913 00:40:17,300 --> 00:40:20,490 Ni tu got rundo zima la bytes kutekelezwa katika vifaa kwa namna fulani. 914 00:40:20,490 --> 00:40:22,817 Lakini kama baada ya Belinda mimi typed katika jina Gabe ya, 915 00:40:22,817 --> 00:40:25,650 yeye kwenda kuishia hapa katika kumbukumbu, na kama mimi typed katika jina Daven ya, 916 00:40:25,650 --> 00:40:27,316 kwa mfano, yeye kwenda kuishia hapa. 917 00:40:27,316 --> 00:40:29,310 Na siwezi kuendelea kuandika majina hata zaidi. 918 00:40:29,310 --> 00:40:32,100 >> Kwa bahati mbaya, kama mimi kujaribu kuandika jina super muda mrefu, 919 00:40:32,100 --> 00:40:33,730 Mimi ili hatimaye kukimbia nje ya kumbukumbu. 920 00:40:33,730 --> 00:40:37,810 Katika kesi ambayo, GetString ni kwenda na kurudi null, kama sisi alisema. 921 00:40:37,810 --> 00:40:41,720 Bali nashiriki, angalau katika hili Visual hapa, sisi hakuwa na kupata kabisa kuwa mbali. 922 00:40:41,720 --> 00:40:45,860 >> Sasa nini ni nzuri ni kwamba hii ujumla wazo la kutibu mambo 923 00:40:45,860 --> 00:40:49,720 kama kuwa katika masanduku ni mwakilishi wa hulka ya C 924 00:40:49,720 --> 00:40:52,690 na mengi ya lugha, inayojulikana kama safu. 925 00:40:52,690 --> 00:40:55,490 safu ni aina nyingine ya data. 926 00:40:55,490 --> 00:40:57,380 Ni muundo data, kama wewe. 927 00:40:57,380 --> 00:41:01,160 Muundo kwa maana ya ni kweli, aina ya, kuangalia kama sanduku, angalau 928 00:41:01,160 --> 00:41:02,320 katika macho ya akili yako. 929 00:41:02,320 --> 00:41:09,680 safu ni contiguous mlolongo wa aina kufanana data, 930 00:41:09,680 --> 00:41:11,330 nyuma kwa nyuma kwa nyuma kwa nyuma. 931 00:41:11,330 --> 00:41:14,720 >> Hivyo kamba, katika nyingine maneno, ni safu ya chars. 932 00:41:14,720 --> 00:41:16,120 safu ya wahusika. 933 00:41:16,120 --> 00:41:19,070 Lakini zinageuka unaweza kuwa na arrays ya mashada ya mambo. 934 00:41:19,070 --> 00:41:21,870 Kwa kweli, tunaweza kuweka hata idadi katika safu. 935 00:41:21,870 --> 00:41:23,920 Hivyo namna ambayo sisi ni kwenda kuanza 936 00:41:23,920 --> 00:41:26,590 kutangaza data hii muundo unaojulikana kama safu 937 00:41:26,590 --> 00:41:28,250 pia ni kwenda kutumia mabano mraba. 938 00:41:28,250 --> 00:41:31,500 Lakini haya mabano mraba ni kwenda kuwa na maana tofauti katika muktadha huu. 939 00:41:31,500 --> 00:41:33,450 >> Na hebu angalia ni kama ifuatavyo. 940 00:41:33,450 --> 00:41:36,780 Tuseme kwamba mimi kufunguliwa up faili mpya hapa. 941 00:41:36,780 --> 00:41:38,535 Na mimi kuokoa hii kama ages.c. 942 00:41:38,535 --> 00:41:41,280 943 00:41:41,280 --> 00:41:43,470 Na mimi itabidi kuokoa hii katika folder yangu hapa. 944 00:41:43,470 --> 00:41:46,130 Na sasa mimi nina kwenda mbele na kuanza kuandika kitu 945 00:41:46,130 --> 00:41:53,940 kama ni pamoja na CS50.h, ni pamoja na stdio.h, int kuu utupu. 946 00:41:53,940 --> 00:41:57,370 Na kisha ndani ya hapa, nataka kwa kwanza na int kuitwa umri. 947 00:41:57,370 --> 00:42:01,371 >> Na mimi nina kwenda kutumia kwamba ili kupata int kutoka kwa mtumiaji kwa umri wake. 948 00:42:01,371 --> 00:42:04,620 Lakini mpango huu ni maana ya kutumika na watu mbalimbali, kwa mazingira chochote. 949 00:42:04,620 --> 00:42:05,490 Mimi nimepata line ya watu. 950 00:42:05,490 --> 00:42:08,281 Wote kuwa na aina katika yao umri kwa baadhi labda, mimi sijui, 951 00:42:08,281 --> 00:42:10,530 ushindani, au tukio kwamba wameweza aliwasili kwa. 952 00:42:10,530 --> 00:42:13,030 Hivyo mtu mwingine, mimi haja mwingine kutofautiana. 953 00:42:13,030 --> 00:42:15,790 >> Kwa sababu kama mimi tu kufanya umri anapata GetInt, hiyo ni 954 00:42:15,790 --> 00:42:18,500 kwenda clobber, au overwrite umri wa mtu uliopita. 955 00:42:18,500 --> 00:42:19,760 Hivyo kwamba hakuna nzuri. 956 00:42:19,760 --> 00:42:21,790 Hivyo silika yangu ya kwanza inaweza kuwa, oh, haki ya wote, 957 00:42:21,790 --> 00:42:26,260 kama nataka kupata nyingi ya watu ages-- hebu kuwaita age1 hii, 958 00:42:26,260 --> 00:42:31,280 int age2 anapata int, int age3 anapata GetInt. 959 00:42:31,280 --> 00:42:35,340 Na sasa mimi nina kwenda kutumia baadhi pseudocode code hapa. 960 00:42:35,340 --> 00:42:37,679 >> Kufanya kitu kwa wale idadi. 961 00:42:37,679 --> 00:42:40,470 Sisi itabidi kuondoka kwa siku nyingine nini sisi ni kufanya huko, kwa sababu sisi tu 962 00:42:40,470 --> 00:42:44,200 huduma kwa wakati kuhusu age1, age2, age3. 963 00:42:44,200 --> 00:42:46,450 Kwa bahati mbaya, mara moja mimi kukusanya mpango huu 964 00:42:46,450 --> 00:42:51,140 na kuiweka mbele ya watumiaji halisi, nini kubuni kimsingi maskini 965 00:42:51,140 --> 00:42:53,890 uamuzi mimi wanaonekana kuwa alifanya? 966 00:42:53,890 --> 00:42:54,624 Yeah? 967 00:42:54,624 --> 00:42:55,499 Watazamaji: [inaudible] 968 00:42:55,499 --> 00:42:58,071 969 00:42:58,071 --> 00:42:59,820 DAVID J. Malan: Yeah, Mimi si hata alijaribu 970 00:42:59,820 --> 00:43:02,028 kufikiri umri jinsi wengi Je, mimi kwa kweli huduma ya juu? 971 00:43:02,028 --> 00:43:05,380 Kama mimi na watu wachache kuliko tatu hapa, na umri kwa hiyo chini ya tatu, 972 00:43:05,380 --> 00:43:07,260 Mimi bado upofu wanatarajia tatu. 973 00:43:07,260 --> 00:43:08,720 Hasha watu wanne kuonyesha up. 974 00:43:08,720 --> 00:43:10,990 Mpango wangu tu si hata msaada wao. 975 00:43:10,990 --> 00:43:13,280 >> Na hivyo hii, kwa muda mrefu hadithi short, ni si tabia nzuri. 976 00:43:13,280 --> 00:43:13,780 Haki? 977 00:43:13,780 --> 00:43:16,530 Mimi nilikuwa kimsingi kuiga na pasting code tweaking na tu 978 00:43:16,530 --> 00:43:17,430 variable majina. 979 00:43:17,430 --> 00:43:22,410 Na, mungu wangu, kama alikuwa na, na si watatu milele, lakini 10, au 100, au hata 6500 980 00:43:22,410 --> 00:43:23,820 wanafunzi wa vyuo vikuu, kwa mfano. 981 00:43:23,820 --> 00:43:26,950 Hii si kwenda kuwa hasa code kifahari, au endelevu. 982 00:43:26,950 --> 00:43:29,200 Wewe ni kwenda kuwa na kuandika upya mpango kila wakati 983 00:43:29,200 --> 00:43:30,760 namba yako ya mabadiliko watu. 984 00:43:30,760 --> 00:43:35,090 >> Hivyo nashiriki, katika halisi wetu ages.c faili kwa ajili ya leo, 985 00:43:35,090 --> 00:43:36,970 tuna ufumbuzi zaidi wajanja. 986 00:43:36,970 --> 00:43:39,800 Kwanza, mimi nina kwenda kukopa kujenga tumekuwa kutumika mara chache, 987 00:43:39,800 --> 00:43:43,744 kufanya hivyo kitanzi wakati, ili kupata idadi ya watu katika chumba. 988 00:43:43,744 --> 00:43:46,910 Mimi tu kwenda bemba user, tena na tena, mpaka yeye au yeye anitiaye 989 00:43:46,910 --> 00:43:49,260 thamani ya n kwamba ni integer chanya. 990 00:43:49,260 --> 00:43:51,590 >> Mimi naweza kuwa kutumika, mwisho wakati ya kupata chanya int. 991 00:43:51,590 --> 00:43:53,720 Lakini hatuna kwamba kwa kweli, hivyo nilikwenda mbele 992 00:43:53,720 --> 00:43:55,660 na re kutekelezwa wazo hili. 993 00:43:55,660 --> 00:43:58,410 Sasa hapa chini, hii ni hila mpya. 994 00:43:58,410 --> 00:44:02,260 Katika line 27, kama comments katika line 26 unaonyesha, 995 00:44:02,260 --> 00:44:05,180 kutangaza safu katika ambayo kuhifadhi umri ya kila mtu. 996 00:44:05,180 --> 00:44:09,320 >> Hivyo kama unataka kupata, si moja int, si ints mbili, lakini rundo zima la ints. 997 00:44:09,320 --> 00:44:13,800 Hasa n integers, walikuwa n nguvu kuwa tatu, inaweza kuwa 100, inaweza kuwa 1,000. 998 00:44:13,800 --> 00:44:17,570 syntax, kabisa tu, ni kwa kusema, nini data aina gani unataka? 999 00:44:17,570 --> 00:44:19,620 Je, unataka simu kwamba chunk ya kumbukumbu? 1000 00:44:19,620 --> 00:44:23,530 Je, unataka simu gridi ya taifa kwamba inaonekana kama hii pictorially? 1001 00:44:23,530 --> 00:44:27,700 >> Na katika mabano hapa, unaweza kusema jinsi kubwa unataka safu kuwa. 1002 00:44:27,700 --> 00:44:30,450 Na hivyo awali, wakati mimi alisema syntax ni tofauti kidogo hapa, 1003 00:44:30,450 --> 00:44:33,614 bado tuko kutumia mabano mraba, lakini wakati mimi nina kutangaza safu, 1004 00:44:33,614 --> 00:44:35,530 simu ndani ya mabano mraba njia 1005 00:44:35,530 --> 00:44:37,610 jinsi kubwa unataka safu kuwa. 1006 00:44:37,610 --> 00:44:42,490 >> Kwa upande mwingine, wakati sisi walikuwa kutumia s bracket i wakati iliyopita, s, kamba, 1007 00:44:42,490 --> 00:44:46,820 ni kweli safu ya chars, lakini wakati wewe ni si kutangaza variable, 1008 00:44:46,820 --> 00:44:49,760 kama na hii keyword hapa, wewe ni tu kupata 1009 00:44:49,760 --> 00:44:54,280 index maalum, maalum kipengele na kwamba safu. 1010 00:44:54,280 --> 00:44:57,090 Mara baada ya tunajua kwamba, wengine hii ni moja kwa moja. 1011 00:44:57,090 --> 00:45:00,765 Kama mimi nina mpya kwanza kwenda magazeti nje nini umri wa mtu simu i. 1012 00:45:00,765 --> 00:45:03,890 Ambapo mimi tu kusema mtu namba moja, mtu namba mbili, mtu namba tatu. 1013 00:45:03,890 --> 00:45:06,306 >> Na mimi nina kufanya tu hesabu, ili kama watu wa kawaida, 1014 00:45:06,306 --> 00:45:09,030 sisi kuhesabu kutoka moja kwa ajili ya hii mpango, na si kutoka sifuri. 1015 00:45:09,030 --> 00:45:13,620 Kisha mimi wito GetInt, lakini mimi kuhifadhi jibu katika umri bracket i. 1016 00:45:13,620 --> 00:45:16,610 Ambayo ni umri i'th katika safu. 1017 00:45:16,610 --> 00:45:21,640 Hivyo ambapo mara ya mwisho tulikuwa kutibu masanduku hayo kama chars kwa jina Zamyla ya, 1018 00:45:21,640 --> 00:45:22,490 na wengine. 1019 00:45:22,490 --> 00:45:26,530 Sasa, masanduku hayo ya kuwakilisha Bits 32, au ka nne 1020 00:45:26,530 --> 00:45:29,510 katika ambayo tunaweza kuhifadhi int, int, int. 1021 00:45:29,510 --> 00:45:31,890 Yote ambayo, tena, ni data aina moja. 1022 00:45:31,890 --> 00:45:33,890 >> Sasa mimi kufanya kitu silly, kama wakati hupita, tu 1023 00:45:33,890 --> 00:45:35,510 kuhalalisha kuandika mpango huu. 1024 00:45:35,510 --> 00:45:40,050 Na kisha chini hapa, mimi tena iterate juu ya safu akisema mwaka kuanzia sasa, 1025 00:45:40,050 --> 00:45:43,090 mtu mapenzi ya simu moja kuwa na umri wa miaka kitu. 1026 00:45:43,090 --> 00:45:45,010 Na kufikiri kwamba math-- I mean, hii 1027 00:45:45,010 --> 00:45:49,260 si sana ngumu arithmetic-- I just kuongeza moja na umri wao. 1028 00:45:49,260 --> 00:45:51,240 Tu kuonyesha, tena, hii. 1029 00:45:51,240 --> 00:45:57,910 >> Kama tu naweza index ndani ya kamba, s, hivyo unaweza I index katika safu ya milele, 1030 00:45:57,910 --> 00:45:59,950 kama kwamba kuna. 1031 00:45:59,950 --> 00:46:03,340 Hivyo ambapo ni hii kwenda kuwa na kuchukua yetu? 1032 00:46:03,340 --> 00:46:07,070 Hivyo tutaona, hatimaye, mambo kadhaa katika siku zijazo. 1033 00:46:07,070 --> 00:46:09,510 Moja, wakati huu wote, wakati kuandika mipango yako mwenyewe, 1034 00:46:09,510 --> 00:46:11,239 kama Mario, tamaa, mikopo. 1035 00:46:11,239 --> 00:46:13,780 Tumekuwa kuandika jina la mpango na kupiga kuingia. 1036 00:46:13,780 --> 00:46:15,610 Na kisha kupata pembejeo mtumiaji. 1037 00:46:15,610 --> 00:46:18,137 >> Pamoja na GetString, GetInt, getLongLong, au kama. 1038 00:46:18,137 --> 00:46:20,720 Lakini zinageuka kuwa C inasaidia kitu kinachoitwa mstari amri 1039 00:46:20,720 --> 00:46:25,740 hoja, ambayo ni kwenda hebu kweli kupata maneno kwamba aina, 1040 00:46:25,740 --> 00:46:28,570 katika haraka blinking, baada ya jina mpango wako. 1041 00:46:28,570 --> 00:46:31,430 >> Hivyo katika siku zijazo, wewe wanaweza aina ya kitu kama Kaisari, 1042 00:46:31,430 --> 00:46:34,950 au ./caesar namba 13, baada ya hapo. 1043 00:46:34,950 --> 00:46:36,070 Tutaweza kuona jinsi kwamba kazi. 1044 00:46:36,070 --> 00:46:37,550 Kwa sababu kwa kweli, katika tatizo kuweka mbili, sisi ni 1045 00:46:37,550 --> 00:46:39,383 kwenda kuanzisha wewe kwa kitu kidogo 1046 00:46:39,383 --> 00:46:42,360 kukumbusha ya Ralphie ya changamoto ya awali ya masomo ya kutengeneza ramani. 1047 00:46:42,360 --> 00:46:43,970 sanaa ya scrambling habari. 1048 00:46:43,970 --> 00:46:46,660 Hii, kwa kweli, ni sana reminiscent ya nini Ralphie alivyofanya. 1049 00:46:46,660 --> 00:46:51,380 >> Huu ni mfano wa encryption algorithm kuitwa ROT13, R-O-T 13. 1050 00:46:51,380 --> 00:46:54,910 Ambayo kwa kifupi maana mzunguko barua katika alfabeti 13 maeneo. 1051 00:46:54,910 --> 00:46:58,309 Na kama wewe kufanya hivyo, utaona sasa ni nini, labda, maneno ukoo. 1052 00:46:58,309 --> 00:47:01,100 Lakini njia sisi ni kwenda kutumia hii, hatimaye, ni zaidi kwa ujumla. 1053 00:47:01,100 --> 00:47:04,390 >> Katika P kuweka mbili, katika toleo la kawaida, utasikia kutekeleza michache ya ciphers, 1054 00:47:04,390 --> 00:47:06,720 mtu mmoja aitwaye Kaisari, na mtu mmoja aitwaye Vigenere. 1055 00:47:06,720 --> 00:47:10,090 Wote wawili ni mzunguko ciphers, katika kwamba kwa namna fulani wewe 1056 00:47:10,090 --> 00:47:11,826 kugeuka barua moja katika barua tofauti. 1057 00:47:11,826 --> 00:47:12,950 Na Kaisari ni super rahisi. 1058 00:47:12,950 --> 00:47:16,220 Kuongeza moja, unaweza kuongeza 13, au baadhi ya idadi hadi 26. 1059 00:47:16,220 --> 00:47:19,570 Vigenere gani kwamba juu ya kwa barua ya msingi. 1060 00:47:19,570 --> 00:47:22,140 Hivyo Vigenere, kama utaona katika spec, ni salama zaidi. 1061 00:47:22,140 --> 00:47:24,973 >> Lakini mwishoni mwa siku gani wewe utakuwa na kutekeleza na P kuweka mbili, 1062 00:47:24,973 --> 00:47:29,050 ni kwamba muhimu kwamba matumizi ya wote wawili kwa encryption na decryption. 1063 00:47:29,050 --> 00:47:32,160 Akizungumzia mchakato wa kumfanya Nakala wazi, baadhi ujumbe wa awali, 1064 00:47:32,160 --> 00:47:34,490 ndani ya Cypher asilia, ambayo ni kitu encrypted. 1065 00:47:34,490 --> 00:47:36,220 Na kisha decrypting tena. 1066 00:47:36,220 --> 00:47:38,119 >> Katika hacker toleo, wakati huo huo, wewe utakuwa na 1067 00:47:38,119 --> 00:47:40,660 kazi na kitu sawa katika roho, ambapo tutaweza kukupa 1068 00:47:40,660 --> 00:47:44,610 file, kutoka kawaida Linux, au Mac, Unix au kompyuta iitwayo Etsy 1069 00:47:44,610 --> 00:47:47,800 password, ambayo ina zima rundo la usernames na nywila. 1070 00:47:47,800 --> 00:47:50,932 Na nywila wale wana kila wamekuwa encrypted, au heshi, 1071 00:47:50,932 --> 00:47:53,140 hivyo kusema, vizuri zaidi kama utaona katika spec. 1072 00:47:53,140 --> 00:47:57,090 >> Na hacker toleo changamoto yenu kwa kuwa na pembejeo kama hii, 1073 00:47:57,090 --> 00:47:58,800 na ngozi password. 1074 00:47:58,800 --> 00:48:02,590 Hiyo ni, kuhesabia nje nini password ya binadamu kweli alikuwa. 1075 00:48:02,590 --> 00:48:05,570 Kwa sababu, kwa kweli, nywila ni kwa ujumla si kuhifadhiwa katika wazi, 1076 00:48:05,570 --> 00:48:08,260 na kwa ujumla nywila lazima kuwa vigumu nadhani. 1077 00:48:08,260 --> 00:48:09,610 Hiyo si mara nyingi kesi. 1078 00:48:09,610 --> 00:48:12,110 >> Na nini Nilidhani tunatarajia kufanya ni kuhitimisha kwa dakika kadhaa 1079 00:48:12,110 --> 00:48:15,160 mtazamo saa hasa maskini uchaguzi wa nywila 1080 00:48:15,160 --> 00:48:17,260 kutoka katika filamu unaweza kukumbuka fondly. 1081 00:48:17,260 --> 00:48:18,915 Na kama si, unapaswa kodi. 1082 00:48:18,915 --> 00:48:20,070 >> [VIDEO avspelning] 1083 00:48:20,070 --> 00:48:22,320 >> -Helmet, Wewe fiend, nini kinaendelea? 1084 00:48:22,320 --> 00:48:24,240 Unafanya nini kwa binti yangu? 1085 00:48:24,240 --> 00:48:28,010 >> -Permit Yangu na kuanzisha kipaji vijana plastiki upasuaji, 1086 00:48:28,010 --> 00:48:30,010 Daktari Phillip Schlotkin. 1087 00:48:30,010 --> 00:48:35,020 kubwa pua kazi mtu katika ulimwengu mzima na Beverly Hills. 1088 00:48:35,020 --> 00:48:36,140 >> -Wako Highness. 1089 00:48:36,140 --> 00:48:36,820 >> -Nose Kazi? 1090 00:48:36,820 --> 00:48:37,700 Sielewi. 1091 00:48:37,700 --> 00:48:39,070 Yeye tayari alikuwa na pua kazi. 1092 00:48:39,070 --> 00:48:40,800 Ilikuwa yake tamu 16 sasa. 1093 00:48:40,800 --> 00:48:42,590 >> -Hakuna, Ni si nini unafikiri. 1094 00:48:42,590 --> 00:48:44,490 Ni sana, mbaya sana. 1095 00:48:44,490 --> 00:48:48,160 Kama huna nipe mchanganyiko kwa ngao hewa, 1096 00:48:48,160 --> 00:48:52,748 daktari Schlotkin nitakupa yako binti nyuma pua yake ya zamani. 1097 00:48:52,748 --> 00:48:53,748 - [Gasps] Nooooooooooooo. 1098 00:48:53,748 --> 00:48:57,684 1099 00:48:57,684 --> 00:48:59,652 Wapi kupata hiyo? 1100 00:48:59,652 --> 00:49:00,640 >> -Zote Haki. 1101 00:49:00,640 --> 00:49:02,506 Mimi nitakuambia, mimi nitakuambia. 1102 00:49:02,506 --> 00:49:03,498 >> -Hakuna, Daddy, hakuna. 1103 00:49:03,498 --> 00:49:04,490 Lazima si. 1104 00:49:04,490 --> 00:49:06,090 >> -You're Haki mpenzi wangu. 1105 00:49:06,090 --> 00:49:07,390 Mimi itabidi miss pua yako mpya. 1106 00:49:07,390 --> 00:49:10,990 Lakini mimi si kuwaambia mchanganyiko bila kujali. 1107 00:49:10,990 --> 00:49:12,450 >> -Very Vizuri. 1108 00:49:12,450 --> 00:49:14,830 Daktari Schlotkin, kufanya mbaya yako. 1109 00:49:14,830 --> 00:49:15,744 >> -My Radhi. 1110 00:49:15,744 --> 00:49:19,860 1111 00:49:19,860 --> 00:49:20,800 >> -Hakuna! 1112 00:49:20,800 --> 00:49:22,780 Ngoja, ngoja. 1113 00:49:22,780 --> 00:49:24,000 Mimi nitakuambia. 1114 00:49:24,000 --> 00:49:25,830 Mimi nitakuambia. 1115 00:49:25,830 --> 00:49:28,270 >> -I Alijua ingekuwa kazi. 1116 00:49:28,270 --> 00:49:31,390 Haki zote, unipe. 1117 00:49:31,390 --> 00:49:36,220 >> -The Macho ni moja. 1118 00:49:36,220 --> 00:49:36,740 >> -One. 1119 00:49:36,740 --> 00:49:37,473 >> -One. 1120 00:49:37,473 --> 00:49:37,972 -Two. 1121 00:49:37,972 --> 00:49:38,471 -Two. 1122 00:49:38,471 --> 00:49:39,800 -Two. 1123 00:49:39,800 --> 00:49:40,300 Na tatu. 1124 00:49:40,300 --> 00:49:40,800 Na tatu. 1125 00:49:40,800 --> 00:49:41,800 Na tatu. 1126 00:49:41,800 --> 00:49:42,300 -Four. 1127 00:49:42,300 --> 00:49:42,800 -Four. 1128 00:49:42,800 --> 00:49:44,707 -Four. 1129 00:49:44,707 --> 00:49:45,521 -Five. 1130 00:49:45,521 --> 00:49:46,430 -Five. 1131 00:49:46,430 --> 00:49:47,930 -Five. 1132 00:49:47,930 --> 00:49:53,480 -Basi Macho ni moja, mbili, tatu, nne, tano. 1133 00:49:53,480 --> 00:49:56,140 Hiyo ni stupidest mchanganyiko Ninayosikia katika maisha yangu. 1134 00:49:56,140 --> 00:49:58,640 Hiyo ni aina ya kitu an idiot ingekuwa juu ya mizigo yake. 1135 00:49:58,640 --> 00:50:00,000 >> -Thank Wewe, ukuu wako. 1136 00:50:00,000 --> 00:50:01,340 >> [Kijijini Clicks] 1137 00:50:01,340 --> 00:50:02,450 >> -Nini Ulifanya nini? 1138 00:50:02,450 --> 00:50:03,800 >> -I Akageuka mbali ukuta. 1139 00:50:03,800 --> 00:50:05,010 >> -Hakuna, Wewe alifanya si, wewe akageuka mbali movie nzima. 1140 00:50:05,010 --> 00:50:06,220 >> -I Must've taabu kifungo vibaya. 1141 00:50:06,220 --> 00:50:07,064 >> -Naam, Kuiweka nyuma juu! 1142 00:50:07,064 --> 00:50:07,910 Weka movie nyuma juu! 1143 00:50:07,910 --> 00:50:08,300 >> -Yes, Bwana! 1144 00:50:08,300 --> 00:50:08,799 Naam, bwana. 1145 00:50:08,799 --> 00:50:09,660 -Let Ya kwenda, Arnold. 1146 00:50:09,660 --> 00:50:10,450 Haya, Gretchen. 1147 00:50:10,450 --> 00:50:12,533 Bila shaka unajua mimi itabidi kuwa na muswada wewe kwa hili. 1148 00:50:12,533 --> 00:50:16,720 1149 00:50:16,720 --> 00:50:17,220 -Naam? 1150 00:50:17,220 --> 00:50:17,802 Je, kazi? 1151 00:50:17,802 --> 00:50:18,510 Wapi mfalme? 1152 00:50:18,510 --> 00:50:20,218 >> -Ni Kazi, bwana, sisi kuwa na mchanganyiko. 1153 00:50:20,218 --> 00:50:20,740 -Mkuu. 1154 00:50:20,740 --> 00:50:24,810 Sasa tunaweza kuchukua kila pumzi ya mwisho ya hewa safi kutoka sayari Druidia. 1155 00:50:24,810 --> 00:50:25,890 Nini mchanganyiko? 1156 00:50:25,890 --> 00:50:28,155 >> -One, Mbili, tatu, nne, tano. 1157 00:50:28,155 --> 00:50:29,890 >> -One, Mbili, tatu, nne, tano? 1158 00:50:29,890 --> 00:50:30,390 -Yes. 1159 00:50:30,390 --> 00:50:31,110 -Kwamba Ajabu. 1160 00:50:31,110 --> 00:50:34,550 Mimi nimepata huo mchanganyiko juu ya mizigo yangu. 1161 00:50:34,550 --> 00:50:37,160 Kuandaa Spaceball 1 kwa kuondoka haraka. 1162 00:50:37,160 --> 00:50:38,160 >> -Yes, Mheshimiwa. 1163 00:50:38,160 --> 00:50:40,745 >> -Na Mabadiliko mchanganyiko juu ya mizigo yangu. 1164 00:50:40,745 --> 00:50:41,578 [DOOR KUFUNGA SOUND] 1165 00:50:41,578 --> 00:50:42,064 [Jela ya milango kupiga kofia] 1166 00:50:42,064 --> 00:50:42,550 -Ahh. 1167 00:50:42,550 --> 00:50:43,383 [END video avspelning] 1168 00:50:43,383 --> 00:50:46,700 DAVID J. Malan: Hiyo ni kwa CS50, tutaweza kuona wewe wiki ijayo. 1169 00:50:46,700 --> 00:50:49,883 NARRATOR: Na sasa, Deep Mawazo, na Daven Farnham. 1170 00:50:49,883 --> 00:50:53,160 1171 00:50:53,160 --> 00:50:55,860 >> DAVEN FARNHAM: CODING katika C ni vigumu sana kuliko Scratch. 1172 00:50:55,860 --> 00:50:57,320 printf, Scratch ilikuwa ni uongo. 1173 00:50:57,320 --> 00:50:59,930 1174 00:50:59,930 --> 00:51:01,430 >> [Kicheko soundbite] 1175 00:51:01,430 --> 00:51:02,486