1 00:00:00,000 --> 00:00:07,810 2 00:00:07,810 --> 00:00:09,840 >> JASON HIRSCHHORN: Karibu, kila mtu, Wiki 6. 3 00:00:09,840 --> 00:00:14,790 Mimi nina furaha kuona nyote hai na vizuri baada ya Quiz 0, kwa sababu najua kwamba 4 00:00:14,790 --> 00:00:15,810 ilikuwa ni kidogo mbaya. 5 00:00:15,810 --> 00:00:18,370 Bali nashiriki, nyote alifanya incredibly vizuri. 6 00:00:18,370 --> 00:00:21,680 Na hivyo kuwa ni ya ajabu. 7 00:00:21,680 --> 00:00:25,840 Kama uko katika sehemu yangu, nimekuwa kutokana na wengi yenu nyuma Quizzes yako tayari. 8 00:00:25,840 --> 00:00:28,050 >> michache ya wewe, mimi nina mkutano baada ya darasa. 9 00:00:28,050 --> 00:00:32,360 Na kama wewe ni ugani mwanafunzi na si kupokea jaribio wako nyuma 10 00:00:32,360 --> 00:00:35,490 Hata hivyo, TF yako pengine ni kazi yake na wanasawazisha barabara hiyo, na kupata nyuma 11 00:00:35,490 --> 00:00:36,490 kwenu hivi karibuni. 12 00:00:36,490 --> 00:00:39,650 Hivyo yangu ugani wanafunzi ambao ni kuangalia hivi sasa - hopefully kuishi - 13 00:00:39,650 --> 00:00:42,880 Mimi kupata Quizzes yako muda mfupi pia. 14 00:00:42,880 --> 00:00:45,670 >> Ajenda yetu kwa leo ni kama ifuatavyo. 15 00:00:45,670 --> 00:00:50,170 Kwanza, sisi ni kwenda juu ya baadhi ya rasilimali CS50 hutoa na wewe. 16 00:00:50,170 --> 00:00:54,590 Sisi ni kwenda juu Quiz 0 ijayo, na Mimi itabidi kujibu maswali yoyote mtu yeyote 17 00:00:54,590 --> 00:00:57,360 ina kuhusu matatizo fulani. 18 00:00:57,360 --> 00:01:02,050 Na kisha, sisi kwenda juu ya file I / O na kuweka tatizo 5. 19 00:01:02,050 --> 00:01:07,360 Wale mada miwili iliyopita itachukua juu ya wingi wa sehemu leo. 20 00:01:07,360 --> 00:01:11,680 >> Mimi kuweka orodha hii juu ya kila wiki kama mawaidha kwa ninyi nyote, lakini ya msingi 21 00:01:11,680 --> 00:01:14,650 sehemu, sisi tu na dakika 90 - sisi si uwezo wa kufunika kila kitu mimi 22 00:01:14,650 --> 00:01:16,280 ingekuwa na upendo na bima kwa ajili ya nyie. 23 00:01:16,280 --> 00:01:21,170 Lakini sisi kufanya kuwa na tani ya rasilimali kwa ajili ya wewe kuteka juu ya kama kupata kujua 24 00:01:21,170 --> 00:01:24,000 vifaa na kazi kwa njia ya tatizo lako seti. 25 00:01:24,000 --> 00:01:30,810 >> kukumbusha kuwa nina online Nakala sanduku, kuanzisha kwa ajili yenu kujaza kama wewe 26 00:01:30,810 --> 00:01:33,250 una maoni yoyote kwa ajili yangu, chanya na 27 00:01:33,250 --> 00:01:35,180 kujenga, juu ya sehemu. 28 00:01:35,180 --> 00:01:38,600 URL kwamba iko haki hapa chini. 29 00:01:38,600 --> 00:01:43,250 Hivyo tafadhali, kuchukua muda kama una maoni, ama wakati wa sehemu, 30 00:01:43,250 --> 00:01:48,030 au baada ya, au baada ya wewe kuangalia video online, nipe maoni yako. 31 00:01:48,030 --> 00:01:52,100 Mimi kwa kweli kufahamu yoyote na yote. 32 00:01:52,100 --> 00:01:55,730 >> Hivyo nimekuwa kuwa na mazungumzo ndogo na mengi ya yangu 33 00:01:55,730 --> 00:01:59,350 wanafunzi katika wiki - kama mimi mkono nyuma Quizzes, kuzungumza juu ya 34 00:01:59,350 --> 00:02:01,480 Bila shaka, kuona ni jinsi gani unafanya. 35 00:02:01,480 --> 00:02:05,120 Na moja mandhari ina kuja juu ya na zaidi katika kuzungumza juu - katika 36 00:02:05,120 --> 00:02:05,660 hasa - 37 00:02:05,660 --> 00:02:07,710 tatizo seti. 38 00:02:07,710 --> 00:02:13,090 Na mimi zimegawanywa mandhari kwamba juu ya bodi ya hivi sasa. 39 00:02:13,090 --> 00:02:16,630 >> Kimsingi, kuna tofauti kati ya kugeuka katika kitu ambacho ni 40 00:02:16,630 --> 00:02:19,590 kufanyika kwa usahihi na kitu kwamba ni vizuri. 41 00:02:19,590 --> 00:02:22,920 Watu wengi wamekuwa wakifanya ajabu katika suala la usahihi - 42 00:02:22,920 --> 00:02:25,460 5 au 4 juu ya psets wote. 43 00:02:25,460 --> 00:02:27,930 Watu wengi ni kupata wale wakati wote. 44 00:02:27,930 --> 00:02:31,150 >> Hata hivyo, kwa sababu tu umefanya kosa kitu sahihi haina maana wameweza 45 00:02:31,150 --> 00:02:34,450 amefanya kitu kama elegantly, au ufanisi, au kama cleanly kama wewe 46 00:02:34,450 --> 00:02:35,270 wangefanya hivyo. 47 00:02:35,270 --> 00:02:36,790 Na kwamba ni nini design - 48 00:02:36,790 --> 00:02:39,230 na kwa mdogo shahada, style - 49 00:02:39,230 --> 00:02:40,450 shoka ni kwa. 50 00:02:40,450 --> 00:02:45,130 Kwa hiyo mimi ni kusukuma yenu nyote, na TFS nyingine wanashinikiza nyie, na si tu upande 51 00:02:45,130 --> 00:02:48,320 katika mambo ambayo ni sahihi, lakini kugeuka katika mambo ambayo ni kutolewa vizuri. 52 00:02:48,320 --> 00:02:53,060 >> Si kufanya unnecessary kwa tanzi, si hesabu kwa vigezo kama 53 00:02:53,060 --> 00:02:53,800 huna kwa. 54 00:02:53,800 --> 00:02:58,520 Kwa mfano, kuangalia nyuma kuweka tatizo 4, wakati wa kuweka matofali juu ya 55 00:02:58,520 --> 00:03:03,070 screen, kila mstari - kila tofali katika mstari kutokana na ina sawa y kuratibu - 56 00:03:03,070 --> 00:03:04,390 urefu sawa kuratibu. 57 00:03:04,390 --> 00:03:07,930 >> Ili y kuratibu hakuwa na haja ya kuwa mahesabu ndani ya mambo ya ndani 58 00:03:07,930 --> 00:03:11,070 Furushi kwa kitanzi kwamba uwezekano kutumika kuweka matofali wale screen. 59 00:03:11,070 --> 00:03:14,030 Tu mahitaji kuwa mahesabu kila wakati switched mstari, au 60 00:03:14,030 --> 00:03:15,200 wakiongozwa chini ya mstari. 61 00:03:15,200 --> 00:03:19,760 Hivyo kusema kama kuna matofali 10 katika mstari, kila matofali inaweza kuwa sawa 62 00:03:19,760 --> 00:03:22,260 y-kuratibu, na kwamba y kuratibu unaweza tu kuwa mahesabu 63 00:03:22,260 --> 00:03:23,550 mara moja kwa wale wote. 64 00:03:23,550 --> 00:03:27,810 >> Haina haja ya kuwa na mahesabu 10 mara, wala kwamba hesabu haja ya 65 00:03:27,810 --> 00:03:30,220 kutokea katika halisi kazi wito - 66 00:03:30,220 --> 00:03:33,020 mpya gracked kazi simu. 67 00:03:33,020 --> 00:03:37,820 Hivyo kama kwamba alikuwa utata kidogo kwa wewe, zaidi yaliyotokea, mambo ambayo 68 00:03:37,820 --> 00:03:40,730 hawana haja ya kutokea kila wakati kwenda kwa njia ya kitanzi kwa haipaswi 69 00:03:40,730 --> 00:03:42,900 kuweka ndani ya kitanzi kwa, na lazima si kutokea kila wakati kwenda 70 00:03:42,900 --> 00:03:44,080 kwa njia ya kitanzi YA. 71 00:03:44,080 --> 00:03:49,270 >> Nyingine nzuri kubuni mfano tuliona katika wiki ya 3 kwa ajili ya 15, unaweza kuweka 72 00:03:49,270 --> 00:03:50,500 wimbo wa sifuri. 73 00:03:50,500 --> 00:03:53,600 Hivyo wakati wewe initialize bodi, wewe kuokoa - katika variable kimataifa, labda - 74 00:03:53,600 --> 00:03:56,140 x na y kuratibu ya sifuri. 75 00:03:56,140 --> 00:03:57,520 Na kisha wakati wowote - 76 00:03:57,520 --> 00:04:00,310 katika hoja yako ya kazi, wakati wowote kufanya hoja mafanikio, update 77 00:04:00,310 --> 00:04:02,040 eneo la sifuri. 78 00:04:02,040 --> 00:04:06,240 >> Hiyo kukuokoa kutokana na kuwa na kufanya Furushi kwa tanzi kuangalia njia 79 00:04:06,240 --> 00:04:10,700 bodi ya kila wakati katika hoja yako kazi na kupata sifuri, au kupata tile, 80 00:04:10,700 --> 00:04:12,460 na kisha kuangalia nini karibu na hiyo. 81 00:04:12,460 --> 00:04:16,329 Badala yake, una eneo la zero, unaweza kuangalia tu hapo juu, chini, 82 00:04:16,329 --> 00:04:21,160 na kwa upande wa kushoto na haki yake, ili kupata tile walikuwa kuangalia kwa. 83 00:04:21,160 --> 00:04:24,970 >> Hivyo katika suala la mipango tuko kuandika, wao ni kamwe kubwa ya kutosha 84 00:04:24,970 --> 00:04:28,580 kwamba baadhi ya maamuzi haya kubuni ni kweli kwenda kudhoofisha yako 85 00:04:28,580 --> 00:04:31,670 mpango, au kufanya hivyo kukimbia polepole zaidi, au pengine hata kukimbia nje ya kumbukumbu. 86 00:04:31,670 --> 00:04:35,030 Lakini sisi bado ni kusukuma nyie kuandika kama kifahari na 87 00:04:35,030 --> 00:04:36,450 code ufanisi iwezekanavyo. 88 00:04:36,450 --> 00:04:39,910 >> Hivyo kama wewe kufanya kuishia kuandika mambo kuwa na kiasi kikubwa kubwa 89 00:04:39,910 --> 00:04:44,660 upeo, wao itakuwa imeandikwa kwa wema kubuni pamoja na kuwa sahihi. 90 00:04:44,660 --> 00:04:46,300 Hivyo idadi ya una kuletwa kwamba nje. 91 00:04:46,300 --> 00:04:48,560 Hiyo ni kitu sisi ni kuangalia kwa - kitu sisi ni kwenda kuendelea 92 00:04:48,560 --> 00:04:49,840 kushinikiza wewe guys juu. 93 00:04:49,840 --> 00:04:52,460 >> Ikiwa una maswali yoyote kuhusu mpango wa mpango wako, kujisikia huru 94 00:04:52,460 --> 00:04:56,870 kufikia nje kwangu, na mimi nina furaha kutembea kwa njia ya mpango wako na wewe, 95 00:04:56,870 --> 00:05:01,320 na uhakika baadhi ya kubuni maamuzi yaliyotolewa, na kuwapa baadhi ya 96 00:05:01,320 --> 00:05:06,240 mapendekezo ya jinsi ya kufanya hata kubuni maamuzi bora. 97 00:05:06,240 --> 00:05:08,870 >> Hivyo sisi ni kwenda kwa hoja juu ya kuzungumza juu ya Quiz 0. 98 00:05:08,870 --> 00:05:11,300 Kabla ya sisi kufanya hivyo, mtu yeyote anaweza una maswali yoyote kuhusu nini 99 00:05:11,300 --> 00:05:14,252 Nimekuwa kufunikwa hadi sasa? 100 00:05:14,252 --> 00:05:21,500 >> [Wezi NOISE] 101 00:05:21,500 --> 00:05:22,750 >> JASON HIRSCHHORN: sekunde saba. 102 00:05:22,750 --> 00:05:23,250 OK. 103 00:05:23,250 --> 00:05:24,970 Hebu majadiliano juu ya Quiz 0 kwa kidogo. 104 00:05:24,970 --> 00:05:26,700 Wengi wenu na Quiz yako 0 nyuma. 105 00:05:26,700 --> 00:05:29,820 Kama huna, hopefully unakumbuka ni kidogo. 106 00:05:29,820 --> 00:05:34,770 Lakini kama wewe wameweza kuchukuliwa Quiz 0, basi pia kupata PDF online katika 107 00:05:34,770 --> 00:05:35,890 sampuli ufumbuzi. 108 00:05:35,890 --> 00:05:39,480 >> Je, mtu yeyote una maswali yoyote kabla ya sisi kuruka katika nyenzo wiki kuhusu 109 00:05:39,480 --> 00:05:41,520 tatizo fulani juu ya Quiz 0 - 110 00:05:41,520 --> 00:05:44,630 kwa nini jibu ni nini? 111 00:05:44,630 --> 00:05:47,255 Je kuna mtu yeyote kuchanganyikiwa kuhusu kitu chochote? 112 00:05:47,255 --> 00:05:50,230 Hata kama wewe got tatizo haki, lakini tu bila kama mimi kueleza ni kidogo 113 00:05:50,230 --> 00:05:52,640 zaidi, mimi nina furaha kwa kufanya hivyo sasa. 114 00:05:52,640 --> 00:05:57,800 >> Hivyo mimi aliuliza wewe guys kwa kuja tayari kwa baadhi 115 00:05:57,800 --> 00:05:59,440 mawazo kuhusu Quiz 0. 116 00:05:59,440 --> 00:06:02,660 Kwa hiyo nani ungependa kupata sisi ilianza na swali au 117 00:06:02,660 --> 00:06:04,655 maoni kuhusu Quiz 0? 118 00:06:04,655 --> 00:06:07,435 119 00:06:07,435 --> 00:06:10,410 >> [PAPER wezi] 120 00:06:10,410 --> 00:06:11,470 >> JASON HIRSCHHORN: Si kila mtu alifanya kikamilifu. 121 00:06:11,470 --> 00:06:12,720 Hivyo najua [anacheka] 122 00:06:12,720 --> 00:06:15,950 huko kuwa baadhi ya maswali kuhusu Quiz 0. 123 00:06:15,950 --> 00:06:27,940 124 00:06:27,940 --> 00:06:28,590 OK. 125 00:06:28,590 --> 00:06:29,210 Ndiyo. 126 00:06:29,210 --> 00:06:29,600 Ompica. 127 00:06:29,600 --> 00:06:30,520 >> OMPICA: Idadi 10. 128 00:06:30,520 --> 00:06:33,560 >> JASON HIRSCHHORN: Idadi 10. 129 00:06:33,560 --> 00:06:35,400 Ambayo moja ilikuwa namba 10? 130 00:06:35,400 --> 00:06:35,840 >> OMPICA: - 131 00:06:35,840 --> 00:06:36,420 >> JASON HIRSCHHORN: Mimi haven't - 132 00:06:36,420 --> 00:06:37,670 >> OMPICA: The ni pamoja na - 133 00:06:37,670 --> 00:06:40,060 134 00:06:40,060 --> 00:06:42,180 >> JASON HIRSCHHORN: Namba 10 mara nane kwa i - kuandika nane kwa i? 135 00:06:42,180 --> 00:06:42,980 >> OMPICA: Yeah. 136 00:06:42,980 --> 00:06:43,630 >> JASON HIRSCHHORN: OK. 137 00:06:43,630 --> 00:06:47,390 Hivyo swali jingine unaweza kuwa na aliuliza mara mimi prescient? 138 00:06:47,390 --> 00:06:48,630 Jibu ni ndiyo. 139 00:06:48,630 --> 00:06:52,060 Katika sehemu kabla ya jaribio, Mimi aliuliza nyie na kanuni zote Sterling na 140 00:06:52,060 --> 00:06:52,980 nane kwa i. 141 00:06:52,980 --> 00:06:54,770 Wote wawili kilichotokea kwa kuonekana kwenye jaribio. 142 00:06:54,770 --> 00:06:57,510 Hivyo hopefully, kulipwa makini na hilo. 143 00:06:57,510 --> 00:07:02,520 >> Na kama alikuwa, basi ingekuwa pengine kufanyika vizuri juu ya hizo mbili. 144 00:07:02,520 --> 00:07:06,030 Lakini nane kwa i, sisi hawakuwa kweli code darasani, lakini ilikuwa ni mara ya pili, 145 00:07:06,030 --> 00:07:07,500 aliuliza juu ya jaribio. 146 00:07:07,500 --> 00:07:13,270 Hivyo michache ya mambo ya kuchukua kumbuka wakati coding nane kwa i. 147 00:07:13,270 --> 00:07:17,320 Jambo la kwanza, kwa swali, alikuwa kwamba zinahitajika kwa kuangalia kama kamba 148 00:07:17,320 --> 00:07:20,300 ni sawa na null. 149 00:07:20,300 --> 00:07:28,060 >> watu wawili walijaribu kuangalia baadaye katika mpango kama s bracket i mara - 150 00:07:28,060 --> 00:07:30,940 hivyo tabia ya maalum katika kamba - ni sawa na null. 151 00:07:30,940 --> 00:07:35,600 Lakini kumbuka, kwamba null kimsingi ni - ni vizuri kufikiria 152 00:07:35,600 --> 00:07:39,100 null kama zero pointer - pointer kwa zero - 153 00:07:39,100 --> 00:07:40,920 mahala fulani katika kumbukumbu ambapo unaweza kamwe kupata. 154 00:07:40,920 --> 00:07:44,730 >> Hivyo kama kitu ni sawa na null, wewe kujua kwamba haijawahi kuanzishwa, 155 00:07:44,730 --> 00:07:46,430 au kuna kitu hapo. 156 00:07:46,430 --> 00:07:50,950 Hivyo s ni nyota char, s bracket i ni char. 157 00:07:50,950 --> 00:07:57,410 Hivyo ni mantiki kulinganisha s kwa null, lakini si s bracket i kwa null. 158 00:07:57,410 --> 00:07:59,390 Lakini tena - ili ilikuwa jambo la kwanza kwamba walipaswa kufanya - 159 00:07:59,390 --> 00:08:03,510 kuangalia kuhakikisha kwamba kweli got string kweli. 160 00:08:03,510 --> 00:08:08,020 >> Next, alitaka kwenda kwa njia ya kila tabia katika kamba. 161 00:08:08,020 --> 00:08:12,500 Na hivyo kwamba itakuwa kama s bracket i, kwa mfano, kama i ni iterator yako. 162 00:08:12,500 --> 00:08:17,250 Na kuchukua tabia, na kupata thamani yake halisi. 163 00:08:17,250 --> 00:08:21,800 Wewe ni kuhifadhiwa kama char, lakini Thamani ASCII kwa zero - 164 00:08:21,800 --> 00:08:23,010 zero kama tabia - 165 00:08:23,010 --> 00:08:25,450 si kweli integer sifuri. 166 00:08:25,450 --> 00:08:28,700 Ni baadhi ya idadi mengine ambayo unaweza kuangalia juu katika meza ASCII. 167 00:08:28,700 --> 00:08:30,790 >> Hivyo njia moja sahihi ya kwa kuwa - pengine njia bora ya kurekebisha kwa 168 00:08:30,790 --> 00:08:33,760 kwamba - ni Ondoa kutoka humo tabia ya thamani - 169 00:08:33,760 --> 00:08:35,140 sifuri kama tabia. 170 00:08:35,140 --> 00:08:38,490 Hivyo minus moja quote, sifuri, quote mwingine moja. 171 00:08:38,490 --> 00:08:44,620 Hiyo kuchukua chochote idadi una kama char, na kupata sawa na 172 00:08:44,620 --> 00:08:46,720 idadi kama integer halisi. 173 00:08:46,720 --> 00:08:50,300 >> Na kwamba ni sawa na mbinu mengi ya watu alichukua katika 174 00:08:50,300 --> 00:08:52,800 tatizo kuweka 2, na Kaisari na Viginere - 175 00:08:52,800 --> 00:08:55,160 ciphers hizo, wakati walikuwa kupokezana yao. 176 00:08:55,160 --> 00:08:59,210 Hivyo baada ya kuwa ni kama idadi kutoka zero kwa tisa, basi - kulingana na 177 00:08:59,210 --> 00:09:02,750 unakokwenda katika idadi ya mwisho - unahitaji kuzidisha 178 00:09:02,750 --> 00:09:04,120 kwa nguvu ya 10. 179 00:09:04,120 --> 00:09:07,340 >> Baadhi ya watu wakiongozwa na nyuma mbele, na kukua binafsi 180 00:09:07,340 --> 00:09:08,940 idadi na nguvu ya 10. 181 00:09:08,940 --> 00:09:11,160 Baadhi ya watu wakiongozwa na mbele na nyuma - 182 00:09:11,160 --> 00:09:14,430 na hivyo alichukua juu ili idadi ya kwanza - 183 00:09:14,430 --> 00:09:18,190 na bila kuwaokoa wale katika kimataifa kukabiliana na kutofautiana. 184 00:09:18,190 --> 00:09:20,880 Na kisha kila wakati kupitia kwa kitanzi, kuzidisha kubwa duniani 185 00:09:20,880 --> 00:09:25,640 kukabiliana na kutofautiana na 10, kwa kufanya nafasi kwa char ijayo. 186 00:09:25,640 --> 00:09:28,750 >> Ili kwamba ilikuwa utata kidogo bila mimi kuandika juu ya bodi. 187 00:09:28,750 --> 00:09:31,550 Lakini ufumbuzi sampuli inapatikana na wewe. 188 00:09:31,550 --> 00:09:32,870 Lakini hao walikuwa mambo makubwa tulikuwa kutafuta. 189 00:09:32,870 --> 00:09:36,400 Pia kuangalia kwa kuhakikisha kwamba kila tabia ya mtu binafsi kweli alikuwa a 190 00:09:36,400 --> 00:09:39,780 tabia ya kati ya sifuri na tisa, na si baadhi tabia nyingine, kama A, 191 00:09:39,780 --> 00:09:41,160 kwa mfano. 192 00:09:41,160 --> 00:09:43,150 >> Wale vitu sisi kuangalia kwa katika swali hilo. 193 00:09:43,150 --> 00:09:46,510 194 00:09:46,510 --> 00:09:47,980 Je, hiyo kujibu swali lako? 195 00:09:47,980 --> 00:09:49,320 >> OMPICA: Yeah. 196 00:09:49,320 --> 00:09:50,240 >> JASON HIRSCHHORN: OK. 197 00:09:50,240 --> 00:09:53,940 Je, kuna maswali mengine yoyote kuhusu Quiz 0? 198 00:09:53,940 --> 00:09:55,440 Nini kuhusu kuandaa? 199 00:09:55,440 --> 00:09:56,740 Kila mtu kuandaa haki? 200 00:09:56,740 --> 00:09:58,370 Hapana 201 00:09:58,370 --> 00:09:58,840 Kulikuwa na - 202 00:09:58,840 --> 00:10:01,010 [Anacheka] 203 00:10:01,010 --> 00:10:03,265 Maswali yoyote kuhusu mkusanyiko mchakato? 204 00:10:03,265 --> 00:10:06,050 205 00:10:06,050 --> 00:10:06,966 Wow. 206 00:10:06,966 --> 00:10:11,090 >> [PAPER wezi] 207 00:10:11,090 --> 00:10:11,520 >> JASON HIRSCHHORN: Ndiyo. 208 00:10:11,520 --> 00:10:11,700 Michael. 209 00:10:11,700 --> 00:10:14,140 >> MICHAEL: Je, namba 7 - random? 210 00:10:14,140 --> 00:10:16,500 >> JASON HIRSCHHORN: Idadi 7. 211 00:10:16,500 --> 00:10:20,670 Namba 7 ilikuwa kupata integer random. 212 00:10:20,670 --> 00:10:21,110 Bora. 213 00:10:21,110 --> 00:10:25,630 Hivyo wewe ni kutokana na integer a na integer b, na unataka random 214 00:10:25,630 --> 00:10:28,710 integer kati ya na b. 215 00:10:28,710 --> 00:10:31,740 Sisi kwa kweli unaweza kuandika hii moja juu ya bodi, kwa sababu hii moja 216 00:10:31,740 --> 00:10:33,320 alikuwa mstari wa moja ya maadili ya - 217 00:10:33,320 --> 00:10:34,390 njia moja ya kufanya hivyo. 218 00:10:34,390 --> 00:10:37,810 >> Hivyo sisi ni kutokana na drand kama kazi tunaweza kutumia. 219 00:10:37,810 --> 00:10:38,820 Na nini drand - 220 00:10:38,820 --> 00:10:40,290 kuchukua imekuwa ni mbegu - 221 00:10:40,290 --> 00:10:42,316 nini drand kurudi? 222 00:10:42,316 --> 00:10:44,840 >> MICHAEL: kuelea kati ya 0.0 na 1.0. 223 00:10:44,840 --> 00:10:45,530 >> JASON HIRSCHHORN: idadi - yeah. 224 00:10:45,530 --> 00:10:47,910 Idadi ya kati ya 0 na 1. 225 00:10:47,910 --> 00:10:51,760 Na hivyo tuna b na. 226 00:10:51,760 --> 00:10:55,480 Na kisha sisi kuwa na idadi yetu random kati ya 0 na 1 tuliyopewa na drand. 227 00:10:55,480 --> 00:11:01,480 228 00:11:01,480 --> 00:11:06,630 Baadhi ya watu alijaribu kuweka b, au b minus a, au kitu ndani ya wale 229 00:11:06,630 --> 00:11:07,960 mabano. 230 00:11:07,960 --> 00:11:11,210 Hiyo ina maana kwamba wao ni hoja ya kazi hii. 231 00:11:11,210 --> 00:11:13,450 >> drand haina kuchukua hoja yoyote - kama GetString gani 232 00:11:13,450 --> 00:11:14,330 si kuchukua hoja yoyote. 233 00:11:14,330 --> 00:11:16,600 Hivyo ni wazi tu paren, karibu paren - na kwamba, yenyewe, ni 234 00:11:16,600 --> 00:11:17,330 kazi simu. 235 00:11:17,330 --> 00:11:19,770 Na kwamba anatoa namba kati ya 0 na 1. 236 00:11:19,770 --> 00:11:22,820 Bila shaka, tuna mbalimbali mzima kuwa idadi inaweza kuwa in 237 00:11:22,820 --> 00:11:28,470 >> Kusema, kama b ni 10 na ni 5, kwa kweli sisi wanataka idadi na aina mbalimbali ya 5. 238 00:11:28,470 --> 00:11:36,940 Hivyo jambo la pili tunahitaji kufanya ni kuzidisha hii na aina mbalimbali b minus a. 239 00:11:36,940 --> 00:11:40,380 Hivyo kudhani kuwa ni tele. 240 00:11:40,380 --> 00:11:42,590 Na kwamba utakuwa kutupa idadi ndani ya mbalimbali huo. 241 00:11:42,590 --> 00:11:46,610 Na mbalimbali kwamba maalum kuwa tofauti kati ya b minus a. 242 00:11:46,610 --> 00:11:50,030 >> Na hatimaye, kwamba utakuwa tu kuwapa kutoka - kusema mbalimbali kati ya b minus a 243 00:11:50,030 --> 00:11:52,520 ni 5, kwamba utakuwa kutupa Idadi ya 0-5. 244 00:11:52,520 --> 00:11:56,000 Lakini kama ni kweli 5, tunahitaji kuongeza hii up mbalimbali ambapo ni 245 00:11:56,000 --> 00:12:01,380 kweli ilitakiwa kuwa, kwa kuongeza. 246 00:12:01,380 --> 00:12:02,580 Hivyo kwamba anapata mantiki ya haki. 247 00:12:02,580 --> 00:12:03,745 Na kisha, unaweza kuwa na swali jingine? 248 00:12:03,745 --> 00:12:04,547 >> MICHAEL: Hapana 249 00:12:04,547 --> 00:12:06,010 Mimi tu kujisikia kweli bubu hivi sasa. 250 00:12:06,010 --> 00:12:06,405 [Anacheka] 251 00:12:06,405 --> 00:12:06,730 >> JASON HIRSCHHORN: Hapana 252 00:12:06,730 --> 00:12:08,640 Je, si kuhisi kweli bubu. 253 00:12:08,640 --> 00:12:10,560 idadi ya watu Jihadi kwa swali hili. 254 00:12:10,560 --> 00:12:13,920 Na kisha, swali nyingine ni, drand, wewe alisema, anatoa kuelea - 255 00:12:13,920 --> 00:12:14,940 anarudi kuelea. 256 00:12:14,940 --> 00:12:18,020 Lakini kazi hii kwa kweli aliuliza kwa integer kurudishwa. 257 00:12:18,020 --> 00:12:23,700 >> Huna haja ya kuwafukuza hii wazi kwa integer, kwa sababu hizi 258 00:12:23,700 --> 00:12:29,090 shughuli kutibu ni kama wote a kuelea - kama yaliyo hatua idadi. 259 00:12:29,090 --> 00:12:31,570 Kama hali hii - hata kama hii ni integer, dhamira hii ya 260 00:12:31,570 --> 00:12:32,890 tele kwa usahihi. 261 00:12:32,890 --> 00:12:34,000 Kuzidisha itafanya kazi. 262 00:12:34,000 --> 00:12:35,060 Huna haja ya kuwatupia hapa. 263 00:12:35,060 --> 00:12:36,480 Kwa kweli, unapaswa kutupwa yake. 264 00:12:36,480 --> 00:12:37,310 >> Hiyo ingekuwa - 265 00:12:37,310 --> 00:12:40,750 kama ungependa kutupwa idadi kwamba kati ya 0 na 1 - 266 00:12:40,750 --> 00:12:42,680 a random idadi, hatua yaliyo - 267 00:12:42,680 --> 00:12:47,850 basi itakuwa ama kuwa tu 0 au 1, hivyo utasikia kupoteza yote ya usahihi. 268 00:12:47,850 --> 00:12:50,120 Lakini mwishoni mwa, wakati wa kurudi, ni moja kwa moja anapata 269 00:12:50,120 --> 00:12:51,620 kurejea kama integer. 270 00:12:51,620 --> 00:12:56,870 Hivyo huna haja ya kufanya kwamba akitoa mwenyewe. 271 00:12:56,870 --> 00:13:00,810 >> Hiyo ilikuwa jibu kwa swali hilo, namba 7. 272 00:13:00,810 --> 00:13:02,190 Maswali yoyote juu ya Quiz 0? 273 00:13:02,190 --> 00:13:03,300 Yeah, Annie. 274 00:13:03,300 --> 00:13:05,050 >> ANNIE: Wakati sisi kutumia kujirudia - 275 00:13:05,050 --> 00:13:07,850 wakati sisi kutumia loops iterative? 276 00:13:07,850 --> 00:13:10,210 >> JASON HIRSCHHORN: Wakati gani unaweza kutumia kujirudia - hivyo kwa ujumla zaidi, 277 00:13:10,210 --> 00:13:14,110 faida na hasara za kujirudia dhidi ya mbinu iterative. 278 00:13:14,110 --> 00:13:17,110 Je, mtu yeyote kutoa pro au con? 279 00:13:17,110 --> 00:13:19,460 Tafadhali? 280 00:13:19,460 --> 00:13:20,140 Si unaweza mtu yeyote. 281 00:13:20,140 --> 00:13:22,526 Ambao wanaweza kutoa pro au con? 282 00:13:22,526 --> 00:13:26,963 >> [PAPER wezi] 283 00:13:26,963 --> 00:13:29,730 >> STUDENT 1: kujirudia ni chini ya coding - chini kuandika? 284 00:13:29,730 --> 00:13:33,170 >> JASON HIRSCHHORN: Hivyo kwa ujumla, kujirudia hasa, kazi - 285 00:13:33,170 --> 00:13:35,750 au algorithm kama kuunganisha aina - ambayo imejikita 286 00:13:35,750 --> 00:13:37,300 kwa njia ya kujirudia - 287 00:13:37,300 --> 00:13:40,710 inaweza kuwa zaidi ya moja kwa moja na kanuni recursively. 288 00:13:40,710 --> 00:13:43,940 Na tu mantiki zaidi kufanya hivyo recursively. 289 00:13:43,940 --> 00:13:46,230 Hivyo kwamba itakuwa pro kwa recursion. 290 00:13:46,230 --> 00:13:46,610 Wengine? 291 00:13:46,610 --> 00:13:47,467 Yeah? 292 00:13:47,467 --> 00:13:49,240 >> STUDENT 2: Con kwa kujirudia - 293 00:13:49,240 --> 00:13:50,940 Ni anatumia kumbukumbu zaidi. 294 00:13:50,940 --> 00:13:52,200 >> JASON HIRSCHHORN: Hivyo sahihi kabisa. 295 00:13:52,200 --> 00:13:55,720 kazi kujirudia kushika kuongeza stack muafaka kwa stack. 296 00:13:55,720 --> 00:13:59,690 Hivyo kama wewe ni kazi ya mengi ya idadi, na kuwa na wito huu 297 00:13:59,690 --> 00:14:02,560 kazi mengi, basi bila ya shaka kuchukua zaidi ya kumbukumbu, wakati 298 00:14:02,560 --> 00:14:05,810 mbinu iterative tu kuweka moja stack sura juu ya stack, kwa sababu 299 00:14:05,810 --> 00:14:08,420 yote hutokea ndani ya moja ya kazi. 300 00:14:08,420 --> 00:14:11,010 >> Yoyote faida nyingine na hasara? 301 00:14:11,010 --> 00:14:11,500 Yeah. 302 00:14:11,500 --> 00:14:12,550 >> STUDENT 3: Faida kwa recursion. 303 00:14:12,550 --> 00:14:15,950 Huna kuamua katika kuendeleza mara ngapi 304 00:14:15,950 --> 00:14:17,660 code ilibidi mara kwa mara. 305 00:14:17,660 --> 00:14:22,810 Unaweza kuwa na idadi ya predetermined ya mara kwamba una iterate, basi 306 00:14:22,810 --> 00:14:26,420 kujirudia ni bora, kwa sababu inachukua kwamba matokeo. 307 00:14:26,420 --> 00:14:27,780 >> JASON HIRSCHHORN: Nadhani hiyo ni kweli. 308 00:14:27,780 --> 00:14:30,770 Lakini nadhani katika kesi zote mbili Wewe kamwe - 309 00:14:30,770 --> 00:14:33,290 labda ungependa kupata baadhi ya pembejeo kutoka kwa mtumiaji. 310 00:14:33,290 --> 00:14:35,990 Au kazi hii ingekuwa baadhi pembejeo ambayo kuamua mara ngapi 311 00:14:35,990 --> 00:14:36,730 lazima kukimbia. 312 00:14:36,730 --> 00:14:39,520 Hivyo kwa ujumla, ungekuwa si code ngumu - hata katika mfumo wa iterative - jinsi 313 00:14:39,520 --> 00:14:40,940 mara nyingi kwamba kitanzi lazima kukimbia. 314 00:14:40,940 --> 00:14:46,100 315 00:14:46,100 --> 00:14:48,670 >> Je, na mwingine ungekuwa kufikiria, Annie? 316 00:14:48,670 --> 00:14:49,330 OK. 317 00:14:49,330 --> 00:14:51,650 Basi hizo pengine mbili - 318 00:14:51,650 --> 00:14:54,370 pro kubwa na kubwa ku kwa kujirudia dhidi ya 319 00:14:54,370 --> 00:14:57,080 mbinu iterative. 320 00:14:57,080 --> 00:14:57,690 OK. 321 00:14:57,690 --> 00:14:59,465 Kitu kingine chochote juu ya Quiz 0? 322 00:14:59,465 --> 00:15:08,940 323 00:15:08,940 --> 00:15:09,920 >> Hebu hoja juu ya. 324 00:15:09,920 --> 00:15:15,260 Picha I / O. Kuna ajabu short wiki hii kwenye faili I / O kwamba hopefully 325 00:15:15,260 --> 00:15:19,270 ulizotazama nyingi mara kwa mara, na admired. 326 00:15:19,270 --> 00:15:22,910 mengi ya kazi akaingia, na mimi wameweza waliposikia hayo ni insanely kusaidia. 327 00:15:22,910 --> 00:15:25,740 Mimi pia ni pamoja kiungo juu ya slide hii, katika kesi si alikuwa na 328 00:15:25,740 --> 00:15:29,160 nafasi ya kuangalia ni mara 10. 329 00:15:29,160 --> 00:15:35,280 >> Hivyo, sisi ni kwenda kwa ufupi kwenda juu hatua kubwa ya kufungua na kufanya kazi 330 00:15:35,280 --> 00:15:38,400 kwa files, na kisha sisi ni kwenda kupiga mbizi katika tatizo coding kabla ya 331 00:15:38,400 --> 00:15:40,400 kuchunguza kuweka tatizo. 332 00:15:40,400 --> 00:15:44,330 Hivyo tena, mimi nina kwenda kuweka hii juu ya screen, lakini nina kwenda kuzungumza kwa 333 00:15:44,330 --> 00:15:47,630 tu dakika juu ya nini tuko kufanya hapa na faili I/O-- 334 00:15:47,630 --> 00:15:49,090 nini maana gani? 335 00:15:49,090 --> 00:15:55,280 >> Hiyo ina maana kwamba tunaweza kujenga wetu mipango, na kisha kuwa na mipango yetu 336 00:15:55,280 --> 00:16:00,370 exit, na si kuwa alifanya madhara yoyote juu ya dunia ya nje ya mpango wetu. 337 00:16:00,370 --> 00:16:04,630 Lakini wakati sisi kuanza kufanya kazi na files - wote kusoma yao katika na kujenga 338 00:16:04,630 --> 00:16:10,460 yao - tunaweza kuwa na baadhi ya athari juu ya dunia ya nje ya mpango wetu. 339 00:16:10,460 --> 00:16:15,440 >> Tu kama kama Microsoft Word hakuwa na uwezo kufanya hati yoyote neno, kisha 340 00:16:15,440 --> 00:16:18,710 mara moja Microsoft Word kujiondoa, yote ya yako kazi itakuwa kuondoka, na ingekuwa 341 00:16:18,710 --> 00:16:19,740 kweli na maana. 342 00:16:19,740 --> 00:16:23,620 Sisi hatimaye unataka kuwa na uwezo wa kuandika mipango ambayo inaweza kuathiri 343 00:16:23,620 --> 00:16:31,350 dunia inayowazunguka, wote kwa kuchukua katika pembejeo tata - katika suala la files na 344 00:16:31,350 --> 00:16:37,080 kupitia files, na pia kujenga kuvutia na matokeo ya kulazimisha - 345 00:16:37,080 --> 00:16:39,520 katika suala la aina mbalimbali za files. 346 00:16:39,520 --> 00:16:43,730 >> Hivyo kwamba ni kwa nini sisi ni mapya ya kujifunza jinsi ya kufanya kazi kwa files. 347 00:16:43,730 --> 00:16:47,080 Zaidi hasa, nini sisi kufanya ni kama ifuatavyo. 348 00:16:47,080 --> 00:16:47,680 Ni rahisi sana. 349 00:16:47,680 --> 00:16:51,530 Kuna michache tu ya hatua, na wao ni waliotajwa hapa juu ya kanuni hii. 350 00:16:51,530 --> 00:16:55,130 Hivyo sisi ni kwenda kupitia mstari huu code na line. 351 00:16:55,130 --> 00:16:57,630 >> Kwanza, unaweza kuona yalionyesha - 352 00:16:57,630 --> 00:17:01,330 wakati wewe ni kazi na faili, bila kujali aina ya faili ni, 353 00:17:01,330 --> 00:17:02,670 unahitaji kufungua yake. 354 00:17:02,670 --> 00:17:05,130 Na kwamba ni kwa mwito wa fopen - 355 00:17:05,130 --> 00:17:05,950 hapa hapa. 356 00:17:05,950 --> 00:17:07,980 Wewe ni pamoja na jina la faili. 357 00:17:07,980 --> 00:17:11,930 Kama faili ni si katika orodha yako, au folder ambapo mpango huu 358 00:17:11,930 --> 00:17:15,910 maisha, basi wewe pia haja ni pamoja na njia ya ambapo faili kwamba ni. 359 00:17:15,910 --> 00:17:19,099 >> Tunakwenda kudhani kwamba hii faili inayoitwa "text.txt" - 360 00:17:19,099 --> 00:17:24,220 rahisi Nakala hati - ni katika folder moja kama mpango huu ni. 361 00:17:24,220 --> 00:17:26,859 Hivyo hilo ni jambo lingine kuweka katika akili - kwamba kama unataka kufungua faili 362 00:17:26,859 --> 00:17:30,050 mahali pengine, kwa kweli haja ni pamoja na eneo lake. 363 00:17:30,050 --> 00:17:33,520 >> Pili, unaweza kupita hoja ya fopen, na kwamba ni nini unataka kufanya 364 00:17:33,520 --> 00:17:34,620 na faili. 365 00:17:34,620 --> 00:17:38,450 Kuna hoja kuu tatu kwamba utaenda kupita kwa fopen. 366 00:17:38,450 --> 00:17:40,060 Ambaye anaweza nipe wale watatu? 367 00:17:40,060 --> 00:17:44,960 368 00:17:44,960 --> 00:17:47,130 Ambaye anaweza nipe mmoja wao? 369 00:17:47,130 --> 00:17:48,130 Ndiyo. 370 00:17:48,130 --> 00:17:50,010 >> STUDENT 4: jina la faili? 371 00:17:50,010 --> 00:17:50,440 >> JASON HIRSCHHORN: Sorry. 372 00:17:50,440 --> 00:17:55,490 Hoja kuu tatu unaweza kupita kama hoja ya pili kwa fopen. 373 00:17:55,490 --> 00:17:57,060 Wewe ni haki - jina la faili ni hoja ya kwanza. 374 00:17:57,060 --> 00:18:01,620 Lakini hoja ya pili kwa fopen ni ujumla masharti tatu, na - ndiyo. 375 00:18:01,620 --> 00:18:02,210 Aleja. 376 00:18:02,210 --> 00:18:03,490 >> Aleja: A kwa append. 377 00:18:03,490 --> 00:18:06,840 >> JASON HIRSCHHORN: A, kama unataka append kwa faili kwamba tayari ipo. 378 00:18:06,840 --> 00:18:07,810 >> STUDENT 5: A kwa ajili ya kusoma. 379 00:18:07,810 --> 00:18:09,930 >> JASON HIRSCHHORN: A, kama wewe unataka kusoma kutoka faili. 380 00:18:09,930 --> 00:18:10,670 >> STUDENT 6: W kwa kuandika. 381 00:18:10,670 --> 00:18:12,840 >> JASON HIRSCHHORN: Na w, kama wewe unataka kuandika na faili. 382 00:18:12,840 --> 00:18:17,570 Hivyo katika kesi hii, sisi ni kuandika na faili, hivyo tuna w. 383 00:18:17,570 --> 00:18:22,360 Wazi kuwa, pia kuwa na kuokoa faili mahali fulani, na kwamba kwa 384 00:18:22,360 --> 00:18:26,000 code kwa upande wa kushoto wa kazi operator - 385 00:18:26,000 --> 00:18:31,220 Mimi nina kujenga pointer na faili kuitwa, katika kesi hii, file. 386 00:18:31,220 --> 00:18:36,070 >> Sisi si kwenda kuwa na wasiwasi nini hii mechi zote FILE kitu ni. 387 00:18:36,070 --> 00:18:40,600 Inatosha kusema, ni kwa muda mrefu mkondo wa zeros na ndio. 388 00:18:40,600 --> 00:18:44,970 Na kwamba ni jinsi gani sisi ni kwenda kazi yake na kuelewa. 389 00:18:44,970 --> 00:18:47,300 >> Jambo la pili tunahitaji kufanya - na hii ni incredibly muhimu - 390 00:18:47,300 --> 00:18:49,070 wakati wowote kufungua faili - 391 00:18:49,070 --> 00:18:54,250 kwa kweli, wakati wowote wewe piga malloc, kwa mfano, na kupata baadhi ya kumbukumbu na kujaribu 392 00:18:54,250 --> 00:18:57,980 na kuokoa ni katika pointer, daima wanataka kuangalia kuhakikisha kwamba 393 00:18:57,980 --> 00:19:00,230 kazi hakurudi null. 394 00:19:00,230 --> 00:19:05,230 >> Hivyo katika kesi hii, sisi ni kuangalia kufanya uhakika kwamba sisi kweli kufunguliwa 395 00:19:05,230 --> 00:19:10,230 faili kwa usahihi, na kulikuwa na hakuna makosa katika programu yetu. 396 00:19:10,230 --> 00:19:15,160 Next, mara moja tumekuwa kuchunguzwa ili kuhakikisha kwamba tuna file kazi, tunaweza 397 00:19:15,160 --> 00:19:18,520 kuandika, au kusoma kutoka, au append na faili. 398 00:19:18,520 --> 00:19:24,270 Katika kesi hiyo, mimi tu ya uchapishaji line moja na faili hii. 399 00:19:24,270 --> 00:19:25,450 >> Je, mimi kujua kwamba? 400 00:19:25,450 --> 00:19:27,990 Naam, mimi nina kutumia kazi hii aitwaye fprintf. 401 00:19:27,990 --> 00:19:30,970 Wote wa kazi utakuwa kutumia wakati wa kuandika, au kusoma kutoka, au 402 00:19:30,970 --> 00:19:34,950 kufanyia files itakuwa sawa na kazi umefanya kuona mbele, lakini 403 00:19:34,950 --> 00:19:38,420 kuanza na barua F, amesimama kwa ajili ya faili. 404 00:19:38,420 --> 00:19:43,440 Na fprintf, tofauti na magazeti yetu ya kawaida programu, inachukua hoja moja ya ziada, 405 00:19:43,440 --> 00:19:47,800 na kwamba ni file ambapo unataka magazeti line hii. 406 00:19:47,800 --> 00:19:50,640 >> Sina kitu chochote haki ya ohai. 407 00:19:50,640 --> 00:19:52,860 Sina tatu hoja ya printf - 408 00:19:52,860 --> 00:19:57,030 au hoja ya pili kwa printf, Hoja ya tatu kwa fprintf, kwa sababu mimi 409 00:19:57,030 --> 00:19:59,480 hawana placeholders yoyote hapa. 410 00:19:59,480 --> 00:20:01,070 Mimi si ikiwa ni pamoja na vigezo yoyote. 411 00:20:01,070 --> 00:20:06,070 Lakini tena, fprintf na yote haya file kazi ambayo kazi kwa files 412 00:20:06,070 --> 00:20:09,820 kwa ujumla kwenda haja ya faili ambayo wao ni kazi. 413 00:20:09,820 --> 00:20:15,960 >> Hatimaye, jambo la mwisho muhimu kwa kufanya ni karibu faili, kama 414 00:20:15,960 --> 00:20:19,530 na - wakati sisi malloc kitu, tunataka bure kitu, tusije 415 00:20:19,530 --> 00:20:22,730 kuwa na kumbukumbu leak - tunataka kwa karibu faili yetu. 416 00:20:22,730 --> 00:20:28,180 Kama mpango huu exited bila ya kufunga file, ni tabia mbaya kitu gani kwenda 417 00:20:28,180 --> 00:20:30,050 vibaya, hasa kama mara file ndogo. 418 00:20:30,050 --> 00:20:35,020 >> Lakini ni hakika nzuri coding style na mazoezi daima karibu faili yako 419 00:20:35,020 --> 00:20:38,050 wakati wewe ni kumaliza kutumia. 420 00:20:38,050 --> 00:20:43,630 Hivyo kwamba ni misingi ya faili I / O. Ve pengine kuona kwamba kabla, au 421 00:20:43,630 --> 00:20:45,710 watched katika short ajabu. 422 00:20:45,710 --> 00:20:48,410 Je, mtu yeyote una maswali yoyote, kabla ya sisi kwenda katika baadhi ya mazoezi coding 423 00:20:48,410 --> 00:20:51,800 matatizo, kuhusu faili I / O au hatua mimi tu akaenda juu? 424 00:20:51,800 --> 00:21:00,198 425 00:21:00,198 --> 00:21:03,162 >> [Kuandika Sauti] 426 00:21:03,162 --> 00:21:04,150 >> JASON HIRSCHHORN: Je, swali, Avi? 427 00:21:04,150 --> 00:21:04,660 >> AVI: Hapana 428 00:21:04,660 --> 00:21:04,740 >> JASON HIRSCHHORN: OK. 429 00:21:04,740 --> 00:21:06,746 Mimi nina kwenda kusubiri mwingine sekunde saba. 430 00:21:06,746 --> 00:21:07,590 [Anacheka] 431 00:21:07,590 --> 00:21:08,620 Hiyo ni ncha mzuri. 432 00:21:08,620 --> 00:21:10,750 You guys si tu kama kuuliza maswali. 433 00:21:10,750 --> 00:21:11,660 Hiyo ni sawa. 434 00:21:11,660 --> 00:21:12,330 OK. 435 00:21:12,330 --> 00:21:17,620 Hivyo yetu mazoezi Tatizo la kwanza ni, sisi ni kwenda kurudia kazi ya 436 00:21:17,620 --> 00:21:22,330 amri line chombo kwamba pengine kutumika kabla ya - nakala - 437 00:21:22,330 --> 00:21:23,500 chombo nakala. 438 00:21:23,500 --> 00:21:28,050 Kama aina linganisha na kisha kupita mbili hoja ndani ya terminal yako, unaweza 439 00:21:28,050 --> 00:21:28,980 nakala faili. 440 00:21:28,980 --> 00:21:31,220 Na kwamba ni nini sisi ni kwenda kuandika hivi sasa. 441 00:21:31,220 --> 00:21:35,830 >> Hivyo tena, kusoma mbali ya slide hii, ningependa wewe kuandika mpango kwamba inachukua 442 00:21:35,830 --> 00:21:38,130 mbili na mbili tu amri ya mstari wa hoja - 443 00:21:38,130 --> 00:21:40,750 chanzo faili na marudio file - 444 00:21:40,750 --> 00:21:44,590 na nakala yaliyomo ya chanzo faili marudio file 445 00:21:44,590 --> 00:21:46,960 moja byte wakati huo. 446 00:21:46,960 --> 00:21:48,510 Ili mengi ya kuomba. 447 00:21:48,510 --> 00:21:52,200 >> Tena, njia nzuri na hii ni kwa si kwenda moja kwa moja C kificho, lakini 448 00:21:52,200 --> 00:21:54,280 kuvunja chini katika michache ya hatua. 449 00:21:54,280 --> 00:21:58,400 Kwanza, kufikiri juu ya mantiki - hasa nini mimi kuuliza wewe kufanya - 450 00:21:58,400 --> 00:22:00,620 na kuelewa yote ya hatua ya tatizo hili. 451 00:22:00,620 --> 00:22:04,410 Si katika C, tu katika baadhi pseudocode, au hata mfano wa akili ya 452 00:22:04,410 --> 00:22:06,030 nini kinaendelea. 453 00:22:06,030 --> 00:22:10,050 >> Next, mara moja una pseudocode chini, kufikiri jinsi ya pseudocode 454 00:22:10,050 --> 00:22:14,600 ramani kwenye zana na mambo tumekuwa kujifunza kwa kutumia katika C. 455 00:22:14,600 --> 00:22:19,070 >> Na hatimaye, mara moja na yale yote ambayo pamoja, unaweza ya kificho tatizo. 456 00:22:19,070 --> 00:22:23,370 Kuchukua dakika 5 hadi 10 kwa kazi juu ya tatizo hili. 457 00:22:23,370 --> 00:22:25,800 Mimi itabidi kuweka maelekezo nyuma hadi katika pili. 458 00:22:25,800 --> 00:22:27,990 Na kisha sisi ni kwenda juu pseudocode, na kanuni 459 00:22:27,990 --> 00:22:29,230 ni kuishi kama kikundi. 460 00:22:29,230 --> 00:22:31,640 >> Kama una maswali yoyote wakati uko kazi ya hii, jisikie huru kuongeza 461 00:22:31,640 --> 00:22:34,260 mkono wako, na nitakuja karibu na kujibu yao. 462 00:22:34,260 --> 00:22:37,020 463 00:22:37,020 --> 00:22:39,330 >> STUDENT 7: Je, mimi swipe kipande cha karatasi? 464 00:22:39,330 --> 00:22:41,537 >> JASON HIRSCHHORN: Nini up? 465 00:22:41,537 --> 00:26:46,047 466 00:26:46,047 --> 00:26:48,043 >> [Kuandika Sauti] 467 00:26:48,043 --> 00:26:48,730 >> JASON HIRSCHHORN: OK. 468 00:26:48,730 --> 00:26:51,710 Hebu kwenda juu pseudocode kwanza, na basi mimi nitakupa zaidi ya wanandoa 469 00:26:51,710 --> 00:26:52,960 dakika ya kumaliza coding. 470 00:26:52,960 --> 00:26:55,540 471 00:26:55,540 --> 00:26:58,650 >> Ambao wangependa kuanza me off na mstari wa kwanza wa 472 00:26:58,650 --> 00:27:00,030 pseudocode kwa kazi hii? 473 00:27:00,030 --> 00:27:03,330 474 00:27:03,330 --> 00:27:05,740 >> STUDENT 8: Angalia kuhakikisha kwamba walipewa files mbili. 475 00:27:05,740 --> 00:27:06,990 >> JASON HIRSCHHORN: OK. 476 00:27:06,990 --> 00:27:21,270 477 00:27:21,270 --> 00:27:22,990 Na kama sisi siyo? 478 00:27:22,990 --> 00:27:25,974 >> STUDENT 8: napenda kurudi 0. 479 00:27:25,974 --> 00:27:27,872 >> JASON HIRSCHHORN: Je, sisi kurudi 0? 480 00:27:27,872 --> 00:27:30,182 >> STUDENT 8: Kurudi - 481 00:27:30,182 --> 00:27:30,650 blanking. 482 00:27:30,650 --> 00:27:30,850 Sorry. 483 00:27:30,850 --> 00:27:31,210 >> JASON HIRSCHHORN: Yeah. 484 00:27:31,210 --> 00:27:32,710 Pengine si 0. 485 00:27:32,710 --> 00:27:34,680 Kwa sababu 0 ina maana kila kitu ilikuwa nzuri. 486 00:27:34,680 --> 00:27:35,030 OK. 487 00:27:35,030 --> 00:27:36,730 Hivyo kwamba ni mstari wa kwanza ya pseudocode. 488 00:27:36,730 --> 00:27:38,715 Ambaye ana mstari wa pili wa pseudocode? 489 00:27:38,715 --> 00:27:40,630 >> STUDENT 9: Open wote files? 490 00:27:40,630 --> 00:27:41,880 >> JASON HIRSCHHORN: Fungua files zote mbili. 491 00:27:41,880 --> 00:27:49,970 492 00:27:49,970 --> 00:27:50,920 OK? 493 00:27:50,920 --> 00:27:52,850 >> STUDENT 10: Angalia kuona kama faili ni NULL? 494 00:27:52,850 --> 00:28:10,906 495 00:28:10,906 --> 00:28:12,580 >> JASON HIRSCHHORN: Angalia kufanya uhakika wala null. 496 00:28:12,580 --> 00:28:15,800 Kama kando - 497 00:28:15,800 --> 00:28:17,540 kufyeka 0 - 498 00:28:17,540 --> 00:28:18,887 ni kwamba NULL? 499 00:28:18,887 --> 00:28:20,080 >> STUDENT 11: Hapana 500 00:28:20,080 --> 00:28:21,190 >> JASON HIRSCHHORN: Hiyo si null. 501 00:28:21,190 --> 00:28:23,400 Hiyo inaitwa NULL Terminator. 502 00:28:23,400 --> 00:28:25,580 Ni kweli yameandikwa kwa l moja tu. 503 00:28:25,580 --> 00:28:28,580 Hivyo kuangalia kitu dhidi ya kwamba - hiyo ni kweli tabia - 504 00:28:28,580 --> 00:28:31,710 hivyo kuangalia kitu juu ya kwamba ni si sawa kama kuangalia ili kuona kama 505 00:28:31,710 --> 00:28:32,690 sawa na NULL. 506 00:28:32,690 --> 00:28:34,100 >> Na baadhi ya watu - 507 00:28:34,100 --> 00:28:36,040 juu ya Quizzes yao na matatizo yao seti - got 508 00:28:36,040 --> 00:28:36,890 wawili wa kuchanganyikiwa. 509 00:28:36,890 --> 00:28:38,830 Lakini wawili hao ni kwa kweli tofauti. 510 00:28:38,830 --> 00:28:40,220 Moja mwisho string - 511 00:28:40,220 --> 00:28:43,210 moja ni pointer 0. 512 00:28:43,210 --> 00:28:46,490 >> STUDENT 12: Kwa nini si kuangalia kwa kuhakikisha kwamba files si NULL 513 00:28:46,490 --> 00:28:48,670 kabla ya kufungua yao? 514 00:28:48,670 --> 00:28:54,772 >> JASON HIRSCHHORN: Hivyo wazi anaokoa kitu katika faili hilo. 515 00:28:54,772 --> 00:28:57,780 Na kama wewe kurudi hapa - 516 00:28:57,780 --> 00:28:59,520 hivyo line hii - fopen - 517 00:28:59,520 --> 00:29:05,300 nitakupa anwani na kuhifadhi kwamba anwani katika faili kama kazi. 518 00:29:05,300 --> 00:29:07,650 Kama haina kazi, ni kuhifadhi NULL - 519 00:29:07,650 --> 00:29:08,020 >> STUDENT 12: Oh. 520 00:29:08,020 --> 00:29:08,180 OK. 521 00:29:08,180 --> 00:29:08,500 Got wewe. 522 00:29:08,500 --> 00:29:09,050 >> JASON HIRSCHHORN: Katika file. 523 00:29:09,050 --> 00:29:11,990 Hivyo huwezi kuangalia kwa NULL kabla ya ve kufunguliwa yao. 524 00:29:11,990 --> 00:29:13,520 NULL maana yake ni kitu gani si kazi ipasavyo. 525 00:29:13,520 --> 00:29:18,030 526 00:29:18,030 --> 00:29:18,740 OK. 527 00:29:18,740 --> 00:29:22,590 Ili kuangalia ili kuhakikisha wala? 528 00:29:22,590 --> 00:29:23,200 Au ni nini? 529 00:29:23,200 --> 00:29:23,770 Tufanye nini kufikiri? 530 00:29:23,770 --> 00:29:24,310 Tutaweza kwenda na kwamba. 531 00:29:24,310 --> 00:29:24,520 >> STUDENT 13: Je. 532 00:29:24,520 --> 00:29:25,020 >> JASON HIRSCHHORN: Je? 533 00:29:25,020 --> 00:29:25,930 Wala? 534 00:29:25,930 --> 00:29:26,350 >> STUDENT 13: Je. 535 00:29:26,350 --> 00:29:26,390 >> JASON HIRSCHHORN: OK. 536 00:29:26,390 --> 00:29:28,510 Sisi wanaonekana kuwa na baadhi makubaliano juu ya hilo. 537 00:29:28,510 --> 00:29:30,520 Wala null. 538 00:29:30,520 --> 00:29:32,250 OK, mstari wa pili pseudocode. 539 00:29:32,250 --> 00:29:33,600 Ambaye si kunipa line bado? 540 00:29:33,600 --> 00:29:37,350 541 00:29:37,350 --> 00:29:38,295 Sisi kusubiri kwa ajili yenu. 542 00:29:38,295 --> 00:29:39,020 Yeah. 543 00:29:39,020 --> 00:29:40,895 >> STUDENT 14: Una kusoma kutoka faili ya kwanza? 544 00:29:40,895 --> 00:29:42,290 >> JASON HIRSCHHORN: OK. 545 00:29:42,290 --> 00:29:46,240 >> STUDENT 14: Au sisi kutumia fscanf au kitu kama hicho file kwanza? 546 00:29:46,240 --> 00:29:50,650 >> JASON HIRSCHHORN: Hivyo tunataka kusoma kutoka file kwanza na - 547 00:29:50,650 --> 00:29:51,900 hebu kuweka kwamba haki hapa. 548 00:29:51,900 --> 00:30:00,600 549 00:30:00,600 --> 00:30:01,880 Kusoma kutoka chanzo faili. 550 00:30:01,880 --> 00:30:05,370 Na kisha, tunafanya nini baada ya sisi kusoma kutoka chanzo faili? 551 00:30:05,370 --> 00:30:06,620 Mtu mwingine? 552 00:30:06,620 --> 00:30:09,150 553 00:30:09,150 --> 00:30:12,190 >> STUDENT 15: Andika katika marudio faili? 554 00:30:12,190 --> 00:30:22,080 555 00:30:22,080 --> 00:30:25,620 >> JASON HIRSCHHORN: Sisi kuandika marudio file, na - 556 00:30:25,620 --> 00:30:26,210 OK. 557 00:30:26,210 --> 00:30:30,030 Nini kingine ni sisi kukosa? 558 00:30:30,030 --> 00:30:32,460 Mtu mwingine ambaye si mimi kutokana na mstari wa kanuni bado - ya pseudocode. 559 00:30:32,460 --> 00:30:33,510 Yeah. 560 00:30:33,510 --> 00:30:36,540 >> STUDENT 16: Labda unaweza daima kuangalia kama kuna kitu kusoma kwa, 561 00:30:36,540 --> 00:30:37,970 kama mstari wa pili? 562 00:30:37,970 --> 00:30:39,550 Hiyo ni kama mstari wa pili, kuona kama ipo. 563 00:30:39,550 --> 00:30:40,660 >> [ELECTRONIC BEEP] 564 00:30:40,660 --> 00:30:41,095 >> JASON HIRSCHHORN: Oops. 565 00:30:41,095 --> 00:30:43,120 Hiyo ni journaling programu yangu. 566 00:30:43,120 --> 00:30:43,580 Yeah? 567 00:30:43,580 --> 00:30:44,960 >> STUDENT 16: Yeah. 568 00:30:44,960 --> 00:30:48,940 >> JASON HIRSCHHORN: Hivyo kutoa ni mimi mara moja zaidi. 569 00:30:48,940 --> 00:30:51,640 >> STUDENT 16: Angalia kama kuna bado mstari wa pili kutoka 570 00:30:51,640 --> 00:30:52,920 chanzo faili kusoma. 571 00:30:52,920 --> 00:30:53,500 >> JASON HIRSCHHORN: OK. 572 00:30:53,500 --> 00:30:56,060 Hivyo sisi ni si kusoma mistari - walikuwa kusoma ka hapa - 573 00:30:56,060 --> 00:30:57,590 lakini wewe ni sahihi. 574 00:30:57,590 --> 00:31:00,040 Tunataka kusoma na kuandika mpaka kuna ka tena. 575 00:31:00,040 --> 00:31:11,430 576 00:31:11,430 --> 00:31:11,735 OK. 577 00:31:11,735 --> 00:31:16,940 Na hivyo hizi lazima kweli kuwa indented kidogo, kwa sababu wao ni chini ya hapo. 578 00:31:16,940 --> 00:31:17,470 Haki? 579 00:31:17,470 --> 00:31:20,620 Mpaka tuko nje ya ka, tunakwenda kusoma kutoka chanzo faili na kuandika 580 00:31:20,620 --> 00:31:22,160 marudio file. 581 00:31:22,160 --> 00:31:24,510 >> Na basi, ni nini mwisho mstari wa pseudocode? 582 00:31:24,510 --> 00:31:26,380 Mtu ambaye si kutokana na mimi kitu bado. 583 00:31:26,380 --> 00:31:29,270 584 00:31:29,270 --> 00:31:30,260 >> STUDENT 17: Karibu files? 585 00:31:30,260 --> 00:31:31,510 >> JASON HIRSCHHORN: Hasa. 586 00:31:31,510 --> 00:31:36,370 587 00:31:36,370 --> 00:31:37,450 Karibu files. 588 00:31:37,450 --> 00:31:38,400 Hivyo kuna pseudocode yetu. 589 00:31:38,400 --> 00:31:41,870 Mimi naenda kuweka pseudocode katika gedit, na katika dakika kadhaa sisi 590 00:31:41,870 --> 00:31:44,626 itakuwa Kanuni hii pamoja. 591 00:31:44,626 --> 00:33:55,280 592 00:33:55,280 --> 00:33:56,000 >> OK. 593 00:33:56,000 --> 00:33:58,290 Hebu kuanza kama kikundi. 594 00:33:58,290 --> 00:33:59,940 Nishant, nina file yangu mpya. 595 00:33:59,940 --> 00:34:01,130 Nimekuwa tu hii kufunguliwa up. 596 00:34:01,130 --> 00:34:01,880 Untitled hati 1. 597 00:34:01,880 --> 00:34:05,490 Nini jambo la kwanza mimi wanapaswa kufanya nini? 598 00:34:05,490 --> 00:34:07,040 >> Nishant: Ni pamoja na maktaba? 599 00:34:07,040 --> 00:34:08,219 >> JASON HIRSCHHORN: OK. 600 00:34:08,219 --> 00:34:11,070 Nini maktaba? 601 00:34:11,070 --> 00:34:17,570 >> Nishant: stdio.h, stdlib.h, naamini? 602 00:34:17,570 --> 00:34:18,000 >> JASON HIRSCHHORN: OK. 603 00:34:18,000 --> 00:34:21,592 Stdlib kwa ni nini? 604 00:34:21,592 --> 00:34:23,010 >> Nishant: Mimi alisahau. 605 00:34:23,010 --> 00:34:23,219 >> JASON HIRSCHHORN: OK. 606 00:34:23,219 --> 00:34:24,179 Hivyo ni pamoja na stdio. 607 00:34:24,179 --> 00:34:28,630 Nifanye nini hata kabla ya Mimi kuanza coding? 608 00:34:28,630 --> 00:34:29,710 >> Nishant Andika header? 609 00:34:29,710 --> 00:34:31,830 >> JASON HIRSCHHORN: Jinsi Je, mimi kupata ni rangi? 610 00:34:31,830 --> 00:34:34,060 >> [INTERPOSING SAUTI] 611 00:34:34,060 --> 00:34:35,040 >> Nishant: Je, wewe kupata rangi? 612 00:34:35,040 --> 00:34:38,060 >> JASON HIRSCHHORN: Jinsi mimi rangi coding? 613 00:34:38,060 --> 00:34:38,570 >> Nishant: Mimi sijui. 614 00:34:38,570 --> 00:34:38,830 Oh. 615 00:34:38,830 --> 00:34:39,389 Ila. 616 00:34:39,389 --> 00:34:39,929 >> JASON HIRSCHHORN: Ila. 617 00:34:39,929 --> 00:34:40,270 Ndiyo. 618 00:34:40,270 --> 00:34:41,760 Mimi lazima ila ni kama c.. 619 00:34:41,760 --> 00:34:46,239 Hivyo ila ni juu ya desktop kama cp.c. 620 00:34:46,239 --> 00:34:47,280 Tamu. 621 00:34:47,280 --> 00:34:51,199 Na kama nataka kupata style full pointi, kile lazima mimi 622 00:34:51,199 --> 00:34:53,085 ni pamoja na saa ya juu? 623 00:34:53,085 --> 00:34:58,390 >> Nishant: Unaweza kuandika jina lako, jina wa mpango, na lengo 624 00:34:58,390 --> 00:34:59,640 wa mpango pia? 625 00:34:59,640 --> 00:35:08,400 626 00:35:08,400 --> 00:35:10,040 >> JASON HIRSCHHORN: Inaonekana nzuri. 627 00:35:10,040 --> 00:35:10,470 Bora. 628 00:35:10,470 --> 00:35:12,940 Hivyo wameweza kuanza sisi mbali kikamilifu. 629 00:35:12,940 --> 00:35:13,720 # Ni pamoja na - 630 00:35:13,720 --> 00:35:15,365 tutaweza pia kuandika - 631 00:35:15,365 --> 00:35:30,050 632 00:35:30,050 --> 00:35:30,870 OK. 633 00:35:30,870 --> 00:35:33,520 Hivyo mimi nadhani nina wote kuweka kwenda. 634 00:35:33,520 --> 00:35:38,003 Ambaye ana mstari wa kwanza wa kanuni kwa ajili ya mimi - au mistari ya kwanza ya kificho kwamba 635 00:35:38,003 --> 00:35:41,280 itachukua ili kukidhi wetu wa kwanza maoni katika pseudocode? 636 00:35:41,280 --> 00:35:41,985 You. 637 00:35:41,985 --> 00:35:48,780 >> STUDENT 18: Je, si ni kuwa na int argc, na kisha char * argv? 638 00:35:48,780 --> 00:35:49,490 >> JASON HIRSCHHORN: Nadhani wewe ni haki. 639 00:35:49,490 --> 00:35:56,270 Hebu mabadiliko hayo int kuu, paren wazi, int argc, comma, char * argv? 640 00:35:56,270 --> 00:35:57,150 Kama hiyo? 641 00:35:57,150 --> 00:35:57,410 >> STUDENT 18: mabano. 642 00:35:57,410 --> 00:35:58,260 >> JASON HIRSCHHORN: mabano. 643 00:35:58,260 --> 00:35:59,860 Open bracket, bracket karibu, karibu mzazi. 644 00:35:59,860 --> 00:36:00,240 Perfect. 645 00:36:00,240 --> 00:36:02,160 Sasa naweza kuchukua amri ya mstari wa hoja. 646 00:36:02,160 --> 00:36:02,430 OK. 647 00:36:02,430 --> 00:36:04,250 Kuhakikisha sisi ni kupewa files mbili. 648 00:36:04,250 --> 00:36:07,905 Unaweza kunipa kuwa vilevile. 649 00:36:07,905 --> 00:36:09,180 >> STUDENT 18: Kama argc - 650 00:36:09,180 --> 00:36:11,060 moja hii haina sawa 3. 651 00:36:11,060 --> 00:36:14,360 >> JASON HIRSCHHORN: Kama paren wazi argc haina sawa 3? 652 00:36:14,360 --> 00:36:16,970 >> STUDENT 18: Yeah, kurudi 1 au kitu chochote. 653 00:36:16,970 --> 00:36:17,460 >> JASON HIRSCHHORN: Sorry. 654 00:36:17,460 --> 00:36:19,120 >> STUDENT 18: Return 1 au kitu chochote. 655 00:36:19,120 --> 00:36:20,270 >> JASON HIRSCHHORN: Kurudi 1. 656 00:36:20,270 --> 00:36:22,230 OK? 657 00:36:22,230 --> 00:36:22,970 Kubwa. 658 00:36:22,970 --> 00:36:24,290 Kufungua files zote mbili. 659 00:36:24,290 --> 00:36:26,160 Ambao wanaweza kusaidia mimi kufungua files wote wawili? 660 00:36:26,160 --> 00:36:28,125 Ambaye si kunipa code bado? 661 00:36:28,125 --> 00:36:31,510 662 00:36:31,510 --> 00:36:32,320 Kurt? 663 00:36:32,320 --> 00:36:36,145 >> KURT: Kwa hiyo mechi zote F-I-L-E nyota chanzo. 664 00:36:36,145 --> 00:36:39,390 665 00:36:39,390 --> 00:36:40,920 >> JASON HIRSCHHORN: Mimi kwenda kuchukua vowels. 666 00:36:40,920 --> 00:36:41,570 Wale ni baridi. 667 00:36:41,570 --> 00:36:42,716 Ni kama Tumblr. 668 00:36:42,716 --> 00:36:44,610 >> STUDENT 18: Usawa fopen - 669 00:36:44,610 --> 00:36:46,612 >> JASON HIRSCHHORN: Usawa fopen? 670 00:36:46,612 --> 00:36:49,870 >> STUDENT 18: Open paren, argv, wazi bracket. 671 00:36:49,870 --> 00:36:50,055 >> JASON HIRSCHHORN: Ngoja. 672 00:36:50,055 --> 00:36:50,240 Sorry. 673 00:36:50,240 --> 00:36:51,050 Open paren. 674 00:36:51,050 --> 00:36:51,456 OK. 675 00:36:51,456 --> 00:36:53,080 >> STUDENT 18: Yeah. 676 00:36:53,080 --> 00:36:55,110 Argv ndogo 1. 677 00:36:55,110 --> 00:36:55,860 >> JASON HIRSCHHORN: Sub 1? 678 00:36:55,860 --> 00:36:56,140 >> STUDENT 18: Yeah. 679 00:36:56,140 --> 00:36:58,540 Argv bracket wazi 1 - 680 00:36:58,540 --> 00:36:59,730 ndiyo. 681 00:36:59,730 --> 00:37:06,470 Na kisha comma, na kisha wazi mara mbili quote, r, mara mbili quote, 682 00:37:06,470 --> 00:37:08,250 paren karibu, semicolon. 683 00:37:08,250 --> 00:37:09,450 >> JASON HIRSCHHORN: Sweet. 684 00:37:09,450 --> 00:37:10,950 Na nini kuhusu mtu mwingine? 685 00:37:10,950 --> 00:37:16,030 >> STUDENT 18: sawa sana, lakini badala yake ya S-R-C, utaweza kuiita D-S-T. 686 00:37:16,030 --> 00:37:17,060 >> JASON HIRSCHHORN: Oo! 687 00:37:17,060 --> 00:37:17,772 Mimi kama hiyo. 688 00:37:17,772 --> 00:37:20,010 >> STUDENT 18: Tu D-S-T. Yeah. 689 00:37:20,010 --> 00:37:23,057 Na kisha argv, bracket wazi, 2. 690 00:37:23,057 --> 00:37:23,200 Yeah. 691 00:37:23,200 --> 00:37:26,720 Na kisha w badala ya r. 692 00:37:26,720 --> 00:37:27,620 Yeah. 693 00:37:27,620 --> 00:37:29,630 >> JASON HIRSCHHORN: Mkuu. 694 00:37:29,630 --> 00:37:31,360 Ijayo wanandoa wa mistari. 695 00:37:31,360 --> 00:37:34,040 Pia, kama mtu yeyote ana mambo ya kuongeza mistari kwamba tumefanya, kujisikia huru na 696 00:37:34,040 --> 00:37:35,690 kuongeza wale vilevile. 697 00:37:35,690 --> 00:37:37,520 Kuangalia kuhakikisha wala null. 698 00:37:37,520 --> 00:37:41,450 Ambaye anaweza nipe code mimi haja ya kukidhi kuwa mstari wa pseudocode? 699 00:37:41,450 --> 00:37:44,430 700 00:37:44,430 --> 00:37:45,870 Archer. 701 00:37:45,870 --> 00:37:58,645 >> ARCHER: Kama src sawa na usawa NULL au DST sawa na usawa 702 00:37:58,645 --> 00:38:04,590 NULL, basi kurudi - 703 00:38:04,590 --> 00:38:07,130 704 00:38:07,130 --> 00:38:07,976 >> JASON HIRSCHHORN: Nini? 705 00:38:07,976 --> 00:38:08,890 >> ARCHER: Kurudi 2? 706 00:38:08,890 --> 00:38:09,760 >> JASON HIRSCHHORN: Kurudi 2. 707 00:38:09,760 --> 00:38:14,400 Hivyo kama paren wazi src sawa na sawa na NULL, au - 708 00:38:14,400 --> 00:38:15,590 chochote kile thing's - bomba? 709 00:38:15,590 --> 00:38:16,346 Bomba? 710 00:38:16,346 --> 00:38:17,140 Tutaweza kuiita bomba. 711 00:38:17,140 --> 00:38:22,340 Bomba, bomba, DST sawa na usawa NULL, kurudi 2. 712 00:38:22,340 --> 00:38:23,900 OK? 713 00:38:23,900 --> 00:38:26,060 Mpaka tuko nje ya ka - 714 00:38:26,060 --> 00:38:29,820 sisi aina ya skipped juu ya hatua hii kutoka pseudocode sehemu ya kwenda hapa. 715 00:38:29,820 --> 00:38:31,970 >> Lakini mpaka tuko nje ya ka - gani kwamba sauti kama? 716 00:38:31,970 --> 00:38:34,680 Ni aina gani ya C muundo - 717 00:38:34,680 --> 00:38:36,160 lakini mimi si kutumia muundo wa neno, kwa sababu sisi ni kwenda kuanza kutumia 718 00:38:36,160 --> 00:38:37,350 kwamba katika kesi nyingine - 719 00:38:37,350 --> 00:38:39,495 lakini C chombo gani kwamba sauti kama? 720 00:38:39,495 --> 00:38:39,970 >> STUDENT 19: kitanzi. 721 00:38:39,970 --> 00:38:40,980 >> JASON HIRSCHHORN: kitanzi. 722 00:38:40,980 --> 00:38:43,060 Inaonekana kama kitanzi. 723 00:38:43,060 --> 00:38:49,670 Hivyo ambaye anaweza nipe mstari wa kwanza ya kitanzi code hapa hapa? 724 00:38:49,670 --> 00:38:56,320 725 00:38:56,320 --> 00:39:01,980 Unaweza pia kuchukua ni aina gani ya kitanzi unataka, kama wewe nipe 726 00:39:01,980 --> 00:39:03,215 mstari wa code. 727 00:39:03,215 --> 00:39:04,150 Kuna aina tatu. 728 00:39:04,150 --> 00:39:06,530 Unaweza kupata kuchukua. 729 00:39:06,530 --> 00:39:08,080 Napenda kupendekeza mmoja wa wale. 730 00:39:08,080 --> 00:39:08,410 Avi. 731 00:39:08,410 --> 00:39:09,230 Ambayo moja mnataka nini? 732 00:39:09,230 --> 00:39:09,960 >> AVI: Kwa ajili ya. 733 00:39:09,960 --> 00:39:11,460 >> JASON HIRSCHHORN: Kwa ajili ya. 734 00:39:11,460 --> 00:39:15,180 >> AVI: INT i sawa na sifuri. 735 00:39:15,180 --> 00:39:17,360 >> JASON HIRSCHHORN: OK. 736 00:39:17,360 --> 00:39:18,570 >> AVI: Hii sehemu mimi nina uhakika juu. 737 00:39:18,570 --> 00:39:29,080 Lakini i ni chini ya ukubwa ya nyota chanzo? 738 00:39:29,080 --> 00:39:31,128 Mimi nina uhakika ya kwamba. 739 00:39:31,128 --> 00:39:32,580 >> JASON HIRSCHHORN: OK. 740 00:39:32,580 --> 00:39:35,870 >> AVI: Kwa sababu unataka ukubwa wa faili, sawa? 741 00:39:35,870 --> 00:39:41,090 >> JASON HIRSCHHORN: Basi pengine hii si kutupa ukubwa halisi 742 00:39:41,090 --> 00:39:43,010 faili katika bytes. 743 00:39:43,010 --> 00:39:47,680 Hivyo kile kingine tunaweza kufanya? 744 00:39:47,680 --> 00:39:48,810 Ni aina nyingine ya kitanzi ni nini? 745 00:39:48,810 --> 00:39:50,180 Au lazima sisi fimbo na kitanzi kwa? 746 00:39:50,180 --> 00:39:55,350 747 00:39:55,350 --> 00:39:57,900 >> STUDENT 20: Je, unaweza kufanya wakati kitanzi? 748 00:39:57,900 --> 00:40:01,350 Na kisha, nini d kufanya ni you'd - 749 00:40:01,350 --> 00:40:03,930 kwa sababu tuna char * kwa file. 750 00:40:03,930 --> 00:40:07,950 Hivyo kama sisi tu kuweka incrementing kwamba mpaka tunatarajia kupata NULL tabia katika 751 00:40:07,950 --> 00:40:08,500 mwisho wa? 752 00:40:08,500 --> 00:40:11,130 Au hakuna, ni kwamba si jinsi files kazi? 753 00:40:11,130 --> 00:40:14,300 >> JASON HIRSCHHORN: Kwa hiyo tunaweza kuweka incrementing * Char 754 00:40:14,300 --> 00:40:16,340 mpaka sisi kupata NULL - 755 00:40:16,340 --> 00:40:18,580 >> STUDENT 20: Kimsingi kuendelea tabia kwa tabia ya mpaka sisi kugonga 756 00:40:18,580 --> 00:40:21,250 mwisho wa faili. 757 00:40:21,250 --> 00:40:21,600 >> JASON HIRSCHHORN: Ndiyo. 758 00:40:21,600 --> 00:40:22,560 Hivyo kwamba ni nini tunataka kufanya. 759 00:40:22,560 --> 00:40:24,545 Tunataka kuendelea kusoma, tabia ya na tabia, mpaka sisi kupata 760 00:40:24,545 --> 00:40:25,080 mwisho wa faili. 761 00:40:25,080 --> 00:40:25,375 >> STUDENT 20: Yeah. 762 00:40:25,375 --> 00:40:25,860 Kupata - 763 00:40:25,860 --> 00:40:28,540 nini mwisho au kuacha ishara mwishoni mwa faili asilia. 764 00:40:28,540 --> 00:40:28,620 >> JASON HIRSCHHORN: OK. 765 00:40:28,620 --> 00:40:30,140 Hivyo wakati sisi kupata mwisho wa file - jinsi gani tunajua tumekuwa kufikiwa 766 00:40:30,140 --> 00:40:33,200 mwisho wa faili? 767 00:40:33,200 --> 00:40:34,710 Kama mimi nina wito - 768 00:40:34,710 --> 00:40:35,910 hivyo hebu hatua nyuma. 769 00:40:35,910 --> 00:40:37,550 Ni kazi gani? 770 00:40:37,550 --> 00:40:39,360 Hebu kwenda line haki hii hapa. 771 00:40:39,360 --> 00:40:40,630 Kusoma kutoka chanzo faili. 772 00:40:40,630 --> 00:40:41,880 Ambaye anaweza nipe kuwa mstari wa kanuni? 773 00:40:41,880 --> 00:40:45,592 774 00:40:45,592 --> 00:40:47,590 >> STUDENT 21: Fscanf? 775 00:40:47,590 --> 00:40:49,110 >> JASON HIRSCHHORN: Fscanf. 776 00:40:49,110 --> 00:40:49,510 OK. 777 00:40:49,510 --> 00:40:52,240 Nini kama nataka kusoma, sana hasa, byte moja? 778 00:40:52,240 --> 00:40:55,012 779 00:40:55,012 --> 00:40:56,860 >> STUDENT 21: mimi sijui. 780 00:40:56,860 --> 00:40:57,110 >> JASON HIRSCHHORN: OK. 781 00:40:57,110 --> 00:40:59,380 Hata rahisi kuliko fscanf - ni nini - 782 00:40:59,380 --> 00:41:01,890 Mimi nataka kusoma kutoka chanzo faili? 783 00:41:01,890 --> 00:41:03,720 Kusoma kutoka chanzo faili. 784 00:41:03,720 --> 00:41:04,850 Nini kazi - yeah. 785 00:41:04,850 --> 00:41:05,380 >> STUDENT 22: Ni fread? 786 00:41:05,380 --> 00:41:06,070 >> JASON HIRSCHHORN: Fread. 787 00:41:06,070 --> 00:41:07,550 Nadhani hebu fimbo na kwamba moja kwa sasa. 788 00:41:07,550 --> 00:41:10,380 789 00:41:10,380 --> 00:41:13,650 Ni aina gani ya hoja haina fread kuchukua? 790 00:41:13,650 --> 00:41:17,410 >> STUDENT 22: Pengine aina ya faili, na kisha eneo katika faili? 791 00:41:17,410 --> 00:41:19,550 >> JASON HIRSCHHORN: Naweza aina hapa kufikiri ni aina gani ya hoja 792 00:41:19,550 --> 00:41:20,950 fread inachukua? 793 00:41:20,950 --> 00:41:23,710 >> WANAFUNZI nyingi: Man fread. 794 00:41:23,710 --> 00:41:24,740 >> JASON HIRSCHHORN: Man fread na fwrite. 795 00:41:24,740 --> 00:41:25,980 Inaonekana kama wao hutegemea nje pamoja. 796 00:41:25,980 --> 00:41:29,589 Hivyo fread inachukua hoja ngapi? 797 00:41:29,589 --> 00:41:30,920 >> STUDENT 23: Nne. 798 00:41:30,920 --> 00:41:32,690 >> JASON HIRSCHHORN: Ni inachukua nne hoja. 799 00:41:32,690 --> 00:41:41,100 Inachukua pointer, ukubwa, na kwamba kitu, ambayo ni weird, na baadhi ya faili. 800 00:41:41,100 --> 00:41:42,000 OK? 801 00:41:42,000 --> 00:41:43,990 Hebu kusoma kuhusu haki hapa. 802 00:41:43,990 --> 00:41:49,370 "Kazi fread wasomaji n memb mambo ya data, kila ka ukubwa 803 00:41:49,370 --> 00:41:53,840 muda mrefu, kutokana mkondo alisema na mkondo, kuzihifadhi katika eneo 804 00:41:53,840 --> 00:41:56,170 uliotolewa na pointer. " 805 00:41:56,170 --> 00:41:57,960 >> Hivyo hoja nne. 806 00:41:57,960 --> 00:42:04,510 Kwa nini si mimi tu nakala hii, na kuweka haki hapa. 807 00:42:04,510 --> 00:42:10,060 808 00:42:10,060 --> 00:42:10,770 OK. 809 00:42:10,770 --> 00:42:13,673 Kwa hiyo nani anaweza kuanza kujaza hoja hizi kwa ajili yangu? 810 00:42:13,673 --> 00:42:15,840 Avi. 811 00:42:15,840 --> 00:42:17,720 >> AVI: Chukua nje ni batili. 812 00:42:17,720 --> 00:42:20,530 Kuweka tu src. 813 00:42:20,530 --> 00:42:23,142 Kuchukua pointer na nyota. 814 00:42:23,142 --> 00:42:26,102 Kuweka src. 815 00:42:26,102 --> 00:42:27,050 Kisha - 816 00:42:27,050 --> 00:42:28,500 >> JASON HIRSCHHORN: Kwa hiyo mimi nina kwenda kuacha huko, kwa sababu hiyo sahihi. 817 00:42:28,500 --> 00:42:32,590 818 00:42:32,590 --> 00:42:34,710 Wewe ni haki kwa src, lakini ambapo lazima src kwenda? 819 00:42:34,710 --> 00:42:35,960 >> [INTERPOSING SAUTI] 820 00:42:35,960 --> 00:42:38,976 821 00:42:38,976 --> 00:42:41,610 >> JASON HIRSCHHORN: Ni lazima kwenda zaidi ya hapa. 822 00:42:41,610 --> 00:42:43,790 Hiyo ni src - src yetu ni aina. 823 00:42:43,790 --> 00:42:44,610 Hebu tuangalie hapa. 824 00:42:44,610 --> 00:42:49,610 Hii ni kuuliza kwa ajili ya aina FILE *, sisi kweli kwa kawaida kuwaona kama hiyo. 825 00:42:49,610 --> 00:42:57,630 Hivyo hii ni kuuliza kwa hoja ya aina ya faili * aitwaye mkondo kwamba ni src. 826 00:42:57,630 --> 00:42:58,480 OK? 827 00:42:58,480 --> 00:43:00,410 >> Ukubwa gani ya mambo ya kufanya tunataka kusoma? 828 00:43:00,410 --> 00:43:03,340 Mimi niliwapeni hii katika tatizo maelezo. 829 00:43:03,340 --> 00:43:04,370 >> STUDENT 24: Moja byte wakati huo. 830 00:43:04,370 --> 00:43:05,340 >> JASON HIRSCHHORN: One Byte. 831 00:43:05,340 --> 00:43:08,205 Jinsi kubwa ni byte? 832 00:43:08,205 --> 00:43:11,642 Ukubwa wake ni katika ka, hivyo nini naweza kuweka sahihi huko? 833 00:43:11,642 --> 00:43:12,910 >> STUDENT 25: One. 834 00:43:12,910 --> 00:43:14,730 >> JASON HIRSCHHORN: One. 835 00:43:14,730 --> 00:43:17,020 Haki. 836 00:43:17,020 --> 00:43:19,940 Ukubwa wake ni katika kitengo cha Byte, hivyo 1 ni 1 Byte. 837 00:43:19,940 --> 00:43:22,284 Jinsi wengi hawana nataka kusoma wakati huo. 838 00:43:22,284 --> 00:43:23,520 >> STUDENT 26: Moja? 839 00:43:23,520 --> 00:43:24,270 >> JASON HIRSCHHORN: Jambo moja. 840 00:43:24,270 --> 00:43:28,540 Mimi nataka kusoma jambo moja ya ukubwa 1, moja bite wakati huo. 841 00:43:28,540 --> 00:43:32,110 Na ni wapi mimi kuweka yake, mara moja mimi kusoma? 842 00:43:32,110 --> 00:43:35,050 843 00:43:35,050 --> 00:43:36,510 >> STUDENT 27: Destination? 844 00:43:36,510 --> 00:43:39,270 >> JASON HIRSCHHORN: Hivyo siwezi kuweka ni moja kwa moja katika marudio. 845 00:43:39,270 --> 00:43:40,800 >> STUDENT 28: Wewe ni gonna kuweka ndani pointer tatu? 846 00:43:40,800 --> 00:43:41,780 >> STUDENT 27: Kwa marudio. 847 00:43:41,780 --> 00:43:42,270 >> JASON HIRSCHHORN: OK. 848 00:43:42,270 --> 00:43:42,630 Yeah. 849 00:43:42,630 --> 00:43:46,820 >> STUDENT 29: Unaweza kutangaza kitu kutenda kama kuhifadhi muda mapema. 850 00:43:46,820 --> 00:43:47,350 >> JASON HIRSCHHORN: OK. 851 00:43:47,350 --> 00:43:50,080 Nipe hiyo. 852 00:43:50,080 --> 00:43:53,930 >> STUDENT 29: file nyingine pointer, labda? 853 00:43:53,930 --> 00:43:54,220 >> JASON HIRSCHHORN: OK. 854 00:43:54,220 --> 00:43:55,585 Hivyo hii ni batili nyota - 855 00:43:55,585 --> 00:43:57,750 ni aina utupu nyota, hivyo haina kuwa file pointer. 856 00:43:57,750 --> 00:44:02,520 Na kama mimi nina kusoma byte moja, ambapo itakuwa nafasi nzuri 857 00:44:02,520 --> 00:44:03,850 kuhifadhi byte moja? 858 00:44:03,850 --> 00:44:04,660 >> STUDENT 29: safu? 859 00:44:04,660 --> 00:44:05,770 >> JASON HIRSCHHORN: safu. 860 00:44:05,770 --> 00:44:07,730 OK. 861 00:44:07,730 --> 00:44:14,040 Na kile kingine ni kitu ambacho ni tu ukubwa byte moja? 862 00:44:14,040 --> 00:44:16,980 863 00:44:16,980 --> 00:44:18,060 >> STUDENT 30: char *? 864 00:44:18,060 --> 00:44:18,530 >> STUDENT 29: Yeah. 865 00:44:18,530 --> 00:44:19,880 >> JASON HIRSCHHORN: * Char si byte moja. 866 00:44:19,880 --> 00:44:20,440 >> STUDENT 29: char. 867 00:44:20,440 --> 00:44:21,810 >> JASON HIRSCHHORN: char ni byte moja. 868 00:44:21,810 --> 00:44:22,920 Haki? 869 00:44:22,920 --> 00:44:26,740 Hivyo basi piga buffer hii ni generic jina kutumika kwa ajili ya mambo haya ya kuhifadhi 870 00:44:26,740 --> 00:44:27,910 kitu kwa muda. 871 00:44:27,910 --> 00:44:30,880 Basi, mimi kujenga buffer. 872 00:44:30,880 --> 00:44:31,150 Haki? 873 00:44:31,150 --> 00:44:32,990 Lakini haina kuchukua utupu *. 874 00:44:32,990 --> 00:44:38,660 Hivyo labda wewe ni sahihi, kwamba lazima buffer ya ukubwa 0. 875 00:44:38,660 --> 00:44:41,070 Hivyo maduka moja - 876 00:44:41,070 --> 00:44:41,280 haki. 877 00:44:41,280 --> 00:44:43,560 >> Kwa sababu haki hii hapa - Char buffer ni tabia, lakini 878 00:44:43,560 --> 00:44:45,110 hii inachukua utupu * - 879 00:44:45,110 --> 00:44:45,870 pointer. 880 00:44:45,870 --> 00:44:50,640 Hivyo mimi naweza kufanya hivyo na sasa buffer ni pointer. 881 00:44:50,640 --> 00:44:53,214 Nini kingine unaweza kufanya nini? 882 00:44:53,214 --> 00:44:55,775 >> STUDENT 31: Kuweka nyota karibu na Char. 883 00:44:55,775 --> 00:44:58,380 >> JASON HIRSCHHORN: mimi naweza nimeiumba * Char. 884 00:44:58,380 --> 00:45:00,216 OK. 885 00:45:00,216 --> 00:45:03,131 Nini kitu kingine mimi naweza kufanya? 886 00:45:03,131 --> 00:45:04,050 Au hebu kwenda na hii moja. 887 00:45:04,050 --> 00:45:05,740 Char * buffer, ili kile mimi kuweka katika hapa? 888 00:45:05,740 --> 00:45:08,290 889 00:45:08,290 --> 00:45:09,310 >> STUDENT 31: Buffer. 890 00:45:09,310 --> 00:45:10,560 >> JASON HIRSCHHORN: Buffer. 891 00:45:10,560 --> 00:45:12,640 892 00:45:12,640 --> 00:45:14,500 Buffer ni pointer kwa char. 893 00:45:14,500 --> 00:45:19,480 Na katika eneo hilo, sisi ni kuweka Byte moja ya kitu tumekuwa kusoma. 894 00:45:19,480 --> 00:45:19,980 Yeah. 895 00:45:19,980 --> 00:45:20,700 Avi. 896 00:45:20,700 --> 00:45:21,230 >> AVI: Just swali haraka. 897 00:45:21,230 --> 00:45:24,440 Je, unataka malloc buffer? 898 00:45:24,440 --> 00:45:25,930 >> JASON HIRSCHHORN: Nani unaweza kujibu swali hilo? 899 00:45:25,930 --> 00:45:30,210 >> STUDENT 32: Naam, Ni kweli haina hatua ya kitu chochote hivi sasa, hivyo - 900 00:45:30,210 --> 00:45:32,610 >> JASON HIRSCHHORN: Lakini kufanya tunataka malloc yake? 901 00:45:32,610 --> 00:45:35,600 >> STUDENT 32: Kama ungekuwa na kufanya hivyo kwamba njia, mimi nadhani, yeah, kwa sababu wewe d haja ya 902 00:45:35,600 --> 00:45:36,990 mahali fulani kwa kuwa na uhakika na. 903 00:45:36,990 --> 00:45:38,350 >> JASON HIRSCHHORN: Je, sisi na malloc yake? 904 00:45:38,350 --> 00:45:40,580 >> STUDENT 33: Kama wewe ni kwenda kwa kuitumia nje ya kitanzi. 905 00:45:40,580 --> 00:45:42,524 >> JASON HIRSCHHORN: Je, sisi kwenda kuitumia nje ya kitanzi? 906 00:45:42,524 --> 00:45:44,392 >> STUDENT 34: Ndiyo. 907 00:45:44,392 --> 00:45:44,860 >> STUDENT 35: Ngoja. 908 00:45:44,860 --> 00:45:46,980 Je, tunataka kutangaza katika kitanzi zaidi ya? 909 00:45:46,980 --> 00:45:50,100 >> JASON HIRSCHHORN: Kwa hiyo mimi nadhani tuna Pseudo Wakati baadhi ya kitanzi hapa kwamba sisi ni 910 00:45:50,100 --> 00:45:51,950 kujaribu kufikiri, kwamba sisi si wamezipata kwa bado. 911 00:45:51,950 --> 00:45:54,710 912 00:45:54,710 --> 00:45:56,010 Hatuna haja ya malloc yake. 913 00:45:56,010 --> 00:45:59,310 Sisi ni kazi katika kuu, ni kwenda tu kutumika ndani ya kitanzi hii. 914 00:45:59,310 --> 00:46:00,540 Haina haja ya kuwepo nje hii. 915 00:46:00,540 --> 00:46:02,340 >> Hivyo inaweza kuwa kutofautiana ndani. 916 00:46:02,340 --> 00:46:03,925 Una pointer kwa variable ndani. 917 00:46:03,925 --> 00:46:07,984 918 00:46:07,984 --> 00:46:09,590 >> STUDENT 36: Lakini si akizungumzia kitu chochote. 919 00:46:09,590 --> 00:46:11,540 >> JASON HIRSCHHORN: Hapana, siyo kuanzishwa na kitu chochote. 920 00:46:11,540 --> 00:46:12,790 Lakini sisi siyo kwenda kuitumia pia. 921 00:46:12,790 --> 00:46:15,300 Tunakwenda kuweka kitu katika mara ya kwanza sisi matumizi yake. 922 00:46:15,300 --> 00:46:16,580 Hivyo kwamba inaonekana OK. 923 00:46:16,580 --> 00:46:17,780 Hivyo hatuna haja malloc hapa. 924 00:46:17,780 --> 00:46:19,360 Na nadhani ni sawa kama ni. 925 00:46:19,360 --> 00:46:24,350 926 00:46:24,350 --> 00:46:25,790 OK. 927 00:46:25,790 --> 00:46:27,190 Tuna line fread. 928 00:46:27,190 --> 00:46:28,490 Hebu kufanya line ijayo. 929 00:46:28,490 --> 00:46:32,984 >> Kama tunataka kuandika file, ni nini kazi nzuri ya kutumia kufanya hivyo? 930 00:46:32,984 --> 00:46:33,770 >> STUDENT 37: Fwrite? 931 00:46:33,770 --> 00:46:35,140 >> STUDENT 38: Fprintf? 932 00:46:35,140 --> 00:46:36,010 >> JASON HIRSCHHORN: Fprintf ni moja. 933 00:46:36,010 --> 00:46:37,260 Nini mtu mwingine? 934 00:46:37,260 --> 00:46:37,680 >> STUDENT 39: Fwrite. 935 00:46:37,680 --> 00:46:38,510 >> JASON HIRSCHHORN: Fwrite. 936 00:46:38,510 --> 00:46:41,250 Na kwa madhumuni yetu, fwrite, ambayo tuliona hapa, ni 937 00:46:41,250 --> 00:46:42,500 pengine ni bora uchaguzi. 938 00:46:42,500 --> 00:46:51,970 939 00:46:51,970 --> 00:46:53,950 Inachukua hoja nne pia. 940 00:46:53,950 --> 00:46:57,570 Nishant, unaweza kutoa mimi hoja? 941 00:46:57,570 --> 00:47:00,570 >> Nishant: moja ya kwanza ya wanaokwenda kuwa buffer tu. 942 00:47:00,570 --> 00:47:02,210 >> JASON HIRSCHHORN: OK. 943 00:47:02,210 --> 00:47:06,752 >> Nishant: moja ya pili ya tu kwenda kuwa 1. 944 00:47:06,752 --> 00:47:09,510 Theluthi moja kwenda kuwa 1. 945 00:47:09,510 --> 00:47:11,470 Na moja ya nne ni kwenda kuwa DST. 946 00:47:11,470 --> 00:47:18,010 947 00:47:18,010 --> 00:47:19,550 >> JASON HIRSCHHORN: Je, mtu yeyote na maswali yoyote kuhusu kwamba line? 948 00:47:19,550 --> 00:47:28,370 949 00:47:28,370 --> 00:47:29,130 Hiyo inaonekana ni nzuri. 950 00:47:29,130 --> 00:47:29,590 OK. 951 00:47:29,590 --> 00:47:34,250 Hivyo sasa inaonekana kama kitu kimoja sisi ni kukosa - kwa kweli, hebu kuandika 952 00:47:34,250 --> 00:47:35,090 line hii ya mwisho. 953 00:47:35,090 --> 00:47:36,300 Karibu files. 954 00:47:36,300 --> 00:47:38,880 Ambao wanaweza kumaliza sisi up kuandika mwisho mistari miwili haya? 955 00:47:38,880 --> 00:47:39,120 Ndiyo. 956 00:47:39,120 --> 00:47:39,850 Sorry, nini jina lako? 957 00:47:39,850 --> 00:47:40,580 >> LUCY: Lucy. 958 00:47:40,580 --> 00:47:41,580 >> JASON HIRSCHHORN: Lucy. 959 00:47:41,580 --> 00:47:47,560 >> LUCY: Fclose src na kisha fclose marudio. 960 00:47:47,560 --> 00:47:52,430 >> JASON HIRSCHHORN: Fclose, paren wazi, src, paren karibu, semicolon. 961 00:47:52,430 --> 00:47:53,680 Na fclose - 962 00:47:53,680 --> 00:47:57,560 963 00:47:57,560 --> 00:47:58,090 yeah? 964 00:47:58,090 --> 00:48:01,710 >> LUCY: Open mabano, DST na kisha semicolon. 965 00:48:01,710 --> 00:48:02,520 >> JASON HIRSCHHORN: Mkuu. 966 00:48:02,520 --> 00:48:04,338 Na kile lazima mimi ni pamoja na mwishoni? 967 00:48:04,338 --> 00:48:05,210 >> LUCY: Kurudi 0. 968 00:48:05,210 --> 00:48:05,570 >> JASON HIRSCHHORN: Kurudi 0. 969 00:48:05,570 --> 00:48:06,820 Je, nina? 970 00:48:06,820 --> 00:48:10,560 971 00:48:10,560 --> 00:48:12,590 Tu swali. 972 00:48:12,590 --> 00:48:14,957 Je, sisi kuwa ni pamoja na kurudi 0? 973 00:48:14,957 --> 00:48:16,240 >> WANAFUNZI Nyingi: Hapana 974 00:48:16,240 --> 00:48:16,430 >> JASON HIRSCHHORN: Hapana 975 00:48:16,430 --> 00:48:18,090 Kuu gani moja kwa moja kama kupata hadi mwisho. 976 00:48:18,090 --> 00:48:20,580 Lakini nadhani ni nzuri na pamoja na hiyo waziwazi. 977 00:48:20,580 --> 00:48:23,860 Hasa wakati sisi ni kurudi nyingine mambo katika mpango. 978 00:48:23,860 --> 00:48:24,810 OK. 979 00:48:24,810 --> 00:48:26,230 Hii ni nini sisi ni kukosa - 980 00:48:26,230 --> 00:48:28,520 Wakati gani? 981 00:48:28,520 --> 00:48:31,630 Ambao wanaweza kufikiria baadhi - 982 00:48:31,630 --> 00:48:35,240 ina maana ya baadhi ya mambo inaweza kwenda huko? 983 00:48:35,240 --> 00:48:37,350 Hata kama ni tu katika baadhi pseudocode kama lugha? 984 00:48:37,350 --> 00:48:41,330 >> Sisi ni kile kwa kweli - nini tunataka kwenda mpaka? 985 00:48:41,330 --> 00:48:41,980 Yeah, Lucy. 986 00:48:41,980 --> 00:48:43,240 >> LUCY: mwisho wa faili. 987 00:48:43,240 --> 00:48:44,990 >> JASON HIRSCHHORN: mwisho wa faili. 988 00:48:44,990 --> 00:48:49,280 Basi je, wewe maana mwisho wa faili? 989 00:48:49,280 --> 00:48:50,955 >> LUCY: Mara baada ya kufikia mwisho wa faili, kuacha. 990 00:48:50,955 --> 00:48:51,240 >> JASON HIRSCHHORN: OK. 991 00:48:51,240 --> 00:48:53,460 Hivyo mara moja sisi kufikia mwisho wa file. 992 00:48:53,460 --> 00:48:56,893 Jinsi gani sisi kujua wakati tumekuwa kufikiwa mwisho wa faili? 993 00:48:56,893 --> 00:48:59,900 >> STUDENT 40: Nadhani buffer itakuwa kuweka null. 994 00:48:59,900 --> 00:49:01,885 >> STUDENT 41: Buffer ni alitangaza ndani ya kitanzi. 995 00:49:01,885 --> 00:49:03,670 >> JASON HIRSCHHORN: Kwa hiyo unafikiri buffer itakuwa kuweka null. 996 00:49:03,670 --> 00:49:05,850 Kwa nini buffer kuweka null? 997 00:49:05,850 --> 00:49:10,420 >> STUDENT 40: Kwa sababu wakati wewe fread, wewe ni kujaribu kuweka 998 00:49:10,420 --> 00:49:13,528 kitu ndani ya buffer. 999 00:49:13,528 --> 00:49:13,980 >> JASON HIRSCHHORN: OK. 1000 00:49:13,980 --> 00:49:15,550 Hivyo wewe ni kufikiri fread - 1001 00:49:15,550 --> 00:49:19,000 wakati tumekuwa kufikiwa mwisho wa file, ni nini fread kwenda kufanya nini? 1002 00:49:19,000 --> 00:49:21,230 Nadhani hiyo ni swali tuna kufikiri. 1003 00:49:21,230 --> 00:49:21,960 Gani fread nini? 1004 00:49:21,960 --> 00:49:25,640 Je, ni kuweka NULL katika buffer, au gani kufanya kitu kingine? 1005 00:49:25,640 --> 00:49:27,510 Jinsi gani tunaweza kufikiri nini ni gani? 1006 00:49:27,510 --> 00:49:28,190 >> STUDENT 42: Man. 1007 00:49:28,190 --> 00:49:28,810 >> JASON HIRSCHHORN: Man. 1008 00:49:28,810 --> 00:49:32,280 Hivyo hebu angalia zaidi ya hapa. 1009 00:49:32,280 --> 00:49:34,000 Kurudi thamani. 1010 00:49:34,000 --> 00:49:39,620 On mafanikio, fread na fwrite kurudi idadi ya vitu kusoma au maandishi. 1011 00:49:39,620 --> 00:49:43,700 Idadi hii ni sawa na idadi ya ka kuhamishiwa tu wakati ukubwa ni 1. 1012 00:49:43,700 --> 00:49:47,780 Kama kosa hutokea, au mwisho wa file ni kufikiwa, thamani ya kurudi ni 1013 00:49:47,780 --> 00:49:51,490 short bidhaa kuhesabu au 0. 1014 00:49:51,490 --> 00:49:57,860 >> Hivyo kwa madhumuni yetu, kama fika fread mwisho wa faili, na wasomaji kutoka 1015 00:49:57,860 --> 00:50:02,100 mwisho wa faili, kuna kitu kushoto kusoma, nini ni kwenda na kurudi? 1016 00:50:02,100 --> 00:50:03,290 >> STUDENT 43: Zero? 1017 00:50:03,290 --> 00:50:04,540 >> JASON HIRSCHHORN: Nini? 1018 00:50:04,540 --> 00:50:05,300 >> STUDENT 43: Zero? 1019 00:50:05,300 --> 00:50:05,690 >> JASON HIRSCHHORN: Zero. 1020 00:50:05,690 --> 00:50:06,940 Ni kwenda na kurudi sifuri. 1021 00:50:06,940 --> 00:50:09,360 1022 00:50:09,360 --> 00:50:13,010 Hivyo tunajua kwamba fread, wakati tumekuwa kufikiwa mwisho wa file, ni kwenda 1023 00:50:13,010 --> 00:50:13,690 kurudi sifuri. 1024 00:50:13,690 --> 00:50:17,460 Jinsi gani tunaweza kutumia kwa faida yetu? 1025 00:50:17,460 --> 00:50:21,733 >> AVI: Unaweza kutangaza variable nje ya kitanzi aitwaye kuangalia. 1026 00:50:21,733 --> 00:50:27,040 Kama hundi sawa na - 1027 00:50:27,040 --> 00:50:28,190 kwa sasa - moja. 1028 00:50:28,190 --> 00:50:28,920 >> JASON HIRSCHHORN: OK. 1029 00:50:28,920 --> 00:50:38,050 >> AVI: Na kisha unaweza kuweka IF taarifa sahihi baada ya fread kusema kama 1030 00:50:38,050 --> 00:50:42,600 fread sawa na sifuri - 1031 00:50:42,600 --> 00:50:43,850 no. 1032 00:50:43,850 --> 00:50:46,002 1033 00:50:46,002 --> 00:50:47,252 >> JASON HIRSCHHORN: Nani inaweza kusaidia Avi nje? 1034 00:50:47,252 --> 00:50:49,690 1035 00:50:49,690 --> 00:50:52,410 >> AVI: Nini thamani akarudi na fread? 1036 00:50:52,410 --> 00:50:54,060 >> JASON HIRSCHHORN: Sisi tu akaenda juu ya hilo. 1037 00:50:54,060 --> 00:50:55,450 >> AVI: Je, wewe kuwakilisha yake? 1038 00:50:55,450 --> 00:50:57,190 >> JASON HIRSCHHORN: Kwa hiyo anarudi - hebu kuangalia juu hapa - kuirudisha 1039 00:50:57,190 --> 00:50:59,340 size_t, ambayo kimsingi ni integer. 1040 00:50:59,340 --> 00:51:02,240 1041 00:51:02,240 --> 00:51:03,410 Hivyo anarudi integer. 1042 00:51:03,410 --> 00:51:05,160 Na kwa upande wetu, itakuwa kurudi 1 au 0 - 1043 00:51:05,160 --> 00:51:08,760 1 kama ni kusoma jambo moja - byte moja, na 0 kama tumekuwa kufikiwa mwisho. 1044 00:51:08,760 --> 00:51:13,560 1045 00:51:13,560 --> 00:51:16,450 Hivyo kama fread - 1046 00:51:16,450 --> 00:51:16,855 yeah? 1047 00:51:16,855 --> 00:51:20,330 >> STUDENT 45: Je, si wewe tu kuweka full fread (buffer, 1, 1, src) katika 1048 00:51:20,330 --> 00:51:21,660 kitanzi wakati? 1049 00:51:21,660 --> 00:51:26,510 >> JASON HIRSCHHORN: Hivyo wewe kupendekeza kufanya hivyo ndani ya huko? 1050 00:51:26,510 --> 00:51:27,600 >> [INTERPOSING SAUTI] 1051 00:51:27,600 --> 00:51:29,520 >> JASON HIRSCHHORN: Kushikilia. 1052 00:51:29,520 --> 00:51:30,885 Hivyo sisi ni kupiga vita ya kwamba. 1053 00:51:30,885 --> 00:51:33,300 Hivyo wewe ni kupendekeza kuweka ndani ya fread huko? 1054 00:51:33,300 --> 00:51:35,457 Tufanye pia hoja kama unataka kufanya hivyo? 1055 00:51:35,457 --> 00:51:36,740 >> STUDENT 45: buffer nje. 1056 00:51:36,740 --> 00:51:38,110 >> JASON HIRSCHHORN: Tunapaswa pia hoja hii hapa nje. 1057 00:51:38,110 --> 00:51:41,700 >> STUDENT 45: Lakini je, kwamba mara kwa mara hoja hiyo mbele? 1058 00:51:41,700 --> 00:51:42,950 >> [INTERPOSING SAUTI] 1059 00:51:42,950 --> 00:51:46,540 1060 00:51:46,540 --> 00:51:47,470 >> JASON HIRSCHHORN: OK. 1061 00:51:47,470 --> 00:51:50,570 Hivyo hii ni nini Okshar mapendekezo. 1062 00:51:50,570 --> 00:51:51,930 Sisi kujenga buffer yetu. 1063 00:51:51,930 --> 00:51:57,020 Sisi INGAWA fread, basi sisi fwrite. 1064 00:51:57,020 --> 00:51:59,760 Mawazo juu ya hili? 1065 00:51:59,760 --> 00:52:04,050 >> STUDENT 46: Swali langu tu ni, je, ni kweli nitafanya amri fread? 1066 00:52:04,050 --> 00:52:06,175 >> JASON HIRSCHHORN: Mkuu swali. 1067 00:52:06,175 --> 00:52:11,050 Wakati wewe ni kuweka kazi wito ndani ya hali, je, hiyo 1068 00:52:11,050 --> 00:52:12,300 kazi wito kutekeleza? 1069 00:52:12,300 --> 00:52:15,760 1070 00:52:15,760 --> 00:52:17,770 Tumeona mifano ya hili kabla ya. 1071 00:52:17,770 --> 00:52:24,900 1072 00:52:24,900 --> 00:52:25,660 Haki? 1073 00:52:25,660 --> 00:52:26,125 >> STUDENT 46: OK. 1074 00:52:26,125 --> 00:52:26,590 Yeah. 1075 00:52:26,590 --> 00:52:30,140 Inafanya hivyo kutekeleza. 1076 00:52:30,140 --> 00:52:31,790 >> JASON HIRSCHHORN: Tumeona mambo kama kwamba kabla, ambapo tuna 1077 00:52:31,790 --> 00:52:33,550 kazi wito ndani ya hali hiyo. 1078 00:52:33,550 --> 00:52:35,540 Je, hiyo kazi wito kutekeleza? 1079 00:52:35,540 --> 00:52:36,350 Ndiyo. 1080 00:52:36,350 --> 00:52:37,410 Hivyo jibu ni ndiyo. 1081 00:52:37,410 --> 00:52:41,010 Wito huu kazi nitafanya. 1082 00:52:41,010 --> 00:52:42,418 Lakini tena, ni nini tunataka? 1083 00:52:42,418 --> 00:52:49,250 1084 00:52:49,250 --> 00:52:52,204 >> Ni njia moja tunaweza kufikiri nini nje kama ni nini tunataka? 1085 00:52:52,204 --> 00:52:53,470 >> WANAFUNZI nyingi: kuendesha? 1086 00:52:53,470 --> 00:52:54,460 >> JASON HIRSCHHORN: Tunaweza kukimbia. 1087 00:52:54,460 --> 00:52:57,500 Lakini kabla ya sisi kufanya hivyo, tunaweza pia sababu kwa njia hii. 1088 00:52:57,500 --> 00:52:57,920 Kama - 1089 00:52:57,920 --> 00:53:01,920 kusema tuna byte moja katika yetu faili, tutaweza kupata hapa, 1090 00:53:01,920 --> 00:53:02,660 tutaweza kupata kanuni hii. 1091 00:53:02,660 --> 00:53:03,620 Hii kukimbia. 1092 00:53:03,620 --> 00:53:07,780 fread atarudi byte moja na kuhifadhi katika buffer. 1093 00:53:07,780 --> 00:53:11,290 Na hii itakuwa kutathmini 1, haki, baada ya yeye anarudi 1. 1094 00:53:11,290 --> 00:53:12,640 >> Hivyo wakati 1. 1095 00:53:12,640 --> 00:53:15,325 Je, hiyo inamaanisha code ndani ya Kitanzi wakati nitafanya? 1096 00:53:15,325 --> 00:53:15,453 >> STUDENT 47: Yeah. 1097 00:53:15,453 --> 00:53:16,040 Ni kweli. 1098 00:53:16,040 --> 00:53:16,290 >> JASON HIRSCHHORN: Ndiyo. 1099 00:53:16,290 --> 00:53:17,490 1 ni ya kweli. 1100 00:53:17,490 --> 00:53:18,240 Siyo 0. 1101 00:53:18,240 --> 00:53:20,360 Hivyo code ndani ya hapa nitafanya. 1102 00:53:20,360 --> 00:53:22,300 Hivyo tutaweza kuandika kwamba. 1103 00:53:22,300 --> 00:53:25,340 Tutaweza kuhamia hii line mara nyingine tena. 1104 00:53:25,340 --> 00:53:26,850 Sasa tuna - 1105 00:53:26,850 --> 00:53:28,550 sisi ni mwisho wa file yetu. 1106 00:53:28,550 --> 00:53:30,980 Sisi kusoma kutoka mwisho wa faili yetu, kwa sababu sisi tu alikuwa byte moja ndani yake. 1107 00:53:30,980 --> 00:53:34,270 >> Fread anarudi 0, maduka kitu katika buffer. 1108 00:53:34,270 --> 00:53:35,890 Mimi uaminifu hawajui nini maduka katika buffer. 1109 00:53:35,890 --> 00:53:38,380 Tunaweza pengine kuangalia juu kuona nini anafanya. 1110 00:53:38,380 --> 00:53:40,130 Kwamba mimi uaminifu hawajui. 1111 00:53:40,130 --> 00:53:43,090 Hatujui, ambaye anayejali nini maduka katika buffer? 1112 00:53:43,090 --> 00:53:44,010 Lakini haina kurudi 0. 1113 00:53:44,010 --> 00:53:45,440 Na wakati 0 kutekeleza? 1114 00:53:45,440 --> 00:53:49,950 1115 00:53:49,950 --> 00:53:51,180 >> INGAWA 0 si nitafanya. 1116 00:53:51,180 --> 00:53:54,030 Hivyo basi tutaweza hoja chini hapa. 1117 00:53:54,030 --> 00:53:58,870 Basi hebu kupata show ya mikono kama hii ni kanuni sisi lazima kukimbia, au kama sisi 1118 00:53:58,870 --> 00:54:00,140 lazima kufanya mabadiliko ya kwanza. 1119 00:54:00,140 --> 00:54:02,180 Hivyo kama unadhani - una kupiga kura. 1120 00:54:02,180 --> 00:54:06,885 Kama unadhani sisi lazima kukimbia kanuni hii kama ni, tafadhali kuongeza mkono wako. 1121 00:54:06,885 --> 00:54:12,440 1122 00:54:12,440 --> 00:54:13,400 >> OK. 1123 00:54:13,400 --> 00:54:14,315 Kuna moja - 1124 00:54:14,315 --> 00:54:17,260 je, una swali, wasiwasi? 1125 00:54:17,260 --> 00:54:18,080 Yeah. 1126 00:54:18,080 --> 00:54:21,240 >> STUDENT 48: Baada ya sisi hoja buffer nje ya kitanzi, kufanya sisi 1127 00:54:21,240 --> 00:54:22,670 na malloc yake? 1128 00:54:22,670 --> 00:54:23,310 >> JASON HIRSCHHORN: Mkuu swali. 1129 00:54:23,310 --> 00:54:26,670 Baada ya sisi hoja buffer nje ya kitanzi, je, sisi na malloc yake? 1130 00:54:26,670 --> 00:54:28,400 Hili ni swali upeo. 1131 00:54:28,400 --> 00:54:32,130 Kama sisi initialize buffer nje ya kitanzi huu, ni kuwepo 1132 00:54:32,130 --> 00:54:33,534 ndani ya kitanzi? 1133 00:54:33,534 --> 00:54:35,230 >> WANAFUNZI nyingi: Ndiyo. 1134 00:54:35,230 --> 00:54:35,580 >> JASON HIRSCHHORN: Ndiyo. 1135 00:54:35,580 --> 00:54:40,100 Wigo wake inashughulikia ndani ya kitanzi, na, kwa kweli, kitu chochote chini yake ndani ya 1136 00:54:40,100 --> 00:54:42,460 ya kanuni hii, ikiwa ni pamoja mambo ndani ya hapa. 1137 00:54:42,460 --> 00:54:43,930 Hivyo hatuna haja ya malloc yake. 1138 00:54:43,930 --> 00:54:47,766 Ni variable za mitaa, na wigo wake bado ni pamoja na kitanzi. 1139 00:54:47,766 --> 00:54:49,540 >> STUDENT 49: Je, tunahitaji bure it? 1140 00:54:49,540 --> 00:54:51,770 >> JASON HIRSCHHORN: Je, sisi haja ya bure buffer? 1141 00:54:51,770 --> 00:54:53,860 >> STUDENT 49: Yeah, kama sisi si malloc. 1142 00:54:53,860 --> 00:54:55,750 >> JASON HIRSCHHORN: Je, sisi haja ya bure buffer? 1143 00:54:55,750 --> 00:54:57,160 Sisi hawana. 1144 00:54:57,160 --> 00:55:01,280 Tena, ni variable mitaa, hivyo hatuna haja ya bure yake. 1145 00:55:01,280 --> 00:55:02,170 OK. 1146 00:55:02,170 --> 00:55:03,480 Hebu kuona nini kinatokea. 1147 00:55:03,480 --> 00:55:17,290 1148 00:55:17,290 --> 00:55:18,220 Hivyo ni uninitialized. 1149 00:55:18,220 --> 00:55:20,830 Hiyo ilikuwa ni nini kitu ambacho Marcus mapendekezo ya awali. 1150 00:55:20,830 --> 00:55:25,340 Hivyo tuna makosa ambayo, variable buffer ni uninitialized wakati kutumika hapa. 1151 00:55:25,340 --> 00:55:26,590 >> Jinsi gani tunaweza kurekebisha hili? 1152 00:55:26,590 --> 00:55:29,460 1153 00:55:29,460 --> 00:55:30,960 >> STUDENT 50: malloc yake? 1154 00:55:30,960 --> 00:55:31,770 >> STUDENT 51: Usawa NULL? 1155 00:55:31,770 --> 00:55:33,000 >> STUDENT 52: Sema buffer sawa na NULL. 1156 00:55:33,000 --> 00:55:34,250 >> JASON HIRSCHHORN: OK. 1157 00:55:34,250 --> 00:55:40,040 1158 00:55:40,040 --> 00:55:40,770 Inaonekana ni nzuri. 1159 00:55:40,770 --> 00:55:42,410 Tuna sasa. 1160 00:55:42,410 --> 00:55:45,630 Hebu kujenga kitu kujaribu kuiga. 1161 00:55:45,630 --> 00:56:08,990 1162 00:56:08,990 --> 00:56:10,490 Hivyo tuna faili wetu maandishi. 1163 00:56:10,490 --> 00:56:11,740 Jinsi gani tunaweza kuendesha mpango huu? 1164 00:56:11,740 --> 00:56:14,140 1165 00:56:14,140 --> 00:56:15,472 Yeah. 1166 00:56:15,472 --> 00:56:22,230 >> STUDENT 53: Unaweza kufanya dot kufyeka cp, test.txt. 1167 00:56:22,230 --> 00:56:25,140 Na kisha unaweza jina la faili mwingine ambayo itakuwa kuhifadhi ndani. 1168 00:56:25,140 --> 00:56:25,510 >> JASON HIRSCHHORN: OK. 1169 00:56:25,510 --> 00:56:27,380 Tutaweza kuiita out.txt. 1170 00:56:27,380 --> 00:56:28,630 Cool? 1171 00:56:28,630 --> 00:56:31,700 1172 00:56:31,700 --> 00:56:34,320 Seg kosa. 1173 00:56:34,320 --> 00:56:35,570 Mawazo juu ya seg kosa? 1174 00:56:35,570 --> 00:56:40,900 1175 00:56:40,900 --> 00:56:41,390 Hii ni kubwa. 1176 00:56:41,390 --> 00:56:45,040 Jinsi gani tunaweza kujua ambapo seg kosa hilo ni la? 1177 00:56:45,040 --> 00:56:45,680 Nini? 1178 00:56:45,680 --> 00:56:45,990 >> STUDENT 54: GDB. 1179 00:56:45,990 --> 00:56:47,240 >> JASON HIRSCHHORN: GDB. 1180 00:56:47,240 --> 00:56:51,400 1181 00:56:51,400 --> 00:56:55,300 Sisi kuendesha GDB kwa kuandika GDB dot slash, jina la programu yetu. 1182 00:56:55,300 --> 00:56:57,020 Hakuna hoja ya mstari amri huko. 1183 00:56:57,020 --> 00:56:59,570 Sisi ni kwenda kuweka Breakpoint katika kuu. 1184 00:56:59,570 --> 00:57:02,190 Kama mimi nataka kuanza GDB, nini mimi? 1185 00:57:02,190 --> 00:57:02,730 >> STUDENT 55: R. 1186 00:57:02,730 --> 00:57:08,910 >> JASON HIRSCHHORN: R. Na kisha nini? 1187 00:57:08,910 --> 00:57:09,400 >> STUDENT 55: mabishano? 1188 00:57:09,400 --> 00:57:10,650 >> JASON HIRSCHHORN: Kisha amri ya mstari wa hoja. 1189 00:57:10,650 --> 00:57:15,890 1190 00:57:15,890 --> 00:57:17,120 Hebu kutembea kwa njia ya. 1191 00:57:17,120 --> 00:57:19,090 N ni kuchukua mimi tu mstari kwa mstari. 1192 00:57:19,090 --> 00:57:21,450 Mimi nina kwenda mpaka Mimi kupata seg yangu kosa. 1193 00:57:21,450 --> 00:57:22,700 Kuna seg yangu kosa. 1194 00:57:22,700 --> 00:57:24,960 1195 00:57:24,960 --> 00:57:27,875 Inaonekana kama fread unasababishwa seg yangu kosa. 1196 00:57:27,875 --> 00:57:30,570 1197 00:57:30,570 --> 00:57:32,770 Mimi najua fread unasababishwa seg yangu kosa, kwa sababu hiyo ilikuwa 1198 00:57:32,770 --> 00:57:34,950 line sisi tu kunyongwa. 1199 00:57:34,950 --> 00:57:36,530 >> Na kitu pekee ambayo ilikuwa kinachotokea katika line - 1200 00:57:36,530 --> 00:57:37,520 mambo mawili yaliyokuwa yanatokea. 1201 00:57:37,520 --> 00:57:40,610 Fread alikuwa anaenda, na kisha tulikuwa kufanya baadhi ya kuangalia muda. 1202 00:57:40,610 --> 00:57:44,820 Mimi niko tayari bet kwamba wakati kuangalia hakuwa na kusababisha seg yangu kosa. 1203 00:57:44,820 --> 00:57:46,950 Uwezekano mkubwa zaidi, fread mara kusababisha seg yangu kosa. 1204 00:57:46,950 --> 00:57:49,260 Mimi pia kuona kitu hapa, memcopy. 1205 00:57:49,260 --> 00:57:50,500 >> Kumbukumbu nakala. 1206 00:57:50,500 --> 00:57:53,820 Inaonekana kama kusonga kumbukumbu kutoka eneo moja hadi nyingine. 1207 00:57:53,820 --> 00:57:56,890 Inaonekana kama kitu ambacho kingetokea katika fread, labda baadhi ya kumbukumbu 1208 00:57:56,890 --> 00:57:58,910 kuhama kutoka hapa hapa. 1209 00:57:58,910 --> 00:58:01,740 1210 00:58:01,740 --> 00:58:03,860 Hebu kwenda kwa njia hii tena. 1211 00:58:03,860 --> 00:58:06,900 Je, mimi kuanza ni juu ya na kuendesha tena? 1212 00:58:06,900 --> 00:58:08,092 Yeah. 1213 00:58:08,092 --> 00:58:15,140 >> STUDENT 56: Je, unahitaji kuweka Ampersand kabla ya buffer? 1214 00:58:15,140 --> 00:58:17,800 >> JASON HIRSCHHORN: Kwa hiyo Ampersand kabla ya buffer angenipa ya barua pepe ya 1215 00:58:17,800 --> 00:58:22,330 buffer, ambayo ni char *. 1216 00:58:22,330 --> 00:58:25,250 Hebu kukimbia kwa wakati huu moja zaidi. 1217 00:58:25,250 --> 00:58:28,248 Je, mimi kukimbia kwa njia hiyo mara moja zaidi? 1218 00:58:28,248 --> 00:58:29,210 >> STUDENT 57: Je, unaweza tu aina kukimbia tena? 1219 00:58:29,210 --> 00:58:32,050 >> JASON HIRSCHHORN: Aina tu kukimbia tena. 1220 00:58:32,050 --> 00:58:33,415 Hivyo sisi siyo kwenda kwa kutekeleza mstari huu. 1221 00:58:33,415 --> 00:58:36,250 1222 00:58:36,250 --> 00:58:39,240 Hivyo buffer ni NULL pointer. 1223 00:58:39,240 --> 00:58:40,490 Sahihi? 1224 00:58:40,490 --> 00:58:45,870 1225 00:58:45,870 --> 00:58:47,060 Ni akizungumzia - hebu angalia. 1226 00:58:47,060 --> 00:58:48,500 Kama tuna yetu - 1227 00:58:48,500 --> 00:58:50,430 kuchora picha ya haraka ya hii. 1228 00:58:50,430 --> 00:58:53,500 Je, kila mtu kuona kama Mimi kuandika juu ya hapa? 1229 00:58:53,500 --> 00:59:02,890 >> Hivyo katika stack, tuna ndani kutofautiana na ni kuitwa buffer, na 1230 00:59:02,890 --> 00:59:08,230 ni pointer kwa char. 1231 00:59:08,230 --> 00:59:10,325 Nini anwani ni char hii saa? 1232 00:59:10,325 --> 00:59:12,550 >> STUDENT 58: 0x0. 1233 00:59:12,550 --> 00:59:13,400 >> JASON HIRSCHHORN: Haki. 1234 00:59:13,400 --> 00:59:14,200 Hiyo ni nini hii ni. 1235 00:59:14,200 --> 00:59:17,600 Katika hapa, ndani ya buffer, ni kuhifadhiwa 0x0. 1236 00:59:17,600 --> 00:59:20,480 Hiyo ni nini tuna - kuanzisha tuna haki ya sasa. 1237 00:59:20,480 --> 00:59:27,540 Hivyo mstari huu, fread, unaweka kitu kutoka chanzo wapi? 1238 00:59:27,540 --> 00:59:30,560 Ndani ya boksi hii au sanduku hili? 1239 00:59:30,560 --> 00:59:31,060 Ambayo sanduku? 1240 00:59:31,060 --> 00:59:33,290 Kushoto sanduku au sanduku sahihi? 1241 00:59:33,290 --> 00:59:34,750 Hii sanduku haki. 1242 00:59:34,750 --> 00:59:38,440 >> Kinachofuata ni pointer, na kuiweka katika hapa. 1243 00:59:38,440 --> 00:59:42,620 Wakati sisi kujaribu na kugusa kumbukumbu katika eneo 0, je, sisi kupata? 1244 00:59:42,620 --> 00:59:45,050 kosa segmentation. 1245 00:59:45,050 --> 00:59:46,550 Hiyo ni hitilafu tuna haki ya sasa. 1246 00:59:46,550 --> 00:59:46,970 Yeah. 1247 00:59:46,970 --> 00:59:48,410 >> STUDENT 59: Je, si una kuweka nyota buffer? 1248 00:59:48,410 --> 00:59:49,180 Au hapana? 1249 00:59:49,180 --> 00:59:50,050 Kwa fread? 1250 00:59:50,050 --> 00:59:51,450 >> JASON HIRSCHHORN: Kwa hiyo fread inachukua pointer. 1251 00:59:51,450 --> 00:59:54,920 1252 00:59:54,920 --> 00:59:55,900 Hivyo hupita katika buffer. 1253 00:59:55,900 --> 00:59:58,980 Na kisha utakuwa de-rejea mahali fulani ndani ya fread. 1254 00:59:58,980 --> 01:00:00,700 Lakini tena, tuliona, inachukua pointer. 1255 01:00:00,700 --> 01:00:02,560 Hatuna haja ya kupita nyota buffer. 1256 01:00:02,560 --> 01:00:05,350 Hiyo itakuwa kupita vyovyote hapa. 1257 01:00:05,350 --> 01:00:07,980 Na kwamba pengine kutupa makosa kwa sababu sisi ni de-referencing yake. 1258 01:00:07,980 --> 01:00:08,150 >> Haki? 1259 01:00:08,150 --> 01:00:10,690 Wakati sisi de-rejea pointer hii, wakati sisi kujaribu kupata eneo hili, 1260 01:00:10,690 --> 01:00:13,140 sisi ni kupata makosa - segmentation wetu kosa. 1261 01:00:13,140 --> 01:00:15,800 Hivyo - 1262 01:00:15,800 --> 01:00:16,690 oops. 1263 01:00:16,690 --> 01:00:19,090 Sisi ni kwenda kuacha nje ya GDB. 1264 01:00:19,090 --> 01:00:20,160 Line yetu - 1265 01:00:20,160 --> 01:00:22,990 tatizo letu - ni haki hapa juu ya mstari huu. 1266 01:00:22,990 --> 01:00:26,410 Na ni tatizo kwa sababu ya mstari huu. 1267 01:00:26,410 --> 01:00:31,780 >> Jinsi gani tunaweza kujenga sanduku kwamba ni kupatikana katika fread. 1268 01:00:31,780 --> 01:00:31,980 Haki? 1269 01:00:31,980 --> 01:00:35,190 Tunahitaji kujenga sanduku hiyo ni moja byte kubwa, ukubwa wa char. 1270 01:00:35,190 --> 01:00:38,590 Lakini tunahitaji sanduku kwamba kuwa kupatikana wakati kazi hii inatimiza. 1271 01:00:38,590 --> 01:00:39,390 Hivyo ambapo - 1272 01:00:39,390 --> 01:00:39,640 yeah. 1273 01:00:39,640 --> 01:00:40,440 Mawazo yoyote? 1274 01:00:40,440 --> 01:00:43,615 >> STUDENT 60: Tu kuweka kama tabia yoyote random. 1275 01:00:43,615 --> 01:00:49,150 1276 01:00:49,150 --> 01:00:51,640 Tu kufanya char buffer usawa tabia. 1277 01:00:51,640 --> 01:00:53,795 Na kisha, wakati una buffer hapo - 1278 01:00:53,795 --> 01:00:54,110 >> JASON HIRSCHHORN: Ngoja. 1279 01:00:54,110 --> 01:00:55,110 Char buffer? 1280 01:00:55,110 --> 01:00:55,880 Hivyo hakuna nyota? 1281 01:00:55,880 --> 01:00:56,390 >> STUDENT 60: Yeah. 1282 01:00:56,390 --> 01:00:58,560 Kuchukua nyota. 1283 01:00:58,560 --> 01:01:00,690 Sawa na tabia ya random. 1284 01:01:00,690 --> 01:01:01,460 >> JASON HIRSCHHORN: OK. 1285 01:01:01,460 --> 01:01:02,420 Basi nipe moja. 1286 01:01:02,420 --> 01:01:03,170 >> STUDENT 60: Kama a au kitu. 1287 01:01:03,170 --> 01:01:06,160 Na wakati una buffer huko, kutumia - 1288 01:01:06,160 --> 01:01:06,420 >> STUDENT 61: Star? 1289 01:01:06,420 --> 01:01:07,650 Oh no, Ampersand. 1290 01:01:07,650 --> 01:01:09,000 >> STUDENT 60: Matumizi ya Ampersand. 1291 01:01:09,000 --> 01:01:09,470 >> JASON HIRSCHHORN: OK. 1292 01:01:09,470 --> 01:01:11,320 Na nini kuhusu katika fwrite? 1293 01:01:11,320 --> 01:01:14,150 >> STUDENT 60: Matumizi ya Ampersand tena. 1294 01:01:14,150 --> 01:01:14,320 >> JASON HIRSCHHORN: All wa kulia. 1295 01:01:14,320 --> 01:01:20,970 Hivyo wazo yako, sisi kujenga char na kuweka kitu ndani yake, na kisha 1296 01:01:20,970 --> 01:01:22,612 kuandika kwamba char. 1297 01:01:22,612 --> 01:01:23,760 >> STUDENT 60: Yeah. 1298 01:01:23,760 --> 01:01:25,916 >> JASON HIRSCHHORN: Nini wala watu kufikiri? 1299 01:01:25,916 --> 01:01:27,770 >> STUDENT 62: Ni convoluted. 1300 01:01:27,770 --> 01:01:28,460 >> JASON HIRSCHHORN: OK. 1301 01:01:28,460 --> 01:01:29,760 Hebu kuteka nje. 1302 01:01:29,760 --> 01:01:35,720 Hivyo wakati huu, mimi nina kwenda kuteka hii katika nyekundu juu ya stack hapa, na kisha sisi 1303 01:01:35,720 --> 01:01:36,410 itakuwa na - 1304 01:01:36,410 --> 01:01:36,822 ooh! 1305 01:01:36,822 --> 01:01:38,060 Sorry. 1306 01:01:38,060 --> 01:01:45,930 Hivyo wakati huu tuna kitu kinachoitwa buffer, na ni juu ya stack. 1307 01:01:45,930 --> 01:01:48,430 Sahihi? 1308 01:01:48,430 --> 01:01:51,520 Na sisi ni kuokoa ndani yake, awali. 1309 01:01:51,520 --> 01:01:53,830 >> Basi tuna wito wetu kwa fread. 1310 01:01:53,830 --> 01:02:01,300 Nini fread haina ni inachukua byte kutoka file yetu na kuiweka mahali fulani. 1311 01:02:01,300 --> 01:02:04,570 Ni kuiweka katika kila kitu ni akizungumzia. 1312 01:02:04,570 --> 01:02:09,130 Naam, kabla ya sisi na anwani hii - 1313 01:02:09,130 --> 01:02:10,250 0x0. 1314 01:02:10,250 --> 01:02:13,349 Sasa nini anwani tuna gani? 1315 01:02:13,349 --> 01:02:14,650 >> STUDENT 63: Kheri anwani buffer ni. 1316 01:02:14,650 --> 01:02:15,970 >> JASON HIRSCHHORN: Kheri anwani buffer ni. 1317 01:02:15,970 --> 01:02:22,370 Ni pengine ni kwenda kuwa kitu kama hicho. 1318 01:02:22,370 --> 01:02:26,950 Pengine ni kwenda kuanza na b na f, na kisha kuwa na wengine sita 1319 01:02:26,950 --> 01:02:27,970 hexadesimoli tarakimu. 1320 01:02:27,970 --> 01:02:28,480 Je, si jambo. 1321 01:02:28,480 --> 01:02:29,470 Baadhi ya anwani. 1322 01:02:29,470 --> 01:02:31,410 Na sisi ni kupita anwani kwamba in 1323 01:02:31,410 --> 01:02:34,790 >> Na sisi ni kwenda kuweka moja wetu byte kitu katika anwani hiyo. 1324 01:02:34,790 --> 01:02:38,470 Hivyo sisi ni kwenda kuweka moja wetu byte kitu ndani ya hapa. 1325 01:02:38,470 --> 01:02:40,800 Na kisha tunakwenda kuandika kutoka nini milele ndani hapa. 1326 01:02:40,800 --> 01:02:43,425 1327 01:02:43,425 --> 01:02:45,380 Je, mtu yeyote una maswali yoyote kuhusu hilo? 1328 01:02:45,380 --> 01:02:50,990 1329 01:02:50,990 --> 01:02:54,690 Ambaye anadhani kanuni hii itakuwa kazi? 1330 01:02:54,690 --> 01:02:56,020 >> Kunyanyua mkono wako kama unadhani kanuni hii kazi. 1331 01:02:56,020 --> 01:02:57,270 Una kuchukua msimamo. 1332 01:02:57,270 --> 01:03:00,670 1333 01:03:00,670 --> 01:03:02,500 Na ambaye anadhani kanuni hii si kazi? 1334 01:03:02,500 --> 01:03:04,610 Kuongeza mkono wako. 1335 01:03:04,610 --> 01:03:06,750 Kila mtu mwingine lazima kuongeza mikono yao. 1336 01:03:06,750 --> 01:03:07,670 OK. 1337 01:03:07,670 --> 01:03:09,390 Michael, ambapo ni wewe wamesimama? 1338 01:03:09,390 --> 01:03:10,680 >> MICHAEL: Siwezi kuamua. 1339 01:03:10,680 --> 01:03:12,070 Aina ya katikati. 1340 01:03:12,070 --> 01:03:12,736 >> JASON HIRSCHHORN: Wewe ni katikati. 1341 01:03:12,736 --> 01:03:13,092 Kuchukua moja. 1342 01:03:13,092 --> 01:03:14,400 >> MICHAEL: Mimi itabidi imani na kusema itakuwa kazi. 1343 01:03:14,400 --> 01:03:14,660 >> JASON HIRSCHHORN: OK. 1344 01:03:14,660 --> 01:03:16,047 Itabidi imani na kusema ni kazi? 1345 01:03:16,047 --> 01:03:26,490 1346 01:03:26,490 --> 01:03:27,020 Nini kilitokea? 1347 01:03:27,020 --> 01:03:28,270 >> [INTERPOSING SAUTI] 1348 01:03:28,270 --> 01:03:35,170 1349 01:03:35,170 --> 01:03:35,950 >> JASON HIRSCHHORN: No kosa seg. 1350 01:03:35,950 --> 01:03:40,320 Jinsi gani tunaweza kuangalia kuona kama mambo mawili ni sawa? 1351 01:03:40,320 --> 01:03:42,060 Files mbili ni sawa. 1352 01:03:42,060 --> 01:03:43,300 >> STUDENT 64: tofauti. 1353 01:03:43,300 --> 01:03:45,490 >> JASON HIRSCHHORN: tofauti. 1354 01:03:45,490 --> 01:03:51,630 Hundi tofauti tofauti kati ya files mbili, na kama anarudi 1355 01:03:51,630 --> 01:03:52,890 kitu, wao ni kufanana. 1356 01:03:52,890 --> 01:03:59,030 Na kama sisi kufungua, sisi kupata faili yetu. 1357 01:03:59,030 --> 01:04:00,490 Ili kwamba ilikuwa ufumbuzi sahihi. 1358 01:04:00,490 --> 01:04:01,780 Hebu tuangalie nyuma saa yake mara moja zaidi. 1359 01:04:01,780 --> 01:04:04,080 Sisi kwa kweli hata haja ya initialize. 1360 01:04:04,080 --> 01:04:05,520 >> Ni pengine kuangalia kidogo safi kama hakuwa na kuweka 1361 01:04:05,520 --> 01:04:07,680 kitu random huko. 1362 01:04:07,680 --> 01:04:13,070 hatua kuwa, unahitajika ili kujenga baadhi nafasi ya kuhifadhi kitu kutoka 1363 01:04:13,070 --> 01:04:15,530 fread na kuchukua kitu nje ya fwrite. 1364 01:04:15,530 --> 01:04:18,400 Na kwamba jambo na kuwa ama ndani kutofautiana juu ya stack - wewe 1365 01:04:18,400 --> 01:04:19,890 nilikuwa ve malloc'd baadhi ya nafasi. 1366 01:04:19,890 --> 01:04:23,030 >> Hivyo sisi kweli inaweza kuwa na malloc imeandikwa hapa, na 1367 01:04:23,030 --> 01:04:25,420 kwamba ingekuwa kazi. 1368 01:04:25,420 --> 01:04:28,660 Na kisha sisi ingekuwa kuhifadhi mambo yetu mahali fulani juu ya chungu. 1369 01:04:28,660 --> 01:04:31,940 Lakini hii ni kweli, pengine, ufumbuzi kifahari zaidi. 1370 01:04:31,940 --> 01:04:34,490 Tu kujenga baadhi ya nafasi ya stack kwa mambo haya kwenda. 1371 01:04:34,490 --> 01:04:37,690 1372 01:04:37,690 --> 01:04:38,990 >> Napenda kuwa na maoni wengine wawili. 1373 01:04:38,990 --> 01:04:44,650 Kama ungekuwa na kuchukua kugeuka katika hili, na kisha kupata bao juu ya hili, maoni yangu 1374 01:04:44,650 --> 01:04:47,400 itakuwa kama ifuatavyo. 1375 01:04:47,400 --> 01:04:54,300 Hizi 1 hapa, na mimi, kuangalia kama idadi uchawi. 1376 01:04:54,300 --> 01:04:56,860 Hii 1, katika suala la fread, hufanya akili. 1377 01:04:56,860 --> 01:04:59,580 Hiyo ni idadi ya mambo kusoma na kuandika. 1378 01:04:59,580 --> 01:05:03,740 >> Lakini hii haki ya mmoja hapa lazima pengine kuwa kitu kingine. 1379 01:05:03,740 --> 01:05:05,180 Kwa hiyo kile ni moja ya ufumbuzi? 1380 01:05:05,180 --> 01:05:06,545 >> STUDENT 65: Ukubwa wa Byte. 1381 01:05:06,545 --> 01:05:10,100 1382 01:05:10,100 --> 01:05:11,080 >> JASON HIRSCHHORN: Kama kwamba? 1383 01:05:11,080 --> 01:05:13,130 >> STUDENT 65: Ukubwa wa char. 1384 01:05:13,130 --> 01:05:13,820 >> JASON HIRSCHHORN: Ukubwa wa char. 1385 01:05:13,820 --> 01:05:15,290 Yeah, byte ni si aina. 1386 01:05:15,290 --> 01:05:16,320 Hivyo ukubwa wa char kazi. 1387 01:05:16,320 --> 01:05:30,270 Tunaweza kuwa na, juu ya kanuni zetu, # hufafanuliwa kwamba. 1388 01:05:30,270 --> 01:05:33,410 Aitwaye kitu Byte na ni kweli char. 1389 01:05:33,410 --> 01:05:37,675 Kwa kweli, mbinu bora hata anaweza kuwa hii - 1390 01:05:37,675 --> 01:05:39,391 uint. 1391 01:05:39,391 --> 01:05:40,780 Mtu yeyote kujua kwamba ni? 1392 01:05:40,780 --> 01:05:44,388 1393 01:05:44,388 --> 01:05:44,840 >> Sorry. 1394 01:05:44,840 --> 01:05:46,090 Mimi ni nyuma. 1395 01:05:46,090 --> 01:05:51,620 1396 01:05:51,620 --> 01:05:52,200 Kusubiri, no. 1397 01:05:52,200 --> 01:05:53,450 Njia ambayo haina ni kwenda? 1398 01:05:53,450 --> 01:05:58,071 1399 01:05:58,071 --> 01:05:59,660 Mtu yeyote kujua kwamba ni? 1400 01:05:59,660 --> 01:06:00,950 Yeah. 1401 01:06:00,950 --> 01:06:05,650 >> STUDENT 67: zinatakiwa kusaidia sanifisha katika mifumo ya mambo ambayo 1402 01:06:05,650 --> 01:06:08,760 na - kama integers unsigned kuwa na 8 ka? 1403 01:06:08,760 --> 01:06:11,785 >> JASON HIRSCHHORN: Hiyo ni sahihi kabisa. 1404 01:06:11,785 --> 01:06:14,310 On mashine mbalimbali, ukubwa wa char - 1405 01:06:14,310 --> 01:06:15,180 si kawaida char. 1406 01:06:15,180 --> 01:06:16,100 Chars ni kawaida byte moja. 1407 01:06:16,100 --> 01:06:19,590 Lakini ukubwa wa aina nyingine data ni ukubwa tofauti juu ya 32-bit mashine 1408 01:06:19,590 --> 01:06:21,370 dhidi ya 64-bit mashine. 1409 01:06:21,370 --> 01:06:25,180 uint8_t ni daima 8 bits - 1410 01:06:25,180 --> 01:06:27,210 daima byte moja. 1411 01:06:27,210 --> 01:06:29,580 >> Na mimi haja ya pamoja na kwamba kiwango int header file. 1412 01:06:29,580 --> 01:06:35,040 Basi sasa, hii ingekuwa pengine imekuwa njia bora ya kuandika kanuni hii. 1413 01:06:35,040 --> 01:06:40,160 1414 01:06:40,160 --> 01:06:41,450 Basi, mimi kujikwamua idadi uchawi. 1415 01:06:41,450 --> 01:06:44,690 Na mimi pia mantiki zaidi aina kwa buffer. 1416 01:06:44,690 --> 01:06:49,450 Siyo tu char, ni Byte, ambayo ni nini tunatarajia kuwa. 1417 01:06:49,450 --> 01:06:53,400 >> Na hapa, tumekuwa kweli kuwa kidogo imara zaidi. 1418 01:06:53,400 --> 01:06:55,190 Sisi siyo kuiita char, ambayo - 1419 01:06:55,190 --> 01:06:58,630 labda, ambaye anajua - inaweza kuwa tofauti ukubwa juu ya mashine mbalimbali. 1420 01:06:58,630 --> 01:07:02,025 Sisi ni kweli kusema hii ni hasa Byte moja, daima, bila kujali. 1421 01:07:02,025 --> 01:07:05,810 Na kama sisi kuangalia hapa, sisi kufanya cp. 1422 01:07:05,810 --> 01:07:08,340 Uh-oh. 1423 01:07:08,340 --> 01:07:09,590 Nini kilitokea? 1424 01:07:09,590 --> 01:07:14,470 1425 01:07:14,470 --> 01:07:16,170 >> STUDENT 68: Ni wanaweza kimewashwa. 1426 01:07:16,170 --> 01:07:17,880 >> JASON HIRSCHHORN: Nini? 1427 01:07:17,880 --> 01:07:19,130 >> STUDENT 69: Je, ni? 1428 01:07:19,130 --> 01:07:21,940 1429 01:07:21,940 --> 01:07:25,080 >> STUDENT 70: You hawakuwa kufafanua kama aina. 1430 01:07:25,080 --> 01:07:28,684 >> STUDENT 71: Lakini ni lazima kuelezwa katika kiwango. 1431 01:07:28,684 --> 01:07:29,934 >> STUDENT 72: Nini kinaendelea? 1432 01:07:29,934 --> 01:07:37,660 1433 01:07:37,660 --> 01:07:40,210 >> STUDENT 73: Je, kufafanua kuwa mechi zote? 1434 01:07:40,210 --> 01:07:41,370 >> JASON HIRSCHHORN: Hivyo si # kufafanua. 1435 01:07:41,370 --> 01:07:45,490 Kwa kweli, katika kesi hii, mimi nina kwenda kutumia typedef. 1436 01:07:45,490 --> 01:07:48,590 Kwa sababu sisi ni kutumia kama aina katika eneo moja. 1437 01:07:48,590 --> 01:07:51,990 Hivyo katika kesi hii, sisi kweli wanataka typedef kama sisi ni uchapishaji aina mpya 1438 01:07:51,990 --> 01:07:54,490 Byte, na ni, kimsingi, hii. 1439 01:07:54,490 --> 01:07:56,590 Ni tofauti kidogo kuliko # kufafanua. 1440 01:07:56,590 --> 01:08:02,740 >> Na sasa, kanuni zetu kazi kikamilifu. 1441 01:08:02,740 --> 01:08:05,230 Kwa hiyo, tena, # kufafanua inachukua kitu, nafasi yake kila mahali 1442 01:08:05,230 --> 01:08:06,780 na mambo mengine. 1443 01:08:06,780 --> 01:08:07,920 Ni tu jumla - 1444 01:08:07,920 --> 01:08:09,420 shorthand kujikwamua idadi uchawi. 1445 01:08:09,420 --> 01:08:11,360 Lakini katika kesi hii, kwa sababu tuko kutumia kama aina - 1446 01:08:11,360 --> 01:08:12,180 haki hapa - 1447 01:08:12,180 --> 01:08:19,880 ili kwa kwamba kazi, tunahitaji kwa typedef chochote byte ni. 1448 01:08:19,880 --> 01:08:21,840 >> Na sisi ni kufafanua haki hapa. 1449 01:08:21,840 --> 01:08:24,750 Siyo struct, ni kweli tu unsigned integer. 1450 01:08:24,750 --> 01:08:27,680 Ni byte moja kwa muda mrefu. 1451 01:08:27,680 --> 01:08:31,910 Kanuni hii itakuwa inapatikana online, na ninyi wote wanapaswa kuwa na haki sasa. 1452 01:08:31,910 --> 01:08:33,830 >> Hivyo tuna - 1453 01:08:33,830 --> 01:08:34,250 kamili - 1454 01:08:34,250 --> 01:08:41,359 Dakika 13 kushoto kwenda juu ya tatizo kuweka 5. 1455 01:08:41,359 --> 01:08:44,270 Nataka kutembea kwa njia ya copy.c pamoja, na kisha tutaweza majadiliano kwa ufupi 1456 01:08:44,270 --> 01:08:47,120 juu ya sehemu nyingine ya kuweka tatizo. 1457 01:08:47,120 --> 01:08:48,899 Hivyo basi mimi kuvuta up copy.c. 1458 01:08:48,899 --> 01:09:03,930 1459 01:09:03,930 --> 01:09:08,810 Na jambo zuri ni, tumekuwa kweli tayari imeandikwa mengi ya kanuni hii. 1460 01:09:08,810 --> 01:09:11,180 >> code tuliandika literally tu toka nje ya hapa wakati mimi nilikuwa 1461 01:09:11,180 --> 01:09:13,120 kuandika hii juu yangu mwenyewe. 1462 01:09:13,120 --> 01:09:16,990 Lakini hii ni copy.c, aina ya msingi kwa mara ya kwanza sehemu mbili za 1463 01:09:16,990 --> 01:09:22,340 kuweka tatizo kwa whodunit.c, ambayo unahitaji kuandika, na resize.c. 1464 01:09:22,340 --> 01:09:27,050 Recover.c, ambayo ni ya tatu na ya mwisho sehemu ya kuweka tatizo, si 1465 01:09:27,050 --> 01:09:29,529 msingi mbali ya faili hii. 1466 01:09:29,529 --> 01:09:32,200 >> Wewe ni kwenda haja ya kuandika kwenye faili kwamba, sisi kukupa template kwa kuwa 1467 01:09:32,200 --> 01:09:34,620 faili, lakini ina kitu kufanya na copy.c. 1468 01:09:34,620 --> 01:09:38,675 Lakini kwa sababu copy.c ni msingi kwa ajili ya kwanza sehemu mbili, tunakwenda 1469 01:09:38,675 --> 01:09:42,000 kutembea kwa njia ya sasa, hivyo kuwa hisia nzuri ya nini anafanya. 1470 01:09:42,000 --> 01:09:43,640 >> Na maoni kutoa baadhi ya mbali. 1471 01:09:43,640 --> 01:09:45,120 Tumekuwa tayari imeandikwa baadhi ya hili. 1472 01:09:45,120 --> 01:09:49,220 Kwanza, sisi ni kuhakikisha sisi kupata hoja tatu. 1473 01:09:49,220 --> 01:09:50,560 Next, sisi ni kukumbuka jina la faili. 1474 01:09:50,560 --> 01:09:52,960 Hivyo sisi skipped hatua hii wakati sisi kutolewa kitu yetu - 1475 01:09:52,960 --> 01:09:54,700 wakati cp yetu. 1476 01:09:54,700 --> 01:09:56,750 Lakini hapa, wao ni kufanya ni kidogo safi. 1477 01:09:56,750 --> 01:09:59,350 >> Wao ni kuangalia ili kuhakikisha files wote ni nzuri, katika 1478 01:09:59,350 --> 01:10:00,450 Mbali na kufungua yao. 1479 01:10:00,450 --> 01:10:04,760 Tuliandika kanuni hii wote tu sasa, hivyo mimi nina si kwenda kukaa juu ya kanuni hii. 1480 01:10:04,760 --> 01:10:09,670 Pili ni baadhi ya mambo ambayo ni maalum kwa aina ya files sisi ni kutumia, ambayo 1481 01:10:09,670 --> 01:10:12,240 ni bitmap files. 1482 01:10:12,240 --> 01:10:15,660 Bitmap files na baadhi metadata kuhusishwa na wao. 1483 01:10:15,660 --> 01:10:20,190 >> Hivyo michache ya kwanza ya ka kukuambia juu ya faili. 1484 01:10:20,190 --> 01:10:23,460 Wao si rangi ya pixel katika picha kwamba. 1485 01:10:23,460 --> 01:10:25,120 Wao kukuambia juu ya faili. 1486 01:10:25,120 --> 01:10:28,220 Na kama kusoma kwa njia ya kuweka tatizo, itabidi habari zaidi 1487 01:10:28,220 --> 01:10:33,100 juu ya aina gani ya miundo metadata ni pamoja na bitmaps. 1488 01:10:33,100 --> 01:10:39,350 >> Lakini hiyo ndiyo sababu tuna hii ya kwanza seti ya - kanuni hii hapa. 1489 01:10:39,350 --> 01:10:42,490 Sisi ni kusoma metadata - 1490 01:10:42,490 --> 01:10:45,800 vipande viwili vya metadata - file header na info header. 1491 01:10:45,800 --> 01:10:51,030 Na sisi ni kuangalia baadhi ya sehemu kwa kuhakikisha kuwa ni kweli bitmap file 1492 01:10:51,030 --> 01:10:52,420 kabla ya kuendelea. 1493 01:10:52,420 --> 01:10:55,470 >> Na tena, hizi ni maelezo sisi hawana haja ya kwenda katika sasa. 1494 01:10:55,470 --> 01:10:57,720 Kama unaweza kusoma kwa njia ya kuweka tatizo, utaelewa haya. 1495 01:10:57,720 --> 01:11:01,370 Muda mrefu hadithi fupi, hizi ni kusema tu, hii ni bitmap faili, na 1496 01:11:01,370 --> 01:11:02,810 kuthibitisha kwamba. 1497 01:11:02,810 --> 01:11:05,180 >> Next, sisi ni kuandika wale kwa nje file. 1498 01:11:05,180 --> 01:11:05,660 Tunaona kwamba hapa. 1499 01:11:05,660 --> 01:11:06,910 Tunakuandikia nje pointer. 1500 01:11:06,910 --> 01:11:09,260 1501 01:11:09,260 --> 01:11:11,320 Next, sisi ni kuamua padding. 1502 01:11:11,320 --> 01:11:15,240 Hivyo tena, kama ni particularity na bitmap file, baadhi ya mistari ni pamoja na 1503 01:11:15,240 --> 01:11:16,840 padding mwishoni. 1504 01:11:16,840 --> 01:11:19,000 Na kama kusoma kwa njia ya kuweka tatizo, itabidi kujifunza zaidi kuhusu padding. 1505 01:11:19,000 --> 01:11:22,330 Hii ni formula kupata padding. 1506 01:11:22,330 --> 01:11:23,610 >> Muhimu kukumbuka - 1507 01:11:23,610 --> 01:11:29,720 wakati mabadiliko ya kawaida ya bitmap faili, mabadiliko ya padding. 1508 01:11:29,720 --> 01:11:31,970 Wakati mabadiliko ya kawaida ya faili, mabadiliko ya padding. 1509 01:11:31,970 --> 01:11:34,310 Ni kamwe kwenda kuwa zaidi ya 3 - 1510 01:11:34,310 --> 01:11:36,510 utakuwa 0 kupitia 3, umoja. 1511 01:11:36,510 --> 01:11:38,930 Lakini wakati mabadiliko ya kawaida ya kitu, mabadiliko ya padding. 1512 01:11:38,930 --> 01:11:47,100 >> Kama mimi tu na pixel moja katika mstari kwamba, mimi haja ka tatu ya padding, kwa sababu 1513 01:11:47,100 --> 01:11:51,190 kila mstari ina kuwa mafungu ya nne ka kwa muda mrefu katika bitmap file. 1514 01:11:51,190 --> 01:11:56,120 Lakini kama mimi mara mbili, aende kutoka pixel moja mbili pixel, ambayo kila mmoja, 1515 01:11:56,120 --> 01:11:59,510 hebu sema, ni byte, basi mimi haja ka mbili za padding kufanya 1516 01:11:59,510 --> 01:12:00,970 sawa sawa na minne. 1517 01:12:00,970 --> 01:12:04,200 >> Hivyo wakati mimi mabadiliko ya kawaida ya kitu, Mimi haja ya kubadili kiasi 1518 01:12:04,200 --> 01:12:06,551 ya padding mimi. 1519 01:12:06,551 --> 01:12:08,100 Je, hiyo mantiki kwa kila mtu? 1520 01:12:08,100 --> 01:12:12,020 1521 01:12:12,020 --> 01:12:18,720 Next, sisi iterate juu ya kila mstari, au kwa njia ya safu yote. 1522 01:12:18,720 --> 01:12:21,400 Na kisha sisi iterate kupitia kila safu katika kila mstari. 1523 01:12:21,400 --> 01:12:25,330 Sisi ni kutibu bitmap hii kama gridi ya taifa, kama tumekuwa kutibiwa 1524 01:12:25,330 --> 01:12:26,490 bodi katika 15. 1525 01:12:26,490 --> 01:12:29,200 >> Kama sisi kutibiwa matofali wakati sisi kuchapishwa yao juu ya screen. 1526 01:12:29,200 --> 01:12:31,350 gridi ya safu na nguzo. 1527 01:12:31,350 --> 01:12:32,350 Kisha - tuliona hii. 1528 01:12:32,350 --> 01:12:33,840 Sisi kwa kweli tu kutolewa hii. 1529 01:12:33,840 --> 01:12:35,780 Sisi aliumba baadhi ya kuhifadhi muda. 1530 01:12:35,780 --> 01:12:38,710 Tunasoma katika huko, na kisha sisi kuandika nje. 1531 01:12:38,710 --> 01:12:42,680 Hii ni nini hasa sisi tu alifanya. 1532 01:12:42,680 --> 01:12:46,760 >> Next, kwa sababu mimi alisema kila line mwisho katika baadhi padding, sisi 1533 01:12:46,760 --> 01:12:48,260 ruka juu ya kwamba padding - 1534 01:12:48,260 --> 01:12:51,000 umri wa padding. 1535 01:12:51,000 --> 01:12:52,630 Na kisha sisi kuongeza nyuma. 1536 01:12:52,630 --> 01:12:55,140 Katika kesi hiyo, sisi ni kujenga hiyo hiyo file. 1537 01:12:55,140 --> 01:12:56,180 Tuko tu kuiga. 1538 01:12:56,180 --> 01:12:57,700 Hivyo line hii ni aina ya silly. 1539 01:12:57,700 --> 01:12:59,660 Tunaweza literally tu kuweka padding in 1540 01:12:59,660 --> 01:13:04,290 >> Lakini kama wewe mabadiliko ya kawaida ya faili, je, bado wanataka mstari huu? 1541 01:13:04,290 --> 01:13:08,510 1542 01:13:08,510 --> 01:13:11,560 Hivyo kama sisi mabadiliko ya kawaida ya faili, wala sisi bado wanataka ruka 1543 01:13:11,560 --> 01:13:12,810 juu ya padding zamani? 1544 01:13:12,810 --> 01:13:15,170 1545 01:13:15,170 --> 01:13:15,970 >> STUDENT 74: Ndiyo. 1546 01:13:15,970 --> 01:13:17,090 >> JASON HIRSCHHORN: Hivyo sisi kufanya. 1547 01:13:17,090 --> 01:13:19,290 Kwa sababu hii, tena, mikataba na chanzo file. 1548 01:13:19,290 --> 01:13:21,570 Sisi hawajali padding kutoka chanzo file. 1549 01:13:21,570 --> 01:13:23,410 Tunataka kwenda kwa line ijayo. 1550 01:13:23,410 --> 01:13:28,850 Lakini sisi si tu kuweka nyuma umri wa kiasi cha padding. 1551 01:13:28,850 --> 01:13:31,540 Tunahitaji kuweka nyuma kiasi mpya ya padding. 1552 01:13:31,540 --> 01:13:35,810 >> Hivyo wakati sisi ni kubadilisha ukubwa wa file, sisi bado wanataka ruka juu ya 1553 01:13:35,810 --> 01:13:38,270 padding katika faili ya zamani - nini sisi ni kusoma katika kutoka. 1554 01:13:38,270 --> 01:13:40,370 Lakini nini sisi ni kuandika kwa, tunakwenda haja ya kuweka nyuma baadhi ya tofauti 1555 01:13:40,370 --> 01:13:41,890 idadi ya padding kwamba tumethibitisha. 1556 01:13:41,890 --> 01:13:42,780 Yeah. 1557 01:13:42,780 --> 01:13:44,550 >> STUDENT 75: utaratibu wa hizo mbili mistari haijalishi, sawa? 1558 01:13:44,550 --> 01:13:46,160 Kwa sababu wewe ni utunzaji files tofauti. 1559 01:13:46,160 --> 01:13:46,620 >> JASON HIRSCHHORN: Hasa. 1560 01:13:46,620 --> 01:13:48,220 utaratibu wa mistari hizi mbili haijalishi. 1561 01:13:48,220 --> 01:13:49,790 Sisi kuandika mstari huu. 1562 01:13:49,790 --> 01:13:51,430 Hii ni hapa kwa ajili ya faili sisi ni kuandika kwa. 1563 01:13:51,430 --> 01:13:54,370 Hiyo ni muhimu, ili tuweze kupata haki ya kiasi cha padding. 1564 01:13:54,370 --> 01:13:57,560 Hii ina kukabiliana na file katika. 1565 01:13:57,560 --> 01:13:58,560 Tunataka ruka haki juu ya padding. 1566 01:13:58,560 --> 01:13:59,470 >> Hatutaki kusoma - 1567 01:13:59,470 --> 01:14:01,500 kama sisi ni kusoma byte wakati huo, sisi hawajali wale ka padding. 1568 01:14:01,500 --> 01:14:04,070 Tunataka hoja ya mstari wa pili. 1569 01:14:04,070 --> 01:14:11,800 Hatimaye tu kama Lucy alitoa kwa ajili yetu, sisi karibu files na kurudi 0. 1570 01:14:11,800 --> 01:14:13,890 Hivyo hii ni copy.c. 1571 01:14:13,890 --> 01:14:17,850 Na sisi kweli aliandika - sisi ilitumia zaidi ya sehemu ya kuandika haya, kimsingi. 1572 01:14:17,850 --> 01:14:18,740 >> Wewe alifanya hii. 1573 01:14:18,740 --> 01:14:22,440 Hivyo hopefully una maana nzuri ya nini kinaendelea katika hapa. 1574 01:14:22,440 --> 01:14:25,890 tofauti kubwa, uaminifu, ni tu sehemu hii ya kwanza ambayo inahusika na 1575 01:14:25,890 --> 01:14:29,970 sura ya kipekee ya files bitmap. 1576 01:14:29,970 --> 01:14:33,570 Hivyo nina kama slide yangu ijayo, nini tunahitaji kufanya nini? 1577 01:14:33,570 --> 01:14:35,510 Naam, hebu fikiria kuhusu whodunit. 1578 01:14:35,510 --> 01:14:38,080 >> Na kwa mtu ambaye kusoma kwa njia ya kuweka tatizo, sisi kufanya nini 1579 01:14:38,080 --> 01:14:41,410 haja ya kufanya katika whodunit? 1580 01:14:41,410 --> 01:14:42,080 Tu. 1581 01:14:42,080 --> 01:14:42,460 Aleja. 1582 01:14:42,460 --> 01:14:48,570 >> Aleja: Je, unaweza kuchukua nje sehemu ya kila pixel inaashiria kwamba nyekundu. 1583 01:14:48,570 --> 01:14:49,730 Na kisha - 1584 01:14:49,730 --> 01:14:50,730 aina ya? 1585 01:14:50,730 --> 01:14:51,860 >> JASON HIRSCHHORN: OK. 1586 01:14:51,860 --> 01:14:54,460 Hivyo kuchukua nje sehemu ya kila pixel inaashiria kwamba nyekundu. 1587 01:14:54,460 --> 01:14:57,234 Hiyo ni karibu, lakini si yote. 1588 01:14:57,234 --> 01:14:59,780 >> STUDENT 76: Naam, kuna njia tofauti ya kufanya hivyo. 1589 01:14:59,780 --> 01:14:59,870 >> JASON HIRSCHHORN: OK. 1590 01:14:59,870 --> 01:15:03,070 Nipe njia moja. 1591 01:15:03,070 --> 01:15:08,240 >> STUDENT 76: Kuchukua nyekundu wote, na kisha kusisitiza bluu na kijani. 1592 01:15:08,240 --> 01:15:10,010 >> JASON HIRSCHHORN: OK. 1593 01:15:10,010 --> 01:15:11,830 Hivyo kutokana na njia hizo zote mbili - 1594 01:15:11,830 --> 01:15:15,210 inaonekana kama sisi kuwapa pixel, ni ina nyekundu, bluu, na kijani ngazi. 1595 01:15:15,210 --> 01:15:19,350 Tunataka kubadili kiwango jamaa wa nyekundu, bluu, na kijani, kulingana 1596 01:15:19,350 --> 01:15:20,740 juu ya kwamba pixel. 1597 01:15:20,740 --> 01:15:28,380 Ambapo katika kanuni hii tunapaswa kubadilika jamaa nyekundu, bluu, na kijani 1598 01:15:28,380 --> 01:15:29,720 ngazi ya pixel huo. 1599 01:15:29,720 --> 01:15:30,600 Baada ya tumekuwa kusoma - 1600 01:15:30,600 --> 01:15:32,520 kabla ya sisi kuandika? 1601 01:15:32,520 --> 01:15:34,564 Nipe line idadi. 1602 01:15:34,564 --> 01:15:35,950 >> WANAFUNZI nyingi: 83. 1603 01:15:35,950 --> 01:15:37,320 >> JASON HIRSCHHORN: 83. 1604 01:15:37,320 --> 01:15:38,570 Hivyo haki hapa. 1605 01:15:38,570 --> 01:15:40,830 1606 01:15:40,830 --> 01:15:45,710 Kwa whodunit, kanuni unahitaji kuandika lazima wote kwenda kulia huko. 1607 01:15:45,710 --> 01:15:47,640 Na kwamba ni kanuni tu unahitaji kuandika. 1608 01:15:47,640 --> 01:15:51,520 Kwa sababu, kama sisi kusikia, wote unahitaji kufanya ni kubadilisha hizi za bluu jamaa, 1609 01:15:51,520 --> 01:15:54,420 nyekundu, na kijani ngazi kutoka kila pixel. 1610 01:15:54,420 --> 01:15:58,250 >> Umeisoma katika, na sasa uko kwenda kuandika nje. 1611 01:15:58,250 --> 01:16:03,100 Jinsi gani mimi kupata - kama mimi na jambo hili aitwaye tatu, haki hapa, na ni ya 1612 01:16:03,100 --> 01:16:04,570 aina RGBTRIPLE - 1613 01:16:04,570 --> 01:16:08,650 vizuri, kama sisi inaonekana katika bmp.h, nini ni RGBTRIPLE? 1614 01:16:08,650 --> 01:16:11,450 1615 01:16:11,450 --> 01:16:12,700 >> STUDENT 77: Ni struct. 1616 01:16:12,700 --> 01:16:17,440 1617 01:16:17,440 --> 01:16:18,900 >> JASON HIRSCHHORN: RGBTRIPLE ni struct. 1618 01:16:18,900 --> 01:16:22,330 Tunaona kwamba haki ya chini hapa. 1619 01:16:22,330 --> 01:16:26,600 Na hivyo kama nilitaka kupata, kusema, nyekundu kiwango cha struct, jinsi ya kufanya mimi 1620 01:16:26,600 --> 01:16:30,005 kupata ngazi ya nyekundu ya struct hii? 1621 01:16:30,005 --> 01:16:37,280 >> [CLASS murmurs] 1622 01:16:37,280 --> 01:16:38,530 >> STUDENT 78: RGBTRIPLE.rgbtred? 1623 01:16:38,530 --> 01:16:47,250 1624 01:16:47,250 --> 01:16:48,856 >> JASON HIRSCHHORN: Je, kwamba ni sahihi? 1625 01:16:48,856 --> 01:16:53,040 >> STUDENT 79: Ni lazima kuwa mara tatu dot, badala ya RGBTRIPLE dot? 1626 01:16:53,040 --> 01:16:54,120 >> JASON HIRSCHHORN: Triple. 1627 01:16:54,120 --> 01:16:56,700 Triple ni variable za mitaa, hivyo hapa, hakuna kuyatumia hapa. 1628 01:16:56,700 --> 01:16:58,400 Hivyo sisi tu kutumia dot nukuu. 1629 01:16:58,400 --> 01:17:00,480 Hii nipe kiwango cha nyekundu. 1630 01:17:00,480 --> 01:17:06,180 Kama mimi nataka mabadiliko hayo, mimi tu kuweka ni sawa na kupata kitu tofauti. 1631 01:17:06,180 --> 01:17:13,190 Hivyo tena, mstari wa code wanapata variable hii ndani ya struct hii, na 1632 01:17:13,190 --> 01:17:15,070 tunaweza kuweka kwa kitu kipya. 1633 01:17:15,070 --> 01:17:20,040 >> Hivyo kwa whodunit, tena, hii ni, katika kiini, tunachotaka kufanya. 1634 01:17:20,040 --> 01:17:21,170 Rahisi sana. 1635 01:17:21,170 --> 01:17:25,020 Kubadili tu baadhi ya viwango vya jamaa, na hii ni mahali ambapo kwamba kanuni unaendelea. 1636 01:17:25,020 --> 01:17:27,720 Resize, kwa upande mwingine, ni kidogo trickier. 1637 01:17:27,720 --> 01:17:30,900 Kwa kweli, resize pengine ni sehemu trickiest wa tatizo hili kuweka. 1638 01:17:30,900 --> 01:17:32,720 Tuna dakika tatu kwenda juu yake. 1639 01:17:32,720 --> 01:17:34,910 >> Lakini tena, tumekuwa tayari imeandikwa zaidi ya kanuni hii, hivyo sisi 1640 01:17:34,910 --> 01:17:36,500 lazima pretty ukoo. 1641 01:17:36,500 --> 01:17:40,750 Ni baadhi ya mambo tunataka kufanya katika kile resize, kama wameweza kusoma juu ya 1642 01:17:40,750 --> 01:17:43,470 kuweka tatizo? 1643 01:17:43,470 --> 01:17:45,290 Kama kuwapa kwangu, sisi wanaweza kuzungumza juu yao. 1644 01:17:45,290 --> 01:17:47,340 Ni baadhi ya mambo tunataka kufanya nini? 1645 01:17:47,340 --> 01:17:47,970 >> STUDENT 80: Vertikalt - 1646 01:17:47,970 --> 01:17:52,360 hivyo kuwa na usawa resize yake, lakini wima resize yake vile vile? 1647 01:17:52,360 --> 01:17:58,475 >> JASON HIRSCHHORN: Hivyo kama sisi ni kupewa a pixel, na tunataka resize yake na 1648 01:17:58,475 --> 01:18:03,460 sababu ya mbili, sasa haja ya kuwa na resized usawa na resized 1649 01:18:03,460 --> 01:18:05,220 wima. 1650 01:18:05,220 --> 01:18:06,640 Je, hiyo mantiki? 1651 01:18:06,640 --> 01:18:07,060 Yeah. 1652 01:18:07,060 --> 01:18:09,300 Hivyo kwamba pengine changamoto kubwa. 1653 01:18:09,300 --> 01:18:10,430 Na tutaweza kuzungumzia kwamba katika sec. 1654 01:18:10,430 --> 01:18:11,065 Yeah. 1655 01:18:11,065 --> 01:18:15,270 >> STUDENT 81: njia ya mimi mawazo yake ilikuwa unahitajika magazeti nje - 1656 01:18:15,270 --> 01:18:15,490 >> JASON HIRSCHHORN: Ngoja. 1657 01:18:15,490 --> 01:18:17,580 Je, si kutuambia nini alivyofanya. 1658 01:18:17,580 --> 01:18:20,620 Sisi ni kwenda kuzungumza katika mantiki. 1659 01:18:20,620 --> 01:18:21,870 >> STUDENT 81: OK. 1660 01:18:21,870 --> 01:18:25,090 1661 01:18:25,090 --> 01:18:27,410 Nini swali? 1662 01:18:27,410 --> 01:18:28,892 >> JASON HIRSCHHORN: Wewe tu kukulia mkono wako. 1663 01:18:28,892 --> 01:18:31,600 Hakukuwa na swali. 1664 01:18:31,600 --> 01:18:32,520 Hebu sasa ni. 1665 01:18:32,520 --> 01:18:34,560 Napenda tu kujadili kwa kifupi hii. 1666 01:18:34,560 --> 01:18:38,400 Hivyo tuna pixel moja, tunataka kuiga yake, wote kwa usawa na 1667 01:18:38,400 --> 01:18:39,360 wima. 1668 01:18:39,360 --> 01:18:48,920 Hivyo walau nini cha kufanya hapa ni, sisi kusoma katika pixel yetu, sisi kuandika 1669 01:18:48,920 --> 01:18:51,690 hata hivyo wengi wa nyakati. 1670 01:18:51,690 --> 01:18:54,720 >> Lakini basi sisi na hila yetu hapa, kwa sababu kisha tunataka ruka kwa 1671 01:18:54,720 --> 01:18:57,660 mstari wa pili na kuandika katika mwanzo wa mstari wa pili. 1672 01:18:57,660 --> 01:19:02,960 Hivyo kama tunataka kuiga wote usawa na wima, ni nini 1673 01:19:02,960 --> 01:19:05,050 njia moja nzuri ya kufanya hivyo - 1674 01:19:05,050 --> 01:19:06,780 moja nzuri ingawa kufanya hivyo? 1675 01:19:06,780 --> 01:19:11,950 Hivyo hatuna haja ya mara kwa mara kutafuta karibu faili wetu mahali mambo. 1676 01:19:11,950 --> 01:19:14,360 >> Swali kwamba wanaweza kuwa na alifanya akili, lakini nadhani 1677 01:19:14,360 --> 01:19:15,800 kujibu itasaidia. 1678 01:19:15,800 --> 01:19:17,210 >> STUDENT 82: Kujenga safu? 1679 01:19:17,210 --> 01:19:20,090 >> JASON HIRSCHHORN: Kwa hiyo hebu fikiria ya kila file kama mfululizo. 1680 01:19:20,090 --> 01:19:22,550 Hebu fikiria katika suala la safu. 1681 01:19:22,550 --> 01:19:26,670 Kama tuna mstari wetu wa kwanza kutoka ndogo wetu picha, tunaweza kufanya mstari kwamba 1682 01:19:26,670 --> 01:19:30,640 ndani ya kubwa mstari kutoka picha kubwa, na kisha kuiga mstari kwamba hata hivyo 1683 01:19:30,640 --> 01:19:34,250 mara nyingi inahitaji kuigwa, badala ya kwenda pixel kwa pixel, 1684 01:19:34,250 --> 01:19:37,260 ambayo anapata kuwachanganya wakati kukabiliana na files. 1685 01:19:37,260 --> 01:19:38,730 >> Kwa sababu kama tulikuwa na - 1686 01:19:38,730 --> 01:19:41,260 Mimi kukosa nafasi. 1687 01:19:41,260 --> 01:19:46,490 Kama hii ni file yetu, na sisi na kwamba moja pixel huko, na sisi unataka kuiweka 1688 01:19:46,490 --> 01:19:49,840 haki pale, bado tuna baadhi ya mambo kwamba haja ya kwenda zaidi ya hapo wakati sisi ni 1689 01:19:49,840 --> 01:19:51,450 kuandika na kuunda faili wetu mpya - 1690 01:19:51,450 --> 01:19:53,250 file yetu kwamba mara mbili kama kubwa. 1691 01:19:53,250 --> 01:19:56,820 >> Lakini ni ngumu kweli kweli na kazi file ruka karibu na mistari mpya 1692 01:19:56,820 --> 01:20:00,260 kama hiyo, na kisha kwenda nyuma hapa na kuweka mambo huko. 1693 01:20:00,260 --> 01:20:04,500 Ni vigumu kufanya kitu kama kwamba, kama kwamba hufanya akili. 1694 01:20:04,500 --> 01:20:10,180 Hivyo kama sisi kufikiri katika misingi ya mistari, tunaweza kuchukua mstari yetu, na kisha kuiweka - 1695 01:20:10,180 --> 01:20:11,720 kuiga safu wima. 1696 01:20:11,720 --> 01:20:15,860 >> Na kwamba ni jinsi gani sisi kukabiliana na resizing wima badala ya usawa. 1697 01:20:15,860 --> 01:20:18,810 Hiyo ndiyo aina ya haraka, na utata kidogo. 1698 01:20:18,810 --> 01:20:22,375 Kwa bahati mbaya wakati wetu ni up. 1699 01:20:22,375 --> 01:20:27,340 Mimi kusimama nje kwa wale hapa ambao una maswali kuhusu 1700 01:20:27,340 --> 01:20:30,500 kuweka tatizo, ikiwa ni pamoja kupona. 1701 01:20:30,500 --> 01:20:32,320 >> Basi hebu kuahirishwa kwa sasa. 1702 01:20:32,320 --> 01:20:34,480 Na tena, kama una maswali yoyote, tuweze kuzungumza nje. 1703 01:20:34,480 --> 01:20:38,294