1 00:00:00,000 --> 00:00:00,000 2 00:00:00,000 --> 00:00:00,000 [Music kucheza] 3 00:00:00,000 --> 00:00:13,950 4 00:00:13,950 --> 00:00:16,240 >> DAVID J. Malan: zote haki, hii ni CS50. 5 00:00:16,240 --> 00:00:18,010 Na hii ni wiki moja. 6 00:00:18,010 --> 00:00:22,050 Hivyo kukumbuka kwamba mara ya mwisho katika wiki sifuri, sisi ililenga katika kufikiri computational. 7 00:00:22,050 --> 00:00:25,440 Na sisi zilianza kutoka kwamba kwa Scratch, programu graphical 8 00:00:25,440 --> 00:00:27,360 lugha kutoka kwa marafiki zetu katika MIT Media Lab. 9 00:00:27,360 --> 00:00:31,730 >> Na kwa Scratch, hatukufanya kuchunguza mawazo kama kazi, na masharti, 10 00:00:31,730 --> 00:00:35,210 na tanzi, na vigezo, na hata matukio, na nyuzi, na zaidi. 11 00:00:35,210 --> 00:00:37,880 Na leo, tunakwenda kuendelea kutumia mawazo hayo, 12 00:00:37,880 --> 00:00:40,630 na kwa kweli kuwapeleka kwa nafasi, lakini kutafsiri yao 13 00:00:40,630 --> 00:00:44,220 kwa lugha nyingine inajulikana kama C. Sasa, C ni lugha zaidi ya jadi. 14 00:00:44,220 --> 00:00:46,020 Ni ngazi ya chini lugha, kama wewe. 15 00:00:46,020 --> 00:00:47,300 >> Ni rena textual. 16 00:00:47,300 --> 00:00:49,910 Na hivyo katika mtazamo wa kwanza, ni wote kwenda kuangalia badala cryptic 17 00:00:49,910 --> 00:00:51,430 kama wewe sijawahi iliyowekwa mbele. 18 00:00:51,430 --> 00:00:53,530 Tunakwenda kuwa na nusu colons, na mabano, 19 00:00:53,530 --> 00:00:55,150 na curly braces, na zaidi. 20 00:00:55,150 --> 00:00:57,240 Lakini kutambua kwamba hata ingawa syntax ni 21 00:00:57,240 --> 00:01:00,600 kuhusu kuangalia kidogo usio wa kawaida kwa wengi wenu, kuona nyuma kwamba. 22 00:01:00,600 --> 00:01:03,220 Na kujaribu kuona mawazo kwamba ni kweli, utambuzi, 23 00:01:03,220 --> 00:01:06,750 kwa sababu hapa katika wiki moja nini tutaweza kuanza kufanya ni kulinganisha, 24 00:01:06,750 --> 00:01:08,980 awali, Scratch dhidi C. 25 00:01:08,980 --> 00:01:12,350 >> Hivyo, kwa mfano, kukumbuka kuwa wakati sisi kutekelezwa kwanza ya mipango yetu 26 00:01:12,350 --> 00:01:16,220 mara ya mwisho, tulikuwa na kuzuia kwamba inaonekana kitu kidogo kama hii wakati 27 00:01:16,220 --> 00:01:19,990 bendera ya kijani clicked, na kisha tulikuwa na vipande moja au zaidi puzzle chini yake, 28 00:01:19,990 --> 00:01:22,150 katika kesi hii, kusema, hello dunia. 29 00:01:22,150 --> 00:01:24,870 Hivyo, kwa kweli, katika Scratch, wakati mimi bonyeza bendera ya kijani kwamba 30 00:01:24,870 --> 00:01:27,390 kuendesha programu yangu, hivyo kusema, haya ni 31 00:01:27,390 --> 00:01:29,520 vitalu kwamba kupata kunyongwa, au kukimbia. 32 00:01:29,520 --> 00:01:32,230 Na, hasa, Scratch Alisema, hello, dunia. 33 00:01:32,230 --> 00:01:35,377 >> Sasa, mimi naweza kuwa maalum maneno tofauti hapa. 34 00:01:35,377 --> 00:01:37,960 Lakini tutaona kwamba, kwa hakika, wengi ya blocks-- hizi na kwa kweli, 35 00:01:37,960 --> 00:01:41,880 katika C functions-- wengi wanaweza kuwa parametrized au umeboreshwa 36 00:01:41,880 --> 00:01:43,150 kufanya mambo mbalimbali. 37 00:01:43,150 --> 00:01:45,520 Kwa kweli, katika C kama sisi unataka kubadilisha, sasa, 38 00:01:45,520 --> 00:01:47,567 mpango huu Scratch kwa lugha hii nyingine, 39 00:01:47,567 --> 00:01:49,650 tunakwenda kuandika kitu kidogo kama hii. 40 00:01:49,650 --> 00:01:52,540 >> Ni kweli kwamba, kuna baadhi ya usio wa kawaida syntax huko uwezekano mkubwa, int, 41 00:01:52,540 --> 00:01:54,380 na mabano, na utupu. 42 00:01:54,380 --> 00:01:57,740 Lakini printf-- ingawa wewe ungekuwa kufikiri ingekuwa tu kuwa magazeti. 43 00:01:57,740 --> 00:02:00,120 Lakini magazeti ina maana magazeti mpangilio, kama tutaweza hivi karibuni kuona. 44 00:02:00,120 --> 00:02:02,140 Hii literally magazeti kwa screen chochote 45 00:02:02,140 --> 00:02:05,990 ni ndani ya mabano hizo, ambayo bila shaka katika kesi hii ni, hello dunia. 46 00:02:05,990 --> 00:02:09,290 >> Lakini utasikia taarifa nyingine syntax, baadhi quotes mbili, 47 00:02:09,290 --> 00:02:11,890 kwamba mabano mwishoni, nusu koloni na kadhalika. 48 00:02:11,890 --> 00:02:15,027 Hivyo kuna kidogo ya uendeshaji, hivyo kusema, wote cognitively 49 00:02:15,027 --> 00:02:17,860 na syntactically, kwamba tunakwenda kuwa na kukumbuka kabla ya muda mrefu. 50 00:02:17,860 --> 00:02:20,720 Lakini kutambua kwamba pamoja na mazoezi, hii itakuwa kuanza kuruka nje saa wewe. 51 00:02:20,720 --> 00:02:24,920 >> Kwa kweli, hebu kuzingatia kwamba moja kazi specifically-- katika kesi hii, 52 00:02:24,920 --> 00:02:26,290 kusema hello dunia. 53 00:02:26,290 --> 00:02:27,560 Hivyo kusema ni kazi. 54 00:02:27,560 --> 00:02:31,320 Jambo dunia ni parameter yake, au hoja, customization yake. 55 00:02:31,320 --> 00:02:34,320 >> Na yanayolinagana katika C ni tu kwenda kuwa mstari huu moja hapa, 56 00:02:34,320 --> 00:02:38,710 ambapo printf ni sawa na, kusema, mara mbili alinukuliwa kamba, hello 57 00:02:38,710 --> 00:02:41,470 dunia ni sawa, bila shaka, kwa nini katika sanduku nyeupe huko. 58 00:02:41,470 --> 00:02:45,680 Na backslash n, ingawa kidogo ajabu na kukaa mbali na Scratch, 59 00:02:45,680 --> 00:02:49,380 tu ni kwenda kuwa na athari tutaweza kuona katika kompyuta, kama Mac yangu au PC, 60 00:02:49,380 --> 00:02:51,660 ya kusonga tu mshale wa mstari wa pili. 61 00:02:51,660 --> 00:02:53,970 Ni kama kupiga Kuingia kwenye keyboard yako. 62 00:02:53,970 --> 00:02:55,580 >> Hivyo tutaweza kuona kwamba tena kabla ya muda mrefu. 63 00:02:55,580 --> 00:02:58,640 Lakini kwanza, hebu tuangalie hii mfano mwingine katika kesi ya loops. 64 00:02:58,640 --> 00:03:02,830 Tulikuwa na hii milele kitanzi mara ya mwisho, ambayo ilikuwa mfululizo wa vipande puzzle 65 00:03:02,830 --> 00:03:05,490 kwamba alifanya kitu literally forever-- katika kesi hii, 66 00:03:05,490 --> 00:03:08,360 kusema, hello dunia, hello dunia, hujambo dunia, hello dunia. 67 00:03:08,360 --> 00:03:10,350 Hivyo ni usio kitanzi kwa kubuni. 68 00:03:10,350 --> 00:03:14,580 >> Katika C, kama tunataka kutekeleza hili wazo moja, tupate tu kufanya hivyo. 69 00:03:14,580 --> 00:03:19,570 Wakati wa kweli, printf hujambo world-- sasa wakati, tu semantically, aina ya 70 00:03:19,570 --> 00:03:23,090 conjures up wazo la kufanya kitu tena, na tena, na tena, 71 00:03:23,090 --> 00:03:23,980 na kwa muda gani? 72 00:03:23,980 --> 00:03:27,990 Naam, true-- kukumbuka kwamba kweli ni tu juu au moja. 73 00:03:27,990 --> 00:03:30,660 >> Na kweli ni, bila shaka, kweli daima. 74 00:03:30,660 --> 00:03:33,060 Hivyo ni aina ya maana Kauli tu kusema kweli. 75 00:03:33,060 --> 00:03:36,890 Lakini kwa kweli, hii ni makusudi, kwa sababu kama kweli ni kweli tu daima, 76 00:03:36,890 --> 00:03:40,850 kuliko wakati kweli ina maana tu, kama kidogo moja kwa moja, 77 00:03:40,850 --> 00:03:44,070 kwamba mistari ifuatayo ya kanuni katika kati ya wale braces curly 78 00:03:44,070 --> 00:03:48,320 lazima tu kutekeleza tena, na tena, na tena, na kamwe kweli kuacha. 79 00:03:48,320 --> 00:03:50,230 >> Lakini kama huna wanataka yako kitanzi na kuacha, kama sisi 80 00:03:50,230 --> 00:03:54,500 alivyofanya mara ya mwisho na kitu kama huu, kurudia kufuatia mara 50, 81 00:03:54,500 --> 00:03:57,700 katika C tunaweza kufanya hivyo kwa nini kuitwa kwa ajili ya loop-- keyword 82 00:03:57,700 --> 00:03:59,330 kutokuwa wakati, lakini kwa. 83 00:03:59,330 --> 00:04:03,290 Na kisha tuna baadhi syntax mpya hapa, na int i sawa 0, i chini ya 50, 84 00:04:03,290 --> 00:04:03,880 i ++. 85 00:04:03,880 --> 00:04:05,430 Na tutaweza kuja nyuma na kwamba. 86 00:04:05,430 --> 00:04:09,660 Lakini hii ni tu jinsi sisi ingekuwa kutafsiri seti ya vitalu Scratch 87 00:04:09,660 --> 00:04:13,079 kwa seti ya mistari C ya kanuni. 88 00:04:13,079 --> 00:04:14,450 >> Wakati huo huo, kufikiria vigezo. 89 00:04:14,450 --> 00:04:16,540 Na, kwa kweli, sisi tu aliona moja wakati iliyopita. 90 00:04:16,540 --> 00:04:21,220 Na katika kesi ya Scratch, kama sisi alitaka kutangaza variable kuitwa i 91 00:04:21,220 --> 00:04:24,590 kwa i kuwa integer, idadi tu, na tunataka kuweka kwa baadhi ya thamani, 92 00:04:24,590 --> 00:04:28,410 tunataka kutumia machungwa huu kuzuia here-- kuweka i kwa 0. 93 00:04:28,410 --> 00:04:30,800 >> Na tutaweza kuona leo na zaidi, tu kama wiki iliyopita, 94 00:04:30,800 --> 00:04:33,850 programmers kufanya karibu kila mara kuanza kuhesabu kutoka sifuri, kwa kweli 95 00:04:33,850 --> 00:04:34,950 kwa mkataba. 96 00:04:34,950 --> 00:04:37,250 Lakini pia kwa sababu wanakumbuka kutoka mjadala wetu wa binary, 97 00:04:37,250 --> 00:04:39,990 idadi ndogo unaweza kuwakilisha na idadi yoyote ya bits 98 00:04:39,990 --> 00:04:41,640 ni kwenda tu kuwa 0 yenyewe. 99 00:04:41,640 --> 00:04:45,190 Na hivyo tutaweza ujumla kuanza initializing hata vigezo yetu kwa 0. 100 00:04:45,190 --> 00:04:47,710 >> Na katika C kufanya hivyo, tunakwenda kusema int 101 00:04:47,710 --> 00:04:50,110 kwa integer, i tu kwa mkataba. 102 00:04:50,110 --> 00:04:53,390 Mimi naweza kuwa na kuitwa kutofautiana hii kitu chochote nataka, kama vile katika Scratch. 103 00:04:53,390 --> 00:04:57,770 Na kisha ni sawa na 0 tu chukueni thamani 0 kutoka kulia 104 00:04:57,770 --> 00:05:01,319 na kuiweka katika kutofautiana, au kuhifadhi kontena huko, upande wa kushoto. 105 00:05:01,319 --> 00:05:04,360 Na nusu koloni kama tutaweza see-- na tumeona chache ya already-- hizi 106 00:05:04,360 --> 00:05:06,530 ina maana tu mwisho wa mawazo. 107 00:05:06,530 --> 00:05:09,430 Kuendelea kwa kufanya kitu kingine juu ya mistari kwamba kufuata. 108 00:05:09,430 --> 00:05:11,330 >> Sasa, nini kuhusu maneno Boolean? 109 00:05:11,330 --> 00:05:14,320 Kumbuka kwamba katika Scratch, hawa walikuwa maneno 110 00:05:14,320 --> 00:05:16,740 ambayo ni aidha kweli au maswali false--, 111 00:05:16,740 --> 00:05:18,910 kwa kweli, kwamba ni ama kweli au uongo. 112 00:05:18,910 --> 00:05:21,960 Hivyo katika kesi ya Scratch, tupate kuuliza swali rahisi kama hii, 113 00:05:21,960 --> 00:05:24,586 ni i chini ya 50? 114 00:05:24,586 --> 00:05:25,710 Hivyo i, tena, ni integer. 115 00:05:25,710 --> 00:05:27,210 Labda tunayatumia katika mpango Scratch 116 00:05:27,210 --> 00:05:29,310 kuweka wimbo wa alama au kitu kama hicho. 117 00:05:29,310 --> 00:05:33,810 Hivyo hii syntax hapa katika Scratch ina maana tu, ni i chini ya 50? 118 00:05:33,810 --> 00:05:37,330 Naam, nashiriki, kuna kitu rahisi katika C. Na kutafsiri, 119 00:05:37,330 --> 00:05:41,780 huu tunataka tu kusema i chini ya 50, kwa kutumia ufunguo ukoo 120 00:05:41,780 --> 00:05:42,850 kwenye keyboard yako. 121 00:05:42,850 --> 00:05:45,141 >> Wakati huo huo, kama alitaka kusema kitu zaidi ya jumla, 122 00:05:45,141 --> 00:05:49,890 kama, vizuri, ni x chini ya y ambapo kila ya x na y ni wenyewe vigezo? 123 00:05:49,890 --> 00:05:52,280 Tunaweza kufanya kitu kimoja katika C, hivyo muda mrefu kama tumekuwa 124 00:05:52,280 --> 00:05:53,942 umba vigezo hivi tayari. 125 00:05:53,942 --> 00:05:55,650 Na tutaweza kuona jinsi ya kufanya hivyo kabla ya muda mrefu. 126 00:05:55,650 --> 00:05:58,590 Tunataka tu kusema x chini ya y. 127 00:05:58,590 --> 00:06:00,530 >> Hivyo wewe ni mapya ya kuona baadhi yanayofanana. 128 00:06:00,530 --> 00:06:03,490 Na wale folks ambaye alifanya Scratch walikuwa na shaka 129 00:06:03,490 --> 00:06:05,250 aliongoza kwa baadhi ya mawazo haya ya msingi. 130 00:06:05,250 --> 00:06:10,350 Na utaona aina hii ya syntax katika wengi languages-- 131 00:06:10,350 --> 00:06:12,160 sio tu Scratch, si tu C, lakini chatu, 132 00:06:12,160 --> 00:06:14,790 na JavaScript, na lugha nyingine bado. 133 00:06:14,790 --> 00:06:18,270 >> Hebu fikiria kujenga mwingine kutoka C, dhana ya hali, 134 00:06:18,270 --> 00:06:20,370 kufanya kitu kwa masharti. 135 00:06:20,370 --> 00:06:22,720 Kama kitu ni kweli, kufanya hivyo. 136 00:06:22,720 --> 00:06:24,457 Kama kitu kingine ni kweli, kufanya hivyo. 137 00:06:24,457 --> 00:06:27,040 Ni aina ya programu sawa na mgawanyiko katika barabara. 138 00:06:27,040 --> 00:06:29,730 Labda ni njia mbili uma, njia tatu uma, au zaidi. 139 00:06:29,730 --> 00:06:32,800 Na katika Scratch, tupate kuwa kuonekana kitu kama hiki. 140 00:06:32,800 --> 00:06:34,010 >> Hivyo hii moja moja kubwa. 141 00:06:34,010 --> 00:06:36,750 Lakini fikiria jamaa unyenyekevu wa mantiki. 142 00:06:36,750 --> 00:06:44,010 Kama x ni chini ya y, basi sema x ni chini kuliko y, mwingine kama x ni mkubwa kuliko y, 143 00:06:44,010 --> 00:06:46,230 basi sema x ni mkubwa kuliko y. 144 00:06:46,230 --> 00:06:48,300 Na kisha, kifikra, kama unadhani nyuma Scratch 145 00:06:48,300 --> 00:06:52,610 au tu binadamu yako mwenyewe Intuition, vizuri, kama x si mkuu zaidi kuliko y, na x 146 00:06:52,610 --> 00:06:57,000 si chini ya y, basi bila shaka x ni kwenda kuwa sawa na y. 147 00:06:57,000 --> 00:06:59,690 Hivyo katika kesi hii, na nesting wale vitalu Scratch, 148 00:06:59,690 --> 00:07:02,580 tunaweza kufikia tatu njia uma katika barabara? 149 00:07:02,580 --> 00:07:04,980 >> Wakati huo huo, kama tunataka kufanya hivyo katika C, ni arguably 150 00:07:04,980 --> 00:07:08,420 inaonekana simpler-- kidogo angalau mara moja kupata ukoo na syntax. 151 00:07:08,420 --> 00:07:12,050 Kama x ni chini ya y, printf x ni chini ya y. 152 00:07:12,050 --> 00:07:16,140 Mwingine kama x ni mkubwa kuliko y, printf x ni mkubwa kuliko y. 153 00:07:16,140 --> 00:07:21,210 Mwingine printf x ni sawa na y-- na, tena, na wale backslash mwisho tu 154 00:07:21,210 --> 00:07:24,160 kwa wale mistari mpya ili kwamba kama wewe kweli mbio aina hii ya mpango 155 00:07:24,160 --> 00:07:25,940 ingekuwa tu hoja mshale hatimaye 156 00:07:25,940 --> 00:07:28,100 mstari wa pili ya screen. 157 00:07:28,100 --> 00:07:31,270 >> Sasa, wakati huo huo Scratch alikuwa nyingine makala ya kisasa zaidi, tu 158 00:07:31,270 --> 00:07:34,320 baadhi ya ambayo tunakwenda awali hoja juu ya dunia ya C. 159 00:07:34,320 --> 00:07:37,010 Na mmoja wao alikuwa aitwaye orodha katika Scratch. 160 00:07:37,010 --> 00:07:39,100 Na hii ilikuwa maalum aina ya kutofautiana kwamba 161 00:07:39,100 --> 00:07:42,840 kuruhusiwa wewe kuhifadhi vitu mbalimbali katika nyuma, na nyuma, na nyuma, na nyuma. 162 00:07:42,840 --> 00:07:45,540 >> Katika C, haina orodha, per se, lakini kitu 163 00:07:45,540 --> 00:07:48,090 kwamba kwa ujumla zaidi aitwaye arrays, ingawa tutaweza 164 00:07:48,090 --> 00:07:50,590 kurudi baadaye muhula huu kwa kuangalia kitu 165 00:07:50,590 --> 00:07:52,780 aitwaye orodha, au kweli orodha wanaohusishwa. 166 00:07:52,780 --> 00:07:55,510 Lakini kwa sasa, karibu sawa katika C kwa ajili yetu 167 00:07:55,510 --> 00:07:57,345 ni kwenda kuwa kitu aitwaye safu. 168 00:07:57,345 --> 00:07:59,740 Na safu ni tu maalum aina ya kutofautiana 169 00:07:59,740 --> 00:08:03,160 kwamba utapata kuhifadhi data nyuma, na nyuma, na nyuma, kwa nyuma. 170 00:08:03,160 --> 00:08:05,840 >> Na kwa kweli, katika Scratch, kama sisi alitaka kupata 171 00:08:05,840 --> 00:08:09,030 sehemu ya kwanza ya safu au list-- na mimi nina kwenda kwa simu yake, 172 00:08:09,030 --> 00:08:13,600 kwa mkataba huo, argv, hoja vector, lakini zaidi juu ya kwamba kabla ya muda mrefu. 173 00:08:13,600 --> 00:08:17,090 Kama mimi nataka kupata saa kipengele kwanza ya argv, katika ulimwengu wa Scratch 174 00:08:17,090 --> 00:08:20,930 wewe kweli kufanya kawaida kuanza kuhesabu kutoka 1. 175 00:08:20,930 --> 00:08:22,850 >> Na hivyo mimi ili kupata item 1 ya argv. 176 00:08:22,850 --> 00:08:26,310 Hiyo tu jinsi MIT kutekelezwa dhana ya orodha. 177 00:08:26,310 --> 00:08:29,860 Lakini katika C, Mimi nina kwenda zaidi tu kusema tu, argv, 178 00:08:29,860 --> 00:08:32,758 ambayo tena ni jina la yangu list-- au kuwa wazi, safu. 179 00:08:32,758 --> 00:08:34,549 Na kama nataka kwanza vipengele, mimi nina kwenda 180 00:08:34,549 --> 00:08:37,890 kutumia mabano mraba, ambayo wewe wanaweza mara nyingi hutumika chini ya keyboard. 181 00:08:37,890 --> 00:08:40,150 >> Lakini 0 tu ina maana, kupata yangu ya kwanza. 182 00:08:40,150 --> 00:08:42,160 Hivyo juu ya tukio na kama wakati hupita, tunakwenda 183 00:08:42,160 --> 00:08:44,570 kabla ya kuanza kuona dichotomies haya kati Scratch na C, 184 00:08:44,570 --> 00:08:46,070 ambapo Scratch anatumia moja. 185 00:08:46,070 --> 00:08:47,670 Sisi katika C kutumia 0 hapa. 186 00:08:47,670 --> 00:08:49,420 Lakini utasikia haraka kuona mara tu kuelewa 187 00:08:49,420 --> 00:08:52,920 Misingi ya kila lugha, kwamba mambo haya kuanza kupata wote zaidi 188 00:08:52,920 --> 00:08:56,860 ukoo kwa njia ya mazoezi na mazoezi. 189 00:08:56,860 --> 00:08:59,700 >> Basi hebu kweli sasa tuangalie mpango. 190 00:08:59,700 --> 00:09:04,031 Hapa watakuwa wa kwanza wa C yetu chanzo kanuni kwa ajili ya programu kamili. 191 00:09:04,031 --> 00:09:06,280 Na mpango tunakwenda kutoa kwa kuzingatia 192 00:09:06,280 --> 00:09:09,340 ni moja hiyo ni sawa kwa kuwa mapema Scratch kipande. 193 00:09:09,340 --> 00:09:13,210 >> Hivyo katika hapa, tuna nini arguably C mpango rahisi 194 00:09:13,210 --> 00:09:15,410 unaweza kuandika kwamba kweli hana kitu. 195 00:09:15,410 --> 00:09:18,250 Sasa, tutaangalia siku za nyuma, kwa sasa, ina ni pamoja na, 196 00:09:18,250 --> 00:09:21,190 kiwango io.h, na hizi angle mabano, na int, na batili, 197 00:09:21,190 --> 00:09:22,840 na braces curly, na kadhalika. 198 00:09:22,840 --> 00:09:25,390 >> Na hebu tu kuzingatia je nini hasa intuitively, 199 00:09:25,390 --> 00:09:26,860 inaweza kuruka nje saa wewe tayari. 200 00:09:26,860 --> 00:09:30,300 Kwa kweli, kuu, sijui lazima kujua hii ni nini, 201 00:09:30,300 --> 00:09:34,580 lakini kiasi kama Scratch alikuwa na kwamba wakati bendera ya kijani clicked puzzle kipande, 202 00:09:34,580 --> 00:09:39,070 hivyo haina C kama lugha ya programu kuwa na kipande kuu ya kificho kwamba 203 00:09:39,070 --> 00:09:43,380 anapata kunyongwa na default. Na kwa kweli, ni literally kwenda kuitwa kuu. 204 00:09:43,380 --> 00:09:44,720 >> Hivyo kuu ni kazi. 205 00:09:44,720 --> 00:09:48,720 Na ni kazi maalum ambayo ipo katika C kwamba wakati wewe kukimbia mpango, 206 00:09:48,720 --> 00:09:52,720 ni kuu kwamba anapata inayoendeshwa na default. Katika ulimwengu wa Scratch, 207 00:09:52,720 --> 00:09:56,970 ilikuwa ni kawaida wakati kijani bendera clicked kwamba got kukimbia na default. 208 00:09:56,970 --> 00:10:01,130 >> Wakati huo huo, tumeona hii kabla, printf au magazeti mpangilio, hiyo ni 209 00:10:01,130 --> 00:10:05,620 kwenda kuwa kazi ambayo inakuja na C, pamoja na rundo zima la wengine, 210 00:10:05,620 --> 00:10:10,140 kwamba mapenzi kutoka muda na wakati tena, ili kufanya hasa 211 00:10:10,140 --> 00:10:12,450 kama jina lake anapendekeza, magazeti kitu. 212 00:10:12,450 --> 00:10:13,500 Je, tunataka magazeti? 213 00:10:13,500 --> 00:10:15,770 Naam, tutaweza kuona kwamba na wahusika enclosing 214 00:10:15,770 --> 00:10:18,680 kama these-- dunia hello, backslash n katika quotes mbili, 215 00:10:18,680 --> 00:10:23,040 tunaweza kujua printf hasa nini magazeti juu ya screen. 216 00:10:23,040 --> 00:10:26,430 >> Lakini ili kufanya kwamba, sisi kwa bahati mbaya 217 00:10:26,430 --> 00:10:30,010 haja ya kuchukua kitu ambacho ni tayari cryptic kwa sisi binadamu, 218 00:10:30,010 --> 00:10:34,510 lakini angalau ni kiasi fulani readable-- mkali ni pamoja na, kiwango io.h, int, 219 00:10:34,510 --> 00:10:39,340 kuu, utupu, printf, wote wa kichawi incantations sisi tu kuona kwenye screen. 220 00:10:39,340 --> 00:10:42,470 Lakini sisi kweli kuwa kwenda zaidi arcane bado. 221 00:10:42,470 --> 00:10:47,140 Sisi kwanza haja ya kutafsiri kanuni kwamba sisi kuandika katika mashine kanuni. 222 00:10:47,140 --> 00:10:51,370 Na kukumbuka kutoka wiki iliyopita kuwa mashine, angalau ndio tunajua hapa, 223 00:10:51,370 --> 00:10:54,450 mwisho wa siku tu kuelewa zeros na ndio. 224 00:10:54,450 --> 00:10:58,100 >> Na Mungu wangu, kama tulikuwa na kuandika haya zeros na ndio kwa kweli mpango, 225 00:10:58,100 --> 00:11:01,260 ingekuwa kwa haraka sana, kuchukua furaha nje ya kitu chochote. 226 00:11:01,260 --> 00:11:05,150 Lakini zinageuka, per wiki iliyopita, kuwa mipangilio hii ya zeros na ndio 227 00:11:05,150 --> 00:11:06,400 tu na maana ya pekee. 228 00:11:06,400 --> 00:11:08,500 Katika mazingira fulani, wapate maana idadi. 229 00:11:08,500 --> 00:11:11,840 >> Katika mazingira fulani, wapate maana barua, au rangi, au idadi yoyote 230 00:11:11,840 --> 00:11:14,710 ya uchukuaji nyingine huko juu. 231 00:11:14,710 --> 00:11:18,450 Lakini kama vile kompyuta yako ina CPU, Central Processing Unit, 232 00:11:18,450 --> 00:11:20,390 au bongo ndani ya kompyuta yako. 233 00:11:20,390 --> 00:11:22,240 Ni kawaida Intel ndani, kwa sababu hiyo ni 234 00:11:22,240 --> 00:11:24,900 moja ya makampuni makubwa kwamba inafanya CPUs kwa ajili ya kompyuta. 235 00:11:24,900 --> 00:11:28,910 >> Naam, Intel CPUs na wengine tu wameamua mapema 236 00:11:28,910 --> 00:11:33,970 kwamba baadhi ya mifumo ya zeros na ndio itakuwa na maana mambo maalum. 237 00:11:33,970 --> 00:11:37,040 chati fulani ya zeros na ndio itakuwa na maana, magazeti huu kwa screen, 238 00:11:37,040 --> 00:11:39,710 au kuongeza namba hizi mbili, au Ondoa namba hizi mbili, 239 00:11:39,710 --> 00:11:43,310 au hoja kipande cha data kutoka kumbukumbu ya kompyuta yangu zaidi ya hapa, 240 00:11:43,310 --> 00:11:47,870 au idadi yoyote ya ngazi nyingine ya chini sana, lakini hatimaye muhimu, shughuli. 241 00:11:47,870 --> 00:11:53,022 Lakini, nashiriki, sisi binadamu si kwenda haja ya kujua kiwango hiki cha habari. 242 00:11:53,022 --> 00:11:56,230 Hakika, tu kama mara ya mwisho, ambapo sisi yanayotumika tena, na tena, na tena, 243 00:11:56,230 --> 00:11:58,930 jengo kutoka ngazi ya chini sana primitives kama zeros na ndio 244 00:11:58,930 --> 00:12:01,160 na dhana ngazi za juu kama idadi, na barua, 245 00:12:01,160 --> 00:12:04,330 na rangi, na zaidi, sisi pia tunaweza kama programmers 246 00:12:04,330 --> 00:12:07,080 kusimama juu ya mabega ya wengine ambao wamekuja mbele yetu 247 00:12:07,080 --> 00:12:11,260 na kutumia programu ambayo wengine watu wameandika kabla us-- 248 00:12:11,260 --> 00:12:14,340 ambazo ni mipango aitwaye compilers. 249 00:12:14,340 --> 00:12:17,770 >> C ni lugha ambayo ni kawaida ulioandaliwa, 250 00:12:17,770 --> 00:12:22,130 ambayo ina maana waongofu kutoka chanzo kanuni kwa mashine code. 251 00:12:22,130 --> 00:12:25,230 Hasa, nini maana ya hii ni kwamba kama nimepata chanzo wako 252 00:12:25,230 --> 00:12:29,530 kificho kwamba wewe mwenyewe kuandika, kama sisi hivi karibuni mapenzi katika muda tu juu ya screen, 253 00:12:29,530 --> 00:12:33,140 na unataka kubadilisha hatimaye kwa mashine code-- 254 00:12:33,140 --> 00:12:37,100 wale zeros na ndio kwamba tu ya Mac au PC yako 255 00:12:37,100 --> 00:12:41,230 understands-- nimepata kwanza kulisha kwamba kanuni chanzo katika kama 256 00:12:41,230 --> 00:12:46,340 pembejeo kwa maalum programu inayoitwa compiler, 257 00:12:46,340 --> 00:12:48,974 pato la ambayo sisi wataona ni mashine kanuni. 258 00:12:48,974 --> 00:12:51,890 Na kwa kweli, mara ya mwisho sisi aliyesema kuhusu, kwa kweli, mwisho wa siku, 259 00:12:51,890 --> 00:12:52,610 kutatua tatizo. 260 00:12:52,610 --> 00:12:53,360 Nimepata pembejeo. 261 00:12:53,360 --> 00:12:54,318 Na nimepata mazao. 262 00:12:54,318 --> 00:12:56,560 Na nimepata aina fulani ya algorithm katikati. 263 00:12:56,560 --> 00:12:59,830 >> Algorithms unaweza hakika kuwa kutekelezwa katika programu, 264 00:12:59,830 --> 00:13:02,900 kama tuliona na pseudocode wiki iliyopita na kama tutaweza kuona na kanuni halisi 265 00:13:02,900 --> 00:13:03,490 wiki hii. 266 00:13:03,490 --> 00:13:06,430 Na hivyo compiler kweli tu ina seti ya algorithms ndani ya 267 00:13:06,430 --> 00:13:10,060 yake ili kujua jinsi ya kubadilisha maneno maalum, 268 00:13:10,060 --> 00:13:12,180 kama kuu, na printf, na wengine kwamba sisi tu 269 00:13:12,180 --> 00:13:17,620 aliona katika mifumo ya zeros na wale ambao Intel ndani na wengine CPUs 270 00:13:17,620 --> 00:13:20,020 kweli anaelewa. 271 00:13:20,020 --> 00:13:22,460 Hivyo ni jinsi gani sisi kufanya hili? 272 00:13:22,460 --> 00:13:24,470 Ambapo tunapata compiler? 273 00:13:24,470 --> 00:13:26,400 >> Wengi wetu hapa na Mac au PC. 274 00:13:26,400 --> 00:13:29,152 Na wewe ni mbio Mac OS, au Madirisha, au Linux, au Solaris, 275 00:13:29,152 --> 00:13:30,860 au idadi yoyote ya wengine mifumo ya uendeshaji. 276 00:13:30,860 --> 00:13:32,568 Na, kwa hakika, tunaweza kwenda nje kwenye mtandao 277 00:13:32,568 --> 00:13:35,710 na download compiler kwa Mac au PC yako 278 00:13:35,710 --> 00:13:37,360 kwa mfumo wako hasa uendeshaji. 279 00:13:37,360 --> 00:13:39,617 Lakini sote tungekuwa juu ya kurasa tofauti, hivyo kusema. 280 00:13:39,617 --> 00:13:41,450 Tunatarajia kuwa kidogo mazungumzo mbalimbali. 281 00:13:41,450 --> 00:13:43,210 Na mambo bila kufanya kazi wote ni sawa. 282 00:13:43,210 --> 00:13:45,280 Na, kwa hakika, siku hizi wengi wetu hawatumii 283 00:13:45,280 --> 00:13:47,516 programu kwamba anaendesha tu juu ya Laptops wetu. 284 00:13:47,516 --> 00:13:49,390 Badala yake, sisi kutumia kitu kama browser kwamba 285 00:13:49,390 --> 00:13:52,930 inaruhusu sisi kupata mtandao msingi maombi katika wingu. 286 00:13:52,930 --> 00:13:55,630 Na baadaye hii muhula, sisi kufanya hasa kwamba. 287 00:13:55,630 --> 00:13:59,660 Sisi kuandika maombi au programu kwa kutumia code-- si C, 288 00:13:59,660 --> 00:14:02,860 lakini lugha nyingine kama chatu na JavaScript-- kwamba kukimbia katika hilo wingu. 289 00:14:02,860 --> 00:14:05,860 >> Na kwa kufanya hivyo, sisi wenyewe wakati wa muhula 290 00:14:05,860 --> 00:14:11,890 kweli kutumia wingu makao mazingira inayojulikana kama CS50 IDE. 291 00:14:11,890 --> 00:14:16,030 Hii ni programu mtandao msingi mazingira, au maendeleo jumuishi 292 00:14:16,030 --> 00:14:20,610 mazingira, IDE, hiyo kujengwa atop baadhi wazi chanzo programu inayoitwa Cloud 9. 293 00:14:20,610 --> 00:14:22,966 Na tumekuwa alifanya baadhi ya ufundishaji simplifications yake 294 00:14:22,966 --> 00:14:25,840 ili kuficha baadhi ya vipengele katika wiki ya kwanza kwamba hatuna haja, 295 00:14:25,840 --> 00:14:27,770 baada ambayo unaweza yatangaza yao na kufanya zaidi 296 00:14:27,770 --> 00:14:29,400 kitu chochote unataka na mazingira. 297 00:14:29,400 --> 00:14:32,470 >> Na inaruhusu sisi, pia, kwa kabla ya kufunga programu fulani. 298 00:14:32,470 --> 00:14:35,330 Mambo kama kinachojulikana CS50 maktaba, ambayo tutaweza hivi karibuni kuona 299 00:14:35,330 --> 00:14:39,210 hutoa sisi katika C na baadhi utendaji ya ziada. 300 00:14:39,210 --> 00:14:44,392 Hivyo kama wewe kwenda kwa, hatimaye, CS50.io, wewe utakuwa ilisababisha kuingia katika, 301 00:14:44,392 --> 00:14:46,350 na mara moja wewe kufanya na kujenga akaunti kwa ajili ya bure, 302 00:14:46,350 --> 00:14:52,150 utakuwa na uwezo wa kupata mazingira kwamba inaonekana kabisa kama hii. 303 00:14:52,150 --> 00:14:53,760 >> Sasa, hii ni katika hali ya chaguo-msingi. 304 00:14:53,760 --> 00:14:55,650 Kila kitu ni nzuri na mkali juu ya screen. 305 00:14:55,650 --> 00:14:57,941 Wengi wetu wana tabia ya kazi ya CS50 kipande hiyo ni 306 00:14:57,941 --> 00:14:59,150 kabisa marehemu katika usiku. 307 00:14:59,150 --> 00:15:02,400 Na hivyo baadhi yenu wanaweza kupendelea kugeuka ndani mode usiku, hivyo kusema. 308 00:15:02,400 --> 00:15:05,550 >> Lakini, hatimaye, nini wewe kwenda kuona ndani ya CS50 IDE 309 00:15:05,550 --> 00:15:08,340 ni tatu tofauti areas-- eneo juu ambapo kushoto 310 00:15:08,340 --> 00:15:12,604 mafaili yako ni kwenda kuwa katika wingu, eneo juu ya haki juu 311 00:15:12,604 --> 00:15:14,270 ambapo kanuni yako ni kwenda kuwa editable. 312 00:15:14,270 --> 00:15:16,650 Wewe utakuwa na uwezo wa kufungua tabo mtu binafsi kwa ajili ya mpango wowote 313 00:15:16,650 --> 00:15:19,670 kwamba kuandika muhula huu ndani ya ya kwamba kona ya juu kulia. 314 00:15:19,670 --> 00:15:23,070 Na kisha zaidi arcanely, na bado kwa nguvu, 315 00:15:23,070 --> 00:15:26,610 ni kwenda kuwa jambo hili katika chini inayojulikana kama dirisha terminal. 316 00:15:26,610 --> 00:15:29,450 >> Hii ni shule ya zamani Amri Line Interface, 317 00:15:29,450 --> 00:15:32,240 au CLI, ambayo inaruhusu wewe kutekeleza amri 318 00:15:32,240 --> 00:15:35,260 juu ya computer-- katika kesi hii, kompyuta katika cloud-- 319 00:15:35,260 --> 00:15:39,090 kufanya mambo kama kukusanya code yako kutoka chanzo kanuni kwa mashine code, 320 00:15:39,090 --> 00:15:43,600 kuendesha programu yako, au kuanza yako mtandao wa kompyuta, au hii kufikia hifadhidata yako, 321 00:15:43,600 --> 00:15:47,454 na idadi yoyote ya mbinu nyingine kwamba tutaweza kuanza kutumia kabla ya muda mrefu. 322 00:15:47,454 --> 00:15:49,370 Lakini kufika huko, tuko kwenda kweli kuwa 323 00:15:49,370 --> 00:15:51,240 kwenda online na kuanza kucheza. 324 00:15:51,240 --> 00:15:54,399 Na kwa kufanya hivyo, hebu kwanza kuanza kuchezea kuu, 325 00:15:54,399 --> 00:15:55,940 na kuandika sehemu kuu ya mpango. 326 00:15:55,940 --> 00:15:59,170 Na hebu kutumia kwamba kazi printf, ambayo sisi kutumika hapo awali, 327 00:15:59,170 --> 00:16:01,050 tu kusema kitu. 328 00:16:01,050 --> 00:16:04,910 >> Hivyo hapa mimi tayari ndani ya CS50 IDE. 329 00:16:04,910 --> 00:16:05,930 Nimekuwa watumiaji katika mapema. 330 00:16:05,930 --> 00:16:07,360 Na mimi full kupimwa dirisha. 331 00:16:07,360 --> 00:16:09,670 Na hivyo, hatimaye, wewe pia katika matatizo Ujio 332 00:16:09,670 --> 00:16:12,960 kufuata hatua sawa kwamba itatoa online nyaraka. 333 00:16:12,960 --> 00:16:16,360 Hivyo huna haja ya kuwa na wasiwasi kuhusu absorbing kila hatua kidogo ya kiufundi 334 00:16:16,360 --> 00:16:17,730 kwamba mimi kufanya hapa leo. 335 00:16:17,730 --> 00:16:19,222 >> Lakini utasikia kupata screen kama hii. 336 00:16:19,222 --> 00:16:20,430 Mimi kutokea kwa kuwa katika hali ya usiku. 337 00:16:20,430 --> 00:16:22,944 Na unaweza kuangaza kila kitu up kwa mlemavu mode usiku. 338 00:16:22,944 --> 00:16:24,860 Na mwishoni mwa siku, wewe ni kwenda kuona 339 00:16:24,860 --> 00:16:30,090 hawa watatu kuu areas-- faili kisakuzi upande wa kushoto, tabo code juu juu, 340 00:16:30,090 --> 00:16:32,430 na terminal dirisha chini. 341 00:16:32,430 --> 00:16:34,890 >> Hebu kwenda mbele na kuandika mpango wangu wa kwanza. 342 00:16:34,890 --> 00:16:42,300 Mimi nina kwenda preemptively kwenda Picha, Ila, na kuokoa faili yangu kama hello.c. 343 00:16:42,300 --> 00:16:46,850 Hakika, kwa mkataba huo, yoyote sisi mpango kuandika kwamba imeandikwa katika lugha C 344 00:16:46,850 --> 00:16:49,739 lazima jina lake jambo dot c, kwa mkataba. 345 00:16:49,739 --> 00:16:53,030 Hivyo nina kwenda kwa jina hilo hello.c, kwa sababu Mimi nataka tu kusema hello dunia. 346 00:16:53,030 --> 00:16:54,820 Sasa mimi nina kwenda kuvuta nje na bonyeza Hifadhi. 347 00:16:54,820 --> 00:16:58,180 Na wote mimi hapa sasa ni tab katika ambayo siwezi kuanza kuandika code. 348 00:16:58,180 --> 00:16:59,490 >> Hii si kwenda kukusanya. 349 00:16:59,490 --> 00:17:00,300 Hii ina maana chochote. 350 00:17:00,300 --> 00:17:02,750 Na hivyo hata kama mimi waongofu huu kwa zeros na ndio, 351 00:17:02,750 --> 00:17:05,390 CPU ni kwenda kuwa hakuna Wazo nini kinaendelea karibu. 352 00:17:05,390 --> 00:17:14,170 Lakini kama mimi kuandika mistari ambayo hayana mechi juu na C ya conventions-- C kuwa, 353 00:17:14,170 --> 00:17:20,150 tena, hii language-- na syntax kama hii, printf hujambo world-- na nimekuwa 354 00:17:20,150 --> 00:17:22,210 wamezipata starehe na kufanya hivyo baada ya muda. 355 00:17:22,210 --> 00:17:24,510 Hivyo sidhani mimi alifanya yoyote typographical makosa. 356 00:17:24,510 --> 00:17:27,910 >> Lakini, invariably, kwanza kabisa muda wa kufanya hii, wewe. 357 00:17:27,910 --> 00:17:31,090 Na kile Mimi kuhusu kufanya nguvu sana vizuri kazi kwa ajili yenu mara ya kwanza. 358 00:17:31,090 --> 00:17:33,610 Na kwamba ni sawa kabisa, kwa sababu sasa hivi wewe 359 00:17:33,610 --> 00:17:37,662 ili tu kuona mengi yote ya upya, lakini baada ya muda mara moja kupata ukoo 360 00:17:37,662 --> 00:17:39,870 na mazingira haya, na Lugha hii, na wengine, 361 00:17:39,870 --> 00:17:42,370 itabidi kuanza kuona mambo ambayo ni aidha sahihi au sio sahihi. 362 00:17:42,370 --> 00:17:44,369 >> Na hii ni nini wenzake mafundisho na bila shaka 363 00:17:44,369 --> 00:17:48,780 wasaidizi kupata nzuri katika baada ya muda, ni spotting makosa au mende katika kanuni yako. 364 00:17:48,780 --> 00:17:52,110 Lakini mimi kudai kwamba kuna hakuna mende katika kanuni hii. 365 00:17:52,110 --> 00:17:53,990 Hivyo mimi sasa wanataka kuendesha mpango huu. 366 00:17:53,990 --> 00:17:57,440 >> Sasa juu ya Mac yangu mwenyewe au PC, mimi niko katika tabia ya icons kubonyeza mara mbili 367 00:17:57,440 --> 00:17:59,350 wakati nataka kukimbia baadhi ya mpango. 368 00:17:59,350 --> 00:18:01,080 Lakini si kwamba mfano hapa. 369 00:18:01,080 --> 00:18:04,570 Katika mazingira haya, ambayo ni CS50 IDE. 370 00:18:04,570 --> 00:18:07,192 Sisi ni kutumia uendeshaji mfumo uitwao Linux. 371 00:18:07,192 --> 00:18:09,900 Linux ni kukumbusha ya mwingine mfumo wa uendeshaji, kwa ujumla inayojulikana 372 00:18:09,900 --> 00:18:10,850 kama Unix. 373 00:18:10,850 --> 00:18:16,340 Na Linux ni hasa maalumu kwa ajili kuwa amri Line Mazingira, CLI. 374 00:18:16,340 --> 00:18:20,070 Sasa, sisi ni kutumia maalum ladha ya Linux aitwaye Ubuntu. 375 00:18:20,070 --> 00:18:22,770 Na Ubuntu ni tu baadhi ya toleo la Linux. 376 00:18:22,770 --> 00:18:27,900 >> Lakini hizi Linux ya siku hizi kufanya kweli kuja na interfaces user graphical. 377 00:18:27,900 --> 00:18:30,360 Na moja sisi kutokea kwa kutumia hapa ni mtandao msingi. 378 00:18:30,360 --> 00:18:32,735 Hivyo hii inaweza kuangalia hata tofauti kidogo kutoka kitu 379 00:18:32,735 --> 00:18:35,310 wewe mwenyewe anaweza kuwa kuonekana au kukimbia katika siku za nyuma. 380 00:18:35,310 --> 00:18:37,910 >> Hivyo mimi nina kwenda mbele sasa na kufanya yafuatayo. 381 00:18:37,910 --> 00:18:40,950 Nimekuwa kuokolewa faili hili kama hello.c. 382 00:18:40,950 --> 00:18:47,350 Mimi nina kwenda mbele na aina clanghello.c Hivyo Clang 383 00:18:47,350 --> 00:18:49,850 kwa lugha C ni compiler. 384 00:18:49,850 --> 00:18:51,952 Ni kabla ya imewekwa katika CS50 IDE. 385 00:18:51,952 --> 00:18:54,910 Na unaweza kabisa kushusha na kufunga hii juu ya Mac yako mwenyewe au PC. 386 00:18:54,910 --> 00:18:57,910 >> Lakini tena, bila kuwa yote ya kabla ya Configuration aliyokutendea. 387 00:18:57,910 --> 00:19:00,940 Hivyo kwa sasa, mimi nina tu kwenda kukimbia clanghello.c. 388 00:19:00,940 --> 00:19:03,240 Na sasa taarifa syntax hii hapa hatimaye 389 00:19:03,240 --> 00:19:06,930 kutambua tu ina maana kwamba mimi niko katika folder au directory aitwaye Workspace. 390 00:19:06,930 --> 00:19:11,030 Hii ishara ya dola ni mkataba kwa maana, aina amri yako hapa. 391 00:19:11,030 --> 00:19:14,560 >> Ni kile kinachoitwa haraka, tu kwa mkataba ni dola ishara. 392 00:19:14,560 --> 00:19:19,130 Na kama mimi kwenda mbele sasa na bonyeza Kuingia, kitu inaonekana kuwa kilichotokea. 393 00:19:19,130 --> 00:19:20,930 Lakini hiyo ni kweli jambo zuri. 394 00:19:20,930 --> 00:19:23,650 chini ambayo hufanyika kwenye screen yako, zaidi ya uwezekano 395 00:19:23,650 --> 00:19:26,710 kanuni yako ni kuwa sahihi, angalau syntactically. 396 00:19:26,710 --> 00:19:29,120 >> Hivyo kama nataka kukimbia hii mpango, nini mimi? 397 00:19:29,120 --> 00:19:33,770 Naam, zinageuka kuwa jina default kwa mkataba 398 00:19:33,770 --> 00:19:38,854 kwa ajili ya programu wakati huna bayana jina kwa ajili ya mpango wako ni a.out. 399 00:19:38,854 --> 00:19:41,270 Na syntax hii pia, utasikia kupata ukoo na kabla ya muda mrefu. 400 00:19:41,270 --> 00:19:47,500 >> Dot kufyeka ina maana tu, hey, CS50 IDE, kukimbia mpango ujulikanao a.out 401 00:19:47,500 --> 00:19:49,400 hiyo ni ndani ya saraka yangu ya sasa. 402 00:19:49,400 --> 00:19:51,520 dot Hiyo ina maana saraka ya sasa. 403 00:19:51,520 --> 00:19:55,040 Na tutaweza kuona nini wengine Utaratibu kama ya wahusika ina maana kabla ya muda mrefu. 404 00:19:55,040 --> 00:19:58,430 >> Hivyo hapa sisi kwenda, Ingieni, hujambo dunia. 405 00:19:58,430 --> 00:20:00,080 Na wewe utakuwa taarifa, kwamba ni nini kilichotokea? 406 00:20:00,080 --> 00:20:01,580 Si tu kwamba ni magazeti hujambo dunia. 407 00:20:01,580 --> 00:20:05,990 Pia wakiongozwa mshale wa mstari wa pili. 408 00:20:05,990 --> 00:20:07,160 >> Na kwa nini ni kwamba? 409 00:20:07,160 --> 00:20:12,400 Ilikuwa kificho kwamba sisi aliandika kabla ya kile kwamba kuhakikisha kwamba mshale ingekuwa 410 00:20:12,400 --> 00:20:14,882 kwenda kwenye mstari baada ya hapo? 411 00:20:14,882 --> 00:20:16,840 Mapenzi kitu kuhusu kompyuta ni ni kwenda tu 412 00:20:16,840 --> 00:20:18,570 kufanya literally nini kuwaambia ni kufanya. 413 00:20:18,570 --> 00:20:26,050 >> Hivyo kama wewe kuwaambia ni printf hello, comma, nafasi, dunia, karibu quote, 414 00:20:26,050 --> 00:20:29,090 ni literally tu kwenda magazeti wahusika hao. 415 00:20:29,090 --> 00:20:31,980 Lakini nilikuwa na tabia hii maalum mwishoni, kukumbuka, backslash n. 416 00:20:31,980 --> 00:20:34,230 Na kwamba ni nini kuhakikisha kwamba tabia alikwenda 417 00:20:34,230 --> 00:20:36,570 mstari wa pili ya screen. 418 00:20:36,570 --> 00:20:38,097 >> Kwa kweli, napenda kwenda na kufanya hivyo. 419 00:20:38,097 --> 00:20:39,430 Hebu kwenda mbele na kufuta hii. 420 00:20:39,430 --> 00:20:41,180 Sasa, taarifa kwamba juu ya screen yangu kuna 421 00:20:41,180 --> 00:20:42,890 kidogo nyekundu mwanga katika tab kuonyesha, 422 00:20:42,890 --> 00:20:45,047 hey, umefanya si kuokolewa faili yako. 423 00:20:45,047 --> 00:20:47,880 Hivyo mimi nina kwenda mbele na udhibiti S au amri S, kuokoa faili. 424 00:20:47,880 --> 00:20:51,130 Sasa ni goes-- alikwenda kwa ajili ya kijani moment--. 425 00:20:51,130 --> 00:20:53,760 Na sasa ni nyuma tu kuwa icon karibu. 426 00:20:53,760 --> 00:21:01,860 >> Kama mimi sasa kukimbia clanghello.c tena, Kuingia, dot kufyeka, a.out, Ingieni, 427 00:21:01,860 --> 00:21:04,110 utaona kwamba bado kazi. 428 00:21:04,110 --> 00:21:06,020 Lakini ni arguably buggy kidogo. 429 00:21:06,020 --> 00:21:08,714 Hivi sasa, workspace yangu prompt--, na kisha kuwa ishara ya dola, 430 00:21:08,714 --> 00:21:10,880 na kisha prompt-- yangu halisi yote ni juu ya mstari huo. 431 00:21:10,880 --> 00:21:14,540 Hivyo bila ya shaka hii mdudu aesthetic, hata kama ni kweli mantiki mdudu. 432 00:21:14,540 --> 00:21:16,250 >> Hivyo nina kwenda kuondoa nini mimi tu alifanya. 433 00:21:16,250 --> 00:21:18,560 Mimi nina kwenda rerun a.out. 434 00:21:18,560 --> 00:21:22,710 Ilani nimekuwa aliongeza newline tabia nyuma. 435 00:21:22,710 --> 00:21:24,280 Nimekuwa kuokolewa file. 436 00:21:24,280 --> 00:21:31,630 >> Hivyo nina kwenda kwa rerun a.out, and-- Dammit, mdudu, mdudu maana makosa. 437 00:21:31,630 --> 00:21:35,020 Hivyo mdudu ni kwamba hata kama Mimi aliongeza backslash n huko, 438 00:21:35,020 --> 00:21:41,180 re-kuokolewa, re-mbio mpango, tabia ilikuwa sawa. 439 00:21:41,180 --> 00:21:42,640 Kwa nini ingekuwa kwamba kuwa? 440 00:21:42,640 --> 00:21:43,910 >> Mimi kukosa hatua, haki? 441 00:21:43,910 --> 00:21:47,620 Hiyo hatua muhimu mapema ni kwamba una to-- wakati mabadiliko ya chanzo kanuni yako, 442 00:21:47,620 --> 00:21:49,610 ni zamu nje pia kukimbia hivyo kwa njia ya compiler 443 00:21:49,610 --> 00:21:51,102 tena ili kupata mpya mashine kanuni. 444 00:21:51,102 --> 00:21:52,810 Na mashine kanuni, zeros na ndio, 445 00:21:52,810 --> 00:21:56,260 ni kwenda kuwa karibu sawa, lakini si kikamilifu hivyo, kwa sababu tunahitaji, 446 00:21:56,260 --> 00:21:57,510 bila shaka, kwamba mstari mpya. 447 00:21:57,510 --> 00:22:02,640 >> Hivyo kurekebisha hili, mimi nina kwenda haja kwa rerun clanghello.c, kuingia, dot 448 00:22:02,640 --> 00:22:03,800 kufyeka, a.out. 449 00:22:03,800 --> 00:22:08,402 Na sasa, hello dunia ni nyuma ambapo mimi kutarajia kuwa ni. 450 00:22:08,402 --> 00:22:09,610 Hivyo hii yote ni mzuri na mwema. 451 00:22:09,610 --> 00:22:13,150 Lakini a.out ni jina pretty kijinga kwa mpango, ingawa hutokea kwa kuwa, 452 00:22:13,150 --> 00:22:16,530 kwa sababu za kihistoria, default-- maana kusanyiko mazao. 453 00:22:16,530 --> 00:22:20,780 >> Lakini basi mimi kwenda mbele hapa na kufanya hivyo kwa njia tofauti. 454 00:22:20,780 --> 00:22:24,760 Nataka yangu mpango hujambo dunia kwa kweli kuitwa hello. 455 00:22:24,760 --> 00:22:28,320 Hivyo kama ilivyokuwa icon kwenye yangu desktop, bila kuwa na a.out. 456 00:22:28,320 --> 00:22:29,730 Ingekuwa kuitwa hello. 457 00:22:29,730 --> 00:22:33,660 >> Hivyo kufanya hili, ni zamu nje kwamba Clang, kama mipango mingi, 458 00:22:33,660 --> 00:22:37,980 inasaidia hoja mstari amri, au bendera, au swichi, 459 00:22:37,980 --> 00:22:39,600 ambayo tu kuchangia tabia yake. 460 00:22:39,600 --> 00:22:45,160 Hasa, Clang inasaidia dash o bendera, ambayo kisha inachukua neno la pili. 461 00:22:45,160 --> 00:22:48,190 Katika kesi hiyo, mimi itabidi kiholela, lakini sababu, simu yake hello. 462 00:22:48,190 --> 00:22:50,710 Lakini mimi naweza kuiita kitu chochote Nataka, isipokuwa a.out, ambayo 463 00:22:50,710 --> 00:22:52,390 Itakuwa badala badala ya uhakika. 464 00:22:52,390 --> 00:22:55,640 >> Na kisha tu kutaja jina ya faili mimi wanataka kukusanya. 465 00:22:55,640 --> 00:22:59,190 Hivyo sasa ingawa mwanzoni amri mimi bado kuwa Clang, 466 00:22:59,190 --> 00:23:01,410 mwishoni mwa amri Mimi bado wana jina la faili, 467 00:23:01,410 --> 00:23:05,520 Mimi sasa kuwa na hizi mstari amri hoja, hizi bendera kwamba ni kusema, 468 00:23:05,520 --> 00:23:11,180 oh, kwa njia, pato-o, faili aitwaye hello, si default a.out. 469 00:23:11,180 --> 00:23:13,810 >> Hivyo kama mimi hit Enter sasa, hakuna kitu inaonekana kuwa kilichotokea. 470 00:23:13,810 --> 00:23:17,900 Na, hata hivyo, sasa siwezi kufanya dot kufyeka hello. 471 00:23:17,900 --> 00:23:19,089 Hivyo ni mpango huo. 472 00:23:19,089 --> 00:23:21,380 zeros na ndio ni kufanana mwisho wa siku. 473 00:23:21,380 --> 00:23:24,210 >> Lakini wao uko katika wawili tofauti files-- a.out, 474 00:23:24,210 --> 00:23:26,490 ambayo ni toleo la kwanza na tu upumbavu jina lake, 475 00:23:26,490 --> 00:23:30,250 na sasa hello, ambayo ni mengi zaidi ya kulazimisha jina kwa ajili ya mpango. 476 00:23:30,250 --> 00:23:33,195 Lakini, kwa uaminifu, mimi kamwe kwenda kukumbuka hii tena, 477 00:23:33,195 --> 00:23:34,070 na tena, na tena. 478 00:23:34,070 --> 00:23:36,411 Na, kwa kweli, kama sisi kuandika mipango ngumu zaidi, 479 00:23:36,411 --> 00:23:38,160 amri uko kwenda na kuandika 480 00:23:38,160 --> 00:23:40,920 ni kwenda kupata hata ngumu zaidi bado. 481 00:23:40,920 --> 00:23:41,940 >> Na hivyo si kuwa na wasiwasi. 482 00:23:41,940 --> 00:23:46,220 Ni zinageuka kuwa binadamu kabla sisi wamebaini wao pia 483 00:23:46,220 --> 00:23:47,530 alikuwa na haya tatizo exact. 484 00:23:47,530 --> 00:23:50,900 Wao pia hakuwa na kufurahia kuwa na aina haki muda mrefu, arcane amri, 485 00:23:50,900 --> 00:23:52,200 achilia kukumbuka. 486 00:23:52,200 --> 00:23:56,070 Na hivyo binadamu mbele yetu kuwa alifanya programu nyingine ambayo iwe rahisi 487 00:23:56,070 --> 00:23:57,670 kukusanya programu yako. 488 00:23:57,670 --> 00:24:01,609 >> Na, kwa hakika, mmoja kama mpango inaitwa Tengeneza. 489 00:24:01,609 --> 00:24:03,150 Hivyo mimi nina kwenda mbele na kufanya hili. 490 00:24:03,150 --> 00:24:05,691 Mimi nina kwenda tengua kila kitu mimi tu alifanya katika njia zifuatazo. 491 00:24:05,691 --> 00:24:07,690 Hebu aina LS. 492 00:24:07,690 --> 00:24:10,980 Na wewe utakuwa taarifa tatu things-- a.out, na nyota, hello 493 00:24:10,980 --> 00:24:12,810 na nyota, na hello.c. 494 00:24:12,810 --> 00:24:14,730 Hopefully, hii lazima kuwa ni kidogo Intuitive, 495 00:24:14,730 --> 00:24:18,220 kadiri mapema kulikuwa na kitu katika workspace hii. 496 00:24:18,220 --> 00:24:21,240 Kulikuwa na kitu kuwa nilikuwa umba mpaka tulianza darasani. 497 00:24:21,240 --> 00:24:22,840 >> Na mimi kuundwa hello.c. 498 00:24:22,840 --> 00:24:24,544 Mimi kisha ulioandaliwa yake, na kuitwa ni a.out. 499 00:24:24,544 --> 00:24:27,460 Na kisha mimi ulioandaliwa hivyo tena kidogo tofauti na kuitwa ni hello. 500 00:24:27,460 --> 00:24:32,830 Hivyo nina mafaili tatu katika orodha hii, katika folda hii inaitwa Workspace. 501 00:24:32,830 --> 00:24:35,005 Sasa, naona kuwa vilevile kama mimi kuvuta nje kweli. 502 00:24:35,005 --> 00:24:37,530 >> Kama mimi kuvuta nje hapa na tuangalie mkono kwamba juu kulia 503 00:24:37,530 --> 00:24:39,940 kona, kama alivyoahidi kushoto upande mkono wa screen yako 504 00:24:39,940 --> 00:24:42,990 ni daima kwenda kwa kuonyesha nini katika akaunti yako, nini 505 00:24:42,990 --> 00:24:44,790 ndani ya CS50 IDE. 506 00:24:44,790 --> 00:24:46,680 Na kuna files tatu huko. 507 00:24:46,680 --> 00:24:49,070 >> Hivyo nataka kujikwamua a.out na hello. 508 00:24:49,070 --> 00:24:51,275 Na kama waweza kufikiria intuitively, wewe 509 00:24:51,275 --> 00:24:53,400 inaweza kutatua ya kudhibiti click au haki click juu ya hili. 510 00:24:53,400 --> 00:24:54,590 Na hii orodha kidogo pops up. 511 00:24:54,590 --> 00:24:57,170 Unaweza kushusha faili, kukimbia hivyo, hakikisho hilo, mahitaji, kubadili jina, 512 00:24:57,170 --> 00:24:57,700 au kile si. 513 00:24:57,700 --> 00:25:00,260 >> Na mimi naweza kufuta tu, na ingekuwa kwenda mbali. 514 00:25:00,260 --> 00:25:05,260 Lakini hebu kufanya mambo kwa amri line kwa sasa, ili kupata starehe 515 00:25:05,260 --> 00:25:07,010 na hii, na kufanya yafuatayo. 516 00:25:07,010 --> 00:25:12,345 Mimi nina kwenda mbele na kuondoa a.out kwa kuandika literally rma.out. 517 00:25:12,345 --> 00:25:14,890 Zinageuka, amri kwa kuondoa au kufuta kitu, 518 00:25:14,890 --> 00:25:16,280 si kuondoa au kufuta. 519 00:25:16,280 --> 00:25:21,260 >> Ni ufupi zaidi RM, tu kuokoa baadhi keystrokes, na hit Enter. 520 00:25:21,260 --> 00:25:24,707 Sasa tunakwenda kuwa fulani isiyoeleweka kirahisi kuondoa mara kwa mara file a.out. 521 00:25:24,707 --> 00:25:27,040 Mimi si kweli kujua nini kawaida file itakuwa bado. 522 00:25:27,040 --> 00:25:28,660 Lakini mimi wanataka kuondoa hiyo. 523 00:25:28,660 --> 00:25:30,150 >> Hivyo mimi nina kwenda aina y kwa ndiyo. 524 00:25:30,150 --> 00:25:31,940 Au mimi naweza aina yake nje, na hit Enter. 525 00:25:31,940 --> 00:25:33,440 Na, tena, kitu inaonekana kutokea. 526 00:25:33,440 --> 00:25:35,840 Lakini hiyo ni, kwa ujumla, ni jambo jema. 527 00:25:35,840 --> 00:25:40,490 >> Kama mimi aina LS wakati huu, nifanye kuona? 528 00:25:40,490 --> 00:25:44,930 Hopefully, hello tu na hello.c. 529 00:25:44,930 --> 00:25:47,286 Sasa, kama kando, utasikia taarifa nyota hii, kinyota, 530 00:25:47,286 --> 00:25:48,660 hiyo ni mwishoni mwa mipango yangu. 531 00:25:48,660 --> 00:25:50,201 Na wao ni pia kuonyesha juu katika kijani. 532 00:25:50,201 --> 00:25:53,970 Hiyo ni njia tu CS50 IDE ya ya cluing wewe katika ukweli 533 00:25:53,970 --> 00:25:55,280 kwamba si kwamba chanzo kanuni. 534 00:25:55,280 --> 00:25:58,880 Hiyo ni executable, runnable mpango kwamba unaweza kweli kuendesha 535 00:25:58,880 --> 00:26:01,020 kwa kufanya dot kufyeka, na kisha ni jina. 536 00:26:01,020 --> 00:26:05,860 >> Sasa, basi mimi kwenda mbele na kuondoa huu, rm hello, Enter, kuondoa mara kwa mara 537 00:26:05,860 --> 00:26:08,010 faili hello, ndiyo. 538 00:26:08,010 --> 00:26:11,180 Na sasa kama mimi aina LS, tuko nyuma kwa hello.c. 539 00:26:11,180 --> 00:26:13,917 Jaribu kufuta yako halisi chanzo kanuni. 540 00:26:13,917 --> 00:26:16,250 Hata ingawa kuna makala kujengwa katika CS50 IDE ambapo 541 00:26:16,250 --> 00:26:19,870 unaweza kwenda kupitia historia yako marekebisho na rewind katika wakati kama ajali 542 00:26:19,870 --> 00:26:23,660 kufuta kitu, kufanya kukumbuka kama kwa papo hizi ndiyo au hapana, 543 00:26:23,660 --> 00:26:25,381 ya nini hasa unataka kufanya. 544 00:26:25,381 --> 00:26:27,380 Na nikienda hadi juu mkono wa kushoto kona hapa, 545 00:26:27,380 --> 00:26:30,696 wote kwamba bado ni hello.c. 546 00:26:30,696 --> 00:26:32,570 Hivyo kuna mashada ya amri nyingine kwamba wewe 547 00:26:32,570 --> 00:26:37,550 unaweza nitafanya katika ulimwengu wa Linux, moja ambayo ni, tena, Tengeneza. 548 00:26:37,550 --> 00:26:40,180 Na tunakwenda Tengeneza mpango wangu sasa kama ifuatavyo. 549 00:26:40,180 --> 00:26:43,270 >> Badala ya kufanya Clang, badala ya kufanya Clang-o, 550 00:26:43,270 --> 00:26:45,860 Mimi nina kwenda tu literally aina, kufanya hello. 551 00:26:45,860 --> 00:26:49,630 Na sasa taarifa, mimi niko si kuandika kufanya hello.c. 552 00:26:49,630 --> 00:26:50,910 Mimi kuandika kufanya hello. 553 00:26:50,910 --> 00:26:54,840 >> Na mpango huu Matokeo kwamba kuja na CS50 IDE, na zaidi 554 00:26:54,840 --> 00:26:57,090 ujumla na Linux, ni mpango kwamba ni 555 00:26:57,090 --> 00:26:59,120 kwenda kufanya programu inayoitwa Hello. 556 00:26:59,120 --> 00:27:03,680 Na itakuja kwa kudhani, kwa mkataba, kwamba kama mpango huu unaweza kufanywa, 557 00:27:03,680 --> 00:27:09,030 itakuja kuwa alifanya kutoka chanzo kificho faili kuishia katika dot c, hello.c. 558 00:27:09,030 --> 00:27:12,210 >> Hivyo kama mimi hit Enter sasa, taarifa kwamba amri kwamba anapata kunyongwa 559 00:27:12,210 --> 00:27:14,340 ni kweli hata tena kabla kuliko kabla. 560 00:27:14,340 --> 00:27:16,670 Na kwamba kwa sababu tumekuwa preconfigured CS50 IDE kuwa na 561 00:27:16,670 --> 00:27:19,878 baadhi ya vipengele ziada kujengwa katika kwamba hatuna haja bado tu, lakini hapo. 562 00:27:19,878 --> 00:27:23,470 Lakini jambo muhimu kutambua ni sasa nina mpango Hello. 563 00:27:23,470 --> 00:27:27,080 >> Kama mimi aina LS tena, mimi kuwa na mpango hello. 564 00:27:27,080 --> 00:27:32,070 Na siwezi kuendesha kwa dot kufyeka a.out, hapana, 565 00:27:32,070 --> 00:27:35,590 kwa sababu hatua nzima ya hii zoezi mara dot kufyeka hello. 566 00:27:35,590 --> 00:27:38,089 Na sasa nina wangu mpango hujambo dunia. 567 00:27:38,089 --> 00:27:39,880 Hivyo kusonga mbele, tuko karibu kila mara tu 568 00:27:39,880 --> 00:27:42,088 kwenda kukusanya mipango yetu kutumia amri Tengeneza. 569 00:27:42,088 --> 00:27:45,300 Na kisha tunakwenda kukimbia nao na dot kufyeka, na jina wa programu hiyo. 570 00:27:45,300 --> 00:27:49,610 Lakini kutambua nini Kufanya anafanya kwa wewe, ni yenyewe si compiler. 571 00:27:49,610 --> 00:27:53,310 Ni tu mpango urahisi kwamba anajua jinsi ya kusababisha compiler 572 00:27:53,310 --> 00:27:56,470 kuendesha hivyo kuwa wewe mwenyewe unaweza kuitumia. 573 00:27:56,470 --> 00:28:00,220 >> Nini amri nyingine zipo katika Linux, na kwa upande CS50 IDE? 574 00:28:00,220 --> 00:28:03,107 Tutaweza hivi karibuni kuona kwamba kuna CD amri, Change City. 575 00:28:03,107 --> 00:28:05,190 Hii utapata ndani ya yako amri Mpya interface 576 00:28:05,190 --> 00:28:07,610 kusonga mbele, na nyuma, na kufungua folders tofauti 577 00:28:07,610 --> 00:28:08,860 bila kutumia mouse yako. 578 00:28:08,860 --> 00:28:12,470 >> LS tuliona, ambayo inasimamia kwa orodha files katika saraka ya sasa. 579 00:28:12,470 --> 00:28:14,650 Kufanya Dir, unaweza pengine kuanza kwa kudai 580 00:28:14,650 --> 00:28:18,150 nini haya yana maana now-- kufanya directory, kama unataka kujenga folder. 581 00:28:18,150 --> 00:28:21,270 RM kwa kuondoa, RM Dir kwa kuondoa saraka na hayo, 582 00:28:21,270 --> 00:28:24,160 tena, ni mstari amri EQUIVALENTS ya nini 583 00:28:24,160 --> 00:28:26,945 anaweza kufanya katika CS50 IDE na panya yako. 584 00:28:26,945 --> 00:28:28,820 Lakini utasikia hivi karibuni kupata kwamba wakati mwingine ni tu 585 00:28:28,820 --> 00:28:30,610 mengi kwa kasi ya kufanya mambo kwa keyboard, 586 00:28:30,610 --> 00:28:33,690 na hatimaye mengi na nguvu zaidi. 587 00:28:33,690 --> 00:28:36,440 >> Lakini ni vigumu wanasema kuwa chochote tumekuwa kufanya hivyo mbali 588 00:28:36,440 --> 00:28:39,990 ni kwamba wote wenye nguvu, wakati wote tumekuwa akisema ni, hujambo dunia. 589 00:28:39,990 --> 00:28:43,740 Na, kwa kweli, mimi hardcoded Maneno hujambo dunia katika mpango wangu. 590 00:28:43,740 --> 00:28:45,530 Hakuna mabadiliko bado. 591 00:28:45,530 --> 00:28:49,320 Scratch ilikuwa utaratibu wa ukubwa zaidi ya kuvutia wiki iliyopita. 592 00:28:49,320 --> 00:28:51,220 >> Na hivyo hebu kupata huko. 593 00:28:51,220 --> 00:28:55,310 Hebu kuchukua hatua kuelekea kuwa na njia ya baadhi ya kazi hizi. 594 00:28:55,310 --> 00:28:59,470 Hivyo si tu haina C kuja na printf, na mashada ya kazi nyingine 595 00:28:59,470 --> 00:29:01,850 baadhi ya ambayo tutaweza kuona baada ya muda, haina 596 00:29:01,850 --> 00:29:05,760 kufanya hivyo wote kuwa rahisi haki nje ya lango katika kupata user pembejeo. 597 00:29:05,760 --> 00:29:08,140 >> Kwa kweli, moja ya udhaifu ya lugha kama C, 598 00:29:08,140 --> 00:29:10,140 na hata Java na bado wengine, ni kwamba hana 599 00:29:10,140 --> 00:29:15,860 kufanya hivyo ni rahisi kupata tu vitu kama integers kutoka kwa watumiaji, au masharti, maneno, 600 00:29:15,860 --> 00:29:19,970 na misemo, basi mambo peke yake kama yaliyo hatua maadili, au idadi halisi 601 00:29:19,970 --> 00:29:23,240 ikiwa na pointi decimal, na kwa kweli idadi ya muda mrefu, kama tutaweza hivi karibuni kuona. 602 00:29:23,240 --> 00:29:27,000 Hivyo hii orodha ya kazi hapa, hizi ni kama vipande nyingine Scratch puzzle 603 00:29:27,000 --> 00:29:31,090 kwamba tuna kabla ya imewekwa katika CS50 IDE kwamba tutaweza kutumia kwa muda wa wiki chache 604 00:29:31,090 --> 00:29:34,010 kama magurudumu mafunzo ya kila aina, na hatimaye kuchukua mbali, na kuangalia 605 00:29:34,010 --> 00:29:37,210 chini ya kofia, pengine, katika jinsi mambo haya yanatekelezwa. 606 00:29:37,210 --> 00:29:40,460 >> Lakini kwa kufanya hivyo, hebu kweli kuandika mpango. 607 00:29:40,460 --> 00:29:41,770 Hebu kwenda mbele sasa. 608 00:29:41,770 --> 00:29:44,750 Na mimi nina kwenda kujenga mpya faili kwa kubonyeza hii pamoja kidogo, 609 00:29:44,750 --> 00:29:45,970 na kubonyeza New faili. 610 00:29:45,970 --> 00:29:49,250 >> Mimi nina kwenda kuokoa hii ijayo moja kama, hebu sema, string.c, 611 00:29:49,250 --> 00:29:50,750 kwa sababu nataka kucheza na masharti. 612 00:29:50,750 --> 00:29:53,990 Na kamba katika C ni tu mlolongo wa wahusika. 613 00:29:53,990 --> 00:29:56,090 Hivyo sasa hebu kwenda mbele na kufanya yafuatayo. 614 00:29:56,090 --> 00:30:01,204 >> Pamoja na kiwango IO.h-- na ni zamu nje kiwango IO, 615 00:30:01,204 --> 00:30:03,360 IO tu ina maana pembejeo na mazao. 616 00:30:03,360 --> 00:30:05,920 Hivyo zinageuka kuwa mstari huu hapa ni nini 617 00:30:05,920 --> 00:30:08,140 ni jirani yetu kwa kutumia printf. 618 00:30:08,140 --> 00:30:10,410 Printf, bila shaka, inazalisha pato. 619 00:30:10,410 --> 00:30:15,000 Hivyo ili kutumia printf, ni zamu nje unaweza kuwa na hii mstari wa kanuni 620 00:30:15,000 --> 00:30:16,040 katika juu ya faili yako. 621 00:30:16,040 --> 00:30:18,456 >> Na tutaweza kuja nyuma kwa nini lilikuwa na maana kuwa kabla ya muda mrefu. 622 00:30:18,456 --> 00:30:20,400 Ni zinageuka kuwa katika mpango wowote C mimi kuandika, 623 00:30:20,400 --> 00:30:23,640 Mimi nimepata kuanza kwa kificho kwamba inaonekana kama hii. 624 00:30:23,640 --> 00:30:26,860 Na wewe utakuwa taarifa CS50 IDE, na maendeleo nyingine jumuishi 625 00:30:26,860 --> 00:30:30,050 mazingira kama hayo, ni kwenda kujaribu kama bora 626 00:30:30,050 --> 00:30:31,780 wanaweza kumaliza mawazo yako. 627 00:30:31,780 --> 00:30:35,930 Kwa kweli, wakati iliyopita kama mimi tengua nini mimi tu alifanya, mimi hit Enter. 628 00:30:35,930 --> 00:30:39,160 >> Mimi kisha kugonga wazi curly brace, kugonga kuingia tena. 629 00:30:39,160 --> 00:30:40,430 Na ni kumaliza mawazo yangu. 630 00:30:40,430 --> 00:30:45,140 Ni alinipa mstari wa mwezi, indented si chini kwa sababu nzuri Stylistic tutaweza kuona. 631 00:30:45,140 --> 00:30:48,559 Na kisha ni moja kwa moja alinipa kwamba brace curly kumaliza mawazo yangu. 632 00:30:48,559 --> 00:30:50,600 Sasa, haina daima nadhani nini unataka kufanya. 633 00:30:50,600 --> 00:30:53,620 Lakini kwa sehemu kubwa, ni gani kuokoa baadhi keystrokes. 634 00:30:53,620 --> 00:30:59,560 Hivyo wakati iliyopita, sisi mbio program-- hii hello, dunia, na kisha ulioandaliwa yake, 635 00:30:59,560 --> 00:31:00,460 na kisha akakimbia yake. 636 00:31:00,460 --> 00:31:01,867 Lakini hakuna mabadiliko hapa. 637 00:31:01,867 --> 00:31:03,700 Nini kama sisi alitaka kufanya kitu tofauti? 638 00:31:03,700 --> 00:31:07,630 Naam, ni nini kama nilitaka kweli kupata kamba kutoka kwa mtumiaji? 639 00:31:07,630 --> 00:31:11,250 Mimi naenda kutumia puzzle kipande aitwaye hasa that-- kupata kamba. 640 00:31:11,250 --> 00:31:15,860 >> Zamu nje katika C kwamba wakati wewe hawataki kutoa pembejeo kwa puzzle kipande, 641 00:31:15,860 --> 00:31:19,360 au vizuri zaidi kwa kazi, literally tu kufanya mabano wazi, 642 00:31:19,360 --> 00:31:20,430 karibu mabano. 643 00:31:20,430 --> 00:31:25,540 Hivyo ni kana kwamba kuna hakuna sanduku nyeupe ya aina ndani. 644 00:31:25,540 --> 00:31:27,720 kusema block kabla alikuwa nyeupe kidogo sanduku. 645 00:31:27,720 --> 00:31:29,660 Hatuna kwamba sanduku nyeupe sasa. 646 00:31:29,660 --> 00:31:33,310 >> Lakini wakati mimi wito kupata kamba, I unataka kuweka matokeo mahali fulani. 647 00:31:33,310 --> 00:31:37,680 Hivyo dhana ya kawaida sana katika C ni piga kazi, kama kupata kamba hapa, 648 00:31:37,680 --> 00:31:41,070 na kisha kuhifadhi kurudi thamani yake. 649 00:31:41,070 --> 00:31:44,450 Ni matokeo ya yake juhudi katika kitu fulani. 650 00:31:44,450 --> 00:31:47,630 >> Na ni nini kujenga katika programu, 651 00:31:47,630 --> 00:31:53,450 iwe katika Scratch au sasa C, kwamba sisi unaweza kutumia ili kweli kuhifadhi kitu? 652 00:31:53,450 --> 00:31:55,990 Kuitwa ni kutofautiana, haki? 653 00:31:55,990 --> 00:32:00,320 Na katika Scratch, sisi si kweli huduma ya kile kinachoendelea katika vigezo. 654 00:32:00,320 --> 00:32:02,170 >> Lakini katika kesi hii, sisi kwa kweli kufanya. 655 00:32:02,170 --> 00:32:03,719 Mimi nina kwenda kusema kamba. 656 00:32:03,719 --> 00:32:05,510 Na kisha mimi naweza kuita hii kitu chochote nataka. 657 00:32:05,510 --> 00:32:08,340 Mimi nina kwenda kuiita jina, anapata kupata kamba. 658 00:32:08,340 --> 00:32:10,250 >> Na sasa hata kama wewe mpya kidogo kwa hii, 659 00:32:10,250 --> 00:32:11,984 taarifa kwamba mimi nina anakosa baadhi ya kina. 660 00:32:11,984 --> 00:32:13,150 Mimi nina kusahau nusu koloni. 661 00:32:13,150 --> 00:32:14,400 Mimi haja ya kumaliza wazo hili. 662 00:32:14,400 --> 00:32:17,480 Hivyo nina kwenda kwa hoja ya mshale wangu, na kugonga nusu koloni huko. 663 00:32:17,480 --> 00:32:19,130 Na tuna nini mimi tu kosa gani? 664 00:32:19,130 --> 00:32:21,440 Katika mstari wa kanuni, namba 5 kwa wakati huu, 665 00:32:21,440 --> 00:32:23,799 Mimi nina wito kupata kamba na pembejeo hakuna. 666 00:32:23,799 --> 00:32:26,090 Hivyo hakuna nyeupe kidogo sanduku kama Save kuzuia ina. 667 00:32:26,090 --> 00:32:28,590 >> Mimi tu kusema, hey, kompyuta, kupata nami kamba. 668 00:32:28,590 --> 00:32:31,390 ishara sawa si kweli ishara sawa, per se. 669 00:32:31,390 --> 00:32:33,790 Ni zoezi operator, ambayo ina maana, 670 00:32:33,790 --> 00:32:37,860 hey, kompyuta, hoja thamani kutoka kulia juu ya mkono wa kushoto. 671 00:32:37,860 --> 00:32:40,480 Na katika upande wa kushoto, nina zifuatazo. 672 00:32:40,480 --> 00:32:43,580 >> Hey, kompyuta, nipe kamba mlolongo wa wahusika. 673 00:32:43,580 --> 00:32:45,637 Na wito kwamba Jina kamba. 674 00:32:45,637 --> 00:32:47,220 Na mimi si hata kuwa na kuiita Jina. 675 00:32:47,220 --> 00:32:49,970 >> Mimi naweza kuiita, conventionally, kitu kama S, 676 00:32:49,970 --> 00:32:52,900 kiasi kama sisi kutumika i kwa kuwaita kutofautiana i. 677 00:32:52,900 --> 00:32:54,829 Lakini sasa mimi haja ya kufanya kitu kwa hayo. 678 00:32:54,829 --> 00:32:57,370 Itakuwa pretty kijinga kujaribu kuandaa kanuni hii, kukimbia 679 00:32:57,370 --> 00:32:59,410 huu mpango, ingawa Mimi nina kupata kamba, 680 00:32:59,410 --> 00:33:01,580 kwa sababu ni bado tu kwenda kusema hujambo dunia. 681 00:33:01,580 --> 00:33:06,140 >> Lakini nini kama mimi wanataka kubadili hali hii. 682 00:33:06,140 --> 00:33:07,940 Kwa nini si mimi kufanya hili? 683 00:33:07,940 --> 00:33:11,632 Asilimia s, comma s. 684 00:33:11,632 --> 00:33:13,090 Na hii ni kidogo cryptic bado. 685 00:33:13,090 --> 00:33:15,560 >> Hivyo basi mimi kufanya vigezo yangu wazi zaidi. 686 00:33:15,560 --> 00:33:17,510 Napenda kutaja Jina huu kutofautiana. 687 00:33:17,510 --> 00:33:20,230 Na hebu angalia kama hatuwezi tease mbali nini kinatokea hapa. 688 00:33:20,230 --> 00:33:22,770 >> Hivyo kwenye mstari tano, mimi nina kupata kamba. 689 00:33:22,770 --> 00:33:25,620 Na mimi nina kuhifadhi kwamba kamba, chochote mtumiaji typed katika 690 00:33:25,620 --> 00:33:28,430 katika keyboard yake, katika variable kuitwa Jina. 691 00:33:28,430 --> 00:33:30,590 Na zinageuka kuwa printf hana tu 692 00:33:30,590 --> 00:33:34,220 kuchukua moja hoja katika mara mbili quotes, pembejeo moja katika quotes mbili. 693 00:33:34,220 --> 00:33:39,100 >> Ni inaweza kuchukua mbili, au tatu, au zaidi, kama kwamba pili, au ya tatu, au nne, 694 00:33:39,100 --> 00:33:42,320 ni majina yote ya vigezo, au hasa maadili, 695 00:33:42,320 --> 00:33:48,610 kwamba unataka kuziba katika, dynamically, kwamba kamba katika quotes. 696 00:33:48,610 --> 00:33:52,110 Kwa maneno mengine, kile itakuwa ni makosa na hili? 697 00:33:52,110 --> 00:33:57,920 Kama mimi tu kusema habari jina, backslash n, kuokolewa faili yangu, ulioandaliwa kanuni yangu, 698 00:33:57,920 --> 00:34:01,660 na mbio hii, nini kitatokea? 699 00:34:01,660 --> 00:34:05,139 >> Ni tu kwenda kusema, hello jina, literally N-A-M-E, 700 00:34:05,139 --> 00:34:07,900 ambayo ni aina ya kijinga kwa sababu ni hakuna tofauti na ulimwengu. 701 00:34:07,900 --> 00:34:10,400 Hivyo chochote katika quotes ni nini literally anapata kuchapishwa. 702 00:34:10,400 --> 00:34:12,520 Hivyo kama mimi nataka kuwa na placeholder huko, 703 00:34:12,520 --> 00:34:14,422 Mimi kwa kweli haja ya kutumia baadhi syntax maalum. 704 00:34:14,422 --> 00:34:17,380 Na zinageuka kama kusoma nyaraka kwa ajili ya kazi printf, 705 00:34:17,380 --> 00:34:21,320 itakuambia kwamba kama wewe kutumia asilimia s, 706 00:34:21,320 --> 00:34:23,920 unaweza kubadilisha thamani kama ifuatavyo. 707 00:34:23,920 --> 00:34:27,190 >> Baada ya comma baada ya kuwa mara mbili quote, wewe tu 708 00:34:27,190 --> 00:34:29,179 kuandika jina la kutofautiana kwamba unataka 709 00:34:29,179 --> 00:34:33,790 kuziba katika ndani ya muundo kwamba kanuni, au format specifier, 710 00:34:33,790 --> 00:34:35,469 asilimia s kwa masharti. 711 00:34:35,469 --> 00:34:39,190 Na sasa kama mimi wameweza kuokolewa faili yangu, Mimi kwenda nyuma chini ya terminal yangu. 712 00:34:39,190 --> 00:34:42,870 Na mimi aina Tengeneza Kamba, kwa sababu, tena, jina la hii 713 00:34:42,870 --> 00:34:45,510 file kwamba mimi waliamua kabla ni string.c. 714 00:34:45,510 --> 00:34:48,510 >> Hivyo mimi nina kwenda kusema Tengeneza Kamba, kuingia. 715 00:34:48,510 --> 00:34:51,550 Oh wangu wema, kuangalia yote ya makosa tumekuwa alifanya tayari. 716 00:34:51,550 --> 00:34:55,540 Na hii is-- nini, hii ni kweli kama sita, saba line mpango? 717 00:34:55,540 --> 00:34:57,790 Hivyo hii ni mahali ambapo unaweza sana haraka kupata balaa. 718 00:34:57,790 --> 00:35:00,890 >> Hii dirisha terminal ina sasa tu regurgitated 719 00:35:00,890 --> 00:35:03,230 idadi kubwa ya ujumbe wa makosa. 720 00:35:03,230 --> 00:35:07,560 Hakika, sina makosa zaidi ujumbe kuliko mimi mstari wa kanuni. 721 00:35:07,560 --> 00:35:08,680 Kwa hiyo kile kinachoendelea? 722 00:35:08,680 --> 00:35:10,920 >> Naam, mkakati bora kufanya wakati wowote 723 00:35:10,920 --> 00:35:13,710 je kukutana balaa orodha ya makosa kama hicho, 724 00:35:13,710 --> 00:35:16,690 ni kitabu nyuma, kuangalia kwa amri wewe tu mbio, ambayo katika kesi yangu 725 00:35:16,690 --> 00:35:18,020 ni kufanya kamba. 726 00:35:18,020 --> 00:35:21,630 Kuangalia nini kufanya hivyo, na hiyo ni kwamba muda mrefu Clang amri, hakuna mpango mkubwa huko. 727 00:35:21,630 --> 00:35:22,950 >> Lakini nyekundu ni mbaya. 728 00:35:22,950 --> 00:35:24,750 Green ni kujaribu kuwa mpole na kusaidia. 729 00:35:24,750 --> 00:35:26,140 Lakini bado ni mbaya, katika kesi hii. 730 00:35:26,140 --> 00:35:27,510 Lakini ambapo ni mbaya? 731 00:35:27,510 --> 00:35:31,450 >> String.c, line tano, tabia ya tano. 732 00:35:31,450 --> 00:35:32,930 Hivyo hii ni tu ya kawaida mkataba. 733 00:35:32,930 --> 00:35:36,060 Kitu colon kitu ina maana line idadi na idadi tabia. 734 00:35:36,060 --> 00:35:41,080 Kosa, matumizi ya Undeclared kitambulisho kamba. 735 00:35:41,080 --> 00:35:42,900 Je, maana ya kiwango katika? 736 00:35:42,900 --> 00:35:45,530 >> Hivyo, kwa bahati mbaya, Clang ni kujaribu kuwa na manufaa. 737 00:35:45,530 --> 00:35:46,850 Lakini ni makosa, katika kesi hii. 738 00:35:46,850 --> 00:35:49,350 Hakuna, Clang, sikuwa na maana kiwango cha IO. 739 00:35:49,350 --> 00:35:51,070 Mimi maana kwamba kwenye mstari mmoja, ndiyo. 740 00:35:51,070 --> 00:35:53,420 >> Lakini mstari tano ni hii moja hapa. 741 00:35:53,420 --> 00:35:57,040 Na Clang hana kuelewa S-T-R-I-N-G. 742 00:35:57,040 --> 00:36:01,490 Ni Undeclared kitambulisho, a neno ni tu hajawahi kuona mbele. 743 00:36:01,490 --> 00:36:05,730 Na kwamba kwa sababu C, lugha sisi ni kuandika code katika haki sasa, 744 00:36:05,730 --> 00:36:08,070 hana vigezo inaitwa masharti. 745 00:36:08,070 --> 00:36:11,380 >> Hana, by default, msaada kitu kinachoitwa kamba. 746 00:36:11,380 --> 00:36:16,750 Hiyo ni CS50 kipande cha jargon, lakini kawaida sana. 747 00:36:16,750 --> 00:36:18,600 Lakini siwezi kurekebisha hili kama ifuatavyo. 748 00:36:18,600 --> 00:36:22,090 >> Kama mimi kuongeza line moja ya kanuni juu ya mpango huu, 749 00:36:22,090 --> 00:36:27,890 pamoja na CS50.h, ambayo ni faili mwingine mahali fulani ndani ya CS50 IDE, mahali fulani 750 00:36:27,890 --> 00:36:30,820 kwenye gari ngumu, hivyo kusema, ya Ubuntu mfumo wa uendeshaji 751 00:36:30,820 --> 00:36:33,590 kwamba mimi nina mbio, kwamba ni file hiyo ni 752 00:36:33,590 --> 00:36:38,740 kwenda kufundisha uendeshaji mfumo kile kamba ni, tu 753 00:36:38,740 --> 00:36:41,930 kama kiwango io.h ni file katika mfumo wa uendeshaji ambayo ni 754 00:36:41,930 --> 00:36:44,430 kwenda kufundisha ni nini printf. 755 00:36:44,430 --> 00:36:46,810 >> Hakika, sisi ingekuwa waliopata ujumbe sawa sana 756 00:36:46,810 --> 00:36:50,600 kama IO alikiri kiwango cha Io.h na walijaribu kutumia printf. 757 00:36:50,600 --> 00:36:53,632 Hivyo mimi nina kwenda mbele na tu kuchukua Control L wazi screen yangu. 758 00:36:53,632 --> 00:36:56,340 Au unaweza aina wazi na itakuwa tu wazi dirisha terminal. 759 00:36:56,340 --> 00:36:58,020 Lakini bado unaweza kitabu nyuma katika wakati. 760 00:36:58,020 --> 00:37:01,100 >> Na mimi nina kwenda kwa rerun Tengeneza String. 761 00:37:01,100 --> 00:37:03,660 Kuvuka vidole yangu wakati huu, kuingia. 762 00:37:03,660 --> 00:37:05,380 Oh, Mungu wangu, ni kazi. 763 00:37:05,380 --> 00:37:09,280 inaonyesha me kwa muda mrefu cryptic amri kwamba ni nini Kufanya yanayotokana kupitia Clang, 764 00:37:09,280 --> 00:37:10,460 lakini ujumbe hakuna kosa. 765 00:37:10,460 --> 00:37:12,460 Hivyo kutambua, ingawa unaweza kupata kabisa 766 00:37:12,460 --> 00:37:14,480 kuzidiwa na idadi ya ujumbe wa makosa, 767 00:37:14,480 --> 00:37:17,540 ni tu inaweza kuwa hii kuachia annoying athari, ambapo Clang haelewi 768 00:37:17,540 --> 00:37:19,620 jambo moja, maana yake basi haelewi neno ijayo, 769 00:37:19,620 --> 00:37:20,560 au mstari wa pili. 770 00:37:20,560 --> 00:37:22,850 Na hivyo tu kwama kooni juu ya kanuni yako. 771 00:37:22,850 --> 00:37:24,440 Lakini fix inaweza kuwa rahisi. 772 00:37:24,440 --> 00:37:27,822 Na hivyo daima kuzingatia mstari wa kwanza kabisa wa pato. 773 00:37:27,822 --> 00:37:29,530 Na kama huna kuelewa, tu kuangalia 774 00:37:29,530 --> 00:37:32,480 kwa maneno ambayo inaweza kuwa dalili, na idadi line, 775 00:37:32,480 --> 00:37:34,650 na tabia, ambapo kwamba kosa inaweza kuwa. 776 00:37:34,650 --> 00:37:40,328 >> Sasa basi mimi kwenda mbele na aina dot kufyeka, kamba, kuingia. 777 00:37:40,328 --> 00:37:44,340 Hm, siyo kusema hello kitu chochote. 778 00:37:44,340 --> 00:37:46,210 Kwa nini? 779 00:37:46,210 --> 00:37:48,170 Naam, kukumbuka, ambapo ni mbio? 780 00:37:48,170 --> 00:37:53,730 >> Ni pengine kukwama kwa wakati katika kitanzi, kama wewe, juu ya mstari sita, 781 00:37:53,730 --> 00:37:56,950 kwa sababu Kupata String kwa kubuni, zilizoandikwa na wafanyakazi CS50, 782 00:37:56,950 --> 00:38:00,350 ni halisi maana ya kukaa tu hapo kusubiri, na kusubiri, 783 00:38:00,350 --> 00:38:01,850 na kusubiri kwa kamba. 784 00:38:01,850 --> 00:38:03,792 All maana sisi na kamba ni pembejeo za binadamu. 785 00:38:03,792 --> 00:38:04,500 Hivyo unajua nini? 786 00:38:04,500 --> 00:38:05,166 Hebu kwenda mbele. 787 00:38:05,166 --> 00:38:08,704 Na tu juu ya whim, napenda kuandika jina langu, David, kuingia. 788 00:38:08,704 --> 00:38:10,120 Sasa nina mpango nguvu zaidi. 789 00:38:10,120 --> 00:38:11,240 Ilisema, hujambo Daudi. 790 00:38:11,240 --> 00:38:16,280 >> Kama mimi kwenda mbele na kukimbia hii tena, basi mimi kujaribu kusema Zamila jina, kuingia. 791 00:38:16,280 --> 00:38:17,940 Na sasa tuna mpango wa nguvu. 792 00:38:17,940 --> 00:38:19,380 Mimi si ngumu coded dunia. 793 00:38:19,380 --> 00:38:21,760 Mimi si ngumu coded jina, au David, au Zamila. 794 00:38:21,760 --> 00:38:25,350 >> Sasa ni mengi zaidi kama mipango tunajua, ambapo kama kuchukua pembejeo, 795 00:38:25,350 --> 00:38:27,870 inazalisha pato tofauti kidogo. 796 00:38:27,870 --> 00:38:31,020 Sasa, hii si bora user uzoefu, au UX. 797 00:38:31,020 --> 00:38:33,000 Mimi kuendesha programu. 798 00:38:33,000 --> 00:38:35,830 >> Sijui nini natakiwa kufanya, isipokuwa mimi kweli kuangalia 799 00:38:35,830 --> 00:38:37,290 au kukumbuka chanzo kanuni. 800 00:38:37,290 --> 00:38:39,640 Basi hebu kufanya user uzoefu kidogo bora 801 00:38:39,640 --> 00:38:41,240 na rahisi ya mambo. 802 00:38:41,240 --> 00:38:44,782 Hebu kwenda nyuma katika hii mpango, na tu kusema printf. 803 00:38:44,782 --> 00:38:48,870 >> Na napenda kwenda mbele na kusema jina, koloni, na nafasi, na kisha nusu koloni. 804 00:38:48,870 --> 00:38:51,170 Na tu kwa ajili mateke, hakuna n kuwepo kwa kuzorota. 805 00:38:51,170 --> 00:38:52,980 Na kwamba ni makusudi, kwa sababu mimi sitaki 806 00:38:52,980 --> 00:38:54,590 haraka hoja ya mstari wa pili. 807 00:38:54,590 --> 00:38:58,800 >> Nataka, badala yake, kufanya hivyo, kufanya kamba recompile kificho wangu katika mashine mpya 808 00:38:58,800 --> 00:39:00,980 kificho dot kufyeka kamba. 809 00:39:00,980 --> 00:39:02,460 Ah, hii ni kiasi prettier. 810 00:39:02,460 --> 00:39:05,780 Sasa ninajua hakika kile kompyuta anataka nifanye, kuwapa jina. 811 00:39:05,780 --> 00:39:10,020 >> Hivyo mimi nina kwenda mbele na aina katika Rob, kuingia, na hello, Rob. 812 00:39:10,020 --> 00:39:13,640 Hivyo, kutambua, hii bado ni, mwishoni wa siku, tu mpango tisa line. 813 00:39:13,640 --> 00:39:15,090 Lakini tumekuwa kuchukuliwa hatua hizi mtoto. 814 00:39:15,090 --> 00:39:18,380 >> Tuliandika line moja ambayo sisi walikuwa na mazoea, printf, hello dunia. 815 00:39:18,380 --> 00:39:19,980 Kisha sisi undid kidogo ya hiyo. 816 00:39:19,980 --> 00:39:21,560 Na sisi kweli kutumika kupata kamba. 817 00:39:21,560 --> 00:39:23,362 Na sisi kuchafuka kwamba thamani katika kutofautiana. 818 00:39:23,362 --> 00:39:26,070 Na kisha sisi akaenda mbele na kuboresha ni zaidi na mstari wa tatu. 819 00:39:26,070 --> 00:39:29,220 Na mchakato huu iterative ya kuandika programu ni kweli muhimu. 820 00:39:29,220 --> 00:39:33,420 Katika CS50, na katika maisha kwa ujumla, unapaswa ujumla sio kukaa chini, 821 00:39:33,420 --> 00:39:36,800 kuwa na mpango katika akili, na kujaribu kuandika nzima damn kitu wote mara moja. 822 00:39:36,800 --> 00:39:40,810 >> Itakuwa, inevitably, kusababisha njia makosa zaidi ya sisi wenyewe waliona hapa. 823 00:39:40,810 --> 00:39:44,070 Hata mimi, leo hii, daima kufanya makosa mengine ya kijinga, 824 00:39:44,070 --> 00:39:47,480 ni makosa kweli vigumu kwamba ni vigumu kufikiri. 825 00:39:47,480 --> 00:39:52,095 Lakini utakuwa kufanya makosa zaidi zaidi mstari wa kanuni kuandika wote mara moja. 826 00:39:52,095 --> 00:39:54,220 Na hivyo hii mazoezi ya, kuandika kidogo ya kificho 827 00:39:54,220 --> 00:39:57,930 kwamba wewe ni starehe na, kukusanya yake, kukimbia, mtihani kwa ujumla zaidi, 828 00:39:57,930 --> 00:40:01,370 kisha kuondoka on-- hivyo tu kama tuliendelea layering na layering wiki iliyopita, 829 00:40:01,370 --> 00:40:04,190 kujenga kutoka kitu sana rahisi kitu ngumu zaidi, 830 00:40:04,190 --> 00:40:05,200 kufanya hivyo hapa. 831 00:40:05,200 --> 00:40:08,500 Je, si kukaa chini, na kujaribu kuandika tatizo nzima. 832 00:40:08,500 --> 00:40:10,780 Kwa kweli kuchukua hatua hizi mtoto. 833 00:40:10,780 --> 00:40:15,100 >> Sasa, masharti ni si wote kwamba muhimu kwa ajili yao wenyewe. 834 00:40:15,100 --> 00:40:18,210 Tunatarajia kweli, walau, kama kwa na kitu kingine katika toolkit yetu. 835 00:40:18,210 --> 00:40:20,990 Basi hebu kweli kufanya hasa kwamba. 836 00:40:20,990 --> 00:40:24,900 >> Hebu kwenda mbele sasa na mjeledi juu mpango tofauti kidogo. 837 00:40:24,900 --> 00:40:28,320 Na tutaweza kuwaita int.c hii, kwa integer. 838 00:40:28,320 --> 00:40:30,870 Mimi nina kwenda, vile vile, pamoja na CS550.h. 839 00:40:30,870 --> 00:40:33,060 Mimi nina kwenda pamoja na kiwango IO. 840 00:40:33,060 --> 00:40:36,630 Na kwamba ni kwenda kuwa pretty kawaida katika siku hizi chache kwanza ya darasa. 841 00:40:36,630 --> 00:40:39,050 >> Na mimi nina kwenda kwa tayari mwenyewe na kazi kuu. 842 00:40:39,050 --> 00:40:43,370 Na sasa badala ya kupata kamba, hebu kwenda mbele na kupata int. 843 00:40:43,370 --> 00:40:49,285 Hebu simu yake i, na kuiita kupata int, parens karibu, nusu koloni. 844 00:40:49,285 --> 00:40:51,410 Na sasa hebu kufanya kitu kwa hayo, printf. 845 00:40:51,410 --> 00:40:56,190 >> Hebu kusema kitu kama hello, backslash n, comma i. 846 00:40:56,190 --> 00:41:00,010 Hivyo mimi nina pretty much mimicking nilivyopatenda muda tu iliyopita. 847 00:41:00,010 --> 00:41:01,660 Nina placeholder hapa. 848 00:41:01,660 --> 00:41:05,150 Mimi comma i hapa, kwa sababu nataka kuziba i katika placeholder hiyo. 849 00:41:05,150 --> 00:41:07,250 >> Basi hebu kwenda mbele na kujaribu kuandaa mpango huu. 850 00:41:07,250 --> 00:41:10,060 file inaitwa int.c. 851 00:41:10,060 --> 00:41:12,920 Hivyo mimi nina kwenda kusema, kufanya int, kuingia. 852 00:41:12,920 --> 00:41:16,420 Oh, Mungu wangu, lakini hakuna mpango mkubwa, haki? 853 00:41:16,420 --> 00:41:17,230 Kuna makosa. 854 00:41:17,230 --> 00:41:19,810 >> Kuna makosa kisintaksia hapa kama kwamba mpango hawawezi 855 00:41:19,810 --> 00:41:25,460 kuwa ulioandaliwa ndani ya int.c, line saba, tabia ya 27, kosa format 856 00:41:25,460 --> 00:41:28,400 bayana aina char nyota, chochote kile. 857 00:41:28,400 --> 00:41:30,020 Lakini aina Hoja ni int. 858 00:41:30,020 --> 00:41:33,110 >> Hivyo hapa, pia, sisi siyo kwenda to-- ingawa leo ni mengi ya vifaa, 859 00:41:33,110 --> 00:41:35,710 tunakwenda overwhelm kwa kabisa kila kipengele cha C, 860 00:41:35,710 --> 00:41:38,070 na programu zaidi kwa ujumla, katika tu hizi wiki chache za kwanza. 861 00:41:38,070 --> 00:41:40,400 Kwa hiyo, kuna mara nyingi kwenda kuwa jargon na ambayo wewe si ukoo. 862 00:41:40,400 --> 00:41:43,350 Na, kwa kweli, nyota char ni kitu tunakwenda kurudi 863 00:41:43,350 --> 00:41:44,830 katika wiki au wakati mbili ya. 864 00:41:44,830 --> 00:41:47,530 >> Lakini kwa sasa, hebu angalia kama tunaweza Hazrat maneno ambayo ni ya ukoo. 865 00:41:47,530 --> 00:41:50,750 Miundo tofauti-- hivyo tumesikia format specifier, format kificho kabla. 866 00:41:50,750 --> 00:41:51,840 Hiyo ni ukoo. 867 00:41:51,840 --> 00:41:53,840 Type-- lakini hoja ina aina int. 868 00:41:53,840 --> 00:41:55,980 Hebu subiri kidogo, i ni int. 869 00:41:55,980 --> 00:41:59,230 >> Labda asilimia s kweli ina baadhi ya maana defined. 870 00:41:59,230 --> 00:42:00,230 Na, kwa hakika, ni gani. 871 00:42:00,230 --> 00:42:03,101 integer, kama unataka printf mbadala hilo, 872 00:42:03,101 --> 00:42:05,350 wewe kweli kuwa kutumia tofauti format specifier. 873 00:42:05,350 --> 00:42:06,890 Na bila kujua hii isipokuwa mtu niliwaambia, 874 00:42:06,890 --> 00:42:07,973 au wewe alikuwa amefanya hivyo kabla. 875 00:42:07,973 --> 00:42:10,490 Lakini asilimia i ni nini inaweza kawaida kutumika 876 00:42:10,490 --> 00:42:12,240 katika printf kwa plugging katika integer. 877 00:42:12,240 --> 00:42:14,920 Unaweza pia kutumia asilimia d kwa integer decimal. 878 00:42:14,920 --> 00:42:16,490 Lakini i ni nzuri na rahisi hapa. 879 00:42:16,490 --> 00:42:17,590 Hivyo tutaweza kwenda na kwamba. 880 00:42:17,590 --> 00:42:21,160 >> Sasa basi mimi kwenda mbele na rerun kufanya int, kuingia. 881 00:42:21,160 --> 00:42:23,328 Hiyo ni nzuri, hakuna makosa. 882 00:42:23,328 --> 00:42:27,260 Dot kufyeka int OK, mbaya user uzoefu, kwa sababu mimi si aliiambia mwenyewe 883 00:42:27,260 --> 00:42:27,760 nifanyeje. 884 00:42:27,760 --> 00:42:28,426 Lakini hiyo ni faini. 885 00:42:28,426 --> 00:42:29,480 Mimi nina kuambukizwa juu kwa haraka. 886 00:42:29,480 --> 00:42:36,260 >> Na sasa napenda kwenda mbele na aina katika David, OK, Zamila, Rob. 887 00:42:36,260 --> 00:42:37,820 OK, hivyo hili ni jambo zuri. 888 00:42:37,820 --> 00:42:41,710 Wakati huu, mimi nina kutumia kazi, puzzle kipande, iitwayo kupata int. 889 00:42:41,710 --> 00:42:44,230 Na ni zamu nje na tutaweza kuona baadaye hii katika term-- 890 00:42:44,230 --> 00:42:47,730 CS50 wafanyakazi imetekeleza kupata kamba kwa namna 891 00:42:47,730 --> 00:42:50,350 kwamba itakuwa tu kimwili kupata kamba kwa ajili yenu. 892 00:42:50,350 --> 00:42:54,340 >> Ni imetekeleza kupata int katika namna kwamba itakuwa tu 893 00:42:54,340 --> 00:42:55,590 kupata integer kwa ajili yenu. 894 00:42:55,590 --> 00:42:57,830 Na kama wewe, binadamu, hawana kushirikiana, ni 895 00:42:57,830 --> 00:43:00,590 literally tu kwenda kusema retry, retry, retry, 896 00:43:00,590 --> 00:43:05,200 literally wamekaa looping, mpaka wewe kumlazimu pamoja na baadhi ya idadi ya kichawi, 897 00:43:05,200 --> 00:43:07,670 kama 50, na hodi 50. 898 00:43:07,670 --> 00:43:11,440 >> Au kama sisi kukimbia hii tena na aina katika 42, hello 42. 899 00:43:11,440 --> 00:43:15,750 Na hivyo kazi kupata int ndani ya kwamba kipande puzzle 900 00:43:15,750 --> 00:43:19,050 ni mantiki ya kutosha, mawazo ya kutosha, kufikiri, ndivyo neno? 901 00:43:19,050 --> 00:43:20,330 Na ni nini namba? 902 00:43:20,330 --> 00:43:23,165 kukubali tu, hatimaye, idadi. 903 00:43:23,165 --> 00:43:25,690 904 00:43:25,690 --> 00:43:30,230 >> Hivyo ni zinageuka kuwa hii si yote expressive. 905 00:43:30,230 --> 00:43:30,910 kufikia hapa; kufikia sasa. 906 00:43:30,910 --> 00:43:33,690 Hivyo, yay, mara ya mwisho sisi akaenda pretty haraka 907 00:43:33,690 --> 00:43:38,320 katika utekelezaji wa michezo, na uhuishaji, na kazi za sanaa katika Scratch. 908 00:43:38,320 --> 00:43:42,260 Na hapa, sisi ni kuwa yaliyomo na hujambo dunia, na hodi 50. 909 00:43:42,260 --> 00:43:43,696 >> Siyo msukumo kwamba wote. 910 00:43:43,696 --> 00:43:46,070 Na kwa kweli, hizi kwanza chache mifano itachukua muda 911 00:43:46,070 --> 00:43:47,510 njia panda juu katika msisimko. 912 00:43:47,510 --> 00:43:49,854 Lakini tuna mambo mengi zaidi kudhibiti sasa, kwa kweli. 913 00:43:49,854 --> 00:43:51,770 Na tunakwenda sana haraka kuanza layering 914 00:43:51,770 --> 00:43:53,870 juu ya primitives haya ya msingi. 915 00:43:53,870 --> 00:43:56,370 >> Lakini kwanza, hebu kuelewa nini mapungufu ni. 916 00:43:56,370 --> 00:43:58,620 Kwa kweli, moja ya mambo Scratch hana urahisi 917 00:43:58,620 --> 00:44:00,990 hebu kufanya ni kweli kuangalia chini ya Hood, 918 00:44:00,990 --> 00:44:03,740 na kuelewa nini kompyuta ni, nini anaweza kufanya, 919 00:44:03,740 --> 00:44:05,250 na nini mapungufu yake ni. 920 00:44:05,250 --> 00:44:08,580 Na kwa kweli, kwamba ukosefu wa uelewa, uwezekano, ya muda mrefu 921 00:44:08,580 --> 00:44:12,520 unaweza kusababisha mistakes-- kuandika yetu wenyewe mende, kuandika programu usalama kwamba 922 00:44:12,520 --> 00:44:13,880 anapata hacked kwa namna fulani. 923 00:44:13,880 --> 00:44:17,130 >> Basi hebu kuchukua baadhi ya hatua kuelekea kuelewa hili vizuri kidogo na 924 00:44:17,130 --> 00:44:19,710 njia ya, kusema, mfano zifuatazo. 925 00:44:19,710 --> 00:44:23,550 Mimi nina kwenda mbele na kutekeleza halisi haraka mpango ujulikanao fira. 926 00:44:23,550 --> 00:44:25,134 Kama, hebu kuongeza idadi ya baadhi ya pamoja. 927 00:44:25,134 --> 00:44:27,800 Na mimi nina kwenda kwa kificho pembe baadhi hapa, na tu nakala na kuweka 928 00:44:27,800 --> 00:44:30,270 ambapo mimi nilikuwa kabla, tu ili tuweze kupata kwenda mapema. 929 00:44:30,270 --> 00:44:33,090 Hivyo sasa mimi nimepata mwanzo msingi ya mpango ujulikanao fira. 930 00:44:33,090 --> 00:44:34,670 >> Na hebu kwenda mbele na kufanya hili. 931 00:44:34,670 --> 00:44:38,680 Mimi nina kwenda mbele na kusema, intx anapata kupata int. 932 00:44:38,680 --> 00:44:39,430 Na unajua nini? 933 00:44:39,430 --> 00:44:40,990 Hebu kufanya bora user uzoefu. 934 00:44:40,990 --> 00:44:45,740 >> Hivyo hebu sema tu x ni, na kwa ufanisi kuchochea mtumiaji kutupa x. 935 00:44:45,740 --> 00:44:50,600 Na kisha basi mimi kwenda mbele na kusema, printf vipi kuhusu y ni, wakati huu wanatarajia 936 00:44:50,600 --> 00:44:53,140 maadili mbili kutoka kwa mtumiaji. 937 00:44:53,140 --> 00:44:59,759 Na kisha hebu tu kwenda mbele na kusema, printf, jumla ya x na y ni. 938 00:44:59,759 --> 00:45:01,300 Na sasa mimi sitaki kufanya asilimia s. 939 00:45:01,300 --> 00:45:09,080 Nataka kufanya asilimia i, backslash n, na kisha kuziba katika thamani jibu. 940 00:45:09,080 --> 00:45:10,620 >> Hivyo ni jinsi gani mimi kwenda juu ya kufanya hii? 941 00:45:10,620 --> 00:45:11,270 Unajua nini? 942 00:45:11,270 --> 00:45:12,840 Najua jinsi ya kutumia vigezo. 943 00:45:12,840 --> 00:45:15,140 Napenda tu kutangaza mwezi mmoja, int z. 944 00:45:15,140 --> 00:45:16,770 >> Na mimi nina kwenda kuchukua nadhani hapa. 945 00:45:16,770 --> 00:45:21,470 Kama kuna dalili sawa katika hili lugha, labda naweza tu kufanya x plus y, 946 00:45:21,470 --> 00:45:23,660 muda mrefu kama mimi kuishia yangu mawazo na nusu koloni? 947 00:45:23,660 --> 00:45:28,170 Sasa naweza kwenda nyuma chini hapa, kuziba katika z, kumaliza wazo hili na nusu koloni. 948 00:45:28,170 --> 00:45:33,160 Na hebu angalia sasa, kama hawa Utaratibu wa lines-- x ni kupata int. 949 00:45:33,160 --> 00:45:34,770 Y ni kupata int. 950 00:45:34,770 --> 00:45:37,980 >> Kuongeza x na y, kuhifadhi thamani katika z-- hivyo, tena, kumbuka ishara sawa 951 00:45:37,980 --> 00:45:38,560 si sawa. 952 00:45:38,560 --> 00:45:41,100 Ni zoezi kutoka kulia kwenda kushoto. 953 00:45:41,100 --> 00:45:45,180 Na hebu magazeti nje kwamba jumla ya x na y ni si halisi z, 954 00:45:45,180 --> 00:45:46,830 lakini nini ndani ya z. 955 00:45:46,830 --> 00:45:50,090 Basi hebu kufanya fira - nzuri, hakuna makosa wakati huu. 956 00:45:50,090 --> 00:45:53,030 Dot kufyeka fira, kuingia, x ni kwenda kuwa 1. 957 00:45:53,030 --> 00:45:55,380 >> Y ni kwenda kuwa 2. 958 00:45:55,380 --> 00:45:58,964 Na jumla ya x na y ni 3. 959 00:45:58,964 --> 00:46:00,130 Basi hiyo ni yote faini na nzuri. 960 00:46:00,130 --> 00:46:03,260 >> Hivyo ungependa kufikiria kwamba math wanapaswa kufanya kazi katika mpango kama hii. 961 00:46:03,260 --> 00:46:04,040 Lakini unajua nini? 962 00:46:04,040 --> 00:46:06,904 Je, hii ni kutofautiana, line 12, hata muhimu? 963 00:46:06,904 --> 00:46:09,820 Huwezi haja ya kupata katika tabia ya tu kuhifadhi vitu katika vigezo 964 00:46:09,820 --> 00:46:10,980 kwa sababu tu unaweza. 965 00:46:10,980 --> 00:46:13,550 Na, kwa kweli, ni kwa ujumla aliichukulia kubuni mbaya 966 00:46:13,550 --> 00:46:18,100 kama wewe ni kujenga variable, kuitwa z katika kesi hii, kuhifadhi kitu ndani yake, 967 00:46:18,100 --> 00:46:21,390 na kisha mara moja kutumia, lakini kamwe tena. 968 00:46:21,390 --> 00:46:24,700 Kwa nini kutoa kitu jina kama z kama uko literally 969 00:46:24,700 --> 00:46:26,770 kwenda kutumia kwamba Jambo moja tu, na hivyo 970 00:46:26,770 --> 00:46:29,380 kupakana na ambapo wewe uliumba katika nafasi ya kwanza, 971 00:46:29,380 --> 00:46:31,052 hivyo karibu katika suala la mstari wa kanuni? 972 00:46:31,052 --> 00:46:31,760 Hivyo unajua nini? 973 00:46:31,760 --> 00:46:34,480 Ni zinageuka kuwa C ni pretty rahisi. 974 00:46:34,480 --> 00:46:36,586 Kama mimi kwa kweli wanataka kuziba-katika maadili hapa, 975 00:46:36,586 --> 00:46:38,210 Sina haja ya kutangaza kutofautiana mpya. 976 00:46:38,210 --> 00:46:41,680 Mimi naweza kuziba-katika tu x plus y, kwa sababu C anaelewa 977 00:46:41,680 --> 00:46:43,390 hesabu, na watoa huduma za hesabu. 978 00:46:43,390 --> 00:46:47,140 >> Hivyo siwezi tu kusema, kufanya hesabu hii, x plus y, chochote maadili hayo ni, 979 00:46:47,140 --> 00:46:50,780 kuziba na kusababisha integer katika kamba hiyo. 980 00:46:50,780 --> 00:46:53,730 Hivyo hii inaweza kuwa, ingawa tu mstari mmoja mfupi, 981 00:46:53,730 --> 00:46:58,480 kubuni bora, mpango bora, kwa sababu kuna chini kificho, kwa hiyo 982 00:46:58,480 --> 00:46:59,921 chini kwa mimi kuelewa. 983 00:46:59,921 --> 00:47:01,920 Na pia ni safi tu, kadiri sisi siyo 984 00:47:01,920 --> 00:47:04,620 kuanzisha maneno mapya, alama mpya, kama z, 985 00:47:04,620 --> 00:47:07,510 ingawa wao si kweli kutumikia sehemu kubwa ya kusudi. 986 00:47:07,510 --> 00:47:12,890 >> Kwa bahati mbaya, math si kwamba kuaminika wakati mwingine wote. 987 00:47:12,890 --> 00:47:15,270 Hebu kwenda mbele na kufanya hili. 988 00:47:15,270 --> 00:47:18,200 Mimi nina kwenda mbele sasa na kufanya yafuatayo. 989 00:47:18,200 --> 00:47:27,650 >> Hebu kufanya printf, asilimia i, pamoja na asilimia i, kitakuwa asilimia i, backslash n. 990 00:47:27,650 --> 00:47:32,240 Na mimi nina kwenda kufanya Haya xyx plus y. 991 00:47:32,240 --> 00:47:34,821 Hivyo mimi nina kwenda tu kuandika upya hii tofauti kidogo hapa. 992 00:47:34,821 --> 00:47:36,320 Napenda tu kufanya haraka sanity hundi. 993 00:47:36,320 --> 00:47:37,986 Tena, hebu si kupata mbele ya sisi wenyewe. 994 00:47:37,986 --> 00:47:41,420 Kufanya fira, dot kufyeka fira. 995 00:47:41,420 --> 00:47:44,950 x ni 1, y ni 2, 1 plus 2 ni 3. 996 00:47:44,950 --> 00:47:45,870 Hivyo hiyo ni nzuri. 997 00:47:45,870 --> 00:47:49,060 Lakini hebu magumu hili sasa bit, na kuunda faili mpya. 998 00:47:49,060 --> 00:47:53,350 >> Mimi nina kwenda kuwaita hii moja, kusema, ints, wingi kwa integers. 999 00:47:53,350 --> 00:47:55,980 Napenda kuanza ambapo mimi nilikuwa wakati iliyopita. 1000 00:47:55,980 --> 00:47:57,770 Lakini sasa hebu kufanya chache mistari mingine. 1001 00:47:57,770 --> 00:48:03,430 Hebu kwenda mbele na kufanya yafuatayo, printf, asilimia i, bala asilimia i, 1002 00:48:03,430 --> 00:48:08,959 ni asilimia i, comma x, comma YX minus y. 1003 00:48:08,959 --> 00:48:10,750 Hivyo mimi nina kufanya kidogo tofauti math huko. 1004 00:48:10,750 --> 00:48:11,624 Hebu kufanya mwingine mmoja. 1005 00:48:11,624 --> 00:48:16,610 Hivyo asilimia i mara asilimia i ni asilimia i, backslash n. 1006 00:48:16,610 --> 00:48:21,430 Hebu kuziba-katika x, na y, na mara x y. 1007 00:48:21,430 --> 00:48:24,530 Tutaweza kutumia asteriski juu ya kompyuta yako kwa mara. 1008 00:48:24,530 --> 00:48:26,390 >> Huwezi kutumia x. x ni jina kutofautiana hapa. 1009 00:48:26,390 --> 00:48:28,270 Wewe kutumia nyota kwa kuzidisha. 1010 00:48:28,270 --> 00:48:29,020 Hebu kufanya moja zaidi. 1011 00:48:29,020 --> 00:48:34,580 Printf asilimia mimi, umegawanyika kwa asilimia i, ni asilimia i, 1012 00:48:34,580 --> 00:48:40,460 backslash n. xy kugawanywa na y-- hivyo kutumia kufyeka mbele katika C 1013 00:48:40,460 --> 00:48:41,502 kufanya mgawanyiko. 1014 00:48:41,502 --> 00:48:42,460 Na hebu kufanya moja nyingine. 1015 00:48:42,460 --> 00:48:47,920 1016 00:48:47,920 --> 00:48:55,240 Salio ya asilimia i, umegawanyika kwa asilimia i, ni asilimia i. 1017 00:48:55,240 --> 00:48:59,550 xy-- na sasa salio ni nini kushoto juu. 1018 00:48:59,550 --> 00:49:02,980 Unapojaribu kugawa denominator katika kadiri, 1019 00:49:02,980 --> 00:49:05,570 ni kiasi gani kushoto juu ya kwamba wewe hakuweza kugawanya nje? 1020 00:49:05,570 --> 00:49:07,910 >> Kwa hiyo, kuna si kweli, lazima, alama 1021 00:49:07,910 --> 00:49:09,470 tumekuwa kutumika katika shule ya daraja kwa hili. 1022 00:49:09,470 --> 00:49:13,830 Lakini kuna katika C. Unaweza kusema x modulo y, ambapo 1023 00:49:13,830 --> 00:49:18,000 hii ni ishara asilimia katika context-- hii confusingly wakati uko ndani ya 1024 00:49:18,000 --> 00:49:20,170 ya quotes mbili, ndani ya printf, asilimia 1025 00:49:20,170 --> 00:49:21,830 hutumika kama format specifier. 1026 00:49:21,830 --> 00:49:25,420 >> Wakati matumizi ya asilimia nje ya kwamba katika kujieleza hisabati, 1027 00:49:25,420 --> 00:49:29,910 ni modulo operator kwa msimu arithmetic-- kwa madhumuni yetu 1028 00:49:29,910 --> 00:49:33,650 hapa, ina maana tu, ni nini salio ya x kugawanywa na y? 1029 00:49:33,650 --> 00:49:36,130 Hivyo x kugawanywa na y ni x kufyeka y. 1030 00:49:36,130 --> 00:49:38,220 Nini salio ya x kugawanywa na y? 1031 00:49:38,220 --> 00:49:41,780 Ni x mod y, kama programu kusema. 1032 00:49:41,780 --> 00:49:48,300 >> Hivyo kama mimi alifanya makosa hapa, napenda kwenda mbele na kufanya ints, wingi, nzuri, 1033 00:49:48,300 --> 00:49:50,010 na dot kufyeka ints. 1034 00:49:50,010 --> 00:49:55,270 Na hebu kwenda mbele na kufanya, hebu sema, 1, 10. 1035 00:49:55,270 --> 00:49:58,390 Yote ya haki, 1 plus 10 ni 11, hundi. 1036 00:49:58,390 --> 00:50:01,240 1 minus 10 ni hasi 9, angalia. 1037 00:50:01,240 --> 00:50:03,420 >> 1 mara 10 ni 10, hundi. 1038 00:50:03,420 --> 00:50:07,090 1 kugawanywa na 10 is-- OK, tutaweza ruka kwamba moja. 1039 00:50:07,090 --> 00:50:09,480 Salio ya 1 kugawanywa na 10 ni 1. 1040 00:50:09,480 --> 00:50:10,680 Hiyo ni sahihi. 1041 00:50:10,680 --> 00:50:12,630 Lakini kuna mdudu katika hapa. 1042 00:50:12,630 --> 00:50:15,390 >> Hivyo moja mimi kuweka yangu kukabidhi, si sahihi. 1043 00:50:15,390 --> 00:50:16,670 I mean, ni karibu na 0. 1044 00:50:16,670 --> 00:50:20,670 1 kugawanywa na 10, unajua, kama tuko kukata pembe baadhi, hakika, ni sifuri. 1045 00:50:20,670 --> 00:50:28,050 Lakini ni lazima kweli kuwa 1/10, 0.1, au 0.10, 0.1000, ama kadhalika. 1046 00:50:28,050 --> 00:50:30,600 >> Ni lazima si kweli kuwa sifuri. 1047 00:50:30,600 --> 00:50:35,990 Naam, ni zamu nje kwamba kompyuta ni kufanya literally nini tunaambiwa ni kufanya. 1048 00:50:35,990 --> 00:50:39,460 Sisi ni kufanya math kama x kugawanywa na y. 1049 00:50:39,460 --> 00:50:44,680 Na wote wawili x na y, per mistari ya kificho awali, ni integers. 1050 00:50:44,680 --> 00:50:50,440 >> Aidha, katika mstari wa 15, sisi ni kuwaambia printf, hey, printf kuziba-katika 1051 00:50:50,440 --> 00:50:54,230 integer, kuziba-katika integer, kuziba-katika integer-- hasa 1052 00:50:54,230 --> 00:50:57,580 x, na kisha y, na kisha x kugawanywa na y. x na y ni ints. 1053 00:50:57,580 --> 00:50:59,060 Sisi ni nzuri huko. 1054 00:50:59,060 --> 00:51:01,250 >> Lakini ni nini x kugawanywa na x? 1055 00:51:01,250 --> 00:51:06,790 x kugawanywa na y lazima, kimahesabu, 1/10, au 0.1, 1056 00:51:06,790 --> 00:51:11,600 ambayo ni idadi halisi, idadi halisi kuwa, uwezekano, uhakika decimal. 1057 00:51:11,600 --> 00:51:13,230 Siyo integer. 1058 00:51:13,230 --> 00:51:18,290 >> Lakini nini ni karibu integer kwa 1/10, au 0.1? 1059 00:51:18,290 --> 00:51:21,114 Yeah, ni aina ya ni sifuri. 1060 00:51:21,114 --> 00:51:22,030 0.1 ni kama kiasi hiki. 1061 00:51:22,030 --> 00:51:22,890 Na 1 ni kiasi hiki. 1062 00:51:22,890 --> 00:51:25,870 Hivyo 1/10 ni karibu na 0 kuliko ilivyo kwa moja. 1063 00:51:25,870 --> 00:51:30,800 >> Na hivyo kile C ni kufanya kwa ajili us-- aina ya sababu tunaambiwa ni to-- 1064 00:51:30,800 --> 00:51:32,600 ni truncating kwamba integer. 1065 00:51:32,600 --> 00:51:40,540 Ni kuchukua thamani, ambayo tena ni wanatakiwa kuwa kitu kama 0.1000, 1066 00:51:40,540 --> 00:51:41,800 0 na kadhalika. 1067 00:51:41,800 --> 00:51:45,320 Na ni truncating kila kitu baada ya uhakika decimal 1068 00:51:45,320 --> 00:51:47,510 ili yote haya stuff, kwa sababu haina 1069 00:51:47,510 --> 00:51:51,910 fit katika dhana ya integer, ambayo ni idadi tu kama hasi 1, 0, 1, 1070 00:51:51,910 --> 00:51:55,830 juu na chini, ni kumtupia mbali kila kitu baada ya uhakika decimal sababu wewe 1071 00:51:55,830 --> 00:51:59,020 haziwezi kutosha uhakika decimal katika integer kwa ufafanuzi. 1072 00:51:59,020 --> 00:52:01,290 >> Hivyo jibu hapa ni sifuri. 1073 00:52:01,290 --> 00:52:02,600 Hivyo ni jinsi gani sisi kurekebisha hili? 1074 00:52:02,600 --> 00:52:04,400 Tunahitaji ufumbuzi mwingine wote pamoja. 1075 00:52:04,400 --> 00:52:06,880 Na tunaweza kufanya hivyo, kama ifuatavyo. 1076 00:52:06,880 --> 00:52:12,820 >> Hebu kwenda mbele na kuunda mpya file, hii mtu mmoja aitwaye floats.c. 1077 00:52:12,820 --> 00:52:16,500 Na ila ni hapa katika saraka ya sawa, float.c. 1078 00:52:16,500 --> 00:52:19,360 1079 00:52:19,360 --> 00:52:23,260 Na napenda kwenda mbele na nakala baadhi ya kwamba kanuni kutoka mapema. 1080 00:52:23,260 --> 00:52:27,690 >> Lakini badala ya kupata int, hebu kufanya hili. 1081 00:52:27,690 --> 00:52:31,037 Nipe hatua yaliyo thamani kuitwa x. ambapo yaliyo hatua 1082 00:52:31,037 --> 00:52:33,370 thamani ya kitu tu literally kitu kwa yaliyo hatua. 1083 00:52:33,370 --> 00:52:34,410 Ni inaweza hoja ya kushoto, na haki. 1084 00:52:34,410 --> 00:52:35,530 Ni idadi halisi. 1085 00:52:35,530 --> 00:52:38,050 >> Na napenda kuwaita si kupata int, lakini kupata kuelea, 1086 00:52:38,050 --> 00:52:41,420 ambayo pia alikuwa miongoni mwa orodha ya chaguzi katika maktaba C250. 1087 00:52:41,420 --> 00:52:43,220 Hebu kubadili y kwa kuelea. 1088 00:52:43,220 --> 00:52:45,000 Hivyo hii inakuwa kupata kuelea. 1089 00:52:45,000 --> 00:52:47,620 >> Na sasa, hatutaki kuziba katika ints. 1090 00:52:47,620 --> 00:52:53,130 Ni zinageuka tuna kutumia asilimia f kwa kuelea, asilimia f kwa kuelea, 1091 00:52:53,130 --> 00:52:54,560 na sasa kuiokoa. 1092 00:52:54,560 --> 00:53:01,220 Na sasa, vidole shilingi, kufanya ikifungwa, nzuri, dot kufyeka ikifungwa. 1093 00:53:01,220 --> 00:53:04,280 x ni kwenda kuwa moja 1. y Ni kwenda kuwa 10 tena. 1094 00:53:04,280 --> 00:53:08,240 >> Na, nzuri, OK Aidha yangu ni sahihi. 1095 00:53:08,240 --> 00:53:10,240 Mimi nilikuwa na matumaini kwa zaidi, lakini mimi alisahau kuandika. 1096 00:53:10,240 --> 00:53:13,250 Basi hebu kwenda na kurekebisha hitilafu hii mantiki. 1097 00:53:13,250 --> 00:53:16,280 >> Hebu kwenda mbele na kunyakua zifuatazo. 1098 00:53:16,280 --> 00:53:18,080 Tutaweza tu kufanya nakala kidogo na kuweka. 1099 00:53:18,080 --> 00:53:20,080 Na mimi nina kwenda kusema bala. 1100 00:53:20,080 --> 00:53:21,890 >> Na mimi nina kwenda kusema mara. 1101 00:53:21,890 --> 00:53:24,060 Na mimi nina kwenda kwa kusema kugawanywa. 1102 00:53:24,060 --> 00:53:28,240 Na mimi nina si kwenda kufanya modulo, ambayo si kama germane hapa, 1103 00:53:28,240 --> 00:53:33,690 kugawanywa na f, na mara plus OK, hebu kufanya hili tena. 1104 00:53:33,690 --> 00:53:44,210 >> Kufanya ikifungwa, dot kufyeka ikifungwa, na 1, 10, and-- nzuri, hapana, OK. 1105 00:53:44,210 --> 00:53:45,250 Kwa hiyo mimi nina idiot. 1106 00:53:45,250 --> 00:53:47,000 Hivyo hii ni ya kawaida sana katika sayansi ya kompyuta 1107 00:53:47,000 --> 00:53:49,780 kufanya makosa ya kijinga kama hii. 1108 00:53:49,780 --> 00:53:53,100 >> Kwa madhumuni ya ufundishaji, kile kweli alitaka kufanya 1109 00:53:53,100 --> 00:53:57,410 ilikuwa mabadiliko ya sayansi hapa kwa pamoja, kwa bala, kwa nyakati, 1110 00:53:57,410 --> 00:54:01,140 na kugawanya, kama wewe hopefully niliona wakati wa zoezi hili. 1111 00:54:01,140 --> 00:54:04,700 Hivyo sasa hebu re-kukusanya hii mpango, kufanya dot kufyeka ikifungwa. 1112 00:54:04,700 --> 00:54:07,950 >> Na kwa mara ya tatu, hebu kuona kama yanakidhi matarajio yangu. 1113 00:54:07,950 --> 00:54:21,480 1, 10, kuingia, ndiyo, OK, 1.000, kugawanywa na 10.000, ni 0.100000. 1114 00:54:21,480 --> 00:54:24,952 Na zinageuka tunaweza kudhibiti jinsi wengi idadi ni baada ya pointi hizo decimal. 1115 00:54:24,952 --> 00:54:25,660 Sisi kwa kweli mapenzi. 1116 00:54:25,660 --> 00:54:26,790 Tutaweza kuja nyuma na kwamba. 1117 00:54:26,790 --> 00:54:28,440 >> Lakini sasa, kwa kweli, math ni sahihi. 1118 00:54:28,440 --> 00:54:30,090 Hivyo, tena, nini takeaway hapa? 1119 00:54:30,090 --> 00:54:33,050 Ni zinageuka kuwa katika C, kuna si tu tu strings-- na, kwa kweli, 1120 00:54:33,050 --> 00:54:36,120 kuna si kweli, kwa sababu sisi kuongeza wale walio na maktaba CS50. 1121 00:54:36,120 --> 00:54:37,710 Lakini kuna si ints tu. 1122 00:54:37,710 --> 00:54:38,990 >> Kuna pia ikifungwa. 1123 00:54:38,990 --> 00:54:42,810 Na zinageuka rundo la data nyingine aina pia kwamba, tutaweza kutumia kabla ya muda mrefu. 1124 00:54:42,810 --> 00:54:46,270 Zamu nje kama unataka single tabia, si kamba ya wahusika, 1125 00:54:46,270 --> 00:54:47,610 unaweza kutumia tu char. 1126 00:54:47,610 --> 00:54:52,350 >> Zinageuka kuwa kama unataka bool, thamani Boolean, kweli au uongo tu, 1127 00:54:52,350 --> 00:54:56,840 shukrani kwa maktaba CS50, tumekuwa aliongeza kwa C aina bool data vilevile. 1128 00:54:56,840 --> 00:54:59,180 Lakini pia ni kuwasilisha katika lugha nyingine nyingi kama vile. 1129 00:54:59,180 --> 00:55:04,130 Na zinageuka kuwa wakati mwingine wewe haja idadi kubwa basi kuja na default 1130 00:55:04,130 --> 00:55:05,210 na ints na ikifungwa. 1131 00:55:05,210 --> 00:55:10,590 >> Na, kwa kweli, mara mbili ni idadi ambayo inatumia si 32 bits, lakini 64 bits. 1132 00:55:10,590 --> 00:55:14,990 Na kwa muda mrefu kwa muda mrefu ni idadi hiyo anatumia si 32, bits lakini 64 bits, 1133 00:55:14,990 --> 00:55:19,190 kwa mtiririko huo, kwa yaliyo hatua maadili na integers, kwa mtiririko huo. 1134 00:55:19,190 --> 00:55:22,780 Basi hebu kweli sasa Kuona hii katika hatua. 1135 00:55:22,780 --> 00:55:26,150 >> Mimi nina kwenda mbele hapa na mjeledi juu ya mpango mwingine mmoja. 1136 00:55:26,150 --> 00:55:32,020 Hapa, mimi nina kwenda mbele na wala ni pamoja na CS50.h. 1137 00:55:32,020 --> 00:55:34,910 Na napenda kwenda, ni pamoja na kiwango io.h. 1138 00:55:34,910 --> 00:55:37,320 >> Na wewe utakuwa taarifa kitu funky kinachotokea hapa. 1139 00:55:37,320 --> 00:55:40,592 Ni si rangi coding mambo katika njia ile ile kama ilivyokuwa kabla. 1140 00:55:40,592 --> 00:55:43,550 Na zinageuka, hiyo ni kwa sababu mimi hawajakata jambo faili jina. 1141 00:55:43,550 --> 00:55:47,270 >> Mimi nina kwenda kuwaita hii moja sizeof.c, na kugonga Hifadhi. 1142 00:55:47,270 --> 00:55:51,039 Na taarifa nini kinatokea kwa yangu sana nyeupe kificho dhidi ya kwamba kuongezeka nyeusi. 1143 00:55:51,039 --> 00:55:52,830 Sasa, angalau kuna baadhi zambarau katika huko. 1144 00:55:52,830 --> 00:55:54,490 Na ni syntax yalionyesha. 1145 00:55:54,490 --> 00:55:57,700 >> Hiyo ni kwa sababu, rahisi kabisa, nimekuwa aliiambia IDE ni aina gani ya faili 1146 00:55:57,700 --> 00:56:01,060 ni kwa kutoa ni jina, na hasa faili ugani. 1147 00:56:01,060 --> 00:56:03,620 Sasa, hebu kwenda mbele na kufanya hili. 1148 00:56:03,620 --> 00:56:08,910 Mimi nina kwenda mbele na sana tu magazeti nje bool following-- 1149 00:56:08,910 --> 00:56:11,080 ni asilimia LU. 1150 00:56:11,080 --> 00:56:12,950 >> Tutaweza kurudi kwa kwamba katika muda tu. 1151 00:56:12,950 --> 00:56:15,840 Na kisha mimi nina kwenda magazeti ukubwa wa bool. 1152 00:56:15,840 --> 00:56:18,170 Na sasa, tu kuokoa mwenyewe baadhi ya wakati, mimi nina 1153 00:56:18,170 --> 00:56:20,280 kwenda kufanya nzima rundo la hizo mara moja. 1154 00:56:20,280 --> 00:56:24,620 Na, hasa, mimi nina kwenda kwa kubadili hali hii kwa char na char. 1155 00:56:24,620 --> 00:56:27,760 Hii moja, mimi nina kwenda na mabadiliko kwa mara mbili na mara mbili. 1156 00:56:27,760 --> 00:56:31,440 >> Hii moja, mimi nina kwenda na mabadiliko kwa kuelea na kuelea. 1157 00:56:31,440 --> 00:56:35,670 Hii moja, mimi nina kwenda kwa mabadiliko ya int na int. 1158 00:56:35,670 --> 00:56:38,660 Na hii moja, mimi nina kwenda na mabadiliko ya muda mrefu kwa muda mrefu. 1159 00:56:38,660 --> 00:56:40,840 Na ni bado kuchukua muda mrefu, kwa muda mrefu kwa muda mrefu. 1160 00:56:40,840 --> 00:56:44,572 >> Na kisha, mwisho, mimi alitoa mwenyewe moja wengi mno, kamba. 1161 00:56:44,572 --> 00:56:47,030 Ni zinageuka kuwa katika C, kuna operator maalum iitwayo 1162 00:56:47,030 --> 00:56:50,260 ukubwa wa hiyo ni literally kwenda, wakati kukimbia, 1163 00:56:50,260 --> 00:56:52,099 kutuambia ukubwa wa kila mmoja vigezo hivi. 1164 00:56:52,099 --> 00:56:53,890 Na hii ni njia, sasa, tunaweza kuungana nyuma 1165 00:56:53,890 --> 00:56:57,140 kwa majadiliano ya wiki iliyopita ya data na uwakilishi. 1166 00:56:57,140 --> 00:57:00,330 >> Hebu kwenda mbele na kukusanya ukubwa wa dot kufyeka ukubwa wa. 1167 00:57:00,330 --> 00:57:01,210 Na hebu angalia. 1168 00:57:01,210 --> 00:57:05,210 Ni zinageuka kuwa katika C, hasa juu ya CS50 IDE, 1169 00:57:05,210 --> 00:57:08,170 hasa juu ya mfumo wa uendeshaji Ubuntu, 1170 00:57:08,170 --> 00:57:11,100 ambayo ni 64-bit uendeshaji mfumo katika kesi hii, 1171 00:57:11,100 --> 00:57:14,189 bool ni kwenda kutumia Byte moja ya nafasi. 1172 00:57:14,189 --> 00:57:16,480 Hiyo ni jinsi ukubwa ni kipimo, si katika bits, lakini katika ka. 1173 00:57:16,480 --> 00:57:18,690 Na kukumbuka kwamba byte moja ni bits nane. 1174 00:57:18,690 --> 00:57:22,030 Hivyo bool, hata kama wewe kitaalam tu haja 0 au 1, 1175 00:57:22,030 --> 00:57:24,092 ni kidogo fujo jinsi tumekuwa kutekelezwa yake. 1176 00:57:24,092 --> 00:57:26,800 Ni kweli kwenda kutumia nzima byte-- hivyo zeros wote, ni labda 1177 00:57:26,800 --> 00:57:31,050 zote zile, au kitu kama hicho, au moja tu 1 miongoni mwa bits nane. 1178 00:57:31,050 --> 00:57:34,962 >> char, wakati huo huo, kutumika kwa ajili ya tabia kama Ascii tabia per wiki iliyopita, 1179 00:57:34,962 --> 00:57:36,170 ni kwenda kuwa tabia moja. 1180 00:57:36,170 --> 00:57:42,340 Na kwamba synchs up na wazo yetu ya hilo kuwa hakuna zaidi ya 256 bits-- badala yake, 1181 00:57:42,340 --> 00:57:45,360 synchs na ni kuwa hakuna zaidi ya 8 bits, ambayo 1182 00:57:45,360 --> 00:57:47,450 inatupa maadili kama wengi kama 256. 1183 00:57:47,450 --> 00:57:49,680 mara mbili ni kwenda kuwa 8 ka au 64 bits. 1184 00:57:49,680 --> 00:57:50,510 >> kuelea ni 4. 1185 00:57:50,510 --> 00:57:51,690 int ni 4. 1186 00:57:51,690 --> 00:57:52,980 muda mrefu, kwa muda mrefu ni 8. 1187 00:57:52,980 --> 00:57:54,716 Na kamba ni 8. 1188 00:57:54,716 --> 00:57:55,840 Lakini usijali kuhusu hilo. 1189 00:57:55,840 --> 00:57:57,340 Tunakwenda peel nyuma kwamba safu. 1190 00:57:57,340 --> 00:57:59,940 Ni zinageuka, masharti Unaweza kuwa mrefu zaidi ya 8 ka. 1191 00:57:59,940 --> 00:58:02,310 >> Na, kwa hakika, tumekuwa imeandikwa masharti tayari, hello dunia, 1192 00:58:02,310 --> 00:58:03,700 zaidi ya 8 ka. 1193 00:58:03,700 --> 00:58:06,270 Lakini tutaweza kurudi kwa kwamba katika muda tu. 1194 00:58:06,270 --> 00:58:09,690 Lakini kuchukua mbali hapa ni yafuatayo. 1195 00:58:09,690 --> 00:58:15,320 >> kompyuta yoyote tu ina finite kiasi cha kumbukumbu na nafasi. 1196 00:58:15,320 --> 00:58:17,860 Unaweza tu kuhifadhi wengi files juu ya Mac au PC yako. 1197 00:58:17,860 --> 00:58:23,030 Unaweza tu kuhifadhi mipango mingi katika RAM mbio mara moja, lazima, hata 1198 00:58:23,030 --> 00:58:26,360 na kumbukumbu virtual, kwa sababu una kiasi kidogo cha RAM. 1199 00:58:26,360 --> 00:58:28,990 >> Na tu picture-- kama wewe sijawahi imefungua mbali 1200 00:58:28,990 --> 00:58:31,300 au kuamuru kumbukumbu ya ziada kwa ajili ya kompyuta, wewe 1201 00:58:31,300 --> 00:58:33,670 wanaweza kujua kwamba ndani ya kompyuta yako 1202 00:58:33,670 --> 00:58:36,590 ni kitu ambacho inaonekana kidogo kama hii. 1203 00:58:36,590 --> 00:58:40,540 Hivyo hii ni tu kampuni ya kawaida aitwaye Muhimu kwamba inafanya RAM kwa kompyuta. 1204 00:58:40,540 --> 00:58:43,620 Na RAM ni ambapo programu kuishi wakati wao ni mbio. 1205 00:58:43,620 --> 00:58:46,630 >> Kadhalika kila Mac au PC, wakati wewe mara mbili click mpango, na ni kufungua, 1206 00:58:46,630 --> 00:58:48,921 na kufungua baadhi neno hati au kitu kama hicho, 1207 00:58:48,921 --> 00:58:51,764 ni maduka hayo kwa muda katika RAM, kwa sababu RAM ni kasi 1208 00:58:51,764 --> 00:58:53,680 kuliko disk yako ngumu, au hali yako imara disk. 1209 00:58:53,680 --> 00:58:56,600 Hivyo ni tu ambapo mipango kwenda kuishi wakati wao ni mbio, 1210 00:58:56,600 --> 00:58:58,060 au wakati mafaili zinatumika. 1211 00:58:58,060 --> 00:59:00,890 >> Hivyo kuwa mambo ambayo kuangalia kama ndani ya hii ya mbali yako, 1212 00:59:00,890 --> 00:59:03,320 au mambo kubwa kidogo ndani ya desktop yako. 1213 00:59:03,320 --> 00:59:07,440 Lakini muhimu ni wewe tu na finite idadi ya mambo haya. 1214 00:59:07,440 --> 00:59:11,230 Na kuna tu kiasi kidogo cha vifaa wamekaa dawati hii haki 1215 00:59:11,230 --> 00:59:11,730 hapa. 1216 00:59:11,730 --> 00:59:15,920 >> Hivyo, hakika, hatuwezi kuhifadhi kubwa kwa muda mrefu namba. 1217 00:59:15,920 --> 00:59:19,030 Na, hata hivyo, kama unadhani nyuma daraja shule, jinsi ya tarakimu watu wengi Unaweza 1218 00:59:19,030 --> 00:59:21,400 una haki ya uhakika decimal? 1219 00:59:21,400 --> 00:59:24,680 Kwa jambo hilo, jinsi ya tarakimu watu wengi Unaweza una kushoto ya uhakika decimal? 1220 00:59:24,680 --> 00:59:26,300 Kweli, kubwa wengi. 1221 00:59:26,300 --> 00:59:30,840 >> Sasa, sisi binadamu anaweza tu kujua jinsi ya kutamka milioni, 1222 00:59:30,840 --> 00:59:34,990 na bilioni, trilioni, na quadrillion, na quintillion. 1223 00:59:34,990 --> 00:59:39,370 Na mimi nina kusukuma mipaka ya yangu understanding-- au my-- mimi kuelewa 1224 00:59:39,370 --> 00:59:41,110 idadi, lakini yangu matamshi ya namba. 1225 00:59:41,110 --> 00:59:44,720 Lakini wanaweza kupata kubwa na kubwa kwa tarakimu infinitely wengi wa kushoto 1226 00:59:44,720 --> 00:59:47,050 au na haki ya uhakika decimal. 1227 00:59:47,050 --> 00:59:50,040 >> Lakini kompyuta tu kuwa kiasi kidogo cha kumbukumbu, 1228 00:59:50,040 --> 00:59:53,510 finite idadi ya transistors, a finite idadi ya balbu mwanga ndani. 1229 00:59:53,510 --> 00:59:57,350 Hivyo kile kinachotokea wakati wewe kukimbia nje ya nafasi? 1230 00:59:57,350 --> 00:59:59,620 Kwa maneno mengine, kama wewe kufikiri nyuma kwa wiki iliyopita 1231 00:59:59,620 --> 01:00:03,160 wakati sisi aliyesema kuhusu idadi wenyewe kuwakilishwa katika binary, 1232 01:00:03,160 --> 01:00:05,480 tuseme kwamba sisi tumepewa thamani hii 8-bit hapa. 1233 01:00:05,480 --> 01:00:08,290 >> Na tuna saba 1 na moja 0. 1234 01:00:08,290 --> 01:00:10,827 Na tuseme kwamba tunataka kuongeza 1 kwa thamani hii. 1235 01:00:10,827 --> 01:00:12,410 Hii ni kweli kubwa hivi sasa. 1236 01:00:12,410 --> 01:00:16,610 >> Hii ni 254, kama mimi kukumbuka math kutoka kulia wiki iliyopita. 1237 01:00:16,610 --> 01:00:19,480 Lakini nini kama mimi kubadili kwamba rightmost 0 kwa 1? 1238 01:00:19,480 --> 01:00:22,800 Hesabu yote, ya Bila shaka, inakuwa nane 1 ya. 1239 01:00:22,800 --> 01:00:24,050 Hivyo sisi bado ni nzuri. 1240 01:00:24,050 --> 01:00:27,204 >> Na kwamba pengine inawakilisha 255, ingawa kulingana na mazingira 1241 01:00:27,204 --> 01:00:29,120 inaweza kweli kuwakilisha namba hasi. 1242 01:00:29,120 --> 01:00:31,240 Lakini zaidi juu ya kwamba wakati mwingine. 1243 01:00:31,240 --> 01:00:34,220 Hii anahisi kama ni kuhusu kama juu kama mimi unaweza kuhesabu. 1244 01:00:34,220 --> 01:00:35,290 >> Sasa, ni bits 8 tu. 1245 01:00:35,290 --> 01:00:38,170 Na Mac yangu, hakika, ina njia zaidi ya 8 bits ya kumbukumbu. 1246 01:00:38,170 --> 01:00:39,170 Lakini haina kuwa finite. 1247 01:00:39,170 --> 01:00:43,230 Hivyo hoja hiyo inatumika, hata kama sisi kuwa na zaidi ya hawa juu ya screen. 1248 01:00:43,230 --> 01:00:47,020 >> Lakini nini kinatokea kama wewe ni kuhifadhi idadi hiyo, 255, 1249 01:00:47,020 --> 01:00:49,290 na unataka kuhesabu 1 kidogo juu? 1250 01:00:49,290 --> 01:00:51,600 Unataka kwenda 255-256. 1251 01:00:51,600 --> 01:00:55,800 tatizo, bila shaka, ni kwamba kama wewe kuanza kuhesabu saa sifuri kama wiki iliyopita, 1252 01:00:55,800 --> 01:00:59,670 huwezi kuhesabu kama juu kama 256, achilia 257, 1253 01:00:59,670 --> 01:01:02,584 achilia 258, m kwa sababu kile hutokea wakati kuongeza 1? 1254 01:01:02,584 --> 01:01:05,000 Kama wewe kufanya umri wa daraja shule mbinu, kuweka 1 hapa, 1255 01:01:05,000 --> 01:01:08,150 na kisha 1 plus 1 ni 2, lakini hiyo ni kweli zero, wewe kubeba 1, 1256 01:01:08,150 --> 01:01:09,695 kubeba 1, kubeba 1. 1257 01:01:09,695 --> 01:01:12,620 Mambo yote haya, 1 hayo, nenda na sifuri. 1258 01:01:12,620 --> 01:01:17,820 Na wewe upepo hadi, ndiyo, kama mtu alidokeza, 1 upande wa kushoto. 1259 01:01:17,820 --> 01:01:22,540 Lakini kila kitu unaweza kweli kuona na inafaa katika kumbukumbu 1260 01:01:22,540 --> 01:01:27,960 ni nane tu 0, ambayo ni kusema wakati fulani kama wewe, kompyuta, 1261 01:01:27,960 --> 01:01:32,490 walijaribu kuhesabu juu ya kutosha juu, uko kwenda kufungia, inaweza kuonekana, 1262 01:01:32,490 --> 01:01:35,850 na sifuri, au labda hata hasi namba, ambayo ni hata chini ya sifuri. 1263 01:01:35,850 --> 01:01:37,260 >> Na tunaweza aina ya kuona hii. 1264 01:01:37,260 --> 01:01:39,900 Hebu kwenda mbele na kuandika halisi haraka mpango hapa. 1265 01:01:39,900 --> 01:01:43,690 Hebu kwenda mbele na kuandika programu inayoitwa kufurika. 1266 01:01:43,690 --> 01:01:49,980 Pamoja na CS50.h, ni pamoja na kiwango cha IO.h-- loo, 1267 01:01:49,980 --> 01:01:51,730 Mimi kwa kweli amekosa syntax yangu mwangaza. 1268 01:01:51,730 --> 01:01:54,440 Basi hebu kuokoa hii kama overflow.c. 1269 01:01:54,440 --> 01:01:57,084 >> Na sasa int kuu void-- na baada ya muda, tutaweza 1270 01:01:57,084 --> 01:01:59,500 kurudi kueleza kwa nini sisi kuendelea kuandika int kuu utupu. 1271 01:01:59,500 --> 01:02:02,080 Lakini kwa sasa, hebu tu kufanya hivyo, kuchukua ni kwa nafasi. 1272 01:02:02,080 --> 01:02:06,200 Hebu kutoa mwenyewe int, na initialize kwa 0. 1273 01:02:06,200 --> 01:02:11,716 >> Hebu basi kufanya kwa int i kupata zero-- kweli, hebu kufanya usio kitanzi 1274 01:02:11,716 --> 01:02:12,590 na kuona nini kinatokea. 1275 01:02:12,590 --> 01:02:22,440 Wakati kweli, basi hebu magazeti nje n ni asilimia i, backslash n, kuziba-katika n. 1276 01:02:22,440 --> 01:02:27,200 Lakini, sasa, hebu kufanya n anapata n plus 1. 1277 01:02:27,200 --> 01:02:29,660 >> Hivyo kwa maneno mengine, juu ya kila iteration ya kitanzi hii usio na mipaka, 1278 01:02:29,660 --> 01:02:32,550 hebu kuchukua thamani n ya, na kuongeza 1 kwa hilo, na kisha 1279 01:02:32,550 --> 01:02:34,350 kuhifadhi matokeo ya nyuma katika n upande wa kushoto. 1280 01:02:34,350 --> 01:02:37,150 Na, kwa kweli, tumeona syntax kidogo kama hii, kwa ufupi. 1281 01:02:37,150 --> 01:02:39,730 hila baridi ni badala ya kuandika yote haya nje, 1282 01:02:39,730 --> 01:02:42,770 unaweza kweli kusema n plus sawa na 1. 1283 01:02:42,770 --> 01:02:47,480 >> Au kama wewe kweli unataka kuwa dhana tu, unaweza kusema n plus plus nusu koloni. 1284 01:02:47,480 --> 01:02:50,130 Lakini hizi mbili za mwisho ni tu nini tunatarajia kuwaita kisintaksia sukari 1285 01:02:50,130 --> 01:02:50,790 kwa jambo la kwanza. 1286 01:02:50,790 --> 01:02:53,456 >> Jambo la kwanza ni wazi zaidi, kabisa faini, sahihi kabisa. 1287 01:02:53,456 --> 01:02:55,470 Lakini hii ni zaidi ya kawaida, mimi itabidi kusema. 1288 01:02:55,470 --> 01:02:57,210 Hivyo tutaweza kufanya hivyo kwa muda tu. 1289 01:02:57,210 --> 01:03:01,685 >> Hebu sasa kufanya kufurika, ambayo sauti badala ominous, dot kufyeka kufurika. 1290 01:03:01,685 --> 01:03:04,380 1291 01:03:04,380 --> 01:03:09,852 Hebu angalia, n ni kupata pretty kubwa. 1292 01:03:09,852 --> 01:03:11,310 Lakini hebu fikiria, jinsi kubwa unaweza n kupata? 1293 01:03:11,310 --> 01:03:12,870 >> n ni int. 1294 01:03:12,870 --> 01:03:16,400 Tuliona wakati iliyopita na ukubwa wa mfano kwamba int ni ka nne. 1295 01:03:16,400 --> 01:03:22,070 Tunajua kutokana na wiki iliyopita, ka nne ni 32 bits, kwa sababu 8 mara 4, hiyo ni 32. 1296 01:03:22,070 --> 01:03:23,460 Hiyo inaenda kuwa bilioni 4. 1297 01:03:23,460 --> 01:03:25,802 >> Na sisi ni hadi 800,000. 1298 01:03:25,802 --> 01:03:28,510 Hii ni kwenda kuchukua milele kuhesabu kama juu kama mimi waweza. 1299 01:03:28,510 --> 01:03:30,635 Hivyo mimi nina kwenda mbele, kama waweza kabla ya muda mrefu, 1300 01:03:30,635 --> 01:03:34,910 na kugonga Control C-- kusema ukweli, Control C, mengi, ambapo Control C kwa ujumla 1301 01:03:34,910 --> 01:03:36,034 njia kufuta. 1302 01:03:36,034 --> 01:03:38,200 Kwa bahati mbaya, kwa sababu hii ni mbio katika wingu, 1303 01:03:38,200 --> 01:03:41,190 pengine lile wingu ni kutema mate nje mambo mengi, 1304 01:03:41,190 --> 01:03:44,180 pato sana, ni kwenda kuchukua muda kidogo kwa ajili ya pembejeo yangu 1305 01:03:44,180 --> 01:03:45,630 kupata wingu. 1306 01:03:45,630 --> 01:03:49,240 Hivyo hata kama mimi hit Control C sekunde chache zilizopita, 1307 01:03:49,240 --> 01:03:53,110 hii ni dhahiri upande athari ya kitanzi usio. 1308 01:03:53,110 --> 01:03:56,070 >> Na hivyo katika kesi hiyo, tuko ataondoka kwamba kuwa. 1309 01:03:56,070 --> 01:03:59,050 Na tunakwenda kuongeza mwingine terminal dirisha juu hapa 1310 01:03:59,050 --> 01:04:03,186 kwa pamoja, ambayo bila shaka haina kama kwamba, tangu ni bado kufikiri. 1311 01:04:03,186 --> 01:04:05,310 Na hebu kwenda mbele na kuwa kidogo zaidi ya busara. 1312 01:04:05,310 --> 01:04:07,768 >> Mimi nina kwenda mbele na kufanya hii tu finitely wengi nyakati. 1313 01:04:07,768 --> 01:04:10,047 Hebu kutumia kwa kitanzi, ambayo mimi alluded mapema. 1314 01:04:10,047 --> 01:04:10,630 Hebu kufanya hivyo. 1315 01:04:10,630 --> 01:04:13,430 Nipe mwingine int variable i anapata 0. 1316 01:04:13,430 --> 01:04:17,430 i ni chini ya, hebu sema, 64 i ++. 1317 01:04:17,430 --> 01:04:24,010 Na sasa napenda kwenda mbele na magazeti nje n ni asilimia i, comma n. 1318 01:04:24,010 --> 01:04:27,547 Na kisha n-- hii bado kwenda kuchukua milele. 1319 01:04:27,547 --> 01:04:28,130 Hebu kufanya hivyo. 1320 01:04:28,130 --> 01:04:30,620 >> n anapata n mara 2. 1321 01:04:30,620 --> 01:04:34,140 Au tunaweza kuwa na dhana na kufanya mara sawa na 2. 1322 01:04:34,140 --> 01:04:37,120 Lakini hebu tu kusema n sawa na yenyewe, mara 2. 1323 01:04:37,120 --> 01:04:39,321 Kwa maneno mengine, katika hili mpya toleo la mpango, 1324 01:04:39,321 --> 01:04:41,820 Sitaki kusubiri daima kutoka kama 800,000 kwa bilioni 4. 1325 01:04:41,820 --> 01:04:43,070 Hebu tu kupata zaidi ya hii na. 1326 01:04:43,070 --> 01:04:44,920 >> Hebu kweli mara mbili n kila wakati. 1327 01:04:44,920 --> 01:04:47,660 Ambayo, kukumbuka, mara dufu ni kinyume cha kuwa, bila shaka. 1328 01:04:47,660 --> 01:04:50,035 Na ambapo wiki iliyopita tuna kitu tena, na tena, 1329 01:04:50,035 --> 01:04:52,200 na tena, super haraka, mara dufu bila ya shaka 1330 01:04:52,200 --> 01:04:58,080 kupata yetu kutoka 1 kwa kubwa iwezekanavyo thamani kwamba tunaweza kuhesabu kwa pamoja int. 1331 01:04:58,080 --> 01:04:59,750 >> Basi hebu kufanya hasa hili. 1332 01:04:59,750 --> 01:05:01,720 Na tutaweza kurudi huu kabla ya muda mrefu. 1333 01:05:01,720 --> 01:05:04,180 Lakini hii, tena, ni tu kama kuzuia kurudia katika Scratch. 1334 01:05:04,180 --> 01:05:05,600 Na wewe utakuwa kutumia hii kabla ya muda mrefu. 1335 01:05:05,600 --> 01:05:10,170 >> Hii ina maana kuhesabu kutoka sifuri hadi, lakini si sawa, hadi 64. 1336 01:05:10,170 --> 01:05:14,285 Na juu ya kila iteration ya hii kitanzi, tu kuweka incrementing i. 1337 01:05:14,285 --> 01:05:18,990 Hivyo i ++ - na hii kujenga ujumla kwenye mstari 7 ni njia tu super kawaida 1338 01:05:18,990 --> 01:05:22,290 ya kurudia baadhi ya mistari ya kanuni, baadhi idadi ya nyakati. 1339 01:05:22,290 --> 01:05:23,362 Ambayo mstari wa kanuni? 1340 01:05:23,362 --> 01:05:25,570 Hizi braces curly, kama wewe huenda zilizopatikana kutoka sasa, 1341 01:05:25,570 --> 01:05:26,780 maana, kufanya yafuatayo. 1342 01:05:26,780 --> 01:05:29,510 >> Ni katika kama Scratch, wakati ina vitalu njano 1343 01:05:29,510 --> 01:05:32,680 na rangi nyingine aina hiyo ya kukumbatia au kumkumbatia vitalu nyingine. 1344 01:05:32,680 --> 01:05:34,750 Hiyo ni nini curly wale braces ni kufanya hapa. 1345 01:05:34,750 --> 01:05:40,200 Hivyo kama mimi got syntax yangu right-- wewe unaweza kuona ishara karoti katika C njia 1346 01:05:40,200 --> 01:05:42,706 hiyo ni mara ngapi mimi nilikuwa kujaribu kutatua tatizo hili. 1347 01:05:42,706 --> 01:05:45,330 Hivyo hebu kujikwamua kwamba moja kabisa, na karibu kwamba dirisha. 1348 01:05:45,330 --> 01:05:46,520 Na tutaweza kutumia mwezi mmoja. 1349 01:05:46,520 --> 01:05:51,980 Kufanya kufurika, dot kufyeka kufurika, Ingieni, wote haki, 1350 01:05:51,980 --> 01:05:53,090 inaonekana mbaya wakati wa kwanza. 1351 01:05:53,090 --> 01:05:56,200 Lakini hebu kitabu nyuma katika wakati, kwa sababu mimi hii mara 64. 1352 01:05:56,200 --> 01:05:58,700 >> Na taarifa mara ya kwanza, n ni 1. 1353 01:05:58,700 --> 01:06:03,110 mara ya pili, n ni 2, kisha 4, kisha 8, kisha 16. 1354 01:06:03,110 --> 01:06:09,450 Na inaonekana kwamba haraka kama Mimi kupata takribani bilioni 1, 1355 01:06:09,450 --> 01:06:12,800 kama mimi mara mbili yake tena, kwamba anipe bilioni 2. 1356 01:06:12,800 --> 01:06:14,980 Lakini zinageuka, ni haki juu ya cusp. 1357 01:06:14,980 --> 01:06:18,930 >> Na hivyo ni kweli kufurika int kutoka bilioni 1 1358 01:06:18,930 --> 01:06:23,514 kwa takribani hasi 2 bilioni, kwa sababu integer, 1359 01:06:23,514 --> 01:06:25,430 tofauti na idadi sisi walikuwa kuchukua wiki iliyopita, 1360 01:06:25,430 --> 01:06:28,397 inaweza kuwa wote chanya na hasi katika hali halisi na katika kompyuta. 1361 01:06:28,397 --> 01:06:30,730 Na ili angalau mmoja wa wale bits ni ufanisi kuibiwa. 1362 01:06:30,730 --> 01:06:34,190 Hivyo kweli sisi tu kuwa 31 bits, au bilioni 2 maadili iwezekanavyo. 1363 01:06:34,190 --> 01:06:38,220 >> Lakini kwa sasa, takeaway ni kabisa tu, chochote nambari hizi ni 1364 01:06:38,220 --> 01:06:42,280 na chochote math ni, kitu mbaya hutokea hatimaye, 1365 01:06:42,280 --> 01:06:46,980 kwa sababu hatimaye wewe ni kujaribu permute bits moja mara nyingi sana. 1366 01:06:46,980 --> 01:06:51,060 Na wewe kwa ufanisi kwenda kutoka 1 kwa labda wote 0, au labda 1367 01:06:51,060 --> 01:06:54,260 baadhi tu mfano mwingine kwamba wazi, kulingana na mazingira, 1368 01:06:54,260 --> 01:06:56,342 inaweza kutafsiriwa kama namba hasi. 1369 01:06:56,342 --> 01:06:59,300 Na hivyo inaweza kuonekana mimi juu Unaweza kuhesabu katika mpango huu hasa 1370 01:06:59,300 --> 01:07:01,210 ni tu takribani bilioni 1. 1371 01:07:01,210 --> 01:07:02,760 Lakini kuna ufumbuzi ubaguzi hapa. 1372 01:07:02,760 --> 01:07:03,480 Unajua nini? 1373 01:07:03,480 --> 01:07:07,600 >> Napenda kubadili kutoka int kwa muda mrefu kwa muda mrefu. 1374 01:07:07,600 --> 01:07:10,633 Na napenda kwenda mbele hapa na say-- mimi nina kwenda kuwa 1375 01:07:10,633 --> 01:07:12,290 kubadili hali hii kwa unsigned muda mrefu. 1376 01:07:12,290 --> 01:07:16,860 Au, hebu angalia, mimi kamwe kukumbuka mwenyewe. 1377 01:07:16,860 --> 01:07:19,920 >> Hebu kwenda mbele na kufanya kufurika. 1378 01:07:19,920 --> 01:07:21,860 Hakuna, si kwamba ni, LLD, asante. 1379 01:07:21,860 --> 01:07:23,430 Hivyo wakati mwingine Clang inaweza kuwa na manufaa. 1380 01:07:23,430 --> 01:07:27,550 Sikuwa kukumbuka nini format specifier alikuwa kwa muda mrefu kwa muda mrefu. 1381 01:07:27,550 --> 01:07:28,950 >> Lakini, kwa kweli, Clang aliniambia. 1382 01:07:28,950 --> 01:07:31,570 Green ni aina fulani ya mema, bado ina maana alifanya makosa. 1383 01:07:31,570 --> 01:07:33,190 Ni kubahatisha kwamba mimi maana LLD. 1384 01:07:33,190 --> 01:07:38,750 >> Hivyo basi mimi kuchukua ni ushauri, kwa muda mrefu muda mrefu idadi decimal, ila hiyo. 1385 01:07:38,750 --> 01:07:43,190 Na napenda rerun yake, dot kufyeka kufurika, kuingia. 1386 01:07:43,190 --> 01:07:45,020 Na sasa nini baridi ni hii. 1387 01:07:45,020 --> 01:07:49,140 >> Kama mimi kitabu nyuma katika wakati, bado tunaanza kuhesabu katika place-- huo 1, 2, 4, 1388 01:07:49,140 --> 01:07:50,220 8, 16. 1389 01:07:50,220 --> 01:07:54,860 Ilani, sisi kupata yote njia hadi bilioni 1. 1390 01:07:54,860 --> 01:07:57,070 Lakini basi sisi salama kupata bilioni 2. 1391 01:07:57,070 --> 01:08:01,300 >> Kisha sisi kupata bilioni 4, kisha bilioni 8, bilioni 17. 1392 01:08:01,300 --> 01:08:03,340 Na sisi kwenda juu, na juu, na ya juu. 1393 01:08:03,340 --> 01:08:05,740 Hatimaye, hii, pia, mapumziko. 1394 01:08:05,740 --> 01:08:09,350 >> Hatimaye, kwa muda mrefu kwa muda mrefu, ambayo ni thamani ya 64-bit, si 1395 01:08:09,350 --> 01:08:13,660 thamani 32-bit, kama hesabu juu sana, kufungia 0. 1396 01:08:13,660 --> 01:08:16,410 Na katika kesi hii, sisi kutokea kwa kuishia na namba hasi. 1397 01:08:16,410 --> 01:08:17,550 >> Hivyo hii ni tatizo. 1398 01:08:17,550 --> 01:08:20,439 Na zinageuka kuwa hii Tatizo siyo arcane kwamba wote. 1399 01:08:20,439 --> 01:08:23,060 Japokuwa nimekuwa makusudi ikiwa ni pamoja na makosa hayo, 1400 01:08:23,060 --> 01:08:26,149 ni zamu nje tunaona aina ya yote inayotuzunguka, au angalau baadhi yetu kufanya. 1401 01:08:26,149 --> 01:08:28,939 >> Hivyo katika Lego Star Wars, kama umefanya milele kucheza mchezo, 1402 01:08:28,939 --> 01:08:33,830 ni zamu nje unaweza kwenda karibu kuvunja vitu juu katika LEGO dunia, 1403 01:08:33,830 --> 01:08:36,640 na kukusanya sarafu, kimsingi. 1404 01:08:36,640 --> 01:08:39,200 Na kama wameweza milele kucheza mchezo huu njia muda sana, 1405 01:08:39,200 --> 01:08:42,630 kama mtu binafsi hii unnamed hapa alivyofanya, idadi ya jumla 1406 01:08:42,630 --> 01:08:46,700 ya sarafu kwamba unaweza kukusanya ni, inaweza kuonekana, bilioni 4. 1407 01:08:46,700 --> 01:08:48,240 >> Sasa, pamoja na ni kweli mviringo. 1408 01:08:48,240 --> 01:08:50,239 Hivyo LEGO alikuwa anajaribu kuweka mambo user kirafiki. 1409 01:08:50,239 --> 01:08:53,779 Wao hawakuwa kufanya hivyo hasa 2 kwa 32 nguvu, per wiki iliyopita. 1410 01:08:53,779 --> 01:08:55,310 Lakini bilioni 4 ni sababu. 1411 01:08:55,310 --> 01:08:58,979 Inaonekana, kulingana na habari hii, kwamba LEGO, na kampuni hiyo 1412 01:08:58,979 --> 01:09:02,624 alifanya programu hii halisi, aliamua kwamba upeo wa idadi ya sarafu 1413 01:09:02,624 --> 01:09:04,540 user unaweza kukusanya ni kweli, bilioni 4, 1414 01:09:04,540 --> 01:09:12,069 kwa sababu waliowachagua katika kanuni zao kutumia si muda mrefu kwa muda mrefu, inaonekana, 1415 01:09:12,069 --> 01:09:16,140 lakini tu integer, unsigned integer, tu integer chanya, ambaye 1416 01:09:16,140 --> 01:09:18,089 max thamani ya kitu takribani hiyo. 1417 01:09:18,089 --> 01:09:19,380 Naam, hapa ni mwingine mmoja funny. 1418 01:09:19,380 --> 01:09:23,500 Hivyo katika mchezo Civilization, ambayo baadhi yenu wanaweza kuwa na mazoea, na 1419 01:09:23,500 --> 01:09:26,660 zinageuka kuwa miaka iliyopita kulikuwa Ilikuwa mdudu katika mchezo huu ambapo 1420 01:09:26,660 --> 01:09:28,750 kama wewe jukumu ya Gandhi katika mchezo, 1421 01:09:28,750 --> 01:09:34,020 badala ya yeye kuwa pacifist sana, badala alikuwa incredibly, incredibly 1422 01:09:34,020 --> 01:09:36,399 fujo, katika hali fulani. 1423 01:09:36,399 --> 01:09:40,529 Hasa, kwa njia hiyo Civilization kazi ni kwamba kama wewe, mchezaji, 1424 01:09:40,529 --> 01:09:44,680 kupitisha demokrasia, yako alama uchokozi anapata 1425 01:09:44,680 --> 01:09:48,130 decremented wawili, kwa hiyo minus bala, na kisha minus minus. 1426 01:09:48,130 --> 01:09:50,569 >> Hivyo wewe Ondoa 2 kutoka halisi iterating yako. 1427 01:09:50,569 --> 01:09:56,650 Kwa bahati mbaya, kama iterating yako ni awali 1, na wewe Ondoa 2 kutoka humo 1428 01:09:56,650 --> 01:09:59,050 baada ya kupitisha demokrasia kama Gandhi hapa wapate 1429 01:09:59,050 --> 01:10:02,200 wamefanya, kwa sababu alikuwa passive-- sana 1 juu ya ukubwa wa uchokozi. 1430 01:10:02,200 --> 01:10:04,830 Lakini kama yeye antar demokrasia, basi aendako kutoka 1 kwa hasi 1. 1431 01:10:04,830 --> 01:10:11,470 >> Kwa bahati mbaya, walikuwa kutumia namba unsigned, 1432 01:10:11,470 --> 01:10:15,400 ambayo ina maana wao kutibiwa hata hasi idadi kana kwamba yalikuwa mazuri. 1433 01:10:15,400 --> 01:10:19,780 Na zinageuka kuwa chanya sawa na hasi 1, 1434 01:10:19,780 --> 01:10:23,480 katika mipango ya kawaida ya kompyuta, ni 255. 1435 01:10:23,480 --> 01:10:27,250 Hivyo kama Gandhi antar demokrasia, na kwa hiyo ina 1436 01:10:27,250 --> 01:10:32,470 uchokozi wake alama ilipungua, ni kweli Rolls kote kwa 255 1437 01:10:32,470 --> 01:10:35,470 na hufanya yake zaidi tabia ya fujo katika mchezo. 1438 01:10:35,470 --> 01:10:36,930 Hivyo unaweza Google juu ya hili. 1439 01:10:36,930 --> 01:10:39,380 Na ilikuwa, kwa kweli, ajali programu mdudu, 1440 01:10:39,380 --> 01:10:43,010 lakini hiyo ni aliingia kabisa lore tangu wakati huo. 1441 01:10:43,010 --> 01:10:44,360 >> Hayo ni yote na furaha na cute. 1442 01:10:44,360 --> 01:10:47,760 Zaidi ya kutisha ni wakati halisi vifaa ulimwengu wa kweli, na si michezo, 1443 01:10:47,760 --> 01:10:48,820 kuwa na mende hayo. 1444 01:10:48,820 --> 01:10:54,500 Kwa kweli, tu mwaka mmoja uliopita makala alikuja nje kuhusu Boeing 787 Dreamliner. 1445 01:10:54,500 --> 01:10:56,850 >> Na makala mwanzoni mtazamo wasomaji arcane kidogo. 1446 01:10:56,850 --> 01:11:01,480 Lakini kusema hayo, programu mazingira magumu katika Boeing 1447 01:11:01,480 --> 01:11:04,790 mpya 787 Dreamliner ndege ina uwezo wa kusababisha marubani 1448 01:11:04,790 --> 01:11:07,220 kupoteza udhibiti wa ndege, pengine 1449 01:11:07,220 --> 01:11:11,750 katika katikati ya ndege, maafisa FAA alionya mashirika ya ndege hivi karibuni. 1450 01:11:11,750 --> 01:11:14,520 Ilikuwa ni uamuzi kwamba mtindo 787 1451 01:11:14,520 --> 01:11:19,770 ndege ambayo imekuwa powered siku kuendelea kwa 248 1452 01:11:19,770 --> 01:11:24,880 unaweza kupoteza wote alternating sasa, AC, nguvu za umeme kutokana na jenereta 1453 01:11:24,880 --> 01:11:28,892 vitengo vya kudhibiti, GCUs, wakati huo huo kwenda katika kushindwa hali ya salama. 1454 01:11:28,892 --> 01:11:29,850 Ni aina ya kupoteza yangu. 1455 01:11:29,850 --> 01:11:35,390 Lakini memo alisema, OK, sasa mimi got kwamba, hali ilisababishwa na programu 1456 01:11:35,390 --> 01:11:38,590 kukabiliana ndani ya kudhibiti jenereta 1457 01:11:38,590 --> 01:11:44,860 vitengo kwamba ufurikishe baada siku 248 ya nguvu ya kuendelea. 1458 01:11:44,860 --> 01:11:47,070 Sisi ni kutoa hii taarifa ili kuzuia hasara 1459 01:11:47,070 --> 01:11:49,300 ya yote AC umeme nguvu, ambayo inaweza kusababisha 1460 01:11:49,300 --> 01:11:50,980 hasara ya udhibiti wa ndege. 1461 01:11:50,980 --> 01:11:55,380 >> Hivyo, literally, kuna baadhi ya integer, au baadhi sawa data aina, 1462 01:11:55,380 --> 01:11:57,960 kuwa kutumika katika programu katika ndege halisi 1463 01:11:57,960 --> 01:12:00,756 kwamba kama wewe kuweka ndege yako juu ya muda wa kutosha, ambayo inaonekana 1464 01:12:00,756 --> 01:12:03,880 inaweza kuwa kesi kama wewe ni mbio tu yao mara kwa mara na kamwe unplugging 1465 01:12:03,880 --> 01:12:06,810 ndege yako, inaonekana, au kuruhusu betri wake kufa, 1466 01:12:06,810 --> 01:12:09,840 hatimaye kuhesabu juu, na juu, na juu, na juu, na juu, na up. 1467 01:12:09,840 --> 01:12:12,150 >> Na, kwa asili, a kiasi kidogo cha kumbukumbu 1468 01:12:12,150 --> 01:12:15,880 ufurikishe, akalivingirisha kwa zero au baadhi thamani hasi, 1469 01:12:15,880 --> 01:12:19,920 athari upande wa ambayo ni ukweli frighteningly halisi 1470 01:12:19,920 --> 01:12:23,970 kwamba ndege ili haja kuwa rebooted, kwa ufanisi, 1471 01:12:23,970 --> 01:12:27,290 au inaweza kuanguka, mbaya, kama inzi. 1472 01:12:27,290 --> 01:12:29,230 Basi hizi aina ya masuala bado na sisi, 1473 01:12:29,230 --> 01:12:33,130 even-- hii ilikuwa makala 2015, wote zaidi ya kutisha 1474 01:12:33,130 --> 01:12:36,100 wakati wa kufanya si lazima kuelewa, kuthamini, au wanatarajia 1475 01:12:36,100 --> 01:12:38,640 aina wale wa makosa. 1476 01:12:38,640 --> 01:12:42,030 >> Hivyo ni zamu nje kuna mtu mwingine jambo baya kuhusu data uwakilishi. 1477 01:12:42,030 --> 01:12:47,080 Ni zinageuka kuwa hata ikifungwa ni aina ya kiujanja, kwa sababu ikifungwa, pia, 1478 01:12:47,080 --> 01:12:51,440 Mimi mapendekezo ni 32 bits, au labda 64 kama wewe kutumia mara mbili. 1479 01:12:51,440 --> 01:12:53,070 Lakini hiyo ni bado zina mwisho. 1480 01:12:53,070 --> 01:12:57,070 >> Na samaki ni kwamba kama unaweza kuweka idadi ya usio wa idadi 1481 01:12:57,070 --> 01:12:59,460 baada ya uhakika decimal, hakuna njia wewe 1482 01:12:59,460 --> 01:13:02,690 wanaweza kuwakilisha iwezekanavyo zote idadi ambayo tulikuwa kufundishwa 1483 01:13:02,690 --> 01:13:04,990 katika daraja shule inaweza kuwepo katika dunia. 1484 01:13:04,990 --> 01:13:08,870 kompyuta, kimsingi, ana kuchagua subset ya idadi ya wale 1485 01:13:08,870 --> 01:13:10,200 kuiwakilisha kwa usahihi. 1486 01:13:10,200 --> 01:13:12,450 >> Sasa, kompyuta Unaweza pande zote labda kidogo kidogo, 1487 01:13:12,450 --> 01:13:17,900 na inaweza kuruhusu takribani duka idadi yoyote unaweza uwezekano unataka. 1488 01:13:17,900 --> 01:13:20,940 Lakini tu intuitively, kama wewe kuwa finite idadi ya bits, 1489 01:13:20,940 --> 01:13:24,560 unaweza tu permute yao kwa njia nyingi zina mwisho. 1490 01:13:24,560 --> 01:13:26,570 Hivyo unaweza si uwezekano kutumia idadi finite 1491 01:13:26,570 --> 01:13:29,880 ya permutation ya bits, chati ya zeros na ndio, 1492 01:13:29,880 --> 01:13:32,940 kuiwakilisha usio idadi ya namba, 1493 01:13:32,940 --> 01:13:37,370 ambayo inaonyesha kwamba kompyuta nguvu vizuri sana kuwa uongo kwetu wakati mwingine. 1494 01:13:37,370 --> 01:13:38,770 >> Kwa kweli, hebu kufanya hili. 1495 01:13:38,770 --> 01:13:41,239 Hebu kwenda nyuma katika CS50 IDE. 1496 01:13:41,239 --> 01:13:43,030 Hebu kwenda mbele na kujenga mpango kidogo 1497 01:13:43,030 --> 01:13:47,940 aitwaye kutokuwa sahihi, ili kuonyesha kwamba kompyuta ni kweli, imprecise. 1498 01:13:47,940 --> 01:13:51,910 >> Na napenda kwenda mbele na kuanza na baadhi ya kificho kwamba mbele, 1499 01:13:51,910 --> 01:13:53,830 na sasa tu kufanya yafuatayo. 1500 01:13:53,830 --> 01:14:03,640 Hebu kwenda mbele na kufanya printf, asilimia f, backslash n, 1 kugawanywa na 10. 1501 01:14:03,640 --> 01:14:07,430 Kwa maneno mengine, hebu tuzame katika zaidi kwa 1/10, kama 1 na kugawanywa na 10. 1502 01:14:07,430 --> 01:14:09,760 Hakika, kompyuta inaweza kuwakilisha 1/10. 1503 01:14:09,760 --> 01:14:13,620 >> Basi hebu kwenda mbele na kufanya kutokuwa sahihi. 1504 01:14:13,620 --> 01:14:14,390 Hebu tuone. 1505 01:14:14,390 --> 01:14:16,210 Format bayana aina mbili. 1506 01:14:16,210 --> 01:14:18,160 Lakini hoja ina aina int. 1507 01:14:18,160 --> 01:14:19,040 Ni nini kinaendelea? 1508 01:14:19,040 --> 01:14:21,970 >> Oh, kuvutia, hivyo ni somo la kujifunza kutoka kabla. 1509 01:14:21,970 --> 01:14:26,050 Mimi kusema, hey, kompyuta show me kuelea na asilimia f. 1510 01:14:26,050 --> 01:14:28,200 Lakini mimi nina kutoa ni 2 ints. 1511 01:14:28,200 --> 01:14:31,120 Hivyo ni zamu nje, siwezi kurekebisha hii katika michache ya njia. 1512 01:14:31,120 --> 01:14:38,430 >> Mimi nilikuwa tu kugeuka moja katika 1.0, na 10 katika 10.0, ambayo ingekuwa, kwa hakika, 1513 01:14:38,430 --> 01:14:42,390 kuwa na athari ya kuwabadili yao katika floats-- bado hopefully 1514 01:14:42,390 --> 01:14:43,180 idadi sawa. 1515 01:14:43,180 --> 01:14:45,880 Au ni zamu huko nje ni kitu tutaweza kuona tena kabla ya muda mrefu. 1516 01:14:45,880 --> 01:14:47,170 Unaweza kutupwa idadi. 1517 01:14:47,170 --> 01:14:49,880 >> Unaweza, kwa kutumia mabano huu kujieleza, unaweza kusema, 1518 01:14:49,880 --> 01:14:52,560 hey, kompyuta, kuchukua hii 10, ambayo najua ni int. 1519 01:14:52,560 --> 01:14:54,660 Lakini kutibu hayo, tafadhali, kana kwamba ni kuelea. 1520 01:14:54,660 --> 01:14:56,680 Lakini hii anahisi usiokuwa tata. 1521 01:14:56,680 --> 01:14:59,040 >> Kwa madhumuni yetu leo, hebu tu literally 1522 01:14:59,040 --> 01:15:02,700 kufanya nao yaliyo maadili uhakika na uhakika decimal, kama hii. 1523 01:15:02,700 --> 01:15:07,060 Hebu kwenda mbele na rerun, kufanya kutokuwa sahihi, nzuri, dot kufyeka 1524 01:15:07,060 --> 01:15:08,870 imprecision, kuingia. 1525 01:15:08,870 --> 01:15:10,990 OK, sisi ni kuangalia nzuri. 1526 01:15:10,990 --> 01:15:18,194 >> 1 kugawanywa na 10, kwa mujibu wa yangu Mac hapa, ni kweli, 0.100000. 1527 01:15:18,194 --> 01:15:21,360 Sasa, nilikuwa kufundishwa katika shule ya daraja huko lazima idadi ya usio wa 0 ya. 1528 01:15:21,360 --> 01:15:23,151 Basi hebu angalau kujaribu kuona baadhi ya wale. 1529 01:15:23,151 --> 01:15:26,770 Ni zinageuka kuwa printf ni kidogo bado fancier kuliko tumekuwa kutumia. 1530 01:15:26,770 --> 01:15:30,890 Ni zinageuka huna bayana asilimia f, au asilimia tu i. 1531 01:15:30,890 --> 01:15:33,830 Unaweza kweli bayana baadhi ya chaguzi kudhibiti hapa. 1532 01:15:33,830 --> 01:15:36,470 >> Hasa, mimi nina kwenda kusema, hey, printf, 1533 01:15:36,470 --> 01:15:39,660 kweli kuonyesha me 10 pointi decimal. 1534 01:15:39,660 --> 01:15:40,820 Hivyo inaonekana weird kidogo. 1535 01:15:40,820 --> 01:15:42,845 Lakini unasema asilimia, dot, idadi ngapi 1536 01:15:42,845 --> 01:15:44,970 unataka kuona baada uhakika decimal, na kisha f 1537 01:15:44,970 --> 01:15:48,340 kwa ajili ya gorofa, tu kwa sababu hiyo ni nini nyaraka anasema. 1538 01:15:48,340 --> 01:15:50,080 Hebu kwenda mbele na kuokoa hiyo. 1539 01:15:50,080 --> 01:15:52,460 >> Na taarifa mno, mimi nina kupata uchovu wa retyping mambo. 1540 01:15:52,460 --> 01:15:55,900 Hivyo mimi nina kuweka tu juu na chini arrow funguo yangu hapa. 1541 01:15:55,900 --> 01:15:58,710 Na kama mimi kuendelea kupiga up, wewe unaweza kuona yote ya amri 1542 01:15:58,710 --> 01:16:01,090 kwamba mimi alifanya, au kimakosa alifanya. 1543 01:16:01,090 --> 01:16:04,630 >> Na mimi nina kwenda mbele sasa na si kweli kutumia kwamba, inaonekana. 1544 01:16:04,630 --> 01:16:11,416 Kufanya imprecision, dot kufyeka imprecision-- hivyo 1545 01:16:11,416 --> 01:16:13,290 nini nilikuwa kufundishwa katika daraja shule hundi nje. 1546 01:16:13,290 --> 01:16:19,010 Hata kama mimi magazeti hayo kwa 10 decimal sehemu yake, kwa kweli, ni 0.10000. 1547 01:16:19,010 --> 01:16:19,840 Lakini unajua nini? 1548 01:16:19,840 --> 01:16:21,150 >> Hebu kupata kidogo tamaa. 1549 01:16:21,150 --> 01:16:23,990 Hebu kusema, kama, nionyeshe 55 inaelekeza baada ya decimal. 1550 01:16:23,990 --> 01:16:26,160 Hebu kweli kuchukua hii mpango nje kwa ajili ya spin. 1551 01:16:26,160 --> 01:16:31,170 Napenda remake na kufanya imprecision, dot kufyeka, kutokuwa sahihi. 1552 01:16:31,170 --> 01:16:32,390 >> Na hapa sisi kwenda. 1553 01:16:32,390 --> 01:16:34,420 utoto wako ilikuwa ni uongo. 1554 01:16:34,420 --> 01:16:48,410 Inavyoonekana, 1 kugawanywa na 10 ni kweli 0.100000000000000005551115123-- 1555 01:16:48,410 --> 01:16:49,740 >> Ni nini kinachoendelea? 1556 01:16:49,740 --> 01:16:53,360 Naam, ni zamu nje, kama wewe aina ya kuangalia mbali kutosha nje katika msingi 1557 01:16:53,360 --> 01:16:55,950 uwakilishi wa hii idadi, ni kweli 1558 01:16:55,950 --> 01:17:00,400 si hasa 1/10, au 0.1 na usio idadi ya zeros. 1559 01:17:00,400 --> 01:17:01,630 Sasa, kwa nini ni kwamba? 1560 01:17:01,630 --> 01:17:06,250 >> Naam, hata ingawa hii ni rahisi idadi ya sisi wanadamu, 1 kugawanywa na 10, 1561 01:17:06,250 --> 01:17:10,910 bado ni moja ya kubwa wengi idadi ambayo sisi inaweza kufikiria juu. 1562 01:17:10,910 --> 01:17:14,490 Lakini kompyuta inaweza tu kuwakilisha finitely wengi hivyo idadi. 1563 01:17:14,490 --> 01:17:18,710 Na hivyo, kwa ufanisi, nini kompyuta ni kuonyesha sisi ni karibu wake 1564 01:17:18,710 --> 01:17:22,940 makadirio ya idadi tunataka kuamini ni 1/10, 1565 01:17:22,940 --> 01:17:27,760 au kweli 0.10000 hauna mwisho. 1566 01:17:27,760 --> 01:17:30,425 >> Badala yake, ingawa, hii ni karibu kama wanaweza kupata. 1567 01:17:30,425 --> 01:17:32,300 Na kwa kweli, kama ukiangalia chini ya Hood, 1568 01:17:32,300 --> 01:17:37,050 kama sisi ni hapa kwa kuangalia 55 tatu baada decimal, 1569 01:17:37,050 --> 01:17:39,990 sisi kweli kuona kwamba hali halisi. 1570 01:17:39,990 --> 01:17:42,610 Sasa kama kando, kama wameweza milele kuonekana movie-- 1571 01:17:42,610 --> 01:17:45,780 wengi pengine have not lakini Superman 3 baadhi ya miaka iliyopita, 1572 01:17:45,780 --> 01:17:49,500 Richard Pryor kimsingi leveraged hii ukweli katika kampuni yake ya kuiba kura 1573 01:17:49,500 --> 01:17:53,500 ya namba sehemu na namba sehemu ya pennies, kwa sababu company-- kama mimi kukumbuka, 1574 01:17:53,500 --> 01:17:57,210 imekuwa ni while-- alikuwa kimsingi kutupa mbali chochote ambacho hakuwa fit 1575 01:17:57,210 --> 01:17:58,790 katika dhana ya senti. 1576 01:17:58,790 --> 01:18:01,480 >> Lakini kama wewe kuongeza hadi haya yote vidogo, vidogo, idadi vidogo tena, 1577 01:18:01,480 --> 01:18:04,960 na tena, na tena, unaweza, kama katika kesi yake, kufanya kiasi nzuri ya fedha. 1578 01:18:04,960 --> 01:18:08,010 >> Hiyo wazo moja alikuwa ripped off kwa zaidi ya hivi karibuni, lakini bado sasa wakubwa 1579 01:18:08,010 --> 01:18:10,500 movie, iitwayo Ofisi Space, ambapo guys katika movie kwamba, 1580 01:18:10,500 --> 01:18:13,501 akafanya vivyo hivyo, Star it up kabisa, kuishia na njia sana 1581 01:18:13,501 --> 01:18:14,666 fedha katika akaunti zao za benki. 1582 01:18:14,666 --> 01:18:15,800 Ni mara zote tuhuma sana. 1583 01:18:15,800 --> 01:18:19,290 Lakini mwisho wa siku, imprecision ni karibu nasi. 1584 01:18:19,290 --> 01:18:22,240 >> Na kwamba, pia, wanaweza kuwa frighteningly kesi. 1585 01:18:22,240 --> 01:18:25,590 Ni zinageuka kuwa Superman 3 na Ofisi Space kando, kuna 1586 01:18:25,590 --> 01:18:28,460 inaweza kuwa baadhi halisi sana ramifications dunia 1587 01:18:28,460 --> 01:18:32,290 ya hali halisi ya imprecise uwakilishi wa data 1588 01:18:32,290 --> 01:18:34,770 kwamba hata sisi binadamu kwa leo si lazima 1589 01:18:34,770 --> 01:18:38,230 kuelewa kama vile inavyopaswa, au kukumbuka kama mara nyingi kama inavyopaswa. 1590 01:18:38,230 --> 01:18:42,950 Na kwa kweli, kipande cha ifuatayo ni kutoka kuangalia dunia baadhi sana halisi 1591 01:18:42,950 --> 01:18:47,730 ramifications ya kile kinachotokea kama wewe hawana kufahamu kutokuwa sahihi kwamba 1592 01:18:47,730 --> 01:18:50,065 yanaweza kutokea katika idadi ya uwakilishi. 1593 01:18:50,065 --> 01:18:51,300 >> [VIDEO avspelning] 1594 01:18:51,300 --> 01:18:55,620 >> -Computers, Tumekuwa wote wamekuja kukubali matatizo mara nyingi frustrating kwamba 1595 01:18:55,620 --> 01:19:00,310 kwenda na mende them--, virusi, na programu glitches, 1596 01:19:00,310 --> 01:19:03,130 kwa bei ndogo ya kulipa kwa urahisi. 1597 01:19:03,130 --> 01:19:07,800 Lakini katika tech ya juu na mwendo wa kasi kijeshi na mpango nafasi maombi, 1598 01:19:07,800 --> 01:19:12,800 tatizo ndogo Unaweza kuwa kujitukuza katika janga. 1599 01:19:12,800 --> 01:19:18,900 >> Tarehe 4 Juni, 1996, wanasayansi tayari kuzindua unmanned Ariane 5 roketi. 1600 01:19:18,900 --> 01:19:21,220 Ni alikuwa amebeba kisayansi satelaiti iliyoundwa 1601 01:19:21,220 --> 01:19:24,600 kujua kwa usahihi jinsi dunia magnetic interacts shamba 1602 01:19:24,600 --> 01:19:27,410 na upepo nishati ya jua. 1603 01:19:27,410 --> 01:19:30,800 roketi ilijengwa kwa European Space Agency, 1604 01:19:30,800 --> 01:19:34,370 na lile mbali kutoka kituo yake katika pwani ya Kifaransa. 1605 01:19:34,370 --> 01:19:37,540 >> -Katika Kuhusu 37 sekunde katika ndege, kwanza 1606 01:19:37,540 --> 01:19:39,270 niliona kitu kinachoendelea vibaya. 1607 01:19:39,270 --> 01:19:42,250 nozzles walikuwa swiveling katika njia ya wao kweli hawapaswi. 1608 01:19:42,250 --> 01:19:46,580 Karibu sekunde 40 ndani ya ndege, wazi, gari ilikuwa kwenye matatizo. 1609 01:19:46,580 --> 01:19:48,850 >> Na kwamba wakati wao alifanya uamuzi wa kuiharibu. 1610 01:19:48,850 --> 01:19:52,780 mbalimbali afisa usalama, na guts kubwa, taabu kifungo, 1611 01:19:52,780 --> 01:19:58,150 akapiga juu ya roketi, kabla naweza kuwa hatari kwa usalama wa umma. 1612 01:19:58,150 --> 01:20:01,060 >> -Hii Alikuwa ni mwanamwali safari ya Ariane 5. 1613 01:20:01,060 --> 01:20:03,960 Na uharibifu wake alichukua mahali kwa sababu ya flaw 1614 01:20:03,960 --> 01:20:05,822 iliyoingia katika programu roketi. 1615 01:20:05,822 --> 01:20:08,280 -The Tatizo juu ya Ariane ilikuwa kuwa kulikuwa na idadi hiyo 1616 01:20:08,280 --> 01:20:10,600 required 64 bits kueleza. 1617 01:20:10,600 --> 01:20:13,590 Na walitaka kubadilisha kwa idadi 16-bit. 1618 01:20:13,590 --> 01:20:15,610 Wao kudhani kuwa idadi ilikuwa kamwe kwenda 1619 01:20:15,610 --> 01:20:20,980 kuwa kubwa sana, kwamba wengi wa wale tarakimu katika idadi 64-bit walikuwa zeroes. 1620 01:20:20,980 --> 01:20:22,440 Walikosea. 1621 01:20:22,440 --> 01:20:25,060 >> -The Kutokuwa na uwezo wa moja mpango wa programu kukubali 1622 01:20:25,060 --> 01:20:29,510 aina ya idadi yanayotokana na mwingine alikuwa katika mizizi ya kushindwa. 1623 01:20:29,510 --> 01:20:34,350 Programu ya maendeleo imekuwa sehemu ya gharama kubwa sana ya teknolojia mpya. 1624 01:20:34,350 --> 01:20:38,140 roketi Ariane wamekuwa sana mafanikio, hivyo mengi ya programu 1625 01:20:38,140 --> 01:20:41,550 kuundwa kwa ilivyokuwa pia kutumika katika Ariane 5. 1626 01:20:41,550 --> 01:20:47,940 >> -The Tatizo la msingi ilikuwa kwamba Ariane 5 mara kwa kasi, kuharakisha kasi zaidi. 1627 01:20:47,940 --> 01:20:51,450 Na programu na si waliendelea kwa ajili hiyo. 1628 01:20:51,450 --> 01:20:55,060 >> -The Uharibifu wa roketi ilikuwa kubwa maafa ya kifedha, 1629 01:20:55,060 --> 01:20:58,790 wote kutokana na hitilafu dakika programu. 1630 01:20:58,790 --> 01:21:01,210 Lakini hii haikuwa kwanza matatizo wakati data kubadilika 1631 01:21:01,210 --> 01:21:04,820 alikuwa wanakumbana kisasa roketi teknolojia. 1632 01:21:04,820 --> 01:21:08,050 >> -Katika 1991, na kuanza ya kwanza Vita ya Ghuba, 1633 01:21:08,050 --> 01:21:10,570 Patriot kombora uzoefu aina sawa 1634 01:21:10,570 --> 01:21:12,800 cha tatizo idadi kubadilika. 1635 01:21:12,800 --> 01:21:16,090 Na matokeo yake, 28 watu, askari 28 wa Marekani, 1636 01:21:16,090 --> 01:21:19,080 waliuawa, na kuhusu 100 wengine kujeruhiwa, 1637 01:21:19,080 --> 01:21:22,780 wakati Patriot, ambayo ilitakiwa kulinda dhidi ya Scuds zinazoingia, 1638 01:21:22,780 --> 01:21:25,830 alishindwa kwa moto kombora. 1639 01:21:25,830 --> 01:21:31,670 >> -Wakati Iraq walivamia Kuwait, na Amerika ilizindua Desert Storm katika mapema 1991, 1640 01:21:31,670 --> 01:21:35,780 betri Patriot kombora walikuwa uliotumika kulinda Saudi Arabia na Israel 1641 01:21:35,780 --> 01:21:39,230 kutoka Iraq Scud mashambulizi kombora. 1642 01:21:39,230 --> 01:21:43,810 Patriot ni Marekani kati-mbalimbali uso kwa hewa mfumo, viwandani 1643 01:21:43,810 --> 01:21:45,770 na kampuni Raytheon. 1644 01:21:45,770 --> 01:21:52,340 >> -The Ukubwa wa interceptor Patriot yenyewe ni kuhusu takribani 20 miguu kwa muda mrefu. 1645 01:21:52,340 --> 01:21:55,230 Na ni kizito kuhusu £ 2000.. 1646 01:21:55,230 --> 01:21:59,320 Na hubeba warhead ya juu, Nadhani ni takribani £ 150.. 1647 01:21:59,320 --> 01:22:03,930 Na warhead yenyewe ni kulipuka, ambayo 1648 01:22:03,930 --> 01:22:07,330 ina vipande kuzunguka. 1649 01:22:07,330 --> 01:22:11,680 casing ya warhead ni iliyoundwa na kutenda kama buckshot. 1650 01:22:11,680 --> 01:22:14,110 >> makombora -The ni uliofanywa nne kwa chombo, 1651 01:22:14,110 --> 01:22:17,130 na ni kusafirishwa kwa Trailer nusu. 1652 01:22:17,130 --> 01:22:24,930 >> -The Mfumo Patriot kupambana na kombora inakwenda nyuma angalau miaka 20 sasa. 1653 01:22:24,930 --> 01:22:28,420 Ni awali ilikuwa iliyoundwa kama hewa ulinzi kombora 1654 01:22:28,420 --> 01:22:30,720 kwa risasi chini ndege ya adui. 1655 01:22:30,720 --> 01:22:34,500 Katika kwanza Vita ya Ghuba, wakati vita kwamba alikuja pamoja, 1656 01:22:34,500 --> 01:22:39,745 Jeshi alitaka kuitumia risasi chini Scuds, si ndege. 1657 01:22:39,745 --> 01:22:43,620 >> Iraq Jeshi la Anga alikuwa si sana ya tatizo. 1658 01:22:43,620 --> 01:22:46,670 Lakini Jeshi alikuwa na wasiwasi kuhusu Scuds. 1659 01:22:46,670 --> 01:22:50,170 Na hivyo walijaribu kuboresha Patriot. 1660 01:22:50,170 --> 01:22:52,800 >> -Intercepting adui kombora kusafiri saa mach 5 1661 01:22:52,800 --> 01:22:55,830 alikuwa anaenda kuwa changamoto ya kutosha. 1662 01:22:55,830 --> 01:22:58,490 Lakini wakati Patriot alikimbizwa katika huduma, 1663 01:22:58,490 --> 01:23:02,860 Jeshi hakuwa na ufahamu wa Iraq muundo kwamba alifanya 1664 01:23:02,860 --> 01:23:05,930 Scuds yao karibu haiwezekani hit. 1665 01:23:05,930 --> 01:23:10,740 >> -Nini Kilichotokea ni Scuds kwamba walikuwa kuja katika walikuwa imara. 1666 01:23:10,740 --> 01:23:11,692 Walikuwa tikisika. 1667 01:23:11,692 --> 01:23:14,910 Sababu ya hayo ni Raia wa Iraq, ili 1668 01:23:14,910 --> 01:23:18,280 kupata 600 kilomita nje ya kilomita 300 1669 01:23:18,280 --> 01:23:21,700 mbalimbali kombora, alichukua uzito nje ya warhead mbele. 1670 01:23:21,700 --> 01:23:23,390 Walitoa warhead nyepesi. 1671 01:23:23,390 --> 01:23:27,330 >> Hivyo sasa Patriot ni kujaribu kuja katika Scud. 1672 01:23:27,330 --> 01:23:30,230 Na zaidi ya muda, balaa wengi wa wakati, 1673 01:23:30,230 --> 01:23:32,940 ingekuwa tu kuruka kwa Scud. 1674 01:23:32,940 --> 01:23:37,260 Mara baada ya mfumo wa Patriot waendeshaji barabara Patriot amekosa lengo lake, 1675 01:23:37,260 --> 01:23:41,690 wao detonated warhead Patriot ya ili kuepuka majeruhi iwezekanavyo ikiwa ni 1676 01:23:41,690 --> 01:23:44,570 aliruhusiwa kuanguka chini. 1677 01:23:44,570 --> 01:23:48,790 >> -Kwamba Alikuwa nini watu wengi aliona, wale fireballs kubwa katika anga, 1678 01:23:48,790 --> 01:23:54,550 na kutoeleweka kama intercepts ya warheads Scud. 1679 01:23:54,550 --> 01:23:56,630 >> -ingawa Katika usiku anga, Patriots alionekana 1680 01:23:56,630 --> 01:24:00,370 kuwa mafanikio kuharibu Scuds, saa Dhahran, 1681 01:24:00,370 --> 01:24:03,360 kuna inaweza kuwa hakuna kosa kuhusu utendaji wake. 1682 01:24:03,360 --> 01:24:07,970 Huko, mfumo wa rada Patriot ya waliopotea wimbo wa Scud zinazoingia, 1683 01:24:07,970 --> 01:24:10,721 na kamwe ilizindua kutokana kwa programu flaw. 1684 01:24:10,721 --> 01:24:14,090 1685 01:24:14,090 --> 01:24:18,940 Ilikuwa Israel ambao kwanza aligundua kwamba tena mfumo ilikuwa juu, 1686 01:24:18,940 --> 01:24:22,690 zaidi wakati tofauti akawa, kutokana na saa iliyoingia 1687 01:24:22,690 --> 01:24:24,810 katika mfumo wa kompyuta ya. 1688 01:24:24,810 --> 01:24:28,210 >> -About Wiki mbili kabla ya janga katika Dhahran, 1689 01:24:28,210 --> 01:24:30,770 Israel kuripotiwa kwa Wizara ya ulinzi 1690 01:24:30,770 --> 01:24:32,590 kwamba mfumo alikuwa kupoteza muda. 1691 01:24:32,590 --> 01:24:35,360 Baada ya masaa nane au kukimbia, waligundua kuwa mfumo 1692 01:24:35,360 --> 01:24:37,720 ilikuwa kuwa noticeably chini sahihi. 1693 01:24:37,720 --> 01:24:41,900 Idara ya Ulinzi alijibu kwa kuwaambia yote ya betri Patriot 1694 01:24:41,900 --> 01:24:44,950 na si kuondoka mifumo juu ya kwa muda mrefu. 1695 01:24:44,950 --> 01:24:49,160 Wao kamwe alisema nini muda mrefu was-- masaa nane, masaa 10, masaa 1,000. 1696 01:24:49,160 --> 01:24:51,360 Hakuna anayejua. 1697 01:24:51,360 --> 01:24:53,380 >> -The Betri Patriot stationed katika kambi ya 1698 01:24:53,380 --> 01:24:58,350 katika Dhahran na kiujanja yake ya ndani saa alikuwa juu zaidi ya masaa 100 1699 01:24:58,350 --> 01:25:01,670 juu ya usiku wa Februari 25.. 1700 01:25:01,670 --> 01:25:05,917 >> -Ni Na msisimko wakati wa usahihi ya juu kumi ya pili. 1701 01:25:05,917 --> 01:25:08,000 Sasa, kumi ya pili ni namba ya kuvutia, 1702 01:25:08,000 --> 01:25:11,920 kwa sababu haiwezi kuwa walionyesha katika binary hasa, ambayo 1703 01:25:11,920 --> 01:25:16,820 ina maana haiwezi kuwa walionyesha hasa katika yoyote kisasa ya digital kompyuta. 1704 01:25:16,820 --> 01:25:18,540 Ni vigumu kuamini. 1705 01:25:18,540 --> 01:25:21,210 >> Lakini kutumia hii kama mfano. 1706 01:25:21,210 --> 01:25:23,540 Hebu kuchukua namba moja ya tatu. 1707 01:25:23,540 --> 01:25:27,350 theluthi moja hawezi kuwa walionyesha katika decimal hasa. 1708 01:25:27,350 --> 01:25:32,080 Moja ya tatu ni 0.333 ikiendelea kwa infinity. 1709 01:25:32,080 --> 01:25:36,480 >> Hakuna njia ya kufanya hivyo na usahihi kabisa katika decimal. 1710 01:25:36,480 --> 01:25:39,560 Hiyo hasa aina ya tatizo yaliyotokea katika Patriot. 1711 01:25:39,560 --> 01:25:44,100 tena mfumo mbio, mbaya kosa wakati akawa. 1712 01:25:44,100 --> 01:25:48,890 >> -Baada Masaa 100 ya operesheni, makosa katika wakati ilikuwa tu theluthi moja 1713 01:25:48,890 --> 01:25:50,600 ya pili. 1714 01:25:50,600 --> 01:25:54,210 Lakini katika suala la kulenga kombora kusafiri saa mach 5, 1715 01:25:54,210 --> 01:25:58,710 ni matokeo ya kufuatilia makosa ya zaidi ya 600 mita. 1716 01:25:58,710 --> 01:26:02,120 Itakuwa kosa mbaya kwa askari juu ya nini 1717 01:26:02,120 --> 01:26:08,940 kilichotokea ni Scud uzinduzi alikuwa wanaona na mapema Onyo satelaiti 1718 01:26:08,940 --> 01:26:12,860 na walijua kuwa Scud alikuwa kuja katika uongozi wao kwa ujumla. 1719 01:26:12,860 --> 01:26:15,320 Hawakujua ambako alikuwa anakuja. 1720 01:26:15,320 --> 01:26:18,250 >> -Ni Ilikuwa sasa hadi rada sehemu ya mfumo Patriot 1721 01:26:18,250 --> 01:26:23,190 kutetea Dhahran na Machapisho na kuweka wimbo wa zinazoingia kombora adui. 1722 01:26:23,190 --> 01:26:24,609 >> -The Rada alikuwa smart sana. 1723 01:26:24,609 --> 01:26:26,650 Ingekuwa kweli kufuatilia nafasi ya Scud, 1724 01:26:26,650 --> 01:26:30,350 na kisha kutabiri ambapo pengine itakuwa wakati ujao rada alimtuma 1725 01:26:30,350 --> 01:26:31,420 a mapigo nje. 1726 01:26:31,420 --> 01:26:33,110 Aliyeitwa lango mbalimbali. 1727 01:26:33,110 --> 01:26:37,660 >> -Then, Mara moja Patriot anaamua muda wa kutosha ina 1728 01:26:37,660 --> 01:26:42,450 kupita kwenda nyuma na kuangalia ijayo eneo kwa ajili ya kitu hicho wanaona, 1729 01:26:42,450 --> 01:26:43,600 unaendelea nyuma. 1730 01:26:43,600 --> 01:26:48,650 Hivyo wakati akarudi vibaya mahali, basi anaona hakuna kitu. 1731 01:26:48,650 --> 01:26:52,160 Na anaamua kwamba kulikuwa hakuna kitu, ilikuwa kugundua uongo, 1732 01:26:52,160 --> 01:26:53,930 na matone kufuatilia. 1733 01:26:53,930 --> 01:26:57,030 >> -The Scud zinazoingia kutoweka kutoka screen rada. 1734 01:26:57,030 --> 01:27:00,260 Na sekunde baadaye, slammed ndani ya ngome. 1735 01:27:00,260 --> 01:27:06,150 Scud kuuawa 28, na mara ya mwisho moja fired wakati kwanza Vita vya Ghuba. 1736 01:27:06,150 --> 01:27:11,960 >> Kusikitisha, programu updated aliwasili katika Dhahran siku iliyofuata. 1737 01:27:11,960 --> 01:27:14,930 programu flaw alikuwa wamekuwa fasta, kufunga 1738 01:27:14,930 --> 01:27:19,806 sura ya kwanza katika wasiwasi historia ya kombora Patriot. 1739 01:27:19,806 --> 01:27:20,729 >> [VIDEO avspelning] 1740 01:27:20,729 --> 01:27:23,520 DAVID J. Malan: Hivyo hii yote ni kwa kusema kwamba masuala haya ya kufurika 1741 01:27:23,520 --> 01:27:25,860 na kutokuwa sahihi wote ni kweli pia. 1742 01:27:25,860 --> 01:27:26,920 Hivyo ni jinsi gani sisi kupata hapa? 1743 01:27:26,920 --> 01:27:28,895 Sisi ilianza na tu kuzungumza juu ya printf. 1744 01:27:28,895 --> 01:27:31,270 Tena, kazi hii kwamba Prints kitu screen, 1745 01:27:31,270 --> 01:27:33,450 na sisi ilianzisha baada ya hapo chache kazi nyingine 1746 01:27:33,450 --> 01:27:34,945 kutoka kinachojulikana maktaba CS50. 1747 01:27:34,945 --> 01:27:36,910 Na tutaweza kuendelea kuona haya kwa wakati wake. 1748 01:27:36,910 --> 01:27:40,760 Na sisi, hasa, kutumika kupata kamba, na kupata int, na sasa pia kupata kuelea, 1749 01:27:40,760 --> 01:27:44,410 na bado wengine bado sisi kukutana na kutumia wenyewe kabla ya muda mrefu. 1750 01:27:44,410 --> 01:27:47,220 >> Lakini katika tukio, na sisi tayari kuona haja 1751 01:27:47,220 --> 01:27:50,520 kuhifadhi kile kazi hizo upande nyuma? 1752 01:27:50,520 --> 01:27:52,920 Wao mkono sisi nyuma kamba, au int, au kuelea. 1753 01:27:52,920 --> 01:27:56,070 Na wakati mwingine tunahitaji kuweka kwamba kamba, au int, au kuelea, mahali fulani. 1754 01:27:56,070 --> 01:28:00,100 >> Na kuhifadhi mambo hayo, tunakumbuka tu kama katika Scratch, tuna vigezo. 1755 01:28:00,100 --> 01:28:03,260 Lakini tofauti na katika Scratch, katika C tuna aina halisi 1756 01:28:03,260 --> 01:28:05,530 ya data variables-- aina, generally-- zaidi 1757 01:28:05,530 --> 01:28:08,640 kati yao, kamba, int, a kuelea, na hawa wengine bado. 1758 01:28:08,640 --> 01:28:12,321 >> Na hivyo wakati sisi kutangaza vigezo katika C, tutaweza kutangaza aina yetu data. 1759 01:28:12,321 --> 01:28:14,820 Hii si kitu tutaweza una kufanya baadaye katika muhula 1760 01:28:14,820 --> 01:28:16,810 kama sisi mpito kwa lugha nyingine. 1761 01:28:16,810 --> 01:28:19,610 Lakini kwa sasa, hatuna haja kwa priori mapema, 1762 01:28:19,610 --> 01:28:24,370 kuelezea kwa kompyuta ni aina gani ya kutofautiana tunataka kwa kutupa. 1763 01:28:24,370 --> 01:28:27,290 >> Sasa, wakati huo huo, na magazeti aina wale wa aina ya data, 1764 01:28:27,290 --> 01:28:29,570 tuna kuwaambia printf nini cha kutarajia. 1765 01:28:29,570 --> 01:28:32,450 Na tuliona asilimia s kwa masharti, na asilimia i kwa integers, 1766 01:28:32,450 --> 01:28:33,790 na wengine wachache tayari. 1767 01:28:33,790 --> 01:28:37,237 Na wale ni tu mahitaji kwa ajili ya kuwasilisha Visual 1768 01:28:37,237 --> 01:28:38,070 wa habari kwamba. 1769 01:28:38,070 --> 01:28:42,080 >> Na kila moja ya haya kweli anaweza parametrized au tweaked kwa namna fulani, 1770 01:28:42,080 --> 01:28:45,370 kama unataka zaidi udhibiti aina ya pato kwamba kupata. 1771 01:28:45,370 --> 01:28:49,604 Na, kwa kweli, ni zamu nje kwamba sio tu ni pale backslash n kwa mstari mpya. 1772 01:28:49,604 --> 01:28:52,520 Kuna kitu kingine aitwaye backslash r kwa kurudi carriage, ambayo 1773 01:28:52,520 --> 01:28:54,360 ni sawa na zaidi typewriter umri wa shule, 1774 01:28:54,360 --> 01:28:57,690 na pia Windows kutumika kwa miaka mingi. 1775 01:28:57,690 --> 01:28:59,690 >> Kuna backslash t kwa tabo. 1776 01:28:59,690 --> 01:29:03,170 Zamu nje, kwamba kama unataka mara mbili quote ndani ya kamba, 1777 01:29:03,170 --> 01:29:05,000 kukumbuka kwamba tumekuwa kutumika mara mbili quote mara mbili 1778 01:29:05,000 --> 01:29:07,900 quote juu ya kushoto na kulia kuishia ya masharti yetu hivi sasa. 1779 01:29:07,900 --> 01:29:09,420 Ambayo wanaonekana kuwachanganya mambo. 1780 01:29:09,420 --> 01:29:12,503 >> Kama unataka kuweka quote mara mbili katika katikati ya kamba na kwa kweli, 1781 01:29:12,503 --> 01:29:13,670 ni utata kuona. 1782 01:29:13,670 --> 01:29:17,120 Na hivyo una kutoroka, hivyo kusema, kunukuu mara mbili na kitu 1783 01:29:17,120 --> 01:29:18,860 kama, literally, backslash mara mbili quote. 1784 01:29:18,860 --> 01:29:20,230 Na kuna wengine wachache bado. 1785 01:29:20,230 --> 01:29:24,540 Na tutaweza kuona zaidi ya wale katika matumizi halisi kabla ya muda mrefu. 1786 01:29:24,540 --> 01:29:27,930 >> Basi hebu sasa mpito kutoka data, na uwakilishi, 1787 01:29:27,930 --> 01:29:30,820 na watoa huduma hesabu, kila ya aliyetupa baadhi ya kujenga 1788 01:29:30,820 --> 01:29:32,070 vitalu na ambayo kwa kucheza. 1789 01:29:32,070 --> 01:29:34,481 Lakini sasa hebu kweli kutoa sisi wengine wa msamiati 1790 01:29:34,481 --> 01:29:36,230 kwamba sisi tayari alikuwa wiki iliyopita na Scratch 1791 01:29:36,230 --> 01:29:39,350 kwa kuangalia baadhi ya wengine constructs katika C-- si wote. 1792 01:29:39,350 --> 01:29:41,680 Lakini mawazo tuko juu ya kuona kweli tu 1793 01:29:41,680 --> 01:29:45,610 kusisitiza tafsiri kutoka lugha moja, Scratch, na mwingine, C. 1794 01:29:45,610 --> 01:29:48,470 >> Na baada ya muda, tutaweza kuchukua zana zaidi kwa toolkit yetu, 1795 01:29:48,470 --> 01:29:49,820 hivyo kusema, syntactically. 1796 01:29:49,820 --> 01:29:54,190 Na, kwa hakika, utaona kwamba mawazo sasa badala ukoo kutoka wiki iliyopita. 1797 01:29:54,190 --> 01:29:55,200 Basi hebu kufanya hili. 1798 01:29:55,200 --> 01:29:58,870 >> Hebu kwenda mbele na mjeledi juu ya mpango kwamba kweli anatumia baadhi maneno, 1799 01:29:58,870 --> 01:30:00,720 Kujieleza Boolean. 1800 01:30:00,720 --> 01:30:02,810 Hebu kwenda mbele hapa na kuunda faili mpya. 1801 01:30:02,810 --> 01:30:06,090 Mimi nitakuita condition.c hii. 1802 01:30:06,090 --> 01:30:09,350 >> Hebu kwenda mbele na pamoja na maktaba CS50. 1803 01:30:09,350 --> 01:30:12,640 Na napenda kwenda mbele na ni pamoja na kiwango io.h kwa ajili ya kazi yetu, 1804 01:30:12,640 --> 01:30:14,690 na printf, na zaidi kwa mtiririko huo. 1805 01:30:14,690 --> 01:30:18,900 Nikupe mwenyewe kwamba boilerplate ya int kuu utupu, ambaye maelezo tutaweza 1806 01:30:18,900 --> 01:30:20,360 kurudi katika siku zijazo. 1807 01:30:20,360 --> 01:30:23,820 >> Sasa basi mimi kwenda mbele na kutoa mwenyewe int kupitia kupata int. 1808 01:30:23,820 --> 01:30:25,970 Kisha basi mimi kwenda mbele na kufanya hili. 1809 01:30:25,970 --> 01:30:30,150 Nataka kusema kama i ni less-- hebu kutofautisha kati ya chanya, hasi, 1810 01:30:30,150 --> 01:30:31,260 au zero maadili. 1811 01:30:31,260 --> 01:30:36,630 >> Hivyo kama i ni chini ya sifuri, napenda tu na mpango huu tu kusema, 1812 01:30:36,630 --> 01:30:42,370 hasi, backslash n, mwingine kama i ni kubwa kuliko sufuri. 1813 01:30:42,370 --> 01:30:47,030 Sasa mimi nina, bila shaka, kwenda kusema printf chanya, backslash n. 1814 01:30:47,030 --> 01:30:50,690 Na kisha mwingine if-- mimi naweza kufanya hili. 1815 01:30:50,690 --> 01:30:53,410 >> Mimi naweza kufanya kama i sawa 0. 1816 01:30:53,410 --> 01:30:55,840 Lakini Ningependa kuwa maamuzi katika angalau moja makosa tayari. 1817 01:30:55,840 --> 01:30:59,480 Kumbuka kwamba ishara sawa ni si sawa, kama sisi binadamu kujua. 1818 01:30:59,480 --> 01:31:01,010 >> Lakini ni operator zoezi. 1819 01:31:01,010 --> 01:31:05,640 Na hatutaki kuchukua 0 juu ya haki na kuiweka katika i upande wa kushoto. 1820 01:31:05,640 --> 01:31:11,810 Hivyo ili kuepuka malumbano haya, au labda matumizi mabaya ya alama ya usawa, 1821 01:31:11,810 --> 01:31:14,740 binadamu aliamua baadhi ya miaka iliyopita kwamba katika lugha nyingi programu 1822 01:31:14,740 --> 01:31:18,000 wakati unataka kuangalia usawa wa kati ya kushoto na kulia, 1823 01:31:18,000 --> 01:31:19,635 wewe kweli kutumia sawa sawa. 1824 01:31:19,635 --> 01:31:21,010 Hivyo kugonga alama ya usawa mara mbili. 1825 01:31:21,010 --> 01:31:25,600 Wakati unataka hawawajui kutoka kulia kwa upande wa kushoto, unaweza kutumia moja sawa ishara. 1826 01:31:25,600 --> 01:31:29,360 Hivyo tunaweza kufanya Haya kingine kama i ni sawa sawa na sifuri. 1827 01:31:29,360 --> 01:31:31,710 >> Mimi naweza kisha kwenda na kufungua braces yangu curly, 1828 01:31:31,710 --> 01:31:36,087 na kusema, printf 0, backslash n, kufanyika. 1829 01:31:36,087 --> 01:31:38,170 Lakini kumbuka jinsi haya forks katika barabara hawezi kufanya kazi. 1830 01:31:38,170 --> 01:31:39,836 Na, kwa kweli, tu kufikiri kuhusu mantiki. 1831 01:31:39,836 --> 01:31:41,510 i ni idadi. 1832 01:31:41,510 --> 01:31:43,320 Ni integer, hasa. 1833 01:31:43,320 --> 01:31:48,600 Na hiyo ina maana itakuja kuwa chini kuliko 0, au mkubwa kuliko 0, au 0. 1834 01:31:48,600 --> 01:31:51,600 Kwa hiyo, kuna aina ya hii an alisema default kesi. 1835 01:31:51,600 --> 01:31:54,920 >> Na hivyo tunaweza, kama tu Scratch, kujitenga na mwingine kama, 1836 01:31:54,920 --> 01:31:55,747 na kusema tu mwingine. 1837 01:31:55,747 --> 01:31:57,830 Kimantiki, kama wewe programu kujua kuna tu 1838 01:31:57,830 --> 01:32:01,635 ndoo tatu ndani ambayo a scenario unaweza fall-- kwanza, 1839 01:32:01,635 --> 01:32:03,510 pili, au ya tatu katika hii case-- hawana 1840 01:32:03,510 --> 01:32:07,100 kujisumbua na kuongeza usahihi wa ziada na mantiki ya ziada huko. 1841 01:32:07,100 --> 01:32:09,690 Tu kwenda mbele na default kesi hapa ya mwingine. 1842 01:32:09,690 --> 01:32:11,950 >> Sasa, hebu kwenda mbele baada ya kuokoa hii, kufanya 1843 01:32:11,950 --> 01:32:15,760 hali dot kufyeka conditions-- si kubwa user interface, 1844 01:32:15,760 --> 01:32:18,914 kwa sababu mimi si hivyo kusababisha user, kama nilivyoeleza awali. 1845 01:32:18,914 --> 01:32:19,580 Lakini hiyo ni faini. 1846 01:32:19,580 --> 01:32:20,454 Tutaweza kushika ni rahisi. 1847 01:32:20,454 --> 01:32:21,890 Hebu jaribu namba 42. 1848 01:32:21,890 --> 01:32:23,240 Na kwamba ni chanya. 1849 01:32:23,240 --> 01:32:26,120 Hebu jaribu idadi hasi 42, hasi. 1850 01:32:26,120 --> 01:32:28,244 >> Hebu jaribu thamani 0. 1851 01:32:28,244 --> 01:32:29,160 Na, kwa hakika, ni kazi. 1852 01:32:29,160 --> 01:32:33,900 Sasa, utaona na matatizo kabla muda mrefu, kupima mambo mara tatu, 1853 01:32:33,900 --> 01:32:34,980 pengine si ya kutosha. 1854 01:32:34,980 --> 01:32:37,438 Pengine wanataka mtihani baadhi idadi kubwa, baadhi ndogo 1855 01:32:37,438 --> 01:32:40,520 idadi, baadhi ya kesi kona, kama tutaweza kuja kuelezea yao. 1856 01:32:40,520 --> 01:32:42,500 >> Lakini kwa sasa, hii ni pretty rahisi mpango. 1857 01:32:42,500 --> 01:32:45,160 Na mimi nina uhakika pretty, mantiki, kuwa ni unaingia kesi tatu. 1858 01:32:45,160 --> 01:32:49,360 Na, kwa hakika, hata kama sisi tu ililenga downsides uwezo 1859 01:32:49,360 --> 01:32:53,480 ya kutokuwa sahihi na kufurika, katika ukweli ambapo matatizo mengi CS50, 1860 01:32:53,480 --> 01:32:56,000 sisi si kwenda kuwa na wasiwasi kuhusu, wakati wote, 1861 01:32:56,000 --> 01:32:59,050 wale masuala ya kufurika na kutokuwa sahihi, kwa sababu, kwa kweli, katika C, 1862 01:32:59,050 --> 01:33:01,889 ni kweli si wote kwamba rahisi kuepuka mambo hayo. 1863 01:33:01,889 --> 01:33:04,180 Kama unataka kuhesabu hadi kubwa zaidi, na kubwa zaidi, na kubwa zaidi, 1864 01:33:04,180 --> 01:33:07,510 ni zamu nje kuna mbinu wewe Unaweza kutumia, mara nyingi kuwashirikisha mambo kuitwa 1865 01:33:07,510 --> 01:33:11,240 maktaba, makusanyo ya kificho, kwamba watu wengine aliandika kwamba unaweza kutumia, 1866 01:33:11,240 --> 01:33:13,910 na lugha nyingine kama Java na wengine, kwa kweli 1867 01:33:13,910 --> 01:33:15,800 kufanya ni rahisi sana kuhesabu hata ya juu. 1868 01:33:15,800 --> 01:33:19,810 Hivyo ni kweli ni baadhi ya hatari hizi kazi ya lugha unayotumia. 1869 01:33:19,810 --> 01:33:22,710 Na katika wiki ijayo, tutaweza kuona jinsi ya hatari C kweli 1870 01:33:22,710 --> 01:33:24,950 inaweza kuwa kama huna kutumia vizuri. 1871 01:33:24,950 --> 01:33:27,610 Lakini kutoka huko, na kwa Python, na JavaScript, itakuwa 1872 01:33:27,610 --> 01:33:32,620 sisi safu juu ya baadhi ulinzi wa ziada, na kukimbia wachache wa hatari hizo. 1873 01:33:32,620 --> 01:33:35,820 >> Basi hebu kufanya kidogo zaidi kuvutia mantiki katika programu yetu. 1874 01:33:35,820 --> 01:33:39,110 Hivyo basi mimi kwenda mbele na kujenga programu inayoitwa Logical 1875 01:33:39,110 --> 01:33:43,804 tu hivyo siwezi kucheza na baadhi halisi mantiki, logical.c. 1876 01:33:43,804 --> 01:33:46,870 Mimi itabidi nakala tu na kuweka baadhi kanuni kutoka mapema hivyo mimi kupata nyuma 1877 01:33:46,870 --> 01:33:49,950 kwa kianzio huu mzuri. 1878 01:33:49,950 --> 01:33:53,980 >> Napenda wakati huu kufanya char C. mimi nina kwenda kuwapa jina la C 1879 01:33:53,980 --> 01:33:58,510 tu kwa sababu ni ya kawaida, kupata tabia kutoka kwa mtumiaji. 1880 01:33:58,510 --> 01:34:00,730 Na hebu kujifanya kama Mimi nina kutekeleza sehemu 1881 01:34:00,730 --> 01:34:04,130 wa mpango huo Rm, kuondoa mpango kabla kwamba ilisababisha user 1882 01:34:04,130 --> 01:34:05,400 kuondoa faili. 1883 01:34:05,400 --> 01:34:06,750 Inakuwaje sisi kufanya hili? 1884 01:34:06,750 --> 01:34:11,090 >> Nataka kusema, kama C ni sawa na sawa, quote unquote, 1885 01:34:11,090 --> 01:34:16,304 y, basi mimi nina kwenda kudhani kwamba mtumiaji amechagua ndiyo. 1886 01:34:16,304 --> 01:34:17,470 Mimi tu kwenda magazeti ndiyo. 1887 01:34:17,470 --> 01:34:19,440 Kama walikuwa kweli kuandika kuondolewa mpango, 1888 01:34:19,440 --> 01:34:21,420 tunaweza kuondoa faili na mistari zaidi ya kificho. 1889 01:34:21,420 --> 01:34:22,461 Lakini tutaweza kushika ni rahisi. 1890 01:34:22,461 --> 01:34:25,950 1891 01:34:25,950 --> 01:34:31,250 >> Mwingine kama c ni sawa sawa na n-- na sasa hapa, mimi nina kwenda kusema, 1892 01:34:31,250 --> 01:34:32,980 user lazima kuwa na maana yoyote. 1893 01:34:32,980 --> 01:34:34,360 Na kisha mwingine, unajua nini? 1894 01:34:34,360 --> 01:34:36,200 Sijui kile kingine user ni kwenda aina. 1895 01:34:36,200 --> 01:34:38,533 Hivyo mimi nina kwenda tu kusema kwamba kwamba ni makosa, chochote 1896 01:34:38,533 --> 01:34:40,070 yeye au yeye kweli typed. 1897 01:34:40,070 --> 01:34:41,180 >> Hivyo nini kinaendelea hapa? 1898 01:34:41,180 --> 01:34:44,530 Kuna tofauti ya kimsingi dhidi ya kile nimepata kufanyika katika siku za nyuma. 1899 01:34:44,530 --> 01:34:49,300 Double quotes, quotes mbili, mbili quotes, na, bado, single quotes, 1900 01:34:49,300 --> 01:34:50,170 single quotes. 1901 01:34:50,170 --> 01:34:52,860 Ni zinageuka katika C, kwamba wakati unataka kuandika kamba, 1902 01:34:52,860 --> 01:34:56,680 huna kutumia quotes mbili, kama vile tumekuwa wamekuwa wakitumia muda wote huu na printf. 1903 01:34:56,680 --> 01:35:02,030 >> Lakini kama unataka kukabiliana na tu tabia moja, kinachojulikana Char, 1904 01:35:02,030 --> 01:35:03,780 basi wewe kweli kutumia quotes moja. 1905 01:35:03,780 --> 01:35:05,450 Wale wa wewe ambao wameweza iliyowekwa kabla, unaweza kuwa 1906 01:35:05,450 --> 01:35:07,850 alikuwa na wasiwasi kuhusu hili Tofauti katika lugha fulani. 1907 01:35:07,850 --> 01:35:09,450 Katika C, haina jambo. 1908 01:35:09,450 --> 01:35:12,560 Na hivyo wakati mimi kupata char na mimi nataka kulinganisha kwamba char kutumia sawa 1909 01:35:12,560 --> 01:35:18,350 sawa na baadhi barua kama y au n, mimi kufanya, kwa kweli, haja ya kuwa na quotes moja. 1910 01:35:18,350 --> 01:35:19,770 >> Sasa, hebu kwenda mbele na kufanya hili. 1911 01:35:19,770 --> 01:35:26,180 Hebu kwenda mbele na kufanya kufanya dot mantiki kufyeka mantiki. 1912 01:35:26,180 --> 01:35:27,305 Na sasa mimi nina kuwa ilisababisha. 1913 01:35:27,305 --> 01:35:30,638 Hivyo, labda, bora user uzoefu ingekuwa kweli kuniambia nini cha kufanya hapa. 1914 01:35:30,638 --> 01:35:33,030 Lakini mimi nina kwenda kwa tu upofu kusema y kwa ndiyo, OK, nzuri. 1915 01:35:33,030 --> 01:35:35,780 >> Hebu kukimbia tena, n kwa no, nzuri. 1916 01:35:35,780 --> 01:35:39,610 Tuseme kama watu fulani Mimi najua, kofia yangu kufuli muhimu ni juu ya yote mara nyingi mno. 1917 01:35:39,610 --> 01:35:43,740 Hivyo mimi kufanya mji mkuu Y, kuingia, kosa. 1918 01:35:43,740 --> 01:35:46,130 OK, siyo hasa nini mimi kutarajia. 1919 01:35:46,130 --> 01:35:48,170 Hakika, kompyuta anafanya literally nini 1920 01:35:48,170 --> 01:35:51,794 Mimi aliiambia yake do-- kuangalia kwa lowercase y na ndogo n. 1921 01:35:51,794 --> 01:35:53,960 Hii haina kujisikia kama nzuri user uzoefu, ingawa. 1922 01:35:53,960 --> 01:35:59,010 Napenda kuuliza kwa na kukubali ama chini kesi au kesi ya juu. 1923 01:35:59,010 --> 01:36:02,090 Hivyo ni zamu nje, unaweza kutaka kusema kitu kama katika Scratch, 1924 01:36:02,090 --> 01:36:08,150 kama literally au C ni sawa na sawa na mji mkuu single alinukuliwa y. 1925 01:36:08,150 --> 01:36:11,400 Zamu nje, C hana keyword hii halisi au. 1926 01:36:11,400 --> 01:36:12,880 >> Lakini ni gani baa mbili wima. 1927 01:36:12,880 --> 01:36:15,463 Una kushikilia Shift kawaida, kama wewe ni kutumia keyboard Marekani, 1928 01:36:15,463 --> 01:36:18,910 na kugonga bar wima ufunguo juu ya kurudi ufunguo wako. 1929 01:36:18,910 --> 01:36:22,410 Lakini bar hii wima wima bar ina maana au. 1930 01:36:22,410 --> 01:36:26,220 >> Kama, kwa kulinganisha, tulitaka kusema na, kama katika Scratch, 1931 01:36:26,220 --> 01:36:28,180 tunaweza kufanya Ampersand Ampersand. 1932 01:36:28,180 --> 01:36:31,330 Hiyo haina mantiki mantiki hapa, kwa sababu binadamu hawakuweza uwezekano 1933 01:36:31,330 --> 01:36:37,110 kuwa typed wote wawili y na ndogo y na mji mkuu Y kama tabia hiyo. 1934 01:36:37,110 --> 01:36:39,470 Hivyo au ni nini tunakusudia hapa. 1935 01:36:39,470 --> 01:36:46,280 >> Hivyo kama mimi kufanya hivyo katika maeneo yote, au c sawa na sawa na mtaji N, sasa rerun, 1936 01:36:46,280 --> 01:36:49,390 kufanya mantiki, rerun mantiki. 1937 01:36:49,390 --> 01:36:51,200 Sasa, siwezi aina y. 1938 01:36:51,200 --> 01:36:53,920 Na siwezi kufanya hivyo tena na mji mkuu Y, au mji mkuu N. 1939 01:36:53,920 --> 01:36:56,630 Na mimi naweza kuongeza katika ziada mchanganyiko bado. 1940 01:36:56,630 --> 01:36:58,810 >> Hivyo hii ni mantiki mpango kadiri sasa 1941 01:36:58,810 --> 01:37:01,940 Mimi nina kuangalia mantiki kwa thamani huu au thamani hii. 1942 01:37:01,940 --> 01:37:06,420 Na mimi si kuwa na, lazima, kuja na ikiwa wawili zaidi au mwingine ikiwa. 1943 01:37:06,420 --> 01:37:09,960 Mimi kweli anaweza kuchanganya baadhi ya kuhusiana na mantiki pamoja kwa njia hii. 1944 01:37:09,960 --> 01:37:11,950 Hivyo hii itakuwa bora iliyoundwa kuliko tu 1945 01:37:11,950 --> 01:37:17,490 akisema, ikiwa C ni sawa na chini kesi y, magazeti ndiyo, mwingine kama c ni sawa na mji mkuu Y, 1946 01:37:17,490 --> 01:37:20,074 magazeti ndiyo, mwingine kama c ni sawa na lower-- kwa maneno mengine, 1947 01:37:20,074 --> 01:37:21,990 huna kuwa na zaidi na zaidi matawi. 1948 01:37:21,990 --> 01:37:28,840 Unaweza kuchanganya baadhi ya sawa matawi mantiki, kama kwa njia hii. 1949 01:37:28,840 --> 01:37:34,150 >> Basi hebu tuangalie moja tu mwisho kingo, moja ya mwisho kujenga, 1950 01:37:34,150 --> 01:37:34,847 kwamba C inaruhusu. 1951 01:37:34,847 --> 01:37:36,930 Na tutaweza kurudi katika baadaye kwa wengine bado. 1952 01:37:36,930 --> 01:37:41,400 Na kisha tutaweza kuhitimisha kwa kuangalia katika si usahihi wa code-- 1953 01:37:41,400 --> 01:37:46,070 kupata kanuni kwa work-- lakini kubuni ya kificho, na kupanda mbegu hizo mapema juu ya. 1954 01:37:46,070 --> 01:37:51,337 >> Hivyo basi mimi kwenda mbele na kufungua faili mpya hapa. 1955 01:37:51,337 --> 01:37:51,920 Unajua nini? 1956 01:37:51,920 --> 01:37:54,450 Mimi nina kwenda tena kutekeleza kwamba mpango huo, 1957 01:37:54,450 --> 01:37:55,940 lakini kwa kutumia kujenga tofauti. 1958 01:37:55,940 --> 01:38:00,110 >> Hivyo basi mimi haraka kutoa mwenyewe upatikanaji wa ni pamoja na CS50.h 1959 01:38:00,110 --> 01:38:04,150 kwa ajili ya maktaba CS50, kiwango io.h kwa printf. 1960 01:38:04,150 --> 01:38:06,510 Nipe kuu wangu int utupu. 1961 01:38:06,510 --> 01:38:09,310 Na kisha juu hapa, hebu mimi kwenda mbele na kufanya hili. 1962 01:38:09,310 --> 01:38:12,010 >> Char c anapata kupata char, tu kama ilivyokuwa kabla. 1963 01:38:12,010 --> 01:38:16,770 Na mimi nina kwenda kutumia kujenga mpya now-- kubadili, juu ya tabia nini? 1964 01:38:16,770 --> 01:38:19,820 Hivyo kubadili ni aina ya kama byte tracks treni. 1965 01:38:19,820 --> 01:38:22,070 Au, kwa kweli, ni aina ya an kama mwingine, kama mwingine kama, 1966 01:38:22,070 --> 01:38:23,980 lakini imeandikwa kiasi fulani tofauti. 1967 01:38:23,980 --> 01:38:25,490 >> kubadili inaonekana kama hii. 1968 01:38:25,490 --> 01:38:29,060 Una kubadili, na kisha nini tabia au idadi unataka kuangalia, 1969 01:38:29,060 --> 01:38:32,000 kisha baadhi braces curly kama katika Scratch, kusema tu kufanya mambo haya. 1970 01:38:32,000 --> 01:38:33,480 Na kisha una kesi tofauti. 1971 01:38:33,480 --> 01:38:34,830 >> Huwezi kutumia kama na kingine chochote. 1972 01:38:34,830 --> 01:38:37,050 You literally kutumia kesi neno. 1973 01:38:37,050 --> 01:38:38,790 Na ungependa kusema kitu kama hiki. 1974 01:38:38,790 --> 01:38:43,820 >> Hivyo katika kesi ya lowercase y, au katika kesi ya mji mkuu Y, 1975 01:38:43,820 --> 01:38:47,350 kwenda mbele na magazeti nje ndiyo. 1976 01:38:47,350 --> 01:38:49,020 Na kisha kuvunja nje ya kubadili. 1977 01:38:49,020 --> 01:38:49,580 Hiyo ni. 1978 01:38:49,580 --> 01:38:50,880 Sisi ni kosa. 1979 01:38:50,880 --> 01:38:57,270 >> Mwingine kama, hivyo kusema, chini kesi n, au mji mkuu N, 1980 01:38:57,270 --> 01:39:02,560 kisha kwenda mbele na magazeti nje hakuna, na kisha kuvunja. 1981 01:39:02,560 --> 01:39:08,022 Else-- na aina hii ya ni default kesi indeed-- printf error-- 1982 01:39:08,022 --> 01:39:10,980 na tu kwa ajili ya hatua nzuri, ingawa kifikra mapumziko hii si muhimu 1983 01:39:10,980 --> 01:39:12,896 kwa sababu tuko mwishoni ya kubadili anyway, 1984 01:39:12,896 --> 01:39:14,520 Mimi sasa kuvunja nje ya kubadili. 1985 01:39:14,520 --> 01:39:16,280 Hivyo hii inaonekana tofauti kidogo. 1986 01:39:16,280 --> 01:39:18,272 >> Lakini, mantiki, ni kweli sawa. 1987 01:39:18,272 --> 01:39:19,980 Na ni kwa nini matumizi moja juu ya nyingine? 1988 01:39:19,980 --> 01:39:23,220 Wakati mwingine, tu binafsi upendeleo, wakati mwingine aesthetics, 1989 01:39:23,220 --> 01:39:25,420 kama mimi mtazamo katika hii sasa, kuna kitu 1990 01:39:25,420 --> 01:39:27,510 kwa kuwa alisema kwa readability ya kanuni hii. 1991 01:39:27,510 --> 01:39:30,690 I mean, kamwe akili na ukweli kwamba hii code ni mpya kwa wengi wetu katika chumba hicho. 1992 01:39:30,690 --> 01:39:33,515 >> Lakini ni aina tu ya ni pretty. 1993 01:39:33,515 --> 01:39:37,760 Unaweza kuona lowercase y, mji mkuu Y, chini kesi n, mji mkuu wa N msingi, 1994 01:39:37,760 --> 01:39:40,150 ni aina tu ya anaruka nje saa wewe kwa njia 1995 01:39:40,150 --> 01:39:42,200 kwamba, arguably, labda mfano uliopita 1996 01:39:42,200 --> 01:39:45,780 na ikiwa na baa wima, na mwingine ikiwa, wanaweza kuwa na. 1997 01:39:45,780 --> 01:39:51,600 Hivyo hii ni kweli suala la binafsi uchaguzi, kwa kweli, au readability, 1998 01:39:51,600 --> 01:39:52,360 ya kanuni. 1999 01:39:52,360 --> 01:39:58,230 >> Lakini katika suala la utendaji, napenda kwenda mbele na kufanya kubadili, dot kufyeka 2000 01:39:58,230 --> 01:40:05,830 kubadili, na sasa aina katika lowercase y, mji mkuu Y, lowercase n, mji mkuu wa N, 2001 01:40:05,830 --> 01:40:09,250 David, jaribu kwa sababu hiyo ni si tabia moja. 2002 01:40:09,250 --> 01:40:12,050 Hebu kufanya x, kosa, kama ilivyotarajiwa. 2003 01:40:12,050 --> 01:40:15,640 Na, logically-- na hili ni jambo Napenda kuwatia moyo katika general-- hata 2004 01:40:15,640 --> 01:40:17,790 ingawa tuko tu scratching uso wa baadhi ya makala haya. 2005 01:40:17,790 --> 01:40:20,560 >> Na wanaweza kuwa dhahiri wakati mwenyewe kukaa chini katika keyboard, 2006 01:40:20,560 --> 01:40:21,370 jinsi gani kazi hii? 2007 01:40:21,370 --> 01:40:22,240 Kitu gani hii nini? 2008 01:40:22,240 --> 01:40:25,630 jambo zuri juu ya kuwa mbali, au desktop, au kupata 2009 01:40:25,630 --> 01:40:29,290 kompyuta na compiler, na pamoja na mhariri wa kanuni kama hii, 2010 01:40:29,290 --> 01:40:32,990 ni unaweza karibu kila mara kujibu hizi maswali kwa ajili yako mwenyewe tu kwa kujaribu. 2011 01:40:32,990 --> 01:40:36,570 >> Kwa mfano, kama kejeli swali katika mkono walikuwa, 2012 01:40:36,570 --> 01:40:39,540 kile kinachotokea kama wewe kusahau mapumziko yako kauli? 2013 01:40:39,540 --> 01:40:41,400 Ambayo ni kweli kawaida sana kitu cha kufanya, 2014 01:40:41,400 --> 01:40:43,540 kwa sababu haina kuangalia kama kweli wanahitaji yao. 2015 01:40:43,540 --> 01:40:46,790 Wao si kweli kukamilisha yako walidhani kama mabano au curly 2016 01:40:46,790 --> 01:40:47,714 brace gani. 2017 01:40:47,714 --> 01:40:49,630 Hebu kwenda mbele na recompile kificho na kuona. 2018 01:40:49,630 --> 01:40:53,690 Hivyo kufanya kubadili, dot kufyeka kubadili. 2019 01:40:53,690 --> 01:40:56,435 Hebu aina katika kesi ya chini y, kesi juu, kuingia. 2020 01:40:56,435 --> 01:40:59,390 2021 01:40:59,390 --> 01:41:00,700 Hivyo mimi niliandika y. 2022 01:41:00,700 --> 01:41:04,420 >> Mpango alisema ndiyo, hapana, makosa, kana kwamba alikuwa kubadilisha mawazo yake. 2023 01:41:04,420 --> 01:41:09,280 Lakini ni aina ya mara, kwa sababu kile kinachotokea pamoja na kubadili ni kesi ya kwanza kwamba 2024 01:41:09,280 --> 01:41:13,899 mechi yana maana, hey kompyuta, kutekeleza yote ya maadili ya chini yake. 2025 01:41:13,899 --> 01:41:16,690 Na kama huna kusema mapumziko, au usiseme mapumziko, au usiseme mapumziko, 2026 01:41:16,690 --> 01:41:19,540 kompyuta ni kwenda pigo kwa njia zote za wale mistari 2027 01:41:19,540 --> 01:41:22,779 na kutekeleza wote mpaka anapata kwa kuwa brace curly. 2028 01:41:22,779 --> 01:41:24,320 Hivyo breki ni, kwa kweli, ni lazima. 2029 01:41:24,320 --> 01:41:27,120 Lakini takeaway hapa ni kwamba, wakati katika shaka, kujaribu kitu. 2030 01:41:27,120 --> 01:41:29,510 Labda kuokoa code yako ya kwanza, au kuokoa ni katika faili ya ziada 2031 01:41:29,510 --> 01:41:32,930 kama wewe ni kweli wasiwasi kuhusu messing up na kuwa na kupona 2032 01:41:32,930 --> 01:41:34,430 kazi kwamba unajua ni kazi. 2033 01:41:34,430 --> 01:41:35,410 >> Lakini kujaribu mambo. 2034 01:41:35,410 --> 01:41:38,074 Na wala kuwa na hofu kama, pengine, ya kile kompyuta anaweza kufanya, 2035 01:41:38,074 --> 01:41:39,490 au kwamba unaweza kuvunja kitu. 2036 01:41:39,490 --> 01:41:42,790 Daima unaweza revert nyuma kwa baadhi toleo la awali. 2037 01:41:42,790 --> 01:41:45,640 >> Hivyo hebu mwisho kwa kuangalia katika mpango wa kanuni. 2038 01:41:45,640 --> 01:41:49,020 Tuna uwezo huu sasa kuandika masharti, na kuandika loops, 2039 01:41:49,020 --> 01:41:50,850 na vigezo, na kazi ya wito. 2040 01:41:50,850 --> 01:41:54,590 Hivyo, kusema ukweli, sisi ni aina ya nyuma katika ambapo tulikuwa wiki iliyopita na Scratch, 2041 01:41:54,590 --> 01:42:00,120 angalau kwa textual chini ya kulazimisha mazingira kuliko Scratch inaruhusu. 2042 01:42:00,120 --> 01:42:03,990 >> Lakini taarifa jinsi ya haraka tumekuwa alipewa kwamba msamiati, hata kama ni 2043 01:42:03,990 --> 01:42:07,570 kwenda kuchukua muda kidogo kuzama katika, ili tuweze sasa unaweza kutumia msamiati huu 2044 01:42:07,570 --> 01:42:10,320 kuandika programu ya kuvutia zaidi. 2045 01:42:10,320 --> 01:42:12,940 Na hebu kuchukua mtoto hatua kuelekea kwamba, kama ifuatavyo. 2046 01:42:12,940 --> 01:42:14,890 Hebu kwenda mbele na kuunda faili mpya hapa. 2047 01:42:14,890 --> 01:42:17,750 >> Mimi nina kwenda kuwaita hii prototype.c, na kuanzisha 2048 01:42:17,750 --> 01:42:20,954 kwa mara ya kwanza, uwezo kufanya kazi yako mwenyewe. 2049 01:42:20,954 --> 01:42:22,870 Baadhi ya unaweza kuwa amefanya kwa Scratch, 2050 01:42:22,870 --> 01:42:25,430 ambapo unaweza kuunda yako vitalu mwenyewe desturi katika Scratch, 2051 01:42:25,430 --> 01:42:27,892 na kisha Drag yao katika nafasi popote Ningependa katika C. 2052 01:42:27,892 --> 01:42:30,100 Na katika zaidi ya programu lugha, unaweza kufanya hasa 2053 01:42:30,100 --> 01:42:33,580 that-- kufanya kazi yako mwenyewe, kama hawana tayari zipo. 2054 01:42:33,580 --> 01:42:38,660 >> Hivyo, kwa mfano, basi mimi kwenda mbele na ni pamoja na CS50.h, na ni pamoja na 2055 01:42:38,660 --> 01:42:43,110 kiwango io.h, int kuu utupu. 2056 01:42:43,110 --> 01:42:46,020 Na sasa tuna placeholder tayari kwenda. 2057 01:42:46,020 --> 01:42:48,550 Mimi kushika uchapishaji mambo kama majina ya watu leo. 2058 01:42:48,550 --> 01:42:51,910 Na kwamba anahisi like-- bila kuwa nzuri kama kuna 2059 01:42:51,910 --> 01:42:53,936 walikuwa kazi kuitwa magazeti jina? 2060 01:42:53,936 --> 01:42:55,060 Sina kutumia printf. 2061 01:42:55,060 --> 01:42:56,976 Sina kukumbuka namba zote format. 2062 01:42:56,976 --> 01:43:00,050 Kwa nini si mimi, au kwa nini hakuwa mtu mbele yangu, 2063 01:43:00,050 --> 01:43:02,980 kujenga kazi kuitwa magazeti jina, kuwa kutokana na baadhi jina, 2064 01:43:02,980 --> 01:43:03,980 tu Prints nje? 2065 01:43:03,980 --> 01:43:08,700 >> Kwa maneno mengine, kama mimi kusema, hey, kompyuta, nipe kamba 2066 01:43:08,700 --> 01:43:11,870 kwa kuuliza user kwa vile, kupitia CS50 ya kupata kamba kazi. 2067 01:43:11,870 --> 01:43:15,090 Hey, kompyuta, kuweka kwamba kamba katika kutofautiana katika upande wa kushoto, 2068 01:43:15,090 --> 01:43:16,150 na kuiita s. 2069 01:43:16,150 --> 01:43:22,150 Na kisha, hey kompyuta, kwenda mbele na magazeti kwamba jina la mtu, kufanyika. 2070 01:43:22,150 --> 01:43:26,240 >> Sasa, itakuwa nzuri, kwa sababu mpango huu, aptly aitwaye, 2071 01:43:26,240 --> 01:43:29,170 inaniambia nini ni zinatakiwa kufanya kwa njia ya majina hayo kazi ya. 2072 01:43:29,170 --> 01:43:32,930 Hebu kwenda na kufanya mfano, kuingia. 2073 01:43:32,930 --> 01:43:34,930 Na, kwa bahati mbaya, hii si kwenda kuruka. 2074 01:43:34,930 --> 01:43:39,430 >> Prototype.c, line 7, tabia ya 5, kosa, thabiti tamko 2075 01:43:39,430 --> 01:43:42,960 ya magazeti kazi jina ni batili katika C99, C99 2076 01:43:42,960 --> 01:43:45,130 maana toleo la C waliotoka mwaka 1999. 2077 01:43:45,130 --> 01:43:45,730 Ni hayo tu. 2078 01:43:45,730 --> 01:43:48,780 >> Hivyo mimi sijui nini yote haya ina maana bado. 2079 01:43:48,780 --> 01:43:50,810 Lakini mimi kutambua makosa katika nyekundu. 2080 01:43:50,810 --> 01:43:51,770 Hiyo ni pretty dhahiri. 2081 01:43:51,770 --> 01:43:53,769 >> Na inaonekana kwamba kwa tabia ya kijani hapa, 2082 01:43:53,769 --> 01:43:57,520 Suala hili ni pamoja na jina magazeti, wazi paren s, karibu paren, nusu koloni. 2083 01:43:57,520 --> 01:44:01,800 Lakini thabiti tamko la kazi tulivyofanya angalia kwa ufupi mapema. 2084 01:44:01,800 --> 01:44:04,880 Hii ina maana, tu, kwamba Clang hajui nini namaanisha. 2085 01:44:04,880 --> 01:44:09,000 >> Nimekuwa kutumika msamiati neno kwamba ni kamwe kuona au kufundishwa kabla. 2086 01:44:09,000 --> 01:44:11,950 Na hivyo mimi haja ya kufundisha nini kazi hii maana yake. 2087 01:44:11,950 --> 01:44:13,590 Hivyo mimi nina kwenda mbele na kufanya hivyo. 2088 01:44:13,590 --> 01:44:17,970 >> Mimi nina kwenda mbele na kutekeleza kazi yangu mwenyewe iitwayo Jina Print. 2089 01:44:17,970 --> 01:44:24,720 Na mimi nina kwenda kusema, kama ifuatavyo, kwamba ni gani hii, printf, hello, asilimia 2090 01:44:24,720 --> 01:44:27,760 s, backslash n, jina, nusu koloni. 2091 01:44:27,760 --> 01:44:29,250 Hivyo nini mimi tu kufanya? 2092 01:44:29,250 --> 01:44:31,325 >> Hivyo ni zamu nje, kwa kutekeleza kazi yako mwenyewe, 2093 01:44:31,325 --> 01:44:33,845 sisi aina ya kukopa baadhi ya muundo huo kama kuu 2094 01:44:33,845 --> 01:44:35,720 kwamba tumekuwa tu imekuwa kuchukuliwa kwa nafasi, na mimi 2095 01:44:35,720 --> 01:44:37,730 kujua tu kuiga na kubandika pretty kiasi gani 2096 01:44:37,730 --> 01:44:39,170 Nimekuwa kuandika huko nyuma. 2097 01:44:39,170 --> 01:44:40,570 Lakini taarifa mfano hapa. 2098 01:44:40,570 --> 01:44:43,750 Int, Kuu, Void, tutaweza tease mbali kabla ya muda mrefu nini kwamba kweli maana yake. 2099 01:44:43,750 --> 01:44:46,160 >> Lakini kwa leo, tu taarifa parallelism. 2100 01:44:46,160 --> 01:44:48,210 Batili, magazeti jina, kamba jina, hivyo kuna 2101 01:44:48,210 --> 01:44:50,310 zambarau keyword, ambayo tunakwenda kuanza 2102 01:44:50,310 --> 01:44:54,067 wito aina ya kurudi, jina la kazi, na kisha pembejeo. 2103 01:44:54,067 --> 01:44:56,400 Hivyo, kwa kweli, tunaweza distill aina hii ya kama wiki iliyopita 2104 01:44:56,400 --> 01:44:59,030 kama, hii ni jina au algorithm ya kificho tuko 2105 01:44:59,030 --> 01:45:00,761 kwenda write-- algorithm msingi 2106 01:45:00,761 --> 01:45:02,010 kificho tunakwenda kuandika. 2107 01:45:02,010 --> 01:45:03,180 >> Hii ni mchango wake. 2108 01:45:03,180 --> 01:45:04,670 Hii ni matokeo yake. 2109 01:45:04,670 --> 01:45:08,730 Kazi hii, magazeti jina, ni iliyoundwa na kuchukua kamba kuitwa jina, 2110 01:45:08,730 --> 01:45:11,350 au chochote, kama pembejeo, na kisha utupu. 2111 01:45:11,350 --> 01:45:13,904 Ni haina kurudi kitu chochote, kama kupata kamba au kupata int gani. 2112 01:45:13,904 --> 01:45:15,570 Hivyo ni kwenda kwa mkono mimi kitu nyuma. 2113 01:45:15,570 --> 01:45:17,960 Ni kwenda tu kuwa na athari upande, hivyo kusema, 2114 01:45:17,960 --> 01:45:19,570 ya uchapishaji jina la mtu. 2115 01:45:19,570 --> 01:45:22,260 Hivyo taarifa, line 7, mimi wanaweza kupiga jina magazeti. 2116 01:45:22,260 --> 01:45:25,920 Mstari 10, siwezi kufafanua au kutekeleza jina magazeti. 2117 01:45:25,920 --> 01:45:28,450 Lakini, kwa bahati mbaya, hiyo haitoshi. 2118 01:45:28,450 --> 01:45:31,230 >> Hebu kwenda mbele na recompile hii baada ya kuokoa. 2119 01:45:31,230 --> 01:45:33,910 Whoa, sasa, nimekuwa alifanya hivyo mbaya, inaweza kuonekana. 2120 01:45:33,910 --> 01:45:37,027 Hivyo thabiti tamko la magazeti kazi jina ni batili. 2121 01:45:37,027 --> 01:45:38,360 Na, tena, kuna makosa zaidi. 2122 01:45:38,360 --> 01:45:41,430 Lakini kama mimi alionya mapema, hata kama wewe kupata kuzidiwa na, 2123 01:45:41,430 --> 01:45:44,850 au huzuni kidogo kuona hivyo wengi makosa, lengo tu juu ya kwanza 2124 01:45:44,850 --> 01:45:47,500 awali, kwa sababu ili tu wamekuwa na kuachia athari. 2125 01:45:47,500 --> 01:45:51,970 Hivyo C, au Clang zaidi hasa, bado haitambui jina magazeti. 2126 01:45:51,970 --> 01:45:54,580 >> Na kwamba kwa sababu Clang, kwa kubuni, ni aina ya bubu. 2127 01:45:54,580 --> 01:45:56,280 Ni tu haina nini kuwaambia ni kufanya. 2128 01:45:56,280 --> 01:46:00,950 Na ni tu anafanya hivyo ili ambayo wewe kuwaambia ni kufanya. 2129 01:46:00,950 --> 01:46:05,270 >> Hivyo mimi kuwa defined kuu kwenye mstari nne, kama tumekuwa kufanya pretty mara kwa mara. 2130 01:46:05,270 --> 01:46:07,980 Nimekuwa inavyoelezwa jina magazeti kwenye mstari 10. 2131 01:46:07,980 --> 01:46:11,793 Lakini mimi nina kujaribu kutumia magazeti jina kwenye mstari saba. 2132 01:46:11,793 --> 01:46:13,670 >> Ni mapema mno, haipo bado. 2133 01:46:13,670 --> 01:46:19,150 Ili niweze kuwa wajanja, na kuwa kama, OK, hivyo hebu tu kucheza pamoja, 2134 01:46:19,150 --> 01:46:23,680 na hoja jina magazeti up hapa, na re-kukusanya. 2135 01:46:23,680 --> 01:46:24,550 Mungu wangu. 2136 01:46:24,550 --> 01:46:25,260 Ni kazi. 2137 01:46:25,260 --> 01:46:26,670 Ilikuwa ni rahisi kama hayo. 2138 01:46:26,670 --> 01:46:28,120 >> Lakini mantiki ni hasa kwamba. 2139 01:46:28,120 --> 01:46:30,870 Una kufundisha Clang nini ni kwa kufafanua kazi ya kwanza. 2140 01:46:30,870 --> 01:46:31,920 Basi unaweza kuitumia. 2141 01:46:31,920 --> 01:46:33,940 Lakini, kusema ukweli, hii anahisi kama slippery slope. 2142 01:46:33,940 --> 01:46:35,773 >> Hivyo kila wakati mimi kukimbia katika tatizo, mimi nina tu 2143 01:46:35,773 --> 01:46:39,450 kwenda kuonyesha na nakala ya kanuni Niliandika, ukate na kuweka it up hapa. 2144 01:46:39,450 --> 01:46:41,370 Na hakika tunaweza uliamua baadhi ya matukio 2145 01:46:41,370 --> 01:46:43,286 ambapo kazi mtu anaweza haja ya simu jingine. 2146 01:46:43,286 --> 01:46:46,030 Na wewe tu hawezi kuweka kila kazi juu ya kila mmoja. 2147 01:46:46,030 --> 01:46:47,930 >> Hivyo ni zamu nje kuna ya ufumbuzi bora. 2148 01:46:47,930 --> 01:46:50,100 Tunaweza kuondoka iwe hivyo. 2149 01:46:50,100 --> 01:46:53,677 Na, kusema ukweli, ni kwa ujumla nzuri, na urahisi, na kubuni nzuri 2150 01:46:53,677 --> 01:46:56,760 kuweka kuu ya kwanza, kwa sababu, tena, kuu tu kama wakati kijani bendera clicked, 2151 01:46:56,760 --> 01:46:59,027 kwamba ni kazi ambayo anapata kunyongwa na default. 2152 01:46:59,027 --> 01:47:01,110 Hivyo unaweza pia kuweka hivyo wakati juu ya faili 2153 01:47:01,110 --> 01:47:03,560 hivyo kwamba wakati wewe au yoyote binadamu wengine inaangalia faili 2154 01:47:03,560 --> 01:47:06,360 unajua nini kinaendelea tu kwa kusoma kuu ya kwanza. 2155 01:47:06,360 --> 01:47:15,360 Hivyo ni zamu nje, tunaweza kujua Clang proactively, hey, Clang, kwenye mstari nne, 2156 01:47:15,360 --> 01:47:17,940 Mimi ahadi ya kutekeleza kazi kuitwa Print 2157 01:47:17,940 --> 01:47:22,600 Jina kwamba inachukua kamba kuitwa jina kama pembejeo, na anarudi kitu, utupu. 2158 01:47:22,600 --> 01:47:24,770 Na mimi itabidi kupata karibu na kutekeleza hayo baadaye. 2159 01:47:24,770 --> 01:47:25,680 >> Hiyo inakuja Kuu. 2160 01:47:25,680 --> 01:47:29,130 Kuu sasa kwenye mstari 9 wanaweza kutumia Jina Print kwa sababu Clang 2161 01:47:29,130 --> 01:47:32,600 ni kuamini kwamba, hatimaye, itakuwa kukutana ufafanuzi 2162 01:47:32,600 --> 01:47:34,880 ya utekelezaji wa Jina Print. 2163 01:47:34,880 --> 01:47:37,390 Kwa hiyo baada ya kuokoa faili yangu, hebu mimi kwenda mbele na kufanya mfano, 2164 01:47:37,390 --> 01:47:38,498 inaonekana ni nzuri wakati huu. 2165 01:47:38,498 --> 01:47:43,470 Dot kufyeka, mfano, napenda kwenda mbele na aina katika jina. 2166 01:47:43,470 --> 01:47:48,440 David, hello David, Zamila, hello Zamila, na kwa kweli, sasa ni kazi. 2167 01:47:48,440 --> 01:47:52,200 >> Hivyo kingo hapa ni kwamba tumekuwa alifanya kazi desturi, kama desturi 2168 01:47:52,200 --> 01:47:54,219 Scratch kuzuia sisi ni wito yake. 2169 01:47:54,219 --> 01:47:57,010 Lakini tofauti na Scratch ambapo unaweza tu kujenga ni na kuanza kutumia, 2170 01:47:57,010 --> 01:47:59,330 sasa sisi kuwa kidogo zaidi pedantic, 2171 01:47:59,330 --> 01:48:03,410 na kwa kweli mafunzo Clang kutumia, au kwa kutarajia. 2172 01:48:03,410 --> 01:48:09,140 Sasa, kama kando, kwa nini muda wote huu na sisi wamekuwa tu upofu juu ya imani ikiwa ni pamoja na 2173 01:48:09,140 --> 01:48:12,170 CS50.h, na ikiwa ni pamoja na kiwango io.h? 2174 01:48:12,170 --> 01:48:15,190 >> Naam, ni zamu nje, miongoni mwa mambo mengine machache, 2175 01:48:15,190 --> 01:48:18,550 yote yale ambayo ni katika wale dot h files, ambayo kutokea kwa kuwa mafaili. 2176 01:48:18,550 --> 01:48:20,460 Wao ni header files, hivyo kusema. 2177 01:48:20,460 --> 01:48:23,270 Wao bado uko kuandikwa katika C. Lakini wao uko aina tofauti ya file. 2178 01:48:23,270 --> 01:48:28,690 >> Kwa sasa, unaweza pretty much kudhani ambazo vitu vyote vilivyomo ndani ya CS50.h 2179 01:48:28,690 --> 01:48:33,360 baadhi ya moja-liners kama hii, si kwa ajili ya kazi inaitwa Jina Print, 2180 01:48:33,360 --> 01:48:36,840 lakini kwa Kupata Kamba, Kupata Float, na wengine wachache. 2181 01:48:36,840 --> 01:48:41,510 Na kuna prototypes sawa, moja liners, ndani ya kiwango io.h 2182 01:48:41,510 --> 01:48:46,241 kwa printf, ambayo sasa ni katika yangu mwenyewe Jina Print kazi. 2183 01:48:46,241 --> 01:48:49,490 Hivyo kwa maneno mengine, wakati huu mzima tumekuwa tu imekuwa upofu kuiga na pasting 2184 01:48:49,490 --> 01:48:51,780 pamoja na hii, ni pamoja na kwamba, nini kinaendelea? 2185 01:48:51,780 --> 01:48:55,310 Hayo ni tu aina ya dalili kwa Clang kama kwa kazi gani 2186 01:48:55,310 --> 01:49:00,170 ni kweli, kutekelezwa, tu mahali pengine katika mafaili mbalimbali 2187 01:49:00,170 --> 01:49:02,440 mahali pengine katika mfumo. 2188 01:49:02,440 --> 01:49:05,160 >> Hivyo tumekuwa kutekelezwa jina magazeti. 2189 01:49:05,160 --> 01:49:07,910 Ni gani kuwa athari hii upande wa uchapishaji kitu juu ya screen. 2190 01:49:07,910 --> 01:49:10,170 Lakini haina kweli mkono mimi kitu nyuma. 2191 01:49:10,170 --> 01:49:12,200 Jinsi gani sisi kwenda juu utekelezaji wa mpango huo 2192 01:49:12,200 --> 01:49:14,510 haina mkono mimi kitu nyuma? 2193 01:49:14,510 --> 01:49:15,580 >> Naam, hebu jaribu hii. 2194 01:49:15,580 --> 01:49:21,360 Hebu kwenda mbele na kutekeleza faili inayoitwa return.c 2195 01:49:21,360 --> 01:49:24,530 ili tuweze kuonyesha jinsi kitu kama Kupata Kamba, au Kupata Int, 2196 01:49:24,530 --> 01:49:27,340 ni kweli kurudi kitu nyuma kwa mtumiaji. 2197 01:49:27,340 --> 01:49:29,840 Hebu kwenda mbele na kufafanua int kuu utupu. 2198 01:49:29,840 --> 01:49:33,230 >> Na tena, katika siku zijazo, tutaweza kueleza kile kwamba int na kwamba utupu 2199 01:49:33,230 --> 01:49:34,090 ni kweli kufanya. 2200 01:49:34,090 --> 01:49:35,840 Lakini kwa leo, tutaweza kuchukua ni kwa nafasi. 2201 01:49:35,840 --> 01:49:39,970 Mimi nina kwenda mbele na printf, kwa nzuri user uzoefu, x ni. 2202 01:49:39,970 --> 01:49:44,360 Na kisha mimi nina kwenda kusubiri kwa user kunipa x na kupata int. 2203 01:49:44,360 --> 01:49:48,459 >> Na kisha mimi nina kwenda mbele na magazeti nje x kwa mraba. 2204 01:49:48,459 --> 01:49:50,500 Hivyo wakati wewe tu na keyboard, watu kawaida 2205 01:49:50,500 --> 01:49:52,600 kutumia karoti kidogo ishara juu ya keyboard 2206 01:49:52,600 --> 01:49:55,330 kuiwakilisha madarakani ya, au exponent ya. 2207 01:49:55,330 --> 01:49:58,960 Hivyo x mraba ni sasa i. 2208 01:49:58,960 --> 01:50:00,660 >> Na sasa mimi nina kwenda kufanya hili. 2209 01:50:00,660 --> 01:50:03,940 Mimi naweza do-- tu nini x squared? x squared ni mara x x. 2210 01:50:03,940 --> 01:50:06,690 >> Na sisi alifanya hivyo baadhi wakati uliopita tayari leo. 2211 01:50:06,690 --> 01:50:08,730 Hii haina kujisikia kama zote kuwa maendeleo makubwa. 2212 01:50:08,730 --> 01:50:09,570 Unajua nini? 2213 01:50:09,570 --> 01:50:13,100 Hebu kujiinua baadhi ya wazo kwamba mara ya mwisho ya kufikirika tu. 2214 01:50:13,100 --> 01:50:16,080 >> Je, si ni kuwa nzuri kama kuna kazi kuitwa 2215 01:50:16,080 --> 01:50:18,460 mraba kwamba gani hasa kwamba? 2216 01:50:18,460 --> 01:50:20,640 Bado, mwishoni mwa siku, je math sawa. 2217 01:50:20,640 --> 01:50:22,410 Lakini hebu abstract mbali wazo la kuchukua 2218 01:50:22,410 --> 01:50:25,280 namba moja tele na mwingine, na tu kuwapa jina, 2219 01:50:25,280 --> 01:50:27,360 kama mraba thamani hii. 2220 01:50:27,360 --> 01:50:29,560 >> Na, kwa maneno mengine, katika C, hebu kujenga kazi 2221 01:50:29,560 --> 01:50:32,660 aitwaye mraba kwamba gani hasa kwamba. 2222 01:50:32,660 --> 01:50:34,600 Ni kwenda kuitwa mraba. 2223 01:50:34,600 --> 01:50:35,790 Ni kwenda kuchukua int. 2224 01:50:35,790 --> 01:50:37,820 Na tutaweza mapenzi tu kuiita n, na default. 2225 01:50:37,820 --> 01:50:39,403 >> Lakini tunaweza kuiita chochote tunataka. 2226 01:50:39,403 --> 01:50:42,900 Na yote ni kwenda kufanya, literally, ni kurudi 2227 01:50:42,900 --> 01:50:45,810 matokeo ya nyakati n n. 2228 01:50:45,810 --> 01:50:48,980 Lakini kwa sababu ni kurudisha kitu, ambayo 2229 01:50:48,980 --> 01:50:53,690 ni keyword katika zambarau tumekuwa kamwe kuona mbele, I, kwenye mstari 11, 2230 01:50:53,690 --> 01:50:55,410 Huwezi tu kusema utupu wakati huu. 2231 01:50:55,410 --> 01:51:01,320 >> Batili, katika mfano sisi tu kuona badala ya jina magazeti, tu ina maana, 2232 01:51:01,320 --> 01:51:02,190 fanya kitu. 2233 01:51:02,190 --> 01:51:04,170 Lakini si mkono mimi kitu nyuma. 2234 01:51:04,170 --> 01:51:06,790 Katika kesi hiyo, mimi nataka kurudi n mara n, 2235 01:51:06,790 --> 01:51:08,460 au chochote yaani, idadi hiyo. 2236 01:51:08,460 --> 01:51:12,460 >> Hivyo siwezi kusema, hey, kompyuta, Mimi kurudi kitu, utupu. 2237 01:51:12,460 --> 01:51:16,166 Ni kwenda na kurudi, kwa asili, int. 2238 01:51:16,166 --> 01:51:17,790 Na hivyo ndiyo yote kinaendelea hapa. 2239 01:51:17,790 --> 01:51:20,070 >> pembejeo kwa mraba ni kwenda kuwa int. 2240 01:51:20,070 --> 01:51:24,760 Na ili tuweze kuitumia, ina kuwa na jina, N. Ni kwenda pato 2241 01:51:24,760 --> 01:51:26,240 int kwamba haina haja jina. 2242 01:51:26,240 --> 01:51:29,590 Tunaweza kuondoka kwa kuu, au ye yote ni kutumia mimi kukumbuka thamani hii kama sisi 2243 01:51:29,590 --> 01:51:31,120 wanataka na kutofautiana yake mwenyewe. 2244 01:51:31,120 --> 01:51:33,230 >> Na, tena, mpya tu keyword hapa ni marejeo. 2245 01:51:33,230 --> 01:51:34,480 Na mimi nina tu kufanya baadhi ya math. 2246 01:51:34,480 --> 01:51:41,825 Kama mimi kwa kweli alitaka kuwa unnecessary, Mimi naweza kusema int bidhaa anapata n mara n. 2247 01:51:41,825 --> 01:51:44,170 >> Na kisha mimi naweza kusema, kurudi bidhaa. 2248 01:51:44,170 --> 01:51:47,360 Lakini tena, kwa uhakika yangu ya awali ya hii si tu kuwa design-- nzuri 2249 01:51:47,360 --> 01:51:50,060 kama, kwa nini kuanzisha jina, ishara, kama bidhaa, 2250 01:51:50,060 --> 01:51:51,570 tu mara moja kurudi yake? 2251 01:51:51,570 --> 01:51:53,670 Ni safi kidogo, stramare kidogo, hivyo 2252 01:51:53,670 --> 01:51:59,380 kusema, tu kusema mara kurudi n n, kujikwamua mstari huu kabisa. 2253 01:51:59,380 --> 01:52:02,860 >> Na ni tu chini ya kanuni kusoma, chini fursa kwa makosa. 2254 01:52:02,860 --> 01:52:05,180 Na hebu angalia kama hii kweli sasa anafanya kazi. 2255 01:52:05,180 --> 01:52:09,380 Sasa, mimi nina kwenda mbele na kufanya kurudi. 2256 01:52:09,380 --> 01:52:11,460 >> Uh-oh, thabiti tamko la kazi. 2257 01:52:11,460 --> 01:52:14,080 Mimi alifanya kosa hilo kabla, hakuna mpango mkubwa. 2258 01:52:14,080 --> 01:52:18,950 Napenda tu aina, au kuonyesha na nakala, exact kazi mfano, 2259 01:52:18,950 --> 01:52:21,342 au saini, ya kazi hapa. 2260 01:52:21,342 --> 01:52:22,800 Au mimi naweza hoja kazi nzima. 2261 01:52:22,800 --> 01:52:23,841 >> Lakini hiyo ni kidogo wavivu. 2262 01:52:23,841 --> 01:52:24,870 Hivyo sisi si kufanya hivyo. 2263 01:52:24,870 --> 01:52:27,960 Sasa, basi mimi kufanya kurudi tena, dot kufyeka kurudi. 2264 01:52:27,960 --> 01:52:32,790 >> x ni 2. x mraba ni 4. x ni 3. x mraba ni 9. 2265 01:52:32,790 --> 01:52:35,300 Na kazi inaonekana sasa kwa kuwa kazi. 2266 01:52:35,300 --> 01:52:36,550 Basi nini tofauti hapa? 2267 01:52:36,550 --> 01:52:42,520 Nina kazi kwamba wito mraba, katika kesi hii, ambayo mimi kuweka katika pembejeo. 2268 01:52:42,520 --> 01:52:43,830 Na mimi kupata nyuma pato. 2269 01:52:43,830 --> 01:52:46,210 Na bado, hapo awali, ikiwa Mimi kufungua mfano mwingine 2270 01:52:46,210 --> 01:52:51,640 kutoka mapema, ambayo Ilikuwa inaitwa prototype.c, 2271 01:52:51,640 --> 01:52:54,770 Mimi nilikuwa magazeti jina, ambayo akarudi batili, hivyo kusema, 2272 01:52:54,770 --> 01:52:58,730 Au akarudi kitu, na tu alikuwa athari upande. 2273 01:52:58,730 --> 01:53:00,230 >> Hivyo nini kinaendelea hapa? 2274 01:53:00,230 --> 01:53:03,520 Naam, kufikiria kazi kupata kamba kwa muda tu. 2275 01:53:03,520 --> 01:53:06,570 Tumekuwa kutumia kazi kupata kamba kwa njia hii. 2276 01:53:06,570 --> 01:53:10,464 >> Tumekuwa na kazi kupata kamba, kama ni pamoja na CS50.h, 2277 01:53:10,464 --> 01:53:16,624 pamoja na kiwango io.h, int, kuu, utupu. 2278 01:53:16,624 --> 01:53:18,790 Na kisha kila wakati nimekuwa aitwaye kupata kamba hivi sasa, 2279 01:53:18,790 --> 01:53:23,260 Nimekuwa alisema kitu kama, kamba s anapata kupata kamba, kwa sababu get kamba 2280 01:53:23,260 --> 01:53:27,880 hebu simu hii get.c-- kupata kamba yenyewe anarudi kamba kwamba naweza kisha 2281 01:53:27,880 --> 01:53:32,050 kutumia, na kusema, hello, comma, asilimia s, backslash n, s. 2282 01:53:32,050 --> 01:53:35,660 >> Hivyo hii ni mfano huo, kweli, kwamba tulikuwa mapema. 2283 01:53:35,660 --> 01:53:37,920 Hivyo kupata kamba anarudi thamani. 2284 01:53:37,920 --> 01:53:41,260 Lakini wakati iliyopita, kamba magazeti haina kurudi thamani. 2285 01:53:41,260 --> 01:53:42,721 Ni tu ina athari upande. 2286 01:53:42,721 --> 01:53:44,220 Hivyo hii ni tofauti ya kimsingi. 2287 01:53:44,220 --> 01:53:46,710 Tumeona tofauti aina ya kazi sasa, 2288 01:53:46,710 --> 01:53:49,490 baadhi ya ambayo wamerejea maadili, baadhi ya ambayo hawana. 2289 01:53:49,490 --> 01:53:51,890 Hivyo labda ni kamba, au int, au kuelea. 2290 01:53:51,890 --> 01:53:53,480 Au labda ni tu utupu. 2291 01:53:53,480 --> 01:53:55,710 >> Na tofauti ni kwamba kazi hizi kwamba 2292 01:53:55,710 --> 01:53:59,940 kupata data na kurudi thamani ni kweli kuleta kitu nyuma ya meza, 2293 01:53:59,940 --> 01:54:01,110 hivyo kusema. 2294 01:54:01,110 --> 01:54:03,710 Basi hebu kwenda mbele na kuangalia seti moja ya mwisho 2295 01:54:03,710 --> 01:54:09,129 ya mifano kwamba anatoa hisia, sasa, ya jinsi tunaweza, kwa hakika, abstract bora, 2296 01:54:09,129 --> 01:54:11,670 na bora, na bora, au zaidi, na zaidi, na zaidi, ili 2297 01:54:11,670 --> 01:54:13,810 kuandika, hatimaye, vizuri kanuni. 2298 01:54:13,810 --> 01:54:16,860 Hebu kwenda mbele, na kwa roho ya Scratch, kufanya yafuatayo. 2299 01:54:16,860 --> 01:54:21,700 >> Hebu kwenda mbele na ni pamoja na CS50.h na kiwango io.h. 2300 01:54:21,700 --> 01:54:24,010 Hebu kwenda mbele na kutoa mwenyewe int, kuu, utupu. 2301 01:54:24,010 --> 01:54:27,380 Na napenda kwenda mbele, piga cough.c hii. 2302 01:54:27,380 --> 01:54:35,510 >> Na napenda kwenda mbele na tu kama Scratch, magazeti nje kikohozi / n. 2303 01:54:35,510 --> 01:54:37,170 Na mimi nataka kufanya hili mara tatu. 2304 01:54:37,170 --> 01:54:39,670 Hivyo mimi nina, bila shaka, tu kwenda na nakala na kuweka mara tatu. 2305 01:54:39,670 --> 01:54:46,440 Mimi sasa kwenda kufanya kikohozi dot kufyeka kikohozi. 2306 01:54:46,440 --> 01:54:50,120 Hebu kutoa mwenyewe kidogo zaidi chumba hapa, Ingieni, kukohoa, kikohozi, kikohozi. 2307 01:54:50,120 --> 01:54:53,970 >> Kuna, ni wazi, tayari nafasi ya kuboresha. 2308 01:54:53,970 --> 01:54:55,679 Nimekuwa kunakiliwa na pasted mara chache leo. 2309 01:54:55,679 --> 01:54:58,261 Lakini hiyo ilikuwa tu hivyo sikuwa kuwa na aina kama wahusika wengi. 2310 01:54:58,261 --> 01:55:00,250 Mimi bado iliyopita nini wale mstari wa kanuni ni. 2311 01:55:00,250 --> 01:55:04,240 >> mistari watatu hawa ni kufanana, ambayo anahisi wavivu na kwa kweli ni, 2312 01:55:04,240 --> 01:55:07,110 na pengine si njia ya haki. 2313 01:55:07,110 --> 01:55:11,029 Hivyo, pamoja na yale kingo tunaweza kuboresha kanuni hii? 2314 01:55:11,029 --> 01:55:12,570 Hatuna nakala na kuweka kanuni. 2315 01:55:12,570 --> 01:55:15,070 >> Na, kwa hakika, wakati wowote kujisikia mwenyewe kuiga na pasting, 2316 01:55:15,070 --> 01:55:17,700 na hata kubadilisha kanuni, ni tabia mbaya kuna njia bora. 2317 01:55:17,700 --> 01:55:19,470 Na, kwa hakika, kuna. 2318 01:55:19,470 --> 01:55:22,510 Hebu kwenda mbele na kufanya kwa kitanzi, ingawa syntax nguvu si 2319 01:55:22,510 --> 01:55:24,570 kuja kawaida bado. 2320 01:55:24,570 --> 01:55:29,494 >> Je, hii mara tatu, tu kwa kufanya following-- 2321 01:55:29,494 --> 01:55:31,160 na mimi kutokea kwa kujua hii kutoka mazoezi. 2322 01:55:31,160 --> 01:55:32,810 Lakini tuna idadi ya mifano sasa. 2323 01:55:32,810 --> 01:55:34,950 Na utaona online marejeo zaidi bado. 2324 01:55:34,950 --> 01:55:37,790 >> Hii ni syntax kwenye mstari 6, kwamba kiasi kama Scratch kwamba kurudia 2325 01:55:37,790 --> 01:55:40,090 kuzuia, kurudia kufuatia mara tatu. 2326 01:55:40,090 --> 01:55:41,340 Ni kichawi kidogo kwa sasa. 2327 01:55:41,340 --> 01:55:43,050 Lakini hii kupata zaidi, na zaidi ya ukoo. 2328 01:55:43,050 --> 01:55:45,050 >> Na itakuja kurudia line nane mara tatu, 2329 01:55:45,050 --> 01:55:52,390 ili kwamba kama mimi re-kukusanya kufanya kikohozi, dot kufyeka kukohoa, kikohozi, kikohozi, kikohozi. 2330 01:55:52,390 --> 01:55:54,030 Bado kazi kwa njia hiyo hiyo. 2331 01:55:54,030 --> 01:55:55,550 Basi hiyo ni yote faini na nzuri. 2332 01:55:55,550 --> 01:55:58,200 Lakini si kwamba yanayotumika sana. 2333 01:55:58,200 --> 01:55:59,371 >> Ni sahihi kabisa. 2334 01:55:59,371 --> 01:56:01,370 Lakini anahisi kama kuna inaweza kuwa fursa, 2335 01:56:01,370 --> 01:56:03,750 kama katika ulimwengu wa Scratch, kwa namna ya kuanza 2336 01:56:03,750 --> 01:56:07,530 kuongeza baadhi ya semantiki hapa ili Mimi si tu kuwa na baadhi ya kwa kitanzi, 2337 01:56:07,530 --> 01:56:09,867 na kazi ambayo anasema kikohozi, au gani kikohozi. 2338 01:56:09,867 --> 01:56:10,450 Unajua nini? 2339 01:56:10,450 --> 01:56:12,620 Hebu jaribu kuwa baridi kidogo zaidi ya kwamba, 2340 01:56:12,620 --> 01:56:16,090 na kweli kuandika kazi ambayo ina baadhi ya madhara, simu yake kikohozi. 2341 01:56:16,090 --> 01:56:20,830 >> Na inachukua hakuna pembejeo, na anarudi hakuna thamani kama pato. 2342 01:56:20,830 --> 01:56:22,680 Lakini unajua nini ni gani? 2343 01:56:22,680 --> 01:56:29,370 Ni anafanya Haya printf, quote unquote, kikohozi. 2344 01:56:29,370 --> 01:56:32,380 >> Na sasa hapa, mimi nina kwenda kwenda mbele na kwa int, 2345 01:56:32,380 --> 01:56:36,070 i anapata sifuri, i chini ya 3, i plus plus. 2346 01:56:36,070 --> 01:56:39,770 Mimi nina kwenda kufanya printf, ambayo ni arguably utekelezaji kiwango cha chini 2347 01:56:39,770 --> 01:56:40,270 undani. 2348 01:56:40,270 --> 01:56:41,353 Sijali jinsi ya kikohozi. 2349 01:56:41,353 --> 01:56:43,240 Mimi nataka tu kutumia kikohozi kazi. 2350 01:56:43,240 --> 01:56:44,840 Na mimi nina tu kwenda kuwaita kikohozi. 2351 01:56:44,840 --> 01:56:46,204 >> Sasa, taarifa dichotomy. 2352 01:56:46,204 --> 01:56:49,370 Wakati wewe piga kazi, kama huna unataka kuwapa pembejeo, kabisa faini. 2353 01:56:49,370 --> 01:56:51,780 Tu kufanya wazi Paren, karibu paren, na wewe ni kosa. 2354 01:56:51,780 --> 01:56:56,271 >> Wakati unaweza kufafanua kazi, au kutangaza mfano kazi ya, 2355 01:56:56,271 --> 01:56:58,770 kama wewe kujua mapema siyo kwenda kuchukua hoja yoyote, 2356 01:56:58,770 --> 01:57:01,170 kusema utupu katika mabano wale pale. 2357 01:57:01,170 --> 01:57:05,660 Na kwamba inafanya hakika kwamba wewe si ajali kuzitumia vibaya. 2358 01:57:05,660 --> 01:57:07,020 Hebu kwenda mbele na kufanya kikohozi. 2359 01:57:07,020 --> 01:57:08,540 Na, bila shaka, nimekuwa alifanya makosa. 2360 01:57:08,540 --> 01:57:10,410 >> Dammit, kuna kuwa thabiti tamko. 2361 01:57:10,410 --> 01:57:11,325 Lakini hiyo ni faini. 2362 01:57:11,325 --> 01:57:12,590 Ni rahisi kurekebisha. 2363 01:57:12,590 --> 01:57:18,240 Mimi tu haja mfano juu juu katika faili yangu kuliko mimi nina kweli kutumia. 2364 01:57:18,240 --> 01:57:20,070 >> Hivyo sasa napenda kufanya kikohozi tena, nzuri. 2365 01:57:20,070 --> 01:57:20,790 Sasa, ni kazi. 2366 01:57:20,790 --> 01:57:22,930 Kufanya kukohoa, kikohozi, kikohozi, kikohozi. 2367 01:57:22,930 --> 01:57:25,930 Hivyo unaweza kufikiri kwamba sisi ni kweli zaidi ya uhandisi tatizo hili. 2368 01:57:25,930 --> 01:57:26,763 Na kwa kweli, sisi ni. 2369 01:57:26,763 --> 01:57:28,870 Hii si nzuri Mgombea wa mpango 2370 01:57:28,870 --> 01:57:31,930 wakati kwa refactoring, na kufanya nini 2371 01:57:31,930 --> 01:57:35,645 aitwaye kihierarkia mtengano, ambapo kuchukua baadhi ya kanuni, na kisha 2372 01:57:35,645 --> 01:57:38,790 aina ya sababu mambo ya nje, hivyo kama kuhusisha semantiki zaidi kwao, 2373 01:57:38,790 --> 01:57:40,930 na kutumia tena hatimaye muda mrefu. 2374 01:57:40,930 --> 01:57:43,490 Lakini ni kuzuia ujenzi kuelekea mipango ya kisasa zaidi 2375 01:57:43,490 --> 01:57:45,600 kwamba tutaanza kuandika kabla ya muda mrefu kwamba 2376 01:57:45,600 --> 01:57:50,090 inaruhusu yetu kuwa na msamiati na ambayo kwa kuandika vizuri kanuni. 2377 01:57:50,090 --> 01:57:52,920 Na kwa kweli, hebu angalia kama sisi hawezi kujumlisha hili zaidi. 2378 01:57:52,920 --> 01:57:57,984 >> Inaonekana vilema kidogo kwamba mimi, kuu, haja ya kuwa na wasiwasi kuhusu darn hii kwa kitanzi, 2379 01:57:57,984 --> 01:57:59,400 na wito kikohozi tena na tena. 2380 01:57:59,400 --> 01:58:03,050 Kwa nini siwezi kuwaambia tu kikohozi, tafadhali kikohozi mara tatu? 2381 01:58:03,050 --> 01:58:08,170 Kwa maneno mengine, kwa nini hawawezi I just kutoa pembejeo kwa kikohozi na kufanya hili? 2382 01:58:08,170 --> 01:58:11,270 >> Kwa nini siwezi kusema tu, katika kikohozi kuu mara tatu. 2383 01:58:11,270 --> 01:58:13,150 Na sasa, hii ni aina ya kichawi. 2384 01:58:13,150 --> 01:58:14,540 Ni iterative sana hapa. 2385 01:58:14,540 --> 01:58:15,940 Na ni, kwa kweli, mtoto hatua. 2386 01:58:15,940 --> 01:58:19,250 >> Lakini tu uwezo wa kusema juu ya line nane, kukohoa mara tatu, 2387 01:58:19,250 --> 01:58:20,730 ni hivyo zaidi someka tu. 2388 01:58:20,730 --> 01:58:24,210 Na, plus, sina kujua au huduma jinsi kikohozi ni kutekelezwa. 2389 01:58:24,210 --> 01:58:26,460 Na, kwa hakika, baadaye katika mrefu na kwa miradi ya mwisho, 2390 01:58:26,460 --> 01:58:29,150 kama wewe kukabiliana na mradi na classmate au wanafunzi wawili, 2391 01:58:29,150 --> 01:58:32,370 utasikia kutambua kwamba wewe ni kwenda kuwa na, au unataka, kugawanya kazi. 2392 01:58:32,370 --> 01:58:34,650 >> Na wewe ni kwenda wanataka kuamua mapema, ambaye ni kwenda kufanya nini, 2393 01:58:34,650 --> 01:58:35,483 na ambayo vipande? 2394 01:58:35,483 --> 01:58:37,520 Na bila kuwa nzuri kama wewe, kwa mfano, 2395 01:58:37,520 --> 01:58:40,100 kuchukua malipo ya uandishi kuu, kufanyika. 2396 01:58:40,100 --> 01:58:43,470 Na roommate yako, au yako mpenzi kwa ujumla zaidi, 2397 01:58:43,470 --> 01:58:45,230 inachukua huduma ya utekelezaji kikohozi. 2398 01:58:45,230 --> 01:58:49,540 >> Na mgawanyiko huu, hizi kuta za uchukuaji, 2399 01:58:49,540 --> 01:58:52,310 au matabaka ya uchukuaji kama utakuwa, ni super nguvu, 2400 01:58:52,310 --> 01:58:55,480 kwa sababu hasa kwa kubwa, zaidi programu tata na mifumo, 2401 01:58:55,480 --> 01:59:00,070 inaruhusu watu mbalimbali ili kujenga mambo pamoja, na hatimaye 2402 01:59:00,070 --> 01:59:02,680 kushona kazi zao pamoja kwa njia hii. 2403 01:59:02,680 --> 01:59:05,332 Lakini, bila shaka, sisi haja ya sasa kurekebisha kikohozi. 2404 01:59:05,332 --> 01:59:07,290 Sisi haja ya kuwaambia kikohozi kwamba, hey, unajua nini? 2405 01:59:07,290 --> 01:59:11,230 Wewe ni kwenda haja ya kuchukua pembejeo hivyo si batili, lakini int na sasa. 2406 01:59:11,230 --> 01:59:15,170 Hebu kwenda mbele na kuweka ndani kikohozi int. i anapata sifuri. 2407 01:59:15,170 --> 01:59:16,890 >> i ni chini ya mara ngapi. 2408 01:59:16,890 --> 01:59:18,550 Nilisema tatu kabla. 2409 01:59:18,550 --> 01:59:20,420 Lakini si kwamba nini nataka. 2410 01:59:20,420 --> 01:59:25,520 Mimi nataka kikohozi kwa kuwa jumla ya kusaidia idadi yoyote ya iterations. 2411 01:59:25,520 --> 01:59:28,800 >> Hivyo, kwa hakika, ni n kwamba mimi nataka, chochote mtumiaji inaniambia. 2412 01:59:28,800 --> 01:59:31,620 Sasa, siwezi kwenda mbele na kusema magazeti kikohozi. 2413 01:59:31,620 --> 01:59:34,750 Na bila kujali idadi user hupita katika, 2414 01:59:34,750 --> 01:59:36,890 Nami iterate kwamba mara nyingi. 2415 01:59:36,890 --> 01:59:39,160 >> Hivyo mwisho wa siku, mpango huo ni kufanana. 2416 01:59:39,160 --> 01:59:42,820 Lakini taarifa yote ya mambo haya inaweza hata kuwa katika faili mwingine. 2417 01:59:42,820 --> 01:59:45,620 Hakika, mimi sijui utafutaji muda gani printf ni kutekelezwa. 2418 01:59:45,620 --> 01:59:47,980 >> Sijui wakati jinsi kupata kamba, au kupata int, au kupata kuelea 2419 01:59:47,980 --> 01:59:48,646 zinatekelezwa. 2420 01:59:48,646 --> 01:59:50,930 Na mimi sitaki kuwaona kwenye screen yangu. 2421 01:59:50,930 --> 01:59:55,320 Kama ilivyo, mimi nina kuanza kuzingatia mpango wangu, si kazi hizo. 2422 01:59:55,320 --> 01:59:59,070 >> Na hivyo, kwa kweli, kwa haraka kama wewe kuanza factoring code kama hii nje, 2423 01:59:59,070 --> 02:00:01,397 tunaweza hata hoja kikohozi kwa faili tofauti? 2424 02:00:01,397 --> 02:00:02,730 Mtu mwingine inaweza kutekeleza. 2425 02:00:02,730 --> 02:00:06,810 Na wewe na mpango wako kuwa nzuri sana, na someka sana, 2426 02:00:06,810 --> 02:00:10,830 arguably, kwa kweli nne line mpango pale pale. 2427 02:00:10,830 --> 02:00:13,510 >> Basi hebu kwenda mbele sasa na kufanya moja zaidi mabadiliko. 2428 02:00:13,510 --> 02:00:16,180 Taarifa kwamba mfano wangu ina mabadiliko juu juu. 2429 02:00:16,180 --> 02:00:18,390 Hivyo basi mimi kurekebisha kwamba hivyo Sina kupata yelled saa. 2430 02:00:18,390 --> 02:00:22,580 >> Kufanya kikohozi, napenda kukimbia kikohozi mara moja zaidi, bado kufanya kitu kimoja. 2431 02:00:22,580 --> 02:00:26,010 Lakini sasa, tuna taarifa ingredient kwa moja toleo la mwisho. 2432 02:00:26,010 --> 02:00:26,940 Unajua nini? 2433 02:00:26,940 --> 02:00:29,040 Sitaki kukohoa tu, lazima. 2434 02:00:29,040 --> 02:00:30,802 Nataka kuwa na kitu zaidi kwa ujumla. 2435 02:00:30,802 --> 02:00:31,510 Hivyo unajua nini? 2436 02:00:31,510 --> 02:00:32,450 Nataka kufanya hili. 2437 02:00:32,450 --> 02:00:37,140 Nataka kuwa na, kiasi kama Scratch gani, kuzuia kusema, lakini si tu 2438 02:00:37,140 --> 02:00:38,680 kusema kitu baadhi idadi ya nyakati. 2439 02:00:38,680 --> 02:00:41,510 Nataka kusema kamba maalum sana. 2440 02:00:41,510 --> 02:00:43,850 Na, kwa hiyo, mimi si unataka kusema tu kikohozi. 2441 02:00:43,850 --> 02:00:47,660 Nataka kusema chochote kamba ni kupita katika. 2442 02:00:47,660 --> 02:00:49,960 >> Hivyo taarifa, nimekuwa wa jumla hii ili sasa 2443 02:00:49,960 --> 02:00:53,110 kusema anahisi kama jina nzuri kwa hili, kama Scratch, 2444 02:00:53,110 --> 02:00:55,530 inachukua hoja mbili, tofauti na Scratch. 2445 02:00:55,530 --> 02:00:56,570 Moja ni kamba. 2446 02:00:56,570 --> 02:00:57,300 Moja ni int. 2447 02:00:57,300 --> 02:00:58,130 >> Na mimi naweza kubadili yao. 2448 02:00:58,130 --> 02:01:00,713 I just aina ya kama wazo la kusema kamba kwanza, na kisha 2449 02:01:00,713 --> 02:01:01,940 jinsi mara baadaye mingi. 2450 02:01:01,940 --> 02:01:03,970 Utupu maana yake bado haina kurudi kitu chochote. 2451 02:01:03,970 --> 02:01:06,428 Hizi ni baadhi tu ya Visual upande madhara, kama na [? Jordan,?] 2452 02:01:06,428 --> 02:01:08,240 matusi na athari upande wa kunguruma. 2453 02:01:08,240 --> 02:01:12,630 Ni bado anafanya mara kitu n, 0 hadi, lakini si sawa na n. 2454 02:01:12,630 --> 02:01:14,540 Hii ina maana n jumla nyakati. 2455 02:01:14,540 --> 02:01:16,540 Na kisha tu magazeti nje chochote kile kamba ni. 2456 02:01:16,540 --> 02:01:19,060 Hivyo nimekuwa kweli wa jumla hii mstari wa kanuni. 2457 02:01:19,060 --> 02:01:22,460 Hivyo sasa, jinsi gani mimi kutekeleza kikohozi kazi? 2458 02:01:22,460 --> 02:01:25,520 >> Siwezi kufanya utupu kikohozi. 2459 02:01:25,520 --> 02:01:28,501 Na mimi bado wanaweza kuchukua katika jinsi mara nyingi unataka kikohozi. 2460 02:01:28,501 --> 02:01:29,250 Lakini unajua nini? 2461 02:01:29,250 --> 02:01:31,240 Mimi sasa wanaweza Punt kusema. 2462 02:01:31,240 --> 02:01:36,540 >> Siwezi kuwaita kusema kwa neno kikohozi, kupita katika n. 2463 02:01:36,540 --> 02:01:40,410 Na kama nataka pia kutekeleza, ajili ya kujifurahisha, sneeze kazi, 2464 02:01:40,410 --> 02:01:42,290 Siwezi kuchafya baadhi idadi ya nyakati. 2465 02:01:42,290 --> 02:01:47,300 Na siwezi kuendelea Reusing n, kwa sababu taarifa kwamba m kwa mantiki hii au upeo 2466 02:01:47,300 --> 02:01:49,470 tu ipo ndani ya kazi hii. 2467 02:01:49,470 --> 02:01:52,767 >> Na n kwa mantiki hii tu ipo ndani ya kazi hii hapa. 2468 02:01:52,767 --> 02:01:54,600 Hivyo tutaweza kuja nyuma masuala haya ya upeo. 2469 02:01:54,600 --> 02:02:01,160 Na hapa, mimi nina kwenda tu kusema, Achoo, na kisha n mara, nusu koloni. 2470 02:02:01,160 --> 02:02:04,340 >> Na sasa, mimi tu haja ya kukopa hizi kazi saini hapa. 2471 02:02:04,340 --> 02:02:06,290 Hivyo kikohozi ni sahihi. 2472 02:02:06,290 --> 02:02:10,090 Void sneeze ni sahihi sasa. 2473 02:02:10,090 --> 02:02:12,390 >> Na mimi bado tu haja kusema. 2474 02:02:12,390 --> 02:02:18,990 Hivyo mimi nina kwenda kusema, kusema kamba s, int n, nusu koloni. 2475 02:02:18,990 --> 02:02:22,010 Hivyo nimekuwa juu-engineered heck nje ya mpango huu. 2476 02:02:22,010 --> 02:02:23,760 >> Na hii haina lazima maana hii ni 2477 02:02:23,760 --> 02:02:26,343 nini unapaswa kufanya wakati wa kuandika hata rahisi ya mipango. 2478 02:02:26,343 --> 02:02:29,280 Kuchukua kitu hiyo ni wazi kweli rahisi, kwa kweli mfupi, 2479 02:02:29,280 --> 02:02:31,800 na re-kuutekeleza kutumia kanuni njia sana. 2480 02:02:31,800 --> 02:02:34,560 Lakini utasikia kweli kuona, na katika wakati kuangalia nyuma juu ya mifano hii, 2481 02:02:34,560 --> 02:02:38,610 na kutambua, oh, wale ni hatua sisi alichukua kwa kweli kujumlisha, 2482 02:02:38,610 --> 02:02:40,797 na sababu kitu nje, mpaka mwisho wa siku 2483 02:02:40,797 --> 02:02:42,380 kanuni yangu ni kweli pretty nafuu. 2484 02:02:42,380 --> 02:02:45,960 Kwa sababu kama nataka kikohozi tatu Mara kisha kuchafya mara tatu, 2485 02:02:45,960 --> 02:02:50,420 Mimi tu kwenda rerun hii, Mpango kufanya kikohozi, na kukimbia kikohozi. 2486 02:02:50,420 --> 02:02:53,620 Na mimi kuwa mafua tatu na machemuzi tatu. 2487 02:02:53,620 --> 02:02:55,990 >> Na hivyo hii ni ya msingi dhana, kama wewe, 2488 02:02:55,990 --> 02:03:00,110 kwa jinsi tupate kwenda juu kweli kutekeleza mpango huo. 2489 02:03:00,110 --> 02:03:03,220 Lakini hebu tu kuona ni nini sasa tumekuwa kufanya wote wa wakati huu, 2490 02:03:03,220 --> 02:03:06,940 na kile baadhi ya vipande mwisho ni nyuma amri hii rahisi. 2491 02:03:06,940 --> 02:03:09,620 Mwisho wa siku, tumekuwa wamekuwa wakitumia Clang kama compiler yetu. 2492 02:03:09,620 --> 02:03:11,494 Sisi tumekuwa kuandika chanzo kanuni, kuwabadili 2493 02:03:11,494 --> 02:03:12,820 kupitia Clang katika mashine kanuni. 2494 02:03:12,820 --> 02:03:15,540 >> Na tumekuwa kutumia Tengeneza tu kuwezesha keystrokes yetu ili 2495 02:03:15,540 --> 02:03:20,740 kwamba hatuna kukumbuka wale incantations ya Clang yenyewe. 2496 02:03:20,740 --> 02:03:22,640 Lakini ni nini Tengeneza kweli kufanya? 2497 02:03:22,640 --> 02:03:24,750 Na, kwa upande wake, ni nini Clang kweli kufanya? 2498 02:03:24,750 --> 02:03:28,790 >> Ni zamu nje, ingawa sisi wamerahisisha majadiliano ya leo kwa kusema, 2499 02:03:28,790 --> 02:03:33,090 wewe kuchukua chanzo kanuni, kuupitisha kama pembejeo kwa compiler, ambayo inatoa wewe 2500 02:03:33,090 --> 02:03:35,750 pato la mashine kanuni, zinageuka kuna ya 2501 02:03:35,750 --> 02:03:37,420 hatua chache tofauti ndani ya huko. 2502 02:03:37,420 --> 02:03:41,940 Na kuandaa hutokea kwa kuwa mwavuli mrefu kwa ajili ya kundi zima la hatua. 2503 02:03:41,940 --> 02:03:43,970 Lakini hebu tu tease nje hii kweli haraka. 2504 02:03:43,970 --> 02:03:48,070 >> Ni zinageuka kuwa tumekuwa kufanya mambo zaidi kila wakati mimi kukimbia mpango, 2505 02:03:48,070 --> 02:03:50,990 au kila wakati mimi kukusanya mpango leo. 2506 02:03:50,990 --> 02:03:55,020 Hivyo preprocessing inahusu Haya chochote katika C mpango, 2507 02:03:55,020 --> 02:03:58,720 kama tutaweza kuona tena na tena, kwamba huanza na alama hii hash, 2508 02:03:58,720 --> 02:04:03,320 au hashtag ishara hapa, maana yake ni ni preprocessor agizo. 2509 02:04:03,320 --> 02:04:07,330 Hiyo ina maana, katika kesi hii, hey kompyuta, kufanya kitu na faili hili 2510 02:04:07,330 --> 02:04:09,430 kabla ya kweli kukusanya kanuni yangu mwenyewe. 2511 02:04:09,430 --> 02:04:15,220 >> Katika kesi hiyo, hash ni pamoja na ni, kimsingi, njia C ya kusema, 2512 02:04:15,220 --> 02:04:19,325 hey kompyuta, kwenda kupata yaliyomo ya CS50.h na kuweka yao hapa. 2513 02:04:19,325 --> 02:04:22,170 Hey kompyuta, kwenda kupata yaliyomo ya kiwango io.h, 2514 02:04:22,170 --> 02:04:24,690 popote kwamba ni juu ya kuendesha gari kwa bidii, kuweka hapa. 2515 02:04:24,690 --> 02:04:27,390 Hivyo mambo hayo kutokea kwanza wakati wa preprocessing. 2516 02:04:27,390 --> 02:04:28,880 >> Na Clang gani haya yote kwa ajili yetu. 2517 02:04:28,880 --> 02:04:30,510 Na ni gani hivyo darn haraka, huna hata 2518 02:04:30,510 --> 02:04:32,000 kuona mambo manne yanatokea. 2519 02:04:32,000 --> 02:04:34,100 Lakini hiyo ni hatua ya kwanza kama hizo. 2520 02:04:34,100 --> 02:04:35,560 >> Ni nini hasa kinatokea ijayo? 2521 02:04:35,560 --> 02:04:38,320 Naam, rasmi ijayo hatua ni kuandaa. 2522 02:04:38,320 --> 02:04:40,385 Na zinageuka kuwa kuandaa mpango 2523 02:04:40,385 --> 02:04:44,060 kitaalam maana kwenda kutoka chanzo kanuni, mambo tumekuwa 2524 02:04:44,060 --> 02:04:47,890 wamekuwa kuandika leo, na kitu aitwaye mkutano kificho, kitu 2525 02:04:47,890 --> 02:04:49,260 kwamba inaonekana tofauti kidogo. 2526 02:04:49,260 --> 02:04:51,050 >> Na, kwa kweli, tunaweza kuona hii halisi haraka. 2527 02:04:51,050 --> 02:04:53,890 Hebu kweli kwenda katika IDE yangu. 2528 02:04:53,890 --> 02:04:58,050 Hebu kwenda mbele na kufungua hello.c, ambayo ni mpango wa kwanza sana ambayo sisi 2529 02:04:58,050 --> 02:04:59,120 alianza leo. 2530 02:04:59,120 --> 02:05:04,130 Na napenda kwenda mbele na kukimbia Clang a tofauti kidogo, Clang-s, hello.c, 2531 02:05:04,130 --> 02:05:07,720 ambayo ni kweli kwenda nipe hello.s mwingine file. 2532 02:05:07,720 --> 02:05:10,330 >> Na sisi pengine kamwe tena kuona aina hii ya kificho. 2533 02:05:10,330 --> 02:05:13,030 Kama wewe kuchukua ngazi ya chini mifumo darasa kama CS61, 2534 02:05:13,030 --> 02:05:14,920 utaona mengi zaidi wa aina hii ya kificho. 2535 02:05:14,920 --> 02:05:17,020 Lakini hii ni mkutano lugha. 2536 02:05:17,020 --> 02:05:22,050 Hii ni X86 mkutano lugha kwamba CPU kwamba ni msingi 2537 02:05:22,050 --> 02:05:24,460 CS50 IDE kweli anaelewa. 2538 02:05:24,460 --> 02:05:27,060 >> Na cryptic kama ilivyo kuangalia, ni kitu 2539 02:05:27,060 --> 02:05:29,180 kompyuta anaelewa pretty vizuri. 2540 02:05:29,180 --> 02:05:30,790 Sub q, hii ni Ondoa. 2541 02:05:30,790 --> 02:05:31,660 Kuna harakati. 2542 02:05:31,660 --> 02:05:35,730 >> Kuna ni wito wa kazi hapa, x Oring, harakati, kuongeza, pop, 2543 02:05:35,730 --> 02:05:36,430 kurudi. 2544 02:05:36,430 --> 02:05:38,850 Hivyo kuna baadhi sana maelekezo kiwango cha chini 2545 02:05:38,850 --> 02:05:41,280 kwamba CPUs kuelewa kwamba Mimi alluded mapema. 2546 02:05:41,280 --> 02:05:43,100 Hiyo ni nini Intel Ndani. 2547 02:05:43,100 --> 02:05:45,030 >> Kuna mifumo ya zeros na ndio kwamba 2548 02:05:45,030 --> 02:05:51,800 ramani kwa hawa arcanely worded, lakini kiasi fulani vizuri aitwaye, maelekezo, 2549 02:05:51,800 --> 02:05:52,780 hivyo kusema. 2550 02:05:52,780 --> 02:05:54,780 Hiyo ni nini kinatokea wakati wewe kukusanya code yako. 2551 02:05:54,780 --> 02:05:58,560 Unaweza kupata mkutano Lugha nje ya hayo, ambayo 2552 02:05:58,560 --> 02:06:04,680 ina maana Hatua ya tatu ni ya kukusanyika kwamba mkutano kificho katika, hatimaye, 2553 02:06:04,680 --> 02:06:09,080 mashine code-- zeros na ndio, si Nakala kwamba sisi tu kuona wakati iliyopita. 2554 02:06:09,080 --> 02:06:13,370 >> Hivyo kabla ya usindikaji gani kwamba kupata na badala, na mambo mengine kadhaa. 2555 02:06:13,370 --> 02:06:16,430 Kuandaa inachukua chanzo wako kanuni kutoka C, chanzo kanuni 2556 02:06:16,430 --> 02:06:18,980 kwamba sisi aliandika ya kanisa kificho kwamba sisi tu akapiga saa. 2557 02:06:18,980 --> 02:06:22,170 Kukusanyika inachukua kwamba mkutano kificho kwa zeroes na wale 2558 02:06:22,170 --> 02:06:24,680 kwamba CPU kweli mapenzi kuelewa mwishoni mwa siku. 2559 02:06:24,680 --> 02:06:27,630 Na kuunganisha ni hatua ya mwisho hiyo ikitokea kwa us-- tena, 2560 02:06:27,630 --> 02:06:29,830 hivyo kufunga hatuna hata notice-- kwamba anasema, 2561 02:06:29,830 --> 02:06:32,460 hey kompyuta, kuchukua yote ya zeros na ndio kwamba 2562 02:06:32,460 --> 02:06:36,750 ilitokana na kuandaa kanuni Daudi, na kazi yake kuu katika kesi hii. 2563 02:06:36,750 --> 02:06:39,160 >> Na hey kompyuta, kwenda kupata yote ya zeros na ndio 2564 02:06:39,160 --> 02:06:42,180 kwamba wafanyakazi CS50 aliandika ndani ya maktaba CS50. 2565 02:06:42,180 --> 02:06:43,440 Kuchanganya wale walio katika na Daudi. 2566 02:06:43,440 --> 02:06:46,648 Na hey kompyuta, kwenda kupata zeros zote na ndio kuwa mtu mwingine ameandika miaka 2567 02:06:46,648 --> 02:06:47,470 iliyopita kwa printf. 2568 02:06:47,470 --> 02:06:49,880 Na kuongeza wale katika jambo zima, hivyo kwamba tumekuwa 2569 02:06:49,880 --> 02:06:52,870 got zeros yangu na ndio, zeros CS50 wafanyakazi na ndio, 2570 02:06:52,870 --> 02:06:55,370 printf zeros na ndio, na kitu kingine chochote sisi ni kutumia. 2571 02:06:55,370 --> 02:07:00,410 >> Wao wote kupata pamoja pamoja katika moja programu inayoitwa, katika kesi hii, hello. 2572 02:07:00,410 --> 02:07:03,141 Hivyo tangu sasa, sisi tu kutumia neno kuandaa. 2573 02:07:03,141 --> 02:07:06,390 Na sisi kuchukua nafasi ya kwamba wakati tunasema, kukusanya mpango wako, maana yake, 2574 02:07:06,390 --> 02:07:08,849 hey kufanya kabla ya usindikaji, kukusanyika, na kuunganisha. 2575 02:07:08,849 --> 02:07:11,890 Lakini kuna kweli baadhi ya mambo Juicy kinaendelea huko chini ya Hood. 2576 02:07:11,890 --> 02:07:13,723 Na hasa kama wewe kupata curious baadhi ya wakati, 2577 02:07:13,723 --> 02:07:15,900 unaweza kuanza poking karibu katika ngazi hii ya chini. 2578 02:07:15,900 --> 02:07:19,660 Lakini kwa sasa, kutambua kwamba miongoni mwa takeaways kwa leo 2579 02:07:19,660 --> 02:07:23,420 ni tu kabisa mwanzo wa mchakato, 2580 02:07:23,420 --> 02:07:26,700 ya kupata starehe na kitu kama hujambo dunia. 2581 02:07:26,700 --> 02:07:29,575 Hakika, wengi wa nini tulivyofanya leo hakika si kuzama katika super haraka. 2582 02:07:29,575 --> 02:07:31,491 Na itachukua baadhi muda, na baadhi ya mazoezi. 2583 02:07:31,491 --> 02:07:33,864 Na ni tabia mbaya, utakuwa kutatua ya kutaka kugonga keyboard yako 2584 02:07:33,864 --> 02:07:34,780 au yell saa screen. 2585 02:07:34,780 --> 02:07:35,880 Na wote wa hiyo ni sawa. 2586 02:07:35,880 --> 02:07:38,320 Ingawa, pengine jaribu kufanya hivyo katika maktaba sana. 2587 02:07:38,320 --> 02:07:40,820 >> Na hatimaye, utasikia kuwa na uwezo ingawa, kuanza 2588 02:07:40,820 --> 02:07:44,580 kuona chati, katika kanuni nzuri kwamba umefanya imeandikwa na katika makosa 2589 02:07:44,580 --> 02:07:45,370 kwamba kiunda. 2590 02:07:45,370 --> 02:07:48,965 Na mengi kama mchakato wa kuwa na TF au CA ni kama, 2591 02:07:48,965 --> 02:07:51,590 itabidi kuanza kupata bora na bora katika kuona chati hizo, 2592 02:07:51,590 --> 02:07:53,774 na kutatua tu yako matatizo mwenyewe hatimaye. 2593 02:07:53,774 --> 02:07:56,940 Wakati huo huo, kutakuwa na mengi mmoja wetu kukopesha wewe msaada, na kupata wewe 2594 02:07:56,940 --> 02:07:57,481 kwa njia hii. 2595 02:07:57,481 --> 02:07:59,450 Na katika kuandika-ups kwa matatizo yote ya 2596 02:07:59,450 --> 02:08:01,366 je kuongozwa kwa njia ya amri zote za 2597 02:08:01,366 --> 02:08:05,330 kwamba mimi bila ya shaka tunajua kutoka mazoezi mengi kwa sasa, 2598 02:08:05,330 --> 02:08:07,380 lakini anaweza kuwa flown juu ya kichwa ya mtu kwa sasa. 2599 02:08:07,380 --> 02:08:08,580 Na kwamba ni kabisa faini. 2600 02:08:08,580 --> 02:08:11,230 >> Lakini, hatimaye, wewe kwenda kabla ya kuanza kuona chati kuibuka. 2601 02:08:11,230 --> 02:08:14,260 Na mara moja kupata zamani wote wa maelezo kijinga, kama mabano, 2602 02:08:14,260 --> 02:08:16,710 na curly braces, na nusu colons, na mambo, kusema ukweli, 2603 02:08:16,710 --> 02:08:19,360 kwamba si wakati wote kielimu ya kuvutia. 2604 02:08:19,360 --> 02:08:22,690 Na si lengo la kuchukua darasa wowote utangulizi. 2605 02:08:22,690 --> 02:08:24,410 Ni mawazo kwamba ni kwenda jambo. 2606 02:08:24,410 --> 02:08:26,659 >> Ni tanzi, na masharti, na kazi, 2607 02:08:26,659 --> 02:08:30,552 na kwa nguvu zaidi uchukuaji, na factoring wa kanuni, 2608 02:08:30,552 --> 02:08:33,510 na kubuni nzuri, na mema style, na hatimaye usahihi 2609 02:08:33,510 --> 02:08:37,330 ya kanuni yako, hiyo ni hatimaye kwenda suala hilo zaidi. 2610 02:08:37,330 --> 02:08:40,925 Hivyo wiki ijayo, sisi kuchukua hizi mawazo ambayo sisi kwanza kuona katika Scratch 2611 02:08:40,925 --> 02:08:42,800 na sasa kutafsiriwa C. Na tutaweza kuanza 2612 02:08:42,800 --> 02:08:45,740 kuanzisha ya kwanza ya kozi ya ulimwengu wa kweli nyanja. 2613 02:08:45,740 --> 02:08:50,140 >> Tutaweza kuzingatia ulimwengu wa usalama, na hasa zaidi cryptography, 2614 02:08:50,140 --> 02:08:51,980 sanaa ya scrambling habari. 2615 02:08:51,980 --> 02:08:54,000 Na kati ya kwanza matatizo wewe mwenyewe 2616 02:08:54,000 --> 02:08:56,840 kupata kuandika zaidi kucheza na baadhi ya syntax 2617 02:08:56,840 --> 02:08:59,880 na kutatua baadhi mantiki matatizo, hatimaye kabla ya muda mrefu, 2618 02:08:59,880 --> 02:09:03,960 ni kwa kweli kinyang'anyiro, au encrypt, na hatimaye decrypt habari. 2619 02:09:03,960 --> 02:09:06,470 Na kila kitu ambacho tumefanya leo, mapenzi haki ya chini 2620 02:09:06,470 --> 02:09:09,190 ngazi ya juu, ni kwenda tu kuruhusu sisi kuchukua moja, na moja, 2621 02:09:09,190 --> 02:09:13,550 na hatua moja zaidi juu kuelekea kuandika kanuni ya kuvutia zaidi bado. 2622 02:09:13,550 --> 02:09:15,050 >> Hivyo zaidi juu ya kwamba wiki ijayo. 2623 02:09:15,050 --> 02:09:17,834 2624 02:09:17,834 --> 02:09:18,762 >> [VIDEO avspelning] 2625 02:09:18,762 --> 02:09:19,690 2626 02:09:19,690 --> 02:09:22,006 >> -Nini Unaweza kuniambia kuhusu mara ya mwisho kumwona? 2627 02:09:22,006 --> 02:09:26,041 2628 02:09:26,041 --> 02:09:27,040 -Nini Naweza kusema, kweli? 2629 02:09:27,040 --> 02:09:30,500 2630 02:09:30,500 --> 02:09:35,340 I mean, ilikuwa ni kama nyingine yoyote kabla ya uzalishaji mazoezi, 2631 02:09:35,340 --> 02:09:40,510 isipokuwa kulikuwa na kitu alisema mwishoni sana kwamba kukwama pamoja nami. 2632 02:09:40,510 --> 02:09:44,810 2633 02:09:44,810 --> 02:09:46,640 >> -Hii Ilikuwa CS50. 2634 02:09:46,640 --> 02:09:49,440 2635 02:09:49,440 --> 02:09:52,190 >> -Kwamba Ni kukata kila mtu, kazi kubwa juu ya mazoezi. 2636 02:09:52,190 --> 02:09:53,070 >> -Kwamba Ya chakula cha mchana? 2637 02:09:53,070 --> 02:09:54,986 >> -Yeah, Wewe na mimi siwezi kunyakua sandwich katika kidogo. 2638 02:09:54,986 --> 02:09:58,380 Napenda tu kuwahoji na David kweli haraka. 2639 02:09:58,380 --> 02:09:59,160 Daudi? 2640 02:09:59,160 --> 02:10:01,260 Daudi? 2641 02:10:01,260 --> 02:10:03,110 >> [MWISHO avspelning]