1 00:00:00,000 --> 00:00:00,000 2 00:00:00,000 --> 00:00:00,000 [TÓNLIST] 3 00:00:00,000 --> 00:00:13,950 4 00:00:13,950 --> 00:00:16,240 >> DAVID J. Malan: Allt í lagi, þetta er CS50. 5 00:00:16,240 --> 00:00:18,010 Og þetta er vika eitt. 6 00:00:18,010 --> 00:00:22,050 Svo muna að síðasta skipti í viku núll, við áherslu á computational hugsun. 7 00:00:22,050 --> 00:00:25,440 Og við færðum frá því að Scratch, myndrænt forritun 8 00:00:25,440 --> 00:00:27,360 Tungumál frá vinum okkar á MIT Media Lab. 9 00:00:27,360 --> 00:00:31,730 >> Og með grunni, gerði við kanna hugmyndir eins virka og skilyrði, 10 00:00:31,730 --> 00:00:35,210 og lykkjur, og breytur, og jafnvel Viðburðir og þræði, og fleira. 11 00:00:35,210 --> 00:00:37,880 Og í dag erum við að fara að halda áfram að nota þær hugmyndir, 12 00:00:37,880 --> 00:00:40,630 og í raun taka þá fyrir veitt, en þýða þær 13 00:00:40,630 --> 00:00:44,220 annað tungumál þekktur sem C. Nú, C er meira hefðbundin tungumál. 14 00:00:44,220 --> 00:00:46,020 Það er lægra tungumál, ef þú vilt. 15 00:00:46,020 --> 00:00:47,300 >> Það er eingöngu texta. 16 00:00:47,300 --> 00:00:49,910 Og svo við fyrstu sýn, það er allt að fara að líta frekar dulinn 17 00:00:49,910 --> 00:00:51,430 ef þú hefur aldrei forritað áður. 18 00:00:51,430 --> 00:00:53,530 Við erum að fara að hafa hálf-tvípunkta og sviga, 19 00:00:53,530 --> 00:00:55,150 og hrokkið axlabönd, og fleira. 20 00:00:55,150 --> 00:00:57,240 En ljóst að jafnvel þótt setningafræði er 21 00:00:57,240 --> 00:01:00,600 um að líta svolítið framandi að flest ykkar, sjá framhjá því. 22 00:01:00,600 --> 00:01:03,220 Og reyna að sjá hugmyndirnar það eru reyndar þekki, 23 00:01:03,220 --> 00:01:06,750 vegna þess að hér í viku eitt hvað Við munum byrja að gera er að bera saman, 24 00:01:06,750 --> 00:01:08,980 upphaflega, Scratch móti C. 25 00:01:08,980 --> 00:01:12,350 >> Svo, til dæmis, man að þegar við framkvæmda fyrsta forrit okkar 26 00:01:12,350 --> 00:01:16,220 síðasta sinn, við höfðum blokk sem leit a lítill eitthvað eins this-- hvenær 27 00:01:16,220 --> 00:01:19,990 grænn fáni smellt, og þá höfðum við eitt eða fleiri púsluspil stykki undir það, 28 00:01:19,990 --> 00:01:22,150 í þessu tilfelli, segja, halló heimur. 29 00:01:22,150 --> 00:01:24,870 Svo, reyndar í grunni, þegar ég smelli þessi græna fána 30 00:01:24,870 --> 00:01:27,390 að keyra forritið mitt, svo að tala, þetta eru 31 00:01:27,390 --> 00:01:29,520 blokkir sem fá keyrð, eða hlaupa. 32 00:01:29,520 --> 00:01:32,230 Og, sérstaklega, Scratch sagði halló, heimur. 33 00:01:32,230 --> 00:01:35,377 >> Nú, ég hefði getað tilgreint mismunandi orð hér. 34 00:01:35,377 --> 00:01:37,960 En við munum sjá það reyndar margir þessara blocks-- og já, 35 00:01:37,960 --> 00:01:41,880 í C mörg functions-- getur verið parametrized eða aðlaga 36 00:01:41,880 --> 00:01:43,150 að gera mismunandi hluti. 37 00:01:43,150 --> 00:01:45,520 Í staðreynd, í C ef við langar að breyta, nú, 38 00:01:45,520 --> 00:01:47,567 þetta Scratch program til þessa annað tungumál, 39 00:01:47,567 --> 00:01:49,650 við erum að fara að skrifa lítill eitthvað eins og þetta. 40 00:01:49,650 --> 00:01:52,540 >> Leyfishafi, það er einhver ókunnur setningafræði þar líklega, int, 41 00:01:52,540 --> 00:01:54,380 og svigum og tóm. 42 00:01:54,380 --> 00:01:57,740 En printf-- jafnvel þó þú myndir held að það myndi bara vera prenta. 43 00:01:57,740 --> 00:02:00,120 En prenta þýðir prenta sniðinn, eins og við munum sjá fljótlega. 44 00:02:00,120 --> 00:02:02,140 Þessi bókstaflega mun prenta á skjáinn hvað 45 00:02:02,140 --> 00:02:05,990 er inni af þeim sviga, sem auðvitað í þessu tilfelli er, halló heimur. 46 00:02:05,990 --> 00:02:09,290 >> En þú munt taka eftir einhverjum öðrum setningafræði, sumir gæsalappa, 47 00:02:09,290 --> 00:02:11,890 að svigar í lok, hálf-krabbamein í ristli og þess háttar. 48 00:02:11,890 --> 00:02:15,027 Svo er það hluti af kostnaður, svo að segja, bæði vitræn 49 00:02:15,027 --> 00:02:17,860 og setningafræðilega, sem við erum að fara að þurfa að muna áður en langur. 50 00:02:17,860 --> 00:02:20,720 En ljóst að með starfi, þetta mun byrja að hoppa út á þig. 51 00:02:20,720 --> 00:02:24,920 >> Í raun, við skulum leggja áherslu á að einn virka specifically-- í þessu tilfelli, 52 00:02:24,920 --> 00:02:26,290 segja Halló heimur. 53 00:02:26,290 --> 00:02:27,560 Svo segja er að virka. 54 00:02:27,560 --> 00:02:31,320 Halló heimur er viðfang hennar, eða rök, customization þess. 55 00:02:31,320 --> 00:02:34,320 >> Og jafngildi í C er bara að fara að vera þetta eina línu hér, 56 00:02:34,320 --> 00:02:38,710 þar printf jafngildir, segja, tvöfaldur vitna band, halló 57 00:02:38,710 --> 00:02:41,470 heimurinn er jafngildi, að sjálfsögðu, hvað er í hvítum kassa þar. 58 00:02:41,470 --> 00:02:45,680 Og sviga n, þó lítið undarlegt og fjarverandi frá grunni, 59 00:02:45,680 --> 00:02:49,380 einfaldlega er að fara að hafa áhrif að við munum sjá í tölvu, eins og Mac minn eða tölvu, 60 00:02:49,380 --> 00:02:51,660 af bara hreyfa bendilinn í næstu línu. 61 00:02:51,660 --> 00:02:53,970 Það er eins og að berja Enter á lyklaborðinu. 62 00:02:53,970 --> 00:02:55,580 >> Þannig að við munum sjá að aftur áður en langur. 63 00:02:55,580 --> 00:02:58,640 En fyrst skulum taka a líta á þetta önnur dæmi um er að ræða lykkjur. 64 00:02:58,640 --> 00:03:02,830 Við höfðum þetta að eilífu lykkju síðasta sinn, sem var röð af stykki púsluspil 65 00:03:02,830 --> 00:03:05,490 sem gerði eitthvað bókstaflega forever-- í þessu tilfelli, 66 00:03:05,490 --> 00:03:08,360 segja, halló heimur, halló heimur, halló heimur, halló heimur. 67 00:03:08,360 --> 00:03:10,350 Svo er það óendanlega lykkju af hönnun. 68 00:03:10,350 --> 00:03:14,580 >> Í C, ef við viljum framkvæma þetta Sama hugmynd, gætum við einfaldlega að gera þetta. 69 00:03:14,580 --> 00:03:19,570 En satt, printf halló world-- nú en bara merkingu, eins konar 70 00:03:19,570 --> 00:03:23,090 conjures upp hugmynd að gera eitthvað aftur og aftur, og aftur, 71 00:03:23,090 --> 00:03:23,980 og hve lengi? 72 00:03:23,980 --> 00:03:27,990 Jæja, true-- muna að satt er bara á eða einn. 73 00:03:27,990 --> 00:03:30,660 >> Og satt er, að sjálfsögðu, alltaf satt. 74 00:03:30,660 --> 00:03:33,060 Svo það er góður af a tilgangslaust Yfirlýsing bara að segja satt. 75 00:03:33,060 --> 00:03:36,890 En reyndar er þetta viljandi, því ef satt er bara alltaf satt, 76 00:03:36,890 --> 00:03:40,850 en en satt bara gefur til kynna, ef smá óbeint, 77 00:03:40,850 --> 00:03:44,070 að eftirfarandi línur af kóða á milli þessara hrokkið axlabönd 78 00:03:44,070 --> 00:03:48,320 ættir bara að framkvæma aftur, og aftur, og aftur, og aldrei hætta. 79 00:03:48,320 --> 00:03:50,230 >> En ef þú vilt þinn lykkja til að hætta, eins og við 80 00:03:50,230 --> 00:03:54,500 gerði síðasta skipti með eitthvað svona þetta endurtaka eftirfarandi 50 sinnum, 81 00:03:54,500 --> 00:03:57,700 í C við getum gert það sama með hvað sem er kallað til loop-- leitarorð 82 00:03:57,700 --> 00:03:59,330 ekki vera á meðan, en fyrir. 83 00:03:59,330 --> 00:04:03,290 Og þá höfum við nokkur ný setningafræði hér, með int i jafngildir 0, eg síður en 50, 84 00:04:03,290 --> 00:04:03,880 Ég ++. 85 00:04:03,880 --> 00:04:05,430 Og við munum koma aftur að því. 86 00:04:05,430 --> 00:04:09,660 En þetta er einfaldlega hvernig við gerðum þýða sett af Scratch blokkir 87 00:04:09,660 --> 00:04:13,079 til að setja af C línum af kóða. 88 00:04:13,079 --> 00:04:14,450 >> Á sama tíma, telja breytur. 89 00:04:14,450 --> 00:04:16,540 Og í raun, við bara sá einn í smá stund síðan. 90 00:04:16,540 --> 00:04:21,220 Og að því er varðar grunni, ef við langaði að lýsa yfir breytu sem heitir i 91 00:04:21,220 --> 00:04:24,590 fyrir i að vera heiltala, bara tala, og við viljum að setja það að nokkur gildi, 92 00:04:24,590 --> 00:04:28,410 við myndum nota þetta appelsínugult loka here-- stillt ég til 0. 93 00:04:28,410 --> 00:04:30,800 >> Og við munum sjá í dag og utan, rétt eins og í síðustu viku, 94 00:04:30,800 --> 00:04:33,850 forritari gera nánast alltaf byrja að telja frá núlli, virkilega 95 00:04:33,850 --> 00:04:34,950 samkvæmt venju. 96 00:04:34,950 --> 00:04:37,250 En einnig vegna þess að innköllun frá umfjöllun okkar tvöfaldur, 97 00:04:37,250 --> 00:04:39,990 minnsti fjöldi þú getur tákna með hvaða fjölda bita 98 00:04:39,990 --> 00:04:41,640 er bara að fara að vera 0 sig. 99 00:04:41,640 --> 00:04:45,190 Og svo við munum yfirleitt byrja frumstilla jafnvel breytur okkar til 0. 100 00:04:45,190 --> 00:04:47,710 >> Og í C til að gera hið sama, við erum að fara að segja int 101 00:04:47,710 --> 00:04:50,110 fyrir heiltölu, ég bara eftir venju. 102 00:04:50,110 --> 00:04:53,390 Ég gæti hafa kallað þessi breyta eitthvað sem ég vil, bara eins og í grunni. 103 00:04:53,390 --> 00:04:57,770 Og þá jafngildir 0 bara úthlutar gildi 0 frá hægri 104 00:04:57,770 --> 00:05:01,319 og setur það í breytu, eða geymsla gámur þarna á vinstri. 105 00:05:01,319 --> 00:05:04,360 Og hálf-hreinsun eins og við munum see-- og Við höfum séð nokkrar af þessum already-- 106 00:05:04,360 --> 00:05:06,530 þýðir bara enda hugsun. 107 00:05:06,530 --> 00:05:09,430 Halda áfram að gera eitthvað annað á línum sem fylgja. 108 00:05:09,430 --> 00:05:11,330 >> Nú, hvað um Boolean tjáning? 109 00:05:11,330 --> 00:05:14,320 Muna að í grunni, Þetta voru orðasambönd 110 00:05:14,320 --> 00:05:16,740 sem eru annaðhvort satt eða false-- spurningar, 111 00:05:16,740 --> 00:05:18,910 í raun, sem eru annaðhvort satt eða ósatt. 112 00:05:18,910 --> 00:05:21,960 Svo er að ræða grunni, gætum við spyrja einfaldri spurningu eins og þetta, 113 00:05:21,960 --> 00:05:24,586 er ég minni en 50 |? 114 00:05:24,586 --> 00:05:25,710 Svo i, aftur, er heiltala. 115 00:05:25,710 --> 00:05:27,210 Kannski erum við að nota það í Scratch áætlun 116 00:05:27,210 --> 00:05:29,310 að halda utan um stöðuna eða eitthvað svoleiðis. 117 00:05:29,310 --> 00:05:33,810 Þannig að þetta setningafræði hér í grunni þýðir bara, er ég minna en 50? 118 00:05:33,810 --> 00:05:37,330 Jæja, sem betur fer, eitthvað er einfalt í C. Og að þýða, 119 00:05:37,330 --> 00:05:41,780 þetta við myndi einfaldlega segja að ég minna en 50, með því að nota kunnuglega lykilinn 120 00:05:41,780 --> 00:05:42,850 á lyklaborðinu. 121 00:05:42,850 --> 00:05:45,141 >> Á sama tíma, ef þú vildir segja eitthvað meira almennt, 122 00:05:45,141 --> 00:05:49,890 eins vel, er x minna en y þar sem hver af X og Y eru sjálfir breytur? 123 00:05:49,890 --> 00:05:52,280 Við getum gert það sama í C, svo lengi sem við höfum 124 00:05:52,280 --> 00:05:53,942 búin þessar breytur þegar. 125 00:05:53,942 --> 00:05:55,650 Og við munum sjá hvernig á að gera það fyrir löngu. 126 00:05:55,650 --> 00:05:58,590 Við myndi einfaldlega segja x minna en y. 127 00:05:58,590 --> 00:06:00,530 >> Svo þú ert að byrja að sjá sumir líkt. 128 00:06:00,530 --> 00:06:03,490 Og þeir fólkinu sem gerði Scratch voru vissulega 129 00:06:03,490 --> 00:06:05,250 innblásin af sumum af þessum grunnhugmyndir. 130 00:06:05,250 --> 00:06:10,350 Og þú munt sjá þessa tegund af setningafræði í mörgum languages-- 131 00:06:10,350 --> 00:06:12,160 ekki bara Scratch, ekki bara C, en Python, 132 00:06:12,160 --> 00:06:14,790 og JavaScript, og önnur tungumál enn. 133 00:06:14,790 --> 00:06:18,270 >> Við skulum íhuga annað reisa frá C, hugmyndin um ástand, 134 00:06:18,270 --> 00:06:20,370 gera eitthvað skilyrðum. 135 00:06:20,370 --> 00:06:22,720 Ef eitthvað er satt, að gera þetta. 136 00:06:22,720 --> 00:06:24,457 Ef eitthvað annað er satt, að gera það. 137 00:06:24,457 --> 00:06:27,040 Það er tegund af forritun jafnvirði gaffli í veginum. 138 00:06:27,040 --> 00:06:29,730 Kannski er það tveir-vegur gaffal, þriggja-vegur punga eða fleiri. 139 00:06:29,730 --> 00:06:32,800 Og í grunni, gætum við hafa séð eitthvað eins og þetta. 140 00:06:32,800 --> 00:06:34,010 >> Svo er þetta ein stór. 141 00:06:34,010 --> 00:06:36,750 En íhuga hlutfallsleg einfaldleiki af the rökfræði. 142 00:06:36,750 --> 00:06:44,010 Ef x er stærra en y, þá segja x er minna en y, annars ef x er hærra en y, 143 00:06:44,010 --> 00:06:46,230 þá segja x er hærra en y. 144 00:06:46,230 --> 00:06:48,300 Og þá, rökrétt, ef þú hugsa til baka til Scratch 145 00:06:48,300 --> 00:06:52,610 eða bara þitt eigið manna innsæi, vel, ef X er ekki meiri en y, og X 146 00:06:52,610 --> 00:06:57,000 er ekki minna en y, svo náttúrulega x er að fara að vera jafn y. 147 00:06:57,000 --> 00:06:59,690 Þannig að í þessu tilfelli, með því að verpa þessir Scratch blokkir, 148 00:06:59,690 --> 00:07:02,580 getum við náð þrjú vegur punga í veginum? 149 00:07:02,580 --> 00:07:04,980 >> Á sama tíma, ef við viljum gera það í C, það að öllum líkindum 150 00:07:04,980 --> 00:07:08,420 lítur svolítið simpler-- minnsta kosti þegar þú fá kunnuglegur með the setningafræði. 151 00:07:08,420 --> 00:07:12,050 Ef x er stærra en Y, printf x er stærra en y. 152 00:07:12,050 --> 00:07:16,140 Annars ef x er hærra en y, printf x er hærra en y. 153 00:07:16,140 --> 00:07:21,210 Annars printf x er jafnt y-- og, aftur, með þeim sviga endar bara 154 00:07:21,210 --> 00:07:24,160 fyrir þá nýjar línur þannig að ef þú reyndar hljóp af þessu tagi program 155 00:07:24,160 --> 00:07:25,940 það myndi bara fara bendilinn lokum 156 00:07:25,940 --> 00:07:28,100 í næstu línu á skjánum. 157 00:07:28,100 --> 00:07:31,270 >> Nú, á meðan Scratch hafði annað flóknari aðgerðir, aðeins 158 00:07:31,270 --> 00:07:34,320 sem sum hver við erum að fara að upphaflega að fara yfir til the veröld af C. 159 00:07:34,320 --> 00:07:37,010 Og einn af þeim var kallast listi í grunni. 160 00:07:37,010 --> 00:07:39,100 Og þetta var sérstakt tegund breytu sem 161 00:07:39,100 --> 00:07:42,840 leyfa þér að geyma marga hluti í það aftur, til baka, til baka, til baka. 162 00:07:42,840 --> 00:07:45,540 >> Í C, er það ekki listum, í sjálfu sér, en eitthvað 163 00:07:45,540 --> 00:07:48,090 sem eru almennt heitir fylki, þó að við munum 164 00:07:48,090 --> 00:07:50,590 koma aftur síðar þessa önn að horfa á eitthvað 165 00:07:50,590 --> 00:07:52,780 kallað lista, eða bara tengdan lista. 166 00:07:52,780 --> 00:07:55,510 En nú, næst jafngildi í C fyrir okkur 167 00:07:55,510 --> 00:07:57,345 er að fara að vera eitthvað kallast fylki. 168 00:07:57,345 --> 00:07:59,740 Og fylki er einfaldlega sérstök tegund af breytu 169 00:07:59,740 --> 00:08:03,160 sem leyfir þér að geyma gögn aftur, til baka, til baka, til baka. 170 00:08:03,160 --> 00:08:05,840 >> Og reyndar í grunni, ef við vildum að nálgast 171 00:08:05,840 --> 00:08:09,030 fyrsti þátturinn af fjölda eða a list-- og ég ætla að kalla það, 172 00:08:09,030 --> 00:08:13,600 Samkvæmt venju argv, rök vektor, en meira um það fyrir löngu. 173 00:08:13,600 --> 00:08:17,090 Ef ég vil fá á fyrstu frumefni á argv, í heimi grunni 174 00:08:17,090 --> 00:08:20,930 þú gerir í raun venjulega byrja að telja frá 1. 175 00:08:20,930 --> 00:08:22,850 >> Og svo ég gæti fengið atriði 1 af argv. 176 00:08:22,850 --> 00:08:26,310 Það er bara hvernig MIT framkvæmda hugmyndin um listum. 177 00:08:26,310 --> 00:08:29,860 En í C, ég ætla að meira einfaldlega bara að segja, argv, 178 00:08:29,860 --> 00:08:32,758 sem aftur er nafn mitt list-- eða að vera ljóst, fylki. 179 00:08:32,758 --> 00:08:34,549 Og ef ég vil fyrst þættir, ég er að fara 180 00:08:34,549 --> 00:08:37,890 að nota hornklofa, sem þér gæti ekki oft notuð undir lyklaborðinu. 181 00:08:37,890 --> 00:08:40,150 >> En 0 þýðir bara, fá mér fyrst. 182 00:08:40,150 --> 00:08:42,160 Svo stundum og eins tíminn líður, við erum að fara 183 00:08:42,160 --> 00:08:44,570 að byrja að sjá þessar dichotomies milli grunni og C, 184 00:08:44,570 --> 00:08:46,070 þar Scratch notar einn. 185 00:08:46,070 --> 00:08:47,670 Við í C notum 0 hér. 186 00:08:47,670 --> 00:08:49,420 En þú munt fljótt sjá þegar þú skilur 187 00:08:49,420 --> 00:08:52,920 undirstöður hverrar tungu, að þetta byrjar að fá allt meira 188 00:08:52,920 --> 00:08:56,860 þekki í gegnum starf og starfshætti. 189 00:08:56,860 --> 00:08:59,700 >> Svo skulum í raun líta nú á dagskrá. 190 00:08:59,700 --> 00:09:04,031 Hér skal vera fyrsti C okkar Kóðinn fyrir heill forrit. 191 00:09:04,031 --> 00:09:06,280 Og the program við erum að fara að bjóða til umfjöllunar 192 00:09:06,280 --> 00:09:09,340 er sá sem er jafngildi að það fyrra Scratch stykki. 193 00:09:09,340 --> 00:09:13,210 >> Svo hér höfum við hvað er að öllum líkindum einfaldasta C program 194 00:09:13,210 --> 00:09:15,410 þú getur skrifað það reyndar gerir eitthvað. 195 00:09:15,410 --> 00:09:18,250 Nú munum við líta framhjá, nú, hefur ma, 196 00:09:18,250 --> 00:09:21,190 staðall io.h, og þessir horn sviga, og int, og ógilt, 197 00:09:21,190 --> 00:09:22,840 og hrokkið axlabönd, og þess háttar. 198 00:09:22,840 --> 00:09:25,390 >> Og við skulum einblína bara á hvað, að minnsta kosti innsæi, 199 00:09:25,390 --> 00:09:26,860 gæti hoppað út á þig þegar. 200 00:09:26,860 --> 00:09:30,300 Í raun, helstu, ég ekki endilega vita hvað þetta er, 201 00:09:30,300 --> 00:09:34,580 en líkt grunni hafði það þegar grænn fáni smellt þraut stykki, 202 00:09:34,580 --> 00:09:39,070 svo er C sem forritunarmál hafa helstu stykki af kóða sem 203 00:09:39,070 --> 00:09:43,380 fær keyrð sjálfgefið. Og reyndar það er bókstaflega að fara að vera kölluð aðal. 204 00:09:43,380 --> 00:09:44,720 >> Svo Helsta er fall. 205 00:09:44,720 --> 00:09:48,720 Og það er sérstakt fall sem er til staðar í C að þegar þú keyrir forritið, 206 00:09:48,720 --> 00:09:52,720 það er helsta sem fær hlaupa með sjálfgefið. Í heimi grunni, 207 00:09:52,720 --> 00:09:56,970 það var yfirleitt þegar grænn fáni smellti sem fékk að keyra sjálfkrafa. 208 00:09:56,970 --> 00:10:01,130 >> Á sama tíma höfum við séð þetta áður, printf eða prenta sniðinn, það er 209 00:10:01,130 --> 00:10:05,620 að fara að vera fall sem kemur með C, ásamt a heild búnt af öðrum, 210 00:10:05,620 --> 00:10:10,140 að vilji frá tíma og tíma aftur, í því skyni að gera nákvæmlega 211 00:10:10,140 --> 00:10:12,450 eins og nafnið gefur til kynna, prenta eitthvað. 212 00:10:12,450 --> 00:10:13,500 Hvað viljum við að prenta? 213 00:10:13,500 --> 00:10:15,770 Jæja, munum við sjá að eftir umlykur stafi 214 00:10:15,770 --> 00:10:18,680 eins these-- halló heimur, sviga n í gæsalöppum, 215 00:10:18,680 --> 00:10:23,040 við getum sagt printf nákvæmlega hvað á að prenta á skjánum. 216 00:10:23,040 --> 00:10:26,430 >> En til þess að gera það, við því miður 217 00:10:26,430 --> 00:10:30,010 þarf að taka eitthvað sem er þegar dulinn að okkur mönnum, 218 00:10:30,010 --> 00:10:34,510 en að minnsta kosti er það nokkuð readable-- skarpur eru, staðall io.h, int, 219 00:10:34,510 --> 00:10:39,340 Helsta, ógilt, printf, allt töfrum álagaþulurnar sáum bara á skjánum. 220 00:10:39,340 --> 00:10:42,470 En við höfum í raun að fara meira Bogagöng enn. 221 00:10:42,470 --> 00:10:47,140 Við þurfum fyrst að þýða kóðann að við skrifa inn kóða vél. 222 00:10:47,140 --> 00:10:51,370 Og muna frá síðustu viku sem vélar, að minnsta kosti þær sem við vitum hér, 223 00:10:51,370 --> 00:10:54,450 í lok dagsins eingöngu skil núll og sjálfur. 224 00:10:54,450 --> 00:10:58,100 >> Og Guð minn, ef við þurftum að skrifa þetta núll og sjálfur að raunverulega áætlun, 225 00:10:58,100 --> 00:11:01,260 það myndi mjög fljótt taka gaman af neinu. 226 00:11:01,260 --> 00:11:05,150 En það kemur í ljós, á síðustu viku, að þessi mynstur núllum og sjálfur 227 00:11:05,150 --> 00:11:06,400 bara hafa sérstaka merkingu. 228 00:11:06,400 --> 00:11:08,500 Við tilteknar aðstæður, þeir gætu þýtt tölur. 229 00:11:08,500 --> 00:11:11,840 >> Í sumum tilfellum, þeir gætu þýtt bréf, eða liti, eða allir tala 230 00:11:11,840 --> 00:11:14,710 annarra vatnstöku þar yfir. 231 00:11:14,710 --> 00:11:18,450 En eins og tölvan þín hefur CPU, Central Processing Unit, 232 00:11:18,450 --> 00:11:20,390 eða gáfur inni á tölvunni. 233 00:11:20,390 --> 00:11:22,240 Það er yfirleitt Intel inni, því það er 234 00:11:22,240 --> 00:11:24,900 eitt af stærstu fyrirtækjum sem gerir örgjörva fyrir tölvur. 235 00:11:24,900 --> 00:11:28,910 >> Jæja, Intel örgjörva og aðrir einfaldlega hafa ákveðið fyrirfram 236 00:11:28,910 --> 00:11:33,970 að tiltekin mynstur núllum og Þeir merkir tiltekna hluti. 237 00:11:33,970 --> 00:11:37,040 Ákveðnar mynstur núllum og sjálfur vilja meina, prenta þetta á skjánum, 238 00:11:37,040 --> 00:11:39,710 eða bæta þessar tvær tölur, eða draga þessar tvær tölur, 239 00:11:39,710 --> 00:11:43,310 eða færa þetta stykki af gögnum frá minni tölvunnar minnar hérna, 240 00:11:43,310 --> 00:11:47,870 eða allir tala af öðrum mjög lágu stigi, en á endanum gagnlegur, rekstur. 241 00:11:47,870 --> 00:11:53,022 En, sem betur fer, við mennirnir erum ekki að fara að þurfa að vita þessu stigi smáatriðum. 242 00:11:53,022 --> 00:11:56,230 Reyndar bara eins og síðasta sinn, þar sem við sem nýtt aftur, og aftur, og aftur, 243 00:11:56,230 --> 00:11:58,930 bygging frá mjög lágu stigi frumform eins núllum og sjálfur 244 00:11:58,930 --> 00:12:01,160 að hærra stigi hugtök eins tölustafa og bókstafa, 245 00:12:01,160 --> 00:12:04,330 og liti, og fleiri, Svo getum við sem forritari 246 00:12:04,330 --> 00:12:07,080 standa á herðum aðrir sem hafa komið á undan okkur 247 00:12:07,080 --> 00:12:11,260 og nota hugbúnað sem annað fólk hefur skrifað áður us-- 248 00:12:11,260 --> 00:12:14,340 þ.e. forrit sem heitir vistþýðendur. 249 00:12:14,340 --> 00:12:17,770 >> C er tungumál sem er yfirleitt unnin, 250 00:12:17,770 --> 00:12:22,130 sem þýðir breytt úr Kóðinn til vél númer. 251 00:12:22,130 --> 00:12:25,230 Einkum hvað þetta þýðir er að ef þú hefur fengið uppspretta 252 00:12:25,230 --> 00:12:29,530 númer sem þú sjálfur skrifar, eins og við bráðum mun í bara smá stund á skjánum, 253 00:12:29,530 --> 00:12:33,140 og þú vilt að umbreyta það að lokum að vél code-- 254 00:12:33,140 --> 00:12:37,100 þessir núll og sjálfur að Aðeins Mac eða PC 255 00:12:37,100 --> 00:12:41,230 understands-- þú hafir fengið fyrsta fæða þá kóðann í eins 256 00:12:41,230 --> 00:12:46,340 Inntak sérstakt forrit sem heitir þýðanda, 257 00:12:46,340 --> 00:12:48,974 framleiðsla sem við skal sjá er vél númer. 258 00:12:48,974 --> 00:12:51,890 Og reyndar síðasta sinn sem við ræddum um, í raun, í lok dags, 259 00:12:51,890 --> 00:12:52,610 lausnaleit. 260 00:12:52,610 --> 00:12:53,360 Þú hefur got inntak. 261 00:12:53,360 --> 00:12:54,318 Og þú hefur fengið framleiðsla. 262 00:12:54,318 --> 00:12:56,560 Og þú hefur fengið einhvers konar reiknirit í miðjunni. 263 00:12:56,560 --> 00:12:59,830 >> Reiknirit geta vafalaust verið framkvæmda í hugbúnaði, 264 00:12:59,830 --> 00:13:02,900 eins og við sáum með sauðakóðanum síðustu viku og eins og við munum sjá með raunverulegum kóða 265 00:13:02,900 --> 00:13:03,490 í þessari viku. 266 00:13:03,490 --> 00:13:06,430 Og svo þýðanda raun bara hefur sett af reiknirit inni 267 00:13:06,430 --> 00:13:10,060 af því að vita hvernig á að umbreyta sérstaka leitarorð, 268 00:13:10,060 --> 00:13:12,180 eins helstu og printf, og aðrir sem við bara 269 00:13:12,180 --> 00:13:17,620 sá í mynstri núll og Þeir sem Intel inni og öðrum örgjörva 270 00:13:17,620 --> 00:13:20,020 reyndar skilur. 271 00:13:20,020 --> 00:13:22,460 Svo hvernig gerum við þetta? 272 00:13:22,460 --> 00:13:24,470 Hvar fáum við þýðanda? 273 00:13:24,470 --> 00:13:26,400 >> Flest okkar hér hafa Mac eða PC. 274 00:13:26,400 --> 00:13:29,152 Og þú ert að keyra Mac OS eða Windows eða Linux eða Solaris, 275 00:13:29,152 --> 00:13:30,860 eða allir tala af öðrum stýrikerfi. 276 00:13:30,860 --> 00:13:32,568 Og reyndar, við gátum fara út á vefnum 277 00:13:32,568 --> 00:13:35,710 og sækja þýðanda fyrir Mac eða PC 278 00:13:35,710 --> 00:13:37,360 fyrir tiltekna stýrikerfið. 279 00:13:37,360 --> 00:13:39,617 En við viljum öll að vera á mismunandi síður, svo að segja. 280 00:13:39,617 --> 00:13:41,450 Við myndum hafa örlítið mismunandi stillingar. 281 00:13:41,450 --> 00:13:43,210 Og það myndi ekki virka öllum sama. 282 00:13:43,210 --> 00:13:45,280 Og reyndar þessa dagana margir af okkur ekki að nota 283 00:13:45,280 --> 00:13:47,516 hugbúnaður sem keyrir eingöngu á fartölvur okkar. 284 00:13:47,516 --> 00:13:49,390 Þess í stað notum við eitthvað eins og vafra sem 285 00:13:49,390 --> 00:13:52,930 gerir okkur kleift að fá aðgang að vefur-undirstaða umsókn í skýinu. 286 00:13:52,930 --> 00:13:55,630 Og síðar í þessari önn, við munum gera einmitt það. 287 00:13:55,630 --> 00:13:59,660 Við munum skrifa forrit eða hugbúnaður með code-- ekki C, 288 00:13:59,660 --> 00:14:02,860 en önnur tungumál eins Python og Javascript-- að keyra í skýinu. 289 00:14:02,860 --> 00:14:05,860 >> Og til að gera það, við sjálf á önn 290 00:14:05,860 --> 00:14:11,890 verður í raun að nota ský-undirstaða Umhverfi þekktur sem CS50 IDE. 291 00:14:11,890 --> 00:14:16,030 Þetta er vefur-undirstaða forritun umhverfi, eða samþætt þróun 292 00:14:16,030 --> 00:14:20,610 umhverfi, IDE, sem er byggð á topp sumir opinn uppspretta hugbúnaður sem kallast Cloud 9. 293 00:14:20,610 --> 00:14:22,966 Og við höfum gert nokkrar kennslufræði einfaldanir til það 294 00:14:22,966 --> 00:14:25,840 svo sem að fela ákveðnar aðgerðir í Fyrstu vikur sem við þurfum ekki, 295 00:14:25,840 --> 00:14:27,770 eftir sem þú getur sýna þá og gera mest 296 00:14:27,770 --> 00:14:29,400 allt sem þú vilt við umhverfið. 297 00:14:29,400 --> 00:14:32,470 >> Og það gerir okkur líka, að pre-setja í embætti ákveðin hugbúnað. 298 00:14:32,470 --> 00:14:35,330 Hluti eins svokölluðu CS50 bókasafn, sem við munum fljótlega sjá 299 00:14:35,330 --> 00:14:39,210 veitir okkur í C ​​með nokkrum viðbótar virkni. 300 00:14:39,210 --> 00:14:44,392 Svo ef þú ferð til, að lokum, CS50.io, þú verður beðinn um að skrá þig inn, 301 00:14:44,392 --> 00:14:46,350 og þegar þú gerir og búa reikningur fyrir frjáls, 302 00:14:46,350 --> 00:14:52,150 þú verður að vera fær um að fá aðgang að umhverfi sem lítur alveg eins og þetta. 303 00:14:52,150 --> 00:14:53,760 >> Nú, þetta er í sjálfgefna stillingu. 304 00:14:53,760 --> 00:14:55,650 Allt er gott og björt á skjánum. 305 00:14:55,650 --> 00:14:57,941 Mörg af okkur hafa venja af vinna á CS50 stykki sem er 306 00:14:57,941 --> 00:14:59,150 alveg seint í nótt. 307 00:14:59,150 --> 00:15:02,400 Og svo sumir af þú might vilja til að snúa það inn í næturstillingu, svo að segja. 308 00:15:02,400 --> 00:15:05,550 >> En, að lokum, hvað þú ert fara að sjá innan CS50 IDE 309 00:15:05,550 --> 00:15:08,340 er þriggja greinilegur areas-- svæði á vinstri þar 310 00:15:08,340 --> 00:15:12,604 skrár eru að fara að vera í ský, svæði á efst til hægri 311 00:15:12,604 --> 00:15:14,270 hvar númerið þitt er að fara að vera editable. 312 00:15:14,270 --> 00:15:16,650 Þú munt vera fær um að opna einstök flipa fyrir einhverju forriti 313 00:15:16,650 --> 00:15:19,670 sem þú skrifar þessa önn inni þess efst í hægra horninu. 314 00:15:19,670 --> 00:15:23,070 Og þá mest arcanely, og enn öflug, 315 00:15:23,070 --> 00:15:26,610 er að fara að vera svona hlutur á the neðst þekktur sem endastöðvar. 316 00:15:26,610 --> 00:15:29,450 >> Þetta er gamall skóli Command Line Interface, 317 00:15:29,450 --> 00:15:32,240 eða CLI, sem gerir þú þarft að framkvæma skipanir 318 00:15:32,240 --> 00:15:35,260 á computer-- í þessu tilfelli, tölva í cloud-- 319 00:15:35,260 --> 00:15:39,090 að gera hlutina eins saman númerið þitt frá frumkóða til vél númer, 320 00:15:39,090 --> 00:15:43,600 til að keyra forrit, eða að byrja þinn vefþjón, eða til að fá aðgang gagnagrunninn, 321 00:15:43,600 --> 00:15:47,454 og fjölda annarra aðferða sem við munum byrja að nota áður en langur. 322 00:15:47,454 --> 00:15:49,370 En til að komast þangað, við erum fara að í raun hafa 323 00:15:49,370 --> 00:15:51,240 að fara á netinu og byrja að spila. 324 00:15:51,240 --> 00:15:54,399 Og til að gera það, við skulum fyrst byrja tinkering með helstu, 325 00:15:54,399 --> 00:15:55,940 og skrifa helstu hluti af áætluninni. 326 00:15:55,940 --> 00:15:59,170 Og við skulum nota þessi virkni printf, sem við notuðum áður, 327 00:15:59,170 --> 00:16:01,050 einfaldlega að segja eitthvað. 328 00:16:01,050 --> 00:16:04,910 >> Svo hér er ég nú inni á CS50 IDE. 329 00:16:04,910 --> 00:16:05,930 Ég hef innskráður fyrirfram. 330 00:16:05,930 --> 00:16:07,360 Og ég sýnd fullur gluggann. 331 00:16:07,360 --> 00:16:09,670 Og svo, að lokum, þú of í komandi vandamál 332 00:16:09,670 --> 00:16:12,960 mun fylgja svipuðum skrefum sem mun veita netinu skjöl. 333 00:16:12,960 --> 00:16:16,360 Svo þú þarft ekki að hafa áhyggjur af hrífandi hvert lítið tæknilega skref 334 00:16:16,360 --> 00:16:17,730 sem ég hér í dag. 335 00:16:17,730 --> 00:16:19,222 >> En þú munt fá a skjár eins og þetta. 336 00:16:19,222 --> 00:16:20,430 Ég gerst að vera í næturstillingu. 337 00:16:20,430 --> 00:16:22,944 Og þú getur bjartari allt upp með því að slökkva næturstillingu. 338 00:16:22,944 --> 00:16:24,860 Og í lok sem dag, þú ert að fara að sjá 339 00:16:24,860 --> 00:16:30,090 þessir þrír helstu areas-- skrá Vafrinn í vinstri, kóðinn flipa upp efst, 340 00:16:30,090 --> 00:16:32,430 og endastöðvar neðst. 341 00:16:32,430 --> 00:16:34,890 >> Leyfðu mér að fara á undan og skrifa fyrstu áætlun mína. 342 00:16:34,890 --> 00:16:42,300 Ég ætla að preemptively fara í File, Spara, og vista þessa skrá mína eins hello.c. 343 00:16:42,300 --> 00:16:46,850 Reyndar, samkvæmt venju, hvaða forrit við skrifa sem er skrifað í C tungumál 344 00:16:46,850 --> 00:16:49,739 ætti að heita eitthvað punktur c, eftir venju. 345 00:16:49,739 --> 00:16:53,030 Þannig að ég ætla að nefna það hello.c, því Ég vil bara segja halló við heiminn. 346 00:16:53,030 --> 00:16:54,820 Nú ætla ég að stækka út og smellt á Save. 347 00:16:54,820 --> 00:16:58,180 Og allt sem ég hef hér nú er flipi þar sem ég get byrjað að skrifa kóðann. 348 00:16:58,180 --> 00:16:59,490 >> Þetta er ekki að fara að safna saman. 349 00:16:59,490 --> 00:17:00,300 Þetta þýðir ekkert. 350 00:17:00,300 --> 00:17:02,750 Og svo jafnvel þótt ég breytt þetta núllum og sjálfur, 351 00:17:02,750 --> 00:17:05,390 CPU er að fara að hafa ekki hugmynd hvað er að gerast í kring. 352 00:17:05,390 --> 00:17:14,170 En ef ég skrifa línur sem passa upp með conventions-- C C er veru, 353 00:17:14,170 --> 00:17:20,150 aftur, þetta Language-- með setningafræði eins þetta printf halló world-- og ég hef 354 00:17:20,150 --> 00:17:22,210 fengið ánægð með gera þetta með tímanum. 355 00:17:22,210 --> 00:17:24,510 Þannig að ég held ekki að ég gerði einhverjar prentvillur. 356 00:17:24,510 --> 00:17:27,910 >> En, undantekningarlaust, the mjög fyrstur skipti sem þú gerir þetta, þú verður. 357 00:17:27,910 --> 00:17:31,090 Og það sem ég ætla að gera gæti mjög vel ekki vinna fyrir þér í fyrsta sinn. 358 00:17:31,090 --> 00:17:33,610 Og það er fullkomlega í lagi, því núna að þú 359 00:17:33,610 --> 00:17:37,662 gæti bara séð allt fullt af nýjung, en með tímanum þegar þú fá kunnuglegur 360 00:17:37,662 --> 00:17:39,870 með þessu umhverfi, og þetta tungumál, og aðrir, 361 00:17:39,870 --> 00:17:42,370 þú munt byrja að sjá hluti sem eru annaðhvort rétt eða rangt. 362 00:17:42,370 --> 00:17:44,369 >> Og þetta er það sem kennslu félagar og auðvitað 363 00:17:44,369 --> 00:17:48,780 aðstoðarmenn fá svo góð í tímanum, er blettablæðingar mistök eða galla í kóðanum þínum. 364 00:17:48,780 --> 00:17:52,110 En ég halda að það eru engar villur í þessum kóða. 365 00:17:52,110 --> 00:17:53,990 Svo ég vil nú að keyra þetta forrit. 366 00:17:53,990 --> 00:17:57,440 >> Nú á minn eigin Mac eða PC, ég er í að venja af því að tvísmella táknum 367 00:17:57,440 --> 00:17:59,350 þegar ég þarf að keyra eitthvað forrit. 368 00:17:59,350 --> 00:18:01,080 En það er ekki fyrirmynd hér. 369 00:18:01,080 --> 00:18:04,570 Í þessu umhverfi, sem er CS50 IDE. 370 00:18:04,570 --> 00:18:07,192 Við erum með starfsleyfis Kerfið heitir Linux. 371 00:18:07,192 --> 00:18:09,900 Linux er minnir á annað stýrikerfi, almennt þekktur 372 00:18:09,900 --> 00:18:10,850 eins Unix. 373 00:18:10,850 --> 00:18:16,340 Og Linux er sérstaklega þekkt fyrir hafa Command Line Umhverfi, CLI. 374 00:18:16,340 --> 00:18:20,070 Nú erum við að nota sérstakt bragð af Linux kallast Ubuntu. 375 00:18:20,070 --> 00:18:22,770 Og Ubuntu er einfaldlega viss útgáfu af Linux. 376 00:18:22,770 --> 00:18:27,900 >> En þessi linux þessa dagana að gera í raun og veru koma með myndræna notandi tengi. 377 00:18:27,900 --> 00:18:30,360 Og sá við skyldir að nota hér er vefur-undirstaða. 378 00:18:30,360 --> 00:18:32,735 Þannig að þetta gæti litið jafnvel Smá öðruvísi frá einhverju 379 00:18:32,735 --> 00:18:35,310 þú sjálfur gætir hafa séð eða hlaupa í fortíðinni. 380 00:18:35,310 --> 00:18:37,910 >> Þannig að ég ætla að fara á undan núna og gera eftirfarandi. 381 00:18:37,910 --> 00:18:40,950 Ég hef vistað þessa skrá sem hello.c. 382 00:18:40,950 --> 00:18:47,350 Ég ætla að fara á undan og gerð clanghello.c Svo Clang 383 00:18:47,350 --> 00:18:49,850 fyrir C tungumál er þýðanda. 384 00:18:49,850 --> 00:18:51,952 Það er fyrirfram uppsett í CS50 IDE. 385 00:18:51,952 --> 00:18:54,910 Og þú getur alveg niður og setja þetta á eigin Mac eða PC. 386 00:18:54,910 --> 00:18:57,910 >> En, aftur, þú myndi ekki hafa allir the pre-stillingar gert fyrir þig. 387 00:18:57,910 --> 00:19:00,940 Svo nú, ég bara fara að hlaupa clanghello.c. 388 00:19:00,940 --> 00:19:03,240 Og nú eftir þetta setningafræði Hér mun að lokum 389 00:19:03,240 --> 00:19:06,930 átta sig bara þýðir að ég er í möppu eða skrá sem heitir Workspace. 390 00:19:06,930 --> 00:19:11,030 Þetta dollaramerki er bara samningur fyrir merkingu, slá skipanir þínar hér. 391 00:19:11,030 --> 00:19:14,560 >> Það er það sem er kallað hvetja, bara samkvæmt venju er dollaramerki. 392 00:19:14,560 --> 00:19:19,130 Og ef ég fer á undan núna og smella Sláðu ekkert virðist hafa gerst. 393 00:19:19,130 --> 00:19:20,930 En það er í raun gott. 394 00:19:20,930 --> 00:19:23,650 The minna sem gerist á skjárinn, þeim mun líklegra 395 00:19:23,650 --> 00:19:26,710 númerið þitt er að vera rétt, að minnsta kosti setningafræðilega. 396 00:19:26,710 --> 00:19:29,120 >> Þannig að ef ég vil keyra þetta program, hvað á ég að gera? 397 00:19:29,120 --> 00:19:33,770 Jæja, það kemur í ljós að sjálfgefið nafn samkvæmt venju 398 00:19:33,770 --> 00:19:38,854 fyrir forrit þegar þú tilgreinir ekki nefna að forritið þitt er bara a.out. 399 00:19:38,854 --> 00:19:41,270 Og þetta setningafræði líka, munt þú fá kunnuglegur með fyrir löngu. 400 00:19:41,270 --> 00:19:47,500 >> Dot rista bara þýðir, hey, CS50 IDE, keyra forrit sem heitir a.out 401 00:19:47,500 --> 00:19:49,400 það er inni núverandi möppu mína. 402 00:19:49,400 --> 00:19:51,520 Það punktur þýðir núverandi möppu. 403 00:19:51,520 --> 00:19:55,040 Og við munum sjá hvað aðrar slíkar raðir stafi þýðir fyrir löngu. 404 00:19:55,040 --> 00:19:58,430 >> Svo hér við fara, Enter, halló heimur. 405 00:19:58,430 --> 00:20:00,080 Og þú munt taka eftir, að það sem gerðist? 406 00:20:00,080 --> 00:20:01,580 Ekki aðeins gerði það prentað Halló heimur. 407 00:20:01,580 --> 00:20:05,990 Það flutti einnig bendilinn í næstu línu. 408 00:20:05,990 --> 00:20:07,160 >> Og hvers vegna var það? 409 00:20:07,160 --> 00:20:12,400 Hvað var númer sem við skrifaði áður að tryggja að bendillinn myndi 410 00:20:12,400 --> 00:20:14,882 fara niður í næstu línu? 411 00:20:14,882 --> 00:20:16,840 Það fyndna um a Tölvan er það bara að fara 412 00:20:16,840 --> 00:20:18,570 að gera bókstaflega hvað þú segja það að gera. 413 00:20:18,570 --> 00:20:26,050 >> Þannig að ef þú segir það að printf halló, komma, rúm, heimur, loka vitna, 414 00:20:26,050 --> 00:20:29,090 það er bókstaflega bara að fara að prenta þær stafi. 415 00:20:29,090 --> 00:20:31,980 En ég hafði þetta sérstaka karakter Í lokin muna, sviga n. 416 00:20:31,980 --> 00:20:34,230 Og það er það tryggt að eðli fór 417 00:20:34,230 --> 00:20:36,570 í næstu línu á skjánum. 418 00:20:36,570 --> 00:20:38,097 >> Í raun, láta mig fara og gera þetta. 419 00:20:38,097 --> 00:20:39,430 Leyfðu mér að fara á undan og eyða þessu. 420 00:20:39,430 --> 00:20:41,180 Nú, eftir að efst á skjánum mínum það er 421 00:20:41,180 --> 00:20:42,890 smá rautt ljós í flipann gefur til kynna, 422 00:20:42,890 --> 00:20:45,047 hey, þú hefur ekki vistað skrá. 423 00:20:45,047 --> 00:20:47,880 Þannig að ég ætla að fara á undan með stjórn S eða stjórn S, vista skrána. 424 00:20:47,880 --> 00:20:51,130 Nú það goes-- fór í moment-- grænn. 425 00:20:51,130 --> 00:20:53,760 Og nú er það aftur til bara að vera nálægt táknið. 426 00:20:53,760 --> 00:21:01,860 >> Ef ég hlaupa nú clanghello.c aftur, Slá, punktur rista, a.out, Enter, 427 00:21:01,860 --> 00:21:04,110 þú munt sjá að það starfaði enn. 428 00:21:04,110 --> 00:21:06,020 En það er að öllum líkindum lítið þrjótur. 429 00:21:06,020 --> 00:21:08,714 Núna, prompt-- vinnusvæði minn, og þá dollaramerki, 430 00:21:08,714 --> 00:21:10,880 og þá raunverulegur prompt-- mín er allt á sömu línu. 431 00:21:10,880 --> 00:21:14,540 Svo þetta vissulega fagurfræði galla, jafnvel ef það er ekki í raun rökrétt galla. 432 00:21:14,540 --> 00:21:16,250 >> Þannig að ég ætla að losa það sem ég gerði bara. 433 00:21:16,250 --> 00:21:18,560 Ég ætla að endursýning a.out. 434 00:21:18,560 --> 00:21:22,710 Tilkynning Ég hef bætt við NEWLINE staf aftur. 435 00:21:22,710 --> 00:21:24,280 Ég hef vistað skrána. 436 00:21:24,280 --> 00:21:31,630 >> Þannig að ég ætla að endursýning a.out, and-- dammit, padda, padda sem þýðir mistök. 437 00:21:31,630 --> 00:21:35,020 Svo villan er að jafnvel þó Ég bætti sviga n þar, 438 00:21:35,020 --> 00:21:41,180 aftur bjargaði, með tilvísun til-hljóp forritið, hegðun var sú sama. 439 00:21:41,180 --> 00:21:42,640 Hvers vegna myndi það vera? 440 00:21:42,640 --> 00:21:43,910 >> Ég vantar skref, ekki satt? 441 00:21:43,910 --> 00:21:47,620 Þessi lykill skref fyrr var að þú ert to-- þegar þú breytir kóðann þinn, 442 00:21:47,620 --> 00:21:49,610 það kemur í ljós einnig að keyra það í gegnum þýðanda 443 00:21:49,610 --> 00:21:51,102 aftur þannig að þú færð nýjan vél númer. 444 00:21:51,102 --> 00:21:52,810 Og vél númer, á núll og sjálfur, 445 00:21:52,810 --> 00:21:56,260 eru að fara að vera nánast eins, en ekki fullkomlega þannig, vegna þess að við þurfum, 446 00:21:56,260 --> 00:21:57,510 auðvitað, að ný lína. 447 00:21:57,510 --> 00:22:02,640 >> Svo til að laga þetta, ég ætla að þurfa að endursýning clanghello.c, slá, punktur 448 00:22:02,640 --> 00:22:03,800 rista, a.out. 449 00:22:03,800 --> 00:22:08,402 Og nú, halló heimur er aftur að þar sem ég búast við það til að vera. 450 00:22:08,402 --> 00:22:09,610 Svo er þetta allt fínt og gott. 451 00:22:09,610 --> 00:22:13,150 En a.out er ansi heimskur nafn fyrir a program, jafnvel þó að það gerist að vera, 452 00:22:13,150 --> 00:22:16,530 fyrir sögulegum ástæðum default-- þýðir samkoma framleiðsla. 453 00:22:16,530 --> 00:22:20,780 >> En láta mig fara á undan hér og að gera þetta öðruvísi. 454 00:22:20,780 --> 00:22:24,760 Ég vil minn Hello World program að í raun hægt að kalla halló. 455 00:22:24,760 --> 00:22:28,320 Þannig að ef það væri tákn á minn skrifborð, myndi það ekki vera a.out. 456 00:22:28,320 --> 00:22:29,730 Það væri hægt að kalla halló. 457 00:22:29,730 --> 00:22:33,660 >> Svo til að gera þetta, það kemur í ljós sem Clang, eins og margir programs, 458 00:22:33,660 --> 00:22:37,980 styður viðföng, eða fánar, eða rofa, 459 00:22:37,980 --> 00:22:39,600 sem einfaldlega hafa áhrif á hegðun þess. 460 00:22:39,600 --> 00:22:45,160 Nánar tiltekið, Clang styður þjóta o merkja, sem síðan tekur annað orð. 461 00:22:45,160 --> 00:22:48,190 Í þessu tilviki, ég ætla geðþótta, en sæmilega, kalla það halló. 462 00:22:48,190 --> 00:22:50,710 En ég gat kalla það nokkuð Ég vil, nema a.out, sem 463 00:22:50,710 --> 00:22:52,390 væri frekar utan lið. 464 00:22:52,390 --> 00:22:55,640 >> Og þá bara tilgreina nafn skrárinnar sem ég vil að safna saman. 465 00:22:55,640 --> 00:22:59,190 Svo nú jafnvel þótt í upphafi á stjórn ég hef enn Clang, 466 00:22:59,190 --> 00:23:01,410 í lok stjórn Ég hef enn filename, 467 00:23:01,410 --> 00:23:05,520 Ég hef nú þessi skipanalína rök, þessi fánar sem eru að segja, 468 00:23:05,520 --> 00:23:11,180 ó, við the vegur, framleiðsla-o, a skrá kallað halló, ekki sjálfgefið a.out. 469 00:23:11,180 --> 00:23:13,810 >> Þannig að ef ég högg Sláðu inn núna, ekkert virðist hafa gerst. 470 00:23:13,810 --> 00:23:17,900 Og enn, nú get ég gert punktur rista halló. 471 00:23:17,900 --> 00:23:19,089 Svo er það sama program. 472 00:23:19,089 --> 00:23:21,380 Núllum og sjálfur er eins í lok dags. 473 00:23:21,380 --> 00:23:24,210 >> En þeir eru í tvennt mismunandi files-- a.out, 474 00:23:24,210 --> 00:23:26,490 sem er fyrsta útgáfa og bara heimskulega nefnd, 475 00:23:26,490 --> 00:23:30,250 og nú halló, sem er mun meira sannfærandi nafn fyrir a program. 476 00:23:30,250 --> 00:23:33,195 En heiðarlega, ég er aldrei að fara að muna þetta aftur, 477 00:23:33,195 --> 00:23:34,070 og aftur, og aftur. 478 00:23:34,070 --> 00:23:36,411 Og í raun, eins og við að skrifa flóknari forrit, 479 00:23:36,411 --> 00:23:38,160 skipanir sem þú ert fara að skrifa 480 00:23:38,160 --> 00:23:40,920 eru að fara að fá jafnvel flóknari enn. 481 00:23:40,920 --> 00:23:41,940 >> Og svo ekki að hafa áhyggjur. 482 00:23:41,940 --> 00:23:46,220 Það kemur í ljós að menn áður okkur hafa áttað þeir líka 483 00:23:46,220 --> 00:23:47,530 hafði þetta nákvæmlega sama vandamál. 484 00:23:47,530 --> 00:23:50,900 Þeir líka ekki njóta þess að þurfa að slá nokkuð löng, Bogagöng skipanir, 485 00:23:50,900 --> 00:23:52,200 hvað þá muna þær. 486 00:23:52,200 --> 00:23:56,070 Og svo menn á undan okkur hafa gert önnur forrit sem gera það auðveldara 487 00:23:56,070 --> 00:23:57,670 að safna saman hugbúnað. 488 00:23:57,670 --> 00:24:01,609 >> Og reyndar eitt slíkt Forritið heitir Make. 489 00:24:01,609 --> 00:24:03,150 Þannig að ég ætla að fara á undan og gera þetta. 490 00:24:03,150 --> 00:24:05,691 Ég ætla að losa allt sem ég bara gerði á eftirfarandi hátt. 491 00:24:05,691 --> 00:24:07,690 Láta mig slá LS. 492 00:24:07,690 --> 00:24:10,980 Og þú munt taka eftir þrjú things-- a.out og stjarna, halló 493 00:24:10,980 --> 00:24:12,810 og stjarna, og hello.c. 494 00:24:12,810 --> 00:24:14,730 Vonandi, þetta ætti vera svolítið innsæi, 495 00:24:14,730 --> 00:24:18,220 svo miklu leyti sem fyrr var þar ekkert í þessu vinnuaðstöðu. 496 00:24:18,220 --> 00:24:21,240 Það var ekkert sem ég hafði búin til við byrjuðum bekknum. 497 00:24:21,240 --> 00:24:22,840 >> Og ég búin hello.c. 498 00:24:22,840 --> 00:24:24,544 Ég unnin þá það, og kallaði það a.out. 499 00:24:24,544 --> 00:24:27,460 Og svo ég tekið saman það aftur lítillega öðruvísi og kallaði hana halló. 500 00:24:27,460 --> 00:24:32,830 Þannig að ég hef þrjár skrár í þessari möppu, í þessari möppu sem heitir Workspace. 501 00:24:32,830 --> 00:24:35,005 Nú, ég get séð það sem vel ef ég súmma út í raun og veru. 502 00:24:35,005 --> 00:24:37,530 >> Ef ég súmma út hér og líta á sem efst til hægri handar 503 00:24:37,530 --> 00:24:39,940 horn, eins og lofað vinstri hönd hlið af skjánum 504 00:24:39,940 --> 00:24:42,990 er alltaf að fara að sýna þér hvað er í reikningnum þínum, hvað er 505 00:24:42,990 --> 00:24:44,790 inni CS50 IDE. 506 00:24:44,790 --> 00:24:46,680 Og það er þrír skrár þar. 507 00:24:46,680 --> 00:24:49,070 >> Svo ég vil losna við a.out og halló. 508 00:24:49,070 --> 00:24:51,275 Og eins og þú might ímynda innsæi, þér 509 00:24:51,275 --> 00:24:53,400 gæti raða böndunum smell eða hægri smella á þetta. 510 00:24:53,400 --> 00:24:54,590 Og þetta litla valmyndin birtist. 511 00:24:54,590 --> 00:24:57,170 Hægt er að sækja skrána, hlaupa það, forskoða það, hressa, endurnefna, 512 00:24:57,170 --> 00:24:57,700 eða hvað ekki. 513 00:24:57,700 --> 00:25:00,260 >> Og ég gæti bara eytt, og það myndi fara í burtu. 514 00:25:00,260 --> 00:25:05,260 En við skulum gera hlutina með stjórn lína fyrir nú, svo sem að fá þægilegt 515 00:25:05,260 --> 00:25:07,010 með þetta, og gera eftirfarandi. 516 00:25:07,010 --> 00:25:12,345 Ég ætla að fara á undan og fjarlægja a.out með því að slá bókstaflega rma.out. 517 00:25:12,345 --> 00:25:14,890 Það kemur í ljós, skipunina fjarlægja eða eyða eitthvað, 518 00:25:14,890 --> 00:25:16,280 er ekki fjarlægja eða eyða. 519 00:25:16,280 --> 00:25:21,260 >> Það er meira succinctly RM, bara til að spara þú sumir mínútum, og ýta á Enter. 520 00:25:21,260 --> 00:25:24,707 Nú erum við að fara að vera nokkuð cryptically fjarlægja reglulega skrá a.out. 521 00:25:24,707 --> 00:25:27,040 Ég í raun ekki vita hvað óreglulegur skrá td verið enn. 522 00:25:27,040 --> 00:25:28,660 En ég vil að fjarlægja það. 523 00:25:28,660 --> 00:25:30,150 >> Þannig að ég ætla að slá y fyrir já. 524 00:25:30,150 --> 00:25:31,940 Eða ég gæti slegið það út, og ýta á Enter. 525 00:25:31,940 --> 00:25:33,440 Og aftur, ekkert virðist gerast. 526 00:25:33,440 --> 00:25:35,840 En það er, almennt, gott. 527 00:25:35,840 --> 00:25:40,490 >> Ef ég tegund LS að þessu sinni, hvað ætti ég að sjá? 528 00:25:40,490 --> 00:25:44,930 Vonandi bara halló og hello.c. 529 00:25:44,930 --> 00:25:47,286 Nú, eins og innskot, munt þú taka þessa stjörnu, Stjörnu, 530 00:25:47,286 --> 00:25:48,660 það er í lok forrit minn. 531 00:25:48,660 --> 00:25:50,201 Og þeir eru líka að sýna sig í grænu. 532 00:25:50,201 --> 00:25:53,970 Það er bara þannig CS50 Ide er af cluing þér í því 533 00:25:53,970 --> 00:25:55,280 að það er ekki uppspretta merkjamál. 534 00:25:55,280 --> 00:25:58,880 Það er keyrsluskrá, a runnable forrit sem þú getur í raun að keyra 535 00:25:58,880 --> 00:26:01,020 með því að gera punktur rista, og þá er það nafn. 536 00:26:01,020 --> 00:26:05,860 >> Nú láta mig fara á undan og fjarlægja þetta RM halló, Enter, fjarlægja reglulega 537 00:26:05,860 --> 00:26:08,010 skrá halló, já. 538 00:26:08,010 --> 00:26:11,180 Og nú ef ég tegund LS, við erum aftur að hello.c. 539 00:26:11,180 --> 00:26:13,917 Reyndu ekki að eyða þinn raunveruleg uppspretta merkjamál. 540 00:26:13,917 --> 00:26:16,250 Jafnvel þó að það eru eiginleikar byggt inn CS50 IDE hvar 541 00:26:16,250 --> 00:26:19,870 þú getur farið í gegnum endurskoðun ferlinum og til baka í tíma ef þú óvart 542 00:26:19,870 --> 00:26:23,660 eyða eitthvað, gera að hafa í huga eins og á þessum áminningum já eða nei, 543 00:26:23,660 --> 00:26:25,381 af því sem þú vilt í raun að gera. 544 00:26:25,381 --> 00:26:27,380 Og ef ég fer upp á toppinn vinstri hönd horn hér, 545 00:26:27,380 --> 00:26:30,696 allt sem eftir er hello.c. 546 00:26:30,696 --> 00:26:32,570 Svo er bunches af þarna aðrar skipanir sem þú 547 00:26:32,570 --> 00:26:37,550 getur keyrt í heimi Linux, einn sem er, aftur, gera. 548 00:26:37,550 --> 00:26:40,180 Og við erum að fara að gera áætlun mín nú sem hér segir. 549 00:26:40,180 --> 00:26:43,270 >> Í stað þess að gera Clang, í stað þess að gera clang-o, 550 00:26:43,270 --> 00:26:45,860 Ég ætla að einfaldlega bókstaflega tegund, gera halló. 551 00:26:45,860 --> 00:26:49,630 Og nú eftir, er ég Ekki slá gera hello.c. 552 00:26:49,630 --> 00:26:50,910 Ég er að skrifa gera halló. 553 00:26:50,910 --> 00:26:54,840 >> Og þetta forrit Gera að koma með CS50 IDE og fleira 554 00:26:54,840 --> 00:26:57,090 yfirleitt með Linux, er forrit sem er 555 00:26:57,090 --> 00:26:59,120 að fara að gera forrit sem heitir Hello. 556 00:26:59,120 --> 00:27:03,680 Og það er að fara að gera ráð fyrir, samkvæmt venju, að ef þetta forrit er hægt að gera, 557 00:27:03,680 --> 00:27:09,030 það er að fara að vera úr uppsprettu merkjamál skrá endar í punktur c, hello.c. 558 00:27:09,030 --> 00:27:12,210 >> Þannig að ef ég högg Sláðu inn núna, eftir að stjórn sem fær framkvæma 559 00:27:12,210 --> 00:27:14,340 er í raun jafnvel lengur áður en áður. 560 00:27:14,340 --> 00:27:16,670 Og það er vegna þess að við höfum forstillt CS50 IDE til að hafa 561 00:27:16,670 --> 00:27:19,878 sumir viðbótar-lögun innbyggður í það við þurfum ekki bara enn, en fljótlega verður. 562 00:27:19,878 --> 00:27:23,470 En lykill hlutur til gera sér grein fyrir er nú hef ég Hello program. 563 00:27:23,470 --> 00:27:27,080 >> Ef ég tegund LS aftur, ég hafa halló program. 564 00:27:27,080 --> 00:27:32,070 Og ég get keyrt það með punktur rista a.out, nei, 565 00:27:32,070 --> 00:27:35,590 vegna þess að allt lið af þessum Æfingin var punktur rista halló. 566 00:27:35,590 --> 00:27:38,089 Og nú hef ég minn Hello World program. 567 00:27:38,089 --> 00:27:39,880 Svo áfram, við erum næstum alltaf bara 568 00:27:39,880 --> 00:27:42,088 að fara að safna saman áætlanir okkar using the stjórn gera. 569 00:27:42,088 --> 00:27:45,300 Og þá erum við að fara að keyra þá með punktur rista, og nafn forritsins. 570 00:27:45,300 --> 00:27:49,610 En grein fyrir hvað gera er að gera fyrir þú, er það er sjálft ekki þýðanda. 571 00:27:49,610 --> 00:27:53,310 Það er bara þægindi program sem veit hvernig á að kveikja á þýðanda 572 00:27:53,310 --> 00:27:56,470 að keyra þannig að þú sjálfur getur notað það. 573 00:27:56,470 --> 00:28:00,220 >> Hvað aðrar skipanir eru í Linux, og síðan CS50 IDE? 574 00:28:00,220 --> 00:28:03,107 Við munum fljótlega sjá að það er CD stjórn, Breyta Directory. 575 00:28:03,107 --> 00:28:05,190 Þetta gerir þér innan stjórn lína tengi 576 00:28:05,190 --> 00:28:07,610 að halda áfram, og aftur, og opna mismunandi möppur 577 00:28:07,610 --> 00:28:08,860 án þess að nota músina. 578 00:28:08,860 --> 00:28:12,470 >> LS við sáum, sem stendur fyrir listanum skrár í núverandi möppu. 579 00:28:12,470 --> 00:28:14,650 Gera Dir, getur þú sennilega byrja að álykta 580 00:28:14,650 --> 00:28:18,150 hvað þetta mun þýða now-- gera skrá, ef þú vilt búa til möppu. 581 00:28:18,150 --> 00:28:21,270 RM til að fjarlægja, RM Dir til fjarlægja directory-- og þessir, 582 00:28:21,270 --> 00:28:24,160 aftur, eru stjórn lína jafngildi um hvað þú 583 00:28:24,160 --> 00:28:26,945 gæti gert í CS50 IDE með músinni. 584 00:28:26,945 --> 00:28:28,820 En þú munt fljótlega finna að stundum er það bara 585 00:28:28,820 --> 00:28:30,610 mikið hraðar að gera hluti með lyklaborð, 586 00:28:30,610 --> 00:28:33,690 og að lokum mikið öflugri. 587 00:28:33,690 --> 00:28:36,440 >> En það er erfitt að halda því fram að eitthvað sem við höfum verið að gera hingað til 588 00:28:36,440 --> 00:28:39,990 er allt sem öflugur, þegar allt við höfum verið að segja er, halló heimur. 589 00:28:39,990 --> 00:28:43,740 Og í raun, ég hardcoded er orð halló heiminum í áætlun mína. 590 00:28:43,740 --> 00:28:45,530 Það er engin kraftur enn. 591 00:28:45,530 --> 00:28:49,320 Scratch var stærðargráðu meira áhugavert í síðustu viku. 592 00:28:49,320 --> 00:28:51,220 >> Og svo skulum fá það. 593 00:28:51,220 --> 00:28:55,310 Við skulum taka skref í átt að því að leið sum af þessum aðgerðum. 594 00:28:55,310 --> 00:28:59,470 Svo ekki eini hjartarskinn C koma með printf, og bunches af öðrum aðgerðum 595 00:28:59,470 --> 00:29:01,850 sum sem við munum sjá með tímanum, er það ekki 596 00:29:01,850 --> 00:29:05,760 gera það svo auðvelt rétt út um hliðið í að fá notandi inntak. 597 00:29:05,760 --> 00:29:08,140 >> Í raun einn af veikleikum af tungumálum eins og C, 598 00:29:08,140 --> 00:29:10,140 og jafnvel Java og enn aðrir, er að það er ekki 599 00:29:10,140 --> 00:29:15,860 gera það auðvelt að bara fá hlutina eins heiltölur frá notendum, eða strengir, orðum, 600 00:29:15,860 --> 00:29:19,970 og setningar, hvað þá hluti eins fleytitölum eða rauntölur 601 00:29:19,970 --> 00:29:23,240 með aukastafa, og í raun langur tölur, eins og við munum sjá fljótlega. 602 00:29:23,240 --> 00:29:27,000 Þannig að þetta listi yfir aðgerðir hér, þessir eru eins og önnur verk Scratch púsluspil 603 00:29:27,000 --> 00:29:31,090 sem við höfum fyrirfram uppsett í CS50 IDE sem við munum nota í nokkrar vikur 604 00:29:31,090 --> 00:29:34,010 sem þjálfun hjól toga og loksins taka þá burt og útlit 605 00:29:34,010 --> 00:29:37,210 undir hetta, ef til vill, á hvernig þessir hlutir eru til framkvæmda. 606 00:29:37,210 --> 00:29:40,460 >> En til að gera þetta, við skulum reyndar skrifa forrit. 607 00:29:40,460 --> 00:29:41,770 Leyfðu mér að fara á undan núna. 608 00:29:41,770 --> 00:29:44,750 Og ég ætla að búa til nýja skrá með því að smella á þennan litla plús, 609 00:29:44,750 --> 00:29:45,970 og smella nýja skrá. 610 00:29:45,970 --> 00:29:49,250 >> Ég ætla að vista þetta næst einn sem, við skulum segja, string.c, 611 00:29:49,250 --> 00:29:50,750 vegna þess að ég vil spila með strengi. 612 00:29:50,750 --> 00:29:53,990 Og band í C er bara röð af stöfum. 613 00:29:53,990 --> 00:29:56,090 Svo nú skulum fara á undan og gera eftirfarandi. 614 00:29:56,090 --> 00:30:01,204 >> Fela staðall IO.h-- og það kemur í ljós staðlaða IO, 615 00:30:01,204 --> 00:30:03,360 IO þýðir bara inntak og úttak. 616 00:30:03,360 --> 00:30:05,920 Svo kemur í ljós að þessi lína hér er hvað 617 00:30:05,920 --> 00:30:08,140 er nálægum okkur að nota printf. 618 00:30:08,140 --> 00:30:10,410 Printf, auðvitað, framleiðir framleiðsla. 619 00:30:10,410 --> 00:30:15,000 Svo í því skyni að nota printf, snýr það út að þú þarft að hafa þessa línu af kóða 620 00:30:15,000 --> 00:30:16,040 efst á skránni. 621 00:30:16,040 --> 00:30:18,456 >> Og við munum koma aftur til það sem raunverulega þýðir fyrir löngu. 622 00:30:18,456 --> 00:30:20,400 Það kemur í ljós að í allir C program ég skrifa, 623 00:30:20,400 --> 00:30:23,640 Ég hef fengið að byrja það með númer sem lítur svona út. 624 00:30:23,640 --> 00:30:26,860 Og þú munt taka CS50 IDE, og annað samþætt þróun 625 00:30:26,860 --> 00:30:30,050 umhverfi eins og það, eru að fara að reyna sem best 626 00:30:30,050 --> 00:30:31,780 þeir geta til að ljúka hugsun þína. 627 00:30:31,780 --> 00:30:35,930 Í raun, í smá stund síðan ef ég losa það sem ég gerði bara, högg ég inn. 628 00:30:35,930 --> 00:30:39,160 >> Ég lenti þá opinn krullað borsveif, Enter aftur. 629 00:30:39,160 --> 00:30:40,430 Og það lauk hugsun mína. 630 00:30:40,430 --> 00:30:45,140 Það gaf mér nýja línu, inndregin ekki síður fyrir gott stylistic ástæðum sem við munum sjá. 631 00:30:45,140 --> 00:30:48,559 Og þá er það gaf mér sjálfkrafa sem hrokkið Brace til að klára hugsun mína. 632 00:30:48,559 --> 00:30:50,600 Nú, er það ekki alltaf giska á hvað þú vilt gera. 633 00:30:50,600 --> 00:30:53,620 En í stórum hluta, það virkar spara þér nokkrar mínútum. 634 00:30:53,620 --> 00:30:59,560 Svo smá stund síðan, hljóp við þessa program-- halló, heimur, og síðan safna saman því, 635 00:30:59,560 --> 00:31:00,460 og þá hljóp það. 636 00:31:00,460 --> 00:31:01,867 En það er engin kraftur hér. 637 00:31:01,867 --> 00:31:03,700 Hvað ef við vildum gera eitthvað öðruvísi? 638 00:31:03,700 --> 00:31:07,630 Jæja, hvað ef ég vildi í raun og veru fá band frá notanda? 639 00:31:07,630 --> 00:31:11,250 Ég ætla að nota ráðgáta stykki heitir einmitt that-- fá band. 640 00:31:11,250 --> 00:31:15,860 >> Kemur í ljós í C að þegar þú vilt ekki að veita inntak á ráðgáta stykki, 641 00:31:15,860 --> 00:31:19,360 eða meira almennilega að virka, þú bókstaflega bara gera opinn sviga, 642 00:31:19,360 --> 00:31:20,430 nálægt svigi. 643 00:31:20,430 --> 00:31:25,540 Svo það er eins og það er nei hvítur kassi að slá inn. 644 00:31:25,540 --> 00:31:27,720 The segjum blokk áður hafði smá hvítur kassi. 645 00:31:27,720 --> 00:31:29,660 Við höfum ekki þessi hvítur kassi núna. 646 00:31:29,660 --> 00:31:33,310 >> En þegar ég kalla fá band, ég langar að setja niðurstöðuna einhvers staðar. 647 00:31:33,310 --> 00:31:37,680 Svo mjög algeng fyrirmynd í C er að hringja í aðgerð, eins og fá band hér, 648 00:31:37,680 --> 00:31:41,070 og þá geyma skilagildi hennar. 649 00:31:41,070 --> 00:31:44,450 Það er afleiðing af hennar átak í eitthvað. 650 00:31:44,450 --> 00:31:47,630 >> Og hvað er reisa í forritun, 651 00:31:47,630 --> 00:31:53,450 hvort sem er í grunni eða nú C, sem við Hægt er að nota til að raunverulega geyma eitthvað? 652 00:31:53,450 --> 00:31:55,990 Kallað það breyta, ekki satt? 653 00:31:55,990 --> 00:32:00,320 Og í grunni, eigum við ekki raunverulega sama hvað var að gerast í breytum. 654 00:32:00,320 --> 00:32:02,170 >> En í þessu tilfelli, gera við í raun. 655 00:32:02,170 --> 00:32:03,719 Ég ætla að segja streng. 656 00:32:03,719 --> 00:32:05,510 Og þá gæti ég hringt þetta eitthvað sem ég vil. 657 00:32:05,510 --> 00:32:08,340 Ég ætla að kalla það nafn, fær fá band. 658 00:32:08,340 --> 00:32:10,250 >> Og nú jafnvel ef þú ert smá að þessu, 659 00:32:10,250 --> 00:32:11,984 eftir að ég skortir sumum smáatriðum. 660 00:32:11,984 --> 00:32:13,150 Ég er að gleyma hálf-hreinsun. 661 00:32:13,150 --> 00:32:14,400 Ég þarf að klára þessa hugsun. 662 00:32:14,400 --> 00:32:17,480 Þannig að ég ætla að færa bendilinn minn, og högg semikomma þar. 663 00:32:17,480 --> 00:32:19,130 Og hvað hef ég gert bara? 664 00:32:19,130 --> 00:32:21,440 Í þessari línu af kóða, númer 5 í augnablikinu, 665 00:32:21,440 --> 00:32:23,799 Ég ætla að hringja fá band og engin inntak. 666 00:32:23,799 --> 00:32:26,090 Þannig að það er engin smá hvítt kassi eins og Save blokk hefur. 667 00:32:26,090 --> 00:32:28,590 >> Ég ætla bara að segja, hey, tölva, fá mér band. 668 00:32:28,590 --> 00:32:31,390 Merkið er í raun ekki jafnaðarmerki, í sjálfu sér. 669 00:32:31,390 --> 00:32:33,790 Það er verkefni rekstraraðila, sem þýðir, 670 00:32:33,790 --> 00:32:37,860 hey, tölva, færa verðmæti frá hægri yfir til vinstri. 671 00:32:37,860 --> 00:32:40,480 Og í vinstri, ég hef eftirfarandi. 672 00:32:40,480 --> 00:32:43,580 >> Hey, tölva, gefa mér string-- röð af stöfum. 673 00:32:43,580 --> 00:32:45,637 Og kalla þessi strengur nafn. 674 00:32:45,637 --> 00:32:47,220 Og ég er ekki einu sinni að kalla það nafn. 675 00:32:47,220 --> 00:32:49,970 >> Ég gæti kalla það, venjulega, eitthvað eins og S, 676 00:32:49,970 --> 00:32:52,900 líkt við notuðum i til hringja breytunni i. 677 00:32:52,900 --> 00:32:54,829 En nú þarf ég að gera eitthvað við það. 678 00:32:54,829 --> 00:32:57,370 Það væri ansi heimskur til reyna að setja saman þennan kóða, keyra 679 00:32:57,370 --> 00:32:59,410 þetta forrit, jafnvel þótt Ég fæ streng, 680 00:32:59,410 --> 00:33:01,580 vegna þess að það er enn bara að fara að segja halló heiminn. 681 00:33:01,580 --> 00:33:06,140 >> En hvað ef ég vil breyta þessu. 682 00:33:06,140 --> 00:33:07,940 Hvers vegna get ég ekki gera þetta? 683 00:33:07,940 --> 00:33:11,632 Prósent s, komma s. 684 00:33:11,632 --> 00:33:13,090 Og þetta er svolítið dulinn enn. 685 00:33:13,090 --> 00:33:15,560 >> Svo láta mig gera breytur mína skýrari. 686 00:33:15,560 --> 00:33:17,510 Leyfðu mér að nefna þessa breytu nafninu. 687 00:33:17,510 --> 00:33:20,230 Og við skulum sjá hvort við getum ekki stríða sundur hvað er að gerast hér. 688 00:33:20,230 --> 00:33:22,770 >> Svo á línu fimm, ég er að fá band. 689 00:33:22,770 --> 00:33:25,620 Og ég er að geyma þessi band, hvað notandinn hefur slegið í 690 00:33:25,620 --> 00:33:28,430 á lyklaborðinu hans, í breytu sem heitir Name. 691 00:33:28,430 --> 00:33:30,590 Og það kemur í ljós að printf er ekki bara 692 00:33:30,590 --> 00:33:34,220 taka eitt viðfang í tvöfaldur vitna, eitt inntak í gæsalöppum. 693 00:33:34,220 --> 00:33:39,100 >> Það getur tekið tvö eða þrjú, eða meira, svo að seinni eða þriðja eða fjórða, 694 00:33:39,100 --> 00:33:42,320 eru öll nöfn á breytum, eða sérstaklega gildi, 695 00:33:42,320 --> 00:33:48,610 sem þú vilt að stinga inn, virk, að strengur innan gæsalappa. 696 00:33:48,610 --> 00:33:52,110 Með öðrum orðum, hvað væri athugavert við þetta? 697 00:33:52,110 --> 00:33:57,920 Ef ég sagði bara halló nafn, sviga n, bjargaði skrá minn, unnin númerið mitt, 698 00:33:57,920 --> 00:34:01,660 og hljóp þetta, hvað myndi gerast? 699 00:34:01,660 --> 00:34:05,139 >> Það er bara að fara að segja, halló nafn, bókstaflega N-A-M-E, 700 00:34:05,139 --> 00:34:07,900 sem er eins konar heimskur vegna þess að það er ekkert annað í heiminum. 701 00:34:07,900 --> 00:34:10,400 Svo nokkuð innan gæsalappa er hvað bókstaflega fær prentuð. 702 00:34:10,400 --> 00:34:12,520 Þannig að ef ég vil hafa a tákn þar, 703 00:34:12,520 --> 00:34:14,422 Ég þarf reyndar að nota sumir sérstakur setningafræði. 704 00:34:14,422 --> 00:34:17,380 Og það kemur í ljós hvort þú lesið skjöl fyrir printf virka, 705 00:34:17,380 --> 00:34:21,320 það mun segja þér að ef þú notar prósent s, 706 00:34:21,320 --> 00:34:23,920 þú getur komið í stað gildi sem hér segir. 707 00:34:23,920 --> 00:34:27,190 >> Eftir Skilaboð eftir það tommumerki, þú einfaldlega 708 00:34:27,190 --> 00:34:29,179 skrifa nafnið á breyta sem þú vilt 709 00:34:29,179 --> 00:34:33,790 að stinga í í því formi númer, eða snið specifier, 710 00:34:33,790 --> 00:34:35,469 prósent s fyrir strengi. 711 00:34:35,469 --> 00:34:39,190 Og nú ef ég hef vistað skrána mína, Ég fer aftur niður í flugstöðinni minn. 712 00:34:39,190 --> 00:34:42,870 Og ég slá Make String, vegna þess, aftur, nafn þessa 713 00:34:42,870 --> 00:34:45,510 skrá sem ég valdi en er string.c. 714 00:34:45,510 --> 00:34:48,510 >> Þannig að ég ætla að segja Gera band, inn. 715 00:34:48,510 --> 00:34:51,550 Oh my góðvild, líta á alla mistök sem við höfum gert nú þegar. 716 00:34:51,550 --> 00:34:55,540 Og þetta is-- hvað, þetta er virkilega eins og sex, sjö lína program? 717 00:34:55,540 --> 00:34:57,790 Svo er þetta þar sem það getur mjög fljótt fá yfirþyrmandi. 718 00:34:57,790 --> 00:35:00,890 >> Þetta endastöðvar hefur nú bara regurgitated 719 00:35:00,890 --> 00:35:03,230 a gríðarstór tala af villa skilaboð. 720 00:35:03,230 --> 00:35:07,560 Víst, ég hef ekki meiri villa skilaboð en ég hef línur af kóða. 721 00:35:07,560 --> 00:35:08,680 Svo hvað er að gerast? 722 00:35:08,680 --> 00:35:10,920 >> Jæja, bestu leiðina að gera hvenær þú 723 00:35:10,920 --> 00:35:13,710 ekki lenda yfirgnæfandi Listi af villum eins og þessi, 724 00:35:13,710 --> 00:35:16,690 er fletta til baka, líta á stjórn þú hleypur bara, sem í mínu tilfelli 725 00:35:16,690 --> 00:35:18,020 er að gera band. 726 00:35:18,020 --> 00:35:21,630 Horfðu á hvað gera gerðum, og það er það langur Clang stjórn, ekkert stórmál þar. 727 00:35:21,630 --> 00:35:22,950 >> En rauður er slæmt. 728 00:35:22,950 --> 00:35:24,750 Grænn er að reyna að vera blíður og hjálpsamur. 729 00:35:24,750 --> 00:35:26,140 En það er samt slæmt, í þessu tilfelli. 730 00:35:26,140 --> 00:35:27,510 En hvar er það slæmt? 731 00:35:27,510 --> 00:35:31,450 >> String.c, lína fimm, eðli fimm. 732 00:35:31,450 --> 00:35:32,930 Svo er þetta bara algengt samningur. 733 00:35:32,930 --> 00:35:36,060 Eitthvað ristill eitthvað þýðir lína númer og eðli númer. 734 00:35:36,060 --> 00:35:41,080 Villa, notkun óskilgreinda Auðkenni band. 735 00:35:41,080 --> 00:35:42,900 Áttirðu staðall í? 736 00:35:42,900 --> 00:35:45,530 >> Svo, því miður, Clang er að reyna að vera hjálpsamur. 737 00:35:45,530 --> 00:35:46,850 En það er rangt, í þessu tilfelli. 738 00:35:46,850 --> 00:35:49,350 Nei, Clang, ég ætlaði ekki staðlað IO. 739 00:35:49,350 --> 00:35:51,070 Ég ætlaði að á línu eitt, já. 740 00:35:51,070 --> 00:35:53,420 >> En lína fimm er þetta einn hér. 741 00:35:53,420 --> 00:35:57,040 Og Clang ekki skil S-T-R-I-N-G. 742 00:35:57,040 --> 00:36:01,490 Það er óskilgreinda kennimerki, a Bæta hún bara hefur aldrei séð áður. 743 00:36:01,490 --> 00:36:05,730 Og það er vegna þess C, tungumálið við erum að skrifa kóðann í núna, 744 00:36:05,730 --> 00:36:08,070 hefur ekki breytur kallast strengi. 745 00:36:08,070 --> 00:36:11,380 >> Það er ekki sjálfgefið, stuðning eitthvað sem kallast streng. 746 00:36:11,380 --> 00:36:16,750 Það er CS50 stykki af hrognamál, en mjög venjulegur. 747 00:36:16,750 --> 00:36:18,600 En ég get lagað þetta eins og hér segir. 748 00:36:18,600 --> 00:36:22,090 >> Ef ég bæta við einni línu af kóða til the toppur af þessari áætlun, 749 00:36:22,090 --> 00:36:27,890 eru CS50.h, sem er annar skrá einhvers staðar inni CS50 IDE, einhvers staðar 750 00:36:27,890 --> 00:36:30,820 á harða diskinum, svo að segja, Ubuntu stýrikerfi 751 00:36:30,820 --> 00:36:33,590 sem ég er að keyra, það er skrá sem er 752 00:36:33,590 --> 00:36:38,740 að fara að kenna rekstri Kerfið hvað band er bara 753 00:36:38,740 --> 00:36:41,930 eins og staðall io.h er skrá í stýrikerfinu sem er 754 00:36:41,930 --> 00:36:44,430 að fara að kenna henni hvað printf er. 755 00:36:44,430 --> 00:36:46,810 >> Reyndar, við hefðum fengið mjög svipuð skilaboð 756 00:36:46,810 --> 00:36:50,600 ef IO hafði viðurkenndi staðal Io.h og reyndi að nota printf. 757 00:36:50,600 --> 00:36:53,632 Þannig að ég ætla að fara á undan og bara Taktu stjórn L til að hreinsa skjáinn minn. 758 00:36:53,632 --> 00:36:56,340 Eða þú getur slegið skýr og það verður bara hreinsa endastöðvar. 759 00:36:56,340 --> 00:36:58,020 En þú getur samt fletta aftur í tímann. 760 00:36:58,020 --> 00:37:01,100 >> Og ég ætla að endursýning Gera String. 761 00:37:01,100 --> 00:37:03,660 Yfir fingur minn í þetta sinn, Enter. 762 00:37:03,660 --> 00:37:05,380 Ó Guð minn, vann það. 763 00:37:05,380 --> 00:37:09,280 það sýnir mig langan dulinn skipun það er það sem Gaktu mynda um Clang, 764 00:37:09,280 --> 00:37:10,460 en engin villuskilaboð. 765 00:37:10,460 --> 00:37:12,460 Svo átta sig, jafnvel þótt þú gætir fengið alveg 766 00:37:12,460 --> 00:37:14,480 óvart með Fjöldi villuskilaboð, 767 00:37:14,480 --> 00:37:17,540 það bara gæti verið þetta pirrandi Cascading áhrif, þar Clang ekki skilja 768 00:37:17,540 --> 00:37:19,620 eitt, sem þýðir það þá skilur ekki næsta orð, 769 00:37:19,620 --> 00:37:20,560 eða næsta lína. 770 00:37:20,560 --> 00:37:22,850 Og svo chokes það bara á kóðann þinn. 771 00:37:22,850 --> 00:37:24,440 En festa gæti verið einfalt. 772 00:37:24,440 --> 00:37:27,822 Og svo alltaf einblína á mjög fyrstur lína af framleiðslu. 773 00:37:27,822 --> 00:37:29,530 Og ef þú ert ekki skilja það, bara líta 774 00:37:29,530 --> 00:37:32,480 fyrir leitarorð sem gæti verið vísbendingar, og lína númer, 775 00:37:32,480 --> 00:37:34,650 og eðli, þar sem mistök gæti verið. 776 00:37:34,650 --> 00:37:40,328 >> Nú láta mig fara á undan og sláðu punktur rista, band, inn. 777 00:37:40,328 --> 00:37:44,340 Hm, það er ekki að segja halló neitt. 778 00:37:44,340 --> 00:37:46,210 Hvers vegna? 779 00:37:46,210 --> 00:37:48,170 Jæja, muna, hvar er það í gangi? 780 00:37:48,170 --> 00:37:53,730 >> Það er líklega fastur í augnablikinu í lykkju, ef þú vilt, á línu sex, 781 00:37:53,730 --> 00:37:56,950 því fá band við hönnun, skrifað af CS50 starfsfólk, 782 00:37:56,950 --> 00:38:00,350 er bókstaflega ætlað að bara sitja þar að bíða, og bíða, 783 00:38:00,350 --> 00:38:01,850 og bíða streng. 784 00:38:01,850 --> 00:38:03,792 Allt er átt við með því að band er mannlegt inntak. 785 00:38:03,792 --> 00:38:04,500 Svo þú veist hvað? 786 00:38:04,500 --> 00:38:05,166 Leyfðu mér að fara á undan. 787 00:38:05,166 --> 00:38:08,704 Og bara á hegðun, láttu mig skrifa nafnið mitt, Davíð, inn. 788 00:38:08,704 --> 00:38:10,120 Nú hef ég meira dynamic forrit. 789 00:38:10,120 --> 00:38:11,240 Það sagði, halló David. 790 00:38:11,240 --> 00:38:16,280 >> Ef ég fer á undan og keyra þetta aftur, láta mig reyna að segja Zamila nafn, inn. 791 00:38:16,280 --> 00:38:17,940 Og nú höfum við öflugt forrit. 792 00:38:17,940 --> 00:38:19,380 Ég hef ekki erfitt dulmáli heiminn. 793 00:38:19,380 --> 00:38:21,760 Ég hef ekki erfitt dulmáli nafn, eða David, eða Zamila. 794 00:38:21,760 --> 00:38:25,350 >> Nú er það miklu meira eins og áætlanir við vitum, þar sem ef það tekur inntak, 795 00:38:25,350 --> 00:38:27,870 það framleiðir aðeins öðruvísi framleiðsla. 796 00:38:27,870 --> 00:38:31,020 Nú, þetta er ekki sú besta notandi reynsla eða UX. 797 00:38:31,020 --> 00:38:33,000 Ég hlaupa the program. 798 00:38:33,000 --> 00:38:35,830 >> Ég veit ekki hvað ég á að gera, nema ég lít reyndar á 799 00:38:35,830 --> 00:38:37,290 eða muna kóðann. 800 00:38:37,290 --> 00:38:39,640 Svo skulum gera notanda upplifa a lítill betri 801 00:38:39,640 --> 00:38:41,240 með einföldustu hluti. 802 00:38:41,240 --> 00:38:44,782 Leyfðu mér að fara aftur í þetta program, og einfaldlega segja printf. 803 00:38:44,782 --> 00:38:48,870 >> Og láta mig fara á undan og segja nafn, ristli, og rúm, og þá hálf-hreinsun. 804 00:38:48,870 --> 00:38:51,170 Og bara fyrir spörk, engin bakslag n. 805 00:38:51,170 --> 00:38:52,980 Og það er vísvitandi, vegna þess að ég vil ekki 806 00:38:52,980 --> 00:38:54,590 hvetja til að fara í næstu línu. 807 00:38:54,590 --> 00:38:58,800 >> Ég vil, í stað þess, að gera þetta, gera streng að endurþýða númerið mitt inn nýja vél 808 00:38:58,800 --> 00:39:00,980 númer punktur rista band. 809 00:39:00,980 --> 00:39:02,460 Ah, þetta er miklu fallegri. 810 00:39:02,460 --> 00:39:05,780 Nú veit ég reyndar hvað tölva vill að ég geri, að gefa honum nafn. 811 00:39:05,780 --> 00:39:10,020 >> Þannig að ég ætla að fara á undan og sláðu í Rob, inn, og halló, Rob. 812 00:39:10,020 --> 00:39:13,640 Svo, gera sér grein fyrir, að þetta er enn, í lok dagsins, aðeins níu lína forrit. 813 00:39:13,640 --> 00:39:15,090 En við höfum tekið þessar barn stíga. 814 00:39:15,090 --> 00:39:18,380 >> Við skrifaði eina línu sem við voru kunnugir, printf, halló heimur. 815 00:39:18,380 --> 00:39:19,980 Þá erum við undid smá af því. 816 00:39:19,980 --> 00:39:21,560 Og við notuðum í raun fá band. 817 00:39:21,560 --> 00:39:23,362 Og við kastað þessi gildi í breytu. 818 00:39:23,362 --> 00:39:26,070 Og svo fórum við á undan og bæta það frekar með þriðju línu. 819 00:39:26,070 --> 00:39:29,220 Og þetta endurtekningu ferli skrifa hugbúnað er sannarlega lykillinn. 820 00:39:29,220 --> 00:39:33,420 Í CS50, og í lífinu almennt, þú ættir almennt ekki setjast niður, 821 00:39:33,420 --> 00:39:36,800 hafa forrit í huga, og reyna að skrifa allt fjandinn hlutur í einu. 822 00:39:36,800 --> 00:39:40,810 >> Það mun óhjákvæmilega leiða í leiðinni meira villur en við sjálf sást hér. 823 00:39:40,810 --> 00:39:44,070 Jafnvel ég, til þessa dags, stöðugt gera aðrar heimskur mistök, 824 00:39:44,070 --> 00:39:47,480 eru í raun erfiðara mistök sem eru erfiðara að reikna út. 825 00:39:47,480 --> 00:39:52,095 En þú verður að gera fleiri mistök meira línur af kóða sem þú skrifar allt í einu. 826 00:39:52,095 --> 00:39:54,220 Og svo þetta starf af, skrifa smá kóða 827 00:39:54,220 --> 00:39:57,930 að þú ert ánægð með, safna saman það, keyra það, prófa það almennt, 828 00:39:57,930 --> 00:40:01,370 þá fara skráin svo bara eins og við haldið layering og layering síðustu viku, 829 00:40:01,370 --> 00:40:04,190 byggja frá einhverju mjög einfalt að eitthvað flóknari, 830 00:40:04,190 --> 00:40:05,200 gera það sama hér. 831 00:40:05,200 --> 00:40:08,500 Ekki setjast niður og reyna að skrifa heilt vandamál. 832 00:40:08,500 --> 00:40:10,780 Raunverulega taka þessi barn stíga. 833 00:40:10,780 --> 00:40:15,100 >> Nú eru strengir ekki allir að gagni við sig. 834 00:40:15,100 --> 00:40:18,210 Við myndum reyndar helst eins og að hafa eitthvað annað í tól okkar. 835 00:40:18,210 --> 00:40:20,990 Svo skulum gera reyndar einmitt það. 836 00:40:20,990 --> 00:40:24,900 >> Leyfðu mér að fara á undan núna og svipa upp aðeins öðruvísi program. 837 00:40:24,900 --> 00:40:28,320 Og við munum kalla þetta int.c fyrir heiltölu. 838 00:40:28,320 --> 00:40:30,870 Ég ætla að sama skapi eru CS550.h. 839 00:40:30,870 --> 00:40:33,060 Ég ætla að fela staðlaða IO. 840 00:40:33,060 --> 00:40:36,630 Og það er að fara að vera nokkuð algeng í þessum fyrstu dögum bekknum. 841 00:40:36,630 --> 00:40:39,050 >> Og ég ætla að tilbúin sjálfur með meginvirkni. 842 00:40:39,050 --> 00:40:43,370 Og nú í stað þess að fá band, við skulum fara á undan og fá int. 843 00:40:43,370 --> 00:40:49,285 Við skulum kalla það ég, og kalla það að fá int, loka parens, hálf-hreinsun. 844 00:40:49,285 --> 00:40:51,410 Og nú skulum gera eitthvað með það, printf. 845 00:40:51,410 --> 00:40:56,190 >> Við skulum segja eitthvað eins halló, sviga n, komma i. 846 00:40:56,190 --> 00:41:00,010 Þannig að ég er nokkuð mikið herma það sem ég gerði bara smá stund síðan. 847 00:41:00,010 --> 00:41:01,660 Ég er með tákn hér. 848 00:41:01,660 --> 00:41:05,150 Ég hef komma ég hér, vegna þess að ég vil að stinga i inn í þessi tákn. 849 00:41:05,150 --> 00:41:07,250 >> Svo skulum fara á undan og reyna gerð þessarar áætlunar. 850 00:41:07,250 --> 00:41:10,060 Skráin heitir int.c. 851 00:41:10,060 --> 00:41:12,920 Þannig að ég ætla að segja, gera int, inn. 852 00:41:12,920 --> 00:41:16,420 Ó Guð minn, en ekkert stórmál, ekki satt? 853 00:41:16,420 --> 00:41:17,230 Það er rangt. 854 00:41:17,230 --> 00:41:19,810 >> Það er nokkur dæmi um setningarleg mistök hér svo að forritið getur ekki 855 00:41:19,810 --> 00:41:25,460 vera saman inni int.c, línu sjö, eðli 27, villa snið 856 00:41:25,460 --> 00:41:28,400 tilgreinir tegund bleikju stjörnu, hvað sem er. 857 00:41:28,400 --> 00:41:30,020 En rök gerð er int. 858 00:41:30,020 --> 00:41:33,110 >> Svo hér líka, við erum ekki að fara to-- jafnvel þó í dag er mikið af efni, 859 00:41:33,110 --> 00:41:35,710 við erum að fara að yfirbuga þig með algerlega sérhver lögun af C, 860 00:41:35,710 --> 00:41:38,070 og forritun almennt, í bara þessum fyrstu vikum. 861 00:41:38,070 --> 00:41:40,400 Þannig að það er oft að fara að vera hrognamál sem þú ert ekki kunnuglegur. 862 00:41:40,400 --> 00:41:43,350 Og í raun, bleikju stjarna er eitthvað við erum að fara að koma aftur til 863 00:41:43,350 --> 00:41:44,830 í viku eða einu tveimur er. 864 00:41:44,830 --> 00:41:47,530 >> En nú, við skulum sjá hvort við getum flokka orð sem ég þekki. 865 00:41:47,530 --> 00:41:50,750 Formats-- svo heyrðum við snið specifier, sniði kóða áður. 866 00:41:50,750 --> 00:41:51,840 Það er kunnuglegt. 867 00:41:51,840 --> 00:41:53,840 Type-- en rök hefur int. 868 00:41:53,840 --> 00:41:55,980 Bíddu, ég er int. 869 00:41:55,980 --> 00:41:59,230 >> Kannski prósent s raun hefur einhverja skilgreinda merkingu. 870 00:41:59,230 --> 00:42:00,230 Og reyndar er það. 871 00:42:00,230 --> 00:42:03,101 Heiltala, ef þú vilt printf að skipta henni, 872 00:42:03,101 --> 00:42:05,350 þú ert í raun að nota öðruvísi sniði specifier. 873 00:42:05,350 --> 00:42:06,890 Og þú myndir ekki vita þetta nema einhver sagt þér, 874 00:42:06,890 --> 00:42:07,973 eða þú hefðir gert það áður. 875 00:42:07,973 --> 00:42:10,490 En prósent i er það er hægt að almennt eru notaðar 876 00:42:10,490 --> 00:42:12,240 í printf fyrir plugging í heiltölu. 877 00:42:12,240 --> 00:42:14,920 Þú getur líka notað prósent D fyrir aukastaf heiltölu. 878 00:42:14,920 --> 00:42:16,490 En ég er gott og einfalt hér. 879 00:42:16,490 --> 00:42:17,590 Þannig að við munum fara með það. 880 00:42:17,590 --> 00:42:21,160 >> Nú láta mig fara á undan og endursýning gera int, Enter. 881 00:42:21,160 --> 00:42:23,328 Það er gott, engar villur. 882 00:42:23,328 --> 00:42:27,260 Dot rista int-- lagi, slæmur reynslu notenda, vegna þess að ég hef ekki sagt mig 883 00:42:27,260 --> 00:42:27,760 hvað skal gera. 884 00:42:27,760 --> 00:42:28,426 En það er allt í lagi. 885 00:42:28,426 --> 00:42:29,480 Ég er smitandi á fljótlegan hátt. 886 00:42:29,480 --> 00:42:36,260 >> Og nú langar mig að fara á undan og slá í Davíð, OK, Zamila, Rob. 887 00:42:36,260 --> 00:42:37,820 OK, þannig að þetta er gott. 888 00:42:37,820 --> 00:42:41,710 Í þetta sinn, ég er að nota aðgerð, ráðgáta stykki, sem heitir Fá Int. 889 00:42:41,710 --> 00:42:44,230 Og það kemur out-- og við munum sjá þessa síðar í term-- 890 00:42:44,230 --> 00:42:47,730 CS50 starfsfólk hefur innleitt fá band á þann hátt 891 00:42:47,730 --> 00:42:50,350 að það mun aðeins líkamlega fá band fyrir þig. 892 00:42:50,350 --> 00:42:54,340 >> Það hefur innleitt get 'int í þannig að það verður bara 893 00:42:54,340 --> 00:42:55,590 fá heiltölu fyrir þig. 894 00:42:55,590 --> 00:42:57,830 Og ef þú, manna, ekki vinna ekki, það er 895 00:42:57,830 --> 00:43:00,590 bókstaflega bara að fara að segja reyna aftur, reyna aftur, reyna aftur, 896 00:43:00,590 --> 00:43:05,200 bókstaflega sitja þar lykkja, þar þú skuldbinda með einhverjum töfrum númer, 897 00:43:05,200 --> 00:43:07,670 eins og 50, og halló 50. 898 00:43:07,670 --> 00:43:11,440 >> Eða ef við keyra þetta aftur og tegund í 42, halló 42. 899 00:43:11,440 --> 00:43:15,750 Og svo the fá INT virka inni í því ráðgáta stykki 900 00:43:15,750 --> 00:43:19,050 er nóg rökfræði, nógu hugsun, að reikna út, hvað er orð? 901 00:43:19,050 --> 00:43:20,330 Og hvað er tala? 902 00:43:20,330 --> 00:43:23,165 Aðeins samþykkja, að lokum, tölur. 903 00:43:23,165 --> 00:43:25,690 904 00:43:25,690 --> 00:43:30,230 >> Svo kemur í ljós að þetta er ekki allt sem svipmikill. 905 00:43:30,230 --> 00:43:30,910 hingað til. 906 00:43:30,910 --> 00:43:33,690 Svo, yay, síðast þegar við fór ansi hratt 907 00:43:33,690 --> 00:43:38,320 í framkvæmdarreglunum leiki og fjör, og listaverkum í grunni. 908 00:43:38,320 --> 00:43:42,260 Og hér erum við að innihald með Hello World, og halló 50. 909 00:43:42,260 --> 00:43:43,696 >> Það er ekki allt sem hvetjandi. 910 00:43:43,696 --> 00:43:46,070 Og reyndar þessir fyrstu dæmi mun taka nokkurn tíma 911 00:43:46,070 --> 00:43:47,510 að pallinum upp í eftirvæntingu. 912 00:43:47,510 --> 00:43:49,854 En við höfum svo miklu meira stjórna nú, í raun. 913 00:43:49,854 --> 00:43:51,770 Og við erum að fara að mjög fljótt að byrja layering 914 00:43:51,770 --> 00:43:53,870 ofan á þessa undirstöðu frumform. 915 00:43:53,870 --> 00:43:56,370 >> En fyrst skulum skilja hvað takmarkanir eru. 916 00:43:56,370 --> 00:43:58,620 Í raun einn af þeim hlutum Scratch ekki auðveldlega 917 00:43:58,620 --> 00:44:00,990 skulum gera er í raun að líta undir hetta, 918 00:44:00,990 --> 00:44:03,740 og skilja hvað tölva er, hvað það getur gert, 919 00:44:03,740 --> 00:44:05,250 og hvað takmarkanir hennar eru. 920 00:44:05,250 --> 00:44:08,580 Og reyndar það skortur á skilningur, hugsanlega, langtíma 921 00:44:08,580 --> 00:44:12,520 getur leitt til eigið mistakes-- skrifa okkar galla, skrifa óörugg hugbúnað sem 922 00:44:12,520 --> 00:44:13,880 fær tölvusnápur á einhvern hátt. 923 00:44:13,880 --> 00:44:17,130 >> Svo skulum taka nokkur skref í átt að skilja þetta svolítið betur eftir 924 00:44:17,130 --> 00:44:19,710 leið, segja, eftirfarandi dæmi. 925 00:44:19,710 --> 00:44:23,550 Ég ætla að fara á undan og framkvæma raunverulegur fljótur forrit sem heitir Adder. 926 00:44:23,550 --> 00:44:25,134 Eins og við skulum bæta nokkrar tölur saman. 927 00:44:25,134 --> 00:44:27,800 Og ég ætla að fara að kóða sumum hornum hér, og bara að afrita og líma 928 00:44:27,800 --> 00:44:30,270 þar sem ég var áður, bara svo við getum fengið að fara fyrr. 929 00:44:30,270 --> 00:44:33,090 Svo nú hef ég fengið undirstöðu upphaf af a program sem heitir Adder. 930 00:44:33,090 --> 00:44:34,670 >> Og við skulum fara á undan og gera þetta. 931 00:44:34,670 --> 00:44:38,680 Ég ætla að fara á undan og segjum intx fær fá int. 932 00:44:38,680 --> 00:44:39,430 Og þú veist hvað? 933 00:44:39,430 --> 00:44:40,990 Við skulum gera betri reynslu notenda. 934 00:44:40,990 --> 00:44:45,740 >> Svo skulum bara segja x er, og í raun hvetja notandann til að gefa okkur x. 935 00:44:45,740 --> 00:44:50,600 Og þá láta mig fara á undan og segja, printf hvernig óður y er, í þetta sinn von 936 00:44:50,600 --> 00:44:53,140 tvö gildi frá notanda. 937 00:44:53,140 --> 00:44:59,759 Og þá skulum fara bara á undan og segja, printf, summan af x og y eru. 938 00:44:59,759 --> 00:45:01,300 Og nú vil ég ekki að gera prósent s. 939 00:45:01,300 --> 00:45:09,080 Ég vil gera prósent i, sviga n, og þá stinga í summan gildi. 940 00:45:09,080 --> 00:45:10,620 >> Svo hvernig get ég farið að gera þetta? 941 00:45:10,620 --> 00:45:11,270 Veistu hvað? 942 00:45:11,270 --> 00:45:12,840 Ég veit hvernig á að nota breytur. 943 00:45:12,840 --> 00:45:15,140 Leyfðu mér að lýsa bara nýjan, Int z. 944 00:45:15,140 --> 00:45:16,770 >> Og ég ætla að taka giska hér. 945 00:45:16,770 --> 00:45:21,470 Ef það eru samasemmerki í þessu tungumál, kannski ég get bara gert x plús Y, 946 00:45:21,470 --> 00:45:23,660 svo lengi sem ég enda mitt hélt með hálf-hreinsun? 947 00:45:23,660 --> 00:45:28,170 Nú get ég farið aftur hingað niður, stinga í z, klára þessa hugsun með hálf-hreinsun. 948 00:45:28,170 --> 00:45:33,160 Og við skulum sjá nú, ef þessi röð af lines-- x er fá int. 949 00:45:33,160 --> 00:45:34,770 Y er að fá int. 950 00:45:34,770 --> 00:45:37,980 >> Bæta x og y, geyma verðmæti í z-- Svo aftur, muna jafnan merki 951 00:45:37,980 --> 00:45:38,560 er ekki jöfn. 952 00:45:38,560 --> 00:45:41,100 Það er verkefni frá hægri til vinstri. 953 00:45:41,100 --> 00:45:45,180 Og við skulum prenta út að summa af X og Y er ekki bókstaflega z, 954 00:45:45,180 --> 00:45:46,830 En hvað er inni í z. 955 00:45:46,830 --> 00:45:50,090 Svo skulum gera Adder - Nice, engin mistök í þetta sinn. 956 00:45:50,090 --> 00:45:53,030 Punktur rista Adder, slá, x er að fara að vera 1. 957 00:45:53,030 --> 00:45:55,380 >> Y er að fara að vera 2. 958 00:45:55,380 --> 00:45:58,964 Og summan af x og y eru 3. 959 00:45:58,964 --> 00:46:00,130 Svo er það allt í lagi og gott. 960 00:46:00,130 --> 00:46:03,260 >> Svo þú myndi ímynda sér að stærðfræði ætti að vinna í áætlun eins og þetta. 961 00:46:03,260 --> 00:46:04,040 En þú veist hvað? 962 00:46:04,040 --> 00:46:06,904 Er þetta breytu, lína 12, jafnvel nauðsynlegt? 963 00:46:06,904 --> 00:46:09,820 Þú þarft ekki að komast í vana á bara að geyma hluti í breytum 964 00:46:09,820 --> 00:46:10,980 bara vegna þess að þú getur. 965 00:46:10,980 --> 00:46:13,550 Og í raun, það er yfirleitt talið slæmt hönnun 966 00:46:13,550 --> 00:46:18,100 ef þú ert að búa til breytu, sem heitir z í þessu tilfelli, geyma eitthvað í það, 967 00:46:18,100 --> 00:46:21,390 og þá strax að nota það, en aldrei aftur. 968 00:46:21,390 --> 00:46:24,700 Hvers vegna gefa eitthvað að nafn eins z ef þú ert bókstaflega 969 00:46:24,700 --> 00:46:26,770 að fara að nota það Málið aðeins einu sinni, og svo 970 00:46:26,770 --> 00:46:29,380 aðlægan hvar þú bjóst það í fyrsta sæti, 971 00:46:29,380 --> 00:46:31,052 svo nálægt í skilmálar af línum af kóða? 972 00:46:31,052 --> 00:46:31,760 Svo þú veist hvað? 973 00:46:31,760 --> 00:46:34,480 Það kemur í ljós að C er nokkuð sveigjanleg. 974 00:46:34,480 --> 00:46:36,586 Ef ég vil í raun og veru að stinga í gildi hér, 975 00:46:36,586 --> 00:46:38,210 Ég þarf ekki að lýsa nýja breytu. 976 00:46:38,210 --> 00:46:41,680 Ég gæti bara stinga í x plús Y, vegna þess að C skilur 977 00:46:41,680 --> 00:46:43,390 tölur og stærðfræði rekstraraðila. 978 00:46:43,390 --> 00:46:47,140 >> Svo ég get einfaldlega sagt, að gera þetta stærðfræði, x plús Y, hvað sem gildin eru, 979 00:46:47,140 --> 00:46:50,780 stinga leiðir heiltala í strengsins. 980 00:46:50,780 --> 00:46:53,730 Þannig að þetta gæti verið, þó Aðeins ein lína styttri, 981 00:46:53,730 --> 00:46:58,480 betri hönnun, betri forrit, vegna þess að það er minna númer, því 982 00:46:58,480 --> 00:46:59,921 minna fyrir mig að skilja. 983 00:46:59,921 --> 00:47:01,920 Og það er líka bara hreinni, að því marki sem við erum ekki 984 00:47:01,920 --> 00:47:04,620 kynna ný orð, ný tákn, eins og z, 985 00:47:04,620 --> 00:47:07,510 jafnvel þótt þeir í raun ekki þjóna mikið af ákveðnum tilgangi. 986 00:47:07,510 --> 00:47:12,890 >> Því miður, stærðfræði er ekki allt að áreiðanlegar stundum. 987 00:47:12,890 --> 00:47:15,270 Við skulum fara á undan og gera þetta. 988 00:47:15,270 --> 00:47:18,200 Ég ætla að fara á undan núna og gera eftirfarandi. 989 00:47:18,200 --> 00:47:27,650 >> Við skulum gera printf, prósent i, auk prósent Ég skal vera prósent i, sviga n. 990 00:47:27,650 --> 00:47:32,240 Og ég ætla að gera this-- xyx plús y. 991 00:47:32,240 --> 00:47:34,821 Þannig að ég ætla bara að fara að umrita þetta örlítið öðruvísi hér. 992 00:47:34,821 --> 00:47:36,320 Leyfðu mér að gera bara fljótur geðheilsu stöðva. 993 00:47:36,320 --> 00:47:37,986 Aftur, við skulum ekki fá á undan okkur. 994 00:47:37,986 --> 00:47:41,420 Gera adder, punktur rista naðra. 995 00:47:41,420 --> 00:47:44,950 x er 1, y er 2, 1 plús 2 er 3. 996 00:47:44,950 --> 00:47:45,870 Svo er það gott. 997 00:47:45,870 --> 00:47:49,060 En við skulum flækt þetta núna dálítið, og búa til nýja skrá. 998 00:47:49,060 --> 00:47:53,350 >> Ég ætla að hringja í þetta einn, segja, ints, plural fyrir heiltölur. 999 00:47:53,350 --> 00:47:55,980 Leyfðu mér að byrja þar sem ég var í smá stund síðan. 1000 00:47:55,980 --> 00:47:57,770 En nú skulum gera nokkrar aðrar línur. 1001 00:47:57,770 --> 00:48:03,430 Leyfðu mér að fara á undan og gera eftirfarandi, printf, prósent i, mínus prósent i, 1002 00:48:03,430 --> 00:48:08,959 er prósent i, komma x, komma Yx mínus y. 1003 00:48:08,959 --> 00:48:10,750 Þannig að ég ætla að gera örlítið öðruvísi stærðfræði þar. 1004 00:48:10,750 --> 00:48:11,624 Skulum gera annað. 1005 00:48:11,624 --> 00:48:16,610 Svo prósent i sinnum prósent Ég er prósent i, sviga n. 1006 00:48:16,610 --> 00:48:21,430 Við skulum stinga í X og Y og X sinnum Y. 1007 00:48:21,430 --> 00:48:24,530 Við munum nota Stjörnumerki á tölvan að tímum. 1008 00:48:24,530 --> 00:48:26,390 >> Þú notar ekki x. x er breytu nafn hér. 1009 00:48:26,390 --> 00:48:28,270 Þú notar stjörnuna fyrir margföldun. 1010 00:48:28,270 --> 00:48:29,020 Skulum gera eitt. 1011 00:48:29,020 --> 00:48:34,580 Printf prósent I, skipt eftir prósent i, er prósent i, 1012 00:48:34,580 --> 00:48:40,460 sviga n. XY deilt með y-- svo þú notað skástrikið í C 1013 00:48:40,460 --> 00:48:41,502 að gera skiptingu. 1014 00:48:41,502 --> 00:48:42,460 Og við skulum gera eitt annað. 1015 00:48:42,460 --> 00:48:47,920 1016 00:48:47,920 --> 00:48:55,240 Afgangurinn af prósent i, skipt eftir prósent i, er prósent i. 1017 00:48:55,240 --> 00:48:59,550 xy-- og nú afgangurinn er það sem er afgangs. 1018 00:48:59,550 --> 00:49:02,980 Þegar þú reynir að deila a nefnarann ​​í teljaranum, 1019 00:49:02,980 --> 00:49:05,570 hversu mikið er afgangs sem þú getur ekki skipta út? 1020 00:49:05,570 --> 00:49:07,910 >> Þannig að það er í raun ekki, endilega, tákn 1021 00:49:07,910 --> 00:49:09,470 við höfum notað í grunnskóla fyrir þetta. 1022 00:49:09,470 --> 00:49:13,830 En það í C. Þú getur segja x leifastofn Y, þar sem 1023 00:49:13,830 --> 00:49:18,000 þetta prósentumerki í þessum context-- confusingly þegar þú ert inni 1024 00:49:18,000 --> 00:49:20,170 af gæsalöppum, inni á printf, prósent 1025 00:49:20,170 --> 00:49:21,830 er notað sem sniði specifier. 1026 00:49:21,830 --> 00:49:25,420 >> Þegar þú notar prósent utan að í stærðfræðitákni, 1027 00:49:25,420 --> 00:49:29,910 það er leifastofn rekstraraðila fyrir mát arithmetic-- fyrir tilgangi okkar 1028 00:49:29,910 --> 00:49:33,650 hér, bara þýðir, hvað er Afgangurinn af x deilt með y? 1029 00:49:33,650 --> 00:49:36,130 Svo x deilt með y er x skástrik y. 1030 00:49:36,130 --> 00:49:38,220 Hvað er afgangurinn af x deilt með y? 1031 00:49:38,220 --> 00:49:41,780 Það er x mod y, sem forritari myndi segja. 1032 00:49:41,780 --> 00:49:48,300 >> Svo ef ég gerði engin mistök hér, láttu mig fara á undan og gera ints, fleirtölu, gott, 1033 00:49:48,300 --> 00:49:50,010 og punktur rista ints. 1034 00:49:50,010 --> 00:49:55,270 Og við skulum fara á undan og gera, við skulum segja, 1, 10. 1035 00:49:55,270 --> 00:49:58,390 Allt í lagi, 1 plús 10 er 11, athuga. 1036 00:49:58,390 --> 00:50:01,240 1 mínus 10 er neikvæð 9, athuga. 1037 00:50:01,240 --> 00:50:03,420 >> 1 sinnum 10 er 10, athuga. 1038 00:50:03,420 --> 00:50:07,090 1 deilt með 10 is-- OK, við munum sleppa því einn. 1039 00:50:07,090 --> 00:50:09,480 Afgangurinn af 1 deilt með 10 er 1. 1040 00:50:09,480 --> 00:50:10,680 Það er rétt. 1041 00:50:10,680 --> 00:50:12,630 En það er padda hér. 1042 00:50:12,630 --> 00:50:15,390 >> Þannig sá sem ég setti minn afhenda, ekki rétt. 1043 00:50:15,390 --> 00:50:16,670 Ég meina, það er nálægt 0. 1044 00:50:16,670 --> 00:50:20,670 1 deilt með 10, þú veist, ef við erum skera nokkrar horn, viss, það er núll. 1045 00:50:20,670 --> 00:50:28,050 En það ætti í raun að vera 1/10, 0,1 eða 0,10, 0,1000, eða svo framvegis. 1046 00:50:28,050 --> 00:50:30,600 >> Það ætti í raun ekki að vera núll. 1047 00:50:30,600 --> 00:50:35,990 Jæja, það kemur í ljós að tölvan er gera bókstaflega það sem við sögðum henni að gera. 1048 00:50:35,990 --> 00:50:39,460 Við erum að gera stærðfræðina svona x deilt með y. 1049 00:50:39,460 --> 00:50:44,680 Og bæði x og y, á línum af kóða fyrr, eru heiltölur. 1050 00:50:44,680 --> 00:50:50,440 >> Þar að auki, á línu 15, við erum segja printf, hey, printf stinga í 1051 00:50:50,440 --> 00:50:54,230 heiltala, stinga í heiltala, stinga í integer-- sérstaklega 1052 00:50:54,230 --> 00:50:57,580 x, og þá er Y, og þá er x deilt með y. x og y eru ints. 1053 00:50:57,580 --> 00:50:59,060 Við erum góð þar. 1054 00:50:59,060 --> 00:51:01,250 >> En hvað er x deilt með x? 1055 00:51:01,250 --> 00:51:06,790 x deilt með y ætti að vera, stærðfræðilega, 1/10, eða 0,1, 1056 00:51:06,790 --> 00:51:11,600 sem er rauntala, rauntala hafa, hugsanlega, Komma. 1057 00:51:11,600 --> 00:51:13,230 Það er ekki heil tala. 1058 00:51:13,230 --> 00:51:18,290 >> En hvað er næst heiltala að 1/10, eða 0.1? 1059 00:51:18,290 --> 00:51:21,114 Já, það er góður af núll. 1060 00:51:21,114 --> 00:51:22,030 0.1 er svona mikið. 1061 00:51:22,030 --> 00:51:22,890 Og 1 er þetta mikið. 1062 00:51:22,890 --> 00:51:25,870 Svo 1/10 er nær 0 en það er til einn. 1063 00:51:25,870 --> 00:51:30,800 >> Og svo hvað C er að gera fyrir us-- konar vegna þess að við sagt það to-- 1064 00:51:30,800 --> 00:51:32,600 er stýft að tölu. 1065 00:51:32,600 --> 00:51:40,540 Það tekur gildi, sem aftur er átti að vera eitthvað eins og 0.1000, 1066 00:51:40,540 --> 00:51:41,800 0 og svo framvegis. 1067 00:51:41,800 --> 00:51:45,320 Og það er stýft allt eftir kommu 1068 00:51:45,320 --> 00:51:47,510 þannig að þetta allt efni, vegna þess að það er ekki 1069 00:51:47,510 --> 00:51:51,910 passa í hugmyndinni um heiltala, sem er bara tala eins og neikvætt 1, 0, 1, 1070 00:51:51,910 --> 00:51:55,830 upp og niður, kastar það burt allt eftir kommu vegna þess að þú 1071 00:51:55,830 --> 00:51:59,020 getur ekki passa Komma í heiltölu samkvæmt skilgreiningu. 1072 00:51:59,020 --> 00:52:01,290 >> Svo svarið hér er núll. 1073 00:52:01,290 --> 00:52:02,600 Svo hvernig gera við lagað þetta? 1074 00:52:02,600 --> 00:52:04,400 Við þurfum aðra lausn allt saman. 1075 00:52:04,400 --> 00:52:06,880 Og við getum gert þetta, eins og hér segir. 1076 00:52:06,880 --> 00:52:12,820 >> Leyfðu mér að fara á undan og búa til nýja skrá, þetta heitir floats.c. 1077 00:52:12,820 --> 00:52:16,500 Og vista það hér í Sama skrá, float.c. 1078 00:52:16,500 --> 00:52:19,360 1079 00:52:19,360 --> 00:52:23,260 Og láta mig fara á undan og afrita sumir af þeim kóða frá fyrr. 1080 00:52:23,260 --> 00:52:27,690 >> En í stað þess að fá int, við skulum gera þetta. 1081 00:52:27,690 --> 00:52:31,037 Gefðu mér fleytitölu gildi heitir x. þar sem fleytitölu 1082 00:52:31,037 --> 00:52:33,370 gildi er bara bókstaflega eitthvað með fleytitölu. 1083 00:52:33,370 --> 00:52:34,410 Það er hægt að færa til vinstri, til hægri. 1084 00:52:34,410 --> 00:52:35,530 Það er rauntala. 1085 00:52:35,530 --> 00:52:38,050 >> Og láta mig hringja ekki fá int, en fá fljóta, 1086 00:52:38,050 --> 00:52:41,420 sem einnig var meðal matseðlinum af valkostum í C250 safninu. 1087 00:52:41,420 --> 00:52:43,220 Við skulum breyta y til að fljóta. 1088 00:52:43,220 --> 00:52:45,000 Svo verður þetta fá fljóta. 1089 00:52:45,000 --> 00:52:47,620 >> Og nú, við viljum ekki að stinga í ints. 1090 00:52:47,620 --> 00:52:53,130 Það kemur í ljós að við þurfum að nota prósent F fyrir fljóta, prósent F fyrir fljóta, 1091 00:52:53,130 --> 00:52:54,560 og nú vista það. 1092 00:52:54,560 --> 00:53:01,220 Og nú, krossleggja fingur, gera fljóta, gott, punktur rista fljóta. 1093 00:53:01,220 --> 00:53:04,280 x er að fara að vera einn 1. Y Er að fara að vera 10 aftur. 1094 00:53:04,280 --> 00:53:08,240 >> Og gott, OK mín viðbót er rétt. 1095 00:53:08,240 --> 00:53:10,240 Ég var að vonast til að fá meiri, en ég gleymdi að skrifa það. 1096 00:53:10,240 --> 00:53:13,250 Svo skulum við fara og laga þessa rökrétt villa. 1097 00:53:13,250 --> 00:53:16,280 >> Við skulum fara á undan og grípa eftirfarandi. 1098 00:53:16,280 --> 00:53:18,080 Við verðum bara að gera smá afrita og líma. 1099 00:53:18,080 --> 00:53:20,080 Og ég ætla að segja mínus. 1100 00:53:20,080 --> 00:53:21,890 >> Og ég ætla að segja sinnum. 1101 00:53:21,890 --> 00:53:24,060 Og ég ætla að segja skipt. 1102 00:53:24,060 --> 00:53:28,240 Og ég ætla ekki að gera modulo, sem er ekki eins germane hér, 1103 00:53:28,240 --> 00:53:33,690 deilt með f, og oft plus-- OK, við skulum gera þetta aftur. 1104 00:53:33,690 --> 00:53:44,210 >> Gera fljóta, punktur rista fljóta, og 1, 10, and-- gott, nei, OK. 1105 00:53:44,210 --> 00:53:45,250 Þannig að ég er hálfviti. 1106 00:53:45,250 --> 00:53:47,000 Svo er þetta mjög algengt í tölvunarfræði 1107 00:53:47,000 --> 00:53:49,780 að gera heimskur mistök eins og þetta. 1108 00:53:49,780 --> 00:53:53,100 >> Fyrir kennslufræðilegum tilgangi, það sem ég vildi virkilega að gera 1109 00:53:53,100 --> 00:53:57,410 var breytt vísindi hér að plús, mínus, að stundum, 1110 00:53:57,410 --> 00:54:01,140 og að skipta, eins og þú vonandi eftir á þessari æfingu. 1111 00:54:01,140 --> 00:54:04,700 Svo nú skulum koma aftur saman á þessu program, gera punktur rista fljóta. 1112 00:54:04,700 --> 00:54:07,950 >> Og í þriðja sinn, við skulum sjá hvort það uppfyllir væntingar mínar. 1113 00:54:07,950 --> 00:54:21,480 1, 10, slá, já, OK, 1.000, deilt með 10.000, er 0,100000. 1114 00:54:21,480 --> 00:54:24,952 Og það kemur í ljós að við getum stjórnað hversu margar Tölurnar eru eftir þeim aukastöfum. 1115 00:54:24,952 --> 00:54:25,660 Við munum raun. 1116 00:54:25,660 --> 00:54:26,790 Við munum koma aftur að því. 1117 00:54:26,790 --> 00:54:28,440 >> En nú, í raun, stærðfræði er rétt. 1118 00:54:28,440 --> 00:54:30,090 Svo aftur, hvað er takeaway hér? 1119 00:54:30,090 --> 00:54:33,050 Það kemur í ljós að í C, eru ekki aðeins bara strings-- og, í raun, 1120 00:54:33,050 --> 00:54:36,120 Það eru í raun ekki, vegna þess að við bæta þeim við CS50 bókasafn. 1121 00:54:36,120 --> 00:54:37,710 En það eru ekki bara ints. 1122 00:54:37,710 --> 00:54:38,990 >> Það eru einnig flýtur. 1123 00:54:38,990 --> 00:54:42,810 Og það kemur í ljós fullt af öðrum gögnum tegundir líka, að við munum nota fyrir löngu. 1124 00:54:42,810 --> 00:54:46,270 Skrúfjárn út ef þú vilt einn eðli, ekki a band af stöfum, 1125 00:54:46,270 --> 00:54:47,610 þú getur notað bara bleikju. 1126 00:54:47,610 --> 00:54:52,350 >> Kemur í ljós að ef þú vilt bool, a Boolean gildi, satt eða bara rangar, 1127 00:54:52,350 --> 00:54:56,840 takk fyrir CS50 bókasafn, höfum við bætt C í bool gögn tegund eins og heilbrigður. 1128 00:54:56,840 --> 00:54:59,180 En það er einnig til staðar í mörg önnur tungumál eins og heilbrigður. 1129 00:54:59,180 --> 00:55:04,130 Og það kemur í ljós að stundum þarf stærri tölur þá koma sjálfgefið 1130 00:55:04,130 --> 00:55:05,210 með ints og flotum. 1131 00:55:05,210 --> 00:55:10,590 >> Og í raun, tvöfaldur er fjöldi sem notar ekki 32 bita, en 64 bita. 1132 00:55:10,590 --> 00:55:14,990 Og lengi lengi er tala sem notar ekki 32, bitar en 64 bitar, 1133 00:55:14,990 --> 00:55:19,190 hver um sig, fyrir fleytitölu gildi og heiltölur, í sömu röð. 1134 00:55:19,190 --> 00:55:22,780 Svo skulum reyndar nú sjá þetta í aðgerð. 1135 00:55:22,780 --> 00:55:26,150 >> Ég ætla að fara á undan hér og svipa upp eitt annað forrit. 1136 00:55:26,150 --> 00:55:32,020 Hér ætla ég að fara á undan og ekki eru cs50.h. 1137 00:55:32,020 --> 00:55:34,910 Og láta mig fara, eru stöðluð IO.h. 1138 00:55:34,910 --> 00:55:37,320 >> Og þú munt taka eitthvað angurvær er að gerast hér. 1139 00:55:37,320 --> 00:55:40,592 Það er ekki lit erfðaskrá hlutina í á sama hátt og það gerði áður. 1140 00:55:40,592 --> 00:55:43,550 Og það kemur í ljós, það er vegna þess að ég hafa ekki gefið Málið skráarheiti. 1141 00:55:43,550 --> 00:55:47,270 >> Ég ætla að hringja í þetta einn sizeof.c, og högg Vista. 1142 00:55:47,270 --> 00:55:51,039 Og taka eftir hvað gerist minn mjög hvítt númer gegn því svarta bakgrunn. 1143 00:55:51,039 --> 00:55:52,830 Nú, að minnsta kosti er það sumir fjólublátt þar. 1144 00:55:52,830 --> 00:55:54,490 Og það er setningafræði hápunktur. 1145 00:55:54,490 --> 00:55:57,700 >> Það er vegna þess, einfaldlega, hef ég sagði IDE hvaða tegund af skrá 1146 00:55:57,700 --> 00:56:01,060 það er með því að gefa það a nafn, og sérstaklega skrá eftirnafn. 1147 00:56:01,060 --> 00:56:03,620 Nú, við skulum fara á undan og gera þetta. 1148 00:56:03,620 --> 00:56:08,910 Ég ætla að fara á undan og mjög einfaldlega prenta út following-- bool 1149 00:56:08,910 --> 00:56:11,080 er prósent LU. 1150 00:56:11,080 --> 00:56:12,950 >> Við munum koma aftur til sem í bara smá stund. 1151 00:56:12,950 --> 00:56:15,840 Og þá er ég að fara að prenta stærð bool. 1152 00:56:15,840 --> 00:56:18,170 Og nú, bara til að spara sjálfur nokkurn tíma, ég er 1153 00:56:18,170 --> 00:56:20,280 að fara að gera í heild fullt af þeim í einu. 1154 00:56:20,280 --> 00:56:24,620 Og, sérstaklega, ég ætla að breyta því í bleikju og bleikju. 1155 00:56:24,620 --> 00:56:27,760 Þetta eitt, ég ætla að breyta að tvöfalda og tvöfalda. 1156 00:56:27,760 --> 00:56:31,440 >> Þetta eitt, ég ætla að breyta að flotholt og fljóta. 1157 00:56:31,440 --> 00:56:35,670 Þetta eitt, ég ætla að breyting á int og int. 1158 00:56:35,670 --> 00:56:38,660 Og þetta, ég ætla til að skipta yfir lengi lengi. 1159 00:56:38,660 --> 00:56:40,840 Og það er enn að taka löngu, lengi lengi. 1160 00:56:40,840 --> 00:56:44,572 >> Og þá loks, ég gaf sjálfur einn of margir, band. 1161 00:56:44,572 --> 00:56:47,030 Það kemur í ljós að í C, það er sérstaka rekstraraðili heitir 1162 00:56:47,030 --> 00:56:50,260 Stærð sem er bókstaflega að fara að, þegar hlaupa, 1163 00:56:50,260 --> 00:56:52,099 segja okkur stærð hver af þessum breytum. 1164 00:56:52,099 --> 00:56:53,890 Og þetta er leið, nú, við getum tengst baka 1165 00:56:53,890 --> 00:56:57,140 til umræðu í síðustu viku gagna og framsetning. 1166 00:56:57,140 --> 00:57:00,330 >> Leyfðu mér að fara á undan og taka saman Stærð punktur slash stærð. 1167 00:57:00,330 --> 00:57:01,210 Og við skulum sjá. 1168 00:57:01,210 --> 00:57:05,210 Það kemur í ljós að í C, sérstaklega á CS50 IDE, 1169 00:57:05,210 --> 00:57:08,170 sérstaklega á stýrikerfi Ubuntu, 1170 00:57:08,170 --> 00:57:11,100 sem er 64-bita stýrikerfi kerfi í þessu tilfelli, 1171 00:57:11,100 --> 00:57:14,189 a bool er að fara að nota eitt bæti af plássi. 1172 00:57:14,189 --> 00:57:16,480 Það er hvernig stærð er mæld, ekki í bita, en í bæti. 1173 00:57:16,480 --> 00:57:18,690 Og muna að eitt bæti er átta bita. 1174 00:57:18,690 --> 00:57:22,030 Svo bool, jafnvel þó að þú tæknilega þarf aðeins 0 eða 1, 1175 00:57:22,030 --> 00:57:24,092 það er lítið eyðslusamur hvernig við höfum innleitt hana. 1176 00:57:24,092 --> 00:57:26,800 Það er í raun að fara að nota heild byte-- svo allir núll, eru kannski 1177 00:57:26,800 --> 00:57:31,050 allt sjálfur, eða eitthvað svoleiðis, eða bara einn 1 meðal átta bitum. 1178 00:57:31,050 --> 00:57:34,962 >> A bleikju, á meðan, er notað fyrir staf eins og ASCII staf á síðustu viku, 1179 00:57:34,962 --> 00:57:36,170 er að fara að vera einn staf. 1180 00:57:36,170 --> 00:57:42,340 Og það synchs upp með hugmynd okkar það að vera ekki meira en 256 bits-- frekar, 1181 00:57:42,340 --> 00:57:45,360 synchs upp með það að vera ekki lengur en 8 bitar, sem 1182 00:57:45,360 --> 00:57:47,450 gefur okkur eins og margir eins 256 gildum. 1183 00:57:47,450 --> 00:57:49,680 A tvöfaldur er að fara að vera 8 bytes eða 64 bita. 1184 00:57:49,680 --> 00:57:50,510 >> A fljóta er 4. 1185 00:57:50,510 --> 00:57:51,690 Int er 4. 1186 00:57:51,690 --> 00:57:52,980 A langur, langur er 8. 1187 00:57:52,980 --> 00:57:54,716 Og band er 8. 1188 00:57:54,716 --> 00:57:55,840 En ekki hafa áhyggjur óður í það. 1189 00:57:55,840 --> 00:57:57,340 Við erum að fara að afhýða aftur þetta lag. 1190 00:57:57,340 --> 00:57:59,940 Það kemur í ljós, strengir getur vera lengri en 8 bæti. 1191 00:57:59,940 --> 00:58:02,310 >> Og reyndar höfum við skrifað strengir þegar, halló heimur, 1192 00:58:02,310 --> 00:58:03,700 lengur en 8 bæti. 1193 00:58:03,700 --> 00:58:06,270 En við munum koma aftur til sem í bara smá stund. 1194 00:58:06,270 --> 00:58:09,690 En taka burt hér er eftirfarandi. 1195 00:58:09,690 --> 00:58:15,320 >> Sérhver tölva hefur aðeins endanlegt magn af minni og pláss. 1196 00:58:15,320 --> 00:58:17,860 Þú getur aðeins geymt svo margir skrár á Mac eða PC. 1197 00:58:17,860 --> 00:58:23,030 Þú getur aðeins geymt svo mörg forrit í RAM í gangi í einu, endilega, jafnvel 1198 00:58:23,030 --> 00:58:26,360 með sýndarminni, því þú hefur endanlegt magn af RAM. 1199 00:58:26,360 --> 00:58:28,990 >> Og bara til að picture-- ef þú hefur aldrei opnað fartölvuna 1200 00:58:28,990 --> 00:58:31,300 eða panta auka minni fyrir tölvu, þú 1201 00:58:31,300 --> 00:58:33,670 gæti ekki vita að inni á tölvunni þinni 1202 00:58:33,670 --> 00:58:36,590 er eitthvað sem lítur svolítið eins og þetta. 1203 00:58:36,590 --> 00:58:40,540 Svo er þetta bara algengt fyrirtæki sem heitir Crucial sem gerir RAM fyrir tölvur. 1204 00:58:40,540 --> 00:58:43,620 Og RAM er þar forrit lifa á meðan þeir eru að keyra. 1205 00:58:43,620 --> 00:58:46,630 >> Svo á hverjum Mac eða PC, þegar þú tvöfaldur smelltu á áætlun, og það opnar upp, 1206 00:58:46,630 --> 00:58:48,921 og það opnar einhverja Word skjal eða eitthvað svoleiðis, 1207 00:58:48,921 --> 00:58:51,764 það geymir það tímabundið í RAM, því RAM er hraðar 1208 00:58:51,764 --> 00:58:53,680 en harða diskinn þinn eða storkuhamur þinn diskur. 1209 00:58:53,680 --> 00:58:56,600 Svo það er bara hvar forrit fara að lifa þegar þeir eru að keyra, 1210 00:58:56,600 --> 00:58:58,060 eða þegar skrár eru notuð. 1211 00:58:58,060 --> 00:59:00,890 >> Svo þú ert hluti sem líta svona inni á fartölvu, 1212 00:59:00,890 --> 00:59:03,320 eða örlítið stærri hluti inni skjáborðinu þínu. 1213 00:59:03,320 --> 00:59:07,440 En lykillinn er að þú verður aðeins tímabundið fjöldi af þessum hlutum. 1214 00:59:07,440 --> 00:59:11,230 Og það er bara endanlegt magn af vélbúnaður situr á þessum borðinu rétt 1215 00:59:11,230 --> 00:59:11,730 hér. 1216 00:59:11,730 --> 00:59:15,920 >> Svo, vissulega, við getum ekki geymt óendanlega langur tölur. 1217 00:59:15,920 --> 00:59:19,030 Og enn, ef þú hugsa til baka til grunnskóla, hversu margir tölustafir getur 1218 00:59:19,030 --> 00:59:21,400 þú þarft að hægri á kommu? 1219 00:59:21,400 --> 00:59:24,680 Fyrir þessi efni, hversu margir tölustafir getur þú þarft að vinstri á kommu? 1220 00:59:24,680 --> 00:59:26,300 Really, óendanlega margar. 1221 00:59:26,300 --> 00:59:30,840 >> Nú, við mennirnir gætu aðeins vita hvernig á að bera milljónir, 1222 00:59:30,840 --> 00:59:34,990 og milljarða, trilljón, og billjarða og quintillion. 1223 00:59:34,990 --> 00:59:39,370 Og ég er að þrýsta á takmörk mín understanding-- eða my-- ég skil 1224 00:59:39,370 --> 00:59:41,110 tölur, en minn framburður tölum. 1225 00:59:41,110 --> 00:59:44,720 En þeir geta fengið óendanlega stór með óendanlega margir Tölunum vinstra megin 1226 00:59:44,720 --> 00:59:47,050 eða til hægri kommu. 1227 00:59:47,050 --> 00:59:50,040 >> En tölvur hafa aðeins endanlegt magn af minni, 1228 00:59:50,040 --> 00:59:53,510 endanlegt fjöldi smára, a tímabundið fjöldi ljósaperur inni. 1229 00:59:53,510 --> 00:59:57,350 Svo gerist það þegar þú keyrir út af plássi? 1230 00:59:57,350 --> 00:59:59,620 Með öðrum orðum, ef þú hugsa til baka til síðustu viku 1231 00:59:59,620 --> 01:00:03,160 þegar við ræddum um tölur sig vera fulltrúa í tvöfaldur, 1232 01:00:03,160 --> 01:00:05,480 ráð fyrir að við höfum fengið þetta 8-bita gildi hér. 1233 01:00:05,480 --> 01:00:08,290 >> Og við höfum sjö 1 og einn 0. 1234 01:00:08,290 --> 01:00:10,827 Og geri ráð fyrir að við viljum til að bæta 1 til þetta gildi. 1235 01:00:10,827 --> 01:00:12,410 Þetta er mjög stór tala núna. 1236 01:00:12,410 --> 01:00:16,610 >> Þetta er 254, ef ég man stærðfræði frá síðustu viku til hægri. 1237 01:00:16,610 --> 01:00:19,480 En hvað ef ég breyti sem lengst til hægri 0 til 1? 1238 01:00:19,480 --> 01:00:22,800 Í heil tala, af Auðvitað verður átta 1 er. 1239 01:00:22,800 --> 01:00:24,050 Þannig að við erum enn góðar. 1240 01:00:24,050 --> 01:00:27,204 >> Og það líklega táknar 255, þó að allt eftir samhengi 1241 01:00:27,204 --> 01:00:29,120 það gæti í raun tákna neikvæð tala. 1242 01:00:29,120 --> 01:00:31,240 En meira um það seinna. 1243 01:00:31,240 --> 01:00:34,220 Þetta er eins og það er um eins hátt og ég get treyst. 1244 01:00:34,220 --> 01:00:35,290 >> Nú, það er aðeins 8 bita. 1245 01:00:35,290 --> 01:00:38,170 Og Mac minn, örugglega, er leið meira en 8 bitar af minni. 1246 01:00:38,170 --> 01:00:39,170 En það þýðir að hafa endanlegt. 1247 01:00:39,170 --> 01:00:43,230 Svo sömu rök gildir, jafnvel þótt við hafa meira af þessum sjálfur á skjánum. 1248 01:00:43,230 --> 01:00:47,020 >> En hvað gerist ef þú ert geyma þetta númer, 255, 1249 01:00:47,020 --> 01:00:49,290 og þú vilt að telja 1 bita hærri? 1250 01:00:49,290 --> 01:00:51,600 Þú vilt fara úr 255 í 256. 1251 01:00:51,600 --> 01:00:55,800 Vandamálið er auðvitað, er að ef þú byrja að telja á núlli eins og í síðustu viku, 1252 01:00:55,800 --> 01:00:59,670 þú getur ekki treyst eins hátt eins 256, hvað þá 257, 1253 01:00:59,670 --> 01:01:02,584 hvað þá 258, m því hvað gerist þegar þú bætir við 1? 1254 01:01:02,584 --> 01:01:05,000 Ef þú gerir gamla grunnskóla nálgun, þú setja 1 hér, 1255 01:01:05,000 --> 01:01:08,150 og þá er 1 plús 1 2, en það er í raun núll, bera þig 1, 1256 01:01:08,150 --> 01:01:09,695 bera 1, bera 1. 1257 01:01:09,695 --> 01:01:12,620 Öllum þessum hlutum, þessi 1 er, fara á núll. 1258 01:01:12,620 --> 01:01:17,820 Og þú vindur upp, já, eins og einhver benti á 1 á vinstri hönd. 1259 01:01:17,820 --> 01:01:22,540 En allt sem þú getur í raun sjá og passa í minni 1260 01:01:22,540 --> 01:01:27,960 er bara átta 0, sem er að segja á einhverjum tímapunkti ef þú, tölvu, 1261 01:01:27,960 --> 01:01:32,490 reyndi að telja nógu hátt upp, ert þú að fara að vefja í kring, það virðist, 1262 01:01:32,490 --> 01:01:35,850 núlli, eða kannski jafnvel neikvæð tölur, sem eru jafnvel lægri en núll. 1263 01:01:35,850 --> 01:01:37,260 >> Og við getum konar sjá þetta. 1264 01:01:37,260 --> 01:01:39,900 Leyfðu mér að fara á undan og skrifa a raunverulegur fljótur program hér. 1265 01:01:39,900 --> 01:01:43,690 Leyfðu mér að fara á undan og skrifa forrit sem heitir Yfirfall. 1266 01:01:43,690 --> 01:01:49,980 Fela CS50.h, ma staðall IO.h-- ó, 1267 01:01:49,980 --> 01:01:51,730 Ég missti í raun setningafræði auðkenning mín. 1268 01:01:51,730 --> 01:01:54,440 Svo skulum spara þetta sem overflow.c. 1269 01:01:54,440 --> 01:01:57,084 >> Og nú int helstu void-- og áður en langt, munum við 1270 01:01:57,084 --> 01:01:59,500 koma aftur til að útskýra hvers vegna við höldum að skrifa int helstu ógilt. 1271 01:01:59,500 --> 01:02:02,080 En nú, við skulum gera bara það, að taka það sem sjálfsagðan hlut. 1272 01:02:02,080 --> 01:02:06,200 Við skulum gefa mér int, og frumstilla hana 0. 1273 01:02:06,200 --> 01:02:11,716 >> Við skulum þá gera int ég fá zero-- reyndar, við skulum gera óendanlega lykkju 1274 01:02:11,716 --> 01:02:12,590 og sjá hvað gerist. 1275 01:02:12,590 --> 01:02:22,440 En satt, þá skulum prenta út n er prósent i, sviga n, stinga í n. 1276 01:02:22,440 --> 01:02:27,200 En nú, við skulum gera n fær n plús 1. 1277 01:02:27,200 --> 01:02:29,660 >> Svo í öðrum orðum, á hverju endurtekning þessarar óendanlega lykkju, 1278 01:02:29,660 --> 01:02:32,550 við skulum taka gildi n er, og bæta 1 við það, og þá 1279 01:02:32,550 --> 01:02:34,350 geyma niðurstöðu aftur í n á vinstri. 1280 01:02:34,350 --> 01:02:37,150 Og í raun, við höfum séð setningafræði örlítið eins og þetta, í stuttu máli. 1281 01:02:37,150 --> 01:02:39,730 A kaldur bragð er staðinn skrifa allt þetta út, 1282 01:02:39,730 --> 01:02:42,770 þú getur í raun segja að n plús jafngildir 1. 1283 01:02:42,770 --> 01:02:47,480 >> Eða ef þú vilt virkilega að vera fínt, þú getur sagt n plús plús hálf-hreinsun. 1284 01:02:47,480 --> 01:02:50,130 En þessir síðarnefndu tveir eru bara hvað við myndum kalla nokkur dæmi um setningarleg sykur 1285 01:02:50,130 --> 01:02:50,790 í fyrsta hlutur. 1286 01:02:50,790 --> 01:02:53,456 >> The fyrstur hlutur er skýr, algerlega fínn, algerlega rétt. 1287 01:02:53,456 --> 01:02:55,470 En þetta er algengara, ég segi. 1288 01:02:55,470 --> 01:02:57,210 Þannig að við munum gera þetta fyrir réttlátur a augnablik. 1289 01:02:57,210 --> 01:03:01,685 >> Við skulum gera nú flæða, sem hljómar frekar líkur, punktur rista flæða. 1290 01:03:01,685 --> 01:03:04,380 1291 01:03:04,380 --> 01:03:09,852 Við skulum sjá, n er að fá ansi stór. 1292 01:03:09,852 --> 01:03:11,310 En við skulum hugsa, hversu stór getur n að fá? 1293 01:03:11,310 --> 01:03:12,870 >> n er int. 1294 01:03:12,870 --> 01:03:16,400 Við sáum áðan með stærð dæmi sem int er fjögur bæti. 1295 01:03:16,400 --> 01:03:22,070 Við vitum frá síðustu viku, fjögur bæti er 32 bita, vegna 8 sinnum 4, sem er 32. 1296 01:03:22,070 --> 01:03:23,460 Það er að fara að vera 4 milljarðar króna. 1297 01:03:23,460 --> 01:03:25,802 >> Og við erum upp til 800.000. 1298 01:03:25,802 --> 01:03:28,510 Þetta er að fara að taka að eilífu til telja eins hátt og ég mögulega get. 1299 01:03:28,510 --> 01:03:30,635 Þannig að ég ætla að fara á undan, Eins og þú might áður en langt, 1300 01:03:30,635 --> 01:03:34,910 og lemja Control C-- hreinskilnislega, Control C, a einhver fjöldi, þar Control C yfirleitt 1301 01:03:34,910 --> 01:03:36,034 þýðir að hætta. 1302 01:03:36,034 --> 01:03:38,200 Því miður, vegna þess að þetta er í gangi í skýinu, 1303 01:03:38,200 --> 01:03:41,190 Stundum er ský spúandi svo mikið efni, 1304 01:03:41,190 --> 01:03:44,180 svo mikið framleiðsla, það er að fara að taka smá stund fyrir hjálpina mína 1305 01:03:44,180 --> 01:03:45,630 til að komast að ský. 1306 01:03:45,630 --> 01:03:49,240 Svo jafnvel þótt ég lenti Control C nokkrar sekúndur síðan, 1307 01:03:49,240 --> 01:03:53,110 þetta er örugglega hlið Áhrif óendanlega lykkju. 1308 01:03:53,110 --> 01:03:56,070 >> Og svo í slíkum tilvikum, við erum að fara að yfirgefa það vera. 1309 01:03:56,070 --> 01:03:59,050 Og við erum að fara að bæta við öðru endastöðvar hérna 1310 01:03:59,050 --> 01:04:03,186 með plús, sem er auðvitað ekki svona, þar sem það er enn að hugsa. 1311 01:04:03,186 --> 01:04:05,310 Og við skulum fara á undan og vera svolítið meira sanngjarnt. 1312 01:04:05,310 --> 01:04:07,768 >> Ég ætla að fara á undan og gera Þetta bara endanlegum oft. 1313 01:04:07,768 --> 01:04:10,047 Við skulum nota fyrir lykkju, sem ég vísaði til áðan. 1314 01:04:10,047 --> 01:04:10,630 Gerum þetta. 1315 01:04:10,630 --> 01:04:13,430 Gefðu mér annan breytilegan int i fær 0. 1316 01:04:13,430 --> 01:04:17,430 Ég er minna en, segjum, 64 ég ++. 1317 01:04:17,430 --> 01:04:24,010 Og nú langar mig að fara á undan og prenta út n er prósent i, komma n. 1318 01:04:24,010 --> 01:04:27,547 Og þá n- þetta er samt að fara að taka að eilífu. 1319 01:04:27,547 --> 01:04:28,130 Gerum þetta. 1320 01:04:28,130 --> 01:04:30,620 >> n fær n sinnum 2. 1321 01:04:30,620 --> 01:04:34,140 Eða við gætum verið fínt og gera oft jafngildir 2. 1322 01:04:34,140 --> 01:04:37,120 En við skulum bara segja n jafngildir sjálft, sinnum 2. 1323 01:04:37,120 --> 01:04:39,321 Með öðrum orðum, í þessu Ný útgáfa af forritinu, 1324 01:04:39,321 --> 01:04:41,820 Ég vil ekki að bíða að eilífu frá eins 800.000 4 milljarða. 1325 01:04:41,820 --> 01:04:43,070 Við skulum bara fá þetta aftur með. 1326 01:04:43,070 --> 01:04:44,920 >> Við skulum tvöfalda reyndar n í hvert skipti. 1327 01:04:44,920 --> 01:04:47,660 Sem muna, tvöföldun er andstæða hafa, að sjálfsögðu. 1328 01:04:47,660 --> 01:04:50,035 En þar síðustu viku sem við höfum eitthvað aftur og aftur, 1329 01:04:50,035 --> 01:04:52,200 og aftur, frábær fljótur, Tvöföldun mun vafalaust 1330 01:04:52,200 --> 01:04:58,080 fá okkur frá 1 til stærsta mögulegt gildi sem við getum treyst til með int. 1331 01:04:58,080 --> 01:04:59,750 >> Svo skulum gera einmitt þetta. 1332 01:04:59,750 --> 01:05:01,720 Og við munum koma aftur til þetta áður en langur. 1333 01:05:01,720 --> 01:05:04,180 En þetta, aftur, er bara eins og að endurtaka blokk í grunni. 1334 01:05:04,180 --> 01:05:05,600 Og þú munt nota þetta fyrir löngu. 1335 01:05:05,600 --> 01:05:10,170 >> Þetta þýðir bara telja frá núlli upp til, en ekki jafn, 64. 1336 01:05:10,170 --> 01:05:14,285 Og á hverri ítrun þetta lykkja, bara halda incrementing i. 1337 01:05:14,285 --> 01:05:18,990 Svo ég ++ - og þetta almenna reisa á línu 7 er bara frábær algeng leið 1338 01:05:18,990 --> 01:05:22,290 endurtaka nokkrar línur af númer, sumir tala af sinnum. 1339 01:05:22,290 --> 01:05:23,362 Hvaða línur af kóða? 1340 01:05:23,362 --> 01:05:25,570 Þessar hrokkið axlabönd, eins og þú kann að hafa tína ax frá nú, 1341 01:05:25,570 --> 01:05:26,780 þýðir, að gera eftirfarandi. 1342 01:05:26,780 --> 01:05:29,510 >> Það er í eins grunni, þegar það hefur gulu blokkir 1343 01:05:29,510 --> 01:05:32,680 og aðrir litir sem eins konar faðma eða knúsa aðrar blokkir. 1344 01:05:32,680 --> 01:05:34,750 Það er það sem þessi hrokkið axlabönd eru að gera hér. 1345 01:05:34,750 --> 01:05:40,200 Þannig að ef ég fékk setningafræði minn right-- þig Hægt er að sjá gulrót tákn í C hætti 1346 01:05:40,200 --> 01:05:42,706 það er hversu oft ég var að reyna að leysa þetta vandamál. 1347 01:05:42,706 --> 01:05:45,330 Svo skulum losna við þessi einu að öllu leyti, og loka þessi gluggi. 1348 01:05:45,330 --> 01:05:46,520 Og við munum nota nýjan. 1349 01:05:46,520 --> 01:05:51,980 Gera flæða, punktur rista flæða, Enter, allt í lagi, 1350 01:05:51,980 --> 01:05:53,090 það lítur illa í fyrstu. 1351 01:05:53,090 --> 01:05:56,200 En við skulum fletta aftur í tímann, vegna þess að ég gerði þetta 64 sinnum. 1352 01:05:56,200 --> 01:05:58,700 >> Og taka í fyrsta skipti, n er 1. 1353 01:05:58,700 --> 01:06:03,110 Í öðru lagi tími, n er 2, þá 4, síðan 8, þá 16. 1354 01:06:03,110 --> 01:06:09,450 Og það virðist að um leið og Ég fæ að u.þ.b. 1 milljarður, 1355 01:06:09,450 --> 01:06:12,800 ef ég tvöfalda hana aftur, það ætti að gefa mér 2 milljörðum. 1356 01:06:12,800 --> 01:06:14,980 En það kemur í ljós, það er rétt á cusp. 1357 01:06:14,980 --> 01:06:18,930 >> Og svo það yfirfullt raun int frá 1 milljarði 1358 01:06:18,930 --> 01:06:23,514 að u.þ.b. neikvæð 2 milljarða, vegna heiltala, 1359 01:06:23,514 --> 01:06:25,430 ólíkt tölurnar við voru gefnu síðustu viku, 1360 01:06:25,430 --> 01:06:28,397 getur verið bæði jákvæð og neikvæð í raun og í tölvu. 1361 01:06:28,397 --> 01:06:30,730 Og svo að minnsta kosti eitt af þeim bitar er í raun stolið. 1362 01:06:30,730 --> 01:06:34,190 Svo við í raun aðeins hafa 31 bita, eða 2 milljarða möguleg gildi. 1363 01:06:34,190 --> 01:06:38,220 >> En nú, takeaway er alveg einfaldlega eru hverjar þessar tölur 1364 01:06:38,220 --> 01:06:42,280 og hvað stærðfræði er, eitthvað slæmt gerist á endanum, 1365 01:06:42,280 --> 01:06:46,980 því að lokum að þú ert að reyna að permute bita eitt of mörgum sinnum. 1366 01:06:46,980 --> 01:06:51,060 Og þú ferð í raun frá öllum 1 er að kannski allt 0 er, eða kannski 1367 01:06:51,060 --> 01:06:54,260 bara einhver önnur mynstur sem það greinilega, allt eftir samhengi, 1368 01:06:54,260 --> 01:06:56,342 má túlka sem neikvæð tala. 1369 01:06:56,342 --> 01:06:59,300 Og svo það virðist hæsta I geta treyst í þessu tiltekna forriti 1370 01:06:59,300 --> 01:07:01,210 er aðeins um það bil 1 milljarður. 1371 01:07:01,210 --> 01:07:02,760 En það er algjör lausn hér. 1372 01:07:02,760 --> 01:07:03,480 Veistu hvað? 1373 01:07:03,480 --> 01:07:07,600 >> Leyfðu mér að skipta úr int til lengi lengi. 1374 01:07:07,600 --> 01:07:10,633 Og láta mig fara á undan hér og say-- ég ætla að hafa 1375 01:07:10,633 --> 01:07:12,290 að breyta þessu til óundirritaður lengi. 1376 01:07:12,290 --> 01:07:16,860 Eða, við skulum sjá, ég man aldrei sjálfur. 1377 01:07:16,860 --> 01:07:19,920 >> Við skulum fara á undan og gera flæða. 1378 01:07:19,920 --> 01:07:21,860 Nei, það er ekki það, LLD, þakka þér. 1379 01:07:21,860 --> 01:07:23,430 Svo stundum Clang getur verið gagnlegt. 1380 01:07:23,430 --> 01:07:27,550 Ég vissi ekki að muna hvað snið specifier var fyrir lengi lengi. 1381 01:07:27,550 --> 01:07:28,950 >> En reyndar, Clang sagði mér. 1382 01:07:28,950 --> 01:07:31,570 Grænn er einhvers konar gott, þýðir samt að þú gerðir mistök. 1383 01:07:31,570 --> 01:07:33,190 Það er giska að ég ætlaði LLD. 1384 01:07:33,190 --> 01:07:38,750 >> Svo láta mig taka það ráð, langur langur heiltala, vista það. 1385 01:07:38,750 --> 01:07:43,190 Og láta mig endursýning það, punktur rista flæða, Enter. 1386 01:07:43,190 --> 01:07:45,020 Og nú hvað er flott er þetta. 1387 01:07:45,020 --> 01:07:49,140 >> Ef ég skruna aftur í tímann, byrjum við enn telja á sama place-- 1, 2, 4, 1388 01:07:49,140 --> 01:07:50,220 8, 16. 1389 01:07:50,220 --> 01:07:54,860 Takið eftir, fáum við öll leið upp að 1 milljarð. 1390 01:07:54,860 --> 01:07:57,070 En þá fáum við örugglega til 2 milljarða. 1391 01:07:57,070 --> 01:08:01,300 >> Þá fáum við 4 milljarða, þá 8 milljarða, 17 milljarða. 1392 01:08:01,300 --> 01:08:03,340 Og við fara hærra, og hærra, og hærra. 1393 01:08:03,340 --> 01:08:05,740 Að lokum, þetta líka, hlé. 1394 01:08:05,740 --> 01:08:09,350 >> Að lokum, með lengi lengi, sem er 64-bita gildi, ekki 1395 01:08:09,350 --> 01:08:13,660 32-bita gildi, ef þú telja of hár, þú settir 0. 1396 01:08:13,660 --> 01:08:16,410 Og í þessu tilfelli, gerast við að endað með neikvæðri tölu. 1397 01:08:16,410 --> 01:08:17,550 >> Svo er þetta vandamál. 1398 01:08:17,550 --> 01:08:20,439 Og það kemur í ljós að þetta Vandamálið er ekki allt sem yfirnáttúrulegt. 1399 01:08:20,439 --> 01:08:23,060 Jafnvel þó að ég hef vísvitandi völdum það með þessum mistökum, 1400 01:08:23,060 --> 01:08:26,149 það kemur í ljós við sjáum það eins konar öllu kringum okkur, eða að minnsta kosti sumum af okkur að gera. 1401 01:08:26,149 --> 01:08:28,939 >> Svo í Lego Star Wars, ef þú hefur einhvern tíma spilað leikinn, 1402 01:08:28,939 --> 01:08:33,830 það kemur í ljós að þú getur farið í kring brjóta það upp í LEGO heiminum, 1403 01:08:33,830 --> 01:08:36,640 og safna mynt, fyrst og fremst. 1404 01:08:36,640 --> 01:08:39,200 Og ef þú hefur einhvern tíma spilað þessi leikur alltof mikill tími, 1405 01:08:39,200 --> 01:08:42,630 eins og þetta ónefndum einstakling hér gerði, heildarfjölda 1406 01:08:42,630 --> 01:08:46,700 af mynt sem þú getur safna er, það virðist, 4 milljarðar króna. 1407 01:08:46,700 --> 01:08:48,240 >> Nú, með það er í raun ávöl. 1408 01:08:48,240 --> 01:08:50,239 Svo LEGO var að reyna að halda hlutum notendavænt. 1409 01:08:50,239 --> 01:08:53,779 Þeir vildu ekki gera það nákvæmlega 2 til 32 máttur, á síðustu viku. 1410 01:08:53,779 --> 01:08:55,310 En 4 milljarða er ástæða. 1411 01:08:55,310 --> 01:08:58,979 Það virðist, byggt á þessum upplýsingum, það LEGO, og fyrirtæki sem 1412 01:08:58,979 --> 01:09:02,624 gerði þessa raunverulegt hugbúnað, ákvað að hámarksfjöldi mynt 1413 01:09:02,624 --> 01:09:04,540 notandi getur safnast er reyndar 4 milljarða, 1414 01:09:04,540 --> 01:09:12,069 vegna þess að þeir kusu í númerið þeirra að nota ekki lengi lengi, greinilega, 1415 01:09:12,069 --> 01:09:16,140 en bara heiltala, óundirritaður heiltala, aðeins jákvæð heiltala sem 1416 01:09:16,140 --> 01:09:18,089 max gildi er gróflega það. 1417 01:09:18,089 --> 01:09:19,380 Jæja, hér er annað fyndið einn. 1418 01:09:19,380 --> 01:09:23,500 Svo í leiknum Civilization, sem sumir af þú gætir verið kunnugt, með 1419 01:09:23,500 --> 01:09:26,660 það kemur í ljós að árum síðan var padda í þessum leik þar 1420 01:09:26,660 --> 01:09:28,750 ef þú spilað hlutverk um Gandhi í leiknum, 1421 01:09:28,750 --> 01:09:34,020 í stað þess að hann sé mjög pacifist, í staðinn var ótrúlega, ótrúlega 1422 01:09:34,020 --> 01:09:36,399 árásargjarn, í sumum tilvikum. 1423 01:09:36,399 --> 01:09:40,529 Einkum þann hátt að Civilization verk er að ef þú, leikmaður, 1424 01:09:40,529 --> 01:09:44,680 samþykkja lýðræði, þinn árásargirni skora fær 1425 01:09:44,680 --> 01:09:48,130 decremented af tveimur, svo mínus mínus, og síðan mínus mínus. 1426 01:09:48,130 --> 01:09:50,569 >> Svo þú draga 2 frá Raunveruleg iterating þitt. 1427 01:09:50,569 --> 01:09:56,650 Því miður, ef iterating er upphaflega 1, og þú draga 2 frá henni 1428 01:09:56,650 --> 01:09:59,050 eftir upptöku lýðræði sem Gandhi hér gæti 1429 01:09:59,050 --> 01:10:02,200 hafa gert, vegna þess að hann var mjög passive-- 1 á mælikvarða árásargirni. 1430 01:10:02,200 --> 01:10:04,830 En ef hann samþykkir lýðræði, þá hann fer frá 1 til neikvæðrar 1. 1431 01:10:04,830 --> 01:10:11,470 >> Því miður, þeir voru nota óundirritaður tölur, 1432 01:10:11,470 --> 01:10:15,400 sem þýðir að þeir sem fengu jafnvel neikvæð tölur eins og þeir voru jákvæðir. 1433 01:10:15,400 --> 01:10:19,780 Og það kemur í ljós að jákvæð ígildi neikvæð 1, 1434 01:10:19,780 --> 01:10:23,480 í dæmigerðum tölvuforrit, er 255. 1435 01:10:23,480 --> 01:10:27,250 Svo ef Gandhi tekur lýðræði hefur og því 1436 01:10:27,250 --> 01:10:32,470 árásargirni skora hans minnkað, það rúlla í raun í kringum til 255 1437 01:10:32,470 --> 01:10:35,470 og gerir hann mest árásargjarn eðli í leiknum. 1438 01:10:35,470 --> 01:10:36,930 Svo þú getur google upp á þetta. 1439 01:10:36,930 --> 01:10:39,380 Og það var reyndar að slysni forritun galla, 1440 01:10:39,380 --> 01:10:43,010 en það er slegið nokkuð Þekkt síðan. 1441 01:10:43,010 --> 01:10:44,360 >> Það er allt skemmtilegt og sætur. 1442 01:10:44,360 --> 01:10:47,760 Meira ógnvekjandi er þegar raunverulegur Real World tæki, og ekki leikur, 1443 01:10:47,760 --> 01:10:48,820 hafa þessar sömu galla. 1444 01:10:48,820 --> 01:10:54,500 Í raun, bara ári síðan grein kom út um Boeing 787 Dreamliner. 1445 01:10:54,500 --> 01:10:56,850 >> Og greinin fyrst litið les smá Bogagöng. 1446 01:10:56,850 --> 01:11:01,480 En það sagði þetta, a hugbúnaður varnarleysi í Boeing 1447 01:11:01,480 --> 01:11:04,790 Ný 787 Dreamliner þota hefur hugsanlega að valda flugmenn 1448 01:11:04,790 --> 01:11:07,220 að missa stjórn á loftfarið, hugsanlega 1449 01:11:07,220 --> 01:11:11,750 í miðju flugi, FAA embættismenn varaði flugfélög nýlega. 1450 01:11:11,750 --> 01:11:14,520 Það var ákvörðun sem líkan 787 1451 01:11:14,520 --> 01:11:19,770 flugvél sem hefur verið knúið samfellt í 248 daga 1452 01:11:19,770 --> 01:11:24,880 getur tapað öllum riðstraum, AC, rafmagn vegna þess að rafall 1453 01:11:24,880 --> 01:11:28,892 stjórna einingar, GCUs, samtímis að fara í ekki öruggur háttur. 1454 01:11:28,892 --> 01:11:29,850 Það er góður af að tapa mér. 1455 01:11:29,850 --> 01:11:35,390 En orðsending fram, OK, nú fékk ég það, ástand stafaði af hugbúnaði 1456 01:11:35,390 --> 01:11:38,590 gegn innri til rafall stjórn 1457 01:11:38,590 --> 01:11:44,860 einingar sem mun flæða eftir 248 dagar samfellt völd. 1458 01:11:44,860 --> 01:11:47,070 Við erum að gefa út þetta eftir að koma í veg tap 1459 01:11:47,070 --> 01:11:49,300 af öllu AC rafmagns vald, sem gæti leitt 1460 01:11:49,300 --> 01:11:50,980 í tapi stjórn flugvélarinnar. 1461 01:11:50,980 --> 01:11:55,380 >> Svo, bókstaflega, það er einhver heiltala, eða samsvarandi gögn tegund, 1462 01:11:55,380 --> 01:11:57,960 sem notuð eru í hugbúnaði í raun flugvél 1463 01:11:57,960 --> 01:12:00,756 að ef þú halda flugvél þína á nógu lengi, sem virðist 1464 01:12:00,756 --> 01:12:03,880 getur verið að ræða ef þú ert bara að keyra þá stöðugt og aldrei í sambandi 1465 01:12:03,880 --> 01:12:06,810 flugvél þína, það virðist, eða láta rafhlöður þess að deyja, 1466 01:12:06,810 --> 01:12:09,840 mun að lokum telja upp, og upp, og upp, og upp, og upp og upp. 1467 01:12:09,840 --> 01:12:12,150 >> Og, eftir eðli, a endanlegt magn af minni 1468 01:12:12,150 --> 01:12:15,880 mun flæða, veltingur aftur til núll eða nokkur neikvæð gildi, 1469 01:12:15,880 --> 01:12:19,920 aukaverkun af, sem er frighteningly alvöru veruleika 1470 01:12:19,920 --> 01:12:23,970 að flugvélin gæti þurft að endurræsa, á áhrifaríkan hátt, 1471 01:12:23,970 --> 01:12:27,290 eða gæti fallið verri, eins og það flýgur. 1472 01:12:27,290 --> 01:12:29,230 Svo þessar tegundir af málefnum eru enn með okkur, 1473 01:12:29,230 --> 01:12:33,130 even-- þetta var 2015 grein, allt meira ógnvekjandi 1474 01:12:33,130 --> 01:12:36,100 þegar þú ert ekki endilega skilja, meta eða sjá 1475 01:12:36,100 --> 01:12:38,640 þeir konar villur. 1476 01:12:38,640 --> 01:12:42,030 >> Svo kemur í ljós að það er eitt annað slæmt um gögn framsetning. 1477 01:12:42,030 --> 01:12:47,080 Það kemur í ljós að jafnvel flýtur eru konar gölluð, því fljóta líka, 1478 01:12:47,080 --> 01:12:51,440 Ég lagði eru 32 bita eða kannski 64 ef þú notar tvöfaldan. 1479 01:12:51,440 --> 01:12:53,070 En það er samt tímabundið. 1480 01:12:53,070 --> 01:12:57,070 >> Og aflinn er að ef þú getur setja óendanlega fjölda af tölum 1481 01:12:57,070 --> 01:12:59,460 eftir kommu, það er engin leið að þú 1482 01:12:59,460 --> 01:13:02,690 getur táknað allt mögulegt tölur sem við vorum kennt 1483 01:13:02,690 --> 01:13:04,990 í grunnskóla getur verið í heiminum. 1484 01:13:04,990 --> 01:13:08,870 A tölva, í raun, hefur að velja hlutmengi af þeim tölum 1485 01:13:08,870 --> 01:13:10,200 til að tákna nákvæmlega. 1486 01:13:10,200 --> 01:13:12,450 >> Nú, the tölva getur umferð kannski svolítið, 1487 01:13:12,450 --> 01:13:17,900 og geta leyfa þér að u.þ.b. verslun allir tala þú gætir hugsanlega vilja. 1488 01:13:17,900 --> 01:13:20,940 En bara innsæi, ef þér hafa endanlegt fjölda bita, 1489 01:13:20,940 --> 01:13:24,560 þú getur aðeins permute þeim í svo mörgum takmörkunum háð vegu. 1490 01:13:24,560 --> 01:13:26,570 Svo þú getur ekki hugsanlega nota endanlegan fjölda 1491 01:13:26,570 --> 01:13:29,880 á uppröðun bita, mynstur núllum og sjálfur, 1492 01:13:29,880 --> 01:13:32,940 til að tákna óendanlega Fjöldi tölum, 1493 01:13:32,940 --> 01:13:37,370 sem bendir til þess að tölvur gætu mjög vel að vera að ljúga að okkur stundum. 1494 01:13:37,370 --> 01:13:38,770 >> Í raun, við skulum gera þetta. 1495 01:13:38,770 --> 01:13:41,239 Leyfðu mér að fara aftur í CS50 IDE. 1496 01:13:41,239 --> 01:13:43,030 Leyfðu mér að fara á undan og búa til smá forrit 1497 01:13:43,030 --> 01:13:47,940 kallaði ónákvæmni, til að sýna að tölvur eru reyndar ónákvæm. 1498 01:13:47,940 --> 01:13:51,910 >> Og láta mig fara á undan og byrja með sumir af þeim kóða frá áður, 1499 01:13:51,910 --> 01:13:53,830 og nú bara að gera eftirfarandi. 1500 01:13:53,830 --> 01:14:03,640 Leyfðu mér að fara á undan og gera printf, prósent f sviga n, 1 deilt með 10. 1501 01:14:03,640 --> 01:14:07,430 Með öðrum orðum, við skulum kafa í dýpra að 1/10, eins og 1 og deilt með 10. 1502 01:14:07,430 --> 01:14:09,760 Víst, tölva getur táknað 1/10. 1503 01:14:09,760 --> 01:14:13,620 >> Svo skulum fara á undan og gera ónákvæmni. 1504 01:14:13,620 --> 01:14:14,390 Látum okkur sjá. 1505 01:14:14,390 --> 01:14:16,210 Format tilgreinir tegund manna. 1506 01:14:16,210 --> 01:14:18,160 En rök eru int. 1507 01:14:18,160 --> 01:14:19,040 Hvað er í gangi? 1508 01:14:19,040 --> 01:14:21,970 >> Ó, áhugavert, svo er það kennslustund lærður frá áður. 1509 01:14:21,970 --> 01:14:26,050 Ég er að segja, hey, tölva sýna mér fljóta með prósent f. 1510 01:14:26,050 --> 01:14:28,200 En ég ætla að gefa henni 2 ints. 1511 01:14:28,200 --> 01:14:31,120 Svo kemur í ljós, get ég lagað þetta í nokkra vegu. 1512 01:14:31,120 --> 01:14:38,430 >> Ég gæti bara snúið einn í 1.0, og 10 í 10,0, sem myndi reyndar 1513 01:14:38,430 --> 01:14:42,390 hafa áhrif að breyta þá inn floats-- enn vonandi 1514 01:14:42,390 --> 01:14:43,180 sama númer. 1515 01:14:43,180 --> 01:14:45,880 Eða það kemur í ljós að það er eitthvað við munum sjá aftur áður en langur. 1516 01:14:45,880 --> 01:14:47,170 Þú gætir kastað tölurnar. 1517 01:14:47,170 --> 01:14:49,880 >> Þú getur, með þennan svigasegð tjáningu, getur þú sagt, 1518 01:14:49,880 --> 01:14:52,560 hey, tölva, taka þetta 10, sem ég veit er int. 1519 01:14:52,560 --> 01:14:54,660 En meðhöndla það, vinsamlegast, eins og það er fljóta. 1520 01:14:54,660 --> 01:14:56,680 En þetta finnst óþarflega flókið. 1521 01:14:56,680 --> 01:14:59,040 >> Að því er varðar okkar í dag, við skulum bara bókstaflega 1522 01:14:59,040 --> 01:15:02,700 gera þá fleytitölum með kommu, eins og þetta. 1523 01:15:02,700 --> 01:15:07,060 Leyfðu mér að fara á undan og endursýning, gera ónákvæmni, gott, punktur rista 1524 01:15:07,060 --> 01:15:08,870 ónákvæmni, inn. 1525 01:15:08,870 --> 01:15:10,990 OK, við erum að leita vel. 1526 01:15:10,990 --> 01:15:18,194 >> 1 deilt með 10, í samræmi við minn Mac hér er reyndar 0,100000. 1527 01:15:18,194 --> 01:15:21,360 Nú, ég var kennt í grunnskóla þar ætti að vera óendanlegur fjöldi af 0 áratugnum. 1528 01:15:21,360 --> 01:15:23,151 Svo skulum að minnsta kosti reyna að sjá eitthvað af þeim. 1529 01:15:23,151 --> 01:15:26,770 Það kemur í ljós að printf er lítið áhugamaður samt en við höfum verið að nota. 1530 01:15:26,770 --> 01:15:30,890 Það kemur í ljós að þú þarft ekki að tilgreina bara prósent, f, eða bara prósent i. 1531 01:15:30,890 --> 01:15:33,830 Þú getur í raun að tilgreina sumir stjórna möguleikar hér. 1532 01:15:33,830 --> 01:15:36,470 >> Sérstaklega, ég er að fara að segja, hey, printf, 1533 01:15:36,470 --> 01:15:39,660 í raun sýna mér 10 aukastafi stig. 1534 01:15:39,660 --> 01:15:40,820 Svo það lítur svolítið undarlegt. 1535 01:15:40,820 --> 01:15:42,845 En þú segir prósent, punktur, hversu mörg númer 1536 01:15:42,845 --> 01:15:44,970 þú vilt sjá eftir kommu, og svo f 1537 01:15:44,970 --> 01:15:48,340 fyrir íbúð, bara vegna þess að það er hvað skjöl segir. 1538 01:15:48,340 --> 01:15:50,080 Leyfðu mér að fara á undan og vista það. 1539 01:15:50,080 --> 01:15:52,460 >> Og eftir líka, ég er að fá þreyttur á retyping hlutina. 1540 01:15:52,460 --> 01:15:55,900 Þannig að ég ætla bara að setja upp og niður arrow á takka mínum hér. 1541 01:15:55,900 --> 01:15:58,710 Og ef ég halda hitting upp, þú getur séð allar skipanir 1542 01:15:58,710 --> 01:16:01,090 sem ég gerði, eða rangt gert. 1543 01:16:01,090 --> 01:16:04,630 >> Og ég ætla að fara á undan núna og reyndar ekki að nota það, greinilega. 1544 01:16:04,630 --> 01:16:11,416 Gera ónákvæmni, punktur slash imprecision-- svo 1545 01:16:11,416 --> 01:16:13,290 það sem ég var að kenna í GRADE SCHOOL tékka út. 1546 01:16:13,290 --> 01:16:19,010 Jafnvel þótt ég prenta það til 10. aukastaf setur það reyndar er 0,10000. 1547 01:16:19,010 --> 01:16:19,840 En þú veist hvað? 1548 01:16:19,840 --> 01:16:21,150 >> Við skulum fá smá gráðugur. 1549 01:16:21,150 --> 01:16:23,990 Við skulum segja, eins og sýnt mér 55 bendir á eftir aukastaf. 1550 01:16:23,990 --> 01:16:26,160 Við skulum virkilega að taka þetta forrita út fyrir a snúningur. 1551 01:16:26,160 --> 01:16:31,170 Leyfðu mér að endurgerð það með gera ónákvæmni, punktur rista, ónákvæmni. 1552 01:16:31,170 --> 01:16:32,390 >> Og hér við fara. 1553 01:16:32,390 --> 01:16:34,420 barnæsku var lygi. 1554 01:16:34,420 --> 01:16:48,410 Apparently, 1 deilt með 10 er örugglega 0.100000000000000005551115123-- 1555 01:16:48,410 --> 01:16:49,740 >> Hvað er í gangi? 1556 01:16:49,740 --> 01:16:53,360 Jæja, það kemur í ljós, ef þú eins konar líta langt út í undirliggjandi 1557 01:16:53,360 --> 01:16:55,950 framsetning af þessu númer, reyndar það 1558 01:16:55,950 --> 01:17:00,400 er ekki nákvæmlega 1/10, eða 0,1 og óendanlega fjölda núllum. 1559 01:17:00,400 --> 01:17:01,630 Nú, hvers vegna er það? 1560 01:17:01,630 --> 01:17:06,250 >> Jæja, jafnvel þótt þetta sé einfalt númer til að okkur mönnum, 1 deilt með 10, 1561 01:17:06,250 --> 01:17:10,910 það er enn einn af óendanlega mörgum tölur sem við gætum hugsað upp. 1562 01:17:10,910 --> 01:17:14,490 En tölva getur einungis tákna endanlegum margir So tölur. 1563 01:17:14,490 --> 01:17:18,710 Og svo, í raun, hvað tölvan er að sýna okkur er næst hennar 1564 01:17:18,710 --> 01:17:22,940 samræmingu við fjölda Við viljum trúa er 1/10, 1565 01:17:22,940 --> 01:17:27,760 eða í raun 0,10000 auglýsingu infinitum. 1566 01:17:27,760 --> 01:17:30,425 >> Frekar, þó, þetta er eins nálægt og það er hægt að fá. 1567 01:17:30,425 --> 01:17:32,300 Og reyndar, ef þú lítur undir hetta, 1568 01:17:32,300 --> 01:17:37,050 eins og við erum hér með að leita 55 Tölunum eftir aukastaf, 1569 01:17:37,050 --> 01:17:39,990 sjáum við í raun og veru að veruleika. 1570 01:17:39,990 --> 01:17:42,610 Nú sem innskot, ef þú hefur alltaf séð movie-- 1571 01:17:42,610 --> 01:17:45,780 flest ykkar líklega haven't-- en Superman 3 fyrir nokkrum árum, 1572 01:17:45,780 --> 01:17:49,500 Richard Pryor í raun skuldsett þetta veruleika í fyrirtæki hans til að stela mikið 1573 01:17:49,500 --> 01:17:53,500 þáttum og þáttum úr smáaurarnir, vegna þess að company-- sem ég man, 1574 01:17:53,500 --> 01:17:57,210 það hefur verið while-- var í meginatriðum henda burt eitthvað sem passaði ekki 1575 01:17:57,210 --> 01:17:58,790 í hugmyndinni um sent. 1576 01:17:58,790 --> 01:18:01,480 >> En ef þú bætir upp öll þessi pínulítill, pínulítill, pínulítill tölur aftur, 1577 01:18:01,480 --> 01:18:04,960 og aftur, og aftur, þú getur, eins og í máli hans, að gera gott magn af peningum. 1578 01:18:04,960 --> 01:18:08,010 >> Það sama hugmynd var morðingi burt við nýleg, en samt nú eldri 1579 01:18:08,010 --> 01:18:10,500 Myndin, sem heitir Office Space, þar sem krakkar í þeirri bíómynd, 1580 01:18:10,500 --> 01:18:13,501 gerði það sama, ruglaður það upp alveg, endaði með því að of mikið 1581 01:18:13,501 --> 01:18:14,666 peningar á bankareikning þeirra. 1582 01:18:14,666 --> 01:18:15,800 Það var allt mjög grunsamlegt. 1583 01:18:15,800 --> 01:18:19,290 En í lok dagsins, ónákvæmni er allt í kringum okkur. 1584 01:18:19,290 --> 01:18:22,240 >> Og það líka, getur verið frighteningly málið. 1585 01:18:22,240 --> 01:18:25,590 Það kemur í ljós að Superman 3 og Office Space hliðar, þar 1586 01:18:25,590 --> 01:18:28,460 getur verið nokkur mjög raunveruleg world afleiðingar 1587 01:18:28,460 --> 01:18:32,290 af raunveruleika ónákvæmar framsetning gagna 1588 01:18:32,290 --> 01:18:34,770 að jafnvel við mennirnir til í dag ekki endilega 1589 01:18:34,770 --> 01:18:38,230 skilja eins vel og við ætti, eða muna svo oft sem við ættum. 1590 01:18:38,230 --> 01:18:42,950 Og reyndar Eftirfarandi myndband er frá a líta á sumir mjög raunverulegur veröld 1591 01:18:42,950 --> 01:18:47,730 afleiðingar af hvað gerist ef þú líkar ekki ónákvæmni sem 1592 01:18:47,730 --> 01:18:50,065 getur gerst í tölum framsetning. 1593 01:18:50,065 --> 01:18:51,300 >> [Vídeó spilun] 1594 01:18:51,300 --> 01:18:55,620 >> -Computers, Við höfum öll komið til að samþykkja sem oft pirrandi vandamál sem 1595 01:18:55,620 --> 01:19:00,310 fara með them-- galla, veirur, og hugbúnaður galli, 1596 01:19:00,310 --> 01:19:03,130 fyrir lítil verð að borga fyrir þægindi. 1597 01:19:03,130 --> 01:19:07,800 En í Hátækni og hár hraði her og pláss program forrit, 1598 01:19:07,800 --> 01:19:12,800 minnsti vandamálið getur eflast í hörmung. 1599 01:19:12,800 --> 01:19:18,900 >> 4. júní 1996, vísindamenn undirbúið að ráðast unmanned Ariane 5 eldflaug. 1600 01:19:18,900 --> 01:19:21,220 Það var vopnaður vísindalegar gervihnettir hannað 1601 01:19:21,220 --> 01:19:24,600 til að koma nákvæmlega hvernig jarðar segulmagnaðir Hefur samskipti sviði 1602 01:19:24,600 --> 01:19:27,410 með sól vindur. 1603 01:19:27,410 --> 01:19:30,800 The eldflaugar var byggt fyrir Evrópu Space Agency, 1604 01:19:30,800 --> 01:19:34,370 og lyfti burt frá verksmiðju sinni á strönd Franska Gvæjana. 1605 01:19:34,370 --> 01:19:37,540 >> -á Um 37 sekúndur inn flug, þeir fyrst 1606 01:19:37,540 --> 01:19:39,270 tók eitthvað var að fara úrskeiðis. 1607 01:19:39,270 --> 01:19:42,250 Stútar voru segulnagli í leið þeir ættu í raun ekki. 1608 01:19:42,250 --> 01:19:46,580 Around 40 sekúndur inn í flugið, greinilega ökutækið var í vandræðum. 1609 01:19:46,580 --> 01:19:48,850 >> Og það er þegar þeir gerðu ákvörðun um að eyðileggja það. 1610 01:19:48,850 --> 01:19:52,780 Öryggi svið liðsforingi, með gríðarlega hugaður, ýtt á hnappinn, 1611 01:19:52,780 --> 01:19:58,150 blés upp eldflaugar, en það gæti verða hættulegir á öryggi almennings. 1612 01:19:58,150 --> 01:20:01,060 >> -Þetta Var mær ferð á Ariane 5. 1613 01:20:01,060 --> 01:20:03,960 Og eyðileggingu hennar tók setja vegna galla 1614 01:20:03,960 --> 01:20:05,822 innbyggð í hugbúnaði eldflaug er. 1615 01:20:05,822 --> 01:20:08,280 -The Vandamál á Ariane var að það væri að tala sem 1616 01:20:08,280 --> 01:20:10,600 þarf 64 bita til að tjá. 1617 01:20:10,600 --> 01:20:13,590 Og þeir vildu breyta það að 16-bita númer. 1618 01:20:13,590 --> 01:20:15,610 Þeir gera ráð fyrir því að fjöldi var aldrei að fara 1619 01:20:15,610 --> 01:20:20,980 að vera mjög stór, að flestir þeir tölunum í 64-bita númer voru zeroes. 1620 01:20:20,980 --> 01:20:22,440 Þeir voru rangar. 1621 01:20:22,440 --> 01:20:25,060 >> -The Vanhæfni einn hugbúnaður program til að samþykkja 1622 01:20:25,060 --> 01:20:29,510 konar númer mynda af annar var á rót bilun. 1623 01:20:29,510 --> 01:20:34,350 Hugbúnaðarþróun hafði orðið mjög kostnaðarsamt hluti af nýrri tækni. 1624 01:20:34,350 --> 01:20:38,140 The Ariane eldflaugar hafa verið mjög vel, svo mikið af hugbúnaði 1625 01:20:38,140 --> 01:20:41,550 búin að það var líka er notað í Ariane 5. 1626 01:20:41,550 --> 01:20:47,940 >> -The Grunn vandamálið var að Ariane 5 var hraðari, flýta hraðar. 1627 01:20:47,940 --> 01:20:51,450 Og the hugbúnaður hafði ekki grein fyrir því. 1628 01:20:51,450 --> 01:20:55,060 >> -The Eyðileggingu á eldflaug var gríðarlegur fjárhagslega hörmung, 1629 01:20:55,060 --> 01:20:58,790 allt vegna mínútu hugbúnaður villa. 1630 01:20:58,790 --> 01:21:01,210 En þetta var ekki í fyrsta tími vefhegðunargögn vandamál 1631 01:21:01,210 --> 01:21:04,820 hafði stríða nútíma eldflaugar tækni. 1632 01:21:04,820 --> 01:21:08,050 >> -Í 1991, við upphaf á fyrsta Persaflóastríðinu, 1633 01:21:08,050 --> 01:21:10,570 Patriot Missile upplifað svipaða konar 1634 01:21:10,570 --> 01:21:12,800 af fjölda viðskipti vandamál. 1635 01:21:12,800 --> 01:21:16,090 Og þar af leiðandi, 28 manns, 28 bandarískir hermenn, 1636 01:21:16,090 --> 01:21:19,080 voru drepnir, og um 100 aðrir særðir, 1637 01:21:19,080 --> 01:21:22,780 þegar Patriot, sem átti til að vernda gegn komandi scuds, 1638 01:21:22,780 --> 01:21:25,830 mistókst að skjóta eldflaugum. 1639 01:21:25,830 --> 01:21:31,670 >> -Þegar Írak ráðist Kúveit og Ameríku hóf Desert Storm í byrjun 1991, 1640 01:21:31,670 --> 01:21:35,780 Patriot Missile rafhlöður voru á vettvangi til að vernda Saudi Arabíu og Ísrael 1641 01:21:35,780 --> 01:21:39,230 frá Írak Scud eldflaugum árás. 1642 01:21:39,230 --> 01:21:43,810 The Patriot er bandarískt miðlungs-svið yfirborð til loft kerfi, framleitt 1643 01:21:43,810 --> 01:21:45,770 af Raytheon fyrirtækinu. 1644 01:21:45,770 --> 01:21:52,340 >> -The Stærð Patriot interceptor sjálft er um það bil 20 fet að lengd. 1645 01:21:52,340 --> 01:21:55,230 Og það vega um 2.000 pund. 1646 01:21:55,230 --> 01:21:59,320 Og það ber warhead af um, Ég held að það sé um það bil 150 pund. 1647 01:21:59,320 --> 01:22:03,930 Og Warhead sjálft er a hár sprengiefni, sem 1648 01:22:03,930 --> 01:22:07,330 hefur brot kringum það. 1649 01:22:07,330 --> 01:22:11,680 The hlíf á warhead er sem ætlað er að bregðast við eins og buckshot. 1650 01:22:11,680 --> 01:22:14,110 >> -The Eldflaugar eru gerðar fjögur á íláti, 1651 01:22:14,110 --> 01:22:17,130 og eru flutt af hálf kerru. 1652 01:22:17,130 --> 01:22:24,930 >> -The Patriot gegn eldflaugum kerfi fer aftur að minnsta kosti 20 ár núna. 1653 01:22:24,930 --> 01:22:28,420 Það var upphaflega hannað sem loftvarnir eldflaugum 1654 01:22:28,420 --> 01:22:30,720 að skjóta niður óvini flugvélar. 1655 01:22:30,720 --> 01:22:34,500 Í fyrsta Persaflóastríðinu, Þegar að stríð kom með, 1656 01:22:34,500 --> 01:22:39,745 herinn vildi að nota það til að skjóta niður scuds, ekki flugvélar. 1657 01:22:39,745 --> 01:22:43,620 >> Írak Air Force var ekki svo mikið vandamál. 1658 01:22:43,620 --> 01:22:46,670 En herinn var áhyggjur scuds. 1659 01:22:46,670 --> 01:22:50,170 Og svo þeir reyndu að uppfæra Patriot. 1660 01:22:50,170 --> 01:22:52,800 >> -Intercepting Óvin eldflaugum ferðast á Mach 5 1661 01:22:52,800 --> 01:22:55,830 var að fara að vera krefjandi nóg. 1662 01:22:55,830 --> 01:22:58,490 En þegar Patriot var hljóp í þjónustu, 1663 01:22:58,490 --> 01:23:02,860 her var ekki kunnugt um að Írak breytingar sem gerðar 1664 01:23:02,860 --> 01:23:05,930 scuds þeirra næstum ómögulegt að ná. 1665 01:23:05,930 --> 01:23:10,740 >> -Hvað Gerðist er scuds sem voru að koma í voru óstöðug. 1666 01:23:10,740 --> 01:23:11,692 Þeir voru wobbling. 1667 01:23:11,692 --> 01:23:14,910 Ástæðan fyrir þessu var Írakar, í því skyni 1668 01:23:14,910 --> 01:23:18,280 að fá 600 kílómetra út af 300 kílómetra 1669 01:23:18,280 --> 01:23:21,700 svið eldflaugum, tók þyngd út að framan warhead. 1670 01:23:21,700 --> 01:23:23,390 Þeir gerði Warhead léttari. 1671 01:23:23,390 --> 01:23:27,330 >> Svo nú er Patriot að reyna að koma á Scud. 1672 01:23:27,330 --> 01:23:30,230 Og mest af þeim tíma, Yfirgnæfandi meirihluti af the tími, 1673 01:23:30,230 --> 01:23:32,940 það myndi bara fljúga með Scud. 1674 01:23:32,940 --> 01:23:37,260 Þegar Patriot kerfisrekandi áttaði Patriot ungfrú markmiði sínu, 1675 01:23:37,260 --> 01:23:41,690 þeir detonated warhead Patriot er til að forðast hugsanlegar mannfall ef það 1676 01:23:41,690 --> 01:23:44,570 var leyft að falla til jarðar. 1677 01:23:44,570 --> 01:23:48,790 >> -Það Var það sem flestir sáu, þessir stóru Fireballs í himininn, 1678 01:23:48,790 --> 01:23:54,550 og misskilið sem rekur í Scud warheads. 1679 01:23:54,550 --> 01:23:56,630 >> -Although Í nótt skies, Patriots virtist 1680 01:23:56,630 --> 01:24:00,370 til að vera með góðum árangri eyðileggja Scuds á Dhahran, 1681 01:24:00,370 --> 01:24:03,360 það gæti verið engin mistök um frammistöðu sína. 1682 01:24:03,360 --> 01:24:07,970 Það, Patriot er ratsjá kerfi misst utan um komandi Scud, 1683 01:24:07,970 --> 01:24:10,721 og aldrei hleypt vegna að hugbúnaður galli. 1684 01:24:10,721 --> 01:24:14,090 1685 01:24:14,090 --> 01:24:18,940 Það var á Ísraelsmenn sem fyrst uppgötvað að því lengur sem kerfið var á, 1686 01:24:18,940 --> 01:24:22,690 því meiri tími misræmi varð, vegna þess að klukku embed 1687 01:24:22,690 --> 01:24:24,810 í tölvunni kerfisins. 1688 01:24:24,810 --> 01:24:28,210 >> -Um Tveimur vikum áður en harmleikur í Dhahran, 1689 01:24:28,210 --> 01:24:30,770 Ísraelar tilkynnt Defense Department 1690 01:24:30,770 --> 01:24:32,590 að kerfið var að tapa tíma. 1691 01:24:32,590 --> 01:24:35,360 Eftir um það bil átta klukkustundir eða gangi, þeir tekið eftir því að kerfið 1692 01:24:35,360 --> 01:24:37,720 var að verða orðinn ónákvæmari. 1693 01:24:37,720 --> 01:24:41,900 The Defense Department brást við með því segja öllum Patriot rafhlöður 1694 01:24:41,900 --> 01:24:44,950 að ekki láta kerfin á í langan tíma. 1695 01:24:44,950 --> 01:24:49,160 Þeir sögðu aldrei hvað löngu was-- átta klukkustundir, 10 klukkustundir, 1.000 klst. 1696 01:24:49,160 --> 01:24:51,360 Enginn vissi. 1697 01:24:51,360 --> 01:24:53,380 >> -The Patriot rafhlaða setti á kastalann 1698 01:24:53,380 --> 01:24:58,350 á Dhahran og gölluð innri hennar Klukkan hafði verið á yfir 100 klst 1699 01:24:58,350 --> 01:25:01,670 á nótt 25. febrúar. 1700 01:25:01,670 --> 01:25:05,917 >> -Það Fylgst tími til nákvæmni um tíunda hluta úr sekúndu. 1701 01:25:05,917 --> 01:25:08,000 Nú, tíundi úr sekúndu er áhugavert númer, 1702 01:25:08,000 --> 01:25:11,920 vegna þess að það er ekki hægt að gefið upp í tvöfaldur nákvæmlega, sem 1703 01:25:11,920 --> 01:25:16,820 þýðir að það er ekki gefið upp nákvæmlega í hvaða nútíma stafrænum tölvu. 1704 01:25:16,820 --> 01:25:18,540 Það er erfitt að trúa. 1705 01:25:18,540 --> 01:25:21,210 >> En nota þetta sem dæmi. 1706 01:25:21,210 --> 01:25:23,540 Við skulum taka númer eitt þriðjung. 1707 01:25:23,540 --> 01:25:27,350 Einn þriðji er ekki hægt að gefið upp í aukastaf nákvæmlega. 1708 01:25:27,350 --> 01:25:32,080 Einn þriðji er 0,333 fara á fyrir óendanleika. 1709 01:25:32,080 --> 01:25:36,480 >> Það er engin leið til að gera það með alger nákvæmni í aukastaf. 1710 01:25:36,480 --> 01:25:39,560 Það er nákvæmlega eins konar vandamál sem gerðist í Patriot. 1711 01:25:39,560 --> 01:25:44,100 Því lengur sem kerfið hljóp, sem verri tími villa varð. 1712 01:25:44,100 --> 01:25:48,890 >> -Eftir 100 klukkustunda starfrækslu, sem villa í tíma var aðeins um þriðjungur 1713 01:25:48,890 --> 01:25:50,600 úr sekúndu. 1714 01:25:50,600 --> 01:25:54,210 En hvað varðar miða a eldflaugum ferðast á Mach 5, 1715 01:25:54,210 --> 01:25:58,710 það leiddi til mælingar villa á yfir 600 metra. 1716 01:25:58,710 --> 01:26:02,120 Það væri banvæn villa fyrir hermenn á hvað 1717 01:26:02,120 --> 01:26:08,940 gerðist er Scud ræst var greind með viðvörunarkerfi gervihnöttum 1718 01:26:08,940 --> 01:26:12,860 og þeir vissu að Scud var koma í almenna átt þeirra. 1719 01:26:12,860 --> 01:26:15,320 Þeir vissu ekki hvar það var að koma. 1720 01:26:15,320 --> 01:26:18,250 >> -Það Var nú upp á ratsjá hluti af the Patriot kerfisins 1721 01:26:18,250 --> 01:26:23,190 verja Dhahran til að finna og halda utan um komandi eldflaugum óvinarins. 1722 01:26:23,190 --> 01:26:24,609 >> -The Ratsjá var mjög klár. 1723 01:26:24,609 --> 01:26:26,650 Það væri í raun að fylgjast með stöðu Scud, 1724 01:26:26,650 --> 01:26:30,350 og þá spá hvar það líklega myndi vera næsta skipti sem ratsjá send 1725 01:26:30,350 --> 01:26:31,420 púls út. 1726 01:26:31,420 --> 01:26:33,110 Það var kallað svið hliðið. 1727 01:26:33,110 --> 01:26:37,660 >> -Þá, Þegar Patriot ákveður nægur tími hefur 1728 01:26:37,660 --> 01:26:42,450 samþykkt að fara aftur og athuga næsta staðsetningu fyrir þessa greind hlut, 1729 01:26:42,450 --> 01:26:43,600 það fer aftur. 1730 01:26:43,600 --> 01:26:48,650 Svo þegar það fór aftur til röng staður, sér það þá ekki hlut. 1731 01:26:48,650 --> 01:26:52,160 Og það ákveður að það var engin hlut, það var falskur uppgötvun, 1732 01:26:52,160 --> 01:26:53,930 og lækkar lagið. 1733 01:26:53,930 --> 01:26:57,030 >> -The Komandi Scud hvarf frá ratsjá skjár. 1734 01:26:57,030 --> 01:27:00,260 Og sekúndum síðar, það skellur inn í kastalann. 1735 01:27:00,260 --> 01:27:06,150 The Scud drap 28, og var síðast einn rekinn á fyrsta Persaflóastríðinu. 1736 01:27:06,150 --> 01:27:11,960 >> Tragically, sem uppfærð hugbúnaður kom á Dhahran daginn eftir. 1737 01:27:11,960 --> 01:27:14,930 Hugbúnaðurinn galli hafði verið fastur, lokun 1738 01:27:14,930 --> 01:27:19,806 einn kaflinn í órótt Saga Patriot eldflaugum. 1739 01:27:19,806 --> 01:27:20,729 >> [Vídeó spilun] 1740 01:27:20,729 --> 01:27:23,520 DAVID J. Malan: Svo er þetta allt að segja að þessi málefni flæða 1741 01:27:23,520 --> 01:27:25,860 og ónákvæmni eru allt of raunverulegt. 1742 01:27:25,860 --> 01:27:26,920 Svo hvernig did við hér? 1743 01:27:26,920 --> 01:27:28,895 Við byrjuðum við bara að tala um printf. 1744 01:27:28,895 --> 01:27:31,270 Aftur, þessi aðgerð sem prentar eitthvað á skjáinn, 1745 01:27:31,270 --> 01:27:33,450 og við kynntum eftir nokkrar aðrar aðgerðir 1746 01:27:33,450 --> 01:27:34,945 frá svokölluðum CS50 er bókasafn. 1747 01:27:34,945 --> 01:27:36,910 Og við munum halda áfram að sjá þetta í tæka tíð. 1748 01:27:36,910 --> 01:27:40,760 Og við, sérstaklega, notað fá band, og fá int, og nú einnig að fá fljóta, 1749 01:27:40,760 --> 01:27:44,410 og enn aðrir enn munum við lenda og nota okkur fyrir löngu. 1750 01:27:44,410 --> 01:27:47,220 >> En stundum, hafa við séð nú þegar þörf 1751 01:27:47,220 --> 01:27:50,520 að geyma hvað þessir virka hönd aftur? 1752 01:27:50,520 --> 01:27:52,920 Þeir afhenda okkur aftur a band, eða int eða fljóta. 1753 01:27:52,920 --> 01:27:56,070 Og stundum þurfum við að setja það band, eða int, eða fljóta, einhvers staðar. 1754 01:27:56,070 --> 01:28:00,100 >> Og til að geyma þá hluti, muna bara eins og í grunni, höfum við breytum. 1755 01:28:00,100 --> 01:28:03,260 En ólíkt í grunni, í C við höfum raunverulegan tegundir 1756 01:28:03,260 --> 01:28:05,530 af variables-- gögnum tegundir, fleiri generally-- 1757 01:28:05,530 --> 01:28:08,640 meðal þeirra, a band, int, a fljóta, og þessir aðrir enn. 1758 01:28:08,640 --> 01:28:12,321 >> Og svo þegar við lýsa breytur í C, við verðum að lýsa gagnatög okkar. 1759 01:28:12,321 --> 01:28:14,820 Þetta er ekki eitthvað sem við munum þarft að gera síðar í önn 1760 01:28:14,820 --> 01:28:16,810 eins og við umskipti til öðrum tungumálum. 1761 01:28:16,810 --> 01:28:19,610 En nú þurfum við til fyrirfram fyrirfram, 1762 01:28:19,610 --> 01:28:24,370 útskýra tölvuna hvaða tegund breytu við viljum það til að gefa okkur. 1763 01:28:24,370 --> 01:28:27,290 >> Nú, á meðan, til að prenta þeir konar gagnatög, 1764 01:28:27,290 --> 01:28:29,570 Við verðum að segja printf hvað ég á að búast við. 1765 01:28:29,570 --> 01:28:32,450 Og við sáum prósent S fyrir strengi, og prósent ég fyrir heiltölur, 1766 01:28:32,450 --> 01:28:33,790 og nokkrum öðrum nú þegar. 1767 01:28:33,790 --> 01:28:37,237 Og þeir eru einfaldlega kröfur og fyrir sjónræna framsetningu 1768 01:28:37,237 --> 01:28:38,070 af þeim upplýsingum. 1769 01:28:38,070 --> 01:28:42,080 >> Og hver af þessum getur raunverulega vera parametrized eða klip á einhvern hátt, 1770 01:28:42,080 --> 01:28:45,370 ef þú vilt frekari stjórn gerð framleiðsla sem þú færð. 1771 01:28:45,370 --> 01:28:49,604 Og í raun, það kemur í ljós að ekki aðeins er það sviga n fyrir nýja línu. 1772 01:28:49,604 --> 01:28:52,520 Það er eitthvað annað sem kallast sviga r fyrir a flytja aftur, sem 1773 01:28:52,520 --> 01:28:54,360 er meira í ætt við gamla skólanum ritvél, 1774 01:28:54,360 --> 01:28:57,690 og einnig Windows notuð í mörg ár. 1775 01:28:57,690 --> 01:28:59,690 >> Það er skástrik t fyrir tabs. 1776 01:28:59,690 --> 01:29:03,170 Skrúfjárn út, að ef þú vilt tommumerki inni streng, 1777 01:29:03,170 --> 01:29:05,000 muna að við höfum notað tommumerki tvöfaldur 1778 01:29:05,000 --> 01:29:07,900 tilvitnun á vinstri og hægri endar á strengi okkar svona langt. 1779 01:29:07,900 --> 01:29:09,420 Það virðist að rugla hlutina. 1780 01:29:09,420 --> 01:29:12,503 >> Ef þú vilt setja tvöfalda tilvitnun í the miðja af a string-- og örugglega, 1781 01:29:12,503 --> 01:29:13,670 það er ruglingslegt að sjá. 1782 01:29:13,670 --> 01:29:17,120 Og svo þú þarft að flýja, svo að tala, tvöfalda tilvitnun með eitthvað 1783 01:29:17,120 --> 01:29:18,860 eins, bókstaflega, sviga tommumerki. 1784 01:29:18,860 --> 01:29:20,230 Og það er nokkur annar enn. 1785 01:29:20,230 --> 01:29:24,540 Og við munum sjá meira af þeim í raun notkun áður en langt. 1786 01:29:24,540 --> 01:29:27,930 >> Svo skulum nú umskipti frá gögn og framsetningu, 1787 01:29:27,930 --> 01:29:30,820 og tölur rekstraraðila, allt sem gaf okkur bygging 1788 01:29:30,820 --> 01:29:32,070 blokkir sem að spila. 1789 01:29:32,070 --> 01:29:34,481 En nú skulum í raun að gefa okkur restin af orðaforða 1790 01:29:34,481 --> 01:29:36,230 sem við höfðum þegar í síðustu viku með grunni 1791 01:29:36,230 --> 01:29:39,350 með því að taka a líta á sumir annar smíðar í C-- ekki þeim öllum. 1792 01:29:39,350 --> 01:29:41,680 En hugmyndir sem við erum um að sjá í raun bara 1793 01:29:41,680 --> 01:29:45,610 að leggja áherslu á þýðingu frá eitt tungumál, Scratch, til annars, C. 1794 01:29:45,610 --> 01:29:48,470 >> Og með tímanum munum við taka upp fleiri verkfæri fyrir tól okkar, 1795 01:29:48,470 --> 01:29:49,820 svo að segja, setningafræðilega. 1796 01:29:49,820 --> 01:29:54,190 Og reyndar munt þú sjá að hugmyndirnar eru nú frekar kunnuglegt frá síðustu viku. 1797 01:29:54,190 --> 01:29:55,200 Svo skulum gera þetta. 1798 01:29:55,200 --> 01:29:58,870 >> Við skulum fara á undan og svipa upp forrit sem í raun notar nokkrar tjáning, 1799 01:29:58,870 --> 01:30:00,720 a Boole-segð. 1800 01:30:00,720 --> 01:30:02,810 Leyfðu mér að fara á undan hér og búa til nýja skrá. 1801 01:30:02,810 --> 01:30:06,090 Ég kalla þetta condition.c. 1802 01:30:06,090 --> 01:30:09,350 >> Leyfðu mér að fara á undan og fela í CS50 bókasafn. 1803 01:30:09,350 --> 01:30:12,640 Og láta mig fara á undan og eru staðall io.h fyrir aðgerðir okkar, 1804 01:30:12,640 --> 01:30:14,690 og printf, og fleira í sömu röð. 1805 01:30:14,690 --> 01:30:18,900 Leyfðu mér að gefa mér að staðlaðan af int helstu ógilt, en skýring munum við 1806 01:30:18,900 --> 01:30:20,360 koma aftur til í framtíðinni. 1807 01:30:20,360 --> 01:30:23,820 >> Nú láta mig fara á undan og gefa sjálfur int gegnum þinn fá int. 1808 01:30:23,820 --> 01:30:25,970 Þá láta mig fara á undan og gera þetta. 1809 01:30:25,970 --> 01:30:30,150 Mig langar að segja ef ég er less-- skulum greina á milli jákvæð, neikvæð, 1810 01:30:30,150 --> 01:30:31,260 eða núll gildi. 1811 01:30:31,260 --> 01:30:36,630 >> Svo ef ég er minna en núll, láttu mig bara hafa þetta forrit einfaldlega að segja, 1812 01:30:36,630 --> 01:30:42,370 neikvæð, sviga n, annað ef ég er hærri en núll. 1813 01:30:42,370 --> 01:30:47,030 Nú er ég að sjálfsögðu að fara að segja printf jákvæð, sviga n. 1814 01:30:47,030 --> 01:30:50,690 Og svo annað if-- ég gæti gert þetta. 1815 01:30:50,690 --> 01:30:53,410 >> Ég gæti gert ef ég jafngildir 0. 1816 01:30:53,410 --> 01:30:55,840 En ég myndi vera að gera á kosti ein mistök þegar. 1817 01:30:55,840 --> 01:30:59,480 Muna að merkið er ekki jöfn, eins og við mennirnir vita það. 1818 01:30:59,480 --> 01:31:01,010 >> En það er verkefni rekstraraðila. 1819 01:31:01,010 --> 01:31:05,640 Og við viljum ekki að taka 0 á rétt og setja það í I á vinstri. 1820 01:31:05,640 --> 01:31:11,810 Svo til að forðast þetta rugl, eða kannski misnotkun á samasemmerkinu, 1821 01:31:11,810 --> 01:31:14,740 menn ákváðu fyrir nokkrum árum að í mörgum forritunarmálum 1822 01:31:14,740 --> 01:31:18,000 þegar þú vilt að athuga fyrir jafnrétti milli vinstri og hægri, 1823 01:31:18,000 --> 01:31:19,635 þú notar í raun jafngildir jafn. 1824 01:31:19,635 --> 01:31:21,010 Svo þú högg samasemmerkinu tvisvar. 1825 01:31:21,010 --> 01:31:25,600 Þegar þú vilt úthluta úr hægri til vinstri, nota þú einn jafnan tákn. 1826 01:31:25,600 --> 01:31:29,360 Þannig að við gætum gert this-- annað ef ég jafngildir jafnt núlli. 1827 01:31:29,360 --> 01:31:31,710 >> Ég gæti þá farið og opna hrokkið axlabönd mínum, 1828 01:31:31,710 --> 01:31:36,087 og segja, printf 0, sviga n, gert. 1829 01:31:36,087 --> 01:31:38,170 En muna hvernig þessir gafflar í veginum geta unnið. 1830 01:31:38,170 --> 01:31:39,836 Og í raun, bara hugsa um rökfræði. 1831 01:31:39,836 --> 01:31:41,510 Ég er tala. 1832 01:31:41,510 --> 01:31:43,320 Það er heiltala, sérstaklega. 1833 01:31:43,320 --> 01:31:48,600 Og það þýðir að það er að fara að vera minna en 0, eða hærri en 0, eða 0. 1834 01:31:48,600 --> 01:31:51,600 Svo er það góður af þessu skyn sjálfgefið mál. 1835 01:31:51,600 --> 01:31:54,920 >> Og svo við gætum bara eins Scratch, undanþágur með annað hvort, 1836 01:31:54,920 --> 01:31:55,747 og bara segja annað. 1837 01:31:55,747 --> 01:31:57,830 Rökrétt, ef þú er forritari veit að það er bara 1838 01:31:57,830 --> 01:32:01,635 Þrír fötunum inn sem atburðarás getur fall-- fyrst, 1839 01:32:01,635 --> 01:32:03,510 annar, eða þriðji í þessu case-- ekki 1840 01:32:03,510 --> 01:32:07,100 nennir að bæta frekari nákvæmni og frekari rökfræði þar. 1841 01:32:07,100 --> 01:32:09,690 Bara fara á undan með Sjálfgefið raunin hér á annað. 1842 01:32:09,690 --> 01:32:11,950 >> Nú, við skulum fara á undan eftir vistun þetta, gera 1843 01:32:11,950 --> 01:32:15,760 Skilyrði punktur rista conditions-- ekki mikill notandi tengi, 1844 01:32:15,760 --> 01:32:18,914 vegna þess að ég ætla ekki vekur notandi, sem ég nefndi áðan. 1845 01:32:18,914 --> 01:32:19,580 En það er allt í lagi. 1846 01:32:19,580 --> 01:32:20,454 Við munum halda það einfalt. 1847 01:32:20,454 --> 01:32:21,890 Við skulum reyna númerið 42. 1848 01:32:21,890 --> 01:32:23,240 Og það er jákvætt. 1849 01:32:23,240 --> 01:32:26,120 Við skulum reyna númerið neikvæð 42, neikvæð. 1850 01:32:26,120 --> 01:32:28,244 >> Við skulum reyna gildið 0. 1851 01:32:28,244 --> 01:32:29,160 Og reyndar það virkar. 1852 01:32:29,160 --> 01:32:33,900 Nú, þú munt sjá með vandamál áður langur, prófanir things þrisvar sinnum, 1853 01:32:33,900 --> 01:32:34,980 sennilega ekki nóg. 1854 01:32:34,980 --> 01:32:37,438 Þú vilt sennilega að prófa nokkrar stærri tölur, sumir minni 1855 01:32:37,438 --> 01:32:40,520 tölur, sum horn tilvikum, eins og við munum koma til að lýsa þeim. 1856 01:32:40,520 --> 01:32:42,500 >> En nú er þetta frekar einfalt forrit. 1857 01:32:42,500 --> 01:32:45,160 Og ég er nokkuð viss um, rökrétt, að það fellur í þremur tilvikum. 1858 01:32:45,160 --> 01:32:49,360 Og reyndar jafnvel þó að við bara áherslu á hugsanlega galla 1859 01:32:49,360 --> 01:32:53,480 af ónákvæmni og flæða í Staðreyndin þar sem margir af vandamálum CS50 er, 1860 01:32:53,480 --> 01:32:56,000 við erum ekki að fara að hafa áhyggjur um, allan tímann, 1861 01:32:56,000 --> 01:32:59,050 þessi mál af flæða og ónákvæmni, vegna þess að í raun, í C, 1862 01:32:59,050 --> 01:33:01,889 það er í raun ekki allt sem auðvelt að forðast þá hluti. 1863 01:33:01,889 --> 01:33:04,180 Ef þú vilt að telja upp stærri og stærri, og stærri, 1864 01:33:04,180 --> 01:33:07,510 það kemur í ljós að það eru aðferðir sem þú Hægt er að nota, oft með þátttöku hluti sem kallast 1865 01:33:07,510 --> 01:33:11,240 bókasöfn, söfn kóða, að annað fólk skrifaði að hægt er að nota, 1866 01:33:11,240 --> 01:33:13,910 og önnur tungumál eins Java og aðrir, reyndar 1867 01:33:13,910 --> 01:33:15,800 gera það mun auðveldara að telja jafnvel hærra. 1868 01:33:15,800 --> 01:33:19,810 Svo það er í raun sumir af þessum hættum fall af tungumálinu sem þú notar. 1869 01:33:19,810 --> 01:33:22,710 Og á næstu vikum munum við sjá hvernig hættuleg C í raun 1870 01:33:22,710 --> 01:33:24,950 getur verið ef þú notar hana ekki rétt. 1871 01:33:24,950 --> 01:33:27,610 En þaðan, og með Python, og JavaScript, verður 1872 01:33:27,610 --> 01:33:32,620 við lag á nokkur vernd, og keyra færri þessa áhættu. 1873 01:33:32,620 --> 01:33:35,820 >> Svo skulum gera a lítill fleiri áhugavert rökfræði í prógramminu. 1874 01:33:35,820 --> 01:33:39,110 Svo láta mig fara á undan og búa til forrit sem heitir Logical 1875 01:33:39,110 --> 01:33:43,804 bara svo ég geti spilað með nokkrum Raunveruleg rökfræði, logical.c. 1876 01:33:43,804 --> 01:33:46,870 Ég ætla bara að afrita og líma sumir númer frá fyrr svo ég kem til baka 1877 01:33:46,870 --> 01:33:49,950 að þessum fallegu útgangspunkt. 1878 01:33:49,950 --> 01:33:53,980 >> Láttu mig þennan tíma að gera bleikju C. ég er að fara að gefa það a nafn C 1879 01:33:53,980 --> 01:33:58,510 bara vegna þess að það er hefðbundin, fá staf frá notanda. 1880 01:33:58,510 --> 01:34:00,730 Og við skulum láta eins og Ég ætla að innleiða hluta 1881 01:34:00,730 --> 01:34:04,130 af því Rm program, the fjarlægja forrit áður beðið notanda 1882 01:34:04,130 --> 01:34:05,400 til að fjarlægja skrá. 1883 01:34:05,400 --> 01:34:06,750 Hvernig getum við gert þetta? 1884 01:34:06,750 --> 01:34:11,090 >> Ég vil segja, ef C er jafnt jafngildir, vitna unquote, 1885 01:34:11,090 --> 01:34:16,304 Y, þá ætla ég að gera ráð fyrir sem notandinn hefur valið já. 1886 01:34:16,304 --> 01:34:17,470 Ég ætla bara að fara að prenta já. 1887 01:34:17,470 --> 01:34:19,440 Ef það voru í raun að skrifa flutningur program, 1888 01:34:19,440 --> 01:34:21,420 við gætum fjarlægja skrána með fleiri línur af kóða. 1889 01:34:21,420 --> 01:34:22,461 En við munum halda það einfalt. 1890 01:34:22,461 --> 01:34:25,950 1891 01:34:25,950 --> 01:34:31,250 >> Annars ef c jafngildir jafngildir n- og nú hér, ég ætla að segja, 1892 01:34:31,250 --> 01:34:32,980 notandinn þarf að hafa ætlað nr. 1893 01:34:32,980 --> 01:34:34,360 Og þá annað, þú veist hvað? 1894 01:34:34,360 --> 01:34:36,200 Ég veit ekki hvað annað notandinn er að fara að slá. 1895 01:34:36,200 --> 01:34:38,533 Þannig að ég ætla bara að fara að segja að það er villa, hvað 1896 01:34:38,533 --> 01:34:40,070 hann eða hún slegið í raun. 1897 01:34:40,070 --> 01:34:41,180 >> Svo hvað er að gerast hér? 1898 01:34:41,180 --> 01:34:44,530 Það er grundvallarmunur á móti því sem ég hef gert í fortíðinni. 1899 01:34:44,530 --> 01:34:49,300 Gæsalappa, gæsalappa, tvöfaldur vitna, og enn, einn vitna, 1900 01:34:49,300 --> 01:34:50,170 einn vitna. 1901 01:34:50,170 --> 01:34:52,860 Það kemur í ljós í C, að þegar þú vilt að skrifa band, 1902 01:34:52,860 --> 01:34:56,680 þú notar gæsalappa, rétt eins og við höfum verið að nota allan þennan tíma með printf. 1903 01:34:56,680 --> 01:35:02,030 >> En ef þú vilt að takast á við bara einn staf, svokallaða bleikju, 1904 01:35:02,030 --> 01:35:03,780 þá þú notar í raun einn quotes. 1905 01:35:03,780 --> 01:35:05,450 Þau ykkar sem hafa forritað áður, þú might ekki hafa 1906 01:35:05,450 --> 01:35:07,850 þurfti að hafa áhyggjur af þessu greinarmun á tilteknum tungumálum. 1907 01:35:07,850 --> 01:35:09,450 Í C, það skiptir máli. 1908 01:35:09,450 --> 01:35:12,560 Og svo þegar ég fá bleikju og ég vil að bera saman þessi char með jafn 1909 01:35:12,560 --> 01:35:18,350 jafngildir að nokkru stafnum eins og Y eða n, ég, reyndar þarf að hafa einn quotes. 1910 01:35:18,350 --> 01:35:19,770 >> Nú, við skulum fara á undan og gera þetta. 1911 01:35:19,770 --> 01:35:26,180 Við skulum fara á undan og gera rökrétt punktur rista rökrétt. 1912 01:35:26,180 --> 01:35:27,305 Og nú er ég kvaðningu. 1913 01:35:27,305 --> 01:35:30,638 Svo, væntanlega, betri reynslu notenda myndi reyndar segja mér hvað ég á að gera hér. 1914 01:35:30,638 --> 01:35:33,030 En ég ætla að bara í blindni segja y fyrir já, OK, gott. 1915 01:35:33,030 --> 01:35:35,780 >> Skulum keyra hana aftur, n fyrir nei, gott. 1916 01:35:35,780 --> 01:35:39,610 Segjum eins og ákveðnar fólk sem ég þekki, húfur mínir Lock lykilinn er á allt of oft. 1917 01:35:39,610 --> 01:35:43,740 Svo ég höfuðborg Y, slá, villa. 1918 01:35:43,740 --> 01:35:46,130 OK, það er ekki nákvæmlega það sem ég er að búast við. 1919 01:35:46,130 --> 01:35:48,170 Reyndar, the tölva er að gera bókstaflega hvað 1920 01:35:48,170 --> 01:35:51,794 Ég sagði það að do-- athuga lágstafir y og lágstafir n. 1921 01:35:51,794 --> 01:35:53,960 Þetta þýðir ekki að líða eins vel notandi reynsla, þó. 1922 01:35:53,960 --> 01:35:59,010 Leyfðu mér að spyrja um og samþykkja annaðhvort lágstöfum eða efri ræða. 1923 01:35:59,010 --> 01:36:02,090 Svo kemur í ljós, gætir þú vilt að segja eitthvað eins og í grunni, 1924 01:36:02,090 --> 01:36:08,150 eins bókstaflega eða C jafngildir jafngildir fjármagns einn vitnað y. 1925 01:36:08,150 --> 01:36:11,400 Skrúfjárn út, C hefur ekki þetta bókstaflega leitarorð eða. 1926 01:36:11,400 --> 01:36:12,880 >> En það hjartarskinn hafa tvær lóðrétt bars. 1927 01:36:12,880 --> 01:36:15,463 Þú þarft að halda inni Shift yfirleitt, ef þú ert að nota bandaríska lyklaborð, 1928 01:36:15,463 --> 01:36:18,910 og högg lóðrétt bar Lykillinn að ofan aftur lykil. 1929 01:36:18,910 --> 01:36:22,410 En þetta lóðrétt strik lóðrétt strik þýðir eða. 1930 01:36:22,410 --> 01:36:26,220 >> Ef, hins vegar vildum við að segja og, eins og í grunni, 1931 01:36:26,220 --> 01:36:28,180 við gætum gert merkið merkið. 1932 01:36:28,180 --> 01:36:31,330 Það gerir ekkert rökrétt vit hér, vegna þess að maður gæti ekki hugsanlega 1933 01:36:31,330 --> 01:36:37,110 hefur slegið bæði y og lágstafir Y og fjármagn Y sem á sama staf. 1934 01:36:37,110 --> 01:36:39,470 Svo eða er það sem við ætlum hér. 1935 01:36:39,470 --> 01:36:46,280 >> Svo ef ég geri þetta á báðum stöðum, eða c jafngildir jafngildir höfuðborg N, nú endursýning, 1936 01:36:46,280 --> 01:36:49,390 gera rökrétt, endursýning rökrétt. 1937 01:36:49,390 --> 01:36:51,200 Nú, ég get slegið y. 1938 01:36:51,200 --> 01:36:53,920 Og ég get gert það aftur með höfuðborg Y, eða höfuðborg N. 1939 01:36:53,920 --> 01:36:56,630 Og ég gæti bætt í til viðbótar samsetningar enn. 1940 01:36:56,630 --> 01:36:58,810 >> Þannig að þetta er rökrétt Forritið svo miklu leyti sem nú 1941 01:36:58,810 --> 01:37:01,940 Ég stöðva rökrétt að þetta gildi eða þetta gildi. 1942 01:37:01,940 --> 01:37:06,420 Og ég þarf ekki að endilega, koma upp með tveimur fleiri IFS eða annars IFS. 1943 01:37:06,420 --> 01:37:09,960 Ég get reyndar sameina nokkrar af tengjast rökfræði saman á þennan hátt. 1944 01:37:09,960 --> 01:37:11,950 Þannig að þetta væri betra hannað en einfaldlega 1945 01:37:11,950 --> 01:37:17,490 segja, ef C er jafnt lágstöfum y, prenta já, annars ef c jafngildir höfuðborg Y, 1946 01:37:17,490 --> 01:37:20,074 prenta já, annars ef c jafngildir lower-- í öðrum orðum, 1947 01:37:20,074 --> 01:37:21,990 þú þarft ekki að hafa fleiri og fleiri útibú. 1948 01:37:21,990 --> 01:37:28,840 Þú getur sameinað nokkrar af andvirði Útibú rökrétt, eins og á þennan hátt. 1949 01:37:28,840 --> 01:37:34,150 >> Svo skulum taka a líta á bara eitt Endanleg innihaldsefni, eitt endanlega reisa, 1950 01:37:34,150 --> 01:37:34,847 sem C leyfir. 1951 01:37:34,847 --> 01:37:36,930 Og við munum koma aftur í Framtíð öðrum enn. 1952 01:37:36,930 --> 01:37:41,400 Og þá munum við gera með því að skoða á ekki rétt á code-- 1953 01:37:41,400 --> 01:37:46,070 fá kóðann til work-- en hönnun af kóða, og planta þeim fræ snemma. 1954 01:37:46,070 --> 01:37:51,337 >> Svo láta mig fara á undan og opna nýja skrá hér. 1955 01:37:51,337 --> 01:37:51,920 Veistu hvað? 1956 01:37:51,920 --> 01:37:54,450 Ég ætla að koma aftur að innleiða sama program, 1957 01:37:54,450 --> 01:37:55,940 en nota aðra reisa. 1958 01:37:55,940 --> 01:38:00,110 >> Svo láta mig fljótlega gefa mig Aðgangur að fela CS50.h 1959 01:38:00,110 --> 01:38:04,150 fyrir CS50 bókasafn, staðall io.h fyrir printf. 1960 01:38:04,150 --> 01:38:06,510 Gefðu mér int helstu ógilt mína. 1961 01:38:06,510 --> 01:38:09,310 Og þá hérna, láttu mig fara á undan og gera þetta. 1962 01:38:09,310 --> 01:38:12,010 >> Char c fær fá bleikju, rétt eins og áður. 1963 01:38:12,010 --> 01:38:16,770 Og ég ætla að nota nýja reisa now-- skipta, á hvaða staf? 1964 01:38:16,770 --> 01:38:19,820 Svo er rofi góður af eins og skipta lest lögin. 1965 01:38:19,820 --> 01:38:22,070 Eða, í raun, það er góður af if annað, ef annað hvort, 1966 01:38:22,070 --> 01:38:23,980 en skrifað nokkuð öðruvísi. 1967 01:38:23,980 --> 01:38:25,490 >> A rofi lítur svona út. 1968 01:38:25,490 --> 01:38:29,060 Þú ert rofi, og þá hvað eðli eða númer sem þú vilt horfa á, 1969 01:38:29,060 --> 01:38:32,000 þá sumir hrokkið axlabönd eins og í Scratch, bara segja gera þetta efni. 1970 01:38:32,000 --> 01:38:33,480 Og þá þú hefur mismunandi tilvikum. 1971 01:38:33,480 --> 01:38:34,830 >> Þú notar ekki ef og annað. 1972 01:38:34,830 --> 01:38:37,050 Þú notar bókstaflega orðið málið. 1973 01:38:37,050 --> 01:38:38,790 Og þú myndir segja eitthvað eins og þetta. 1974 01:38:38,790 --> 01:38:43,820 >> Þannig að um er að ræða lágstafir y, eða um er að ræða a fjármagns Y, 1975 01:38:43,820 --> 01:38:47,350 fara á undan og prenta út já. 1976 01:38:47,350 --> 01:38:49,020 Og þá brjótast út úr rofi. 1977 01:38:49,020 --> 01:38:49,580 Það er það. 1978 01:38:49,580 --> 01:38:50,880 Við erum búin. 1979 01:38:50,880 --> 01:38:57,270 >> Annars ef svo má segja, lágstöfum n, eða höfuðborg N, 1980 01:38:57,270 --> 01:39:02,560 þá fara á undan og prenta út nei, og þá brjóta. 1981 01:39:02,560 --> 01:39:08,022 Else-- og svona er Sjálfgefið ræða indeed-- printf error-- 1982 01:39:08,022 --> 01:39:10,980 og bara gott mál, þó rökrétt þetta brot er ekki nauðsynlegt 1983 01:39:10,980 --> 01:39:12,896 vegna þess að við erum í lok af the rofi samt, 1984 01:39:12,896 --> 01:39:14,520 Ég ætla nú að brjóta út af the rofi. 1985 01:39:14,520 --> 01:39:16,280 Svo lítur þetta svolítið öðruvísi. 1986 01:39:16,280 --> 01:39:18,272 >> En, rökrétt, það er reyndar jafngildi. 1987 01:39:18,272 --> 01:39:19,980 Og hvers vegna vildi þú nota einn yfir öðrum? 1988 01:39:19,980 --> 01:39:23,220 Stundum, bara persónulegt val, stundum fagurfræði, 1989 01:39:23,220 --> 01:39:25,420 ef ég litið á þetta nú, það er eitthvað 1990 01:39:25,420 --> 01:39:27,510 að segja fyrir sýnilegur þessum kóða. 1991 01:39:27,510 --> 01:39:30,690 Ég meina, aldrei hugur sú staðreynd að þetta númerið er nýtt til margir af okkur í herberginu. 1992 01:39:30,690 --> 01:39:33,515 >> En það er bara svona nokkuð. 1993 01:39:33,515 --> 01:39:37,760 Þú sérð lágstafir Y, höfuðborg Y, lágstöfum n, höfuðborg N sjálfgefið, 1994 01:39:37,760 --> 01:39:40,150 það stekkur bara svona út á þig á þann hátt 1995 01:39:40,150 --> 01:39:42,200 að öllum líkindum, kannski fyrri dæmi 1996 01:39:42,200 --> 01:39:45,780 við Skógrækt ríkisins, og lóðrétt bars, og aðrir eru IFS, gæti ekki hafa. 1997 01:39:45,780 --> 01:39:51,600 Svo er þetta virkilega spurning um persónulegt val, í raun, eða sýnilegur, 1998 01:39:51,600 --> 01:39:52,360 af kóða. 1999 01:39:52,360 --> 01:39:58,230 >> En í skilmálar af virkni, láttu mig fara á undan og gera skipta, punktur rista 2000 01:39:58,230 --> 01:40:05,830 skipta, og nú slá í lágstafir y, höfuðborg Y, lágstafir n, höfuðborg N, 2001 01:40:05,830 --> 01:40:09,250 David, reyna aftur því það er ekki einn staf. 2002 01:40:09,250 --> 01:40:12,050 Við skulum gera x, villa, eins og búist var við. 2003 01:40:12,050 --> 01:40:15,640 Og, logically-- og þetta er eitthvað Ég myndi hvetja í general-- jafnvel 2004 01:40:15,640 --> 01:40:17,790 þó að við erum aðeins að klóra í Yfirborð sumir af þessum eiginleikum. 2005 01:40:17,790 --> 01:40:20,560 >> Og það gæti ekki verið augljóst þegar þú sjálfur setjast á lyklaborðinu, 2006 01:40:20,560 --> 01:40:21,370 hvernig virkar þetta? 2007 01:40:21,370 --> 01:40:22,240 Hvað myndi þetta gera? 2008 01:40:22,240 --> 01:40:25,630 Hin fallega hlutur óður í having fartölvu, eða skrifborð, eða aðgang 2009 01:40:25,630 --> 01:40:29,290 við tölvu með þýðanda, og með kóða ritstjóri eins og þetta, 2010 01:40:29,290 --> 01:40:32,990 er þú getur næstum alltaf svarað þeim spurningar fyrir þig bara með því að reyna. 2011 01:40:32,990 --> 01:40:36,570 >> Til dæmis, ef Retorísk Spurningin hendi voru, 2012 01:40:36,570 --> 01:40:39,540 hvað gerist ef þú gleymir brjóta fullyrðingar þínar? 2013 01:40:39,540 --> 01:40:41,400 Sem er í raun Mjög algengt hlutur til gera, 2014 01:40:41,400 --> 01:40:43,540 vegna þess að það lítur ekki eins og þú raunverulega þörf þá. 2015 01:40:43,540 --> 01:40:46,790 Þeir í raun ekki að ljúka við hélt eins sviga eða hrokkið 2016 01:40:46,790 --> 01:40:47,714 Brace gerir. 2017 01:40:47,714 --> 01:40:49,630 Við skulum fara á undan og endurþýða kóðann og sjá. 2018 01:40:49,630 --> 01:40:53,690 Svo gera rofi, punktur rista skipta. 2019 01:40:53,690 --> 01:40:56,435 Við skulum slá í neðri tilfelli Y, the toppur ræða, Enter. 2020 01:40:56,435 --> 01:40:59,390 2021 01:40:59,390 --> 01:41:00,700 Svo ég gafst y. 2022 01:41:00,700 --> 01:41:04,420 >> The program sagði já, nei, villa, eins og það var að skipta um skoðun hennar. 2023 01:41:04,420 --> 01:41:09,280 En það var eins konar, vegna þess að það gerist með rofa er fyrsta málið sem 2024 01:41:09,280 --> 01:41:13,899 Leikurinn þýðir í raun, hey tölvu, framkvæma allan kóðann undir honum. 2025 01:41:13,899 --> 01:41:16,690 Og ef þú segir ekki brot, eða ekki segja hlé, eða ekki segja hlé, 2026 01:41:16,690 --> 01:41:19,540 tölvan er að fara að blása gegnum allar þessar línur 2027 01:41:19,540 --> 01:41:22,779 og framkvæma þær allar til það gerist að hrokkið Brace. 2028 01:41:22,779 --> 01:41:24,320 Svo bremsur eru reyndar nauðsynlegt. 2029 01:41:24,320 --> 01:41:27,120 En takeaway hér er, þegar í vafa, reyna eitthvað. 2030 01:41:27,120 --> 01:41:29,510 Kannski vista númerið þitt fyrst, eða vista hana í auka skrá 2031 01:41:29,510 --> 01:41:32,930 ef þú ert virkilega áhyggjur af Messías upp og þurfa að batna 2032 01:41:32,930 --> 01:41:34,430 þá vinnu sem þú veist er að vinna. 2033 01:41:34,430 --> 01:41:35,410 >> En að reyna það. 2034 01:41:35,410 --> 01:41:38,074 Og ekki vera eins hrædd, ef til vill, um hvað tölva gæti gert, 2035 01:41:38,074 --> 01:41:39,490 eða að þú gætir brjóta eitthvað. 2036 01:41:39,490 --> 01:41:42,790 Þú getur alltaf snúa aftur að einhverju fyrri útgáfu. 2037 01:41:42,790 --> 01:41:45,640 >> Svo skulum enda með því að leita á hönnun af kóða. 2038 01:41:45,640 --> 01:41:49,020 Við höfum þessa getu nú að skrifa skilyrði og skrifa lykkjur, 2039 01:41:49,020 --> 01:41:50,850 og breytur, og kalla aðgerðir. 2040 01:41:50,850 --> 01:41:54,590 Svo, hreinskilnislega, við erum eins konar aftur á þar sem við vorum fyrir viku síðan með grunni, 2041 01:41:54,590 --> 01:42:00,120 að vísu með minna sannfærandi texta umhverfi en grunni leyfir. 2042 01:42:00,120 --> 01:42:03,990 >> En eftir hversu fljótt við höfum keypt að orðaforði, jafnvel ef það er 2043 01:42:03,990 --> 01:42:07,570 að fara að taka smá tíma að sökkva í, þannig að við getum nú notað þennan orðaforða 2044 01:42:07,570 --> 01:42:10,320 að skrifa meira áhugavert forrit. 2045 01:42:10,320 --> 01:42:12,940 Og við skulum taka barn stíga til að, eins og hér segir. 2046 01:42:12,940 --> 01:42:14,890 Leyfðu mér að fara á undan og búa til nýja skrá hér. 2047 01:42:14,890 --> 01:42:17,750 >> Ég ætla að kalla þetta prototype.c og kynna 2048 01:42:17,750 --> 01:42:20,954 í fyrsta skipti, getu að gera eigin starfsemi þína. 2049 01:42:20,954 --> 01:42:22,870 Sumir af þú might hafa gert þetta með grunni, 2050 01:42:22,870 --> 01:42:25,430 þannig að þú getur búið til þinn eigin sérsniðið blokkir í grunni, 2051 01:42:25,430 --> 01:42:27,892 og þá draga þá inn í stað hvar þú vilt í C. 2052 01:42:27,892 --> 01:42:30,100 Og í flestum forritun tungumál, getur þú gert nákvæmlega 2053 01:42:30,100 --> 01:42:33,580 that-- gera eigin starfsemi þína, ef þeir ekki þegar til staðar. 2054 01:42:33,580 --> 01:42:38,660 >> Svo, til dæmis, láta mig fara á undan og eru CS50.h, og fela í sér 2055 01:42:38,660 --> 01:42:43,110 staðall io.h, int helstu ógilt. 2056 01:42:43,110 --> 01:42:46,020 Og nú höfum við STAÐGENGILL tilbúinn til að fara. 2057 01:42:46,020 --> 01:42:48,550 Ég halda prentun hlutum eins og nöfn fólks í dag. 2058 01:42:48,550 --> 01:42:51,910 Og það finnst like-- myndi ekki vera gott ef það 2059 01:42:51,910 --> 01:42:53,936 voru fall sem kallast prenta nafn? 2060 01:42:53,936 --> 01:42:55,060 Ég þarf ekki að nota printf. 2061 01:42:55,060 --> 01:42:56,976 Ég þarf ekki að muna allir sniði númerin. 2062 01:42:56,976 --> 01:43:00,050 Af hverju ekki ég, eða hvers vegna ekki einhver frammi fyrir mér, 2063 01:43:00,050 --> 01:43:02,980 búa til fall sem kallast prenta nafn, sem gefa nokkurn nafn, 2064 01:43:02,980 --> 01:43:03,980 einfaldlega prenta það út? 2065 01:43:03,980 --> 01:43:08,700 >> Með öðrum orðum, ef ég segi, hey, tölva, gefa mér streng 2066 01:43:08,700 --> 01:43:11,870 með því að spyrja notandann um slíkt, um fá band virka CS50 er. 2067 01:43:11,870 --> 01:43:15,090 Hey, tölva, setja þessi band í að breyta í vinstri hönd, 2068 01:43:15,090 --> 01:43:16,150 og kalla það s. 2069 01:43:16,150 --> 01:43:22,150 Og þá, hey tölvu, fara á undan og prenta að nafn manns, gert. 2070 01:43:22,150 --> 01:43:26,240 >> Nú, það væri gaman, því þetta forrit, viðeigandi nafni, 2071 01:43:26,240 --> 01:43:29,170 segir mér hvað það er ætlast til að gera með því að nöfnum þeim sem virka er. 2072 01:43:29,170 --> 01:43:32,930 Leyfðu mér að fara og gera frumgerð, Enter. 2073 01:43:32,930 --> 01:43:34,930 Og, því miður, þetta er ekki að fara að fljúga. 2074 01:43:34,930 --> 01:43:39,430 >> Prototype.c, lína 7, eðli 5, villa, óbeina yfirlýsingu 2075 01:43:39,430 --> 01:43:42,960 af virka prenta nafn er ógild C99, C99 2076 01:43:42,960 --> 01:43:45,130 þýðir útgáfu af C sem kom út árið 1999. 2077 01:43:45,130 --> 01:43:45,730 Það er allt og sumt. 2078 01:43:45,730 --> 01:43:48,780 >> Svo ég veit ekki hvað allt þetta þýðir enn. 2079 01:43:48,780 --> 01:43:50,810 En ég kannast villa í rauðu. 2080 01:43:50,810 --> 01:43:51,770 Það er nokkuð augljóst. 2081 01:43:51,770 --> 01:43:53,769 >> Og það virðist sem við græna eðli hér, 2082 01:43:53,769 --> 01:43:57,520 málið er með nafni prenta, opið svigi s, loka svigi, hálf-ristli. 2083 01:43:57,520 --> 01:44:01,800 En óbeina yfirlýsingu um virka við gerðum sjá stuttlega fyrr. 2084 01:44:01,800 --> 01:44:04,880 Þetta þýðir einfaldlega, að Clang veit ekki hvað ég meina. 2085 01:44:04,880 --> 01:44:09,000 >> Ég hef notað orðaforða orð sem það er aldrei séð eða verið kennt áður. 2086 01:44:09,000 --> 01:44:11,950 Og svo ég þarf að kenna það hvað þessi aðgerð þýðir. 2087 01:44:11,950 --> 01:44:13,590 Þannig að ég ætla að fara á undan og gera það. 2088 01:44:13,590 --> 01:44:17,970 >> Ég ætla að fara á undan og framkvæma mitt eigið fall sem heitir Print Name. 2089 01:44:17,970 --> 01:44:24,720 Og ég ætla að segja, eins og hér segir, að það gerir þetta, printf, halló, prósent 2090 01:44:24,720 --> 01:44:27,760 s, sviga n, nafn, hálf-hreinsun. 2091 01:44:27,760 --> 01:44:29,250 Svo hvað gerði ég bara? 2092 01:44:29,250 --> 01:44:31,325 >> Svo kemur í ljós, að framkvæma eigin virka, 2093 01:44:31,325 --> 01:44:33,845 við eins konar láni sumir af sama uppbygging og helstu 2094 01:44:33,845 --> 01:44:35,720 að við höfum bara verið tekið sem sjálfsögðum hlut, og ég 2095 01:44:35,720 --> 01:44:37,730 veit bara að afrita og líma ansi mikið hvað 2096 01:44:37,730 --> 01:44:39,170 Ég hef verið að skrifa í fortíðinni. 2097 01:44:39,170 --> 01:44:40,570 En eftir mynstri hérna. 2098 01:44:40,570 --> 01:44:43,750 Int, Main, Void, við munum stríða sundur Áður en langt hvað það raunverulega þýðir. 2099 01:44:43,750 --> 01:44:46,160 >> En í dag, bara taka parallelism. 2100 01:44:46,160 --> 01:44:48,210 Void, nafn prenta, band nafn, þannig að það er 2101 01:44:48,210 --> 01:44:50,310 fjólublá leitarorð, sem við erum að fara að byrja 2102 01:44:50,310 --> 01:44:54,067 hringja til baka gerð, nafn virka, og þá inntak. 2103 01:44:54,067 --> 01:44:56,400 Svo, í raun getum við distill af þessu tagi eins og síðustu viku 2104 01:44:56,400 --> 01:44:59,030 sem þetta er nafn eða reiknirit kóða við erum 2105 01:44:59,030 --> 01:45:00,761 fara til write-- á reiknirit undirliggjandi 2106 01:45:00,761 --> 01:45:02,010 kóðinn sem við erum að fara að skrifa. 2107 01:45:02,010 --> 01:45:03,180 >> Þetta er inntak hennar. 2108 01:45:03,180 --> 01:45:04,670 Þetta er framleiðsla hennar. 2109 01:45:04,670 --> 01:45:08,730 Þessi aðgerð, prenta nafn, er sem ætlað er að taka band sem heitir nafn, 2110 01:45:08,730 --> 01:45:11,350 eða hvað, sem inntak, og þá ógilt. 2111 01:45:11,350 --> 01:45:13,904 Það þýðir ekki aftur neitt, eins fá band eða fá INT gerir. 2112 01:45:13,904 --> 01:45:15,570 Svo það er að fara að skila mér eitthvað til baka. 2113 01:45:15,570 --> 01:45:17,960 Það er bara að fara að hafa aukaverkun, svo að segja, 2114 01:45:17,960 --> 01:45:19,570 af prentun nafn einstaklingsins. 2115 01:45:19,570 --> 01:45:22,260 Svo eftir, lína 7, I getur hringt prenta nafn. 2116 01:45:22,260 --> 01:45:25,920 Line 10, get ég skilgreint eða framkvæma prenta nafn. 2117 01:45:25,920 --> 01:45:28,450 En, því miður, það er ekki nóg. 2118 01:45:28,450 --> 01:45:31,230 >> Leyfðu mér að fara á undan og endurþýða þetta eftir vistun. 2119 01:45:31,230 --> 01:45:33,910 Whoa, nú hef ég gert það verra, það virðist. 2120 01:45:33,910 --> 01:45:37,027 Svo óbeina yfirlýsingu um virka prenta nafn er ógilt. 2121 01:45:37,027 --> 01:45:38,360 Og aftur, það er fleiri villur. 2122 01:45:38,360 --> 01:45:41,430 En eins og ég varaði fyrr, jafnvel ef þú færð óvart með, 2123 01:45:41,430 --> 01:45:44,850 eða smá sorglegt að sjá svona marga villur, einblína á fyrsta 2124 01:45:44,850 --> 01:45:47,500 í upphafi, vegna þess að það gæti bara hafa haft Cascading áhrif. 2125 01:45:47,500 --> 01:45:51,970 Svo C, eða Clang nánar tiltekið, enn ekki viðurkenna prenta nafn. 2126 01:45:51,970 --> 01:45:54,580 >> Og það er vegna þess Clang, við hönnun, er eins konar heimsk. 2127 01:45:54,580 --> 01:45:56,280 Það gerir bara það sem þú segir það að gera. 2128 01:45:56,280 --> 01:46:00,950 Og það er bara svo í röð þar sem þú segir það að gera. 2129 01:46:00,950 --> 01:46:05,270 >> Ég hef skilgreint helstu á línu fjórum, eins og við höfum verið að gera ansi oft. 2130 01:46:05,270 --> 01:46:07,980 Ég hef skilgreint prenta nafnið á línu 10. 2131 01:46:07,980 --> 01:46:11,793 En ég er að reyna að nota prenta nafn á línu sjö. 2132 01:46:11,793 --> 01:46:13,670 >> Það er of fljótt, er ekki til ennþá. 2133 01:46:13,670 --> 01:46:19,150 Þannig að ég gæti verið sniðug, og vera eins, OK, þannig að við skulum bara spila með, 2134 01:46:19,150 --> 01:46:23,680 og hreyfa prenta nafn upp hér, og koma aftur saman. 2135 01:46:23,680 --> 01:46:24,550 Guð minn góður. 2136 01:46:24,550 --> 01:46:25,260 Það virkaði. 2137 01:46:25,260 --> 01:46:26,670 Það var eins einfalt eins og þessi. 2138 01:46:26,670 --> 01:46:28,120 >> En rökfræði er einmitt það. 2139 01:46:28,120 --> 01:46:30,870 Þú þarft að kenna Clang það er því að skilgreina aðgerðina fyrst. 2140 01:46:30,870 --> 01:46:31,920 Þá er hægt að nota það. 2141 01:46:31,920 --> 01:46:33,940 En hreinskilnislega, þetta finnst eins og hála brekku. 2142 01:46:33,940 --> 01:46:35,773 >> Svo í hvert skipti sem ég keyrt í vanda, ég er bara 2143 01:46:35,773 --> 01:46:39,450 að fara að varpa ljósi og afrita Ég skrifaði, skera það og líma það upp hér. 2144 01:46:39,450 --> 01:46:41,370 Og vissulega, við gátum contrive sumum tilfellum 2145 01:46:41,370 --> 01:46:43,286 þar ein aðgerð gæti þarf að hringja annað. 2146 01:46:43,286 --> 01:46:46,030 Og þú bara getur ekki sett hverjum fall ofan hvert annað. 2147 01:46:46,030 --> 01:46:47,930 >> Svo kemur í ljós að það er betri lausn. 2148 01:46:47,930 --> 01:46:50,100 Við getum skilið þetta verið. 2149 01:46:50,100 --> 01:46:53,677 Og hreinskilnislega, það er yfirleitt gott, og þægilegt, og góð hönnun 2150 01:46:53,677 --> 01:46:56,760 að setja helstu fyrsta, vegna þess, aftur, Helstu bara eins og þegar grænn fáni smellt 2151 01:46:56,760 --> 01:46:59,027 það er fall sem fær keyrð sjálfgefið. 2152 01:46:59,027 --> 01:47:01,110 Svo þú might eins og heilbrigður að setja það efst á skránni 2153 01:47:01,110 --> 01:47:03,560 þannig að þegar þú eða einhver annar maður lítur á skrá 2154 01:47:03,560 --> 01:47:06,360 þú veist hvað er að gerast bara með því að lesa helstu fyrst. 2155 01:47:06,360 --> 01:47:15,360 Svo kemur í ljós, getum við sagt Clang stanslaust, hey, Clang, á línu fjórum, 2156 01:47:15,360 --> 01:47:17,940 Ég lofa að framkvæma fall sem heitir Print 2157 01:47:17,940 --> 01:47:22,600 Nafnið sem tekur streng nefndi sem inntak, og skilar engu, ógilt. 2158 01:47:22,600 --> 01:47:24,770 Og ég næ í kring til útfæra hana síðar. 2159 01:47:24,770 --> 01:47:25,680 >> Hér kemur Main. 2160 01:47:25,680 --> 01:47:29,130 Main nú á línu 9 er hægt að nota Print Nafn vegna Clang 2161 01:47:29,130 --> 01:47:32,600 treystir því, að lokum, það verður fundur skilgreiningu 2162 01:47:32,600 --> 01:47:34,880 um framkvæmd Prenta Nafn. 2163 01:47:34,880 --> 01:47:37,390 Svo eftir vistun skrá minn, láta mig fara á undan og gera frumgerð, 2164 01:47:37,390 --> 01:47:38,498 lítur vel út að þessu sinni. 2165 01:47:38,498 --> 01:47:43,470 Punktur rista, frumgerð, láttu mig fara á undan og sláðu inn nafn. 2166 01:47:43,470 --> 01:47:48,440 David, halló David, Zamila, halló Zamila, og reyndar nú virkar það. 2167 01:47:48,440 --> 01:47:52,200 >> Svo efnið hér er að við höfum gerði sérsniðna virka, eins og siðvenja 2168 01:47:52,200 --> 01:47:54,219 Scratch blokk við erum að kalla það. 2169 01:47:54,219 --> 01:47:57,010 En ólíkt grunni þar sem þú getur bara búa hana til og byrja að nota það, 2170 01:47:57,010 --> 01:47:59,330 Nú verðum við að vera lítið meira smámunasamur, 2171 01:47:59,330 --> 01:48:03,410 og í raun þjálfa Clang að nota, eða til að búast við það. 2172 01:48:03,410 --> 01:48:09,140 Nú, eins og innskot, hvers vegna allan þennan tíma hafa við verið bara í blindni á trú meðal 2173 01:48:09,140 --> 01:48:12,170 CS50.h, og þar á meðal venjulegu io.h? 2174 01:48:12,170 --> 01:48:15,190 >> Jæja, það kemur í ljós, meðal nokkrum öðrum hlutum, 2175 01:48:15,190 --> 01:48:18,550 allt sem er í þeim punktur h skrár, sem gerast til vera skrá. 2176 01:48:18,550 --> 01:48:20,460 Þeir eru haus skrár, svo að segja. 2177 01:48:20,460 --> 01:48:23,270 Þeir eru enn skrifaður í C. En þeir eru öðruvísi tegund af skrá. 2178 01:48:23,270 --> 01:48:28,690 >> Fyrir nú, getur þú nánast gert ráð fyrir að allt sem er inni CS50.h 2179 01:48:28,690 --> 01:48:33,360 er einhver-liners eins og þetta, ekki fyrir aðgerðir sem kallast Print Nafn, 2180 01:48:33,360 --> 01:48:36,840 en fyrir fá band, Fá Fljóta, og nokkrum öðrum. 2181 01:48:36,840 --> 01:48:41,510 Og það eru svipaðar frumútgáfur, einn liners, inni af venjulegu io.h 2182 01:48:41,510 --> 01:48:46,241 fyrir printf, sem nú er í eigin Print Nafn virka minn. 2183 01:48:46,241 --> 01:48:49,490 Svo í öðrum orðum, þetta allan tímann sem við höfum bara verið blindni afrita og líma 2184 01:48:49,490 --> 01:48:51,780 eru þetta, eru það, hvað er að gerast? 2185 01:48:51,780 --> 01:48:55,310 Þeir eru bara svona vísbendingum að Clang um hvað aðgerðir 2186 01:48:55,310 --> 01:49:00,170 eru reyndar, framkvæmda, bara annars staðar í mismunandi skrám 2187 01:49:00,170 --> 01:49:02,440 annars staðar á kerfinu. 2188 01:49:02,440 --> 01:49:05,160 >> Þannig að við höfum innleitt prenta nafn. 2189 01:49:05,160 --> 01:49:07,910 Það hjartarskinn hafa þessa aukaverkun prentun eitthvað á skjánum. 2190 01:49:07,910 --> 01:49:10,170 En það er í raun ekki rétta mér eitthvað til baka. 2191 01:49:10,170 --> 01:49:12,200 Hvernig eigum við að fara um framkvæmd áætlun sem 2192 01:49:12,200 --> 01:49:14,510 er rétta mér eitthvað til baka? 2193 01:49:14,510 --> 01:49:15,580 >> Jæja, við skulum reyna þetta. 2194 01:49:15,580 --> 01:49:21,360 Leyfðu mér að fara á undan og framkvæma skrá sem heitir return.c 2195 01:49:21,360 --> 01:49:24,530 svo við getum sýnt fram á hvernig eitthvað eins fá band, eða fá Int, 2196 01:49:24,530 --> 01:49:27,340 er í raun aftur eitthvað til baka til notandans. 2197 01:49:27,340 --> 01:49:29,840 Við skulum fara á undan og skilgreina int helstu ógilt. 2198 01:49:29,840 --> 01:49:33,230 >> Og aftur, í framtíðinni, munum við útskýra hvað það int og það tóm 2199 01:49:33,230 --> 01:49:34,090 er í raun að gera. 2200 01:49:34,090 --> 01:49:35,840 En í dag, munum við taka því sem sjálfsögðum hlut. 2201 01:49:35,840 --> 01:49:39,970 Ég ætla að fara á undan og printf, fyrir góða reynslu notenda, x er. 2202 01:49:39,970 --> 01:49:44,360 Og þá ætla ég að bíða eftir notandi að gefa mér x með Get int. 2203 01:49:44,360 --> 01:49:48,459 >> Og þá ætla ég að fara á undan og prenta út x á torginu. 2204 01:49:48,459 --> 01:49:50,500 Svo þegar þú hefur aðeins hljómborð, fólk almennt 2205 01:49:50,500 --> 01:49:52,600 nota litla gulrót tákn á lyklaborðinu 2206 01:49:52,600 --> 01:49:55,330 til að tákna að krafti af, eða veldisvísir af. 2207 01:49:55,330 --> 01:49:58,960 Svo x veldi er til staðar i. 2208 01:49:58,960 --> 01:50:00,660 >> Og nú ætla ég að gera þetta. 2209 01:50:00,660 --> 01:50:03,940 Ég gæti bara do-- hvað er x veldi? x í öðru veldi er x sinnum x. 2210 01:50:03,940 --> 01:50:06,690 >> Og við gerðum þetta sumar síðan þegar í dag. 2211 01:50:06,690 --> 01:50:08,730 Þetta þýðir ekki að líða eins allt sem mikill árangur. 2212 01:50:08,730 --> 01:50:09,570 Veistu hvað? 2213 01:50:09,570 --> 01:50:13,100 Við skulum nýta sumir af þessi hugmynd frá síðasta tíma abstrakt. 2214 01:50:13,100 --> 01:50:16,080 >> Væri ekki gott ef það er fall sem heitir 2215 01:50:16,080 --> 01:50:18,460 veldi sem gerir nákvæmlega það? 2216 01:50:18,460 --> 01:50:20,640 Það er enn, í lok af the dag, gerir það sama stærðfræði. 2217 01:50:20,640 --> 01:50:22,410 En við skulum ágrip burt hugmyndinni um 2218 01:50:22,410 --> 01:50:25,280 eitt númer margfaldað með annað, og bara gefa það a nafn, 2219 01:50:25,280 --> 01:50:27,360 eins ferningur þetta gildi. 2220 01:50:27,360 --> 01:50:29,560 >> Og, með öðrum orðum, í C, við skulum búa til fall 2221 01:50:29,560 --> 01:50:32,660 kallað veldi sem gerir einmitt það. 2222 01:50:32,660 --> 01:50:34,600 Það er að fara að vera kölluð veldi. 2223 01:50:34,600 --> 01:50:35,790 Það er að fara að taka int. 2224 01:50:35,790 --> 01:50:37,820 Og við munum vilja bara kalla það n, sjálfgefið. 2225 01:50:37,820 --> 01:50:39,403 >> En við gætum kalla það eitthvað sem við viljum. 2226 01:50:39,403 --> 01:50:42,900 Og allt sem það er að fara að gera, bókstaflega, er aftur 2227 01:50:42,900 --> 01:50:45,810 afleiðing af n sinnum n. 2228 01:50:45,810 --> 01:50:48,980 En vegna þess að það er aftur eitthvað, sem 2229 01:50:48,980 --> 01:50:53,690 er leitarorðið í fjólublátt við höfum aldrei séð áður, ég, á línu 11, 2230 01:50:53,690 --> 01:50:55,410 getur ekki bara sagt ógilt í þetta sinn. 2231 01:50:55,410 --> 01:51:01,320 >> Ógild, í dæminu sem við sáum bara frekar nafni prenta, þýðir bara, 2232 01:51:01,320 --> 01:51:02,190 gera eitthvað. 2233 01:51:02,190 --> 01:51:04,170 En ekki afhenda ekki mér eitthvað til baka. 2234 01:51:04,170 --> 01:51:06,790 Í þessu tilfelli, ég vil að skila n sinnum n, 2235 01:51:06,790 --> 01:51:08,460 eða hvað sem er, að tala. 2236 01:51:08,460 --> 01:51:12,460 >> Svo ég get ekki sagt, hey, tölva, Ég aftur ekkert, ógilt. 2237 01:51:12,460 --> 01:51:16,166 Það er að fara að fara aftur, eftir eðli, int. 2238 01:51:16,166 --> 01:51:17,790 Og svo er það allt sem er að gerast hér. 2239 01:51:17,790 --> 01:51:20,070 >> Inntak veldi er að fara að vera int. 2240 01:51:20,070 --> 01:51:24,760 Og svo að við getum notað það, það hefur til hafa nafn, N. Það er að fara að framleiðsla 2241 01:51:24,760 --> 01:51:26,240 int sem þarf ekki nafn. 2242 01:51:26,240 --> 01:51:29,590 Við getum skilið það til helstu, eða hver sem er nota mig til að muna þetta gildi ef við 2243 01:51:29,590 --> 01:51:31,120 langar með eigin breytu sína. 2244 01:51:31,120 --> 01:51:33,230 >> Og aftur, eina nýja leitarorð hér er aftur. 2245 01:51:33,230 --> 01:51:34,480 Og ég ætla bara að gera smá stærðfræði. 2246 01:51:34,480 --> 01:51:41,825 Ef ég vildi virkilega að vera óþörf, Ég gæti sagt INT vara fær n sinnum n. 2247 01:51:41,825 --> 01:51:44,170 >> Og þá gæti ég sagt, aftur vöru. 2248 01:51:44,170 --> 01:51:47,360 En, aftur, að lið mitt fyrr þetta bara ekki vera góður design-- 2249 01:51:47,360 --> 01:51:50,060 eins, hvers vegna kynna nafn, tákn, eins og vöru, 2250 01:51:50,060 --> 01:51:51,570 bara strax aftur það? 2251 01:51:51,570 --> 01:51:53,670 Það er lítið hreinni, a lítill herða, svo 2252 01:51:53,670 --> 01:51:59,380 að tala, bara til að segja aftur n sinnum n, losna við þessa línu öllu leyti. 2253 01:51:59,380 --> 01:52:02,860 >> Og það er bara minna kóða til að lesa, minna tækifæri fyrir mistök. 2254 01:52:02,860 --> 01:52:05,180 Og við skulum sjá hvort þetta reyndar virkar núna. 2255 01:52:05,180 --> 01:52:09,380 Nú ætla ég að fara á undan og gera aftur. 2256 01:52:09,380 --> 01:52:11,460 >> Uh-ó, óbeina yfirlýsingu um virka. 2257 01:52:11,460 --> 01:52:14,080 Ég gerði þessi mistök áður, ekki máli. 2258 01:52:14,080 --> 01:52:18,950 Láta mig slá bara, eða auðkenna og afrita, nákvæmlega sama virka frumgerð, 2259 01:52:18,950 --> 01:52:21,342 eða undirskrift, á fallinu upp hér. 2260 01:52:21,342 --> 01:52:22,800 Eða ég gæti farið alla aðgerðina. 2261 01:52:22,800 --> 01:52:23,841 >> En það er svolítið latur. 2262 01:52:23,841 --> 01:52:24,870 Þannig að við munum ekki gera það. 2263 01:52:24,870 --> 01:52:27,960 Nú, láttu mig gera aftur aftur, punktur rista aftur. 2264 01:52:27,960 --> 01:52:32,790 >> x er 2. x veldi er 4. x er 3. x veldi er 9. 2265 01:52:32,790 --> 01:52:35,300 Og virka virðist nú að vera að vinna. 2266 01:52:35,300 --> 01:52:36,550 Svo er það munurinn hér? 2267 01:52:36,550 --> 01:52:42,520 Ég er með fall sem er kallað veldi, í þessu tilfelli, sem ég setti í inntak. 2268 01:52:42,520 --> 01:52:43,830 Og ég fæ til baka framleiðsla. 2269 01:52:43,830 --> 01:52:46,210 Og enn, áður, ef Ég opna önnur dæmi 2270 01:52:46,210 --> 01:52:51,640 frá fyrr, þar sem var kallað prototype.c, 2271 01:52:51,640 --> 01:52:54,770 Ég hafði prenta nafn, sem aftur ógilt, svo að segja, 2272 01:52:54,770 --> 01:52:58,730 Eða það aftur ekkert, og Einfaldlega hafði aukaverkun. 2273 01:52:58,730 --> 01:53:00,230 >> Svo hvað er að gerast hér? 2274 01:53:00,230 --> 01:53:03,520 Jæja, íhuga aðgerð fá band fyrir aðeins augnablik. 2275 01:53:03,520 --> 01:53:06,570 Við höfum verið að nota aðgerðina fá band með því móti. 2276 01:53:06,570 --> 01:53:10,464 >> Við höfum haft fall að fá band, eins og ma CS50.h, 2277 01:53:10,464 --> 01:53:16,624 eru stöðluð io.h, int, helstu, tóm. 2278 01:53:16,624 --> 01:53:18,790 Og svo í hvert skipti sem ég hef kallaði fá band svona langt, 2279 01:53:18,790 --> 01:53:23,260 Ég hef sagt eitthvað eins og, string s fær fá band, því Fá string-- 2280 01:53:23,260 --> 01:53:27,880 við skulum kalla þessa get.c-- fá band sjálft skilar streng sem ég get þá 2281 01:53:27,880 --> 01:53:32,050 nota, og segja, halló, komma, prósent s, sviga n, s. 2282 01:53:32,050 --> 01:53:35,660 >> Svo er þetta sama dæmi, í raun, að við höfðum áður. 2283 01:53:35,660 --> 01:53:37,920 Svo fá band skilar gildi. 2284 01:53:37,920 --> 01:53:41,260 En smá stund síðan, prenta string ekki skila gildi. 2285 01:53:41,260 --> 01:53:42,721 Það hefur einfaldlega aukaverkun. 2286 01:53:42,721 --> 01:53:44,220 Þannig að þetta er grundvallarmunur. 2287 01:53:44,220 --> 01:53:46,710 Við höfum séð öðruvísi tegundir aðgerðir nú, 2288 01:53:46,710 --> 01:53:49,490 sem sum hver hafa skilað gildi, sum hver ekki. 2289 01:53:49,490 --> 01:53:51,890 Svo kannski er það band, eða int, eða fljóta. 2290 01:53:51,890 --> 01:53:53,480 Eða kannski er það bara tóm. 2291 01:53:53,480 --> 01:53:55,710 >> Og munurinn er að þessar aðgerðir sem 2292 01:53:55,710 --> 01:53:59,940 fá gögn og skila gildi eru í raun uppeldi eitthvað til baka að borðinu, 2293 01:53:59,940 --> 01:54:01,110 svo að segja. 2294 01:54:01,110 --> 01:54:03,710 Svo skulum fara á undan og líta á einn síðasta sett 2295 01:54:03,710 --> 01:54:09,129 dæmi sem gefur tilfinningu, nú, hvernig við gætum reyndar ágrip betra, 2296 01:54:09,129 --> 01:54:11,670 og betri, og betri, eða meira, og fleiri, og fleiri, í því skyni 2297 01:54:11,670 --> 01:54:13,810 að skrifa, að lokum, betri kóða. 2298 01:54:13,810 --> 01:54:16,860 Við skulum fara á undan, og í anda á grunni, gera eftirfarandi. 2299 01:54:16,860 --> 01:54:21,700 >> Leyfðu mér að fara á undan og eru CS50.h og staðall IO.h. 2300 01:54:21,700 --> 01:54:24,010 Leyfðu mér að fara á undan og gefa sjálfur int, helstu, ógilt. 2301 01:54:24,010 --> 01:54:27,380 Og láta mig fara á undan, kalla þessa cough.c. 2302 01:54:27,380 --> 01:54:35,510 >> Og láta mig fara á undan og bara eins grunni, prenta út hósta / n. 2303 01:54:35,510 --> 01:54:37,170 Og ég vil gera þetta þrisvar sinnum. 2304 01:54:37,170 --> 01:54:39,670 Þannig að ég ætla, að sjálfsögðu, bara að fara að afrita og líma þrisvar sinnum. 2305 01:54:39,670 --> 01:54:46,440 Ég ætla nú að fara að gera hósti punktur rista hósta. 2306 01:54:46,440 --> 01:54:50,120 Við skulum gefa mér smá meira pláss hér, Enter, hósti, hósta, hósta. 2307 01:54:50,120 --> 01:54:53,970 >> Það er, augljóslega, nú þegar tækifæri til úrbóta. 2308 01:54:53,970 --> 01:54:55,679 Ég hef afritað og límt nokkrum sinnum í dag. 2309 01:54:55,679 --> 01:54:58,261 En það var bara þannig að ég gerði það ekki þarf að slá eins marga stafi. 2310 01:54:58,261 --> 01:55:00,250 Ég breytti samt hvað þær línur af kóða eru. 2311 01:55:00,250 --> 01:55:04,240 >> Þessar þrjár línur eru eins, sem finnst latur og örugglega er, 2312 01:55:04,240 --> 01:55:07,110 og er sennilega ekki rétt nálgun. 2313 01:55:07,110 --> 01:55:11,029 Svo með það efni getum við bætt þennan kóða? 2314 01:55:11,029 --> 01:55:12,570 Við þurfum ekki að afrita og líma númer. 2315 01:55:12,570 --> 01:55:15,070 >> Og reyndar hvenær sem þú finnur fyrir sjálfur að afrita og líma, 2316 01:55:15,070 --> 01:55:17,700 og ekki einu sinni að breyta kóða, Líkurnar eru að það er betri leið. 2317 01:55:17,700 --> 01:55:19,470 Og reyndar, það er. 2318 01:55:19,470 --> 01:55:22,510 Leyfðu mér að fara á undan og gera fyrir lykkju, jafnvel þótt setningafræði gæti ekki 2319 01:55:22,510 --> 01:55:24,570 koma náttúrulega enn. 2320 01:55:24,570 --> 01:55:29,494 >> Gera þetta þrisvar sinnum, einfaldlega með því að gera following-- 2321 01:55:29,494 --> 01:55:31,160 og ég gerst að vita þetta úr starfi. 2322 01:55:31,160 --> 01:55:32,810 En við höfum fjölda af dæmum núna. 2323 01:55:32,810 --> 01:55:34,950 Og þú munt sjá netinu fleiri tilvísanir enn. 2324 01:55:34,950 --> 01:55:37,790 >> Þetta er setningafræði á línu 6, sem líkt grunni sem endurtekur 2325 01:55:37,790 --> 01:55:40,090 blokk, endurtaka eftirfarandi þrisvar sinnum. 2326 01:55:40,090 --> 01:55:41,340 Það er svolítið töfrandi nú. 2327 01:55:41,340 --> 01:55:43,050 En þetta mun fá meira, og fleiri kunnugleg. 2328 01:55:43,050 --> 01:55:45,050 >> Og það er að fara að endurtaka lína átta þrisvar sinnum, 2329 01:55:45,050 --> 01:55:52,390 þannig að ef ég aftur saman úrbótarpróf hósti, punktur rista hósta, hósta, hósta, hósta. 2330 01:55:52,390 --> 01:55:54,030 Það virkar samt á sama hátt. 2331 01:55:54,030 --> 01:55:55,550 Svo er það allt í lagi og gott. 2332 01:55:55,550 --> 01:55:58,200 En það er ekki mjög aflað. 2333 01:55:58,200 --> 01:55:59,371 >> Það er fullkomlega rétt. 2334 01:55:59,371 --> 01:56:01,370 En mér finnst eins og það gæti verið tækifæri, 2335 01:56:01,370 --> 01:56:03,750 eins og í heimi Scratch, að eins konar byrjun 2336 01:56:03,750 --> 01:56:07,530 að bæta nokkrum merkingarfræði hér svo að Ég er ekki bara sumir fyrir lykkju, 2337 01:56:07,530 --> 01:56:09,867 og virka sem segir hósta, eða hefur hósta. 2338 01:56:09,867 --> 01:56:10,450 Veistu hvað? 2339 01:56:10,450 --> 01:56:12,620 Leyfðu mér að reyna að vera lítið kælir en það, 2340 01:56:12,620 --> 01:56:16,090 og í raun skrifa fall sem hefur einhverja aukaverkanir, kalla það hósta. 2341 01:56:16,090 --> 01:56:20,830 >> Og það tekur enga inntak og skilar ekki gildi sem framleiðsla. 2342 01:56:20,830 --> 01:56:22,680 En þú veist hvað það þýðir? 2343 01:56:22,680 --> 01:56:29,370 Það gerir this-- printf, vitna unquote, hósta. 2344 01:56:29,370 --> 01:56:32,380 >> Og nú upp hér, ég er að fara að fara á undan og int, 2345 01:56:32,380 --> 01:56:36,070 Ég fær núll, ég minna en 3, ég plús plús. 2346 01:56:36,070 --> 01:56:39,770 Ég ætla að ekki að gera printf, sem er að öllum líkindum lágt framkvæmd 2347 01:56:39,770 --> 01:56:40,270 smáatriði. 2348 01:56:40,270 --> 01:56:41,353 Mér er alveg sama hvernig á að hósta. 2349 01:56:41,353 --> 01:56:43,240 Ég vil bara að nota hósta virka. 2350 01:56:43,240 --> 01:56:44,840 Og ég ætla bara að fara að hringja hósta. 2351 01:56:44,840 --> 01:56:46,204 >> Nú, eftir á slag. 2352 01:56:46,204 --> 01:56:49,370 Þegar þú hringja í aðgerð, ef þú ert ekki langar að gefa það inntak, algerlega í lagi. 2353 01:56:49,370 --> 01:56:51,780 Bara gera opna svigi, nálægt svigi, og þú ert búinn. 2354 01:56:51,780 --> 01:56:56,271 >> Þegar þú skilgreint fall, eða lýsa frumgerð fall er, 2355 01:56:56,271 --> 01:56:58,770 ef þú veist fyrirfram að það er ekki að fara að taka neinar rök, 2356 01:56:58,770 --> 01:57:01,170 segir ógilt í þeim sviga þar. 2357 01:57:01,170 --> 01:57:05,660 Og það gerir viss um að þú mun ekki tilviljun misnota það. 2358 01:57:05,660 --> 01:57:07,020 Leyfðu mér að fara á undan og gera hósta. 2359 01:57:07,020 --> 01:57:08,540 Og, auðvitað, hef ég gert mistök. 2360 01:57:08,540 --> 01:57:10,410 >> Dammit, það er að óbeina yfirlýsingu. 2361 01:57:10,410 --> 01:57:11,325 En það er allt í lagi. 2362 01:57:11,325 --> 01:57:12,590 Það er auðvelt festa. 2363 01:57:12,590 --> 01:57:18,240 Ég þarf bara frumgerð ofar í minn skrá en ég er í raun að nota það. 2364 01:57:18,240 --> 01:57:20,070 >> Svo nú láta mig gera hósti aftur, gott. 2365 01:57:20,070 --> 01:57:20,790 Nú, það virkar. 2366 01:57:20,790 --> 01:57:22,930 Gera hósta, hósta, hósta, hósta. 2367 01:57:22,930 --> 01:57:25,930 Svo þú might hugsa að við erum í raun rúmlega verkfræði þetta vandamál. 2368 01:57:25,930 --> 01:57:26,763 Og reyndar erum við. 2369 01:57:26,763 --> 01:57:28,870 Þetta er ekki góð frambjóðandi af a program 2370 01:57:28,870 --> 01:57:31,930 á því augnabliki fyrir Refactoring, og gera það sem er 2371 01:57:31,930 --> 01:57:35,645 kallaði hierarchic niðurbrot, hvar þú tekið smá kóða, og þá 2372 01:57:35,645 --> 01:57:38,790 þú konar þáttur það út, svo sem að Tjáið fleiri merkingarfræði til þeirra, 2373 01:57:38,790 --> 01:57:40,930 og endurnýta það að lokum lengri tíma. 2374 01:57:40,930 --> 01:57:43,490 En það er að byggja blokk í átt flóknari forrit 2375 01:57:43,490 --> 01:57:45,600 að við munum byrja skrifa áður en langt sem 2376 01:57:45,600 --> 01:57:50,090 gerir okkur kleift að hafa orðaforða sem að skrifa betri kóða. 2377 01:57:50,090 --> 01:57:52,920 Og reyndar, við skulum sjá hvort við getur ekki alhæfa þetta frekar. 2378 01:57:52,920 --> 01:57:57,984 >> Það virðist lítið halta að ég, helstu, þurfa að hafa áhyggjur af þessu fjári fyrir lykkju, 2379 01:57:57,984 --> 01:57:59,400 og kallar hósta aftur og aftur. 2380 01:57:59,400 --> 01:58:03,050 Hvers vegna get ég ekki sagt bara hósta, Vinsamlegast hósta þrisvar sinnum? 2381 01:58:03,050 --> 01:58:08,170 Með öðrum orðum, af hverju get ég ekki bara gefa inntak að hósta og gera þetta? 2382 01:58:08,170 --> 01:58:11,270 >> Af hverju get ég ekki bara sagt í Helstu hósti þrisvar sinnum. 2383 01:58:11,270 --> 01:58:13,150 Og nú, þetta er eins konar töfrum. 2384 01:58:13,150 --> 01:58:14,540 Það er mjög endurtekningu hér. 2385 01:58:14,540 --> 01:58:15,940 Og það er reyndar barn skref. 2386 01:58:15,940 --> 01:58:19,250 >> En bara getu til að segja um lína átta, hósta þrisvar sinnum, 2387 01:58:19,250 --> 01:58:20,730 það er bara svo miklu læsilegri. 2388 01:58:20,730 --> 01:58:24,210 Og plús, ég þarf ekki að vita eða sama hvernig hósti er hrint í framkvæmd. 2389 01:58:24,210 --> 01:58:26,460 Og reyndar síðar í tíma og fyrir lokaverkefni, 2390 01:58:26,460 --> 01:58:29,150 ef þú glíma verkefni með bekkjarfélagi eða tveir bekkjarfélagar 2391 01:58:29,150 --> 01:58:32,370 þú munt skilja að þú ert að fara að að, eða vilja til að, skipta vinnu. 2392 01:58:32,370 --> 01:58:34,650 >> Og þú ert að fara að vilja til að ákveða fyrirfram, hver er að fara að gera það, 2393 01:58:34,650 --> 01:58:35,483 og, þar sem stykki? 2394 01:58:35,483 --> 01:58:37,520 Og myndi það ekki vera gott ef þú, til dæmis, 2395 01:58:37,520 --> 01:58:40,100 taka gjald af skrifa Main, gert. 2396 01:58:40,100 --> 01:58:43,470 Og herbergisfélagi þinn, eða þínar félagi almennt, 2397 01:58:43,470 --> 01:58:45,230 annast framkvæmd hósta. 2398 01:58:45,230 --> 01:58:49,540 >> Og þessi skipting, þessir veggir abstrakt, 2399 01:58:49,540 --> 01:58:52,310 eða lög af abstrakt ef þú verður, eru frábær öflugur, 2400 01:58:52,310 --> 01:58:55,480 því sérstaklega fyrir stærri, flóknari forrit og kerfi, 2401 01:58:55,480 --> 01:59:00,070 það gerir margar fólk til að byggja hlutir saman, og að lokum 2402 01:59:00,070 --> 01:59:02,680 sauma starf sitt saman á þennan hátt. 2403 01:59:02,680 --> 01:59:05,332 En, auðvitað, við þarft að nú laga hósta. 2404 01:59:05,332 --> 01:59:07,290 Við þurfum að segja hósta að hey, þú veist hvað? 2405 01:59:07,290 --> 01:59:11,230 Þú ert að fara að þurfa að taka input-- svo ekki tóm, en int og nú. 2406 01:59:11,230 --> 01:59:15,170 Við skulum fara á undan og setja í hósti int. Ég fær núll. 2407 01:59:15,170 --> 01:59:16,890 >> Ég er minna en hversu oft. 2408 01:59:16,890 --> 01:59:18,550 Ég sagði þrjú áður. 2409 01:59:18,550 --> 01:59:20,420 En það er ekki það sem ég vil. 2410 01:59:20,420 --> 01:59:25,520 Ég vil hósta að vera almennt við styðja allir fjölda endurtekninga. 2411 01:59:25,520 --> 01:59:28,800 >> Svo, reyndar er það n sem ég vil, hvað notandinn segir mér. 2412 01:59:28,800 --> 01:59:31,620 Nú get ég farið á undan og segja prenta hósta. 2413 01:59:31,620 --> 01:59:34,750 Og það er sama hvaða tala notandinn fer inn, 2414 01:59:34,750 --> 01:59:36,890 Ég mun kunnugt er mörgum sinnum. 2415 01:59:36,890 --> 01:59:39,160 >> Svo í lok dagsins, Forritið er eins. 2416 01:59:39,160 --> 01:59:42,820 En eftir allt þetta efni gæti jafnvel verið í aðra skrá. 2417 01:59:42,820 --> 01:59:45,620 Reyndar veit ég ekki minnsta stund hvernig printf er hrint í framkvæmd. 2418 01:59:45,620 --> 01:59:47,980 >> Ég veit ekki í augnablikinu hvernig fá band, eða fá int, eða fá fljóta 2419 01:59:47,980 --> 01:59:48,646 koma til framkvæmda. 2420 01:59:48,646 --> 01:59:50,930 Og ég vil ekki að sjá þá á skjánum mínum. 2421 01:59:50,930 --> 01:59:55,320 Eins og það er, ég er farin að einblína á áætlun mín, ekki þau virka. 2422 01:59:55,320 --> 01:59:59,070 >> Og svo reyndar eins fljótt og þú byrja þátta kóða eins og þetta út, 2423 01:59:59,070 --> 02:00:01,397 gætum við að fara jafnvel hósta að sérstakri skrá? 2424 02:00:01,397 --> 02:00:02,730 Einhver annar gæti framkvæma það. 2425 02:00:02,730 --> 02:00:06,810 Og þú og program orðið mjög fallegur, og mjög læsileg, 2426 02:00:06,810 --> 02:00:10,830 að öllum líkindum, í raun fjórir lína program þarna. 2427 02:00:10,830 --> 02:00:13,510 >> Svo skulum fara á undan núna og gera eitt breytingar. 2428 02:00:13,510 --> 02:00:16,180 Takið eftir að frumgerð mín hefur til að breyta upp efst. 2429 02:00:16,180 --> 02:00:18,390 Svo láta mig festa það svo Ég fæ ekki öskraði á. 2430 02:00:18,390 --> 02:00:22,580 >> Gera hósta, láta mig hlaupa hósta einu sinni meira, enn að gera það sama. 2431 02:00:22,580 --> 02:00:26,010 En nú, eftir að við höfum efni fyrir einn endanlegri útgáfu. 2432 02:00:26,010 --> 02:00:26,940 Veistu hvað? 2433 02:00:26,940 --> 02:00:29,040 Ég vil ekki bara hósta, endilega. 2434 02:00:29,040 --> 02:00:30,802 Ég vil hafa eitthvað meira almennt. 2435 02:00:30,802 --> 02:00:31,510 Svo þú veist hvað? 2436 02:00:31,510 --> 02:00:32,450 Ég vil gera þetta. 2437 02:00:32,450 --> 02:00:37,140 Ég vil hafa, líkt grunni gerir, er td blokk, en ekki bara 2438 02:00:37,140 --> 02:00:38,680 Say Something sumir tala af sinnum. 2439 02:00:38,680 --> 02:00:41,510 Ég vil það að segja mjög sérstakur band. 2440 02:00:41,510 --> 02:00:43,850 Og því ég ekki vil það að segja bara hósta. 2441 02:00:43,850 --> 02:00:47,660 Ég vil það að segja hvað strengur er liðinn í. 2442 02:00:47,660 --> 02:00:49,960 >> Svo eftir, ég hef almennt þetta svo að nú 2443 02:00:49,960 --> 02:00:53,110 segja líður eins gott nafn fyrir þetta, eins og grunni, 2444 02:00:53,110 --> 02:00:55,530 tekur tvær breytur, ólíkt grunni. 2445 02:00:55,530 --> 02:00:56,570 Einn er band. 2446 02:00:56,570 --> 02:00:57,300 Einn er int. 2447 02:00:57,300 --> 02:00:58,130 >> Og ég gæti skipt yfir þá. 2448 02:00:58,130 --> 02:01:00,713 Ég bara svona eins og the hugmynd af segir band fyrst, og síðan 2449 02:01:00,713 --> 02:01:01,940 hversu oft síðar. 2450 02:01:01,940 --> 02:01:03,970 Void þýðir það samt ekki aftur neitt. 2451 02:01:03,970 --> 02:01:06,428 Þetta eru bara Sjónræn hlið áhrif, eins og með [? Jordan,?] 2452 02:01:06,428 --> 02:01:08,240 munnleg aukaverkun æpa. 2453 02:01:08,240 --> 02:01:12,630 Það er samt eitthvað n sinnum, 0 til, en ekki jafnt n. 2454 02:01:12,630 --> 02:01:14,540 Þetta þýðir n samtals sinnum. 2455 02:01:14,540 --> 02:01:16,540 Og þá bara prenta út hvað sem strengur er. 2456 02:01:16,540 --> 02:01:19,060 Þannig að ég hef í raun almenn þessi lína af kóða. 2457 02:01:19,060 --> 02:01:22,460 Svo nú, hvernig get ég framkvæma hósti virka? 2458 02:01:22,460 --> 02:01:25,520 >> Ég get gert ógilt hósta. 2459 02:01:25,520 --> 02:01:28,501 Og ég get samt tekið á því hvernig Margir sinnum þú vilt að hósta. 2460 02:01:28,501 --> 02:01:29,250 En þú veist hvað? 2461 02:01:29,250 --> 02:01:31,240 Ég get nú punt að segja. 2462 02:01:31,240 --> 02:01:36,540 >> Ég get hringt sagt með Bæta hósti, sem liggur í n. 2463 02:01:36,540 --> 02:01:40,410 Og ef ég vil líka framkvæma, bara til gamans, að sneeze virka, 2464 02:01:40,410 --> 02:01:42,290 Ég get sneeze sumir tala af sinnum. 2465 02:01:42,290 --> 02:01:47,300 Og ég get haldið endurnýta n, því eftir að m í þessu samhengi eða umfang 2466 02:01:47,300 --> 02:01:49,470 Aðeins er innan þessa aðgerð. 2467 02:01:49,470 --> 02:01:52,767 >> Og n í þessu samhengi einungis er innan þessa aðgerð hér. 2468 02:01:52,767 --> 02:01:54,600 Þannig að við munum koma aftur til þessi mál af umfangi. 2469 02:01:54,600 --> 02:02:01,160 Og hér, ég ætla bara að fara að segja, Achoo, og þá er n sinnum, hálf-hreinsun. 2470 02:02:01,160 --> 02:02:04,340 >> Og nú, ég þarf bara að taka lán þessir virka undirskriftir upp hér. 2471 02:02:04,340 --> 02:02:06,290 Svo er hósti rétt. 2472 02:02:06,290 --> 02:02:10,090 Void sneeze er rétt núna. 2473 02:02:10,090 --> 02:02:12,390 >> Og ég samt bara þurfa að segja. 2474 02:02:12,390 --> 02:02:18,990 Þannig að ég ætla að segja, segja band s, int n, hálf-hreinsun. 2475 02:02:18,990 --> 02:02:22,010 Þannig að ég hef yfir-verkfræðingur er Heck út af þessu forriti. 2476 02:02:22,010 --> 02:02:23,760 >> Og þetta er ekki endilega þetta er 2477 02:02:23,760 --> 02:02:26,343 hvað þú ættir að gera þegar þú skrifar jafnvel einföldustu áætlunum. 2478 02:02:26,343 --> 02:02:29,280 Taka eitthvað sem er augljóslega mjög einfalt, mjög stutt, 2479 02:02:29,280 --> 02:02:31,800 og með tilvísun til-framkvæma það nota of mikið kóða. 2480 02:02:31,800 --> 02:02:34,560 En þú munt í raun að sjá, og í tími líta aftur á þessum dæmum, 2481 02:02:34,560 --> 02:02:38,610 og gera sér grein fyrir, ó, þá eru skref tókum við í raun og veru alhæfa, 2482 02:02:38,610 --> 02:02:40,797 að þáttur eitthvað út, fyrr í lok dags 2483 02:02:40,797 --> 02:02:42,380 númerið mitt er í raun nokkuð sanngjarnt. 2484 02:02:42,380 --> 02:02:45,960 Vegna þess að ef ég vil að hósta þrjú sinnum þá hnerra þrisvar sinnum, 2485 02:02:45,960 --> 02:02:50,420 Ég er einfaldlega að fara að endursýning þetta, program gera hósta, og hlaupa hósta. 2486 02:02:50,420 --> 02:02:53,620 Og ég hef þrjár hósta og þrjár hnerri. 2487 02:02:53,620 --> 02:02:55,990 >> Og svo er þetta einföld fyrirmynd, ef þú vilt, 2488 02:02:55,990 --> 02:03:00,110 fyrir hvernig við gætum farið um reyndar framkvæmd áætlun. 2489 02:03:00,110 --> 02:03:03,220 En við skulum bara sjá nú hvað það er við höfum verið að gera allan þennan tíma, 2490 02:03:03,220 --> 02:03:06,940 og það sem sumir af endanlegri stykki eru að baki þessari einföldu skipun. 2491 02:03:06,940 --> 02:03:09,620 Í lok dags, höfum við verið að nota Clang sem þýðanda okkar. 2492 02:03:09,620 --> 02:03:11,494 Við höfum verið að skrifa heimildar númer, breyta henni 2493 02:03:11,494 --> 02:03:12,820 um Clang inn kóða vél. 2494 02:03:12,820 --> 02:03:15,540 >> Og við höfum verið að nota Gera bara til að auðvelda mínútum okkar svo 2495 02:03:15,540 --> 02:03:20,740 að við þurfum ekki að muna þessir álagaþulurnar af Clang sjálft. 2496 02:03:20,740 --> 02:03:22,640 En hvað er að gera í raun að gera? 2497 02:03:22,640 --> 02:03:24,750 Og, aftur á móti, hvað er Clang raun að gera? 2498 02:03:24,750 --> 02:03:28,790 >> Það kemur í ljós, þó að við höfum einfaldað umfjöllun í dag með því að segja, 2499 02:03:28,790 --> 02:03:33,090 þú tekur frumkóða, gefa það eins Inntak þýðanda, sem gefur þér 2500 02:03:33,090 --> 02:03:35,750 framleiðsla á vél númer, kemur í ljós að það er 2501 02:03:35,750 --> 02:03:37,420 nokkrar mismunandi skrefum þarna inni. 2502 02:03:37,420 --> 02:03:41,940 Og samantekt gerist að vera regnhlíf tíma fyrir a heild búnt af skrefum. 2503 02:03:41,940 --> 02:03:43,970 En við skulum stríða bara þetta út mjög fljótt. 2504 02:03:43,970 --> 02:03:48,070 >> Það kemur í ljós að við höfum verið að gera fleiri hlutir í hvert skipti sem ég keyra forrit, 2505 02:03:48,070 --> 02:03:50,990 eða í hvert skipti sem ég safna saman forrit í dag. 2506 02:03:50,990 --> 02:03:55,020 Svo vísar preprocessing til this-- neitt í C program, 2507 02:03:55,020 --> 02:03:58,720 eins og við munum sjá aftur og aftur, sem byrjar með þessu kjötkássa tákn, 2508 02:03:58,720 --> 02:04:03,320 eða hashtag tákn hér, þýðir það er Preprocessor tilskipun. 2509 02:04:03,320 --> 02:04:07,330 Það þýðir, í þessu tilfelli, hey tölva, gera eitthvað með þessa skrá 2510 02:04:07,330 --> 02:04:09,430 áður en þú saman í raun eigin kóða mína. 2511 02:04:09,430 --> 02:04:15,220 >> Í þessu tilviki, kjötkássa fela í sér er, í raun, C er leið til að segja, 2512 02:04:15,220 --> 02:04:19,325 hey tölva, fara að fá innihald af CS50.h og líma þær hér. 2513 02:04:19,325 --> 02:04:22,170 Hey tölva, fara fá Innihald venjulegu io.h, 2514 02:04:22,170 --> 02:04:24,690 hvar sem er á harður ökuferð, líma það hér. 2515 02:04:24,690 --> 02:04:27,390 Svo þessir hlutir gerast fyrst á forvinnu. 2516 02:04:27,390 --> 02:04:28,880 >> Og Clang gerir þetta allt fyrir okkur. 2517 02:04:28,880 --> 02:04:30,510 Og það gerir það svo fjári hratt, þú ekki einu sinni 2518 02:04:30,510 --> 02:04:32,000 sjá fjóra mismunandi hluti gerast. 2519 02:04:32,000 --> 02:04:34,100 En það er fyrst slík skref. 2520 02:04:34,100 --> 02:04:35,560 >> Hvað gerist í raun og veru næst? 2521 02:04:35,560 --> 02:04:38,320 Jæja, næsta opinber skref er að setja saman. 2522 02:04:38,320 --> 02:04:40,385 Og það kemur í ljós að setja saman áætlun 2523 02:04:40,385 --> 02:04:44,060 tæknilega þýðir að fara frá Kóðinn er efni sem við höfum 2524 02:04:44,060 --> 02:04:47,890 verið að skrifa í dag, að eitthvað kallað samkoma kóða, eitthvað 2525 02:04:47,890 --> 02:04:49,260 sem lítur svolítið öðruvísi. 2526 02:04:49,260 --> 02:04:51,050 >> Og í raun, getum við séð þetta alvöru hratt. 2527 02:04:51,050 --> 02:04:53,890 Leyfðu mér að fara í raun í IDE mína. 2528 02:04:53,890 --> 02:04:58,050 Leyfðu mér að fara á undan og opna hello.c, sem er fyrsta forritið sem við 2529 02:04:58,050 --> 02:04:59,120 hófst í dag. 2530 02:04:59,120 --> 02:05:04,130 Og láta mig fara á undan og keyra Clang A öðruvísi lítið, Clang-s, hello.c, 2531 02:05:04,130 --> 02:05:07,720 sem er reyndar að fara að gefa mér aðra skrá hello.s. 2532 02:05:07,720 --> 02:05:10,330 >> Og við munum líklega aldrei aftur sjá þessa tegund af kóða. 2533 02:05:10,330 --> 02:05:13,030 Ef þú taka a lægri kerfi bekknum eins CS61, 2534 02:05:13,030 --> 02:05:14,920 þú munt sjá mikið meira af þessu tagi kóða. 2535 02:05:14,920 --> 02:05:17,020 En þetta er smalamál. 2536 02:05:17,020 --> 02:05:22,050 Þetta er X86 smalamál að CPU sem er undirliggjandi 2537 02:05:22,050 --> 02:05:24,460 CS50 IDE skilur í raun. 2538 02:05:24,460 --> 02:05:27,060 >> Og dulinn eins og það er útlit, það er eitthvað 2539 02:05:27,060 --> 02:05:29,180 tölvan skilur nokkuð vel. 2540 02:05:29,180 --> 02:05:30,790 Sub q, þetta er frádrátt. 2541 02:05:30,790 --> 02:05:31,660 Það er hreyfingar. 2542 02:05:31,660 --> 02:05:35,730 >> Það er að hringja í virka hér, x Oring, hreyfing, bæta við, pop, 2543 02:05:35,730 --> 02:05:36,430 a aftur. 2544 02:05:36,430 --> 02:05:38,850 Svo er það einhver mjög lágt leiðbeiningar stigi 2545 02:05:38,850 --> 02:05:41,280 sem örgjörva skilja að Ég kennd við áðan. 2546 02:05:41,280 --> 02:05:43,100 Það er það sem Intel Inside. 2547 02:05:43,100 --> 02:05:45,030 >> Það eru mynstur núll og sjálfur að 2548 02:05:45,030 --> 02:05:51,800 kort að þessum arcanely orðuð, en nokkuð vel heitir, leiðbeiningar, 2549 02:05:51,800 --> 02:05:52,780 svo að segja. 2550 02:05:52,780 --> 02:05:54,780 Það er það sem gerist þegar þú saman númerið þitt. 2551 02:05:54,780 --> 02:05:58,560 Þú færð samkoma Tungumál út af því, sem 2552 02:05:58,560 --> 02:06:04,680 þýðir að þriðja skrefið er að setja saman sem samkoma kóða inn, að lokum, 2553 02:06:04,680 --> 02:06:09,080 vél code-- núll og sjálfur, ekki texti sem við sáum bara smá stund síðan. 2554 02:06:09,080 --> 02:06:13,370 >> Svo pre-vinnslu þýðir það að finna og skipta, og nokkur önnur atriði. 2555 02:06:13,370 --> 02:06:16,430 Samantekt tekur uppspretta númer frá C, kóðinn 2556 02:06:16,430 --> 02:06:18,980 sem við skrifuðum, að samkoma númer sem við leit bara á. 2557 02:06:18,980 --> 02:06:22,170 Samsetningu tekur þessi samkoma kóða til zeroes og sjálfur 2558 02:06:22,170 --> 02:06:24,680 að CPU raunverulega vilja skil í lok dags. 2559 02:06:24,680 --> 02:06:27,630 Og tengja er síðasta skrefið sem gerist fyrir us-- aftur, 2560 02:06:27,630 --> 02:06:29,830 svo hratt að við gerum ekki einu sinni notice-- sem segir, 2561 02:06:29,830 --> 02:06:32,460 hey tölva, taka allar á núll og sjálfur að 2562 02:06:32,460 --> 02:06:36,750 leiddi af gerð kóða Davíðs, og Helsta hlutverk hans í þessu tilfelli. 2563 02:06:36,750 --> 02:06:39,160 >> Og hey tölva, fara að fá allar núllum og sjálfur 2564 02:06:39,160 --> 02:06:42,180 að CS50 starfsfólk skrifaði inni CS50 bókasafn. 2565 02:06:42,180 --> 02:06:43,440 Blandið þeim með David er. 2566 02:06:43,440 --> 02:06:46,648 Og hey tölva, fara að fá allar núll og þau sem einhver skrifaði annar ár 2567 02:06:46,648 --> 02:06:47,470 síðan fyrir printf. 2568 02:06:47,470 --> 02:06:49,880 Og bæta þeim inn í heild hlutur, þannig að við höfum 2569 02:06:49,880 --> 02:06:52,870 fékk núll mínum og sjálfur, sem núll CS50 starfsfólk er og sjálfur, 2570 02:06:52,870 --> 02:06:55,370 printf núll og sjálfur, og eitthvað annað sem við erum að nota. 2571 02:06:55,370 --> 02:07:00,410 >> Þeir allir fá blandaðar saman í eitt forrit sem heitir, í þessu tilfelli, halló. 2572 02:07:00,410 --> 02:07:03,141 Svo héðan í frá munum við bara nota orðið gerð. 2573 02:07:03,141 --> 02:07:06,390 Og við munum taka sem sjálfsögðum hlut, að þegar við segjum, saman program, það þýðir, 2574 02:07:06,390 --> 02:07:08,849 hey do the pre-vinnslu, samsetningu, og tengja. 2575 02:07:08,849 --> 02:07:11,890 En það er í raun einhver safaríkur efni fara á það undir hetta. 2576 02:07:11,890 --> 02:07:13,723 Og sérstaklega ef þú fá forvitinn nokkurn tíma, 2577 02:07:13,723 --> 02:07:15,900 þú getur byrjað að poking í kring á þessu lægra stigi. 2578 02:07:15,900 --> 02:07:19,660 En nú, átta sig á að meðal Takeaways fyrir í dag 2579 02:07:19,660 --> 02:07:23,420 eru einfaldlega að byrjunin á ferli, 2580 02:07:23,420 --> 02:07:26,700 að fá sætt sig við eitthvað eins og halló heimur. 2581 02:07:26,700 --> 02:07:29,575 Reyndar, flest af því sem við gerðum í dag vissulega mun ekki sökkva í frábær fljótur. 2582 02:07:29,575 --> 02:07:31,491 Og það mun taka nokkrar tími, og sumir æfa. 2583 02:07:31,491 --> 02:07:33,864 Og líkurnar eru, þú verður að raða af vilja högg lyklaborðinu 2584 02:07:33,864 --> 02:07:34,780 eða æpa á skjánum. 2585 02:07:34,780 --> 02:07:35,880 Og allt sem er í lagi. 2586 02:07:35,880 --> 02:07:38,320 Þó, kannski ekki reyna að gera það á safninu svo mikið. 2587 02:07:38,320 --> 02:07:40,820 >> Og að lokum, þú munt að geta þó, til að byrja 2588 02:07:40,820 --> 02:07:44,580 sjá mynstur, bæði í góðri kóða sem þú hefur skrifað og í mistökum 2589 02:07:44,580 --> 02:07:45,370 sem þú hefur gert. 2590 02:07:45,370 --> 02:07:48,965 Og mikið eins og ferli verða TF eða CA er eins, 2591 02:07:48,965 --> 02:07:51,590 þú munt byrja að fá betri og betri á að sjá þá mynstur, 2592 02:07:51,590 --> 02:07:53,774 og bara leysa þinn eigin vandamál endanum. 2593 02:07:53,774 --> 02:07:56,940 Í millitíðinni, það verður nóg okkur að lána þér stuðning, og fá þér 2594 02:07:56,940 --> 02:07:57,481 í gegnum þetta. 2595 02:07:57,481 --> 02:07:59,450 Og í skrifa-ups fyrir öll þau vandamál sem 2596 02:07:59,450 --> 02:08:01,366 verður þú leidd í gegnum allar af skipununum 2597 02:08:01,366 --> 02:08:05,330 sem ég veit vissulega frá a einhver fjöldi af æfa núna, 2598 02:08:05,330 --> 02:08:07,380 en gæti hafa flogið yfir höfuð manns fyrir nú. 2599 02:08:07,380 --> 02:08:08,580 Og það er algerlega fínt. 2600 02:08:08,580 --> 02:08:11,230 >> En, að lokum, þú ert að fara að byrja að sjá mynstur koma. 2601 02:08:11,230 --> 02:08:14,260 Og þegar þú færð framhjá öllum sem heimskur upplýsingar, eins og sviga, 2602 02:08:14,260 --> 02:08:16,710 og hrokkið axlabönd, og hálf-tvípunkta, og efni, hreinskilnislega, 2603 02:08:16,710 --> 02:08:19,360 það er alls ekki vitsmunalega áhugavert. 2604 02:08:19,360 --> 02:08:22,690 Og það er ekki markmiðið tekur einhver inngangs bekknum. 2605 02:08:22,690 --> 02:08:24,410 Það er þeim hugmyndum sem eru að fara að máli. 2606 02:08:24,410 --> 02:08:26,659 >> Það er lykkjur, og skilyrði, og virka, 2607 02:08:26,659 --> 02:08:30,552 og kröftugar en abstrakt, og þátta af kóða, 2608 02:08:30,552 --> 02:08:33,510 og góð hönnun og gott stíl, og að lokum nákvæmni 2609 02:08:33,510 --> 02:08:37,330 á númerið þitt, það er á endanum fara að máli mest. 2610 02:08:37,330 --> 02:08:40,925 Svo í næstu viku munum við taka þetta hugmyndir sem við sáum fyrst í grunni 2611 02:08:40,925 --> 02:08:42,800 og hafa nú þýtt í C. Og við munum byrja 2612 02:08:42,800 --> 02:08:45,740 að kynna fyrsta af Real World Auðvitað er lén. 2613 02:08:45,740 --> 02:08:50,140 >> Við munum leggja áherslu á heiminn af öryggi, og nánar tiltekið dulmál, 2614 02:08:50,140 --> 02:08:51,980 listin að spæna upplýsingar. 2615 02:08:51,980 --> 02:08:54,000 Og meðal fyrstu vandamál sem þú sjálfur 2616 02:08:54,000 --> 02:08:56,840 vilja fá að skrifa út spila með nokkrum af setningafræði 2617 02:08:56,840 --> 02:08:59,880 og leysa sumir rökrétt vandamál, að lokum áður en langt, 2618 02:08:59,880 --> 02:09:03,960 er að í raun Scramble eða dulkóða, og að lokum hallmæla upplýsingar. 2619 02:09:03,960 --> 02:09:06,470 Og allt sem við höfum gert í dag, mun frekar lágt 2620 02:09:06,470 --> 02:09:09,190 stigi, er bara að fara að leyfa okkur að taka einn og einn, 2621 02:09:09,190 --> 02:09:13,550 og eitt skref að ofan til skrifa mest áhugavert kóðann ennþá. 2622 02:09:13,550 --> 02:09:15,050 >> Svo meira á því í næstu viku. 2623 02:09:15,050 --> 02:09:17,834 2624 02:09:17,834 --> 02:09:18,762 >> [Vídeó spilun] 2625 02:09:18,762 --> 02:09:19,690 2626 02:09:19,690 --> 02:09:22,006 >> -Hvað Getur þú sagt mér um í síðasta skipti sem þú sást hann? 2627 02:09:22,006 --> 02:09:26,041 2628 02:09:26,041 --> 02:09:27,040 -Hvað Get ég sagt, virkilega? 2629 02:09:27,040 --> 02:09:30,500 2630 02:09:30,500 --> 02:09:35,340 Ég meina, það var eins og allir aðrir pre-framleiðsla æfingu, 2631 02:09:35,340 --> 02:09:40,510 nema það var eitthvað sagði á mjög lok, sem fastur við mig. 2632 02:09:40,510 --> 02:09:44,810 2633 02:09:44,810 --> 02:09:46,640 >> -Þetta Var CS50. 2634 02:09:46,640 --> 02:09:49,440 2635 02:09:49,440 --> 02:09:52,190 >> -Það Er a skera allir, mikill starf á æfingu. 2636 02:09:52,190 --> 02:09:53,070 >> hádegismatur -Það er? 2637 02:09:53,070 --> 02:09:54,986 >> -Já, Þú og ég get grípa samloku í bita. 2638 02:09:54,986 --> 02:09:58,380 Leyfðu mér bara debrief með David mjög fljótt. 2639 02:09:58,380 --> 02:09:59,160 Davíð? 2640 02:09:59,160 --> 02:10:01,260 Davíð? 2641 02:10:01,260 --> 02:10:03,110 >> [END spilun]