1 00:00:00,000 --> 00:00:10,940 2 00:00:10,940 --> 00:00:13,060 >> DAVID J Malan: Allt rétt, þannig að þetta er CS50. 3 00:00:13,060 --> 00:00:15,040 Og þetta er greinilega föstudagur. 4 00:00:15,040 --> 00:00:16,850 Og þetta er í lok vikunnar einum. 5 00:00:16,850 --> 00:00:21,020 Svo þú getur muna að við horfið, síðasta sinn, með cliffhanger konar. 6 00:00:21,020 --> 00:00:25,020 Þar sem við óvarða lygi, að ekki Sama hvað þú hefur verið kennt að vaxa 7 00:00:25,020 --> 00:00:31,610 upp, 1 deilt með 10 er ekki, í staðreynd, 0,1 eða 0.100 eða 0,10000. 8 00:00:31,610 --> 00:00:35,270 Í staðreynd, ef við saman þessi program, eins og við gerðum í gær, með, 9 00:00:35,270 --> 00:00:39,770 gera ónákvæmni, og þá gera punkt, rista, ónákvæmni, 10 00:00:39,770 --> 00:00:43,600 við lærðum að þetta er það sem er 1 deilt með 10 í raun er. 11 00:00:43,600 --> 00:00:46,140 Svo er það í raun ekki alveg málið. 12 00:00:46,140 --> 00:00:49,014 En þetta er vísbending á sumir grundvallaratriði takmörkun á tölvum. 13 00:00:49,014 --> 00:00:50,930 Og reyndar, meðal það sem við erum að fara að gera 14 00:00:50,930 --> 00:00:55,130 í dag er að taka a líta á hvers vegna þetta er gerðist, hvaða áhrif þetta hefur, 15 00:00:55,130 --> 00:00:58,430 hvernig mannkynið hefur mistekist að skilja þetta í sumum mjög 16 00:00:58,430 --> 00:01:00,410 alvarleg situations-- niðurstaðan af sem 17 00:01:00,410 --> 00:01:03,141 hefur verið nokkuð sorglegt og expensive-- og einnig 18 00:01:03,141 --> 00:01:04,849 taka a líta á hvernig við geta í raun verja 19 00:01:04,849 --> 00:01:06,530 gegn þessum konar takmarkanir. 20 00:01:06,530 --> 00:01:10,940 Svo innsæi, ef til vill, hvers vegna er 1 deilt með 10, 21 00:01:10,940 --> 00:01:15,480 samkvæmt tölvunni minni hér, ekki bara 10/01, 0,10? 22 00:01:15,480 --> 00:01:15,980 Já. 23 00:01:15,980 --> 00:01:16,530 Hvað finnst þér? 24 00:01:16,530 --> 00:01:17,860 >> Áheyrandi: The Radix er öðruvísi? 25 00:01:17,860 --> 00:01:18,550 >> DAVID J MALAN: The hvað er? 26 00:01:18,550 --> 00:01:19,730 Ó, Radix er öðruvísi? 27 00:01:19,730 --> 00:01:20,720 Svo ekki alveg. 28 00:01:20,720 --> 00:01:23,200 Það er í raun meira grundvallaratriði í vélbúnaði. 29 00:01:23,200 --> 00:01:23,980 Aðrar hugsanir? 30 00:01:23,980 --> 00:01:24,584 Já. 31 00:01:24,584 --> 00:01:26,750 Áheyrandi: Þeir tákna tölur öðruvísi? 32 00:01:26,750 --> 00:01:27,880 DAVID J Malan: Svo they-- Hægri. 33 00:01:27,880 --> 00:01:29,338 Þeir tákna tölur öðruvísi. 34 00:01:29,338 --> 00:01:30,700 Rangt, greinilega. 35 00:01:30,700 --> 00:01:33,190 Svo að is-- Jæja, öðruvísi hvað? 36 00:01:33,190 --> 00:01:34,490 Eða frá hverjum? 37 00:01:34,490 --> 00:01:35,050 Frá okkur? 38 00:01:35,050 --> 00:01:35,966 Áheyrandi: Já. 39 00:01:35,966 --> 00:01:38,930 Þeir nota ekki aukastaf kerfi til [inaudible]. 40 00:01:38,930 --> 00:01:39,680 DAVID J MALAN: OK. 41 00:01:39,680 --> 00:01:41,560 Svo í vissum skilningi, þeir gera ekki nota tugakerfið. 42 00:01:41,560 --> 00:01:43,720 Undir hetta, allt er reyndar tvöfaldur, 43 00:01:43,720 --> 00:01:45,510 og það er tengt í raun. 44 00:01:45,510 --> 00:01:48,135 En það er jafnvel einfaldara skýring en það. 45 00:01:48,135 --> 00:01:48,635 Já. 46 00:01:48,635 --> 00:01:49,970 >> Áheyrandi: Þeir bara svo margir bitar. 47 00:01:49,970 --> 00:01:52,370 Þeir geta aðeins geymt upp að vissu miklu leyti, eins og við brotum. 48 00:01:52,370 --> 00:01:52,780 >> DAVID J MALAN: Já. 49 00:01:52,780 --> 00:01:54,420 Þetta er það sem er í raun að fá á það. 50 00:01:54,420 --> 00:01:57,180 Það kemur í ljós að tölvur yfirleitt, mun alltaf aðeins 51 00:01:57,180 --> 00:01:59,690 nota endanlegt magn af upplýsingum til að tákna eitthvað. 52 00:01:59,690 --> 00:01:59,870 Ekki satt? 53 00:01:59,870 --> 00:02:02,110 Eftir allt saman, höfum við aðeins fast magn af harður diskur rúm. 54 00:02:02,110 --> 00:02:04,210 Við höfum aðeins fasta upphæð RAM eða tölvuminni. 55 00:02:04,210 --> 00:02:06,251 Og ef þú hefur aðeins föst upphæð af einhverju, 56 00:02:06,251 --> 00:02:09,611 hlýtur að geta ekki í raun að telja upp óendanlegt eða einhver tala sem þú vilt. 57 00:02:09,611 --> 00:02:11,610 Þú, eins konar, að velja og velja hvaða svið 58 00:02:11,610 --> 00:02:13,220 fjárhæðir sem þú ert að fara til að styðja. 59 00:02:13,220 --> 00:02:18,100 >> Og svo til dæmis, í viku eða tvær síðan, þegar við ræddum um ASCII, 60 00:02:18,100 --> 00:02:21,610 og við ræddum um 8 bita, eða bæti, svo að segja, 61 00:02:21,610 --> 00:02:26,360 stærsta númer við gátum tákna með 8 bitum var hvað? 62 00:02:26,360 --> 00:02:28,350 255. 63 00:02:28,350 --> 00:02:31,850 Og við getum tákna 256 Samtals gildi en ekki ef við eyða einn af þeim 64 00:02:31,850 --> 00:02:34,190 á 0-- Jæja, en ef við eyða einn af þeim á 0, 65 00:02:34,190 --> 00:02:36,830 þá stærsta númerið er, að sjálfsögðu, 255. 66 00:02:36,830 --> 00:02:39,410 >> Svo kemur í ljós, að þetta er málið líka, í þessu samhengi. 67 00:02:39,410 --> 00:02:42,350 Við byrjuðum að tala, síðasta sinn, um fljótandi punkta tölur, sem 68 00:02:42,350 --> 00:02:44,640 eru mismunandi frá heiltölur, í að þeir hafa Komma 69 00:02:44,640 --> 00:02:47,056 Og vonandi nokkrar tölur eftir það, en þeir eru of. 70 00:02:47,056 --> 00:02:51,730 A tölva er aðeins yfirleitt fara að nota 32 bita, kannski 64 bita 71 00:02:51,730 --> 00:02:53,497 að tákna fleytitölu gildi. 72 00:02:53,497 --> 00:02:56,080 Svo jafnvel þótt við höfum alist upp læra stærðfræði og vita 73 00:02:56,080 --> 00:02:58,750 að þú getur alveg hafa óendanlegur fjöldi af tölum 74 00:02:58,750 --> 00:03:01,650 eftir kommu, ekki ef þú ert með endanlegt minni. 75 00:03:01,650 --> 00:03:03,930 Þú, eins konar, að umferð, eða velja hvaða 76 00:03:03,930 --> 00:03:05,346 tölur sem þú ert að fara til að tákna. 77 00:03:05,346 --> 00:03:08,710 Og svo þú getur hugsa um, í vissum skilningi, þetta að vera tölva er næst 78 00:03:08,710 --> 00:03:14,050 nálgun að verðmæti 1/10 sem það er hægt að fá, með aðeins 32 eða svo bita. 79 00:03:14,050 --> 00:03:15,300 Og það er ekki bara 10/01. 80 00:03:15,300 --> 00:03:19,820 >> Til dæmis, ef ég breytt þessu í 1/3, sem við teljum er jafnvel einfaldara. 81 00:03:19,820 --> 00:03:21,300 Svo 1 deilt með 3. 82 00:03:21,300 --> 00:03:22,355 Leyfðu mér að vista skrána. 83 00:03:22,355 --> 00:03:24,680 Leyfðu mér að fara á undan og laun það. 84 00:03:24,680 --> 00:03:25,820 Og láta mig aftur að keyra hana. 85 00:03:25,820 --> 00:03:30,000 Hér líka, greinilega, 1/3 er ekki 0.3 og þá óendanlega fjölda af 3 áratugnum 86 00:03:30,000 --> 00:03:30,770 eftir það. 87 00:03:30,770 --> 00:03:32,540 Þú hefur þetta ónákvæmni í lokin. 88 00:03:32,540 --> 00:03:35,544 Svo við mennirnir séu réttar, og hvað þú lært er, í raun, rétt, 89 00:03:35,544 --> 00:03:37,460 en við erum að bumping upp gegn sumum takmörkunum. 90 00:03:37,460 --> 00:03:39,420 >> Og það sem ég hugsaði við myndum gera í dag, er að byrja 91 00:03:39,420 --> 00:03:42,190 með því að horfa á, hreinskilnislega, að sorglegu afleiðingar þetta 92 00:03:42,190 --> 00:03:45,490 stundum, þegar mannkynið er ekki alveg að innleiða 93 00:03:45,490 --> 00:03:48,460 fyrir þessum veruleika og þessar takmarkanir. 94 00:03:48,460 --> 00:03:52,360 Og við munum sjá röð af vignettes frá History Channel sem tekur 95 00:03:52,360 --> 00:03:53,950 a líta á hvernig hlutirnir hafa farið úrskeiðis. 96 00:03:53,950 --> 00:03:56,340 Það er um 8 mínútur að lengd, og við munum koma aftur eftir þetta 97 00:03:56,340 --> 00:03:59,439 og taka a líta á nákvæmlega hvað getur farið úrskeiðis. 98 00:03:59,439 --> 00:04:00,605 Ef við gætum dekkja lights-- 99 00:04:00,605 --> 00:04:02,350 >> [Vídeó spilun] 100 00:04:02,350 --> 00:04:06,310 >> -Computers, Höfum við komið öll að taka sem oft pirrandi vandamál sem 101 00:04:06,310 --> 00:04:07,750 fara með þeim. 102 00:04:07,750 --> 00:04:11,370 Bugs, veirur, og hugbúnaður galli eru lítil verð 103 00:04:11,370 --> 00:04:13,230 til að greiða fyrir þægindi. 104 00:04:13,230 --> 00:04:17,519 En í hátækni og hár-hraði Her og rúm program forrit, 105 00:04:17,519 --> 00:04:22,130 minnstu vandamál getur eflast í hörmung. 106 00:04:22,130 --> 00:04:27,750 Þann 4. júní 1996, vísindamenn unnin að ráðast unmanned Ariane 5 eldflaug. 107 00:04:27,750 --> 00:04:29,890 Það var vopnaður vísindalegar gervihnöttum hannað 108 00:04:29,890 --> 00:04:33,030 að koma nákvæmlega hvernig Segulsviði jarðar Hefur samskipti 109 00:04:33,030 --> 00:04:35,600 með sól vindur. 110 00:04:35,600 --> 00:04:37,930 Eldflaugar var byggt fyrir Evrópu Space Agency 111 00:04:37,930 --> 00:04:41,620 og lyfti burt frá verksmiðju sinni á strönd Franska Gvæjana. 112 00:04:41,620 --> 00:04:44,924 >> -Og Um 30 sekúndur í Flugferðin þeir fyrst 113 00:04:44,924 --> 00:04:46,340 tók eitthvað var að fara úrskeiðis. 114 00:04:46,340 --> 00:04:49,280 Að stúta voru segulnagli á þann hátt sem þeir ættu í raun ekki. 115 00:04:49,280 --> 00:04:53,042 Around 40 sekúndur inn í flugið, greinilega ökutækið var í vandræðum, 116 00:04:53,042 --> 00:04:55,250 og það er þegar þeir gerðu ákvörðun um að eyðileggja það. 117 00:04:55,250 --> 00:04:58,970 A Range Safety Officer með gríðarlega hugaður ýtt á hnappinn, 118 00:04:58,970 --> 00:05:03,940 blés upp eldflaugar áður en það gæti verða hættulegir öryggi almennings. 119 00:05:03,940 --> 00:05:06,600 >> -Þetta Var mær ferð á Ariane 5, 120 00:05:06,600 --> 00:05:09,270 og eyðingu þess tók setja vegna galla 121 00:05:09,270 --> 00:05:10,992 innbyggð í hugbúnaði eldflaugar er. 122 00:05:10,992 --> 00:05:12,700 -The Vandamál á Ariane var að það 123 00:05:12,700 --> 00:05:15,370 var að tala sem þarf 64 bita til að tjá, 124 00:05:15,370 --> 00:05:18,150 og hann langaði til að umbreyta það að 16 bita númer. 125 00:05:18,150 --> 00:05:21,160 Þeir gera ráð fyrir að fjöldi var aldrei að fara að vera mjög stór, 126 00:05:21,160 --> 00:05:25,020 að flestir þeirra tölustöfum í 64 bita tala sem 0 er. 127 00:05:25,020 --> 00:05:26,310 Þeir voru rangar. 128 00:05:26,310 --> 00:05:28,680 >> -The Vanhæfni einn hugbúnaður program til að samþykkja 129 00:05:28,680 --> 00:05:32,820 konar fjölda mynda af annar var á rót bilun. 130 00:05:32,820 --> 00:05:37,190 Hugbúnaðarþróun hafði orðið mjög dýrt hluti af nýrri tækni. 131 00:05:37,190 --> 00:05:40,760 The Ariane 4 eldflaugar hafi verið mjög vel, svo mikið af hugbúnaði 132 00:05:40,760 --> 00:05:43,990 búið til fyrir það var líka notað á Ariane 5. 133 00:05:43,990 --> 00:05:49,750 >> -The Grunn vandamálið var að Ariane 5 var hraðari, flýta hraðar. 134 00:05:49,750 --> 00:05:53,000 Og the hugbúnaður hafði ekki grein fyrir því. 135 00:05:53,000 --> 00:05:56,330 >> -The Eyðileggingu eldflaugar var gríðarlegur fjárhagslegur hörmung, 136 00:05:56,330 --> 00:05:59,670 allt vegna mínútna hugbúnaður villa. 137 00:05:59,670 --> 00:06:01,990 En þetta var ekki í fyrsta tími vefhegðunargögn vandamál 138 00:06:01,990 --> 00:06:05,310 hafði stríða nútíma eldflaugar tækni. 139 00:06:05,310 --> 00:06:08,300 >> -Í 1991, við upphaf af fyrsta Persaflóastríðinu, 140 00:06:08,300 --> 00:06:10,650 Patriot eldflaugum upplifað svipaða konar 141 00:06:10,650 --> 00:06:12,650 af fjölda viðskipti vandamál. 142 00:06:12,650 --> 00:06:15,620 Þar af leiðandi, 28 einstaklingar, 28 bandarískir hermenn 143 00:06:15,620 --> 00:06:18,440 voru drepnir og um 100 aðrir særðir, 144 00:06:18,440 --> 00:06:21,900 Þegar Patriot, sem átti til að vernda gegn komandi scuds, 145 00:06:21,900 --> 00:06:24,630 mistókst að skjóta eldflaugum. 146 00:06:24,630 --> 00:06:29,440 >> -Þegar Írak ráðist Kúveit og Ameríku hóf Desert Storm í byrjun 1991, 147 00:06:29,440 --> 00:06:33,800 Patriot eldflaugum rafhlöður voru á vettvangi að vernda Saudi Arabíu og Ísrael 148 00:06:33,800 --> 00:06:37,000 frá Írak Scud eldflaugum árás. 149 00:06:37,000 --> 00:06:40,610 The Patriot er US, miðlungs-svið yfirborð-til-loft kerfi 150 00:06:40,610 --> 00:06:43,010 framleitt af Raytheon félaginu. 151 00:06:43,010 --> 00:06:49,080 >> -The Stærð Patriot interceptor, sjálft, er um, um það bil 20 fet að lengd. 152 00:06:49,080 --> 00:06:51,250 Og það vegur um 2000 pund. 153 00:06:51,250 --> 00:06:55,195 Og það ber warhead af about-- Ég held að það er um það bil 150 £. 154 00:06:55,195 --> 00:06:59,500 Og Warhead, sjálft, er a hár sprengiefni, 155 00:06:59,500 --> 00:07:02,570 sem hefur brot kringum það. 156 00:07:02,570 --> 00:07:06,890 The hlíf á warhead er sem ætlað er að bregðast við eins og buckshot. 157 00:07:06,890 --> 00:07:09,130 >> -The Eldflaugar eru fara, 4 á ílát, 158 00:07:09,130 --> 00:07:12,080 og eru flutt með festivagn. 159 00:07:12,080 --> 00:07:19,100 >> -The Patriot andstæðingur eldflaugum kerfi fer aftur að minnsta kosti 20 ár núna. 160 00:07:19,100 --> 00:07:22,320 Það var upphaflega hannað sem air vörn eldflaugum 161 00:07:22,320 --> 00:07:24,180 að skjóta niður flugvélar óvinur. 162 00:07:24,180 --> 00:07:27,860 Í fyrsta Persaflóastríðinu, þegar að stríð kom með, 163 00:07:27,860 --> 00:07:32,745 herinn vildi nota það til að skjóta niður scuds, ekki flugvélar. 164 00:07:32,745 --> 00:07:36,150 Írak Force var ekki svo mikið vandamál, 165 00:07:36,150 --> 00:07:39,110 en her hafði áhyggjur scuds. 166 00:07:39,110 --> 00:07:42,340 Og svo þeir reyndu að uppfæra Patriot. 167 00:07:42,340 --> 00:07:44,760 >> -Intercepting Óvin eldflaugum ferðast á mach fimm 168 00:07:44,760 --> 00:07:47,250 var að fara að vera erfitt nóg. 169 00:07:47,250 --> 00:07:50,000 En þegar Patriot var hljóp í þjónustu, 170 00:07:50,000 --> 00:07:54,030 her var ekki kunnugt um að Írak breytingar sem gerðar 171 00:07:54,030 --> 00:07:56,840 scuds þeirra nær ómögulegt að ná. 172 00:07:56,840 --> 00:08:01,020 >> -Hvað Gerðist, er scuds að voru að koma í, voru óstöðug, 173 00:08:01,020 --> 00:08:02,310 þeir voru vagg. 174 00:08:02,310 --> 00:08:05,140 Ástæðan fyrir þessu, var Íraka, í því skyni 175 00:08:05,140 --> 00:08:09,450 að fá 600 kílómetra út af 300 km svið eldflaugum, 176 00:08:09,450 --> 00:08:12,930 tók þyngd af fremstu warhead og gerði Warhead léttari. 177 00:08:12,930 --> 00:08:17,710 Svo nú, Patriot er að reyna að koma á Scud, og mest af þeim tíma, 178 00:08:17,710 --> 00:08:21,700 yfirgnæfandi meirihluti af tími, það myndi bara fljúga með Scud. 179 00:08:21,700 --> 00:08:25,700 >> -Þegar Patriot kerfisstjóra áttaði Patriot missti markmiði sínu, 180 00:08:25,700 --> 00:08:29,790 þeir detonated warhead Patriot er, til að forðast hugsanlegar mannfall ef það 181 00:08:29,790 --> 00:08:32,380 var leyft að falla til jarðar. 182 00:08:32,380 --> 00:08:36,340 >> -Það Var það sem flestir sáu, þá stóra fireballs á himni, 183 00:08:36,340 --> 00:08:41,289 og misskilið sem rekur í Scud warheads. 184 00:08:41,289 --> 00:08:43,590 Þótt í nótt himinn, Patriots virtist 185 00:08:43,590 --> 00:08:47,020 til að vera með góðum árangri eyðileggja scuds á Dhahran, 186 00:08:47,020 --> 00:08:49,730 það gæti verið engin mistök um frammistöðu sína. 187 00:08:49,730 --> 00:08:53,990 Þar Patriot er ratsjá kerfi misst utan um komandi Scud, 188 00:08:53,990 --> 00:08:56,650 og aldrei hleypt af stokkunum, vegna hugbúnaðar galli. 189 00:08:56,650 --> 00:08:59,650 190 00:08:59,650 --> 00:09:04,100 Það var á Ísraelsmenn sem fyrst uppgötvaði að því lengur sem kerfið var á, 191 00:09:04,100 --> 00:09:07,510 því meiri tími misræmi varð, vegna þess að klukku embed 192 00:09:07,510 --> 00:09:09,490 í tölvunni kerfisins. 193 00:09:09,490 --> 00:09:12,670 >> About 2 vikum fyrir harmleikur í Dhahran, 194 00:09:12,670 --> 00:09:15,010 Ísraelar tilkynnt Defense Department, 195 00:09:15,010 --> 00:09:17,940 Fjármálakerfið var að tapa tíma, að eftir um 8 klst gangi, 196 00:09:17,940 --> 00:09:21,410 þeir tekið eftir því að kerfið var verða greinilega ónákvæmari. 197 00:09:21,410 --> 00:09:25,290 The Defense Department brugðist við með því segja öllum Patriot rafhlöður 198 00:09:25,290 --> 00:09:28,070 að ekki láta kerfi á í langan tíma. 199 00:09:28,070 --> 00:09:29,960 Þeir sögðu aldrei hvað löngu var. 200 00:09:29,960 --> 00:09:30,460 8 klst? 201 00:09:30,460 --> 00:09:30,960 10 klst? 202 00:09:30,960 --> 00:09:31,870 1000 klst? 203 00:09:31,870 --> 00:09:33,734 Enginn vissi. 204 00:09:33,734 --> 00:09:35,650 -The Patriot rafhlaða aðstöðu við kastalann 205 00:09:35,650 --> 00:09:40,410 á Dhahran, og gölluð innri hennar klukka, hafði verið á yfir 100 klst 206 00:09:40,410 --> 00:09:43,041 á nótt 25. febrúar. 207 00:09:43,041 --> 00:09:47,416 >> -Það Fylgst tíma nákvæmni um 1/10 úr sekúndu. 208 00:09:47,416 --> 00:09:49,290 Nú er 1/10 úr sekúndu áhugavert númer 209 00:09:49,290 --> 00:09:52,700 vegna þess að það er ekki hægt gefið upp í tvöfaldur, nákvæmlega. 210 00:09:52,700 --> 00:09:54,820 Sem þýðir, það getur ekki gefin, nákvæmlega, 211 00:09:54,820 --> 00:09:57,420 í hvaða nútíma stafræna tölvu. 212 00:09:57,420 --> 00:10:01,460 Það er erfitt að trúa því, en nota þetta sem dæmi. 213 00:10:01,460 --> 00:10:03,520 Við skulum taka númer, 1/3. 214 00:10:03,520 --> 00:10:07,110 1/3 er ekki hægt að gefið upp í aukastaf, nákvæmlega. 215 00:10:07,110 --> 00:10:11,490 1/3 er 0,333 gangi fyrir óendanleika. 216 00:10:11,490 --> 00:10:15,486 Það er engin leið til að gera það, með alger nákvæmni, í aukastaf. 217 00:10:15,486 --> 00:10:18,360 Það er einmitt sams konar vandamál sem gerðist í Patriot. 218 00:10:18,360 --> 00:10:22,510 Því lengur sem keyrði er verra tími villa varð. 219 00:10:22,510 --> 00:10:28,420 >> -Eftir 100 opnunartíma, the villa í tíma var aðeins um 1/3 úr sekúndu. 220 00:10:28,420 --> 00:10:31,830 En hvað varðar miða a eldflaugum ferðast á Mach 5, 221 00:10:31,830 --> 00:10:35,890 það leiddi til mælingar villa yfir 600 metra. 222 00:10:35,890 --> 00:10:38,970 Það væri banvæn villa fyrir hermenn á Dhahran. 223 00:10:38,970 --> 00:10:45,035 >> -Hvað Gerðist, er Scud ráðast var greind með viðvörunarkerfi gervihnöttum, 224 00:10:45,035 --> 00:10:48,930 og þeir nýtt að Scud var koma í almenna átt þeirra. 225 00:10:48,930 --> 00:10:51,170 Þeir vissu ekki hvar hún var að koma. 226 00:10:51,170 --> 00:10:53,990 >> -Það Var nú allt að ratsjá hluti af Patriot kerfi, 227 00:10:53,990 --> 00:10:58,520 verja Dhahran, til að finna og halda utan um komandi óvini eldflaugum. 228 00:10:58,520 --> 00:10:59,690 >> -The Ratsjá var mjög klár. 229 00:10:59,690 --> 00:11:01,710 Það væri í raun að fylgjast stöðu Scud 230 00:11:01,710 --> 00:11:04,040 og þá spá þar það myndi líklega vera, 231 00:11:04,040 --> 00:11:06,140 næsta tíma, ratsjá sendi púls út. 232 00:11:06,140 --> 00:11:07,660 Það var kallað svið hliðið. 233 00:11:07,660 --> 00:11:11,870 >> -Þá, Þegar Patriot ákveður nægur tími hefur 234 00:11:11,870 --> 00:11:16,280 samþykkt að fara aftur og athuga næsta staðsetningu fyrir þetta greind hlut, 235 00:11:16,280 --> 00:11:17,280 það fer aftur. 236 00:11:17,280 --> 00:11:21,690 Svo þegar það fór aftur til röng staður, sér það þá ekki mótmæla 237 00:11:21,690 --> 00:11:25,230 og það ákveður að það var engin hlut, það var falskur uppgötvun, 238 00:11:25,230 --> 00:11:26,650 og lækkar lagið. 239 00:11:26,650 --> 00:11:29,690 The komandi Scud hvarf frá skjánum ratsjá, 240 00:11:29,690 --> 00:11:32,670 og sekúndum síðar, það skellur inn í kastalann. 241 00:11:32,670 --> 00:11:38,100 The Scud drap 28 og var síðast einn rekinn á fyrsta Persaflóastríðinu. 242 00:11:38,100 --> 00:11:43,460 Tragically er uppfærð hugbúnaður kom á Dhahran daginn eftir. 243 00:11:43,460 --> 00:11:46,150 Hugbúnaðurinn galli hafði verið fastur, lokun 244 00:11:46,150 --> 00:11:48,940 einn kaflinn í órótt Saga Patriot eldflaugum. 245 00:11:48,940 --> 00:11:50,220 >> [END spilun] 246 00:11:50,220 --> 00:11:54,340 >> DAVID J Malan: Þannig að við munum taka a líta á sumir svipaðar takmarkanir í bara smá. 247 00:11:54,340 --> 00:11:58,470 En fyrst skulum við Umskiptin nokkrar FYI er. 248 00:11:58,470 --> 00:12:01,575 Svo one-- helgina, það verður frábær köflum, 249 00:12:01,575 --> 00:12:04,200 sem er ætlað að undirferli reglulega tímaáætlun köflum, sem 250 00:12:04,200 --> 00:12:05,460 mun byrja upp í viku þess vegna. 251 00:12:05,460 --> 00:12:08,204 Taka a líta á heimasíðu CS50 er fyrir frekari upplýsingar um þá. 252 00:12:08,204 --> 00:12:11,120 Þeir munu einnig vera teknar og streyma lifa fyrir þá ófær um að mæta. 253 00:12:11,120 --> 00:12:12,980 Heimadæmi 1 er á website Námskeiðið er nú þegar, 254 00:12:12,980 --> 00:12:15,105 og við munum taka a líta á að í réttlátur a lítill hluti. 255 00:12:15,105 --> 00:12:18,350 Og viðtalstímar of, mun taka setja þessa mánudegi til fimmtudags. 256 00:12:18,350 --> 00:12:20,960 >> Þannig að þetta var mest Canonical program skoðuðum við síðasta tíma. 257 00:12:20,960 --> 00:12:23,590 Það er eins og einfaldasta forrit sem þú getur skrifað í C, 258 00:12:23,590 --> 00:12:25,250 og jafnvel er það hluti af djörf kröfu. 259 00:12:25,250 --> 00:12:25,750 Ekki satt? 260 00:12:25,750 --> 00:12:28,070 Vegna þess að það er mikið af virðist flókið við þetta. 261 00:12:28,070 --> 00:12:30,445 Svo skulum taka a fljótur líta á hvað sumir af þessum þáttum 262 00:12:30,445 --> 00:12:33,080 voru og þá reyna að veita andlegt fyrirmynd hvernig 263 00:12:33,080 --> 00:12:35,710 þetta einfaldasta forrit vinna, og þá munum við byrja 264 00:12:35,710 --> 00:12:38,050 horfa á hlutina alltaf flóknari. 265 00:12:38,050 --> 00:12:41,280 Þannig að fyrirsögnin hér, er lögð áhersla nú, í gult, hvað gerði við segja, síðasta sinn, 266 00:12:41,280 --> 00:12:43,200 að þetta gerir fyrir okkur? 267 00:12:43,200 --> 00:12:45,220 Hver er tilgangurinn með það þjónar? 268 00:12:45,220 --> 00:12:46,984 Einhver frá lengra aftur? 269 00:12:46,984 --> 00:12:47,483 Já. 270 00:12:47,483 --> 00:12:48,649 >> Áheyrandi: [inaudible] 271 00:12:48,649 --> 00:12:50,871 272 00:12:50,871 --> 00:12:51,704 DAVID J MALAN: Good. 273 00:12:51,704 --> 00:12:53,537 Svo það gefur þér aðgang skipunum, eða við skulum 274 00:12:53,537 --> 00:12:56,750 kalla þá virka, að einhver annar skrifaði, sem eru gefin 275 00:12:56,750 --> 00:12:58,350 svo að segja, á einhvern annan skrá. 276 00:12:58,350 --> 00:13:02,370 Þannig að við munum sjá nákvæmlega hvað .h skrá er á móti a .c skrá, loksins. 277 00:13:02,370 --> 00:13:04,710 En nú, bara vita sem printf, til dæmis, 278 00:13:04,710 --> 00:13:08,370 er meðal aðgerða sem hafa verið lýst í einhverja aðra skrá, einhvers staðar 279 00:13:08,370 --> 00:13:12,930 annað á disknum skýinu er að gerir okkur kleift að komast printf og nota það 280 00:13:12,930 --> 00:13:15,240 án þess að þurfa að fjárfesta á ný sem hjól sjálf. 281 00:13:15,240 --> 00:13:16,930 Á sama tíma, helstu. 282 00:13:16,930 --> 00:13:19,690 Hvað var byggður á hliðstæðum helstu, síðustu viku? 283 00:13:19,690 --> 00:13:20,190 Já. 284 00:13:20,190 --> 00:13:21,460 >> Áheyrandi: Green fáninn er smellt. 285 00:13:21,460 --> 00:13:21,740 >> DAVID J MALAN: Já. 286 00:13:21,740 --> 00:13:23,490 Scratch er, þegar grænn fáni smellt. 287 00:13:23,490 --> 00:13:25,560 Það er eins og ráðgáta stykki sem ánægja það burt. 288 00:13:25,560 --> 00:13:28,306 Og svo álíka, gerði heiminn ákvað fyrir nokkrum árum að í C, 289 00:13:28,306 --> 00:13:30,930 og fullt af öðrum tungumálum, ef þú vilt að skrifa forrit, 290 00:13:30,930 --> 00:13:33,410 Fyrsta virka hefur til að kalla, helstu. 291 00:13:33,410 --> 00:13:34,641 Og það þarf að líta svona út. 292 00:13:34,641 --> 00:13:36,640 En við munum koma aftur, annar tími, á það, int, 293 00:13:36,640 --> 00:13:38,690 og, ógilt, meina í því samhengi. 294 00:13:38,690 --> 00:13:42,860 Fyrir nú, eru hrokkið axlabönd konar af eins ráðgáta stykki lögun grunni er 295 00:13:42,860 --> 00:13:45,080 að ævisaga einhvers fjölda af línum. 296 00:13:45,080 --> 00:13:47,070 Og meðal á línum hér, er þetta einn hér. 297 00:13:47,070 --> 00:13:51,610 printf er fall sem tilgang í lífið er að prenta streng. 298 00:13:51,610 --> 00:13:55,010 Og með því að sniðinn, ég meina þér getur stinga í placeholder gildi, 299 00:13:55,010 --> 00:13:58,360 og þú getur valið hversu aukastaf stig, hve mörg númer til að prenta 300 00:13:58,360 --> 00:14:00,040 eftir kommu og þess háttar. 301 00:14:00,040 --> 00:14:05,040 Og printf, að sjálfsögðu, tekur einn eða meira rifrildi eða breytur, 302 00:14:05,040 --> 00:14:06,770 annars þekkt, meira einfaldlega, eins og inntak. 303 00:14:06,770 --> 00:14:09,230 >> Svo printf, eins mikið af virka, tekur inntak. 304 00:14:09,230 --> 00:14:12,730 Og þessir aðföng eru faðmaði af tveimur svigum hér. 305 00:14:12,730 --> 00:14:15,180 Og inni þá er eitt inntak. 306 00:14:15,180 --> 00:14:18,600 Það er band, eins og við höfum kallað það, sem er bara röð af stöfum, 307 00:14:18,600 --> 00:14:22,310 eins og orð eða setningu, eða í heild ritgerð jafnvel, á milli gæsalappa. 308 00:14:22,310 --> 00:14:25,712 Og það er það sem er að fara að hafa áhrif á hegðun printf vegna, að sjálfsögðu, 309 00:14:25,712 --> 00:14:27,170 það er bara almenn prenta virka. 310 00:14:27,170 --> 00:14:29,600 Það er ekki að fara að vita hvað að prenta, nema þú segir það. 311 00:14:29,600 --> 00:14:31,000 Og þá, sumir minutiae. 312 00:14:31,000 --> 00:14:34,056 Hvað gerði við segja þetta undarlegt röð af táknum er? 313 00:14:34,056 --> 00:14:34,556 Já. 314 00:14:34,556 --> 00:14:35,410 >> Áheyrandi: Ný lína. 315 00:14:35,410 --> 00:14:35,990 >> DAVID J MALAN: Ný lína. 316 00:14:35,990 --> 00:14:39,340 Svo kemur í ljós, getur þú ekki bara högg, inn, þegar þú ert að skrifa forrit. 317 00:14:39,340 --> 00:14:42,590 Almennt, þýðandinn er að fara að fá smá ráðvilltur um hvað þú átt við. 318 00:14:42,590 --> 00:14:45,340 Frekar, þú þarft að bókstaflega segja, að gefa mér nýja línu hér. 319 00:14:45,340 --> 00:14:49,506 Og svo er / n hvað við almennt kalla flýja staf. 320 00:14:49,506 --> 00:14:50,870 Svo n, fyrir nýja línu. 321 00:14:50,870 --> 00:14:53,810 Og þýðandinn veit að þegar það sér / n, 322 00:14:53,810 --> 00:14:57,420 það ætti að örva tölvuna, að lokum, eða printf, í þessu tilfelli, 323 00:14:57,420 --> 00:15:00,260 að prenta út í raun nýtt lína, eins og hitting, slá, 324 00:15:00,260 --> 00:15:01,480 takkann á lyklaborðinu þínu. 325 00:15:01,480 --> 00:15:05,620 Og loks, hvað gerði við segja þetta stykki af setningafræði er fyrir? 326 00:15:05,620 --> 00:15:06,591 Hvað þýðir það tákna? 327 00:15:06,591 --> 00:15:07,090 Já. 328 00:15:07,090 --> 00:15:07,490 >> Áheyrandi: [inaudible] 329 00:15:07,490 --> 00:15:08,660 >> DAVID J MALAN: Það er bara the endir af the lína. 330 00:15:08,660 --> 00:15:09,909 Það er enda yfirlýsingarinnar. 331 00:15:09,909 --> 00:15:11,890 Og átta sig á að við gerum ekki setja þær alls staðar. 332 00:15:11,890 --> 00:15:13,900 Við vissulega ekki setja þá á endunum hverja línu. 333 00:15:13,900 --> 00:15:16,680 Til dæmis, það er ekkert á Fyrsta lína, það er ekkert á línu 334 00:15:16,680 --> 00:15:18,680 með, helstu, það er enginn eftir hrokkið axlabönd, 335 00:15:18,680 --> 00:15:21,740 en þú munt byrja að sjá og fá kunnugur þar sem það er kallað. 336 00:15:21,740 --> 00:15:26,014 Og það er nánast alltaf eftir fall hringja eða yfirlýsing, sumir aðgerð 337 00:15:26,014 --> 00:15:27,180 að þú ert í raun að taka. 338 00:15:27,180 --> 00:15:29,520 >> Og vita núna, sérstaklega ef meðal þeirra minna þægilegt, 339 00:15:29,520 --> 00:15:32,540 þetta eru tegundir af heimskur hlutur að þú munt á endanum óvart lemja 340 00:15:32,540 --> 00:15:33,873 höfuðið að veggnum yfir. 341 00:15:33,873 --> 00:15:36,107 Þar sem þú munt vera rökrétt öruggur í sumum vandamál 342 00:15:36,107 --> 00:15:38,440 þú hefur leyst fyrir vandamál sett, og fjandinn hlutur bara 343 00:15:38,440 --> 00:15:40,187 mun ekki saman eða jafnvel keyra. 344 00:15:40,187 --> 00:15:43,270 Og svo oft, snemma, það er að fara að verið vegna þess að þú misstir sviga, 345 00:15:43,270 --> 00:15:44,455 eða þú misstir semíkommu. 346 00:15:44,455 --> 00:15:46,547 Og svo bara að hafa í huga af þessum tegundum af hlutum, 347 00:15:46,547 --> 00:15:49,380 og reyna ekki að fá svekktur með þá vegna þess að mjög fljótt er þetta 348 00:15:49,380 --> 00:15:50,640 verða gamall hattur. 349 00:15:50,640 --> 00:15:53,910 En það er mjög auðvelt að fá svekktur snemma, í kjölfarið. 350 00:15:53,910 --> 00:15:57,020 >> Svo nú skulum við taka a líta á hvernig þessi lína er í raun að vinna 351 00:15:57,020 --> 00:15:59,170 og þá líta á örlítið flóknari einn. 352 00:15:59,170 --> 00:16:02,017 Þannig að við höfum hérna, sem getu til að draga á þessum skjá. 353 00:16:02,017 --> 00:16:04,100 Og við skulum gera ráð fyrir að þetta er minn skjár tölva, 354 00:16:04,100 --> 00:16:08,589 en ég er að skrifa, hello forritið, og ég hef ekki til framkvæmda, printf. 355 00:16:08,589 --> 00:16:10,130 Einhver annar hefur innleitt, printf. 356 00:16:10,130 --> 00:16:12,420 Sem langar að segjast hafa innleitt, printf? 357 00:16:12,420 --> 00:16:12,920 Ef við getum? 358 00:16:12,920 --> 00:16:13,830 Allt í lagi, hvað er nafnið þitt? 359 00:16:13,830 --> 00:16:14,155 >> STUDENT 1: [? Copal. ?] 360 00:16:14,155 --> 00:16:15,529 >> DAVID J MALAN: copal, koma á upp. 361 00:16:15,529 --> 00:16:16,430 Komdu upp. 362 00:16:16,430 --> 00:16:17,070 Allt í lagi. 363 00:16:17,070 --> 00:16:22,260 Þannig að við höfum, hér, sumir nafn tags, þar sem við munum gera smá leik af þessu. 364 00:16:22,260 --> 00:16:26,270 Og við munum hringja í þig, printf. 365 00:16:26,270 --> 00:16:30,170 Og ef þú vilt koma hingað, það sem ég hef bara dregið á skjánum, 366 00:16:30,170 --> 00:16:32,340 það er einfaldlega, það er ég, þetta. 367 00:16:32,340 --> 00:16:35,550 >> Allt í lagi, svo, halló ég heiti, printf, ef þú vilt setja það á. 368 00:16:35,550 --> 00:16:35,740 Allt í lagi. 369 00:16:35,740 --> 00:16:37,360 Og ef þú getur farið standa af tölvuskjá 370 00:16:37,360 --> 00:16:39,730 eins og þú ert að virka sem kom með þessa tölvukerfi. 371 00:16:39,730 --> 00:16:42,063 Og tilgangur þinn í lífinu er að í raun prenta eitthvað. 372 00:16:42,063 --> 00:16:44,560 En mikið eins og program við bara haft á skjánum, hér, 373 00:16:44,560 --> 00:16:47,060 við erum að fara að þurfa að í raun að gefa þér nokkur inntak. 374 00:16:47,060 --> 00:16:51,810 >> Og svo, ef inntak mína, hér er virðist, hvað er liðin að printf, 375 00:16:51,810 --> 00:16:53,730 skulum konar spotta upp svona. 376 00:16:53,730 --> 00:16:58,720 Ég ætla að bókstaflega skrifa á a stykki af pappír, "halló, heimur," 377 00:16:58,720 --> 00:17:03,020 sviga N. Og til að vera skýr, það Ég hef bara dregið á þessu stykki af pappír, 378 00:17:03,020 --> 00:17:04,020 lítur út eins og þetta. 379 00:17:04,020 --> 00:17:08,730 Svo þegar ég keyra þetta forrit, og þetta gula lína af kóða fær keyrð, 380 00:17:08,730 --> 00:17:12,970 það er eins og ég, hello program, er fötlun sumir inntak burt til falls 381 00:17:12,970 --> 00:17:13,970 að einhver skrifaði annað. 382 00:17:13,970 --> 00:17:16,595 >> Og ef þér, með fingrinum, gæti reyndar, með fingrinum, 383 00:17:16,595 --> 00:17:21,520 draga á skjánum hvað það er sem þú hefur verið afhent, 384 00:17:21,520 --> 00:17:27,465 áhrif, að lokum, er að sjá nákvæmlega það, á skjánum. 385 00:17:27,465 --> 00:17:29,140 Og a Little horn raunin hér. 386 00:17:29,140 --> 00:17:31,540 Og gott, ættum við ekki að sjá sem, nýja línu, á þessum tímapunkti. 387 00:17:31,540 --> 00:17:33,900 Það væri rangt fyrir þig að sérstaklega draga ný lína. 388 00:17:33,900 --> 00:17:36,810 En ef við héldum að skrifa orð á skjár, myndu þeir á endanum að neðan það. 389 00:17:36,810 --> 00:17:39,560 >> Svo þakka þér kærlega fyrir, en halda fast hérna fyrir bara eitt augnablik. 390 00:17:39,560 --> 00:17:42,860 Við þurfum nú eitt annað Sjálfboðaliðinn, ef við gætum, 391 00:17:42,860 --> 00:17:46,830 það er að fara að þurfa að leika hlutverk of-- Það er aðeins fólk í hljómsveitinni 392 00:17:46,830 --> 00:17:47,355 núna. 393 00:17:47,355 --> 00:17:47,980 Hvernig about-- OK. 394 00:17:47,980 --> 00:17:48,480 Hérna. 395 00:17:48,480 --> 00:17:49,180 Komdu upp. 396 00:17:49,180 --> 00:17:49,955 Hvað er nafn þitt? 397 00:17:49,955 --> 00:17:50,922 >> STUDENT 2: [? Ivay. ?] 398 00:17:50,922 --> 00:17:51,796 DAVID J MALAN miður? 399 00:17:51,796 --> 00:17:52,990 STUDENT 2: [? Ivay. ?] 400 00:17:52,990 --> 00:17:55,320 DAVID J MALAN: Ethan, koma á upp. 401 00:17:55,320 --> 00:17:55,820 Nei? 402 00:17:55,820 --> 00:17:58,390 Var ég að rangt, jafnvel eftir að þú sagðir það tvisvar? 403 00:17:58,390 --> 00:17:58,890 Komdu upp. 404 00:17:58,890 --> 00:18:00,030 Það er erfitt að heyra hér. 405 00:18:00,030 --> 00:18:05,240 406 00:18:05,240 --> 00:18:05,740 OK. 407 00:18:05,740 --> 00:18:07,190 Og ég er hryggur, hvað er nafnið þitt? 408 00:18:07,190 --> 00:18:07,680 >> STUDENT 2: [? Ivay. ?] 409 00:18:07,680 --> 00:18:08,790 >> [? DAVID J MALAN: Ivay. ?] OK. 410 00:18:08,790 --> 00:18:10,430 Fyrir nú, ef þú ert ekki huga, þú ert getstring. 411 00:18:10,430 --> 00:18:11,013 >> STUDENT 2: OK. 412 00:18:11,013 --> 00:18:11,797 Cool. 413 00:18:11,797 --> 00:18:14,630 DAVID J Malan: Svo ef þú vilt að standa hér fyrir réttlátur a augnablik, 414 00:18:14,630 --> 00:18:17,100 við skulum taka a líta á a örlítið flóknari forrit, sem 415 00:18:17,100 --> 00:18:18,670 nú hefur þrjár línur af kóða. 416 00:18:18,670 --> 00:18:24,080 Þannig að við höfum einn, nafn þitt með printf; tveir, kalla til GetString, 417 00:18:24,080 --> 00:18:28,060 fylgt eftir með verkefni til a breytu sem heitir, string s, eða kallast s; 418 00:18:28,060 --> 00:18:31,260 og þá annað símtal til, printf, en í þetta skiptið með tveimur inntak. 419 00:18:31,260 --> 00:18:33,646 >> Þannig að við höfum þegar gert ríkisins nafn þitt, eða öllu heldur, höfum við 420 00:18:33,646 --> 00:18:34,770 þegar gert printf hringja. 421 00:18:34,770 --> 00:18:38,960 Þannig að ég ætla að skrifa, nafn þitt. 422 00:18:38,960 --> 00:18:42,089 Og svo, hvað ég ætla að fara, printf, í bara smá stund, 423 00:18:42,089 --> 00:18:43,005 er einfaldlega þetta. 424 00:18:43,005 --> 00:18:47,760 Svo ef þú vilt fara á undan og draga þetta á skjánum, það er inntak þitt núna. 425 00:18:47,760 --> 00:18:48,260 Allt í lagi. 426 00:18:48,260 --> 00:18:51,160 Og gleyma band, við höfum nú eigin línu okkar af kóða hér. 427 00:18:51,160 --> 00:18:54,470 Svo í, GetString, þurfum við að í raun kalla, GetString. 428 00:18:54,470 --> 00:18:57,920 Svo er tilgangur þinn í lífinu að bara ganga út í hljómsveit, ef þú gætir, 429 00:18:57,920 --> 00:18:58,980 og fá nafn einhvers. 430 00:18:58,980 --> 00:19:00,860 En við skulum gefa þér eitthvað til að setja það á. 431 00:19:00,860 --> 00:19:02,908 Ef þú vilt, fara undan og fá band, 432 00:19:02,908 --> 00:19:05,241 fá nafn einhvers á að stykki af pappír, ef þú gætir. 433 00:19:05,241 --> 00:19:12,940 434 00:19:12,940 --> 00:19:13,530 >> Allt í lagi. 435 00:19:13,530 --> 00:19:15,250 Og við munum sjá, í bara smá stund, en nafn við erum að fá. 436 00:19:15,250 --> 00:19:17,630 Á sama tíma, hvað ég ætla að hafa tilbúin, er auður stykki 437 00:19:17,630 --> 00:19:21,340 af pappír, þar sem, ég ætla að geyma hvað sem gildi það 438 00:19:21,340 --> 00:19:25,752 er að GetString er aftur til mín, Ég, að vera a band breytu sem heitir, s. 439 00:19:25,752 --> 00:19:26,252 Allt í lagi. 440 00:19:26,252 --> 00:19:27,293 Svo hvað ertu með hérna? 441 00:19:27,293 --> 00:19:27,950 Nik. 442 00:19:27,950 --> 00:19:28,450 Allt í lagi. 443 00:19:28,450 --> 00:19:30,910 Þannig að við höfum nafn Nik hér. 444 00:19:30,910 --> 00:19:33,750 Svo er þetta það bókstaflega hefur verið skilað 445 00:19:33,750 --> 00:19:35,810 til mín, svo að segja, með því að GetString. 446 00:19:35,810 --> 00:19:38,720 >> Ég, nú, er að fara til framkvæma vinstri hönd hlið 447 00:19:38,720 --> 00:19:43,440 þess tjáningu, þar sem ég einfaldlega skrifaðu niður, vegna í dag, Nik. 448 00:19:43,440 --> 00:19:46,470 Svo nú hef ég breytu heitir, s, geyma nafn Nik er. 449 00:19:46,470 --> 00:19:49,520 Ég hef þegar afhent til printf, fyrri rök. 450 00:19:49,520 --> 00:19:52,800 En í þriðja og síðasta línu okkar númer, ég hef í raun að hönd printf 451 00:19:52,800 --> 00:19:58,500 eitthvað smá different-- "halló,% s," sviga n. 452 00:19:58,500 --> 00:20:01,510 >> Og svo síðasta línan sem ég ætla að send-- síðasta sem ég er 453 00:20:01,510 --> 00:20:03,060 að fara að skrifa niður núna, er þetta. 454 00:20:03,060 --> 00:20:06,310 Þannig að tvær línur af kóða, eða frekar síðustu línu af kóða, 455 00:20:06,310 --> 00:20:10,690 kallar tvo inputs-- , á þessari, og tveir, þetta. 456 00:20:10,690 --> 00:20:13,330 Svo ef printf virka okkar getur nú tekið þetta sem inntak, 457 00:20:13,330 --> 00:20:16,000 láta mig hreinsa skjáinn fyrir þig. 458 00:20:16,000 --> 00:20:17,250 Reyndar ekki, getur þú farið á undan. 459 00:20:17,250 --> 00:20:19,333 Við munum láta hann upp, þar sem það er á sama program. 460 00:20:19,333 --> 00:20:21,760 461 00:20:21,760 --> 00:20:27,380 Við ættum að sjá, halló, Nik. 462 00:20:27,380 --> 00:20:27,880 Allt í lagi. 463 00:20:27,880 --> 00:20:29,670 Þannig að þetta var alveg nokkrar hindranir til að hoppa í gegnum, bara 464 00:20:29,670 --> 00:20:31,620 að skrifa, ástand þitt nafn, og halló, Nik. 465 00:20:31,620 --> 00:20:37,210 En þetta einfalda hugmynd um skilaboð brottför, inntak brottför og framleiðsla móttöku, 466 00:20:37,210 --> 00:20:40,430 er einmitt fyrirmynd við erum að fara að hafa fyrir jafnvel flóknustu aðgerðir. 467 00:20:40,430 --> 00:20:41,804 Svo þakka þér svo mikið að þér bæði. 468 00:20:41,804 --> 00:20:43,730 Við höfum yndislega streitu bolti hér fyrir þig. 469 00:20:43,730 --> 00:20:48,890 Og þakka þér að GetString okkar og printf sjálfboðaliðar eins. 470 00:20:48,890 --> 00:20:49,551 Þakka þér. 471 00:20:49,551 --> 00:20:50,050 Allt í lagi. 472 00:20:50,050 --> 00:20:50,966 Þakka ykkur bæði. 473 00:20:50,966 --> 00:20:56,640 474 00:20:56,640 --> 00:21:00,430 >> Þannig að við höfum verið að tala um svona langt, að mestu leyti um strengi. 475 00:21:00,430 --> 00:21:06,550 Og það kemur í ljós að C getur raunverulega skilja nokkur mismunandi gerðir gagna. 476 00:21:06,550 --> 00:21:08,860 Í raun, við skulum taka a líta á þetta hér. 477 00:21:08,860 --> 00:21:12,490 Svo C, og mikið af tungumálum, skilja hlutina kallast stafir. 478 00:21:12,490 --> 00:21:16,852 A bleikju er yfirleitt eitt bæti, eða átta bita. 479 00:21:16,852 --> 00:21:19,810 Og það táknar einn staf, eins og stafinn A, eða höfuðborg 480 00:21:19,810 --> 00:21:21,990 bréf A, eða lágstafir bréf A, eða upphrópunarmerki, 481 00:21:21,990 --> 00:21:25,440 eða hvaða staf sem þú getur slegið á lyklaborðið, og stundum jafnvel meira. 482 00:21:25,440 --> 00:21:26,795 Við gerast líka að sjá fljóta. 483 00:21:26,795 --> 00:21:31,160 A fljóta er yfirleitt að 32-bita gildi, eða fjögur bæti 484 00:21:31,160 --> 00:21:33,660 því aftur, eitt bæti er átta bita. 485 00:21:33,660 --> 00:21:36,675 >> Svo er fljóta fljótandi lið gildi, eitthvað með kommu. 486 00:21:36,675 --> 00:21:38,550 Og reyndar, það er það myndin var að tala 487 00:21:38,550 --> 00:21:42,240 um þegar þeir töluðu um fljótandi benda gildi, sumir fastur fjölda bita 488 00:21:42,240 --> 00:21:43,940 notuð til að tákna alvöru númer. 489 00:21:43,940 --> 00:21:45,740 En það er líka það sem kallast tvíliðaleikur. 490 00:21:45,740 --> 00:21:47,860 Þetta eru í Java, ef þú hefur tekið APC, 491 00:21:47,860 --> 00:21:51,540 og tvöfaldur, eins og nafnið sem betur fer gefur til kynna, er tvisvar sinnum eins stór eins og fljóta. 492 00:21:51,540 --> 00:21:54,540 Það er samt rauntala, það hefur bara fleiri bita 493 00:21:54,540 --> 00:21:58,390 sem að vera sífellt nákvæmari, eða til að geyma jafnvel stærri tölur. 494 00:21:58,390 --> 00:21:58,890 int er auðvelt. 495 00:21:58,890 --> 00:22:00,181 Við ræddum um það í síðasta sinn. 496 00:22:00,181 --> 00:22:01,160 Það er bara heiltala. 497 00:22:01,160 --> 00:22:03,980 Og það er yfirleitt 32 bita, eða fjögur bæti. 498 00:22:03,980 --> 00:22:07,850 >> Og svo, ef þú ert með, við skulum sjá nú, 32 bits-- og við gerðum þetta í viku 0, 499 00:22:07,850 --> 00:22:10,820 alltaf svo briefly-- ef þú ert 32 bita, hvað er stærsta 500 00:22:10,820 --> 00:22:13,580 Fjöldi þú getur táknað sem heiltala? 501 00:22:13,580 --> 00:22:16,080 Gefa eða taka? 502 00:22:16,080 --> 00:22:18,380 Það er eins og 4 milljarða, og það er aðeins ef við erum 503 00:22:18,380 --> 00:22:20,690 alþingismaður jákvæðar símanúmer. 504 00:22:20,690 --> 00:22:23,930 Ef þú ert 32 bita, og þú vilt tákna neikvæðar tölur eins og heilbrigður, 505 00:22:23,930 --> 00:22:27,100 range-ið þitt er í raun, neikvæð 2 milljarðar í jákvæðar 2 milljarða. 506 00:22:27,100 --> 00:22:29,250 En almennt, munum við byrja á 0 upp í 4 milljarða króna. 507 00:22:29,250 --> 00:22:32,400 >> Þú þarft ekki að vita nákvæmlega, en við getum séð þetta, í raun, ef ég bara 508 00:22:32,400 --> 00:22:36,400 opna smá reiknivél, hér. 509 00:22:36,400 --> 00:22:41,070 Ég get gert 2 í ​​32, og það er einmitt hversu stór, 510 00:22:41,070 --> 00:22:43,190 hversu mörg gildi þú getur tákna, með 32 bita. 511 00:22:43,190 --> 00:22:44,442 Og það er um það bil 4 milljarða. 512 00:22:44,442 --> 00:22:46,900 Þannig að við munum halda að sjá að tala í nokkrum mismunandi stöðum. 513 00:22:46,900 --> 00:22:48,890 En ef þú þarft lengur tölur en það, 514 00:22:48,890 --> 00:22:51,670 það kemur í ljós að það er eitthvað sem kallast lengi lengi. 515 00:22:51,670 --> 00:22:54,005 Og lengi lengi er almennt 64 bitar, sem 516 00:22:54,005 --> 00:22:56,380 þýðir að það er stærðargráðu jafnvel stærri en int. 517 00:22:56,380 --> 00:22:59,510 >> Þannig að ég get ekki einu sinni bera stærsta tala sem þú getur táknað, 518 00:22:59,510 --> 00:23:01,340 en það er greinilega stærri. 519 00:23:01,340 --> 00:23:05,190 Nú sem innskot, sögulega, ef int er 32 bita, 520 00:23:05,190 --> 00:23:12,780 og lengi lengi er 64 bita, hvernig stór er langur, ekki lengi lengi? 521 00:23:12,780 --> 00:23:16,500 522 00:23:16,500 --> 00:23:20,330 Þú vilt held að það er lengur en int en kannski minna lengi en lengi lengi, 523 00:23:20,330 --> 00:23:21,400 en það fer í raun. 524 00:23:21,400 --> 00:23:23,400 >> Og svo kemur í ljós hver af óánægju líka, 525 00:23:23,400 --> 00:23:26,830 með að skrifa kóðann á ákveðnum kerfum, er að ekki allar þessar tegundir gagna 526 00:23:26,830 --> 00:23:28,440 hafa fyrirframákveðnar gildi. 527 00:23:28,440 --> 00:23:29,771 Stundum er það svona marga bita. 528 00:23:29,771 --> 00:23:31,020 Stundum er það að margir bita. 529 00:23:31,020 --> 00:23:32,750 Svo þú ert í raun að vita, stundum, hvað vélbúnaður 530 00:23:32,750 --> 00:23:34,083 þú ert að keyra hugbúnað á. 531 00:23:34,083 --> 00:23:36,960 Sem betur fer, önnur tungumál og aðrar tegundir gagna sem nú eru fyrir hendi, 532 00:23:36,960 --> 00:23:38,400 leyfa þér að vera nákvæmari. 533 00:23:38,400 --> 00:23:41,220 Jæja, við sáum band, og við sáum bool líka, 534 00:23:41,220 --> 00:23:43,960 en það kemur í ljós þá koma aðeins með CS50 bókasafn. 535 00:23:43,960 --> 00:23:46,240 Svo þeir eru ekki byggð í C Þeir staðinn, 536 00:23:46,240 --> 00:23:49,340 koma í þeirri skrá sem heitir CS50.h, að við munum að lokum 537 00:23:49,340 --> 00:23:51,831 afhýða aftur lag af. 538 00:23:51,831 --> 00:23:53,830 En nú, þeir eru bara fleiri tegundir gagna. 539 00:23:53,830 --> 00:23:57,060 A bool er satt eða ósatt, og band er röð af stöfum, 540 00:23:57,060 --> 00:23:57,970 eins og orð. 541 00:23:57,970 --> 00:24:01,690 Nú printf, við höfum séð, hefur staðgengla,% s er einn. 542 00:24:01,690 --> 00:24:05,430 Og þú might vera fær til að nú, álykta frá þessum öðrum dæmum, hvernig 543 00:24:05,430 --> 00:24:07,720 þú gætir hafa tákn fyrir ýmsar tegundir gagna. 544 00:24:07,720 --> 00:24:11,150 Til dæmis, taka giska, ef þú langaði til að prenta út eitt bleikju með 545 00:24:11,150 --> 00:24:15,270 printf, sem tákn er sennilega% c. 546 00:24:15,270 --> 00:24:19,650 Og ef þú vilt prenta út heiltala með tákn,% i. 547 00:24:19,650 --> 00:24:25,150 % LLD er lengi lengi aukastaf gildi, en lengi lengi, þannig að kort til að. 548 00:24:25,150 --> 00:24:28,640 Og þá% f fyrir fljótandi lið gildi eða tvöfalt, 549 00:24:28,640 --> 00:24:31,270 svo stundum þeir eru endurnýta í mismunandi samhengi. 550 00:24:31,270 --> 00:24:33,350 Þannig að við munum sjá og nota sumir þeirra með tímanum. 551 00:24:33,350 --> 00:24:36,420 Og printf og aðrar aðgerðir líka styðja aðra 'flýja röð, 552 00:24:36,420 --> 00:24:38,080 og stundum eru þetta nauðsynlegt. 553 00:24:38,080 --> 00:24:39,770 Svo er sviga n nýja línu. 554 00:24:39,770 --> 00:24:42,886 Sviga t, er einhver langar að taka a stunga? 555 00:24:42,886 --> 00:24:43,760 Áheyrandi: Tab. 556 00:24:43,760 --> 00:24:44,551 DAVID J MALAN: Tab. 557 00:24:44,551 --> 00:24:46,810 Svo ef þú vilt í raun að prenta út flipa, ekki 558 00:24:46,810 --> 00:24:49,940 föst rýmis en í raun dálkamerki, þú högg ekki þinn, 559 00:24:49,940 --> 00:24:53,490 flipi, lykill á lyklaborðinu, almennt, þú gerir í raun sviga t. 560 00:24:53,490 --> 00:24:57,750 Sviga tvöfaldur vitna, hvers vegna vildi ég vil alltaf að? 561 00:24:57,750 --> 00:24:58,250 Ekki satt? 562 00:24:58,250 --> 00:25:00,417 Hvers vegna get ég ekki slegið bara tvöfaldur vitna á lyklaborðinu mínu? 563 00:25:00,417 --> 00:25:02,124 Áheyrandi: Vegna þess, annars, það er 564 00:25:02,124 --> 00:25:04,830 fara að hugsa það er enda af eins prenta þína [? texti. ?] 565 00:25:04,830 --> 00:25:05,420 >> DAVID J MALAN: Einmitt. 566 00:25:05,420 --> 00:25:07,211 Mundu, með okkar printf dæmi, þegar við 567 00:25:07,211 --> 00:25:10,075 stóðum að printf í inntak, á vinstri þeirrar inntak band 568 00:25:10,075 --> 00:25:12,950 og um rétt þess inntak vor, að sjálfsögðu, var tvöfaldur vitna. 569 00:25:12,950 --> 00:25:16,270 Ef eigin inntak þitt er tvöfalt vitna í miðju að 570 00:25:16,270 --> 00:25:18,920 gæti tölvan hugsanlega fá rugla, eins og til, 571 00:25:18,920 --> 00:25:20,760 er þetta tvöfalda tilvitnun tilheyra í miðjunni? 572 00:25:20,760 --> 00:25:22,150 Er það tilheyri með vinstri einn? 573 00:25:22,150 --> 00:25:23,566 Er það tilheyri með the réttur einn? 574 00:25:23,566 --> 00:25:26,780 Og svo, ef þú vilt gera það frábær ljóst, þú sviga tvöfalda quote, 575 00:25:26,780 --> 00:25:30,480 þannig að það er sloppið, svo að segja, og það er ekki conflated fyrir eitthvað annað. 576 00:25:30,480 --> 00:25:34,400 Og það er nokkrum öðrum hér, sviga r, einn vitna, 0, 577 00:25:34,400 --> 00:25:36,510 að vér megum sjá með tímanum, eins og heilbrigður. 578 00:25:36,510 --> 00:25:37,760 Og nú, hvað um aðgerðir? 579 00:25:37,760 --> 00:25:41,630 >> Svo aðgerðum sem við getum tekið svona langt í þessu tungumáli, C, vel, við höfum séð, 580 00:25:41,630 --> 00:25:44,320 printf, auðvitað, og allir af öðrum á skjánum, 581 00:25:44,320 --> 00:25:47,140 hér, sem við munum nota til að Fyrstu vikurnar er auðvitað aðeins, 582 00:25:47,140 --> 00:25:48,485 koma þegar CS50 bókasafn. 583 00:25:48,485 --> 00:25:51,850 Og þeir gera það mun auðveldara, í C, til raunverulega fá notandi inntak. 584 00:25:51,850 --> 00:25:54,200 Það kemur í ljós að í C, og hreinskilnislega í nokkrum tungumálum, 585 00:25:54,200 --> 00:25:57,450 það er raunverulegur sársauki í hálsi að gera eitthvað einfalt, eins hvetja notandann 586 00:25:57,450 --> 00:26:01,310 fyrir lyklaborð, fyrir inntak hans. 587 00:26:01,310 --> 00:26:03,240 Og svo þessar aðgerðir að gera það auðveldara. 588 00:26:03,240 --> 00:26:05,472 >> Og það hefur líka villa stöðva gegn, 589 00:26:05,472 --> 00:26:07,180 þannig að þegar þú muna á miðvikudag, við 590 00:26:07,180 --> 00:26:09,740 sá, að reyna aftur, viðvörun, þegar ég er ekki að vinna, 591 00:26:09,740 --> 00:26:11,700 og ég gafst orð, í stað fjölda? 592 00:26:11,700 --> 00:26:15,402 Við höfum gert mikið að lyfta snemma á til að tryggja að notandinn vinnur. 593 00:26:15,402 --> 00:26:17,860 En þetta eru bara þjálfun hjól að við munum að lokum, 594 00:26:17,860 --> 00:26:19,640 og fljótt, taka burt. 595 00:26:19,640 --> 00:26:22,630 >> Svo að ágrip, þá við skulum taka a fljótur líta, 596 00:26:22,630 --> 00:26:26,620 mikið eins og við gerðum með grunni, á sumir Canonical býr í C 597 00:26:26,620 --> 00:26:28,580 Þetta er ætlað að, flokka af, vera vindbylur ferð, 598 00:26:28,580 --> 00:26:30,990 bara svo að þú sért með tilvísun og þegar þú hefur séð það í fyrstu. 599 00:26:30,990 --> 00:26:34,100 En þá munum við líta á raunverulegum erfðaskrá nota sumar af þessum kubbar. 600 00:26:34,100 --> 00:26:36,710 Svo mikið eins í grunni, þegar við höfðum yfirlýsingar eins, 601 00:26:36,710 --> 00:26:41,570 segja eða, bíddu, í C, þá höfum við virka eins og heilbrigður, eins printf. 602 00:26:41,570 --> 00:26:45,350 >> Ef við viljum að tjá ástand í C, það er svipað, í anda, 603 00:26:45,350 --> 00:26:47,840 að því ráðgáta stykki sem leit út eins og þetta í grunni. 604 00:26:47,840 --> 00:26:49,850 En í staðinn, við bókstaflega bara að skrifa, ef. 605 00:26:49,850 --> 00:26:51,830 Og þá, í ​​sviga, við að setja skilyrði, 606 00:26:51,830 --> 00:26:54,807 þar sem ástand er það sem við munum kalla, aftur, Boolean tjáningu. 607 00:26:54,807 --> 00:26:56,390 Og aftur, þetta er tegund af sauðakóðanum. 608 00:26:56,390 --> 00:26:58,830 Og í raun, // eru ummæli. 609 00:26:58,830 --> 00:27:00,550 Það er bara enskum orðum í mig. 610 00:27:00,550 --> 00:27:03,000 En þetta er almennt uppbyggður, ef ástand. 611 00:27:03,000 --> 00:27:05,220 En við munum sjá steypu dæmi í aðeins augnablik. 612 00:27:05,220 --> 00:27:07,960 >> Ef þú vilt hafa tveir-vegur punga í veginum, 613 00:27:07,960 --> 00:27:11,740 mikið eins og við gerðum með sjálfboðaliða okkar á Miðvikudagur, getur þú hafa óákveðinn greinir í ensku, annað hvort. 614 00:27:11,740 --> 00:27:16,020 Og ef þú vilt hafa þriðja og síðasta skilyrðinu, eða vanræksla ástand, 615 00:27:16,020 --> 00:27:19,006 þú getur hafa bara annað blokk, þar. 616 00:27:19,006 --> 00:27:21,880 Og sömuleiðis, með Boolean tjáning, þú getur, og þá saman. 617 00:27:21,880 --> 00:27:24,296 Og við sáum á miðvikudaginn, sem það er ekki einn merkið, 618 00:27:24,296 --> 00:27:28,220 það er tveir, af ástæðum lægra stigi sem við munum að lokum sjá og spila með. 619 00:27:28,220 --> 00:27:30,410 Eða-ing hlutina saman er 2 lóðrétt bars. 620 00:27:30,410 --> 00:27:32,240 Á bandaríska hljómborð, þetta er yfirleitt lykillinn 621 00:27:32,240 --> 00:27:35,730 með Shift lyklinum ofan Enter takkann eða Return takkanum. 622 00:27:35,730 --> 00:27:38,620 >> Þá er þetta það sem við munum nota kannski einu sinni eða tvisvar. 623 00:27:38,620 --> 00:27:42,570 Þeir eru virkni jafngildir hvað þú getur gert með að, ef annað hvort, 624 00:27:42,570 --> 00:27:44,950 annars ef annar, smíða, en þeir eru kallaðir skipta. 625 00:27:44,950 --> 00:27:48,020 Þeir líta mjög mismunandi, en við munum sjá í sumum dreifingu númerið okkar, 626 00:27:48,020 --> 00:27:51,890 fyrir framtíð vandamál setja, líklega, að það er stundum bara fallegri 627 00:27:51,890 --> 00:27:54,060 leið til að tjá heild fullt af aðstæðum, 628 00:27:54,060 --> 00:27:57,590 án þess að hafa a einhver fjöldi af hrokkið axlabönd og a einhver fjöldi af svigum og inndrátt. 629 00:27:57,590 --> 00:28:01,910 En þeir gefa okkur ekki meira afl en við höfum nú þegar. 630 00:28:01,910 --> 00:28:02,550 Og nú lykkjur. 631 00:28:02,550 --> 00:28:05,020 Og þetta munum við líta á smá hægar. 632 00:28:05,020 --> 00:28:08,470 En þá munum við byrja að nota þetta, sérstaklega fyrir þá sem þegar þekkja. 633 00:28:08,470 --> 00:28:13,830 Þetta er Canonical leið, ef ótrúlega Bogagöng leið, að skrifa lykkju C 634 00:28:13,830 --> 00:28:15,896 >> Nú lykkja í grunni var frekar einfalt. 635 00:28:15,896 --> 00:28:17,020 Þú ert með, að eilífu, blokk. 636 00:28:17,020 --> 00:28:19,760 Þú ert með, endurtaka, blokk með bara tala sem þú þarft að slá inn. 637 00:28:19,760 --> 00:28:22,220 Og með, fyrir lykkju, þú getur innleiða báðum þessum hugmyndum, 638 00:28:22,220 --> 00:28:23,595 en það er aðeins meira tæknilega. 639 00:28:23,595 --> 00:28:25,994 En hreinskilnislega, það er einnig tiltölulega einfalt. 640 00:28:25,994 --> 00:28:28,160 Þegar þú veist röð Rekstur, þú bókstaflega 641 00:28:28,160 --> 00:28:30,910 eru bara að fara að stinga í gildi og segja tölva hvað ég á að gera. 642 00:28:30,910 --> 00:28:32,800 Svo hér er dæmi. 643 00:28:32,800 --> 00:28:38,040 Þetta er lykkja sem, alveg einfaldlega, telur frá einum fjölda upp 644 00:28:38,040 --> 00:28:40,187 gegnum annað. 645 00:28:40,187 --> 00:28:42,020 Og bara eftir glancing á það, jafnvel ef þú ert 646 00:28:42,020 --> 00:28:44,660 ekki fyrri reynslu með þetta tungumál, hvað fjölda 647 00:28:44,660 --> 00:28:46,920 er það að byrja líklega telja á? 648 00:28:46,920 --> 00:28:47,730 OK, 0. 649 00:28:47,730 --> 00:28:50,240 Og ég giska á að sé vegna þess að þú sjá að það er int og i, 650 00:28:50,240 --> 00:28:51,073 sem er breytilegt. 651 00:28:51,073 --> 00:28:52,390 Það er frumstilla 0. 652 00:28:52,390 --> 00:28:55,670 >> Og þá seinna, það lítur út eins og við erum liggur printf, gildi. 653 00:28:55,670 --> 00:28:58,000 Og í raun, gerði ég smá prentvilla hér. 654 00:28:58,000 --> 00:28:59,850 En það er auðveldlega fastur. 655 00:28:59,850 --> 00:29:02,390 Leyfðu mér að bæta í, ég á heima hér. 656 00:29:02,390 --> 00:29:06,150 Við höfum nú printf vellíðan fór að staðgenglinum gildi. 657 00:29:06,150 --> 00:29:08,299 Og hvað er að fara að telja upp í gegnum? 658 00:29:08,299 --> 00:29:08,840 Áhorfendur: 50. 659 00:29:08,840 --> 00:29:09,340 50. 660 00:29:09,340 --> 00:29:10,160 49. 661 00:29:10,160 --> 00:29:10,910 DAVID J MALAN: 49. 662 00:29:10,910 --> 00:29:13,340 Svo 50, við fyrstu sýn, virðist rétt. 663 00:29:13,340 --> 00:29:16,990 En það, það kemur í ljós, er að fara að vera ástand okkar sem við höldum að haka. 664 00:29:16,990 --> 00:29:21,740 Og við erum að fara að hætta þegar Ég er ekki lengur minni en 50 |. 665 00:29:21,740 --> 00:29:24,920 Þannig að þetta lykkja öfugt, ætti framkvæma, svo lengi sem I er minni en 50. 666 00:29:24,920 --> 00:29:28,891 En um leið og það verður 50 eða 51, eða verri, það ætti að hætta sjálfkrafa. 667 00:29:28,891 --> 00:29:29,390 Allt í lagi. 668 00:29:29,390 --> 00:29:31,200 >> Svo hvað raunverulega gerist hér? 669 00:29:31,200 --> 00:29:33,160 Svo er þetta röð Rekstur lykkju. 670 00:29:33,160 --> 00:29:35,440 Einn, hefur þú svokallaða frumstilling. 671 00:29:35,440 --> 00:29:38,264 Þetta gula hápunktur klumpur af kóða er keyrð fyrst, 672 00:29:38,264 --> 00:29:40,930 og það hefur þau áhrif að, á Miðvikudagur, ímynda þú sennilega. 673 00:29:40,930 --> 00:29:45,500 Það skapar breytu sem heitir i og það verslanir í breytunni gildi 0. 674 00:29:45,500 --> 00:29:47,560 Svo ég er 0 á þessum tímapunkti í sögunni. 675 00:29:47,560 --> 00:29:49,680 >> The næstur hlutur sem gerist í þessu reisa, 676 00:29:49,680 --> 00:29:51,540 er að ástand fær köflóttur. 677 00:29:51,540 --> 00:29:54,325 Svo ég athuga strax, er i minni en 50 |? 678 00:29:54,325 --> 00:29:57,700 Og auðvitað, svarið nú er, örugglega, já. 679 00:29:57,700 --> 00:30:00,710 Já, vegna þess að ég er 0, og sem er örugglega minna en 50. 680 00:30:00,710 --> 00:30:03,866 Þá hvað gerist er að þetta, lína af kóða fær framkvæma. 681 00:30:03,866 --> 00:30:06,740 Og í raun, ef það er margfeldi línur af kóða í þessum hrokkið axlabönd, 682 00:30:06,740 --> 00:30:09,020 þeir fá fram hvert á eftir öðru. 683 00:30:09,020 --> 00:30:11,450 >> Og í raun hér, er virðist, að prenta út 684 00:30:11,450 --> 00:30:15,365 fjöldi i, sem er að fara að að vera 0, og síðan 1, og síðan 2. 685 00:30:15,365 --> 00:30:15,865 En hvers vegna? 686 00:30:15,865 --> 00:30:17,410 Hvers vegna er það að hækkaður? 687 00:30:17,410 --> 00:30:20,680 Jæja, fjórði hlutur sem gerist er að þetta setningafræði 688 00:30:20,680 --> 00:30:22,610 fær framkvæma, eftir semíkommu. 689 00:30:22,610 --> 00:30:27,506 Ég ++ er styttingin leið til að segja; taka gildi i og bæta 1 við það; 690 00:30:27,506 --> 00:30:30,380 og svo næsta skipti í kring, bæta 1 við það; og næst þegar kring, 691 00:30:30,380 --> 00:30:31,330 bæta 1 við það. 692 00:30:31,330 --> 00:30:33,640 >> Þannig að ef við höldum áfram, hvað er að fara að gerast 693 00:30:33,640 --> 00:30:35,890 næsta er ég ekki að fara að frumstilla ég alltaf aftur. 694 00:30:35,890 --> 00:30:38,290 Ef ég hélt að virkja ég til 0, þetta dæmi 695 00:30:38,290 --> 00:30:41,110 myndi aldrei enda því ég væri fastur á 0. 696 00:30:41,110 --> 00:30:43,870 En hvað er að fara að gerast er að ástand verður með 697 00:30:43,870 --> 00:30:54,280 lína af kóða mun fá fram, i verður hækkaður, 698 00:30:54,280 --> 00:30:56,970 ástand mun vera merkt, kóði mun fá fram. 699 00:30:56,970 --> 00:30:59,790 Og það hélt hjólreiðar aftur, og aftur, og aftur, 700 00:30:59,790 --> 00:31:03,340 Þangað til ég ++ veldur gildi 50. 701 00:31:03,340 --> 00:31:05,870 >> Skilyrði segir þá, er 50 minni en 50 |? 702 00:31:05,870 --> 00:31:09,360 Svarið er auðvitað, er ekkert, og svo hættir allt póstnúmer framkvæmd. 703 00:31:09,360 --> 00:31:13,020 Og ef þú ert með fleiri kóðann á skjánum niðri, það er það sem gerist næst. 704 00:31:13,020 --> 00:31:17,530 Það birtist út úr þessum hrokkið axlabönd og áfram að prenta meira eftir það. 705 00:31:17,530 --> 00:31:20,470 >> Svo brandari nú, frá Foxtrot, sem þú munt ef til vill nú skilja. 706 00:31:20,470 --> 00:31:30,810 707 00:31:30,810 --> 00:31:31,560 Það er alltaf fyndið. 708 00:31:31,560 --> 00:31:34,110 Það er eins og chuckles konar percolate, 709 00:31:34,110 --> 00:31:38,370 og þá ljóst að þú ættir ekki að vera að hlæja að húmor eins og þetta. 710 00:31:38,370 --> 00:31:41,160 En það er einhver takeaway hér pedagogically líka. 711 00:31:41,160 --> 00:31:43,577 Svo kemur í ljós að ég er vantar stykki af setningafræði, 712 00:31:43,577 --> 00:31:45,410 eða Foxtrot er vantar a stykki af setningafræði hér. 713 00:31:45,410 --> 00:31:48,076 Hvað vantar, að við höfum haft í öllum öðrum td svona langt? 714 00:31:48,076 --> 00:31:51,599 715 00:31:51,599 --> 00:31:53,390 Return, er það, svo það er eitthvað annað, 716 00:31:53,390 --> 00:31:54,440 að við munum koma aftur til áður en langur. 717 00:31:54,440 --> 00:31:55,398 Hvað vantar, þó? 718 00:31:55,398 --> 00:31:55,908 Já. 719 00:31:55,908 --> 00:31:58,150 >> Áheyrandi: The Frumstilling [inaudible]. 720 00:31:58,150 --> 00:31:58,470 >> DAVID J MALAN: OK. 721 00:31:58,470 --> 00:31:58,980 Svo já. 722 00:31:58,980 --> 00:32:03,210 Svo í raun, þetta is-- Jæja, og telja er frumstilla 723 00:32:03,210 --> 00:32:05,470 upp hér að ofan, eða öllu heldur, lýsti upp hér að ofan. 724 00:32:05,470 --> 00:32:06,960 Svo er þetta annar leið til að gera það. 725 00:32:06,960 --> 00:32:08,685 En ekki í línu og það er gild þó. 726 00:32:08,685 --> 00:32:09,310 Hvernig væri hér? 727 00:32:09,310 --> 00:32:10,196 >> Áheyrandi: Er það hrokkið axlabönd? 728 00:32:10,196 --> 00:32:10,640 >> DAVID J MALAN: Já. 729 00:32:10,640 --> 00:32:12,080 Svo hrokkið axlabönd vantar. 730 00:32:12,080 --> 00:32:15,495 En þetta númer, ég meina, að lánsfé þeirra, er í raun, setningafræðilega gild. 731 00:32:15,495 --> 00:32:17,610 Það kemur í ljós, þú ert ekki þurfa hrokkið axlabönd 732 00:32:17,610 --> 00:32:21,691 ef þú hefur aðeins eina línu af kóða sem þú vilt keyra inni í lykkju. 733 00:32:21,691 --> 00:32:24,190 Nú erum við alltaf í bekknum og í öll dreifingu númerið okkar, 734 00:32:24,190 --> 00:32:26,730 innihalda hrokkið axlabönd engu að síður, bara fyrir sakir skýrleika er. 735 00:32:26,730 --> 00:32:29,010 En ljóst að í kennslubókum og á netinu dæmi, 736 00:32:29,010 --> 00:32:31,300 þú getur mjög vel séð hrokkið axlabönd vantar einhvern. 737 00:32:31,300 --> 00:32:34,850 Og það er allt í lagi, ef það sem þú hafa inndregin og ætlað 738 00:32:34,850 --> 00:32:38,650 er bara ein lína af kóða, og ekki margar línur af kóða, hugsanlega. 739 00:32:38,650 --> 00:32:39,150 Allt í lagi. 740 00:32:39,150 --> 00:32:44,500 Svo tengist útgáfu ónákvæmni, er mál flæða, 741 00:32:44,500 --> 00:32:48,560 í þeim skilningi að, á sama hátt, ekki heiltölur hafa takmörk þeirra 742 00:32:48,560 --> 00:32:49,970 bara eins fleytitölum? 743 00:32:49,970 --> 00:32:53,120 Í heimi fleytitölu gildi, getum við aðeins verið svo nákvæmur, 744 00:32:53,120 --> 00:32:55,710 eftir það, stundum slæmur hlutur getur gerst, 745 00:32:55,710 --> 00:32:57,760 og forrit okkar getur verið gallaðir og villa. 746 00:32:57,760 --> 00:33:00,050 Nú jafnvel með heiltölur, þú getur keyrt inn í vandamál. 747 00:33:00,050 --> 00:33:03,820 Nú heil tala er ekki með a kommu eða númer eftir það. 748 00:33:03,820 --> 00:33:07,130 Það er bara náttúrleg tala, yfirleitt. 749 00:33:07,130 --> 00:33:09,430 Svo hvað gæti farið úrskeiðis með int? 750 00:33:09,430 --> 00:33:12,210 Ef ég er að nota int til telja, hvað gæti farið úrskeiðis? 751 00:33:12,210 --> 00:33:13,230 Virðist mikið einfaldara. 752 00:33:13,230 --> 00:33:13,873 Já. 753 00:33:13,873 --> 00:33:16,240 >> Áheyrandi: Ef Fjöldi fær [inaudible] 754 00:33:16,240 --> 00:33:17,073 >> DAVID J MALAN: Já. 755 00:33:17,073 --> 00:33:20,820 Hvað ef þú telur svo hátt, að þér getur ekki tjáð að mjög stór númer. 756 00:33:20,820 --> 00:33:21,320 Ekki satt? 757 00:33:21,320 --> 00:33:23,910 Á einhverjum tímapunkti, þú ert að fara að fara yfir mörk 758 00:33:23,910 --> 00:33:27,077 af 32-bita gildi eða 64-bita gildi. 759 00:33:27,077 --> 00:33:29,410 Nú aftur, ég er ekki viss um hvernig að kveða upp 64-bita gildi, 760 00:33:29,410 --> 00:33:32,230 en ég veit með 32-bita heiltölu stærsta eftirfarandi gildi það getur verið, 761 00:33:32,230 --> 00:33:35,490 ef það er bara jákvætt gildi er um 4 milljarðar króna. 762 00:33:35,490 --> 00:33:39,000 Svo ef ég reyni að telja til 5 milljarðar króna, eitthvað er að fara að gerast. 763 00:33:39,000 --> 00:33:41,050 En við skulum sjá hvað í raun getur gerst. 764 00:33:41,050 --> 00:33:44,570 Í heimi heiltölu flæða, þar sem þú, í vissum skilningi, 765 00:33:44,570 --> 00:33:48,270 flæða Geta heiltala, hvað gæti gerst? 766 00:33:48,270 --> 00:33:51,190 >> Svo hér er tvöfaldur fjöldi, það er throwback 0. 767 00:33:51,190 --> 00:33:54,630 Það er allt 1 er, og tákn það eru heimildir 2, 768 00:33:54,630 --> 00:33:55,980 þannig að þetta er tvöfaldur. 769 00:33:55,980 --> 00:33:59,416 Svo þetta eru 8, 1 bita á skjánum. 770 00:33:59,416 --> 00:34:01,290 Og ef þú manst eða þú gerir fljótt stærðfræði, 771 00:34:01,290 --> 00:34:06,074 Hvers virði er að vera fulltrúi hér með þessum átta 1 bita? 772 00:34:06,074 --> 00:34:06,950 255. 773 00:34:06,950 --> 00:34:09,260 Og jafnvel ef þú varst ekki alveg viss af stærðfræði, getur þú gert það út. 774 00:34:09,260 --> 00:34:10,550 Eða þú gætir bara svona af ástæðum í gegnum það, 775 00:34:10,550 --> 00:34:12,633 Bíddu, ef ég er fulltrúi í 8 bita gildi, 776 00:34:12,633 --> 00:34:17,750 og ég hef fengið 256 möguleg gildi, en fyrsta sem er 0, 777 00:34:17,750 --> 00:34:19,909 Ég veit bara að Stærsta er að fara að vera 255, 778 00:34:19,909 --> 00:34:21,510 og það er það sem þetta gæti verið. 779 00:34:21,510 --> 00:34:26,060 >> Svo ætla ég að reyna að bæta 1 að þetta gildi. 780 00:34:26,060 --> 00:34:28,750 Hvað myndir þú gera í bekk skóla þegar að bæta við 1, og það 781 00:34:28,750 --> 00:34:31,139 er í raun ekki passa vegna þess að þú þarft að bera 1? 782 00:34:31,139 --> 00:34:34,380 Hvað er þessi tala að fara að verða þegar þú bæta 1? 783 00:34:34,380 --> 00:34:37,030 Það er að fara að verða 0. 784 00:34:37,030 --> 00:34:37,530 Ekki satt? 785 00:34:37,530 --> 00:34:41,139 Vegna þess að ef þú hefðir fleiri bits-- og ég ætla reyna að, eins konar, slá það út here-- 786 00:34:41,139 --> 00:34:44,710 ef við hefðum fleiri bita, hvað við gæti gert hér er að bæta 1, 787 00:34:44,710 --> 00:34:47,370 og þá að við myndum fá þetta. 788 00:34:47,370 --> 00:34:48,739 Úpps. 789 00:34:48,739 --> 00:34:52,250 Við myndum hafa 1 bita alla leið hingað. 790 00:34:52,250 --> 00:34:55,530 >> En ef þetta er endanlegt gildi er það aðeins 8 bitar, 791 00:34:55,530 --> 00:34:57,480 og það er fyrirfram ákveðinn af tölvunni, 792 00:34:57,480 --> 00:34:59,370 sem 1 er í raun ekki þar. 793 00:34:59,370 --> 00:35:00,980 Það fellur bara svona af kletti. 794 00:35:00,980 --> 00:35:05,480 Og svo ef þú bætir 1 til 255, hvað gildi færðu virðist? 795 00:35:05,480 --> 00:35:06,180 0. 796 00:35:06,180 --> 00:35:09,700 Og svo tölum tilviljun, og ef til vill, óviljandi, 797 00:35:09,700 --> 00:35:12,040 endað umbúðir kringum svona. 798 00:35:12,040 --> 00:35:14,079 Svo hvað er hægt að vera vísbendingu um þetta? 799 00:35:14,079 --> 00:35:15,620 Jæja, það er nokkrar mismunandi hluti. 800 00:35:15,620 --> 00:35:18,751 Svo einn, það er á endanum að leita eins 0, óviljandi, 801 00:35:18,751 --> 00:35:20,750 en þú getur konar séð, jafnvel í hinum raunverulega heimi, 802 00:35:20,750 --> 00:35:23,416 fyrir betri eða verri, einkenni þessari hugmynd um takmörk. 803 00:35:23,416 --> 00:35:26,630 Til dæmis, einhver ykkar sem hef spilað Lego Star Wars, 804 00:35:26,630 --> 00:35:28,880 hefur einhver gerst að vita hámarksfjöldi mynt 805 00:35:28,880 --> 00:35:32,032 þú getur safna í Lego Star Wars? 806 00:35:32,032 --> 00:35:35,640 Taka giska byggt á leiðandi spurningar í dag. 807 00:35:35,640 --> 00:35:39,140 Það er stærri en 256 eða 255. 808 00:35:39,140 --> 00:35:40,330 Það er 4 milljarðar króna. 809 00:35:40,330 --> 00:35:42,080 Svo kemur í ljós, og það er einhver people-- 810 00:35:42,080 --> 00:35:46,080 sumir googling staðfesti í síðustu night-- hafa fengið 4 milljarða gull mynt, 811 00:35:46,080 --> 00:35:47,730 eða whatnot, í Lego Star Wars. 812 00:35:47,730 --> 00:35:49,860 Þó virðist, það er leið til að plata leikinn, 813 00:35:49,860 --> 00:35:53,222 það er padda eða lögun, sem gerir þér kleift að bara renna fullt og fullt af punktum. 814 00:35:53,222 --> 00:35:54,930 En stærsta mögulegt gildi, í samræmi 815 00:35:54,930 --> 00:35:58,360 þessari skjámynd af einhverjum sem ég finna á netinu, er reyndar 4 milljarða. 816 00:35:58,360 --> 00:35:59,240 >> Nú er ástæðan fyrir því? 817 00:35:59,240 --> 00:36:03,040 Það er einmitt 4 milljarða, sennilega vegna þess að einhver ákvað, 818 00:36:03,040 --> 00:36:05,500 sem var að skrifa þennan leik, að þeir gætu gert 4 milljarða, 819 00:36:05,500 --> 00:36:07,340 eitthvað, eitthvað, eitthvað, eins verðmæti ég setti upp 820 00:36:07,340 --> 00:36:10,256 með reiknivél fyrr en það er bara smá hreinni fyrir menn 821 00:36:10,256 --> 00:36:12,610 að segja hámarksfjölda af coins-- eða pinnar, 822 00:36:12,610 --> 00:36:14,860 eins og þeir kalla them-- að þú Hægt er að safna er 4 milljarðar króna. 823 00:36:14,860 --> 00:36:16,290 Og svo, af hverju er þetta? 824 00:36:16,290 --> 00:36:20,310 Hvernig er LEGO leikur framkvæmd borðið 825 00:36:20,310 --> 00:36:23,420 sem er að halda utan um fjölda mynt þú ert? 826 00:36:23,420 --> 00:36:24,266 Þeir eru að nota það? 827 00:36:24,266 --> 00:36:26,390 Áheyrandi: Það stoppar telja eftir 4 milljörðum króna. 828 00:36:26,390 --> 00:36:27,720 DAVID J MALAN: Það hættir telja eftir 4 milljarða, 829 00:36:27,720 --> 00:36:29,525 sem þýðir að þú getur álykta, sem forritari, 830 00:36:29,525 --> 00:36:31,960 að þeir eru líklega með 32 bita heiltölu. 831 00:36:31,960 --> 00:36:35,380 Eins forritari bókstaflega bara slegið, int, í númerið hans eða hennar, 832 00:36:35,380 --> 00:36:39,620 og það er tegund af breytu sem þeir eru að nota til að geyma kóða einhvers. 833 00:36:39,620 --> 00:36:42,230 Svo er önnur einkenni þar af þessum tegundum af mörkum. 834 00:36:42,230 --> 00:36:45,063 >> Þannig að ég hef ekki spilað þennan game-- og ég var að lesa upp á sögu 835 00:36:45,063 --> 00:36:48,470 til að staðfesta eins much-- en í Upprunalega útgáfa af Civilization, þar 836 00:36:48,470 --> 00:36:53,240 þú samskipti virðist við hvert annað og geta heyja stríð eða hafa frið, 837 00:36:53,240 --> 00:36:56,590 Gandhi átti að vera einn af mest friðsælt stafir, eins og ég 838 00:36:56,590 --> 00:36:59,280 skilja það, í fyrsta útgáfa af Civilization. 839 00:36:59,280 --> 00:37:03,250 Og í raun, á kvarðanum 1 til 10, árásargirni hans var bara 1. 840 00:37:03,250 --> 00:37:05,620 Svo alltaf svo mildilega árásargjarn, virðist. 841 00:37:05,620 --> 00:37:11,590 >> En á einhverjum tímapunkti, þú getur greinilega setja lýðræði í landafræði þinni. 842 00:37:11,590 --> 00:37:14,900 Og ef þú setur lýðræði í þína útgáfu af leiknum, 843 00:37:14,900 --> 00:37:17,320 þá árásargirni færnistig þitt fer niður. 844 00:37:17,320 --> 00:37:18,460 Það er gott. 845 00:37:18,460 --> 00:37:20,890 Fólk er meira friðsælum greinilega, í þeirri stöðu. 846 00:37:20,890 --> 00:37:23,190 En virðist, einhver gerði ekki hafa, ef ástand 847 00:37:23,190 --> 00:37:24,780 í upprunalegu útgáfuna af kóða. 848 00:37:24,780 --> 00:37:30,650 >> Svo árásargirni stigi Gandhi fór frá jákvæð 1, mínus 2, í neikvæðar 1, 849 00:37:30,650 --> 00:37:33,840 en leikurinn er ekki skilja neikvæðum tölum. 850 00:37:33,840 --> 00:37:38,680 Svo það sem gerðist var árásargirni Gandhi stigi fór úr 1, 0, í neikvæðar 1, 851 00:37:38,680 --> 00:37:40,900 sem hafði áhrif umbúðir í kring til að vera 852 00:37:40,900 --> 00:37:44,690 árásargjarn eðli í leiknum, hefur gildið 255, 853 00:37:44,690 --> 00:37:46,630 á kvarðanum 1 til 10. 854 00:37:46,630 --> 00:37:49,887 Og síðan þá, það er verið fleiri incarnations af þessum leik, 855 00:37:49,887 --> 00:37:51,720 og þeir hafa haldið það eins eins konar páska egg, 856 00:37:51,720 --> 00:37:53,870 að Gandhi er greinilega svo hræðilega árásargjarn. 857 00:37:53,870 --> 00:37:56,740 En það var afleiðing af a mjög einfalt forritunarmál villa 858 00:37:56,740 --> 00:37:58,630 í því mjög snemma útgáfa af the leikur. 859 00:37:58,630 --> 00:38:02,860 >> Nú meira disturbingly, meira nýlega, Boeing 787 860 00:38:02,860 --> 00:38:05,720 var skjalfest og að hafa galla, ekki góður af tækinu 861 00:38:05,720 --> 00:38:07,340 þú vilt sérstaklega að hafa galla. 862 00:38:07,340 --> 00:38:10,130 Og einkennin, sem ég las hér, úr grein á netinu, 863 00:38:10,130 --> 00:38:13,840 var þetta líkan 787 flugvél sem hefur verið fær stöðugt afl 864 00:38:13,840 --> 00:38:18,030 fyrir 248 dögum er hægt að missa allt riðstraum, AC, 865 00:38:18,030 --> 00:38:20,850 rafmagn, vegna rafall stjórna einingar, 866 00:38:20,850 --> 00:38:23,330 GCUs, samtímis að fara í ekki-öruggur háttur. 867 00:38:23,330 --> 00:38:26,790 Þannig að þetta var viðvörun gefin út þegar þetta vandamál var uppgötvað. 868 00:38:26,790 --> 00:38:28,750 Þetta ástand orsakast með hugbúnaði borðið, 869 00:38:28,750 --> 00:38:32,230 innri til GCUs, svo heiltala eða breyta, 870 00:38:32,230 --> 00:38:36,850 að vilji flæða eftir 248 daga samfellt. 871 00:38:36,850 --> 00:38:40,350 Boeing er í því ferli að þróa GCU hugbúnaður uppfærsla sem 872 00:38:40,350 --> 00:38:42,350 mun ráða bót á ótrygga ástands. 873 00:38:42,350 --> 00:38:44,226 >> Svo mikið eins og eldflaugum atburðarás, þar 874 00:38:44,226 --> 00:38:46,850 þeir höfðu einhvers konar breytu sem var að telja, og telja, 875 00:38:46,850 --> 00:38:50,720 og telja, en smám saman barmafullur mörk getu sína, 876 00:38:50,720 --> 00:38:54,890 álíka gerði fjandinn flugvél hafa breytilega flæða 877 00:38:54,890 --> 00:38:56,410 eftir nægan tíma í gangi. 878 00:38:56,410 --> 00:38:59,240 Og svo tungu-í-kinn hátt að vinna í kringum þetta mál 879 00:38:59,240 --> 00:39:04,400 er að sannarlega, endurfæddur, flugvél hvert 247 dagar, þannig að minni fær þurrka 880 00:39:04,400 --> 00:39:06,100 og breyta fer aftur á 0. 881 00:39:06,100 --> 00:39:09,410 En átta sig, þetta er mjög stór holdgun hugbúnaður, 882 00:39:09,410 --> 00:39:14,070 en sérstaklega þar sem við heyrum um Apple stýrikerfi fara í bíla, 883 00:39:14,070 --> 00:39:18,030 og sjálf-akstur bíla frá Google og allir tala um lífum á hugbúnaði 884 00:39:18,030 --> 00:39:21,000 í daglegu lífi okkar, sjónvörp og klukkur, og fleiri, 885 00:39:21,000 --> 00:39:24,950 átta sig voru umkringd hugbúnaður, allt sem er skrifað af okkur mönnum. 886 00:39:24,950 --> 00:39:28,150 >> Og eins og við munum öll fljótlega uppgötva, það er mjög auðvelt og mjög dæmigerð 887 00:39:28,150 --> 00:39:30,250 að gera mistök þegar að skrifa hugbúnað. 888 00:39:30,250 --> 00:39:32,745 Og ef þú grípa ekki þá, sumir slæmur hlutur getur gerst. 889 00:39:32,745 --> 00:39:35,400 Nú stundum, sumir fyndið það getur gerst, 890 00:39:35,400 --> 00:39:38,280 eða að minnsta kosti stundum við veit að átt von á einhverjum illsku. 891 00:39:38,280 --> 00:39:41,550 Svo 0 deilt með 0, frá bekk skóla, er yfirleitt slæmt. 892 00:39:41,550 --> 00:39:43,050 Það er óskilgreindur. 893 00:39:43,050 --> 00:39:46,440 Og það kemur out-- og við skulum sjá hvort MIC minn getur tekið þetta up-- að Apple 894 00:39:46,440 --> 00:39:47,790 haft gaman með þetta nýlega. 895 00:39:47,790 --> 00:39:48,850 Þannig að ég hef iPhone hér. 896 00:39:48,850 --> 00:39:54,160 Ég ætla að tala við Siri og spyrja hana að gefa mér svar við 0 deilt með 0. 897 00:39:54,160 --> 00:39:55,850 Hvað er 0 deilt með 0? 898 00:39:55,850 --> 00:39:59,350 899 00:39:59,350 --> 00:40:02,230 >> SIRI: Ímyndaðu þér að þú ert 0 kex, og þú skipt þeim jafnt 900 00:40:02,230 --> 00:40:03,540 meðal 0 vinir. 901 00:40:03,540 --> 00:40:05,810 Hversu margir kex er hver einstaklingur fá? 902 00:40:05,810 --> 00:40:06,350 Sjá? 903 00:40:06,350 --> 00:40:07,660 Það skiptir ekki skynsamleg. 904 00:40:07,660 --> 00:40:10,540 Og Cookie Monster er sorglegt að það eru engin fótspor. 905 00:40:10,540 --> 00:40:13,987 Og þú ert sorglegt að þú hefur enga vini. 906 00:40:13,987 --> 00:40:15,570 DAVID J MALAN: Það er góður af andstyggilegur. 907 00:40:15,570 --> 00:40:17,550 Svo er þetta það var bara sagt það. 908 00:40:17,550 --> 00:40:21,380 Það er unnt að ákvarða, það er ekki skilgreint, Og reyndar, margir forritunarmál 909 00:40:21,380 --> 00:40:24,950 eða, í raun, vistþýðendur mun uppgötva þegar þú, í forriti, 910 00:40:24,950 --> 00:40:27,050 reyna að skipta 0 af 0. 911 00:40:27,050 --> 00:40:29,830 Meira gaman en þetta þó er sem virðist, Cookie Monster 912 00:40:29,830 --> 00:40:31,270 er á Twitter þessa dagana. 913 00:40:31,270 --> 00:40:37,610 Og hann sagði við þetta, með þessu, sem er algerlega dásamlegur. 914 00:40:37,610 --> 00:40:40,110 En við skulum taka a fljótur líta á a par af öðrum býr, 915 00:40:40,110 --> 00:40:43,459 og þá setja eitthvað af þessu kóða til að nota, í góðum hætti. 916 00:40:43,459 --> 00:40:45,250 Svo kemur í ljós, að auki fyrir lykkjur, það er 917 00:40:45,250 --> 00:40:49,174 eitthvað sem kallast while lykkju, sem lítur öðruvísi og er útfærð 918 00:40:49,174 --> 00:40:51,590 smá differently-- og við munum að lokum sjá examples-- 919 00:40:51,590 --> 00:40:53,500 en í einhverjum skilningi, það er einfaldara vegna þess að það 920 00:40:53,500 --> 00:40:56,670 ekki leyfa þér að frumstilla og uppfæra innan mörk lykkju. 921 00:40:56,670 --> 00:40:57,794 Þú getur samt framkvæma það. 922 00:40:57,794 --> 00:41:01,219 Svo þú getur gert nákvæmlega sömu hlutina með while lykkju, eins og með for lykkju, 923 00:41:01,219 --> 00:41:03,260 en setningafræði þinn, ultimately-- eins og við munum að lokum 924 00:41:03,260 --> 00:41:04,551 see-- er að fara að vera öðruvísi. 925 00:41:04,551 --> 00:41:07,450 There er jafnvel a do while lykkju, sem er í raun svolítið öðruvísi, 926 00:41:07,450 --> 00:41:09,640 í því en fyrir lykkju og á meðan lykkja alltaf 927 00:41:09,640 --> 00:41:13,005 athuga ástand þeirra fyrst, ef þú lest þessa hlutur toppur til botn, 928 00:41:13,005 --> 00:41:16,440 það lítur svona út eins og það er að fara að Athugaðu það er ástand síðasta því það er 929 00:41:16,440 --> 00:41:17,910 sannarlega síðasta lína af kóða. 930 00:41:17,910 --> 00:41:20,580 Og reyndar, það er að fara til að vera gagnlegt í ákveðnum verkefnum sem við skrifum, 931 00:41:20,580 --> 00:41:23,746 ef þú vilt bara í blindni að gera eitthvað og að lokum athuga ástand. 932 00:41:23,746 --> 00:41:25,205 Það er ekki endilega slæmur hlutur. 933 00:41:25,205 --> 00:41:27,912 Ef við viljum breytum, getum við gert það í nokkra mismunandi vegu. 934 00:41:27,912 --> 00:41:30,290 Og við sáum í Foxtrot teiknimynd, ein leið til að gera það, 935 00:41:30,290 --> 00:41:33,400 þar sem þú lýsa breytu þitt, eins int gegn semíkommu, 936 00:41:33,400 --> 00:41:36,570 og þá later-- kannski næsta lína, kannski 10 línur later-- 937 00:41:36,570 --> 00:41:37,800 þú frumstilla í raun það. 938 00:41:37,800 --> 00:41:42,230 Svo þessar 2 línur af kóða lýsa breytu af taginu int 939 00:41:42,230 --> 00:41:44,930 og kalla það gegn, svo það gefur mér nóg bita til að halda int. 940 00:41:44,930 --> 00:41:48,230 Og þá loksins, setur það gildi 0 í breytunni. 941 00:41:48,230 --> 00:41:51,250 Það raðar 0 og 1 í a mynstur, sem við vitum af í síðustu viku, 942 00:41:51,250 --> 00:41:53,260 táknar fjölda við þekkjum sem 0. 943 00:41:53,260 --> 00:41:56,920 Eða hreinskilnislega, getur þú gert þetta mikið meira succinctly, bara eins og þetta. 944 00:41:56,920 --> 00:41:59,390 >> Nú höfum við einnig getu til að kalla aðgerðir. 945 00:41:59,390 --> 00:42:03,070 Og í raun, hér er a 2 línu program, eða útdráttur þess, 946 00:42:03,070 --> 00:42:06,157 sem gerir okkur kleift að í raun skrifa nokkur númer sem 947 00:42:06,157 --> 00:42:08,990 fær band frá user-- mikið eins sjálfboðaliði okkar augnablikinu ago-- 948 00:42:08,990 --> 00:42:11,320 geyma niðurstöðu í breytu nefndi, 949 00:42:11,320 --> 00:42:15,470 og then-- líkt með sjálfboðaliða okkar með printf-- prenta út þau gildi 950 00:42:15,470 --> 00:42:19,180 með því að láta í tveimur rök, sem band, fylgt eftir með breytunni 951 00:42:19,180 --> 00:42:20,781 heitir, nafn, sig. 952 00:42:20,781 --> 00:42:23,155 Svo skulum taka a líta, áður við komum aftur til Mario þar, 953 00:42:23,155 --> 00:42:26,010 á nokkra núna, dæmi um þetta. 954 00:42:26,010 --> 00:42:30,537 >> Ég ætla að fara á undan og opna upp, við skulum segja, virka-0.c. 955 00:42:30,537 --> 00:42:33,120 Og eins og alltaf, þetta númer er nálgast á heimasíðu námskeiðsins er, 956 00:42:33,120 --> 00:42:35,660 svo þú getur spilað eftir á heim og líta á það síðar. 957 00:42:35,660 --> 00:42:40,400 En hér er forritið í það kjarni, frá línu 17 til 22. 958 00:42:40,400 --> 00:42:43,270 The aðalæð program er þar sem program er alltaf að fara að byrja. 959 00:42:43,270 --> 00:42:46,980 Þetta forrit virðist, er að fara að prenta út nafn, ristill. 960 00:42:46,980 --> 00:42:50,320 Það er þá að fara að hringja GetString, bara eins og við gerðum með sjálfboðaliðum okkar. 961 00:42:50,320 --> 00:42:53,365 Og þá, þetta er áhugavert, það er að fara að hringja PrintName. 962 00:42:53,365 --> 00:42:56,490 Það kemur í ljós, allan þennan tíma, það virðist vera fall sem heitir PrintName. 963 00:42:56,490 --> 00:42:57,614 Sem prentar nafn einhvers. 964 00:42:57,614 --> 00:43:01,210 Við vildum ekki að nota printf frá Í fyrra, það er PrintName. 965 00:43:01,210 --> 00:43:03,500 >> En það er villandi vegna PrintName ekki 966 00:43:03,500 --> 00:43:06,760 koma með C. Fólk gerði ekki finna það um 40 eða 50 árum síðan, 967 00:43:06,760 --> 00:43:07,990 Ég gerði það, í staðinn. 968 00:43:07,990 --> 00:43:10,330 Og í raun, ef ég skruna niður frekari, fyrirvara 969 00:43:10,330 --> 00:43:14,200 hvernig ég get skrifað mína eigin aðgerðir í C. Við munum að lokum 970 00:43:14,200 --> 00:43:16,319 útskýra hvers vegna við höldum að segja, ógilt, á nokkrum stöðum, 971 00:43:16,319 --> 00:43:18,110 en í dag, við skulum bara líta á nafn. 972 00:43:18,110 --> 00:43:20,905 >> Á línu 24, ef þú vilt búa til eigin virka, 973 00:43:20,905 --> 00:43:22,780 þú skrifar bókstaflega Heiti virka. 974 00:43:22,780 --> 00:43:24,340 Ég valdi PrintName. 975 00:43:24,340 --> 00:43:26,159 Í sviga, þú þá tilgreina hvers konar 976 00:43:26,159 --> 00:43:28,450 af aðföngum og hversu margar þú vilja þessi aðgerð að taka. 977 00:43:28,450 --> 00:43:31,906 Í þessu tilfelli, ég vil taka 1 breytu sem heitir, nafn, 978 00:43:31,906 --> 00:43:34,030 og það er að fara að vera gerð, band, svo það er að fara 979 00:43:34,030 --> 00:43:35,780 að vera einhver röð af stöfum. 980 00:43:35,780 --> 00:43:39,170 Og þá, þetta program-- mikið eins og í grunni, 981 00:43:39,170 --> 00:43:42,590 þú getur hafa sérsniðin þraut pieces-- er að fara að hafa þetta siðvenja hegðun. 982 00:43:42,590 --> 00:43:46,760 Það er að fara að hringja printf liggur í, halló, tákn, 983 00:43:46,760 --> 00:43:49,110 og þá er að fara að stinga í hvað notandinn kallað. 984 00:43:49,110 --> 00:43:51,450 >> Svo er þetta dæmi um hvað tölvunarfræðingur myndi 985 00:43:51,450 --> 00:43:55,090 kalla abstrakt eða hagnýtur niðurbrot, sem eru bara 986 00:43:55,090 --> 00:43:58,110 ímynda leiðir af saying-- er ef þú eins og this háu hugmynd, 987 00:43:58,110 --> 00:44:01,569 eins og ég vil virkni sem prentar nafn einhvers, alveg þú 988 00:44:01,569 --> 00:44:04,360 getur bókstaflega skrifað printf og þá fara í rökin sem þú vilt, 989 00:44:04,360 --> 00:44:07,340 og the program vilja vinna, eins og það hefur síðan miðvikudag. 990 00:44:07,340 --> 00:44:10,510 En þú getur byrjað að ágrip burtu hugmyndin um prentun nafn. 991 00:44:10,510 --> 00:44:13,270 Þú getur gefið það nafn, eins PrintName og þetta 992 00:44:13,270 --> 00:44:15,280 er þessi hugmynd um layering frá viku 0. 993 00:44:15,280 --> 00:44:19,910 >> Héðan, ég og þú þarft ekki að vita eða sama hvernig PrintName er hrint í framkvæmd. 994 00:44:19,910 --> 00:44:22,470 Já það notar printf, kannski það ekki, hver veit hvað notar? 995 00:44:22,470 --> 00:44:23,410 Hverjum er ekki sama? 996 00:44:23,410 --> 00:44:26,034 Nú er ég að tala hér, í stað þess að hérna. 997 00:44:26,034 --> 00:44:28,700 Og reyndar, eins og áætlanir okkar fá þróaðri og flóknari, 998 00:44:28,700 --> 00:44:32,550 við erum að fara að halda áfram að nota sjálfsagðan hlut að lægri stykki stigi púsluspil fyrir hendi. 999 00:44:32,550 --> 00:44:34,780 Vegna þess að við skrifaði þá eða einhver annar gerði, svo 1000 00:44:34,780 --> 00:44:36,910 að við getum þá byggja ofan á þá. 1001 00:44:36,910 --> 00:44:39,430 Við skulum taka a líta á þetta afbrigði, virka einn. 1002 00:44:39,430 --> 00:44:41,780 >> Svo þetta er svolítið meira háþróaður, en það kemur í ljós 1003 00:44:41,780 --> 00:44:44,570 að í bókasafni CS50 er, það er bara GetInt virka. 1004 00:44:44,570 --> 00:44:47,720 Við vildum ekki hugsa, árum, að innleiða GetPositiveInt virka. 1005 00:44:47,720 --> 00:44:50,970 Og það er svolítið pirrandi því ef þið eru að skrifa forrit: þar 1006 00:44:50,970 --> 00:44:53,325 þú vilt fá jákvætt heiltala frá notanda, 1007 00:44:53,325 --> 00:44:55,010 þú getur alveg notað GetInt. 1008 00:44:55,010 --> 00:44:57,840 Og þú getur alveg athugað með ástand og kannski lykkja 1009 00:44:57,840 --> 00:45:00,320 ef það int er meiri en 0 og æpa á notanda 1010 00:45:00,320 --> 00:45:02,699 ef hann eða hún er ekki að gefa þú jákvæð tala. 1011 00:45:02,699 --> 00:45:04,740 En við skulum byggja þetta bygging loka okkur, a, 1012 00:45:04,740 --> 00:45:06,555 sérsniðin Scratch stykki, ef þú vilt. 1013 00:45:06,555 --> 00:45:08,680 Ég ætla að hafa forrit hér að lokum að ég 1014 00:45:08,680 --> 00:45:11,780 langar að vera fær um að hringja GetPositiveInt, og ég vil vera 1015 00:45:11,780 --> 00:45:14,200 fær um að prenta út hvað það int er. 1016 00:45:14,200 --> 00:45:16,240 En þetta eru nýttir í burtu núna. 1017 00:45:16,240 --> 00:45:19,050 Það er bara verið gefið á háu stigi nafn sem segir hvað það gerir, 1018 00:45:19,050 --> 00:45:21,780 sem er dásamlegt vegna þess að það er mjög leiðandi núna til að lesa. 1019 00:45:21,780 --> 00:45:24,710 Og ef ég geri sama hvað er undir hetta, láta mig fletta niður. 1020 00:45:24,710 --> 00:45:27,140 Og það er lítið erfið í fyrstu, sérstaklega 1021 00:45:27,140 --> 00:45:29,470 ef þetta er fyrsta program, en við skulum taka a líta. 1022 00:45:29,470 --> 00:45:32,860 >> Ég er ekki lengur að segja, ógilt, vegna þess að það kemur í ljós aðgerðir, 1023 00:45:32,860 --> 00:45:34,777 líkt GetString, getur skila gildi til mín. 1024 00:45:34,777 --> 00:45:36,610 Þeir gera ekki bara að prenta á skjáinn, 1025 00:45:36,610 --> 00:45:38,410 þeir geta í raun hönd mér eitthvað til baka. 1026 00:45:38,410 --> 00:45:41,535 Og þar áður PrintName, Ég þarf ekki neitt til baka. 1027 00:45:41,535 --> 00:45:44,160 Ég þurfti aukaverkun eitthvað sýning upp á skjánum, 1028 00:45:44,160 --> 00:45:46,570 en ég þarf ekki mönnum að rétta mér eitthvað til baka. 1029 00:45:46,570 --> 00:45:48,840 Hér með GetPositiveInt, eins og með GetInt, 1030 00:45:48,840 --> 00:45:50,640 Ég vil afhent eitthvað til baka. 1031 00:45:50,640 --> 00:45:53,220 Þannig að ég ætla að segja ekki, ógilt, á línu 23, en int, 1032 00:45:53,220 --> 00:45:55,570 sem segir, þessi aðgerð sem ég er að skrifa, 1033 00:45:55,570 --> 00:45:58,860 kallað GetPositiveInt er að fara að hendi mér aftur heiltala, ekki neitt, 1034 00:45:58,860 --> 00:45:59,890 ekki ógild. 1035 00:45:59,890 --> 00:46:03,280 >> Á sama tíma, það er að fara að taka ekki inntak, þannig að ég hef, eins konar, snúið henni. 1036 00:46:03,280 --> 00:46:08,280 Ég ætla ekki að gefa GetPositiveInt allir inntak, ég vil það að gefa mér framleiðsla þess. 1037 00:46:08,280 --> 00:46:09,800 Og hvað þá gerist núna? 1038 00:46:09,800 --> 00:46:11,640 Svo hér er hvernig ég að lýsa yfir breytu. 1039 00:46:11,640 --> 00:46:15,090 Ég hef gert það utan lykkju, af ástæðum sem við munum að lokum sjá, 1040 00:46:15,090 --> 00:46:17,700 en þetta gefur bara mér 32 bita heitir, n, 1041 00:46:17,700 --> 00:46:20,952 og ég hef áður ákvarða þá að geyma heiltölu. 1042 00:46:20,952 --> 00:46:23,660 Og hér er það, að gera á meðan reisa, og þetta er hvers vegna það er gagnlegt. 1043 00:46:23,660 --> 00:46:26,700 Bókstaflega gera þetta, á meðan n er minna en 1. 1044 00:46:26,700 --> 00:46:28,030 Svo skulum sjá hvað gerist. 1045 00:46:28,030 --> 00:46:30,760 Ég prenta út, vinsamlegast gefa mér jákvæða int. 1046 00:46:30,760 --> 00:46:34,300 Ég fæ þá int með CS50 er virka og geymd í n. 1047 00:46:34,300 --> 00:46:38,990 >> Og þá, hvaða línu af kóða líklega fær framkvæma næst, rökrétt? 1048 00:46:38,990 --> 00:46:41,890 Hvaða línu númer? 1049 00:46:41,890 --> 00:46:42,571 Já, svo 31. 1050 00:46:42,571 --> 00:46:45,320 Þú myndir ekki vita þetta fyrr en þú hefur verið sagt eða svoleiðis álykta það, 1051 00:46:45,320 --> 00:46:45,986 en það er satt. 1052 00:46:45,986 --> 00:46:48,280 Það fer toppur til botn og þá heldur endurtaka. 1053 00:46:48,280 --> 00:46:55,840 Svo ef ég hef slegið í segja, fjölda neikvæð 1, er n minna en neikvæðar 1? 1054 00:46:55,840 --> 00:46:56,340 Já. 1055 00:46:56,340 --> 00:46:58,470 Vegna þess að neikvæð 1 er minna en 1. 1056 00:46:58,470 --> 00:46:59,510 Svo hvað ætti að gerast? 1057 00:46:59,510 --> 00:47:03,260 Ég ætla að gera þetta á meðan n er minna en 1, 1058 00:47:03,260 --> 00:47:05,760 þannig að ég ætla að fara aftur til línu 28. 1059 00:47:05,760 --> 00:47:09,530 >> Og hver time-- og við skulum hlaupa this-- gera virka 1 að þýða það, 1060 00:47:09,530 --> 00:47:11,340 og nú punktur rista valkostinum 1. 1061 00:47:11,340 --> 00:47:14,280 Ef ég tegund neikvæð 1, það er fara að halda öskra á mig 1062 00:47:14,280 --> 00:47:17,530 þangað til ég vinna vegna þess að hver af aðföngum mínum er minna en 1 1063 00:47:17,530 --> 00:47:20,070 og ef það er en minna en 1, Ég ætla að halda þessu. 1064 00:47:20,070 --> 00:47:24,240 Ef ég gef loks það númer eins og 50, sem betur fer, segir það, takk fyrir 50. 1065 00:47:24,240 --> 00:47:24,970 Hvers vegna? 1066 00:47:24,970 --> 00:47:30,640 Vegna þess að um leið og n er ekki minna en 1, ég hætt að fá fastur í þessari lykkju, 1067 00:47:30,640 --> 00:47:33,840 og þetta nýja leitarorð dag, aftur, bókstaflega gerir það. 1068 00:47:33,840 --> 00:47:36,800 Þannig að ég hef bara hrint í framkvæmd, í skilningi, jafnvirði GetString, 1069 00:47:36,800 --> 00:47:40,590 þar sem ég er fötlun aftur hver er að nota mig, sumir gildi. 1070 00:47:40,590 --> 00:47:42,820 Það þarf ekki að vera band, það int. 1071 00:47:42,820 --> 00:47:44,990 Svo einfalt, fljótleg dæmi, en við munum fljótlega 1072 00:47:44,990 --> 00:47:47,930 sjá sumir flóknari útgáfur enn. 1073 00:47:47,930 --> 00:47:53,882 Í raun, við skulum taka a líta á a tölustafir einn, sem heitir return.c. 1074 00:47:53,882 --> 00:47:55,590 Og þetta er í raun svolítið einfaldara. 1075 00:47:55,590 --> 00:47:59,010 Svo Tilgangur þessarar áætlunar í life-- skulum taka saman og keyra það, 1076 00:47:59,010 --> 00:48:03,090 svo gera aftur, punktur rista, return-- tilkynningu 1077 00:48:03,090 --> 00:48:05,530 forritið teningur einfaldlega verðmæti 2. 1078 00:48:05,530 --> 00:48:08,410 Það er ansi heimskur, það er erfitt kóða, er það ekki taka neina inntak, 1079 00:48:08,410 --> 00:48:12,220 en það er sýnt annað fall sem ég hef skrifað sjálfur. 1080 00:48:12,220 --> 00:48:15,760 Svo hér, að ég hef lýst yfir breyta, heitir x, int, 1081 00:48:15,760 --> 00:48:17,840 jafn fjölda 2, alveg handahófskennt. 1082 00:48:17,840 --> 00:48:19,530 Þetta er bara Fluffy prentun. 1083 00:48:19,530 --> 00:48:23,070 Það segir x er nú, eins og svo, cubing punktur punktur punktur. 1084 00:48:23,070 --> 00:48:26,390 Og galdur er greinilega í línu 21. 1085 00:48:26,390 --> 00:48:30,120 Ég ætla að hringja í aðgerð sem heitir, teningur, Ég er fötlun það blað 1086 00:48:30,120 --> 00:48:32,890 með númer 2 skrifað á það, og hvaða gildi, stærðfræðilega, 1087 00:48:32,890 --> 00:48:34,860 ég vil að fá út úr því? 1088 00:48:34,860 --> 00:48:36,570 Rétt eins og andleg heilbrigði stöðva? 1089 00:48:36,570 --> 00:48:37,070 8. 1090 00:48:37,070 --> 00:48:37,570 Ekki satt? 1091 00:48:37,570 --> 00:48:40,160 Ég vil 2 cubed aftur, 2 til kraftur 3, svo 8 aftur. 1092 00:48:40,160 --> 00:48:42,570 >> Svo hvar er teningur framkvæmda? 1093 00:48:42,570 --> 00:48:44,349 Jæja, eftir það er hrint í framkvæmd hérna. 1094 00:48:44,349 --> 00:48:47,140 Og rétt eins og áður, þá er rökrétt, jafnvel þótt setningafræði er líklega 1095 00:48:47,140 --> 00:48:49,320 mjög nýr til margir af þú, Ég vil þessa aðgerð 1096 00:48:49,320 --> 00:48:51,780 að skila mér aftur lak af pappír með int á það. 1097 00:48:51,780 --> 00:48:53,990 Þannig að ég hef int, á Nafnið er geðþótta, 1098 00:48:53,990 --> 00:48:55,530 en þægilega heitir teningur. 1099 00:48:55,530 --> 00:48:58,430 The inntak á það, er n af slá heiltala, svo það er 1100 00:48:58,430 --> 00:49:00,800 hvernig ég kemst í fjölda 2 á blaði. 1101 00:49:00,800 --> 00:49:03,910 Og þá kemur í ljós C styður stærðfræði, svo þú þarft ekki x fyrir tímum, 1102 00:49:03,910 --> 00:49:06,680 þú notar bara Stjarnan fyrir margföldun. 1103 00:49:06,680 --> 00:49:11,070 Og þetta skilar n sinnum n sinnum n, sem er einfaldlega cubed gildi. 1104 00:49:11,070 --> 00:49:12,840 >> Svo hvar við erum að fara með þetta allt? 1105 00:49:12,840 --> 00:49:14,570 Þetta er örugglega vindbylur ferð, hvíla sjálfsöruggur, 1106 00:49:14,570 --> 00:49:16,410 að í frábær köflum og í Heimadæmi 1, 1107 00:49:16,410 --> 00:49:18,368 þú munt vera gekk í gegnum allt þetta allt meira. 1108 00:49:18,368 --> 00:49:22,490 Og í vandamál setja 1, munum við umskipti frá grafísku heimi grunni 1109 00:49:22,490 --> 00:49:25,640 að eitthvað meira skipanalínu í C. En við munum draga innblástur 1110 00:49:25,640 --> 00:49:27,680 frá þessu hér leik frá fyrra, þar 1111 00:49:27,680 --> 00:49:31,591 með C og staðlaða útgáfu af bls setja þú munt framkvæma pýramída Mario er. 1112 00:49:31,591 --> 00:49:34,340 Og á spjallþráð útgáfu af bls sett, ef þú velur það að kjósa, 1113 00:49:34,340 --> 00:49:38,280 þú munt framkvæma aðeins meira krefjandi pýramída með tvo toppa. 1114 00:49:38,280 --> 00:49:41,239 Þú munt einnig koma á reiknirit, gráðugur reiknirit. 1115 00:49:41,239 --> 00:49:43,030 Það kemur í ljós að það er nokkrar áhugaverðar rökfræði 1116 00:49:43,030 --> 00:49:45,640 á bak við ferli gangi stöð gjaldkeri er 1117 00:49:45,640 --> 00:49:47,410 og í raun fötlun einhver aftur breyting. 1118 00:49:47,410 --> 00:49:50,410 Það er reiknirit sem er nokkuð einfalt, að þú gætir jafnvel 1119 00:49:50,410 --> 00:49:53,576 grípa innsæi þegar þú lest fyrst it-- átta sig á að er það sem ég hef alltaf 1120 00:49:53,576 --> 00:49:57,110 gert hvenær ég hef gefið einhvern smá peningar back-- sem gerir þér kleift að alltaf 1121 00:49:57,110 --> 00:50:00,679 draga úr fjölda pappír athugasemdum eða málm mynt 1122 00:50:00,679 --> 00:50:02,220 að þú ert fötlun til baka til notandans. 1123 00:50:02,220 --> 00:50:04,610 Og þetta, að sjálfsögðu, er sannfærandi vegna þess að ef þú ferð til CVS eða whatnot, 1124 00:50:04,610 --> 00:50:06,430 þú vilt ekki að vera hönd a heild búnt af sjálfur 1125 00:50:06,430 --> 00:50:07,596 eða allt fullt af smáaurarnir. 1126 00:50:07,596 --> 00:50:10,120 Þú vilt fæst mynt, líklega hægt. 1127 00:50:10,120 --> 00:50:13,070 >> Að lokum verður þú einnig að vera áskorun til notaði í heimi vatni 1128 00:50:13,070 --> 00:50:17,220 og í raun fá skilning fyrir kortlagningu á milli tíðni flæði, 1129 00:50:17,220 --> 00:50:19,890 af eins, vatn í sturtu, hversu mikið vatn er notað. 1130 00:50:19,890 --> 00:50:22,640 Og allusion þar, verður þetta myndband hér, 1131 00:50:22,640 --> 00:50:24,840 sem við munum enda á fyrir bara 60 sekúndur, sem 1132 00:50:24,840 --> 00:50:29,070 málar mynd af Lágstreymiskerfi sturtu höfuð. 1133 00:50:29,070 --> 00:50:30,886 >> [Vídeó spilun] 1134 00:50:30,886 --> 00:50:31,385 -Allt Í lagi. 1135 00:50:31,385 --> 00:50:32,774 Ég fékk allt hér. 1136 00:50:32,774 --> 00:50:35,800 Ég fékk Cyclone F Series, Hydra, Jetflow, Stockholm 1137 00:50:35,800 --> 00:50:37,660 Supersteam, þú nafn það. 1138 00:50:37,660 --> 00:50:39,265 >> -Og Hvað mælir þú? 1139 00:50:39,265 --> 00:50:40,460 >> -Hvað Ert þú að leita að? 1140 00:50:40,460 --> 00:50:41,300 >> -Power Maður. 1141 00:50:41,300 --> 00:50:42,285 Power. 1142 00:50:42,285 --> 00:50:42,910 -eins Silkwood. 1143 00:50:42,910 --> 00:50:44,520 -Það Er fyrir geislun. 1144 00:50:44,520 --> 00:50:46,335 -Það Er rétt. 1145 00:50:46,335 --> 00:50:48,275 -Nú Hvað er þetta? 1146 00:50:48,275 --> 00:50:49,704 -Það Er Commando 450. 1147 00:50:49,704 --> 00:50:50,620 Ég sel ekki þessi einn. 1148 00:50:50,620 --> 00:50:51,700 >> -En Það er það sem við viljum. 1149 00:50:51,700 --> 00:50:52,680 Það er sérsveitarmaður 450. 1150 00:50:52,680 --> 00:50:53,882 >> -Nei Trúðu mér. 1151 00:50:53,882 --> 00:50:55,090 Það er einungis notað í sirkus. 1152 00:50:55,090 --> 00:50:56,512 Það er fyrir fíla. 1153 00:50:56,512 --> 00:50:59,356 >> -Ég Borga neitt. 1154 00:50:59,356 --> 00:51:01,252 >> -Hvað Um Jerry? 1155 00:51:01,252 --> 00:51:02,760 >> -Hann Gat ekki séð það. 1156 00:51:02,760 --> 00:51:04,910 Hann er viðkvæmur. 1157 00:51:04,910 --> 00:51:05,750 Oh já. 1158 00:51:05,750 --> 00:51:36,737 1159 00:51:36,737 --> 00:51:37,320 [END spilun] 1160 00:51:37,320 --> 00:51:37,700 DAVID J Malan: Allt í lagi. 1161 00:51:37,700 --> 00:51:38,820 Það er ef til CS50. 1162 00:51:38,820 --> 00:51:40,050 Við munum sjá þig í næstu viku. 1163 00:51:40,050 --> 00:51:45,910 1164 00:51:45,910 --> 00:51:49,029 >> Ræðumaður 1: [? Scully?], [? Ian,?] eins langt og þetta Outro verkefni, 1165 00:51:49,029 --> 00:51:50,362 hvað hefur þú krakkar koma upp með? 1166 00:51:50,362 --> 00:51:51,990 >> Ræðumaður 2: Jæja, við höfum gefið það ýmsum hugsun, 1167 00:51:51,990 --> 00:51:53,250 og við teljum að besta leiðin to-- 1168 00:51:53,250 --> 00:51:53,660 >> Ræðumaður 3: Má ég? 1169 00:51:53,660 --> 00:51:54,326 >> Ræðumaður 2: Já. 1170 00:51:54,326 --> 00:51:56,360 Eftir því sem leið, í raun. 1171 00:51:56,360 --> 00:51:59,425 >> Ræðumaður 3: Þannig að ég held við getum summa upp hugmynd okkar 1172 00:51:59,425 --> 00:52:05,450 fyrir Outros með einum word-- ekkert. 1173 00:52:05,450 --> 00:52:08,950 1174 00:52:08,950 --> 00:52:10,409 >> DAVID J MALAN: Ekkert? 1175 00:52:10,409 --> 00:52:11,200 Ræðumaður 3: Ekkert. 1176 00:52:11,200 --> 00:52:12,990 DAVID J MALAN: Hvað þýðir það? 1177 00:52:12,990 --> 00:52:16,260 Ræðumaður 3: Outros eru um ekki neitt. 1178 00:52:16,260 --> 00:52:21,720 Ræðumaður 2: Jæja, ég meina, í heimspeki, Ég meina, það er ekkert alltaf eitthvað. 1179 00:52:21,720 --> 00:52:24,200 Ræðumaður 1: Svo what's-- hvað er forsenda? 1180 00:52:24,200 --> 00:52:25,720 Ræðumaður 3: Svo er það eins og lífið. 1181 00:52:25,720 --> 00:52:26,680 OK. 1182 00:52:26,680 --> 00:52:28,294 Hvað gerðir þú í dag? 1183 00:52:28,294 --> 00:52:31,811 >> DAVID J MALAN: Ég stóð upp, hafði morgunmatur, og kom til starfa. 1184 00:52:31,811 --> 00:52:34,056 >> Ræðumaður 3: Það er Outro. 1185 00:52:34,056 --> 00:52:36,806 Ræðumaður 2: En, ég meina, ætti ekki eitthvað um hann á the-- 1186 00:52:36,806 --> 00:52:37,889 Ræðumaður 3: Nei, nei, nei, nei. 1187 00:52:37,889 --> 00:52:40,220 Ekkert gerist. 1188 00:52:40,220 --> 00:52:42,910 >> Ræðumaður 1: Af hverju erum við að horfa á? 1189 00:52:42,910 --> 00:52:46,956 >> Ræðumaður 3: Vegna það er Outro fyrir CS50. 1190 00:52:46,956 --> 00:52:48,652 >> DAVID J MALAN: Ekki enn. 1191 00:52:48,652 --> 00:52:49,151