1 00:00:08,119 --> 00:00:11,630 [Powered by Google Translate] DAVID J. Malan: zote haki, hii ni CS50, na hii ni 2 00:00:11,630 --> 00:00:14,790 kuanza ya wiki mbili. 3 00:00:14,790 --> 00:00:16,300 Asante. 4 00:00:16,300 --> 00:00:19,000 Hebu tuanze hapa kwa simu. 5 00:00:19,000 --> 00:00:30,005 Mimi nina kuhusu piga 617-BUG-CS50. 6 00:00:30,005 --> 00:00:31,230 CS50: Hii ni CS50. 7 00:00:31,230 --> 00:00:33,930 Kwa Boy Shuttle, vyombo vya habari 1. 8 00:00:33,930 --> 00:00:36,660 Kuanza juu, waandishi wa 9. 9 00:00:36,660 --> 00:00:38,180 DAVID J. Malan: Hivyo alisema kwa Shuttle Boy, vyombo vya habari 1. 10 00:00:38,180 --> 00:00:41,560 Hivyo sisi ni kwenda kwa vyombo vya habari 1. 11 00:00:41,560 --> 00:00:43,230 CS50: Nini asili yako? 12 00:00:43,230 --> 00:00:45,340 Kwa Quad, vyombo vya habari 1. 13 00:00:45,340 --> 00:00:47,080 Mather, vyombo vya habari 2. 14 00:00:47,080 --> 00:00:49,240 Boylston, vyombo vya habari 3. 15 00:00:49,240 --> 00:00:51,280 Lamont, vyombo vya habari 4. 16 00:00:51,280 --> 00:00:53,210 Wanachama Hall, vyombo vya habari 5. 17 00:00:53,210 --> 00:00:55,660 Kuanza juu, waandishi wa 0. 18 00:00:55,660 --> 00:00:59,590 DAVID J. Malan: Tutaweza waandishi 1 kwa quad. 19 00:00:59,590 --> 00:01:03,610 CS50: shuttle Ifwatayo majani dakika hii, saa 1:10, na 20 00:01:03,610 --> 00:01:09,820 kisha saa 1:20, 1:30, 1:40. 21 00:01:09,820 --> 00:01:12,030 Hii ni CS50. 22 00:01:12,030 --> 00:01:15,570 >> DAVID J. Malan: Hivyo hii ni sauti ya CS50. 23 00:01:15,570 --> 00:01:18,030 Na ni mfano wa aina ya miradi ya mwisho, kwa 24 00:01:18,030 --> 00:01:19,500 mfano, unaweza bite mbali kuelekea 25 00:01:19,500 --> 00:01:20,600 mwisho wa muhula. 26 00:01:20,600 --> 00:01:23,840 Kwa mfano, shuttleboy.cs50.net kwamba ipo - 27 00:01:23,840 --> 00:01:28,200 kweli mradi kwamba mimi kwanza aliandika baada ya kuchukua CS51 28 00:01:28,200 --> 00:01:29,740 nyuma nilipokuwa shahada ya kwanza. 29 00:01:29,740 --> 00:01:32,250 Na msukumo hapa ilikuwa nyuma basi, wote walikuwa na alikuwa 30 00:01:32,250 --> 00:01:34,320 kuchapishwa shuttle bus ratiba, na kulikuwa hakuna 31 00:01:34,320 --> 00:01:35,970 dhana ya kuangalia mambo juu online. 32 00:01:35,970 --> 00:01:38,730 Na hivyo mimi aina ya njiwa katika wiki moja, akamwaga kupitia 33 00:01:38,730 --> 00:01:41,460 kuchapishwa ratiba, na ported kwa programu ya kompyuta. 34 00:01:41,460 --> 00:01:43,790 Wakati huo, programu ya kompyuta kilichotokea kwa kuandikwa 35 00:01:43,790 --> 00:01:47,110 katika C. Na kweli mbio hivyo kwa kuandika Boy Shuttle katika 36 00:01:47,110 --> 00:01:48,600 blinking kuchochea kama tumekuwa kufanya hivyo sasa. 37 00:01:48,600 --> 00:01:50,450 Lakini zaidi ya miaka, ni tolewa katika papo 38 00:01:50,450 --> 00:01:51,390 ujumbe BoT. 39 00:01:51,390 --> 00:01:53,970 Ni tolewa hivi karibuni zaidi katika tovuti hii, katika 40 00:01:53,970 --> 00:01:57,720 SMS-msingi chombo, kama vile katika chombo hiki sauti-msingi. 41 00:01:57,720 --> 00:02:00,170 Na hii ni ya ladha katika aina ya mambo ambayo unaweza 42 00:02:00,170 --> 00:02:02,380 kufanya wewe mwenyewe na mwisho wa muhula. 43 00:02:02,380 --> 00:02:05,490 >> Kwa mfano, kuna, toleo SMS ya Boy Shuttle hutokea 44 00:02:05,490 --> 00:02:06,510 kufanya kazi kama ifuatavyo. 45 00:02:06,510 --> 00:02:10,880 Kama, juu ya kiini simu yako, kutuma ujumbe wa maandishi kwa 41,411 na 46 00:02:10,880 --> 00:02:14,300 kisha kutuma maalum ishara sboy, kwa Boy Shuttle, 47 00:02:14,300 --> 00:02:18,350 ikifuatiwa na B na, ambapo ni asili na B ni 48 00:02:18,350 --> 00:02:19,070 marudio - 49 00:02:19,070 --> 00:02:21,030 kwa mfano, Boylston Space Quad - 50 00:02:21,030 --> 00:02:23,330 nini unapaswa kupata nyuma ndani ya sekunde chache ni Nakala 51 00:02:23,330 --> 00:02:25,820 ujumbe kutoka Boy Shuttle ninakuambia kwa uhakika wakati 52 00:02:25,820 --> 00:02:28,990 ijayo shuttles chache ni, kutoka uhakika kwamba anaenda kwamba 53 00:02:28,990 --> 00:02:29,640 uhakika B. 54 00:02:29,640 --> 00:02:32,510 Na huu ni mfano zaidi ya jumla ya nini inayojulikana kama 55 00:02:32,510 --> 00:02:33,920 kutumia API. 56 00:02:33,920 --> 00:02:36,930 >> Hivyo kwa mfano, hii hapa ni tu shuttleboy.cs50.net, 57 00:02:36,930 --> 00:02:39,300 halisi ya mtandao msingi mwili wa hii. 58 00:02:39,300 --> 00:02:42,480 Lakini data kwamba inasisitiza programu hii na nyingine kwamba CS50 59 00:02:42,480 --> 00:02:45,560 maendeleo ina wote ni wazi kwa kila mtu hapa katika fomu 60 00:02:45,560 --> 00:02:49,340 wa APIs, maombi ya programu interfaces. 61 00:02:49,340 --> 00:02:52,220 Na kwamba ni njia tu ya dhana ya kusema kwamba watu kama sisi juu ya 62 00:02:52,220 --> 00:02:56,010 Internet na wengine alitumia muda kujenga 63 00:02:56,010 --> 00:02:59,970 programu kwamba unaweza kutumia ili kunyakua data kutoka kwetu na 64 00:02:59,970 --> 00:03:02,510 kisha kujenga maombi yako mwenyewe juu 65 00:03:02,510 --> 00:03:03,840 ya kwamba kuweka data. 66 00:03:03,840 --> 00:03:06,610 Hivyo kwa mfano, hii Boy Shuttle API ukurasa hapa, ambayo 67 00:03:06,610 --> 00:03:09,390 hutokea kwa kuwa katika mwongozo CS50, kimsingi nyaraka 68 00:03:09,390 --> 00:03:13,080 jinsi gani unaweza kwenda juu ya kuomba servrar CS50 kwa data. 69 00:03:13,080 --> 00:03:16,240 Kwa mfano, kama wewe ni ukoo na CSV files, comma 70 00:03:16,240 --> 00:03:18,940 kutengwa maadili, hizi ni tu aina ya haraka na chafu 71 00:03:18,940 --> 00:03:20,310 Excel-kama files. 72 00:03:20,310 --> 00:03:23,110 Hivyo unaweza kuuliza Shuttle Boy kwa wote wa data juu ya yote ya 73 00:03:23,110 --> 00:03:25,090 nyumba zao na kuratibu GPS, na utapata 74 00:03:25,090 --> 00:03:27,300 nyuma, kimsingi, spreadsheet kama kwamba 75 00:03:27,300 --> 00:03:30,820 basi unaweza kusoma katika mpango wa yako mwenyewe na kisha 76 00:03:30,820 --> 00:03:33,250 kutoa matokeo, kama Shuttle Boy yenyewe 77 00:03:33,250 --> 00:03:34,160 kinachotokea kwa kuwa kufanya. 78 00:03:34,160 --> 00:03:37,030 Kwa wale zaidi ya ukoo, wa kisasa zaidi data uwakilishi 79 00:03:37,030 --> 00:03:39,420 pamoja JSON, JavaScript Object nukuu. 80 00:03:39,420 --> 00:03:40,620 Kitu atakuja nyuma yenu kuelekea 81 00:03:40,620 --> 00:03:41,720 mwisho wa muhula. 82 00:03:41,720 --> 00:03:45,440 >> Lakini tena, hii ni moja tu ya kadhaa ya APIs CS50 ya mwenyewe. 83 00:03:45,440 --> 00:03:48,320 Na jambo la kusisimua ni sasa, siku hizi, Facebook na 84 00:03:48,320 --> 00:03:51,110 Twitter na Google na pretty much kila tovuti maarufu nje 85 00:03:51,110 --> 00:03:54,130 kuna ina aina fulani ya API, ambayo ina maana kama wewe kusoma 86 00:03:54,130 --> 00:03:56,620 nyaraka kwenye tovuti yao, ishara kwa ajili ya 87 00:03:56,620 --> 00:03:59,980 akaunti, basi unaweza kuanza kuandika programu juu ya 88 00:03:59,980 --> 00:04:03,680 chochote zana au data kwamba kampuni huko hutoa. 89 00:04:03,680 --> 00:04:06,210 Na hivyo mmoja wa wenzake yetu wenyewe mafundisho miaka michache nyuma 90 00:04:06,210 --> 00:04:07,620 aliandika toleo la Mac ya hili. 91 00:04:07,620 --> 00:04:10,990 Hivyo katika kiungo yenye jina la Mac hapa juu kushoto, unaweza kweli 92 00:04:10,990 --> 00:04:13,940 download Mac OS widget kwamba anaendesha Mac yako mwenyewe kufanya 93 00:04:13,940 --> 00:04:15,040 huo aina ya mambo. 94 00:04:15,040 --> 00:04:17,970 Hivyo ni wote kuhusu kujenga juu ya seti data kama hizi. 95 00:04:17,970 --> 00:04:21,839 Lakini zaidi juu ya kwamba upande wa mwisho wa muhula. 96 00:04:21,839 --> 00:04:25,780 >> Hivyo hebu kupiga mbizi katika haraka ya kweli, na mdudu, tu aina ya kupata 97 00:04:25,780 --> 00:04:27,990 mambo moto juu leo, na kufikiri nyuma katika baadhi ya 98 00:04:27,990 --> 00:04:29,660 mambo tuliyoyaangalia wiki iliyopita. 99 00:04:29,660 --> 00:04:32,840 Hasa, napenda kwenda mbele na kuvuta, kusema, 100 00:04:32,840 --> 00:04:34,080 mfano huu hapa. 101 00:04:34,080 --> 00:04:37,500 Buggy1.c, hii inapatikana kwenye tovuti ya shaka ikiwa wewe d 102 00:04:37,500 --> 00:04:40,250 kama shusha ni na poke kuzunguka mwenyewe. 103 00:04:40,250 --> 00:04:43,520 Lakini hebu zoom katika hapa katika mpango huu uungwana mfupi, na tu 104 00:04:43,520 --> 00:04:46,550 recap super-haraka wa baadhi ya vitalu ya msingi jengo 105 00:04:46,550 --> 00:04:48,880 kweli sisi ni kwenda kuanza tu kuchukua kwa nafasi. 106 00:04:48,880 --> 00:04:51,860 >> Hivyo mambo ya bluu, katika mistari ya 1 kwa 9, ni tu 107 00:04:51,860 --> 00:04:53,670 Softball maswali. 108 00:04:53,670 --> 00:04:54,590 Basi hizi ni baadhi tu ya maoni. 109 00:04:54,590 --> 00:04:56,230 Hawana maana kazi. 110 00:04:56,230 --> 00:04:58,460 Lakini wao ni maoni katika maana ya kwamba wao ni maelezo kwamba 111 00:04:58,460 --> 00:05:02,010 Mimi, binadamu, alifanya mwenyewe ili kwamba katika hotuba na baada ya 112 00:05:02,010 --> 00:05:04,340 hotuba, kweli mimi kukumbuka nini mpango huu 113 00:05:04,340 --> 00:05:07,120 gani bila ya kuwa na kusoma kupitia line hiyo kwa mstari na 114 00:05:07,120 --> 00:05:08,990 recreating historia katika akili yangu. 115 00:05:08,990 --> 00:05:11,000 Tena, ikiwa mimi mkono mpango huu kwa mtu mwingine kama 116 00:05:11,000 --> 00:05:14,420 wewe, ni wazi sana na wewe, kwa sababu ya maoni kama hii, 117 00:05:14,420 --> 00:05:16,680 nini mpango ni kweli kufanya, au angalau kile 118 00:05:16,680 --> 00:05:18,210 mpango walidhani kuwa kufanya. 119 00:05:18,210 --> 00:05:20,760 Kama au ni sahihi ni suala jingine kabisa. 120 00:05:20,760 --> 00:05:25,040 Sasa, katika C, pamoja na maoni mbalimbali ya mstari, kukumbuka kuwa kwenye mstari 121 00:05:25,040 --> 00:05:27,880 moja hapa ni ishara uchawi, / *. 122 00:05:27,880 --> 00:05:30,380 Ina maana hiyo inakuja mwanzo wa maoni. 123 00:05:30,380 --> 00:05:34,560 Na kitu kingine mambo mpaka kufikia Terminator mwisho, 124 00:05:34,560 --> 00:05:36,700 ambayo ni * /, kinyume. 125 00:05:36,700 --> 00:05:39,120 Hivyo ukweli kwamba nina-80 baadhi nyota isiyo ya kawaida hapa kutoka 126 00:05:39,120 --> 00:05:41,550 kushoto na kulia ni kweli tu undani aesthetic. 127 00:05:41,550 --> 00:05:43,370 Ina maana hakuna kazi. 128 00:05:43,370 --> 00:05:44,490 >> Sasa vipi kuhusu mstari 11? 129 00:05:44,490 --> 00:05:46,940 Je, hii kufanya katika suala layman? 130 00:05:51,560 --> 00:05:52,540 Nini hiyo? 131 00:05:52,540 --> 00:05:54,280 Watazamaji: Ni pamoja na kiwango. 132 00:05:54,280 --> 00:05:54,740 DAVID J. Malan: OK, nzuri. 133 00:05:54,740 --> 00:05:57,500 Hivyo ni pamoja na maktaba stdio.h. 134 00:05:57,500 --> 00:05:58,230 Hiyo ni nini maana ya kwamba? 135 00:05:58,230 --> 00:06:01,570 Naam, ndani ya faili kwamba, stdio.h, ni rundo zima la 136 00:06:01,570 --> 00:06:03,320 kazi maazimio - 137 00:06:03,320 --> 00:06:05,290 kwamba ni, kificho kwamba mtu mwingine aliandika. 138 00:06:05,290 --> 00:06:08,160 Na mfano kamili wa kazi hiyo alitangaza katika 139 00:06:08,160 --> 00:06:10,250 stdio.h ni - 140 00:06:10,250 --> 00:06:11,980 ambayo favorite kwa sasa? 141 00:06:11,980 --> 00:06:14,300 Hivyo printf, mmoja wa wale wa kawaida kutumia, hakika 142 00:06:14,300 --> 00:06:15,840 mapema, kutoka maktaba ambayo ni huko. 143 00:06:15,840 --> 00:06:19,290 Kama mimi kuwatenga kwamba mstari wa kanuni, Clang ni kwenda yell 144 00:06:19,290 --> 00:06:22,550 saa yangu kitu kuhusu kutumia alama Undeclared. 145 00:06:22,550 --> 00:06:24,930 Kitu Undeclared pengine ni Keyword, kwa sababu 146 00:06:24,930 --> 00:06:27,770 hatuna taarifa compiler nini printf inaonekana 147 00:06:27,770 --> 00:06:29,230 kama isipokuwa sisi ni pamoja na kuwa mstari. 148 00:06:29,230 --> 00:06:31,830 Na zaidi chini ya ardhi, kwa kweli, nini mstari kwamba ni kusema ni 149 00:06:31,830 --> 00:06:34,890 kufungua faili, stdio.h, popote ni juu ya server 150 00:06:34,890 --> 00:06:38,200 ngumu kuendesha gari, au appliance vigumu kuendesha gari, na nakala-kuweka ni 151 00:06:38,200 --> 00:06:40,240 haki pale katika faili wangu, bila wangu 152 00:06:40,240 --> 00:06:41,730 baada ya kufanya kwamba manually. 153 00:06:41,730 --> 00:06:44,420 >> Sasa, mara sisi kupata chini hapa kuu, kabla ya muda mrefu tutaweza kuanza 154 00:06:44,420 --> 00:06:46,900 teasing mbali kile int na kile utupu ni. 155 00:06:46,900 --> 00:06:48,430 Lakini kwa sasa, hebu angalia mistari mitatu 156 00:06:48,430 --> 00:06:50,350 ndani ya 15 kupitia kwa 17. 157 00:06:50,350 --> 00:06:52,250 Hii hapa mimi kudai kama Buggy. 158 00:06:52,250 --> 00:06:54,900 Line 7 katika maoni yangu anasema "Je magazeti 10 159 00:06:54,900 --> 00:06:59,410 asterisks lakini haina ". nini hii si magazeti, kwa kweli, 160 00:06:59,410 --> 00:07:01,097 10 vile nyota? 161 00:07:01,097 --> 00:07:02,347 Watazamaji: [inaudible]. 162 00:07:05,210 --> 00:07:05,800 DAVID J. Malan: Hasa. 163 00:07:05,800 --> 00:07:08,720 Hivyo taarifa kwamba sisi ni mapya kwa kuhesabu kutoka 0. 164 00:07:08,720 --> 00:07:10,780 Na hii ni kweli mkataba katika programu na 165 00:07:10,780 --> 00:07:13,230 sayansi ya kompyuta kwa ujumla zaidi, kuanzia kuhesabu 166 00:07:13,230 --> 00:07:14,610 kutoka 0 badala ya 1. 167 00:07:14,610 --> 00:07:16,690 Na hii kweli tu hupata kutokana na ukweli kwamba, kwa 168 00:07:16,690 --> 00:07:18,940 mfano, wakati tulikuwa watu nane juu ya hatua, wakati 169 00:07:18,940 --> 00:07:20,680 hakuna mtu kuinua mikono yao, walikuwa 170 00:07:20,680 --> 00:07:22,340 zeros ufanisi wote. 171 00:07:22,340 --> 00:07:24,260 Na hivyo ni aina tu ya mkataba kompyuta hivyo, 172 00:07:24,260 --> 00:07:26,030 hiyo, kwa kuanza kuhesabu kutoka 0. 173 00:07:26,030 --> 00:07:29,130 Kama kwamba ni idadi ya chini unaweza kuwakilisha katika binary. 174 00:07:29,130 --> 00:07:32,270 >> Hivyo hapa tumekuwa kuanza initializing i kwa 0. 175 00:07:32,270 --> 00:07:34,230 Tumekuwa kuweka i sawa na 0. 176 00:07:34,230 --> 00:07:37,780 Lakini basi mimi alifanya hii kosa hapa, akisema i ni chini ya au 177 00:07:37,780 --> 00:07:38,820 sawa na 10. 178 00:07:38,820 --> 00:07:41,700 Lakini kama unadhani kwamba kupitia, kama mimi kuanza saa 0 na kisha nitamwendea 179 00:07:41,700 --> 00:07:46,410 hadi 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, mimi nina kweli kwenda 180 00:07:46,410 --> 00:07:49,980 magazeti nje nyota 11 kwa screen, kwa sababu mimi tumeenda juu 181 00:07:49,980 --> 00:07:52,410 kwa na kuwa sawa na 10. 182 00:07:52,410 --> 00:07:55,090 Hivyo fix rahisi hapa basi ni nini? 183 00:07:55,090 --> 00:07:56,070 Watazamaji: [inaudible]. 184 00:07:56,070 --> 00:07:57,350 DAVID J. Malan: Just kubadilisha kwa chini ya. 185 00:07:57,350 --> 00:07:59,700 Kama kweli unataka, unaweza kufanya hivyo. 186 00:07:59,700 --> 00:08:01,370 Lakini kwa ujumla, kwamba ni kipaji juu. 187 00:08:01,370 --> 00:08:04,020 Na hivyo kuanza kuhesabu kutoka 0 ni tu kitu unapaswa 188 00:08:04,020 --> 00:08:05,510 kawaida kupata kutumika. 189 00:08:05,510 --> 00:08:07,810 Sasa, nini kuhusu hii ya kujenga nzima katika yenyewe? 190 00:08:07,810 --> 00:08:10,640 Hii mstari 15 demarks kwa kitanzi. 191 00:08:10,640 --> 00:08:12,510 Hivyo kwa si kazi. 192 00:08:12,510 --> 00:08:13,640 Ni tu taarifa. 193 00:08:13,640 --> 00:08:16,180 Ni kujenga looping, kama tulivyoona katika Scratch. 194 00:08:16,180 --> 00:08:17,600 Na ina sehemu tatu. 195 00:08:17,600 --> 00:08:19,740 Ona kwamba kuna sehemu ya kwanza ya 196 00:08:19,740 --> 00:08:21,350 kushoto wa semicolon. 197 00:08:21,350 --> 00:08:24,200 Kuna sehemu ya katikati katika kati ya semicolons mbili. 198 00:08:24,200 --> 00:08:26,250 Na kisha kuna sehemu kulia kwa haki 199 00:08:26,250 --> 00:08:27,640 ya semicolon pili. 200 00:08:27,640 --> 00:08:31,822 Sasa, kwanza wa haya ni nini? 201 00:08:31,822 --> 00:08:33,679 Watazamaji: [inaudible]. 202 00:08:33,679 --> 00:08:34,270 DAVID J. Malan: Nyuma huko? 203 00:08:34,270 --> 00:08:34,816 Yeah? 204 00:08:34,816 --> 00:08:35,980 Watazamaji: initialization. 205 00:08:35,980 --> 00:08:36,850 >> DAVID J. Malan: initialization. 206 00:08:36,850 --> 00:08:37,840 Basi nini maana ya hii? 207 00:08:37,840 --> 00:08:40,690 Sisi wametangaza variable kuitwa i. 208 00:08:40,690 --> 00:08:43,840 Ni ya int aina, kwa sababu nimekuwa maalum int i. 209 00:08:43,840 --> 00:08:46,470 Na mimi nina initializing i kwa thamani ya 0. 210 00:08:46,470 --> 00:08:47,730 Basi nini hii kwa kweli kusema? 211 00:08:47,730 --> 00:08:50,680 Ni kwa ufanisi akisema kwa kompyuta hey, nipe kutosha 212 00:08:50,680 --> 00:08:53,660 kumbukumbu, ya kutosha RAM, fit idadi, na kisha kuweka 213 00:08:53,660 --> 00:08:56,130 idadi 0 katika kwamba chunk ya RAM. 214 00:08:56,130 --> 00:08:59,100 Na kama kando, jinsi kubwa ni int kawaida, angalau ndani ya 215 00:08:59,100 --> 00:09:00,280 wa appliance? 216 00:09:00,280 --> 00:09:01,000 Watazamaji: 32 kidogo. 217 00:09:01,000 --> 00:09:01,670 DAVID J. Malan: 32 bits. 218 00:09:01,670 --> 00:09:04,890 Hivyo kwamba maana nipe bits 32, inayojulikana kama ka 4, 219 00:09:04,890 --> 00:09:07,250 na kuweka 0 thamani ndani yake, ambayo ni pretty rahisi kwa sababu 220 00:09:07,250 --> 00:09:09,110 tu maana ya kuweka bits wote 0. 221 00:09:09,110 --> 00:09:11,690 >> Hivyo sasa, sehemu ya pili hapa ni hali hiyo. 222 00:09:11,690 --> 00:09:14,590 Na hali, kama jina linavyosema, ni nini ni checked 223 00:09:14,590 --> 00:09:18,100 tena na tena na tena ya kama ni kweli au uongo. 224 00:09:18,100 --> 00:09:21,410 Hivyo hii ni kusema tu kufanya mistari ifuatayo ya maadili - 225 00:09:21,410 --> 00:09:23,950 yaani mstari 16, kwa sababu hiyo ni moja tu indented 226 00:09:23,950 --> 00:09:24,820 chini - 227 00:09:24,820 --> 00:09:26,980 hivyo muda mrefu kama i ni chini ya 10. 228 00:09:26,980 --> 00:09:30,520 Na baada ya kila iteration kupitia kitanzi hii, kufanya 229 00:09:30,520 --> 00:09:33,840 incrementation, ambayo katika kesi hii ni i + +. 230 00:09:33,840 --> 00:09:35,580 Sasa, haina kuwa i + +. 231 00:09:35,580 --> 00:09:37,610 Ni inaweza kuwa i -. 232 00:09:37,610 --> 00:09:39,860 Lakini kama mimi alifanya hili, nini tabia kwenda 233 00:09:39,860 --> 00:09:41,370 kuwa na mpango huu? 234 00:09:41,370 --> 00:09:42,290 Watazamaji: Ni kwenda kuwa kitanzi usio. 235 00:09:42,290 --> 00:09:44,060 DAVID J. Malan: Ni kwenda kuwa baadhi ya aina ya kitanzi usio, 236 00:09:44,060 --> 00:09:47,720 isipokuwa sisi kupata bahati baada ya 2 hasi bilioni au hivyo. 237 00:09:47,720 --> 00:09:51,320 Labda mambo litamalizika kote, tu na asili ya finite 238 00:09:51,320 --> 00:09:53,930 idadi ya bits kwamba tumetenga kwa int. 239 00:09:53,930 --> 00:09:56,270 Lakini ni hakika ya kwenda iterate mbali zaidi ya 10 na 240 00:09:56,270 --> 00:09:58,630 hakika zaidi ya mara 11 hapa. 241 00:09:58,630 --> 00:10:02,240 >> Na sasa, tu kama kando, kutambua kwamba i + + na i - 242 00:10:02,240 --> 00:10:04,420 ni kweli tu kisintaksia sukari. 243 00:10:04,420 --> 00:10:07,210 Ni tu shorthand nukuu kwa nini zaidi kidogo 244 00:10:07,210 --> 00:10:08,720 waziwazi imeandikwa kama ifuatavyo: 245 00:10:08,720 --> 00:10:11,200 i = i + 1. 246 00:10:11,200 --> 00:10:13,460 Hiyo ni sawa na i + +. 247 00:10:13,460 --> 00:10:15,860 Ni aina tu ya inaonekana prettier kusema i + +. 248 00:10:15,860 --> 00:10:17,490 Ni zaidi succinct, zaidi someka. 249 00:10:17,490 --> 00:10:19,030 Na hivyo watu wengi kuwa badala. 250 00:10:19,030 --> 00:10:21,840 Lakini hii ni kufanana functionally kwa 251 00:10:21,840 --> 00:10:22,900 nini sisi tu kuona. 252 00:10:22,900 --> 00:10:27,770 Hivyo katika muda mfupi, kurekebisha haraka hapa ni tu kusema iterate i 253 00:10:27,770 --> 00:10:30,690 kutoka 0 njia yote hadi chini ya 10. 254 00:10:30,690 --> 00:10:32,700 Na kisha tutaweza kweli kupata nyota 10. 255 00:10:32,700 --> 00:10:33,430 >> Basi hebu jaribu hii. 256 00:10:33,430 --> 00:10:35,310 Hebu kufungua terminal chini. 257 00:10:35,310 --> 00:10:37,420 Hebu kwenda katika saraka ya kwamba hii ni in 258 00:10:37,420 --> 00:10:40,030 Na mimi naenda kukusanya ni manually na Clang kwa sasa. 259 00:10:40,030 --> 00:10:44,880 Na mimi naenda kukusanya hii kama buggy1.c, Ingiza. 260 00:10:44,880 --> 00:10:50,280 Na sasa buggy1, ni kwa nini kuna hakuna vile faili au directory 261 00:10:50,280 --> 00:10:52,026 kuitwa buggy1? 262 00:10:52,026 --> 00:10:53,850 Watazamaji: [inaudible]. 263 00:10:53,850 --> 00:10:54,240 DAVID J. Malan: Yeah. 264 00:10:54,240 --> 00:10:55,420 Hivyo ni kweli kuitwa a.out. 265 00:10:55,420 --> 00:10:57,480 Hivyo kukumbuka kama wewe kukimbia tu Clang, ambapo Clang ni 266 00:10:57,480 --> 00:11:00,420 compiler, na huna taja jina unataka 267 00:11:00,420 --> 00:11:03,550 kutoa kwa mpango wako, ni kwenda default kwa a.out. 268 00:11:03,550 --> 00:11:05,030 Hivyo kweli, kama ninafanya ls - 269 00:11:05,030 --> 00:11:05,510 oops. 270 00:11:05,510 --> 00:11:07,680 Na mimi didn't - suala nyeusi-na-nyeupe baadhi ya 271 00:11:07,680 --> 00:11:08,840 wewe wanakabiliwa imekuwa fasta. 272 00:11:08,840 --> 00:11:10,670 Lakini basi mimi kufanya hili. 273 00:11:10,670 --> 00:11:14,570 Kuna tuna a.out upande wa mkono wa kushoto huko. 274 00:11:14,570 --> 00:11:17,360 Hivyo inabidi kukimbia a.out badala ya buggy1. 275 00:11:17,360 --> 00:11:19,140 >> Hivyo basi mimi kwenda mbele na kufanya hili. 276 00:11:19,140 --> 00:11:22,840 . / A.out, Ingiza. 277 00:11:22,840 --> 00:11:26,160 Na mimi inaonekana hawakuwa kufanya nini? 278 00:11:26,160 --> 00:11:26,620 Watazamaji: Hifadhi. 279 00:11:26,620 --> 00:11:27,390 DAVID J. Malan: Ila faili yangu. 280 00:11:27,390 --> 00:11:31,520 Hivyo kwamba ni kwa urahisi kutatuliwa kwa kupiga Document S, au kwenda kwa 281 00:11:31,520 --> 00:11:33,450 Picha, Ila, kama katika programu nyingi. 282 00:11:33,450 --> 00:11:36,360 Hebu kwenda chini hapa, wazi screen, kukimbia tena. 283 00:11:36,360 --> 00:11:37,960 Na bado kuna mdudu. 284 00:11:37,960 --> 00:11:41,618 Hivyo ni nini kinaendelea - 285 00:11:41,618 --> 00:11:42,980 Watazamaji: You hawakuwa kukusanya. 286 00:11:42,980 --> 00:11:44,040 DAVID J. Malan: Ah, nzuri. 287 00:11:44,040 --> 00:11:45,010 Sikuweza kukusanya yake. 288 00:11:45,010 --> 00:11:47,250 Kama idiot, mimi nina kuangalia code kuona nini kibaya. 289 00:11:47,250 --> 00:11:51,275 Hivyo Clang buggy1.c, sasa a.out. 290 00:11:51,275 --> 00:11:52,640 Na phew, kuokolewa. 291 00:11:52,640 --> 00:11:55,090 >> Hivyo inaonekana kidogo ugly sababu hakuna mstari mpya 292 00:11:55,090 --> 00:11:55,970 mahali popote katika mpango. 293 00:11:55,970 --> 00:11:57,390 Lakini tena, kwamba tu undani aesthetic. 294 00:11:57,390 --> 00:11:59,430 Na angalau kama sisi kuhesabu wale nje, tunapaswa 295 00:11:59,430 --> 00:12:01,160 sasa kuona nyota 10 vile. 296 00:12:01,160 --> 00:12:03,260 Naam, nini kuhusu mfano huu wa pili joto-up? 297 00:12:03,260 --> 00:12:07,750 Hivyo katika buggy2, mimi kudai kwamba toleo hili, pia, magazeti 298 00:12:07,750 --> 00:12:10,110 10 nyota, moja kwa kila mstari. 299 00:12:10,110 --> 00:12:12,340 Hivyo wakati huu, nina tabia newline, tu kufanya 300 00:12:12,340 --> 00:12:13,520 mambo kidogo prettier. 301 00:12:13,520 --> 00:12:15,410 Lakini badala nini mimi kupata ni hii. 302 00:12:15,410 --> 00:12:19,590 Hivyo basi mimi kufanya Clang buggy2.c, Ingiza. 303 00:12:19,590 --> 00:12:21,790 Sasa ni mara ya pili wakamwita a.out. 304 00:12:21,790 --> 00:12:23,130 Kuingia. 305 00:12:23,130 --> 00:12:26,900 Mimi tu kuona moja mpya line, tu sana mwisho mpya line kwamba 306 00:12:26,900 --> 00:12:29,370 hatua ya haraka yangu line ijayo. 307 00:12:29,370 --> 00:12:32,660 Na bado wazi nimekuwa uchapishaji *, basi line mpya, 308 00:12:32,660 --> 00:12:33,990 *, Kisha mstari mpya. 309 00:12:33,990 --> 00:12:35,490 Lakini nini mdudu hapa? 310 00:12:35,490 --> 00:12:35,974 Yeah? 311 00:12:35,974 --> 00:12:37,224 Watazamaji: [inaudible]. 312 00:12:39,850 --> 00:12:40,470 >> DAVID J. Malan: Hasa. 313 00:12:40,470 --> 00:12:44,110 Hivyo tofauti na baadhi ya lugha, kama Chatu, ambapo anatengeneza 314 00:12:44,110 --> 00:12:46,030 kweli ina maana kazi, katika 315 00:12:46,030 --> 00:12:47,150 Lugha kama C - 316 00:12:47,150 --> 00:12:49,140 kama tutaweza kuona, PHP, JavaScript - 317 00:12:49,140 --> 00:12:51,940 indentation ni kweli tu kwa faida ya binadamu '. 318 00:12:51,940 --> 00:12:55,690 Hivyo ukweli kwamba nimepata indented mstari 16 na 17 inaonekana kubwa, 319 00:12:55,690 --> 00:12:57,530 lakini hauna maana kazi hapa. 320 00:12:57,530 --> 00:13:00,700 Kama mimi nataka wote mistari na nitafanya kama sehemu ya kwa 321 00:13:00,700 --> 00:13:05,140 kitanzi, basi mimi lazima uambatanishe yao katika braces curly kwa kufanya hivi. 322 00:13:05,140 --> 00:13:08,540 Unaweza tu kukata kona na omit braces curly ikiwa 323 00:13:08,540 --> 00:13:10,036 nini kesi? 324 00:13:10,036 --> 00:13:10,410 Watazamaji: Just mstari mmoja. 325 00:13:10,410 --> 00:13:11,130 DAVID J. Malan: Just mstari mmoja. 326 00:13:11,130 --> 00:13:15,280 Basi hiyo ni tu aina ya aina nzuri ya undani syntax ili 327 00:13:15,280 --> 00:13:17,900 wewe si kupoteza muda kuandika mistari mitatu, wawili ambao ni 328 00:13:17,900 --> 00:13:20,040 curly braces, tu kuandika line moja ya maadili. 329 00:13:20,040 --> 00:13:21,650 Lakini kama una mistari miwili au zaidi, sisi 330 00:13:21,650 --> 00:13:22,860 kweli haja ya kufanya hili. 331 00:13:22,860 --> 00:13:24,210 >> Hivyo sasa napenda kuokoa hii. 332 00:13:24,210 --> 00:13:27,140 Hebu kwenda mbele na kuendesha upya Clang. 333 00:13:27,140 --> 00:13:31,375 Basi mimi rerun a.out, na sasa mimi kupata yao moja kwa kila mstari. 334 00:13:31,375 --> 00:13:33,670 Sasa, a.out tena ni aina ya jina bubu kwa mpango. 335 00:13:33,670 --> 00:13:37,500 Nawezaje kumweleza Clang kwa kweli nipe jina la faili 336 00:13:37,500 --> 00:13:39,820 hiyo ni zaidi user-kirafiki, kama buggy2 yenyewe? 337 00:13:43,200 --> 00:13:44,466 kidogo zaidi kwa uwazi? 338 00:13:44,466 --> 00:13:45,220 Watazamaji: [inaudible]. 339 00:13:45,220 --> 00:13:47,810 DAVID J. Malan: OK, hivyo mimi kweli anaweza kuchukua sana 340 00:13:47,810 --> 00:13:51,000 user-kirafiki mkato na kuandika tu kufanya buggy2. 341 00:13:51,000 --> 00:13:53,840 Mimi si kutaja c. Katika kesi hii, na hit Enter. 342 00:13:53,840 --> 00:13:58,530 Na nini kufanya hivyo ni kwa ajili yangu inaandaa buggy2.c na 343 00:13:58,530 --> 00:14:00,260 kuuliza Clang ya kufanya hivyo. 344 00:14:00,260 --> 00:14:05,100 Hasa, ni wito Clang, ni anaendesha Clang kutumia njia zaidi 345 00:14:05,100 --> 00:14:08,540 amri-line hoja au swichi kuliko mimi kwa kweli wanahitaji. 346 00:14:08,540 --> 00:14:11,270 Katika wakati, tutaweza kuja nyuma kwa nini yote haya mbalimbali 347 00:14:11,270 --> 00:14:13,810 cryptic misemo hyphenated maana yake. 348 00:14:13,810 --> 00:14:16,910 Lakini kwa sasa, hiyo tu kuniokoa shida ya 349 00:14:16,910 --> 00:14:19,600 kuwa na kukumbuka na kuwa na aina nje watu 350 00:14:19,600 --> 00:14:21,150 mbalimbali hyphenated misemo. 351 00:14:21,150 --> 00:14:23,240 Na suala la mafanikio ya hatimaye ni 352 00:14:23,240 --> 00:14:25,900 kwamba sasa nina buggy2. 353 00:14:25,900 --> 00:14:27,480 Kama mimi nataka kufanya hili mwenyewe, ingawa, mimi 354 00:14:27,480 --> 00:14:28,775 wanaweza badala kufanya hili - 355 00:14:28,775 --> 00:14:34,110 Clang-o buggy2 na kisha buggy2.c. 356 00:14:34,110 --> 00:14:37,980 Na kwamba vile vile nipe faili inayoitwa buggy2. 357 00:14:37,980 --> 00:14:39,710 >> Hivyo katika muda mfupi, Clang ni compiler. 358 00:14:39,710 --> 00:14:43,080 Matokeo ni chombo tu user-kirafiki kwamba tutaweza kuwa na kutumia zaidi 359 00:14:43,080 --> 00:14:44,420 na zaidi, kwa sababu tu ya kuanza 360 00:14:44,420 --> 00:14:47,330 kurahisisha mambo kwa ajili yetu. 361 00:14:47,330 --> 00:14:49,430 Na sisi kurudi 0, Mwisho. 362 00:14:49,430 --> 00:14:51,890 Kwa sasa, kwa sababu tu, lakini tutaweza kuanza teasing kwamba sehemu 363 00:14:51,890 --> 00:14:52,930 leo na siku ya Jumatano. 364 00:14:52,930 --> 00:14:55,560 Maswali yoyote juu ya yoyote ya hii? 365 00:14:55,560 --> 00:14:56,450 Yeah? 366 00:14:56,450 --> 00:14:58,234 Watazamaji: [inaudible] 367 00:14:58,234 --> 00:15:00,020 ls katika quotes huko? 368 00:15:00,020 --> 00:15:01,710 DAVID J. Malan: OK. 369 00:15:01,710 --> 00:15:05,880 Wakati mimi typed ls katika quotes, kwamba alikuwa mimi kufanya baadhi ya uchawi 370 00:15:05,880 --> 00:15:07,160 nyuma ya pazia ya kurekebisha mdudu. 371 00:15:07,160 --> 00:15:09,370 I forgot, kama tumekuwa kuwaambia wengi wenu juu ya 372 00:15:09,370 --> 00:15:11,600 mjadala wa bodi, kufanya - 373 00:15:11,600 --> 00:15:17,220 tutaweza kufanya hili sasa - Sudo yum-y update appliance50. 374 00:15:17,220 --> 00:15:19,790 Whoops, kwamba hiyo ni haki yameandikwa. 375 00:15:19,790 --> 00:15:23,240 Hivyo appliance ni kama mfumo wa uendeshaji. 376 00:15:23,240 --> 00:15:25,650 Ni mbio hii ya mfumo wa uendeshaji kuitwa Fedora. 377 00:15:25,650 --> 00:15:27,450 Na sasa kwa sababu ya uhusiano wangu polepole internet, nimekuwa 378 00:15:27,450 --> 00:15:28,260 kweli hosed yake. 379 00:15:28,260 --> 00:15:31,620 Hivyo mbio Sudo yum update, kama sisi kukuambia kwa nini katika 380 00:15:31,620 --> 00:15:34,080 tatizo kuweka, kimsingi ni kama mbio updates moja kwa moja 381 00:15:34,080 --> 00:15:35,420 Mac OS au Windows. 382 00:15:35,420 --> 00:15:37,280 Na sababu kwa ajili ya kuendesha hii mwanzoni kabisa mwa 383 00:15:37,280 --> 00:15:39,640 tatizo kuweka ni kwa sababu wakati sisi aliumba appliance, mimi 384 00:15:39,640 --> 00:15:42,480 messed up, na mimi ajali alifanya yote ya programu yako kuangalia 385 00:15:42,480 --> 00:15:45,210 nyeusi kwenye screen nyeusi, ambayo ni kwa nini wewe si kuona wao 386 00:15:45,210 --> 00:15:45,860 na default. 387 00:15:45,860 --> 00:15:48,020 Lakini toleo la karibuni la appliance fixes hii. 388 00:15:48,020 --> 00:15:50,500 Na mimi itabidi kurekebisha wakati wa mapumziko mara moja nina Internet 389 00:15:50,500 --> 00:15:51,280 uppkoppling. 390 00:15:51,280 --> 00:15:54,630 >> Hivyo quotes tu ngozi makosa yangu, sana kwa ujasiri, 391 00:15:54,630 --> 00:15:55,730 inaonekana. 392 00:15:55,730 --> 00:15:56,980 Maswali mengine? 393 00:15:59,750 --> 00:16:00,668 Ndiyo? 394 00:16:00,668 --> 00:16:02,012 Watazamaji: Wapi kufanya kuja kutoka? 395 00:16:02,012 --> 00:16:03,810 [Inaudible] 396 00:16:03,810 --> 00:16:04,280 DAVID J. Malan: Good swali. 397 00:16:04,280 --> 00:16:05,460 Wapi kufanya kuja kutoka? 398 00:16:05,460 --> 00:16:09,390 Ni mpango wa Linux ambalo limekuwepo kwa miaka mingi, ya muda mrefu 399 00:16:09,390 --> 00:16:10,570 kabla CS50. 400 00:16:10,570 --> 00:16:12,930 Na inakuja na mfumo wa uendeshaji kama Fedora. 401 00:16:12,930 --> 00:16:14,830 Ni haina kuja kutoka maktaba CS50. 402 00:16:14,830 --> 00:16:17,560 Kwa kweli, mambo tu kwamba kuja kutoka maktaba CS50 403 00:16:17,560 --> 00:16:20,470 hivi sasa, kwamba tumekuwa kuonekana, ni GetString, GetInt, wote wa 404 00:16:20,470 --> 00:16:25,550 wale Kupata kazi, na kamba neno, na baadhi 405 00:16:25,550 --> 00:16:26,575 kiwango, neno bool. 406 00:16:26,575 --> 00:16:29,180 Lakini tutaweza tease kwamba mbali wakati sisi kupiga mbizi katika CS50 407 00:16:29,180 --> 00:16:30,580 appliance yenyewe. 408 00:16:30,580 --> 00:16:32,820 >> Hivyo ndiyo, swali moja zaidi hapa. 409 00:16:32,820 --> 00:16:36,636 Watazamaji: Wakati wewe alisema kufanya na kisha Buggy, jinsi gani 410 00:16:36,636 --> 00:16:39,980 kompyuta kujua [inaudible]? 411 00:16:39,980 --> 00:16:40,520 DAVID J. Malan: Good swali. 412 00:16:40,520 --> 00:16:43,830 Hivyo wakati wewe kukimbia tu kufanya buggy1 au kufanya buggy2, jinsi 413 00:16:43,830 --> 00:16:45,220 haina kufanya kujua? 414 00:16:45,220 --> 00:16:49,900 Hivyo kwa default, ikiwa unapoandika kufanya buggy1, kufanya inaonekana kwa 415 00:16:49,900 --> 00:16:52,330 faili inayoitwa buggy1.c. 416 00:16:52,330 --> 00:16:55,570 Na kisha executes amri Clang sahihi, 417 00:16:55,570 --> 00:17:00,380 hivyo kuu pato default faili inayoitwa a.out. 418 00:17:00,380 --> 00:17:03,670 Kwa kweli, kama sisi kuangalia nini kufanya, nini - 419 00:17:03,670 --> 00:17:04,839 hebu acha hii. 420 00:17:04,839 --> 00:17:09,530 Kama sisi kuangalia nini kufanya ilikuwa kweli kufanya, kufanya buggy2, 421 00:17:09,530 --> 00:17:10,470 ni tayari hadi sasa. 422 00:17:10,470 --> 00:17:13,020 Hivyo basi mimi kuondoa amri rm, 423 00:17:13,020 --> 00:17:14,319 mpango niliandika kabla. 424 00:17:14,319 --> 00:17:17,319 Typing Y-E-S kuthibitisha kwamba mimi nataka kuondoa hiyo. 425 00:17:17,319 --> 00:17:20,480 Kama mimi sasa kufanya kufanya, taarifa kwamba katika mstari huu kwa muda mrefu sana, 426 00:17:20,480 --> 00:17:22,980 kuna jambo hili jana hapa,-o buggy2. 427 00:17:22,980 --> 00:17:26,959 Kufanya yote ni kufanya ni kupita kwamba hoja, ili kuzungumza, kwa 428 00:17:26,959 --> 00:17:29,665 Clang, ili mimi hawana aina yake mwenyewe. 429 00:17:29,665 --> 00:17:32,660 >> Haki ya wote, hivyo michache ya haraka ya utawala 430 00:17:32,660 --> 00:17:33,470 matangazo. 431 00:17:33,470 --> 00:17:36,940 Hivyo kwa sehemu, ambayo ilianza rasmi hii kuja 432 00:17:36,940 --> 00:17:38,970 Jumapili, wewe daima utasikia wanataka kuleta, kama 433 00:17:38,970 --> 00:17:40,120 una moja, mbali. 434 00:17:40,120 --> 00:17:42,570 Kama huna mbali, wala kuwafikia kwangu kwa 435 00:17:42,570 --> 00:17:43,580 kuacha barua pepe yangu. 436 00:17:43,580 --> 00:17:44,810 Na tutaweza takwimu nje workflow. 437 00:17:44,810 --> 00:17:47,100 Nini ujumla utapata katika sehemu ni kwamba uko sehemu 438 00:17:47,100 --> 00:17:48,770 dhana, sehemu mikono juu. 439 00:17:48,770 --> 00:17:52,190 Tutaweza hasa matumizi ya sehemu ya maswali, sehemu ya 440 00:17:52,190 --> 00:17:54,110 tatizo la wiki kuweka, kutembea kwa baadhi ya 441 00:17:54,110 --> 00:17:55,820 dhana vifaa kutoka mihadhara. 442 00:17:55,820 --> 00:17:57,480 Na kwamba wote katika kuweka sasa tatizo. 443 00:17:57,480 --> 00:18:00,010 Na tutaweza pia kupiga mbizi katika baadhi ya shughuli mikono juu, wakati mwingine 444 00:18:00,010 --> 00:18:02,190 ambayo inatakiwa iwasilishwe, wakati mwingine ya 445 00:18:02,190 --> 00:18:02,830 ambayo si. 446 00:18:02,830 --> 00:18:04,630 Kwa mfano, wiki hii kwanza, wao ni maana tu kama 447 00:18:04,630 --> 00:18:05,780 joto-up mazoezi. 448 00:18:05,780 --> 00:18:07,800 Na utapata kwamba wale matatizo ni kweli tu. 449 00:18:07,800 --> 00:18:10,220 Wao ni maana ya kuwa haki ndogo, lakini si lazima 450 00:18:10,220 --> 00:18:13,100 trivial mipango ya kuandika, ambayo si lazima 451 00:18:13,100 --> 00:18:16,230 kusisimua katika na wenyewe lakini ni nzuri fursa ya 452 00:18:16,230 --> 00:18:19,620 mazoezi na syntax, na kazi mpya, katika faraja ya 453 00:18:19,620 --> 00:18:21,900 sehemu ambapo unaweza kuwa na wachache wa wanafunzi wako sasa kama 454 00:18:21,900 --> 00:18:22,870 vizuri kama TF yako. 455 00:18:22,870 --> 00:18:26,210 >> Na nini tutaweza kufanya juu ya muda ni kutumia zana iitwayo CS50 Spaces, 456 00:18:26,210 --> 00:18:28,940 ambapo badala ya kutumia Appliance CS50, wewe itabidi 457 00:18:28,940 --> 00:18:32,450 badala kwenda kwenye ukurasa wa mtandao katika browser, ambapo utasikia kuwa na uwezo 458 00:18:32,450 --> 00:18:35,610 kuandika code katika dirisha browser wakati sehemu. 459 00:18:35,610 --> 00:18:38,240 Na kisha kama wewe opt katika, mafundisho yako wenzake wanaweza kuonyesha 460 00:18:38,240 --> 00:18:40,980 chochote ni uko kuandika juu ya screen yako katika browser yako 461 00:18:40,980 --> 00:18:43,930 dirisha juu mbele ya darasa, iwe anonymously au 462 00:18:43,930 --> 00:18:47,250 hadharani, ili yeye au yeye anaweza kisha kutembea kwa njia na 463 00:18:47,250 --> 00:18:50,080 wanafunzi wako nini alifanya vizuri, nini hawakufanya vizuri. 464 00:18:50,080 --> 00:18:52,750 Na tena, wengine uhakika wote wa hii inaweza nicely anonymized. 465 00:18:52,750 --> 00:18:54,410 Lakini utakuwa fursa nzuri kwa zaidi 466 00:18:54,410 --> 00:18:56,810 interactivity kuliko kitu kama hotuba inaruhusu. 467 00:18:56,810 --> 00:18:58,910 >> Wakati huo huo, sisi itabidi mambo haya kuitwa super 468 00:18:58,910 --> 00:19:01,610 sehemu, ambayo ni hiari lakini ni wazi kwa kila mtu katika 469 00:19:01,610 --> 00:19:04,030 darasa, ili unaweza kufanya hivyo zaidi kwa pamoja kwa ajili 470 00:19:04,030 --> 00:19:05,190 tatizo kuweka moja. 471 00:19:05,190 --> 00:19:06,010 Hapa ni ratiba. 472 00:19:06,010 --> 00:19:08,870 Hii pia ni posted kwenye homepage katika cs50.net. 473 00:19:08,870 --> 00:19:10,850 Ona kwamba kutakuwa hacker maalum 474 00:19:10,850 --> 00:19:12,430 moja kesho mchana. 475 00:19:12,430 --> 00:19:15,460 Na sisi filamu moja leo na kesho na moja baada ya wale 476 00:19:15,460 --> 00:19:16,720 online ndani ya masaa 24. 477 00:19:16,720 --> 00:19:19,370 Hivyo kama huwezi kufanya lolote juu ya nyakati hizi, wasiwe na wasiwasi. 478 00:19:19,370 --> 00:19:22,720 Na tena, ratiba ni online sasa katika cs50.net. 479 00:19:22,720 --> 00:19:25,350 >> Katika suala la sectioning yenyewe, unapaswa kuwa na kujipatia 480 00:19:25,350 --> 00:19:28,520 email likimwelekeza wewe kwenda kwenye ukurasa wa kozi ya kupata 481 00:19:28,520 --> 00:19:29,610 nje ya sehemu yako. 482 00:19:29,610 --> 00:19:32,890 Kama maisha yamebadilika na unahitaji kubadilisha sehemu yako, 483 00:19:32,890 --> 00:19:33,560 si tatizo. 484 00:19:33,560 --> 00:19:37,900 Nenda nyuma URL huo, cs50.net/section, umoja, 485 00:19:37,900 --> 00:19:40,090 na wewe utakuwa kujaza fomu sawa ili uweze 486 00:19:40,090 --> 00:19:41,260 kisha utupe mapendekezo yako. 487 00:19:41,260 --> 00:19:43,360 Na sisi kufuatilia na mwisho wa wiki kama kwa nini tunaweza 488 00:19:43,360 --> 00:19:44,240 malazi. 489 00:19:44,240 --> 00:19:49,530 Wiki iliyopita, wanakumbuka kwamba sisi mapendekezo kutumia CS50 Diskutera, 490 00:19:49,530 --> 00:19:51,370 majadiliano kozi ya chombo, katika hotuba. 491 00:19:51,370 --> 00:19:53,680 Hivyo tulikuwa maswali 40 ambayo waliulizwa na 492 00:19:53,680 --> 00:19:54,720 akajibu wakati mihadhara. 493 00:19:54,720 --> 00:19:56,280 Hivyo ilionekana kazi vizuri, hivyo tutaweza kuendelea 494 00:19:56,280 --> 00:19:57,180 kujaribu kufanya hili. 495 00:19:57,180 --> 00:19:59,600 Kama, wakati wa hotuba, wewe si tu kujisikia vizuri kuinua 496 00:19:59,600 --> 00:20:00,780 mkono wako, si tatizo. 497 00:20:00,780 --> 00:20:04,640 Nenda cs50.net/discuss, baada ya hapo, na moja ya mafundisho yetu 498 00:20:04,640 --> 00:20:07,270 wenzako ama kujibu ni umeme au kuongeza zao 499 00:20:07,270 --> 00:20:10,620 mkono kwa niaba yako anonymously kuuliza, kutegemea 500 00:20:10,620 --> 00:20:12,470 juu ya asili ya swali. 501 00:20:12,470 --> 00:20:15,000 Na katika suala ya maoni, kwa ujumla psets itakuwa 502 00:20:15,000 --> 00:20:16,760 akarudi ndani ya wiki. 503 00:20:16,760 --> 00:20:19,080 Kwa sababu inachukua muda kidogo kwa ajili ya sehemu ya kufikia 504 00:20:19,080 --> 00:20:22,430 Msawazo, pset kwanza, 0 na 1, itakuwa kidogo 505 00:20:22,430 --> 00:20:24,130 kuchelewa kama mambo kukaa chini. 506 00:20:24,130 --> 00:20:27,130 Lakini mada kwa kuwa katika wiki ijayo. 507 00:20:27,130 --> 00:20:29,750 >> Haki ya wote, hivyo basi mimi kuweka yangu kubwa 508 00:20:29,750 --> 00:20:31,040 sauti kwa muda tu. 509 00:20:31,040 --> 00:20:32,690 Hivyo hii ni kweli hali ya hewa ya kuvutia kuwa 510 00:20:32,690 --> 00:20:35,210 kuwa na mjadala huu, nini na mambo yote mengine 511 00:20:35,210 --> 00:20:37,310 kinachoendelea juu ya chuo kufuatia kuhusiana. 512 00:20:37,310 --> 00:20:40,220 Lakini CS50 ina shaka alikuwa na historia yake ya hasa hili 513 00:20:40,220 --> 00:20:43,360 mada, katika kadri kila mwaka, kozi hii, kwa ajili ya wengi 514 00:20:43,360 --> 00:20:46,910 miaka, Ad-Bodi takribani 3% ya darasa. 515 00:20:46,910 --> 00:20:51,620 Mwaka huu wa hivi karibuni, 2011, CS50 Ad-boarded wanafunzi 35. 516 00:20:51,620 --> 00:20:54,120 Hii si, nadhani, kutokana na ukosefu wa uwazi. 517 00:20:54,120 --> 00:20:56,760 Kutambua kwamba katika mtaala shaka, kuna ukurasa wa 518 00:20:56,760 --> 00:20:59,020 maelezo kuelezea ambapo mistari ni. 519 00:20:59,020 --> 00:21:01,350 Kauli hiyo hiyo ni unaorudiwa juu ya kila mmoja 520 00:21:01,350 --> 00:21:03,070 tatizo seti kwenye ukurasa mmoja. 521 00:21:03,070 --> 00:21:05,760 >> Basi, mimi kutaja hii leo kweli tu kufanya 522 00:21:05,760 --> 00:21:07,030 folks kukumbuka ya hii. 523 00:21:07,030 --> 00:21:08,080 Na tumekuwa alijaribu vitu tofauti. 524 00:21:08,080 --> 00:21:10,630 Na nilifikiri nini tunataka kufanya leo ni tu kuchukua muda 525 00:21:10,630 --> 00:21:13,830 kweli kuangalia baadhi ya matukio ya siku za nyuma kwamba wamekuja. 526 00:21:13,830 --> 00:21:16,160 Badala ya kuweka haya kama chafu siri kidogo, kwa kweli 527 00:21:16,160 --> 00:21:19,170 kumweka nje nini wanafunzi wamefanya na jinsi sisi wanaona 528 00:21:19,170 --> 00:21:21,630 ni kweli nini na motisha makuu ni kwa ajili ya 529 00:21:21,630 --> 00:21:23,950 hata baada ya mazungumzo haya. 530 00:21:23,950 --> 00:21:27,060 Hivyo kwa kuwa alisema, line kimsingi ni hii - 531 00:21:27,060 --> 00:21:29,200 kwa muhtasari, wewe ni welcome, wewe ni moyo, kwa 532 00:21:29,200 --> 00:21:30,210 kuzungumza na wanafunzi. 533 00:21:30,210 --> 00:21:31,910 Hiyo ni lengo zima la kuwa na haya shirikishi 534 00:21:31,910 --> 00:21:34,470 masaa ya ofisi katika Annenberg na kuwahimiza watu kwa 535 00:21:34,470 --> 00:21:35,755 mradi wa mwisho wa kufanya kazi pamoja. 536 00:21:35,755 --> 00:21:38,590 Lakini line ni inayotolewa linapokuja wakati kwa kweli kuandika 537 00:21:38,590 --> 00:21:39,790 ufumbuzi yako ya mwisho. 538 00:21:39,790 --> 00:21:42,590 Akizungumza katika lugha ya Kiingereza, kabisa faini, akizungumza katika code Pseudo, 539 00:21:42,590 --> 00:21:43,400 kabisa faini. 540 00:21:43,400 --> 00:21:46,340 Emailing classmate pset yako, kuruhusu watu kuangalia juu ya 541 00:21:46,340 --> 00:21:48,610 screen kama mikono kuendelea kuandika, 542 00:21:48,610 --> 00:21:50,110 juu ya mstari kama vizuri. 543 00:21:50,110 --> 00:21:52,250 Je kuangalia kwa muhtasari kwa mistari fulani. 544 00:21:52,250 --> 00:21:55,850 >> Lakini tu kwa kuchora picha ya jinsi hii ni bahati mbaya 545 00:21:55,850 --> 00:21:58,370 ukweli, kutambua kwamba kuna tovuti huko nje kwamba 546 00:21:58,370 --> 00:22:01,490 kuwa na ufumbuzi kutoka darasa hili na wengi madarasa mengine. 547 00:22:01,490 --> 00:22:04,940 ukweli kwamba wewe au baadhi 3% ya wewe kujua kwamba hii ipo 548 00:22:04,940 --> 00:22:07,240 ina maana kwamba sisi kujua kwamba hii ipo. 549 00:22:07,240 --> 00:22:09,340 ukweli kwamba kuna tovuti kama hii ambapo 550 00:22:09,340 --> 00:22:11,540 wanaweza kulipa mtu kweli kufanya tatizo seti yako - hii ilikuwa 551 00:22:11,540 --> 00:22:13,450 kesi halisi waliopanda mwaka jana. 552 00:22:13,450 --> 00:22:15,790 Hii ni tovuti inayoitwa odesk.com. 553 00:22:15,790 --> 00:22:20,090 Na Tim ilikuwa jina la mtu hapa ambaye alikuwa posting juu ya 554 00:22:20,090 --> 00:22:24,580 hii tovuti na aliuliza mtu kufanya pset wake 7 katika 555 00:22:24,580 --> 00:22:25,570 hii kesi fulani. 556 00:22:25,570 --> 00:22:28,350 Naam, ni odesk.com sana Google-uwezo, na sisi pia ni 557 00:22:28,350 --> 00:22:30,310 nzuri sana katika googling. 558 00:22:30,310 --> 00:22:32,360 Hapa pia, kuna maeneo - na huyu 'badala 559 00:22:32,360 --> 00:22:34,234 mauaji, shahiri. 560 00:22:34,234 --> 00:22:38,050 [Kicheko] 561 00:22:38,050 --> 00:22:39,610 DAVID J. Malan: Kitu funny kuhusu tovuti hii ni kama 562 00:22:39,610 --> 00:22:41,970 kusoma ukurasa Kuhusu, wao majadiliano kuhusu ushirika wao 563 00:22:41,970 --> 00:22:44,390 utamaduni na jinsi huduma kwa wateja ni zao namba moja 564 00:22:44,390 --> 00:22:46,190 kipaumbele, ili kuhakikisha kuwa kazi yako kupata 565 00:22:46,190 --> 00:22:47,890 akageuka katika wakati muafaka. 566 00:22:47,890 --> 00:22:50,580 >> Lakini kwa uhakika wote, tena, ukweli kwamba maeneo haya 567 00:22:50,580 --> 00:22:52,910 zipo, kutambua sisi, pia, ni Mjuzi wa 568 00:22:52,910 --> 00:22:53,730 hizi aina ya maeneo. 569 00:22:53,730 --> 00:22:55,890 Na kukupa hisia ya kile hutengeneza hii ujumla 570 00:22:55,890 --> 00:22:58,570 inachukua, sisi ujumla hawana kashfa kubwa ambapo watu 571 00:22:58,570 --> 00:23:01,080 ni kushirikiana juu ya aina yoyote ya kiasi kikubwa, lakini badala 572 00:23:01,080 --> 00:23:04,540 ni haya wakati marehemu-usiku wa udhaifu, ambapo una hivyo 573 00:23:04,540 --> 00:23:07,550 mengi ya kufanya, ni 04:00, wewe ni nimechoka, na wewe 574 00:23:07,550 --> 00:23:09,770 kufikiri mwenyewe, vizuri, basi mimi tu kuangalia yangu 575 00:23:09,770 --> 00:23:11,770 roommate au code ya rafiki yangu au kama. 576 00:23:11,770 --> 00:23:14,800 Na madhihirisho ya hii kwa bahati mbaya kuhusisha Mwanafunzi 577 00:23:14,800 --> 00:23:17,640 kitu kama hiki na kuwasilisha Mwanafunzi kuwasilisha B 578 00:23:17,640 --> 00:23:20,370 kitu kama hii, ambayo kwa hakika, katika kompyuta 579 00:23:20,370 --> 00:23:23,830 sayansi darasa, ni rahisi kwa inashangaza wanasayansi wa kompyuta 580 00:23:23,830 --> 00:23:25,690 kuchunguza na programu. 581 00:23:25,690 --> 00:23:28,410 Hii ni dhana ya kawaida mwingine, ambapo wameweza aina ya 582 00:23:28,410 --> 00:23:31,010 ikifanya kazi pamoja ya mtu, labda kuzungumza katika 583 00:23:31,010 --> 00:23:32,360 Kiingereza, faini tu, pseudocode. 584 00:23:32,360 --> 00:23:35,080 Lakini basi inakuja wakati kwa kweli kuwasilisha, na psets 585 00:23:35,080 --> 00:23:37,910 tu kupata kubadilishana kupitia barua pepe au Dropbox au kama. 586 00:23:37,910 --> 00:23:41,120 Lakini katika jaribio la kufanya hivyo chini dhahiri kwamba hii ni 587 00:23:41,120 --> 00:23:44,830 kilichotokea, basi hii ni nini in. 588 00:23:44,830 --> 00:23:47,880 Hii pia, haina safari hadi vipande kuandikwa vizuri ya 589 00:23:47,880 --> 00:23:50,360 programu kama tuna kweli kuchunguza 590 00:23:50,360 --> 00:23:51,280 hizi aina ya mambo. 591 00:23:51,280 --> 00:23:53,760 Na kwa kweli kile sisi kufanya ni kukimbia programu ambayo inalinganishwa yote ya 592 00:23:53,760 --> 00:23:55,540 mwaka huu maoni dhidi ya wote wa zamani wa mwaka 593 00:23:55,540 --> 00:23:57,380 mawasilisho, dhidi ya kila kitu sisi kupatikana kwenye 594 00:23:57,380 --> 00:24:00,060 Internet, dhidi ya kila tovuti ya kazi huko nje. 595 00:24:00,060 --> 00:24:01,710 Ni wote sana automatiska. 596 00:24:01,710 --> 00:24:05,665 Na hivyo sisi kufanya kweli hii katika haki kubwa kwa% 97 ambao 597 00:24:05,665 --> 00:24:07,760 ni kweli kazi punda zao mbali kwa hii na nyingine 598 00:24:07,760 --> 00:24:11,530 madarasa na kuweka katika yote ya juhudi kwamba ili kazi 599 00:24:11,530 --> 00:24:13,030 hatimaye kuwasilisha ni wao wenyewe. 600 00:24:13,030 --> 00:24:14,220 Na siwezi kwenda kwa muda mrefu. 601 00:24:14,220 --> 00:24:16,030 >> Hizi ni baadhi tu wachache wa kesi ya mwaka jana. 602 00:24:16,030 --> 00:24:19,350 wanafunzi wachache in hizi files identically kwa pset 2, 603 00:24:19,350 --> 00:24:22,460 pset 3, 4 pset, pset 5, 6 pset, pset 9. 604 00:24:22,460 --> 00:24:26,360 Katika kesi hiyo, hii ilikuwa jaribio 0 na mwaka jana, ambapo wawili 605 00:24:26,360 --> 00:24:29,570 wanafunzi in identically sentensi hii miongoni mwa wengi 606 00:24:29,570 --> 00:24:32,210 wengine, "ombi la aina -" dot, dot, dot. 607 00:24:32,210 --> 00:24:34,530 Hivyo hata katika darasa ya 600 gani sisi kuchunguza hii 608 00:24:34,530 --> 00:24:36,310 juu ya in Quizzes. 609 00:24:36,310 --> 00:24:39,080 Hivyo katika muda mfupi, hii - kusema ukweli, I hate kuwa aina hii ya 610 00:24:39,080 --> 00:24:41,300 mazungumzo - lakini hii ni kweli juhudi za makusudi 611 00:24:41,300 --> 00:24:43,540 mwaka huu ili kujaribu gari chini ya idadi hiyo. 612 00:24:43,540 --> 00:24:45,650 Kwa sababu hata kama sisi kusema haya kila aina ya mambo 613 00:24:45,650 --> 00:24:48,100 mwaka, nadhani ukweli wa kuwa wakikaa juu yake kwa ajili ya wachache 614 00:24:48,100 --> 00:24:50,800 zaidi ya sekunde kuliko kawaida na kweli tu kusema 615 00:24:50,800 --> 00:24:53,600 kwamba kile inaweza kuonekana kama, eh, si mpango kubwa vile, angalau 616 00:24:53,600 --> 00:24:56,390 kufikiri nyuma wakati fulani, katika haki kwa 617 00:24:56,390 --> 00:25:00,100 mwenyewe na kwa wanafunzi wako hapa. 618 00:25:00,100 --> 00:25:02,480 Hivyo kama umewahi kuwa na maswali yoyote kama ambapo mstari 619 00:25:02,480 --> 00:25:04,290 ni, tafadhali tu kuwafikia mimi binafsi. 620 00:25:04,290 --> 00:25:07,190 Lakini jibu ni daima, kabisa alisisitiza katika 621 00:25:07,190 --> 00:25:09,090 dakika ya mwisho ya fedha katika siku ya marehemu. 622 00:25:09,090 --> 00:25:11,080 Au kama ni suala la kutokuwa na siku marehemu, 623 00:25:11,080 --> 00:25:12,900 uaminifu, email yangu binafsi. 624 00:25:12,900 --> 00:25:14,110 Tutaweza takwimu kitu nje. 625 00:25:14,110 --> 00:25:17,480 Tafadhali usiweke muda wako hapa katika Harvard katika hatari. 626 00:25:17,480 --> 00:25:18,570 >> Sasa, nilifikiri tunatakiwa uzito mood, hivyo mimi 627 00:25:18,570 --> 00:25:20,264 pamoja na hii kama slide ijayo. 628 00:25:20,264 --> 00:25:22,770 [Kicheko] 629 00:25:22,770 --> 00:25:23,630 DAVID J. Malan: Tovuti hii ilikuwa kubwa. 630 00:25:23,630 --> 00:25:24,820 Mimi kwa kweli got kidogo aliwasihi. 631 00:25:24,820 --> 00:25:26,330 Kuna moja hii. 632 00:25:26,330 --> 00:25:29,590 Na kisha moja hii ilikuwa ajabu. 633 00:25:29,590 --> 00:25:35,190 Sawa, hivyo kufikiria kwamba kitten marehemu wakati wa usiku wakati wa kufanya 634 00:25:35,190 --> 00:25:36,040 wale maamuzi. 635 00:25:36,040 --> 00:25:40,110 Haki ya wote, hivyo nyuma ya furaha zaidi na chini kubwa stuff, kama 636 00:25:40,110 --> 00:25:40,780 masharti. 637 00:25:40,780 --> 00:25:43,900 >> Haki zote, hivyo sisi aliyesema ufupi kuhusu hizi. 638 00:25:43,900 --> 00:25:46,080 Hii ni kitu ambacho pengine familiar kabisa kutoka 639 00:25:46,080 --> 00:25:47,260 ulimwengu wa Scratch. 640 00:25:47,260 --> 00:25:49,860 Na katika ulimwengu wa Scratch, tuna hitaji hili wakati mwingine kwa 641 00:25:49,860 --> 00:25:51,110 kwenda kufanya uma katika barabara. 642 00:25:51,110 --> 00:25:54,840 Ama kufanya hivi au hivi au jambo hili kingine hapa. 643 00:25:54,840 --> 00:25:58,990 Na wakati tunataka kufanya hivyo, tunaweza kutumia, katika C sasa, hii ikiwa 644 00:25:58,990 --> 00:26:00,860 mwingine kujenga. 645 00:26:00,860 --> 00:26:06,420 Na kisha hapa tuna misemo Boolean. 646 00:26:06,420 --> 00:26:09,260 Kwa mfano, Boolean maneno hapa, tunaweza AU 647 00:26:09,260 --> 00:26:12,260 pamoja, kwa maana kwamba tuna hali hii AU 648 00:26:12,260 --> 00:26:13,200 kwamba hali hiyo. 649 00:26:13,200 --> 00:26:15,100 Tunaweza NA pamoja, kwa maana kwamba tunataka 650 00:26:15,100 --> 00:26:17,710 kuangalia hali hii na kwamba hali hiyo. 651 00:26:17,710 --> 00:26:22,440 Na hapa tuna kauli kubadili sasa, ambayo si hivyo 652 00:26:22,440 --> 00:26:26,040 sawa syntactically kwa aina wale wa hali, lakini 653 00:26:26,040 --> 00:26:30,160 inaruhusu sisi kufanya sawa ikiwa, mwingine kama, mwingine kama, mwingine 654 00:26:30,160 --> 00:26:34,990 ikiwa, na kama kwa kifupi enumerating yao kesi kwa kesi 655 00:26:34,990 --> 00:26:36,670 na kesi kwa kesi. 656 00:26:36,670 --> 00:26:38,370 Hivyo tuliona wale wakati wa mwisho. 657 00:26:38,370 --> 00:26:40,430 Na kisha sisi kuanza kugusa juu ya mambo kama matanzi. 658 00:26:40,430 --> 00:26:42,070 Tuliona moja ya hizi muda tu iliyopita. 659 00:26:42,070 --> 00:26:44,180 Lakini kuna hizi nyingine constructs looping. 660 00:26:44,180 --> 00:26:46,370 >> Kwa mfano, hii moja hapa. 661 00:26:46,370 --> 00:26:50,140 Hivyo wakati (hali), jambo hili tena na tena. 662 00:26:50,140 --> 00:26:53,070 Hivyo kimsingi, nini inaonekana kuwa tofauti kati ya hii 663 00:26:53,070 --> 00:26:55,760 kwa kitanzi na hii kitanzi wakati hapa? 664 00:27:00,810 --> 00:27:05,045 Hii kwa kitanzi na hii kitanzi wakati. 665 00:27:05,045 --> 00:27:07,840 Yeah? 666 00:27:07,840 --> 00:27:08,800 Nini hiyo? 667 00:27:08,800 --> 00:27:10,050 Watazamaji: [inaudible]. 668 00:27:14,632 --> 00:27:15,120 DAVID J. Malan: Good. 669 00:27:15,120 --> 00:27:17,130 Hivyo wakati katika hali kwa kitanzi, kuna uwazi 670 00:27:17,130 --> 00:27:17,940 zaidi syntax. 671 00:27:17,940 --> 00:27:20,560 Kuna initialization hii, kuna update hii. 672 00:27:20,560 --> 00:27:23,820 Katika kitanzi wakati, kuna tu hali hii. 673 00:27:23,820 --> 00:27:26,630 Hivyo inaonekana kuwa ni kidogo ikilinganishwa chini dhidi ya 674 00:27:26,630 --> 00:27:28,770 kitanzi, ambayo ina maana kama tunataka kuwa na vigezo na tunataka 675 00:27:28,770 --> 00:27:30,800 kuwa na incrementation, sisi kweli kuwa 676 00:27:30,800 --> 00:27:32,500 jambo hili sisi wenyewe. 677 00:27:32,500 --> 00:27:34,420 >> Hivyo basi mimi kwenda mbele na kufungua gedit. 678 00:27:34,420 --> 00:27:36,320 Hebu kubadili juu ya appliance. 679 00:27:36,320 --> 00:27:38,110 Na hebu tu kufanya haraka kidogo mfano kwamba 680 00:27:38,110 --> 00:27:40,550 hutofautisha kati ya hawa kutoka nyingine. 681 00:27:40,550 --> 00:27:42,490 Na katika nyuma ya akili yangu hapa, mimi lazima kusema jambo moja. 682 00:27:42,490 --> 00:27:44,120 Mimi hasa zilizotajwa Tim jina. 683 00:27:44,120 --> 00:27:47,740 Tim kweli alikuwa mtu kwamba mwanafunzi alijaribu kutafuta kufanya 684 00:27:47,740 --> 00:27:48,680 kazi zao za nyumbani kwa ajili yao. 685 00:27:48,680 --> 00:27:51,280 Sisi hatukuwa na Tim katika sehemu fulani. 686 00:27:51,280 --> 00:27:53,690 Hivyo kutambua, nisije kufichuliwa mwanafunzi, ilikuwa si mwanafunzi. 687 00:27:53,690 --> 00:27:55,720 Ilikuwa mtu random kwenye mtandao kufanya mambo 688 00:27:55,720 --> 00:27:57,180 kwa mwaka wakala mwisho. 689 00:27:57,180 --> 00:27:58,670 Hivyo tunaona kwamba, pia. 690 00:27:58,670 --> 00:28:00,630 Hivyo katika kesi hii hapa, napenda kwenda mbele na 691 00:28:00,630 --> 00:28:02,810 kufungua faili mpya. 692 00:28:02,810 --> 00:28:04,800 Picha, Mpya. 693 00:28:04,800 --> 00:28:06,050 Hii inanipa tab hapa. 694 00:28:06,050 --> 00:28:09,940 Hebu kwenda mbele na ila ni kama loop.c. 695 00:28:09,940 --> 00:28:11,810 Hebu kwenda na bonyeza Hifadhi. 696 00:28:11,810 --> 00:28:15,340 Na kisha chini hapa, hebu kwenda mbele na kuanza kuandika 697 00:28:15,340 --> 00:28:16,605 # Pamoja . 698 00:28:19,116 --> 00:28:20,520 Hebu zoom in 699 00:28:20,520 --> 00:28:23,410 Sasa tutaweza kufanya kuu int (utupu). 700 00:28:23,410 --> 00:28:30,020 Sasa basi mimi kwenda mbele na kufanya kwa ajili ya (i = 0 int; i < 701 00:28:30,020 --> 00:28:33,480 oh, 10; i + +). 702 00:28:33,480 --> 00:28:36,620 Na sasa mimi nina kwenda mbele na kufanya magazeti nyota kwamba mimi 703 00:28:36,620 --> 00:28:37,890 ilivyokuwa. 704 00:28:37,890 --> 00:28:39,390 Na kisha mwisho wa mpango huu, sisi ni kwenda tu 705 00:28:39,390 --> 00:28:41,130 magazeti line mpya, hivyo tu kwamba haraka yangu 706 00:28:41,130 --> 00:28:42,470 haina kuangalia wote messy. 707 00:28:42,470 --> 00:28:45,170 kurudi 0. 708 00:28:45,170 --> 00:28:47,610 Wanaonekana syntactically sahihi? 709 00:28:47,610 --> 00:28:48,040 Hadi sasa. 710 00:28:48,040 --> 00:28:48,560 Basi hebu angalia. 711 00:28:48,560 --> 00:28:51,290 >> Hivyo basi mimi zoom, nendeni terminal dirisha yangu. 712 00:28:51,290 --> 00:28:54,570 Na napenda kwenda mbele na kukimbia kitanzi, kwa sababu mimi kuitwa hii 713 00:28:54,570 --> 00:28:55,690 Jambo loop.c. 714 00:28:55,690 --> 00:28:56,780 Hivyo kufanya kitanzi. 715 00:28:56,780 --> 00:28:57,840 Inaonekana kukusanya OK. 716 00:28:57,840 --> 00:29:00,210 Hebu kukimbia kitanzi, na sasa Ingiza. 717 00:29:00,210 --> 00:29:01,820 Na inaonekana kuwa kuchapishwa nyota 10. 718 00:29:01,820 --> 00:29:03,780 Basi hebu tu kubadilisha hii kwa kitanzi wakati na kuona nini 719 00:29:03,780 --> 00:29:05,220 aina ya masuala sisi safari juu. 720 00:29:05,220 --> 00:29:11,290 Hivyo badala ya hii, napenda kwenda katika hapa na kusema wakati i ni 721 00:29:11,290 --> 00:29:12,760 chini ya 10 - 722 00:29:12,760 --> 00:29:14,910 basi mimi kujikwamua kwa kitanzi. 723 00:29:14,910 --> 00:29:17,170 OK, hivyo sisi kuwa wanandoa wa matatizo tayari. 724 00:29:17,170 --> 00:29:21,110 Hivyo hali ni sawa, lakini mimi nina wazi kukosa 725 00:29:21,110 --> 00:29:21,680 initialization. 726 00:29:21,680 --> 00:29:23,840 Mimi kukosa incrementation. 727 00:29:23,840 --> 00:29:28,020 Hivyo kile lazima compiler uwezekano niambie wakati mimi kujaribu 728 00:29:28,020 --> 00:29:29,170 kukusanya mpango huu? 729 00:29:29,170 --> 00:29:29,666 Yeah? 730 00:29:29,666 --> 00:29:31,154 Watazamaji: [inaudible]. 731 00:29:31,154 --> 00:29:31,650 >> DAVID J. Malan: Good. 732 00:29:31,650 --> 00:29:34,180 Hivyo ni kwenda kusema kitu kama Undeclared - katika hili 733 00:29:34,180 --> 00:29:35,280 kesi, kutofautiana i. 734 00:29:35,280 --> 00:29:37,980 Na kwa kweli, matumizi ya kitambulisho Undeclared i. 735 00:29:37,980 --> 00:29:40,960 Na hivyo hii ni tofauti na lugha kama PHP na 736 00:29:40,960 --> 00:29:43,120 Chatu na Ruby, ambayo baadhi ya unaweza kuwa familiar, 737 00:29:43,120 --> 00:29:44,820 ambapo unaweza aina tu ya kuanza kutumia vigezo 738 00:29:44,820 --> 00:29:47,420 willy-nilly na si kuwa na wasiwasi juu ya kuzitangaza 739 00:29:47,420 --> 00:29:48,560 wazi daima. 740 00:29:48,560 --> 00:29:51,770 Katika C na katika lugha kama Java na C + +, una kuwa 741 00:29:51,770 --> 00:29:53,020 super wazi. 742 00:29:53,020 --> 00:29:55,760 Na kama unataka variable kuitwa i, una uniambie 743 00:29:55,760 --> 00:29:57,360 aina gani ya kutofautiana ni. 744 00:29:57,360 --> 00:29:59,360 Hivyo sisi itawabidi kurekebisha hii kama ifuatavyo. 745 00:29:59,360 --> 00:30:05,510 Mimi naenda kuwa kwenda hapa na aina int i, kwa hiyo, 746 00:30:05,510 --> 00:30:07,860 Mimi umetangaza variable kuitwa i. 747 00:30:07,860 --> 00:30:09,180 Sasa, nimekuwa skipped hatua moja. 748 00:30:09,180 --> 00:30:11,340 Nimekuwa wazi si initialized, lakini hebu angalia kama kwamba katika 749 00:30:11,340 --> 00:30:13,650 hufanya Clang angalau kuacha kulalamika. 750 00:30:13,650 --> 00:30:15,770 Hivyo basi mimi remake mpango huu. 751 00:30:15,770 --> 00:30:16,770 >> Haki zote, sasa ni tu kulalamika 752 00:30:16,770 --> 00:30:17,870 kwa sababu mbalimbali. 753 00:30:17,870 --> 00:30:21,130 "Variable 'i' ni uninitialized wakati kutumika hapa." Haki ya wote, hivyo 754 00:30:21,130 --> 00:30:22,340 kwamba ni pretty wazi. 755 00:30:22,340 --> 00:30:25,510 Initialized njia tu kuiandaa sawa na thamani. 756 00:30:25,510 --> 00:30:30,820 Na tumekuwa si kufanyika kwamba, hivyo basi mimi kujaribu sawa 0. 757 00:30:30,820 --> 00:30:35,030 Sasa hebu jaribu hii tena na tena kukimbia Clang. 758 00:30:35,030 --> 00:30:36,140 Imekusanywa wakati huu. 759 00:30:36,140 --> 00:30:37,210 Na mimi nina kuhusu kwa kukimbia. 760 00:30:37,210 --> 00:30:43,120 Lakini kubwa ya zamani kitanzi usio, kwa sababu mimi tumefanya 761 00:30:43,120 --> 00:30:45,530 initialization, nimekuwa kufanyika hali, lakini sijawahi kufanyika 762 00:30:45,530 --> 00:30:47,030 aina yoyote ya incrementation. 763 00:30:47,030 --> 00:30:48,780 Hivyo ni jinsi gani naweza kufanya incrementation? 764 00:30:48,780 --> 00:30:51,170 Naam, katika kitanzi wakati, anahisi kama mimi naenda kuwa 765 00:30:51,170 --> 00:30:54,180 kufanya hivyo ndani ya kitanzi, kwa sababu kiasi kama kwanza 766 00:30:54,180 --> 00:30:56,570 wiki ya mifano ya kufanya constructs looping, kama na 767 00:30:56,570 --> 00:30:59,040 soksi na kwa hesabu binafsi, tulikuwa na kufanya 768 00:30:59,040 --> 00:31:01,550 kitu mwishoni sana, kama kwenda nyuma ya mstari unaofuata. 769 00:31:01,550 --> 00:31:05,040 Nini kama mimi kwenda mbele na kufanya hili i + + hapa? 770 00:31:05,040 --> 00:31:06,030 Hebu hata kukusanya hii. 771 00:31:06,030 --> 00:31:06,890 Catch mimi tayari. 772 00:31:06,890 --> 00:31:09,704 Nini mbaya hapa? 773 00:31:09,704 --> 00:31:10,690 Watazamaji: [inaudible]. 774 00:31:10,690 --> 00:31:11,770 >> DAVID J. Malan: Hivyo ni dhahiri si int. 775 00:31:11,770 --> 00:31:13,080 Ni i. 776 00:31:13,080 --> 00:31:15,110 Na braces curly, kama kabla, 777 00:31:15,110 --> 00:31:16,800 indentation haitoshi. 778 00:31:16,800 --> 00:31:18,410 Hivyo sasa mimi hii kujenga. 779 00:31:18,410 --> 00:31:21,780 Hivyo wakati i ni chini ya 10, magazeti ya nyota, 780 00:31:21,780 --> 00:31:23,220 kisha increment i. 781 00:31:23,220 --> 00:31:25,680 Na njia wakati kitanzi matendo kwamba haraka kama wewe hit 782 00:31:25,680 --> 00:31:29,630 chini ya kitanzi, ambayo katika kesi hii inaonekana kama mstari wa 10, 783 00:31:29,630 --> 00:31:32,880 itakavyo kwenda nyuma ya mstari 6, ambapo kiwango 784 00:31:32,880 --> 00:31:34,400 sharti kuwa checked tena. 785 00:31:34,400 --> 00:31:37,500 Na kama i bado ni chini ya 10, tutaweza kufanya mistari 8 na 786 00:31:37,500 --> 00:31:41,250 kisha 9, basi tutaweza hit 10, na kwenda nyuma ya 6, tena na 787 00:31:41,250 --> 00:31:45,580 tena na tena na tena, hivyo muda mrefu kama i ni chini ya 10. 788 00:31:45,580 --> 00:31:47,860 Hivyo hebu kuendesha upya kufanya hapa. 789 00:31:47,860 --> 00:31:48,940 >> Okay, tumekuwa compiled sawa. 790 00:31:48,940 --> 00:31:50,300 Hebu re-kukimbia kitanzi. 791 00:31:50,300 --> 00:31:52,620 Na sasa ni kweli inaonekana kazi. 792 00:31:52,620 --> 00:31:55,100 Hivyo pluses na minuses hapa? 793 00:31:55,100 --> 00:31:58,910 Naam, hivyo kuna kweli si wote wa PLO - 794 00:31:58,910 --> 00:31:59,420 cute. 795 00:31:59,420 --> 00:32:01,870 Haki wote, kwamba ilikuwa - ah, kwamba ilikuwa ajali. 796 00:32:01,870 --> 00:32:05,200 Haki zote, hivyo hebu kurejea kwa kitanzi. 797 00:32:05,200 --> 00:32:07,530 Hivyo kwa matanzi ni nzuri kwa sababu wao ni super wazi. 798 00:32:07,530 --> 00:32:09,720 Na hata kama wao ni kidogo clunky kuandika, ni 799 00:32:09,720 --> 00:32:11,500 nguvu sana na inaruhusu kufanya 800 00:32:11,500 --> 00:32:12,980 nyingi mambo mara moja. 801 00:32:12,980 --> 00:32:16,240 Wakati matanzi hawaonekani kuwa na kiasi kubwa ya thamani tu 802 00:32:16,240 --> 00:32:18,500 lakini, kwa sababu anahisi kama sisi tu kufanya kazi zaidi. 803 00:32:18,500 --> 00:32:20,670 Tuna kuweka initialization hapa juu, 804 00:32:20,670 --> 00:32:23,480 update chini hapa, na tunahitaji kukumbuka kufanya yote. 805 00:32:23,480 --> 00:32:26,260 Hivyo tutaweza kuona katika wakati kuwa wakati matanzi kweli kuwakopesha 806 00:32:26,260 --> 00:32:29,380 wenyewe tu mazingira tofauti, tofauti data 807 00:32:29,380 --> 00:32:33,900 miundo kama orodha na meza hash, mambo tutaweza kupata 808 00:32:33,900 --> 00:32:34,970 katikati ya muhula. 809 00:32:34,970 --> 00:32:37,900 Lakini kwa sasa, kujua kwamba kuna aina hii ya tatu inajulikana kama do- 810 00:32:37,900 --> 00:32:38,480 wakati kitanzi. 811 00:32:38,480 --> 00:32:39,540 Na tumeona hii kwa ufupi. 812 00:32:39,540 --> 00:32:41,830 Na hii inaweza kuwa na manufaa kwa super pset 1. 813 00:32:41,830 --> 00:32:45,570 Wakati wowote unataka kufanya kitu fulani na kisha kuangalia kama 814 00:32:45,570 --> 00:32:48,940 user kushirikiana, na kama hakuwa, kufanya hivyo tena, kufanya- 815 00:32:48,940 --> 00:32:51,460 wakati kitanzi kunafaa kwa kuwa aina ya mantiki. 816 00:32:51,460 --> 00:32:55,640 Kwa sababu kama kuagiza kutoka juu hadi chini hapa unaonyesha, 817 00:32:55,640 --> 00:32:57,750 je, ina maana halisi kufanya hili. 818 00:32:57,750 --> 00:32:59,830 Na kufanya hivyo tena na tena, nini kinaweza kuwa ni nani? 819 00:32:59,830 --> 00:33:03,000 Labda maana wito GetInt au GetString na kisha 820 00:33:03,000 --> 00:33:05,830 kuangalia thamani ya GetInt au GetString na kisha yelling 821 00:33:05,830 --> 00:33:08,260 saa mtumiaji kama wao si kushirikiana kwa kuwauliza 822 00:33:08,260 --> 00:33:10,100 tena na tena na tena. 823 00:33:10,100 --> 00:33:11,730 Ambapo unataka kufanya kitu mara moja, 824 00:33:11,730 --> 00:33:13,210 kisha kuangalia baadhi ya hali. 825 00:33:13,210 --> 00:33:14,110 >> Basi hebu jaribu hii. 826 00:33:14,110 --> 00:33:17,130 Hebu kweli mabadiliko ya hii sasa kwa kitanzi do-wakati. 827 00:33:17,130 --> 00:33:18,830 Na mimi nina kwenda mbele na kufanya yafuatayo. 828 00:33:18,830 --> 00:33:21,830 Hivyo kufanya yafuatayo. 829 00:33:21,830 --> 00:33:26,870 Hebu kufanya int i = GetInt (); lakini hebu kwanza kuwaambia mtumiaji 830 00:33:26,870 --> 00:33:27,410 nini cha kufanya. 831 00:33:27,410 --> 00:33:29,050 Hivyo tofauti kidogo wakati huu. 832 00:33:29,050 --> 00:33:31,270 "Nipe int". 833 00:33:31,270 --> 00:33:32,910 Hivyo mimi itabidi kutumia printf kwa ajili hiyo. 834 00:33:32,910 --> 00:33:35,740 Na sasa mimi nina kwenda chini hapa, na mimi naenda kufanya hii 835 00:33:35,740 --> 00:33:41,520 wakati i ni, hebu sema, kubwa kuliko - 836 00:33:41,520 --> 00:33:47,540 hebu angalia, i ni, hebu sema, chini ya 0, au i ni 837 00:33:47,540 --> 00:33:48,730 zaidi ya 10. 838 00:33:48,730 --> 00:33:51,810 Kwa maneno mengine, nataka namba 1-9, tu 839 00:33:51,810 --> 00:33:52,720 kiholela. 840 00:33:52,720 --> 00:33:55,290 Basi, mimi nina kutumia pamoja Boolean kujieleza hapa 841 00:33:55,290 --> 00:33:59,930 kuhakikisha kwamba i ni chini ya 0 au zaidi ya 10, ambapo 842 00:33:59,930 --> 00:34:02,530 kesi Nitafanya hivi kitanzi hapa tena. 843 00:34:02,530 --> 00:34:04,400 Hivyo tena, kufanya hili - 844 00:34:04,400 --> 00:34:08,480 wakati i ni chini ya 0 au i ni mkubwa kuliko 10. 845 00:34:08,480 --> 00:34:11,440 >> Hivyo sasa hebu kwenda mbele na kufanya hivyo mara moja tumefanya kwamba. 846 00:34:11,440 --> 00:34:13,270 Hebu tu kufanya haraka sanity hundi. 847 00:34:13,270 --> 00:34:18,929 printf ("Asante, i ni% d", i). 848 00:34:18,929 --> 00:34:21,350 Hivyo mpango huu rahisi anauliza mtumiaji kwa int, 849 00:34:21,350 --> 00:34:24,000 hufanya uhakika ni ndani ya baadhi mbalimbali, 1-9 jumuishi, 850 00:34:24,000 --> 00:34:26,280 na kisha shukrani mtumiaji kwa kuwakumbusha nini wao tu 851 00:34:26,280 --> 00:34:27,940 typed katika, kama hundi kidogo sanity. 852 00:34:27,940 --> 00:34:30,659 Lakini hebu angalia kama hii kazi kama ilivyokusudiwa. 853 00:34:30,659 --> 00:34:34,533 Hebu kwenda kichwa chini hapa na kuendesha upya kufanya kitanzi. 854 00:34:34,533 --> 00:34:35,350 Hmm. 855 00:34:35,350 --> 00:34:38,600 "Matumizi ya kitambulisho Undeclared 'i'". Hiyo ni ya ajabu. 856 00:34:38,600 --> 00:34:41,509 Nilidhani sisi kutatuliwa kwamba. 857 00:34:45,489 --> 00:34:47,560 Same dalili lakini code tofauti. 858 00:34:47,560 --> 00:34:47,899 Yeah? 859 00:34:47,899 --> 00:34:50,191 Watazamaji: [inaudible] ndani ya wawili, tuna 860 00:34:50,191 --> 00:34:52,639 [Inaudible]. 861 00:34:52,639 --> 00:34:53,260 >> DAVID J. Malan: Hasa. 862 00:34:53,260 --> 00:34:55,989 Hivyo hii kweli unatuongoza mada inayojulikana kama wigo. 863 00:34:55,989 --> 00:34:59,350 Ni zinageuka kuwa C, tena, ni kweli inachukua wewe literally. 864 00:34:59,350 --> 00:35:02,970 Na kama wewe kufanya kitu kama hii ambapo wewe kutangaza int 865 00:35:02,970 --> 00:35:06,120 na kisha hawawajui ni baadhi ya thamani, lakini wewe kufanya hivyo ndani ya 866 00:35:06,120 --> 00:35:09,840 jozi ya braces curly, nini C gani ni inadhaniwa kuwa wewe 867 00:35:09,840 --> 00:35:14,800 nataka tu bits wale 32 inayojulikana kama i kuwepo ndani ya 868 00:35:14,800 --> 00:35:18,200 muktadha wa braces wale curly, ndani ya muktadha ya mistari 869 00:35:18,200 --> 00:35:22,420 6 kupitia 9. Hivyo i ni alitangaza, na ni kwa ajili 870 00:35:22,420 --> 00:35:26,530 thamani katika mstari wa 8, lakini kwa haraka kama wewe kupata nje ya 871 00:35:26,530 --> 00:35:30,270 mstari 9 chini brace curly, i ni tena katika 872 00:35:30,270 --> 00:35:31,910 upeo, hivyo kusema. 873 00:35:31,910 --> 00:35:35,030 S-C-O-P-E. Ni tena katika muktadha sahihi. 874 00:35:35,030 --> 00:35:37,940 Hivyo sasa hakuna i, hivyo ni kama ingawa tulikuwa hata 875 00:35:37,940 --> 00:35:38,770 amekiri kuwa ni wakati wote. 876 00:35:38,770 --> 00:35:41,520 >> Basi nini fix kisha kwa ajili ya kitu kama hii, kama 877 00:35:41,520 --> 00:35:44,300 Sababu ni kwamba i ni alitangaza ndani ya braces curly, ambayo 878 00:35:44,300 --> 00:35:45,120 inaonekana mbaya? 879 00:35:45,120 --> 00:35:45,410 Hapa? 880 00:35:45,410 --> 00:35:46,820 Watazamaji: [inaudible]. 881 00:35:46,820 --> 00:35:47,150 DAVID J. Malan: Yeah. 882 00:35:47,150 --> 00:35:48,710 Hivyo tunaweza initialize ni nje. 883 00:35:48,710 --> 00:35:53,530 Hivyo basi mimi kwenda mbele na kufuta sehemu tamko ambapo 884 00:35:53,530 --> 00:35:55,820 Mimi kutaja aina, na napenda kufanya hivyo hapa. 885 00:35:55,820 --> 00:36:00,220 Hivyo katika mstari 5, sasa anasema "Nipe int." Simu yake i. 886 00:36:00,220 --> 00:36:03,400 Angalia katika mstari 9, sitaki kufanya hivyo, kwa sababu mimi 887 00:36:03,400 --> 00:36:04,830 tayari wana bits 32. 888 00:36:04,830 --> 00:36:06,140 Sitaki kuuliza kompyuta kwa ajili ya 889 00:36:06,140 --> 00:36:07,630 tofauti 32 bits. 890 00:36:07,630 --> 00:36:09,850 Nataka kutumia hizo hizo bits 32. 891 00:36:09,850 --> 00:36:13,190 Na sasa kwa sababu i ni alitangaza katika mstari 5, bado legit 892 00:36:13,190 --> 00:36:16,550 kutumia katika mstari 11 na line 12. 893 00:36:16,550 --> 00:36:19,310 >> Hivyo basi mimi kujaribu recompile hii na kuona 894 00:36:19,310 --> 00:36:20,490 ikiwa Clang ataacha kunguruma. 895 00:36:20,490 --> 00:36:22,380 kufanya kitanzi. 896 00:36:22,380 --> 00:36:25,470 Hivyo sasa ni "thabiti tamko la kazi 897 00:36:25,470 --> 00:36:29,880 'GetInt' ni batili katika C99 ". Nini ni kwamba? 898 00:36:29,880 --> 00:36:30,400 Yeah? 899 00:36:30,400 --> 00:36:32,330 Watazamaji: [inaudible]. 900 00:36:32,330 --> 00:36:32,690 DAVID J. Malan: Yeah. 901 00:36:32,690 --> 00:36:35,520 Hivyo sasa kwamba mimi nina kweli kwa kutumia GetInt, hii si kitu 902 00:36:35,520 --> 00:36:38,190 kwamba tu kuja na C. Hii inakuja kutoka CS50. 903 00:36:38,190 --> 00:36:39,890 Hivyo tunahitaji hii hapa. 904 00:36:39,890 --> 00:36:41,450 Na napenda kurejea chini haraka 905 00:36:41,450 --> 00:36:43,500 hapa na kuendesha upya kufanya. 906 00:36:43,500 --> 00:36:44,160 Okay, hatimaye. 907 00:36:44,160 --> 00:36:46,270 Sasa tumekuwa kutatuliwa kwamba na makosa mengine. 908 00:36:46,270 --> 00:36:48,930 Hebu sasa kukimbia kitanzi na kuona nini kinatokea. 909 00:36:48,930 --> 00:36:51,740 "Nipe int." Nitapatia ni 11. 910 00:36:51,740 --> 00:36:53,100 Nitapatia ni -1. 911 00:36:53,100 --> 00:36:54,470 Mimi nitakupa hiyo foo. 912 00:36:54,470 --> 00:36:56,080 Mimi itabidi kuwapa 5. 913 00:36:56,080 --> 00:36:57,450 Na sasa ni kweli kazi. 914 00:36:57,450 --> 00:36:59,410 Lakini haraka iliyopita kwa sababu hapa. 915 00:36:59,410 --> 00:37:02,800 Kwa nini alifanya hivyo wanasema retry moja ya nyakati hizi lakini nipe 916 00:37:02,800 --> 00:37:03,920 int nyingine mara tatu? 917 00:37:03,920 --> 00:37:05,500 Kwa nini ni tabia tofauti? 918 00:37:05,500 --> 00:37:06,980 Watazamaji: Nikatoa ni kamba. 919 00:37:06,980 --> 00:37:07,830 DAVID J. Malan: Samahani? 920 00:37:07,830 --> 00:37:08,570 Watazamaji: Wewe akampa kamba. 921 00:37:08,570 --> 00:37:08,990 DAVID J. Malan: Yeah. 922 00:37:08,990 --> 00:37:11,450 Hivyo sisi akampa string katika jaribio hili la tatu, 923 00:37:11,450 --> 00:37:12,490 wakati mimi typed foo. 924 00:37:12,490 --> 00:37:13,200 Foo ni kamba. 925 00:37:13,200 --> 00:37:14,340 Ni wazi si int. 926 00:37:14,340 --> 00:37:17,500 Na njia ambayo CS50 imetekeleza GetInt ni kwamba sisi 927 00:37:17,500 --> 00:37:20,330 wala kuangalia kama kitu fulani ni chini ya 0 au zaidi ya 10 928 00:37:20,330 --> 00:37:22,260 kwa ajili yenu, kwa sababu ni jinsi gani sisi kujua mapema ni aina gani ya 929 00:37:22,260 --> 00:37:23,130 int unataka? 930 00:37:23,130 --> 00:37:25,880 Lakini tunaweza minimally kuangalia kwenu, mtumiaji angalau 931 00:37:25,880 --> 00:37:26,730 aina integer? 932 00:37:26,730 --> 00:37:30,500 Na kama hakuwa, sisi yell katika user kwa kuandika "retry" juu ya 933 00:37:30,500 --> 00:37:31,440 screen. 934 00:37:31,440 --> 00:37:34,210 >> Hivyo basi, tuna mpango wa hiyo looping. Sawa. 935 00:37:34,210 --> 00:37:37,070 Sasa, ambayo kati ya hayo ni aina ya kujenga bora zaidi? 936 00:37:37,070 --> 00:37:39,060 Hivyo hii ni wapi mambo kuanza kupata messy kidogo, 937 00:37:39,060 --> 00:37:42,360 ukweli kwamba una kukumbuka kutangaza variable hapa 938 00:37:42,360 --> 00:37:44,630 kama unataka kutumia ndani ya baadhi ya 939 00:37:44,630 --> 00:37:46,460 curly braces na nje. 940 00:37:46,460 --> 00:37:48,490 Lakini hata kama hii inaonekana kidogo cryptic kwa mara ya kwanza 941 00:37:48,490 --> 00:37:50,750 mtazamo, tu tena, kumbuka mantiki rahisi. 942 00:37:50,750 --> 00:37:54,630 Ili kutumia kitu chochote katika C, kama ni kazi au 943 00:37:54,630 --> 00:37:57,680 ni kutofautiana, una kwa pamoja kama ni kazi 944 00:37:57,680 --> 00:37:59,770 katika maktaba baadhi, au unahitaji kuyatangaza. 945 00:37:59,770 --> 00:38:02,405 Lakini sasa unahitaji kuwa na ziada kukumbuka ya ukweli kwamba 946 00:38:02,405 --> 00:38:04,940 wewe ni kutangaza katika wigo wa kulia. 947 00:38:04,940 --> 00:38:08,150 Wewe si kuweka pia kukazwa ndani ya mabano. 948 00:38:08,150 --> 00:38:09,410 >> Hivyo basi mimi kwa kweli unaendelea nyuma. 949 00:38:09,410 --> 00:38:12,660 Kama sisi kurudi nyuma kwa yetu kwa mfano kutoka mapema, na mimi kwenda 950 00:38:12,660 --> 00:38:19,245 nyuma kwa int, int i = 0; i <10; i + +, na mimi 951 00:38:19,245 --> 00:38:26,370 kufanya nyota printf, kama hivi, na kisha Paren karibu, na sasa 952 00:38:26,370 --> 00:38:30,410 printf i ni sasa - 953 00:38:30,410 --> 00:38:33,500 kulingana na mantiki hiyo hiyo, itakuwaje wakati mimi kujaribu 954 00:38:33,500 --> 00:38:35,500 kukusanya mpango huu? 955 00:38:35,500 --> 00:38:36,790 Watazamaji: batili kitambulisho. 956 00:38:36,790 --> 00:38:38,560 DAVID J. Malan: Hivyo ni mwingine kitambulisho batili, 957 00:38:38,560 --> 00:38:39,470 Undeclared kitambulisho. 958 00:38:39,470 --> 00:38:41,810 Sasa, sababu ni tofauti kidogo. 959 00:38:41,810 --> 00:38:44,370 Kuna ni wazi hakuna braces curly hapa, lakini sawa 960 00:38:44,370 --> 00:38:46,790 wazo, hadithi hiyo ya upeo inatumika. 961 00:38:46,790 --> 00:38:50,340 Kama una alitangaza variable kama i ndani ya 962 00:38:50,340 --> 00:38:53,960 kwa kitanzi, hata kama si wazi imeandikwa curly 963 00:38:53,960 --> 00:38:56,980 braces, kufikiri wao kiakili kama bado kuwa pale, ambayo 964 00:38:56,980 --> 00:39:00,310 kesi i ni halali tu ndani ya kwa kitanzi. 965 00:39:00,310 --> 00:39:03,080 Si halali mara moja kupata line ya pili, ambayo katika 966 00:39:03,080 --> 00:39:05,090 kesi hii ni sasa 10. 967 00:39:05,090 --> 00:39:09,060 Hivyo tu masuala machache ya upeo na kama. 968 00:39:09,060 --> 00:39:12,620 Haki zote, maswali yoyote? 969 00:39:12,620 --> 00:39:15,310 >> Haki zote, hivyo hii ni aina ya mpango trivial kidogo, 970 00:39:15,310 --> 00:39:17,450 uchapishaji tu nyota ndogo ndogo. 971 00:39:17,450 --> 00:39:20,400 Lakini hebu angalia kama wewe kumbuka hii wimbo hapa. 972 00:39:20,400 --> 00:39:22,530 Hii ni wimbo incredibly annoying watoto wangeimba juu ya 973 00:39:22,530 --> 00:39:23,550 basi la shule na kama. 974 00:39:23,550 --> 00:39:25,990 Lakini nini ni nzuri juu yake ni kwamba hii ina cyclicity, 975 00:39:25,990 --> 00:39:27,910 ambapo ni "99 chupa ya bia juu ya ukuta, 976 00:39:27,910 --> 00:39:28,520 99 chupa ya bia. 977 00:39:28,520 --> 00:39:31,030 Kuchukua moja chini, kupita ni kuzunguka, chupa 98 za bia juu ya 978 00:39:31,030 --> 00:39:34,330 ukuta ". Na kisha akarudisha wimbo 97, kisha 96, basi 979 00:39:34,330 --> 00:39:38,040 95, kisha 94, njia yote chini 0 kama kweli got kwamba 980 00:39:38,040 --> 00:39:38,920 mbali juu ya basi. 981 00:39:38,920 --> 00:39:41,960 Hivyo hii ni programu nzuri ya aina ya kutekeleza, kwa sababu yangu 982 00:39:41,960 --> 00:39:43,650 Mungu, kama unaweza tu kutekeleza hili na wachache 983 00:39:43,650 --> 00:39:46,660 mstari wa kanuni, unaweza mate nje lyrics nzima na hii 984 00:39:46,660 --> 00:39:48,240 wimbo kabisa haraka. 985 00:39:48,240 --> 00:39:50,420 Lakini njiani, tunaweza kuanza kwa sasa tease mbali baadhi 986 00:39:50,420 --> 00:39:52,460 ya haya ya msingi constructs looping na sasa pia 987 00:39:52,460 --> 00:39:55,830 kuanzisha kazi ya kwamba sisi kuandika wenyewe, kurudi maadili 988 00:39:55,830 --> 00:39:57,020 kwamba sisi kupita kote. 989 00:39:57,020 --> 00:39:58,910 Lakini kwanza, kwa nini sio sisi kwenda mbele na kuchukua yetu dakika tano 990 00:39:58,910 --> 00:39:59,320 kuvunja hapa? 991 00:39:59,320 --> 00:40:01,480 Na wakati sisi kupata nyuma, sisi kuimba wimbo huu. 992 00:40:05,680 --> 00:40:08,760 >> Haki zote, hivyo sisi ni nyuma. 993 00:40:08,760 --> 00:40:11,850 Na wakati mimi kusema sisi sasa kuimba wimbo huu, I mean 994 00:40:11,850 --> 00:40:13,250 programmatically, si kwa maneno. 995 00:40:13,250 --> 00:40:19,370 Hivyo hapa tuna beer1.c, ambayo ni moja ya utekelezaji wa hii 996 00:40:19,370 --> 00:40:20,580 hasa wimbo. 997 00:40:20,580 --> 00:40:23,110 Na tu kuwa wazi, kwa wale unfamiliar na kile 998 00:40:23,110 --> 00:40:24,460 jambo hili inaonekana kama, napenda kwenda mbele 999 00:40:24,460 --> 00:40:27,070 na kufanya beer1, Ingiza. 1000 00:40:27,070 --> 00:40:30,400 Sasa basi mimi kukimbia beer1, na kile tutaweza kuona - ni wangapi chupa 1001 00:40:30,400 --> 00:40:31,140 ya bia kutakuwa? 1002 00:40:31,140 --> 00:40:33,240 Mimi itabidi aina katika 99, kama wimbo anasema. 1003 00:40:33,240 --> 00:40:34,040 Kuingia. 1004 00:40:34,040 --> 00:40:35,650 Na sasa kama sisi kitabu kupitia - 1005 00:40:35,650 --> 00:40:38,280 oops - kama sisi kitabu kupitia haya yote, tutaweza kuona kwamba 1006 00:40:38,280 --> 00:40:41,350 hii kweli alifanya kuimba wimbo mzima. 1007 00:40:44,050 --> 00:40:44,540 Subiri dakika. 1008 00:40:44,540 --> 00:40:46,240 Bar yangu kitabu kidogo messed up. 1009 00:40:46,240 --> 00:40:47,940 Hebu kutumia dirisha kubwa. 1010 00:40:47,940 --> 00:40:53,500 Hivyo beer1, 99, kuna sisi kwenda. 1011 00:40:53,500 --> 00:40:56,420 Hivyo hapa tuna wimbo mzima, kuimba kwa kasi zaidi na 1012 00:40:56,420 --> 00:40:58,450 kompyuta kuliko wangeweza kwa sisi. 1013 00:40:58,450 --> 00:41:00,340 Hivyo taarifa, ingawa, asili mzunguko hapa. 1014 00:41:00,340 --> 00:41:03,380 Ni anasema 99, kisha 99, basi, "kuchukua moja chini, kupita 1015 00:41:03,380 --> 00:41:04,740 kote, "basi 98. 1016 00:41:04,740 --> 00:41:06,640 Na sasa ni kurudiwa tena na tena. 1017 00:41:06,640 --> 00:41:08,840 >> Hivyo hii ni fursa nzuri kwa kweli baadhi ya aina ya 1018 00:41:08,840 --> 00:41:10,400 looping kujenga. 1019 00:41:10,400 --> 00:41:12,950 Ona kwamba mimi nina aina ya kukata kona hapa. 1020 00:41:12,950 --> 00:41:15,960 Ona kwamba mimi kusema "chupa ya bia 98 juu ya ukuta, 1021 00:41:15,960 --> 00:41:19,010 97 chupa ya bia juu ya ukuta, "na kwamba ilikuwa tu hivyo 1022 00:41:19,010 --> 00:41:21,640 kwamba wakati sisi kupata chupa moja ya bia, sina 1023 00:41:21,640 --> 00:41:23,300 na wasiwasi kuhusu sarufi ya Kiingereza. 1024 00:41:23,300 --> 00:41:25,790 Lakini tunaweza pia kurekebisha hili kwa kidogo ya kama 1025 00:41:25,790 --> 00:41:26,910 hali, labda. 1026 00:41:26,910 --> 00:41:30,110 Kama idadi hii ni umoja, kwenda mbele na kusema "chupa", 1027 00:41:30,110 --> 00:41:31,840 vinginevyo kama ni wingi, kusema "chupa". 1028 00:41:31,840 --> 00:41:34,150 Lakini kwa sasa, mimi nina kabisa kukata kona. 1029 00:41:34,150 --> 00:41:35,520 Basi hebu angalia kile tulichopata hapa. 1030 00:41:35,520 --> 00:41:37,150 Hivyo sisi tumepewa baadhi ya comments saa ya juu. 1031 00:41:37,150 --> 00:41:39,450 Mimi pamoja na maktaba hizi mbili, kama 1032 00:41:39,450 --> 00:41:41,140 tumekuwa kawaida imekuwa. 1033 00:41:41,140 --> 00:41:43,610 Na sasa basi mimi kitabu chini kwanza 1034 00:41:43,610 --> 00:41:44,990 halisi mstari wa kanuni. 1035 00:41:44,990 --> 00:41:47,020 Line 17 mateke mbali kuu. 1036 00:41:47,020 --> 00:41:50,610 Line 21 na 20 ina ngapi chupa ya bia kutakuwa? 1037 00:41:50,610 --> 00:41:52,060 Na kisha mimi wito GetInt. 1038 00:41:52,060 --> 00:41:53,800 Na sasa mimi kuwa na kidogo ya hundi sanity. 1039 00:41:53,800 --> 00:41:57,030 >> Hivyo hii ni mkataba kwamba tutaweza sasa kuanza kupitisha kwa 1040 00:41:57,030 --> 00:41:59,620 zaidi strikt kuangalia pembejeo mtumiaji. 1041 00:41:59,620 --> 00:42:01,710 Wakati mwingine wewe tu hawataki kuwachochea tena 1042 00:42:01,710 --> 00:42:02,630 na tena na tena. 1043 00:42:02,630 --> 00:42:05,620 Kama mtumiaji screws up na haina kushirikiana, faini. 1044 00:42:05,620 --> 00:42:07,430 Quit na si tu kukabiliana nao. 1045 00:42:07,430 --> 00:42:08,990 Na hivyo ndiyo nini mimi kufanya hapa. 1046 00:42:08,990 --> 00:42:12,520 Kama n ni chini ya 1, mimi tu kwenda yell katika user, 1047 00:42:12,520 --> 00:42:14,330 "Samahani, kwamba hakutakuwa na maana." Na kisha mimi naenda 1048 00:42:14,330 --> 00:42:16,650 kiholela kurudi 1. 1049 00:42:16,650 --> 00:42:18,550 Hivyo tena, hii ni mkataba kupata kutumika. 1050 00:42:18,550 --> 00:42:19,850 Kwa sasa, kuchukua ni juu ya imani. 1051 00:42:19,850 --> 00:42:22,700 Lakini hadi sasa, tumekuwa daima kurudi 0, kwa sababu 1052 00:42:22,700 --> 00:42:25,204 tumekuwa alisema kurudi 0 inaashiria nini? 1053 00:42:25,204 --> 00:42:26,000 Watazamaji: Mafanikio. 1054 00:42:26,000 --> 00:42:27,320 DAVID J. Malan: Mafanikio, kwamba ni yote. 1055 00:42:27,320 --> 00:42:29,740 Hivyo sasa kwamba sisi ni hatimaye kuanza kufikiri juu ya 1056 00:42:29,740 --> 00:42:31,330 yasiyo ya mafanikio - 1057 00:42:31,330 --> 00:42:33,760 kwa maneno mengine, kesi kona, hali ya ufisadi - 1058 00:42:33,760 --> 00:42:37,520 sasa mimi kuwa na usambazaji usio, au angalau bilioni nne 1059 00:42:37,520 --> 00:42:39,790 inawezekana mambo ambayo yanaweza kwenda vibaya katika mipango yangu. 1060 00:42:39,790 --> 00:42:42,300 Na naweza kuanza assigning yao namba ya mtu binafsi. 1061 00:42:42,300 --> 00:42:44,340 Sasa, kwa ujumla yatosha tu kurudi 1062 00:42:44,340 --> 00:42:45,730 kitu kingine zaidi ya 0. 1063 00:42:45,730 --> 00:42:48,040 Hivyo sisi ni kwenda tu kurudi 1 kwa sasa. 1064 00:42:48,040 --> 00:42:51,440 Lakini sababu ya kurudisha 1 ni kwamba haraka kama wewe kurudi 1065 00:42:51,440 --> 00:42:55,110 1, nadhani nini kinatokea kwa mapumziko ya mpango wa? 1066 00:42:55,110 --> 00:42:55,720 Ni ataacha. 1067 00:42:55,720 --> 00:42:56,560 Hiyo ni. 1068 00:42:56,560 --> 00:42:59,150 Hivyo ukweli kwamba mimi nina kurudi 1 ni ufanisi 1069 00:42:59,150 --> 00:43:02,950 Mkato wa umeme utekelezaji mpango huu ili kwamba 1070 00:43:02,950 --> 00:43:06,780 kitu chini ya mstari wa 27 itaendelea kutekeleza. 1071 00:43:06,780 --> 00:43:09,210 Haraka kama anarudi kuu, kwamba ni yake. 1072 00:43:09,210 --> 00:43:13,160 >> Haki ya wote, hivyo kama mtumiaji gani kushirikiana na sisi kufikia mstari 30 1073 00:43:13,160 --> 00:43:15,680 kwa sababu wao typed katika idadi halali, hapa ni yangu 1074 00:43:15,680 --> 00:43:16,990 utekelezaji wa wimbo huu. 1075 00:43:16,990 --> 00:43:19,050 Basi, mimi kwanza magazeti nje tabia newline, tu kwa 1076 00:43:19,050 --> 00:43:19,880 aesthetics. 1077 00:43:19,880 --> 00:43:21,500 Mimi sasa kwa kitanzi. 1078 00:43:21,500 --> 00:43:22,930 Na taarifa mimi nina kufanya mambo katika kidogo 1079 00:43:22,930 --> 00:43:23,880 mwelekeo tofauti. 1080 00:43:23,880 --> 00:43:26,210 Sina kufanya chini ya, sijui kufanya + +. 1081 00:43:26,210 --> 00:43:30,660 Naweza kusema badala initialize variable i, kuweka sawa kwa 1082 00:43:30,660 --> 00:43:35,080 n, idadi ya mtumiaji typed katika, basi kufanya yafuatayo, hivyo 1083 00:43:35,080 --> 00:43:39,590 muda mrefu kama i ni mkubwa kuliko 0, kisha i - 1084 00:43:39,590 --> 00:43:42,070 mara moja ya kumaliza moja iteration ya kitanzi hii. 1085 00:43:42,070 --> 00:43:44,310 Hivyo tunaweza kuhesabu chini ya kutumia kwa kitanzi kama vizuri. 1086 00:43:44,310 --> 00:43:47,520 Sasa, hii ni kiasi pretty wiki moja ya mambo sasa, pamoja na printf. 1087 00:43:47,520 --> 00:43:51,770 Hivyo magazeti "% d chupa ya bia juu ya ukuta." Print "% d 1088 00:43:51,770 --> 00:43:54,990 chupa ya bia. "" Chukua moja chini, kupita ni kuzunguka. "Print 1089 00:43:54,990 --> 00:43:58,880 "% D chupa ya bia juu ya ukuta." Hivyo ni bado% d, lakini 1090 00:43:58,880 --> 00:44:02,770 taarifa kwamba hoja printf ni kubadilisha. 1091 00:44:02,770 --> 00:44:05,840 Baada ya comma, nina i, kwa sababu mimi nataka kusema 99. 1092 00:44:05,840 --> 00:44:08,590 Baada ya comma hii, nina i, kwa sababu mimi nataka kusema 99. 1093 00:44:08,590 --> 00:44:14,030 Baada ya comma hii, nina i - 1, kwa sababu nataka kusema 98 katika 1094 00:44:14,030 --> 00:44:16,260 hii iteration kwanza, na kadhalika. 1095 00:44:16,260 --> 00:44:18,520 Na sasa hapa chini, mimi tu na baadhi ya kijinga kidogo remark. 1096 00:44:18,520 --> 00:44:22,270 Na kisha mstari 42, mimi kurudi 0 na mkataba, akionyesha kwamba 1097 00:44:22,270 --> 00:44:23,650 kila kitu ni sawa. 1098 00:44:23,650 --> 00:44:24,490 >> Basi nini kama mimi goofed? 1099 00:44:24,490 --> 00:44:26,350 Nini kinaweza makosa ya kawaida hapa kuwa? 1100 00:44:26,350 --> 00:44:29,200 Naam, nini kama mimi ajali alisema vizuri, sijui wanataka kuhesabu 1101 00:44:29,200 --> 00:44:31,640 chini ya 0, nataka 0 chupa ya bia juu ya ukuta? 1102 00:44:31,640 --> 00:44:34,620 Kwa hiyo nasema, i ni mkubwa kuliko au sawa na 0. 1103 00:44:34,620 --> 00:44:38,920 Nini kinaendelea kuwa dalili kwamba mimi sasa kuona kama mimi recompile 1104 00:44:38,920 --> 00:44:41,173 beer1 na kukimbia? 1105 00:44:41,173 --> 00:44:42,120 Watazamaji: Hasi. 1106 00:44:42,120 --> 00:44:43,590 DAVID J. Malan: Yeah, ni gonna kwenda hasi. 1107 00:44:43,590 --> 00:44:45,950 Hili ni kosa mbali-na-moja, incredibly 1108 00:44:45,950 --> 00:44:47,270 makosa ya kawaida ya kufanya. 1109 00:44:47,270 --> 00:44:48,960 Hebu kweli kwenda nyuma ya dirisha terminal na kufanya hivyo 1110 00:44:48,960 --> 00:44:50,620 hapa, ili tuweze kuona zaidi kwa wakati. 1111 00:44:50,620 --> 00:44:53,280 Kuingia, chupa 99 ya bia. 1112 00:44:53,280 --> 00:44:56,580 Karibu, lakini sisi akaenda milele hivyo kidogo mbali sana. 1113 00:44:56,580 --> 00:45:00,500 Sisi kuimba wimbo mbali mno chini, kwamba vile sisi sasa hit 1114 00:45:00,500 --> 00:45:01,510 hasi idadi. 1115 00:45:01,510 --> 00:45:03,680 Hivyo haina kabisa kazi. 1116 00:45:03,680 --> 00:45:06,450 >> Haki ya wote, hivyo tunaweza urahisi fix kwamba kwa kurejea 1117 00:45:06,450 --> 00:45:07,650 njia mara moja mara. 1118 00:45:07,650 --> 00:45:10,360 Lakini nini ni baadhi fursa kwa sasa 1119 00:45:10,360 --> 00:45:11,190 kuboresha? 1120 00:45:11,190 --> 00:45:17,200 Vizuri, basi mimi kufungua beer2.c na kitabu hapa chini na kuchukua 1121 00:45:17,200 --> 00:45:19,310 kuangalia toleo hili. 1122 00:45:19,310 --> 00:45:21,370 Nini jambo la kwanza kwamba anaruka nje saa wewe kama tofauti 1123 00:45:21,370 --> 00:45:23,715 katika toleo hili hapa? 1124 00:45:23,715 --> 00:45:24,190 Watazamaji: [inaudible]. 1125 00:45:24,190 --> 00:45:26,510 DAVID J. Malan: Yeah, hivyo hakuna zaidi i, kwa sababu ilitokea 1126 00:45:26,510 --> 00:45:29,350 mimi unajua nini, Mimi nauliza mtumiaji kwa ajili ya n, na basi mimi nina 1127 00:45:29,350 --> 00:45:33,580 kuweka i sawa na n, na kisha mimi nina i kubadilisha, lakini nina kamwe 1128 00:45:33,580 --> 00:45:34,590 kugusa n tena. 1129 00:45:34,590 --> 00:45:37,390 Basi nini heck ilikuwa pa wewe kugawa mwingine 32 1130 00:45:37,390 --> 00:45:45,210 bits kuitwa i tu ili niweze kuwa na variable tofauti? 1131 00:45:45,210 --> 00:45:47,960 Hivyo katika kesi hii, mimi aina ya kutambuliwa kwamba unnecessary 1132 00:45:47,960 --> 00:45:49,190 kubuni kipengele. 1133 00:45:49,190 --> 00:45:52,730 Na mimi sasa kwenda kusema wakati n, ni mkubwa kuliko 0, kwenda 1134 00:45:52,730 --> 00:45:56,180 mbele na magazeti wimbo huo, kupita n kwa printf kama 1135 00:45:56,180 --> 00:46:00,210 pili hoja, na n - 1 kama hoja ya pili chini hapa. 1136 00:46:00,210 --> 00:46:02,930 Na kisha juu ya kila iteration ya kitanzi hii, kwenda mbele na tu 1137 00:46:02,930 --> 00:46:05,080 pungufu n yenyewe. 1138 00:46:05,080 --> 00:46:06,960 Sasa, functionally, mpango huu 1139 00:46:06,960 --> 00:46:08,010 ni kwenda kuwa kufanana. 1140 00:46:08,010 --> 00:46:10,730 Kama mimi aina katika 99, n kuanza saa 99. 1141 00:46:10,730 --> 00:46:12,890 Mimi pungufu, pungufu, pungufu, pungufu. 1142 00:46:12,890 --> 00:46:15,875 Mimi naenda kupata njia yote chini "Moja chupa ya bia 1143 00:46:15,875 --> 00:46:16,740 ukuta, chupa moja ya bia. 1144 00:46:16,740 --> 00:46:18,020 Kuchukua moja chini, kupita ni kuzunguka. 1145 00:46:18,020 --> 00:46:21,480 0 chupa ya bia juu ya ukuta. "Mwisho, kwa sababu sikuwa na 1146 00:46:21,480 --> 00:46:23,200 kupata hali sahihi. 1147 00:46:23,200 --> 00:46:24,280 Ni kubwa kuliko 0. 1148 00:46:24,280 --> 00:46:26,220 Sikuweza kufanya hili kosa. 1149 00:46:26,220 --> 00:46:28,470 >> Hivyo ambayo ni bora zaidi, toleo moja au toleo mbili? 1150 00:46:31,380 --> 00:46:33,480 Hivyo nikasikia rundo la manung'uniko kwa mbili. 1151 00:46:33,480 --> 00:46:34,730 Mbona mbili? 1152 00:46:37,210 --> 00:46:38,225 Nini hiyo? 1153 00:46:38,225 --> 00:46:39,215 Watazamaji: [inaudible]. 1154 00:46:39,215 --> 00:46:40,070 DAVID J. Malan: Oh, sawa. 1155 00:46:40,070 --> 00:46:42,870 Hivyo itakuwa si kwenda chini ya 0, lakini kumbuka katika toleo moja, 1156 00:46:42,870 --> 00:46:45,870 awali ya toleo sahihi hawakuwa kwenda chini 0 aidha. 1157 00:46:45,870 --> 00:46:48,340 Basi kumbuka kwamba hii ni toleo sahihi. 1158 00:46:48,340 --> 00:46:51,630 Hivyo basi ni angalau kulinganisha matoleo mawili sahihi. 1159 00:46:51,630 --> 00:46:53,300 Nini hoja katika neema ya toleo 1160 00:46:53,300 --> 00:46:55,146 mbili kuwa, mmm, bora? 1161 00:46:55,146 --> 00:46:55,642 Yeah? 1162 00:46:55,642 --> 00:46:57,630 Watazamaji: Ni anatumia nafasi chini. 1163 00:46:57,630 --> 00:46:59,530 DAVID J. Malan: Okay, hivyo anatumia nafasi chini, sawa? 1164 00:46:59,530 --> 00:47:02,900 Wakati toleo moja kutumika bits 32 kwa n, na kisha mwingine 1165 00:47:02,900 --> 00:47:07,680 32 bits kwa i. 1166 00:47:07,680 --> 00:47:10,060 Toleo mbili tu anatumia bits 32 kwa n, hivyo kwamba 1167 00:47:10,060 --> 00:47:11,700 inaonekana kuwa plus. 1168 00:47:11,700 --> 00:47:12,950 Nyengine mawazo? 1169 00:47:18,070 --> 00:47:21,520 Je, mtu yeyote wanataka wanasema katika neema ya mtu mmoja? 1170 00:47:21,520 --> 00:47:22,070 Yeah? 1171 00:47:22,070 --> 00:47:25,240 Watazamaji: Una kutumia line ziada ya maadili kwa n -. 1172 00:47:25,240 --> 00:47:26,090 >> DAVID J. Malan: Okay, uhakika. 1173 00:47:26,090 --> 00:47:26,960 Basi hiyo ni haki. 1174 00:47:26,960 --> 00:47:29,040 Hivyo hii tu, angalau kwangu - 1175 00:47:29,040 --> 00:47:31,940 I mean, hii kwa kweli anahisi messier kidogo, ukweli kwamba 1176 00:47:31,940 --> 00:47:35,120 Siwezi aina ya kurejelea wote wa mantiki yangu katika moja 1177 00:47:35,120 --> 00:47:38,030 nzuri line, kwa kitanzi, kama kwa kitanzi unaweza. 1178 00:47:38,030 --> 00:47:40,240 Hapa, mimi aina ya kuwa na tack juu ya hii n - 1179 00:47:40,240 --> 00:47:41,120 mwishoni mwa kitanzi, kwa sababu 1180 00:47:41,120 --> 00:47:42,550 ni mantiki muhimu. 1181 00:47:42,550 --> 00:47:45,190 Lakini ni aina ya rubs yangu njia sahihi, kwa sababu tu 1182 00:47:45,190 --> 00:47:48,260 inaonekana tofauti na mantiki ya juu hapa, ingawa, 1183 00:47:48,260 --> 00:47:49,430 tena, ni muhimu. 1184 00:47:49,430 --> 00:47:50,990 Nyengine mawazo? 1185 00:47:50,990 --> 00:47:51,490 Yeah? 1186 00:47:51,490 --> 00:47:52,740 Watazamaji: [inaudible]. 1187 00:47:57,990 --> 00:47:58,350 >> DAVID J. Malan: Yeah. 1188 00:47:58,350 --> 00:48:00,730 Basi nini kama wewe badala yake, mwisho wa wimbo, alitaka 1189 00:48:00,730 --> 00:48:02,950 magazeti nje tena jina la wimbo? 1190 00:48:02,950 --> 00:48:05,660 Kama "Shukrani kwa ajili ya kucheza chupa ya bia 99", au kitu 1191 00:48:05,660 --> 00:48:06,690 silly kama hayo? 1192 00:48:06,690 --> 00:48:09,750 Lakini uhakika ni, alitaka kupata thamani ya awali. 1193 00:48:09,750 --> 00:48:13,180 ukweli kwamba ve mutated au iliyopita n juu ya kila 1194 00:48:13,180 --> 00:48:16,330 iteration na kwa hiyo wameharibu thamani yake ya awali 1195 00:48:16,330 --> 00:48:18,650 maana wewe tu hawezi kufanya kwamba mwishoni. 1196 00:48:18,650 --> 00:48:20,660 Sasa, arguably, sisi wazi hawataki kufanya 1197 00:48:20,660 --> 00:48:21,450 kwamba katika mpango huu. 1198 00:48:21,450 --> 00:48:22,350 Hivyo ambaye anajali? 1199 00:48:22,350 --> 00:48:23,630 Lakini hiyo ni hatua halali sana. 1200 00:48:23,630 --> 00:48:25,520 Na kwa kuwa waaminifu, kuna kweli hakuna moja 1201 00:48:25,520 --> 00:48:26,630 haki kujibu hapa. 1202 00:48:26,630 --> 00:48:28,740 Wao ni sahihi zote kwa usawa. 1203 00:48:28,740 --> 00:48:30,210 Mimi naweza kuwa wanaamini ama njia. 1204 00:48:30,210 --> 00:48:33,310 Mimi kusema kwamba, kwa ujumla, ni kanuni nzuri kama wewe 1205 00:48:33,310 --> 00:48:36,030 aliuliza mtumiaji kwa thamani baadhi na wewe kuhifadhiwa katika variable 1206 00:48:36,030 --> 00:48:38,730 kama n, tu aina ya juu ya kanuni, pengine nzuri 1207 00:48:38,730 --> 00:48:40,160 kuendelea kuwa karibu. 1208 00:48:40,160 --> 00:48:43,400 Na yoyote data unataka mutate tena na tena, tu 1209 00:48:43,400 --> 00:48:46,030 kutoa mwenyewe nakala ya variable kwamba, ili tu kuwa wewe 1210 00:48:46,030 --> 00:48:47,830 kupata awali. 1211 00:48:47,830 --> 00:48:51,040 Wewe ni matumizi ya 32 bits zaidi, lakini ukweli ni huu 1212 00:48:51,040 --> 00:48:53,490 kompyuta ina, kama, gigabytes mbili ya RAM siku hizi, 1213 00:48:53,490 --> 00:48:55,310 na sisi ni juu ya quibbling bits 32? 1214 00:48:55,310 --> 00:48:56,320 Kweli si kama mpango kubwa. 1215 00:48:56,320 --> 00:48:58,550 Na hata kwenye kifaa hiki hapa, na nusu GIG au 1216 00:48:58,550 --> 00:49:01,700 gigabyte ya RAM, 32 bits dhidi bits 64, 1217 00:49:01,700 --> 00:49:02,920 si kama mpango kubwa. 1218 00:49:02,920 --> 00:49:05,890 Hakika leo, ni kwenda kuwa njia kuzidiwa na ukubwa 1219 00:49:05,890 --> 00:49:08,400 wa programu yenyewe, ambayo ni kwenda kuwa mia kadhaa 1220 00:49:08,400 --> 00:49:10,890 kilobytes, kama si megabaiti chache, siku hizi. 1221 00:49:10,890 --> 00:49:13,550 >> Hivyo busara wasiwasi, hakuna haki ya mmoja jibu. 1222 00:49:13,550 --> 00:49:15,490 Lakini angalau wale ni mawazo kwamba lazima kuanza 1223 00:49:15,490 --> 00:49:16,790 kupitia mawazo yako? 1224 00:49:16,790 --> 00:49:19,600 Kwa sababu katika pset 0, ingawa kwa kweli sisi tu inatarajiwa 1225 00:49:19,600 --> 00:49:22,340 usahihi, au angalau Kuyakana mende mbalimbali kwamba 1226 00:49:22,340 --> 00:49:25,440 unaweza kuwa wamekutana, kama sisi kusonga mbele, design ni 1227 00:49:25,440 --> 00:49:27,910 kwenda kuwa jingine muhimu, wote wa kuandika code 1228 00:49:27,910 --> 00:49:29,770 na pia kutathmini wetu code. 1229 00:49:29,770 --> 00:49:32,310 Na hivyo angalau kutoa mawazo ya mambo kama hayo. 1230 00:49:32,310 --> 00:49:35,590 Na kwa sababu tu kitu kazi haina maana ni vizuri, 1231 00:49:35,590 --> 00:49:37,130 haina maana ni vizuri iliyoundwa. 1232 00:49:37,130 --> 00:49:38,820 Na kwamba ni moja ya mambo wenzake mafundisho na 1233 00:49:38,820 --> 00:49:41,990 tatizo seti itatusaidia tease sehemu ya muda. 1234 00:49:41,990 --> 00:49:45,020 >> Naam, nini kuhusu, hebu sema, toleo hili hapa? 1235 00:49:45,020 --> 00:49:49,090 Hebu kufanya kitu kidogo sexy hapa katika wakati huu. 1236 00:49:49,090 --> 00:49:50,740 Kwanza napenda kujikwamua hii. 1237 00:49:50,740 --> 00:49:54,120 Na sasa hebu kurekebisha hili suala grammatical. 1238 00:49:54,120 --> 00:49:58,780 Hivyo katika toleo hili, nataka kurekebisha sarufi hivyo kwamba, 1239 00:49:58,780 --> 00:50:02,460 badala ya kusema tu s parenthetical, kama "chupa" 1240 00:50:02,460 --> 00:50:03,360 au "chupa" - 1241 00:50:03,360 --> 00:50:04,900 Sitaki kukata kona - 1242 00:50:04,900 --> 00:50:08,350 Mimi pia nataka dynamically magazeti nje neno "chupa" 1243 00:50:08,350 --> 00:50:12,820 au "chupa", na hivyo kutumia placeholders haya% s leo. 1244 00:50:12,820 --> 00:50:16,550 Hivyo mimi haja ya masharti kuangalia nini ni thamani ya i. 1245 00:50:16,550 --> 00:50:19,590 Na kama ni 1, nataka kusema "chupa", na kama kitu ni 1246 00:50:19,590 --> 00:50:23,115 kingine, mimi nataka kusema "chupa". Basi hebu jaribu kufanya kazi hii. 1247 00:50:23,115 --> 00:50:31,340 Hivyo kama i == 1, basi mimi kwenda mbele na kutangaza - 1248 00:50:31,340 --> 00:50:34,080 Nahitaji kamba, hivyo basi mimi kufanya S1 kamba, kwa sababu ni 1249 00:50:34,080 --> 00:50:36,070 kwanza string najali hivi sasa. 1250 00:50:36,070 --> 00:50:40,980 Mimi naenda kusema "chupa". Na kisha, hebu angalia, kamba 1251 00:50:40,980 --> 00:50:43,110 S2 - na mimi itabidi kueleza wapi nitakacho katika wakati - 1252 00:50:43,110 --> 00:50:47,650 "Chupa." Hivyo kukumbuka kwamba, katika wimbo huu, tunahitaji kuwa na uwezo 1253 00:50:47,650 --> 00:50:50,580 na magazeti mambo, mbili tofauti maneno uwezekano. 1254 00:50:50,580 --> 00:50:53,590 Hivyo kama sisi kuangalia nyuma hapa, taarifa kwamba wakati sisi kupata 1255 00:50:53,590 --> 00:50:56,440 mfano huu hapa, "chupa mbili za bia juu ya ukuta, 1256 00:50:56,440 --> 00:50:59,490 chupa mbili za bia, chukua mtu mmoja chini, kupita kote ", nataka 1257 00:50:59,490 --> 00:51:02,380 line hii ya nne sasa kusema "chupa moja ya bia 1258 00:51:02,380 --> 00:51:04,900 ukuta "Kwa hiyo mimi haja ya kuamua., je, mimi nataka kusema" chupa "au 1259 00:51:04,900 --> 00:51:07,780 "Chupa"? Hivyo nina kwenda kwa kiholela kusema, haki ya wote, 1260 00:51:07,780 --> 00:51:10,530 Mimi naenda sasa kutangaza variable S1 aitwaye, kamba 1261 00:51:10,530 --> 00:51:13,830 moja, kwamba ni kwenda kupata plugged katika hapa na pia hapa, 1262 00:51:13,830 --> 00:51:16,070 kwa sababu wale maneno ni daima kufanana, kwa sababu tu ya 1263 00:51:16,070 --> 00:51:17,290 asili ya wimbo. 1264 00:51:17,290 --> 00:51:20,100 Na mimi naenda kuwaita S2 chochote neno nataka 1265 00:51:20,100 --> 00:51:21,560 hatimaye itaonekana chini hapa. 1266 00:51:21,560 --> 00:51:25,530 Sasa, literally, 99 mara nje ya 100, ni kwenda kuwa 1267 00:51:25,530 --> 00:51:28,820 sawa katika wawili wa kesi hizo, kwa sababu 3 ni wingi, 2 ni 1268 00:51:28,820 --> 00:51:30,200 wingi, 4 ni wingi. 1269 00:51:30,200 --> 00:51:34,640 Lakini katika kesi hii kona, ambapo sisi kupata 2 na kisha 1, au 1270 00:51:34,640 --> 00:51:37,250 hata 1 na kisha 0, nahitaji mantiki hii. 1271 00:51:37,250 --> 00:51:41,020 Hivyo nina kutumia muda katika code yangu kupata haki hiyo. 1272 00:51:41,020 --> 00:51:47,530 Hivyo kama mimi kufanya hili, kama i == 1, kisha kuweka S1 sawa na "chupa" 1273 00:51:47,530 --> 00:51:52,010 na S2 sawa na "chupa", kwa sababu hii itakuwa kwa 1 1274 00:51:52,010 --> 00:51:56,340 chupa, na hii itakuwa kwa chupa 0. 1275 00:51:56,340 --> 00:51:58,250 Na hii hapa, nini hii kuwakilisha? 1276 00:51:58,250 --> 00:51:59,780 Tu kuwa wazi. 1277 00:51:59,780 --> 00:52:00,620 Hii ni maoni. 1278 00:52:00,620 --> 00:52:03,730 Hivyo ukweli kwamba unaweza kuwa na maoni moja-line ina maana 1279 00:52:03,730 --> 00:52:06,110 unaweza kutoa maoni yako code kama hii, lakini mwingine kawaida 1280 00:52:06,110 --> 00:52:09,050 dhana, pia, ni kwamba kama una maneno super-fupi kwamba 1281 00:52:09,050 --> 00:52:11,410 unataka kuweka mwenyewe na ni tu zaidi someka kuweka 1282 00:52:11,410 --> 00:52:13,270 haki mwishoni mwa mstari wa kanuni, unaweza 1283 00:52:13,270 --> 00:52:15,230 kabisa kufanya kitu kama hiki. 1284 00:52:15,230 --> 00:52:20,150 >> Hivyo sasa nini kama mimi kufanya hili? Mwingine kama i si sawa na 1. 1285 00:52:20,150 --> 00:52:21,620 Hivyo bang sawa - 1286 00:52:21,620 --> 00:52:23,150 uhakika Moderators inajulikana kama "bang". 1287 00:52:23,150 --> 00:52:25,080 Hivyo bang = 1. 1288 00:52:25,080 --> 00:52:28,530 Hivyo kama i si sawa na 1, je, mimi badala wanataka kufanya? 1289 00:52:28,530 --> 00:52:31,700 Naam, neno la kwanza nataka kuwa nini? 1290 00:52:34,620 --> 00:52:40,030 Hivyo string 1 unapaswa kuwa "chupa" kwa chupa wingi, 1291 00:52:40,030 --> 00:52:42,440 na kisha hii itakuwa wingi "chupa" pia, kwa sasa. 1292 00:52:42,440 --> 00:52:43,800 Na tutaweza kuona kama kweli hii anapata yetu kwa 1293 00:52:43,800 --> 00:52:44,870 ambapo tunataka kwenda. 1294 00:52:44,870 --> 00:52:47,680 Hivyo sasa kama mimi kitabu chini hapa, taarifa kwamba mimi nina plugging katika 1295 00:52:47,680 --> 00:52:50,170 si tu i, lakini S1. 1296 00:52:50,170 --> 00:52:51,860 Mimi nina plugging katika i na S1. 1297 00:52:51,860 --> 00:52:54,440 Na kisha chini hapa, mimi nina minus 1, ambayo ni sawa kama 1298 00:52:54,440 --> 00:52:55,920 kabla, lakini S2. 1299 00:52:55,920 --> 00:52:58,730 Kwa maneno mengine, nataka neno la Kiingereza na mabadiliko ya msingi 1300 00:52:58,730 --> 00:52:59,930 juu ya mantiki hii. 1301 00:52:59,930 --> 00:53:03,310 Sasa, kuna baadhi tayari matatizo katika kanuni hii. 1302 00:53:03,310 --> 00:53:08,460 Nini ni kuvunjwa tayari nje ya lango hapa? 1303 00:53:08,460 --> 00:53:10,796 Yeah? 1304 00:53:10,796 --> 00:53:13,210 Watazamaji: [inaudible]. 1305 00:53:13,210 --> 00:53:13,800 >> DAVID J. Malan: Hasa. 1306 00:53:13,800 --> 00:53:16,030 Hivyo nimekuwa tayari vunja somo la wigo. 1307 00:53:16,030 --> 00:53:19,610 Hivyo nimekuwa alitangaza S1 na S2, lakini nimekuwa amefanya hivyo ndani ya 1308 00:53:19,610 --> 00:53:22,980 curly braces, ambayo ina maana yeah, code hii kazi juu 1309 00:53:22,980 --> 00:53:27,430 mpaka mstari 42, lakini haraka kama mimi hit mstari 43, nadhani nini hakuna 1310 00:53:27,430 --> 00:53:28,900 tena ipo? 1311 00:53:28,900 --> 00:53:32,600 Naam, nadhani nini tena katika upeo - wala S1 au S2. 1312 00:53:32,600 --> 00:53:33,780 Hivyo tuna kurekebisha hii. 1313 00:53:33,780 --> 00:53:36,180 Hivyo basi mimi kufuta maazimio. 1314 00:53:36,180 --> 00:53:39,320 Na mimi itabidi kuondoka majina kutofautiana na kufuta hii hapa 1315 00:53:39,320 --> 00:53:40,120 na kufuta hii hapa. 1316 00:53:40,120 --> 00:53:43,557 Na katika kile mistari lazima kweli mimi kutangaza mambo haya? 1317 00:53:43,557 --> 00:53:44,960 Watazamaji: [inaudible]. 1318 00:53:44,960 --> 00:53:45,410 DAVID J. Malan: Yeah, hivyo pengine 1319 00:53:45,410 --> 00:53:46,850 haki ya juu hapa, 33-ish. 1320 00:53:46,850 --> 00:53:50,670 Hivyo string S1 na kisha string S2. 1321 00:53:50,670 --> 00:53:51,950 Na zinageuka, siwezi kufanya hivyo. 1322 00:53:51,950 --> 00:53:54,260 Kama wewe ni kutangaza vigezo wawili wa aina hiyo, 1323 00:53:54,260 --> 00:53:57,420 unaweza kweli tu kutumia comma na kufanya hivyo katika C. zote 1324 00:53:57,420 --> 00:53:58,970 haki, hivyo sasa nina vigezo mbili - 1325 00:53:58,970 --> 00:53:59,860 S1 na S2. 1326 00:53:59,860 --> 00:54:02,000 Mimi nina kumshirikisha yao katika maadili haya 1327 00:54:02,000 --> 00:54:04,210 hali ya hapa, au hapa. 1328 00:54:04,210 --> 00:54:06,690 Na kisha mimi nina kutumia yao chini chini. 1329 00:54:06,690 --> 00:54:10,960 Ni kwa kiasi gani hii sasa kwenda kufanya kazi? 1330 00:54:10,960 --> 00:54:12,740 >> Naam, ni bado Buggy kidogo, lakini hebu ni angalau kuona 1331 00:54:12,740 --> 00:54:13,730 jinsi mbali tumekuwa wamezipata. 1332 00:54:13,730 --> 00:54:16,500 Hivyo basi mimi kwenda mbele na kufanya beer3. 1333 00:54:16,500 --> 00:54:17,695 Je, hii ni beer3? 1334 00:54:17,695 --> 00:54:19,410 Yep, hii ni beer3. 1335 00:54:19,410 --> 00:54:21,510 Na sasa napenda kwenda mbele na kukimbia beer3. 1336 00:54:21,510 --> 00:54:23,820 399 99. 1337 00:54:23,820 --> 00:54:25,840 Pengine tunaweza ruka wengi wao. 1338 00:54:25,840 --> 00:54:29,100 Na hapa chini, kuangalia kwamba. 1339 00:54:29,100 --> 00:54:31,110 "Moja chupa ya bia juu ya ukuta, chupa moja ya bia, kuchukua 1340 00:54:31,110 --> 00:54:34,306 moja chini, kupita ni kuzunguka, chupa ya bia 0 juu ya ukuta. " 1341 00:54:34,306 --> 00:54:37,570 Lakini mimi nina kuchora wako makini na nusu tu ya ufumbuzi. 1342 00:54:37,570 --> 00:54:39,620 Aina ya Star up hapa. 1343 00:54:39,620 --> 00:54:43,030 Hivyo inaonekana kuwa kesi kona kujitokeza wakati i sawa na yale 1344 00:54:43,030 --> 00:54:44,030 mbili maadili? 1345 00:54:44,030 --> 00:54:45,020 Watazamaji: 2, 1. 1346 00:54:45,020 --> 00:54:46,190 DAVID J. Malan: 2 na 1. 1347 00:54:46,190 --> 00:54:48,180 Siyo 1 na si 1. 1348 00:54:48,180 --> 00:54:51,890 Ni kweli tu hizi mbili za mwisho stanza ya wimbo huu. 1349 00:54:51,890 --> 00:54:53,890 Basi je, mimi badala wanataka kufanya? 1350 00:54:53,890 --> 00:54:58,890 Hivyo mimi wanaonekana kuwa hawakupata kesi ambapo kama i ni == kwa 1, 1351 00:54:58,890 --> 00:55:02,240 basi neno la kwanza ni "chupa", lakini neno pili 1352 00:55:02,240 --> 00:55:07,230 ni "chupa". Lakini hapa, nataka kubadili hili kuwa == 2. 1353 00:55:07,230 --> 00:55:08,570 Na kama hii ni kesi, je, nataka 1354 00:55:08,570 --> 00:55:09,620 neno la kwanza kwa kuwa? 1355 00:55:09,620 --> 00:55:10,430 Watazamaji: "chupa". 1356 00:55:10,430 --> 00:55:12,890 DAVID J. Malan: "chupa", hivyo kwa chupa mbili. 1357 00:55:12,890 --> 00:55:14,690 Na kisha neno hili hapa inapaswa kuwa - 1358 00:55:14,690 --> 00:55:15,340 Watazamaji: "Bottle". 1359 00:55:15,340 --> 00:55:17,316 DAVID J. Malan: "Bottle", umoja. 1360 00:55:20,430 --> 00:55:25,160 >> Haki zote, hebu zoom nje, kwenda nyuma zaidi ya hapa, re-run kufanya, 1361 00:55:25,160 --> 00:55:28,590 re-kukimbia beer3, aina 99 tena. 1362 00:55:28,590 --> 00:55:30,710 Sawa, "Mkato kosa (msingi kutupwa)." 1363 00:55:30,710 --> 00:55:32,780 Nimefanya nini kibaya? 1364 00:55:36,050 --> 00:55:38,722 Watazamaji: Huna thamani [inaudible]. 1365 00:55:38,722 --> 00:55:40,480 DAVID J. Malan: Ah, bora uhakika. 1366 00:55:40,480 --> 00:55:43,310 Haki ya wote, hivyo nini makosa hapa? 1367 00:55:43,310 --> 00:55:45,450 Hivyo kosa segmentation, na sisi ni kweli kwenda kuona 1368 00:55:45,450 --> 00:55:49,020 hii kabisa mara chache katika siku zijazo, kwa makusudi. 1369 00:55:49,020 --> 00:55:51,030 Lakini kwa sasa, ni nini hii kwa kweli ina maana gani? 1370 00:55:51,030 --> 00:55:53,620 kosa segmentation karibu daima ina maana kwamba 1371 00:55:53,620 --> 00:55:56,760 namna fulani walijaribu kupata kumbukumbu, RAM katika kompyuta yako, 1372 00:55:56,760 --> 00:56:00,600 kwamba huna mwenyewe, kwa kuwa si kweli aliuliza 1373 00:56:00,600 --> 00:56:02,050 mfumo wa uendeshaji kwa. 1374 00:56:02,050 --> 00:56:04,440 Hivyo katika kesi hii, taarifa ya kile nimepata kufanyika, ambayo ni 1375 00:56:04,440 --> 00:56:05,870 kiujanja kwa mantiki yangu. 1376 00:56:05,870 --> 00:56:09,500 Mimi kupewa S1 na S2 thamani kama i sawa na 1. 1377 00:56:09,500 --> 00:56:11,590 Nimekuwa pia kufanyika kwamba kama i sawa na 2. 1378 00:56:11,590 --> 00:56:13,710 Lakini mimi si kufanyika katika idadi ya usio wa wengine 1379 00:56:13,710 --> 00:56:14,690 uwezekano - 1380 00:56:14,690 --> 00:56:17,940 hasa, 3 au 4 au nukta nukta nukta 99. 1381 00:56:17,940 --> 00:56:20,100 Hivyo moja kwa fix hii inaweza tu kuwa wacha 1382 00:56:20,100 --> 00:56:22,190 na hali ya mwingine. 1383 00:56:22,190 --> 00:56:26,780 Na kuniachia katika hapa na kusema S1 sawa - 1384 00:56:26,780 --> 00:56:28,180 nini iwe hapa? 1385 00:56:28,180 --> 00:56:28,750 Watazamaji: [inaudible]. 1386 00:56:28,750 --> 00:56:30,460 >> DAVID J. Malan: "chupa", kwa sababu katika kesi ya kawaida, 1387 00:56:30,460 --> 00:56:32,020 ni tu kitu kimoja. 1388 00:56:32,020 --> 00:56:35,580 Hivyo ni sawa quote, unquote, "chupa." Hivyo kwa wingi 1389 00:56:35,580 --> 00:56:41,010 chupa, na kisha hapa juu kwa wingi chupa. 1390 00:56:41,010 --> 00:56:44,580 Sawa, hivyo sasa napenda kwenda nyuma terminal dirisha yangu, 1391 00:56:44,580 --> 00:56:47,200 recompile, re-kukimbia. 1392 00:56:47,200 --> 00:56:48,440 99. 1393 00:56:48,440 --> 00:56:49,150 Whew. 1394 00:56:49,150 --> 00:56:50,610 Na hebu kufanya haraka sanity hundi. 1395 00:56:50,610 --> 00:56:52,400 Kitaalam, tunatarajia wanataka kusoma yote haya ili kuhakikisha 1396 00:56:52,400 --> 00:56:53,370 ni sahihi, lakini hebu tuangalie 1397 00:56:53,370 --> 00:56:54,640 angalau wakosaji maalumu. 1398 00:56:54,640 --> 00:56:57,370 3 chupa, chupa 2, chupa 2, 1 1399 00:56:57,370 --> 00:57:00,380 chupa, chupa 1, chupa 0. 1400 00:57:00,380 --> 00:57:03,080 Sisi wanaonekana kuwa angalau fasta kwa sasa. 1401 00:57:03,080 --> 00:57:06,010 Lakini samaki hapa ni kwamba mungu gani kubwa fujo hii ni 1402 00:57:06,010 --> 00:57:07,470 tu kutatua kijinga 1403 00:57:07,470 --> 00:57:09,540 moja-tabia grammatical undani. 1404 00:57:09,540 --> 00:57:11,150 Hivyo kuna aina ya sababu mimi kukata kona hii 1405 00:57:11,150 --> 00:57:14,090 awali, kwa sababu ni haki kabisa annoying kuwa na 1406 00:57:14,090 --> 00:57:15,020 kuandika hii code sana. 1407 00:57:15,020 --> 00:57:17,530 Lakini zinageuka kuwa kuna kidogo zaidi kifahari njia ya 1408 00:57:17,530 --> 00:57:20,110 akielezea exact kitu. 1409 00:57:20,110 --> 00:57:22,040 Na tunaweza kufanya hili kama ifuatavyo. 1410 00:57:22,040 --> 00:57:23,890 >> Hebu kuondoka kwenye screen kwa wakati na 1411 00:57:23,890 --> 00:57:27,320 kuanzisha kitu inayojulikana kama operator ternary. 1412 00:57:27,320 --> 00:57:29,600 Hii ni aina ya mjengo moja tu hiyo ilimaanisha kufanya wetu 1413 00:57:29,600 --> 00:57:31,880 anaishi sexier kidogo, kama alivyoahidi. 1414 00:57:31,880 --> 00:57:33,130 Na mimi naenda kufanya hii kama ifuatavyo. 1415 00:57:33,130 --> 00:57:35,810 Nipe string kuitwa S1, na napenda 1416 00:57:35,810 --> 00:57:37,200 hawawajui ni kama ifuatavyo. 1417 00:57:37,200 --> 00:57:39,900 (I == 1)? 1418 00:57:39,900 --> 00:57:47,820 "Chupa", vinginevyo "chupa". Kamba S2 anapata (i == 2)? 1419 00:57:47,820 --> 00:57:52,670 "Chupa", vinginevyo "chupa". 1420 00:57:52,670 --> 00:57:57,050 Basi nini basi ni tofauti hapa? 1421 00:57:57,050 --> 00:57:59,370 Hizi mistari miwili ya kificho, na Mimi wanasema, unaweza 1422 00:57:59,370 --> 00:58:02,200 kuchukua nafasi hii fujo nzima. 1423 00:58:02,200 --> 00:58:04,280 Hivyo naita fujo, kwa sababu tu ya aina ya rubs yangu 1424 00:58:04,280 --> 00:58:05,940 makosa njia ambayo ni hivyo wengi mstari wa kanuni. 1425 00:58:05,940 --> 00:58:06,650 Si vibaya. 1426 00:58:06,650 --> 00:58:07,700 Ni si mbaya design. 1427 00:58:07,700 --> 00:58:10,140 Kama, hii ni sahihi na kikamilifu kikamilifu faini. 1428 00:58:10,140 --> 00:58:12,970 Lakini coding anapata tedious kama una kueleza mwenyewe hivyo 1429 00:58:12,970 --> 00:58:15,530 damn hasa tena na tena na tena na rahisi 1430 00:58:15,530 --> 00:58:16,620 scenario kama hii. 1431 00:58:16,620 --> 00:58:19,470 Hivyo C ana shortcuts baadhi, kama hii. 1432 00:58:19,470 --> 00:58:24,270 Hivyo hii kimsingi ni kusema kutangaza string kuitwa S1 na 1433 00:58:24,270 --> 00:58:32,610 hawawajui ni aidha thamani hii au thamani hii kama i ni == - 1434 00:58:32,610 --> 00:58:35,290 sorry, mimi lazima kusema hii wazi zaidi. 1435 00:58:35,290 --> 00:58:41,680 Kutangaza S1 variable, hawawajui ni thamani hii kama hii ni kweli. 1436 00:58:41,680 --> 00:58:44,280 Vinginevyo, hawawajui ni thamani hii. 1437 00:58:44,280 --> 00:58:47,220 Hivyo kwa maneno mengine, hii ni aina ya njia moja-line ya 1438 00:58:47,220 --> 00:58:51,490 akisema ikiwa kingine lakini kufanya zoezi njiani. 1439 00:58:51,490 --> 00:58:55,540 Hivyo kama i ni 1, kisha kwenda mbele na wito huu "chupa". Na 1440 00:58:55,540 --> 00:58:59,830 basi hii kingine, simu yake "chupa". Wakati huo huo, S2, 1441 00:58:59,830 --> 00:59:04,060 pili neno kwamba tunahitaji define, kama i sawa na 2, tutaweza 1442 00:59:04,060 --> 00:59:08,350 kuweka S2 na "chupa". Vinginevyo, kuweka kwa "chupa". Na nini 1443 00:59:08,350 --> 00:59:11,460 hii ina maana sasa ni siwezi kwenda kwa njia hii na kufuta yote ya 1444 00:59:11,460 --> 00:59:12,860 wale mstari wa kanuni. 1445 00:59:12,860 --> 00:59:17,220 Na wakati mimi kusema, kiasi fulani ridiculously, kwamba hii ni sasa 1446 00:59:17,220 --> 00:59:20,060 sexier, ni sexier katika aina ya hisia Stylistic. 1447 00:59:20,060 --> 00:59:22,660 ukweli kwamba functionally, kanuni hii ni kweli kwenda 1448 00:59:22,660 --> 00:59:24,610 kufanya exact kitu. 1449 00:59:24,610 --> 00:59:26,890 Na hata ingawa inaweza kuangalia kidogo cryptic kwa mara ya kwanza 1450 00:59:26,890 --> 00:59:29,250 mtazamo, kwa sababu tumekuwa si kuonekana hii ya kujenga mbele, mimi d 1451 00:59:29,250 --> 00:59:31,850 wanasema kuwa ni hatimaye kwenda kuwa hivyo zaidi 1452 00:59:31,850 --> 00:59:34,820 someka na rahisi sana kwa sisi binadamu kwa aina ya 1453 00:59:34,820 --> 00:59:36,830 kuelewa, kwa sababu sasa unaweza kusoma tu 1454 00:59:36,830 --> 00:59:38,830 code wote kwenye mstari mmoja. 1455 00:59:38,830 --> 00:59:41,550 Ni sawa bado katika roho na kama, ambapo hii ni 1456 00:59:41,550 --> 00:59:44,920 hali na basi hii ni nini ndani ikiwa na hii 1457 00:59:44,920 --> 00:59:46,480 ni nini ndani ya mwingine. 1458 00:59:46,480 --> 00:59:49,450 Lakini tunaweza kufanya hivyo tu zaidi elegantly. 1459 00:59:49,450 --> 00:59:52,650 >> Na kama mimi sasa kurejea terminal yangu, baada ya kufutwa wote 1460 00:59:52,650 --> 00:59:55,530 wa wale mistari na badala yao tu wale wawili, 1461 00:59:55,530 --> 01:00:00,150 recompile, re-kukimbia chupa ya bia na 99, taarifa kwamba yangu 1462 01:00:00,150 --> 01:00:03,350 sarufi ni, kwa kweli, bado sahihi. 1463 01:00:03,350 --> 01:00:06,160 Hivyo tena, kitu kuanza. 1464 01:00:06,160 --> 01:00:08,840 2 chupa ya bia, 1 chupa ya bia. 1465 01:00:08,840 --> 01:00:09,370 Looks haki. 1466 01:00:09,370 --> 01:00:10,100 Yeah. 1467 01:00:10,100 --> 01:00:13,900 Hivyo kuna tuna mengi zaidi succinct ufumbuzi. 1468 01:00:13,900 --> 01:00:16,020 Hivyo hii, pia, kama wewe kupata zaidi starehe na C, si 1469 01:00:16,020 --> 01:00:18,630 lazima kwa pset kwanza au hata wa pili, lakini 1470 01:00:18,630 --> 01:00:21,170 kutambua kwamba hawa constructs wanaweza kuruhusu sisi kufanya mambo milele 1471 01:00:21,170 --> 01:00:22,810 zaidi elegantly. 1472 01:00:22,810 --> 01:00:25,200 Sasa hebu kufanya moja nyingine kitu hapa. 1473 01:00:25,200 --> 01:00:31,460 Hebu kwenda mbele na kufungua return1.c. 1474 01:00:31,460 --> 01:00:34,340 Sasa hebu kuanza kutatua tatizo jingine katika njia ambayo 1475 01:00:34,340 --> 01:00:37,140 inaruhusu sisi kuandika kisasa zaidi code. 1476 01:00:37,140 --> 01:00:39,960 >> Hivyo hapa ni rahisi kidogo mpango ambao lengo katika maisha 1477 01:00:39,960 --> 01:00:41,870 ni increment maadili. 1478 01:00:41,870 --> 01:00:43,100 Na kweli, hebu kuchukua hatua nyuma. 1479 01:00:43,100 --> 01:00:44,400 Hebu kufanya hili manually. 1480 01:00:44,400 --> 01:00:52,200 Basi mimi kufanya ni pamoja na int kuu (utupu). 1481 01:00:52,200 --> 01:00:53,450 Na napenda kuwaita hii increment.c. 1482 01:00:57,150 --> 01:00:58,570 Na nini nataka kufanya? 1483 01:00:58,570 --> 01:01:02,240 Mimi nina kwenda mbele na kusema kitu kama - 1484 01:01:02,240 --> 01:01:04,280 itakuwa sisi kupiga namba moja - 1485 01:01:04,280 --> 01:01:04,980 int x. 1486 01:01:04,980 --> 01:01:13,670 Hivyo x int anapata 2; x printf ni% d, mstari wa mwezi, x. 1487 01:01:13,670 --> 01:01:16,780 Hivyo mimi nina kuandika haraka, lakini aina ya mambo ya ukoo sasa. 1488 01:01:16,780 --> 01:01:18,830 Kisha mimi naenda kufanya x + +. 1489 01:01:18,830 --> 01:01:21,710 Kisha mimi naenda magazeti kwamba hukumu hiyo tena. 1490 01:01:21,710 --> 01:01:24,550 Na kisha mimi naenda kurudi 0 tu kuacha mpango. 1491 01:01:24,550 --> 01:01:25,960 Haki zote, hivyo hii ni programu ambayo 1492 01:01:25,960 --> 01:01:26,960 nyongeza idadi. 1493 01:01:26,960 --> 01:01:29,830 Ni kwanza kwenda initialize kitu 2, na kisha ni 1494 01:01:29,830 --> 01:01:33,470 kwenda increment hiyo na magazeti tena. 1495 01:01:33,470 --> 01:01:36,930 >> Hivyo hebu kukimbia increment, incredibly rahisi mpango. 1496 01:01:36,930 --> 01:01:40,940 Lakini tuseme sasa kwamba mimi nataka mchemraba thamani, hivyo kufanya 1497 01:01:40,940 --> 01:01:42,490 kitu fulani holela. 1498 01:01:42,490 --> 01:01:45,140 Na mimi kwa kweli wanataka kufanya x anapata mchemraba yake. 1499 01:01:45,140 --> 01:01:47,570 Hivyo mimi naweza kutumia kile kinachoitwa kazi pow, lakini mimi si 1500 01:01:47,570 --> 01:01:48,650 kweli kujua kwamba ni ambapo bado. 1501 01:01:48,650 --> 01:01:50,580 Hivyo nina kwenda kufanya njia hii ya kizamani. 1502 01:01:50,580 --> 01:01:54,550 x mara hii ni sawa na x mara x mara x. 1503 01:01:54,550 --> 01:01:56,880 Hivyo nina cubing thamani, kuzidisha ni kwa yenyewe tena 1504 01:01:56,880 --> 01:02:00,440 na tena na tena, ili tuweze kupata nguvu 1505 01:02:00,440 --> 01:02:02,050 ya 3 katika kesi hii. 1506 01:02:02,050 --> 01:02:06,000 Hivyo sasa idadi mimi lazima magazeti lazima, kama tutaweza kuona 1507 01:02:06,000 --> 01:02:08,450 hapa - kufanya increment, hivyo ni kweli si kweli increment 1508 01:02:08,450 --> 01:02:10,260 tena, lakini tutaweza kuondoka jina peke yake - 1509 01:02:10,260 --> 01:02:11,590 2 na kisha 8. 1510 01:02:11,590 --> 01:02:17,670 Sasa, tuna mwanzo wa fursa kwa finslipades 1511 01:02:17,670 --> 01:02:21,570 hapa, ambapo jambo hili cubing ya kuzidisha idadi 1512 01:02:21,570 --> 01:02:24,680 na yenyewe kwa yenyewe kwa yenyewe anahisi kama hii inaweza tu kuwa 1513 01:02:24,680 --> 01:02:27,920 muhimu kuwa kama kazi, kiasi kama mtu aliamua 1514 01:02:27,920 --> 01:02:30,430 miaka iliyopita - unajua, aina ya manufaa kama mmoja wetu anakaa chini 1515 01:02:30,430 --> 01:02:33,120 na anaandika printf ili wengine wa dunia unaweza kutumia, 1516 01:02:33,120 --> 01:02:36,160 kwa nini sio sisi kukaa chini na kuandika kazi kuitwa mchemraba 1517 01:02:36,160 --> 01:02:39,250 kwamba hana huu cubing kwa ajili yetu ili sisi hawana manually 1518 01:02:39,250 --> 01:02:41,500 kutekeleza dhana ya maadili cubing hapa? 1519 01:02:41,500 --> 01:02:44,040 >> Basi mfano rahisi, lakini hebu kwenda mbele na kutumia hii ni kama 1520 01:02:44,040 --> 01:02:46,280 fursa ya kuandika kazi zetu wenyewe. 1521 01:02:46,280 --> 01:02:49,110 Hivyo hivi sasa, tumekuwa tu kutumika kuu, na tumekuwa kutumika nyingine 1522 01:02:49,110 --> 01:02:51,780 watu kazi, lakini hatuna imeandikwa yetu wenyewe. 1523 01:02:51,780 --> 01:02:52,650 Hivyo hapa sisi kwenda. 1524 01:02:52,650 --> 01:02:56,330 Mimi nina kwenda mbele na kuandika kazi kuitwa mchemraba. 1525 01:02:56,330 --> 01:02:58,490 Na mimi naenda kuwa ni kuchukua pembejeo. 1526 01:02:58,490 --> 01:03:02,070 Hivyo mchango wake ni kwenda kuwa integer. 1527 01:03:02,070 --> 01:03:03,570 Na kile ni kwenda kufanya? 1528 01:03:03,570 --> 01:03:08,500 Ni kwenda kutangaza pato int = pembejeo mara pembejeo 1529 01:03:08,500 --> 01:03:09,880 mara pembejeo. 1530 01:03:09,880 --> 01:03:12,190 Na kisha itakuja kurudi kwamba pato. 1531 01:03:12,190 --> 01:03:14,500 Na kisha mimi kuwa maalum sasa. 1532 01:03:14,500 --> 01:03:16,820 Kazi hii ni ya kwenda na kurudi int. 1533 01:03:16,820 --> 01:03:19,130 Hivyo hapa basi ni jinsi wewe d kuandika yako majukumu wenyewe. 1534 01:03:19,130 --> 01:03:20,850 Wewe kwanza kuamua nini jina la yako 1535 01:03:20,850 --> 01:03:21,720 kazi kwenda kuwa. 1536 01:03:21,720 --> 01:03:23,964 Na kwa ujumla, kitu maelezo ni nzuri, hivyo mimi itabidi 1537 01:03:23,964 --> 01:03:25,060 kuiita mchemraba. 1538 01:03:25,060 --> 01:03:27,180 Basi una bayana nini ni kwenda na kurudi, nini 1539 01:03:27,180 --> 01:03:28,240 matokeo yake itakuwa. 1540 01:03:28,240 --> 01:03:29,595 Na hatuna chaguzi kwamba wengi bado. 1541 01:03:29,595 --> 01:03:32,260 Int, char, kuelea, bool, kamba. 1542 01:03:32,260 --> 01:03:34,260 Kwa sasa, mimi naenda kwa fimbo na int, kwa sababu mimi nataka 1543 01:03:34,260 --> 01:03:35,880 kurudi integer. 1544 01:03:35,880 --> 01:03:38,770 Basi una bayana nini pembejeo yake, kama yapo, ni. 1545 01:03:38,770 --> 01:03:41,570 Na kama mchemraba inachukua hoja, inachukua kitu kati ya 1546 01:03:41,570 --> 01:03:44,970 mabano, una kutoa hoja kwamba jina ili 1547 01:03:44,970 --> 01:03:47,860 unaweza kuiita kitu kama wewe ni kutekeleza au kuandika 1548 01:03:47,860 --> 01:03:50,550 kazi hii, na una kuwapa aina, ambayo katika hii 1549 01:03:50,550 --> 01:03:51,810 kesi ni kwenda kuwa int. 1550 01:03:51,810 --> 01:03:54,690 Hivyo katika muda mfupi, mchemraba ni kazi ambayo inachukua integer 1551 01:03:54,690 --> 01:03:57,560 kama pembejeo na anarudi integer kama pato. 1552 01:03:57,560 --> 01:03:59,240 >> Hivyo ni nini kufanya na pembejeo kwamba? 1553 01:03:59,240 --> 01:04:03,710 Naam, katika mstari wa 14, mimi kutangaza variable kuitwa pato, na mimi 1554 01:04:03,710 --> 01:04:07,410 hawawajui ni thamani, mara pembejeo pembejeo mara pembejeo. 1555 01:04:07,410 --> 01:04:11,490 Na kisha mimi kurudi pato. 1556 01:04:11,490 --> 01:04:14,890 Hivyo ni jinsi gani mimi kutumia hii basi? 1557 01:04:14,890 --> 01:04:19,210 Nini mimi kubadili wahusika hawa yalionyesha kwenye mstari 1558 01:04:19,210 --> 01:04:21,006 7 kwa kuwa, unafikiri? 1559 01:04:21,006 --> 01:04:21,800 Watazamaji: [inaudible]. 1560 01:04:21,800 --> 01:04:25,570 DAVID J. Malan: Yeah, hivyo mchemraba wa x. 1561 01:04:25,570 --> 01:04:28,290 Hivyo x ni kutofautiana, maana yake ana baadhi ya thamani. 1562 01:04:28,290 --> 01:04:30,190 Bahati nzuri, ni ya aina integer. 1563 01:04:30,190 --> 01:04:34,280 Na kwa sababu x ni int, kwamba maana siwezi kupita katika mchemraba. 1564 01:04:34,280 --> 01:04:39,500 Na hata kama mimi nina kuu thamani ya x kwa thamani 1565 01:04:39,500 --> 01:04:42,780 ya x mchemraba, kama ilivyokuwa hivi sasa, wakati wowote 1566 01:04:42,780 --> 01:04:46,150 kuwa ishara sawa na mstari wa kanuni, stuff juu ya haki 1567 01:04:46,150 --> 01:04:49,090 anapata kunyongwa na kisha anapata kwa ajili ya 1568 01:04:49,090 --> 01:04:50,150 thamani upande wa kushoto. 1569 01:04:50,150 --> 01:04:52,950 Hivyo utaratibu wa shughuli ni kama tunataka matumaini. 1570 01:04:52,950 --> 01:04:56,620 Hivyo gani kazi hii? 1571 01:04:56,620 --> 01:04:58,410 Vizuri, basi mimi kwenda chini hapa. 1572 01:04:58,410 --> 01:04:59,970 Hebu kufungua terminal yangu dirisha. 1573 01:04:59,970 --> 01:05:03,610 Hebu kufanya kufanya increment, Ingiza. 1574 01:05:03,610 --> 01:05:07,140 "Kinachojitokeza tamko la 'mchemraba' kazi ni batili katika 1575 01:05:07,140 --> 01:05:13,700 C99 ". Kama kando, C99 inahusu C lugha kama ilivyokuwa 1576 01:05:13,700 --> 01:05:16,790 inavyoelezwa katika 1999, ambayo ilikuwa update juu ya toleo kutoka 1577 01:05:16,790 --> 01:05:19,360 1989, ambayo ni update juu ya awali. 1578 01:05:19,360 --> 01:05:21,740 Basi hiyo ni njia kwamba wote. 1579 01:05:21,740 --> 01:05:24,250 >> Hivyo ni nini maana ya kwamba "thabiti tamko la 1580 01:05:24,250 --> 01:05:26,790 'mchemraba' kazi ni batili? "Ni haki hapa. 1581 01:05:26,790 --> 01:05:28,430 Ni haki pale katika mstari 12. 1582 01:05:28,430 --> 01:05:30,460 Watazamaji: [inaudible]. 1583 01:05:30,460 --> 01:05:30,730 DAVID J. Malan: Nini hiyo? 1584 01:05:30,730 --> 01:05:32,470 Watazamaji: Ni si kabla. 1585 01:05:32,470 --> 01:05:33,540 DAVID J. Malan: Ni si kabla. 1586 01:05:33,540 --> 01:05:34,740 Hivyo hii ni kitu. 1587 01:05:34,740 --> 01:05:38,190 C ni aina ya kijinga, au C compilers ni aina ya kijinga. 1588 01:05:38,190 --> 01:05:41,060 Wao kwa kweli kufanya kile tu wewe kuwaambia cha kufanya. 1589 01:05:41,060 --> 01:05:44,770 Na wao, hasa, tu kusoma code yako juu hadi chini, 1590 01:05:44,770 --> 01:05:45,620 kushoto na kulia. 1591 01:05:45,620 --> 01:05:49,140 Hivyo kama mkusanyaji, Clang, ni kusoma code yako, mstari 1, ni 1592 01:05:49,140 --> 01:05:50,120 takwimu nje jinsi ya kufanya hili. 1593 01:05:50,120 --> 01:05:50,940 Oh, hapa inakuja kuu. 1594 01:05:50,940 --> 01:05:53,000 Okay, basi mimi kwenda mbele na kutangaza x kutofautiana. 1595 01:05:53,000 --> 01:05:54,160 Hebu magazeti kitu. 1596 01:05:54,160 --> 01:05:55,890 Line 7, nini heck ni mchemraba? 1597 01:05:55,890 --> 01:05:58,230 Ni si alitangaza katika stdio.h. 1598 01:05:58,230 --> 01:06:00,950 Ni haina kuja na C. Mimi sijui nini cha kufanya. 1599 01:06:00,950 --> 01:06:03,960 Na hivyo Clang tu Bails na quits na ujumbe kuwa kosa. 1600 01:06:03,960 --> 01:06:05,850 Hivyo tunaweza kurekebisha hii katika michache ya njia. 1601 01:06:05,850 --> 01:06:10,530 Tunaweza kufundisha Clang nini mchemraba ni kwa kuwa tu kusonga ambapo 1602 01:06:10,530 --> 01:06:11,820 tamko ni. 1603 01:06:11,820 --> 01:06:14,640 Hivyo mimi na kata na pasted ni atop kuu. 1604 01:06:14,640 --> 01:06:17,770 Sasa kutambua kwamba kwa sababu tu ni kuu tena kwanza, ni 1605 01:06:17,770 --> 01:06:19,150 bado kunyongwa kwa default. 1606 01:06:19,150 --> 01:06:20,060 Kuu ni kuu. 1607 01:06:20,060 --> 01:06:21,022 Ni kazi default jina. 1608 01:06:21,022 --> 01:06:22,930 Haijalishi ambapo ni katika faili. 1609 01:06:22,930 --> 01:06:26,910 Lakini angalau sasa Clang ameona mchemraba kabla mimi matumizi yake. 1610 01:06:26,910 --> 01:06:28,500 Basi hebu angalia kama Clang ni furaha sasa. 1611 01:06:28,500 --> 01:06:31,410 Matokeo increment, haikuwa kukusanya wakati huu. 1612 01:06:31,410 --> 01:06:33,060 >> Hebu kukimbia increment. 1613 01:06:33,060 --> 01:06:34,810 Na hakika, inaonekana kuwa kazi. 1614 01:06:34,810 --> 01:06:36,810 Sasa, unaweza kuja na matukio ambapo hatimaye 1615 01:06:36,810 --> 01:06:38,650 siyo upembuzi yakinifu na kuweka kila kazi 1616 01:06:38,650 --> 01:06:39,740 juu ya kila kazi nyingine. 1617 01:06:39,740 --> 01:06:42,140 Utasikia kukwama katika kitanzi hii usio na ukweli wowote, 1618 01:06:42,140 --> 01:06:43,480 ambapo guy hii anataka kuwa hapa lakini hii 1619 01:06:43,480 --> 01:06:44,390 guy mahitaji ya kuwa huko. 1620 01:06:44,390 --> 01:06:45,830 Hivyo kwamba haifanyi kazi. 1621 01:06:45,830 --> 01:06:49,020 Hivyo nashiriki, C lina ufumbuzi zaidi ya kifahari. 1622 01:06:49,020 --> 01:06:50,790 Mimi naenda kuweka hii nyuma ambapo ilikuwa, kwa sababu tu mimi 1623 01:06:50,790 --> 01:06:53,390 wanapendelea, kama suala la kanuni, kwamba kuu zote kuwa 1624 01:06:53,390 --> 01:06:55,550 saa ya juu, kwa sababu ni nzuri tu na kuona nini mpango huu 1625 01:06:55,550 --> 01:06:56,920 gani na default. 1626 01:06:56,920 --> 01:06:58,950 Na kile Mimi naenda kufanya hapa ni kutangaza kile kinachoitwa 1627 01:06:58,950 --> 01:07:00,250 mfano. 1628 01:07:00,250 --> 01:07:05,730 Mimi naenda re-kutangaza mchemraba wangu kazi kwa literally 1629 01:07:05,730 --> 01:07:07,180 kuiga na pasting. 1630 01:07:07,180 --> 01:07:08,290 Kweli, kwamba si halisi. 1631 01:07:08,290 --> 01:07:13,060 Hivyo literally kuiga na pasting line 15 1632 01:07:13,060 --> 01:07:15,160 juu juu ya mstari 6. 1633 01:07:15,160 --> 01:07:17,010 Haijalishi nini mstari huu mwisho juu juu. 1634 01:07:17,010 --> 01:07:18,380 Hutokea kwa kuwa kwenye mstari 4. 1635 01:07:18,380 --> 01:07:19,950 Lakini haina kuwa kabla kuu. 1636 01:07:19,950 --> 01:07:21,150 Lakini taarifa tofauti. 1637 01:07:21,150 --> 01:07:24,100 Line ncha 4 kwa semicolon, ambayo ina maana hey, 1638 01:07:24,100 --> 01:07:27,510 Clang, kuchukua neno langu kwa ajili yake kuwa kuna kazi 1639 01:07:27,510 --> 01:07:31,350 kuitwa mchemraba kwamba inachukua int na anarudi int. 1640 01:07:31,350 --> 01:07:33,020 Lakini mimi nina gonna kukuambia nini ni bado. 1641 01:07:33,020 --> 01:07:35,180 Tu kujua kwamba mimi ahadi kukuambia hatimaye. 1642 01:07:35,180 --> 01:07:38,490 Na hakika, sasa ni sawa kwamba hii ni chini chini. 1643 01:07:38,490 --> 01:07:41,275 >> Hivyo hii kwa ujumla ni vizuri, kwa sababu kisha saa ya juu ya 1644 01:07:41,275 --> 01:07:44,240 faili yako, unaweza tu kumkasirisha mbali, haraka-moto, mstari mmoja 1645 01:07:44,240 --> 01:07:46,470 kila, nini majina ya kazi yako ni, nini wao 1646 01:07:46,470 --> 01:07:49,120 pembejeo ni, nini matokeo ya kazi zao ni. 1647 01:07:49,120 --> 01:07:52,210 Na kuwa wazi zaidi, pembejeo kwa ujumla maana yake hoja au 1648 01:07:52,210 --> 01:07:54,110 parameter, sawa. 1649 01:07:54,110 --> 01:07:56,890 Pato maana kurudi thamani, ni nini 1650 01:07:56,890 --> 01:07:58,700 mkono nyuma yangu. 1651 01:07:58,700 --> 01:08:03,420 Hivyo katika kesi hii hapa, mchemraba ametangazwa saa ya juu, lakini 1652 01:08:03,420 --> 01:08:06,940 defined, inayojulikana kama kutekelezwa, chini. 1653 01:08:06,940 --> 01:08:09,620 Hivyo sasa hebu rudi hapa na kuendesha upya hii. 1654 01:08:09,620 --> 01:08:13,430 Hivyo sasa napenda kwenda mbele na kuendesha upya kufanya, re-run increment. 1655 01:08:13,430 --> 01:08:16,500 Na sasa inaonekana kufanya kazi nzuri tu. 1656 01:08:16,500 --> 01:08:19,450 Hivyo sasa tunaweza kwenda mbele na sababu nje kitu kama 1657 01:08:19,450 --> 01:08:23,720 bia mfano katika toleo hii ya nne. 1658 01:08:23,720 --> 01:08:25,590 Hivyo basi mimi kitabu chini hapa. 1659 01:08:25,590 --> 01:08:28,149 Na taarifa kwamba mimi aina ya alichukua somo hili moyo tu sasa. 1660 01:08:28,149 --> 01:08:31,140 ukweli kwamba mimi alikuwa akiimba Stanza sawa tena na 1661 01:08:31,140 --> 01:08:34,130 tena na tena, sawa chorus line katika wimbo, waliona 1662 01:08:34,130 --> 01:08:36,439 like nini si mimi sababu ya kwamba nje katika kazi? 1663 01:08:36,439 --> 01:08:38,470 Na kwa kweli, hii inapaswa kuwa moja ya motisha. 1664 01:08:38,470 --> 01:08:40,960 Licha ya ukweli kwamba mtu mwingine katika dunia kutaka 1665 01:08:40,960 --> 01:08:42,390 kutumia kazi Cube - 1666 01:08:42,390 --> 01:08:44,560 hiyo ni sababu nzuri ya sababu kitu nje na kuandika yako 1667 01:08:44,560 --> 01:08:45,720 mwenyewe desturi kazi - 1668 01:08:45,720 --> 01:08:48,720 kama kuna chunk ya maadili katika mpango wako kwamba tu hufanya 1669 01:08:48,720 --> 01:08:51,370 dhana hisia, kwamba aina ya kutaka kuwapa 1670 01:08:51,370 --> 01:08:53,740 jina - kama katika kesi hii chorus, - 1671 01:08:53,740 --> 01:08:57,380 basi unaweza vile vile kuandika kwamba kama kazi tofauti. 1672 01:08:57,380 --> 01:08:59,560 Huna kuandika kila kitu katika kuu ikiwa ni tu 1673 01:08:59,560 --> 01:09:02,609 anahisi safi ili kujitenga nje na kuwapa jina. 1674 01:09:02,609 --> 01:09:05,529 >> Hivyo katika kesi hii hapa, taarifa kwamba mimi kuwa na maoni atop 1675 01:09:05,529 --> 01:09:06,859 kazi hii ya kwamba tu anaimba kuhusu 1676 01:09:06,859 --> 01:09:08,630 maalum ya idadi ya chupa. 1677 01:09:08,630 --> 01:09:10,609 Ona hapa kwamba mimi si haja ya simu hizi 1678 01:09:10,609 --> 01:09:12,520 mambo ya pembejeo na mazao. 1679 01:09:12,520 --> 01:09:16,090 Kwa kweli, wakati huo mimi tu kuitwa pembejeo yangu b kwa chupa. 1680 01:09:16,090 --> 01:09:19,960 Na ilani hapa, utupu anapendekeza nini? 1681 01:09:19,960 --> 01:09:21,309 Hiyo chorus - 1682 01:09:21,309 --> 01:09:22,660 Watazamaji: Je, si kurudi. 1683 01:09:22,660 --> 01:09:23,870 DAVID J. Malan: Je, si kurudi thamani. 1684 01:09:23,870 --> 01:09:26,800 Na kwa kweli, kazi hawana kurudi maadili. 1685 01:09:26,800 --> 01:09:28,060 Wanaweza tu kufanya kitu. 1686 01:09:28,060 --> 01:09:30,270 Wanaweza kuwa na kile kinachojulikana madhara, ambayo katika hii 1687 01:09:30,270 --> 01:09:33,109 kesi ni tu rundo zima la uchapishaji kwenye screen. 1688 01:09:33,109 --> 01:09:36,580 Hivyo taarifa kwamba kanuni hii hapa, mimi literally tu aliiba kutoka 1689 01:09:36,580 --> 01:09:37,680 mfano uliopita. 1690 01:09:37,680 --> 01:09:39,930 Tofauti tu ni badala ya kutumia i kama yangu 1691 01:09:39,930 --> 01:09:42,890 variable, mimi nina sasa kutumia b kama variable yangu. 1692 01:09:42,890 --> 01:09:45,880 Hivyo nina b chini hapa, nina b chini hapa, nina b 1693 01:09:45,880 --> 01:09:47,109 bala 1 chini hapa. 1694 01:09:47,109 --> 01:09:49,279 Lakini code ni sawa. 1695 01:09:49,279 --> 01:09:52,529 Lakini tu kuonyesha jinsi sasa tunaweza kutumia hii, basi mimi kwenda 1696 01:09:52,529 --> 01:09:56,780 mbele na kweli mabadiliko ya hii kuwa kwa kitanzi. 1697 01:09:56,780 --> 01:10:03,850 kwa (int i = n; i> n; i -). 1698 01:10:03,850 --> 01:10:06,230 >> Hivyo nimekuwa kuibiwa kwamba kutoka mfano wetu uliopita. 1699 01:10:06,230 --> 01:10:08,970 Hapo awali, ni katika mstari 37 kwamba napenda kuanza 1700 01:10:08,970 --> 01:10:10,640 kuimba wimbo huu annoying. 1701 01:10:10,640 --> 01:10:15,810 Lakini badala yake, mimi nina kwenda tu sasa kuwaita chorus ya i. 1702 01:10:15,810 --> 01:10:16,870 Done. 1703 01:10:16,870 --> 01:10:20,260 Hivyo sasa katika kila iteration ya kitanzi hii, mimi wito nyingine 1704 01:10:20,260 --> 01:10:22,220 kazi, chorus, kwamba mimi kilichotokea kwa kuandika. 1705 01:10:22,220 --> 01:10:24,110 Haikuandikwa na mtu mwingine miaka iliyopita. 1706 01:10:24,110 --> 01:10:27,930 Lakini chorus, wakati huo huo, anatumia printf na magazeti 1707 01:10:27,930 --> 01:10:29,840 nje hizi mistari minne. 1708 01:10:29,840 --> 01:10:32,720 Lakini ukweli kwamba mimi nina wito chorus tena na tena katika 1709 01:10:32,720 --> 01:10:35,900 kitanzi ina maana kwamba mimi nina kwenda kupata, mwishoni sana, 1710 01:10:35,900 --> 01:10:39,310 exact wimbo kama nina hivi sasa. 1711 01:10:39,310 --> 01:10:42,130 Hivyo katika muda mfupi, sasa kama mimi kuangalia nyuma katika code yangu, hata ingawa 1712 01:10:42,130 --> 01:10:44,240 functionally hii ni sawa, taarifa kwamba ni 1713 01:10:44,240 --> 01:10:46,020 mapya ya kupata hata zaidi someka. 1714 01:10:46,020 --> 01:10:48,410 Mimi si hasa kujua jinsi GetInt 1715 01:10:48,410 --> 01:10:49,250 ni kutekelezwa. 1716 01:10:49,250 --> 01:10:52,050 Kusema ukweli, sijui jinsi chorus ni kutekelezwa. 1717 01:10:52,050 --> 01:10:52,970 Lakini haijalishi kwangu. 1718 01:10:52,970 --> 01:10:55,620 Mimi sijali, kwa sababu sasa mimi unaweza aina ya, kama binadamu, kusoma 1719 01:10:55,620 --> 01:10:57,050 hii chini kutoka juu hadi. 1720 01:10:57,050 --> 01:10:59,950 Na kwa sababu kazi ni jina lake kutokana na yale waliyo 1721 01:10:59,950 --> 01:11:02,910 kufanya, code yangu inazidi someka. 1722 01:11:02,910 --> 01:11:05,190 Na kama mipango yetu kupata magumu zaidi - 1723 01:11:05,190 --> 01:11:07,220 na mwisho wa muhula, wewe utakuwa kuandika mamia ya mistari 1724 01:11:07,220 --> 01:11:10,970 ya maadili katika lugha kama PHP na JavaScript na kama - 1725 01:11:10,970 --> 01:11:13,550 utapata kwamba ni rahisi sana kuliko kuweka wimbo wa 1726 01:11:13,550 --> 01:11:14,080 nini umefanya kosa. 1727 01:11:14,080 --> 01:11:15,810 Na wakati wa kuanza kushirikiana na marafiki au 1728 01:11:15,810 --> 01:11:19,010 washirika au wafanyakazi wenzao, wewe utakuwa na uwezo wa kuandika zaidi 1729 01:11:19,010 --> 01:11:22,910 mkubwa mipango kwa kuanza mazoezi haya ya msingi 1730 01:11:22,910 --> 01:11:23,990 jengo vitalu. 1731 01:11:23,990 --> 01:11:25,550 >> Hivyo kwa kuwa alisema, kwa nini sio sisi kuiita siku? 1732 01:11:25,550 --> 01:11:27,190 Na sisi kuona juu ya Jumatano. 1733 01:11:27,190 --> 01:11:33,611 [Applause]