1 00:00:00,000 --> 00:00:11,736 2 00:00:11,736 --> 00:00:16,626 >> [Playback ng video] 3 00:00:16,626 --> 00:00:19,410 >> -Isang Pagtatagumpay ng matematika at makina na kasanayan 4 00:00:19,410 --> 00:00:23,270 ay mahusay na bagong mga awtomatikong calculator sa Harvard University. 5 00:00:23,270 --> 00:00:27,140 Ang masalimuot na mga problema sa matematika ilagay sa pamamagitan ng machine sa code form 6 00:00:27,140 --> 00:00:31,710 sa tape ay tumpak malulutas sa isang minuto maliit na bahagi ng oras na kinakailangan 7 00:00:31,710 --> 00:00:32,819 para sa pagkalkula ng tao. 8 00:00:32,819 --> 00:00:44,280 9 00:00:44,280 --> 00:00:48,220 Dinisenyo upang mapabilis ang lahat ng porma ng matematika at siyentipikong pananaliksik, 10 00:00:48,220 --> 00:00:53,840 ang higanteng makina utak ay gagana para sa ang Estados Unidos Navy hanggang matapos ang gera. 11 00:00:53,840 --> 00:01:03,620 12 00:01:03,620 --> 00:01:06,570 >> [END playback] 13 00:01:06,570 --> 00:01:08,590 >> David J. MALAN: Ito, ay CS50. 14 00:01:08,590 --> 00:01:10,590 Nakaraan ay isang kabigha-bighani lugar, ngunit kung na sa iyo kailanman 15 00:01:10,590 --> 00:01:13,366 ba kung ano ang aparato na sa Harvard Science Center, 16 00:01:13,366 --> 00:01:16,150 ito ay sa katunayan bahagi ng Harvard Mark ko, at ito ay 17 00:01:16,150 --> 00:01:18,710 sa display doon ngayon para sa nakaraang ilang taon. 18 00:01:18,710 --> 00:01:20,590 At ano ang makikita mo naka-embed sa hanay problema 19 00:01:20,590 --> 00:01:24,416 isa ay isang tumingin sa likod ng mga eksena sa kung ano ang ginawa na aparato, at ang ginagawa, 20 00:01:24,416 --> 00:01:27,540 mula Professor Harry Lewis, na nasa ang computer science department dito. 21 00:01:27,540 --> 00:01:29,440 Kaya higit pa sa na sa ilang saglit lamang. 22 00:01:29,440 --> 00:01:33,990 >> Ngunit ngayon kami ay magsisimula sa transition mula noong nakaraang linggo na ito, 23 00:01:33,990 --> 00:01:37,290 at kami na magdala ng pagbanggit ng isang litrato dito 24 00:01:37,290 --> 00:01:38,630 na talagang masyadong sikat. 25 00:01:38,630 --> 00:01:42,270 May nakakaalam ba kung ano ang mga ito dito ay sa screen? 26 00:01:42,270 --> 00:01:43,880 Hindi bababa sa ayon sa mitolohiya. 27 00:01:43,880 --> 00:01:44,837 Oo. 28 00:01:44,837 --> 00:01:45,920 Madla: Ang unang virus. 29 00:01:45,920 --> 00:01:49,570 David J. MALAN: Kaya ito ay parang ang pinakaunang aktwal na bug sa isang computer. 30 00:01:49,570 --> 00:01:52,490 Ngayon sa katotohanan ang salitang bug, para sa isang pagkakamali sa isang programa, 31 00:01:52,490 --> 00:01:55,250 ay sa amin para sa ilang oras sa pisikal na mundo, 32 00:01:55,250 --> 00:01:58,190 at ito ay isa sa mga unang dokumentado beses kung saan ang isang tao ay tunay na 33 00:01:58,190 --> 00:02:02,280 inagaw ko ang isang malaking tanga sa labas ng Mark II computer, ilagay ito sa aklat, 34 00:02:02,280 --> 00:02:05,006 at pagkatapos ay naitala ito bilang unang kilalang bug 35 00:02:05,006 --> 00:02:06,630 na may tunay na natagpuan sa pisikal. 36 00:02:06,630 --> 00:02:10,104 Kaya ganito ay ipinasok na sa tradisyonal na kaalaman ngayon. 37 00:02:10,104 --> 00:02:12,020 Lahat ng bagay mula sa huling linggo ay magagamit online. 38 00:02:12,020 --> 00:02:14,840 Sa partikular na mapagkukunan na maaari ka hindi kinakailangang paunawa, lalo na 39 00:02:14,840 --> 00:02:15,881 kung pagdating dito sa tao. 40 00:02:15,881 --> 00:02:20,230 Kaya isa sa mga Fellows ng pagtuturo sa bawat taong gumagawa ng isang canonical na hanay ng mga tala, 41 00:02:20,230 --> 00:02:22,010 kaya hindi mo na kailangan panatilihin iyong down ulo, sinusubukan 42 00:02:22,010 --> 00:02:24,410 isalin sa ibang papel ang karamihan ng anumang bagay na maaaring mangyari dito sa class. 43 00:02:24,410 --> 00:02:25,940 Kaya Napagtanto na ang mga tinatawag na [? Scribd?] Tala 44 00:02:25,940 --> 00:02:29,350 ay online, tiyak na ang mga slide at source code na ginagamit namin sa class. 45 00:02:29,350 --> 00:02:31,436 Gumawa kami ng full transcript text makukuha rin. 46 00:02:31,436 --> 00:02:34,310 Kaya kung vaguely mong tandaan ang ilang mga term, at nais na tingnan ito ng kaunti 47 00:02:34,310 --> 00:02:37,280 mas magaan, alalahanin na ang lahat ng ng mga iyon ay mahahanap online. 48 00:02:37,280 --> 00:02:38,930 Pati na rin ang walkthroughs rin. 49 00:02:38,930 --> 00:02:42,710 Sa katunayan, ngayon magsisimula kami upang tumingin sa isang mas mababang level programming language, 50 00:02:42,710 --> 00:02:45,290 sa lalong madaling panahon upang maging kilala sa amin bilang C, at ito ay tunay madali 51 00:02:45,290 --> 00:02:48,820 na uri ng mawala pagkatapos lamang ng ilang sandali na oras, at pagkatapos ay ayusin ng Wonder 52 00:02:48,820 --> 00:02:52,370 kung paano namin aktwal na nakuha sa ilang mga mas kumplikadong halimbawa mula sa pinakasimpleng. 53 00:02:52,370 --> 00:02:54,975 At kaya Napagtanto bibigyan namin ng cherry kunin sa panahon ng klase ng ilang 54 00:02:54,975 --> 00:02:57,850 mga kinatawan ng mga halimbawa, ngunit mapagtanto na kaya marami pa rin 55 00:02:57,850 --> 00:03:01,140 na magagamit sa online upang maaari mong trabaho sa pamamagitan ng ito sa sarili mong bilis, 56 00:03:01,140 --> 00:03:02,950 subalit ikaw ay pinaka-komportable. 57 00:03:02,950 --> 00:03:05,200 >> Ngunit tumigil kami sa mga programa na lamang ito. 58 00:03:05,200 --> 00:03:09,690 Kaya mag-click ko ang berdeng flag, at kung ano ang ginagawa ng programang ito? 59 00:03:09,690 --> 00:03:10,710 Sabi, hello, world. 60 00:03:10,710 --> 00:03:13,180 Ito ay gumagawa ng pusa sabihin kumusta sa kanyang maliit na mundo 61 00:03:13,180 --> 00:03:15,990 sa itaas na kaliwang bahagi ng user interface scratch. 62 00:03:15,990 --> 00:03:18,810 Ngunit kami ay nagsimula upang ipakilala ang ilang mga terminolohiya noong nakaraang linggo. 63 00:03:18,810 --> 00:03:23,614 At ito, ang mga bagay tulad na ito namin tinatawag ano? 64 00:03:23,614 --> 00:03:25,280 Ano ang maaaring ang generic term para sa mga ito? 65 00:03:25,280 --> 00:03:26,266 Oo. 66 00:03:26,266 --> 00:03:28,210 Ang isang paraan o isang pahayag. 67 00:03:28,210 --> 00:03:29,280 Oo, ito ay isang aksyon. 68 00:03:29,280 --> 00:03:30,140 Gawin ito. 69 00:03:30,140 --> 00:03:32,400 At pa doon ay iba pang mga hugis sa simula, 70 00:03:32,400 --> 00:03:35,360 bukod sa mga ito ang tinatawag pahayag, sila ay din 71 00:03:35,360 --> 00:03:38,221 mga bagay na tulad nito, na tinawag naming ano? 72 00:03:38,221 --> 00:03:38,720 Oo. 73 00:03:38,720 --> 00:03:39,634 Kaya ang isang loop. 74 00:03:39,634 --> 00:03:42,050 At sa kasong ito, ang bagay na ito umuulit, malinaw naman, 10 ulit. 75 00:03:42,050 --> 00:03:43,040 May isang magpakailanman block. 76 00:03:43,040 --> 00:03:44,164 May isang pares ng iba. 77 00:03:44,164 --> 00:03:48,309 At ngayon kami ay pagpunta upang makita kung paano isalin ito sa isang mas modernong mundo, 78 00:03:48,309 --> 00:03:50,850 kung ikaw ay, kahit na ito ay pagpunta sa lumitaw sa unang sulyap 79 00:03:50,850 --> 00:03:52,024 upang maging mas arcane. 80 00:03:52,024 --> 00:03:53,190 Ngunit iyon ay sa katunayan loop. 81 00:03:53,190 --> 00:03:56,182 At pagkatapos kami ay may mga bagay tulad ng na ito, na kung saan ay nagkaroon na ito ng hugis, 82 00:03:56,182 --> 00:03:57,515 at mahalagang itanong. 83 00:03:57,515 --> 00:03:58,890 At tinutukoy namin sa mga ito bilang kung ano? 84 00:03:58,890 --> 00:03:59,762 >> Madla: Boolean expression. 85 00:03:59,762 --> 00:04:00,320 >> David J. MALAN: Oo. 86 00:04:00,320 --> 00:04:01,340 Boolean expression. 87 00:04:01,340 --> 00:04:04,502 Isang bagay na ay alinman true o false, oo o hindi, isa o zero, 88 00:04:04,502 --> 00:04:05,960 subalit nais mo upang makita ang mundo. 89 00:04:05,960 --> 00:04:08,335 Ngunit tinatawag naming mga Boolean expression, at mga plug namin ang mga ito 90 00:04:08,335 --> 00:04:09,900 sa kondisyon, o sanga. 91 00:04:09,900 --> 00:04:12,170 At sa mundo ng Sa simula, ang lahat ng bagay na mabuti 92 00:04:12,170 --> 00:04:15,460 interlocks sa mga tuntunin ng hugis nito, kung ito ay gumagawa ng lohikal na kahulugan na gawin ito, 93 00:04:15,460 --> 00:04:18,490 ngunit hindi mo na kailangang itigil lamang paggawa ng isang bagay nang may pasubali, 94 00:04:18,490 --> 00:04:20,450 Maaari kang magkaroon ng isang kilalang-kilala tinidor sa kalsada 95 00:04:20,450 --> 00:04:24,040 at gawin ang alinman sa mga ito o na kung ang kalagayan ay totoo o hindi. 96 00:04:24,040 --> 00:04:26,040 At pagkatapos, tulad ng makikita mo, kung hindi mo pa nagagawa, 97 00:04:26,040 --> 00:04:27,480 Maaari kang kahit na nest ang mga bloke. 98 00:04:27,480 --> 00:04:32,110 Kaya lumalaki scratch upang punan ang mga hugis na maaari mong ipasok sa mga ito, 99 00:04:32,110 --> 00:04:35,330 para makita mo ang tunay na ipahayag ang pinaka anumang logic na maaaring gusto mong gawin. 100 00:04:35,330 --> 00:04:38,220 >> Ngayon ng ilang mga salita ng patalastas para sa parehong dito at New Haven. 101 00:04:38,220 --> 00:04:39,370 Kaya sectioning nagsisimula ngayon. 102 00:04:39,370 --> 00:04:42,120 Ang URL para ito ay sa kurso ni website, para sa mga pamilyar. 103 00:04:42,120 --> 00:04:43,970 Seksyon ay magiging isang pagkakataon na makakuha ng sama-sama 104 00:04:43,970 --> 00:04:46,553 sa isang mas intimate kapaligiran kaysa [? Sanders?] Ay nagbibigay-daan, 105 00:04:46,553 --> 00:04:50,347 may 10 hanggang 20 kaklase na may isang pagtuturo kapwa sa iba't ibang mga track, 106 00:04:50,347 --> 00:04:51,930 at iba't ibang mga hakbang, kung pinili mo ito. 107 00:04:51,930 --> 00:04:54,080 Sa katunayan ang mga alok course iba't ibang mga seksyon 108 00:04:54,080 --> 00:04:57,340 para sa mga mas kumportable, mas kumportable, at lugar sa pagitan, 109 00:04:57,340 --> 00:04:59,860 at ang papel ng hinlalaki dito, ay walang pormal na kahulugan, 110 00:04:59,860 --> 00:05:04,600 ngunit kung ikaw ay mas kumportable, mong uri ng malaman ito. 111 00:05:04,600 --> 00:05:07,470 Kayo ay isang bit nagugulat tungkol sa ideya ng tuntong paa, marahil, bumalik 112 00:05:07,470 --> 00:05:10,130 sa silid-aralan, o pagpapakita hanggang sa isang sa pagitan ng section. 113 00:05:10,130 --> 00:05:12,770 Kung kayo ay programming dahil ikaw ay anim na taong gulang, mas kumportable, 114 00:05:12,770 --> 00:05:13,400 marahil sa iyo. 115 00:05:13,400 --> 00:05:16,150 At kung ito ay uri ng isang palabunutan, na eksakto kung ano ang sa pagitan ng 116 00:05:16,150 --> 00:05:17,190 ay sinadya upang maging. 117 00:05:17,190 --> 00:05:18,410 >> Ngayon, sa habang panahon, para sa isang klase sukat na ito, 118 00:05:18,410 --> 00:05:21,326 ito ay tumatagal sa amin sa lubos ng ilang oras upang section sa lahat, kaya kami ay tinatawag na, 119 00:05:21,326 --> 00:05:24,030 super seksyon, paparating na ito weekend at maagang susunod na linggo, 120 00:05:24,030 --> 00:05:26,570 kaya tingnan sa website ng kurso para sa mga na kurso malawak, 121 00:05:26,570 --> 00:05:28,610 at kinukunan din para sa mga na hindi maaaring gumawa ng mga ito. 122 00:05:28,610 --> 00:05:33,470 At seksyon ay ang kanilang mga sarili simulan sa tatlong linggo ng CS50 zero index. 123 00:05:33,470 --> 00:05:35,880 Itakda Problema 0 ito ay ginagamit na sa website ng kurso. 124 00:05:35,880 --> 00:05:40,010 At napagtanto na ikaw ay walang siyam na late araw na ito semestre. 125 00:05:40,010 --> 00:05:43,240 Kaya ito ay isang mag-upgrade mula sa nakaraang taon, kapag nagkaroon kami ng limang late araw. 126 00:05:43,240 --> 00:05:46,210 >> Kaya't kung ikaw ay nagtataka, kami ay may siyam hanay ng problema. 127 00:05:46,210 --> 00:05:53,200 Mayroon kang siyam late na araw, ang bawat isa ay maaari ka lamang gumastos ng isa bawat linggo sa. 128 00:05:53,200 --> 00:05:56,089 Iyon epektibong gumagawa ng lahat ng nagtatakda ng mga problema dahil Biyernes, 129 00:05:56,089 --> 00:05:58,630 ngunit ang layunin ay upang ilagay ang isang maliit na piraso ng sikolohikal na presyon 130 00:05:58,630 --> 00:06:01,100 sa inyo na subukan upang makakuha ng sa mga bagay na sa Huwebes 131 00:06:01,100 --> 00:06:03,960 dahil bilang ikaw ay madaling matuklasan, para sa mas mahusay o mas masahol pa, ang karamihan 132 00:06:03,960 --> 00:06:07,820 ang lahat ng bagay sa mundo ng software ay nagtatapos up mas matagal kaysa sa inaasahan mo ang pagkuha. 133 00:06:07,820 --> 00:06:10,620 Kaya isaalang-alang ito ng isang uri ng pagkakataon na makatulong sa 134 00:06:10,620 --> 00:06:13,880 sa iyong sarili upang i-target Huwebes, ngunit kumuha ng kaginhawaan sa na, oo, 135 00:06:13,880 --> 00:06:14,950 ang lahat ng bagay ay dahil Biyernes. 136 00:06:14,950 --> 00:06:17,590 At kung isumite ang mga ito sa iyo Huwebes, iyan ay kahanga-hanga. 137 00:06:17,590 --> 00:06:21,020 Walang mga puntos ng bonus o dagdag credit para sa pulong na deadline. 138 00:06:21,020 --> 00:06:23,250 Ito ay nilalayong maging isang saklay lamang. 139 00:06:23,250 --> 00:06:25,810 >> At mga oras ng opisina, kapwa dito at sa New Haven, 140 00:06:25,810 --> 00:06:28,840 sa tao, kung gusto mo upang matugunan sa sinuman sa aming mga kurso 141 00:06:28,840 --> 00:06:31,060 pagtuturo Fellows at Cas para sa tulong. 142 00:06:31,060 --> 00:06:31,640 >> Ayos lang. 143 00:06:31,640 --> 00:06:33,110 Kaya ngayon, gumawa ng mga ito ng mas tunay na ipaalam. 144 00:06:33,110 --> 00:06:35,470 At para sa isang sandali na ito ay pagpunta upang simulan ang upang makakuha ng isang maliit na mas arcane, ngunit masyadong 145 00:06:35,470 --> 00:06:37,310 mabilis sa Biyernes at susunod na linggo ay hindi namin 146 00:06:37,310 --> 00:06:41,230 kayang gawin ito ng higit pa kaysa kami dati kaya ngayon sa scratch. 147 00:06:41,230 --> 00:06:44,350 Kaya ipinakilala namin huling code linggo, kahit pictoral. 148 00:06:44,350 --> 00:06:45,620 Ito ay mga piraso ng puzzle. 149 00:06:45,620 --> 00:06:48,800 At kami pormal na ito ay bagay na tinatawag na source code, 150 00:06:48,800 --> 00:06:50,330 ngunit nais ay ganito ang hitsura? 151 00:06:50,330 --> 00:06:52,550 Well, ito ay tumingin sa isang maliit na bagay tulad nito. 152 00:06:52,550 --> 00:06:55,410 At, sa katunayan, lamang sa uri ng mang-ulol kung saan maaari naming pumunta sa mga ito. 153 00:06:55,410 --> 00:06:57,800 Pupunta ako sa sige at magbukas ng isang window dito, 154 00:06:57,800 --> 00:06:59,810 at ako lamang ang pagpunta upang pumili New File. 155 00:06:59,810 --> 00:07:03,200 At ako pagpunta upang i-save ang file na ito bilang isang bagay tulad kumusta dot c. 156 00:07:03,200 --> 00:07:05,700 Higit pa sa na pagpili ng mga salita sa isang sandali lamang. 157 00:07:05,700 --> 00:07:08,630 At ito ay kung paano ang isang tao ay maaaring pumunta tungkol sa pagsusulat ng isang programa. 158 00:07:08,630 --> 00:07:13,990 Isama standard I / O tuldok h, int pangunahing walang bisa, at pagkatapos ay buksan ang kulot suhay, malapit 159 00:07:13,990 --> 00:07:19,430 kulot suhay, printf kumusta comma mundo, backslash n, semicolon, Save, tapos na. 160 00:07:19,430 --> 00:07:19,930 OK. 161 00:07:19,930 --> 00:07:21,670 Ako ng nakasulat na ang aking unang programa, ngunit ito ay pagpunta 162 00:07:21,670 --> 00:07:23,878 upang maging kapani-paniwalang underwhelmed dahil kapag ako ay tunay 163 00:07:23,878 --> 00:07:27,352 patakbuhin ang program na ito, siyempre, sa pamamagitan ng unang pagsulat gumawa hello, 164 00:07:27,352 --> 00:07:30,310 at pagkatapos ay tuldok slash hello, at bibigyan namin ng pumunta sa pamamagitan na ito sa marami pang detalye 165 00:07:30,310 --> 00:07:31,730 sa isang sandali, na ang lahat ng ginagawa nito. 166 00:07:31,730 --> 00:07:33,270 Hindi pop bukas anumang bintana. 167 00:07:33,270 --> 00:07:35,070 Hindi ito gumawa ng anumang bagay lalo na pag-iisip. 168 00:07:35,070 --> 00:07:38,830 Lahat ng ito ay kung ano ang sinabi ko ito sa gawin, ngunit paano namin makuha sa na? 169 00:07:38,830 --> 00:07:40,560 At paano namin bumuo sa iyon? 170 00:07:40,560 --> 00:07:43,430 Well, sabihin ipakilala ng ilang hayaan iba't-ibang mga concepts dito. 171 00:07:43,430 --> 00:07:47,170 >> Kaya isa, hindi namin tungkol sa upang simulan gamit ang isang programa na tinatawag na isang compiler. 172 00:07:47,170 --> 00:07:51,470 A compiler ang umiiral para sa Mac OS, Windows, Linux, ang anumang bilang ng mga operating system, 173 00:07:51,470 --> 00:07:54,540 at kami na sa lalong madaling panahon kitang ipakilala sa mga kapaligiran na kami ay gumagamit ng, 174 00:07:54,540 --> 00:07:57,410 ngunit isang tagatala ay lamang ng isang pangkalahatang term para sa isang piraso ng software 175 00:07:57,410 --> 00:08:01,940 na tumatagal ng source code at gumagawa object code mula dito. 176 00:08:01,940 --> 00:08:03,940 Sa ibang salita, kung ikaw magkaroon ng input ang iyong mapagkukunan 177 00:08:03,940 --> 00:08:08,250 code, isang bagay na tulad ng kung ano lang type ko, ito ay ganap na gumagawa ng object code. 178 00:08:08,250 --> 00:08:11,780 At object code ay talagang lamang isang magarbong paraan ng pagsabi nito output 179 00:08:11,780 --> 00:08:12,926 zero at isa sa. 180 00:08:12,926 --> 00:08:14,800 Sa ibang salita, ang pinagmulan code, kahit na ito ay 181 00:08:14,800 --> 00:08:17,240 pagpunta sa hitsura ng isang maliit na arcane, at isang maliit na mas friendly 182 00:08:17,240 --> 00:08:19,590 sa simula sa unang tingin, ito ay hindi bababa sa isang bagay 183 00:08:19,590 --> 00:08:21,120 na maaaring maunawaan namin ang mga tao. 184 00:08:21,120 --> 00:08:24,360 Ito uri ng hitsura at tunog tulad ng Ingles kahit na ito ay napaka-maikli at malinaw. 185 00:08:24,360 --> 00:08:28,040 Sapagkat programming sa zero at ng isang tao, tulad ng aming mga predecessors ay upang gawin, 186 00:08:28,040 --> 00:08:30,920 ilang taon na ang nakaraan, ay hindi isang lalo na masaya hamon. 187 00:08:30,920 --> 00:08:33,710 At gayon pa man, ito ay kung ano ang naiintindihan pa rin ng computer. 188 00:08:33,710 --> 00:08:37,010 Kaya makakakuha compiler sa amin mula sa source code sa object code. 189 00:08:37,010 --> 00:08:39,860 Ito ay tulad ng pagbubukas ng isang file na may mga tagatala, at kapag na-save mo ito, 190 00:08:39,860 --> 00:08:41,419 kumuha ka ng mga zero at mga. 191 00:08:41,419 --> 00:08:43,419 Kaya makikita namin makita kung paano gawin na sa ilang sandali lamang. 192 00:08:43,419 --> 00:08:47,400 >> Ngunit subukan na magbigay ng isang sabihin ngayon tulay sa pagitan ng huling linggo at ito, 193 00:08:47,400 --> 00:08:50,660 upang ang kahit na bilang namin makakuha ng hung up sa mga bagay tulad curly braces, 194 00:08:50,660 --> 00:08:54,100 at semicolons, at panaklong, at lahat ng mga kagiliw-giliw na intellectually 195 00:08:54,100 --> 00:08:57,620 aspeto ng programming, na tunay understandably trip mga tao hanggang sa maagang bahagi, 196 00:08:57,620 --> 00:09:00,930 mapagtanto na ang lahat ng mga ideya araw na ito, ay ang parehong bilang huling. 197 00:09:00,930 --> 00:09:03,975 Kaya noong nakaraang, nakita namin ang mga halimbawa na ito dito, program Hello World. 198 00:09:03,975 --> 00:09:07,500 Well, simula ngayon, kung gusto naming upang ipatupad ang parehong programa, 199 00:09:07,500 --> 00:09:10,800 ito ay pagpunta sa hitsura ng isang maliit na bagay tulad nito. 200 00:09:10,800 --> 00:09:14,040 At ipapaliwanag namin kung bago ang haba ano int, at pangunahing, at walang bisa, at ang lahat ng na 201 00:09:14,040 --> 00:09:18,770 ay, ngunit hindi bababa sa nakikita ko dito na ang mga pamilyar na Hello World. 202 00:09:18,770 --> 00:09:20,860 >> Samantala, ang mga bagay tulad ng function, sabihin nating hello, 203 00:09:20,860 --> 00:09:23,570 ay tunay lamang magiging isang napaka-simpleng statement na tulad nito. 204 00:09:23,570 --> 00:09:26,930 Printf kumusta mundo, na may ilang mga quotes, na may isang backslash, 205 00:09:26,930 --> 00:09:29,780 may isang tuldok-kuwit, ngunit higit pa sa na sa darating. 206 00:09:29,780 --> 00:09:34,066 Mga Loop, samantala, ito ay isang loop na, siyempre, sabi hello world magpakailanman, 207 00:09:34,066 --> 00:09:36,690 at ang isang ito ay pagpunta sa hitsura ng isang maliit weirder kaysa sa huling, 208 00:09:36,690 --> 00:09:39,530 Nguni't kung sabihin ko ng isang bagay tulad ng, habang ang totoo, ako 209 00:09:39,530 --> 00:09:44,050 maaari pagkatapos i-print out Kamusta mundo muli at muli at muli at muli. 210 00:09:44,050 --> 00:09:46,660 At pagkatapos ay maaari mong uri ng simulan upang ipahiwatig dito, 211 00:09:46,660 --> 00:09:49,070 convention na ito ng mga gamit curly braces ay uri 212 00:09:49,070 --> 00:09:52,050 ng mga tulad ng pagyakap sa indent linya ng code doon. 213 00:09:52,050 --> 00:09:55,840 Ang printf linya ng code na halos tulad ang dilaw na piraso ng puzzle up sa itaas. 214 00:09:55,840 --> 00:09:58,740 Kaya kami ay hindi pagpunta sa sabihin magpakailanman, kami ay pagpunta sa sabihin habang totoo, 215 00:09:58,740 --> 00:10:01,020 ngunit kami ay makita kung bakit na sa ilang saglit lamang. 216 00:10:01,020 --> 00:10:04,210 >> Samantala, kung kami ay may isang loop na tulad nito, kung saan ulitin mo ang isang bagay ng isang may hangganan 217 00:10:04,210 --> 00:10:07,730 beses na numero, ang isang ito ay masyadong ito ay pagpunta sa isang maliit na nagsisimula ginagamit 218 00:10:07,730 --> 00:10:12,820 sa, ngunit ito ay pagpunta sa sabihin para sa int i makakakuha ng zero, i mas mababa sa 10, i ++, 219 00:10:12,820 --> 00:10:14,056 at pagkatapos ay printf muli. 220 00:10:14,056 --> 00:10:15,430 Ngunit may ay magiging pattern. 221 00:10:15,430 --> 00:10:18,434 At para sa mga pamilyar sa AP Computer Science, o Java, 222 00:10:18,434 --> 00:10:21,100 o anumang bilang ng iba pang mga wika, halos lahat ng mga constructs 223 00:10:21,100 --> 00:10:23,820 kaya sa ngayon ay dapat magmukhang halos pamilyar. 224 00:10:23,820 --> 00:10:24,680 >> Kaya variable. 225 00:10:24,680 --> 00:10:29,270 Kaya narito ang isang simpleng scratch excerpt na Nagtatakda ng variable na tinatawag na counter sa zero, 226 00:10:29,270 --> 00:10:33,150 at pagkatapos ay magpakailanman sabi ng counter, at pagkatapos ito ang mga pagbabago sa mga counter-isa. 227 00:10:33,150 --> 00:10:37,030 Kaya ito ay nagsisimula sa zero, at pagkatapos ay isa, dalawa, tatlo. 228 00:10:37,030 --> 00:10:42,560 Well, kung paano maaari naming ipakilala na sa ang bagong wika ng isang maliit na parehas? 229 00:10:42,560 --> 00:10:45,460 Counter int katumbas zero, habang ang totoo, na 230 00:10:45,460 --> 00:10:48,100 ay na parehong ideya mula sa harap ng paggawa ng isang bagay magpakailanman, 231 00:10:48,100 --> 00:10:49,530 at ako lamang ang pagpunta sa printf. 232 00:10:49,530 --> 00:10:53,310 At ngayon ito ay nakakakuha ng isang maliit na kakaiba, porsiyento i, ngunit higit pa sa na sa darating, 233 00:10:53,310 --> 00:10:55,140 ngunit ang mga ideyang ito ay eksaktong kapareho. 234 00:10:55,140 --> 00:10:58,820 Ngayon namin lamang na sumunod sa ang syntax na ang computer ay 235 00:10:58,820 --> 00:11:00,010 pagpunta sa demand na sa amin. 236 00:11:00,010 --> 00:11:04,620 >> Boolean expression, ang isang bagay tulad x mas mababa sa y, o x mas mababa sa y, 237 00:11:04,620 --> 00:11:06,354 at y mas mababa sa z. 238 00:11:06,354 --> 00:11:09,270 Ito ay pagpunta upang tumingin ng isang maliit na bagay tulad nito, na may mga panaklong lamang 239 00:11:09,270 --> 00:11:13,020 tulad ng sa math para sa mabuting panukala sa makatarungan matiyak na ang pagkakasunod-sunod ng mga operasyon 240 00:11:13,020 --> 00:11:14,750 ay bilang layon naming. 241 00:11:14,750 --> 00:11:15,600 At ngayon, mga kondisyon. 242 00:11:15,600 --> 00:11:21,220 Kaya kung x mas mababa sa y, sabihin x ay mas mababa kaysa sa y, iba kung x ay mas malaki kaysa sa y, 243 00:11:21,220 --> 00:11:26,020 sabihin x ay mas malaki kaysa sa y, sa kabilang banda lohikal, x dapat na katumbas ng y. 244 00:11:26,020 --> 00:11:28,710 Kaya maaari mong ipatupad bagay na tulad nito sa simula, 245 00:11:28,710 --> 00:11:31,230 o maaari mong ipatupad ito sa ganitong syntax. 246 00:11:31,230 --> 00:11:35,090 At muli, ang curly braces ang mga uri ng pagbigay sa amin ng parehong hugis bilang ang puzzle 247 00:11:35,090 --> 00:11:40,750 piraso, ngunit ang syntax, ngayon, ay marahil simula na sundin ang ilang mga pattern. 248 00:11:40,750 --> 00:11:42,910 >> Kaya, ano ang ibigay sa amin dito? 249 00:11:42,910 --> 00:11:45,260 Kaya hindi namin pabalik pagkatapos ay sa aming mga pangunahing programa. 250 00:11:45,260 --> 00:11:47,930 Sabihin ang tunay na, ngayon, gawin ang isang bagay sa mga ito. 251 00:11:47,930 --> 00:11:50,660 Kaya sa unang line matalim namin makita isama, 252 00:11:50,660 --> 00:11:53,160 standard I / O, tuldok h, at pagkatapos ng ilang mga kakatwang anggulo 253 00:11:53,160 --> 00:11:57,330 bracket sa ibaba na. int main walang bisa, at pagkatapos ay printf kumusta mundo. 254 00:11:57,330 --> 00:11:58,200 Kaya tumagal lamang ng isang hakbang. 255 00:11:58,200 --> 00:12:02,440 May isang tao na hindi kailanman program bago, hindi bababa sa ipaliwanag ang isa sa mga linyang ito. 256 00:12:02,440 --> 00:12:04,490 Paggamit marahil ang ilan sa magulong pag-uusap ng huling linggo. 257 00:12:04,490 --> 00:12:06,942 Ano ang printf, halimbawa? 258 00:12:06,942 --> 00:12:07,442 Oo. 259 00:12:07,442 --> 00:12:08,410 >> Madla: [hindi marinig] 260 00:12:08,410 --> 00:12:08,610 >> David J. MALAN: Oo. 261 00:12:08,610 --> 00:12:11,380 Ito ay isang function, o isang pahayag, mula sa mga terminolohiya na noong nakaraang linggo. 262 00:12:11,380 --> 00:12:13,470 At ito ay isang aksyon na paggawa ng isang bagay. 263 00:12:13,470 --> 00:12:15,855 Ngayon ang function na ito, o ang pahayag na ito, ay 264 00:12:15,855 --> 00:12:17,550 ito ay lalabas sa tumagal ng ilang uri ng mga input? 265 00:12:17,550 --> 00:12:20,080 266 00:12:20,080 --> 00:12:24,380 At sa kung ano kahulugan ang ginagawa nito mukhang kumuha input, kung gayon? 267 00:12:24,380 --> 00:12:26,180 Input, kung ano ang ibig sabihin ako sa pamamagitan ng na? 268 00:12:26,180 --> 00:12:26,720 Oo. 269 00:12:26,720 --> 00:12:27,595 >> Madla: [hindi marinig] 270 00:12:27,595 --> 00:12:30,565 271 00:12:30,565 --> 00:12:31,440 David J. MALAN: Oo. 272 00:12:31,440 --> 00:12:34,890 Kaya Kaskasin out ng ilang mga piraso ng puzzle kung saan maaari mong parametrize. 273 00:12:34,890 --> 00:12:37,980 Maaari mong sabihin sa mga paulit-ulit na harangan ang kung gaano karaming beses na ulitin, 274 00:12:37,980 --> 00:12:40,320 nang sa gayon ay isang input ng masama, at tulad ng mga scratch 275 00:12:40,320 --> 00:12:43,060 ay nagkaroon ng isang maliit na puting placeholder para sa bilang na iyong nais na i-type sa, 276 00:12:43,060 --> 00:12:45,810 kaya gawin na ginagamit namin sa mga ito text mundo panaklong 277 00:12:45,810 --> 00:12:49,910 upang bigyan kami na pabilog na hugis sa kung saan maaari naming plug aming input. 278 00:12:49,910 --> 00:12:53,180 Pagkatapos ng lahat, sampu-sampung taon na ang nakaraan kapag ang wikang ito, na tinatawag na C, 279 00:12:53,180 --> 00:12:55,950 ay likha walang inaasahang ito ay isa sa atin, 280 00:12:55,950 --> 00:12:59,420 mga ilang taon na ang lumipas, gusto namin Gusto ng isang function na nagsasabing hello. 281 00:12:59,420 --> 00:12:59,920 Right? 282 00:12:59,920 --> 00:13:02,880 Gusto Ito ay maganda kung mayroong isang piraso ng puzzle, o isang susi salita, 283 00:13:02,880 --> 00:13:05,502 na tinatawag na hello, na literal lamang sabi kumusta. 284 00:13:05,502 --> 00:13:06,460 Ngunit hindi namin kailangan iyon. 285 00:13:06,460 --> 00:13:09,320 Maaari naming magkaroon ng isang bagay na mas mababa antas, tulad ng isang generic print 286 00:13:09,320 --> 00:13:12,760 command, na tumatagal ng input, at mga kopya ng kahit anong gusto namin. 287 00:13:12,760 --> 00:13:14,960 Kaya ngayon mapansin ang pattern na ay magsisimula na lumitaw. 288 00:13:14,960 --> 00:13:19,310 Open paren, malapit paren ay tila pagyakap sa input, 289 00:13:19,310 --> 00:13:21,770 at pagkatapos ay makita ko double quotes sa parehong dulo. 290 00:13:21,770 --> 00:13:25,110 Mayroon pa rin ng kakaibang backslash n, ngunit sana ngayon mo 291 00:13:25,110 --> 00:13:29,900 maaaring magsimula upang mailarawan ang hindi bababa sa na printf ay ang pagkuha sa ilang mga paraan ng pag-input. 292 00:13:29,900 --> 00:13:31,850 Hindi bilang user friendly bilang Kaskasin, ngunit ito lamang 293 00:13:31,850 --> 00:13:34,920 tulad ng pagkakaroon ng naka-plug in ang ilang mga halaga doon. 294 00:13:34,920 --> 00:13:38,306 >> Lahat ng karapatan, ngayon sabihin aktwal gawin ang isang bagay na may ito. 295 00:13:38,306 --> 00:13:40,930 Kaya ikaw ay makilala ang ilan sa iyo mula sa pagkakaroon ng nag-shop sa klase bago, 296 00:13:40,930 --> 00:13:42,638 chat sa mga kaibigan, na para sa maraming taon 297 00:13:42,638 --> 00:13:44,590 ginagamit namin ang isang bagay na tinatawag na CS50 appliance. 298 00:13:44,590 --> 00:13:49,160 Ito ay isang kataga na naglalarawan ng isang technology tinatawag na ang virtual machine, na kung saan 299 00:13:49,160 --> 00:13:51,870 ay isang piraso ng software na ang iyong predecessors ay i-download off 300 00:13:51,870 --> 00:13:53,360 website ng kurso para sa libre. 301 00:13:53,360 --> 00:13:56,550 Gusto nila i-download din ng isang libreng piraso ng software na tinatawag na isang hypervisor, 302 00:13:56,550 --> 00:14:00,590 isang bagay na tinatawag tulad ng VMware, o VirtualBox, o anumang bilang 303 00:14:00,590 --> 00:14:04,450 ng iba pang mga kasangkapan, at sa kanilang Mac o PC o kahit anong computer na sila ay nagkaroon ng nakaraang taon 304 00:14:04,450 --> 00:14:06,620 at sa mga nakaraang taon, ang mga ito ay double click ang isang icon 305 00:14:06,620 --> 00:14:08,860 upang patakbuhin ang software na ito tinatawag na hypervisor. 306 00:14:08,860 --> 00:14:12,220 At pagkatapos ay sa loob ng programa na Gusto nilang buksan ang CS50 appliance. 307 00:14:12,220 --> 00:14:14,710 At ang mga epekto ay na kung ang isang sinundan ng sa iyo 308 00:14:14,710 --> 00:14:17,780 ay tumatakbo sa Mac OS o Windows, siya pagkatapos ay 309 00:14:17,780 --> 00:14:22,910 dakong huli ay nagkaroon ng isang bagong window sa kanilang screen tumatakbo kapaligiran CS50. 310 00:14:22,910 --> 00:14:27,370 Kaya ang isang virtual machine hinahayaan kang magpatakbo ng isa operating system sa loob ng isa pang, 311 00:14:27,370 --> 00:14:28,785 at iyon mismo ang ginawa namin. 312 00:14:28,785 --> 00:14:31,410 Sa buong karamihan ng mga kurso namin gamitin ang isang operating system na tinatawag na 313 00:14:31,410 --> 00:14:34,070 Linux, partikular Ubuntu Linux, at ito 314 00:14:34,070 --> 00:14:37,590 ay isang napaka-magandang paraan sa mga nakaraang taon ng siguraduhin na ang lahat ng tao sa kurso 315 00:14:37,590 --> 00:14:38,840 nagkaroon lamang ng parehong kapaligiran. 316 00:14:38,840 --> 00:14:41,339 At maaari mong gamitin ang anumang uri ng ng computer na iyong aktwal na gusto. 317 00:14:41,339 --> 00:14:43,930 Kabilang sa mga downsides, bagaman, ay ito ay tulad ng dalawang gigabytes 318 00:14:43,930 --> 00:14:45,480 upang i-download ang bagay na ito. 319 00:14:45,480 --> 00:14:50,310 Ito ay hindi kinakailangan sa trabaho super na rin sa mga tao na ang mga computer na siguro lamang 320 00:14:50,310 --> 00:14:54,570 ay nagkaroon ng isang gig o kaya ng RAM, o hindi masyadong maraming mga gigahertz ng bilis ng CPU, 321 00:14:54,570 --> 00:14:56,750 at iba sa taong ito, para ito at iba pang mga kadahilanan, 322 00:14:56,750 --> 00:14:59,140 mayroon kaming na-transition sa environment na ito. 323 00:14:59,140 --> 00:15:03,730 Ang tinatawag na CS50 IDE, na kung saan ay batay sa open source software, 324 00:15:03,730 --> 00:15:07,380 at isang suportadong platform na ang isang kumpanya na tinatawag na Cloud9 325 00:15:07,380 --> 00:15:11,110 sinusuportahan sa Europa, na ay nagbibigay-daan sa amin upang magkaroon ng mahalagang 326 00:15:11,110 --> 00:15:15,770 na eksaktong parehong kapaligiran bilang in nakaraang taon, ngunit sa ang tinatawag na ulap. 327 00:15:15,770 --> 00:15:17,532 >> Kaya kung ano ang ulap? 328 00:15:17,532 --> 00:15:20,480 Malamang na-click mo icon nito sa iyong Mac o PC. 329 00:15:20,480 --> 00:15:22,210 Ano ang cloud? 330 00:15:22,210 --> 00:15:22,709 Oo? 331 00:15:22,709 --> 00:15:25,880 332 00:15:25,880 --> 00:15:26,780 Ang isang maliit na louder. 333 00:15:26,780 --> 00:15:30,510 334 00:15:30,510 --> 00:15:31,010 Oo. 335 00:15:31,010 --> 00:15:33,770 Ito ay lamang ng isang grupo ng mga computer sa ibang lugar na tindahan ng data at run 336 00:15:33,770 --> 00:15:34,880 software at mga katulad. 337 00:15:34,880 --> 00:15:39,390 Kaya ito ay talagang lamang sa salita de ayon sa batas ng naglalarawan [? rentable?] 338 00:15:39,390 --> 00:15:40,930 mga computer na nakatira sa ibang lugar. 339 00:15:40,930 --> 00:15:42,810 Na ikaw, ang iyong sarili, hindi kinakailangang pag-aari. 340 00:15:42,810 --> 00:15:45,256 Kaya kapag ang iyong data, o ang iyong programa, ay sa ulap, 341 00:15:45,256 --> 00:15:47,630 ito ay nangangahulugan lamang na ito ay sa isang tao computer ng ibang tao sa ibang lugar, 342 00:15:47,630 --> 00:15:50,510 at hindi, malamang, sa iyong pisikal laptop o desktop. 343 00:15:50,510 --> 00:15:52,990 At kaya na kung ano ang CS50 IDE ngayon ay. 344 00:15:52,990 --> 00:15:55,670 >> Simula ngayon kailangan mong pumunta sa isang tiyak na URL na ipakikilala sa iyo 345 00:15:55,670 --> 00:16:00,090 upang, sa hanay ng problema 1, mamaya na ito linggo, na pagkatapos, sa pag-log in, 346 00:16:00,090 --> 00:16:01,480 magbibigay sa iyo ng environment na ito. 347 00:16:01,480 --> 00:16:03,896 At marami tulad ng simula ay nagkaroon ng isang ilang iba't ibang panels kasangkot, 348 00:16:03,896 --> 00:16:06,030 sa gayon ay magkaroon ng eksakto na IDE CS50. 349 00:16:06,030 --> 00:16:09,480 Sa itaas na kaliwang bahagi dito, ikaw ay pagpunta upang makita ang isang pamilyar na file browser. 350 00:16:09,480 --> 00:16:11,930 Kaya ang anumang mga file na iyong ilagay sa environment na ito 351 00:16:11,930 --> 00:16:13,346 pupunta lamang na nakalista doon. 352 00:16:13,346 --> 00:16:14,350 Mga file at mga folder. 353 00:16:14,350 --> 00:16:16,790 Sa tuktok ng karapatan dito, ikaw ay pagpunta upang makita ang isang lugar 354 00:16:16,790 --> 00:16:18,420 kung saan maaari mong aktwal na isulat ang iyong code. 355 00:16:18,420 --> 00:16:21,860 Sa una sa C, sa ibang pagkakataon sa kataga sa PHP at JavaScript, 356 00:16:21,860 --> 00:16:24,739 at, marahil para sa pangwakas na proyekto, Ruby o Java o sawa 357 00:16:24,739 --> 00:16:27,280 o anumang bilang ng mga wika ay suportado sa environment na ito. 358 00:16:27,280 --> 00:16:30,130 Ito ay hindi sa lahat ng nakatali sa CS50 mismo. 359 00:16:30,130 --> 00:16:33,390 >> At pagkatapos ay sa ilalim ng sulok dito, lalo na para sa mga mas kumportable, 360 00:16:33,390 --> 00:16:35,590 mayroon kang isang bagay tinatawag na isang terminal na window. 361 00:16:35,590 --> 00:16:38,770 At ito ay nagpapahintulot sa terminal na window sa iyo upang maipatupad ang anumang utos na ikaw 362 00:16:38,770 --> 00:16:40,860 nais sa cloud kapaligiran. 363 00:16:40,860 --> 00:16:42,860 Ito ay nagpapahintulot sa inyo na i-install anumang mga karagdagang software 364 00:16:42,860 --> 00:16:46,810 na gusto mo dahil ikaw ay tinatawag na root, o mga pribilehiyo ng administrator. 365 00:16:46,810 --> 00:16:49,930 Kaya sa ibang salita, kahit na ito ay ganap na naka-host sa ulap, 366 00:16:49,930 --> 00:16:52,400 at kahit na mayroon kaming pinasimple ito sa ilang mga lawak 367 00:16:52,400 --> 00:16:57,110 sa pamamagitan ng default, literal na nagpapakilala, salamat sa Dan Armendariz, at Dino, 368 00:16:57,110 --> 00:17:01,070 at Dan Bradley sa team CS50 sa ibabaw ng nakalipas na ilang buwan, ang isang mas kumportable 369 00:17:01,070 --> 00:17:05,140 mode na Itinatago ng maraming ng una nakalilito distractions. 370 00:17:05,140 --> 00:17:10,119 Lahat doon ay umiiral na kumakatawan sa isang tipikal na sistema ng computer 371 00:17:10,119 --> 00:17:12,319 na maaari mong gamitin sa tunay na mundo. 372 00:17:12,319 --> 00:17:15,640 >> Kaya kung ano ang ibig sabihin ng lahat, at kung ano ang maaari naming aktwal na gawin dito? 373 00:17:15,640 --> 00:17:19,124 Sabihin aktwal na tumagal ng isang silip sa isang programa. 374 00:17:19,124 --> 00:17:21,290 Kaya ako pagpunta upang buksan ang mga aktwal na kapaligiran dito, 375 00:17:21,290 --> 00:17:23,894 na kung saan ay lamang ang aming Chrome browser, na maaaring maging Firefox, 376 00:17:23,894 --> 00:17:26,640 maaaring Internet Explorer, o ilang iba pang browser pati na rin. 377 00:17:26,640 --> 00:17:28,400 Full Ito ay sinalang dito para sa mga sandali. 378 00:17:28,400 --> 00:17:31,580 At gusto ko na talagang mang-ulol bukod sa kung ano ang program na ito ay. 379 00:17:31,580 --> 00:17:36,170 Kaya sabihin tumagal ng isang pagtingin, sa pamamagitan ng pag-zoom in up itaas, sa kung ano ang ginawa ko, at kung paano nakuha ko dito. 380 00:17:36,170 --> 00:17:38,315 Kaya dito ang mga eksaktong parehong linya ng code. 381 00:17:38,315 --> 00:17:40,440 Kaya ito ay ang pahayag, tulad ng nabanggit mo ng mas maaga. 382 00:17:40,440 --> 00:17:42,580 Ang function na nagsasabing hello. 383 00:17:42,580 --> 00:17:45,870 Ang curly braces, sa line apat at anim na linya, 384 00:17:45,870 --> 00:17:49,290 baka uri ng balutin na linya upang iugnay ito 385 00:17:49,290 --> 00:17:50,890 sa kakanyahan ng aking programa. 386 00:17:50,890 --> 00:17:54,890 Kaya nga, ang keyword na main, na ang bahala doon sa tatlong linya, 387 00:17:54,890 --> 00:17:59,450 maaari mong isipin na ang bilang ng katumbas ng na kapag nag-click green flag, 388 00:17:59,450 --> 00:18:01,080 harangan sa scratch. 389 00:18:01,080 --> 00:18:05,280 Kaya na ang lahat na namin dito, ay kapag green flag na-click, i-print, o sabihin, 390 00:18:05,280 --> 00:18:06,700 kumusta mundo. 391 00:18:06,700 --> 00:18:11,210 >> Ngunit tumagal ng isang hulaan, ngayon, sa ipaalam sa kung ano ito una, mas arcane line, ay. 392 00:18:11,210 --> 00:18:15,100 Biglang isama, buksan angled bracket, standard I / O dot h, 393 00:18:15,100 --> 00:18:17,320 isara angled bracket. 394 00:18:17,320 --> 00:18:19,850 Anong na marahil ang paggawa, lalo na kung ka-program 395 00:18:19,850 --> 00:18:21,390 bago sa ilang iba pang mga wika. 396 00:18:21,390 --> 00:18:21,890 Oo? 397 00:18:21,890 --> 00:18:22,765 >> Madla: [hindi marinig] 398 00:18:22,765 --> 00:18:25,095 399 00:18:25,095 --> 00:18:25,970 David J. MALAN: Oo. 400 00:18:25,970 --> 00:18:26,470 Mismong. 401 00:18:26,470 --> 00:18:29,455 Kaya ito ay nagbibigay sa iyo ng access sa isang library, wika nga, ng mga pag-andar. 402 00:18:29,455 --> 00:18:31,830 At isang library ng mga function ay mga function na may ibang tao 403 00:18:31,830 --> 00:18:34,406 sumulat, mag-kamakailan o matagal na ang nakalipas, sa gayon ay ikaw 404 00:18:34,406 --> 00:18:35,780 Hindi mo na kailangang muling baguhin ang wheel. 405 00:18:35,780 --> 00:18:39,020 Halimbawa, hindi namin kung alam, sa 2015, 406 00:18:39,020 --> 00:18:42,280 kung paano magsulat ng code na inilalagay isang karakter sa aking screen. 407 00:18:42,280 --> 00:18:44,820 May ibang tao ay may korte na out sa printf function 408 00:18:44,820 --> 00:18:47,280 gayon ay maaari kong ayusin ng abstract layo mula sa na, o layer 409 00:18:47,280 --> 00:18:49,350 sa itaas ng kanyang code, at ngayon ay tumagal lamang 410 00:18:49,350 --> 00:18:52,760 para sa ipinagkaloob na ang anumang programa kong isulat maaaring i-print ang isang bagay sa screen. 411 00:18:52,760 --> 00:18:58,150 Kaya ito ang unang linya doon sa hakbang ng isa Kabilang dito ang tinatawag na file header 412 00:18:58,150 --> 00:18:59,980 para sa mga standard library. 413 00:18:59,980 --> 00:19:02,630 Kaya nakikita, ang wika sa na sa ngayon kami ay nagtatrabaho 414 00:19:02,630 --> 00:19:05,010 ay nagkaroon ng isang standard library na may maraming mga pag-andar. 415 00:19:05,010 --> 00:19:07,240 Printf ay isa sa kanila, at na ang unang linya ng code 416 00:19:07,240 --> 00:19:10,040 nangangahulugan bigyan ako ng access sa mga pag-andar, kaya na ako 417 00:19:10,040 --> 00:19:12,300 Hindi mo na kailangang muling baguhin ang wheel. 418 00:19:12,300 --> 00:19:15,940 >> Ngayon sabihin pumunta sa ibaba ng window at gawin kung ano mismo ang ko ay bago. 419 00:19:15,940 --> 00:19:18,520 Isang sandali ang nakalipas, kapag ako ay whizzing sa pamamagitan ng code, 420 00:19:18,520 --> 00:19:24,540 pag-type ang mga ito para sa unang pagkakataon, Ako ay mabilis na nag-type, gumawa ng halo. 421 00:19:24,540 --> 00:19:28,250 Ano na ang lahat tungkol sa mo hulaan? 422 00:19:28,250 --> 00:19:29,150 Ano ang ginagawa ko? 423 00:19:29,150 --> 00:19:29,649 Oo? 424 00:19:29,649 --> 00:19:31,810 425 00:19:31,810 --> 00:19:32,310 Wala iyon. 426 00:19:32,310 --> 00:19:32,970 Ito ay OK. 427 00:19:32,970 --> 00:19:33,492 Oo. 428 00:19:33,492 --> 00:19:34,450 Madla: pag-ipon ng mga ito. 429 00:19:34,450 --> 00:19:34,700 David J. MALAN: Oo. 430 00:19:34,700 --> 00:19:35,770 Ito ay lamang ng pag-ipon ng mga ito. 431 00:19:35,770 --> 00:19:36,270 Right? 432 00:19:36,270 --> 00:19:39,280 Kahit na ito ay ganap na pamilyar sa iyo, ito ay medyo English gusto. 433 00:19:39,280 --> 00:19:41,155 Ito ay tiyak na hindi zero at bago, kaya ko pa rin 434 00:19:41,155 --> 00:19:44,220 kailangan upang patakbuhin ito sa pamamagitan na tinatawag na programa, ang isang tagatala, na pupuntahan 435 00:19:44,220 --> 00:19:46,060 upang dalhin ito bilang input at makabuo ng output. 436 00:19:46,060 --> 00:19:48,270 At hindi bababa sa, para sa ngayon, sa ito Linux kapaligiran, 437 00:19:48,270 --> 00:19:51,030 ngunit ito ay hindi unang kailangan, ito lamang kung saan sisimulan namin, 438 00:19:51,030 --> 00:19:53,960 ikaw ay karaniwang makipag-ugnayan sa mga sistema ng computer na tulad nito 439 00:19:53,960 --> 00:19:55,770 sa pamamagitan ng isang tinatawag na linya ng command. 440 00:19:55,770 --> 00:19:57,790 Kaya sa isang kumikislap na prompt at sa iyong keyboard, 441 00:19:57,790 --> 00:20:01,630 at hindi masyado ang iyong mouse, at hindi kaya marami ang mga bintana at mga icon at mga menu, 442 00:20:01,630 --> 00:20:02,980 sa halip ang lahat ay sa texto. 443 00:20:02,980 --> 00:20:06,180 At kahit na ito nararamdaman, sa unang sulyap, marahil, tulad ng isang hakbang paurong, 444 00:20:06,180 --> 00:20:08,437 ito ay talagang isang mas malakas at nagpapahayag paraan 445 00:20:08,437 --> 00:20:10,270 ng pagkontrol ng isang computer lalo na bilang sa iyo, 446 00:20:10,270 --> 00:20:12,950 sa iyong sarili, magiging mas kumportable mula sa mas mababa. 447 00:20:12,950 --> 00:20:16,790 Ito ay pagpunta sa magpapahintulot sa inyo na gumawa ng isang pulutong mas bagay pa sa kung ano ang Microsoft 448 00:20:16,790 --> 00:20:20,390 o Apple ay nagpapahintulot sa iyo na gawin sa kanilang mga graphical operating system. 449 00:20:20,390 --> 00:20:23,270 >> Kaya kapag ako ay pindutin ang Enter, ngayon, walang mangyayari oras na ito 450 00:20:23,270 --> 00:20:25,960 dahil tila ang kumusta na programa ay hanggang sa petsa. 451 00:20:25,960 --> 00:20:28,250 At ano ang mga utos Ako ran matapos na? 452 00:20:28,250 --> 00:20:32,370 Dot slash hello, and hello mundo. 453 00:20:32,370 --> 00:20:34,350 Ngayon sabihin tumagal ng isang hakbang i-back para sa sandali lamang. 454 00:20:34,350 --> 00:20:39,510 Lumalabas na gumawa ng halo ay lamang ng isang pinasimple na paraan ng pag-ipon ng isang programa. 455 00:20:39,510 --> 00:20:41,670 Hayaan ipakilala ni lamang isang piraso ng magulong pag-uusap, 456 00:20:41,670 --> 00:20:43,470 ngunit pagkatapos ay ilipat ang layo mula sa mga ito, dahil ito ay hindi 457 00:20:43,470 --> 00:20:46,640 lahat na kawili-wili para sa mga layunin ngayon. 458 00:20:46,640 --> 00:20:51,000 Ang compiler kami ay pagpunta upang simulan ang paggamit ay tinatawag na kumalatong, para sa mga wika C. 459 00:20:51,000 --> 00:20:54,280 At ito ay isang programa na patakbuhin lamang tulad ng ginawa namin sa command line doon. 460 00:20:54,280 --> 00:20:56,580 At kaya kung gusto kong magtala ng isang programa na ako 461 00:20:56,580 --> 00:21:00,790 may nakasulat sa isang file na tinatawag na halo dot c, literal lamang ako type clang kumusta c 462 00:21:00,790 --> 00:21:02,100 ipasok. 463 00:21:02,100 --> 00:21:04,880 >> Ang nakakatawa bagay ay, para sa mga makasaysayang dahilan, 464 00:21:04,880 --> 00:21:07,750 kung hindi ko tukuyin ang pangalan ng programa 465 00:21:07,750 --> 00:21:11,690 na gusto ko na output, kung hindi ako tukuyin ang isang pangalan ng file para sa mga zero 466 00:21:11,690 --> 00:21:14,990 at bago, isang napaka-kakaiba convention ay pinagtibay taon na ang nakaraan 467 00:21:14,990 --> 00:21:17,390 na kung saan ang may palagay na ito uri ng isang magandang sagot sa oras, 468 00:21:17,390 --> 00:21:21,650 balon nagkataon lamang tumawag sa ipaalam unang programa compile kami ng isang tuldok out. 469 00:21:21,650 --> 00:21:22,900 A mauna sa alpabeto. 470 00:21:22,900 --> 00:21:23,920 Out, ito ay ang output. 471 00:21:23,920 --> 00:21:26,210 Kaya tatawagan namin ang programa sa pamamagitan ng default isang tuldok out. 472 00:21:26,210 --> 00:21:29,550 At iyon ang masarap dahil kung gusto kong patakbuhin ang programa sa text na ito batay 473 00:21:29,550 --> 00:21:33,590 kapaligiran, i-type lamang ako dot slash isang tuldok out ipasok. 474 00:21:33,590 --> 00:21:35,250 At ito ay tumakbo nang eksakto tulad ng dati. 475 00:21:35,250 --> 00:21:36,880 Kaya sabihin makita na tunay na mabilis. 476 00:21:36,880 --> 00:21:40,370 >> Kaya kung pumunta ako pabalik sa aking source code sa CS50 IDE, 477 00:21:40,370 --> 00:21:47,860 at sa halip ay kong gawin ito, clang kumusta cot c pasok, walang notice tila mangyari, 478 00:21:47,860 --> 00:21:49,790 ngunit halos palaging sa ito Linux kapaligiran, 479 00:21:49,790 --> 00:21:53,310 kapag walang masamang tila mangyari, na ang ay nangangahulugan ng isang bagay mabuti ang tunay na nangyari. 480 00:21:53,310 --> 00:21:56,270 Kung hindi mo makita ang isang error mensahe, ang lahat ay marahil na rin. 481 00:21:56,270 --> 00:22:01,930 At sa katunayan, kung ngayon ang gagawin ko dot slash isang tuldok out pasok, patakbuhin ko na ang aking parehong programa. 482 00:22:01,930 --> 00:22:04,610 Mayroon pa akong mga program kumusta mula sa mga naunang dahil sa katunayan, ito ay 483 00:22:04,610 --> 00:22:07,430 magiging kaya magkano nicer lamang type gumawa sa halip ng pag-alala 484 00:22:07,430 --> 00:22:10,240 mga incantations ng utos, ngunit sabihin makita kung paano namin 485 00:22:10,240 --> 00:22:12,890 maaaring mapabuti sa ito, gayunman. 486 00:22:12,890 --> 00:22:15,340 >> Kaya, ito ay ang mga utos upang itala ang code. 487 00:22:15,340 --> 00:22:19,100 Ito ang utos na tumakbo ang naipon code pagkaraan. 488 00:22:19,100 --> 00:22:20,546 Paano ko maaaring tukuyin ang isang pangalan ng file? 489 00:22:20,546 --> 00:22:22,670 Well hayaan ipakilala ni lamang isa pang piraso ng magulong pag-uusap. 490 00:22:22,670 --> 00:22:24,461 Kapag handa ka sa ganitong text based na kapaligiran, 491 00:22:24,461 --> 00:22:27,400 ikaw ay pagpunta sa nais na tukuyin ang mga bagay-bagay na tinatawag na argumento command line. 492 00:22:27,400 --> 00:22:31,380 Aling ay lamang ng isang magarbong paraan ng sinasabi, iba pang mga salita sa prompt na 493 00:22:31,380 --> 00:22:33,860 mag-tweak ang pag-uugali ng kahit anong program kayo ay tumatakbo. 494 00:22:33,860 --> 00:22:37,320 Kaya partikular na ang program Ako pagtakbo, sa pamamagitan ng pag-type ng pangalan kalatungin, 495 00:22:37,320 --> 00:22:38,504 ay ang programa na tinatawag Clang. 496 00:22:38,504 --> 00:22:40,920 Kaya ito ay o ang old school katumbas ng pag double-click 497 00:22:40,920 --> 00:22:42,860 sa Microsoft Word o icon ilang program. 498 00:22:42,860 --> 00:22:46,360 Sa halip lang ako sa pag-type ng pangalan nito, ngunit sa ganitong bersyon ng command, 499 00:22:46,360 --> 00:22:51,334 Pagkatapos ko dash space o kumusta space kumusta dot c. 500 00:22:51,334 --> 00:22:53,500 Kaya kahit na sa iyo na hindi kailanman play sa mundo na ito bago, 501 00:22:53,500 --> 00:22:58,160 tumagal lamang ng isang hulaan kung ano ang ay dash o kumusta gawin? 502 00:22:58,160 --> 00:23:00,620 O kung ano ang sabihin sa kumalatong gawin? 503 00:23:00,620 --> 00:23:01,386 Oo. 504 00:23:01,386 --> 00:23:02,455 >> Madla: [hindi marinig] 505 00:23:02,455 --> 00:23:03,330 David J. MALAN: Oo. 506 00:23:03,330 --> 00:23:08,614 Nagtatakda Ito lamang ang output ng file na kumusta sa halip na ang sillier isang tuldok out. 507 00:23:08,614 --> 00:23:09,780 At, sa katunayan, sabihin subukan ito ipaalam. 508 00:23:09,780 --> 00:23:14,250 Kaya kung ngayon gagawin ko, first ni gawin ito ipaalam, r m hello. 509 00:23:14,250 --> 00:23:15,590 Iyan ay alisin. 510 00:23:15,590 --> 00:23:18,450 At ito ay pagpunta sa sabihin alisin regular file hello, kung saan 511 00:23:18,450 --> 00:23:22,210 ay hindi kinakailangan arcane, ngunit ito lamang ibig sabihin nito ay ang gusto mong burahin ang mga file, 512 00:23:22,210 --> 00:23:23,230 at i-type ko y para sa yes. 513 00:23:23,230 --> 00:23:27,340 At mapansin, kung ikaw ay glancing sa itaas kaliwa, ito ay mawawala mula up doon. 514 00:23:27,340 --> 00:23:32,180 Hayaan akong ngayon gawin kumalatong dash o, at Pupunta ako sa magpatuloy at gawin hello, 515 00:23:32,180 --> 00:23:34,890 sa lahat ng takip, hello dot c. 516 00:23:34,890 --> 00:23:37,775 Ngayon, kung gagawin ko dot slash hello, kung ano ang gusto mong asahan? 517 00:23:37,775 --> 00:23:41,240 518 00:23:41,240 --> 00:23:42,430 >> Siguro ay case sensitive. 519 00:23:42,430 --> 00:23:43,070 Siguro ay hindi. 520 00:23:43,070 --> 00:23:44,030 Tingnan natin. 521 00:23:44,030 --> 00:23:45,230 Walang ganitong file o directory. 522 00:23:45,230 --> 00:23:47,438 At maaari naming uri ng impostor sa pamamagitan ng lamang ng pagtingin sa kaliwang tuktok. 523 00:23:47,438 --> 00:23:49,630 Ano ang ginawa ko nang walang alinlangan i-save ang mga programa tulad ng? 524 00:23:49,630 --> 00:23:51,070 Lahat ng caps hello. 525 00:23:51,070 --> 00:23:53,020 Kaya sa katunayan, iyon ang pagpunta upang gumawa ng isang pagkakaiba. 526 00:23:53,020 --> 00:23:54,540 Kaya ngayon kumusta mundo ay bumalik. 527 00:23:54,540 --> 00:23:56,969 Ngayon, ito ay ang lahat ng multa at mabuti, at ang lahat ng tunay na isip-numbing, 528 00:23:56,969 --> 00:23:59,760 na uri ng get nabalaho sa putik sa mga mga detalye, ngunit-unawa sa kanila 529 00:23:59,760 --> 00:24:00,500 ay mabuti. 530 00:24:00,500 --> 00:24:02,675 >> Ang pag-type ang mga ito unting mahabang incantations 531 00:24:02,675 --> 00:24:05,980 ay hindi magiging partikular na masaya, kaya ang mga tao sa mundo 532 00:24:05,980 --> 00:24:08,260 imbento ng isa pang programa, ilang taon na ang nakakaraan, na tinatawag na 533 00:24:08,260 --> 00:24:12,190 gumawa, na ganap lamang ay nagbibigay-daan sa iyo upang i-type make, 534 00:24:12,190 --> 00:24:14,530 ang pangalan ng programa nais mong gumawa ng, at gumawa 535 00:24:14,530 --> 00:24:18,580 ay matalino sa na ito ay tumingin sa kasalukuyang folder, aka direktoryo, 536 00:24:18,580 --> 00:24:21,440 at kung ikaw ay may isang file na tinatawag na halo dot c, 537 00:24:21,440 --> 00:24:25,800 iyon ay ang file na ito ay sumulat ng libro para sa iyo sa isang programa na tinatawag na hello. 538 00:24:25,800 --> 00:24:29,950 Kaya ito ay isang mas simpleng paraan ng paggawa ng mas misteriyoso utos 539 00:24:29,950 --> 00:24:30,800 na ginawa namin nang mas maaga. 540 00:24:30,800 --> 00:24:34,080 At kami ay pre-configure CS50 IDE malaman 541 00:24:34,080 --> 00:24:38,560 na ito ay dapat gawin dash o at isang bilang ng mga iba pang mga flags, o argumento command line, 542 00:24:38,560 --> 00:24:40,670 na namin makita bago ang haba. 543 00:24:40,670 --> 00:24:43,700 >> Ngunit sabihin ngayon talagang gawin isang bagay na mas kawili-wili. 544 00:24:43,700 --> 00:24:46,950 Pag-type lang ang hello world lahat ang oras ay hindi lahat na nakapanghihimok. 545 00:24:46,950 --> 00:24:52,280 Kaya hayaan mo akong magpatuloy at baguhin ang program na ito at sabihin, hello David. 546 00:24:52,280 --> 00:24:54,120 Ngayon ako pagpunta sa pumunta down dito. 547 00:24:54,120 --> 00:24:57,360 Pupunta ako sa magpatuloy at gawin gumawa ng halo. 548 00:24:57,360 --> 00:25:00,652 At muli ngayon ang iyong nakikita gumawa ay nagpapakita sa iyo ng mas matagal 549 00:25:00,652 --> 00:25:03,360 pagkakasunod-sunod ng mga utos na ito ay ginagawa dahil na-pre-configure namin 550 00:25:03,360 --> 00:25:05,200 ito na paraan, ngunit hindi namin kailangan mag-alala para sa ngayon 551 00:25:05,200 --> 00:25:10,735 kung ano ang ginagawa maliban sa ito ay kino-compile ang dot slash hello, hello mundo. 552 00:25:10,735 --> 00:25:14,969 553 00:25:14,969 --> 00:25:15,510 Ano ang mali? 554 00:25:15,510 --> 00:25:16,177 Oo. 555 00:25:16,177 --> 00:25:17,370 >> Madla: [hindi marinig] 556 00:25:17,370 --> 00:25:18,203 >> David J. MALAN: Oo. 557 00:25:18,203 --> 00:25:19,600 Kaya, noobie pagkakamali. 558 00:25:19,600 --> 00:25:22,394 Mapapansin ko na ito ay sobrang pino, ngunit ang mga asterisk dito, sa tab, 559 00:25:22,394 --> 00:25:25,060 ito ay nangangahulugan lamang na hindi mo na-save ang mga ito, at mga browser at iba pang mga programa 560 00:25:25,060 --> 00:25:25,930 gawin ito paminsan-minsan. 561 00:25:25,930 --> 00:25:27,939 Kaya control s o command dapat s-save ito. 562 00:25:27,939 --> 00:25:29,730 Ngayon hayaan mo akong magpatuloy at muling patakbuhin ang program. 563 00:25:29,730 --> 00:25:33,360 564 00:25:33,360 --> 00:25:34,260 Recompiled. 565 00:25:34,260 --> 00:25:36,050 Right, kaya ito ay isang proseso ng multi-hakbang. 566 00:25:36,050 --> 00:25:39,400 Wala na kung saan ay partikular na mahirap unawain, ngunit anumang oras baguhin namin ang file, 567 00:25:39,400 --> 00:25:43,450 kailangan namin upang baguhin ang mga resultang zero at mga, at tuldok slash hello. 568 00:25:43,450 --> 00:25:43,950 Wow. 569 00:25:43,950 --> 00:25:46,450 Kaya ito ay tunay underwhelming na naka-print na lang kami sa labas na ito. 570 00:25:46,450 --> 00:25:48,360 Gumawa ng mga bagay-bagay Hayaan ang isang maliit na mas dynamic, ngayon. 571 00:25:48,360 --> 00:25:52,280 >> Well ito ay lumiliko out, na gusto Simula, sinusuportahan C variable. 572 00:25:52,280 --> 00:25:54,790 At ito ay lumiliko out kung nais mong na magkaroon ng isang variable na mga tindahan, 573 00:25:54,790 --> 00:25:57,300 hindi isang numero tulad namin karaniwang ginawa sa simula, 574 00:25:57,300 --> 00:26:01,300 ngunit tulad ng isang salita, o isang parirala, o ng isang pangalan, ikaw ay 575 00:26:01,300 --> 00:26:04,837 maaaring tukuyin ang isang variable na ng uri ng string. 576 00:26:04,837 --> 00:26:06,670 Kaya makikita namin makita pa ang mga ito sa ilang sandali lamang, 577 00:26:06,670 --> 00:26:09,090 ngunit ito ay lumiliko out na ang C, at isang pulutong ng mga wika tulad ng mga ito, 578 00:26:09,090 --> 00:26:11,240 may tunay tiyak na mga uri ng variable. 579 00:26:11,240 --> 00:26:13,810 Hindi lamang ito tulad ng algebra, kung saan makakakuha ka ng isang x, isang y, at z 580 00:26:13,810 --> 00:26:16,940 at ang mga ito ay laging lamang numero, sa isang programming language 581 00:26:16,940 --> 00:26:20,030 maaari mong itabi ang mga numero, maaari mong tindahan ng mga indibidwal na mga character, 582 00:26:20,030 --> 00:26:24,619 maaari mong itabi ang mga buong salita, maaari mong tindahan ng buong imahe, buong sound files, 583 00:26:24,619 --> 00:26:25,160 at ang gusto. 584 00:26:25,160 --> 00:26:28,362 Kaya kailangan namin upang tukuyin kung ano ang ang uri ng aming mga variable ay. 585 00:26:28,362 --> 00:26:31,570 At sa pamamagitan ng convention ako pagpunta sa tumawag sa aking variable s dahil lang sa ito ay maikli at malinaw, 586 00:26:31,570 --> 00:26:33,510 at s ibig sabihin para sa string. 587 00:26:33,510 --> 00:26:36,400 >> At pagkatapos ay ako pagpunta sa tindahan sa loob ng variable na ito, 588 00:26:36,400 --> 00:26:39,570 gusto lang sa scratch kapag ginagamit ko ang set block, 589 00:26:39,570 --> 00:26:41,950 Pupunta ako upang gamitin ang assignment operator sa C, 590 00:26:41,950 --> 00:26:45,290 na mabuti sapat ay ang pantay-pantay na mag-sign, ngunit gumagana ang mga pantay-pantay na mag-sign. 591 00:26:45,290 --> 00:26:53,220 Ito gumagalaw ang isang bagay mula sa mga karapatan sa kaliwang bahagi ng expression. 592 00:26:53,220 --> 00:26:57,170 Kaya kung ano ang ginawa ko, upang maging malinaw sa limang linya, ay ipinahayag ko ang isang variable. 593 00:26:57,170 --> 00:27:01,284 Sinabi ko na ang computer, ninyo ako memory para sa isang variable, tumawag ito s, 594 00:27:01,284 --> 00:27:03,950 at alam nang maaga na pupuntahan ko na paglalagay ng isang string sa loob nito. 595 00:27:03,950 --> 00:27:05,950 At ang isang string ay lamang ng isang pagkakasunod-sunod ng mga character. 596 00:27:05,950 --> 00:27:09,190 Ito ay isang salita, o ng isang parirala, o talata, ngunit ito ay isang pagkakasunod-sunod ng mga character. 597 00:27:09,190 --> 00:27:10,610 Ito ay hindi numero. 598 00:27:10,610 --> 00:27:13,800 Ano string ako magiging paglagay sa variable na? 599 00:27:13,800 --> 00:27:16,185 Well, tila quote magpanipi, "Hannah". 600 00:27:16,185 --> 00:27:17,810 Ngayon pansinin ang mga pattern na umuusbong. 601 00:27:17,810 --> 00:27:19,260 May isang kaliwang kamay expression. 602 00:27:19,260 --> 00:27:21,810 May isang tamang expression kamay, pinaghiwalay ng equal sign. 603 00:27:21,810 --> 00:27:24,390 At tumagal lamang ng isang hulaan, kung hindi marunong gayunman, 604 00:27:24,390 --> 00:27:27,430 sa kung ano ang ginagawa ng tuldok-kuwit. 605 00:27:27,430 --> 00:27:28,865 Ano siguro ginagawa nito para sa amin? 606 00:27:28,865 --> 00:27:29,365 Oo? 607 00:27:29,365 --> 00:27:29,840 >> Madla: [hindi marinig] 608 00:27:29,840 --> 00:27:29,980 >> David J. MALAN: Oo. 609 00:27:29,980 --> 00:27:31,170 Ito lang ang pagwawakas ng mga linya. 610 00:27:31,170 --> 00:27:31,669 Right? 611 00:27:31,669 --> 00:27:34,260 Gusto Ang mga computer na maging bluntly Sinabi, literal, ano ang gagawin. 612 00:27:34,260 --> 00:27:36,343 Tulad ng peanut butter at halaya sanwits halimbawa, 613 00:27:36,343 --> 00:27:39,360 kung hindi mo tukuyin ang kung ano ang balak mo, 614 00:27:39,360 --> 00:27:42,190 maaaring ito ay ang natitira upang paghatol o error. 615 00:27:42,190 --> 00:27:44,890 Semicolon Ang ibig sabihin nito, na ito para sa command na ito. 616 00:27:44,890 --> 00:27:48,310 Ito ay pagiging sobrang tumpak, at ito ay isang napaka-madaling bagay na tigilan. 617 00:27:48,310 --> 00:27:52,240 Kaya ngayon ang program na ito ay hindi mukhang ay kumikilos anumang iba hanggang ako 618 00:27:52,240 --> 00:27:53,500 gawin itong mas dynamic. 619 00:27:53,500 --> 00:27:57,107 Kaya sa halip na hard dati ang aking sariling pangalan, hayaan mo akong ilagay ang halaga ng isang placeholder. 620 00:27:57,107 --> 00:28:00,190 At ito ay lumiliko out na, at alam ko na ito mula sa pagkakaroon ng basahin ang mga babasahin, 621 00:28:00,190 --> 00:28:04,080 at ginamit ang pag-andar para sa taon, na printf ay idinisenyo upang maging dynamic. 622 00:28:04,080 --> 00:28:07,510 Hindi mo na kailangang malaman in advance ano ang mga salita na gusto mong ilagay sa loob nito. 623 00:28:07,510 --> 00:28:11,290 Maaari mong sa halip na magkaroon ng isang placeholder, tulad ng porsyento s, na 624 00:28:11,290 --> 00:28:15,500 ay upang sabihin sa mga computer, maglagay ng isang string dito. 625 00:28:15,500 --> 00:28:17,740 >> Aling string ang gusto naming ilagay doon? 626 00:28:17,740 --> 00:28:22,430 Will ay lumiliko out na sa pagitan ng mga panaklong, na tandaan, maghiwalay 627 00:28:22,430 --> 00:28:28,020 ang input sa isang function, kung mayroon kang comma separated na listahan ng mga bagay-bagay dito, 628 00:28:28,020 --> 00:28:31,790 talaga naming ipasa sa maramihang input sa isang function. 629 00:28:31,790 --> 00:28:33,901 Kaya gusto lamang ng ilang mga scratch bloke, hindi mo maaaring 630 00:28:33,901 --> 00:28:36,150 ay nilalaro gamit ang mga ito para sa iyong proyekto pa o sa lahat, 631 00:28:36,150 --> 00:28:38,250 ilang mga scratch bloke ay may dalawang input. 632 00:28:38,250 --> 00:28:41,220 Dalawang kahon puting maaari mong type ang mga numero o mga salita sa. 633 00:28:41,220 --> 00:28:45,210 Kaya upang ang C ay may mga pag-andar tulad ng printf na maaaring tumagal ng dalawang input. 634 00:28:45,210 --> 00:28:48,050 At muli, ito comma ay naghihiwalay sa kanila. 635 00:28:48,050 --> 00:28:51,070 Kaya sa Ingles, muli kahit na hindi mo na-program bago, 636 00:28:51,070 --> 00:28:55,320 sa pamamagitan ng na logic printf ay isang function, tumatagal ng dalawang input, isa rito 637 00:28:55,320 --> 00:28:58,810 ay isang placeholder, kung ano ang inyong pag-asa printf ay pagpunta sa gawin sa input na ito? 638 00:28:58,810 --> 00:29:01,470 639 00:29:01,470 --> 00:29:03,220 Ito ay pagpunta upang kamustahin Hannah, sana. 640 00:29:03,220 --> 00:29:05,274 Kaya upang gawin ito, kailangan naming i-save ito. 641 00:29:05,274 --> 00:29:06,190 Pupunta ako upang mag-zoom out. 642 00:29:06,190 --> 00:29:10,701 Pupunta ako sa bumalik pababa dito at sabihin, gumawa ng halo ipasok. 643 00:29:10,701 --> 00:29:11,200 Oh. 644 00:29:11,200 --> 00:29:14,830 Isang bagay ang mali, at ang tunay na ito ay lubos napakalaki. 645 00:29:14,830 --> 00:29:18,400 Mayroon akong anim na linya ng code at tulad ng 12 mga linya ng error. 646 00:29:18,400 --> 00:29:22,120 Kaya, inaasahan ang mga ito. 647 00:29:22,120 --> 00:29:24,260 Kaya kung ano ang nangyayari sa dito? 648 00:29:24,260 --> 00:29:27,370 Kaya ang pinakamahusay na patakaran ng hinlalaki dito, lalo na kapag ikaw ay nagsisimula, 649 00:29:27,370 --> 00:29:29,370 hindi makakuha ng ginulo sa pamamagitan ng ang mga bagay-bagay sa ilalim. 650 00:29:29,370 --> 00:29:31,220 Sa katunayan, ang tunay kong sadya scrolled lamang up 651 00:29:31,220 --> 00:29:33,930 dahil madalas, ang computer ay hindi lahat na maliwanag ng isang aparato. 652 00:29:33,930 --> 00:29:35,054 Ito ay pagpunta upang makakuha ng nalilito. 653 00:29:35,054 --> 00:29:37,220 Kung nakikita ito isang bagay na ito ay hindi maunawaan, 654 00:29:37,220 --> 00:29:40,030 maaaring ito pagkakamali ng iba pang mga mga linya ng code ng hindi tama, 655 00:29:40,030 --> 00:29:41,649 kahit na ang mga ito ay ganap na multa. 656 00:29:41,649 --> 00:29:43,940 Kaya palagi mong nais na magtrabaho top down sa pamamagitan ng mga error. 657 00:29:43,940 --> 00:29:47,850 At tinatanggap na ito ay super arcane sa sandaling ito. 658 00:29:47,850 --> 00:29:50,830 >> Error, ang paggamit ng hindi nagbigay-alam identifier string. 659 00:29:50,830 --> 00:29:52,130 Ang ibig sabihin ng ko standard in? 660 00:29:52,130 --> 00:29:53,720 Hindi, sinadya ko string. 661 00:29:53,720 --> 00:29:55,830 At ito ay tumuturo sa, marahil ito ay isang typo. 662 00:29:55,830 --> 00:30:00,570 Uri ng tulad, spell-check in sa isang very geeky paraan, ngunit ang mga dahilan dito, 663 00:30:00,570 --> 00:30:02,840 at malalaman mo kung ito sa pamamagitan lamang ng pagsasanay, ay 664 00:30:02,840 --> 00:30:06,390 na ito lumiliko na string ay hindi umiiral sa C. Sa katunayan, C 665 00:30:06,390 --> 00:30:08,820 ay isang partikular na lumang wika, at ito ay mababang antas, 666 00:30:08,820 --> 00:30:11,361 at ito ay hindi isang pulutong ng mga tampok na baka may gulang hanggang 667 00:30:11,361 --> 00:30:14,620 sa kung mayroon kang, sa katunayan, na nakaprograma sa Java, pati na mayroon ilan sa inyo, 668 00:30:14,620 --> 00:30:16,980 ngunit maaari mong ituro ito bagong bagay. 669 00:30:16,980 --> 00:30:20,900 At sa katunayan, kami ay tapos na ito CS50, kahit na sa katapusan ng semestre, 670 00:30:20,900 --> 00:30:23,512 lahat ng mga gulong ng pagsasanay ay ay kinuha off, 671 00:30:23,512 --> 00:30:25,220 ano ang ginagawa namin dito sa unang ilang linggo 672 00:30:25,220 --> 00:30:29,830 una ay mayroon rin kaming isama mo CS50 dot h. 673 00:30:29,830 --> 00:30:31,230 Alin ang isang header na file. 674 00:30:31,230 --> 00:30:32,440 Higit pa sa na sa hinaharap. 675 00:30:32,440 --> 00:30:36,430 >> Ito ay isang file na naglalaman ng mga pag-andar na namin ang nakasulat na para sa iyo. 676 00:30:36,430 --> 00:30:39,180 At sa gitna ng mga pag-andar ay pag-andar para sa pagkuha ng input 677 00:30:39,180 --> 00:30:43,520 mula sa mga gumagamit, tulad ng mga string, at numero, at mga tunay na numero, at higit pa. 678 00:30:43,520 --> 00:30:45,550 Ngunit ito rin ay may ilang mga shortcut. 679 00:30:45,550 --> 00:30:48,200 Ito ay tumutukoy sa isang Boolean bilang isang uri ng data. 680 00:30:48,200 --> 00:30:50,340 C ay walang true o false. 681 00:30:50,340 --> 00:30:53,880 Ngunit maaari naming bigyan ito ang paniwala ng totoo o hindi sa pamamagitan ng paraan na ito ng library. 682 00:30:53,880 --> 00:30:57,670 At ito ay hindi rin magkaroon ng isang string built in hanggang isama namin ang linyang ito. 683 00:30:57,670 --> 00:31:01,090 Kaya nagsasabi na ito linya ng code tagatala, hey, Clang, tumingin 684 00:31:01,090 --> 00:31:03,570 sa file na ito para sa isang buong grupo ng mga code na CS50 685 00:31:03,570 --> 00:31:06,330 ay isinulat upang sinuman gamit ang file na ito 686 00:31:06,330 --> 00:31:09,330 Maaari mang-ahas ang mga tampok na sila na idinagdag. 687 00:31:09,330 --> 00:31:11,220 >> Kaya ngayon hayaan mo akong magpatuloy at malinaw na ang screen, 688 00:31:11,220 --> 00:31:14,178 at kung curious lang ako nagsasabi control l sa bawat oras na i-clear ang screen, 689 00:31:14,178 --> 00:31:15,500 o maaari mong i-type malinaw. 690 00:31:15,500 --> 00:31:19,220 Lamang ako pagpunta sa magpatuloy ngayon at type gumawa ng halo, at lahat ay mabuti. 691 00:31:19,220 --> 00:31:22,550 Isang arcane output pa rin, ngunit ito ay hindi isang maling mensahe. 692 00:31:22,550 --> 00:31:28,300 Ngayon kung gagawin ko dot slash hello, at bilang isang bukod, tuldok slash ay hindi pamilyar sa karamihan. 693 00:31:28,300 --> 00:31:30,430 Ito lamang ay nangangahulugan, dot paraan kasalukuyang directory. 694 00:31:30,430 --> 00:31:33,120 Kaya kung sakaling mo na ginagamit Dos, o Linux, o Unix 695 00:31:33,120 --> 00:31:35,410 baka may gawin ang isang bagay tulad ng cd tuldok tuldok, kung saan 696 00:31:35,410 --> 00:31:39,220 dot dot nangangahulugan pumunta paurong sa oras, o pumunta paurong, o mas mataas up 697 00:31:39,220 --> 00:31:40,370 sa inyong direktoryo. 698 00:31:40,370 --> 00:31:43,090 Nangangahulugan lamang Dot tumingin sa kasalukuyang directory. 699 00:31:43,090 --> 00:31:45,670 Gusto ko ng hello, kung saan ay karapatan dito. 700 00:31:45,670 --> 00:31:47,750 At sa katunayan, ngayon ang sinasabi nito kumusta Hannah. 701 00:31:47,750 --> 00:31:51,120 At kapag binago ko ang mga ito muli na Maria, mag-recompile 702 00:31:51,120 --> 00:31:55,650 ito ay gumawa ng hello, tuldok slash hello, ang programa mapigil ang pagbabago. 703 00:31:55,650 --> 00:31:58,060 >> Ngunit ito pa rin ang isang pretty tangang program. 704 00:31:58,060 --> 00:32:00,972 Kung gusto kong ipadala ang programang ito, o ibigay ito sa isang kaibigan, 705 00:32:00,972 --> 00:32:03,430 o ibigay ito sa Maria o Hannah para sa mga bagay, na multa. 706 00:32:03,430 --> 00:32:07,300 Maaari ko ba itong i-customize para sa pareho ng mga ito, ngunit hindi ito ay magiging dynamic. 707 00:32:07,300 --> 00:32:10,870 Hindi nila maaaring baguhin ito sa sandaling ito ay pinagsama-sama down sa mga zero at mga. 708 00:32:10,870 --> 00:32:12,350 Kaya kung ano ang ginawa namin ang isang bagay na mas madunong? 709 00:32:12,350 --> 00:32:17,100 Paano kung, sa halip na hard-coding sa pangalan ng taong ito na programa, 710 00:32:17,100 --> 00:32:20,890 paano kung makuha namin lamang ang string on demand? 711 00:32:20,890 --> 00:32:22,430 >> Kaya sa ibang salita, hayaan mo akong gawin ito. 712 00:32:22,430 --> 00:32:24,030 Pupunta ako sa recompile programang ito. 713 00:32:24,030 --> 00:32:25,710 At hayaan mo akong mag-zoom in sa ibaba ngayon. 714 00:32:25,710 --> 00:32:29,920 Gumawa kumusta dot slash hello. 715 00:32:29,920 --> 00:32:31,710 Ngayon wala ang nangyayari. 716 00:32:31,710 --> 00:32:35,860 Puwede ba kaming makakuha ng isang mabilis volunteer upang gumawa ng isang bagay na mangyayari? 717 00:32:35,860 --> 00:32:36,360 Lumapit sa up. 718 00:32:36,360 --> 00:32:37,020 Ano ang inyong pangalan? 719 00:32:37,020 --> 00:32:37,445 >> PANCHO: Pancho. 720 00:32:37,445 --> 00:32:38,361 >> David J. MALAN: Pacho? 721 00:32:38,361 --> 00:32:39,609 Lumapit sa up. 722 00:32:39,609 --> 00:32:42,150 Kapag nakarating ka na dito, na ito ay magiging masyadong underwhelming, 723 00:32:42,150 --> 00:32:44,060 ngunit ito ay mas kawili-wiling kaysa sa akin-type ito. 724 00:32:44,060 --> 00:32:49,007 Kung nais mong magpatuloy at i-type ang iyong pangalan, ginawa ko ang program na ito para lamang sa iyo. 725 00:32:49,007 --> 00:32:49,840 I-type lamang ang iyong pangalan. 726 00:32:49,840 --> 00:32:52,380 727 00:32:52,380 --> 00:32:53,900 Enter. 728 00:32:53,900 --> 00:32:54,489 Magagandang. 729 00:32:54,489 --> 00:32:55,780 Sige, salamat sa inyo. 730 00:32:55,780 --> 00:32:56,708 >> PANCHO: Maraming salamat sa inyo. 731 00:32:56,708 --> 00:32:57,636 >> David J. MALAN: OK. 732 00:32:57,636 --> 00:32:59,028 >> [Palakpakan] 733 00:32:59,028 --> 00:33:00,884 734 00:33:00,884 --> 00:33:01,840 >> Iyon ay napakabait. 735 00:33:01,840 --> 00:33:03,145 Narito Pumunta ka. 736 00:33:03,145 --> 00:33:03,770 Ano ang gagawin namin? 737 00:33:03,770 --> 00:33:05,930 Kaya sa wakas namin, hindi bababa sa, ginawa dynamic programang ito. 738 00:33:05,930 --> 00:33:08,400 Ngayon ay tiyak pa rin sa pamamagitan underwhelming disenyo, 739 00:33:08,400 --> 00:33:11,480 ngunit kami sa wakas ay may kakayahan ngayon upang isulat ang code nang maaga, marami 740 00:33:11,480 --> 00:33:13,770 tulad ng mga may-akda ng printf, at pagkatapos ay magilas 741 00:33:13,770 --> 00:33:17,550 iakma batay sa input tayo ipinasa, alinman sa pamamagitan ng mga programmer, 742 00:33:17,550 --> 00:33:20,610 o sa pamamagitan ng mga tao kung sino ang tunay na pakikipag-ugnay sa programa. 743 00:33:20,610 --> 00:33:22,990 Kaya sabihin aktwal na ngayon subukan upang gawin ang ilang iba pang mga constructs 744 00:33:22,990 --> 00:33:26,625 at makita kung hindi namin maaaring gumawa ng mga programa ang kanilang mga sarili mas sopistikadong. 745 00:33:26,625 --> 00:33:29,250 Kaya sabihin sige at sa halip ng pagsulat ng isang ito mula sa simula, 746 00:33:29,250 --> 00:33:31,540 Pupunta ako sa pumunta sa ngayon source code, at ang lahat ng mga ito 747 00:33:31,540 --> 00:33:34,290 ay magagamit sa kurso ni website, at maaari mong i-drag at i-drop ito 748 00:33:34,290 --> 00:33:36,590 sa iyong sariling kapaligiran dumating Biyernes sandaling problema 749 00:33:36,590 --> 00:33:38,506 set 1 ay nagbibigay sa iyo ng mga tagubilin, o maaari mong 750 00:33:38,506 --> 00:33:41,200 gawin ito sa command line ng mabuti, ngunit higit na dumating sa p set 1. 751 00:33:41,200 --> 00:33:44,940 >> Tayo'y makita kung ano ang sa programang ito dito na tinatawag, ulupong dot c. 752 00:33:44,940 --> 00:33:47,970 Ngayon na nagkomento ako ito, ngunit ano ang bago? 753 00:33:47,970 --> 00:33:51,230 Sa unang tingin, kung ano ang linya ng code ay ganap na bagong? 754 00:33:51,230 --> 00:33:53,930 755 00:33:53,930 --> 00:33:56,780 Marahil hindi sa panimula hindi marunong ngayon. 756 00:33:56,780 --> 00:33:58,417 >> Madla: [hindi marinig] 757 00:33:58,417 --> 00:34:00,250 David J. MALAN: Oo, kaya int x ay katumbas makakuha n. 758 00:34:00,250 --> 00:34:03,760 Hindi namin nakita ang anumang mga ito bago, ngunit int ay marahil 759 00:34:03,760 --> 00:34:08,179 ang simbolo para sa kung anong uri ng variable, [? mula?] isang integer. 760 00:34:08,179 --> 00:34:09,040 Kaya int para integer. 761 00:34:09,040 --> 00:34:11,420 Lamang Ito ay ang pagiging mas maikli at malinaw. x ay lamang arbitrary. 762 00:34:11,420 --> 00:34:13,920 x at y at z ay pa rin pretty makatwirang para sa mga numero, 763 00:34:13,920 --> 00:34:16,790 ngunit sa pangkalahatan ay gagamitin namin ang mga salita sa sandaling ang aming mga programa makakuha ng mas kumplikadong. 764 00:34:16,790 --> 00:34:18,940 Kumuha ng int, siyempre, marami tulad get string, 765 00:34:18,940 --> 00:34:21,629 ay marahil pagpunta upang makakuha ng isang int mula sa gumagamit, 766 00:34:21,629 --> 00:34:23,670 at pagkatapos kami ay pagpunta sa gawin ang parehong bagay sa y. 767 00:34:23,670 --> 00:34:27,610 At tila, kahit na ito huling linya, 24, mukhang mas kumplikado, 768 00:34:27,610 --> 00:34:32,679 ito ay pagpunta sa sabihin ang kabuuan ng mga ito at iyon ay ang iba pang mga bagay. 769 00:34:32,679 --> 00:34:35,840 >> At pansinin porsiyento i marahil nagsasaad kung ano? 770 00:34:35,840 --> 00:34:38,190 Anong papel ang porsiyento i tila maglingkod? 771 00:34:38,190 --> 00:34:40,739 772 00:34:40,739 --> 00:34:41,719 Ito lang ang mga placeholder. 773 00:34:41,719 --> 00:34:42,219 Right? 774 00:34:42,219 --> 00:34:45,149 Porsyento s ay para sa string, porsiyento i ay para sa integer. 775 00:34:45,149 --> 00:34:47,690 May pupuntahan na porsyento f para sa mga lumulutang na halaga ng point, na 776 00:34:47,690 --> 00:34:49,273 ay isang numero lamang na may isang decimal point. 777 00:34:49,273 --> 00:34:50,590 Sa ibang salita, ang isang tunay na numero. 778 00:34:50,590 --> 00:34:55,270 Kaya sabihin aktwal na sumulat ng libro na ito programa real mabilis at gumawa ng mga ulupong. 779 00:34:55,270 --> 00:34:57,962 Oops. 780 00:34:57,962 --> 00:34:58,670 Magandang pagkakataon. 781 00:34:58,670 --> 00:35:02,970 Kaya mapansin dito, ang lahat ng mga oras na ito ang aking mga user pangalan para sa account na ito ay jharvard. 782 00:35:02,970 --> 00:35:06,620 Kasama ko sa CS50 IDE, aka IDE50. 783 00:35:06,620 --> 00:35:11,030 At ngayon sa asul dito, ay isang banggitin, ngunit mula sa kapaligiran, ng kung saan ako. 784 00:35:11,030 --> 00:35:16,050 At sa katunayan, kung ako mag-zoom hanggang sa tuktok dito, mapansin na mayroon akong isang IDE50 785 00:35:16,050 --> 00:35:19,490 at nakikita ko ang salitang ito, kung ikaw uri ng buksan ang iyong ulo sa gilid, workspace. 786 00:35:19,490 --> 00:35:23,890 Sa maikling sabi, ang katunayan na ang Nakakakita ako ng tilde slash workspace 787 00:35:23,890 --> 00:35:26,910 Nangangahulugan ito na sa tekstong ito base command na kapaligiran, 788 00:35:26,910 --> 00:35:32,300 Kasama ko sa text katumbas ng Ang graphical na folder up dito. 789 00:35:32,300 --> 00:35:35,730 Kaya kapag ko dot slash ahas, ito ay nagsasabi na walang patakaran 790 00:35:35,730 --> 00:35:37,372 upang gumawa ng mga target ulupong stop. 791 00:35:37,372 --> 00:35:39,830 Hindi ko alam kung ano ang ibig sabihin nito, ngunit ito ay masamang para sa ilang kadahilanan. 792 00:35:39,830 --> 00:35:43,310 Walang ganitong file o directory ay mas malinaw. 793 00:35:43,310 --> 00:35:45,670 Saan ito pagkatapos? 794 00:35:45,670 --> 00:35:47,820 Batay sa kung saan ako nag-click upang buksan ang file na mas maaga. 795 00:35:47,820 --> 00:35:49,442 Saan maaaring ito ay? 796 00:35:49,442 --> 00:35:52,050 >> Ito ay marahil sa pinagmulan isa w, para sa Miyerkules, 797 00:35:52,050 --> 00:35:53,960 at ang maaari kong makita ito, sa katunayan, kung bubuksan ko na ang up. 798 00:35:53,960 --> 00:35:57,220 May ahas dot c, ngunit sa ito text-based na kapaligiran, 799 00:35:57,220 --> 00:35:59,380 muli, kailangan kong maging tahasan super. 800 00:35:59,380 --> 00:36:03,950 Kung gusto kong baguhin ang mga direktoryo sa pinagmulan ng isa Wednesday, kailangan ko na i-type, 801 00:36:03,950 --> 00:36:07,210 cd space source isa Miyerkules ipasok at ngayon 802 00:36:07,210 --> 00:36:09,810 aking prompt pagbabago sa bigyan ako ng isang visual cue na 803 00:36:09,810 --> 00:36:12,330 Ako, sa katunayan, sa ibang lugar sa aking kapaligiran, 804 00:36:12,330 --> 00:36:15,710 ngunit ngayon maaari kong gawin gumawa ahas, ito tila sa trabaho, 805 00:36:15,710 --> 00:36:18,190 dot slash ahas, bigyan ako ng isang integer. 806 00:36:18,190 --> 00:36:19,080 One. 807 00:36:19,080 --> 00:36:20,070 Dalawang. 808 00:36:20,070 --> 00:36:21,630 Ang kabuuan ng isa at dalawa ay tatlo. 809 00:36:21,630 --> 00:36:24,140 Ngunit kung hindi ako tumulong, sabihin makita kung ano ang makukuha int ginagawa. 810 00:36:24,140 --> 00:36:25,200 Bigyan mo ako ng isang integer. 811 00:36:25,200 --> 00:36:26,590 Hindi. 812 00:36:26,590 --> 00:36:27,350 Subukang muli. 813 00:36:27,350 --> 00:36:29,060 OK. 814 00:36:29,060 --> 00:36:30,520 Fine. 815 00:36:30,520 --> 00:36:32,130 50. 816 00:36:32,130 --> 00:36:32,680 50. 817 00:36:32,680 --> 00:36:33,010 Ayos lang. 818 00:36:33,010 --> 00:36:34,055 Kaya ito sa wakas ay nakikipagtulungan. 819 00:36:34,055 --> 00:36:36,430 At iyon ang ilan sa mga functionality na ang mga function 820 00:36:36,430 --> 00:36:37,760 Maaari Binuo para sa iyo. 821 00:36:37,760 --> 00:36:43,330 >> Kaya sa loob ng pagpapatupad ng makuha int, kung ano ang programming 822 00:36:43,330 --> 00:36:47,990 bumuo mula noong nakaraang linggo ay marahil sa doon upang pilitin ang pag-uugaling ito ng retry, 823 00:36:47,990 --> 00:36:49,962 muling subukan, subukang muli? 824 00:36:49,962 --> 00:36:51,670 Oo, may marahil ilang mga uri ng loop. 825 00:36:51,670 --> 00:36:54,160 Ito ay pagpunta upang tumingin syntactically naiiba mula sa mga bloke scratch, 826 00:36:54,160 --> 00:36:55,880 ngunit iyan ay sa katunayan kung ano ang sa loob ng file. 827 00:36:55,880 --> 00:36:58,505 At sa isang oras ilang linggo ipapakita namin talagang tingnan ang CS50 library 828 00:36:58,505 --> 00:37:02,000 bilang sa kung ano ang nasa loob, ngunit mayroong isang loop pagpataw eksakto na. 829 00:37:02,000 --> 00:37:04,840 >> Maglaro ng isang hangal kaunti Ipaalam game dito sa file na ito. 830 00:37:04,840 --> 00:37:06,550 Kalagayan zero dot c. 831 00:37:06,550 --> 00:37:08,960 Kami ay pagpunta sa pangkalahatan simulan ang pagbibilang sa zero. 832 00:37:08,960 --> 00:37:11,220 At ako panatilihin scroll nakalipas ang ilan sa mga bagay-bagay sa itaas. 833 00:37:11,220 --> 00:37:15,390 Sa bughaw na dito, demarcated sa lahat mga bituin at ang slashes, 834 00:37:15,390 --> 00:37:17,310 sa mga ka na programa bago, ano na? 835 00:37:17,310 --> 00:37:18,690 Bakit patuloy naming laktaw sa mga ito? 836 00:37:18,690 --> 00:37:19,110 Ano? 837 00:37:19,110 --> 00:37:19,490 >> Madla: Ito ay isang komento. 838 00:37:19,490 --> 00:37:19,800 >> David J. MALAN: Oo. 839 00:37:19,800 --> 00:37:20,633 Ito ay isang komento. 840 00:37:20,633 --> 00:37:24,160 Ito ay isang komento para sa mga tao basahin, na sa aming kaso, 841 00:37:24,160 --> 00:37:27,120 Sinasabi sa amin kung ano ang pangalan ng file ay, na sinulat ni ito, at kung ano ang ginagawa nito, 842 00:37:27,120 --> 00:37:28,610 sa gayon ay hindi mo na kailangang upang basahin sa pamamagitan ng mga code 843 00:37:28,610 --> 00:37:30,110 upang malaman kung ano ang file na ito ay tungkol sa lahat. 844 00:37:30,110 --> 00:37:33,110 Ito ay isang paglalarawan lamang, ngunit pagtakbo ito ay kaugnay. 845 00:37:33,110 --> 00:37:35,930 At kahit ako maaaring tanggalin ito mula sa aking file at ito ay walang epekto. 846 00:37:35,930 --> 00:37:38,740 Ang mga makatas mga linya ay mga unang dalawang dito, ngayon. 847 00:37:38,740 --> 00:37:41,405 int pangunahing walang bisa ay ang katumbas ng aming kapag nag-click green flag, 848 00:37:41,405 --> 00:37:44,030 kaya kami ay pagpunta sa umalis na maging para sa ngayon, at kami ay bumalik, 849 00:37:44,030 --> 00:37:46,940 sa huli, sa kung ano ang int at walang bisa ay, ngunit ngayon, 850 00:37:46,940 --> 00:37:49,500 paunawa kung ano gumawa ako dito rin, maaari mo ring, 851 00:37:49,500 --> 00:37:51,736 kung mayroon kang isang sa linya puna, kung mayroon kang 852 00:37:51,736 --> 00:37:54,670 isang-iisip na nais mong ibahagi tungkol sa isang partikular na linya ng code, 853 00:37:54,670 --> 00:37:58,910 kombensiyon sa C ay ang gawin slash slash, at pagkatapos ng ilang maikli at malinaw na mga salita, 854 00:37:58,910 --> 00:38:01,500 hindi isang ganap na pangungusap, sa pangkalahatan ay hindi isang talata, 855 00:38:01,500 --> 00:38:05,310 na lamang ay nagpapaliwanag sa iyo, o ang iyong TF, o iba pang mga mambabasa o mga kasamahan, 856 00:38:05,310 --> 00:38:06,990 kung ano ang iyong code ay ginagawa. 857 00:38:06,990 --> 00:38:10,150 Kaya sa halip na may sa hitsura at ito at ipahiwatig mula linya 858 00:38:10,150 --> 00:38:12,550 siyam at 10, kung ano ang ito ginagawa, sa walong linya 859 00:38:12,550 --> 00:38:14,945 Ako ay magbibigay lamang ng komento sa tanungin ang user para sa isang integer, 860 00:38:14,945 --> 00:38:17,820 pagkatapos ay hindi ko kailangang mag-isip masyadong matigas tungkol sa kung ano linya siyam at 10 ay. 861 00:38:17,820 --> 00:38:19,720 Lang alam ko na na kung ano ang sama-sama ang kanilang ginagawa. 862 00:38:19,720 --> 00:38:20,460 >> Paano? 863 00:38:20,460 --> 00:38:22,060 Well, narito ang mga prompt. 864 00:38:22,060 --> 00:38:23,610 Narito ang pagkuha ng int. 865 00:38:23,610 --> 00:38:25,984 At batay sa mga nakaraang pag-uugali, ito ay tila tulad get int 866 00:38:25,984 --> 00:38:29,080 ay matalino na sapat upang tiyakin na nakikipagtulungan sa mga tao at ito ay nagbibigay sa 867 00:38:29,080 --> 00:38:30,090 isang integer. 868 00:38:30,090 --> 00:38:32,270 Ngunit ngayon nakita namin na ito. 869 00:38:32,270 --> 00:38:33,740 At ito ay nakapagpapaalaala ng scratch. 870 00:38:33,740 --> 00:38:36,140 Ako nagke-claim na ako pag-aaral sa input ng user, 871 00:38:36,140 --> 00:38:39,050 pero medyo hindi tumpak. 872 00:38:39,050 --> 00:38:43,200 At ito tila sa C ay kung paano express namin ang isang kung ibang tao, isang sangay, 873 00:38:43,200 --> 00:38:46,320 isang tinidor sa kalye, ngunit ako sabihin medyo hindi tumpak. 874 00:38:46,320 --> 00:38:50,470 Ano ang mga bug sa programang ito? 875 00:38:50,470 --> 00:38:51,610 Tungkol sa karagdagang-back? 876 00:38:51,610 --> 00:38:52,223 Oo. 877 00:38:52,223 --> 00:38:53,150 >> Madla: [hindi marinig] zero. 878 00:38:53,150 --> 00:38:54,025 >> David J. MALAN: Oo. 879 00:38:54,025 --> 00:38:57,630 Kaya kung type ko sa zero, isaalang-alang ng ipaalam eksakto na kaso, o sulok kaso, 880 00:38:57,630 --> 00:38:58,450 kung ikaw ay. 881 00:38:58,450 --> 00:39:02,790 Kaya kung type ko sa zero, kung alin sa mga bloke ay pagpunta sa tila grab ito? 882 00:39:02,790 --> 00:39:04,660 Ang kung o ang ibang tao? 883 00:39:04,660 --> 00:39:07,340 Ang ibang tao, at ito ay pagpunta sa sabihin, kayo pumili ng isang negatibong numero. 884 00:39:07,340 --> 00:39:10,476 At sa katunayan, zero ay hindi dapat upang maging positibo o negatibo, 885 00:39:10,476 --> 00:39:11,850 at sa gayon ay magiging wasto. 886 00:39:11,850 --> 00:39:12,930 Iyon ay magiging isang bug. 887 00:39:12,930 --> 00:39:14,580 Kaya kung paano namin ito aayusin? 888 00:39:14,580 --> 00:39:16,360 May isang tao na hindi pa program bago? 889 00:39:16,360 --> 00:39:16,570 Gawin want-- mo 890 00:39:16,570 --> 00:39:17,480 >> Madla: [hindi marinig] 891 00:39:17,480 --> 00:39:17,990 >> David J. MALAN: Binabawi? 892 00:39:17,990 --> 00:39:18,570 >> Madla: [hindi marinig] 893 00:39:18,570 --> 00:39:18,930 >> David J. MALAN: Oh, mayroon ka? 894 00:39:18,930 --> 00:39:20,350 May isang tao na hindi pa program bago. 895 00:39:20,350 --> 00:39:21,750 Gusto mong subukan ang iyong mga kamay sa ito, sa red shirt? 896 00:39:21,750 --> 00:39:22,600 Lumapit sa up. 897 00:39:22,600 --> 00:39:25,320 Oh oo, dumating sa up, kung hindi tututol kayo. 898 00:39:25,320 --> 00:39:27,586 Kaya hindi pagkakaroon ng program bago, ano ang pangalan mo? 899 00:39:27,586 --> 00:39:28,210 LAUREN: Lauren. 900 00:39:28,210 --> 00:39:29,626 David J. MALAN: Lauren, lahat ng karapatan. 901 00:39:29,626 --> 00:39:31,150 Kaya ayusin ang bug na ito para sa amin. 902 00:39:31,150 --> 00:39:35,070 Hindi mo na makikita C, siguro, at marahil walang iba pang mga wika. 903 00:39:35,070 --> 00:39:38,380 Kaya ayusin ang program na ito para sa amin. 904 00:39:38,380 --> 00:39:39,100 Masaya akong makilala ya. 905 00:39:39,100 --> 00:39:39,615 Walang presyon. 906 00:39:39,615 --> 00:39:40,156 LAUREN: Oo. 907 00:39:40,156 --> 00:39:43,350 908 00:39:43,350 --> 00:39:46,270 >> David J. MALAN: Ngunit muli, kung ito sugal napupunta ayon sa plano, 909 00:39:46,270 --> 00:39:48,350 ang takeaway ay dito maging, muli lamang, upang simulan 910 00:39:48,350 --> 00:39:51,080 sa paunawa pattern at magpakilala mula sa umiiral na syntax 911 00:39:51,080 --> 00:39:55,420 paano pa maaring ipahayag ang sa iyong sarili, walang pun nilalayon, upang 912 00:39:55,420 --> 00:39:58,410 sa pagkuha ng ilang karagdagang mga sitwasyon. 913 00:39:58,410 --> 00:39:59,603 Kaya namin sinasabi ng ibang tao kung. 914 00:39:59,603 --> 00:40:04,040 915 00:40:04,040 --> 00:40:05,230 printf, mabuti. 916 00:40:05,230 --> 00:40:09,120 At mapansin na may CS50 IDE, at frankly-- IDE 917 00:40:09,120 --> 00:40:11,110 ibig sabihin para sa Integrated Development Environment. 918 00:40:11,110 --> 00:40:14,110 Ito lamang ay isang magarbong paraan ng sinasabi isang programa na tumutulong sa iyo na programa. 919 00:40:14,110 --> 00:40:16,779 Ito ay gumagamit friendly mga bagay tulad ng kapag nag-type ka ng isa parenthesis, 920 00:40:16,779 --> 00:40:18,320 ito ay awtomatikong nagbibigay sa iyo ng isa. 921 00:40:18,320 --> 00:40:20,760 Aakala Ang pagiging na ikaw ay huli pagpunta sa nais na uri na iyon, 922 00:40:20,760 --> 00:40:22,400 at ito rin ay ito sa quotes. 923 00:40:22,400 --> 00:40:24,190 >> Kaya gusto ko 23 linya. 924 00:40:24,190 --> 00:40:26,400 99% ng mga paraan doon. 925 00:40:26,400 --> 00:40:29,920 May isang tao na nais sa tunog ng relos in gamit ang isang tip? 926 00:40:29,920 --> 00:40:31,420 Narinig ko ang semicolon mula sa madla. 927 00:40:31,420 --> 00:40:32,080 Good. 928 00:40:32,080 --> 00:40:33,260 Kaya na nakatapos na. 929 00:40:33,260 --> 00:40:37,930 At ngayon, mayroon akong lamang ng isang maliit consternation may 21 linya. 930 00:40:37,930 --> 00:40:41,370 Paano nais naming ipahayag ito? 931 00:40:41,370 --> 00:40:43,370 Anong tanong ang gusto natin na magtanong, sa palagay mo? 932 00:40:43,370 --> 00:40:46,870 933 00:40:46,870 --> 00:40:50,330 Kaya dati hiniling namin ang tanong, kung n ay mas malaki kaysa sa zero, gawin ito. 934 00:40:50,330 --> 00:40:51,870 Iba Pa, gawin na. 935 00:40:51,870 --> 00:40:54,317 Kaya kailangan namin upang pumili ng isang tanong na magtanong dito. 936 00:40:54,317 --> 00:40:55,192 Madla: [hindi marinig] 937 00:40:55,192 --> 00:40:56,530 David J. MALAN: Magandang. 938 00:40:56,530 --> 00:40:58,290 Kaya kung n ay katumbas ng zero. 939 00:40:58,290 --> 00:41:01,140 940 00:41:01,140 --> 00:41:02,100 Magaling. 941 00:41:02,100 --> 00:41:03,080 Kaya ni-pause dito. 942 00:41:03,080 --> 00:41:04,850 Salamat sa iyo kaya magkano para sa braving ito. 943 00:41:04,850 --> 00:41:10,890 Hayaan akong bigyan ka ng isang maliit na well-marapat stress ball, marahil doon. 944 00:41:10,890 --> 00:41:11,900 Kaya hindi namin halos doon. 945 00:41:11,900 --> 00:41:14,790 Sa katunayan, Lauren, kung hindi mo gusto isip, hayaan mo akong gumawa ng isa tweak dito, 946 00:41:14,790 --> 00:41:17,850 upang maging pare-pareho kahit na may lamang ano ang nakita natin sa simula, kung ano 947 00:41:17,850 --> 00:41:21,080 ang gusto kong gawin sa mga linya 21 at 24, batay lamang muli 948 00:41:21,080 --> 00:41:23,290 sa kung paano namin ginawa ito sa simula, marahil? 949 00:41:23,290 --> 00:41:24,230 >> Madla: Ilipat up ito. 950 00:41:24,230 --> 00:41:25,605 >> David J. MALAN: Oo, ilipat ito up. 951 00:41:25,605 --> 00:41:30,260 Kaya ang kalagayan ng ibang tao, ang third, o ikaapat, o ikalimang, o pangwakas na branch, 952 00:41:30,260 --> 00:41:34,100 dapat katunayan dumating pagkatapos nito, at na lamang sa pamamagitan ng convention, 953 00:41:34,100 --> 00:41:36,047 dahil lang kung ikaw ay. 954 00:41:36,047 --> 00:41:37,380 Kaya kailangan ko upang gumawa ng mga ito tweak. 955 00:41:37,380 --> 00:41:39,660 At kailangan ko upang ilagay ang aking kulot suhay bumalik dito. 956 00:41:39,660 --> 00:41:42,700 At ngayon, ang programang ito ay sumulat ng libro. 957 00:41:42,700 --> 00:41:46,140 Humihingi kami kaya malapit, ngunit mayroong isang tunay, tunay mapaglalang bug. 958 00:41:46,140 --> 00:41:47,200 Tingnan natin kung ano ang mangyayari. 959 00:41:47,200 --> 00:41:49,660 >> Una, sabihin sa akin sige at mag-zoom out. 960 00:41:49,660 --> 00:41:53,405 Pupunta ako sa sige at type gumawa condition zero. 961 00:41:53,405 --> 00:41:55,070 Oh, nagsinungaling ako. 962 00:41:55,070 --> 00:41:58,760 Ngayon ang tagatala ay talagang medyo smart. 963 00:41:58,760 --> 00:42:00,950 At hindi ko talaga maintindihan ito ay error na mensahe. 964 00:42:00,950 --> 00:42:04,310 Paggamit ng mga resulta ng isang pagtatalaga bilang isang kondisyon na walang mga panaklong, 965 00:42:04,310 --> 00:42:05,740 ay tila masama. 966 00:42:05,740 --> 00:42:07,100 Ngunit ano ang ibig sabihin nito? 967 00:42:07,100 --> 00:42:10,860 >> Well muli, naghahanap para sa mga pattern sa code na iyong nakita natin dati, 968 00:42:10,860 --> 00:42:16,640 kung ano ang line 17 aktwal na ginagawa, kahit Lauren inilaan bahagyang 969 00:42:16,640 --> 00:42:18,790 sa kabilang banda? 970 00:42:18,790 --> 00:42:19,290 Oo. 971 00:42:19,290 --> 00:42:21,565 >> Madla: [hindi marinig] 972 00:42:21,565 --> 00:42:22,440 David J. MALAN: Oo. 973 00:42:22,440 --> 00:42:26,610 Kaya tandaan ang equal sign, tila bilang ginamit namin bago ito, ay hindi katumbas. 974 00:42:26,610 --> 00:42:29,240 Ang assignment, mula kanan pakaliwa. 975 00:42:29,240 --> 00:42:33,810 Kaya line 17 sa sandaling ito ay isang kondisyon, at ito ay 976 00:42:33,810 --> 00:42:37,890 Isinasagawa ang code sa loob ng mga panaklong, ngunit kapag inilapat na code, 977 00:42:37,890 --> 00:42:42,140 kung ano ang nangyayari sa ang halaga ng zero? 978 00:42:42,140 --> 00:42:45,250 Ano ang nangyayari sa mga halaga ng n? 979 00:42:45,250 --> 00:42:46,810 Pagiging zero. 980 00:42:46,810 --> 00:42:50,520 Kaya kung n ay nagiging zero, at muli, tulad ng bawat noong nakaraang linggo, 981 00:42:50,520 --> 00:42:54,690 sa pangkalahatan naming sabihin na zero ay hindi totoo at ang isa ay totoo, 982 00:42:54,690 --> 00:42:57,410 o yes ay isa at walang ay zero. 983 00:42:57,410 --> 00:42:59,590 Kaya tunay at huwad na isa at 0,. 984 00:42:59,590 --> 00:43:06,090 Kung n bilang ng mga linya 17 ay ibinigay ang halaga 0, ay zero totoo? 985 00:43:06,090 --> 00:43:06,590 Hindi. 986 00:43:06,590 --> 00:43:08,280 Sa pamamagitan ng kahulugan, zero ay hindi totoo. 987 00:43:08,280 --> 00:43:10,860 Iyan ang convention hindi namin pagpunta sa kumapit sa paglipat ng pasulong. 988 00:43:10,860 --> 00:43:17,320 Kaya ay linya 18, 19, at 20 kailanman mag-apply ngayon, lohikal? 989 00:43:17,320 --> 00:43:18,320 Hindi nila makakaya. 990 00:43:18,320 --> 00:43:21,640 Kaya tinanong namin ang tanong ngunit hindi pa tiyak, 991 00:43:21,640 --> 00:43:25,620 at hindi mo alam na ito maliban kung na iyong nakita ito, ang solusyon sa C 992 00:43:25,620 --> 00:43:29,610 ay kung nais mo upang ipahayag ang pagkakapantay-pantay, sabihin mo equals katumbas. 993 00:43:29,610 --> 00:43:33,140 Kaya katumbas sign ay ginagamit na up sa pamamagitan ng pagtatalaga, mula kanan pakaliwa. 994 00:43:33,140 --> 00:43:35,110 Katumbas ng ay katumbas ng paraan katumbas. 995 00:43:35,110 --> 00:43:37,950 At kung gusto mo talagang iyong isip upang maging baluktot, sa JavaScript at PHP, 996 00:43:37,950 --> 00:43:40,490 may katumbas katumbas katumbas, na ibig sabihin iba pa sa kabuuan, 997 00:43:40,490 --> 00:43:41,990 ngunit kami ay kumuha na bago ang haba. 998 00:43:41,990 --> 00:43:45,760 >> Kaya ito ay isang simpleng pag-aayos, ngunit mapagtanto napakadaling upang gumawa ng mga pagkakamali, 999 00:43:45,760 --> 00:43:48,700 at pagkatapos ay magtaka at pakikibaka para sa mga minuto, kung hindi isang oras, 1000 00:43:48,700 --> 00:43:51,490 kung bakit ang aking code ay hindi Isinasagawa rin ang balak ko? 1001 00:43:51,490 --> 00:43:54,140 Ito ay dahil hindi mo sabihin ito tiyak kung ano ang iyong ibig sabihin. 1002 00:43:54,140 --> 00:43:56,450 Kaya na ay halos perpekto, at ito ay mahusay na 1003 00:43:56,450 --> 00:44:00,760 na kami stumbled sa kabuuan ng mga dalawang maliit bagay na ito dahil ngayon kung maayos namin ang mga ito, 1004 00:44:00,760 --> 00:44:06,240 at ako ay gagawa condition zero dot slash condition zero, 1005 00:44:06,240 --> 00:44:07,490 Gusto ko ng isang integer please. 1006 00:44:07,490 --> 00:44:08,090 Tingnan natin. 1007 00:44:08,090 --> 00:44:09,160 Hindi. 1008 00:44:09,160 --> 00:44:10,740 Ito ay pagpunta sa lakas sa akin upang gawin ito. 1009 00:44:10,740 --> 00:44:11,990 Kaya 42. 1010 00:44:11,990 --> 00:44:13,590 Ako pumili ng isang positibong numero. 1011 00:44:13,590 --> 00:44:16,470 Kaya ngayon kung paano gawin patunayan ko ang program na ito ay tama? 1012 00:44:16,470 --> 00:44:19,990 Kung ikaw ay isang mathematician, hindi ka maaaring talagang patunayan ito sa pamamagitan ng pagsubok at error, 1013 00:44:19,990 --> 00:44:20,490 right? 1014 00:44:20,490 --> 00:44:23,180 Maaari kang hindi lamang ang katibayan sa pamamagitan ng halimbawa, ngunit hindi bababa sa 1015 00:44:23,180 --> 00:44:25,494 bilang isang programmer hindi kami pagpunta sa subukan upang patunayan para sa ngayon 1016 00:44:25,494 --> 00:44:27,660 na ito ay talagang tama, ngunit ang dapat kong marahil 1017 00:44:27,660 --> 00:44:29,470 subukan ang ilang mga kinatawan ng mga kaso. 1018 00:44:29,470 --> 00:44:31,070 >> Sinubukan ko na 42. 1019 00:44:31,070 --> 00:44:33,030 Maaaring kong subukan 43. 1020 00:44:33,030 --> 00:44:34,910 Maaaring kong subukan 44. 1021 00:44:34,910 --> 00:44:35,640 Test 45. 1022 00:44:35,640 --> 00:44:36,140 Right? 1023 00:44:36,140 --> 00:44:37,860 Ngunit maaari kong gawin ito ng isang talagang mahabang panahon. 1024 00:44:37,860 --> 00:44:39,925 Ano kaya ang ilang mga iba pa kagiliw-giliw na mga kaso upang subukan? 1025 00:44:39,925 --> 00:44:41,050 Madla: [hindi marinig] zero. 1026 00:44:41,050 --> 00:44:41,740 David J. MALAN: Kaya zero. 1027 00:44:41,740 --> 00:44:42,297 Oo nga. 1028 00:44:42,297 --> 00:44:44,880 At mabuti, namin ang nakuha ko oras na ito, salamat sa bagong code Lauren. 1029 00:44:44,880 --> 00:44:46,213 Ano ang isa pang mahusay na kaso upang subukan? 1030 00:44:46,213 --> 00:44:47,320 Madla: Negative isa. 1031 00:44:47,320 --> 00:44:50,070 >> David J. MALAN: Negative isa, at marahil ng isang bagay ng isang maliit na mas malaki, 1032 00:44:50,070 --> 00:44:52,617 kaya siguro negatibong 42, ngunit sa pangkalahatan, kapag ang 1033 00:44:52,617 --> 00:44:54,450 pagsubok ang iyong mga programa paglipat ng pasulong, ikaw ay 1034 00:44:54,450 --> 00:44:56,325 pagpunta sa nais na mag-isip sa iyong sarili, tulad ng kung ano 1035 00:44:56,325 --> 00:44:58,050 ay ang mga pangunahing iba't ibang mga kaso. 1036 00:44:58,050 --> 00:45:01,720 At loob ko sabihin ng negatibong kaso, isang positibong kaso, at isang zero case 1037 00:45:01,720 --> 00:45:03,365 medyo marami round out ang mga ito. 1038 00:45:03,365 --> 00:45:04,990 Tingnan natin ang isang variant ng ito kahit Hayaan. 1039 00:45:04,990 --> 00:45:06,930 Mga Kundisyon ng isa. 1040 00:45:06,930 --> 00:45:11,224 Ito ay isang tamang solusyon dito, sa gayon ay makikita mo ang dalawang at online, 1041 00:45:11,224 --> 00:45:13,390 kung ituturo sa iyo ang walkthroughs, ay sa pangkalahatan 1042 00:45:13,390 --> 00:45:18,090 paglakas mga stepwise hanggang tayo makakuha ng eksakto ang tamang diskarte. 1043 00:45:18,090 --> 00:45:20,070 Paano kung gusto naming itanong dalawang tanong nang sabay-sabay? 1044 00:45:20,070 --> 00:45:22,200 >> Hayaan akong buksan up na ito sa halip. 1045 00:45:22,200 --> 00:45:26,740 Non-switch, para sa mga dahilan kami ay makita sa ibang oras. 1046 00:45:26,740 --> 00:45:29,610 Ano ang bago syntactically dito? 1047 00:45:29,610 --> 00:45:32,760 Kasalukuyan akong naglalaro ng isang laro kung saan ang computer ay nagsasabi 1048 00:45:32,760 --> 00:45:35,550 sa akin, bigyan mo ako ng isang integer sa pagitan ng isa at 10, 1049 00:45:35,550 --> 00:45:37,180 at pagkatapos ay ako paghusga sa balat ng input ng user. 1050 00:45:37,180 --> 00:45:39,180 Sa Ingles, batay sa ang code na makikita mo dito 1051 00:45:39,180 --> 00:45:41,530 sa asul, kung ano ang program na ito ginagawa? 1052 00:45:41,530 --> 00:45:44,256 1053 00:45:44,256 --> 00:45:46,380 Madla: [hindi marinig] pinili isang malaki o maliit na bilang. 1054 00:45:46,380 --> 00:45:46,484 David J. MALAN: Oo. 1055 00:45:46,484 --> 00:45:49,450 Lamang Ito ay adjudicating kung Ako pumili ng isang malaki, o medium, 1056 00:45:49,450 --> 00:45:53,900 o maliit na bilang batay sa isang napaka arbitrary kahulugan ng maliit, katamtaman, 1057 00:45:53,900 --> 00:45:58,510 at malaki dito, ngunit notice ang syntax na ang bago ay ito. 1058 00:45:58,510 --> 00:46:02,340 Walang mas mababa sa int sa o katumbas ng mag-sign, o mas malaki kaysa sa o katumbas ng sign, 1059 00:46:02,340 --> 00:46:05,430 kung saan ang isa ay higit sa iba, na kayo maaaring ipahayag sa tulad ng Microsoft Word. 1060 00:46:05,430 --> 00:46:08,180 Kaya sa isang programming language sa iyo karaniwang lamang gawin ang dalawang character, 1061 00:46:08,180 --> 00:46:09,450 isa-isa. 1062 00:46:09,450 --> 00:46:12,695 At ano ang ginagawa ito marahil kumatawan, ampersand ampersand. 1063 00:46:12,695 --> 00:46:13,570 Madla: [hindi marinig] 1064 00:46:13,570 --> 00:46:13,680 David J. MALAN: Oo. 1065 00:46:13,680 --> 00:46:16,910 Ito ay nangangahulugan lamang at dahil ito lumiliko out na ang mga may-akda ng C 1066 00:46:16,910 --> 00:46:19,120 ginagamit ng isang solong ampersand, na kung saan maaari mong isipin 1067 00:46:19,120 --> 00:46:22,430 ay perpekto para sa mga kuru-kuro ng at, ay ginagamit up, 1068 00:46:22,430 --> 00:46:27,300 kaya ampersand ampersand talaga kinukuha ang kaso namin talagang gusto. 1069 00:46:27,300 --> 00:46:30,610 >> Kaya sabihin ngayon makasumpong sa kabuuan ng dalawang bagay. 1070 00:46:30,610 --> 00:46:32,640 Hayaan akong sige at buksan up ng isa. 1071 00:46:32,640 --> 00:46:36,590 Isang bagay na ay isang maliit na nakakaligalig. 1072 00:46:36,590 --> 00:46:37,970 Imprecision dot c. 1073 00:46:37,970 --> 00:46:40,260 Hayaan akong kitang ipakilala sa dalawang mga bagay dito. 1074 00:46:40,260 --> 00:46:44,720 One, notice na maaari naming gawin math, tulad lamang ng dati nang 1075 00:46:44,720 --> 00:46:47,797 ginawa namin plus ng dalawang numero, x at y. 1076 00:46:47,797 --> 00:46:49,380 Ano ang programang ito ay tila ginagawa? 1077 00:46:49,380 --> 00:46:52,140 Hindi ko na pa nagkomento ito, at ipinakilala ko na porsiyento f, 1078 00:46:52,140 --> 00:46:55,720 ngunit ako mabilis na sinabi ng mas maaga porsyento f nangangahulugan lumulutang point 1079 00:46:55,720 --> 00:46:56,970 halaga, na kung saan ay tunay na numero. 1080 00:46:56,970 --> 00:46:59,520 Isang bagay na may isang decimal point, na kung saan ay hindi isang integer. 1081 00:46:59,520 --> 00:47:02,270 Ano ang tingin mo sa programang ito ay sinusubukan mong ipakita sa akin sa screen? 1082 00:47:02,270 --> 00:47:05,060 1083 00:47:05,060 --> 00:47:06,050 Oo? 1084 00:47:06,050 --> 00:47:07,550 Madla: Ang resulta ng isa sa higit sa 10. 1085 00:47:07,550 --> 00:47:07,780 David J. MALAN: Oo. 1086 00:47:07,780 --> 00:47:09,680 Ano ang mga resulta ng isa na hinati sa 10. 1087 00:47:09,680 --> 00:47:12,721 Right, dahil ang lahat ng mga malamang na ikaw ay lumago up-alam na isa sa higit sa 10 1088 00:47:12,721 --> 00:47:14,502 ay kung ano? 1089 00:47:14,502 --> 00:47:16,220 Oo, ito ay lamang 1/10 o 0.1. 1090 00:47:16,220 --> 00:47:16,720 Right? 1091 00:47:16,720 --> 00:47:19,010 Kaya sabihin makita kung ano ito ay talagang. 1092 00:47:19,010 --> 00:47:21,010 Kaya hayaan mo akong magpatuloy at i-save ito. 1093 00:47:21,010 --> 00:47:21,970 Hayaan akong pumunta dito sa ibaba. 1094 00:47:21,970 --> 00:47:26,360 Gumawa imprecision dot slash imprecision, at notice, masyadong, 1095 00:47:26,360 --> 00:47:29,380 sa isang Linux na kapaligiran, hindi mo kailangang i-type out imprecision at kumuha 1096 00:47:29,380 --> 00:47:30,010 buong araw. 1097 00:47:30,010 --> 00:47:32,910 Ito sa pangkalahatan, kung ikaw ay pindutin ang Tab, ito matatapos ang iyong pag-iisip para sa iyo, 1098 00:47:32,910 --> 00:47:36,660 batay sa mga salita na magagamit sa kasalukuyang directory. 1099 00:47:36,660 --> 00:47:37,160 OK. 1100 00:47:37,160 --> 00:47:37,970 Kaya ikaw ay kanan. 1101 00:47:37,970 --> 00:47:41,239 One hinati sa 10 ay, sa katunayan, 0.1. 1102 00:47:41,239 --> 00:47:42,280 Ngunit ako ng isang maliit na kakaiba. 1103 00:47:42,280 --> 00:47:44,196 At ito ay lumiliko out printf Sinusuportahan ng ilang mga tampok 1104 00:47:44,196 --> 00:47:48,700 kung saan maaari mong tukuyin ang higit sa ang default na bilang ng mga decimal point. 1105 00:47:48,700 --> 00:47:52,140 Kaya kung gusto kong makita ang 10 decimal puntos ang maaari kong gawin porsyento, 1106 00:47:52,140 --> 00:47:55,510 para sa mga simbolo ng placeholder, tuldok 10 para sa, bigyan ako ng 10 mga decimal point, 1107 00:47:55,510 --> 00:47:58,140 at pagkatapos pa rin lumulutang point halaga, at, bilang isang bukod, 1108 00:47:58,140 --> 00:48:01,550 kung ano ito backslash n Lumilitaw na panatilihin namin ginagamit? 1109 00:48:01,550 --> 00:48:03,450 Ito ay lumiliko out na ito ay isang simbolo para sa isang bagong linya. 1110 00:48:03,450 --> 00:48:05,970 Ito ay ang tunay tahasang paraan ng mga sinasabi sa computer, 1111 00:48:05,970 --> 00:48:08,759 ilipat ang cursor sa susunod na linya pagkatapos tapos ka na. 1112 00:48:08,759 --> 00:48:10,800 At kami na makita kung ano ang mangyayari kapag hindi namin gawin iyon. 1113 00:48:10,800 --> 00:48:12,430 >> Hayaan akong mag-recompile gumawa imprecision. 1114 00:48:12,430 --> 00:48:15,320 1115 00:48:15,320 --> 00:48:18,356 Ngayon dot slash imprecision. 1116 00:48:18,356 --> 00:48:18,930 OK. 1117 00:48:18,930 --> 00:48:19,780 Still karapatan. 1118 00:48:19,780 --> 00:48:21,512 One hinati sa 10. 1119 00:48:21,512 --> 00:48:23,220 Ngayon ako nakakakuha ng isang maliit na kakaiba, kahit na. 1120 00:48:23,220 --> 00:48:27,599 Paano kung ako ay tumingin sa 20 decimal points out, recompile, gawin uli, 1121 00:48:27,599 --> 00:48:29,390 at bilang isang tabi para bilis, maaari mo ring gamitin 1122 00:48:29,390 --> 00:48:31,800 ang iyong up at down arrow upang mag-scroll sa pamamagitan ng iyong kasaysayan, 1123 00:48:31,800 --> 00:48:35,476 kaya hindi mo na kailangang panatilihin retyping ang mga utos, ipasok. 1124 00:48:35,476 --> 00:48:36,910 Huh. 1125 00:48:36,910 --> 00:48:39,220 Hindi ko malaman na sa mababang paaralan. 1126 00:48:39,220 --> 00:48:43,260 Lahat ng karapatan, kaya hayaan mo akong makita tulad ng 29 mga lugar sa labas. 1127 00:48:43,260 --> 00:48:44,300 Marahil ito ay isang parasitiko lamang. 1128 00:48:44,300 --> 00:48:46,907 Siguro ang aking computer ay kumikilos kakaiba. 1129 00:48:46,907 --> 00:48:47,990 Iyan ay hindi isang bagay, i-right? 1130 00:48:47,990 --> 00:48:50,300 Ito ay paggawa ng isang bagay deterministically. 1131 00:48:50,300 --> 00:48:53,410 Kaya gumawa imprecision. 1132 00:48:53,410 --> 00:48:54,890 OK, na messed up. 1133 00:48:54,890 --> 00:48:57,620 Kaya kung ano ang nangyayari? 1134 00:48:57,620 --> 00:49:00,160 >> Kaya tila iyong guro ay namamalagi 1135 00:49:00,160 --> 00:49:03,900 sa inyo ang lahat ng mga oras na ito para sa dahilan na kami makita bago ang haba. 1136 00:49:03,900 --> 00:49:05,569 Ngunit sabihin magtapos sa isang iba pang mga program ipaalam. 1137 00:49:05,569 --> 00:49:07,860 Ito ay isang maliit na mga programa ang isang tao ay sumulat ng ilang mga taon na nakalipas, 1138 00:49:07,860 --> 00:49:08,990 at ito ay aktwal na bahagi ng isang contest. 1139 00:49:08,990 --> 00:49:11,198 Walang sinuman ang talagang magsusulat code tulad nito, at kung gagawin mo, 1140 00:49:11,198 --> 00:49:12,880 ito ay stylistically isang problema. 1141 00:49:12,880 --> 00:49:14,660 Subalit ang mga tao gawin ito para sa mga karapatan ng hangin. 1142 00:49:14,660 --> 00:49:17,260 Upang isulat ang pinaka-nakalilito naghahanap ng programa na 1143 00:49:17,260 --> 00:49:19,110 gayunman ay isang bagay na kawili-wili. 1144 00:49:19,110 --> 00:49:23,930 At ang tala naisip ko na gusto naming mag-iwan sa ngayon, bago Colton gumaganap sa amin dito, 1145 00:49:23,930 --> 00:49:27,840 ay upang patakbuhin ang program na ito, na kung saan, kahit na sa loob lamang ng paggamit 1146 00:49:27,840 --> 00:49:31,450 C sa batay sa teksto kapaligiran, ay nagbibigay sa amin na ito. 1147 00:49:31,450 --> 00:49:32,264 Dammit. 1148 00:49:32,264 --> 00:49:34,930 >> [Tawa] 1149 00:49:34,930 --> 00:49:36,800 >> Stand by. 1150 00:49:36,800 --> 00:49:39,340 [Hindi marinig] c dash l m. 1151 00:49:39,340 --> 00:49:42,885 Ikaw ay pagpunta upang makita ang mahiwagang bulong na namin makita bago ang haba. 1152 00:49:42,885 --> 00:49:45,780 Lahat ng mga karapatan [hindi marinig]. 1153 00:49:45,780 --> 00:49:51,592 At ngayon maaari mong kahit na gawin ang mga bagay na tulad nito. 1154 00:49:51,592 --> 00:49:52,340 Iyan na ang lahat. 1155 00:49:52,340 --> 00:49:56,410 Para sa CS50 namin, ay nakikita mo sa Biyernes. 1156 00:49:56,410 --> 00:49:58,910 >> [MUSIC nagpe-play] 1157 00:49:58,910 --> 00:52:38,390 1158 00:52:38,390 --> 00:52:41,440 >> [Palakpakan] 1159 00:52:41,440 --> 00:52:42,812