1 00:00:00,000 --> 00:00:01,500 >> [Musika nagpe-play] 2 00:00:01,500 --> 00:00:11,000 3 00:00:11,000 --> 00:00:16,110 >> David MALAN: Lahat ng karapatan ito ay CS50 at ito ang katapusan ng linggo isa. 4 00:00:16,110 --> 00:00:20,760 Kaya gusto ko upang ipakilala ang aking dating advisee, Andel Duff, na hindi lamang ginagawang 5 00:00:20,760 --> 00:00:25,460 iPhone 5 ay nakatayo, pati na rin na ito lectern, siya rin gumagawa ng mga kotse. 6 00:00:25,460 --> 00:00:27,927 7 00:00:27,927 --> 00:00:29,510 ANSEL Duff: Paano ay ito pagpunta, sa lahat? 8 00:00:29,510 --> 00:00:31,980 Gusto ko lang sabihin sa iyo ng kaunti bit tungkol sa Formula SAE, kung saan ako 9 00:00:31,980 --> 00:00:32,604 Kasama ang kapitan. 10 00:00:32,604 --> 00:00:33,437 Ito ay isang koponan ng MIT. 11 00:00:33,437 --> 00:00:35,520 Gusto ko lang sabihin sa iyo guys Medyo tungkol dito 12 00:00:35,520 --> 00:00:37,520 at sana ay bumuo ng ilang mga interes. 13 00:00:37,520 --> 00:00:41,590 >> Kaya ipaalam tumakbo lamang sa akin sa pamamagitan ng isang ilang mga bagay na tungkol sa aming koponan. 14 00:00:41,590 --> 00:00:43,640 Kaya hindi namin ganap run mag-aaral, kung saan lahat 15 00:00:43,640 --> 00:00:47,300 ng mga disenyo ng mga kasapi, gayahin, pagsubok, at tagagawa ng subsystem 16 00:00:47,300 --> 00:00:48,090 ng kotse. 17 00:00:48,090 --> 00:00:51,240 Mayroon kaming aming sariling machine shop at garages, at N52-- o paumanhin, 18 00:00:51,240 --> 00:00:54,140 N51-- kung saan ay ang parehong gusali bilang ng MIT Science Museum. 19 00:00:54,140 --> 00:00:55,990 At hindi namin ang mga tao na nagdadala ng kotse. 20 00:00:55,990 --> 00:00:58,340 Mayroong isang pambansang kumpetisyon sa simula ng tag-araw, 21 00:00:58,340 --> 00:01:01,215 at pagkatapos ay mayroong mga mas maliit na shootout mga kumpetisyon sa buong taon. 22 00:01:01,215 --> 00:01:04,400 At pagkatapos ay ginagawa namin ang driver ng pagsasanay araw upang makakuha ng kilala ng mga bagong miyembro. 23 00:01:04,400 --> 00:01:08,280 >> Ang aming build araw ay sa Sabado 11:00-20:00. 24 00:01:08,280 --> 00:01:11,060 Tanghalian at hapunan pag-aalaga pagkuha ng, mula sa Bertucci at Beantown 25 00:01:11,060 --> 00:01:12,130 ayon sa pagkakabanggit. 26 00:01:12,130 --> 00:01:15,260 Mayroon kaming mga lingguhang pagpupulong at seminar, na kung saan ay para sa mga kurso kredito. 27 00:01:15,260 --> 00:01:18,560 Alin ang bagong bilang ng semestre, at ito ang magiging din para sa susunod na semestre, 28 00:01:18,560 --> 00:01:19,940 sa gayon ay maaari mong i-cross-reg para doon. 29 00:01:19,940 --> 00:01:22,960 At pagkatapos kami ay may sa pagdidisenyo, shop, at CAD araw sa linggo, 30 00:01:22,960 --> 00:01:26,870 samantalang ang mga miyembro ay nakapag-iisa CAD na piyesa, stock pagkakasunud-sunod at iba pa. 31 00:01:26,870 --> 00:01:29,200 >> Kaya para sa mga de-koryenteng engineering sa koponan 32 00:01:29,200 --> 00:01:31,110 mayroon kaming aming tractive, mataas na boltahe system, 33 00:01:31,110 --> 00:01:33,390 na kung saan ay nagpapatakbo ng sa isang nominal 300 volts, na kasama ang 34 00:01:33,390 --> 00:01:35,360 Motors, controllers motor, at pack baterya. 35 00:01:35,360 --> 00:01:37,235 Pagkatapos kami ay may isang mababang boltahe system, na kung saan ay nagpapatakbo ng 36 00:01:37,235 --> 00:01:40,180 sa 12 volts, na kasama ang mga kontrol, MAGAGAWA nodes, ang utak 37 00:01:40,180 --> 00:01:41,570 kahon, at sa dashboard. 38 00:01:41,570 --> 00:01:43,890 Bilang malayo CS-uusapan, ginagawa namin Mayroon pagpapanatili website 39 00:01:43,890 --> 00:01:47,940 na namin ang nangangailangan ng tapos para sa mga kaganapan, pagiging miyembro mga pagbabago, ang mga bagong larawan, at PR materyal. 40 00:01:47,940 --> 00:01:51,540 At pagkatapos ay mayroon kaming code na kumokontrol sa kotse para sa aming mga traction control, paglunsad 41 00:01:51,540 --> 00:01:55,750 kontrol, gitling kontrol, torque vectoring, at regenerative braking system, na 42 00:01:55,750 --> 00:01:59,170 tumakbo karaniwang sa MATLAB, Simulink, at LabView. 43 00:01:59,170 --> 00:02:00,910 >> Sabihin mo nang kaunti tungkol sa mga kotse. 44 00:02:00,910 --> 00:02:02,470 Kaya ito ay tungkol sa £ 500. 45 00:02:02,470 --> 00:02:04,285 Ito ay mga panuntunan limitado sa 85 kilowatts. 46 00:02:04,285 --> 00:02:08,310 Mayroon itong 2 EMRAX 207 Motors sa pabalik, isa para sa bawat hulihan wheel. 47 00:02:08,310 --> 00:02:11,880 Mayroon itong mga custom-built pack baterya mula Prismatic mga cell A123 supot, 48 00:02:11,880 --> 00:02:14,780 na may kabuuan na 300 volts at 5.6 kilowatt na oras. 49 00:02:14,780 --> 00:02:17,950 At ito ay direktang pag-biyahe sa isang 2.64-1 biyahe ratio. 50 00:02:17,950 --> 00:02:20,970 Narito ang ilang mga larawan namin kinuha nito sa kompetisyon. 51 00:02:20,970 --> 00:02:25,820 Narito ang kono pabalik, ilong, at narito ang mga Motors, 52 00:02:25,820 --> 00:02:29,682 mga malaking itim na mga disk sa ilalim ng Damit et Manus. 53 00:02:29,682 --> 00:02:32,140 Narito ang isang slide na aking nakuha out sa aming mga pamamaraan kumpetisyon. 54 00:02:32,140 --> 00:02:35,389 At ito ay naghahambing lamang ang aming kotse sa isang ilang mga komersyal na magagamit ng kotse, 55 00:02:35,389 --> 00:02:38,380 tulad ng KTM XBOW, Ariel Atom, at Caterha M 7-280. 56 00:02:38,380 --> 00:02:42,110 Kung pamilyar ka sa mga presyo, kapangyarihan hilahin ang timbang, dolyar bawat horsepower, 57 00:02:42,110 --> 00:02:44,930 dolyar bawat torque, at ang aming kotse blows ang lahat ng ito sa labas ng tubig. 58 00:02:44,930 --> 00:02:47,520 Kung mayroon kang anumang mga tanong, lista ng email address na ito. 59 00:02:47,520 --> 00:02:50,800 Abutin kami ng email sa fsae@mit.edu. 60 00:02:50,800 --> 00:02:53,350 >> Masaya kami upang makipag-usap tungkol sa anumang bagay na gusto mo. 61 00:02:53,350 --> 00:02:55,600 Harvard mga mag-aaral ay uri ng Minorya sa koponan. 62 00:02:55,600 --> 00:02:58,350 Kung mayroon kang anumang mga tanong tungkol sa na mangyaring gawin shoot kami ng isang email, 63 00:02:58,350 --> 00:03:00,810 masaya na makipag-usap, at ako pupunta upang magtungo ang pabalik sa paglipas ng sa David. 64 00:03:00,810 --> 00:03:01,550 Salamat. 65 00:03:01,550 --> 00:03:02,466 Pinapahalagahan ko ito, guys. 66 00:03:02,466 --> 00:03:03,615 [APPLAUSE] 67 00:03:03,615 --> 00:03:07,080 68 00:03:07,080 --> 00:03:10,980 >> David MALAN: Ansel na ginugol ng tag-init nagtatrabaho sa amin dito sa campus sa CS50 69 00:03:10,980 --> 00:03:11,480 ito tag-araw. 70 00:03:11,480 --> 00:03:13,505 At bilang karagdagan sa pagtatrabaho sa mga bagay tulad ng binary na mga bombilya, 71 00:03:13,505 --> 00:03:16,090 siya talaga talaga binuksan ang aming eyes-- at mina sa particular-- 72 00:03:16,090 --> 00:03:20,535 sa kung ano talaga ang intersection ng hindi ng hardware at software ay maaaring maging. 73 00:03:20,535 --> 00:03:23,410 Sa katunayan ng maraming mga bagay na siya lang Nalibot iyo sa pamamagitan ng mga huli 74 00:03:23,410 --> 00:03:26,030 Nilikha ang unang sa software, at pagkatapos ay sa huli fabricated 75 00:03:26,030 --> 00:03:27,299 sa tunay na mundo sa hardware. 76 00:03:27,299 --> 00:03:29,590 Kaya't kung ikaw ay interesado sa paggalugad na panulukan, 77 00:03:29,590 --> 00:03:31,430 marahil tumagal ng hanggang group na iyon. 78 00:03:31,430 --> 00:03:34,140 >> Ngayon samantala, doon sa iyo na mga tagahanga ng mga teknolohiya, 79 00:03:34,140 --> 00:03:36,140 at mga produkto ng Apple sa partikular na malaman na mayroong 80 00:03:36,140 --> 00:03:37,860 ay isang pares ng mga mga anunsyo kahapon. 81 00:03:37,860 --> 00:03:39,776 Ngunit naisip namin na gusto naming ipakita mo ang isa na dumating out 82 00:03:39,776 --> 00:03:43,590 ilang araw bago na Maaaring hindi na nakita mo. 83 00:03:43,590 --> 00:03:46,150 >> JORGEN EGHAMMER: Alam mo, isang beses sa sandali ng isang bagay 84 00:03:46,150 --> 00:03:49,540 ay kasama na mga pagbabago sa paraan ng aming nakatira. 85 00:03:49,540 --> 00:03:53,479 Kaya simple at madaling gamitin na aparato A gamitin ito sa palagay halos pamilyar. 86 00:03:53,479 --> 00:03:59,710 87 00:03:59,710 --> 00:04:04,138 Ipinapakilala 2015 IKEA catalog. 88 00:04:04,138 --> 00:04:10,420 Ito ay hindi isang digital na aklat o isang e-book, ito ay isang aklat-book. 89 00:04:10,420 --> 00:04:14,440 >> Ang unang bagay upang tandaan ay walang cable, hindi kahit na isang power cable. 90 00:04:14,440 --> 00:04:18,519 Ang 2015 IKEA katalogo ay ganap na sisingilin, 91 00:04:18,519 --> 00:04:20,550 at ang buhay ng baterya ay walang hanggan. 92 00:04:20,550 --> 00:04:27,300 Ang interface ay 7.5 sa pamamagitan ng 8 pulgada, ngunit maaari palawakin sa 15 sa pamamagitan ng 8 pulgada. 93 00:04:27,300 --> 00:04:32,410 Nabigasyon ay batay sa tactile ugnay teknolohiya na maaari mong aktwal na pakiramdam. 94 00:04:32,410 --> 00:04:37,120 >> Nilalaman ay paunang naka-install sa pamamagitan ng 328 mga pahina ng high-definition 95 00:04:37,120 --> 00:04:40,180 ng kagila-ideya sa bahay muwebles. 96 00:04:40,180 --> 00:04:43,740 Upang magsimulang mag-browse, pindutin lamang at i-drag. 97 00:04:43,740 --> 00:04:50,870 Karapatan sa kaliwa upang ilipat pasulong, kaliwa hanggang kanang upang ilipat paurong. 98 00:04:50,870 --> 00:04:52,770 >> Pansinin ibang bagay? 99 00:04:52,770 --> 00:04:53,780 Tama iyon. 100 00:04:53,780 --> 00:04:55,190 Walang lag. 101 00:04:55,190 --> 00:04:58,400 Ang bawat kristal pahina naglo-load agad, 102 00:04:58,400 --> 00:05:00,586 gaano man mabilis kang mag-scroll. 103 00:05:00,586 --> 00:05:03,710 Kung nais mong makakuha ng isang mabilis na pangkalahatang-ideya, hawakan lamang ito sa iyong palad, 104 00:05:03,710 --> 00:05:06,816 at gamit lang ang iyong hinlalaki, bilis-browse ang nilalaman. 105 00:05:06,816 --> 00:05:10,930 >> Kung nakahanap ka ng bagay na gusto mong i-save para sa ibang pagkakataon, maaari mo lamang i-bookmark ito. 106 00:05:10,930 --> 00:05:17,620 At kahit na isasara mo ang application, maaari mong madaling mahanap muli ang mga bookmark. 107 00:05:17,620 --> 00:05:18,490 Kamangha-manghang. 108 00:05:18,490 --> 00:05:20,434 >> [Tawa] 109 00:05:20,434 --> 00:05:21,406 [APPLAUSE] 110 00:05:21,406 --> 00:05:26,760 111 00:05:26,760 --> 00:05:29,870 Kaya na madadala sa amin upang ang katapusan ng linggo isa. 112 00:05:29,870 --> 00:05:31,760 Ang ilang mga anunsyo ngayon. 113 00:05:31,760 --> 00:05:33,440 Kaya sectioning ay isinasagawa ngayon. 114 00:05:33,440 --> 00:05:36,860 Pumunta sa URL na ito dito ang ilang sandali sa pagitan ng ngayon at Biyernes sa tanghali 115 00:05:36,860 --> 00:05:39,960 upang aktwal na tukuyin kung ikaw ay kasama ng mga mas kumportable, mas 116 00:05:39,960 --> 00:05:41,690 kumportable, o isang lugar sa pagitan. 117 00:05:41,690 --> 00:05:44,511 >> Ito ay karaniwang ang isa sa mga mga bagay na kamakailan mo lamang uri ng malaman. 118 00:05:44,511 --> 00:05:47,510 At sa katunayan doon sa iyo kung sino ay mas kumportableng marahil malaman bilang magkano, 119 00:05:47,510 --> 00:05:49,634 doon sa iyo kung sino ay mas kumportableng malaman bilang magkano, 120 00:05:49,634 --> 00:05:54,960 at muli kung hindi ka pa masyadong sigurado kung anong ng mga bucket mahulog ka sa ikaw ay 121 00:05:54,960 --> 00:05:56,210 marahil sa isang lugar sa pagitan. 122 00:05:56,210 --> 00:05:59,810 Ngunit makatitiyak maaari mong magpalit pagkatapos ng ilang linggo kung kailangang maging. 123 00:05:59,810 --> 00:06:02,620 >> Samantala, para sa mga darating na linggo hindi namin simulan ang mga seksyon sa bawat se, 124 00:06:02,620 --> 00:06:04,760 ngunit super seksyon, na ay bukas sa lahat ng mga mag-aaral. 125 00:06:04,760 --> 00:06:08,220 Ito darating na Linggo sa isang lokasyon upang ay inihayag sa kurso website 126 00:06:08,220 --> 00:06:10,190 magkakaroon kami ng isa para sa mga mas kumportable, 127 00:06:10,190 --> 00:06:12,470 pati na rin ang isa para sa mga kumportableng higit pa. 128 00:06:12,470 --> 00:06:15,460 At ang mga lugar sa pagitan ng Maaaring piliin kung alin sa mga dalawang, 129 00:06:15,460 --> 00:06:17,360 o pareho kung gusto mo, umupo-in sa. 130 00:06:17,360 --> 00:06:19,630 At ang focus ng mga ay magiging huli sa C, 131 00:06:19,630 --> 00:06:22,440 na patuloy naming ang aming Ang pag-uusap ngayon. 132 00:06:22,440 --> 00:06:25,070 >> Itakda ang problema 0 samantala ay sana sa iyong mga kamay. 133 00:06:25,070 --> 00:06:27,500 Opisyal dahil bukas, Huwebes, sa tanghali. 134 00:06:27,500 --> 00:06:29,490 Maliban kung cash sa isa ng iyong 5 late na araw, 135 00:06:29,490 --> 00:06:31,780 kung saan nais dalhin ito hanggang Biyernes sa tanghali. 136 00:06:31,780 --> 00:06:34,420 Itakda ang problema 1 samantala ay magiging naka-post sa website ng kurso ni. 137 00:06:34,420 --> 00:06:37,381 At ito ay ang aming unang foray bilang isang klase sa C. 138 00:06:37,381 --> 00:06:40,630 At na spec problema set ay ituturo sa iyo sa pamamagitan ng maraming mga Mechanics ng kung ano ang 139 00:06:40,630 --> 00:06:43,960 namin pakikipag-usap tungkol sa Pagsisimula sa Monday, at patuloy naming pinag-uusapan tungkol sa ngayon. 140 00:06:43,960 --> 00:06:46,770 C, Linux, ang CS50 appliance, ang lahat ng na 141 00:06:46,770 --> 00:06:48,990 ay naghihintay sa iyo sa pagtutukoy. 142 00:06:48,990 --> 00:06:52,840 >> Oras ng opisina samantala ay nasa progreso, sa undergraduate dining hall. 143 00:06:52,840 --> 00:06:56,240 Magtungo sa URL na ito dito upang makita ang -iskedyul para ngayong gabi at bukas, 144 00:06:56,240 --> 00:06:57,930 kung nais mong makibahagi. 145 00:06:57,930 --> 00:07:01,920 Tanong samantala, nang sa gayon ay may mga pagkakataon upang magtanong 146 00:07:01,920 --> 00:07:05,860 asynchronously, 24/7, Napagtanto ikaw ay hindi limitado sa mga seksyon at opisina 147 00:07:05,860 --> 00:07:09,530 oras, ngunit sa halip ang tool na ito dito, CS50 Talakayin sa URL na iyon 148 00:07:09,530 --> 00:07:12,150 ay magiging online na kurso sa pamamagitan nito ay bulletin board na software, sa pamamagitan ng kung aling mga 149 00:07:12,150 --> 00:07:15,030 maaari kang magtanong ng mga kaklase at din staff. 150 00:07:15,030 --> 00:07:18,492 Kaya tandaan na mapagkukunan pati na rin. 151 00:07:18,492 --> 00:07:20,200 Samantala isang tradisyon Nagsisimula ito Biyernes. 152 00:07:20,200 --> 00:07:23,200 Tulad ng maaaring mo pa glimpsed mula sa teaser video huling Miyerkules, ang 153 00:07:23,200 --> 00:07:25,510 mayroon kaming karamihan sa isang tradisyon tuwing Biyernes sa panahon ng termino 154 00:07:25,510 --> 00:07:28,750 ng pagkuha ng ilang 50 mga mag-aaral at staff sa isang lokal na restaurant na tinatawag na 155 00:07:28,750 --> 00:07:31,510 Apoy at Yelo, kung saan kami ay Karaniwang sumali sa pamamagitan ng ilang mga alumni 156 00:07:31,510 --> 00:07:33,850 o mga kaibigan mula sa industriya sa pangkalahatan ay aspire 157 00:07:33,850 --> 00:07:35,780 upang gumawa ng isang malaking klase sa tingin mas maliit. 158 00:07:35,780 --> 00:07:37,560 Kaya ito ay isang ganap na kaswal na tanghalian. 159 00:07:37,560 --> 00:07:40,160 Ang isang bungkos ng sa amin, ang mga tauhan lalo na, magpe-play musikal upuan 160 00:07:40,160 --> 00:07:43,360 at makipag-chat sa mga mag-aaral tungkol sa 50, buhay sa labas ng 50, 161 00:07:43,360 --> 00:07:46,510 buhay sa hinaharap, sa tunay na mundo, Ako ng pakikipag-usap tungkol sa mga pagkakataon sa trabaho 162 00:07:46,510 --> 00:07:47,680 sa mga kaibigan sa industriya. 163 00:07:47,680 --> 00:07:51,110 >> Kaya kung nais mong sumali sa amin ito Biyernes, magtungo sa URL na ito dito. 164 00:07:51,110 --> 00:07:54,180 Space ay limitado, ngunit gagawin namin ito recurringly sa buong termino. 165 00:07:54,180 --> 00:07:57,380 Magtungo doon upang cs50.harvard.edu/rsvp. 166 00:07:57,380 --> 00:07:59,380 At kung hindi mo makuha sa oras na ito, hindi mag-alala. 167 00:07:59,380 --> 00:08:02,390 Gagawin namin ang itong muli sa mga darating na linggo pati na rin. 168 00:08:02,390 --> 00:08:05,434 >> Kaya ito ay ang larawan painted namin noong nakaraang linggo, 169 00:08:05,434 --> 00:08:07,350 at marahil ka pa dabbling sa gayon ay malayo. 170 00:08:07,350 --> 00:08:10,360 Ngunit subukan upang makakonekta ito ngayon hayaan sa kung ano ang pagpunta naming gawin ngayon 171 00:08:10,360 --> 00:08:11,440 at pasulong. 172 00:08:11,440 --> 00:08:14,760 Puwede bang isa volunteer? 173 00:08:14,760 --> 00:08:16,000 Ang lahat ng mga karapatan, o ilang. 174 00:08:16,000 --> 00:08:18,460 Paano ang tungkol dito sa pagtatapos, sa asul na shirt. 175 00:08:18,460 --> 00:08:20,329 Halika sa up, kung ano ang iyong pangalan? 176 00:08:20,329 --> 00:08:20,870 ALANA: Alana. 177 00:08:20,870 --> 00:08:21,661 David MALAN: Alana. 178 00:08:21,661 --> 00:08:25,100 Kaya Alana, para lang moment-- gandang upang matugunan you-- 179 00:08:25,100 --> 00:08:28,260 Mawawala na i-play ang papel ng pag-andar na ito dito. 180 00:08:28,260 --> 00:08:31,290 Ang mga lilang bloke hindi namin tinatawag na kaya ngayon ng isang function. 181 00:08:31,290 --> 00:08:34,830 Kaya kung ano ang pupuntahan ko pumunta maaga dito at nag-aalok Alana 182 00:08:34,830 --> 00:08:38,380 ay isang maliit na name tag, upang gumawa ng malinaw kung ano ang papel ka sa pag-play. 183 00:08:38,380 --> 00:08:39,753 >> Kaya dapat kang maging sabihin nating block. 184 00:08:39,753 --> 00:08:41,419 Kung nais mong magpatuloy at ilagay na sa. 185 00:08:41,419 --> 00:08:43,169 At kami ay pagpunta sa panatilihin ito napaka-simple. 186 00:08:43,169 --> 00:08:46,180 Kung ang layunin sa kamay ay simpleng ngayon upang ipatupad na may Alana, 187 00:08:46,180 --> 00:08:49,710 ito tinatawag nating bloke, narito kung paano ito ng pagpunta sa gumana. 188 00:08:49,710 --> 00:08:52,574 Tumawag ni ito ko have-- hayaan isang argumento o parameter, 189 00:08:52,574 --> 00:08:54,240 talaga lamang ng isang blangko sheet ng papel. 190 00:08:54,240 --> 00:08:57,239 At ito ay puti sa uri ng maging reminiscent ng puting kahon kung saan mo 191 00:08:57,239 --> 00:08:58,080 Maaari sumulat ng mga salita. 192 00:08:58,080 --> 00:09:00,660 >> Samantala pupuntahan ko pumunta dito. 193 00:09:00,660 --> 00:09:06,560 Pupunta ako sa magpatuloy at sumulat ng H-E-L-L-O kuwit mundo. 194 00:09:06,560 --> 00:09:09,972 At ngayon ko, pati na ang sinasabi ng mga programmer, ay hindi talaga alam kung paano sabihin ang isang bagay. 195 00:09:09,972 --> 00:09:12,180 Maaari ba akong makabuo ng mga salita, ngunit gagawin ko hindi kinakailangang 196 00:09:12,180 --> 00:09:15,220 alam kung paano ipahayag ang sarili ko pasalita o sa screen. 197 00:09:15,220 --> 00:09:17,280 At kaya kung ano ang pupuntahan ko upang gawin ay tumagal ng piraso na ito 198 00:09:17,280 --> 00:09:21,157 ng pag-andar, kung saan ang input-- o argument, dahil kakailanganin tinatawag naming ito, 199 00:09:21,157 --> 00:09:23,990 Na naisulat ko sa ito piraso ng paper-- at Pupunta ako sa outsource ito. 200 00:09:23,990 --> 00:09:26,831 >> At sa katunayan iyon ang papel na iyon function sa isang programming language 201 00:09:26,831 --> 00:09:27,330 Pwedeng maglaro. 202 00:09:27,330 --> 00:09:29,246 Isang bagay na tulad ng sabihin nating maaaring i-block Outsourced 203 00:09:29,246 --> 00:09:32,074 sa isang tao na talagang alam ano ang kanyang o ang pakikipag-usap siya tungkol sa. 204 00:09:32,074 --> 00:09:33,990 Kaya kung makikita mo hakbang sa ibabaw dito para sa isang sandali lamang, 205 00:09:33,990 --> 00:09:40,092 Ako ay pagpunta sa pumasa ng pag-input na ito sa Alana, at hinihiling na sabihin sa iyo ng pag-input na ito. 206 00:09:40,092 --> 00:09:41,202 >> ALANA: Kumusta, mundo. 207 00:09:41,202 --> 00:09:42,160 David MALAN: Iyan na ang lahat. 208 00:09:42,160 --> 00:09:43,326 Kaya na doon ay isang katangian. 209 00:09:43,326 --> 00:09:46,556 Ngayon ay maaari namin ito ng kaunti pa, Maaari kaming magsagawa ng isang hakbang pasulong dito. 210 00:09:46,556 --> 00:09:48,180 Dahil na noon ay malinaw na underwhelming. 211 00:09:48,180 --> 00:09:51,670 Kaya ngayon hayaan convert ng ito sa isang bagay ng kaunti pa sopistikadong. 212 00:09:51,670 --> 00:09:53,630 >> Kaya ito ng kurso ay ang aming C bersyon. 213 00:09:53,630 --> 00:09:56,760 Kaya ngayon kung gusto mong tumagal na isa-off, na pangalan ng tag-off, 214 00:09:56,760 --> 00:09:58,530 at sabihin mayroon kang ilagay sa isang bagong pangalan. 215 00:09:58,530 --> 00:10:00,850 Ngunit fundamentally ikaw ay nagpe-play ang parehong papel, 216 00:10:00,850 --> 00:10:03,400 kaya ito lamang ang mangyayari sa tawagin printf ngayon. 217 00:10:03,400 --> 00:10:06,930 >> Ang kuwento ay, siyempre, pagpunta sa be-- marahil 218 00:10:06,930 --> 00:10:09,317 tulad ng underwhelming-- ay pagpunta sa maging ang sumusunod. 219 00:10:09,317 --> 00:10:10,650 Kayo ngayon ay ang function printf. 220 00:10:10,650 --> 00:10:13,300 Ako ang tumatawag, o ang programmer, na nagnanais 221 00:10:13,300 --> 00:10:15,745 upang tumayo sa mga balikat ng mga tao sa nakalipas na tulad mo, 222 00:10:15,745 --> 00:10:18,670 taong na nalaman kung paano upang aktwal na magsulat ng isang bagay pababa. 223 00:10:18,670 --> 00:10:20,650 At kaya oras na ito, sa halip na ito sinasabi sabihin 224 00:10:20,650 --> 00:10:22,255 aktwal na gamitin ang aming screen sa paglipas dito. 225 00:10:22,255 --> 00:10:24,130 Kaya kung nais mong i-basa higit sa rito, ako ako pagpunta 226 00:10:24,130 --> 00:10:27,196 upang pumasa muli ito bilang input sa aking kaibigan printf. 227 00:10:27,196 --> 00:10:29,320 Kung maaari kang magpatuloy at i-print na sa screen, 228 00:10:29,320 --> 00:10:31,611 sa pamamagitan lamang ng pagguhit gamit ang iyong daliri sa itim na screen. 229 00:10:31,611 --> 00:10:43,680 230 00:10:43,680 --> 00:10:44,180 Mahusay. 231 00:10:44,180 --> 00:10:47,350 Ang lahat ng mga karapatan, kaya maraming suspense para sa paano na pagpunta upang i-play out. 232 00:10:47,350 --> 00:10:51,390 >> Kaya ngayon hayaan kumuha ng mga bagay up ng isa huling bingaw, kung magagawa namin, tulad ng sumusunod. 233 00:10:51,390 --> 00:10:53,980 Kaya ito ay isang programa C tulad ng sinabi namin huling beses. 234 00:10:53,980 --> 00:10:57,460 At ito lamang ang ginagawa kung ano ang iyong ginawa, ito Pini-print out sa screen, kumusta, mundo. 235 00:10:57,460 --> 00:11:00,290 Kahit na mayroong malinaw na marami ng distracting mga bagay-bagay up doon. 236 00:11:00,290 --> 00:11:03,630 Ngunit tumagal ng isang bingaw mga bagay-bagay at ipaalam ipakilala ang bersyon na ito, na isipin 237 00:11:03,630 --> 00:11:06,160 ay ang pangatlong bersyon na napunta kami sa huling pagkakataon. 238 00:11:06,160 --> 00:11:09,120 >> At ngayon ay may malinaw na dalawang mga paggamit ng printf. 239 00:11:09,120 --> 00:11:12,280 Mayroong 2 mga tawag sa Alana sa ganitong kaso para sa printf, 240 00:11:12,280 --> 00:11:14,740 ngunit mayroon ding isang tawag sa isa pang pag-andar. 241 00:11:14,740 --> 00:11:17,150 Ano ang pag-andar na malinaw? 242 00:11:17,150 --> 00:11:17,650 Getstring. 243 00:11:17,650 --> 00:11:18,980 >> Puwede ba kaming kumuha ng isa pang volunteer? 244 00:11:18,980 --> 00:11:20,980 OK, dumating sa up. 245 00:11:20,980 --> 00:11:21,805 Ano ang inyong pangalan? 246 00:11:21,805 --> 00:11:22,990 >> Javier: Javier. 247 00:11:22,990 --> 00:11:24,750 >> David MALAN: Javier, dumating sa up. 248 00:11:24,750 --> 00:11:27,270 Kaya papel Javier ay sa ito piraso ng papel. 249 00:11:27,270 --> 00:11:28,860 Aling Pupunta ako sa tumawag sa generically s. 250 00:11:28,860 --> 00:11:32,250 Ngayon ito ay isang variable na ito, ng uri ng string, pati na ipinahiwatig 251 00:11:32,250 --> 00:11:34,290 sa pamamagitan ng na pangalawang linya sa gitna doon. 252 00:11:34,290 --> 00:11:36,540 At gusto ko sa iyo upang pumunta akong ikuha ng string. 253 00:11:36,540 --> 00:11:40,120 Sa partikular magtungo pababa sa orkestra seksyon at makakuha sa akin ang pangalan ng isang tao, 254 00:11:40,120 --> 00:11:43,142 at bumalik sa isang variable na naglalaman ng halaga na iyon. 255 00:11:43,142 --> 00:11:44,225 Maaari itong maging sinuman na gusto mo. 256 00:11:44,225 --> 00:11:47,590 257 00:11:47,590 --> 00:11:48,520 >> Narito pumunta namin. 258 00:11:48,520 --> 00:11:53,620 259 00:11:53,620 --> 00:11:55,960 Ang lahat ng mga karapatan, Javier ay pagsulat down na ang pangalan. 260 00:11:55,960 --> 00:12:02,210 261 00:12:02,210 --> 00:12:03,280 Lahat ng karapatan. 262 00:12:03,280 --> 00:12:05,740 Maaari lahat namin marahil hulaan kung paano ito ay pagpunta upang i-play out. 263 00:12:05,740 --> 00:12:07,489 Marahil kami belaboring sa punto ng kung ano ang 264 00:12:07,489 --> 00:12:10,320 isang function ay ang paggawa, ngunit nonetheless salamat sa inyo. 265 00:12:10,320 --> 00:12:13,890 >> Kaya Javier Nagbalik ang string na ito dito, na kung saan, ay hindi maaaring masyadong makita, 266 00:12:13,890 --> 00:12:15,800 Jonathan ay ang string na ang nakuha namin. 267 00:12:15,800 --> 00:12:18,330 Kaya ngayon kung ano ang aktwal na pupuntahan ko upang magkaloob sa Alana bagaman 268 00:12:18,330 --> 00:12:20,150 ay isang bagay na medyo naiiba. 269 00:12:20,150 --> 00:12:23,800 Dahil sa ang bersyon na ito ng programa, una mayroong sabihin ang iyong pangalan. 270 00:12:23,800 --> 00:12:26,160 Kaya ang pinakaunang argument Kailangan ko bang magbigay ng Alana 271 00:12:26,160 --> 00:12:33,030 may ay magiging Literal na sabihin ang iyong pangalan. 272 00:12:33,030 --> 00:12:35,280 Ang lahat ng mga karapatan, kaya simpleng bilang na Gusto ko ibigay ito sa iyo. 273 00:12:35,280 --> 00:12:36,730 At bilang isulat ko ang susunod na argument, kung ikaw 274 00:12:36,730 --> 00:12:39,230 nais na magpatuloy at isulat ito sa board, sabihin sige 275 00:12:39,230 --> 00:12:42,659 at gawin ang panghuling halimbawa dito upang gumawa i-clear kung ano ang sa huli ay nakuha ko na mangyayari. 276 00:12:42,659 --> 00:12:44,450 Kaya sabihin ang iyong pangalan, isulat ito patungo sa tuktok 277 00:12:44,450 --> 00:12:47,220 kung hindi mo bale ko, kaya lang na mayroon kaming kuwarto para sa isang pangalawang linya. 278 00:12:47,220 --> 00:12:52,890 Dahil ang huling bagay ako pupunta sa ngayon magbigay sa iyo ng ay hindi isa, 279 00:12:52,890 --> 00:12:57,220 ngunit dalawang piraso ng papel. 280 00:12:57,220 --> 00:12:58,074 >> Lahat ng karapatan. 281 00:12:58,074 --> 00:13:01,920 H-E-L-L-O comma at pagkatapos ng blangkong linya. 282 00:13:01,920 --> 00:13:04,780 Kaya kung ano ako tungkol sa ipasa Alana ngayon ay isang bagay na medyo naiiba. 283 00:13:04,780 --> 00:13:08,600 Hindi lamang siya ang pagkakaroon ng ganitong, kung saan fill sa blangko ay kumakatawan 284 00:13:08,600 --> 00:13:12,050 na percent-- kung ano ang placeholder namin na ginagamit mo? 285 00:13:12,050 --> 00:13:13,890 Oo, kaya porsiyento s. 286 00:13:13,890 --> 00:13:16,530 Samantala Pupunta ako sa pumasa sa kanya sa isang pangalawang argumento, na 287 00:13:16,530 --> 00:13:19,290 ay tiyak kung ano Javier nabawi mula sa Jonathan. 288 00:13:19,290 --> 00:13:20,534 >> Kaya ipaalam sa akin magbibigay sa iyo ng dalawang. 289 00:13:20,534 --> 00:13:22,575 Kung nais mong, sige at i-print na epekto. 290 00:13:22,575 --> 00:13:25,660 291 00:13:25,660 --> 00:13:28,130 Ano ang nangyayari sa huli ngayon ay, Alana muli 292 00:13:28,130 --> 00:13:29,410 nagpe-play ang papel na ginagampanan ng printf. 293 00:13:29,410 --> 00:13:32,160 Javier ay naglalaro ng ang papel na ginagampanan ng GetString. 294 00:13:32,160 --> 00:13:34,700 Nang sa gayon ay ang iyong magiging souvenir. 295 00:13:34,700 --> 00:13:39,910 At sa huli kung ano ang nangyayari, sa kabila ng ito hello-- yep sige at kuwit. 296 00:13:39,910 --> 00:13:41,410 ALANA: matanggap ko ba nito pa o hindi? 297 00:13:41,410 --> 00:13:43,451 David MALAN: Yep, mo Nakatanggap ang parehong mga ito nang sabay-sabay. 298 00:13:43,451 --> 00:13:45,740 Kaya ang ideya ay na sa iyo Maaari na ngayong i-flip ang pahina 299 00:13:45,740 --> 00:13:50,000 upang pangasiwaan ang pangalawang ng mga dalawang input. 300 00:13:50,000 --> 00:13:53,280 Kaya ito ay para lamang sa martilyo ng tahanan ng ituro na samantalang Alana pinaandar 301 00:13:53,280 --> 00:13:55,830 ito berdeng linya dito, at pagkatapos ay Javier ginawa ng isang ito para sa amin 302 00:13:55,830 --> 00:13:57,820 at bumalik sa akin ng isang bagay Makikita kami tatawag s, ngunit ito ay talagang 303 00:13:57,820 --> 00:13:59,520 na piraso lamang ng mga papel ng kanyang sarili. 304 00:13:59,520 --> 00:14:02,320 At ngayon Alana ay tapos pangatlong linya na ito. 305 00:14:02,320 --> 00:14:06,010 >> At kahit na lahat ng mga ito ay mukhang kaya hindi kapani-paniwalang cryptic marahil 306 00:14:06,010 --> 00:14:08,870 sa unang tingin, ito talaga ay kasing simple ng iyon. 307 00:14:08,870 --> 00:14:11,390 Pasadong input sa paligid, pagkuha ng output, alinman sa 308 00:14:11,390 --> 00:14:14,560 pisikal ipinasa pabalik ng isang bagay, o nakakakita ng side effect na katulad nito. 309 00:14:14,560 --> 00:14:17,170 Isang bagay na biswal nakasulat sa screen. 310 00:14:17,170 --> 00:14:19,990 Kaya sabihin sige at salamat Alana at Javier, 311 00:14:19,990 --> 00:14:25,012 sino ay down dito, para pagsali sa amin up dito. 312 00:14:25,012 --> 00:14:25,934 >> [APPLAUSE] 313 00:14:25,934 --> 00:14:29,360 314 00:14:29,360 --> 00:14:33,480 >> Kaya ngayon hayaan tumagal para sa ipinagkaloob lamang kung paano prangka lahat ng iyon ay maaaring maging. 315 00:14:33,480 --> 00:14:36,775 At ang magpatuloy upang aktwal na ipaalam gawin ang isang bagay sa aktwal na code. 316 00:14:36,775 --> 00:14:40,620 Kaya up sa screen dito ay isang screenshot ng tinatawag na CS50 appliance. 317 00:14:40,620 --> 00:14:43,980 At kung nagkaproblema ka sa hindi, bilang isang 02:00 sa hapon Miyerkules, 318 00:14:43,980 --> 00:14:46,602 ipaliwanag sa ilang mga kaibigan kung ano ang CS50 appliance ay, 319 00:14:46,602 --> 00:14:48,185 kung paano nais mong tukuyin ito sa isang pangungusap? 320 00:14:48,185 --> 00:14:52,160 321 00:14:52,160 --> 00:14:53,240 Anumang isa pangungusap? 322 00:14:53,240 --> 00:14:54,876 Oo? 323 00:14:54,876 --> 00:14:57,334 MAG-AARAL: Ito ay tulad ng isang programa na gumagawa ng computer ng lahat 324 00:14:57,334 --> 00:14:58,460 tumakbo gamit ang parehong system. 325 00:14:58,460 --> 00:14:59,210 David MALAN: Magandang! 326 00:14:59,210 --> 00:15:02,810 Ito ay isang program na nagbibigay-daan sa lahat computer upang tumakbo gamit ang parehong system. 327 00:15:02,810 --> 00:15:04,920 Ito ay isang uri ng iyong sariling kopya ng isang operating 328 00:15:04,920 --> 00:15:07,540 system na mangyayari sa tawagin Ubuntu Linux. 329 00:15:07,540 --> 00:15:11,070 At ito ay tumatakbo nang epektibo sa loob ng isang window sa iyong sariling Mac o PC, 330 00:15:11,070 --> 00:15:15,080 upang ang paraang ito karapatan sa labas ng gate sa linggo 1, lahat ng tao dito sa klase 331 00:15:15,080 --> 00:15:17,590 May access sa parehong mga tool, ang parehong configuration, 332 00:15:17,590 --> 00:15:21,250 at walang kurba sa pagkatuto tiyak sa isang Mac o isang PC sa partikular na. 333 00:15:21,250 --> 00:15:25,620 >> Ngayon nagbukas kami, sa loob ng CS50 appliance sa Lunes, ito ng programa dito. 334 00:15:25,620 --> 00:15:27,040 Nangyayari ito na tinatawag na gedit. 335 00:15:27,040 --> 00:15:29,050 Ngunit iyon lamang talaga isang graphical editor. 336 00:15:29,050 --> 00:15:33,170 Ito ay isang bagay tulad ng Notepad o Teksto I-edit sa Windows o Mac OS ayon sa pagkakabanggit. 337 00:15:33,170 --> 00:15:36,720 At ipinanukalang ko na mayroong talaga tatlong mahalagang bahagi sa screen na ito. 338 00:15:36,720 --> 00:15:39,560 Ang nangungunang gilid ay kung saan mo Gusto isulat ang iyong code. 339 00:15:39,560 --> 00:15:44,080 At iyon ang kung saan ginugol namin ang karamihan sa aming mga tatlong halimbawa sa lecture Lunes ni. 340 00:15:44,080 --> 00:15:47,650 Ibaba ang tinatawag natin kung ano ang, ito itim na window, Oo? 341 00:15:47,650 --> 00:15:48,640 >> MAG-AARAL: Compiler? 342 00:15:48,640 --> 00:15:51,500 >> David MALAN: Compiler namin na-access sa pamamagitan ng paraan ng na window. 343 00:15:51,500 --> 00:15:53,040 Ngunit sa mas pangkalahatang paraan. 344 00:15:53,040 --> 00:15:54,540 Oo, ito ay isa lamang ng isang terminal na window. 345 00:15:54,540 --> 00:15:57,780 Ito ay isang edad lumang termino na lamang Inilalarawan ng mahalagang isang nagbi-blink 346 00:15:57,780 --> 00:16:01,910 prompt, na taon na ang nakaraan na ginamit upang maging sa isa sa mga malalaking monitor CRT estilo. 347 00:16:01,910 --> 00:16:04,300 Ngunit sa kasalukuyan ito'y isang uri ng virtual sa software. 348 00:16:04,300 --> 00:16:06,710 At sa terminal ng bintana ipaalam sa amin kung nagta-type command. 349 00:16:06,710 --> 00:16:11,750 Ito uri ng pinasimple na bersyon ng interface o UI ng user. 350 00:16:11,750 --> 00:16:14,060 Ito ay hindi isang graphical interface ng gumagamit o GUI, 351 00:16:14,060 --> 00:16:17,250 ito ay isang interface na batay sa teksto o isang command line interface. 352 00:16:17,250 --> 00:16:20,770 >> At sa katunayan na kung saan sa huli Ako ay magagawang magsulat ng ilang code. 353 00:16:20,770 --> 00:16:24,200 Sa sandaling ako ay nakasulat ang ilang mga code bagaman, isipin na ginamit ko sa command na ito. 354 00:16:24,200 --> 00:16:26,210 At dahil ito ang pangalan uri ng nagmumungkahi, ito 355 00:16:26,210 --> 00:16:29,860 Binibigyang-daan sa akin upang gumawa ng programa na tinatawag na Hello. 356 00:16:29,860 --> 00:16:33,400 Ngunit kung ano ang talagang ito ginagawa? 357 00:16:33,400 --> 00:16:36,180 Well make ay pagkuha ng aking input, ang aking source code, 358 00:16:36,180 --> 00:16:39,380 at nagko-convert ito sa kung ano, sa huli? 359 00:16:39,380 --> 00:16:40,060 >> Bagay code. 360 00:16:40,060 --> 00:16:42,790 At sa bagay na code ay isang magarbong lamang paraan ng pagsabi ng mga zero at mga bago. 361 00:16:42,790 --> 00:16:46,420 At pagkatapos ay sa sandaling Nais kong upang magpatakbo ng na object code, 362 00:16:46,420 --> 00:16:50,940 sa sandaling Nais kong ipasa ang bilang ng pag-input mga mga zero at mga bago sa computer ang aking 363 00:16:50,940 --> 00:16:54,430 utak, ang tinatawag na CPU o gitnang processing unit, 364 00:16:54,430 --> 00:16:55,730 Nagkaroon kong patakbuhin ang program. 365 00:16:55,730 --> 00:16:59,042 Subalit hindi pa masyadong isang simpleng sa Lunes bilang lamang i-double click sa icon ng ilan. 366 00:16:59,042 --> 00:17:01,375 Ano halip ay kailangan kong gawin upang magpatakbo ng isang programa? 367 00:17:01,375 --> 00:17:04,130 368 00:17:04,130 --> 00:17:07,890 >> Ano ang pangalawang utos? 369 00:17:07,890 --> 00:17:09,619 Ako sa pandinig ng kaunti slashes? 370 00:17:09,619 --> 00:17:10,544 Oo, Oo? 371 00:17:10,544 --> 00:17:12,474 >> MAG-AARAL: Dot iwa at pangalan ng program. 372 00:17:12,474 --> 00:17:13,349 David MALAN: Eksaktong. 373 00:17:13,349 --> 00:17:15,030 Dot iwa at pangalan ng program. 374 00:17:15,030 --> 00:17:16,210 Kung ano ang ibig sabihin ngayon ay ito? 375 00:17:16,210 --> 00:17:19,470 Well tuldok ay isa lamang paraan arcane sinasabi ng kasalukuyang direktoryo. 376 00:17:19,470 --> 00:17:23,440 Anuman ang folder na ikaw ay nasa ay -reference bilang, ay kinakatawan bilang tuldok. 377 00:17:23,440 --> 00:17:26,680 Ang slash lamang kung ano ang iyong nakita sa Mac OS at Windows para sa taon, 378 00:17:26,680 --> 00:17:30,329 ito ay isang separator sa pagitan ng isang direktoryo o folder at ang natitirang bahagi ng ilang mga pangalan. 379 00:17:30,329 --> 00:17:32,620 Sa Windows ito ang mangyayari sa pumunta paurong, sa Linux at Mac 380 00:17:32,620 --> 00:17:34,210 OS ito ang mangyayari upang pumunta pasulong. 381 00:17:34,210 --> 00:17:37,560 Ngunit ito lamang ang separator, kaya lamang ng isang hindi kawili-wili syntactic detalye. 382 00:17:37,560 --> 00:17:40,440 >> Ang juicy bahagi ng kurso ay ang pangalan ng programa, Hello. 383 00:17:40,440 --> 00:17:42,650 At iyon ang ginagawa nilikha para sa amin. 384 00:17:42,650 --> 00:17:44,910 Ito outputted file na para sa amin. 385 00:17:44,910 --> 00:17:46,700 Ngunit kung paano ang nakuha namin sa puntong iyon? 386 00:17:46,700 --> 00:17:48,870 Ngayon magtanong ng mga Hayaan tanong, ano ang talagang 387 00:17:48,870 --> 00:17:52,470 pagpunta sa dito, hindi bababa sa pagsasaalang-alang sa ilan sa ang syntax na ito? 388 00:17:52,470 --> 00:17:57,000 >> Kaya sa isang pangungusap o kaya, paano ba ipaliwanag namin ang layo 389 00:17:57,000 --> 00:17:59,020 ito ang unang linya na naka-highlight ng berde? 390 00:17:59,020 --> 00:18:02,998 Ano ang unang linya ng paggawa, may pagsasaalang-alang sa aking mga programa? 391 00:18:02,998 --> 00:18:03,974 Oo? 392 00:18:03,974 --> 00:18:05,067 >> MAG-AARAL: [INAUDIBLE]. 393 00:18:05,067 --> 00:18:06,150 David MALAN: Sabihin itong muli? 394 00:18:06,150 --> 00:18:08,734 MAG-AARAL: Kabilang at pag-download nakalipas na mga pag-andar [INAUDIBLE]. 395 00:18:08,734 --> 00:18:09,483 David MALAN: Mahusay. 396 00:18:09,483 --> 00:18:11,900 Kabilang ang, pero hindi ko sasabihin pag-download, ngunit sabihin nating 397 00:18:11,900 --> 00:18:15,500 kabilang ang mga function na ang mga tao na nakasulat sa nakaraan. 398 00:18:15,500 --> 00:18:18,260 At mga function na ito ay ipinapatupad sa isang lugar sa aking computer. 399 00:18:18,260 --> 00:18:20,470 May isang taong nagsulat ng file taon na ang nakakaraan, at na file 400 00:18:20,470 --> 00:18:23,490 ay isang lugar sa loob ng CS50 appliance, o sa aking hard drive 401 00:18:23,490 --> 00:18:24,480 higit pa sa pangkalahatan. 402 00:18:24,480 --> 00:18:27,810 At kaya ang linyang ito ay lubos na nagsasabi, pumunta makita na file, karaniwang I / O tuldok 403 00:18:27,810 --> 00:18:31,740 h, at kopya at i-paste ang mga nilalaman nito dito mismo sa tuktok ng aking mga file 404 00:18:31,740 --> 00:18:33,860 nang sa gayon ay hindi ako kailangang mag- gawin iyon nang manu-mano ang aking sarili. 405 00:18:33,860 --> 00:18:40,970 >> At kabilang sa mga juiciest piraso sa loob ng na file na namin na-claim na noon ay kung ano ang function? 406 00:18:40,970 --> 00:18:45,740 Ano ang function ng sinabi namin ay ipinahayag o nabanggit sa standard I / O tuldok h 407 00:18:45,740 --> 00:18:47,120 pinaka-malamang? 408 00:18:47,120 --> 00:18:47,900 Printf, tama? 409 00:18:47,900 --> 00:18:50,797 Hindi namin isulat ang printf sa Lunes, ito umiral lamang. 410 00:18:50,797 --> 00:18:52,880 Karamihan tulad lamang ang dumating Alana hanggang sa stage at siya lang 411 00:18:52,880 --> 00:18:55,540 umiral at alam kung paano gumuhit isang bagay sa screen, 412 00:18:55,540 --> 00:18:58,660 kaya ang printf umiiral para sa maraming mga taon. 413 00:18:58,660 --> 00:19:00,240 At kaya ito ay kung paano namin ma-access ito. 414 00:19:00,240 --> 00:19:03,280 Ngayon kung ililipat namin sa dito, pangunahing ay kahalintulad na namin 415 00:19:03,280 --> 00:19:06,620 sinabi sa mga piraso palaisipan na tinatawag na kapag nag-click berde bandila 416 00:19:06,620 --> 00:19:07,620 sa mundo ng scratch. 417 00:19:07,620 --> 00:19:10,130 Ito ay isang uri lamang ng default na pangalan na tao 418 00:19:10,130 --> 00:19:13,340 Nagpasya ay kumakatawan sa default na entry point sa isang programa. 419 00:19:13,340 --> 00:19:16,540 Ang chunk ng programming code na makakakuha ng unang pinaandar. 420 00:19:16,540 --> 00:19:19,700 >> Samantala ang mga kulot braces ay uri ng tulad ng Kurbadong hugis 421 00:19:19,700 --> 00:19:21,410 ng maraming mga kulay-dilaw na mga piraso sa simula. 422 00:19:21,410 --> 00:19:24,860 Sila uri ng encapsulate isang buo bungkos ng mga tagubilin nang sama-sama. 423 00:19:24,860 --> 00:19:28,350 Kaya lamang uri ng binds magkasama ilang mga nauugnay na pag-andar. 424 00:19:28,350 --> 00:19:33,750 printf ng kurso ay isang function na Pini-print screen, tulad ng ginawa namin lamang. 425 00:19:33,750 --> 00:19:35,190 >> Paano ang tungkol sa mga panaklong? 426 00:19:35,190 --> 00:19:38,770 Paano define-- mo kahit na hindi mo hindi kailanman-program bago, ngunit batay lamang 427 00:19:38,770 --> 00:19:41,320 ngayon sa isang pagtaas sana ay Swersey, kung ano 428 00:19:41,320 --> 00:19:43,290 ay ang mga panaklong paggawa para sa amin dito? 429 00:19:43,290 --> 00:19:45,450 O kung ano ang nakapalibot na sila? 430 00:19:45,450 --> 00:19:46,360 Oo? 431 00:19:46,360 --> 00:19:49,360 >> MAG-AARAL: Ang mga ito ay nagsasabi kung ano ka ng pagpunta sa i-print na may printf. 432 00:19:49,360 --> 00:19:52,401 >> David MALAN: Oo, ang mga ito ay nagsasabi kung ano ka ng pagpunta sa i-print na may printf. 433 00:19:52,401 --> 00:19:56,260 O mas pangkalahatang paraan, ang mga ito ay nakapalibot sa input sa function. 434 00:19:56,260 --> 00:19:58,530 Kaya maaari mong halos tingin ng mga panaklong 435 00:19:58,530 --> 00:20:01,620 bilang tulad ng metal clip na ito sa clipboard. 436 00:20:01,620 --> 00:20:05,940 Ito ay kung ano ang may hawak na ito, kung ano ang pagpunta sa magamit upang makapagbigay ng mga argumento 437 00:20:05,940 --> 00:20:08,500 sa pag-andar, na sa kasong ito ay tinatawag na printf. 438 00:20:08,500 --> 00:20:12,390 >> Kaya sa pangkalahatan ang halos anumang oras tinatawag naming isang function, 439 00:20:12,390 --> 00:20:14,280 pupunta kami tumingin ng isang pares panaklong. 440 00:20:14,280 --> 00:20:17,000 Siguro may isang bagay sa loob nito, tulad ngayon, siguro ay wala sa loob nito. 441 00:20:17,000 --> 00:20:19,770 Ngunit iyon kung saan nais mong ilagay ang input o tinatawag na argumento 442 00:20:19,770 --> 00:20:20,680 sa isang function. 443 00:20:20,680 --> 00:20:22,470 >> Narito ang isa tulad argumento. 444 00:20:22,470 --> 00:20:24,467 Naka-highlight ko na ang lahat ng bagay sa pagitan ng mga quote, 445 00:20:24,467 --> 00:20:26,300 dahil ito ay lumiliko out sa wikang ito na tinatawag na 446 00:20:26,300 --> 00:20:29,950 C, kapag gusto mong kumakatawan sa isang string-- na isang salita o parirala 447 00:20:29,950 --> 00:20:33,470 o kahit na isang paragraph-- mayroon kang mag- itong palibutan ng mga double quote. 448 00:20:33,470 --> 00:20:35,420 Hindi solong panipi, i-double quotes. 449 00:20:35,420 --> 00:20:37,460 At iyon mismo kung ano ang nagawa mo na ko dito. 450 00:20:37,460 --> 00:20:39,900 >> Samantala mayroong isang funky simbolo patungo sa katapusan doon. 451 00:20:39,900 --> 00:20:41,600 Ang backslash n. 452 00:20:41,600 --> 00:20:43,460 Ano ang sinabi namin na kinakatawan? 453 00:20:43,460 --> 00:20:44,093 Oo? 454 00:20:44,093 --> 00:20:44,980 >> MAG-AARAL: Ang isang bagong linya. 455 00:20:44,980 --> 00:20:45,896 >> David MALAN: Bagong linya. 456 00:20:45,896 --> 00:20:47,910 Mag-right, hindi mo gusto Sa pangkalahatan ay pindutin ang Enter kapag 457 00:20:47,910 --> 00:20:50,430 Gusto mo sa programa upang dumura out ng isang bagong linya. 458 00:20:50,430 --> 00:20:54,210 Sa halip mong sabihin dito tahasan na may ganitong admittedly arcane piraso 459 00:20:54,210 --> 00:20:58,770 ng syntax, backslash n, na nais mo ang isang bagong linya upang pumunta doon. 460 00:20:58,770 --> 00:20:59,810 Panghuli ang semicolon. 461 00:20:59,810 --> 00:21:01,560 Kami ay hindi talaga makipag-usap Masyadong marami ang tungkol dito, 462 00:21:01,560 --> 00:21:04,893 at sa pamamagitan ng malayo ito ay ang bane ng ilang ng iyong pag-iral sa unang problema 463 00:21:04,893 --> 00:21:07,990 itakda, kapag nabigo ka lamang sa mapagtanto nakalimutan mo ang isang bagay tulad ng hangal 464 00:21:07,990 --> 00:21:08,614 bilang isang semicolon. 465 00:21:08,614 --> 00:21:11,600 At sa pangkalahatan ay paglalagay ito magkakaroon ayusin ang problemang iyon. 466 00:21:11,600 --> 00:21:13,511 Ngunit kung ano ang ginagawa nito para sa atin, nais mong sabihin? 467 00:21:13,511 --> 00:21:15,670 >> MAG-AARAL: [INAUDIBLE]. 468 00:21:15,670 --> 00:21:17,484 >> David MALAN: Paumanhin? 469 00:21:17,484 --> 00:21:18,532 >> MAG-AARAL: [INAUDIBLE]. 470 00:21:18,532 --> 00:21:19,990 David MALAN: Tinatapos ang isang pahayag. 471 00:21:19,990 --> 00:21:22,770 Ito ay uri ng tulad ng panahon sa ang dulo ng isang Ingles pangungusap, 472 00:21:22,770 --> 00:21:25,790 samantalang sa wikang ito C ito ay nagtatapos sa isang statement. 473 00:21:25,790 --> 00:21:29,250 Ang isang pagtuturo ng programming code na gusto mo lamang na sabihin, 474 00:21:29,250 --> 00:21:30,500 Tapos na akong mag may ito. 475 00:21:30,500 --> 00:21:32,240 Ngayon mapansin na ang isa lamang dito. 476 00:21:32,240 --> 00:21:34,614 Kaya hindi mo nais na makipag- isang ugali ng paglalagay ng semicolons 477 00:21:34,614 --> 00:21:36,190 pagkatapos ng bawat closed panaklong. 478 00:21:36,190 --> 00:21:38,610 Halimbawa mayroong none sa tabi ng walang bisa, at idedetalye namin 479 00:21:38,610 --> 00:21:40,430 bumalik sa hinaharap sa kung ano ang walang bisa paraan. 480 00:21:40,430 --> 00:21:44,080 Ngunit sa kasong ito ang iyong printf ay isang function, o isang pahayag na ginagamit, 481 00:21:44,080 --> 00:21:47,420 at kaya gusto naming magkaroon na Terminus sa pinakadulo ng ito. 482 00:21:47,420 --> 00:21:50,980 >> At sadyang ako pagpili sa C. At tapat ng maraming mga wika tulad ng C, C ++, 483 00:21:50,980 --> 00:21:55,000 Java, JavaScript, at anumang bilang ng mga iba pang mga wika ay mayroon ng maraming mga 484 00:21:55,000 --> 00:21:56,730 uri ng syntactic mga detalye. 485 00:21:56,730 --> 00:22:00,120 Iyon ay tiyak kung bago ka sa iyo programming maaari na tunay na trip up ka. 486 00:22:00,120 --> 00:22:02,307 At ikaw, markahan ang aking mga salita, ilan sa inyo ay 487 00:22:02,307 --> 00:22:04,140 may karanasan na ito sa oras ng opisina o late 488 00:22:04,140 --> 00:22:07,554 sa gabi nagtatrabaho sa ilang mga p-set, kung saan damn iyong programa lamang ay hindi mag-compile, 489 00:22:07,554 --> 00:22:09,470 hindi ito tatakbo, mayroon kang walang ideya kung ano ang mali, 490 00:22:09,470 --> 00:22:11,513 ito ay tila ganap lohikal na tama para sa iyo. 491 00:22:11,513 --> 00:22:13,596 At ito ay dahil nakalimutan mo isang bagay tulad ng pagpindot 492 00:22:13,596 --> 00:22:15,250 may semicolon sa dulo ng ilang mga linya. 493 00:22:15,250 --> 00:22:17,590 >> Ngunit narito ang mga uri ng mga bagay na ikaw ay pagpunta sa matuto agad upang makita. 494 00:22:17,590 --> 00:22:20,048 At sa katunayan ito ang mga bagay na at tf ni ang CA ay may 495 00:22:20,048 --> 00:22:23,210 Na-uri ng mga sinanay upang makita mas mabilis kaysa sa iyo. 496 00:22:23,210 --> 00:22:26,610 At kaya ito ay lamang na sabihin, tulad ng sa iyo dive sa problema magtakda ng 1 lalo na, 497 00:22:26,610 --> 00:22:28,217 huwag makakuha ng Nadidismaya sa pamamagitan ng mga bagay-bagay na ito. 498 00:22:28,217 --> 00:22:30,050 Sa sandaling na-uri-uriin ng acclimate sa mundo, ikaw 499 00:22:30,050 --> 00:22:35,130 uumpisang makakita ng bagay na hindi mo maaari makita sa unang sulyap na ito sa unang linggo. 500 00:22:35,130 --> 00:22:37,440 >> Kaya source code ay isang bagay tulad na. 501 00:22:37,440 --> 00:22:40,370 Gusto naming upang pumasa ito sa ng tinatawag na Compiler. 502 00:22:40,370 --> 00:22:42,850 At na Compiler bilang sinabi namin ay nagbibigay ng output 503 00:22:42,850 --> 00:22:45,660 na kilala bilang object code, ang tinatawag na mga zero at mga bago. 504 00:22:45,660 --> 00:22:47,747 Ngunit mula doon, ano ang na bigyan kami ng? 505 00:22:47,747 --> 00:22:49,080 Well ito ay nagbibigay sa amin ang mga pattern. 506 00:22:49,080 --> 00:22:52,020 At muli ang iyong computer, ang iyong Intel sa loob, 507 00:22:52,020 --> 00:22:54,350 Naiintindihan ng mga pattern ng mga zero at mga bago. 508 00:22:54,350 --> 00:22:57,300 At kung minsan ang pattern ay kumakatawan sa isang aktwal na numero ng decimal 509 00:22:57,300 --> 00:22:59,770 bilang nakita natin noong nakaraang linggo, paminsan-minsan ito ay kumakatawan sa isang titik 510 00:22:59,770 --> 00:23:02,730 tulad ng nakita natin noong nakaraang linggo, paminsan-minsan ito ay kumakatawan sa isang pagtuturo, 511 00:23:02,730 --> 00:23:05,460 tulad ng pag-print ng isang bagay sa screen. 512 00:23:05,460 --> 00:23:08,782 >> Kaya printf para sa instance-- ngunit sa halip, hayaan mo akong rewind. 513 00:23:08,782 --> 00:23:11,240 Na-pagkuha namin para sa ipinagkaloob na mga zero at alin ang 514 00:23:11,240 --> 00:23:14,200 nagawa sa pamamagitan ng command na ito make. 515 00:23:14,200 --> 00:23:16,050 Ngunit make ay hindi isang Compiler. 516 00:23:16,050 --> 00:23:19,370 Gawing ay hindi ang bagay sa gitna na gumagawa ng mga zero at mga bago. 517 00:23:19,370 --> 00:23:23,780 Sa halip ay gumawa lamang ng isang napaka Maginhawang pinangalanang programa kung saan ang layunin sa buhay 518 00:23:23,780 --> 00:23:27,267 ay mahalagang upang malaman kung kung paano upang ipunin ang iyong programa. 519 00:23:27,267 --> 00:23:29,350 At ginagamit namin ito sa mga unang linggo sapagkat ito lamang 520 00:23:29,350 --> 00:23:30,910 Sine-save ng sa amin ng maraming mga problema. 521 00:23:30,910 --> 00:23:34,080 >> Ngunit ano gawin ay talagang ginagawa noong compile mo kumusta, 522 00:23:34,080 --> 00:23:36,690 ay, tulad ng sinabi namin huling oras, ito ay naghahanap sa iyong hard drive 523 00:23:36,690 --> 00:23:40,620 o sa kasalukuyang folder, para sa file na tinatawag na ano, tila? 524 00:23:40,620 --> 00:23:41,815 Hello.c, tama? 525 00:23:41,815 --> 00:23:43,190 Iyon lamang ang uri ng isang convention. 526 00:23:43,190 --> 00:23:45,620 Ito ay di-makatwirang, ngunit iyon ang paraan ng bagay ay. 527 00:23:45,620 --> 00:23:48,620 Gawing, kung tinukoy mo lang ang pangalan ng isang programa na hindi pa umiiral, 528 00:23:48,620 --> 00:23:52,200 ito ay pagpunta sa hanapin ang source code sa isang file, sa pamamagitan ng default ay nangangahulugan hello.c. 529 00:23:52,200 --> 00:23:53,530 At kung nahahanap nito ito, mahusay. 530 00:23:53,530 --> 00:23:56,650 Ito ay pagpunta sa convert na mapagkukunan code sa object code para sa iyo. 531 00:23:56,650 --> 00:23:59,670 >> Subalit ang bawat oras na-hit ko Ipasok ang pagkatapos tumakbo ang gumawa kumusta, 532 00:23:59,670 --> 00:24:03,560 gawin mo pagpapabalik nakakakita ng huling beses sa isang medyo mahaba at cryptic pagkakasunud-sunod 533 00:24:03,560 --> 00:24:06,430 ng iba pang mga puting titik at mga character sa screen? 534 00:24:06,430 --> 00:24:11,220 Well na noon ay ang aktwal na utos, ang aktwal na Compiler, na tumatakbo. 535 00:24:11,220 --> 00:24:15,500 Kaya ang aktwal na Compiler gagamitin namin ang karamihan sa ang semestre ay isang bagay na tinatawag na clang. 536 00:24:15,500 --> 00:24:19,280 Ang ilan sa iyo ay maaaring magamit Visual Studio bago, o GCC, 537 00:24:19,280 --> 00:24:21,340 o anumang bilang ng iba pang mga compiler. 538 00:24:21,340 --> 00:24:22,620 Gagamitin namin clang. 539 00:24:22,620 --> 00:24:26,950 >> At nagbibigay-daan clang amin upang aktwal na-convert na source code sa bagay code. 540 00:24:26,950 --> 00:24:29,430 Ano ang aktwal na ito ibig sabihin sa pagsasanay? 541 00:24:29,430 --> 00:24:33,390 Well hayaan mo akong pumunta sa isa sa ang aking mga folder mula sa huling beses. 542 00:24:33,390 --> 00:24:35,760 Sa loob ng CS50 appliance. 543 00:24:35,760 --> 00:24:42,080 At ipaalam sa akin sige at lumikha ng mga ito parehong file, isama ang karaniwang I / O tuldok h. 544 00:24:42,080 --> 00:24:42,875 Int pangunahing walang bisa. 545 00:24:42,875 --> 00:24:46,000 At kami ay bumalik sa hinaharap bilang sa kung ano ang int paraan at kung ano ang walang bisa paraan. 546 00:24:46,000 --> 00:24:49,130 Ngunit ni gawin para sa ngayon hayaan kumusta mundo backslash n, 547 00:24:49,130 --> 00:24:50,500 i lamang ginawa namin sa board. 548 00:24:50,500 --> 00:24:53,930 >> Hayaan akong i-save ang file na tinatawag na hello.c. 549 00:24:53,930 --> 00:24:58,280 At ngayon kung gusto kong i-compile ito Could-- ko hayaan mo akong mag-zoom in-- run 550 00:24:58,280 --> 00:25:00,450 gumawa kumusta ang enter. 551 00:25:00,450 --> 00:25:02,645 At ito muli noon ay na ang pinaka cryptic linya. 552 00:25:02,645 --> 00:25:05,120 Ngunit ngayon ng hindi bababa sa isang salita marahil jumps out sa iyo. 553 00:25:05,120 --> 00:25:07,087 Clang ay na linya ng nakita natin dati. 554 00:25:07,087 --> 00:25:10,420 Ngayon ay mayroong maraming iba pang mga bagay-bagay tapat na makikita iwagayway namin ang aming mga kamay sa ngayon. 555 00:25:10,420 --> 00:25:14,020 Ngunit mayroong ilang mga subset, ng ilang mga character in dito 556 00:25:14,020 --> 00:25:14,907 na ng interes. 557 00:25:14,907 --> 00:25:16,490 Ngunit Pupunta ako sa magpatuloy at gawin ito. 558 00:25:16,490 --> 00:25:18,281 Pupunta ako sa unang pagtakbo kumusta, upang patunayan lamang 559 00:25:18,281 --> 00:25:20,320 na ito ay gumagana ang mga ito Lunes. 560 00:25:20,320 --> 00:25:22,330 Ngunit ngayon pupuntahan ko tanggalin ang program. 561 00:25:22,330 --> 00:25:25,870 At tulad namin ay may mga maikling pangalan ng huling oras, 562 00:25:25,870 --> 00:25:29,787 ang command para sa pag-aalis isang bagay ay Rm, alisin, ipasok. 563 00:25:29,787 --> 00:25:31,870 Ka pagpunta upang makakuha ng ilang medyo cryptic tanong. 564 00:25:31,870 --> 00:25:35,210 Hard upang maniwala na maaari mong gawin kahit mahirap ang tanong na ito upang maunawaan. 565 00:25:35,210 --> 00:25:38,100 Ngunit alisin regular na file kumusta lamang paraan gawin gusto mong tanggalin kumusta. 566 00:25:38,100 --> 00:25:42,650 >> At maaari kong magpatuloy at i-type ang y para sa oo, Ipasok, at ngayon ito ay nawala. 567 00:25:42,650 --> 00:25:45,130 Ano ang ibig sabihin nito ngayon, kung i-clear ko ang aking screen, 568 00:25:45,130 --> 00:25:47,301 ay na sa halip ng paggawa gumawa hello-- mo 569 00:25:47,301 --> 00:25:48,800 malaman kung ano ang, nakakakuha ako ng magandang sa ito. 570 00:25:48,800 --> 00:25:50,690 Pupunta ako sa magpatakbo ng mga Compiler aking sarili. 571 00:25:50,690 --> 00:25:53,330 Hindi ko kailangan ang ilang mga programa sa malaman kung ano ang aking file ay tinatawag na. 572 00:25:53,330 --> 00:25:55,370 Isinulat ni ko hello.c, ako malaman kung ano ang tawag dito, 573 00:25:55,370 --> 00:25:57,640 Ako ay malinaw na may kakayahang mag-type na iyon. 574 00:25:57,640 --> 00:26:02,620 Kaya pupuntahan ko sige at huwag clang hello.c ang Enter. 575 00:26:02,620 --> 00:26:03,264 >> Mukhang gumagana. 576 00:26:03,264 --> 00:26:05,930 At walang karagdagang output, dahil clang ay ang Compiler. 577 00:26:05,930 --> 00:26:08,590 Ito ay kung ano ang nagko-convert ang source code sa mga zero at mga bago. 578 00:26:08,590 --> 00:26:12,870 Kaya kung ngayon gagawin ko tuldok iwa kumusta Ipasok, Hm. 579 00:26:12,870 --> 00:26:14,630 Bagong mensahe ng error na ngayon. 580 00:26:14,630 --> 00:26:17,610 Kaya Bash lamang ang pangalan ng kumikislap prompt na ginagamit namin. 581 00:26:17,610 --> 00:26:20,360 Iyon ay isang gross oversimplification, ngunit sa ngayon na ang lahat ng iyon ay, 582 00:26:20,360 --> 00:26:21,401 ito ay ang mga kumikislap prompt. 583 00:26:21,401 --> 00:26:22,880 At iyon ang dahilan kung bakit ito ay yelling sa amin. 584 00:26:22,880 --> 00:26:25,690 >> Walang naturang file o direktoryo ay higit prangka ng kaunti. 585 00:26:25,690 --> 00:26:28,190 Ngunit tiyak na ginawa ko na object code. 586 00:26:28,190 --> 00:26:30,930 Ngunit ang catch ay, na kung nagta-type ako ang command na 587 00:26:30,930 --> 00:26:34,650 upang ilista ang mga nilalaman ng direktoryo, na kung saan ay kung ano? 588 00:26:34,650 --> 00:26:36,210 ls para sa listahan. 589 00:26:36,210 --> 00:26:39,332 Mayroong isang bungkos ng mga bagay-bagay sa dito, ang ilan sa kung saan ay dumating sa appliance, 590 00:26:39,332 --> 00:26:42,040 tulad ng aking mga folder Desktop, Downloads folder, Dropbox folder, at lahat ng 591 00:26:42,040 --> 00:26:42,850 na mga bagay-bagay. 592 00:26:42,850 --> 00:26:45,410 Ngunit kung ano ang kawili-wiling ay hello.c, na 593 00:26:45,410 --> 00:26:47,286 Lumikha ako ng ilang sandali ang nakalipas sa gedit. 594 00:26:47,286 --> 00:26:49,160 At ano ang weirdest naghahanap ng pangalan in dito, 595 00:26:49,160 --> 00:26:53,110 marahil na ginawa namin hindi tingnan ang huling oras sa lahat? 596 00:26:53,110 --> 00:26:54,710 >> a.out, tama? 597 00:26:54,710 --> 00:26:56,920 Kaya pabalik sa araw, ay nagpasya lamang na kapag 598 00:26:56,920 --> 00:26:58,760 compile ka ng isang programa sa unang pagkakataon, 599 00:26:58,760 --> 00:27:02,360 at hindi mo tukuyin ang pangalan ng ng isang file, tawagan ni ito ng ipaalam. 600 00:27:02,360 --> 00:27:05,800 At a.out ay nangangahulugan lamang na ito ay ang output ng Compiler. 601 00:27:05,800 --> 00:27:07,790 Kaya ito ay isang horrible pangalan para sa isang programa. 602 00:27:07,790 --> 00:27:12,820 Ngunit sa pamamagitan ng na logic, tuldok iwa para sa kasalukuyang direktoryo, iwa a.out, 603 00:27:12,820 --> 00:27:16,102 dapat ibig sabihin mayroong sa katunayan aking kumusta mundo programa. 604 00:27:16,102 --> 00:27:17,560 Ngayon ng kaunti magpainit ehersisyo, masyadong. 605 00:27:17,560 --> 00:27:20,420 Kung gusto kong palitan ang pangalan na ito file, lumiliko out na sa iyo 606 00:27:20,420 --> 00:27:23,000 ilipat ang isang file mula sa isang pangalan sa isa pa. 607 00:27:23,000 --> 00:27:28,750 Kaya mv a.out, at pagkatapos ay ako maaari itong tumawag kumusta ang Enter. 608 00:27:28,750 --> 00:27:30,940 Kaya ito ay isang command sa Linux. 609 00:27:30,940 --> 00:27:34,370 DOS nagkaroon ito taon na ang nakakaraan, May isang terminal na window ng Windows 610 00:27:34,370 --> 00:27:36,460 ng isang uri na mukhang tulad nito, Linux at Mac 611 00:27:36,460 --> 00:27:38,140 mga computer ay may kumikislap na ito prompt. 612 00:27:38,140 --> 00:27:41,490 Kahit na ang karamihan sa amin marahil bihira, kung kailanman, gamitin ito. 613 00:27:41,490 --> 00:27:44,590 >> Ngunit kung ano ang nagawa ko ay magpatakbo ng isang programa, na ang pangalan ay mv, 614 00:27:44,590 --> 00:27:47,900 at nagbigay ako ng ito sa dalawang argumento, kaya na magsalita. 615 00:27:47,900 --> 00:27:48,630 Dalawang input. 616 00:27:48,630 --> 00:27:50,260 a.out ay ang orihinal na pangalan. 617 00:27:50,260 --> 00:27:51,630 Kamusta ay ang bagong pangalan. 618 00:27:51,630 --> 00:27:55,670 Kaya kung ngayon gagawin ko tuldok slash kumusta, Ipasok, na umiiral na. 619 00:27:55,670 --> 00:28:00,770 At kung gagawin ko tuldok slash a.out, ano ang gagawin mong asahan ang dapat kong makita? 620 00:28:00,770 --> 00:28:02,250 >> Bash, walang tulad file o direktoryo. 621 00:28:02,250 --> 00:28:03,350 Dahil lamang Pinalitan ang pangalan ko ito. 622 00:28:03,350 --> 00:28:04,975 Kaya ito ay tumatagal ng kaunting nagsisimula pa sanay. 623 00:28:04,975 --> 00:28:06,977 Ngunit itakda ang problema 1 pagtutukoy ay tunay na 624 00:28:06,977 --> 00:28:08,810 hahawakan ng iyong mga kamay sa pamamagitan ng ilan sa mga ito minutae. 625 00:28:08,810 --> 00:28:11,050 Dahil ito ay isang kumpletong intelektwal na distraction 626 00:28:11,050 --> 00:28:12,966 mula sa mas kawili-wiling ideya sa kamay, na 627 00:28:12,966 --> 00:28:15,310 ay talagang paglikha isang bagay out ng code. 628 00:28:15,310 --> 00:28:18,830 Ngunit gawin ng isang pagbabago ipaalam ngayon sa programang ito. 629 00:28:18,830 --> 00:28:23,150 >> Isipin na ang huling beses na ginawa ko ng damit tulad nito, printf sabihin ang iyong pangalan. 630 00:28:23,150 --> 00:28:25,790 At sa katunayan ginawa ito namin lamang sa malaking screen doon. 631 00:28:25,790 --> 00:28:30,640 At pagkatapos ay ginawa ko string s ay makakakuha ng GetString bukas paren, malapit paren. 632 00:28:30,640 --> 00:28:33,430 At paren lamang shorthand pagtatanda para sa panaklong. 633 00:28:33,430 --> 00:28:36,460 Kaya ang GetString gumawa ng anumang mga argumento? 634 00:28:36,460 --> 00:28:38,440 Walang input hindi, ngunit ito Kailangan ng mga panaklong, 635 00:28:38,440 --> 00:28:41,830 dahil iyon ang demarcates ang pagtawag ng isang function. 636 00:28:41,830 --> 00:28:46,440 >> Kaya pupuntahan ko at susubukan sa tumakbo ang Compiler sa programang ito ngayon. 637 00:28:46,440 --> 00:28:50,774 Clang hello.c, dahil ako ay hindi baguhin ang pangalan nito sa ngayon. 638 00:28:50,774 --> 00:28:51,940 At Nakakuha ako ng isang bungkos ng mga error. 639 00:28:51,940 --> 00:28:53,570 Ni-zoom out dito Hayaan. 640 00:28:53,570 --> 00:28:55,420 Kung mag-scroll pataas ko muli, tulad ng sinabi ko huling beses, 641 00:28:55,420 --> 00:28:58,420 sa una, parehong error na ang nakuha ko huling beses. 642 00:28:58,420 --> 00:29:04,210 Sa 6 na linya ng hello.c ako nagkaroon ng undeclared identifier string, 643 00:29:04,210 --> 00:29:05,590 ang ibig kong sabihin standard in? 644 00:29:05,590 --> 00:29:06,750 Ako ang hindi. 645 00:29:06,750 --> 00:29:10,050 Dahil kung ano ang pagkakamali ay may ginawa ko ito sa programa, kung isipin mo mula sa nakaraan? 646 00:29:10,050 --> 00:29:13,219 647 00:29:13,219 --> 00:29:15,010 Oo, kailangan namin ang tinatawag na mga gulong pagsasanay 648 00:29:15,010 --> 00:29:16,510 na lang namin makikita gamitin para sa ilang linggo. 649 00:29:16,510 --> 00:29:19,480 Ngunit kailangan ko upang tukuyin iyon din, sa isang lugar sa loob ng appliance, 650 00:29:19,480 --> 00:29:22,720 ay isang file na aming sinulat ni lamang ng ilang taon na ang nakakaraan. 651 00:29:22,720 --> 00:29:26,500 Sa loob ng na mga function tulad ng tila GetString. 652 00:29:26,500 --> 00:29:35,160 Kaya ngayon kung pumunta ako pabalik down na dito, mag-zoom in, at muling patakbuhin clang hello.c. 653 00:29:35,160 --> 00:29:36,500 Damn, isa pang error. 654 00:29:36,500 --> 00:29:38,590 Ngunit hindi pa namin nakita ang isang ito bago. 655 00:29:38,590 --> 00:29:41,900 >> Isa na ito ay isang kaunti pa Esoteric upang malaman kung. 656 00:29:41,900 --> 00:29:46,910 Ngunit ito ay sadyang sa screen, dahil gusto naming sabihin sa kuwentong ito. 657 00:29:46,910 --> 00:29:51,280 Kapag compile mo hello.c, tulad lamang ng larawan mula sa bago iminungkahing, 658 00:29:51,280 --> 00:29:54,650 ka lamang nagko-convert na source code sa mga zero at mga bago. 659 00:29:54,650 --> 00:30:00,340 Ngayon kawani CS50 ng ilang taon na ang nakalipas ay nagsulat CS50.h, at isang katumbas na file, 660 00:30:00,340 --> 00:30:01,640 CS50.c. 661 00:30:01,640 --> 00:30:04,490 At kami, ilang taon na ang nakaraan, pinagsama-sama ang mga file 662 00:30:04,490 --> 00:30:07,290 sa isang file na mangyayari na tinatawag na CS50.o. 663 00:30:07,290 --> 00:30:09,180 >> O maaari itong palitan ang pangalan ng isang ilang iba't ibang mga bagay. 664 00:30:09,180 --> 00:30:11,054 Ngunit iyon lamang ang isang simpleng paraan ng pag-iisip tungkol dito. 665 00:30:11,054 --> 00:30:14,960 Kaya pinagsama-sama namin CS50 ni library sa mga zero at mga bago. 666 00:30:14,960 --> 00:30:20,340 Ngunit wala saan ay tinukoy ko na gusto kong pagsamahin ang aking zeroes 667 00:30:20,340 --> 00:30:24,030 at mga bago para sa aking kumusta mundo programa na may mga zero at mga 668 00:30:24,030 --> 00:30:29,760 nilikha ng ilang taon na ang CS50 kawani ang nakalipas sa isang kumpletong programa. 669 00:30:29,760 --> 00:30:34,100 Ang lahat ng iyong tinukoy ko sa pamamagitan ng pagsulat clang hello.c ay makatipon ng hello.c. 670 00:30:34,100 --> 00:30:38,380 >> Hindi ko na sinabi clang sa link sa mga zero at mga 671 00:30:38,380 --> 00:30:41,650 na CS50 kawani nilikha para sa iyo ang ilang mga oras ang nakalipas. 672 00:30:41,650 --> 00:30:48,280 Kaya ito ay isang madaling pag-aayos, Dash l para sa link, CS50. 673 00:30:48,280 --> 00:30:52,600 At kami muli makita ito bago mahaba muli at muli. 674 00:30:52,600 --> 00:30:54,420 Ngunit mapansin ngayon walang mga reklamo. 675 00:30:54,420 --> 00:30:59,770 Kaya ngayon kung nagpatakbo ako ng tuldok slash kumusta na, ngayon, ito ay gumagana. 676 00:30:59,770 --> 00:31:03,840 Kahit na ang isang bit mapanligaw dahil recreated ko lang kung ano ang file? 677 00:31:03,840 --> 00:31:05,880 a.out. 678 00:31:05,880 --> 00:31:07,930 >> Kaya ipaalam sa akin rewind para sa sandali lamang. 679 00:31:07,930 --> 00:31:10,900 Ang programa ng pinagsama-sama namin lamang may tatlong linya ng code. 680 00:31:10,900 --> 00:31:14,710 Kapag nagpatakbo ako kumusta mundo, kumusta ng ilang sandali nakaraan, hindi ko nakita sabihin ang iyong pangalan. 681 00:31:14,710 --> 00:31:17,080 At iyon ay dahil nagpatakbo ako ang lumang bersyon ng program. 682 00:31:17,080 --> 00:31:22,700 Ngunit kung sa katunayan ko patakbuhin ang tuldok slash a.out Ipasok, sabihin ang iyong pangalan, Rob, kumusta, 683 00:31:22,700 --> 00:31:23,370 mundo. 684 00:31:23,370 --> 00:31:23,870 Hm. 685 00:31:23,870 --> 00:31:26,110 Iyon ang uri ng isang bug. 686 00:31:26,110 --> 00:31:28,560 Malamang sinadya upang sabihin Rob, tama? 687 00:31:28,560 --> 00:31:30,997 Kaya kung ano ang pag-ayos dito sa code. 688 00:31:30,997 --> 00:31:31,872 MAG-AARAL: [INAUDIBLE]. 689 00:31:31,872 --> 00:31:38,415 690 00:31:38,415 --> 00:31:39,290 David MALAN: Eksaktong. 691 00:31:39,290 --> 00:31:43,160 Kaya kailangan ko lang gawin na huling tweak kaya na ako ang pagpasa sa isang placeholder, 692 00:31:43,160 --> 00:31:45,690 tulad ng isang fill sa blangko, tulad ng ginawa namin ng ilang sandali ang nakalipas. 693 00:31:45,690 --> 00:31:47,870 Ngunit porsiyento s ay ngayon na punan ang mga blangko. 694 00:31:47,870 --> 00:31:52,100 Kaya ni magbunyag ng isang huling Panghuli ipaalam detalye sa gayon ay walang magic. 695 00:31:52,100 --> 00:31:54,090 Pupunta ako sa sige at mapupuksa ang hellow. 696 00:31:54,090 --> 00:31:56,070 Pupunta ako sa sige at mapupuksa ang a.out. 697 00:31:56,070 --> 00:31:58,410 Kaya ngayon wala akong mga programa, na lamang ang aking source code. 698 00:31:58,410 --> 00:32:01,100 At Pupunta ako sa magpatakbo ng isang bahagyang na utos, clang 699 00:32:01,100 --> 00:32:05,650 Dash o kumusta hello.c gitling LCS50. 700 00:32:05,650 --> 00:32:08,700 >> Ngayon ito ay nagsisimula sa isang uri ng pumunta sa isa tainga at out ang iba pang mga marahil. 701 00:32:08,700 --> 00:32:10,366 Ngunit tease lamang ang pagitan sa kung ano ito ay ginagawa. 702 00:32:10,366 --> 00:32:14,910 Clang ay ang Compiler, gitling LCS50 sadyang sa dulo napaka 703 00:32:14,910 --> 00:32:18,330 ginagawa kung ano sa isang pangungusap? 704 00:32:18,330 --> 00:32:19,607 Link sa CS50 library. 705 00:32:19,607 --> 00:32:21,440 Grabs ang mga zero at mga bago na ginawa ng mga kawani 706 00:32:21,440 --> 00:32:23,310 at crams ang mga ito sa aking sariling programa. 707 00:32:23,310 --> 00:32:27,040 Kaya ang huling tanong sa kamay ay, ano ang gitling o kumusta marahil 708 00:32:27,040 --> 00:32:30,530 paggawa, kahit na hindi mo kailanman Nakita ang syntax na ito bago? 709 00:32:30,530 --> 00:32:34,920 >> Outputting isang programa na Hindi pinangalanan ang default a.out. 710 00:32:34,920 --> 00:32:37,330 Sa halip ito ay pinangalanan kumusta. 711 00:32:37,330 --> 00:32:39,460 Kaya ngayon ay walang a.out. 712 00:32:39,460 --> 00:32:42,660 Walang naturang file o direktoryo, dahil tahasan kong sinabi 713 00:32:42,660 --> 00:32:46,720 tumawag sa programang ito kumusta, upang Maaari ko ngayon type ng isang pangalan tulad na 714 00:32:46,720 --> 00:32:47,790 at mayroon itong kumilos. 715 00:32:47,790 --> 00:32:50,180 >> Ngayon tapat, na batang lalaki ay na hindi kawili-wili upang magkaroon ng 716 00:32:50,180 --> 00:32:52,170 tandaan ang lahat ng na maliit minutia, tama? 717 00:32:52,170 --> 00:32:54,180 Kaya sabihin sige at makakuha ng rid ng kumusta muli. 718 00:32:54,180 --> 00:32:57,880 At ngayon ay bumalik sa isang mundo sa ipaalam saan ito suffices upang sabihin gumawa ng kumusta. 719 00:32:57,880 --> 00:33:00,410 Ngunit iyon ang magic na gumawa ay ang magawa para sa iyo, 720 00:33:00,410 --> 00:33:02,320 iyon ang tedium na ito ang ginagawa para sa iyo. 721 00:33:02,320 --> 00:33:04,630 At bilang aming mga programa at mga problema makakuha ng mas kumplikado, 722 00:33:04,630 --> 00:33:06,142 gumawa ay tunay na maging kaibigan mo. 723 00:33:06,142 --> 00:33:07,850 Dahil hindi masyadong mahaba mula ngayon kami ay pagpunta 724 00:33:07,850 --> 00:33:11,150 na magkaroon ng mga programa na nakasulat Hindi na may isang file, ngunit maraming mga file, 725 00:33:11,150 --> 00:33:16,310 at gawin ay i-automate ang proseso ng kino-compile ang lahat ng iyon para sa amin sama-sama. 726 00:33:16,310 --> 00:33:20,620 >> Kaya ngayong mag-print. 727 00:33:20,620 --> 00:33:24,960 printf ay nasa loob ng file na ito, karaniwang I / O tuldok h, na nasaksihan namin dati, 728 00:33:24,960 --> 00:33:26,980 ngunit mayroon pa sa printf kaysa iyon. 729 00:33:26,980 --> 00:33:30,482 Mayroong backslash n, ngunit mayroon ding isang bungkos ng iba pang mga pagkakasunud-sunod ng escape. 730 00:33:30,482 --> 00:33:32,940 At escape sequence ay isa lamang magarbong paraan ng pagsabi ng isang bagay 731 00:33:32,940 --> 00:33:35,990 na nagsisimula sa isang backslash, hindi isang pasulong na slash, ang isang backslash, 732 00:33:35,990 --> 00:33:37,920 at ang ilang mga espesyal na bagay. 733 00:33:37,920 --> 00:33:43,770 At hindi namin dwell sa karamihan sa mga ito, ngunit kung bakit ay may backslash double quote, 734 00:33:43,770 --> 00:33:44,830 palagay mo? 735 00:33:44,830 --> 00:33:48,010 Bakit mayroong ito kakaiba pagkakasunud-sunod ng character, backslash double quote, 736 00:33:48,010 --> 00:33:50,505 kung bakit maaaring maging kapaki-pakinabang na? 737 00:33:50,505 --> 00:33:51,380 MAG-AARAL: [INAUDIBLE]. 738 00:33:51,380 --> 00:33:56,594 739 00:33:56,594 --> 00:33:57,760 David MALAN: Eksaktong, tama? 740 00:33:57,760 --> 00:34:01,830 Isipin pabalik sa aming mga programa kumusta mundo na nakakita kami masyadong nang ilang beses ngayon, 741 00:34:01,830 --> 00:34:05,880 tuwing nakakita kami na kumusta mundo programa ay nagkaroon kami ng mga double quote sa loob 742 00:34:05,880 --> 00:34:08,210 na kung saan ay kumusta kuwit mundo backslash n. 743 00:34:08,210 --> 00:34:10,070 Ngunit sa tingin sa iyong sarili, ano kung ikaw talaga 744 00:34:10,070 --> 00:34:12,520 Nais upang mag-print ng mga quotation mark? 745 00:34:12,520 --> 00:34:16,100 Ang iyong unang instinct maaaring, gawin ko hindi malaman kung bakit ako maaaring naising mai-do-- dito, 746 00:34:16,100 --> 00:34:18,780 maaari naming maging isang maliit na tinig agresibo, kumusta kaibigan. 747 00:34:18,780 --> 00:34:21,350 Maaaring gusto naming gawin ang isang bagay tulad na. 748 00:34:21,350 --> 00:34:25,230 >> Ngunit may problema ngayon sa kung bakit ito? 749 00:34:25,230 --> 00:34:28,730 Pagbalewala sa mga kulot quote bukod na pangunahing tono awtomatikong ginawa para sa amin. 750 00:34:28,730 --> 00:34:29,730 Bakit ito ay may problemang? 751 00:34:29,730 --> 00:34:36,719 752 00:34:36,719 --> 00:34:37,270 >> Mismong. 753 00:34:37,270 --> 00:34:39,022 Dahil mayroon kaming tulad ng 4 na mga panipi. 754 00:34:39,022 --> 00:34:41,230 Well ang unang isa marahil napupunta sa ikalawang isa, 755 00:34:41,230 --> 00:34:43,271 at marahil ang isang ika-apat na napupunta sa third isa, 756 00:34:43,271 --> 00:34:46,170 o, ibig kong sabihin Hindi ako kahit sigurado, at hindi rin sa computer ng pagpunta sa maging. 757 00:34:46,170 --> 00:34:48,352 Muli mga computer, compiler muli, ay medyo pipi. 758 00:34:48,352 --> 00:34:50,060 Makikita lang nila kung ano ang gagawin sabihin mo ang mga ito upang gawin. 759 00:34:50,060 --> 00:34:54,270 At kung hindi ka pa unambiguous sila marahil ay pumunta upang ihagis ng error. 760 00:34:54,270 --> 00:34:57,700 >> Kung hindi ka unambiguous bilang sa kung paano i- gumawa ng peanut butter at halaya sanwits 761 00:34:57,700 --> 00:34:59,510 maaaring dumating kakaibang bagay. 762 00:34:59,510 --> 00:35:00,580 Ito ay ang parehong mga ideya. 763 00:35:00,580 --> 00:35:03,100 Ngayon suffice ito upang sabihin na mayroong ilang iba pang escape sequence, 764 00:35:03,100 --> 00:35:04,820 ngunit kami ay pumupunta sa mga bago mahaba. 765 00:35:04,820 --> 00:35:07,410 Mahalaga ang mga pagtakas kumakatawan sa mga pagkakasunud-sunod ng isang bagay 766 00:35:07,410 --> 00:35:10,480 na maaaring hindi mo magagawang Masyadong madali sa keyboard, 767 00:35:10,480 --> 00:35:12,010 nang hindi nakakalito ang computer. 768 00:35:12,010 --> 00:35:15,733 >> Ngayon samantala mayroon kami mga placeholder sa printf. 769 00:35:15,733 --> 00:35:19,630 Porsyento d, kung saan ay maaari ding nakasulat na sa halos lahat ng mga kaso bilang porsyento i, 770 00:35:19,630 --> 00:35:21,610 ay isang placeholder para sa kung anong uri ng data? 771 00:35:21,610 --> 00:35:23,920 Anong uri ng halaga? 772 00:35:23,920 --> 00:35:24,920 Isang decimal na numero. 773 00:35:24,920 --> 00:35:27,234 Kaya aktwal na magsisimula kami gamit porsiyento i dahil ito ay 774 00:35:27,234 --> 00:35:28,650 medyo simple, tulad ng isang integer. 775 00:35:28,650 --> 00:35:29,550 Porsyento i. 776 00:35:29,550 --> 00:35:31,320 Isang integer na ang mangyayari sa maging decimal. 777 00:35:31,320 --> 00:35:35,690 >> Porsyento s namin na sinabi noon ay isang placeholder para sa isang string. 778 00:35:35,690 --> 00:35:38,630 Aling ay isang salita lamang, isang parirala, isang talata, isang sanaysay, kahit anong. 779 00:35:38,630 --> 00:35:40,830 Ito ay isang pagkakasunod-sunod ng character ng ilang haba. 780 00:35:40,830 --> 00:35:42,820 At kami makita bago mahaba ang ilan sa mga iba. 781 00:35:42,820 --> 00:35:45,950 Ngunit porsiyento c ay para sa isang solong character. 782 00:35:45,950 --> 00:35:48,500 Porsyento f ay para sa isang lumulutang na numero punto, 783 00:35:48,500 --> 00:35:50,860 tulad ng isang tunay na numero na may isang decimal point sa loob nito, na 784 00:35:50,860 --> 00:35:52,550 ay siyempre hindi isang integer. 785 00:35:52,550 --> 00:35:54,670 At mayroong isang buo bungkos ng iba pati na rin. 786 00:35:54,670 --> 00:35:56,990 >> Samantala sa C, at ng maraming mga wika, 787 00:35:56,990 --> 00:35:58,650 mayroon kaming iba't ibang mga uri ng data. 788 00:35:58,650 --> 00:36:00,650 Iba't ibang uri ng glass bowls kung gagawin mo. 789 00:36:00,650 --> 00:36:03,830 Mangkok ang ginamit ko huling beses ay para sa ping pong ball, 790 00:36:03,830 --> 00:36:06,990 ngunit maaari kaming mag-imbak din ng iba't ibang mga halaga tulad ng char at mga string 791 00:36:06,990 --> 00:36:10,820 at integer sa isang lalagyan, tulad ng isang variable, at C ay mga. 792 00:36:10,820 --> 00:36:14,020 Char ay ang uri ng data, ang uri ng variable, 793 00:36:14,020 --> 00:36:15,700 kung saan maaari kang mag-imbak ng character. 794 00:36:15,700 --> 00:36:19,560 Float ay isang uri ng variable sa kung saan maaari kang mag-imbak ng real number. 795 00:36:19,560 --> 00:36:21,220 >> Int ay siyempre para sa isang int. 796 00:36:21,220 --> 00:36:23,760 At sa halip ridiculously pinangalanan ng mahabang mahaba 797 00:36:23,760 --> 00:36:26,830 ay kung saan maaari kang mag-imbak ng mahalagang isang talagang mahaba ang numero, na may mas 798 00:36:26,830 --> 00:36:29,930 higit pa digit pagkatapos ng tipikal na int maaaring store. 799 00:36:29,930 --> 00:36:32,420 Ngunit kami ay bumalik sa na bago ang haba. 800 00:36:32,420 --> 00:36:35,520 >> Sa CS50 tuldok h samantala ang iba pang mga header ng file 801 00:36:35,520 --> 00:36:37,630 na nakakita kami ng ilang beses sa paggamit, mayroong 802 00:36:37,630 --> 00:36:41,350 dalawang iba pang mga uri ng data na hindi umiiral sa C karaniwang. 803 00:36:41,350 --> 00:36:45,000 Ang isa ay string, at kami makita sa ng ilang linggo kung ano talaga ang string 804 00:36:45,000 --> 00:36:46,610 ay sa ilalim ng hood. 805 00:36:46,610 --> 00:36:47,950 At ang isa ay bool. 806 00:36:47,950 --> 00:36:51,650 At isang bool ay isang variable na ay makakakuha lamang ng sa ilang mga halaga. 807 00:36:51,650 --> 00:36:54,370 At batay lamang sa huling linggo ng paliwanag ng simula, 808 00:36:54,370 --> 00:36:56,680 at higit pa kamakailan C, kung ano ang nais mong hulaan 809 00:36:56,680 --> 00:37:01,770 ay ang dalawang mga posibleng halaga para sa ang ilang mga lalagyan na ng uri bool? 810 00:37:01,770 --> 00:37:02,860 >> Oo at hindi. 811 00:37:02,860 --> 00:37:03,870 Isa at zero. 812 00:37:03,870 --> 00:37:04,502 Totoo o hindi. 813 00:37:04,502 --> 00:37:07,460 At sa katunayan ito ang huling na may gawi maging maginoo sa isang programming 814 00:37:07,460 --> 00:37:10,030 wika, na sinasabi ng isang bagay tulad ng totoo o hindi. 815 00:37:10,030 --> 00:37:13,160 >> Samantala ang CS50 library ay may isang bungkos ng pag-andar 816 00:37:13,160 --> 00:37:16,640 na ang mga tauhan ay sumulat para sa iyo, bukod sa pagkuha lamang ng isang string. 817 00:37:16,640 --> 00:37:20,910 Isinulat ni namin nang maaga mga pag-andar na Maaari makakuha ng isang integer mula sa user, 818 00:37:20,910 --> 00:37:22,990 makakuha ng isang solong character, makakuha ng float, na 819 00:37:22,990 --> 00:37:25,160 ay isang numero lamang gamit ang decimal point. 820 00:37:25,160 --> 00:37:28,290 Kumuha ng isang mahaba ang haba, isang talagang malaking halaga mula sa user. 821 00:37:28,290 --> 00:37:30,930 Kaya nakita lamang namin ito sa pagkilos sa anyo ng GetString. 822 00:37:30,930 --> 00:37:33,230 Ngunit sa pamamagitan ng mga pag-andar Malapit nang magawang sumulat 823 00:37:33,230 --> 00:37:36,070 mga programa na makakuha ng input mula sa user. 824 00:37:36,070 --> 00:37:39,230 >> Samantala isaalang-alang na ito programa, at isaalang-alang 825 00:37:39,230 --> 00:37:42,600 kung paano maaaring namin ngayon simulan upang magdagdag ng dito sa bagong constructs. 826 00:37:42,600 --> 00:37:44,530 Ang isang mabilis na whirlwind tour at pagkatapos ay titingnan namin 827 00:37:44,530 --> 00:37:47,340 sa ilang pagsusulat ng ilang mga programa nang manu-mano ang ating mga sarili. 828 00:37:47,340 --> 00:37:49,700 Henceforth kung gusto naming ipatupad ang isang kondisyon, 829 00:37:49,700 --> 00:37:52,790 hindi ito ng pagpunta sa hitsura ng isang magaling kaunti medyo puzzle piraso. 830 00:37:52,790 --> 00:37:54,460 Ito ay pagpunta sa hitsura higit pa ng kaunti arcane. 831 00:37:54,460 --> 00:37:57,620 Ngunit ito ay ang canonical istraktura ng isang kondisyon sa C. 832 00:37:57,620 --> 00:38:00,380 >> Ang salitang kung, dalawang panaklong, sa loob ng na 833 00:38:00,380 --> 00:38:02,590 ay magiging ilang mga uri ng Boolean expression. 834 00:38:02,590 --> 00:38:04,999 Ngayon ang slash slash sa gitna, ito ay 835 00:38:04,999 --> 00:38:07,290 sa sandaling ito uri ng tulad ng placeholder code pseudocode. 836 00:38:07,290 --> 00:38:11,576 Ngunit higit pang maayos, ang anumang mga linya ng code sa C na nagsisimula sa slash slash 837 00:38:11,576 --> 00:38:12,850 ay isang komento. 838 00:38:12,850 --> 00:38:15,920 >> Ito ay tulad ng mga sticky tala na maaari mong ilagay sa isang sanaysay, nakalimbag sa papel. 839 00:38:15,920 --> 00:38:17,290 Ito ay isang paalala para sa iyong sarili. 840 00:38:17,290 --> 00:38:20,100 Wala itong functional epekto sa programa. 841 00:38:20,100 --> 00:38:23,580 Ito ay isang uri ng paalala, ito ay ang iyong sariling dokumentasyon bilang sa kung ano ang nangyayari sa. 842 00:38:23,580 --> 00:38:25,720 Kaya gawin ito sa sandaling ito ay isang uri ng isang placeholder 843 00:38:25,720 --> 00:38:27,560 para sa kahit anong loob ng mga kulot braces 844 00:38:27,560 --> 00:38:29,810 Sa kalaunan ay pagpunta sa gawin ang isang bagay. 845 00:38:29,810 --> 00:38:35,160 >> Samantala mayroon kang dalawang tinidor sa kalsada, isang kung tao bumuo ng mga tulad nito. 846 00:38:35,160 --> 00:38:37,024 Maaari mo kung, elseif, iba pa. 847 00:38:37,024 --> 00:38:39,690 Ngayon ay nagkakahalaga ng tandaan, lalo na kung ikaw ay Googling sa paligid 848 00:38:39,690 --> 00:38:42,480 online na mapagkukunan para sumali sa usisa, o kung pick up 849 00:38:42,480 --> 00:38:44,575 isa sa mga kurso ng pinapayong mga libro sa C, 850 00:38:44,575 --> 00:38:48,430 makikita mo na mayroon ang mga tao ay may maraming ng iba't ibang mga kagustuhan para sa kung paano 851 00:38:48,430 --> 00:38:50,510 upang ipahayag ang kanilang mga sarili sa code. 852 00:38:50,510 --> 00:38:53,800 Ang ilang mga tao na nais na ilagay ang kulot braces bilang nagawa mo na ko dito. 853 00:38:53,800 --> 00:38:57,760 Ang ilang mga tao na nais na ilagay ang kulot braces halimbawa up dito. 854 00:38:57,760 --> 00:39:01,700 >> Ang ilang mga tao na nais na ilagay ang elses up dito at pagkatapos na ito sa paglipas dito. 855 00:39:01,700 --> 00:39:05,120 Mayroong anumang bilang ng mga paraan upang pagpapawalang code, at wala sa kanila ang 856 00:39:05,120 --> 00:39:06,566 ay tama per se. 857 00:39:06,566 --> 00:39:08,440 Bagaman mayroong ilang na medyo mali. 858 00:39:08,440 --> 00:39:11,315 Ngunit may mga no-- kung ito sa huli isang napaka relihiyoso debate. 859 00:39:11,315 --> 00:39:13,940 Sa katunayan, ang isa sa mga pinaka-nakakainis bagay tungkol sa computer science 860 00:39:13,940 --> 00:39:16,310 ay kung paano opinionated mga siyentipiko computer ay maaaring maging. 861 00:39:16,310 --> 00:39:19,880 At makikita mo ang sa paglipas ng panahon na kahit na kang bumuo ng personal na kagustuhan 862 00:39:19,880 --> 00:39:22,130 bilang sa kung paano dapat ang hitsura ng iyong code. 863 00:39:22,130 --> 00:39:27,162 >> Hindi lamang kumilos, hindi lamang lumikha ng output, ngunit kung paano dapat ang hitsura nito aesthetically. 864 00:39:27,162 --> 00:39:30,120 Kaya kung ano ang gagawin namin ay gagabay sa iyo sa ang daan patungo, sa ngayon hindi bababa sa, 865 00:39:30,120 --> 00:39:34,825 isang karaniwang estilo CS50 na hindi bababa sa Pinapanatiling bagay na pare-pareho at madaling basahin. 866 00:39:34,825 --> 00:39:37,330 Ngunit higit pa sa mga pagkakakilanlan bago ang haba. 867 00:39:37,330 --> 00:39:41,830 >> Ang isang Boolean expression sa C, kung ikaw Nais upang sabihin kung ang kundisyong ito ay totoo 868 00:39:41,830 --> 00:39:44,650 at ito ng iba pang mga kondisyon ay Totoo, hindi mo isulat ang salitang 869 00:39:44,650 --> 00:39:46,610 at, gaya ng ginagawa mo sa Ingles. 870 00:39:46,610 --> 00:39:50,580 Sa halip mong gamitin ang ampersand ampersand, para sa mga kadahilanang magpapadala kami bumalik sa. 871 00:39:50,580 --> 00:39:54,520 Kung nais mong sabihin o gumamit ka ng dalawang patayong bar, na sa isang US na keyboard 872 00:39:54,520 --> 00:39:57,650 ay pangkalahatan sa itaas ng mga Magpasok susi sa tabi ng backslash. 873 00:39:57,650 --> 00:40:03,080 At ito lamang ay nangangahulugan na kung ang kundisyong ito o ito ng iba pang mga kondisyon ay totoo gawin ito. 874 00:40:03,080 --> 00:40:05,210 >> Samantala mayroong ito na nakatutuwang bagay, na 875 00:40:05,210 --> 00:40:07,760 magkakaroon ka ng pagkakataon gamitin nang isang beses sa sandali. 876 00:40:07,760 --> 00:40:10,390 Ngunit ito ay isang alternatibong lamang paraan upang ipahayag ang iyong sarili. 877 00:40:10,390 --> 00:40:12,400 Ito, para sa ngayon, sabihin stipulate, ito ay lamang 878 00:40:12,400 --> 00:40:16,880 isa pang funky paraan ng pagpapahayag ng kung, elseif, elseif, elseif, elseif. 879 00:40:16,880 --> 00:40:19,720 Lamang ito ay na-format sa tuntunin ng mga kaso, kung saan mo nang literal 880 00:40:19,720 --> 00:40:23,420 enumerate ang mga halaga na baka gusto mong suriin para sa. 881 00:40:23,420 --> 00:40:24,410 >> Samantala loop. 882 00:40:24,410 --> 00:40:26,842 Nakita namin ang isang paghahambing ng Scratch sa isang loop. 883 00:40:26,842 --> 00:40:29,550 At pupuntahan ko iwagayway ang aking kamay sa ano ang ibig sabihin sa bawat isa sa mga bagay na ito. 884 00:40:29,550 --> 00:40:33,520 Ngunit napansin na ang isang loop ay napaka madalas na magsimula sa mga keyword para sa. 885 00:40:33,520 --> 00:40:36,350 O kaya ito ay magsimula sa mga keyword habang. 886 00:40:36,350 --> 00:40:41,360 O kaya ito ay magsimula sa mga keyword gawin, at magtapos sa mga keyword habang. 887 00:40:41,360 --> 00:40:43,920 >> Ngunit ano kami ay tungkol sa upang makita ang ay mga bagay na higit na katulad na ito. 888 00:40:43,920 --> 00:40:47,950 Narito ang, sa pangkalahatan sa C, kung paano mo maaari idedeklara isang variable at bigyan ito ng isang halaga. 889 00:40:47,950 --> 00:40:50,610 Sa C hindi ito suffice, tulad ng sa simula, lamang sa iyo 890 00:40:50,610 --> 00:40:52,810 sabihin ninyo akong bigyan ng variable na tinatawag na isang bagay isang. 891 00:40:52,810 --> 00:40:55,960 Mayroon kang upang sabihin sa C, at sabihin sa ang iyong Compiler, higit na partikular, 892 00:40:55,960 --> 00:40:58,680 kung anong uri ng halaga gagawin mo gusto ang ilalagay sa salamin mangkok ang. 893 00:40:58,680 --> 00:40:59,610 >> Ito ba ay isang integer? 894 00:40:59,610 --> 00:41:02,210 Kung gayon, mayroon ka sa Literal na sabihin int at pagkatapos ay 895 00:41:02,210 --> 00:41:04,220 ang pangalan ng variable, pagkatapos ay may semicolon. 896 00:41:04,220 --> 00:41:08,050 Kung sa halip ay nais string at tinawag ito s tulad ng ginawa ko ang aking code dito ngayon, 897 00:41:08,050 --> 00:41:10,920 Gusto mong sabihin semicolon string s. 898 00:41:10,920 --> 00:41:14,200 Sa sandaling gusto mong bigyan ito ng isang halaga pagkatapos ay maaari mong gamitin ang katumbas sign, 899 00:41:14,200 --> 00:41:16,211 kung hindi man ay kilala bilang pagtatalaga operator. 900 00:41:16,211 --> 00:41:17,960 At pansinin kung paano ang bawat isa ng mga linya ng code 901 00:41:17,960 --> 00:41:20,650 may semicolon sa dulo ng ito. 902 00:41:20,650 --> 00:41:22,550 >> Ngunit tapat ito lamang mukhang ng kaunti pangit. 903 00:41:22,550 --> 00:41:26,580 Bakit hindi ko masabi sa computer, magbigay sa akin sa isang variable at initialize ito sa zero. 904 00:41:26,580 --> 00:41:28,380 Iyon ay kung, ninyo akong bigyan ng walang laman na mangkok glass. 905 00:41:28,380 --> 00:41:28,980 Habang magagawa mo na. 906 00:41:28,980 --> 00:41:32,250 At kaya isa sa mga paghatol tawag ka na kailanman kailangang gumawa stylistically sa paglipas ng panahon 907 00:41:32,250 --> 00:41:36,290 ay, huwag mo isulat ang iyong code tulad nito, o huwag mo uri ng linisin ito up at mapabilib 908 00:41:36,290 --> 00:41:39,040 mga tao sa pamamagitan ng pagsusulat ng dalawang linya bilang isa lamang. 909 00:41:39,040 --> 00:41:41,830 At ito ay ituturing na Sa pangkalahatan ay isang mas eleganteng paraan 910 00:41:41,830 --> 00:41:43,870 ng pagsusulat ng iyong code stylistically. 911 00:41:43,870 --> 00:41:45,200 >> Mga Function kami siyempre nakita. 912 00:41:45,200 --> 00:41:46,340 Ang mga ito ay pagpunta sa tumagal ng format na ito. 913 00:41:46,340 --> 00:41:48,881 Ang pangalan ng isang function, ang ilang mga panaklong, at pagkatapos ay marahil ilang 914 00:41:48,881 --> 00:41:49,910 bagay-bagay sa loob. 915 00:41:49,910 --> 00:41:52,540 O maaari kang makakita ng mga paggamit ng maramihang mga pag-andar gilid 916 00:41:52,540 --> 00:41:55,980 sa pamamagitan ng bahagi, tulad ng isang bagay na katulad nito. 917 00:41:55,980 --> 00:41:59,390 Ngayon bilang isang tangent, ginagawa ito Joke gawin ngayon pakiramdam? 918 00:41:59,390 --> 00:42:03,566 919 00:42:03,566 --> 00:42:04,960 >> [Tawa] 920 00:42:04,960 --> 00:42:09,360 Hindi ito ang ibig sabihin ay nakatatawa, ngunit ito ay marahil gumawa ng kaunti pa sa kahulugan. 921 00:42:09,360 --> 00:42:12,140 Kaya ngayon sabihin pumunta sa CS50 appliance para sa isang sandali. 922 00:42:12,140 --> 00:42:14,640 At hayaan mo akong magbukas ng isang teaser dito. 923 00:42:14,640 --> 00:42:17,470 >> At sa katunayan isa sa mga dahilan para sa nagpapakilala sa IKEA katalogo 924 00:42:17,470 --> 00:42:20,080 at kumikislap na mga larawan ng iPhone nang kaunti ang nakalipas 925 00:42:20,080 --> 00:42:24,700 ay upang aktwal na itali sa sama-sama ang katotohanan na lamang ng ilang taon na ang nakakaraan, noong 2007, 926 00:42:24,700 --> 00:42:26,540 ito piraso ng code ay inilabas, na 927 00:42:26,540 --> 00:42:29,820 isa sa mga unang pagpapatupad ng isang piraso ng software 928 00:42:29,820 --> 00:42:31,494 na ginagawa kung ano ang tinatawag na jailbreaking. 929 00:42:31,494 --> 00:42:34,410 Para sa mga pamilyar, jailbreaking isang bagay tulad ng isang telepono o isang iPhone 930 00:42:34,410 --> 00:42:37,680 Nangangahulugan mahalagang pag-uunawa kung paano gawin ang mga bagay 931 00:42:37,680 --> 00:42:39,864 may ito na ang kumpanya na ginawa hindi ito nilayong. 932 00:42:39,864 --> 00:42:42,780 Tulad ng gusto mong i-install ang ilang mga software na hindi sa store app, 933 00:42:42,780 --> 00:42:45,405 jailbreaking iyong telepono na gawin mo ang mga bagay tulad na at higit pa. 934 00:42:45,405 --> 00:42:47,447 Ngunit kung ano ang masaya sa 2007-- at doon Naging 935 00:42:47,447 --> 00:42:49,780 dose-dosenang mga iba't ibang mga bersyon ng mga bagay na ito mula noon, 936 00:42:49,780 --> 00:42:53,540 sa lahat ng uri ng languages-- ay na ito ng programa dito, na tinatawag na iUnlock, 937 00:42:53,540 --> 00:42:57,036 ay aktwal na nakasulat sa C. At kaya ko na nakuha up ang source code para sa na ito, 938 00:42:57,036 --> 00:42:59,910 lamang sa uri ng magpakita ng ilang ka ng ang pagkakatulad na may constructs 939 00:42:59,910 --> 00:43:01,450 Na-tatalakayin natin kaya sa ngayon. 940 00:43:01,450 --> 00:43:05,150 Ngayon ay mayroong paraan higit pang kumplikado dito kaysa nasaksihan namin na sa klase. 941 00:43:05,150 --> 00:43:07,160 Hayaan akong mag-scroll pataas lamang nang kaunti dito. 942 00:43:07,160 --> 00:43:11,520 >> Ngunit mapansin these-- na rin mapansin kami ng ilang things-- ngunit mapansin ang mga linyang dito, 943 00:43:11,520 --> 00:43:14,090 kabilang ang standard I / O tuldok h. 944 00:43:14,090 --> 00:43:17,660 At all-- linya 24, please-- mapansin standard I / O 945 00:43:17,660 --> 00:43:21,380 tuldok h at ng buong bungkos ng iba pang mga mga file na tila iba pang mga tao 946 00:43:21,380 --> 00:43:22,160 isinulat. 947 00:43:22,160 --> 00:43:24,850 At kung mag-scroll namin pababa sa ito, kaunti nagkataon, 948 00:43:24,850 --> 00:43:27,910 abisuhan Hindi ko alam kung paano magsulat ang lahat ng ito sa aking sarili kinakailangan pa, 949 00:43:27,910 --> 00:43:28,880 ngunit mayroong kung. 950 00:43:28,880 --> 00:43:30,400 Kaya tila na ito ay may isang branch. 951 00:43:30,400 --> 00:43:33,210 >> At kung mag-scroll ko pababa ng kaunti higit pang mayroong isa pang kung. 952 00:43:33,210 --> 00:43:38,210 Kung mag-scroll ko up, sa palagay ko humigit-kumulang 100 linya Nakita ko para sa. 953 00:43:38,210 --> 00:43:40,020 Kaya hindi ako masyadong sigurado paano pa ito gumagana, 954 00:43:40,020 --> 00:43:43,180 ngunit ito ay isang para sa loop na pupuntahan hayaan mo akong umulit ilang bilang ng beses. 955 00:43:43,180 --> 00:43:45,230 At kung mag-scroll ko ang lahat ang daan sa ibaba 956 00:43:45,230 --> 00:43:51,020 Nakikita ko na mayroong isang gumana down na dito na tinatawag na 957 00:43:51,020 --> 00:43:54,570 pangunahing, at ilang mga karagdagang mga kredito para sa iyong pagbabasa kasiyahan. 958 00:43:54,570 --> 00:43:57,830 >> Kaya ito ay lamang sa say-- at maglalagay kami ng ito online sa pinagmulan ang kurso ni 959 00:43:57,830 --> 00:44:01,480 code today-- na kahit na ang ilan sa mga aparato na lubos naming para sa ipinagkaloob, 960 00:44:01,480 --> 00:44:05,130 sa pagtatapos ng araw na hindi mo pa rin gamitin ang mga pangunahing constructs na hindi namin 961 00:44:05,130 --> 00:44:07,430 Na-nagpapakilala na kaya sa ngayon. 962 00:44:07,430 --> 00:44:08,620 Tama na ng isa na iyon. 963 00:44:08,620 --> 00:44:11,480 Ang lahat ng mga karapatan, kaya ngayon sabihin aktwal na bumuo ng isang bagay. 964 00:44:11,480 --> 00:44:15,640 >> Sabihin higit pa sa isang bagay tulad ng hello.c, at buksan up na ito, 965 00:44:15,640 --> 00:44:17,170 magsulat ng programang ito dito ipaalam. 966 00:44:17,170 --> 00:44:19,850 Pupunta ako sa magpatuloy at magsulat ng isang programa na tinatawag na adder.c, 967 00:44:19,850 --> 00:44:23,310 na kung saan ang layunin sa buhay ay magiging tulad ng aking unang sobrang simple calculator 968 00:44:23,310 --> 00:44:24,840 na lamang ay nagdaragdag ng isang pares ng mga numero. 969 00:44:24,840 --> 00:44:27,050 Hindi dahil na isang hard problema, ngunit dahil ito 970 00:44:27,050 --> 00:44:29,390 Binibigyang-daan sa akin upang itali ngayon nang sama-sama ang ilang mga bagay. 971 00:44:29,390 --> 00:44:33,100 Kaya ako pagpunta sa sige at isama karaniwang I / O tuldok h at CS50 tuldok h. 972 00:44:33,100 --> 00:44:34,670 Pupunta ako sa sabihin int pangunahing walang bisa. 973 00:44:34,670 --> 00:44:36,545 At muli sa hinaharap magpapadala kami bumalik dito 974 00:44:36,545 --> 00:44:38,560 sa in sa kontekstong ito at walang silbi ang paraan. 975 00:44:38,560 --> 00:44:43,340 >> At ngayon pupuntahan ko sabihin ng isang bagay tulad ng printf, bigyan ako ng integer. 976 00:44:43,340 --> 00:44:47,610 At ngayon sa aking pangalawang linya, paano ko ipahayag ang aking sarili tulad 977 00:44:47,610 --> 00:44:50,980 na gusto kong ipinapahayag sa isang variable na pupuntahan upang mag-imbak sa isang int? 978 00:44:50,980 --> 00:44:55,470 Literal ano ang gagawin nagta-type ako kapag gusto kong lumikha ng isang variable na nag-iimbak sa isang int 979 00:44:55,470 --> 00:44:58,270 Gusto mo sabihin? 980 00:44:58,270 --> 00:44:59,650 int isang katumbas getint. 981 00:44:59,650 --> 00:45:00,485 Oo naman, kaya na gumagana. 982 00:45:00,485 --> 00:45:02,360 At para lamang sa pagkakapare-pareho kasama ang code idedetalye mo 983 00:45:02,360 --> 00:45:04,485 makita sa online, hayaan mo akong pagbabago ito sa x, dahil lang x 984 00:45:04,485 --> 00:45:06,830 ay isang pangkaraniwang pangalan ng variable para gamitin, hindi bababa sa algebra. 985 00:45:06,830 --> 00:45:08,720 Ngayon ipaalam sa akin sige at huwag printf muli. 986 00:45:08,720 --> 00:45:10,692 Bigyan mo ako ng isa pang integer. 987 00:45:10,692 --> 00:45:12,900 At ngayon Pupunta ako sa uri ng matuto mula sa pattern na iyon, 988 00:45:12,900 --> 00:45:14,490 Pupunta ako sa sabihin ay makakakuha ng int y sa GetInt. 989 00:45:14,490 --> 00:45:16,340 >> At hindi na namin gagamitin GetInt dati, ngunit lamang 990 00:45:16,340 --> 00:45:19,860 tulad ng GetString pupunta at nakakakuha ng isang string, tulad ng Javier ginawa mula sa madla, 991 00:45:19,860 --> 00:45:22,780 katulad ang GetInt simulan ng nagbi-blink ang prompt. 992 00:45:22,780 --> 00:45:26,750 At epektibong naghihintay para sa user upang bigyan ito ng isang integer, sa pamamagitan ng pag-type ito sa 993 00:45:26,750 --> 00:45:27,900 at pagpindot ng Enter. 994 00:45:27,900 --> 00:45:30,850 Ngayon Panghuli Pupunta ako sa gawin ito, printf ang kabuuan of-- 995 00:45:30,850 --> 00:45:36,080 at hayaan mo akong makakuha ng magarbong now-- porsiyento i porsiyento at i ay naroroon 996 00:45:36,080 --> 00:45:39,270 exclamation point i backslash n. 997 00:45:39,270 --> 00:45:42,750 At ano ang gagawin sa tingin mo pupuntahan ko maglagay sa ngayon bilang karagdagang input 998 00:45:42,750 --> 00:45:44,620 sa printf? 999 00:45:44,620 --> 00:45:47,380 >> Hindi ko nais na sabihin Literal na quote unquote x. 1000 00:45:47,380 --> 00:45:52,210 Gusto kong klase sa x at pagkatapos, at ngayon sabihin makakuha ng magarbong 1001 00:45:52,210 --> 00:45:54,420 at hayaan ang ipinapalagay ni lamang maaari naming gawin kung ano ang gusto namin. 1002 00:45:54,420 --> 00:45:56,330 Ano ang gusto mong sabihin sa tabi? 1003 00:45:56,330 --> 00:45:57,070 x plus y. 1004 00:45:57,070 --> 00:45:58,520 At sa katunayan na ang gagana. 1005 00:45:58,520 --> 00:46:01,760 Nagnais Ito ay mga programa wika gawin maunawaan ang pangunahing aritmetika, 1006 00:46:01,760 --> 00:46:03,500 at dapat ito sa katunayan trabaho. 1007 00:46:03,500 --> 00:46:06,730 >> Kaya ipaalam sa akin sige at huwag gumawa adder sa aking mga itim at puting window 1008 00:46:06,730 --> 00:46:08,090 down na dito, pindutin ang Enter. 1009 00:46:08,090 --> 00:46:10,830 Cryptic linya ngunit walang mga error mensahe, nang sa gayon ay maganda. 1010 00:46:10,830 --> 00:46:14,410 Dot iwa adder, bigyan ako ng integer, 1. 1011 00:46:14,410 --> 00:46:16,230 Bigyan mo ako ng isa pang integer, 2. 1012 00:46:16,230 --> 00:46:18,770 Ang kabuuan ng 1 at 2 ay 3. 1013 00:46:18,770 --> 00:46:21,730 >> Ang lahat ng mga karapatan, kaya isang magandang trivia programa, ngunit kung ano ang nagagawa nito? 1014 00:46:21,730 --> 00:46:25,680 Ito ay pinahihintulutan sa akin upang gamitin ang isang pagpapaandar tumawag dito, tumawag sa isa pang pag-andar dito, 1015 00:46:25,680 --> 00:46:29,260 dalawang tawag sa GetInt, isang ikatlong tawag sa printf, 1016 00:46:29,260 --> 00:46:30,720 at pagkatapos ay gamitin ang mga placeholder. 1017 00:46:30,720 --> 00:46:33,160 Kaya ito ay isang kaunti pa sopistikadong kaysa sa huling beses. 1018 00:46:33,160 --> 00:46:35,260 Ngunit paano kung gusto kong i- makakuha ng isang maliit na fancier? 1019 00:46:35,260 --> 00:46:38,900 >> Hayaan akong sige at ngayon gawin ito. 1020 00:46:38,900 --> 00:46:42,890 Hayaan akong magpatuloy at lumikha ng isang mga bagong file na tinatawag na mga kondisyon zero. 1021 00:46:42,890 --> 00:46:44,890 At pupuntahan ko upang i-save ilang panahon para sa kapanan ng mga klase 1022 00:46:44,890 --> 00:46:48,260 at i-paste lamang sa na code bilang panimula. 1023 00:46:48,260 --> 00:46:51,510 At ngayon lang pupuntahan ko ilalagay ng isang bagong bagay dito sa gitna. 1024 00:46:51,510 --> 00:46:55,889 Kaya printf Gusto ko ng isang integer mangyaring. 1025 00:46:55,889 --> 00:46:58,180 At ang lahat ng code na ito ay magagamit sa website ng kurso, ang 1026 00:46:58,180 --> 00:47:00,556 hindi mo kailangan ng i-type ang lahat ng ito out sa klase kung mas gusto mong hindi. 1027 00:47:00,556 --> 00:47:02,638 int, at ngayon pupuntahan ko gamitin, sa halip na x at y, 1028 00:47:02,638 --> 00:47:05,270 Pupunta ako upang magamit n, na marahil ang pinaka-karaniwang pangalan 1029 00:47:05,270 --> 00:47:09,220 para sa isang integer sa isang computer program. 1030 00:47:09,220 --> 00:47:12,060 At ngayon nais ko na gawin ang isang maliit na paghatol dito. 1031 00:47:12,060 --> 00:47:15,460 Pupunta ako upang makita kung n ay mas malaki kaysa sa 0, pagkatapos ay 1032 00:47:15,460 --> 00:47:23,670 Pupunta ako sa sabihin printf-- Oops, printf-- mo kinuha ang isang positibong numero, 1033 00:47:23,670 --> 00:47:25,370 exclamation point backslash n. 1034 00:47:25,370 --> 00:47:26,460 Isara iyon. 1035 00:47:26,460 --> 00:47:33,150 Iba Pa Pupunta ako sa i-print ang printf mo kinuha ang isang negatibong numero. 1036 00:47:33,150 --> 00:47:35,377 >> Ngayon bago ka sumigaw sa akin, magpatakbo ng program na ito ipaalam. 1037 00:47:35,377 --> 00:47:36,210 Hayaan akong bumaba dito. 1038 00:47:36,210 --> 00:47:40,730 At paano ko makatipon ng isang programa na tinatawag na mga kondisyon gitling 0? 1039 00:47:40,730 --> 00:47:42,300 Gawing kundisyon gitling 0. 1040 00:47:42,300 --> 00:47:45,560 Uri ng isang hangal pangalan, but-- dammit. 1041 00:47:45,560 --> 00:47:47,560 OK, magandang pagtuturo sandali. 1042 00:47:47,560 --> 00:47:48,410 Bakit na masira? 1043 00:47:48,410 --> 00:47:51,360 1044 00:47:51,360 --> 00:47:54,710 >> Ano ang aksidenteng Tinatawag kong ang file na ito? 1045 00:47:54,710 --> 00:47:56,876 Maaari mong uri ng infer mula sa tab up dito. 1046 00:47:56,876 --> 00:47:58,750 Kaya ito ay hindi masama na ako ginawa ito, sapagkat ito 1047 00:47:58,750 --> 00:48:00,208 ang mangyayari marahil sa ilan sa inyo. 1048 00:48:00,208 --> 00:48:03,880 Kaya aksidenteng ko na may pangalang aking pinagmulan kondisyon code 0. 1049 00:48:03,880 --> 00:48:09,950 Ngunit ang aking source code sa pamamagitan ng convention dapat maging sa isang file na tinatawag na kondisyon 0 gitling c, 1050 00:48:09,950 --> 00:48:11,720 o kahit anong tuldok c. 1051 00:48:11,720 --> 00:48:12,610 >> Kaya hayaan mo akong ayusin ito. 1052 00:48:12,610 --> 00:48:16,880 Tulad ng Microsoft Word ang maaari kong pumunta up upang I-save Bilang at gawin kondisyon 0 tuldok c. 1053 00:48:16,880 --> 00:48:20,100 Ngayon na maglinis ako lamang pagpunta sa sige at mag-alis 1054 00:48:20,100 --> 00:48:23,020 0 kondisyon, na kung saan ay ang aking lumang bersyon. 1055 00:48:23,020 --> 00:48:26,550 At ni huwag gumawa ngayon hayaan kalagayan 0, ang Enter. 1056 00:48:26,550 --> 00:48:27,870 OK, mukhang mabuti. 1057 00:48:27,870 --> 00:48:29,510 >> Kundisyon 0, ang Enter. 1058 00:48:29,510 --> 00:48:33,530 Gusto ko ng isang integer mangyaring, 50, mo kinuha ang isang positibong numero. 1059 00:48:33,530 --> 00:48:35,390 Ngayon kung paano tungkol sa mga negatibong 50? 1060 00:48:35,390 --> 00:48:37,660 Pinili mo ang isang negatibong numero. 1061 00:48:37,660 --> 00:48:39,605 Paano ang tungkol sa ngayon, 0. 1062 00:48:39,605 --> 00:48:42,250 1063 00:48:42,250 --> 00:48:45,350 Pretty bang 0 hindi negatibo. 1064 00:48:45,350 --> 00:48:47,780 >> Kaya ito ay uri ng isang lohikal na bug. 1065 00:48:47,780 --> 00:48:50,680 Paano ko ito aayusin? 1066 00:48:50,680 --> 00:48:57,260 Iba Pa kung n ay mas mababa kaysa sa 0, gawin ito, iba pa maaari kaming magkaroon ng tatlong paraan sangay dito, 1067 00:48:57,260 --> 00:49:01,740 printf mo kinuha ang 0. 1068 00:49:01,740 --> 00:49:06,150 Kaya ngayon kung muling patakbuhin ko ito programa, pagkatapos kino-compile ito 1069 00:49:06,150 --> 00:49:10,790 muli may make, at ngayon muling patakbuhin kalagayan 0, kung ano ang makikita ko makikita dito 1070 00:49:10,790 --> 00:49:14,570 ay 0 ay nagbibigay sa akin na output. 1071 00:49:14,570 --> 00:49:16,280 Kaya kung saan kami makapupunta sa ito? 1072 00:49:16,280 --> 00:49:18,930 >> Well ito ay mas madali upang mawala ang paningin ng kagubatan para sa mga puno. 1073 00:49:18,930 --> 00:49:23,590 At kaya daan sa amin upang tapusin na may ganitong 2 at 1/2 minutong video 1074 00:49:23,590 --> 00:49:25,710 na sa huli ay isang bit ng isang ad mula sa Google, 1075 00:49:25,710 --> 00:49:28,850 ngunit iyon ay tunay na Tipan sa kung ano ang kahit na gumagamit ng mga pangunahing gusali 1076 00:49:28,850 --> 00:49:33,020 bloke maaari naming gawin sa huli nang isang beses Mayroon kami ng kaunting programming 1077 00:49:33,020 --> 00:49:34,463 savvy sa ilalim ng aming sinturon. 1078 00:49:34,463 --> 00:49:35,150 >> [Musika nagpe-play] 1079 00:49:35,150 --> 00:49:38,370 1080 00:49:38,370 --> 00:49:40,540 >> SAROO Brierley (Voiceover): Iyon ay 26 taon na ang nakaraan, 1081 00:49:40,540 --> 00:49:42,470 at ako ay tungkol lamang upang i-5. 1082 00:49:42,470 --> 00:49:45,465 Nakakuha kami sa estasyon ng tren at boarded namin ang aming tren nang sama-sama. 1083 00:49:45,465 --> 00:49:48,010 Aking kapatid na lalaki sinabi lang idedetalye ko manatili dito, at magpapadala ako ay bumalik. 1084 00:49:48,010 --> 00:49:51,140 At ko lang naisip, gaano mo kakilala ng, Maaaring pati na rin pumunta ko lang matulog 1085 00:49:51,140 --> 00:49:52,690 at makikita lamang niya ang gumising sa akin. 1086 00:49:52,690 --> 00:49:55,145 At kapag ako woke up sa susunod na araw, ang buong karwahe 1087 00:49:55,145 --> 00:49:59,125 ay walang laman sa isang runaway tren, isang ghost tren pagkuha sa akin Hindi ko alam kung saan. 1088 00:49:59,125 --> 00:50:01,980 1089 00:50:01,980 --> 00:50:06,280 >> Ako ay pinagtibay out sa Australya, sa isang pamilya sa Australya. 1090 00:50:06,280 --> 00:50:09,710 At ina ay pinalamutian aking room na may mga mapa ng Indya, 1091 00:50:09,710 --> 00:50:11,950 kung saan ilalagay niya sa tabi ng aking bedside. 1092 00:50:11,950 --> 00:50:15,830 I woke up tuwing umaga nakikita na mapa, at samakatuwid 1093 00:50:15,830 --> 00:50:18,530 ito uri ng iningatan ang mga alaala buhay. 1094 00:50:18,530 --> 00:50:20,530 Ang mga tao ay sabihin, ikaw ay sinusubukan upang makahanap ng isang karayom 1095 00:50:20,530 --> 00:50:23,560 sa isang haystack, Saroo hindi ka na kailanman na mahanap ito. 1096 00:50:23,560 --> 00:50:28,540 >> Gusto ko na flashed ng ang mga lugar na ako ginagamit upang pumunta, ang flashes ng aking pamilya 1097 00:50:28,540 --> 00:50:29,890 Nakaharap. 1098 00:50:29,890 --> 00:50:34,060 Nagkaroon ang imahen sa aking ina, sitting down na sa kanyang mga binti ng matang, 1099 00:50:34,060 --> 00:50:35,740 nanonood lamang ang kanyang sigaw. 1100 00:50:35,740 --> 00:50:38,160 Buhay ay lamang kaya mahirap. 1101 00:50:38,160 --> 00:50:41,237 Iyon ay ang aking mga kayamanan. 1102 00:50:41,237 --> 00:50:44,320 At ako ay naghahanap sa Google Map at natanto mayroong Google Earth pati na rin. 1103 00:50:44,320 --> 00:50:48,140 Sa isang mundo kung saan maaari kang mag-zoom in, Nagsimula ako magkaroon ng lahat ng mga saloobin 1104 00:50:48,140 --> 00:50:51,500 at kung ano ang mga posibilidad na maaaring gawin ito para sa akin. 1105 00:50:51,500 --> 00:50:54,890 Sinabi ko sa sarili ko, alam mo na, hindi mo Nakakuha ang lahat ng mga alaala photographic 1106 00:50:54,890 --> 00:50:58,590 at landmark kung saan ikaw ay mula sa, at alam mo kung ano ang hitsura ng bayan tulad ng. 1107 00:50:58,590 --> 00:51:03,060 Maaaring ito ay isang application na maaari mong gamitin upang hanapin ang iyong daan pabalik. 1108 00:51:03,060 --> 00:51:06,720 >> Akala ko, na rin ang kukunin ko maglagay ng tuldok sa Calcutta train station, 1109 00:51:06,720 --> 00:51:10,890 at isang radius linya, alam mo, na dapat na naghahanap sa paligid ng lugar na ito. 1110 00:51:10,890 --> 00:51:13,750 Ako uri ng ay dumating sa kabuuan mga tren track. 1111 00:51:13,750 --> 00:51:18,160 At sinimulan ko sumusunod dito, at Dumating ako sa isang istasyon ng tren kung saan 1112 00:51:18,160 --> 00:51:22,228 masasalamin ang parehong larawan na noon ay sa aking mga alaala. 1113 00:51:22,228 --> 00:51:23,707 Tumugma sa lahat ng bagay. 1114 00:51:23,707 --> 00:51:27,950 Naisip ko lang yep, ako alam kung saan ako pupunta. 1115 00:51:27,950 --> 00:51:30,116 Lamang ako pupunta upang ipaalam ang mapa na mayroon akong sa aking ulo 1116 00:51:30,116 --> 00:51:33,080 humantong sa akin at dalhin ako pabalik sa aking bayang kinalakhan. 1117 00:51:33,080 --> 00:51:36,420 >> Dumating ako sa pintuan ng bahay na ako ay ipinanganak. 1118 00:51:36,420 --> 00:51:39,140 At lumakad sa paligid tungkol sa 15 metro sa paligid ng sulok, 1119 00:51:39,140 --> 00:51:42,980 nagkaroon ng tatlong mga kababaihan nakatayo sa labas, nasa tabi ng bawat isa. 1120 00:51:42,980 --> 00:51:47,830 At stepped ang isa gitna pasulong, at Ko lang naisip, ito ay ang iyong ina. 1121 00:51:47,830 --> 00:51:53,450 Siya ay dumating pasulong, hugged niya sa akin, at kami ay doon para sa tungkol sa limang minuto. 1122 00:51:53,450 --> 00:51:56,530 1123 00:51:56,530 --> 00:51:59,000 >> Grabbed niya ang aking kamay at kinuha niya ako sa bahay 1124 00:51:59,000 --> 00:52:02,450 at nakuha sa telepono, kung saan siya Rang aking kapatid na babae at ang aking kapatid na lalaki 1125 00:52:02,450 --> 00:52:05,600 sasabihin na, alam mo na, iyong kapatid na lalaki ay may lamang 1126 00:52:05,600 --> 00:52:09,340 lahat ng biglaang lumitaw tulad ng isang ghost. 1127 00:52:09,340 --> 00:52:12,440 At pagkatapos ay ang pamilya ay muli reunited. 1128 00:52:12,440 --> 00:52:15,110 Lahat lahat ng mabuti, Tinulungan ko ang aking nanay out, 1129 00:52:15,110 --> 00:52:17,110 siya ay hindi kailangang maging slaving ang layo. 1130 00:52:17,110 --> 00:52:19,555 Maaari niyang mabuhay ang natitira ng kanyang buhay sa kapayapaan. 1131 00:52:19,555 --> 00:52:23,460 >> Ito ay isang karayom ​​sa isang haystack, ngunit ang karayom ​​ay doon. 1132 00:52:23,460 --> 00:52:24,400 Ang lahat ng naroon. 1133 00:52:24,400 --> 00:52:28,260 Lahat mayroon kami sa mundo ay nasa tap ng isang pindutan. 1134 00:52:28,260 --> 00:52:32,010 Ngunit mayroon kang nagkakaroon ng kalooban at sa pagpapasiya sa kulang ito. 1135 00:52:32,010 --> 00:52:32,950 >> [Musika nagpe-play] 1136 00:52:32,950 --> 00:52:36,420 1137 00:52:36,420 --> 00:52:38,170 David MALAN: Wonderfully matamis testimonial 1138 00:52:38,170 --> 00:52:40,540 upang lamang kung ano ang kaya mo ngayon ang gagawin sa teknolohiya. 1139 00:52:40,540 --> 00:52:43,390 Makikita natin sa iyo sa susunod na linggo. 1140 00:52:43,390 --> 00:52:44,374