1 00:00:00,000 --> 00:00:01,940 [Powered by Google Translate] [Walkthrough - Tatizo Set 2] 2 00:00:01,940 --> 00:00:04,130 [Zamyla Chan - Chuo Kikuu cha Harvard] 3 00:00:05,170 --> 00:00:07,490 [Hii ni CS50. CS50.TV] 4 00:00:07,490 --> 00:00:10,750 Wote haki. Hello, kila mtu, na kuwakaribisha kwa walkthrough 2. 5 00:00:10,750 --> 00:00:14,330 Kwanza, nataka kumpongeza wewe kwa ajili ya kumaliza pset 1. 6 00:00:14,330 --> 00:00:18,140 Najua kwamba inaweza kuwa kidogo ngumu kwa baadhi yenu, 7 00:00:18,140 --> 00:00:20,460 wangeweza kompyuta yako kwanza mpango kwamba aliandika, 8 00:00:20,460 --> 00:00:24,500 lakini kumbuka tu kwamba mwishoni mwa huu, wakati wewe kuangalia nyuma katika mwisho wa muhula, 9 00:00:24,500 --> 00:00:29,820 utasikia kuangalia pset 1 na itabidi kusema, "Hey, mimi wangefanya kwamba katika dakika 5." 10 00:00:29,820 --> 00:00:35,700 Basi jua na imani kwamba katika mwisho wa hii wewe utakuwa dhahiri kupata pset 1 rahisi kabisa. 11 00:00:35,700 --> 00:00:40,640 Lakini kwa sasa ni accomplishment kubwa, na pongezi kwa ajili ya kupata kufanyika. 12 00:00:40,640 --> 00:00:44,010 Sasa, pia kumbuka haraka kabla ya sisi kupata katika nyama ya walkthrough. 13 00:00:44,010 --> 00:00:48,340 Mimi nataka tu kufanya note haraka kwamba mimi wakati mwingine si muda wa kutosha 14 00:00:48,340 --> 00:00:52,500 wakati walkthroughs kupitia kila njia moja ya kufanya seti tatizo 15 00:00:52,500 --> 00:00:56,140 na badala tu labda kuzingatia 1 au 2 aina ya utekelezaji, 16 00:00:56,140 --> 00:00:57,750 njia ambazo unaweza kufanya. 17 00:00:57,750 --> 00:01:01,970 Lakini kwamba si kusema kwamba wewe ni haramu kutoka kufanya hivyo kwa njia nyingine. 18 00:01:01,970 --> 00:01:05,980 Kuna mara nyingi, kama na sayansi ya kompyuta, njia mbalimbali za kufanya mambo, 19 00:01:05,980 --> 00:01:12,190 na hivyo dhahiri kujisikia huru kutumia aina mbalimbali za ufumbuzi kuliko nipate kuwasilishwa. 20 00:01:12,190 --> 00:01:14,520 [Pset 2: Crypto - Zamyla Chan - zamyla@cs50.net] 21 00:01:14,520 --> 00:01:17,160 [Pset2 - 0. Sehemu ya Maswali - 1. Caesar - 2. Vigenere] 22 00:01:17,160 --> 00:01:20,650 Wote haki. Hivyo tatizo kuweka 2: Crypto ni moja ya kujifurahisha. 23 00:01:20,650 --> 00:01:24,500 Tena, kwa pset kila itabidi kuanza na sehemu ya maswali 24 00:01:24,500 --> 00:01:29,600 ambayo inaenda kuwa uliofanywa katika sehemu yako na wenzako kupewa mafundisho. 25 00:01:29,600 --> 00:01:31,670 Sisi si kwenda na kwenda kwa njia hizi juu ya walkthrough, 26 00:01:31,670 --> 00:01:35,100 lakini wao dhahiri kusaidia kukamilisha pset. 27 00:01:35,100 --> 00:01:38,100 Hivyo sehemu ya kwanza ya kuweka tatizo ni Kaisari. 28 00:01:38,100 --> 00:01:43,470 Na hivyo katika Kaisari mtu atapita wewe muhimu na integer, 29 00:01:43,470 --> 00:01:48,420 na utakuwa encrypt kamba ya maandishi kwamba wao kutoa 30 00:01:48,420 --> 00:01:50,670 na kuwapa nyuma kitu uliosimbwa. 31 00:01:50,670 --> 00:01:56,050 Kama mtu yeyote watched Story Krismasi, kuna mfano wa kwamba kuna. 32 00:01:56,050 --> 00:01:59,090 Kisha sehemu ya pili ya kuweka tatizo ni Vigenere, 33 00:01:59,090 --> 00:02:01,790 ambayo ni ya juu zaidi encryption mbinu. 34 00:02:01,790 --> 00:02:05,640 Na hivyo tunakwenda encipher kipande cha maandishi, 35 00:02:05,640 --> 00:02:09,600 ila badala tu na integer moja, sisi ni kweli kwenda encode ni 36 00:02:09,600 --> 00:02:13,340 na Keyword kwamba mtumiaji atatupatia. 37 00:02:16,270 --> 00:02:22,090 Sawa, hivyo chombo kwanza katika leo toolbox ni kweli kwenda kuwa uppdatering appliance. 38 00:02:22,090 --> 00:02:26,430 Juu ya bodi ya majadiliano tunataka kuona vitu kama, "Kwa nini si kazi hii?" 39 00:02:26,430 --> 00:02:28,110 "Kwa nini si Kuwasilisha 50 kazi?" 40 00:02:28,110 --> 00:02:31,830 na mara nyingi ufumbuzi ni kweli tu kwa update appliance yako. 41 00:02:31,830 --> 00:02:36,730 Na hivyo kama wewe kukimbia tu katika dirisha terminal katika Sudo appliance yako yum-y - 42 00:02:36,730 --> 00:02:40,040 hiyo ni bendera ya kusema ndiyo, update kila kitu - update, 43 00:02:40,040 --> 00:02:42,280 kisha appliance wako update kama haja kuwa. 44 00:02:42,280 --> 00:02:46,960 Na haina madhara kama tayari ni saa toleo ya hivi karibuni zaidi ya appliance. 45 00:02:46,960 --> 00:02:51,280 Basi itakuwa tu kusema hakuna masasisho mapya yanapatikana na unaweza kuendelea kufanya kazi pamoja. 46 00:02:51,280 --> 00:02:55,800 Lakini hii ni nzuri na nitafanya hata kila wakati kwamba kufungua appliance 47 00:02:55,800 --> 00:02:57,140 kwa sababu sisi ni bado sana - 48 00:02:57,140 --> 00:03:00,320 wakati mwingine kama sisi kuja katika mdudu - fixing katika appliance. 49 00:03:00,320 --> 00:03:03,180 Hivyo kuhakikisha kwamba una toleo ya hivi karibuni zaidi ya appliance 50 00:03:03,180 --> 00:03:07,710 na kukimbia kwamba update huko. 51 00:03:07,710 --> 00:03:14,360 Wote haki. Hivyo tangu sisi ni kushughulika na barua na kubadilisha, enciphering mambo, 52 00:03:14,360 --> 00:03:20,410 tunakwenda kweli unataka kuwa bora na marafiki pamoja na chati yetu ASCII. 53 00:03:20,410 --> 00:03:24,350 Kuna wale wengi online, kama wewe kupata. Labda hata kufanya yako mwenyewe. 54 00:03:24,350 --> 00:03:29,950 Kimsingi, kwa kila barua na kila idadi na kila tabia 55 00:03:29,950 --> 00:03:32,210 kuna idadi kuhusishwa na wao, 56 00:03:32,210 --> 00:03:38,670 na hivyo ni vizuri kuona maadili yao ASCII sambamba barua halisi. 57 00:03:38,670 --> 00:03:42,310 Hiyo dhahiri kukusaidia katika kuweka tatizo. 58 00:03:42,310 --> 00:03:45,750 Jambo moja kwamba kweli imenisaidia katika kuweka tatizo hili lilikuwa kweli magazeti ni nje, 59 00:03:45,750 --> 00:03:48,380 na kama mimi alikuwa anaenda kwa njia ya, mimi ingekuwa kweli kuteka juu yake, 60 00:03:48,380 --> 00:03:51,150 kuandika, "Kama hii ina kwenda huko, basi ..." 61 00:03:51,150 --> 00:03:55,270 Aina ya kuteka juu yake na alama yake juu, kuwa bora na marafiki pamoja na meza yako ASCII. 62 00:03:57,240 --> 00:04:00,750 Basi tuna chache zana nyingine tulizonazo. 63 00:04:00,750 --> 00:04:03,750 Hii wakati badala ya kweli uvuvio mtumiaji kwa ajili ya wote ya pembejeo zao 64 00:04:03,750 --> 00:04:05,230 tunakwenda kufanya mchanganyiko. 65 00:04:05,230 --> 00:04:06,880 Sisi ni kwenda kuwashawishi kwa ajili ya pembejeo baadhi, 66 00:04:06,880 --> 00:04:11,350 lakini sisi ni pia kwenda tu kutumia hoja mstari amri. 67 00:04:11,350 --> 00:04:15,600 Basi walipo kuendesha programu zao, kwa kawaida unaweza kusema /. Hello, kwa mfano, 68 00:04:15,600 --> 00:04:17,310 kama mpango wako ulikuwa hello.c. 69 00:04:17,310 --> 00:04:22,500 Lakini wakati huu badala ya kusema tu kwamba, wanaweza kuweka maneno hoja, baadaye. 70 00:04:22,500 --> 00:04:27,210 Na hivyo sisi ni kwenda kutumia chochote kupita katika kwetu kama mchango wao pia, 71 00:04:27,210 --> 00:04:31,720 hivyo kusonga zaidi tu uvuvio kwa integer lakini pia kutumia hoja mstari amri. 72 00:04:31,720 --> 00:04:36,590 Na kisha tutaweza kwenda katika arrays na masharti, ambayo sisi utakuwa kutumia mengi pia. 73 00:04:41,460 --> 00:04:44,810 Hapa ni mfano tu ya chati 1 mini ASCII. 74 00:04:44,810 --> 00:04:48,460 Kama nilivyosema, kila barua sambamba na idadi, 75 00:04:48,460 --> 00:04:52,510 na hivyo jizoeshe na kwamba. Ni atakuja katika Handy. 76 00:04:52,510 --> 00:04:55,610 Na baadaye wakati sisi kuanza kufanya baadhi ASCIIMath kushughulika na idadi - 77 00:04:55,610 --> 00:05:00,110 akiongeza, subtracting yao - basi dhahiri nzuri kwa kutaja chati hii. 78 00:05:02,860 --> 00:05:06,920 Hivyo hapa ni mfano wa cipher Caesar - kitu ambacho unaweza kuwa alicheza na. 79 00:05:06,920 --> 00:05:11,190 Ni haki ya gurudumu. Kimsingi, kuna alfabeti nje na kisha kuna alfabeti ndani. 80 00:05:11,190 --> 00:05:15,290 Hivyo haki hapa ni mfano wa cipher Kaisari lakini kwa ufunguo wa 0. 81 00:05:15,290 --> 00:05:21,540 Kimsingi, ni iliyokaa na, B ni iliyokaa na B, njia yote hadi Z. 82 00:05:21,540 --> 00:05:26,590 Lakini kisha kusema tulitaka muhimu ya 3, kwa mfano. 83 00:05:26,590 --> 00:05:33,280 Basi tutakuwa mzunguko gurudumu ya ndani ili sasa aligns na D, nk 84 00:05:33,280 --> 00:05:35,250 Na hivyo hii kimsingi ni nini tunakwenda kufanya. 85 00:05:35,250 --> 00:05:38,340 Hatuna gurudumu, lakini nini tunakwenda kufanya ni kufanya mpango wetu 86 00:05:38,340 --> 00:05:44,490 aina ya kuhama alfabeti pamoja na sisi kiasi fulani ya namba. 87 00:05:44,490 --> 00:05:48,650 Hivyo kama nilivyosema hapo kabla, tunakwenda kuwa kushughulika na hoja mstari amri 88 00:05:48,650 --> 00:05:50,390 kama vile kupata integer. 89 00:05:50,390 --> 00:05:55,050 Hivyo njia kwamba mtumiaji kukimbia yako Kaisari mpango ni kwa kusema. / Kaisari 90 00:05:55,050 --> 00:05:58,090 na kisha kuingia idadi baada ya hapo. 91 00:05:58,090 --> 00:06:01,130 Na kwamba idadi hiyo inawakilisha muhimu, kuhama, 92 00:06:01,130 --> 00:06:06,740 mara ngapi wewe utaenda kupokezana gurudumu ndani ya cipher yako Kaisari. 93 00:06:06,740 --> 00:06:08,390 Na hivyo unaweza kuona hapa mfano. 94 00:06:08,390 --> 00:06:14,550 Kama sisi aliingia barua kutoka kwa L katika cipher wetu Kaisari, 95 00:06:14,550 --> 00:06:19,520 basi ingekuwa pembejeo D kupitia O kwa sababu hiyo ni kila barua kubadilishwa zaidi ya mara 3, 96 00:06:19,520 --> 00:06:22,080 tu kama mfano wa gurudumu ambayo nilikuonyeshea. 97 00:06:22,080 --> 00:06:25,300 Hivyo basi kama wewe aliingia, kwa mfano, Hii ​​ni CS50! 98 00:06:25,300 --> 00:06:27,960 basi ingekuwa pia hoja yote ya barua. 99 00:06:27,960 --> 00:06:31,040 Na kwamba ni jambo muhimu katika wawili Kaisari na Vigenere 100 00:06:31,040 --> 00:06:34,890 ni kwamba sisi ni kwenda ruka juu ya barua zisizo yoyote. 101 00:06:34,890 --> 00:06:39,160 Hivyo yoyote nafasi, herufi, nk, idadi, tunakwenda kuwaweka sawa. 102 00:06:39,160 --> 00:06:42,920 Sisi ni kwenda tu kuhama barua katika kesi hii. 103 00:06:42,920 --> 00:06:45,870 Hivyo kama unaweza kuona katika gurudumu, sisi tu barua inapatikana kwetu, 104 00:06:45,870 --> 00:06:50,150 hivyo sisi tu wanataka kuhama barua na kusimba barua. 105 00:06:51,370 --> 00:06:56,720 Hivyo jambo la kwanza kufanya, ninyi kuona kwamba matumizi kwa Kaisari katika tatizo kuweka 2 106 00:06:56,720 --> 00:07:05,280 ni kukimbia Kaisari na kisha kuingia idadi wakati wewe kukimbia katika terminal. 107 00:07:05,280 --> 00:07:10,940 Basi nini tunahitaji kufanya ni namna fulani kupata kwamba muhimu na kupata hiyo. 108 00:07:10,940 --> 00:07:14,730 Na hivyo tunataka kuona namna fulani ni kwenda kuwa ya pili ya mstari amri hoja. 109 00:07:14,730 --> 00:07:20,950 moja ya kwanza ni kwenda kuwa. / Kaisari, na moja ijayo itakuwa ni idadi muhimu. 110 00:07:22,190 --> 00:07:29,200 Hivyo kabla tulikuwa int kuu (utupu) kuanza C programu yetu. 111 00:07:29,200 --> 00:07:31,790 Sisi ni kwenda safu peel nyuma kidogo 112 00:07:31,790 --> 00:07:34,720 na kweli kuona kwamba badala ya kupita katika utupu kwa kazi yetu kuu 113 00:07:34,720 --> 00:07:37,920 sisi ni kweli kushughulika na vigezo 2. 114 00:07:37,920 --> 00:07:44,070 Tuna int aitwaye argc na kisha safu ya masharti kuitwa argv. 115 00:07:44,070 --> 00:07:46,030 Hivyo argc ni integer, 116 00:07:46,030 --> 00:07:49,640 na inawakilisha idadi ya hoja kupita katika mpango wako. 117 00:07:49,640 --> 00:07:53,590 Na kisha argv ni kweli orodha ya hoja kupita. 118 00:07:53,590 --> 00:08:00,820 Yote ya hoja ni masharti, na hivyo argv inawakilisha safu, orodha, ya masharti. 119 00:08:01,830 --> 00:08:03,990 Hebu majadiliano kuhusu arrays kidogo. 120 00:08:03,990 --> 00:08:05,940 Arrays ni kimsingi mpya data muundo. 121 00:08:05,940 --> 00:08:09,660 Tuna ints, tuna mara mbili, tuna masharti, na sasa tuna arrays. 122 00:08:09,660 --> 00:08:13,820 Arrays ni data miundo ambayo inaweza kushikilia maadili mbalimbali ya aina moja, 123 00:08:13,820 --> 00:08:18,320 hivyo kimsingi, orodha ya kila aina unataka. 124 00:08:18,320 --> 00:08:24,400 Kimsingi, kama alitaka orodha ya integers wote katika variable 1, 125 00:08:24,400 --> 00:08:29,090 basi ingekuwa kujenga variable mpya ambayo ilikuwa ya aina safu int. 126 00:08:29,090 --> 00:08:34,450 Hivyo arrays ni sifuri-indexed, kwa maana kwamba kipengele kwanza ya safu ni katika index 0. 127 00:08:34,450 --> 00:08:41,799 Kama safu ni ya urefu 4, kama katika mfano huu, basi kipengele yako ya mwisho itakuwa katika index 3, 128 00:08:41,799 --> 00:08:44,810 ambayo ni 4-1. 129 00:08:45,940 --> 00:08:48,420 Hivyo kujenga safu, ungependa kufanya kitu kama hiki. 130 00:08:48,420 --> 00:08:51,440 Sema wewe alitaka safu mbili. 131 00:08:51,440 --> 00:08:56,520 Hii inakwenda kwa aina yoyote ya aina data, ingawa. 132 00:08:56,520 --> 00:09:00,210 Hivyo kusema unataka safu mbili. Sema unataka simu yake mailbox. 133 00:09:00,210 --> 00:09:04,760 Just kama ungependa initialize yoyote mbili nyingine, 134 00:09:04,760 --> 00:09:09,760 wewe kusema mara mbili na kisha jina, lakini wakati huu sisi kuweka mabano mraba, 135 00:09:09,760 --> 00:09:13,570 na kisha namba kutakuwa urefu wa safu. 136 00:09:13,570 --> 00:09:16,840 Kumbuka kuwa katika arrays hatuwezi kubadilika urefu, 137 00:09:16,840 --> 00:09:21,230 hivyo daima kuwa kufafanua na kuchagua masanduku ngapi, 138 00:09:21,230 --> 00:09:25,440 wangapi maadili safu yako anaenda kushikilia. 139 00:09:25,440 --> 00:09:31,820 Hivyo kuweka maadili mbalimbali katika safu yako, utaenda kutumia syntax zifuatazo, 140 00:09:31,820 --> 00:09:33,200 kama unaweza kuona kwenye slide. 141 00:09:33,200 --> 00:09:37,620 Mailbox una 0 index itakuwa kuweka 1.2, 142 00:09:37,620 --> 00:09:42,180 mailbox index 1 kuweka 2.4, nk 143 00:09:42,180 --> 00:09:47,910 Hivyo sasa kwamba tumekuwa upya arrays kidogo, hebu kwenda nyuma argc na argv. 144 00:09:47,910 --> 00:09:52,220 Tunajua kwamba argv sasa ni safu ya masharti. 145 00:09:52,220 --> 00:09:55,080 Hivyo wakati mtumiaji hupita katika - kusema wanakimbia mpango - 146 00:09:55,080 --> 00:09:58,740 wanasema / hujambo Daudi Malan., 147 00:09:58,740 --> 00:10:05,160 nini mpango kufanya kwa ajili yenu ni kweli tayari kuja na kile argc na argv ni. 148 00:10:05,160 --> 00:10:07,620 Hivyo huna haja ya kuwa na wasiwasi juu ya hilo. 149 00:10:07,620 --> 00:10:14,370 Argc katika kesi hii itakuwa 3 kwa sababu anaona 3 maneno tofauti waliojitenga na mazingira. 150 00:10:14,370 --> 00:10:18,850 Na hivyo basi safu katika mfano huu, ripoti ya kwanza itakuwa /. Hello, 151 00:10:18,850 --> 00:10:21,770 ijayo moja Daudi, ijayo moja Malan. 152 00:10:21,770 --> 00:10:25,640 Je, mtu yeyote kuona haki mbali uhusiano gani kati ya argv, 153 00:10:25,640 --> 00:10:28,990  safu, na argc ni? 154 00:10:32,820 --> 00:10:38,090 Yeah. Tutaweza kupata ndani ya kwamba katika mfano katika args.c. 155 00:10:38,090 --> 00:10:42,880 Hebu tuone kama tunaweza kuchukua faida ya uhusiano kati ya 2. 156 00:10:42,880 --> 00:10:46,550 Hapa unaweza kupata kwamba katika appliance maombi default 157 00:10:46,550 --> 00:10:49,450 kufungua. files c ni wakati mwingine Emacs. 158 00:10:49,450 --> 00:10:54,660 Lakini tunataka kukabiliana na gedit, hivyo nini unaweza kufanya ni unaweza kulia bonyeza C faili yako, 159 00:10:54,660 --> 00:11:04,580 kwenda Properties, Fungua Kwa, na kisha kuchagua gedit, Kuweka kama default, 160 00:11:04,580 --> 00:11:13,020 na sasa mpango wako inapaswa kufungua katika gedit badala ya Emacs. 161 00:11:14,710 --> 00:11:16,290 Perfect. 162 00:11:17,120 --> 00:11:25,520 Hivyo hapa nina mpango kwamba nataka magazeti nje ya kila mstari amri hoja. 163 00:11:25,520 --> 00:11:32,050 Hivyo kila mtumiaji pembejeo, nataka kimsingi kurudi nyuma yao kwenye mstari mpya. 164 00:11:32,050 --> 00:11:36,710 Basi nini muundo kwamba tunaweza kutumia kwa iterate juu ya kitu fulani - 165 00:11:36,710 --> 00:11:40,380 kitu ambacho pengine kutumika katika 1 pset yako? 166 00:11:40,380 --> 00:11:45,840 Kama unataka kwenda kwa idadi ya seti ya vitu? >> [Mwanafunzi] Kwa kitanzi. 167 00:11:45,840 --> 00:11:48,910 Kwa kitanzi. Hasa. Basi hebu kuanza na kwa kitanzi. 168 00:11:48,910 --> 00:11:56,900 Tuna kwa int i = 0. Hebu tu kuanza na kutofautiana kiwango initialization. 169 00:11:56,900 --> 00:12:02,370 Mimi naenda kuondoka hali kwa ajili ya kuweka na kisha kusema i + +, kwenda kufanya mambo huko. 170 00:12:02,370 --> 00:12:04,090 Wote haki. 171 00:12:04,090 --> 00:12:11,590 Hivyo kufikiri nyuma argv, ikiwa ni argv orodha ya hoja kupita katika mpango 172 00:12:11,590 --> 00:12:15,380 na argc ni idadi ya hoja katika mpango, 173 00:12:15,380 --> 00:12:21,280 basi hiyo ina maana kwamba argc kimsingi ni urefu wa argv, kulia, 174 00:12:21,280 --> 00:12:28,970 kwa sababu kuna ni kwenda kuwa kama hoja nyingi kama thamani ya argc. 175 00:12:28,970 --> 00:12:35,910 Hivyo kama tunataka iterate juu ya kila kipengele katika argv, 176 00:12:35,910 --> 00:12:43,290 tunakwenda wanataka kila wakati kupata variable katika argv katika index aliyopewa. 177 00:12:43,290 --> 00:12:49,060 Ambayo yanaweza kuwakilishwa na hii, sawa? 178 00:12:49,060 --> 00:12:53,430 Hii variable hapa inawakilisha string hasa katika mfano huu 179 00:12:53,430 --> 00:12:57,030 sababu ni safu string - string hasa katika index kwamba aliyopewa. 180 00:12:57,030 --> 00:13:00,690 Nini tunataka kufanya, katika kesi hii tunataka magazeti yake nje, hivyo hebu sema printf. 181 00:13:00,690 --> 00:13:04,680 Na sasa argv ni kamba, hivyo tunataka kuweka kwamba placeholder huko. 182 00:13:04,680 --> 00:13:08,430 Tunataka mstari mpya tu kufanya ni kuangalia nzuri. 183 00:13:08,430 --> 00:13:12,530 Hivyo hapa tuna kitanzi kwa. Hatuna hali bado. 184 00:13:12,530 --> 00:13:20,020 Hivyo i kuanza saa 0, na kisha kila wakati ni kwenda magazeti string aliyopewa 185 00:13:20,020 --> 00:13:22,980 saa kwamba index hasa katika safu. 186 00:13:22,980 --> 00:13:28,410 Hivyo wakati wa kufanya sisi unataka kuacha kuchapa nje vipengele katika safu? 187 00:13:28,410 --> 00:13:35,720 Wakati tumekuwa kumaliza, haki? Wakati sisi Umefikia mwisho wa safu. 188 00:13:35,720 --> 00:13:38,870 Hivyo hatutaki kisichozidi uliopita urefu wa safu, 189 00:13:38,870 --> 00:13:43,700 na sisi tayari kujua sisi hawana haja ya kweli kikamilifu kujua nini urefu wa argv ni 190 00:13:43,700 --> 00:13:47,520 sababu ni tuliyopewa na nini hiyo? Argc. Hasa. 191 00:13:47,520 --> 00:13:56,640 Hivyo tunataka kufanya hili argc mchakato idadi ya nyakati. 192 00:13:56,640 --> 00:13:59,550 Mimi si katika saraka ya haki. 193 00:14:02,100 --> 00:14:03,490 Wote haki. 194 00:14:03,490 --> 00:14:08,990 Sasa wacha kufanya args. Hakuna makosa, ambayo ni kubwa. 195 00:14:08,990 --> 00:14:11,430 Basi hebu kukimbia tu args. 196 00:14:11,430 --> 00:14:15,130 Nini hii kwenda na kurudi kwetu? Ni tu kwenda na magazeti hayo tena. 197 00:14:15,130 --> 00:14:18,320 "Wewe inputted args katika mpango; Mimi naenda kuwapa nyuma yenu." 198 00:14:18,320 --> 00:14:23,170 Basi hebu kusema tunataka kusema args kisha foo bar. 199 00:14:23,170 --> 00:14:26,570 Hivyo basi ni Prints ni nje nyuma yetu. Wote haki? 200 00:14:26,570 --> 00:14:30,790 Kwa hiyo, kuna mfano wa jinsi gani unaweza kutumia argc na argv 201 00:14:30,790 --> 00:14:33,460 tukijua kwamba argc inawakilisha urefu wa argv. 202 00:14:33,460 --> 00:14:42,750 Kuhakikisha kwamba huna milele na arrays upatikanaji moja zaidi ya urefu wa safu 203 00:14:42,750 --> 00:14:45,140 kwa sababu C dhahiri kelele saa wewe. 204 00:14:45,140 --> 00:14:47,560 Utapata kitu kinachoitwa kosa segmentation, 205 00:14:47,560 --> 00:14:52,470 ambayo ni kamwe fun, kimsingi akisema wewe ni kujaribu kupata kitu 206 00:14:52,470 --> 00:14:55,000 kwamba haipo, si mali yenu. 207 00:14:55,000 --> 00:14:59,430 Hivyo kuhakikisha, na hasa kwa Indexing sifuri-, sisi hatutaki - 208 00:14:59,430 --> 00:15:02,390 Kama kwa mfano, kama tuna safu ya urefu 4, 209 00:15:02,390 --> 00:15:07,240 kwamba index safu 4 haipo kwa sababu sisi kuanza saa 0, saa index sifuri. 210 00:15:07,240 --> 00:15:11,730 Itakuwa asili ya pili tu kama kwa matanzi wakati sisi kuanza saa 0. 211 00:15:11,730 --> 00:15:13,610 Hivyo tu kuendelea kuwa katika akili. 212 00:15:13,610 --> 00:15:22,590 Wewe hawataki milele kupata index ya safu hiyo ni nje ya uwezo wako. 213 00:15:26,710 --> 00:15:32,560 Hivyo tunaweza kuona jinsi sasa tunaweza aina ya upatikanaji 214 00:15:32,560 --> 00:15:35,930 mstari amri hoja kwamba ni kupita in 215 00:15:35,930 --> 00:15:41,330 Lakini kama wewe niliona kamba, argv ni kweli safu kamba. 216 00:15:41,330 --> 00:15:45,740 Hivyo ni kweli si integer bado, lakini katika Kaisari tunataka kukabiliana na integers. 217 00:15:45,740 --> 00:15:54,430 Kwa bahati, kuna kazi umba kwa ajili yetu kwamba kweli anaweza kubadilisha kamba integer. 218 00:15:54,430 --> 00:15:58,710 Pia katika hapa sisi si kushughulika na pembejeo mtumiaji ambapo sisi ni uvuvio yao 219 00:15:58,710 --> 00:16:03,740 kwa ajili ya pembejeo hapa kwa ajili ya muhimu, hivyo hatuwezi kweli reprompt na kusema, 220 00:16:03,740 --> 00:16:07,840 "Oh, nipe mwingine integer, kusema, kama si halali." 221 00:16:07,840 --> 00:16:10,540 Lakini sisi bado kufanya haja ya kuangalia kwa ajili ya matumizi sahihi. 222 00:16:10,540 --> 00:16:13,520 Katika Kaisari wao ni kuruhusiwa tu kwa kupita katika namba 1, 223 00:16:13,520 --> 00:16:18,030 na hivyo kuwa na kukimbia. / Kaisari na kisha wao kuwa na kukupa idadi. 224 00:16:18,030 --> 00:16:23,660 Hivyo argc ina kuwa idadi fulani. 225 00:16:23,660 --> 00:16:29,060 Nini idadi ingekuwa kwamba kuwa kama wana kupita wewe /. Kaisari na kisha muhimu? 226 00:16:29,060 --> 00:16:32,920 Nini ni argc? >> [Mwanafunzi] 2. >> Mbili. Hasa. 227 00:16:32,920 --> 00:16:35,490 Hivyo unataka kuhakikisha kwamba argc ni 2. 228 00:16:35,490 --> 00:16:39,620 Vinginevyo wewe kimsingi kukataa kuendesha programu. 229 00:16:39,620 --> 00:16:43,040 Katika kuu ni kazi ambayo anasema int kuu, 230 00:16:43,040 --> 00:16:47,360 hivyo basi sisi daima katika mema 0 mazoezi kurudi katika mwisho wa mpango mafanikio. 231 00:16:47,360 --> 00:16:50,840 Hivyo kama, kusema, wao kukupa 3 hoja mstari amri badala ya 2 232 00:16:50,840 --> 00:16:54,350 au kukupa 1, kwa mfano, basi nini wewe itabidi kufanya ni utasikia wanataka kuangalia kwa kuwa 233 00:16:54,350 --> 00:16:59,900 na kisha kurudi 1 akisema, hapana, siwezi kuendelea na mpango huu. 234 00:16:59,900 --> 00:17:03,190 [Mwanafunzi] Kuna hawezi kuwa nafasi katika maandishi yako. >> Kunradhi? 235 00:17:03,190 --> 00:17:06,780 [Mwanafunzi] Kuna hawezi kuwa nafasi katika maandishi wewe ni kujaribu kuficha. 236 00:17:06,780 --> 00:17:08,480 Ah! 237 00:17:08,480 --> 00:17:11,280 Katika suala la Nakala kwamba sisi ni kujaribu kuficha, kwamba kwa kweli inakuja baadaye 238 00:17:11,280 --> 00:17:13,970 tunapotoa kwamba maandishi. 239 00:17:13,970 --> 00:17:18,260 Hivyo sasa hivi sisi ni tu kukubali kama hoja amri idadi halisi, 240 00:17:18,260 --> 00:17:21,579 kuhama halisi kwa encryption Kaisari. 241 00:17:21,579 --> 00:17:27,569 [Mwanafunzi] Kwa nini unahitaji 2 kinyume na tu argc 1? Kuna dhahiri 1 idadi. 242 00:17:27,569 --> 00:17:32,200 Haki. Sababu kwa nini tunahitaji 2 kwa argc badala ya 1 243 00:17:32,200 --> 00:17:36,260 ni kwa sababu wakati wewe kukimbia na mpango na kusema. / Kaisari, au /. hello, 244 00:17:36,260 --> 00:17:38,280 kwamba kweli makosa kama hoja mstari amri. 245 00:17:38,280 --> 00:17:43,020 Hivyo basi, kwamba tayari inachukua hadi 1 na hivyo basi tuko inputting 1 ziada. 246 00:17:45,030 --> 00:17:49,440 Basi, wewe ni kweli inputting string katika hoja mstari amri. 247 00:17:49,440 --> 00:17:52,730 Nini unataka kufanya, kwa Kaisari tunataka kukabiliana na integer, 248 00:17:52,730 --> 00:17:57,180 hivyo unaweza kutumia kazi hii atoi. 249 00:17:57,180 --> 00:18:02,850 Na kimsingi, wewe kupita katika kamba na kisha atarudi nyuma yenu integer 250 00:18:02,850 --> 00:18:06,070 kama inawezekana kufanya ile kamba ndani ya integer. 251 00:18:06,070 --> 00:18:10,960 Sasa kumbuka wakati sisi ni kushughulika na mambo printf au GetString, kama kwamba, 252 00:18:10,960 --> 00:18:13,390 sisi ni pamoja na maktaba kwamba ni maalum kwa sisi. 253 00:18:13,390 --> 00:18:19,450 Hivyo mwanzoni sisi kuanza na hash tag kitu standard I / O, h., Kama hiyo. 254 00:18:19,450 --> 00:18:22,430 Naam, atoi si ndani ya moja ya maktaba hizo, 255 00:18:22,430 --> 00:18:26,600 hivyo kile sisi kufanya ni sisi ni pamoja na maktaba ya haki kwa ajili hiyo. 256 00:18:26,600 --> 00:18:32,720 Hivyo kukumbuka nyuma walkthrough 1 ambapo mimi kujadiliwa kazi mwongozo. 257 00:18:32,720 --> 00:18:37,110 Unapoandika mtu katika terminal yako na kisha kufuatiwa na jina la kazi. 258 00:18:37,110 --> 00:18:39,720 Na ili kuleta orodha nzima ya matumizi yake, 259 00:18:39,720 --> 00:18:42,890 lakini pia itakuwa kuleta juu ambayo maktaba ambayo ni mali ya. 260 00:18:42,890 --> 00:18:47,000 Hivyo mimi itabidi kuondoka kwamba kwa wewe kutumia kazi mwongozo na atoi 261 00:18:47,000 --> 00:18:53,360 na kufikiri ambayo maktaba unahitaji ni pamoja na kuwa na uwezo wa kutumia kazi atoi. 262 00:18:54,450 --> 00:18:57,670 Hivyo sisi tumepewa muhimu na sasa ni suala la kupata Nakala wazi, 263 00:18:57,670 --> 00:19:01,820 na hivyo kwamba kweli ni kwenda kuwa mtumiaji pembejeo ambapo wewe kuchochea. 264 00:19:01,820 --> 00:19:05,540 Sisi kushughulikiwa na GetInt na GetFloat, na hivyo katika ven 265 00:19:05,540 --> 00:19:07,670 tunakwenda kuwa kushughulika na GetString. 266 00:19:07,670 --> 00:19:12,440 Lakini katika kesi hii hatuna haja ya kufanya lolote do wakati au wakati matanzi ya kuangalia. 267 00:19:12,440 --> 00:19:14,480 GetString dhahiri kutupa kamba, 268 00:19:14,480 --> 00:19:17,630 na sisi ni kwenda encrypt chochote mtumiaji inatupa. 269 00:19:17,630 --> 00:19:23,770 Hivyo unaweza kudhani kuwa yote haya masharti ya mtumiaji inputted ni sahihi. 270 00:19:23,770 --> 00:19:24,670 Mkuu. 271 00:19:24,670 --> 00:19:27,270 Hivyo basi mara moja nimepata muhimu na mara moja nimepata maandishi, 272 00:19:27,270 --> 00:19:31,660 sasa nini kushoto ni una encipher maandishi wazi. 273 00:19:31,660 --> 00:19:36,530 Tu kwa haraka ufunike Hands, maandishi wazi ni nini mtumiaji inakupa, 274 00:19:36,530 --> 00:19:41,030 na nakala ya siri ni nini kurudi kwao. 275 00:19:42,450 --> 00:19:45,850 Hivyo masharti, kuwa na uwezo wa kwenda kwa njia ya barua kweli kwa barua 276 00:19:45,850 --> 00:19:48,550 sababu tuna kuhama kila herufi, 277 00:19:48,550 --> 00:19:51,390 sisi kuelewa masharti kwamba, kama sisi aina ya Peel nyuma safu, 278 00:19:51,390 --> 00:19:54,130 tunaona kwamba wao ni kweli tu orodha ya wahusika. 279 00:19:54,130 --> 00:19:55,930 Moja anakuja baada ya nyingine. 280 00:19:55,930 --> 00:20:01,690 Na hivyo tunaweza kutibu masharti kama arrays kwa sababu wao ni arrays ya wahusika. 281 00:20:01,690 --> 00:20:05,640 Hivyo kusema kuwa string aitwaye maandishi, 282 00:20:05,640 --> 00:20:09,400 na ndani ya maandishi kwamba variable ni kuhifadhiwa Hii ni CS50. 283 00:20:09,400 --> 00:20:15,680 Kisha Nakala saa index 0 itakuwa Simu mji mkuu, index 1 itakuwa h, nk 284 00:20:17,530 --> 00:20:23,970 Na kisha na arrays, katika mfano argc katika args.c, 285 00:20:23,970 --> 00:20:27,090 tuliona kwamba tulikuwa na iterate juu ya safu 286 00:20:27,090 --> 00:20:32,440 na hivyo alikuwa na iterate kutoka i = 0 hadi i ni chini ya urefu. 287 00:20:32,440 --> 00:20:35,560 Hivyo tunahitaji baadhi ya njia ya kuhesabia nje nini urefu wa kamba yetu ni 288 00:20:35,560 --> 00:20:37,090 kama sisi ni kwenda iterate juu yake. 289 00:20:37,090 --> 00:20:42,300 Kwa bahati tena, kuna kazi huko kwa ajili yetu, ingawa baadaye katika CS50 290 00:20:42,300 --> 00:20:45,860 wewe utakuwa dhahiri kuwa na uwezo wa kutekeleza na kufanya kazi yako mwenyewe 291 00:20:45,860 --> 00:20:48,260 ambayo inaweza mahesabu ya urefu wa kamba. 292 00:20:48,260 --> 00:20:52,120 Lakini kwa sasa tunakwenda kutumia kamba urefu, hivyo strlen. 293 00:20:52,120 --> 00:21:00,440 Wewe kupita katika kamba, na kisha atarudi wewe int kwamba inawakilisha urefu wa kamba yako. 294 00:21:00,440 --> 00:21:05,840 Hebu tuangalie mfano wa jinsi sisi kuwa na uwezo wa iterate juu ya kila tabia katika string 295 00:21:05,840 --> 00:21:08,470 na kufanya kitu na kwamba. 296 00:21:08,470 --> 00:21:13,250 Nini tunataka kufanya ni iterate juu ya kila tabia ya kamba, 297 00:21:13,250 --> 00:21:19,150 na nini tunataka kufanya ni sisi magazeti nyuma kila tabia 1 na 1 298 00:21:19,150 --> 00:21:22,060 ila sisi kuongeza kitu karibu na hiyo. 299 00:21:22,060 --> 00:21:27,020 Basi hebu kuanza na kwa kitanzi. Int i = 0. 300 00:21:27,020 --> 00:21:30,070 Sisi ni kwenda kuacha nafasi kwa ajili ya hali hiyo. 301 00:21:32,700 --> 00:21:36,840 Tunataka iterate mpaka sisi kufikia mwisho wa kamba, sawa? 302 00:21:36,840 --> 00:21:41,340 Hivyo basi nini kazi inatupa urefu wa kamba? 303 00:21:41,340 --> 00:21:43,160 [Inaudible mwanafunzi majibu] 304 00:21:43,160 --> 00:21:46,420 Hiyo ni urefu wa hoja mstari amri. 305 00:21:46,420 --> 00:21:50,650 Lakini kwa kamba tunataka kutumia kazi ambayo inatupa urefu wa kamba. 306 00:21:50,650 --> 00:21:53,090 Basi hiyo ni kamba urefu. 307 00:21:53,090 --> 00:21:57,130 Na hivyo basi una kupita katika kamba hiyo. 308 00:21:57,130 --> 00:21:59,760 Ni mahitaji ya kujua nini string inahitaji mahesabu ya urefu wa. 309 00:21:59,760 --> 00:22:03,160 Hivyo basi katika kesi hii sisi ni kushughulika na uzi s. 310 00:22:04,790 --> 00:22:05,860 Mkuu. 311 00:22:05,860 --> 00:22:10,770 Hivyo basi nini tunataka kufanya, hebu printf. 312 00:22:10,770 --> 00:22:14,850 Sasa, tunataka kukabiliana na wahusika. Tunataka magazeti nje kila tabia ya mtu binafsi. 313 00:22:14,850 --> 00:22:22,150 Wakati unataka kwa magazeti nje kuelea, ungependa kutumia placeholder kama f%. 314 00:22:22,150 --> 00:22:24,580 Pamoja na int ungependa kutumia% d. 315 00:22:24,580 --> 00:22:30,890 Na hivyo vile vile, na tabia wewe kutumia c% kusema mimi nina kwenda kuwa uchapishaji tabia 316 00:22:30,890 --> 00:22:34,570 ambayo imehifadhiwa ndani ya kutofautiana. 317 00:22:34,570 --> 00:22:40,840 Hivyo tuna hii, na hebu kuongeza kipindi na nafasi yake. 318 00:22:40,840 --> 00:22:45,430 Ambayo ni tabia ya sisi kutumia? 319 00:22:45,430 --> 00:22:49,780 Sisi wanaenda kutumia chochote kile tabia sisi ni saa ya kamba. 320 00:22:49,780 --> 00:22:52,890 Hivyo basi sisi wanaenda kutumia kitu kwa kamba, 321 00:22:52,890 --> 00:22:56,420 lakini tunataka kuwa kupata huduma ya tabia fulani huko. 322 00:22:56,420 --> 00:23:02,740 Hivyo kama ni kamba tu safu, basi, jinsi gani sisi kupata mambo ya arrays? 323 00:23:02,740 --> 00:23:06,480 Tuna mabano mraba those, na kisha sisi kuweka index huko. 324 00:23:06,480 --> 00:23:11,820 Hivyo tuna mabano mraba. Index yetu katika kesi hii tunaweza kutumia tu i. Hasa. 325 00:23:15,290 --> 00:23:22,370 Hivyo hapa sisi ni kusema sisi ni kwenda kuwa uchapishaji tabia kufuatiwa na dot na nafasi, 326 00:23:22,370 --> 00:23:30,870 na tabia ya kuwa ni kwenda kuwa barua idh katika kamba s yetu. 327 00:23:32,920 --> 00:23:39,330 Mimi tu anaenda kuokoa. Sawa. 328 00:23:42,510 --> 00:23:46,840 Sasa mimi nina kwenda kukimbia string urefu. 329 00:23:46,840 --> 00:23:53,440 Hivyo tulikuwa string kuitwa OMG, na sasa ni alisisitiza hata zaidi. 330 00:23:53,440 --> 00:23:57,870 Vile vile, hebu sema sisi kweli wanataka kupata kamba kutoka kwa mtumiaji. 331 00:23:57,870 --> 00:23:59,580 Jinsi gani tunafanya hivi? 332 00:23:59,580 --> 00:24:01,610 Kabla ya hapo, jinsi gani sisi kupata int? 333 00:24:01,610 --> 00:24:08,040 Sisi alisema GetInt, haki? Lakini hii si int, hivyo hebu GetString. 334 00:24:11,780 --> 00:24:17,770 Hebu kufanya string urefu. Hapa sisi hawakuwa kuingia haraka maalum. 335 00:24:17,770 --> 00:24:19,940 Hivyo mimi sijui. 336 00:24:19,940 --> 00:24:23,820 Mimi naenda kuweka jina langu katika hapa na hivyo basi naweza kufanya moja ya mambo 337 00:24:23,820 --> 00:24:29,600 ambapo mimi hawawajui neno kwa kila barua au kitu kama hicho. Cool. 338 00:24:29,600 --> 00:24:31,900 Basi hiyo ni kamba urefu. 339 00:24:33,000 --> 00:24:34,640 Hivyo sisi ni nyuma ya Kaisari. 340 00:24:34,640 --> 00:24:38,620 Tuna zana chache juu ya jinsi sisi iterate juu ya kamba, 341 00:24:38,620 --> 00:24:41,250 jinsi sisi kupata kila kipengele binafsi. 342 00:24:41,250 --> 00:24:44,720 Hivyo sasa tunaweza kupata nyuma ya mpango. 343 00:24:44,720 --> 00:24:48,650 Kama nilivyoeleza hapo awali, katika meza ASCII, rafiki yako, 344 00:24:48,650 --> 00:24:52,300 utaenda kuona idadi kuwa ni kuhusishwa na kila barua. 345 00:24:52,300 --> 00:24:55,900 Hivyo hapa kusema maandishi wazi yetu ni mimi nina kizunguzungu! 346 00:24:55,900 --> 00:25:01,090 Ndipo kila mmoja wa wahusika hawa ni kwenda kuwa na idadi na thamani ASCII yanayohusiana na hayo, 347 00:25:01,090 --> 00:25:04,710 hata apostrophe, hata nafasi, hata alama Moderators, 348 00:25:04,710 --> 00:25:06,600 hivyo utasikia wanataka kuendelea kuwa katika akili. 349 00:25:06,600 --> 00:25:12,360 Hivyo kusema ufunguo yetu kwamba mtumiaji pamoja na katika hoja zao amri line ni 6. 350 00:25:12,360 --> 00:25:17,770 Hiyo ina maana kwa barua ya kwanza, ambayo ni mimi, ambayo ni kuwakilishwa na 73, 351 00:25:17,770 --> 00:25:25,610 unataka kurudi kwao chochote barua ni kuwakilishwa na thamani ya 73 + ASCII 6. 352 00:25:25,610 --> 00:25:29,020 Katika kesi hiyo ambayo itakuwa ya 79. 353 00:25:30,840 --> 00:25:35,040 Sasa tunataka kwenda kwa tabia ijayo. 354 00:25:35,040 --> 00:25:40,960 Hivyo ijayo katika index 1 ya maandishi wazi itakuwa apostrophe. 355 00:25:40,960 --> 00:25:46,780 Lakini kumbuka sisi tu wanataka encipher barua. 356 00:25:46,780 --> 00:25:50,040 Hivyo tunataka kuhakikisha kwamba apostrophe kweli anakaa huo, 357 00:25:50,040 --> 00:25:54,310 kwamba hatuwezi kubadilika kutoka 39 hadi 45 ni chochote. 358 00:25:54,310 --> 00:25:57,150 Tunataka kuitunza kama apostrophe. 359 00:25:57,150 --> 00:26:00,780 Hivyo tunataka kumbuka tu encipher barua 360 00:26:00,780 --> 00:26:04,560 sababu tunataka wote wa ishara nyingine kubaki unchanged katika programu yetu. 361 00:26:04,560 --> 00:26:07,130 Jambo jingine ni kwamba tunataka ni kulinda mtaji. 362 00:26:07,130 --> 00:26:10,250 Hivyo wakati una barua uppercase, ni lazima kukaa kama uppercase. 363 00:26:10,250 --> 00:26:12,830 Lowercases wanapaswa kukaa kama lowercase. 364 00:26:13,620 --> 00:26:19,480 Hivyo baadhi ya kazi muhimu kuwa na uwezo wa kukabiliana na barua tu enciphering 365 00:26:19,480 --> 00:26:22,380 na kuweka kuhifadhi mtaji wa mambo 366 00:26:22,380 --> 00:26:25,130 ni islower isalpha, isupper, kazi. 367 00:26:25,130 --> 00:26:29,270 Na hivyo haya ni kazi ya kwamba kurudi wewe thamani Boolean. 368 00:26:29,270 --> 00:26:34,180 Kimsingi, kweli au uongo. Je, hii ni uppercase? Je, hii ni alphanumeric? 369 00:26:34,180 --> 00:26:37,180 Je, hii ni barua, kimsingi. 370 00:26:37,180 --> 00:26:41,070 Hivyo hapa ni mifano 3 ya jinsi gani kutumia kazi. 371 00:26:41,070 --> 00:26:47,060 Kimsingi, unaweza mtihani kama thamani akarudi na wewe na kazi ambayo ni ya kweli au ya uongo 372 00:26:47,060 --> 00:26:49,400 msingi pembejeo kwamba. 373 00:26:49,400 --> 00:26:54,880 Aidha si encipher kitu au cipher au kuhakikisha kwamba ni uppercase, nk 374 00:26:54,880 --> 00:27:01,080 [Mwanafunzi] Je, unaweza kueleza tu wale kidogo zaidi na jinsi ya matumizi yao? >> Yeah, kwa uhakika. 375 00:27:01,080 --> 00:27:08,470 Hivyo kama sisi kuangalia nyuma, hapa tuna mtaji mimi, sawa? 376 00:27:08,470 --> 00:27:14,550 Hivyo tunajua kwamba mimi huenda kwa sababu mimi Enyi + 6 ni O. 377 00:27:14,550 --> 00:27:18,740 Lakini tunataka kuhakikisha kwamba O ni kwenda kuwa mji mkuu O. 378 00:27:18,740 --> 00:27:22,940 Hivyo kimsingi, kwamba ni aina ya kwenda na mabadiliko ya pembejeo yetu. 379 00:27:22,940 --> 00:27:26,870 Hivyo kama ni uppercase au si mapenzi ya aina ya kubadilisha njia ya kwamba sisi kukabiliana nayo. 380 00:27:26,870 --> 00:27:32,360 Hivyo basi kama sisi kutumia kazi isupper katika ripoti husika, 381 00:27:32,360 --> 00:27:36,480 hivyo isupper ("mimi"), kwamba anarudi kwa ajili yetu kweli, hivyo tunajua kwamba ni juu. 382 00:27:36,480 --> 00:27:40,360 Hivyo basi kwa kuzingatia kwamba, baadaye tutaweza kwenda katika formula 383 00:27:40,360 --> 00:27:42,750 kwamba wewe utakuwa kutumia kuhama mambo katika Kaisari, 384 00:27:42,750 --> 00:27:46,560 hivyo basi kimsingi, kuna kwenda kuwa formula tofauti kidogo kama ni uppercase 385 00:27:46,560 --> 00:27:50,670 kinyume na Herufi za chini. Mantiki? 386 00:27:51,020 --> 00:27:52,760 Yeah. Hakuna wasiwasi. 387 00:27:54,900 --> 00:27:58,990 Mimi kuongea kidogo kuhusu kuongeza 6 kwa barua, ambayo haina kabisa mantiki 388 00:27:58,990 --> 00:28:05,500 ila wakati sisi aina ya kuelewa kuwa hawa wahusika 389 00:28:05,500 --> 00:28:08,920 ni aina ya interchangeable na integers. 390 00:28:08,920 --> 00:28:11,250 Tunachofanya ni sisi aina ya akitoa matumizi thabiti. 391 00:28:11,250 --> 00:28:18,100 Tutaweza kwenda katika akitoa kidogo baadaye ambapo wewe kuchukua thamani na wewe kugeuka ndani ya aina mbalimbali 392 00:28:18,100 --> 00:28:20,440 kuliko awali alikuwa. 393 00:28:20,440 --> 00:28:25,910 Lakini pamoja na pset hii tutaweza kuwa na uwezo wa aina ya kubadilishana kutumia herufi 394 00:28:25,910 --> 00:28:30,880 na wao sambamba integer maadili. 395 00:28:30,880 --> 00:28:35,140 Hivyo kama wewe tu encase tabia na tu enda quotes, 396 00:28:35,140 --> 00:28:40,390 basi utakuwa na uwezo wa kufanya kazi na kwa integers, kukabiliana na ni kama integer. 397 00:28:40,390 --> 00:28:48,040 Hivyo C mtaji inahusiana na 67. F lowercase inahusiana na 102. 398 00:28:48,040 --> 00:28:51,480 Tena, kama unataka kujua maadili haya, kuangalia meza yako ASCII. 399 00:28:51,480 --> 00:28:56,160 Basi hebu kwenda katika baadhi ya mifano ya jinsi ya unavyoweza kuwa na uwezo wa Ondoa na kuongeza, 400 00:28:56,160 --> 00:29:03,130 jinsi unaweza kweli kweli kazi na wahusika hawa, matumizi yao kubadilishana. 401 00:29:03,870 --> 00:29:11,350 Nasema ASCIIMath kwamba ni kwenda kwa mahesabu ya nyongeza ya tabia kwa integer 402 00:29:11,350 --> 00:29:17,590 na kisha kuonyesha tabia matokeo kama vile matokeo ASCII thamani. 403 00:29:17,590 --> 00:29:22,290 Na hivyo hapa mimi kusema - we'll kukabiliana na sehemu hii baadaye - 404 00:29:22,290 --> 00:29:29,100 lakini kimsingi, mimi kusema kwamba mtumiaji lazima kusema kukimbia ASCIIMath pamoja na muhimu, 405 00:29:29,100 --> 00:29:30,880 na mimi kusema kwamba muhimu kwamba ni kwenda kuwa idadi 406 00:29:30,880 --> 00:29:34,600 ambayo sisi ni kwenda kuongeza tabia hii. 407 00:29:34,600 --> 00:29:38,560 Hivyo hapa taarifa kwamba tangu nina kudai muhimu, 408 00:29:38,560 --> 00:29:40,590 tangu mimi nina wanadai kwamba wao ni kunipa 1 kitu, 409 00:29:40,590 --> 00:29:45,600 Mimi nataka tu kukubali. / Asciimath na ufunguo. 410 00:29:45,600 --> 00:29:49,330 Hivyo nina kwenda kudai kwamba argc ni sawa na 2. 411 00:29:49,330 --> 00:29:54,360 Kama siyo, basi mimi naenda kurudi 1 na mpango exit. 412 00:29:55,070 --> 00:29:58,540 Hivyo mimi kusema muhimu si kwenda kuwa ya kwanza ya mstari amri hoja, 413 00:29:58,540 --> 00:30:05,080 itakavyo kuwa moja ya pili, na kama unaweza kuona hapa, 414 00:30:05,080 --> 00:30:11,790 Mimi naenda kugeuka kuwa ndani ya integer. 415 00:30:15,740 --> 00:30:19,230 Kisha Mimi naenda kuweka tabia kuwa r. 416 00:30:19,230 --> 00:30:23,970 Ona kwamba aina ya kutofautiana ni kweli CHR integer. 417 00:30:23,970 --> 00:30:30,480 njia ambayo nina uwezo wa kutumia r kama integer ni kwa encasing kwa hizi quotes moja. 418 00:30:33,850 --> 00:30:40,560 Hivyo nyuma kwa taarifa yetu printf ambapo tuna placeholder kwa tabia 419 00:30:40,560 --> 00:30:43,590 na kisha placeholder kwa integer, 420 00:30:43,590 --> 00:30:49,450 tabia ni kuwakilishwa na CHR, na integer ni muhimu. 421 00:30:49,450 --> 00:30:54,320 Na hivyo basi tunakwenda katika matokeo kuongeza 2 pamoja. 422 00:30:54,320 --> 00:30:58,420 Hivyo sisi ni kwenda kuongeza r + chochote muhimu ni, 423 00:30:58,420 --> 00:31:03,520 na kisha tunakwenda magazeti matokeo ya kwamba. 424 00:31:06,210 --> 00:31:14,220 Basi hebu kufanya asciimath. Ni juu ya tarehe, hivyo hebu kukimbia tu asciimath. 425 00:31:14,220 --> 00:31:18,290 Oh, lakini kuona, haina kufanya kitu chochote kwa sababu hatukuwa kweli kuwapa muhimu. 426 00:31:18,290 --> 00:31:23,850 Hivyo linapokuja tu akarudi 1, kazi yetu kuu, ni tu akarudi nyuma yetu. 427 00:31:23,850 --> 00:31:29,250 Hivyo basi hebu kupita katika muhimu. Mtu nipe namba. >> [Mwanafunzi] 4. 428 00:31:29,250 --> 00:31:30,920 4. Sawa. 429 00:31:30,920 --> 00:31:39,280 Hivyo r iliongezeka kwa 4 ni kwenda kutupa v, ambayo inalingana na thamani ASCII ya 118. 430 00:31:39,280 --> 00:31:43,880 Hivyo basi aina ya mantiki kwamba - 431 00:31:43,880 --> 00:31:51,250 Kweli, ninaweza kuuliza wewe, unafikiri nini thamani ASCII ya r ni kama r + 4 ni 118? 432 00:31:53,070 --> 00:31:55,470 Kisha yeah, r ni 114. 433 00:31:55,470 --> 00:32:03,010 Hivyo kama wewe kuangalia juu ya meza ASCII basi, uhakika wa kutosha, utaona r kwamba ni kuwakilishwa na 114. 434 00:32:03,010 --> 00:32:08,610 Hivyo sasa kwamba sisi kujua kwamba tunaweza kuongeza integers kwa wahusika, hii inaonekana pretty rahisi. 435 00:32:08,610 --> 00:32:12,740 Sisi ni kwenda tu iterate juu ya kamba kama tulivyoona katika mfano kabla. 436 00:32:12,740 --> 00:32:17,170 Tutaweza kuangalia kama ni barua. 437 00:32:17,170 --> 00:32:20,420 Kama ni, basi tutaweza kuhama hivyo kwa chochote muhimu ni. 438 00:32:20,420 --> 00:32:23,650 Pretty rahisi, isipokuwa wakati kupata kama hii, 439 00:32:23,650 --> 00:32:32,140 unaweza kuona kwamba z, kuwakilishwa na 122, basi bila kutoa tabia tofauti. 440 00:32:32,140 --> 00:32:37,770 Sisi kwa kweli wanataka kukaa ndani ya alfabeti yetu, haki? 441 00:32:37,770 --> 00:32:43,180 Hivyo tunahitaji kufikiri baadhi ya njia ya aina ya wrapping kote. 442 00:32:43,180 --> 00:32:47,190 Wakati kufikia Zed na unataka kuongeza kwa idadi fulani, 443 00:32:47,190 --> 00:32:51,230 hutaki kwenda ng'ambo ya sehemu ASCII alfabeti; 444 00:32:51,230 --> 00:32:54,140 unataka wrap nyuma njia yote ya A. 445 00:32:54,140 --> 00:32:58,550 Lakini kumbuka bado uko kuhifadhi kesi. 446 00:32:58,550 --> 00:33:00,980 Hivyo kwa kufahamu barua kwamba hawezi kuwa ishara 447 00:33:00,980 --> 00:33:05,290 tu kama ishara si kwenda kuwa kubadilisha pia. 448 00:33:05,290 --> 00:33:08,170 Katika pset mwisho wewe dhahiri hakuwa na haja ya, 449 00:33:08,170 --> 00:33:14,310 lakini chaguo lilikuwa kutekeleza pset yako tamaa na kutumia kazi modulus. 450 00:33:14,310 --> 00:33:17,230 Lakini sasa sisi ni kweli kwenda haja ya kutumia modulus, 451 00:33:17,230 --> 00:33:19,900 hivyo hebu tu kwenda juu kidogo hii ndogo. 452 00:33:19,900 --> 00:33:26,920 Kimsingi, wakati una x modulo y, kwamba anatoa salio ya x kugawanywa na y. 453 00:33:26,920 --> 00:33:30,930 Hapa ni baadhi ya mifano hapa. Tuna 27% 15. 454 00:33:30,930 --> 00:33:36,200 Kimsingi, wakati wewe Ondoa 15 kutoka 27 kwa mara nyingi kama inawezekana bila kupata hasi 455 00:33:36,200 --> 00:33:39,060 basi kupata 12 wa kushoto juu. 456 00:33:39,060 --> 00:33:44,650 Basi hiyo ni aina ya kama katika muktadha math, lakini ni jinsi gani tunaweza kweli matumizi ya hili? 457 00:33:44,650 --> 00:33:47,100 Ni kwenda kuwa na manufaa kwa wrapover yetu. 458 00:33:47,100 --> 00:33:55,420 Kwa hili, hebu sema tu mimi aliuliza wewe wote kujigawa katika vikundi 3. 459 00:33:55,420 --> 00:33:58,010 Wakati mwingine unaweza kufanya hili katika vikundi na kitu kama hicho. 460 00:33:58,010 --> 00:34:01,320 Sema mimi akasema, "Sawa, mimi nataka ninyi nyote kugawanywa katika 3." 461 00:34:01,320 --> 00:34:04,240 Jinsi gani unaweza kufanya hivyo? 462 00:34:04,240 --> 00:34:06,810 [Inaudible mwanafunzi majibu] Yeah, kwa uhakika. Hesabu mbali. Sawa. 463 00:34:06,810 --> 00:34:10,260 Hebu kweli kufanya hivyo. Je, unataka kuanza? 464 00:34:10,260 --> 00:34:13,810 [Wanafunzi kuhesabu off] 1, 2, 3, 4. 465 00:34:13,810 --> 00:34:16,620 Lakini kumbuka ... >> [Mwanafunzi] Oh, pole. 466 00:34:16,620 --> 00:34:18,730 Hiyo ni hatua nzuri kwa kweli. 467 00:34:18,730 --> 00:34:24,130 Wewe alisema 4, lakini sisi kweli nataka kusema 1 kwa sababu sisi tu kutaka makundi 3. 468 00:34:24,130 --> 00:34:30,159 Hivyo basi, jinsi - Hapana, hiyo ni mfano mzuri kwa sababu basi, jinsi utasema 1? 469 00:34:30,159 --> 00:34:33,370 Nini uhusiano kati ya 4 na 1? 470 00:34:33,370 --> 00:34:36,760 Naam, 4 Mod 3 ni 1. 471 00:34:36,760 --> 00:34:41,460 Hivyo kama wewe kuendelea, itakuwa 2. 472 00:34:41,460 --> 00:34:44,540 Hivyo tuna 1, 2, 3, 1, 2. 473 00:34:44,540 --> 00:34:49,420 Tena, wewe ni kweli mtu 5. Unajuaje kusema 2 badala ya 5? 474 00:34:49,420 --> 00:34:53,760 Unaweza kusema 5 Mod 3 ni 2. 475 00:34:53,760 --> 00:34:59,100 Nataka kuona jinsi makundi mengi ya 3 ni kushoto juu, kisha utaratibu upi ni I. 476 00:34:59,100 --> 00:35:02,860 Na hivyo basi kama sisi iliendelea pamoja chumba nzima, 477 00:35:02,860 --> 00:35:07,760 basi tunataka kuona kwamba sisi ni daima kwa kweli kutumia kazi Mod kwa wenyewe 478 00:35:07,760 --> 00:35:09,990 kwa aina ya kuhesabu mbali. 479 00:35:09,990 --> 00:35:14,490 Hiyo ni aina zaidi ya mfano yanayoonekana ya jinsi unaweza kutumia modulo 480 00:35:14,490 --> 00:35:17,960 kwa sababu mimi nina uhakika wengi wetu pengine wamekwenda kupitia mchakato wa kuwa 481 00:35:17,960 --> 00:35:19,630 ambapo tulikuwa na kuhesabu mbali. 482 00:35:19,630 --> 00:35:21,840 Maswali yoyote juu ya modulo? 483 00:35:21,840 --> 00:35:25,360 Itakuwa pretty muhimu kuelewa dhana hii, 484 00:35:25,360 --> 00:35:28,640 hivyo nataka kuhakikisha guys kuelewa. 485 00:35:28,640 --> 00:35:34,660 [Mwanafunzi] Kama kuna salio hakuna, je, ni kukupa idadi halisi? 486 00:35:34,660 --> 00:35:40,430 Kama moja ya kwanza 3 wao alikuwa amefanya hivyo, je, nimewapa kile kweli walikuwa, 487 00:35:40,430 --> 00:35:43,310 au ingekuwa ni nimewapa [inaudible] >> Hilo ni swali nzuri. 488 00:35:43,310 --> 00:35:48,750 Wakati hakuna salio kwa modulo - hivyo kusema kuwa 6 Mod 3 - 489 00:35:48,750 --> 00:35:52,340 kwamba kwa kweli anakupa nyuma 0. 490 00:35:53,670 --> 00:35:57,290 Tutazungumzia kwamba kidogo baadaye. 491 00:35:58,810 --> 00:36:07,720 Oh yeah, kwa mfano, mtu 3 - 3 Mod 3 ni kweli lakini alisema 0 3. 492 00:36:07,720 --> 00:36:14,900 Basi hiyo ni aina ya kama samaki wa ndani, kwa mfano, 493 00:36:14,900 --> 00:36:17,620 kama sawa, ikiwa ni Mod 0 basi mimi nitakuja kuwa mtu 3. 494 00:36:17,620 --> 00:36:22,740 Lakini tutaweza kupata katika aina ya jinsi sisi kutaka kukabiliana na kile 0 ni baadaye. 495 00:36:22,740 --> 00:36:32,750 Hivyo sasa sisi kwa namna fulani kuwa na njia ya ramani Zed kwa barua ya haki. 496 00:36:32,750 --> 00:36:34,920 Hivyo sasa tumeenda kwa njia ya mifano hii, 497 00:36:34,920 --> 00:36:37,880 sisi aina ya kuona jinsi Kaisari ili kazi. 498 00:36:37,880 --> 00:36:42,640 Unaweza kuona alphabets 2 na kisha kuwaona shifting. 499 00:36:42,640 --> 00:36:44,430 Basi hebu jaribu na kueleza kuwa katika suala la formula. 500 00:36:44,430 --> 00:36:46,940 Formula Hii ni kweli aliyopewa na wewe katika spec, 501 00:36:46,940 --> 00:36:52,070 lakini aina hebu ya kuangalia kwa nini kila variable maana yake. 502 00:36:52,070 --> 00:36:55,000 Mwisho wetu matokeo ni kwenda kuwa nakala ya siri. 503 00:36:55,000 --> 00:36:58,300 Hivyo hii anasema kwamba, tabia idh ya nakala ya siri 504 00:36:58,300 --> 00:37:02,500 ni kwenda yanahusiana na tabia idh ya maandishi wazi. 505 00:37:02,500 --> 00:37:08,130 Kwamba inafanya hisia kwa sababu tunataka daima bitana mambo haya juu. 506 00:37:08,130 --> 00:37:13,480 Hivyo ni kwenda kuwa tabia idh ya nakala ya siri plus k, ambayo ni muhimu yetu - 507 00:37:13,480 --> 00:37:17,230 kwamba inafanya hisia - na kisha tuna hii Mod 26. 508 00:37:17,230 --> 00:37:19,860 Kumbuka nyuma wakati tulikuwa na Zed 509 00:37:19,860 --> 00:37:24,190 sisi hakutaka kuingia katika tabia, hivyo sisi alitaka Mod ni 510 00:37:24,190 --> 00:37:26,540 na aina ya wrap kuzunguka alfabeti. 511 00:37:26,540 --> 00:37:33,430 Baada ya Zed ungependa kwenda, b, c, d, mpaka wewe got idadi ya haki. 512 00:37:33,430 --> 00:37:44,690 Hivyo tunajua kwamba Zed, ikiwa + 6, atatupa f kwa sababu baada ya Zed inakuja, b, c, d, e, f. 513 00:37:44,690 --> 00:37:52,530 Basi hebu kumbuka sisi kujua kwa uhakika kwamba zed + 6 ni kwenda kutupa f. 514 00:37:52,530 --> 00:38:03,530 Katika maadili ASCII, z ni 122 na f ni 102. 515 00:38:03,530 --> 00:38:10,570 Hivyo inabidi kutafuta baadhi ya njia ya maamuzi yetu Kaisari formula kutupatia 102 516 00:38:10,570 --> 00:38:13,590 baada ya kuchukua katika 122. 517 00:38:13,590 --> 00:38:19,550 Hivyo kama sisi tu kuomba hii formula,% ('z' + 6) 26, kwamba kwa kweli anakupa 24 518 00:38:19,550 --> 00:38:25,980 kwa sababu 122 + 6 ni 128; 128% 26 inakupa 24 salio. 519 00:38:25,980 --> 00:38:29,140 Lakini hiyo haina maana ya kweli f. Hiyo ni dhahiri si 102. 520 00:38:29,140 --> 00:38:33,590 Hiyo pia si barua 6 katika alfabeti. 521 00:38:33,590 --> 00:38:41,550 Hivyo ni wazi, tunahitaji kuwa na baadhi ya njia ya tweaking hii kidogo kidogo. 522 00:38:42,970 --> 00:38:51,340 Katika suala la alfabeti ya mara kwa mara, tunajua kwamba z ni barua 26 na f ni 6. 523 00:38:51,340 --> 00:38:55,460 Lakini tuko katika sayansi ya kompyuta, hivyo tunakwenda index saa 0. 524 00:38:55,460 --> 00:39:00,690 Hivyo basi badala ya z kuwa namba 26, sisi ni kwenda kusema idadi ni 25 525 00:39:00,690 --> 00:39:02,630 kwa sababu ni 0. 526 00:39:02,630 --> 00:39:04,770 Hivyo sasa hebu kuomba hii formula. 527 00:39:04,770 --> 00:39:11,710 Tuna z kuwakilishwa na 25 + 6, ambayo inakupa 31. 528 00:39:11,710 --> 00:39:15,790 Na 31 Mod 26 inakupa 5 kama salio. 529 00:39:15,790 --> 00:39:20,500 Hiyo ni kamili kwa sababu tunajua kwamba f ni barua 5 katika alfabeti. 530 00:39:20,500 --> 00:39:26,400 Lakini bado ni si f, haki? Ni bado ni si 102. 531 00:39:26,400 --> 00:39:32,730 Hivyo basi kwa pset hii, changamoto itakuwa kujaribu kujua uhusiano 532 00:39:32,730 --> 00:39:36,910 kati ya kuwageuza kati ya maadili haya ASCII na index alfabeti. 533 00:39:36,910 --> 00:39:40,280 Kimsingi, nini utasikia wanataka kufanya, unataka kuanza nje na maadili ASCII, 534 00:39:40,280 --> 00:39:45,390 lakini kisha unataka namna fulani kwamba kutafsiri katika index alfabeti 535 00:39:45,390 --> 00:39:52,610 kisha hesabu herufi gani ni lazima - kimsingi, nini wake herufi index ni 536 00:39:52,610 --> 00:39:57,660 wa tabia cipher - kisha kutafsiri kwamba nyuma ya maadili ASCII. 537 00:39:57,660 --> 00:40:04,870 Hivyo kama wewe mjeledi nje meza yako ASCII, basi kujaribu na kutafuta mahusiano kati ya, wanasema, 102 na 5 538 00:40:04,870 --> 00:40:10,440 au 122 na 25. 539 00:40:12,140 --> 00:40:15,690 Tumekuwa Gotten ufunguo wetu kutoka hoja mstari amri, tumekuwa Gotten maandishi wazi, 540 00:40:15,690 --> 00:40:17,520 tumekuwa enciphered yake. 541 00:40:17,520 --> 00:40:19,820 Sasa wote tuna baki ni magazeti hayo. 542 00:40:19,820 --> 00:40:22,040 Tunaweza kufanya hili michache ya njia tofauti. 543 00:40:22,040 --> 00:40:24,570 Nini tunaweza kufanya ni kweli magazeti kama sisi kwenda pamoja. 544 00:40:24,570 --> 00:40:28,250 Kama sisi iterate juu ya wahusika katika kamba, 545 00:40:28,250 --> 00:40:31,660 tunaweza tu tu magazeti haki basi wakati sisi hesabu yake. 546 00:40:31,660 --> 00:40:36,030 Vinginevyo, unaweza pia kuhifadhi katika safu na kuwa na safu ya wahusika 547 00:40:36,030 --> 00:40:39,280 na mwishoni iterate juu ya safu kwamba nzima na magazeti nje. 548 00:40:39,280 --> 00:40:40,980 Hivyo kuwa na michache ya chaguzi kwa ajili hiyo. 549 00:40:40,980 --> 00:40:47,280 Na kumbuka kwamba% c ni kwenda kuwa placeholder kwa kuchapa tabia. 550 00:40:47,280 --> 00:40:50,420 Hivyo kuna tuna Kaisari, na sasa sisi kuendelea na Vigenere, 551 00:40:50,420 --> 00:40:57,580 ambayo ni sawa na Kaisari lakini kidogo tu ngumu zaidi. 552 00:40:57,580 --> 00:41:03,310 Hivyo kimsingi na Vigenere ni wewe utaenda kupita katika Keyword. 553 00:41:03,310 --> 00:41:06,510 Hivyo badala ya namba, wewe utaenda kuwa na kamba, 554 00:41:06,510 --> 00:41:09,200 na ili kwenda kutenda kama Keyword yako. 555 00:41:09,200 --> 00:41:14,440 Kisha, kama kawaida, wewe ni kwenda kupata haraka kwa ajili ya kamba kutoka kwa mtumiaji 556 00:41:14,440 --> 00:41:19,050 na kisha encipher yake na kisha kuwapa nyuma nakala ya siri. 557 00:41:19,050 --> 00:41:24,650 Hivyo kama nilivyosema, ni sawa sana kwa Kaisari, ila badala ya shifting kwa idadi fulani, 558 00:41:24,650 --> 00:41:30,620 idadi ni kweli kwenda kubadili kila wakati kutoka tabia ya tabia. 559 00:41:30,620 --> 00:41:34,890 Kuwakilisha kwamba idadi halisi kuhama, ni kuwakilishwa na barua keyboard. 560 00:41:34,890 --> 00:41:43,150 Hivyo kama wewe kuingia katika mabadiliko ya, kwa mfano, basi hiyo itakuwa yanahusiana na mabadiliko ya 0. 561 00:41:43,150 --> 00:41:45,900 Hivyo ni tena nyuma index alfabeti. 562 00:41:45,900 --> 00:41:49,100 Nini kinaweza kuwa na manufaa kama wewe ni kuona kwamba sisi ni kweli kushughulika na maadili ASCII 563 00:41:49,100 --> 00:41:51,790 kama vile barua, kama vile index ya alfabeti, 564 00:41:51,790 --> 00:41:58,020 labda kupata au kufanya ASCII yako mwenyewe meza ambayo inaonyesha index herufi ya 25 kupitia 0, 565 00:41:58,020 --> 00:42:03,750 kupitia z, na maadili ASCII ili uweze aina ya kuona uhusiano 566 00:42:03,750 --> 00:42:07,020 na mchoro nje na kujaribu na kupata mwelekeo fulani. 567 00:42:07,020 --> 00:42:11,010 Vile vile, kama wewe walikuwa shifting katika mfano mmoja na f - 568 00:42:11,010 --> 00:42:21,110 na hii ni aidha f lowercase au uppercase - kisha ambayo yanahusiana na 5. 569 00:42:21,110 --> 00:42:24,180 Je, sisi nzuri hadi sasa? 570 00:42:25,770 --> 00:42:30,050 formula kwa Vigenere ni tofauti kidogo. 571 00:42:30,050 --> 00:42:32,960 Kimsingi, unaweza kuona kwamba ni tu kama Kaisari, 572 00:42:32,960 --> 00:42:37,390 isipokuwa tu badala ya k tuna k index j. 573 00:42:37,390 --> 00:42:44,810 Ona kwamba sisi siyo kutumia i kwa sababu kimsingi, urefu wa Keyword 574 00:42:44,810 --> 00:42:49,850 si lazima urefu wa nakala ya siri yetu. 575 00:42:49,850 --> 00:42:56,130 Hii itakuwa ni wazi kidogo wakati tunaona mfano kwamba mimi kuwa na kidogo baadaye. 576 00:42:56,130 --> 00:43:03,160 Kimsingi, kama wewe kuendesha programu yako kwa Keyword ya ohai, 577 00:43:03,160 --> 00:43:08,560 basi hiyo ina maana kwamba kila wakati, ohai ni kwenda na mabadiliko yako. 578 00:43:08,560 --> 00:43:11,060 Hivyo kutegemea na nini nafasi ya wewe ni katika Keyword yako, 579 00:43:11,060 --> 00:43:15,800 utaenda kuhama nakala ya siri yako fulani tabia kwa kiasi hicho. 580 00:43:15,800 --> 00:43:19,630 Tena, kama Kaisari, tunataka kuhakikisha kwamba sisi kuhifadhi mtaji wa mambo 581 00:43:19,630 --> 00:43:22,900 na sisi tu encipher barua, si wahusika au mazingira. 582 00:43:22,900 --> 00:43:26,330 Hivyo kuangalia nyuma kwa Kaisari juu ya majukumu ya kwamba unaweza kuwa kutumika, 583 00:43:26,330 --> 00:43:32,570 njia ambayo wewe kuamua jinsi ya kuhama mambo, na kuomba kwamba kwa mpango wako hapa. 584 00:43:32,570 --> 00:43:35,260 Basi hebu ramani hii nje. 585 00:43:35,260 --> 00:43:39,680 Tuna maandishi wazi kwamba tumekuwa wamezipata kutoka kwa mtumiaji kutoka GetString 586 00:43:39,680 --> 00:43:44,090 akisema huu ... ni CS50! 587 00:43:44,090 --> 00:43:47,090 Basi tuna neno la ufunguo wa ohai. 588 00:43:47,090 --> 00:43:50,930 kwanza 4 wahusika ni pretty rahisi. 589 00:43:50,930 --> 00:43:55,580 Tunajua kwamba T ni kwenda kuwa kubadilishwa kwa o, 590 00:43:55,580 --> 00:44:01,990 kisha h ni kwenda kubadilishwa na h, i ni kwenda kubadilishwa kwa. 591 00:44:01,990 --> 00:44:04,610 Hapa unaweza kuona kwamba inawakilisha 0, 592 00:44:04,610 --> 00:44:11,940 hivyo basi thamani mwisho ni kweli tu barua sawa kabla. 593 00:44:11,940 --> 00:44:15,250 Kisha s ni kubadilishwa kwa i. 594 00:44:15,250 --> 00:44:19,370 Lakini basi una vipindi hivi hapa. 595 00:44:19,370 --> 00:44:25,960 Sisi hatutaki encipher kwamba, hivyo basi hatuwezi kubadilisha kitu chochote na 596 00:44:25,960 --> 00:44:31,280 na tu magazeti nje kipindi unchanged. 597 00:44:31,280 --> 00:44:38,020 [Mwanafunzi] Sielewi jinsi unajua kwamba hii ni kubadilishwa kwa - wapi Ulifanya - >> Oh, sorry. 598 00:44:38,020 --> 00:44:41,620 Saa ya juu hapa unaweza kuona kwamba mstari amri hoja ohai hapa, 599 00:44:41,620 --> 00:44:43,740 kwamba itakuja kuwa Keyword. 600 00:44:43,740 --> 00:44:49,550 Na hivyo kimsingi, wewe baiskeli juu ya wahusika katika Keyword. 601 00:44:49,550 --> 00:44:52,020 [Mwanafunzi] Basi o ni kwenda shifting sawa - 602 00:44:52,020 --> 00:44:56,260 Hivyo o sambamba na idadi fulani katika alfabeti. 603 00:44:56,260 --> 00:44:58,400 [Mwanafunzi] Haki. Lakini wapi kupata sehemu CS50 kutoka? 604 00:44:58,400 --> 00:45:02,540 Oh. Hiyo ni katika GetString ambapo wewe ni kama, "Nipe kamba encode." 605 00:45:02,540 --> 00:45:07,510 [Mwanafunzi] Wao wanaenda kukupa kwamba hoja kuhama kwa 606 00:45:07,510 --> 00:45:09,380 na kisha utasikia kuuliza kwa kamba yako ya kwanza. >> Yeah. 607 00:45:09,380 --> 00:45:12,440 Basi walipo kuendesha programu, wao wanaenda pamoja Keyword 608 00:45:12,440 --> 00:45:14,740 katika amri zao line hoja wakati wao kukimbia. 609 00:45:14,740 --> 00:45:19,740 Kisha mara moja umefanya checked kwamba wameweza kweli kupeni 1 na si zaidi, si chini, 610 00:45:19,740 --> 00:45:23,750 kisha utaenda kuwachochea kwa kamba, wanasema, "Nipe kamba." 611 00:45:23,750 --> 00:45:27,630 Hivyo hiyo ambapo katika kesi hii wameweza kupeni huu ... ni CS50! 612 00:45:27,630 --> 00:45:32,090 Hivyo basi wewe ni kwenda kutumia kwamba na kutumia ohai na iterate juu. 613 00:45:32,090 --> 00:45:38,200 Ona kwamba hapa sisi skipped juu ya encrypting vipindi, 614 00:45:38,200 --> 00:45:51,660 lakini katika suala la msimamo wetu kwa ohai, moja ijayo sisi kutumika o. 615 00:45:51,660 --> 00:45:54,990 Katika kesi hii ni vigumu kidogo kuona kwa sababu hiyo ni 4, 616 00:45:54,990 --> 00:45:57,710 hivyo hebu kuendelea kidogo. Tu fimbo na mimi hapa. 617 00:45:57,710 --> 00:46:02,960 Basi tuna i na s, ambayo ni basi Tafsiri kwa o na h mtiririko huo. 618 00:46:02,960 --> 00:46:09,370 Basi tuna nafasi, na hivyo basi tunajua kwamba sisi si kwenda encipher mazingira. 619 00:46:09,370 --> 00:46:18,930 Lakini ona kwamba badala ya kwenda katika doa haki hii hapa, 620 00:46:18,930 --> 00:46:28,330 tuko encrypting na - mimi sijui kama unaweza kuona kwamba - haki hapa. 621 00:46:28,330 --> 00:46:33,710 Hivyo si kama wewe kweli predetermined, kusema, o huenda hapa, h huenda hapa, 622 00:46:33,710 --> 00:46:39,200 huenda hapa, i huenda hapa, o, h,, i, o, h,, i. Huwezi kufanya hivyo. 623 00:46:39,200 --> 00:46:43,760 Wewe tu kuhama nafasi yako katika Keyword 624 00:46:43,760 --> 00:46:51,020 wakati unajua kwamba wewe ni kweli kwenda kuwa encrypting barua halisi. 625 00:46:51,020 --> 00:46:53,920 Je, hiyo aina ya mantiki? 626 00:46:53,920 --> 00:46:55,800 Sawa. 627 00:46:56,490 --> 00:46:58,500 Hivyo baadhi tu kuwakumbusha. 628 00:46:58,500 --> 00:47:03,760 Wewe unataka kuhakikisha kwamba wewe tu mapema ili barua ijayo katika Keyword yako 629 00:47:03,760 --> 00:47:06,390 kama tabia yako katika maandishi wazi ni barua. 630 00:47:06,390 --> 00:47:09,120 Hivyo kusema sisi ni saa o. 631 00:47:09,120 --> 00:47:19,310 Tunaona kwamba, tabia ijayo, index i wa maandishi wazi, ni idadi, kwa mfano. 632 00:47:19,310 --> 00:47:31,630 Kisha sisi wala kuendeleza j, index kwa Keyword zetu, hata sisi kufikia barua nyingine. 633 00:47:31,630 --> 00:47:36,230 Tena, wewe pia wanataka kuhakikisha kuwa wewe iliyomficha mwanzo wa Keyword 634 00:47:36,230 --> 00:47:37,770 wakati uko katika mwisho wake. 635 00:47:37,770 --> 00:47:42,030 Kama unaweza kuona hapa sisi ni saa i, moja ijayo ina kuwa o. 636 00:47:42,030 --> 00:47:47,690 Hivyo unataka kupata baadhi ya njia ya kuwa na uwezo wa iliyomficha mwanzo wa Keyword yako 637 00:47:47,690 --> 00:47:49,470 kila wakati kwamba kufikia mwisho. 638 00:47:49,470 --> 00:47:55,040 Na hivyo tena, aina gani ya operator ni muhimu katika kesi hiyo kwa wrapping kote? 639 00:47:56,630 --> 00:47:59,840 Kama ilivyo katika kuhesabu mbali mfano. 640 00:47:59,840 --> 00:48:03,710 [Mwanafunzi] ishara asilimia. >> Yeah, ishara asilimia, ambayo ni modulo. 641 00:48:03,710 --> 00:48:11,250 Hivyo modulo atakuja katika Handy hapa wakati unataka wrap juu ya index katika ohai yako. 642 00:48:11,250 --> 00:48:17,700 Na tu ladha haraka: Jaribu kufikiria wrapping zaidi Keyword kidogo kama mbali kuhesabu, 643 00:48:17,700 --> 00:48:23,590 ambapo kama kuna 3 vikundi, mtu 4, 644 00:48:23,590 --> 00:48:30,610 idadi yao kuwa walisema ilikuwa 4 Mod 3, ambayo ilikuwa 1. 645 00:48:30,610 --> 00:48:32,880 Hivyo kujaribu na kufikiria njia hiyo. 646 00:48:34,770 --> 00:48:42,740 Kama wewe aliona katika formula, popote una ci na kisha pi lakini basi KJ, 647 00:48:42,740 --> 00:48:44,700 unataka kuhakikisha kwamba kuweka wimbo wa wale. 648 00:48:44,700 --> 00:48:47,580 Huna haja ya kumwita i, huna haja ya kuiita j, 649 00:48:47,580 --> 00:48:53,270 lakini wewe unataka kuhakikisha kwamba kuweka wimbo wa msimamo kuwa uko katika maandishi wazi katika yako 650 00:48:53,270 --> 00:48:55,790 kama vile nafasi ya kuwa uko katika katika Keyword yako 651 00:48:55,790 --> 00:48:59,840 kwa sababu wale si lazima kwenda kuwa sawa. 652 00:48:59,840 --> 00:49:06,400 Si tu haina Keyword - inaweza kuwa urefu tofauti kabisa kuliko maandishi wazi yako. 653 00:49:06,400 --> 00:49:09,140 Pia, maandishi wazi wako, kuna idadi na wahusika, 654 00:49:09,140 --> 00:49:14,450 hivyo si kwenda kikamilifu match up pamoja. Ndiyo. 655 00:49:14,450 --> 00:49:19,280 [Mwanafunzi] Je, kuna kazi ya kubadilisha kesi? 656 00:49:19,280 --> 00:49:24,530 Je, unaweza kubadilisha mji mkuu? >> Yeah, kuna dhahiri ni. 657 00:49:24,530 --> 00:49:27,890 Unaweza kuangalia - naamini toupper ni, wote neno 1. 658 00:49:30,650 --> 00:49:36,310 Lakini wakati wewe ni kujaribu cipher mambo na kuhifadhi maandishi, 659 00:49:36,310 --> 00:49:39,350 ni bora kimsingi kuwa na kesi tofauti. 660 00:49:39,350 --> 00:49:42,040 Kama ni uppercase, kisha unataka kuhama kwa hii 661 00:49:42,040 --> 00:49:46,460 kwa sababu katika formula yako, wakati ukiangalia nyuma jinsi tuna aina ya go 662 00:49:46,460 --> 00:49:50,900 kubadilishana kati ya njia ASCII ya anayewakilisha idadi 663 00:49:50,900 --> 00:49:55,020 na halisi alfabeti index, tunataka kuhakikisha 664 00:49:55,020 --> 00:50:01,850 kuna kwenda kuwa baadhi ya aina ya muundo kwamba utaenda kutumia. 665 00:50:01,850 --> 00:50:04,580 Mwingine kumbuka juu ya muundo, kwa kweli. 666 00:50:04,580 --> 00:50:07,250 Utaenda dhahiri kuwa kushughulika na idadi. 667 00:50:07,250 --> 00:50:11,280 Jaribu kutumia namba uchawi, ambayo ni mfano wa mtindo. 668 00:50:11,280 --> 00:50:18,470 Hivyo kusema unataka kila kitu wakati kuhama na kama - 669 00:50:18,470 --> 00:50:22,400 Sawa, hivyo ladha, spoiler mwingine ni wakati wewe ni kwenda kuwa kitu shifting 670 00:50:22,400 --> 00:50:26,310 kwa kiasi fulani, jaribu kuwakilisha kwamba kwa idadi halisi 671 00:50:26,310 --> 00:50:32,810 lakini badala ya kujaribu na kuona kama unaweza kutumia thamani ASCII, ambayo itakuwa ya aina ya kufanya zaidi ya akili. 672 00:50:32,810 --> 00:50:35,470 Mwingine kumbuka: Kwa sababu sisi ni kushughulika na formula, 673 00:50:35,470 --> 00:50:41,200 ingawa TF wako aina ya kujua nini mfano unaweza kutumia, 674 00:50:41,200 --> 00:50:44,430 bora katika aina yako maoni ya kueleza mantiki, kama, 675 00:50:44,430 --> 00:50:51,880 "Mimi nina kutumia muundo huu kwa sababu ..." na aina ya kueleza mfano succinctly katika maoni yako. 676 00:50:54,090 --> 00:50:58,990 [Hii ilikuwa walkthrough 2] Kama kuna mtu yoyote maswali mengine, basi mimi itabidi tu kukaa hapa kwa muda kidogo. 677 00:50:58,990 --> 00:51:04,370 Bahati nzuri na pset yako 2: Crypto na shukrani kwa kuja. 678 00:51:06,070 --> 00:51:08,620 [Mwanafunzi] Asante. >> Shukrani. 679 00:51:09,220 --> 00:51:10,800 [Media Offline intro]