1 00:00:07,420 --> 00:00:08,160 [Powered by Google Translate] DAVID J. Malan: Allt í lagi. 2 00:00:08,160 --> 00:00:11,170 Þetta er CS50, og það er í lok viku tvö. 3 00:00:11,170 --> 00:00:14,650 Ef þú býst við að vera svöng í kringum þennan tíma á morgun, ég veit að við erum að fara 4 00:00:14,650 --> 00:00:18,920 til boða sem lítill hópur á morgun, fimmtudaginn, 01:15. 5 00:00:18,920 --> 00:00:21,460 Það er þetta URL hér ef þú vilt að RSVP. 6 00:00:21,460 --> 00:00:25,270 Space er takmarkaður, svo vinsamlegast fyrirgefið ef eyðublaðið er fyllt upp með þeim tíma sem þú 7 00:00:25,270 --> 00:00:26,680 fylla þetta út. 8 00:00:26,680 --> 00:00:29,400 Annar URL þó að gæti verið áhugavert er þetta. 9 00:00:29,400 --> 00:00:32,409 >> Svo bara um tíma mánaðar, sem auðvitað er að fara að vera í boði 10 00:00:32,409 --> 00:00:36,090 allt í víðara samhengi gegnum EDX, um hvaða fólk á Netinu verður 11 00:00:36,090 --> 00:00:39,580 fær að fylgja með, taka þátt í námskeiðinu alveg virkur, í raun. 12 00:00:39,580 --> 00:00:43,070 Þeir ætla að nota CS50 Tæki og CS50 ræða og mest af 13 00:00:43,070 --> 00:00:45,840 ýmsar hugbúnaði sem við þegar höfum verið að nota þessa önn. 14 00:00:45,840 --> 00:00:49,030 Og eitt af þeim verkefnum sem við viljum að taka á sem tilraun á þessu ári 15 00:00:49,030 --> 00:00:53,120 er að sjá hversu mikið efni við getum þýtt annað talað og 16 00:00:53,120 --> 00:00:54,110 skrifað tungumál. 17 00:00:54,110 --> 00:00:58,000 Svo ef þú gætir hafa áhuga á að taka þátt í þessu verkefni, þar sem 18 00:00:58,000 --> 00:01:02,090 við munum veita ensku afrit og texti fyrir námskeiðið er 19 00:01:02,090 --> 00:01:05,190 fyrirlestrum og stuttbuxur og málstofur og hlutar og þess háttar - 20 00:01:05,190 --> 00:01:08,700 Ef þú talar reiprennandi eða skrifa reiprennandi nokkur önnur tungumál, við viljum 21 00:01:08,700 --> 00:01:12,240 elska að taka þátt þig í þessu verkefni, þar sem þú tekur á einn eða fleiri af 22 00:01:12,240 --> 00:01:15,340 myndbönd, þýða þær yfir á tungumál sem þú þekkir nokkuð vel. 23 00:01:15,340 --> 00:01:19,050 Til að gefa þér hugmynd um tengi, það er þetta vefur-undirstaða notandi tengi 24 00:01:19,050 --> 00:01:22,330 að við munum vera með sem vilja búa í raun UI svona. 25 00:01:22,330 --> 00:01:24,520 Þetta var mér að kenna sumir Halloween síðan. 26 00:01:24,520 --> 00:01:27,710 Og hægra megin í svörtu hliðina á þessum tíma frímerki, 27 00:01:27,710 --> 00:01:31,300 þú munt sjá ýmislegt sem kom út úr munni mínum um daginn. 28 00:01:31,300 --> 00:01:34,660 Og svo fyrir neðan það, munt þú vera fær um að þýða yfir einhverju öðru tungumáli. 29 00:01:34,660 --> 00:01:37,840 Einmitt það sem kortlagning er á milli, í þessu tilfelli, ensku 30 00:01:37,840 --> 00:01:38,660 og segja spænsku. 31 00:01:38,660 --> 00:01:40,480 Svo það er í raun mjög notandi-vingjarnlegur tól. 32 00:01:40,480 --> 00:01:43,690 Þú getur til baka og fljótur fram mjög auðvelt með flýtileiðum hljómborð. 33 00:01:43,690 --> 00:01:46,710 Svo ef þú vilt taka þátt í þessari tilraun og hafa orð þín 34 00:01:46,710 --> 00:01:50,730 séð og lesið af hugsanlega þúsundir af fólkinu þarna úti, þá skaltu ekki finnst 35 00:01:50,730 --> 00:01:51,960 frjálst að taka þátt. 36 00:01:51,960 --> 00:01:56,940 >> Nú eitt orð um kettlingur frá mánudagur, svo að við höfum sent óhóflega 37 00:01:56,940 --> 00:01:58,120 ógnvekjandi skilaboð. 38 00:01:58,120 --> 00:02:02,130 Gera grein fyrir því sem skrifstofutímarnir benda og sem hluta benda að 39 00:02:02,130 --> 00:02:05,110 hönnun þess er mjög mikið að hafa nemendur í samstarfi og 40 00:02:05,110 --> 00:02:09,250 að tala til að vinna í gegnum setur vandamál og vandamál saman. 41 00:02:09,250 --> 00:02:13,630 Og í raun kemur línan bara niður aftur, vinna þú á endanum 42 00:02:13,630 --> 00:02:16,420 skal leggja á að vera þitt eigið. 43 00:02:16,420 --> 00:02:19,080 Og svo það, alveg heiðarlega - á skrifstofutíma, það er alveg eðlilegt - 44 00:02:19,080 --> 00:02:21,560 Það er alveg að búast, jafnvel - að spjalla við nokkrar 45 00:02:21,560 --> 00:02:22,370 vinir við hliðina á þér. 46 00:02:22,370 --> 00:02:25,240 Ef hann eða hún er í erfiðleikum með einhverju efni, og þú ert eins og, ó, og láta 47 00:02:25,240 --> 00:02:27,750 mér að gefa þér innsýn í einhverju línu af kóða sem ég skrifaði. 48 00:02:27,750 --> 00:02:28,290 Það er allt í lagi. 49 00:02:28,290 --> 00:02:28,700 Það gerist. 50 00:02:28,700 --> 00:02:31,580 Og það er mjög mikið stuðla, held ég, með aðferð við að læra. 51 00:02:31,580 --> 00:02:35,270 Ef lína, aftur, fær yfir er þegar höfuð er tegund af halla á 52 00:02:35,270 --> 00:02:38,800 hér allt of margar sekúndur eða mínútur sem raunverulega hafa bara 53 00:02:38,800 --> 00:02:41,250 verið Unblocking tækifæri fyrir vini þínum. 54 00:02:41,250 --> 00:02:43,870 Og vissulega, þegar hlutirnir fá skipst með tölvupósti og Dropbox og 55 00:02:43,870 --> 00:02:45,350 þess háttar, það líka er lína. 56 00:02:45,350 --> 00:02:48,940 Svo fyrir alla muni, að líða vel og finnst hvattir til að spjalla við vini 57 00:02:48,940 --> 00:02:51,270 og bekkjarfélagar um psets og fleira. 58 00:02:51,270 --> 00:02:54,680 Og bara grein fyrir því að það sem þú sendir að lokum að í raun vera 59 00:02:54,680 --> 00:02:57,780 vara sköpun og ekki einhver annar. 60 00:02:57,780 --> 00:03:01,010 >> Svo í sama anda kelinn verur, gætir þú 61 00:03:01,010 --> 00:03:02,820 vita af þessum gaur hérna. 62 00:03:02,820 --> 00:03:06,180 Svo er þetta horrifically cheesy bíómynd frá árum. 63 00:03:06,180 --> 00:03:08,680 Einhver séð hér Spaceballs? 64 00:03:08,680 --> 00:03:09,120 Allt í lagi. 65 00:03:09,120 --> 00:03:10,220 Svo góð tala hér. 66 00:03:10,220 --> 00:03:13,840 Svo er þetta undursamlega fræðileg leið okkar að kynna í dag á endanum 67 00:03:13,840 --> 00:03:15,130 hugmyndin um dulmál. 68 00:03:15,130 --> 00:03:19,010 Og svo einn af ríki ákveðin vandamál fyrir pset 2, sem mun koma 69 00:03:19,010 --> 00:03:22,770 út seint annað kvöld, er að kafa í heim dulmál, sem 70 00:03:22,770 --> 00:03:26,380 er list dulkóða eða spæna upplýsingar. 71 00:03:26,380 --> 00:03:30,160 Og þetta tengist að lokum til the veröld af öryggi. 72 00:03:30,160 --> 00:03:34,440 >> Nú öryggi fyrir flest okkur kemur í formi nokkuð mundane leiðum. 73 00:03:34,440 --> 00:03:36,920 Allar okkar hafa notendanöfn og lykilorð. 74 00:03:36,920 --> 00:03:41,350 Og allir með mjög slæma notendanöfn og lykilorð, mest líklega. 75 00:03:41,350 --> 00:03:45,250 Ef lykilorðið þitt er það sama á mörgum vefsíðum, það er líklega ekki 76 00:03:45,250 --> 00:03:47,920 besta hugmynd sem við munum ræða í átt í lok hverrar annar. 77 00:03:47,920 --> 00:03:51,680 Ef lykilorðið þitt er skrifað á Sticky huga - enginn brandari - á þinn 78 00:03:51,680 --> 00:03:55,130 fylgjast með, sem líka er ekki endilega besta hönnun en alveg algengt 79 00:03:55,130 --> 00:03:56,140 fyrirbæri. 80 00:03:56,140 --> 00:04:00,420 Og ef þú ert ekki að nota dulmál til að dulkóða lykilorð, eru þeir 81 00:04:00,420 --> 00:04:01,610 sérstaklega viðkvæm. 82 00:04:01,610 --> 00:04:04,670 Svo ef þú heldur að þú ætlar að vera frábær snjall með því að hafa falinn Word 83 00:04:04,670 --> 00:04:07,740 skjal einhvers staðar á harða disknum þínum sem hefur allar lykilorð þitt en 84 00:04:07,740 --> 00:04:10,550 það er í möppu sem enginn er að fara að líta á, að of er ekki mjög 85 00:04:10,550 --> 00:04:11,540 örugg kerfi. 86 00:04:11,540 --> 00:04:15,100 Og svo hvað pset 2 munu kynna er þetta list dulmál og 87 00:04:15,100 --> 00:04:18,300 spæna upplýsingar svo sem hlutur eins og lykilorð eru 88 00:04:18,300 --> 00:04:19,500 öll öruggari. 89 00:04:19,500 --> 00:04:24,500 Svo sem til að hvetja þessa mjög alvöru-heiminum vandamál með mjög ekki raunverulegur-veröld 90 00:04:24,500 --> 00:04:28,740 atburðarás, láttu mig kynna þig fyrir einn af uppáhalds bréfaklemma okkar hérna frá þessu 91 00:04:28,740 --> 00:04:29,895 bíómynd, Spaceballs. 92 00:04:29,895 --> 00:04:30,565 >> [Vídeó spilun] 93 00:04:30,565 --> 00:04:32,995 -Hjálm, fiend þú, hvað er að gerast? 94 00:04:32,995 --> 00:04:34,730 Hvað ert þú að gera á dóttur mína? 95 00:04:34,730 --> 00:04:38,960 -Leyfa mér að kynna frábæra unga plast skurðlæknir, Dr Philip 96 00:04:38,960 --> 00:04:43,290 Schlotkin, mesta nef starf maður í öllu 97 00:04:43,290 --> 00:04:45,526 alheimurinn og Beverly Hills. 98 00:04:45,526 --> 00:04:46,450 -Your hátign. 99 00:04:46,450 --> 00:04:47,380 -Nef starf? 100 00:04:47,380 --> 00:04:48,035 Ég skil ekki. 101 00:04:48,035 --> 00:04:49,480 Hún hefur þegar haft nefið starf. 102 00:04:49,480 --> 00:04:51,490 Það var sætur 16 staðar. 103 00:04:51,490 --> 00:04:53,090 -Nei, það er ekki það sem þú heldur. 104 00:04:53,090 --> 00:04:55,150 Það er miklu, miklu verra. 105 00:04:55,150 --> 00:04:59,860 Ef þú gefur mér ekki að blanda við loft skjöld, Dr Schlotkin mun 106 00:04:59,860 --> 00:05:04,135 gefa dóttur þína aftur gamla nefið hennar. 107 00:05:04,135 --> 00:05:05,385 -Nei! 108 00:05:08,202 --> 00:05:10,186 Hvar fékkstu það? 109 00:05:10,186 --> 00:05:11,178 -Allt í lagi. 110 00:05:11,178 --> 00:05:11,674 Ég segi. 111 00:05:11,674 --> 00:05:12,666 Ég segi. 112 00:05:12,666 --> 00:05:14,154 -Nei, pabbi, nei. 113 00:05:14,154 --> 00:05:15,150 Þú má ekki. 114 00:05:15,150 --> 00:05:16,460 -Ertu í lagi, elskan mín. 115 00:05:16,460 --> 00:05:18,450 Ég sakna nýja nefið. 116 00:05:18,450 --> 00:05:21,550 En ég mun ekki segja þeim samsetningu sama hvað. 117 00:05:21,550 --> 00:05:23,100 -Gott og vel. 118 00:05:23,100 --> 00:05:25,510 Dr Schlotkin, gera versta þinn. 119 00:05:25,510 --> 00:05:26,760 -My ánægja. 120 00:05:30,560 --> 00:05:31,180 -Nei! 121 00:05:31,180 --> 00:05:33,450 Bíddu, bíddu. 122 00:05:33,450 --> 00:05:34,770 Ég segi. 123 00:05:34,770 --> 00:05:36,400 Ég segi. 124 00:05:36,400 --> 00:05:38,630 -Ég vissi að það myndi virka. 125 00:05:38,630 --> 00:05:42,040 Allt í lagi, gefa mér. 126 00:05:42,040 --> 00:05:46,890 -The samsetning er ein. 127 00:05:46,890 --> 00:05:47,290 -Einn. 128 00:05:47,290 --> 00:05:48,183 -Einn. 129 00:05:48,183 --> 00:05:48,950 -Two. 130 00:05:48,950 --> 00:05:49,370 -Two. 131 00:05:49,370 --> 00:05:50,450 -Two. 132 00:05:50,450 --> 00:05:50,715 -Three 133 00:05:50,715 --> 00:05:51,380 -Three. 134 00:05:51,380 --> 00:05:52,390 -Three. 135 00:05:52,390 --> 00:05:53,200 -Four. 136 00:05:53,200 --> 00:05:53,720 -Four. 137 00:05:53,720 --> 00:05:55,830 -Four. 138 00:05:55,830 --> 00:05:56,580 -Fimm 139 00:05:56,580 --> 00:05:57,120 -Fimm. 140 00:05:57,120 --> 00:05:58,560 -Fimm. 141 00:05:58,560 --> 00:06:03,770 -Þannig að samsetning er einn, tveir, þrír, fjórir, fimm. 142 00:06:03,770 --> 00:06:06,745 Það er stupidest samsetning sem ég hef nokkurn tíma heyrt í lífi mínu. 143 00:06:06,745 --> 00:06:09,290 Það er góður af hlutur hálfviti hefði á farangri hans. 144 00:06:09,290 --> 00:06:11,540 -Þakka þér, yðar hátign. 145 00:06:11,540 --> 00:06:12,940 -Hvað gerðir þú? 146 00:06:12,940 --> 00:06:14,230 -Ég slökkt á vegg. 147 00:06:14,230 --> 00:06:14,630 -Nei, það hafið þér ekki. 148 00:06:14,630 --> 00:06:15,430 Þú slökkt alla myndina. 149 00:06:15,430 --> 00:06:16,722 -Ég þarf að hafa ýtt á rangan hnapp. 150 00:06:16,722 --> 00:06:18,078 -Jæja, setja það aftur á. 151 00:06:18,078 --> 00:06:18,805 Settu myndina aftur. 152 00:06:18,805 --> 00:06:19,080 -Já, herra. 153 00:06:19,080 --> 00:06:19,270 Já, herra. 154 00:06:19,270 --> 00:06:19,830 -Við skulum fara, Erna. 155 00:06:19,830 --> 00:06:20,270 Komdu, Gretchen. 156 00:06:20,270 --> 00:06:22,850 Auðvitað þú veist ég samt að senda þér reikning fyrir þessu. 157 00:06:27,400 --> 00:06:28,325 -Jæja, gerði það að vinna? 158 00:06:28,325 --> 00:06:29,550 Hvar er hliðið? 159 00:06:29,550 --> 00:06:29,910 -Það gekk, herra. 160 00:06:29,910 --> 00:06:30,770 Við höfum samsetningu. 161 00:06:30,770 --> 00:06:31,390 -Great. 162 00:06:31,390 --> 00:06:35,630 Nú getum við tekið hvern anda fersku lofti frá plánetunni Druidia. 163 00:06:35,630 --> 00:06:36,550 Hver er samsetning? 164 00:06:36,550 --> 00:06:38,805 -Einn, tveir, þrír, fjórir, fimm. 165 00:06:38,805 --> 00:06:40,610 -Einn, tveir, þrír, fjórir, fimm? 166 00:06:40,610 --> 00:06:41,070 -Já. 167 00:06:41,070 --> 00:06:41,760 -Það er ótrúlegt. 168 00:06:41,760 --> 00:06:45,200 Ég hef fengið sömu samsetningu á töskunni minni. 169 00:06:45,200 --> 00:06:47,800 Undirbúa Spaceball 1 fyrir næsta brottför. 170 00:06:47,800 --> 00:06:48,536 -Já, herra. 171 00:06:48,536 --> 00:06:52,350 -Og að breyta samsetningu á farangri mínum. 172 00:06:52,350 --> 00:06:53,250 -Ow! 173 00:06:53,250 --> 00:06:55,020 [END vídeó spilun] 174 00:06:55,020 --> 00:06:57,470 >> DAVID J. Malan: Ótrúleg bíómynd sem þú ættir nú að allir sjá. 175 00:07:00,600 --> 00:07:06,540 Þannig er samhengi hér að með óörugg gögn kemur tækifæri til að 176 00:07:06,540 --> 00:07:07,790 dulkóða það og Scramble það. 177 00:07:07,790 --> 00:07:11,060 Og svo þetta, til dæmis, er dæmi um dulkóðuðu skilaboð. 178 00:07:11,060 --> 00:07:12,980 Þetta segir í raun eitthvað í ensku. 179 00:07:12,980 --> 00:07:14,750 En það er greinilega ekki að fullu augljós. 180 00:07:14,750 --> 00:07:17,360 Og við munum koma í hring í dag til að stríða í sundur hvað þetta leyndarmál 181 00:07:17,360 --> 00:07:18,380 skilaboðin hér. 182 00:07:18,380 --> 00:07:22,370 En í hinum raunverulega heimi tölvur, gera það ekki einu sinni líta út eins og þeir gætu 183 00:07:22,370 --> 00:07:23,440 vera ensku setningar. 184 00:07:23,440 --> 00:07:27,500 Til dæmis, þetta er það sem þú getur fundið á stöðluðu Linux eða Mac eða 185 00:07:27,500 --> 00:07:32,080 Unix tölva í skrá sem var einu sinni kallað á lykilorð skrá. 186 00:07:32,080 --> 00:07:34,170 Nú á dögum, það er verið flutt til annarra staða. 187 00:07:34,170 --> 00:07:38,660 En ef þú horfir á réttum stað á kerfinu, verður þú ekki eini 188 00:07:38,660 --> 00:07:41,430 notendanafn eða að öðru fólki á kerfinu, en þú munt sjá að 189 00:07:41,430 --> 00:07:43,410 dulkóðuð útgáfa af aðgangsorði sínu. 190 00:07:43,410 --> 00:07:47,800 Reyndar er orðið Crypt þar bendir til þess að eftirfarandi efni er dulkóðuð. 191 00:07:47,800 --> 00:07:52,030 Og þetta röð af því er virðist af handahófi bókstafi og stafi og númer og 192 00:07:52,030 --> 00:07:56,370 svo framvegis hægt að decrypted aðeins almennt vita nokkur leyndarmál - 193 00:07:56,370 --> 00:07:58,600 leyndarmál orð, leyndarmál númer. 194 00:07:58,600 --> 00:08:02,760 Og svo sannarlega er list dulmál endanum snýst allt um að treysta á sumum 195 00:08:02,760 --> 00:08:05,700 tegund og vita eitthvað sem einhver annar gerir það ekki. 196 00:08:05,700 --> 00:08:10,010 Við munum kanna þetta í aðeins meiri smáatriðum í dag og í pset að koma. 197 00:08:10,010 --> 00:08:11,860 >> Og nú orð á staðið / ekki staðið. 198 00:08:11,860 --> 00:08:15,250 Svo sérstaklega, hafa eins og sumir af þú kafa inn pset 1, tæki og 199 00:08:15,250 --> 00:08:18,390 mjög nýr heimur fyrir þér, ljóst að óánægju og 200 00:08:18,390 --> 00:08:21,340 rugl og aðeins tæknileg vandamál eru að vænta. 201 00:08:21,340 --> 00:08:24,410 Sérstaklega með fyrsta pset, þar er bara svo mikið nýtt, bara að 202 00:08:24,410 --> 00:08:28,830 þekki LS og CD og öllum þessum Bogagöng skipanir í nýju umhverfi. 203 00:08:28,830 --> 00:08:32,679 Og það er aðskilið frá raunverulegum efni og forritun sig. 204 00:08:32,679 --> 00:08:35,960 Svo grein líka, að það eru vissulega skrifstofutímarnir sem til sem 205 00:08:35,960 --> 00:08:36,770 stuðningur uppbygging. 206 00:08:36,770 --> 00:08:38,620 Deildir byrja þetta kemur sunnudagur. 207 00:08:38,620 --> 00:08:41,990 En mest um vert, ef þú ert að tilfinning bara að þetta er ekki 208 00:08:41,990 --> 00:08:44,420 heimur fyrir þér grein fyrir því að það er í raun er bara að taka tíma. 209 00:08:44,420 --> 00:08:47,520 Og ef ekki væri fyrir þetta tækifæri árum fyrir mig að taka flokk 210 00:08:47,520 --> 00:08:50,840 fullnægjandi / ófullnægjandi, heiðarleika, aldrei hefði ég jafnvel fæti í skólastofunni. 211 00:08:50,840 --> 00:08:53,520 Og þú getur breytt þessu fram, segjum fimmta Mánudagur námskeiðinu. 212 00:08:53,520 --> 00:08:57,110 Svo ef þú ert á brún nú átta sig á því frekar en höfuð í einhverju öðru 213 00:08:57,110 --> 00:09:01,000 vatn með öllu, telja vissulega bara að breytast til að fara framhjá / mistakast. 214 00:09:01,000 --> 00:09:03,750 Aftur, það er í raun ekki þessi menning hér á Harvard um að taka hlutina 215 00:09:03,750 --> 00:09:08,080 framhjá / mistakast þar sem allir virkilega vill ná eða overachieve. 216 00:09:08,080 --> 00:09:11,470 En hreinskilnislega, þetta er a dásamlegur leið til að reyna eitthvað sem gæti ekki 217 00:09:11,470 --> 00:09:13,110 að þekkja þig. 218 00:09:13,110 --> 00:09:17,090 Og þú munt á endanum að gera í flestum tilfellum alveg fínn, kannski 219 00:09:17,090 --> 00:09:18,040 mikið að koma á óvart þinn. 220 00:09:18,040 --> 00:09:20,850 Og í fleiri steypu hugtök, það sem ég held framhjá / mistakast yfirleitt gerir, 221 00:09:20,850 --> 00:09:23,350 sérstaklega þar sem þú gætir hafa upplifað með pset 0, ef þú hefur sett 222 00:09:23,350 --> 00:09:27,200 í 10 klukkustundir, 15 klukkustundir, 25 klukkustundir í einhvers pset - og þú ert bara að lemja 223 00:09:27,200 --> 00:09:28,180 höfðinu við vegginn, 224 00:09:28,180 --> 00:09:29,850 og það er að fá frábær seint á kvöldin, 225 00:09:29,850 --> 00:09:31,880 en þú hefur tekið pset eins 90% af leiðinni, 226 00:09:31,880 --> 00:09:33,780 þú veist að þú bara getur ekki fundið út eitt - 227 00:09:33,780 --> 00:09:36,830 fara / ekki raunverulega tekur brún burt af bekknum eins og þetta, þar sem þú getur raða 228 00:09:36,830 --> 00:09:39,150 af hamingjusamlega segja allt í lagi, ég veit að það er ekki fullkomið. 229 00:09:39,150 --> 00:09:40,470 En ég vann rassinn minn burt á þessu. 230 00:09:40,470 --> 00:09:42,410 Ég er nokkuð ánægð með þar sem það endaði. 231 00:09:42,410 --> 00:09:44,780 Og það verður að mæta þeim væntingum til staðið / ekki staðið. 232 00:09:44,780 --> 00:09:46,850 Svo halda það í huga. 233 00:09:46,850 --> 00:09:47,140 >> Allt í lagi. 234 00:09:47,140 --> 00:09:50,980 Svo þeir sem hafa barist við að nota Harvard University Wi-Fi vita 235 00:09:50,980 --> 00:09:54,780 að það er CS50 SSID, Wi-Fi tengingu fljótandi um að þú 236 00:09:54,780 --> 00:09:56,520 gæti hafa betri heppni fyrir. 237 00:09:56,520 --> 00:09:59,430 Það er lítið kaldhæðnislegt að lykilorð fyrir þetta - ef þú vildi eins og til að reyna 238 00:09:59,430 --> 00:10:03,080 tengjast þessu fyrir betri hraða og láta okkur vita ef það er ekki til betri - 239 00:10:03,080 --> 00:10:09,240 er einn, tveir, þrír, fjórir, fimm, alla leið upp í átta vegna átta er 240 00:10:09,240 --> 00:10:10,270 öruggari en fimm. 241 00:10:10,270 --> 00:10:15,520 Svo ef þú þarft að Wi-Fi lykilorð tengjast CS50 þráðlaust hér. 242 00:10:15,520 --> 00:10:16,950 Einn, tveir, þrír, fjórir, fimm, sex, sjö, átta. 243 00:10:16,950 --> 00:10:20,440 Og eftir á CS50 Ræðið ef þú ert enn með hléum málefni tengingu, 244 00:10:20,440 --> 00:10:24,880 og við munum láta völd hægt að vita fyrir þetta rými. 245 00:10:24,880 --> 00:10:25,180 >> Allt í lagi. 246 00:10:25,180 --> 00:10:30,350 Svo fljótur beitu, sérstaklega fyrir þá sem eru aðdáandi strákar eða stelpur 247 00:10:30,350 --> 00:10:31,900 af öllu Apple. 248 00:10:31,900 --> 00:10:37,566 Það sem ég gróf upp úr fyrir nokkrum árum var þessi skrá hér ilock.c, bara til að 249 00:10:37,566 --> 00:10:40,930 konar gera meira steypu og flóknari sumir af the fleiri undirstöðu C 250 00:10:40,930 --> 00:10:42,350 forrit sem við höfum verið að skrifa. 251 00:10:42,350 --> 00:10:44,360 Þannig að ég opnaði þessa skrá, ilock.c. 252 00:10:44,360 --> 00:10:46,830 Það er í boði á fyrirlestra síðunni í dag. 253 00:10:46,830 --> 00:10:49,470 Á vinstri hönd hlið, þú sjá a langur listi af aðgerðum. 254 00:10:49,470 --> 00:10:51,860 Svo maður sem skrifaði þetta skrifaði upp mikið af störfum, 255 00:10:51,860 --> 00:10:53,290 meira en bara helstu. 256 00:10:53,290 --> 00:10:55,490 Hann notaði heild búnt af bókasöfnum hér. 257 00:10:55,490 --> 00:11:00,450 Og ef við byrjum að fletta, hvað þetta raunverulega er er mjög 258 00:11:00,450 --> 00:11:04,670 fyrst, ég trúi, sprunga í upprunalegu iPhone. 259 00:11:04,670 --> 00:11:08,000 Þegar þú vildir Flótti upprunalega iPhone, sem þýðir untether 260 00:11:08,000 --> 00:11:11,800 það frá AT & T og í raun setja sérstakan hugbúnað á það og gera hlutina 261 00:11:11,800 --> 00:11:13,510 að Apple vildi ekki fólk að gera - 262 00:11:13,510 --> 00:11:17,020 Jæja, einhver tók tíma til að reikna út nákvæmlega hvernig þeir gætu hetjudáð 263 00:11:17,020 --> 00:11:20,880 hugbúnaður galla, mistök, galla, í hugbúnaði Apple. 264 00:11:20,880 --> 00:11:22,650 Og þannig fæddist ilock.c. 265 00:11:22,650 --> 00:11:26,670 Að ef þú saman það á tölvu og setja í embætti það á iPhone sem 266 00:11:26,670 --> 00:11:29,810 var tengd við tölvuna í gegnum, segja, USB snúru, þetta myndi gefa þér 267 00:11:29,810 --> 00:11:33,360 stjórnsýslu eða rót forréttindi á iPhone og leyfa þér að gera nokkurn veginn 268 00:11:33,360 --> 00:11:34,170 hvað sem þú vilt. 269 00:11:34,170 --> 00:11:36,740 >> Og það hefur verið þessi heillandi köttur og mús leikur milli Apple og 270 00:11:36,740 --> 00:11:39,920 restin af heiminum, einkum eins og þeir, eins og mörg fyrirtæki, að reyna að læsa 271 00:11:39,920 --> 00:11:43,220 efni þeirra niður þannig að þú getur aðeins gert við það það sem þeir ætla. 272 00:11:43,220 --> 00:11:46,620 En þökk sé fólki eins og þetta og skilningur þeirra á lágu stigi 273 00:11:46,620 --> 00:11:50,580 upplýsingar og í þessu tilfelli, C forritun og fullt af kunnuglega býr 274 00:11:50,580 --> 00:11:54,630 að við höfum byrjað að spila með, þú ert fær um að í raun nýta 275 00:11:54,630 --> 00:11:59,050 vélbúnaður á þann hátt sem þú sérð vel á sig kominn og ekki endilega sumir lögaðila. 276 00:11:59,050 --> 00:12:01,360 Svo til dæmis, ég hef ekki hugmynd um hvað allt þetta er að gera. 277 00:12:01,360 --> 00:12:03,220 En GetVersion hljómar frekar einfalt. 278 00:12:03,220 --> 00:12:05,480 Og það lítur út eins og þetta sé aðgerð sem þessi aðili skrifaði. 279 00:12:05,480 --> 00:12:09,240 Taka einhverja heiltölu sem rök, ekki aftur neitt, en 280 00:12:09,240 --> 00:12:13,080 virðist lykkju með for lykkju hér og ef ástand, ef skilyrði, 281 00:12:13,080 --> 00:12:15,620 brot, og einhvern veginn tengist útgáfu númer. 282 00:12:15,620 --> 00:12:16,700 Ef við skruna niður - 283 00:12:16,700 --> 00:12:19,570 jafnvel þó að mikið af þessum leitarorðum eru að fara að vera ný, og það er 284 00:12:19,570 --> 00:12:22,590 allt fullt af aðgerðum á hér höfum við aldrei séð og gæti aldrei sjá yfir 285 00:12:22,590 --> 00:12:23,830 meðan á önn - 286 00:12:23,830 --> 00:12:27,150 í lok dagsins, segir það sömu reglur og rökfræði sem við höfum verið 287 00:12:27,150 --> 00:12:28,760 spila með svona langt. 288 00:12:28,760 --> 00:12:34,220 Svo er þetta allt of gamall til að sprunga iPhone 3s þínar eða 4S eða fljótlega 5s, þessa dagana, 289 00:12:34,220 --> 00:12:37,320 en vita að það er allt mjög mikið úr þessum heimi sem við höfum 290 00:12:37,320 --> 00:12:38,430 kafa í. 291 00:12:38,430 --> 00:12:41,900 >> Svo skulum taka a líta á a lítill fleiri einfalt dæmi. 292 00:12:41,900 --> 00:12:46,100 This einn, bara til að fá hlýja upp með sumir setningafræði og einnig nokkur önnur gögn 293 00:12:46,100 --> 00:12:49,240 tegund sem við höfum talað um, en hef í raun ekki séð í C. Þannig að þetta er 294 00:12:49,240 --> 00:12:51,680 skrá sem kallast positive1.c. 295 00:12:51,680 --> 00:12:55,120 Og á athugasemdum efst, þetta krefst bara að notandi veita 296 00:12:55,120 --> 00:12:55,960 jákvæð tala. 297 00:12:55,960 --> 00:12:59,530 Svo er það dæmi um do-while lykkju, sem er gott fyrir notanda gagnvirk 298 00:12:59,530 --> 00:13:01,980 forrit þar sem þú þarft að segja notendur til að gera eitthvað. 299 00:13:01,980 --> 00:13:05,190 Og ef þeir vinna ekki, æpa þú á þá eða hafna inntak þeirra. 300 00:13:05,190 --> 00:13:11,610 Tilfelli í benda, ég er að fara að gera línur 19 í 24 svo lengi sem notandinn hefur 301 00:13:11,610 --> 00:13:14,310 ekki gefið mér jákvæða tölu. 302 00:13:14,310 --> 00:13:20,400 Nú þetta nánar hér á línu 18, af hverju gerði ég lýsa n yfir þetta allt 303 00:13:20,400 --> 00:13:24,490 lykkja reisa öfugt að við hliðina á línu 22 þar sem ég 304 00:13:24,490 --> 00:13:26,880 raunverulega aðgát til að fá n? 305 00:13:26,880 --> 00:13:27,330 Já? 306 00:13:27,330 --> 00:13:27,780 [Inaudible] 307 00:13:27,780 --> 00:13:29,040 >> DAVID J. Malan: Já, þannig að þetta mál um gildissvið. 308 00:13:29,040 --> 00:13:30,850 Og í orð leikmaður er, hvað þýðir svigrúm vísa til? 309 00:13:34,690 --> 00:13:36,610 Já? 310 00:13:36,610 --> 00:13:37,860 [Inaudible] 311 00:13:40,040 --> 00:13:41,105 DAVID J. Malan: Getur þú talað svolítið hávær? 312 00:13:41,105 --> 00:13:43,450 Hátalarar 1: Þar sem þú getur fengið aðgang að tiltekinni breytu. 313 00:13:43,450 --> 00:13:45,170 DAVID J. Malan: Perfect. 314 00:13:45,170 --> 00:13:47,360 Hvar er hægt að fá aðgang að tiltekna breytu. 315 00:13:47,360 --> 00:13:50,400 Og almennt er þumalputtaregla svona langt hefur verið að umfang sumra 316 00:13:50,400 --> 00:13:55,860 breyta er skilgreind með nýjustu hrokkið axlabönd sem þú hefur séð. 317 00:13:55,860 --> 00:14:02,010 Og svo í þessu tilfelli, ef ég gerði mistök að lýsa N á línu 22, 318 00:14:02,010 --> 00:14:03,010 þessi lína myndi vinna. 319 00:14:03,010 --> 00:14:10,990 Ég myndi fá int, og ég myndi setja það inn í þá breytu n í línu 22. 320 00:14:10,990 --> 00:14:16,900 En hvaða línu af kóða myndi nú hafa ekki hugmynd um hvað ég er að tala um? 321 00:14:16,900 --> 00:14:22,650 Svo 25, og það reynist 24, eins og heilbrigður, því að í þessu tilfelli, það fellur utan 322 00:14:22,650 --> 00:14:23,610 á hrokkið axlabönd. 323 00:14:23,610 --> 00:14:27,280 Svo bara smá óþægindi en mjög auðvelt að leysa með því einfaldlega að lýsa 324 00:14:27,280 --> 00:14:30,140 breytilega utan fallsins sig. 325 00:14:30,140 --> 00:14:32,600 >> Nú munum við sjá seinna í dag, er hægt að fara einu skrefi lengra. 326 00:14:32,600 --> 00:14:34,860 Og þú gætir jafnvel fá smá latur - 327 00:14:34,860 --> 00:14:37,320 og þetta er ekki til að mæla með, almennt - 328 00:14:37,320 --> 00:14:42,260 en þú gætir jafnvel fá latur og setja breytu heimsvísu, svo að segja, ekki 329 00:14:42,260 --> 00:14:46,670 inni í aðgerð, ekki inni í lykkju, en í skrá sig, fyrir utan 330 00:14:46,670 --> 00:14:49,600 á allar aðgerðir sem þú hefur skrifað, eins og ég gerði hér á línu 15. 331 00:14:49,600 --> 00:14:51,160 En þetta er yfirleitt hleypa brúnum við. 332 00:14:51,160 --> 00:14:55,680 En átta sig á þessu er lausn stundum til annarra vandamála, eins og við munum 333 00:14:55,680 --> 00:14:56,620 loksins sjá. 334 00:14:56,620 --> 00:14:58,130 Svo að nú munum við skilja það svona. 335 00:14:58,130 --> 00:15:01,030 En við skulum sjá hvort við getum umrita þetta bara til að byrja að tjá okkur með 336 00:15:01,030 --> 00:15:01,990 lítið öðruvísi. 337 00:15:01,990 --> 00:15:05,330 >> Svo þetta forrit, bara að vera skýr, er positive1. 338 00:15:05,330 --> 00:15:11,810 Leyfðu mér að fara á undan hér og Telnet minn gera positive1, Enter. 339 00:15:11,810 --> 00:15:12,740 Safnar, allt í lagi. 340 00:15:12,740 --> 00:15:14,910 Ég ætla að keyra positive1, Enter. 341 00:15:14,910 --> 00:15:16,820 Ég krefst að þú gefur mér jákvæð heiltala. 342 00:15:16,820 --> 00:15:18,260 Ég segi -1. 343 00:15:18,260 --> 00:15:18,910 Það virkaði ekki. 344 00:15:18,910 --> 00:15:22,150 0, 99, sem virðist virka. 345 00:15:22,150 --> 00:15:23,570 Kannski ekki mest krefjandi próf. 346 00:15:23,570 --> 00:15:26,480 En að minnsta kosti það er gott geðheilbrigði athuga að við erum á réttri leið. 347 00:15:26,480 --> 00:15:29,240 Svo nú langar mig að fara á undan og opna útgáfu tvö af þessu. 348 00:15:29,240 --> 00:15:32,500 Og það er öðruvísi þegar? 349 00:15:32,500 --> 00:15:35,140 Það útfærir sama. 350 00:15:35,140 --> 00:15:40,660 En hvað er stökk út eins og greinilega mismunandi að þessu sinni? 351 00:15:40,660 --> 00:15:42,560 Já, þannig að þetta bool í grænu. 352 00:15:42,560 --> 00:15:45,980 Gedit er lögð áhersla á grænt þetta leitarorð þekktur sem bool, 353 00:15:45,980 --> 00:15:47,000 sem er gögn tegund. 354 00:15:47,000 --> 00:15:51,080 Það kemur ekki innbyggður í öllum útgáfum af C. Þú þarft að fela í 355 00:15:51,080 --> 00:15:52,010 sérstakur bókasafn. 356 00:15:52,010 --> 00:15:54,770 Í okkar tilviki, ma ég CS50 bókasafn svo að við 357 00:15:54,770 --> 00:15:56,460 hafa aðgang að bool. 358 00:15:56,460 --> 00:15:59,810 En í línu 18, virðast við að hafa Boolean gildi hér kallast þakklát. 359 00:15:59,810 --> 00:16:01,040 Þannig að ég hefði getað kallað þetta neitt. 360 00:16:01,040 --> 00:16:04,500 En ég kallaði það þakklát bara að svona komi sumir merkingartækni merkingu. 361 00:16:04,500 --> 00:16:07,930 Svo fyrst á línu 18, ég er greinilega ekki þakklát því 362 00:16:07,930 --> 00:16:12,150 Boolean gildi þakklátur er frumstilla til falskur í línu 18. 363 00:16:12,150 --> 00:16:16,890 Og svo virðist sem ég hef gert hér í línum 21 til 23 er ég hef bara 364 00:16:16,890 --> 00:16:18,610 konar endurskrifa rökfræði mína. 365 00:16:18,610 --> 00:16:21,020 Svo ekki virkni öðruvísi. 366 00:16:21,020 --> 00:16:26,940 En í línu 22 núna, athuga ég hvort int notandinn hefur veitt er meiri en 367 00:16:26,940 --> 00:16:31,120 0, þá breyti ég bara gildi þakklát satt. 368 00:16:31,120 --> 00:16:32,290 Og hvers vegna þarf ég að gera það? 369 00:16:32,290 --> 00:16:35,600 Vegna þess að í línu 25, greinilega, ég ætla að athuga með ástand. 370 00:16:35,600 --> 00:16:39,380 Gera þessa lykkju en þakklátur er falskur. 371 00:16:39,380 --> 00:16:43,610 >> Þannig að ég legg þetta í stað útgáfu eitt af því að það er að minnsta kosti 372 00:16:43,610 --> 00:16:45,130 svolítið meira innsæi, kannski. 373 00:16:45,130 --> 00:16:46,900 Það er aðeins meira grundvölluð á ensku. 374 00:16:46,900 --> 00:16:51,710 Svo gera eftirfarandi þegar þú ert ekki þakklát eða meðan þakklátur er falskur. 375 00:16:51,710 --> 00:16:55,890 Og í þetta sinn, líka, virðist að ég er alveg sama ekki að muna það sem notandinn slegið 376 00:16:55,890 --> 00:16:57,730 í því fyrirvara að það er engin breytu n. 377 00:16:57,730 --> 00:16:58,650 Svo í raun, ég - 378 00:16:58,650 --> 00:17:00,080 smá hvít lygi þar. 379 00:17:00,080 --> 00:17:02,770 Virkni, the program er a hluti ólíkur þegar við að fá til the botn af 380 00:17:02,770 --> 00:17:04,819 það vegna þess að ég er ekki að muna hvað n er. 381 00:17:04,819 --> 00:17:09,579 En ég vildi að sýna hér líka að jafnvel þó að við höfum séð GetInt og 382 00:17:09,579 --> 00:17:13,920 GetString notuð á hægri hönd hlið af jafn skilti svona langt þannig að 383 00:17:13,920 --> 00:17:17,160 við minnumst gildi, tæknilega, það er ekki nauðsynlegt. 384 00:17:17,160 --> 00:17:20,950 Ef af einhverri ástæðu þú bara ekki sama að vista gildi, þú vilt bara 385 00:17:20,950 --> 00:17:25,710 að athuga gildi, eftir því að við getum einfaldlega að skrifa þetta sem GetInt opinn 386 00:17:25,710 --> 00:17:27,000 paren, loka paren. 387 00:17:27,000 --> 00:17:30,460 Þessi aðgerð er að fara að skila gildi, eins og við höfum verið að segja. 388 00:17:30,460 --> 00:17:32,010 Það er að fara að gefa þér aftur að int. 389 00:17:32,010 --> 00:17:36,450 Og svo ef þú heldur andlega af þessu gerist, þegar ég slá í 99, GetInt 390 00:17:36,450 --> 00:17:38,160 skilar númer 99. 391 00:17:38,160 --> 00:17:41,330 Og svo eðli, það er eins og númerið mitt væri í raun það. 392 00:17:41,330 --> 00:17:45,880 Svo ef 99 er örugglega meiri en 0, þá verður þakklát satt. 393 00:17:45,880 --> 00:17:50,420 Þá áttar lína 25 ooh, erum við gert vegna þess að ég er nú þakklát. 394 00:17:50,420 --> 00:17:54,590 Og í samræmi 26, við segjum einfaldlega, takk fyrir jákvæða heiltölu, hvað sem það 395 00:17:54,590 --> 00:17:55,710 gerðist. 396 00:17:55,710 --> 00:17:58,900 >> Nú skulum gera lítilsháttar syntactic sykur hér, svo að segja. 397 00:17:58,900 --> 00:18:02,990 Við skulum sjá hvort við getum hreinsa upp þessa línu 25 með þessu þriðja og síðasta dreifni 398 00:18:02,990 --> 00:18:04,640 í positive3. 399 00:18:04,640 --> 00:18:08,250 Svo taka eftir Eini munurinn nú er það lína af kóða? 400 00:18:11,930 --> 00:18:13,260 Já, svo 25. 401 00:18:13,260 --> 00:18:15,520 Og við höfum ekki séð þetta bragð bara ennþá. 402 00:18:15,520 --> 00:18:19,510 En við gerðum sjá upphrópunarmerki á mánudagur, sem gefur til kynna hvað? 403 00:18:19,510 --> 00:18:20,970 Svo ekki, eða neitun. 404 00:18:20,970 --> 00:18:23,460 Svo taka Boolean gildi og flettir gildi. 405 00:18:23,460 --> 00:18:24,390 True verður falskur. 406 00:18:24,390 --> 00:18:25,500 False verður satt. 407 00:18:25,500 --> 00:18:28,910 Svo þetta, myndi ég leggja til, er jafnvel svolítið meira innsæi um leið 408 00:18:28,910 --> 00:18:32,200 skrifa kóðann því ég frumstilla enn þakklát falskur. 409 00:18:32,200 --> 00:18:33,530 Ég enn eftirfarandi. 410 00:18:33,530 --> 00:18:35,700 Ég sett þakklát við þegar tíminn kemur. 411 00:18:35,700 --> 00:18:40,690 En nú getur þú í raun bara þýða þennan kóða munnlega vinstri til hægri, 412 00:18:40,690 --> 00:18:42,550 en ekki þakklát. 413 00:18:42,550 --> 00:18:46,170 Vegna Bang, eða upphrópunarmerki, táknar hugmyndina um ekki, svo á meðan 414 00:18:46,170 --> 00:18:47,010 ekki þakklát. 415 00:18:47,010 --> 00:18:49,740 >> Svo aftur, við höfum ekki tekið neinar nýjar hugmyndir í sjálfu sér. 416 00:18:49,740 --> 00:18:53,230 Við höfum talað um Booleans aftur þegar við spiluðum við grunni. 417 00:18:53,230 --> 00:18:55,690 En átta sig nú getum við bara byrjað að skrifa kóðann okkar í 418 00:18:55,690 --> 00:18:56,550 marga mismunandi vegu. 419 00:18:56,550 --> 00:19:00,010 Svo sérstaklega í pset1, ef þú ert svona í erfiðleikum með að reikna út hvernig til 420 00:19:00,010 --> 00:19:03,400 skrifa eitthvað forrit, líkur ert þú ert í heppni vegna þess að það er að fara að vera allir 421 00:19:03,400 --> 00:19:05,780 Fjölda lausna sem hægt er að gerast á. 422 00:19:05,780 --> 00:19:09,850 Til dæmis, þetta er bara þrír að jafnvel einföldustu áætlunum. 423 00:19:09,850 --> 00:19:10,180 Allt í lagi. 424 00:19:10,180 --> 00:19:13,860 Og nú muna á mánudag, eftir að við á þessari skýringu við gildi aftur. 425 00:19:13,860 --> 00:19:18,280 Svo í fyrsta skipti, skrifaði við forrit sem er ekki bara aðal, 426 00:19:18,280 --> 00:19:22,240 það hefur einnig eigin hlutverki sínu sem ég skrifaði hér. 427 00:19:22,240 --> 00:19:26,640 Þannig að í línu 31 með 34, ég hef innleitt teningur virka. 428 00:19:26,640 --> 00:19:27,800 Það er ekki flókið. 429 00:19:27,800 --> 00:19:29,830 Það er bara sinnum á sinnum, í þessu tilfelli. 430 00:19:29,830 --> 00:19:34,920 En hvað er mikilvægt um það er að ég ætla að taka inntak í formi og 431 00:19:34,920 --> 00:19:38,910 Ég er aftur framleiðsla í formi sinnum sinnum a. 432 00:19:38,910 --> 00:19:43,940 >> Svo nú er ég að hafa getu, mikið eins og ég nota til að með printf einn, til að hringja 433 00:19:43,940 --> 00:19:47,120 þessa aðgerð með því að kalla teningur virka. 434 00:19:47,120 --> 00:19:49,470 Og teningur virka tekur smá inntak. 435 00:19:49,470 --> 00:19:52,030 Og teningur skilar sumir framleiðsla. 436 00:19:52,030 --> 00:19:56,660 Og svo hins vegar printf bara gerði eitthvað. 437 00:19:56,660 --> 00:19:59,490 Það skilaði ekki neitt sem við þótti vænt um - jafnvel þótt, eins og að 438 00:19:59,490 --> 00:20:00,820 hliðar er það aftur gildi. 439 00:20:00,820 --> 00:20:02,650 Þú bara almennt hunsa hana. 440 00:20:02,650 --> 00:20:04,000 Printf bara gerði eitthvað. 441 00:20:04,000 --> 00:20:06,220 Það var aukaverkun af prentun á skjáinn. 442 00:20:06,220 --> 00:20:09,480 Með því móti hér, höfum við teningur virka sem 443 00:20:09,480 --> 00:20:11,400 raun skilar einhverju. 444 00:20:11,400 --> 00:20:12,960 >> Svo er þetta yfirleitt - 445 00:20:12,960 --> 00:20:15,260 fyrir þá sem þekkja þetta, er það nokkuð augljóst hugmynd. 446 00:20:15,260 --> 00:20:18,460 En fyrir þá sem minna þekkja þessa hugmynd liggur á aðföngum og fá 447 00:20:18,460 --> 00:20:21,700 aftur framleiðsla, við skulum reyna bara eitthvað ofur einfalt. 448 00:20:21,700 --> 00:20:25,180 Er einhver þægilegt að koma upp á sviðinu í stuttu máli? 449 00:20:25,180 --> 00:20:27,460 Þú verður að vera ánægð með myndavél á þér, eins og heilbrigður. 450 00:20:27,460 --> 00:20:27,640 Já. 451 00:20:27,640 --> 00:20:28,610 Jæja, hvað er nafnið þitt? 452 00:20:28,610 --> 00:20:29,020 KEN: Ken. 453 00:20:29,020 --> 00:20:29,420 DAVID J. Malan: Ken. 454 00:20:29,420 --> 00:20:29,810 Allt í lagi, Ken. 455 00:20:29,810 --> 00:20:31,060 Komdu upp. 456 00:20:31,060 --> 00:20:34,660 Svo Ken er að fara að vera fall af tegund hér. 457 00:20:34,660 --> 00:20:35,760 Og við skulum fara á undan og gera það. 458 00:20:35,760 --> 00:20:38,790 Skulum fá smá fínt. 459 00:20:38,790 --> 00:20:39,770 Gaman að hitta þig. 460 00:20:39,770 --> 00:20:41,010 Velkomin á miðju sviðinu. 461 00:20:41,010 --> 00:20:41,980 Allt í lagi. 462 00:20:41,980 --> 00:20:45,590 Við skulum ná þessu hnapp hér. 463 00:20:45,590 --> 00:20:46,420 Allt í lagi. 464 00:20:46,420 --> 00:20:49,490 Svo hér þú ert með nútíma chalkboard. 465 00:20:49,490 --> 00:20:53,050 Og það sem ég er er helsta hlutverk, til dæmis. 466 00:20:53,050 --> 00:20:55,990 Og ég hef ekki iPad í minni hendi. 467 00:20:55,990 --> 00:20:59,000 Ég er ekki alveg að muna hvernig á að - ja, í raun ekki hægt að segja það. 468 00:20:59,000 --> 00:21:02,200 Ég er ekki í raun að hafa góða rithönd. 469 00:21:02,200 --> 00:21:05,260 Og svo því, ég vil að þú að prenta eitthvað á skjánum fyrir mig. 470 00:21:05,260 --> 00:21:07,470 >> Svo er ég að vera helstu forrit. 471 00:21:07,470 --> 00:21:15,060 Og ég er að fara að fá þig að segja þetta með því að skrifa það í grunni kjúklingur minn og 472 00:21:15,060 --> 00:21:16,600 þá liggur þér inntak. 473 00:21:16,600 --> 00:21:20,000 Svo eins kjánalegt þó að þessi æfing er hugmyndin um störf og kallar á 474 00:21:20,000 --> 00:21:22,260 virka og skila virka raunverulega snýst um að þetta. 475 00:21:22,260 --> 00:21:23,120 Ég er aðal. 476 00:21:23,120 --> 00:21:26,270 Ég hef bara skrifað printf ("eitthvað") á skjánum. 477 00:21:26,270 --> 00:21:27,470 Ég er að keyra þetta forrit. 478 00:21:27,470 --> 00:21:30,900 Og eins fljótt og printf fær heitir, það tekur einn rök - eða einn stika, 479 00:21:30,900 --> 00:21:31,660 stundum - 480 00:21:31,660 --> 00:21:32,780 milli gæsalöppum. 481 00:21:32,780 --> 00:21:33,960 Hér er þessi rök. 482 00:21:33,960 --> 00:21:35,740 Ég farið með hana til Ken. 483 00:21:35,740 --> 00:21:39,390 Nú er hann svartur kassi skrifað nokkur mörg ár síðan sem virðist 484 00:21:39,390 --> 00:21:41,070 bara veit hvernig á að prenta það á skjánum. 485 00:21:41,070 --> 00:21:42,320 >> Svo, framkvæma. 486 00:21:48,842 --> 00:21:49,900 Það er ekki slæmt. 487 00:21:49,900 --> 00:21:50,890 Svo, mjög góð. 488 00:21:50,890 --> 00:21:52,900 Svo nú Ken er gert framkvæmd. 489 00:21:52,900 --> 00:21:55,810 Er hann að skila mér neitt til baka? 490 00:21:55,810 --> 00:21:57,240 Svo ekki að við höfum séð hingað til. 491 00:21:57,240 --> 00:21:59,230 Aftur, printf er í raun skila fjölda. 492 00:21:59,230 --> 00:22:01,640 En við erum að fara að hunsa það nú vegna þess að við höfum aldrei notað það. 493 00:22:01,640 --> 00:22:03,400 Svo að það er fyrir Ken. 494 00:22:03,400 --> 00:22:06,650 Og nú kemur aðal aftur að framkvæma - 495 00:22:06,650 --> 00:22:09,630 Helstu tekur yfir stjórn á kerfinu aftur því þessi lína af kóða, 496 00:22:09,630 --> 00:22:11,010 printf er gert framkvæmd. 497 00:22:11,010 --> 00:22:13,890 Og við förum um leið okkar leiddar hvað aðrar línur eru. 498 00:22:13,890 --> 00:22:14,130 >> Allt í lagi. 499 00:22:14,130 --> 00:22:17,080 Svo nú skulum við reyna aðeins öðruvísi dæmi. 500 00:22:17,080 --> 00:22:22,430 Og í þetta sinn hér, við skulum fyrst að hreinsa skjáinn hér. 501 00:22:22,430 --> 00:22:24,670 Og í þetta sinn munum við gera cubing virka. 502 00:22:24,670 --> 00:22:27,350 En í þetta sinn, ætla ég framleiðsla gildi. 503 00:22:27,350 --> 00:22:28,630 Svo við skulum fara á undan og gera það. 504 00:22:28,630 --> 00:22:35,680 Svo nú hef ég línu af kóða sem segir x = teningur (x). 505 00:22:35,680 --> 00:22:36,930 Svo í raun let's - 506 00:22:41,450 --> 00:22:43,940 lína af kóða, muna, lítur svona út. 507 00:22:43,940 --> 00:22:45,960 x = teningur (x). 508 00:22:45,960 --> 00:22:48,100 Svo hvernig er það að fara að vinna? 509 00:22:48,100 --> 00:22:50,820 Svo við skulum fara á undan og gefa þér hvíta skjáinn. 510 00:22:50,820 --> 00:22:55,000 Og ég er að fara að skrifa núna niður gildi af x, sem á þessari stundu í 511 00:22:55,000 --> 00:23:01,080 tími kemur að, segjum, 2, að halda það einfalt. 512 00:23:01,080 --> 00:23:04,890 Þannig að ég hef skrifað niður á blað og verðmæti 2, 513 00:23:04,890 --> 00:23:06,100 sem er gildi x mín. 514 00:23:06,100 --> 00:23:08,250 Ég hendi því í Ken. 515 00:23:08,250 --> 00:23:09,200 KEN: Og ég skrifa bara svarið? 516 00:23:09,200 --> 00:23:12,660 DAVID J. Malan: Já, við skulum bara skrifa svarið. 517 00:23:12,660 --> 00:23:13,030 Allt í lagi. 518 00:23:13,030 --> 00:23:16,280 Og nú hefur hann að skila mér eitthvað. 519 00:23:16,280 --> 00:23:17,560 Svo - 520 00:23:17,560 --> 00:23:18,170 fullkominn. 521 00:23:18,170 --> 00:23:18,840 Nice segue. 522 00:23:18,840 --> 00:23:21,970 >> Svo nú er hann réttir mér aftur gildi 8, í þessu tilfelli. 523 00:23:21,970 --> 00:23:23,220 Og hvað á ég að gera við það? 524 00:23:23,220 --> 00:23:26,130 Ja, reyndar, við skulum sjá. 525 00:23:26,130 --> 00:23:26,640 Fá þetta rétt. 526 00:23:26,640 --> 00:23:27,880 Hvað er ég að fara að gera við það? 527 00:23:27,880 --> 00:23:31,900 Nú ætla ég að taka þetta gildi og reyndar geyma það í þeim 528 00:23:31,900 --> 00:23:33,400 sömu bitar í minni. 529 00:23:33,400 --> 00:23:35,030 En taka, ég er svona að berjast hér. 530 00:23:35,030 --> 00:23:38,280 Ég er svolítið ruglaður því þegar ég skrifa reyndar gildi x? 531 00:23:38,280 --> 00:23:41,840 Þar sem ég hef bara gert er líkamlega hönd Ken a stykki af pappír 532 00:23:41,840 --> 00:23:44,400 sem hafði gildi 2, sem var x. 533 00:23:44,400 --> 00:23:46,300 Og reyndar, það er einmitt það sem gerist. 534 00:23:46,300 --> 00:23:50,100 Svo kemur í ljós að þegar þú hringir í aðgerð, og þú fara í rifrildi 535 00:23:50,100 --> 00:23:54,130 eins og "Hello World" eða þú fara í rifrildi eins og 2, yfirleitt, þú ert 536 00:23:54,130 --> 00:23:56,720 farið í afrit af þeim rök. 537 00:23:56,720 --> 00:24:01,020 Og svo eins og ég skrifaði niður númer 2 hér og seldi það til Ken, sem verða 538 00:24:01,020 --> 00:24:04,760 meina að ég er enn með afrit af gildi 2 einhversstaðar. 539 00:24:04,760 --> 00:24:08,140 Þar reyndar, nú að ég hef fengið til baka gildið 8, þarf ég að fara aftur í 540 00:24:08,140 --> 00:24:12,010 RAM og reyndar skrifa niður 8 þar sem ég hafði einu sinni númer 2. 541 00:24:12,010 --> 00:24:15,720 >> Svo sjónrænt muna þessa hugmynd fyrir brottför í bókstaflega 542 00:24:15,720 --> 00:24:16,730 afrit af gildi. 543 00:24:16,730 --> 00:24:19,570 Ken er hlutur hans, hendur mér til baka eitthvað - í þessu tilviki, 544 00:24:19,570 --> 00:24:20,820 gildi eins og 8. 545 00:24:20,820 --> 00:24:22,660 Og þá verð ég að gera eitthvað með þessi gildi ef ég 546 00:24:22,660 --> 00:24:24,880 vilja til að halda það í kring. 547 00:24:24,880 --> 00:24:29,470 Svo allt þetta verður allt of kunnuglegt fyrir löngu. 548 00:24:29,470 --> 00:24:33,082 Þakka þér svo mikið fyrir þessa kynningu hér, Ken. 549 00:24:33,082 --> 00:24:34,820 Allt í lagi. 550 00:24:34,820 --> 00:24:36,720 Mjög vel gert. 551 00:24:36,720 --> 00:24:40,610 Svo skulum sjá hvernig sem á endanum tengist sumir af the virka 552 00:24:40,610 --> 00:24:42,270 starf sem við höfum verið að gera hér. 553 00:24:42,270 --> 00:24:47,610 Svo láta mig fara á undan og færa okkur aftur til cubing dæmi hér. 554 00:24:47,610 --> 00:24:53,080 Athugið að ef við viljum í raun að byrja að taka þetta lengra, við erum að fara 555 00:24:53,080 --> 00:24:57,050 að hafa til að hafa í huga þá staðreynd að fjöldi x sem er verið samþykkt í 556 00:24:57,050 --> 00:25:01,390 hér er öðruvísi hvað er í raun verið að fara framhjá í aðgerðina. 557 00:25:01,390 --> 00:25:03,940 Svo aftur, þetta fór með afrit er að fara að verða nokkuð 558 00:25:03,940 --> 00:25:05,620 germane í bara smá stund. 559 00:25:05,620 --> 00:25:09,320 >> Svo skulum taka a líta á eitthvað sem er ekki alveg að vinna rétt enn. 560 00:25:09,320 --> 00:25:11,790 Ég ætla að fara á undan og opna þriðja þrjótur dæmi, sem 561 00:25:11,790 --> 00:25:13,560 er gölluð í eðli sínu. 562 00:25:13,560 --> 00:25:18,070 Og það heitir buggy3, og það áhald skipta virka. 563 00:25:18,070 --> 00:25:23,500 Svo hér erum við með helsta hlutverk sem hefur x og y geðþótta frumstilla til 564 00:25:23,500 --> 00:25:24,720 1 og 2. 565 00:25:24,720 --> 00:25:27,590 Við gætum notað GetInt, en við þurfum bara einfalt æfingu. 566 00:25:27,590 --> 00:25:29,680 Svo það er erfitt dulmáli eins og 1 og 2. 567 00:25:29,680 --> 00:25:35,330 Í línum 21 og 22, prenta við virðist út x og y, einn í hverja línu. 568 00:25:35,330 --> 00:25:39,620 Þá, á lína 23, segjast ég er skipta þessi gildi, punktur, punktur, punktur. 569 00:25:39,620 --> 00:25:43,030 Ég kalla virðist fall á línu 24 sem heitir skipti 570 00:25:43,030 --> 00:25:44,000 sem tekur tvær rök. 571 00:25:44,000 --> 00:25:46,430 Það er alveg legit fyrir aðgerðir til að taka tvö rök. 572 00:25:46,430 --> 00:25:48,220 Við höfum séð printf gera það nú þegar. 573 00:25:48,220 --> 00:25:50,370 Svo tekur skipti virðist x og y. 574 00:25:50,370 --> 00:25:53,010 Og eins og nafnið gefur til kynna, myndi ég vona að það er að fara að 575 00:25:53,010 --> 00:25:54,320 skipta þessi tvö gildi. 576 00:25:54,320 --> 00:25:57,560 Svo ég kröfu á línu 25, skipti. 577 00:25:57,560 --> 00:26:01,570 Og ég prentaðu x og y samkvæmt þeirri forsendu að 578 00:26:01,570 --> 00:26:02,830 þeir hafa örugglega verið skipti. 579 00:26:02,830 --> 00:26:04,370 En ef ég hlaupa í raun þetta forrit - 580 00:26:04,370 --> 00:26:06,060 láta mig opna Terminal glugga. 581 00:26:06,060 --> 00:26:07,750 Leyfðu mér að gera buggy3. 582 00:26:07,750 --> 00:26:09,970 Eins og nafnið gefur til kynna, þetta er ekki að fara að enda vel. 583 00:26:09,970 --> 00:26:14,690 Því þegar ég lenti inn, eftir því að x er 1. 584 00:26:14,690 --> 00:26:15,720 Y er 2. 585 00:26:15,720 --> 00:26:19,160 Og enn í lok áætlunarinnar, þá eru þeir samt í raun sama. 586 00:26:19,160 --> 00:26:22,760 >> Svo miðað við mótmælum bara nú með Ken, hvað er raunverulega að gerast? 587 00:26:22,760 --> 00:26:24,660 Jæja, við skulum kafa inn í þetta skipti virka. 588 00:26:24,660 --> 00:26:25,800 Það er frábær stutt. 589 00:26:25,800 --> 00:26:28,020 Það er bara nokkrar línur af kóða langur. 590 00:26:28,020 --> 00:26:32,810 En það er grundvallaratriði vandamál byggt á einföldu sögu sagði 591 00:26:32,810 --> 00:26:34,270 upp hér með Ken? 592 00:26:34,270 --> 00:26:36,115 Hvers vegna er skipti brotinn? 593 00:26:36,115 --> 00:26:37,365 [Inaudible] 594 00:26:39,840 --> 00:26:40,460 Einmitt. 595 00:26:40,460 --> 00:26:43,610 Þannig að við erum að geyma til að afrita, ekki breytu sig. 596 00:26:43,610 --> 00:26:46,810 Með öðrum orðum, skipti tekur greinilega tvær röksemdir, sem Int. 597 00:26:46,810 --> 00:26:49,370 Og það er geðþótta kallað a og b. 598 00:26:49,370 --> 00:26:54,430 Og hérna, ég hef samþykkt í x og y, sem eru hver um sig 1 og 2. 599 00:26:54,430 --> 00:26:56,580 En ég er ekki bókstaflega farið í x. 600 00:26:56,580 --> 00:26:58,410 Ég er ekki bókstaflega farið í y. 601 00:26:58,410 --> 00:27:01,230 Ég er liggur afrit af x og afrit af y. 602 00:27:01,230 --> 00:27:05,180 Það er eins og næstum eins og þú afritað og límt inn skipta þau gildi sem 603 00:27:05,180 --> 00:27:07,440 þú vilt það til í raun og veru vinna. 604 00:27:07,440 --> 00:27:11,970 Svo ef það er málið, þegar ég, the program, hefja framkvæmd 605 00:27:11,970 --> 00:27:14,140 lína 35, þá 36 - 606 00:27:14,140 --> 00:27:17,740 þegar ég fæ að línu 37, á þessum tímapunkti í sögunni, hvað er virði a? 607 00:27:20,740 --> 00:27:24,850 Á þessum tímapunkti í sögunni, lína 37, hvað er gildi fyrir á þessum tímapunkti? 608 00:27:24,850 --> 00:27:25,980 Svo það ætti bara að vera 1. 609 00:27:25,980 --> 00:27:26,170 Hægri? 610 00:27:26,170 --> 00:27:29,100 Þar x voru sett sem fyrsta rök. 611 00:27:29,100 --> 00:27:33,150 Og þessi aðgerð bara geðþótta kallar fyrsta rök þess, a. 612 00:27:33,150 --> 00:27:35,130 Á sama hátt er y, annað rifrildi. 613 00:27:35,130 --> 00:27:37,930 Og það er bara geðþótta kalla Önnur rökin b. 614 00:27:37,930 --> 00:27:40,510 >> Nú dichotomy er í raun nokkuð einfaldlega útskýrt. 615 00:27:40,510 --> 00:27:40,880 Hugsaðu um það. 616 00:27:40,880 --> 00:27:42,980 Ekkert af okkur hafa hitt mann sem skrifaði printf. 617 00:27:42,980 --> 00:27:49,880 Svo sannarlega, hann eða hún hefur ekki hugmynd um hvað breytur okkar 30 árum síðar eru að fara 618 00:27:49,880 --> 00:27:50,710 að vera gestur. 619 00:27:50,710 --> 00:27:55,110 Svo hefur það að vera skil á milli þess sem þú kallar breytur í 620 00:27:55,110 --> 00:27:59,960 aðgerðir sem þú ert að skrifa og það sem þú kallar breytur í aðgerðir sem þú ert 621 00:27:59,960 --> 00:28:01,770 hringja eða nota. 622 00:28:01,770 --> 00:28:05,120 Svo í öðrum orðum, hef ég skrifað breytur mína sem x og y. 623 00:28:05,120 --> 00:28:08,060 En ef einhver annar hefði skrifað skipti virka, hann eða hún vissulega 624 00:28:08,060 --> 00:28:10,480 vildi ekki vita hvaða breytur mín eru að fara að vera kölluð. 625 00:28:10,480 --> 00:28:13,850 Svo grein fyrir að þetta er hvers vegna þú hefur þetta duality nafna. 626 00:28:13,850 --> 00:28:16,800 Tæknilega gæti ég gert þetta fyrir tilviljun. 627 00:28:16,800 --> 00:28:19,750 En þeir myndu samt vera samþykkt sem afrit. 628 00:28:19,750 --> 00:28:22,940 Það myndi bara vera hrein tilviljun fagurfræðilega ef þessi manneskja sem skrifaði 629 00:28:22,940 --> 00:28:25,590 skipti höfðu notað sömu nöfn. 630 00:28:25,590 --> 00:28:25,930 >> Allt í lagi. 631 00:28:25,930 --> 00:28:29,010 Svo á þessum tímapunkti í sögunni, línu 37, sem er 1. 632 00:28:29,010 --> 00:28:30,410 B er 2. 633 00:28:30,410 --> 00:28:32,040 Og nú er ég að halda áfram að skipta á þeim. 634 00:28:32,040 --> 00:28:34,730 Jæja fyrst af öllu, láta mig gera í raun það mun einfaldlega. 635 00:28:34,730 --> 00:28:36,500 Ég veit ekki hvað þessir þrjár línur af kóða var að gera. 636 00:28:36,500 --> 00:28:37,370 Leyfðu mér að gera bara þetta. 637 00:28:37,370 --> 00:28:38,850 B fær. 638 00:28:38,850 --> 00:28:40,170 a fær b. 639 00:28:40,170 --> 00:28:41,450 Lokið. 640 00:28:41,450 --> 00:28:43,540 Hvers vegna er þetta brotinn, þá er rökrétt? 641 00:28:46,980 --> 00:28:48,590 Það er góður af leiðandi hlutur, ekki satt? 642 00:28:48,590 --> 00:28:50,640 Svo verður b. 643 00:28:50,640 --> 00:28:52,450 Og B verður. 644 00:28:52,450 --> 00:28:55,410 En vandamálið er að um leið og lína 37 keyrir, það er 645 00:28:55,410 --> 00:28:58,170 gildi a og b? 646 00:28:58,170 --> 00:28:59,070 Sama, 1. 647 00:28:59,070 --> 00:29:03,460 Þar sem þú hefur stútað, svo að segja, þú hefur breytt B að jafna a. 648 00:29:03,460 --> 00:29:06,000 Svo þegar lína 37 er keyrð, það er frábært. 649 00:29:06,000 --> 00:29:09,940 Þú hefur nú tvö eintök af númer 1 inni þessa aðgerð. 650 00:29:09,940 --> 00:29:14,720 Svo þegar þú segir í línu 38, sem fær B, vel, þú ert svona ruglaður. 651 00:29:14,720 --> 00:29:17,370 Þar sem þú ert bara að framselja 1 til 1. 652 00:29:17,370 --> 00:29:20,400 Þú hefur konar misst gildið sem þú aðgát óður í. 653 00:29:20,400 --> 00:29:22,910 >> Svo í upprunalegu útgáfuna af þessu, eftir því sem ég gerði. 654 00:29:22,910 --> 00:29:26,620 Ég hafði í stað þriðja línu af kóða sem líktist þessu. 655 00:29:26,620 --> 00:29:29,910 Ég lýsi tímabundna breytu - tmp er mjög algengt nafn 656 00:29:29,910 --> 00:29:31,240 fyrir tímabundna breytu. 657 00:29:31,240 --> 00:29:34,280 Það er int vegna þess að það þarf að passa það sem ég vil gera afrit af. 658 00:29:34,280 --> 00:29:39,720 Ég geyma afrit af inni tmp. Svo þegar lína 37 hefur framkvæmt, 659 00:29:39,720 --> 00:29:41,390 verðmæti sem er - 660 00:29:41,390 --> 00:29:42,970 fljótur geðheilbrigði athuga - 661 00:29:42,970 --> 00:29:43,460 1. 662 00:29:43,460 --> 00:29:45,780 Verðmæti b er 2. 663 00:29:45,780 --> 00:29:48,470 Og verðmæti tmp er einnig 1. 664 00:29:48,470 --> 00:29:51,470 Svo nú er ég framkvæma línu 38. 665 00:29:51,470 --> 00:29:57,180 Svo þegar lína 38 keyrir, sem tekur gildi b. 666 00:29:57,180 --> 00:29:58,510 Og b var 2. 667 00:29:58,510 --> 00:30:00,500 Svo er nú 2. 668 00:30:00,500 --> 00:30:03,110 Svo á þessum tímapunkti í sögunni, sem er 2, b er 2, 669 00:30:03,110 --> 00:30:05,130 og tmp er 1. 670 00:30:05,130 --> 00:30:09,330 Svo nú rökrétt, getum við gildi bara Plop tmp er í b. 671 00:30:09,330 --> 00:30:10,690 Og við erum að gera. 672 00:30:10,690 --> 00:30:12,170 >> Þannig að við höfum leyst þessi vandamál. 673 00:30:12,170 --> 00:30:16,040 Því miður, þegar ég keyra þetta forrit í þessu formi, er það ekki í raun skipta 674 00:30:16,040 --> 00:30:17,700 hvaða gildi. 675 00:30:17,700 --> 00:30:18,950 En til að vera ljóst, hvers vegna? 676 00:30:23,420 --> 00:30:26,310 Ég fastur rökrétt vandamál frá bara í smá stund síðan. 677 00:30:26,310 --> 00:30:31,150 En aftur, ef ég keyra þetta forrit, vera x og y óbreytt í lok 678 00:30:31,150 --> 00:30:33,834 forritsins framkvæmd. 679 00:30:33,834 --> 00:30:34,760 [Inaudible] 680 00:30:34,760 --> 00:30:36,030 DAVID J. Malan: Þannig að við höfum ekki skilað neinu. 681 00:30:36,030 --> 00:30:36,960 Svo er það satt. 682 00:30:36,960 --> 00:30:39,880 Er en það kemur í ljós að það er a hluti af a vandamál hér því svona langt 683 00:30:39,880 --> 00:30:42,460 eina sem við höfum getað til að koma aftur er einn hlutur. 684 00:30:42,460 --> 00:30:46,540 Og þetta er takmörkun á C. Þú getur aðeins aftur raun eitt gildi, 685 00:30:46,540 --> 00:30:48,970 í því tilviki, ég er svona fastur hér 686 00:30:48,970 --> 00:30:51,805 vegna þess að ég gæti aftur á nýju gildi x eða ég gæti skila 687 00:30:51,805 --> 00:30:53,160 ný gildi y. 688 00:30:53,160 --> 00:30:54,330 En ég vil bæði aftur. 689 00:30:54,330 --> 00:30:58,010 Svo aftur er einföld lausn er ekki hér. 690 00:30:58,010 --> 00:30:59,770 En vandamálið er í grundvallaratriðum hvers vegna? 691 00:30:59,770 --> 00:31:03,270 Hvað höfum við skipti í raun og veru? 692 00:31:03,270 --> 00:31:04,010 a og b. 693 00:31:04,010 --> 00:31:07,670 En a og b eru afrit af x og y, sem þýðir að við gerðum bara allt þetta 694 00:31:07,670 --> 00:31:10,080 vinna - við eytt eins þrjár mínútur að tala um skipti 695 00:31:10,080 --> 00:31:11,680 virka og öll þrjú af þessum breytum. 696 00:31:11,680 --> 00:31:15,090 Og það er frábært, alveg rétt í einangrun. 697 00:31:15,090 --> 00:31:20,230 En og umfang B er aðeins í þessum línum hér. 698 00:31:20,230 --> 00:31:24,130 Svo bara eins og a for lykkju, ef þú lýsa heiltölu i inni fyrir 699 00:31:24,130 --> 00:31:27,400 lykkja - sama hátt, ef þú ert að lýsa a og b inni í aðgerð sem 700 00:31:27,400 --> 00:31:30,550 þú hefur skrifað, þá eru þeir aðeins gild innan þess virka. 701 00:31:30,550 --> 00:31:35,020 Sem þýðir að um leið og skipti er gert að framkvæma og við förum frá línu 24 til 702 00:31:35,020 --> 00:31:38,380 lína 25, x og y hafi ekki verið breytt á öllum. 703 00:31:38,380 --> 00:31:42,580 Þú sóa bara allt fullt af tíma að skipta um afrit af breytum. 704 00:31:42,580 --> 00:31:46,490 >> Svo kemur í ljós að lausnin á þessu er í raun ekki augljós. 705 00:31:46,490 --> 00:31:49,210 Það er ekki alveg nóg að skila gildi vegna þess að við getum 706 00:31:49,210 --> 00:31:50,320 aðeins skila einu gildi. 707 00:31:50,320 --> 00:31:53,370 Og ég virkilega vil að skipta bæði X og Y á sama tíma. 708 00:31:53,370 --> 00:31:55,020 Þannig að við erum að fara að koma aftur á þetta. 709 00:31:55,020 --> 00:31:58,770 En nú, átta sig á að málið grundvallaratriðum stafar af því 710 00:31:58,770 --> 00:32:00,660 sem a og b eru afrit. 711 00:32:00,660 --> 00:32:03,450 Og þeir eru í eigin umfang þeirra. 712 00:32:03,450 --> 00:32:04,980 Jæja, við skulum reyna að leysa þetta á einhvern hátt. 713 00:32:04,980 --> 00:32:09,200 Leyfðu mér að fletta í raun aftur hingað og opna upp, við skulum segja, fjórða afbrigði 714 00:32:09,200 --> 00:32:11,170 þetta, buggy4. 715 00:32:11,170 --> 00:32:13,230 Og hvað um það? 716 00:32:13,230 --> 00:32:16,690 Þetta er svipað, en einfaldari vandamál að líta á áður en við taka a stunga á að 717 00:32:16,690 --> 00:32:17,530 að leysa það. 718 00:32:17,530 --> 00:32:19,440 Þetta forrit er kallað vöxtur. 719 00:32:19,440 --> 00:32:24,320 Og það Frumstillir virðist að x heiltala að 1 línu 18. 720 00:32:24,320 --> 00:32:25,950 Ég kröfu þá x er 1. 721 00:32:25,950 --> 00:32:28,020 Ég þá kröfu incrementing, punktur, punktur, punktur. 722 00:32:28,020 --> 00:32:29,460 Ég kalla þá vöxtur. 723 00:32:29,460 --> 00:32:33,480 En þá í línum 22 og 23, ég beiti fyrir mig það hefur verið incremented. 724 00:32:33,480 --> 00:32:37,780 Ég krafa x er nú hvað sem það er, 2 væntanlega. 725 00:32:37,780 --> 00:32:39,770 >> En þetta forrit er þrjótur. 726 00:32:39,770 --> 00:32:41,020 Hvað er vandamálið? 727 00:32:43,450 --> 00:32:44,418 Já? 728 00:32:44,418 --> 00:32:45,668 [Inaudible] 729 00:32:49,260 --> 00:32:49,850 DAVID J. Malan: Einmitt. 730 00:32:49,850 --> 00:32:52,430 Svo x hefur verið lýst augljóslega á línu 18. 731 00:32:52,430 --> 00:32:54,410 Það er inni hrokkið axlabönd aðal. 732 00:32:54,410 --> 00:32:58,470 Svo er einfalt svar hér er að, ja, x er hér. 733 00:32:58,470 --> 00:33:01,510 Það er ekki til í takt 32. 734 00:33:01,510 --> 00:33:03,710 Svo þetta forrit í raun ekki einu sinni saman. 735 00:33:03,710 --> 00:33:07,910 The þýðanda, þegar ég reyni að setja saman þessa kóða, er að fara að æpa á mig 736 00:33:07,910 --> 00:33:13,190 um einhverja óskilgreinda auðkenni eða eitthvað þar að lútandi. 737 00:33:13,190 --> 00:33:13,870 Í staðreynd, við skulum reyna. 738 00:33:13,870 --> 00:33:15,235 Þetta er að gera buggy4. 739 00:33:17,780 --> 00:33:18,190 Það er það. 740 00:33:18,190 --> 00:33:22,030 Notkun undeclared auðkenni x í takt 32. 741 00:33:22,030 --> 00:33:25,700 Og í raun, við skulum vera hér skýr í dag þannig að þetta er gagnlegt í 742 00:33:25,700 --> 00:33:27,140 skrifstofutímarnir og heima. 743 00:33:27,140 --> 00:33:29,000 Takið eftir að það er lítið cryptically skrifað. 744 00:33:29,000 --> 00:33:31,560 En sú staðreynd að Clang hefur öskraði á okkur og sagði: 745 00:33:31,560 --> 00:33:36,970 buggy4.c: 32:5 er raunverulega gagnlegur. 746 00:33:36,970 --> 00:33:41,970 Það þýðir að villa sé á línu 32 á stöðu eðli fimm. 747 00:33:41,970 --> 00:33:44,670 Svo einn, tveir, þrír, fjórir, fimm. 748 00:33:44,670 --> 00:33:46,640 Það er, í raun, þar sem vandamálið er. 749 00:33:46,640 --> 00:33:49,710 Og einnig að hafa í huga á skrifstofutíma og heima, ég er heppinn hér. 750 00:33:49,710 --> 00:33:50,740 Ég er með eina mistök. 751 00:33:50,740 --> 00:33:52,660 Það er að fara að vera tiltölulega auðvelt að festa. 752 00:33:52,660 --> 00:33:56,220 En ef þú færð allan skjáinn fullur af yfirþyrmandi villa skilaboð, aftur, 753 00:33:56,220 --> 00:33:59,240 grein fyrir því að bottommost maður gæti bara verið einkenni um 754 00:33:59,240 --> 00:34:00,320 hæstur sjálfur. 755 00:34:00,320 --> 00:34:03,560 Svo alltaf elta niður galla þínum frá toppi og niður. 756 00:34:03,560 --> 00:34:06,720 Þar gæti bara verið Daisy-keðja áhrif sem bendir þér 757 00:34:06,720 --> 00:34:09,030 ráða fleiri vandamál en þú gerir í raun og veru. 758 00:34:09,030 --> 00:34:14,989 >> Svo hvernig getum við lagað þetta ef markmið mitt er að hækka x? 759 00:34:14,989 --> 00:34:15,370 Hvað er það? 760 00:34:15,370 --> 00:34:15,620 Allt í lagi. 761 00:34:15,620 --> 00:34:16,679 Þannig getum við gert x heimsvísu. 762 00:34:16,679 --> 00:34:18,860 Við skulum taka flýtileið sem ég varaði fyrr. 763 00:34:18,860 --> 00:34:20,550 En Heck, við þurfum bara fljótur festa. 764 00:34:20,550 --> 00:34:23,949 Svo við skulum bara segja að int x upp hér. 765 00:34:23,949 --> 00:34:25,600 Það gerir x GLOBAL. 766 00:34:25,600 --> 00:34:28,460 Svo nú hefur helstu aðgang að henni. 767 00:34:28,460 --> 00:34:31,780 Og vöxtur hefur aðgang að henni. 768 00:34:31,780 --> 00:34:33,860 Og svo látið mig fara á undan og taka saman þetta núna. 769 00:34:33,860 --> 00:34:36,330 Gera buggy4, Enter. 770 00:34:36,330 --> 00:34:37,440 Virðist saman núna. 771 00:34:37,440 --> 00:34:40,949 Við skulum hlaupa buggy4, og það virðist í raun og veru vinna. 772 00:34:40,949 --> 00:34:42,780 Nú er þetta eitt af þessum hlutum - 773 00:34:42,780 --> 00:34:45,870 gera eins og ég segi, ekki eins og ég, eins og ég hef bara gert hér. 774 00:34:45,870 --> 00:34:49,239 Vegna almennt, eru áætlanir okkar að fara að fá mikið meira áhugavert og 775 00:34:49,239 --> 00:34:50,440 mun lengur en þetta. 776 00:34:50,440 --> 00:34:53,199 Og ef lausnin á vandamálum lífsins er bara Ah, setja alla 777 00:34:53,199 --> 00:34:57,550 breytur efst á skránni, mjög fljótt að gera áætlanir fá 778 00:34:57,550 --> 00:34:59,700 horrifically erfitt að stjórna. 779 00:34:59,700 --> 00:35:02,050 Það verður erfiðara að hugsa upp nýja breytu nöfn. 780 00:35:02,050 --> 00:35:05,240 Það verður erfiðara að skilja hvað breyta er að gera hvað. 781 00:35:05,240 --> 00:35:08,250 >> Og svo almennt, þetta er ekki góð lausn. 782 00:35:08,250 --> 00:35:09,780 Svo skulum gera þetta betur. 783 00:35:09,780 --> 00:35:11,920 Við viljum ekki að nota alþjóðlegt breytu hér. 784 00:35:11,920 --> 00:35:14,050 Ég vil að hækka x. 785 00:35:14,050 --> 00:35:16,050 Þannig að ég gat auðvitað - 786 00:35:16,050 --> 00:35:18,450 í lok dags, það konar kjánalegt sögu vegna þess að við gerum bara þetta. 787 00:35:18,450 --> 00:35:22,050 En ef ég vissi ekki um það rekstraraðila, eða ég var ekki leyft að 788 00:35:22,050 --> 00:35:27,700 breyta henni í helstu sjálft, hvernig annars gæti ég innleiða Ken hérna, þetta 789 00:35:27,700 --> 00:35:31,450 tími ekki teningur heldur að hækka? 790 00:35:31,450 --> 00:35:32,700 Hvernig breyti ég þetta í hér? 791 00:35:32,700 --> 00:35:33,025 Já. 792 00:35:33,025 --> 00:35:34,275 [Inaudible] 793 00:35:37,430 --> 00:35:38,000 DAVID J. Malan: Allt í lagi, gott. 794 00:35:38,000 --> 00:35:40,490 Svo hvers vegna gera ég ekki fara í x? 795 00:35:40,490 --> 00:35:44,390 Og þá frekar en að skila því, hvers vegna ekki ég bara aftur x + 1? 796 00:35:44,390 --> 00:35:46,370 Nú hafa nokkrar fleiri hlutir til að breyta hér. 797 00:35:46,370 --> 00:35:47,530 Ég er á réttri leið. 798 00:35:47,530 --> 00:35:48,910 Hvað annað þarf ég að fínstilla? 799 00:35:48,910 --> 00:35:49,470 Einhver annar. 800 00:35:49,470 --> 00:35:49,882 Já? 801 00:35:49,882 --> 00:35:51,530 [Inaudible] 802 00:35:51,530 --> 00:35:53,520 DAVID J. Malan: Ég þarf að skipta um aftur tegund vöxtur 803 00:35:53,520 --> 00:35:54,590 því það er ekki ógilt. 804 00:35:54,590 --> 00:35:56,650 Tóm þýðir ekkert er að koma aftur. 805 00:35:56,650 --> 00:35:57,600 En greinilega, nú er það. 806 00:35:57,600 --> 00:36:01,280 Svo þetta þarf að breyta til að int að vera í samræmi við það sem 807 00:36:01,280 --> 00:36:02,580 Ég er reyndar að fara aftur. 808 00:36:02,580 --> 00:36:04,580 >> Nú er eitthvað annað enn þrjótur hér. 809 00:36:04,580 --> 00:36:04,982 Já? 810 00:36:04,982 --> 00:36:06,590 [Inaudible] 811 00:36:06,590 --> 00:36:07,630 DAVID J. Malan: Þannig að ég þarf að hækka x? 812 00:36:07,630 --> 00:36:10,336 [Inaudible] 813 00:36:10,336 --> 00:36:11,880 DAVID J. Malan: Ah, þannig að ég þarf að fara x. 814 00:36:11,880 --> 00:36:13,300 Þannig að ég þarf að gera þetta hérna. 815 00:36:17,590 --> 00:36:19,690 Svo frumgerð, ég verð að breyta þessu upp hér. 816 00:36:19,690 --> 00:36:21,290 Svo hefur þetta að verða int. 817 00:36:21,290 --> 00:36:22,820 Þetta er að verða - 818 00:36:22,820 --> 00:36:23,670 Hmm. 819 00:36:23,670 --> 00:36:24,710 Ég hef í raun villu hérna. 820 00:36:24,710 --> 00:36:25,780 Við skulum laga þetta einn fyrst. 821 00:36:25,780 --> 00:36:27,990 Hvað ætti þetta að vera í raun og veru? 822 00:36:27,990 --> 00:36:29,330 Svo það hlýtur að vera int eitthvað. 823 00:36:29,330 --> 00:36:30,340 Það gæti verið x. 824 00:36:30,340 --> 00:36:33,120 En hreinskilnislega, ef þú byrjar að hringja allar breytur x þína, það er að fara að fá 825 00:36:33,120 --> 00:36:35,250 minna og minna ljóst hver er hver. 826 00:36:35,250 --> 00:36:38,210 Svo við skulum bara geðþótta velja mismunandi nafngiftir venju fyrir minn 827 00:36:38,210 --> 00:36:40,220 hjálpar aðgerðir, aðgerðir sem ég er að skrifa. 828 00:36:40,220 --> 00:36:41,100 Við munum kalla það. 829 00:36:41,100 --> 00:36:44,500 Eða við gætum kalla það - við skulum kalla það even_number að vera enn skýrari. 830 00:36:44,500 --> 00:36:47,610 Svo ég verð að fara aftur hvað númerið er auk 1. 831 00:36:47,610 --> 00:36:49,720 Og nú þarf ég að breyta eitt annað hlutur upp hér og einn 832 00:36:49,720 --> 00:36:50,700 annar hlutur upp hér. 833 00:36:50,700 --> 00:36:54,150 Hvað þarf ég að breyta á línu 21 fyrst? 834 00:36:54,150 --> 00:36:55,390 Ég verð að framselja það til x. 835 00:36:55,390 --> 00:36:57,480 Svo ég get ekki bara hringt vöxtur x. 836 00:36:57,480 --> 00:37:01,000 Ég þarf að muna að svar með því að breyta gildi x á 837 00:37:01,000 --> 00:37:02,020 vinstri hönd. 838 00:37:02,020 --> 00:37:04,930 Og jafnvel þó að x er nú á vinstri og hægri, það er algerlega allt í lagi vegna þess að 839 00:37:04,930 --> 00:37:08,370 Hægra megin verður keyrð fyrst þá fær plopped í vinstri 840 00:37:08,370 --> 00:37:10,240 hönd hlutur, x í þessu tilfelli. 841 00:37:10,240 --> 00:37:11,900 Og svo loks, þetta er auðvelt festa núna. 842 00:37:11,900 --> 00:37:15,080 Þetta ætti bara að passa hvað er þarna fyrir neðan. 843 00:37:15,080 --> 00:37:17,120 Int númer. 844 00:37:17,120 --> 00:37:17,320 >> Allt í lagi. 845 00:37:17,320 --> 00:37:20,290 Svo allt fullt af breytingum fyrir mjög heimskur virka. 846 00:37:20,290 --> 00:37:24,250 En fulltrúi af hlutum sem við munum í auknum mæli að gera. 847 00:37:24,250 --> 00:37:25,490 Svo gera buggy4. 848 00:37:25,490 --> 00:37:26,485 Ég hef ruglaður upp einhvers staðar. 849 00:37:26,485 --> 00:37:27,520 Guð minn góður. 850 00:37:27,520 --> 00:37:29,660 Fimm mistök í, eins og, sex lína program. 851 00:37:29,660 --> 00:37:36,500 Svo er það rangt á línu 18, eðli 5? 852 00:37:36,500 --> 00:37:36,970 Allt í lagi. 853 00:37:36,970 --> 00:37:39,330 Þannig að ég verð að lýsa þessari int. 854 00:37:39,330 --> 00:37:39,630 Allt í lagi. 855 00:37:39,630 --> 00:37:41,790 Svo skulum við sjá, a heild búnt af annar villur. 856 00:37:41,790 --> 00:37:42,230 Oh my god. 857 00:37:42,230 --> 00:37:43,880 19, 18, 21. 858 00:37:43,880 --> 00:37:46,020 En aftur, við skulum bara hreinsa skjáinn - 859 00:37:46,020 --> 00:37:48,660 Control L hér - og aftur hlaupa Clang. 860 00:37:48,660 --> 00:37:51,340 Svo fimm vandamál í raun bara eitt. 861 00:37:51,340 --> 00:37:53,500 Svo nú skulum við hlaupa buggy4, Enter. 862 00:37:53,500 --> 00:37:54,150 Whew. 863 00:37:54,150 --> 00:37:57,434 x hefur verið incremented rétt. 864 00:37:57,434 --> 00:37:58,420 >> Allt í lagi. 865 00:37:58,420 --> 00:38:01,700 Einhverjar spurningar um hvernig á að hækka tölur? 866 00:38:01,700 --> 00:38:02,896 Já? 867 00:38:02,896 --> 00:38:06,864 Hátalarar 2: Hvers vegna er það að þú getur bara breytt X að tala í breytu 868 00:38:06,864 --> 00:38:08,860 nafn og það mun vita hvað þú átt við? 869 00:38:08,860 --> 00:38:09,600 DAVID J. Malan: Góð spurning. 870 00:38:09,600 --> 00:38:13,130 Hvernig er það að ég get bara breyta x í tölu og the program vilja vita 871 00:38:13,130 --> 00:38:13,990 strax? 872 00:38:13,990 --> 00:38:16,120 Svo aftur, hugsa af það eins og þetta abstrakt. 873 00:38:16,120 --> 00:38:20,110 Svo ef ég er aðal og Ken er stigvaxandi, hreinskilnislega, ég er sama 874 00:38:20,110 --> 00:38:21,540 hvað Ken kallar iPad hans. 875 00:38:21,540 --> 00:38:25,350 Mér er alveg sama hvað hann kallar eitthvað sem hefur að gera með framkvæmd hans 876 00:38:25,350 --> 00:38:26,550 þessa virkni. 877 00:38:26,550 --> 00:38:32,130 Svo er þetta framkvæmd smáatriði sem ég, helstu, ekki 878 00:38:32,130 --> 00:38:33,010 þarft að hugsa um. 879 00:38:33,010 --> 00:38:37,440 Og svo bara að breyta því stöðugt inni í virka, tala hér 880 00:38:37,440 --> 00:38:41,340 og númer hér er allt það tekur svo lengi sem ég laun. 881 00:38:41,340 --> 00:38:43,820 Það er tegund af eins og ef þú hugsa um - margir af okkur, þessir af þú með er ökumaður 882 00:38:43,820 --> 00:38:46,590 leyfi sem hefur ekið, eða ef þú hefur jafnvel ekið á bíl - 883 00:38:46,590 --> 00:38:50,710 flest okkar hafa ekki hugmynd um hvernig bíll virkar undir hetta. 884 00:38:50,710 --> 00:38:54,710 Og bókstaflega, ef þú opna hetta, mest af okkur - ég sjálfur innifalinn - 885 00:38:54,710 --> 00:38:56,580 er ekki að fara að raunverulega vita hvað við erum að horfa á. 886 00:38:56,580 --> 00:38:58,850 Góður af eins og þú getur fundið með efni eins og þetta núna. 887 00:38:58,850 --> 00:39:01,380 En við ekki í raun að sama hvernig bíllinn virkar. 888 00:39:01,380 --> 00:39:05,000 Við þurfum ekki að hugsa hvað allt á stöngum og stimplum og snúrur inni 889 00:39:05,000 --> 00:39:07,700 bíllinn er í raun að gera. 890 00:39:07,700 --> 00:39:11,360 >> Svo eitthvað eins og það sem þú kallar að stimpla ekki máli 891 00:39:11,360 --> 00:39:11,920 hér í þessu tilfelli. 892 00:39:11,920 --> 00:39:12,490 Sama hugmynd. 893 00:39:12,490 --> 00:39:12,670 Já? 894 00:39:12,670 --> 00:39:13,920 [Inaudible] 895 00:39:25,250 --> 00:39:29,530 DAVID J. Malan: Ef það voru fleiri notkun breytu Xa augnabliki síðan, 896 00:39:29,530 --> 00:39:32,220 þú, sem forritari, þyrfti að breyta þeim alls staðar. 897 00:39:32,220 --> 00:39:35,230 Eða þú gætir bókstaflega gert File Valmynd, og þá finna / skipta 898 00:39:35,230 --> 00:39:36,270 eitthvað svoleiðis. 899 00:39:36,270 --> 00:39:40,110 En þú ert að fara að þurfa að gera þessar breytingar sjálfur. 900 00:39:40,110 --> 00:39:41,200 Þú verður að vera í samræmi. 901 00:39:41,200 --> 00:39:42,450 [Inaudible] 902 00:39:47,200 --> 00:39:48,960 DAVID J. Malan: A sérstakri röð eins og hér? 903 00:39:48,960 --> 00:39:52,660 Ef þetta var int annað númer? 904 00:39:52,660 --> 00:39:52,940 Já. 905 00:39:52,940 --> 00:39:56,430 Svo skiptir máli til þess þegar þú ert að hringja í aðgerð. 906 00:39:56,430 --> 00:40:00,350 Svo ef ég væri að hringja vöxtur hér með eitthvað kommu eitthvað, 907 00:40:00,350 --> 00:40:01,400 það er bein kortlagning. 908 00:40:01,400 --> 00:40:04,490 Fyrsta breyta, hvað sem það er kallað, er afrit af fyrsta 909 00:40:04,490 --> 00:40:05,480 rök hérna. 910 00:40:05,480 --> 00:40:07,280 Því miður, þetta ætti ekki að vera sviga. 911 00:40:07,280 --> 00:40:09,300 Annað línur rök upp með seinni. 912 00:40:09,300 --> 00:40:11,220 >> Svo til þess, já, mál. 913 00:40:11,220 --> 00:40:11,490 Allt í lagi. 914 00:40:11,490 --> 00:40:13,360 Því miður tók ég langa leið til að komast þangað. 915 00:40:13,360 --> 00:40:14,610 Aðrar spurningar? 916 00:40:16,460 --> 00:40:16,850 Allt í lagi. 917 00:40:16,850 --> 00:40:20,300 Svo við skulum sjá hvort við getum ekki mála mynd af hvað er í raun að fara á 918 00:40:20,300 --> 00:40:22,160 hér undir hetta, svo að segja. 919 00:40:22,160 --> 00:40:26,310 Þannig að þetta er rétthyrningur sem gæti gefið minni tölvunnar. 920 00:40:26,310 --> 00:40:31,240 Svo jafnvel ef þú hefur enga hugmynd um hvernig minni virkar eða hvernig RAM virkar, að minnsta kosti 921 00:40:31,240 --> 00:40:33,590 gera ráð fyrir að þú hefur bunches af henni þessa dagana. 922 00:40:33,590 --> 00:40:34,740 Þú hefur fengið megabæti af því. 923 00:40:34,740 --> 00:40:35,760 Þú hefur fengið gígabæta af því. 924 00:40:35,760 --> 00:40:40,690 Og við vitum frá núlli viku að bæti er bara hvað? 925 00:40:40,690 --> 00:40:41,280 8 bitar. 926 00:40:41,280 --> 00:40:42,730 Einmitt, svo 8 núllum og sjálfur. 927 00:40:42,730 --> 00:40:46,300 Svo ef tölvan þín hefur tónleikum af RAM, tveir gigs af RAM þessa dagana, hefur þú a 928 00:40:46,300 --> 00:40:54,450 milljarða eða 2 milljarðar bæti af minni, eða u.þ.b. 8 milljarða eða 16 milljarða 929 00:40:54,450 --> 00:40:56,560 bits, inni á tölvunni þinni. 930 00:40:56,560 --> 00:40:59,710 Nú ólíkt litla Sjaldgæf Willy dæmi, það er ekki segulmagnaðir agnir 931 00:40:59,710 --> 00:41:00,560 yfirleitt lengur. 932 00:41:00,560 --> 00:41:04,470 Æ, í fartölvur minnsta kosti, það er Solid State drif, SSDs, að 933 00:41:04,470 --> 00:41:05,560 bara hafa enga hreyfanlega hluti. 934 00:41:05,560 --> 00:41:06,710 Það er allt rafrænt. 935 00:41:06,710 --> 00:41:08,070 Það er allt rafmagn byggt. 936 00:41:08,070 --> 00:41:12,360 Svo held þó, þessa rétthyrnings sem bara alþingismaður einn eða tveir 937 00:41:12,360 --> 00:41:13,930 gígabæta af minni sem þú hefur. 938 00:41:13,930 --> 00:41:15,500 >> Svo það er klumpur af minni. 939 00:41:15,500 --> 00:41:20,460 Nú hefur the veröld af tölvunarfræði konar skipt burt klumpur af 940 00:41:20,460 --> 00:41:22,570 minni til að gera mismunandi hluti. 941 00:41:22,570 --> 00:41:25,930 Svo til dæmis, ef þetta er RAM tölvunnar - sem leiðbeinandi við að 942 00:41:25,930 --> 00:41:30,400 rétthyrningur þar - kemur í ljós að með því að venju, efst á RAM, þannig að 943 00:41:30,400 --> 00:41:33,170 að tala, er yfirleitt það sem er kallað texta hluti. 944 00:41:33,170 --> 00:41:35,910 Þeir eru núllum og þau sem þú hefur safnað saman. 945 00:41:35,910 --> 00:41:39,040 Svo þegar við höfum litið undir hetta á það a.out er, allt 946 00:41:39,040 --> 00:41:40,360 á núllum og sjálfur - 947 00:41:40,360 --> 00:41:44,000 þegar þú keyrir forrit, eru þeir núllum og sjálfur hlaðinn úr harður 948 00:41:44,000 --> 00:41:46,290 aka inn í eitthvað sem kallast RAM. 949 00:41:46,290 --> 00:41:48,950 Og í RAM, þá eru þeir að setja efst. 950 00:41:48,950 --> 00:41:50,330 Nú á meðan, hefur þú aðra hluti. 951 00:41:50,330 --> 00:41:53,060 Frumstilla gögn forsniðinn gögn. 952 00:41:53,060 --> 00:41:56,440 Þessir tveir swaths af minni átt að alþjóðlegum breytur sem 953 00:41:56,440 --> 00:41:57,530 þú ert ekki nota oft. 954 00:41:57,530 --> 00:42:00,630 En stundum ef þú gerir það, enda þeir upp þarna eins og heilbrigður. 955 00:42:00,630 --> 00:42:01,620 Þá er einhver önnur efni. 956 00:42:01,620 --> 00:42:04,130 Umhverfi breytur, sem við munum ekki eyða miklum tíma í. 957 00:42:04,130 --> 00:42:06,120 En þá tvö mikilvæg atriði sem mun koma aftur um þetta 958 00:42:06,120 --> 00:42:08,130 önn, stafla og hrúga. 959 00:42:08,130 --> 00:42:12,280 >> Svo mest af minni tölvunnar er frátekið þegar í gangi áætlun um 960 00:42:12,280 --> 00:42:14,880 eitthvað sem heitir á mánudaginn og eitthvað sem kallast hrúga. 961 00:42:14,880 --> 00:42:16,940 Og við erum ekki að fara að tala um hrúga í dag, en við munum 962 00:42:16,940 --> 00:42:18,180 tala um mánudaginn. 963 00:42:18,180 --> 00:42:22,910 Og stafla er ætlað að töfra upp visual eins og matsal 964 00:42:22,910 --> 00:42:26,120 máltíð stæði í Mather House, eða hvar sem þú verður að vera, þar sem 965 00:42:26,120 --> 00:42:27,810 matsalur starfsfólk hreinsa þá á hverjum degi. 966 00:42:27,810 --> 00:42:30,180 Þeir stafla þeim upp frá gólfi upp. 967 00:42:30,180 --> 00:42:33,800 Og álíka í minni, er þessi hugmynd um að setja eitthvað á 968 00:42:33,800 --> 00:42:36,740 stafla, setja eitthvað á mánudaginn, setja eitthvað á mánudaginn. 969 00:42:36,740 --> 00:42:38,000 Og hvað er átt við með þessu? 970 00:42:38,000 --> 00:42:41,430 Jæja, við skulum stækka bara neðri hluta myndarinnar, tölva er þinn 971 00:42:41,430 --> 00:42:43,990 RAM, að leggja eftirfarandi. 972 00:42:43,990 --> 00:42:48,300 Það kemur í ljós að þegar þú keyrir forrit eins a.out eða halló, hvað 973 00:42:48,300 --> 00:42:49,920 The program er að þú hefur skrifað, 974 00:42:49,920 --> 00:42:53,030 aftur, eru þeir núllum og sjálfur hlaðinn af harða disknum þínum - sem er 975 00:42:53,030 --> 00:42:56,190 langtíma geymslu, helst þar, jafnvel þegar þú draga the tappi - 976 00:42:56,190 --> 00:42:57,220 hlaðinn inn vinnsluminni. 977 00:42:57,220 --> 00:42:59,020 RAM er hraðari en harða diska. 978 00:42:59,020 --> 00:43:00,700 Það er minna en harða diska. 979 00:43:00,700 --> 00:43:03,490 En það er þar sem forrit búa á meðan þú ert að keyra þá. 980 00:43:03,490 --> 00:43:06,380 >> Svo þú tvöfaldur smellur forrit á Mac eða PC - það er hlaðinn úr 981 00:43:06,380 --> 00:43:07,750 harður ökuferð inn í vinnsluminni. 982 00:43:07,750 --> 00:43:11,760 Um leið og það er hlaðið inn RAM, fara á núllum og sjálfur á leiðinni ofan að 983 00:43:11,760 --> 00:43:13,130 svokallaða texta hluti. 984 00:43:13,130 --> 00:43:17,040 En svo um leið og forritið þitt raunverulega byrjar að keyra, helstu 985 00:43:17,040 --> 00:43:18,140 virka er kallað. 986 00:43:18,140 --> 00:43:21,070 Og helstu, eins og við höfum séð, hefur oft staðbundna breytum. 987 00:43:21,070 --> 00:43:24,560 Og það hefur ints og strengir og chars og þess háttar. 988 00:43:24,560 --> 00:43:28,300 Svo ef forritið þitt sem þú hefur skrifað eða forrit sem þú þarft 989 00:43:28,300 --> 00:43:33,680 tvöfaldur smellt notað nokkrar breytur innan helstu, enda þeir upp á að 990 00:43:33,680 --> 00:43:37,020 neðst á stafla þinn af minni, svo að segja. 991 00:43:37,020 --> 00:43:39,160 Nú meira concretely, hvað þýðir þetta í raun? 992 00:43:39,160 --> 00:43:44,080 Þetta þýðir bara að ef við værum að fara að telja það - 993 00:43:44,080 --> 00:43:49,380 Ef við værum að fara að tala um bæti af RAM í tölvunni þinni, eftir því að 994 00:43:49,380 --> 00:43:51,650 þetta gæti verið bæti númer núll. 995 00:43:51,650 --> 00:43:56,130 Þetta gæti verið bæti númer eitt, tvö, þrjú, fjögur, fimm, sex, allt 996 00:43:56,130 --> 00:43:57,290 leið upp að eins - 997 00:43:57,290 --> 00:44:01,520 2 milljarðar yrði alla leið þarna efst. 998 00:44:01,520 --> 00:44:05,960 Svo í öðrum orðum, þegar við tölum um RAM eða minni í skilmálar af bæti það 999 00:44:05,960 --> 00:44:09,680 þýðir bara að einhver hefur ákveðið hvað ég á að telja hvert 1000 00:44:09,680 --> 00:44:11,110 þá klumpur af minni. 1001 00:44:11,110 --> 00:44:16,950 >> Svo þegar þú þarft 32 bita fyrir int eða þú þarft 8 bita fyrir bleikju, þar sem 1002 00:44:16,950 --> 00:44:18,320 þeir enda í minni? 1003 00:44:18,320 --> 00:44:20,650 Jæja eðli, enda þeir bara upp neðst á þessu 1004 00:44:20,650 --> 00:44:21,780 hlutur sem heitir stafla. 1005 00:44:21,780 --> 00:44:25,670 En það sem er áhugavert nú þegar helsta kallar virka. 1006 00:44:25,670 --> 00:44:28,830 Segjum fall kallast foo, bara handahófskennt nafn. 1007 00:44:28,830 --> 00:44:32,480 Hvað gerist er aðal er neðst í þessum stafla af minni. 1008 00:44:32,480 --> 00:44:35,630 Foo nú er sett ofan á helsta í minni. 1009 00:44:35,630 --> 00:44:40,020 Svo allir heimamaður breytur sem foo hefur endað konar hugtök yfir 1010 00:44:40,020 --> 00:44:40,770 þeir í haf. 1011 00:44:40,770 --> 00:44:46,920 Ef foo kallar annan valkost sem heitir Bar, þessir breytur endanum hér. 1012 00:44:46,920 --> 00:44:49,790 Ef símtöl eitthvað annað, hér, hér, hér. 1013 00:44:49,790 --> 00:44:53,900 Svo er það sem er áhugavert um að keyra forrit sem eins og þú kalla aðgerðir, 1014 00:44:53,900 --> 00:44:57,720 og eins og þeir aðgerðir kalla aðgerðir, og sem þær aðgerðir kalla aðgerðir, 1015 00:44:57,720 --> 00:45:00,980 þú byggja upp þessa stafla aðgerðir í minni. 1016 00:45:00,980 --> 00:45:06,740 Og aðeins einu sinni skilar þú byrjar að fá að minni aftur. 1017 00:45:06,740 --> 00:45:11,190 Svo er einn af the auðveldlega leiðir til að keyra út af minni í tölvuforriti til 1018 00:45:11,190 --> 00:45:14,170 skrifa aðgerðir sem aldrei koma aftur. 1019 00:45:14,170 --> 00:45:16,650 >> Svo til dæmis, við skulum sýna eins mikið með 1020 00:45:16,650 --> 00:45:18,460 viljandi þrjótur program. 1021 00:45:18,460 --> 00:45:24,690 Leyfðu mér að fara á undan og gera # include , int main (tóm). 1022 00:45:24,690 --> 00:45:31,270 Og ég ætla að gera á meðan (2> 1), sem verður að öllum líkindum ekki alltaf 1023 00:45:31,270 --> 00:45:33,370 breyting á okkur. 1024 00:45:33,370 --> 00:45:37,720 Og láta mig fara á undan núna og gera printf. 1025 00:45:37,720 --> 00:45:39,950 Raunverulega, það er að fara að vera minna sjónrænt áhugavert. 1026 00:45:39,950 --> 00:45:40,460 Við skulum gera þetta. 1027 00:45:40,460 --> 00:45:44,840 Fyrir int (i = 0; i> 0). 1028 00:45:44,840 --> 00:45:49,740 Við skulum gera þetta mistök, i + +. 1029 00:45:49,740 --> 00:45:51,150 Og við skulum ekki hér printf. 1030 00:45:51,150 --> 00:45:52,550 Við skulum æfa það sem ég var að predika. 1031 00:45:52,550 --> 00:45:54,090 Við skulum hafa a aðferð hér. 1032 00:45:54,090 --> 00:46:00,860 Tóm Chorus, og við munum segja int i. 1033 00:46:00,860 --> 00:46:02,295 Og þá ætla ég að segja, printf - 1034 00:46:04,871 --> 00:46:06,790 ó, við skulum gera þetta meira áhugavert. 1035 00:46:06,790 --> 00:46:08,350 Við skulum reyndar ekki prenta eitthvað. 1036 00:46:08,350 --> 00:46:10,530 Við skulum bara gera þetta. 1037 00:46:10,530 --> 00:46:11,780 Chorus (i). 1038 00:46:16,630 --> 00:46:17,000 >> Allt í lagi. 1039 00:46:17,000 --> 00:46:20,040 Svo er þetta gallaðir því hvers vegna? 1040 00:46:20,040 --> 00:46:22,850 Ég er að gera þetta upp eins og ég fer vegna þess að forritið er í raun ekki að gera neitt 1041 00:46:22,850 --> 00:46:23,420 af áhuga. 1042 00:46:23,420 --> 00:46:24,670 En það er ekki markmiðið. 1043 00:46:24,670 --> 00:46:30,440 Markmiðið er að skrifa forrit sem helsta virka ekki hvað, virðist? 1044 00:46:30,440 --> 00:46:31,370 Kalla sig. 1045 00:46:31,370 --> 00:46:32,600 Og í raun, þurfum við ekki lykkju. 1046 00:46:32,600 --> 00:46:36,070 Við skulum einfalda jafnvel þetta bara þannig að ekki missa sjónar á raunverulega 1047 00:46:36,070 --> 00:46:37,310 grundvallaratriði galla. 1048 00:46:37,310 --> 00:46:39,200 Helstu símtöl kór að syngja nokkur viðlaginu. 1049 00:46:39,200 --> 00:46:41,760 Og ég gerði eitthvað heimskulegt, og ég hafði Viðlag kalla kór því ég ráð 1050 00:46:41,760 --> 00:46:43,550 einhver annar var að fara að framkvæma það kannski. 1051 00:46:43,550 --> 00:46:45,960 Og nú er þetta ekki að fara að taka saman ennþá. 1052 00:46:45,960 --> 00:46:48,340 Ég þarf að gera hvað? 1053 00:46:48,340 --> 00:46:49,700 Ég þarf frumgerð, man. 1054 00:46:49,700 --> 00:46:55,520 Þannig að ég þarf að hafa þig hér ógilt kór (int i);. 1055 00:46:55,520 --> 00:46:57,470 >> Svo nú, ef ég fer niður - 1056 00:46:57,470 --> 00:46:59,030 í raun, við skulum nota stærri glugga. 1057 00:46:59,030 --> 00:47:01,670 Við skulum fara á undan og gera kór. 1058 00:47:01,670 --> 00:47:06,000 Við skulum fara á undan og gera kór. 1059 00:47:06,000 --> 00:47:08,302 Notkun óþekkt declarer i. 1060 00:47:08,302 --> 00:47:09,860 Ó, það var heimskulegt. 1061 00:47:09,860 --> 00:47:11,020 Við þurfum ekki á rök. 1062 00:47:11,020 --> 00:47:13,680 Við skulum bara gera þetta. 1063 00:47:13,680 --> 00:47:14,550 Við viljum hafði byrjað á þennan hátt. 1064 00:47:14,550 --> 00:47:16,160 Það hefði verið miklu auðveldara forrit til að skrifa. 1065 00:47:16,160 --> 00:47:20,100 Þannig að það. 1066 00:47:20,100 --> 00:47:23,870 Nú skulum fara yfir til Terminal gluggann minn, með tilvísun til-hlaupa Clang. 1067 00:47:23,870 --> 00:47:26,900 Og hér við fara. 1068 00:47:26,900 --> 00:47:28,020 Það var mjög hratt. 1069 00:47:28,020 --> 00:47:30,690 Hvað í raun gerðist, þó? 1070 00:47:30,690 --> 00:47:33,430 Jæja, núna er ég mun bæta prenta lína, svo við getum séð. 1071 00:47:33,430 --> 00:47:41,330 Svo láta mig segja printf, við skulum segja, ég er hér. 1072 00:47:41,330 --> 00:47:43,470 Jæja, ekki breytur, munum við láta það svona. 1073 00:47:43,470 --> 00:47:44,860 Leyfðu mér aftur að keyra að. 1074 00:47:44,860 --> 00:47:47,940 Leyfðu mér aftur hlaupa Chorus. 1075 00:47:47,940 --> 00:47:51,235 Og koma á. 1076 00:47:53,880 --> 00:47:55,130 Halda áfram. 1077 00:47:57,630 --> 00:47:59,750 Sem hliðar, hvers vegna hefur það hrundi ekki enn? 1078 00:47:59,750 --> 00:48:02,050 Skiptingu kenna gerðist frábær hratt áður. 1079 00:48:02,050 --> 00:48:04,250 [Inaudible] 1080 00:48:04,250 --> 00:48:04,830 DAVID J. Malan: Einmitt. 1081 00:48:04,830 --> 00:48:06,350 Svo tekur það tíma til að prenta. 1082 00:48:06,350 --> 00:48:08,370 Það tekur bara meiri vinnu á hluta tölva '. 1083 00:48:08,370 --> 00:48:09,550 Og þarna er hún. 1084 00:48:09,550 --> 00:48:10,620 Skiptingu kenna. 1085 00:48:10,620 --> 00:48:12,140 >> Svo taka bara hversu hratt forrit keyra. 1086 00:48:12,140 --> 00:48:14,110 Ef þú ert ekki að prenta neitt, frábær fljótur. 1087 00:48:14,110 --> 00:48:18,100 En við fengum samt þessa skiptingu galli því hvað var að gerast? 1088 00:48:18,100 --> 00:48:21,310 Jæja, ef þú hugsar um hvernig minni tölvunnar er sett fram, þetta 1089 00:48:21,310 --> 00:48:22,890 verður að vera aðal. 1090 00:48:22,890 --> 00:48:23,800 En hér - 1091 00:48:23,800 --> 00:48:28,670 skulum kalla bara þessa viðlaginu, og við skulum kalla þennan kór. 1092 00:48:28,670 --> 00:48:33,420 Og nú ef ég fagurfræði rétt minn, þetta er bara að fara að segja kór, 1093 00:48:33,420 --> 00:48:38,060 Viðlag Viðlag Viðlag Viðlag Viðlag Viðlag auglýsingar nauseum. 1094 00:48:38,060 --> 00:48:39,920 Og að lokum, hvað er að fara að gerast? 1095 00:48:39,920 --> 00:48:46,690 Ef stór mynd bókstaflega er þetta, það gerist bara hugtök? 1096 00:48:46,690 --> 00:48:48,320 Stafla overruns hrúga. 1097 00:48:48,320 --> 00:48:52,400 Eða verra, Farið þér bara allt, þar á meðal texta hluti, sem er 1098 00:48:52,400 --> 00:48:54,530 á núllum og þau sem tákna program. 1099 00:48:54,530 --> 00:48:56,690 Í stuttu máli, þetta er bara frábær, frábær slæmt. 1100 00:48:56,690 --> 00:48:56,860 Hægri? 1101 00:48:56,860 --> 00:48:58,620 Program hefur stefnt úr böndunum. 1102 00:48:58,620 --> 00:49:02,840 Þú ert að nota vegur meira minni en þú ætlaðir allt vegna heimskulegt 1103 00:49:02,840 --> 00:49:03,920 mistök í þessu tilfelli. 1104 00:49:03,920 --> 00:49:08,160 Eða í þessu tilfelli, mjög vísvitandi gert virka kalla sig. 1105 00:49:08,160 --> 00:49:09,210 Nú er þetta ekki allt slæmt. 1106 00:49:09,210 --> 00:49:12,540 Aðgerðir kalla sig hefur í raun mikið vald 1107 00:49:12,540 --> 00:49:13,700 þegar þú notar það rétt. 1108 00:49:13,700 --> 00:49:15,650 Ég hef ekki notað það á réttan hátt hér. 1109 00:49:15,650 --> 00:49:16,940 >> Svo er þetta ekki allt slæmt. 1110 00:49:16,940 --> 00:49:20,620 En sú staðreynd að ég hef aldrei í raun að hætta að kalla mig er grundvallaratriði 1111 00:49:20,620 --> 00:49:23,050 slappleiki hér á þessari áætlun. 1112 00:49:23,050 --> 00:49:25,090 Hvar erum við að fara með þetta allt? 1113 00:49:25,090 --> 00:49:26,230 Jæja, hvað er raunverulega að gerast? 1114 00:49:26,230 --> 00:49:30,010 Þegar ég kalla vöxtur virka, eins og við vorum að gera í þessum dæmum, 1115 00:49:30,010 --> 00:49:33,290 Ég hafa gildi eins og 1 sem ég framhjá inn 1116 00:49:33,290 --> 00:49:35,820 Ég fara í afrit af númer eitt. 1117 00:49:35,820 --> 00:49:37,080 Svo gerist eftirfarandi. 1118 00:49:37,080 --> 00:49:40,390 Svo skulum við fara í aukningu dæmi. 1119 00:49:40,390 --> 00:49:44,230 Og þessi strákur rétt hérna. 1120 00:49:44,230 --> 00:49:46,800 Svo hér er það sem er raunverulega að gerast. 1121 00:49:46,800 --> 00:49:50,770 Þegar ég kallaði vöxtur, og ég fara í x, pictorially hvað er 1122 00:49:50,770 --> 00:49:53,660 fara hér er þetta - 1123 00:49:53,660 --> 00:50:00,240 ef ég gildi 1. geymdar hér, og ég kalla reyndar vöxtur sem 1124 00:50:00,240 --> 00:50:02,680 er nú kölluð kór - 1125 00:50:02,680 --> 00:50:04,010 Já, það er að henda mér út hér. 1126 00:50:04,010 --> 00:50:06,750 Svo við skulum kalla þessa vöxtur. 1127 00:50:06,750 --> 00:50:09,420 Og við vitum ekki hvað þetta næsta aðgerð er að fara til vera. 1128 00:50:09,420 --> 00:50:14,270 Svo hvað er raunverulega að gerast er hér einhvers staðar á helstu, ég er með klumpur af 1129 00:50:14,270 --> 00:50:16,670 minni sem er að geyma númer 1. 1130 00:50:16,670 --> 00:50:19,730 Þegar ég kalla vöxtur, ég nota annað klumpur af minni, en nú er ég 1131 00:50:19,730 --> 00:50:20,840 hafa afrit af 1. 1132 00:50:20,840 --> 00:50:25,480 Þegar ég hækka þessi gildi, þetta verður 2 - hræðilega skrifað á 1133 00:50:25,480 --> 00:50:26,420 skjár hér. 1134 00:50:26,420 --> 00:50:30,550 En þá, hvað gerist eins fljótt og skilar vöxtur? 1135 00:50:30,550 --> 00:50:34,610 Þetta minni bara fær afhent aftur til the stýrikerfi, sem þýðir allt 1136 00:50:34,610 --> 00:50:37,470 þú hefur gert er ekkert gagnlegt. 1137 00:50:37,470 --> 00:50:43,460 Sá sem var upphaflega að finna í Main er enn í raun þar. 1138 00:50:43,460 --> 00:50:44,650 >> Hvar erum við að fara með þetta? 1139 00:50:44,650 --> 00:50:49,400 Jæja, kemur í ljós að í minni þú hefur þetta aftur á bak röð 1140 00:50:49,400 --> 00:50:50,940 bytes sem hægt er að setja efni inn 1141 00:50:50,940 --> 00:50:53,760 Og það kemur í ljós að við höfum nú þegar séð eitthvað sem felur í sér að setja 1142 00:50:53,760 --> 00:50:55,100 það aftur til baka til baka til baka. 1143 00:50:55,100 --> 00:51:00,170 Hvað er band, byggt á viku eitt og nú viku tvö? 1144 00:51:00,170 --> 00:51:01,840 Svo það er bara safn af stöfum. 1145 00:51:01,840 --> 00:51:05,290 Svo kemur í ljós, rétt eins og þú getur sett númer í minni, sama hátt er hægt 1146 00:51:05,290 --> 00:51:06,900 setja stafi í minni. 1147 00:51:06,900 --> 00:51:09,810 Og þegar við erum að byrja að setja stafi í minni aftur til baka til baka til 1148 00:51:09,810 --> 00:51:12,800 aftur kemur það út að nota einföldustu hlutum eins og að lykkja eða 1149 00:51:12,800 --> 00:51:14,510 á meðan lykkja, getum við iterate - 1150 00:51:14,510 --> 00:51:17,130 frá vinstri til hægri á stöfum í streng - 1151 00:51:17,130 --> 00:51:20,720 og byrja að nudda þá í mismunandi stafi að öllu leyti. 1152 00:51:20,720 --> 00:51:25,550 A gæti orðið B. B gæti orðið C. Svo að lokum, getum við tekið 1153 00:51:25,550 --> 00:51:28,830 English setning sem raunverulega vit og breyta hverju þeirra 1154 00:51:28,830 --> 00:51:32,440 bréf eitt í einu með því að ganga í gegnum minni tölvunnar okkar vinstri til 1155 00:51:32,440 --> 00:51:34,300 rétt til raunverulega dulkóða. 1156 00:51:34,300 --> 00:51:36,590 >> Svo skulum taka fimm mínútna hlé okkar hér, og þegar við komum til baka, munum við 1157 00:51:36,590 --> 00:51:39,060 byrja þetta ferli spæna upplýsingar. 1158 00:51:41,640 --> 00:51:43,180 >> Allt í lagi. 1159 00:51:43,180 --> 00:51:48,440 Svo áður en við kafa í sumar Crypto og þetta kallast fylki, láttu mig 1160 00:51:48,440 --> 00:51:51,610 hlé fyrir einhverjar spurningar því mér finnst eins og ég virkilega svona muddled sumar 1161 00:51:51,610 --> 00:51:52,230 þessi efni. 1162 00:51:52,230 --> 00:51:53,940 Svo skulum við festa nú ef við getum. 1163 00:51:53,940 --> 00:51:56,480 Þannig að við töluðum bara um gildi aftur. 1164 00:51:56,480 --> 00:51:58,630 Við ræddum um rök. 1165 00:51:58,630 --> 00:52:02,330 Og við ræddum um þessa hugmynd, sem við munum koma til baka á næstu vikum til 1166 00:52:02,330 --> 00:52:07,140 koma, að skoða minni og a heild búnt af þessum stafla 1167 00:52:07,140 --> 00:52:08,540 stæði, svo að segja. 1168 00:52:08,540 --> 00:52:13,460 Frá botni á allt, þannig að hver bakki sem fær setja á stafla táknar 1169 00:52:13,460 --> 00:52:15,160 fall sem er nú að vera kölluð. 1170 00:52:17,970 --> 00:52:20,300 Einhverjar spurningar? 1171 00:52:20,300 --> 00:52:22,890 Svo hvernig um - láttu mig reyna að spyrja spurningu. 1172 00:52:22,890 --> 00:52:25,520 Ég að halda áfram að spilla því, en nú it's - you've allir séð andlit drengsins. 1173 00:52:25,520 --> 00:52:27,020 Svo komum við aftur að því. 1174 00:52:27,020 --> 00:52:29,700 >> Svo láta mig spyrja hér. 1175 00:52:29,700 --> 00:52:34,810 Leyfðu mér að einfalda þetta aftur hvað það var áður en sumir af fyrri Q & A. 1176 00:52:34,810 --> 00:52:41,730 Og sú staðreynd að vöxtur er opinn sviga, int númer, lokaður 1177 00:52:41,730 --> 00:52:42,260 sviga. 1178 00:52:42,260 --> 00:52:46,370 Hvað þýðir INT fjöldi tákna? 1179 00:52:46,370 --> 00:52:47,250 [Inaudible] 1180 00:52:47,250 --> 00:52:47,870 DAVID J. Malan: An rök. 1181 00:52:47,870 --> 00:52:50,732 Jæja, en það er óákveðinn greinir í ensku rifrildi? 1182 00:52:50,732 --> 00:52:51,620 [Inaudible] 1183 00:52:51,620 --> 00:52:52,500 DAVID J. Malan: Því miður, hvað er það? 1184 00:52:52,500 --> 00:52:53,150 Hátalarar 3: Eitthvað sem þú fara inn 1185 00:52:53,150 --> 00:52:53,570 DAVID J. Malan: Allt í lagi. 1186 00:52:53,570 --> 00:52:54,780 Svo eitthvað sem fara inn 1187 00:52:54,780 --> 00:52:56,560 Og almennt, það er bara að inntak. 1188 00:52:56,560 --> 00:52:59,860 Ef þú ert að skrifa hlutverk og tilgang sem virka í lífinu er að gera 1189 00:52:59,860 --> 00:53:03,290 eitthvað svolítið öðruvísi í hvert skipti sem þú notar það, þá er eina leiðin fyrir 1190 00:53:03,290 --> 00:53:07,710 að til þess að gerast raunverulega virðist vera að gefa því inntak þannig að það 1191 00:53:07,710 --> 00:53:10,180 getur gert eitthvað annað við það inntak í hvert skipti. 1192 00:53:10,180 --> 00:53:13,590 >> Svo þú þarft að tilgreina tvennt þegar aðgerð tekur inntak. 1193 00:53:13,590 --> 00:53:17,240 Þú þarft að tilgreina nafnið sem þú vilt gefa það inntak, eingöngu fyrir 1194 00:53:17,240 --> 00:53:20,790 eigin þægindi þín þannig að þú getur átt við það í aðgerð sem þú 1195 00:53:20,790 --> 00:53:23,610 sjálfur ert að skrifa, eins og ég gerði hér í línu 32. 1196 00:53:23,610 --> 00:53:27,840 En þú þarft líka að tilgreina tegund þess vegna C er forritunarmál 1197 00:53:27,840 --> 00:53:28,840 sem bara krefst 1198 00:53:28,840 --> 00:53:31,810 að ef þú vilt breyta, þú þarft að segja tölvunni hvað 1199 00:53:31,810 --> 00:53:32,790 gögn slá það er, 1200 00:53:32,790 --> 00:53:35,540 í stórum hluta þannig að hún veit hversu margir bita til 1201 00:53:35,540 --> 00:53:37,230 úthluta fyrir þá breytu. 1202 00:53:37,230 --> 00:53:38,600 Vegna þess að það gæti verið sex - 1203 00:53:38,600 --> 00:53:39,990 Því miður mun það ekki vera sex. 1204 00:53:39,990 --> 00:53:41,050 Það getur verið 16 ára. 1205 00:53:41,050 --> 00:53:41,630 Það getur verið 8. 1206 00:53:41,630 --> 00:53:44,410 Það getur verið 32, jafnvel 64. 1207 00:53:44,410 --> 00:53:45,820 En tölvan þarf að vita. 1208 00:53:45,820 --> 00:53:49,110 Nú táknar int vinstra megin hvað, hins? 1209 00:53:52,825 --> 00:53:53,780 [Inaudible] 1210 00:53:53,780 --> 00:53:54,570 DAVID J. Malan: Hvað er það? 1211 00:53:54,570 --> 00:53:55,390 [Inaudible] 1212 00:53:55,390 --> 00:53:57,920 DAVID J. Malan: The tegund af virka og, nánar tiltekið, að 1213 00:53:57,920 --> 00:53:59,755 tegund framleiðslu þeirra. 1214 00:53:59,755 --> 00:54:00,220 Hægri. 1215 00:54:00,220 --> 00:54:04,220 Svo stendur en málið í sviga inntak þess, ef einhverjar eru, og 1216 00:54:04,220 --> 00:54:06,640 hlutur til vinstri táknar afköst hennar. 1217 00:54:06,640 --> 00:54:10,560 Og í þessu tilfelli, vöxtur skilar greinilega við int. 1218 00:54:10,560 --> 00:54:14,590 Og svo er int aftur gerð þessa aðgerð. 1219 00:54:14,590 --> 00:54:16,090 >> Hvað þýðir það að skila? 1220 00:54:16,090 --> 00:54:19,810 Bókstaflega, þú nota leitarorð aftur. 1221 00:54:19,810 --> 00:54:24,640 Og svo ef það sem þú ert að fara aftur til hægri leitarorð er 1222 00:54:24,640 --> 00:54:28,340 heiltala, þá er það örugglega í samræmi við það sem við höfum lofað. 1223 00:54:28,340 --> 00:54:31,110 Þú getur ekki gert eitthvað eins og þetta - 1224 00:54:31,110 --> 00:54:32,280 halló, heimur - 1225 00:54:32,280 --> 00:54:33,500 vegna þess að það er strengur. 1226 00:54:33,500 --> 00:54:35,440 Vitanlega er það ekki heiltala. 1227 00:54:35,440 --> 00:54:40,450 Svo í stuttu máli, byrði er í raun á okkur, forritari, til að vera nákvæm og 1228 00:54:40,450 --> 00:54:44,730 við það sem við erum að fara aftur og þá í raun fara um aftur það. 1229 00:54:44,730 --> 00:54:49,030 Og svo til að gera tad skýrari samhengi - 1230 00:54:49,030 --> 00:54:50,080 Þarna er hann aftur. 1231 00:54:50,080 --> 00:54:51,060 Samhengi - 1232 00:54:51,060 --> 00:54:52,830 stór koma á óvart að koma í bara smá stund. 1233 00:54:52,830 --> 00:54:57,720 Samhengi hér er nú að minni tölvunnar er, aftur, 1234 00:54:57,720 --> 00:54:59,070 gígabæti, tveggja gígabæta, hvað sem er. 1235 00:54:59,070 --> 00:54:59,630 Kannski er það meira. 1236 00:54:59,630 --> 00:55:00,540 Kannski er það minna. 1237 00:55:00,540 --> 00:55:03,750 En tölvan lítur það eins og að hafa mismunandi kafla. 1238 00:55:03,750 --> 00:55:04,860 Eitthvað fer niður. 1239 00:55:04,860 --> 00:55:06,020 Eitthvað annað fer upp þar. 1240 00:55:06,020 --> 00:55:07,540 Mismunandi efni fer í miðju. 1241 00:55:07,540 --> 00:55:09,300 Og í dag, byrjum við bara að segja þessa sögu. 1242 00:55:09,300 --> 00:55:11,130 >> En við munum koma aftur til þetta með tímanum. 1243 00:55:11,130 --> 00:55:15,000 Fyrir nú, eina stykki af minni við umönnun í raun um er textinn hluti 1244 00:55:15,000 --> 00:55:17,160 því að rétt táknar zeroes og sjálfur 1245 00:55:17,160 --> 00:55:18,460 að Clang hefur outputted. 1246 00:55:18,460 --> 00:55:21,570 Svo þegar þú keyra skipun á lyklaborðinu eins a.out, eða þú tvöfaldur 1247 00:55:21,570 --> 00:55:25,350 Smelltu á táknið á Mac OS eða Windows, er program hlaðinn úr harður 1248 00:55:25,350 --> 00:55:26,930 aka inn í vinnsluminni. 1249 00:55:26,930 --> 00:55:30,850 Og það er plopped efst RAM tölvunnar, svo að segja. 1250 00:55:30,850 --> 00:55:35,470 Nú á meðan, eins og forritið byrjar að keyra og helstu fær kölluð 1251 00:55:35,470 --> 00:55:39,240 forrit sem þú skrifar eða forrit Microsoft eða Apple skrifaði einhverju sinni 1252 00:55:39,240 --> 00:55:42,930 staðbundnar breytur endanum niður á the botn af minni tölvunnar. 1253 00:55:42,930 --> 00:55:46,490 En ef helstu kallar aðra aðgerð sem sjálft hefur breytur eða 1254 00:55:46,490 --> 00:55:48,340 rök, enda þeir upp yfir það. 1255 00:55:48,340 --> 00:55:50,670 Og ef þessi aðgerð kallar eitthvað, enda þeir upp yfir það, 1256 00:55:50,670 --> 00:55:51,840 ofan, fyrir ofan hann. 1257 00:55:51,840 --> 00:55:56,100 Og aðeins einu sinni fall er gert framkvæmd gerir stafla af stæði, svo 1258 00:55:56,100 --> 00:55:58,320 að tala, byrja að fá lægri og lægri. 1259 00:55:58,320 --> 00:56:03,370 Og þetta er það þá, í ​​hnotskurn, útskýrir hvers vegna, þegar þú hringir teningur - 1260 00:56:03,370 --> 00:56:04,660 eða hringt vöxtur - 1261 00:56:04,660 --> 00:56:06,490 þú ert að labba framhjá í afrit af gildi. 1262 00:56:06,490 --> 00:56:09,840 Og hvað það þýðir pictorially er að þú ert bókstaflega að skrifa á 1263 00:56:09,840 --> 00:56:14,540 númer 1 í öðru hluta af minni, að breyta því 1 til 2, að því er varðar 1264 00:56:14,540 --> 00:56:15,360 vöxtur - 1265 00:56:15,360 --> 00:56:17,450 eða til 8, um er að ræða teningur - 1266 00:56:17,450 --> 00:56:21,450 og svo henda því minni í burtu um leið og vöxtur eða teningur 1267 00:56:21,450 --> 00:56:23,410 skilar. 1268 00:56:23,410 --> 00:56:24,267 >> Spurning. 1269 00:56:24,267 --> 00:56:25,517 [Inaudible] 1270 00:56:28,090 --> 00:56:29,970 DAVID J. Malan: Hvar - Global breytur eru geymdar í hvað er 1271 00:56:29,970 --> 00:56:32,960 nú kallast frumstilla gögn eða forsniðinn gögn. 1272 00:56:32,960 --> 00:56:35,900 Munurinn er, ef þú hafa a alheims breytu, og þú gefur því 1273 00:56:35,900 --> 00:56:39,530 strax gildi við samasem merkið, endar það upp á toppinn þar. 1274 00:56:39,530 --> 00:56:43,390 Og ef þú segir bara int x semíkommu án gildi, endar það upp aðeins 1275 00:56:43,390 --> 00:56:46,670 lægri í RAM einfaldlega með því að venju. 1276 00:56:46,670 --> 00:56:49,308 Aðrar spurningar. 1277 00:56:49,308 --> 00:56:49,750 Allt í lagi. 1278 00:56:49,750 --> 00:56:53,040 >> Svo þessari mynd mun koma til baka eins og við fáum fleiri öflugur með hvað við getum gert 1279 00:56:53,040 --> 00:56:53,830 við tölvuna. 1280 00:56:53,830 --> 00:56:58,790 En nú, við skulum hafa stutt hið innra í dulmál, ákveðin tegund af 1281 00:56:58,790 --> 00:57:01,910 dulmál sem ekki leysa öll vandamál heimsins, en hefur leyst 1282 00:57:01,910 --> 00:57:02,480 sumir af þeim. 1283 00:57:02,480 --> 00:57:06,090 Í þessu tilfelli hér, höfum við eitthvað sem kallast leyndarmál lykill dulmál. 1284 00:57:06,090 --> 00:57:10,430 Og leyndarmál lykill dulmál, eins og nafnið bendir til, sækir öryggi sitt 1285 00:57:10,430 --> 00:57:11,330 frá leyndarmál. 1286 00:57:11,330 --> 00:57:14,720 Svo til dæmis, ef þú ert aftur í grunnskóla og þú ert brottför 1287 00:57:14,720 --> 00:57:18,040 lítið leyndarmál ást bréf til strák eða stelpu sem þú ert alger á - ef þú 1288 00:57:18,040 --> 00:57:20,820 langaði að fara að með áhorfendur, sennilega þú vildi ekki skrifa 1289 00:57:20,820 --> 00:57:24,120 svo huga í ensku eða hvað sem móðurmál þitt er, heldur þú 1290 00:57:24,120 --> 00:57:25,800 gæti dulkóða það. 1291 00:57:25,800 --> 00:57:27,820 Eða þú gætir bara sent þeim textaskilaboð þessa dagana. 1292 00:57:27,820 --> 00:57:30,310 En þú gætir í raun fara þá athugasemd um kennslustofunni. 1293 00:57:30,310 --> 00:57:33,820 Og til að gera þetta á öruggan hátt, þannig að vinir þínir og kennarinn 1294 00:57:33,820 --> 00:57:36,820 veit ekki hvað þú ert að skrifa, getur þú koma upp með a sæmilega einfaldur 1295 00:57:36,820 --> 00:57:37,800 reiknirit - 1296 00:57:37,800 --> 00:57:39,290 ungur þó að þú gætir verið - 1297 00:57:39,290 --> 00:57:40,780 bara Scramble orð. 1298 00:57:40,780 --> 00:57:44,390 Svo í stað þess að skrifa, þú gætir skrifað B. Í stað B, gætir þú skrifað 1299 00:57:44,390 --> 00:57:46,670 C. Í stað þess C, þú gætir skrifað D, og ​​svo framvegis. 1300 00:57:46,670 --> 00:57:50,020 Eða þú gætir komið upp með a fleiri háþróaður þýðingu bréfa 1301 00:57:50,020 --> 00:57:51,300 til mismunandi stafi. 1302 00:57:51,300 --> 00:57:55,440 En aflinn er strákur eða stelpa sem þú ert að senda þetta í huga þarf að 1303 00:57:55,440 --> 00:57:56,850 vita eitthvað. 1304 00:57:56,850 --> 00:57:59,620 Hver er það, augljóslega? 1305 00:57:59,620 --> 00:58:01,400 Eins, hvað leyndarmálið er. 1306 00:58:01,400 --> 00:58:04,620 Eins, hvað er að kortlagning á milli eins og BS og CS og DS? 1307 00:58:04,620 --> 00:58:08,780 Er það að bæta bara einn, svo að segja, að hvert bréf til að fara frá 1308 00:58:08,780 --> 00:58:09,730 A til B, B til C? 1309 00:58:09,730 --> 00:58:11,350 Er það flóknara en það? 1310 00:58:11,350 --> 00:58:16,450 Svo þú og mylja þína að hafa þetta leyndarmál upplýsingar. 1311 00:58:16,450 --> 00:58:18,170 En það er góður af a grípa-22 hér. 1312 00:58:18,170 --> 00:58:20,760 Ef þetta er í fyrsta skipti sem þú ert að senda þetta ást bréf í gegnum 1313 00:58:20,760 --> 00:58:25,590 flokki, hvernig er það strákur eða stelpa að fara að vita hvað leyndarmál jafnvel er? 1314 00:58:25,590 --> 00:58:28,450 Svo leyndarmál lykill dulritunarstjórneiningunni ekki leyst öll vandamál heimsins. 1315 00:58:28,450 --> 00:58:30,490 Og það er í raun samband sem við munum koma til baka til 1316 00:58:30,490 --> 00:58:31,370 önn enda. 1317 00:58:31,370 --> 00:58:35,970 >> Á sama hátt, hefur ekkert af okkur sennilega alltaf sent - 1318 00:58:35,970 --> 00:58:39,453 álíka, flestir af okkur veit ekki einhver sem virkar, til dæmis, að 1319 00:58:39,453 --> 00:58:40,300 Amazon.com. 1320 00:58:40,300 --> 00:58:43,130 Og enn, hafa margir af okkur sennilega keypt efni á Amazon.com. 1321 00:58:43,130 --> 00:58:45,670 Og við höfum verið kennt að gera ráð fyrir að þessi E-verslun 1322 00:58:45,670 --> 00:58:47,060 viðskipti eru örugg. 1323 00:58:47,060 --> 00:58:47,210 Hægri? 1324 00:58:47,210 --> 00:58:49,310 The URL segir sennilega https. 1325 00:58:49,310 --> 00:58:51,590 Það er kannski kjánalegt lítill padlock helgimynd einhversstaðar. 1326 00:58:51,590 --> 00:58:54,680 Það er einhvers konar dulmál tryggja kreditkortið þitt 1327 00:58:54,680 --> 00:58:56,980 milli þín og Amazon.com. 1328 00:58:56,980 --> 00:59:00,410 Og enn, ef Dulmálsvísindi felur vita sumir leyndarmál, og enn ég get ekki 1329 00:59:00,410 --> 00:59:03,330 veit einhver á Amazon, og ég hef svo sannarlega ekki komið hvers konar 1330 00:59:03,330 --> 00:59:07,350 leyndarmál og einhver á Amazon, hvernig er tölvan mín eða vafrinn minn að gera þetta? 1331 00:59:07,350 --> 00:59:10,100 Jæja kemur í ljós, þarna er annars konar dulmál samtals að leysa 1332 00:59:10,100 --> 00:59:10,740 þessi vandamál. 1333 00:59:10,740 --> 00:59:13,610 En í dag, munum við leggja áherslu á einföld, þar sem þú getur raða í 1334 00:59:13,610 --> 00:59:18,480 fara að vita sumir leyndarmál, eins og plús 1 eða einhvern kortlagning milli eins og BS. 1335 00:59:18,480 --> 00:59:20,710 >> Og ferlið dulmál felur yfirleitt þetta. 1336 00:59:20,710 --> 00:59:23,550 Þú hafa sumir texta, sýnt er hér á eftir. 1337 00:59:23,550 --> 00:59:26,260 Þú keyra það í gegnum einhvers konar reiknirit eða málsmeðferð 1338 00:59:26,260 --> 00:59:27,670 til að dulkóða það. 1339 00:59:27,670 --> 00:59:31,390 Kannski er það bara verður B, B verður C. Og svo þú endir upp með 1340 00:59:31,390 --> 00:59:32,260 dulmál texta. 1341 00:59:32,260 --> 00:59:36,450 Á sama tíma, þegar fær mylja þína leyndarmál huga, hann eða hún hefur til að þá 1342 00:59:36,450 --> 00:59:39,950 hallmæla það því yfirleitt snúið að reiknirit þannig að fá 1343 00:59:39,950 --> 00:59:41,640 baka á texta. 1344 00:59:41,640 --> 00:59:43,860 Nú eru líkamleg incarnations þetta. 1345 00:59:43,860 --> 00:59:46,720 Til dæmis, þetta er smá leyndarmál tengd hringur. 1346 00:59:46,720 --> 00:59:50,060 Og þetta er hringur í þeim skilningi að það er tveir hringir hér. 1347 00:59:50,060 --> 00:59:53,630 Á utan jaðri þetta, það er bréf A í gegnum Z, 1348 00:59:53,630 --> 00:59:55,110 þó þeir eru í handahófskenndri röð. 1349 00:59:55,110 --> 00:59:58,410 Og að innan, það er í raun nokkrar tölur, svo að með þessari 1350 00:59:58,410 --> 01:00:02,940 hringur, þú getur konar snúa utan en ekki inni í því skyni að stilla upp 1351 01:00:02,940 --> 01:00:04,110 tölur með bókstöfum. 1352 01:00:04,110 --> 01:00:08,290 Og í klemmu sem þú ert að fara að sjá - sumir sem þú kannt að hafa séð 24/7 1353 01:00:08,290 --> 01:00:11,120 um jólahátíðina frá bíómynd sem heitir A Christmas Story. 1354 01:00:11,120 --> 01:00:16,050 Þú munt sjá að litla Ralphie var svo fús til að reikna út hvað litla munaðarlaus 1355 01:00:16,050 --> 01:00:19,810 Leyndarmál skilaboð Annie var að hann hafði verið miðlað, held ég, í 1356 01:00:19,810 --> 01:00:22,810 Form tölugildi skilaboð á raðnúmer kassi. 1357 01:00:22,810 --> 01:00:26,760 Og þú þurftir að safna öllum litlu spil sem kom 1358 01:00:26,760 --> 01:00:27,480 í korn kassi. 1359 01:00:27,480 --> 01:00:28,320 Þú þurfti að senda þær inn 1360 01:00:28,320 --> 01:00:31,060 Þú þurfti að komast aftur á leyndarmál leyniletri hringinn, svo að þú geta að lokum að reikna 1361 01:00:31,060 --> 01:00:34,190 hvað kortlagning er milli bókstafa og tölustafa, 1362 01:00:34,190 --> 01:00:35,420 eða bréf og bréf. 1363 01:00:35,420 --> 01:00:39,790 Þannig að ég gef þér þennan stutta bút úr jól Story að hvetja pset 2 og 1364 01:00:39,790 --> 01:00:42,340 umfjöllun okkar, í smá stund, í fylki. 1365 01:00:42,340 --> 01:00:43,773 Svo hér höfum við Ralphie. 1366 01:00:43,773 --> 01:00:44,126 >> [Vídeó spilun] 1367 01:00:44,126 --> 01:00:47,470 -Vera það kunnugt öllum og ýmis að Ralph Parker er hér með skipað 1368 01:00:47,470 --> 01:00:50,690 meðlimur Little munaðarlaus Annie Secret Circle og á rétt á öllum 1369 01:00:50,690 --> 01:00:53,500 heiður og bætur koma við hana. 1370 01:00:53,500 --> 01:00:56,040 -Kveðja, Little Orphan Annie. 1371 01:00:56,040 --> 01:00:58,730 Countersigned, Pierre Andre! 1372 01:00:58,730 --> 01:01:00,150 Í bleki! 1373 01:01:00,150 --> 01:01:02,910 Heiður og hlunnindi, sem þegar á aldrinum níu. 1374 01:01:09,970 --> 01:01:10,730 Komdu, við skulum fá á við það. 1375 01:01:10,730 --> 01:01:15,000 Ég þarf ekki allt sem djass um smyglara og sjóræningjum. 1376 01:01:15,000 --> 01:01:17,624 -Heyrðu morgun fyrir lýkur ævintýri The Black 1377 01:01:17,624 --> 01:01:19,710 Sjóræningjaskipi. 1378 01:01:19,710 --> 01:01:23,380 Nú er kominn tími fyrir leyndarmál skilaboð Annie fyrir þér meðlimir 1379 01:01:23,380 --> 01:01:25,670 á Secret Circle. 1380 01:01:25,670 --> 01:01:30,260 Mundu, börnin, einungis meðlimir Secret Circle Annie geta lesa 1381 01:01:30,260 --> 01:01:31,660 Leyndarmál Annie er skilaboð. 1382 01:01:31,660 --> 01:01:36,230 Mundu Annie er eftir þig. 1383 01:01:36,230 --> 01:01:38,720 Setja pinna til B2. 1384 01:01:38,720 --> 01:01:41,040 Hér eru skilaboðin. 1385 01:01:41,040 --> 01:01:42,470 12, 11 - 1386 01:01:42,470 --> 01:01:46,000 -Ég er í fyrsta leyndarmál fundi mínum. 1387 01:01:46,000 --> 01:01:49,440 -14, 11, 18, 16 - 1388 01:01:49,440 --> 01:01:51,700 -Pierre var í röddu í kvöld. 1389 01:01:51,700 --> 01:01:54,890 Ég gæti sagt að skilaboð kvöld var mjög mikilvægur. 1390 01:01:54,890 --> 01:01:56,750 -3, 25. 1391 01:01:56,750 --> 01:01:58,590 Það er skilaboð frá Annie sjálf. 1392 01:01:58,590 --> 01:01:59,840 Mundu að segja ekki neinum. 1393 01:02:04,570 --> 01:02:08,750 -90 Sekúndum síðar, er ég í eina herbergi í húsinu þar sem drengurinn níu 1394 01:02:08,750 --> 01:02:12,980 gæti setið í næði og lesa. 1395 01:02:12,980 --> 01:02:17,130 Hæ, B. fór ég til the næstur. 1396 01:02:17,130 --> 01:02:20,330 E. Fyrsta orðið er að vera. 1397 01:02:20,330 --> 01:02:22,670 S. Það var að koma auðveldara núna. 1398 01:02:22,670 --> 01:02:24,590 U. 1399 01:02:24,590 --> 01:02:26,510 -Oh, koma á, Ralphie. 1400 01:02:26,510 --> 01:02:28,430 Ég fékk að fara. 1401 01:02:28,430 --> 01:02:30,350 -Ég skal vera rétt niður, MA. 1402 01:02:30,350 --> 01:02:33,720 -Gee whiz. 1403 01:02:33,720 --> 01:02:38,270 -T, O. Vertu viss um að. 1404 01:02:38,270 --> 01:02:40,000 Vertu viss um að hvað? 1405 01:02:40,000 --> 01:02:42,105 Hvað var Little Orphan Annie að reyna að segja? 1406 01:02:42,105 --> 01:02:43,095 Vertu viss um að hvað? 1407 01:02:43,095 --> 01:02:43,590 -Ralphie! 1408 01:02:43,590 --> 01:02:44,580 Randy hefur fengið að fara. 1409 01:02:44,580 --> 01:02:45,570 Ætlarðu að vinsamlegast koma út? 1410 01:02:45,570 --> 01:02:46,560 -Allt í lagi, mamma. 1411 01:02:46,560 --> 01:02:48,540 Ég kem strax út. 1412 01:02:48,540 --> 01:02:50,580 -Ég var að fá nær núna. 1413 01:02:50,580 --> 01:02:52,550 Spennan var skelfilegt. 1414 01:02:52,550 --> 01:02:53,355 Hvað var það? 1415 01:02:53,355 --> 01:02:56,315 Örlög jörðinni getur hanga á bláþræði. 1416 01:02:56,315 --> 01:02:56,790 -Ralphie! 1417 01:02:56,790 --> 01:02:59,165 Randy fékk að fara. 1418 01:02:59,165 --> 01:03:02,310 -Ég skal vera rétt út, fyrir að gráta upphátt. 1419 01:03:02,310 --> 01:03:04,000 -Gee, næstum þar. 1420 01:03:04,000 --> 01:03:05,180 Fingur minn flaug. 1421 01:03:05,180 --> 01:03:07,150 Hugur minn var stál gildru. 1422 01:03:07,150 --> 01:03:08,790 Sérhver svitahola titra. 1423 01:03:08,790 --> 01:03:10,040 Það var nánast ljóst. 1424 01:03:10,040 --> 01:03:13,400 Já, já, já, já. 1425 01:03:13,400 --> 01:03:18,960 -Vertu viss um að drekka Ovaltine þínu. 1426 01:03:18,960 --> 01:03:20,210 Ovaltine? 1427 01:03:24,010 --> 01:03:25,260 A crummy auglýsing? 1428 01:03:28,200 --> 01:03:29,640 Skepnan. 1429 01:03:29,640 --> 01:03:33,340 [END vídeó spilun] 1430 01:03:33,340 --> 01:03:36,040 >> DAVID J. Malan: Svo þar höfum við dulmál. 1431 01:03:36,040 --> 01:03:39,670 Svo hvernig í tölvu getum við farið um framkvæmd eða 1432 01:03:39,670 --> 01:03:40,950 fulltrúi hluti eins og þetta? 1433 01:03:40,950 --> 01:03:44,430 Jæja, þurfum við leið til að tjá okkur smá sveigjanlegan en 1434 01:03:44,430 --> 01:03:46,420 breytur okkar svona langt hafa leyft. 1435 01:03:46,420 --> 01:03:47,370 Við höfum haft ints. 1436 01:03:47,370 --> 01:03:48,380 Við höfum haft tákn. 1437 01:03:48,380 --> 01:03:50,790 Við höfum fengið fljóta og tvöfaldar og nokkrum öðrum. 1438 01:03:50,790 --> 01:03:55,050 En þeir eru einstök stykki af minni sem í raun ekki að leyfa okkur að 1439 01:03:55,050 --> 01:03:58,010 tjá hluti eins og orð og setningar og setningar. 1440 01:03:58,010 --> 01:04:00,200 Reyndar höfum við kallað slíkt band. 1441 01:04:00,200 --> 01:04:03,650 En við lofum að þetta er í raun bara einföldun á CS50 1442 01:04:03,650 --> 01:04:07,020 Bókasafnið sem við erum að stefna á að afhýða aftur. 1443 01:04:07,020 --> 01:04:08,970 >> Og svo skulum byrja að gera það hér. 1444 01:04:08,970 --> 01:04:11,130 Leyfðu mér að fara á undan og opna skrá - 1445 01:04:11,130 --> 01:04:13,770 allar þessar skrár eru í boði eins og venjulega á netinu - 1446 01:04:13,770 --> 01:04:19,120 kallað array.c að leysa vandamál óskyld strengi en það málar 1447 01:04:19,120 --> 01:04:23,040 mynd hér af hvernig við gætum notað eitthvað sem kallast fylki. 1448 01:04:23,040 --> 01:04:25,530 An array er gögn tegund. 1449 01:04:25,530 --> 01:04:31,320 Það er tegund af breytu, nokkurs konar, sem hefur marga smærri gagnatög 1450 01:04:31,320 --> 01:04:34,150 inni um það aftur til baka til baka til baka. 1451 01:04:34,150 --> 01:04:37,700 Svo til dæmis, ef við viljum að skrifa lítið forrit sem gefur þér þína 1452 01:04:37,700 --> 01:04:42,110 quiz meðaltali á námskeið eins og 50 sem hefur tvö Skyndipróf, þú getur mjög auðveldlega 1453 01:04:42,110 --> 01:04:45,170 skrifa þetta forrit - byggir jafnvel á sum efni í síðustu viku - 1454 01:04:45,170 --> 01:04:47,770 með því að nota GetInt og a par af breytum. 1455 01:04:47,770 --> 01:04:51,920 Int quiz1, int quiz2, og það er frekar einfalt. 1456 01:04:51,920 --> 01:04:55,930 Það er kannski 10, 20 línur af kóða, max, til að hrinda í framkvæmd áætlun sem spyr 1457 01:04:55,930 --> 01:05:01,170 notandi fyrir tvo quiz skora og þá reiknar meðaltal þeirra með því að bæta þeim 1458 01:05:01,170 --> 01:05:03,850 saman, deila með tveimur, og þá prenta árangurinn. 1459 01:05:03,850 --> 01:05:06,380 Við gætum líklega gert það nokkuð auðvelt núna eftir 1460 01:05:06,380 --> 01:05:07,510 sumir tala um mínútur. 1461 01:05:07,510 --> 01:05:11,005 >> En vandamálið er að gera ráð fyrir að 50 voru þrjú skyndipróf eða fjögur. 1462 01:05:11,005 --> 01:05:13,510 Segjum að þú vildir að nota sama forrit fyrir flokk sem hafði 1463 01:05:13,510 --> 01:05:14,850 vikulega Skyndipróf. 1464 01:05:14,850 --> 01:05:16,610 Hugsaðu um flokk sem hefur vikulega Skyndipróf. 1465 01:05:16,610 --> 01:05:20,610 Ef það er eins og 16 eða svo vikur á önn, nú þú ert 16 breytur - 1466 01:05:20,610 --> 01:05:24,270 int quiz1, int quiz2, int quiz3, int quiz4. 1467 01:05:24,270 --> 01:05:27,560 Um leið og þú byrjar að sjá þetta offramboð, það afritar og límir 1468 01:05:27,560 --> 01:05:31,390 kóða, ætti að byrja á að gera sem þú vilt að það væri betri leið. 1469 01:05:31,390 --> 01:05:33,930 Og sem betur fer, vegna þess að fylki er. 1470 01:05:33,930 --> 01:05:34,980 Svo skulum gera þetta. 1471 01:05:34,980 --> 01:05:38,430 Í fyrsta lagi láta mig kynna mjög einfaldur hlutur sem við höfum ekki notað hingað til, 1472 01:05:38,430 --> 01:05:40,140 en þú munt sjá hann stundum í kóða. 1473 01:05:40,140 --> 01:05:42,360 Þetta er það sem er almennt kallað stöðug. 1474 01:05:42,360 --> 01:05:45,790 Svo er það stöðug í þeim skilningi að þetta gildi ekki breytingar. 1475 01:05:45,790 --> 01:05:49,210 Mannlegi venju egar stöðugt er að nota allt fjármagn 1476 01:05:49,210 --> 01:05:51,940 bréf, bara svo að það stendur í raun út í kóðann þinn. 1477 01:05:51,940 --> 01:05:55,960 Og sérstakt leitarorð sem þú notar í C ​​# skilgreina. 1478 01:05:55,960 --> 01:06:00,250 Svo ef þú segir # skilgreina, þá pláss, þá er orðið sem þú vilt nota fyrir 1479 01:06:00,250 --> 01:06:03,260 Samhengi á nafn, og þá verðmæti þeirra stöðug. 1480 01:06:03,260 --> 01:06:06,180 Svo fyrirvara, þetta er annað að fela eitthvað til breytu. 1481 01:06:06,180 --> 01:06:07,020 Það er ekki samasem merkið. 1482 01:06:07,020 --> 01:06:08,240 Það er engin semíkommu. 1483 01:06:08,240 --> 01:06:11,410 Þetta er það sem er almennt þekktur sem Preprocessor tilskipun, en meira um 1484 01:06:11,410 --> 01:06:12,210 að annar tími. 1485 01:06:12,210 --> 01:06:18,540 >> Fyrir nú, það skapar unchanging gildi kallað skyndipróf raun Hvers 1486 01:06:18,540 --> 01:06:19,940 tölustafir er 2. 1487 01:06:19,940 --> 01:06:24,020 Svo hvar sem þú sérð Skyndipróf, Skyndipróf, Skyndipróf um þessa skrá, sem er 1488 01:06:24,020 --> 01:06:25,410 bara númer 2. 1489 01:06:25,410 --> 01:06:28,100 Nú, ef ég líta á helstu skulum sjá hvernig þetta virkar. 1490 01:06:28,100 --> 01:06:29,500 Í fyrsta lagi lítur það svolítið dulinn. 1491 01:06:29,500 --> 01:06:31,340 En það er allt efni frá viku eitt. 1492 01:06:31,340 --> 01:06:32,710 Biddu notandann fyrir bekk. 1493 01:06:32,710 --> 01:06:33,630 Hvernig gerum við þetta? 1494 01:06:33,630 --> 01:06:35,470 Jæja, í línu 22 - 1495 01:06:35,470 --> 01:06:37,210 þetta er virkilega safaríkur hluti - 1496 01:06:37,210 --> 01:06:40,960 Ég lýsa fljóta, en ekki bara einn fljóta. 1497 01:06:40,960 --> 01:06:44,620 Ég er að lýsa, heldur fjölda Fleytitölugildi. 1498 01:06:44,620 --> 01:06:49,100 Þessi breyta er að fara að vera kölluð einkunna, sem gefið í skyn hér. 1499 01:06:49,100 --> 01:06:53,080 En eina stykki af nýjum setningafræði eru þá þessir hornklofum, sú staðreynd 1500 01:06:53,080 --> 01:06:59,350 sem ég hef sagt float bekk og þá opinn krappi og svo númer. 1501 01:06:59,350 --> 01:07:02,460 Takið eftir, ef þetta er fast, þetta er bara eins og við gerðum þetta. 1502 01:07:02,460 --> 01:07:06,890 Þetta þýðir hey tölva, gefa mér tvo fljóta, og við skulum sameiginlega kalla 1503 01:07:06,890 --> 01:07:08,220 þeim bekk. 1504 01:07:08,220 --> 01:07:11,920 Þetta er í mótsögn við miklu meira leiðinlegur aðferð eins og þessa. 1505 01:07:11,920 --> 01:07:15,850 Fljóta grade1, fljóta grade2, og svo framvegis. 1506 01:07:15,850 --> 01:07:20,010 Svo gerir fylki okkur að framkvæma þessa hugmynd, en mun minna messily í 1507 01:07:20,010 --> 01:07:24,630 þannig að við getum skrifað eina línu af kóða í staðinn, segjum, 16 fyrir 16 1508 01:07:24,630 --> 01:07:25,740 viku önn. 1509 01:07:25,740 --> 01:07:29,950 Þannig að ég vildi ekki harður-númer 2 vegna þess að ef þú hugsar um þetta núna 1510 01:07:29,950 --> 01:07:34,160 rökrétt - ráð næsta ári CS50 breytingar 3 Skyndipróf staðinn. 1511 01:07:34,160 --> 01:07:35,510 Og ég átti númer 2 hér. 1512 01:07:35,510 --> 01:07:36,600 Ég átti númer 2 hér. 1513 01:07:36,600 --> 01:07:37,580 Ég átti númer 2 hér. 1514 01:07:37,580 --> 01:07:38,560 Ég átti númer 2 hér. 1515 01:07:38,560 --> 01:07:43,180 Það verður mjög leiðinlegur og mjög auðvelt að skrúfa upp og tilviljun breyta 1516 01:07:43,180 --> 01:07:47,690 eitt gildi til 3 og missa einhver önnur verðmæti 2. 1517 01:07:47,690 --> 01:07:52,460 Þannig að ég ætla að í stað ágrip þetta í burtu og nota þetta stöðugt að þar sem hún 1518 01:07:52,460 --> 01:07:54,120 nafnið gefur til kynna, aldrei breytist. 1519 01:07:54,120 --> 01:07:57,710 Og nú, sama hvort við höfum mismunandi Skyndipróf á þessu ári eða næsta, ég 1520 01:07:57,710 --> 01:08:01,210 bara að breyta því á einum stað, upp hér á ofan. 1521 01:08:01,210 --> 01:08:02,720 >> Svo er það allt fasti er. 1522 01:08:02,720 --> 01:08:08,680 Á meðan, the nýr huglæg lögun er þessi af fylki. 1523 01:08:08,680 --> 01:08:14,660 Svo hornklofum gefa mér marga fljóta og lætur mig sameiginlega 1524 01:08:14,660 --> 01:08:16,630 kalla þá einkunna hér. 1525 01:08:16,630 --> 01:08:17,990 Svo nú skulum við sjá hvað ég ætla að gera. 1526 01:08:17,990 --> 01:08:20,359 Hér í línu 24 er upphaf a for lykkju. 1527 01:08:20,359 --> 01:08:22,260 Þetta er í raun ekkert fínt. 1528 01:08:22,260 --> 01:08:25,060 Það er bara að nota Skyndipróf stað harður-dulmáli númer. 1529 01:08:25,060 --> 01:08:27,790 En það er ekkert vitsmunalega það frábrugðin síðustu viku. 1530 01:08:27,790 --> 01:08:29,040 Þetta er bara printf. 1531 01:08:29,040 --> 01:08:35,490 Svo printf ("quiz númer% d af% d") því ég vil bara að prenta út gefa mér quiz 1532 01:08:35,490 --> 01:08:38,050 númer eitt tvö og þá tveir af tveimur. 1533 01:08:38,050 --> 01:08:39,850 Svo er þetta eingöngu fagurfræði hlutur. 1534 01:08:39,850 --> 01:08:42,500 En áhugaverður hluti er nú í línu 27. 1535 01:08:42,500 --> 01:08:48,310 Til þess að fylla í einn af tveimur staðgengla með fljótandi-lið 1536 01:08:48,310 --> 01:08:51,029 gildi, þú nota aftur hornklofum. 1537 01:08:51,029 --> 01:08:55,620 Í þessu tilfelli er ég að nota i því þetta fyrir lykkju hefur byrjað með i jafna 1538 01:08:55,620 --> 01:08:57,560 Hvaða gildi, virðist? 1539 01:08:57,560 --> 01:08:58,279 0. 1540 01:08:58,279 --> 01:09:01,350 >> Svo á fyrsta endurtekning þessa lykkju, það er eins og ég 1541 01:09:01,350 --> 01:09:02,689 skrifaði þetta í kóða. 1542 01:09:02,689 --> 01:09:05,580 En á seinni endurtekning þessa lykkju, það er eins og ég 1543 01:09:05,580 --> 01:09:07,750 skrifaði þetta í númerið mitt. 1544 01:09:07,750 --> 01:09:10,750 En sú staðreynd að ég er að nota breytu er fullkominn vegna þess, eins og nafnið 1545 01:09:10,750 --> 01:09:14,300 gefur til kynna, það er mismunandi gildi á hverri ítrun. 1546 01:09:14,300 --> 01:09:17,370 Þannig að ég ætla að fylla þennan fjölda einn blettur í einu. 1547 01:09:17,370 --> 01:09:18,910 Hvað er þetta array líta út? 1548 01:09:18,910 --> 01:09:21,430 Jæja, ástæðan sem ég teiknaði þetta frábær einfaldur rétthyrningur á skjánum hér 1549 01:09:21,430 --> 01:09:23,350 áður var af þessum sökum. 1550 01:09:23,350 --> 01:09:27,279 An array er bara klumpur af minni eftir öðru klumpur af minni, 1551 01:09:27,279 --> 01:09:30,109 eftir öðru klumpur af minni, og svo framvegis. 1552 01:09:30,109 --> 01:09:35,260 Svo ef array minn er stærð 2, í þessu tilfelli hér, allt sem ég væri að gera með því að 1553 01:09:35,260 --> 01:09:37,590 slá á stig quiz mínum, eins og hér. 1554 01:09:37,590 --> 01:09:39,430 Ég fékk 100 á þessu. 1555 01:09:39,430 --> 01:09:42,020 Og svo fékk ég 99 á þessu. 1556 01:09:42,020 --> 01:09:46,040 Þá er þetta minni kannski ekki einu sinni að nota vegna þess að ég hef bara spurði 1557 01:09:46,040 --> 01:09:48,689 tölva til fjölda stærð 2. 1558 01:09:48,689 --> 01:09:50,180 Þeir ferningar eru enn þarna. 1559 01:09:50,180 --> 01:09:50,340 Hægri? 1560 01:09:50,340 --> 01:09:52,500 Þú hefur enn tvo gígabæta vinnsluminni, jafnvel ef þú ert bara 1561 01:09:52,500 --> 01:09:53,979 að biðja um tvo fljóta. 1562 01:09:53,979 --> 01:09:58,710 Svo er hugmyndin á bak við fylki sem tölvan bara tekur klumpur af minni 1563 01:09:58,710 --> 01:10:03,230 og þá apportions smærri stykki aftur til baka til baka til baka. 1564 01:10:03,230 --> 01:10:04,740 Og svo er það allt fylki er. 1565 01:10:04,740 --> 01:10:09,080 Það er samliggjandi klumpur af minni, inni sem þú getur sett hluti. 1566 01:10:09,080 --> 01:10:12,400 >> Nú gerist það að þá gera bara sumir leiðinlegur tölur. 1567 01:10:12,400 --> 01:10:16,170 Ef ég skruna niður hér, þetta er þar sem ég iterate þá yfir fylki. 1568 01:10:16,170 --> 01:10:19,410 Ég kem upp með samantekt á öllum gildum í array. 1569 01:10:19,410 --> 01:10:22,390 Og svo ég nota umferð virka hér til að raunverulega gera 1570 01:10:22,390 --> 01:10:23,940 summa deilt með Skyndipróf. 1571 01:10:23,940 --> 01:10:27,450 En láta mig veifa hönd mína á það sem tegund af nógu tölur fyrir nú. 1572 01:10:27,450 --> 01:10:30,010 En allt sem er að gera fyrir mig að lokum er computing að meðaltali. 1573 01:10:30,010 --> 01:10:33,640 Svo fyrsta quiz plús annað quiz, deilt með 2 og þá prentun 1574 01:10:33,640 --> 01:10:34,700 það út sem heiltala. 1575 01:10:34,700 --> 01:10:39,030 >> En við skulum umskipti nú annað dæmi sem heitir string1, 1576 01:10:39,030 --> 01:10:42,370 sem málar svipaða mynd en með strengi. 1577 01:10:42,370 --> 01:10:45,550 Leyfðu mér að fara á undan og einfalda þetta fyrir réttlátur a augnablik. 1578 01:10:45,550 --> 01:10:48,340 Og fyrirgef inndrátt fyrir nú. 1579 01:10:48,340 --> 01:10:52,280 Tilkynning í línu 19 í þessu dæmi, fæ ég band frá notandanum. 1580 01:10:52,280 --> 01:10:55,780 En eftir það sem ég er næst að gera í línum 22 og áfram. 1581 01:10:55,780 --> 01:11:00,260 Ég er reyndar iterating frá I upp í - og þetta er nýtt bragð - 1582 01:11:00,260 --> 01:11:02,730 strlen, band lengd. 1583 01:11:02,730 --> 01:11:07,010 Þetta er fall sem kemur með C að ef þú standist það band, það segir 1584 01:11:07,010 --> 01:11:08,950 þú hversu margir stafir eru í því band. 1585 01:11:08,950 --> 01:11:09,440 Það er allt. 1586 01:11:09,440 --> 01:11:12,520 Sú staðreynd að það er strlen stað lengd strengur er bara vegna þess að það er 1587 01:11:12,520 --> 01:11:13,040 meira gagnorðar. 1588 01:11:13,040 --> 01:11:17,100 30 árum síðan, líkar að skrifa hlutina eins succinctly og mögulegt er. 1589 01:11:17,100 --> 01:11:19,080 Þannig að við höfum haldið að venju hér. 1590 01:11:19,080 --> 01:11:21,730 i + + þýðir bara hækka ég í hverri ítrun. 1591 01:11:21,730 --> 01:11:24,310 Og nú eftir þetta, sem er mjög áhugavert. 1592 01:11:24,310 --> 01:11:28,730 Svo í línu 24, ég segi tölva, gefa mér staf, átta 1593 01:11:28,730 --> 01:11:30,770 bits, og kalla það c. 1594 01:11:30,770 --> 01:11:35,370 En hvað er þetta á hægri hönd að segja? 1595 01:11:35,370 --> 01:11:38,150 Á ensku, hvað þýðir að tákna? 1596 01:11:38,150 --> 01:11:40,070 [Inaudible] 1597 01:11:40,070 --> 01:11:40,490 DAVID J. Malan: Einmitt. 1598 01:11:40,490 --> 01:11:42,390 Gefðu mér fyrsta stafinn í fylkinu. 1599 01:11:42,390 --> 01:11:45,400 Eða fleiri almennt, gefa mér i-ta staf í fylki. 1600 01:11:45,400 --> 01:11:48,230 Og átta sig á að það er mikilvægt núna að sem tölvunarfræðingar, við erum í raun og veru 1601 01:11:48,230 --> 01:11:49,330 talið frá 0. 1602 01:11:49,330 --> 01:11:51,290 Þú hefur ekki svigrúm núna til að byrja að gera þetta. 1603 01:11:51,290 --> 01:11:54,580 Nú verður þú að haga sér í samræmi við væntingar í tölvunni og 1604 01:11:54,580 --> 01:11:58,010 telja frá núlli því [0] er að fara til vera the fyrstur 1605 01:11:58,010 --> 01:11:59,670 staf í streng. 1606 01:11:59,670 --> 01:12:01,320 [1] er að fara að vera annað. 1607 01:12:01,320 --> 01:12:03,610 [2] er að fara að vera í þriðja, og svo framvegis. 1608 01:12:03,610 --> 01:12:08,840 Svo þessari áætlun, ef ég þýða það - þetta er, aftur, string1. 1609 01:12:08,840 --> 01:12:11,040 >> Svo gera string1. 1610 01:12:11,040 --> 01:12:16,730 Og nú er ég að keyra string1 í Telnet mínu. 1611 01:12:16,730 --> 01:12:19,180 Það er að bíða fyrir hjálpina, svo ég ætla að slá á, segja, Davíð. 1612 01:12:19,180 --> 01:12:20,080 Enter. 1613 01:12:20,080 --> 01:12:23,350 Og nú prentar það Davíð allt á mismunandi línum þar 1614 01:12:23,350 --> 01:12:24,430 taka eftir hvað ég er að gera. 1615 01:12:24,430 --> 01:12:27,510 Ég er að prenta einn staf í einu. 1616 01:12:27,510 --> 01:12:29,100 Nú munum við ekki fara inn í smáatriði í dag um þetta. 1617 01:12:29,100 --> 01:12:31,610 En ég eyddi smá stund síðan þessari skoðun hérna. 1618 01:12:31,610 --> 01:12:36,310 Það kemur í ljós að ef notandinn er að hegða sér illa, andstæðinga, eða bara 1619 01:12:36,310 --> 01:12:41,780 rugla, getur þú í raun ekki að gefa a band af einhverju lengd. 1620 01:12:41,780 --> 01:12:43,640 Ef þú högg the rangur lykill á lyklaborðinu, getur þú gefa 1621 01:12:43,640 --> 01:12:44,390 ekkert band á öllum. 1622 01:12:44,390 --> 01:12:47,790 Eða ef þú ert illgjarn, gætirðu reynt að líma á virði Gigabyte um að 1623 01:12:47,790 --> 01:12:49,380 ritgerð til að fylla þetta band. 1624 01:12:49,380 --> 01:12:52,060 Og ef tölvan keyrir út af minni, snýr það út að við erum að fara 1625 01:12:52,060 --> 01:12:54,310 að fá aftur þetta sérstaka gildi kallast null. 1626 01:12:54,310 --> 01:12:57,550 Svo í bili, bara vita að það er þetta sérstaka gildi kallast null að 1627 01:12:57,550 --> 01:13:01,000 mun gera okkur kleift að athuga þegar við erum út af minni, meðal annars. 1628 01:13:01,000 --> 01:13:07,330 >> En ef ég opna nú string2, taka einn munur hér. 1629 01:13:07,330 --> 01:13:09,760 Takið einn munur hér með string2. 1630 01:13:09,760 --> 01:13:13,260 Með string2, þetta for lykkju er svolítið öðruvísi. 1631 01:13:13,260 --> 01:13:16,350 Leyfðu mér að eyða nulls svo að við getum talað um þá seinna. 1632 01:13:16,350 --> 01:13:18,460 En hvað er öðruvísi um for lykkju í þetta sinn? 1633 01:13:21,580 --> 01:13:23,160 Og ég get farið aftur á fyrra dæmi. 1634 01:13:23,160 --> 01:13:24,800 Svo er þessi útgáfa tveggja. 1635 01:13:24,800 --> 01:13:27,020 Þetta er útgáfa einn. 1636 01:13:27,020 --> 01:13:31,935 Einn, tveir, einn tveir. 1637 01:13:35,030 --> 01:13:38,240 Svo er strlen hringja hvar? 1638 01:13:38,240 --> 01:13:40,420 Það er í fyrsta hluta til hliðar. 1639 01:13:40,420 --> 01:13:43,060 Allar hugsanir sem að hvers vegna ég er að gera þetta? 1640 01:13:43,060 --> 01:13:43,690 Já. 1641 01:13:43,690 --> 01:13:46,010 [Inaudible] 1642 01:13:46,010 --> 01:13:47,630 DAVID J. Malan: Svo við kalla ekki virka í hvert einasta skipti. 1643 01:13:47,630 --> 01:13:48,040 Einmitt. 1644 01:13:48,040 --> 01:13:50,350 Muna úr fyrir lykkjur sem þeir eru frábær einfalt þegar þú konar 1645 01:13:50,350 --> 01:13:52,180 skilja að þetta er frumstilling, sem 1646 01:13:52,180 --> 01:13:53,330 ástand, og uppfærslu. 1647 01:13:53,330 --> 01:13:55,430 Vandamálið er að ástand gerist á hverjum 1648 01:13:55,430 --> 01:13:56,600 endurtekning á lykkju. 1649 01:13:56,600 --> 01:13:59,930 Og svo í þessu dæmi hér, það sem er slæmt um þá staðreynd 1650 01:13:59,930 --> 01:14:03,500 að þetta er ástand mitt? 1651 01:14:03,500 --> 01:14:05,920 Þú ert að kalla strlen aftur og aftur og aftur. 1652 01:14:05,920 --> 01:14:08,990 En þegar ég hef slegið í Davíð lengd strengsins er fimm. 1653 01:14:08,990 --> 01:14:11,560 Og það er ekki að fara að breyta á hverjum endurtekning lykkju vegna þess að 1654 01:14:11,560 --> 01:14:15,560 band er enn D-A-V-I-D. Þannig að þetta er vísbending á hvað er að fara að gerast 1655 01:14:15,560 --> 01:14:19,650 sífellt mikilvægari hugmynd þekkt sem hönnun ákvörðun þar - bara ekki 1656 01:14:19,650 --> 01:14:21,640 gera tölvuna að gera óþarfa vinnu. 1657 01:14:21,640 --> 01:14:25,630 >> Nú bara sem laumast forsýning af pset 2, pset 2 í ​​venjulegu útgáfunni er 1658 01:14:25,630 --> 01:14:28,850 að fara að skora á þig að í raun innleiða fjölda dulmál, sumir 1659 01:14:28,850 --> 01:14:32,650 tala af reiknirit dulkóðun, svo að þú getur bæði dulkóða og hallmæla 1660 01:14:32,650 --> 01:14:35,530 leyndarmál skilaboð, eins og annars Ralphie afkóða þar. 1661 01:14:35,530 --> 01:14:38,720 Í spjallþráð útgáfu pset 2, við erum að fara aðeins lengra. 1662 01:14:38,720 --> 01:14:42,010 Við erum að fara að skila þér skrá úr raunverulegum tölvukerfi sem inniheldur 1663 01:14:42,010 --> 01:14:45,690 allt fullt af notendanöfnum og raunveruleg dulkóðuð lykilorð og áskorun 1664 01:14:45,690 --> 01:14:49,110 fyrir tölvusnápur útgáfa er að fara að vera að sprunga þá lykilorð og reikna 1665 01:14:49,110 --> 01:14:53,060 hvað dulmál eða hvað leyndarmál var notuð í raun 1666 01:14:53,060 --> 01:14:55,080 búa þau lykilorð. 1667 01:14:55,080 --> 01:14:58,360 Og við erum að fara að gera þetta með því að nota nýja lögun hér C sem ég gef 1668 01:14:58,360 --> 01:15:02,200 þú bara demo af, þekktur sem stjórn-lína rök. 1669 01:15:02,200 --> 01:15:05,930 >> Svo kemur í ljós, eins og sumir af þú mega hafa séð í hluta eða í kennslubókum, 1670 01:15:05,930 --> 01:15:09,850 Helstu ekki alltaf að vera niður í sviga. 1671 01:15:09,850 --> 01:15:14,060 Það kemur í ljós að helstu má einnig skrifað svona, með tveimur þáttum, 1672 01:15:14,060 --> 01:15:19,690 argc og argv, þar argc er fjöldi orða sem þú skrifar eftir 1673 01:15:19,690 --> 01:15:21,940 forritsins Nafn á línu stjórn þinni. 1674 01:15:21,940 --> 01:15:24,550 Og argv er í raun orð. 1675 01:15:24,550 --> 01:15:29,470 Og eins og hornklofum þar benda, argv er greinilega fylki. 1676 01:15:29,470 --> 01:15:33,720 Það er að fara til vera a band eftir band eftir streng í minni. 1677 01:15:33,720 --> 01:15:36,170 Svo það sem við erum að fara að vera fær um að gera, að byrja með pset 2 er 1678 01:15:36,170 --> 01:15:37,310 eitthvað eins og this. 1679 01:15:37,310 --> 01:15:42,450 Ef ég geri argv1, sem er dæmi sem við munum koma til baka á mánudag og hlaupa 1680 01:15:42,450 --> 01:15:45,180 það, eftir að það virðist ekki gera neitt enn. 1681 01:15:45,180 --> 01:15:47,050 Það prentar bara út nafnið sitt. 1682 01:15:47,050 --> 01:15:53,220 En ef ég segi bless flokki, eftir að þetta forrit virðist iterates 1683 01:15:53,220 --> 01:15:57,030 yfir hvert orð sem var slegið á the hvetja. 1684 01:15:57,030 --> 01:16:02,050 Og með hvaða hætti við munum fá aðgang að orð sem notandinn hefur 1685 01:16:02,050 --> 01:16:06,780 slegið á að hvetja með því að breyta aðal, byrjar um helgina, frá INT 1686 01:16:06,780 --> 01:16:10,710 Helstu (tóm) að int main (argc, argv). 1687 01:16:10,710 --> 01:16:13,700 Og þannig mun fæðast stjórn lína rifrildi. 1688 01:16:13,700 --> 01:16:17,210 Og þegar þú fá raunverulega háþróuð í þessu, verður þú að vera fær um að skrifa 1689 01:16:17,210 --> 01:16:21,370 virkilega trippað forrit, svo sem eins og þetta hér, sem fer umfram 1690 01:16:21,370 --> 01:16:25,520 Hluti af aðgerðum sem við höfum gert svona langt en allt mjög öflugur. 1691 01:16:25,520 --> 01:16:27,330 >> Þannig að við munum láta þetta með þetta á skjánum. 1692 01:16:27,330 --> 01:16:29,160 Og við munum sjá þig á mánudaginn.