[Musika nagpe-play] David MALAN: Lahat ng karapatan ito ay CS50 at ito ang katapusan ng linggo isa. Kaya gusto ko upang ipakilala ang aking dating advisee, Andel Duff, na hindi lamang ginagawang iPhone 5 ay nakatayo, pati na rin na ito lectern, siya rin gumagawa ng mga kotse. ANSEL Duff: Paano ay ito pagpunta, sa lahat? Gusto ko lang sabihin sa iyo ng kaunti bit tungkol sa Formula SAE, kung saan ako Kasama ang kapitan. Ito ay isang koponan ng MIT. Gusto ko lang sabihin sa iyo guys Medyo tungkol dito at sana ay bumuo ng ilang mga interes. Kaya ipaalam tumakbo lamang sa akin sa pamamagitan ng isang ilang mga bagay na tungkol sa aming koponan. Kaya hindi namin ganap run mag-aaral, kung saan lahat ng mga disenyo ng mga kasapi, gayahin, pagsubok, at tagagawa ng subsystem ng kotse. Mayroon kaming aming sariling machine shop at garages, at N52-- o paumanhin, N51-- kung saan ay ang parehong gusali bilang ng MIT Science Museum. At hindi namin ang mga tao na nagdadala ng kotse. Mayroong isang pambansang kumpetisyon sa simula ng tag-araw, at pagkatapos ay mayroong mga mas maliit na shootout mga kumpetisyon sa buong taon. At pagkatapos ay ginagawa namin ang driver ng pagsasanay araw upang makakuha ng kilala ng mga bagong miyembro. Ang aming build araw ay sa Sabado 11:00-20:00. Tanghalian at hapunan pag-aalaga pagkuha ng, mula sa Bertucci at Beantown ayon sa pagkakabanggit. Mayroon kaming mga lingguhang pagpupulong at seminar, na kung saan ay para sa mga kurso kredito. Alin ang bagong bilang ng semestre, at ito ang magiging din para sa susunod na semestre, sa gayon ay maaari mong i-cross-reg para doon. At pagkatapos kami ay may sa pagdidisenyo, shop, at CAD araw sa linggo, samantalang ang mga miyembro ay nakapag-iisa CAD na piyesa, stock pagkakasunud-sunod at iba pa. Kaya para sa mga de-koryenteng engineering sa koponan mayroon kaming aming tractive, mataas na boltahe system, na kung saan ay nagpapatakbo ng sa isang nominal 300 volts, na kasama ang Motors, controllers motor, at pack baterya. Pagkatapos kami ay may isang mababang boltahe system, na kung saan ay nagpapatakbo ng sa 12 volts, na kasama ang mga kontrol, MAGAGAWA nodes, ang utak kahon, at sa dashboard. Bilang malayo CS-uusapan, ginagawa namin Mayroon pagpapanatili website na namin ang nangangailangan ng tapos para sa mga kaganapan, pagiging miyembro mga pagbabago, ang mga bagong larawan, at PR materyal. At pagkatapos ay mayroon kaming code na kumokontrol sa kotse para sa aming mga traction control, paglunsad kontrol, gitling kontrol, torque vectoring, at regenerative braking system, na tumakbo karaniwang sa MATLAB, Simulink, at LabView. Sabihin mo nang kaunti tungkol sa mga kotse. Kaya ito ay tungkol sa £ 500. Ito ay mga panuntunan limitado sa 85 kilowatts. Mayroon itong 2 EMRAX 207 Motors sa pabalik, isa para sa bawat hulihan wheel. Mayroon itong mga custom-built pack baterya mula Prismatic mga cell A123 supot, na may kabuuan na 300 volts at 5.6 kilowatt na oras. At ito ay direktang pag-biyahe sa isang 2.64-1 biyahe ratio. Narito ang ilang mga larawan namin kinuha nito sa kompetisyon. Narito ang kono pabalik, ilong, at narito ang mga Motors, mga malaking itim na mga disk sa ilalim ng Damit et Manus. Narito ang isang slide na aking nakuha out sa aming mga pamamaraan kumpetisyon. At ito ay naghahambing lamang ang aming kotse sa isang ilang mga komersyal na magagamit ng kotse, tulad ng KTM XBOW, Ariel Atom, at Caterha M 7-280. Kung pamilyar ka sa mga presyo, kapangyarihan hilahin ang timbang, dolyar bawat horsepower, dolyar bawat torque, at ang aming kotse blows ang lahat ng ito sa labas ng tubig. Kung mayroon kang anumang mga tanong, lista ng email address na ito. Abutin kami ng email sa fsae@mit.edu. Masaya kami upang makipag-usap tungkol sa anumang bagay na gusto mo. Harvard mga mag-aaral ay uri ng Minorya sa koponan. Kung mayroon kang anumang mga tanong tungkol sa na mangyaring gawin shoot kami ng isang email, masaya na makipag-usap, at ako pupunta upang magtungo ang pabalik sa paglipas ng sa David. Salamat. Pinapahalagahan ko ito, guys. [APPLAUSE] David MALAN: Ansel na ginugol ng tag-init nagtatrabaho sa amin dito sa campus sa CS50 ito tag-araw. At bilang karagdagan sa pagtatrabaho sa mga bagay tulad ng binary na mga bombilya, siya talaga talaga binuksan ang aming eyes-- at mina sa particular-- sa kung ano talaga ang intersection ng hindi ng hardware at software ay maaaring maging. Sa katunayan ng maraming mga bagay na siya lang Nalibot iyo sa pamamagitan ng mga huli Nilikha ang unang sa software, at pagkatapos ay sa huli fabricated sa tunay na mundo sa hardware. Kaya't kung ikaw ay interesado sa paggalugad na panulukan, marahil tumagal ng hanggang group na iyon. Ngayon samantala, doon sa iyo na mga tagahanga ng mga teknolohiya, at mga produkto ng Apple sa partikular na malaman na mayroong ay isang pares ng mga mga anunsyo kahapon. Ngunit naisip namin na gusto naming ipakita mo ang isa na dumating out ilang araw bago na Maaaring hindi na nakita mo. JORGEN EGHAMMER: Alam mo, isang beses sa sandali ng isang bagay ay kasama na mga pagbabago sa paraan ng aming nakatira. Kaya simple at madaling gamitin na aparato A gamitin ito sa palagay halos pamilyar. Ipinapakilala 2015 IKEA catalog. Ito ay hindi isang digital na aklat o isang e-book, ito ay isang aklat-book. Ang unang bagay upang tandaan ay walang cable, hindi kahit na isang power cable. Ang 2015 IKEA katalogo ay ganap na sisingilin, at ang buhay ng baterya ay walang hanggan. Ang interface ay 7.5 sa pamamagitan ng 8 pulgada, ngunit maaari palawakin sa 15 sa pamamagitan ng 8 pulgada. Nabigasyon ay batay sa tactile ugnay teknolohiya na maaari mong aktwal na pakiramdam. Nilalaman ay paunang naka-install sa pamamagitan ng 328 mga pahina ng high-definition ng kagila-ideya sa bahay muwebles. Upang magsimulang mag-browse, pindutin lamang at i-drag. Karapatan sa kaliwa upang ilipat pasulong, kaliwa hanggang kanang upang ilipat paurong. Pansinin ibang bagay? Tama iyon. Walang lag. Ang bawat kristal pahina naglo-load agad, gaano man mabilis kang mag-scroll. Kung nais mong makakuha ng isang mabilis na pangkalahatang-ideya, hawakan lamang ito sa iyong palad, at gamit lang ang iyong hinlalaki, bilis-browse ang nilalaman. Kung nakahanap ka ng bagay na gusto mong i-save para sa ibang pagkakataon, maaari mo lamang i-bookmark ito. At kahit na isasara mo ang application, maaari mong madaling mahanap muli ang mga bookmark. Kamangha-manghang. [Tawa] [APPLAUSE] Kaya na madadala sa amin upang ang katapusan ng linggo isa. Ang ilang mga anunsyo ngayon. Kaya sectioning ay isinasagawa ngayon. Pumunta sa URL na ito dito ang ilang sandali sa pagitan ng ngayon at Biyernes sa tanghali upang aktwal na tukuyin kung ikaw ay kasama ng mga mas kumportable, mas kumportable, o isang lugar sa pagitan. Ito ay karaniwang ang isa sa mga mga bagay na kamakailan mo lamang uri ng malaman. At sa katunayan doon sa iyo kung sino ay mas kumportableng marahil malaman bilang magkano, doon sa iyo kung sino ay mas kumportableng malaman bilang magkano, at muli kung hindi ka pa masyadong sigurado kung anong ng mga bucket mahulog ka sa ikaw ay marahil sa isang lugar sa pagitan. Ngunit makatitiyak maaari mong magpalit pagkatapos ng ilang linggo kung kailangang maging. Samantala, para sa mga darating na linggo hindi namin simulan ang mga seksyon sa bawat se, ngunit super seksyon, na ay bukas sa lahat ng mga mag-aaral. Ito darating na Linggo sa isang lokasyon upang ay inihayag sa kurso website magkakaroon kami ng isa para sa mga mas kumportable, pati na rin ang isa para sa mga kumportableng higit pa. At ang mga lugar sa pagitan ng Maaaring piliin kung alin sa mga dalawang, o pareho kung gusto mo, umupo-in sa. At ang focus ng mga ay magiging huli sa C, na patuloy naming ang aming Ang pag-uusap ngayon. Itakda ang problema 0 samantala ay sana sa iyong mga kamay. Opisyal dahil bukas, Huwebes, sa tanghali. Maliban kung cash sa isa ng iyong 5 late na araw, kung saan nais dalhin ito hanggang Biyernes sa tanghali. Itakda ang problema 1 samantala ay magiging naka-post sa website ng kurso ni. At ito ay ang aming unang foray bilang isang klase sa C. At na spec problema set ay ituturo sa iyo sa pamamagitan ng maraming mga Mechanics ng kung ano ang namin pakikipag-usap tungkol sa Pagsisimula sa Monday, at patuloy naming pinag-uusapan tungkol sa ngayon. C, Linux, ang CS50 appliance, ang lahat ng na ay naghihintay sa iyo sa pagtutukoy. Oras ng opisina samantala ay nasa progreso, sa undergraduate dining hall. Magtungo sa URL na ito dito upang makita ang -iskedyul para ngayong gabi at bukas, kung nais mong makibahagi. Tanong samantala, nang sa gayon ay may mga pagkakataon upang magtanong asynchronously, 24/7, Napagtanto ikaw ay hindi limitado sa mga seksyon at opisina oras, ngunit sa halip ang tool na ito dito, CS50 Talakayin sa URL na iyon ay magiging online na kurso sa pamamagitan nito ay bulletin board na software, sa pamamagitan ng kung aling mga maaari kang magtanong ng mga kaklase at din staff. Kaya tandaan na mapagkukunan pati na rin. Samantala isang tradisyon Nagsisimula ito Biyernes. Tulad ng maaaring mo pa glimpsed mula sa teaser video huling Miyerkules, ang mayroon kaming karamihan sa isang tradisyon tuwing Biyernes sa panahon ng termino ng pagkuha ng ilang 50 mga mag-aaral at staff sa isang lokal na restaurant na tinatawag na Apoy at Yelo, kung saan kami ay Karaniwang sumali sa pamamagitan ng ilang mga alumni o mga kaibigan mula sa industriya sa pangkalahatan ay aspire upang gumawa ng isang malaking klase sa tingin mas maliit. Kaya ito ay isang ganap na kaswal na tanghalian. Ang isang bungkos ng sa amin, ang mga tauhan lalo na, magpe-play musikal upuan at makipag-chat sa mga mag-aaral tungkol sa 50, buhay sa labas ng 50, buhay sa hinaharap, sa tunay na mundo, Ako ng pakikipag-usap tungkol sa mga pagkakataon sa trabaho sa mga kaibigan sa industriya. Kaya kung nais mong sumali sa amin ito Biyernes, magtungo sa URL na ito dito. Space ay limitado, ngunit gagawin namin ito recurringly sa buong termino. Magtungo doon upang cs50.harvard.edu/rsvp. At kung hindi mo makuha sa oras na ito, hindi mag-alala. Gagawin namin ang itong muli sa mga darating na linggo pati na rin. Kaya ito ay ang larawan painted namin noong nakaraang linggo, at marahil ka pa dabbling sa gayon ay malayo. Ngunit subukan upang makakonekta ito ngayon hayaan sa kung ano ang pagpunta naming gawin ngayon at pasulong. Puwede bang isa volunteer? Ang lahat ng mga karapatan, o ilang. Paano ang tungkol dito sa pagtatapos, sa asul na shirt. Halika sa up, kung ano ang iyong pangalan? ALANA: Alana. David MALAN: Alana. Kaya Alana, para lang moment-- gandang upang matugunan you-- Mawawala na i-play ang papel ng pag-andar na ito dito. Ang mga lilang bloke hindi namin tinatawag na kaya ngayon ng isang function. Kaya kung ano ang pupuntahan ko pumunta maaga dito at nag-aalok Alana ay isang maliit na name tag, upang gumawa ng malinaw kung ano ang papel ka sa pag-play. Kaya dapat kang maging sabihin nating block. Kung nais mong magpatuloy at ilagay na sa. At kami ay pagpunta sa panatilihin ito napaka-simple. Kung ang layunin sa kamay ay simpleng ngayon upang ipatupad na may Alana, ito tinatawag nating bloke, narito kung paano ito ng pagpunta sa gumana. Tumawag ni ito ko have-- hayaan isang argumento o parameter, talaga lamang ng isang blangko sheet ng papel. At ito ay puti sa uri ng maging reminiscent ng puting kahon kung saan mo Maaari sumulat ng mga salita. Samantala pupuntahan ko pumunta dito. Pupunta ako sa magpatuloy at sumulat ng H-E-L-L-O kuwit mundo. At ngayon ko, pati na ang sinasabi ng mga programmer, ay hindi talaga alam kung paano sabihin ang isang bagay. Maaari ba akong makabuo ng mga salita, ngunit gagawin ko hindi kinakailangang alam kung paano ipahayag ang sarili ko pasalita o sa screen. At kaya kung ano ang pupuntahan ko upang gawin ay tumagal ng piraso na ito ng pag-andar, kung saan ang input-- o argument, dahil kakailanganin tinatawag naming ito, Na naisulat ko sa ito piraso ng paper-- at Pupunta ako sa outsource ito. At sa katunayan iyon ang papel na iyon function sa isang programming language Pwedeng maglaro. Isang bagay na tulad ng sabihin nating maaaring i-block Outsourced sa isang tao na talagang alam ano ang kanyang o ang pakikipag-usap siya tungkol sa. Kaya kung makikita mo hakbang sa ibabaw dito para sa isang sandali lamang, Ako ay pagpunta sa pumasa ng pag-input na ito sa Alana, at hinihiling na sabihin sa iyo ng pag-input na ito. ALANA: Kumusta, mundo. David MALAN: Iyan na ang lahat. Kaya na doon ay isang katangian. Ngayon ay maaari namin ito ng kaunti pa, Maaari kaming magsagawa ng isang hakbang pasulong dito. Dahil na noon ay malinaw na underwhelming. Kaya ngayon hayaan convert ng ito sa isang bagay ng kaunti pa sopistikadong. Kaya ito ng kurso ay ang aming C bersyon. Kaya ngayon kung gusto mong tumagal na isa-off, na pangalan ng tag-off, at sabihin mayroon kang ilagay sa isang bagong pangalan. Ngunit fundamentally ikaw ay nagpe-play ang parehong papel, kaya ito lamang ang mangyayari sa tawagin printf ngayon. Ang kuwento ay, siyempre, pagpunta sa be-- marahil tulad ng underwhelming-- ay pagpunta sa maging ang sumusunod. Kayo ngayon ay ang function printf. Ako ang tumatawag, o ang programmer, na nagnanais upang tumayo sa mga balikat ng mga tao sa nakalipas na tulad mo, taong na nalaman kung paano upang aktwal na magsulat ng isang bagay pababa. At kaya oras na ito, sa halip na ito sinasabi sabihin aktwal na gamitin ang aming screen sa paglipas dito. Kaya kung nais mong i-basa higit sa rito, ako ako pagpunta upang pumasa muli ito bilang input sa aking kaibigan printf. Kung maaari kang magpatuloy at i-print na sa screen, sa pamamagitan lamang ng pagguhit gamit ang iyong daliri sa itim na screen. Mahusay. Ang lahat ng mga karapatan, kaya maraming suspense para sa paano na pagpunta upang i-play out. Kaya ngayon hayaan kumuha ng mga bagay up ng isa huling bingaw, kung magagawa namin, tulad ng sumusunod. Kaya ito ay isang programa C tulad ng sinabi namin huling beses. At ito lamang ang ginagawa kung ano ang iyong ginawa, ito Pini-print out sa screen, kumusta, mundo. Kahit na mayroong malinaw na marami ng distracting mga bagay-bagay up doon. Ngunit tumagal ng isang bingaw mga bagay-bagay at ipaalam ipakilala ang bersyon na ito, na isipin ay ang pangatlong bersyon na napunta kami sa huling pagkakataon. At ngayon ay may malinaw na dalawang mga paggamit ng printf. Mayroong 2 mga tawag sa Alana sa ganitong kaso para sa printf, ngunit mayroon ding isang tawag sa isa pang pag-andar. Ano ang pag-andar na malinaw? Getstring. Puwede ba kaming kumuha ng isa pang volunteer? OK, dumating sa up. Ano ang inyong pangalan? Javier: Javier. David MALAN: Javier, dumating sa up. Kaya papel Javier ay sa ito piraso ng papel. Aling Pupunta ako sa tumawag sa generically s. Ngayon ito ay isang variable na ito, ng uri ng string, pati na ipinahiwatig sa pamamagitan ng na pangalawang linya sa gitna doon. At gusto ko sa iyo upang pumunta akong ikuha ng string. Sa partikular magtungo pababa sa orkestra seksyon at makakuha sa akin ang pangalan ng isang tao, at bumalik sa isang variable na naglalaman ng halaga na iyon. Maaari itong maging sinuman na gusto mo. Narito pumunta namin. Ang lahat ng mga karapatan, Javier ay pagsulat down na ang pangalan. Lahat ng karapatan. Maaari lahat namin marahil hulaan kung paano ito ay pagpunta upang i-play out. Marahil kami belaboring sa punto ng kung ano ang isang function ay ang paggawa, ngunit nonetheless salamat sa inyo. Kaya Javier Nagbalik ang string na ito dito, na kung saan, ay hindi maaaring masyadong makita, Jonathan ay ang string na ang nakuha namin. Kaya ngayon kung ano ang aktwal na pupuntahan ko upang magkaloob sa Alana bagaman ay isang bagay na medyo naiiba. Dahil sa ang bersyon na ito ng programa, una mayroong sabihin ang iyong pangalan. Kaya ang pinakaunang argument Kailangan ko bang magbigay ng Alana may ay magiging Literal na sabihin ang iyong pangalan. Ang lahat ng mga karapatan, kaya simpleng bilang na Gusto ko ibigay ito sa iyo. At bilang isulat ko ang susunod na argument, kung ikaw nais na magpatuloy at isulat ito sa board, sabihin sige at gawin ang panghuling halimbawa dito upang gumawa i-clear kung ano ang sa huli ay nakuha ko na mangyayari. Kaya sabihin ang iyong pangalan, isulat ito patungo sa tuktok kung hindi mo bale ko, kaya lang na mayroon kaming kuwarto para sa isang pangalawang linya. Dahil ang huling bagay ako pupunta sa ngayon magbigay sa iyo ng ay hindi isa, ngunit dalawang piraso ng papel. Lahat ng karapatan. H-E-L-L-O comma at pagkatapos ng blangkong linya. Kaya kung ano ako tungkol sa ipasa Alana ngayon ay isang bagay na medyo naiiba. Hindi lamang siya ang pagkakaroon ng ganitong, kung saan fill sa blangko ay kumakatawan na percent-- kung ano ang placeholder namin na ginagamit mo? Oo, kaya porsiyento s. Samantala Pupunta ako sa pumasa sa kanya sa isang pangalawang argumento, na ay tiyak kung ano Javier nabawi mula sa Jonathan. Kaya ipaalam sa akin magbibigay sa iyo ng dalawang. Kung nais mong, sige at i-print na epekto. Ano ang nangyayari sa huli ngayon ay, Alana muli nagpe-play ang papel na ginagampanan ng printf. Javier ay naglalaro ng ang papel na ginagampanan ng GetString. Nang sa gayon ay ang iyong magiging souvenir. At sa huli kung ano ang nangyayari, sa kabila ng ito hello-- yep sige at kuwit. ALANA: matanggap ko ba nito pa o hindi? David MALAN: Yep, mo Nakatanggap ang parehong mga ito nang sabay-sabay. Kaya ang ideya ay na sa iyo Maaari na ngayong i-flip ang pahina upang pangasiwaan ang pangalawang ng mga dalawang input. Kaya ito ay para lamang sa martilyo ng tahanan ng ituro na samantalang Alana pinaandar ito berdeng linya dito, at pagkatapos ay Javier ginawa ng isang ito para sa amin at bumalik sa akin ng isang bagay Makikita kami tatawag s, ngunit ito ay talagang na piraso lamang ng mga papel ng kanyang sarili. At ngayon Alana ay tapos pangatlong linya na ito. At kahit na lahat ng mga ito ay mukhang kaya hindi kapani-paniwalang cryptic marahil sa unang tingin, ito talaga ay kasing simple ng iyon. Pasadong input sa paligid, pagkuha ng output, alinman sa pisikal ipinasa pabalik ng isang bagay, o nakakakita ng side effect na katulad nito. Isang bagay na biswal nakasulat sa screen. Kaya sabihin sige at salamat Alana at Javier, sino ay down dito, para pagsali sa amin up dito. [APPLAUSE] Kaya ngayon hayaan tumagal para sa ipinagkaloob lamang kung paano prangka lahat ng iyon ay maaaring maging. At ang magpatuloy upang aktwal na ipaalam gawin ang isang bagay sa aktwal na code. Kaya up sa screen dito ay isang screenshot ng tinatawag na CS50 appliance. At kung nagkaproblema ka sa hindi, bilang isang 02:00 sa hapon Miyerkules, ipaliwanag sa ilang mga kaibigan kung ano ang CS50 appliance ay, kung paano nais mong tukuyin ito sa isang pangungusap? Anumang isa pangungusap? Oo? MAG-AARAL: Ito ay tulad ng isang programa na gumagawa ng computer ng lahat tumakbo gamit ang parehong system. David MALAN: Magandang! Ito ay isang program na nagbibigay-daan sa lahat computer upang tumakbo gamit ang parehong system. Ito ay isang uri ng iyong sariling kopya ng isang operating system na mangyayari sa tawagin Ubuntu Linux. At ito ay tumatakbo nang epektibo sa loob ng isang window sa iyong sariling Mac o PC, upang ang paraang ito karapatan sa labas ng gate sa linggo 1, lahat ng tao dito sa klase May access sa parehong mga tool, ang parehong configuration, at walang kurba sa pagkatuto tiyak sa isang Mac o isang PC sa partikular na. Ngayon nagbukas kami, sa loob ng CS50 appliance sa Lunes, ito ng programa dito. Nangyayari ito na tinatawag na gedit. Ngunit iyon lamang talaga isang graphical editor. Ito ay isang bagay tulad ng Notepad o Teksto I-edit sa Windows o Mac OS ayon sa pagkakabanggit. At ipinanukalang ko na mayroong talaga tatlong mahalagang bahagi sa screen na ito. Ang nangungunang gilid ay kung saan mo Gusto isulat ang iyong code. At iyon ang kung saan ginugol namin ang karamihan sa aming mga tatlong halimbawa sa lecture Lunes ni. Ibaba ang tinatawag natin kung ano ang, ito itim na window, Oo? MAG-AARAL: Compiler? David MALAN: Compiler namin na-access sa pamamagitan ng paraan ng na window. Ngunit sa mas pangkalahatang paraan. Oo, ito ay isa lamang ng isang terminal na window. Ito ay isang edad lumang termino na lamang Inilalarawan ng mahalagang isang nagbi-blink prompt, na taon na ang nakaraan na ginamit upang maging sa isa sa mga malalaking monitor CRT estilo. Ngunit sa kasalukuyan ito'y isang uri ng virtual sa software. At sa terminal ng bintana ipaalam sa amin kung nagta-type command. Ito uri ng pinasimple na bersyon ng interface o UI ng user. Ito ay hindi isang graphical interface ng gumagamit o GUI, ito ay isang interface na batay sa teksto o isang command line interface. At sa katunayan na kung saan sa huli Ako ay magagawang magsulat ng ilang code. Sa sandaling ako ay nakasulat ang ilang mga code bagaman, isipin na ginamit ko sa command na ito. At dahil ito ang pangalan uri ng nagmumungkahi, ito Binibigyang-daan sa akin upang gumawa ng programa na tinatawag na Hello. Ngunit kung ano ang talagang ito ginagawa? Well make ay pagkuha ng aking input, ang aking source code, at nagko-convert ito sa kung ano, sa huli? Bagay code. At sa bagay na code ay isang magarbong lamang paraan ng pagsabi ng mga zero at mga bago. At pagkatapos ay sa sandaling Nais kong upang magpatakbo ng na object code, sa sandaling Nais kong ipasa ang bilang ng pag-input mga mga zero at mga bago sa computer ang aking utak, ang tinatawag na CPU o gitnang processing unit, Nagkaroon kong patakbuhin ang program. Subalit hindi pa masyadong isang simpleng sa Lunes bilang lamang i-double click sa icon ng ilan. Ano halip ay kailangan kong gawin upang magpatakbo ng isang programa? Ano ang pangalawang utos? Ako sa pandinig ng kaunti slashes? Oo, Oo? MAG-AARAL: Dot iwa at pangalan ng program. David MALAN: Eksaktong. Dot iwa at pangalan ng program. Kung ano ang ibig sabihin ngayon ay ito? Well tuldok ay isa lamang paraan arcane sinasabi ng kasalukuyang direktoryo. Anuman ang folder na ikaw ay nasa ay -reference bilang, ay kinakatawan bilang tuldok. Ang slash lamang kung ano ang iyong nakita sa Mac OS at Windows para sa taon, ito ay isang separator sa pagitan ng isang direktoryo o folder at ang natitirang bahagi ng ilang mga pangalan. Sa Windows ito ang mangyayari sa pumunta paurong, sa Linux at Mac OS ito ang mangyayari upang pumunta pasulong. Ngunit ito lamang ang separator, kaya lamang ng isang hindi kawili-wili syntactic detalye. Ang juicy bahagi ng kurso ay ang pangalan ng programa, Hello. At iyon ang ginagawa nilikha para sa amin. Ito outputted file na para sa amin. Ngunit kung paano ang nakuha namin sa puntong iyon? Ngayon magtanong ng mga Hayaan tanong, ano ang talagang pagpunta sa dito, hindi bababa sa pagsasaalang-alang sa ilan sa ang syntax na ito? Kaya sa isang pangungusap o kaya, paano ba ipaliwanag namin ang layo ito ang unang linya na naka-highlight ng berde? Ano ang unang linya ng paggawa, may pagsasaalang-alang sa aking mga programa? Oo? MAG-AARAL: [INAUDIBLE]. David MALAN: Sabihin itong muli? MAG-AARAL: Kabilang at pag-download nakalipas na mga pag-andar [INAUDIBLE]. David MALAN: Mahusay. Kabilang ang, pero hindi ko sasabihin pag-download, ngunit sabihin nating kabilang ang mga function na ang mga tao na nakasulat sa nakaraan. At mga function na ito ay ipinapatupad sa isang lugar sa aking computer. May isang taong nagsulat ng file taon na ang nakakaraan, at na file ay isang lugar sa loob ng CS50 appliance, o sa aking hard drive higit pa sa pangkalahatan. At kaya ang linyang ito ay lubos na nagsasabi, pumunta makita na file, karaniwang I / O tuldok h, at kopya at i-paste ang mga nilalaman nito dito mismo sa tuktok ng aking mga file nang sa gayon ay hindi ako kailangang mag- gawin iyon nang manu-mano ang aking sarili. At kabilang sa mga juiciest piraso sa loob ng na file na namin na-claim na noon ay kung ano ang function? Ano ang function ng sinabi namin ay ipinahayag o nabanggit sa standard I / O tuldok h pinaka-malamang? Printf, tama? Hindi namin isulat ang printf sa Lunes, ito umiral lamang. Karamihan tulad lamang ang dumating Alana hanggang sa stage at siya lang umiral at alam kung paano gumuhit isang bagay sa screen, kaya ang printf umiiral para sa maraming mga taon. At kaya ito ay kung paano namin ma-access ito. Ngayon kung ililipat namin sa dito, pangunahing ay kahalintulad na namin sinabi sa mga piraso palaisipan na tinatawag na kapag nag-click berde bandila sa mundo ng scratch. Ito ay isang uri lamang ng default na pangalan na tao Nagpasya ay kumakatawan sa default na entry point sa isang programa. Ang chunk ng programming code na makakakuha ng unang pinaandar. Samantala ang mga kulot braces ay uri ng tulad ng Kurbadong hugis ng maraming mga kulay-dilaw na mga piraso sa simula. Sila uri ng encapsulate isang buo bungkos ng mga tagubilin nang sama-sama. Kaya lamang uri ng binds magkasama ilang mga nauugnay na pag-andar. printf ng kurso ay isang function na Pini-print screen, tulad ng ginawa namin lamang. Paano ang tungkol sa mga panaklong? Paano define-- mo kahit na hindi mo hindi kailanman-program bago, ngunit batay lamang ngayon sa isang pagtaas sana ay Swersey, kung ano ay ang mga panaklong paggawa para sa amin dito? O kung ano ang nakapalibot na sila? Oo? MAG-AARAL: Ang mga ito ay nagsasabi kung ano ka ng pagpunta sa i-print na may printf. David MALAN: Oo, ang mga ito ay nagsasabi kung ano ka ng pagpunta sa i-print na may printf. O mas pangkalahatang paraan, ang mga ito ay nakapalibot sa input sa function. Kaya maaari mong halos tingin ng mga panaklong bilang tulad ng metal clip na ito sa clipboard. Ito ay kung ano ang may hawak na ito, kung ano ang pagpunta sa magamit upang makapagbigay ng mga argumento sa pag-andar, na sa kasong ito ay tinatawag na printf. Kaya sa pangkalahatan ang halos anumang oras tinatawag naming isang function, pupunta kami tumingin ng isang pares panaklong. Siguro may isang bagay sa loob nito, tulad ngayon, siguro ay wala sa loob nito. Ngunit iyon kung saan nais mong ilagay ang input o tinatawag na argumento sa isang function. Narito ang isa tulad argumento. Naka-highlight ko na ang lahat ng bagay sa pagitan ng mga quote, dahil ito ay lumiliko out sa wikang ito na tinatawag na C, kapag gusto mong kumakatawan sa isang string-- na isang salita o parirala o kahit na isang paragraph-- mayroon kang mag- itong palibutan ng mga double quote. Hindi solong panipi, i-double quotes. At iyon mismo kung ano ang nagawa mo na ko dito. Samantala mayroong isang funky simbolo patungo sa katapusan doon. Ang backslash n. Ano ang sinabi namin na kinakatawan? Oo? MAG-AARAL: Ang isang bagong linya. David MALAN: Bagong linya. Mag-right, hindi mo gusto Sa pangkalahatan ay pindutin ang Enter kapag Gusto mo sa programa upang dumura out ng isang bagong linya. Sa halip mong sabihin dito tahasan na may ganitong admittedly arcane piraso ng syntax, backslash n, na nais mo ang isang bagong linya upang pumunta doon. Panghuli ang semicolon. Kami ay hindi talaga makipag-usap Masyadong marami ang tungkol dito, at sa pamamagitan ng malayo ito ay ang bane ng ilang ng iyong pag-iral sa unang problema itakda, kapag nabigo ka lamang sa mapagtanto nakalimutan mo ang isang bagay tulad ng hangal bilang isang semicolon. At sa pangkalahatan ay paglalagay ito magkakaroon ayusin ang problemang iyon. Ngunit kung ano ang ginagawa nito para sa atin, nais mong sabihin? MAG-AARAL: [INAUDIBLE]. David MALAN: Paumanhin? MAG-AARAL: [INAUDIBLE]. David MALAN: Tinatapos ang isang pahayag. Ito ay uri ng tulad ng panahon sa ang dulo ng isang Ingles pangungusap, samantalang sa wikang ito C ito ay nagtatapos sa isang statement. Ang isang pagtuturo ng programming code na gusto mo lamang na sabihin, Tapos na akong mag may ito. Ngayon mapansin na ang isa lamang dito. Kaya hindi mo nais na makipag- isang ugali ng paglalagay ng semicolons pagkatapos ng bawat closed panaklong. Halimbawa mayroong none sa tabi ng walang bisa, at idedetalye namin bumalik sa hinaharap sa kung ano ang walang bisa paraan. Ngunit sa kasong ito ang iyong printf ay isang function, o isang pahayag na ginagamit, at kaya gusto naming magkaroon na Terminus sa pinakadulo ng ito. At sadyang ako pagpili sa C. At tapat ng maraming mga wika tulad ng C, C ++, Java, JavaScript, at anumang bilang ng mga iba pang mga wika ay mayroon ng maraming mga uri ng syntactic mga detalye. Iyon ay tiyak kung bago ka sa iyo programming maaari na tunay na trip up ka. At ikaw, markahan ang aking mga salita, ilan sa inyo ay may karanasan na ito sa oras ng opisina o late sa gabi nagtatrabaho sa ilang mga p-set, kung saan damn iyong programa lamang ay hindi mag-compile, hindi ito tatakbo, mayroon kang walang ideya kung ano ang mali, ito ay tila ganap lohikal na tama para sa iyo. At ito ay dahil nakalimutan mo isang bagay tulad ng pagpindot may semicolon sa dulo ng ilang mga linya. Ngunit narito ang mga uri ng mga bagay na ikaw ay pagpunta sa matuto agad upang makita. At sa katunayan ito ang mga bagay na at tf ni ang CA ay may Na-uri ng mga sinanay upang makita mas mabilis kaysa sa iyo. At kaya ito ay lamang na sabihin, tulad ng sa iyo dive sa problema magtakda ng 1 lalo na, huwag makakuha ng Nadidismaya sa pamamagitan ng mga bagay-bagay na ito. Sa sandaling na-uri-uriin ng acclimate sa mundo, ikaw uumpisang makakita ng bagay na hindi mo maaari makita sa unang sulyap na ito sa unang linggo. Kaya source code ay isang bagay tulad na. Gusto naming upang pumasa ito sa ng tinatawag na Compiler. At na Compiler bilang sinabi namin ay nagbibigay ng output na kilala bilang object code, ang tinatawag na mga zero at mga bago. Ngunit mula doon, ano ang na bigyan kami ng? Well ito ay nagbibigay sa amin ang mga pattern. At muli ang iyong computer, ang iyong Intel sa loob, Naiintindihan ng mga pattern ng mga zero at mga bago. At kung minsan ang pattern ay kumakatawan sa isang aktwal na numero ng decimal bilang nakita natin noong nakaraang linggo, paminsan-minsan ito ay kumakatawan sa isang titik tulad ng nakita natin noong nakaraang linggo, paminsan-minsan ito ay kumakatawan sa isang pagtuturo, tulad ng pag-print ng isang bagay sa screen. Kaya printf para sa instance-- ngunit sa halip, hayaan mo akong rewind. Na-pagkuha namin para sa ipinagkaloob na mga zero at alin ang nagawa sa pamamagitan ng command na ito make. Ngunit make ay hindi isang Compiler. Gawing ay hindi ang bagay sa gitna na gumagawa ng mga zero at mga bago. Sa halip ay gumawa lamang ng isang napaka Maginhawang pinangalanang programa kung saan ang layunin sa buhay ay mahalagang upang malaman kung kung paano upang ipunin ang iyong programa. At ginagamit namin ito sa mga unang linggo sapagkat ito lamang Sine-save ng sa amin ng maraming mga problema. Ngunit ano gawin ay talagang ginagawa noong compile mo kumusta, ay, tulad ng sinabi namin huling oras, ito ay naghahanap sa iyong hard drive o sa kasalukuyang folder, para sa file na tinatawag na ano, tila? Hello.c, tama? Iyon lamang ang uri ng isang convention. Ito ay di-makatwirang, ngunit iyon ang paraan ng bagay ay. Gawing, kung tinukoy mo lang ang pangalan ng isang programa na hindi pa umiiral, ito ay pagpunta sa hanapin ang source code sa isang file, sa pamamagitan ng default ay nangangahulugan hello.c. At kung nahahanap nito ito, mahusay. Ito ay pagpunta sa convert na mapagkukunan code sa object code para sa iyo. Subalit ang bawat oras na-hit ko Ipasok ang pagkatapos tumakbo ang gumawa kumusta, gawin mo pagpapabalik nakakakita ng huling beses sa isang medyo mahaba at cryptic pagkakasunud-sunod ng iba pang mga puting titik at mga character sa screen? Well na noon ay ang aktwal na utos, ang aktwal na Compiler, na tumatakbo. Kaya ang aktwal na Compiler gagamitin namin ang karamihan sa ang semestre ay isang bagay na tinatawag na clang. Ang ilan sa iyo ay maaaring magamit Visual Studio bago, o GCC, o anumang bilang ng iba pang mga compiler. Gagamitin namin clang. At nagbibigay-daan clang amin upang aktwal na-convert na source code sa bagay code. Ano ang aktwal na ito ibig sabihin sa pagsasanay? Well hayaan mo akong pumunta sa isa sa ang aking mga folder mula sa huling beses. Sa loob ng CS50 appliance. At ipaalam sa akin sige at lumikha ng mga ito parehong file, isama ang karaniwang I / O tuldok h. Int pangunahing walang bisa. At kami ay bumalik sa hinaharap bilang sa kung ano ang int paraan at kung ano ang walang bisa paraan. Ngunit ni gawin para sa ngayon hayaan kumusta mundo backslash n, i lamang ginawa namin sa board. Hayaan akong i-save ang file na tinatawag na hello.c. At ngayon kung gusto kong i-compile ito Could-- ko hayaan mo akong mag-zoom in-- run gumawa kumusta ang enter. At ito muli noon ay na ang pinaka cryptic linya. Ngunit ngayon ng hindi bababa sa isang salita marahil jumps out sa iyo. Clang ay na linya ng nakita natin dati. Ngayon ay mayroong maraming iba pang mga bagay-bagay tapat na makikita iwagayway namin ang aming mga kamay sa ngayon. Ngunit mayroong ilang mga subset, ng ilang mga character in dito na ng interes. Ngunit Pupunta ako sa magpatuloy at gawin ito. Pupunta ako sa unang pagtakbo kumusta, upang patunayan lamang na ito ay gumagana ang mga ito Lunes. Ngunit ngayon pupuntahan ko tanggalin ang program. At tulad namin ay may mga maikling pangalan ng huling oras, ang command para sa pag-aalis isang bagay ay Rm, alisin, ipasok. Ka pagpunta upang makakuha ng ilang medyo cryptic tanong. Hard upang maniwala na maaari mong gawin kahit mahirap ang tanong na ito upang maunawaan. Ngunit alisin regular na file kumusta lamang paraan gawin gusto mong tanggalin kumusta. At maaari kong magpatuloy at i-type ang y para sa oo, Ipasok, at ngayon ito ay nawala. Ano ang ibig sabihin nito ngayon, kung i-clear ko ang aking screen, ay na sa halip ng paggawa gumawa hello-- mo malaman kung ano ang, nakakakuha ako ng magandang sa ito. Pupunta ako sa magpatakbo ng mga Compiler aking sarili. Hindi ko kailangan ang ilang mga programa sa malaman kung ano ang aking file ay tinatawag na. Isinulat ni ko hello.c, ako malaman kung ano ang tawag dito, Ako ay malinaw na may kakayahang mag-type na iyon. Kaya pupuntahan ko sige at huwag clang hello.c ang Enter. Mukhang gumagana. At walang karagdagang output, dahil clang ay ang Compiler. Ito ay kung ano ang nagko-convert ang source code sa mga zero at mga bago. Kaya kung ngayon gagawin ko tuldok iwa kumusta Ipasok, Hm. Bagong mensahe ng error na ngayon. Kaya Bash lamang ang pangalan ng kumikislap prompt na ginagamit namin. Iyon ay isang gross oversimplification, ngunit sa ngayon na ang lahat ng iyon ay, ito ay ang mga kumikislap prompt. At iyon ang dahilan kung bakit ito ay yelling sa amin. Walang naturang file o direktoryo ay higit prangka ng kaunti. Ngunit tiyak na ginawa ko na object code. Ngunit ang catch ay, na kung nagta-type ako ang command na upang ilista ang mga nilalaman ng direktoryo, na kung saan ay kung ano? ls para sa listahan. Mayroong isang bungkos ng mga bagay-bagay sa dito, ang ilan sa kung saan ay dumating sa appliance, tulad ng aking mga folder Desktop, Downloads folder, Dropbox folder, at lahat ng na mga bagay-bagay. Ngunit kung ano ang kawili-wiling ay hello.c, na Lumikha ako ng ilang sandali ang nakalipas sa gedit. At ano ang weirdest naghahanap ng pangalan in dito, marahil na ginawa namin hindi tingnan ang huling oras sa lahat? a.out, tama? Kaya pabalik sa araw, ay nagpasya lamang na kapag compile ka ng isang programa sa unang pagkakataon, at hindi mo tukuyin ang pangalan ng ng isang file, tawagan ni ito ng ipaalam. At a.out ay nangangahulugan lamang na ito ay ang output ng Compiler. Kaya ito ay isang horrible pangalan para sa isang programa. Ngunit sa pamamagitan ng na logic, tuldok iwa para sa kasalukuyang direktoryo, iwa a.out, dapat ibig sabihin mayroong sa katunayan aking kumusta mundo programa. Ngayon ng kaunti magpainit ehersisyo, masyadong. Kung gusto kong palitan ang pangalan na ito file, lumiliko out na sa iyo ilipat ang isang file mula sa isang pangalan sa isa pa. Kaya mv a.out, at pagkatapos ay ako maaari itong tumawag kumusta ang Enter. Kaya ito ay isang command sa Linux. DOS nagkaroon ito taon na ang nakakaraan, May isang terminal na window ng Windows ng isang uri na mukhang tulad nito, Linux at Mac mga computer ay may kumikislap na ito prompt. Kahit na ang karamihan sa amin marahil bihira, kung kailanman, gamitin ito. Ngunit kung ano ang nagawa ko ay magpatakbo ng isang programa, na ang pangalan ay mv, at nagbigay ako ng ito sa dalawang argumento, kaya na magsalita. Dalawang input. a.out ay ang orihinal na pangalan. Kamusta ay ang bagong pangalan. Kaya kung ngayon gagawin ko tuldok slash kumusta, Ipasok, na umiiral na. At kung gagawin ko tuldok slash a.out, ano ang gagawin mong asahan ang dapat kong makita? Bash, walang tulad file o direktoryo. Dahil lamang Pinalitan ang pangalan ko ito. Kaya ito ay tumatagal ng kaunting nagsisimula pa sanay. Ngunit itakda ang problema 1 pagtutukoy ay tunay na hahawakan ng iyong mga kamay sa pamamagitan ng ilan sa mga ito minutae. Dahil ito ay isang kumpletong intelektwal na distraction mula sa mas kawili-wiling ideya sa kamay, na ay talagang paglikha isang bagay out ng code. Ngunit gawin ng isang pagbabago ipaalam ngayon sa programang ito. Isipin na ang huling beses na ginawa ko ng damit tulad nito, printf sabihin ang iyong pangalan. At sa katunayan ginawa ito namin lamang sa malaking screen doon. At pagkatapos ay ginawa ko string s ay makakakuha ng GetString bukas paren, malapit paren. At paren lamang shorthand pagtatanda para sa panaklong. Kaya ang GetString gumawa ng anumang mga argumento? Walang input hindi, ngunit ito Kailangan ng mga panaklong, dahil iyon ang demarcates ang pagtawag ng isang function. Kaya pupuntahan ko at susubukan sa tumakbo ang Compiler sa programang ito ngayon. Clang hello.c, dahil ako ay hindi baguhin ang pangalan nito sa ngayon. At Nakakuha ako ng isang bungkos ng mga error. Ni-zoom out dito Hayaan. Kung mag-scroll pataas ko muli, tulad ng sinabi ko huling beses, sa una, parehong error na ang nakuha ko huling beses. Sa 6 na linya ng hello.c ako nagkaroon ng undeclared identifier string, ang ibig kong sabihin standard in? Ako ang hindi. Dahil kung ano ang pagkakamali ay may ginawa ko ito sa programa, kung isipin mo mula sa nakaraan? Oo, kailangan namin ang tinatawag na mga gulong pagsasanay na lang namin makikita gamitin para sa ilang linggo. Ngunit kailangan ko upang tukuyin iyon din, sa isang lugar sa loob ng appliance, ay isang file na aming sinulat ni lamang ng ilang taon na ang nakakaraan. Sa loob ng na mga function tulad ng tila GetString. Kaya ngayon kung pumunta ako pabalik down na dito, mag-zoom in, at muling patakbuhin clang hello.c. Damn, isa pang error. Ngunit hindi pa namin nakita ang isang ito bago. Isa na ito ay isang kaunti pa Esoteric upang malaman kung. Ngunit ito ay sadyang sa screen, dahil gusto naming sabihin sa kuwentong ito. Kapag compile mo hello.c, tulad lamang ng larawan mula sa bago iminungkahing, ka lamang nagko-convert na source code sa mga zero at mga bago. Ngayon kawani CS50 ng ilang taon na ang nakalipas ay nagsulat CS50.h, at isang katumbas na file, CS50.c. At kami, ilang taon na ang nakaraan, pinagsama-sama ang mga file sa isang file na mangyayari na tinatawag na CS50.o. O maaari itong palitan ang pangalan ng isang ilang iba't ibang mga bagay. Ngunit iyon lamang ang isang simpleng paraan ng pag-iisip tungkol dito. Kaya pinagsama-sama namin CS50 ni library sa mga zero at mga bago. Ngunit wala saan ay tinukoy ko na gusto kong pagsamahin ang aking zeroes at mga bago para sa aking kumusta mundo programa na may mga zero at mga nilikha ng ilang taon na ang CS50 kawani ang nakalipas sa isang kumpletong programa. Ang lahat ng iyong tinukoy ko sa pamamagitan ng pagsulat clang hello.c ay makatipon ng hello.c. Hindi ko na sinabi clang sa link sa mga zero at mga na CS50 kawani nilikha para sa iyo ang ilang mga oras ang nakalipas. Kaya ito ay isang madaling pag-aayos, Dash l para sa link, CS50. At kami muli makita ito bago mahaba muli at muli. Ngunit mapansin ngayon walang mga reklamo. Kaya ngayon kung nagpatakbo ako ng tuldok slash kumusta na, ngayon, ito ay gumagana. Kahit na ang isang bit mapanligaw dahil recreated ko lang kung ano ang file? a.out. Kaya ipaalam sa akin rewind para sa sandali lamang. Ang programa ng pinagsama-sama namin lamang may tatlong linya ng code. Kapag nagpatakbo ako kumusta mundo, kumusta ng ilang sandali nakaraan, hindi ko nakita sabihin ang iyong pangalan. At iyon ay dahil nagpatakbo ako ang lumang bersyon ng program. Ngunit kung sa katunayan ko patakbuhin ang tuldok slash a.out Ipasok, sabihin ang iyong pangalan, Rob, kumusta, mundo. Hm. Iyon ang uri ng isang bug. Malamang sinadya upang sabihin Rob, tama? Kaya kung ano ang pag-ayos dito sa code. MAG-AARAL: [INAUDIBLE]. David MALAN: Eksaktong. Kaya kailangan ko lang gawin na huling tweak kaya na ako ang pagpasa sa isang placeholder, tulad ng isang fill sa blangko, tulad ng ginawa namin ng ilang sandali ang nakalipas. Ngunit porsiyento s ay ngayon na punan ang mga blangko. Kaya ni magbunyag ng isang huling Panghuli ipaalam detalye sa gayon ay walang magic. Pupunta ako sa sige at mapupuksa ang hellow. Pupunta ako sa sige at mapupuksa ang a.out. Kaya ngayon wala akong mga programa, na lamang ang aking source code. At Pupunta ako sa magpatakbo ng isang bahagyang na utos, clang Dash o kumusta hello.c gitling LCS50. Ngayon ito ay nagsisimula sa isang uri ng pumunta sa isa tainga at out ang iba pang mga marahil. Ngunit tease lamang ang pagitan sa kung ano ito ay ginagawa. Clang ay ang Compiler, gitling LCS50 sadyang sa dulo napaka ginagawa kung ano sa isang pangungusap? Link sa CS50 library. Grabs ang mga zero at mga bago na ginawa ng mga kawani at crams ang mga ito sa aking sariling programa. Kaya ang huling tanong sa kamay ay, ano ang gitling o kumusta marahil paggawa, kahit na hindi mo kailanman Nakita ang syntax na ito bago? Outputting isang programa na Hindi pinangalanan ang default a.out. Sa halip ito ay pinangalanan kumusta. Kaya ngayon ay walang a.out. Walang naturang file o direktoryo, dahil tahasan kong sinabi tumawag sa programang ito kumusta, upang Maaari ko ngayon type ng isang pangalan tulad na at mayroon itong kumilos. Ngayon tapat, na batang lalaki ay na hindi kawili-wili upang magkaroon ng tandaan ang lahat ng na maliit minutia, tama? Kaya sabihin sige at makakuha ng rid ng kumusta muli. At ngayon ay bumalik sa isang mundo sa ipaalam saan ito suffices upang sabihin gumawa ng kumusta. Ngunit iyon ang magic na gumawa ay ang magawa para sa iyo, iyon ang tedium na ito ang ginagawa para sa iyo. At bilang aming mga programa at mga problema makakuha ng mas kumplikado, gumawa ay tunay na maging kaibigan mo. Dahil hindi masyadong mahaba mula ngayon kami ay pagpunta na magkaroon ng mga programa na nakasulat Hindi na may isang file, ngunit maraming mga file, at gawin ay i-automate ang proseso ng kino-compile ang lahat ng iyon para sa amin sama-sama. Kaya ngayong mag-print. printf ay nasa loob ng file na ito, karaniwang I / O tuldok h, na nasaksihan namin dati, ngunit mayroon pa sa printf kaysa iyon. Mayroong backslash n, ngunit mayroon ding isang bungkos ng iba pang mga pagkakasunud-sunod ng escape. At escape sequence ay isa lamang magarbong paraan ng pagsabi ng isang bagay na nagsisimula sa isang backslash, hindi isang pasulong na slash, ang isang backslash, at ang ilang mga espesyal na bagay. At hindi namin dwell sa karamihan sa mga ito, ngunit kung bakit ay may backslash double quote, palagay mo? Bakit mayroong ito kakaiba pagkakasunud-sunod ng character, backslash double quote, kung bakit maaaring maging kapaki-pakinabang na? MAG-AARAL: [INAUDIBLE]. David MALAN: Eksaktong, tama? Isipin pabalik sa aming mga programa kumusta mundo na nakakita kami masyadong nang ilang beses ngayon, tuwing nakakita kami na kumusta mundo programa ay nagkaroon kami ng mga double quote sa loob na kung saan ay kumusta kuwit mundo backslash n. Ngunit sa tingin sa iyong sarili, ano kung ikaw talaga Nais upang mag-print ng mga quotation mark? Ang iyong unang instinct maaaring, gawin ko hindi malaman kung bakit ako maaaring naising mai-do-- dito, maaari naming maging isang maliit na tinig agresibo, kumusta kaibigan. Maaaring gusto naming gawin ang isang bagay tulad na. Ngunit may problema ngayon sa kung bakit ito? Pagbalewala sa mga kulot quote bukod na pangunahing tono awtomatikong ginawa para sa amin. Bakit ito ay may problemang? Mismong. Dahil mayroon kaming tulad ng 4 na mga panipi. Well ang unang isa marahil napupunta sa ikalawang isa, at marahil ang isang ika-apat na napupunta sa third isa, o, ibig kong sabihin Hindi ako kahit sigurado, at hindi rin sa computer ng pagpunta sa maging. Muli mga computer, compiler muli, ay medyo pipi. Makikita lang nila kung ano ang gagawin sabihin mo ang mga ito upang gawin. At kung hindi ka pa unambiguous sila marahil ay pumunta upang ihagis ng error. Kung hindi ka unambiguous bilang sa kung paano i- gumawa ng peanut butter at halaya sanwits maaaring dumating kakaibang bagay. Ito ay ang parehong mga ideya. Ngayon suffice ito upang sabihin na mayroong ilang iba pang escape sequence, ngunit kami ay pumupunta sa mga bago mahaba. Mahalaga ang mga pagtakas kumakatawan sa mga pagkakasunud-sunod ng isang bagay na maaaring hindi mo magagawang Masyadong madali sa keyboard, nang hindi nakakalito ang computer. Ngayon samantala mayroon kami mga placeholder sa printf. Porsyento d, kung saan ay maaari ding nakasulat na sa halos lahat ng mga kaso bilang porsyento i, ay isang placeholder para sa kung anong uri ng data? Anong uri ng halaga? Isang decimal na numero. Kaya aktwal na magsisimula kami gamit porsiyento i dahil ito ay medyo simple, tulad ng isang integer. Porsyento i. Isang integer na ang mangyayari sa maging decimal. Porsyento s namin na sinabi noon ay isang placeholder para sa isang string. Aling ay isang salita lamang, isang parirala, isang talata, isang sanaysay, kahit anong. Ito ay isang pagkakasunod-sunod ng character ng ilang haba. At kami makita bago mahaba ang ilan sa mga iba. Ngunit porsiyento c ay para sa isang solong character. Porsyento f ay para sa isang lumulutang na numero punto, tulad ng isang tunay na numero na may isang decimal point sa loob nito, na ay siyempre hindi isang integer. At mayroong isang buo bungkos ng iba pati na rin. Samantala sa C, at ng maraming mga wika, mayroon kaming iba't ibang mga uri ng data. Iba't ibang uri ng glass bowls kung gagawin mo. Mangkok ang ginamit ko huling beses ay para sa ping pong ball, ngunit maaari kaming mag-imbak din ng iba't ibang mga halaga tulad ng char at mga string at integer sa isang lalagyan, tulad ng isang variable, at C ay mga. Char ay ang uri ng data, ang uri ng variable, kung saan maaari kang mag-imbak ng character. Float ay isang uri ng variable sa kung saan maaari kang mag-imbak ng real number. Int ay siyempre para sa isang int. At sa halip ridiculously pinangalanan ng mahabang mahaba ay kung saan maaari kang mag-imbak ng mahalagang isang talagang mahaba ang numero, na may mas higit pa digit pagkatapos ng tipikal na int maaaring store. Ngunit kami ay bumalik sa na bago ang haba. Sa CS50 tuldok h samantala ang iba pang mga header ng file na nakakita kami ng ilang beses sa paggamit, mayroong dalawang iba pang mga uri ng data na hindi umiiral sa C karaniwang. Ang isa ay string, at kami makita sa ng ilang linggo kung ano talaga ang string ay sa ilalim ng hood. At ang isa ay bool. At isang bool ay isang variable na ay makakakuha lamang ng sa ilang mga halaga. At batay lamang sa huling linggo ng paliwanag ng simula, at higit pa kamakailan C, kung ano ang nais mong hulaan ay ang dalawang mga posibleng halaga para sa ang ilang mga lalagyan na ng uri bool? Oo at hindi. Isa at zero. Totoo o hindi. At sa katunayan ito ang huling na may gawi maging maginoo sa isang programming wika, na sinasabi ng isang bagay tulad ng totoo o hindi. Samantala ang CS50 library ay may isang bungkos ng pag-andar na ang mga tauhan ay sumulat para sa iyo, bukod sa pagkuha lamang ng isang string. Isinulat ni namin nang maaga mga pag-andar na Maaari makakuha ng isang integer mula sa user, makakuha ng isang solong character, makakuha ng float, na ay isang numero lamang gamit ang decimal point. Kumuha ng isang mahaba ang haba, isang talagang malaking halaga mula sa user. Kaya nakita lamang namin ito sa pagkilos sa anyo ng GetString. Ngunit sa pamamagitan ng mga pag-andar Malapit nang magawang sumulat mga programa na makakuha ng input mula sa user. Samantala isaalang-alang na ito programa, at isaalang-alang kung paano maaaring namin ngayon simulan upang magdagdag ng dito sa bagong constructs. Ang isang mabilis na whirlwind tour at pagkatapos ay titingnan namin sa ilang pagsusulat ng ilang mga programa nang manu-mano ang ating mga sarili. Henceforth kung gusto naming ipatupad ang isang kondisyon, hindi ito ng pagpunta sa hitsura ng isang magaling kaunti medyo puzzle piraso. Ito ay pagpunta sa hitsura higit pa ng kaunti arcane. Ngunit ito ay ang canonical istraktura ng isang kondisyon sa C. Ang salitang kung, dalawang panaklong, sa loob ng na ay magiging ilang mga uri ng Boolean expression. Ngayon ang slash slash sa gitna, ito ay sa sandaling ito uri ng tulad ng placeholder code pseudocode. Ngunit higit pang maayos, ang anumang mga linya ng code sa C na nagsisimula sa slash slash ay isang komento. Ito ay tulad ng mga sticky tala na maaari mong ilagay sa isang sanaysay, nakalimbag sa papel. Ito ay isang paalala para sa iyong sarili. Wala itong functional epekto sa programa. Ito ay isang uri ng paalala, ito ay ang iyong sariling dokumentasyon bilang sa kung ano ang nangyayari sa. Kaya gawin ito sa sandaling ito ay isang uri ng isang placeholder para sa kahit anong loob ng mga kulot braces Sa kalaunan ay pagpunta sa gawin ang isang bagay. Samantala mayroon kang dalawang tinidor sa kalsada, isang kung tao bumuo ng mga tulad nito. Maaari mo kung, elseif, iba pa. Ngayon ay nagkakahalaga ng tandaan, lalo na kung ikaw ay Googling sa paligid online na mapagkukunan para sumali sa usisa, o kung pick up isa sa mga kurso ng pinapayong mga libro sa C, makikita mo na mayroon ang mga tao ay may maraming ng iba't ibang mga kagustuhan para sa kung paano upang ipahayag ang kanilang mga sarili sa code. Ang ilang mga tao na nais na ilagay ang kulot braces bilang nagawa mo na ko dito. Ang ilang mga tao na nais na ilagay ang kulot braces halimbawa up dito. Ang ilang mga tao na nais na ilagay ang elses up dito at pagkatapos na ito sa paglipas dito. Mayroong anumang bilang ng mga paraan upang pagpapawalang code, at wala sa kanila ang ay tama per se. Bagaman mayroong ilang na medyo mali. Ngunit may mga no-- kung ito sa huli isang napaka relihiyoso debate. Sa katunayan, ang isa sa mga pinaka-nakakainis bagay tungkol sa computer science ay kung paano opinionated mga siyentipiko computer ay maaaring maging. At makikita mo ang sa paglipas ng panahon na kahit na kang bumuo ng personal na kagustuhan bilang sa kung paano dapat ang hitsura ng iyong code. Hindi lamang kumilos, hindi lamang lumikha ng output, ngunit kung paano dapat ang hitsura nito aesthetically. Kaya kung ano ang gagawin namin ay gagabay sa iyo sa ang daan patungo, sa ngayon hindi bababa sa, isang karaniwang estilo CS50 na hindi bababa sa Pinapanatiling bagay na pare-pareho at madaling basahin. Ngunit higit pa sa mga pagkakakilanlan bago ang haba. Ang isang Boolean expression sa C, kung ikaw Nais upang sabihin kung ang kundisyong ito ay totoo at ito ng iba pang mga kondisyon ay Totoo, hindi mo isulat ang salitang at, gaya ng ginagawa mo sa Ingles. Sa halip mong gamitin ang ampersand ampersand, para sa mga kadahilanang magpapadala kami bumalik sa. Kung nais mong sabihin o gumamit ka ng dalawang patayong bar, na sa isang US na keyboard ay pangkalahatan sa itaas ng mga Magpasok susi sa tabi ng backslash. At ito lamang ay nangangahulugan na kung ang kundisyong ito o ito ng iba pang mga kondisyon ay totoo gawin ito. Samantala mayroong ito na nakatutuwang bagay, na magkakaroon ka ng pagkakataon gamitin nang isang beses sa sandali. Ngunit ito ay isang alternatibong lamang paraan upang ipahayag ang iyong sarili. Ito, para sa ngayon, sabihin stipulate, ito ay lamang isa pang funky paraan ng pagpapahayag ng kung, elseif, elseif, elseif, elseif. Lamang ito ay na-format sa tuntunin ng mga kaso, kung saan mo nang literal enumerate ang mga halaga na baka gusto mong suriin para sa. Samantala loop. Nakita namin ang isang paghahambing ng Scratch sa isang loop. At pupuntahan ko iwagayway ang aking kamay sa ano ang ibig sabihin sa bawat isa sa mga bagay na ito. Ngunit napansin na ang isang loop ay napaka madalas na magsimula sa mga keyword para sa. O kaya ito ay magsimula sa mga keyword habang. O kaya ito ay magsimula sa mga keyword gawin, at magtapos sa mga keyword habang. Ngunit ano kami ay tungkol sa upang makita ang ay mga bagay na higit na katulad na ito. Narito ang, sa pangkalahatan sa C, kung paano mo maaari idedeklara isang variable at bigyan ito ng isang halaga. Sa C hindi ito suffice, tulad ng sa simula, lamang sa iyo sabihin ninyo akong bigyan ng variable na tinatawag na isang bagay isang. Mayroon kang upang sabihin sa C, at sabihin sa ang iyong Compiler, higit na partikular, kung anong uri ng halaga gagawin mo gusto ang ilalagay sa salamin mangkok ang. Ito ba ay isang integer? Kung gayon, mayroon ka sa Literal na sabihin int at pagkatapos ay ang pangalan ng variable, pagkatapos ay may semicolon. Kung sa halip ay nais string at tinawag ito s tulad ng ginawa ko ang aking code dito ngayon, Gusto mong sabihin semicolon string s. Sa sandaling gusto mong bigyan ito ng isang halaga pagkatapos ay maaari mong gamitin ang katumbas sign, kung hindi man ay kilala bilang pagtatalaga operator. At pansinin kung paano ang bawat isa ng mga linya ng code may semicolon sa dulo ng ito. Ngunit tapat ito lamang mukhang ng kaunti pangit. Bakit hindi ko masabi sa computer, magbigay sa akin sa isang variable at initialize ito sa zero. Iyon ay kung, ninyo akong bigyan ng walang laman na mangkok glass. Habang magagawa mo na. At kaya isa sa mga paghatol tawag ka na kailanman kailangang gumawa stylistically sa paglipas ng panahon ay, huwag mo isulat ang iyong code tulad nito, o huwag mo uri ng linisin ito up at mapabilib mga tao sa pamamagitan ng pagsusulat ng dalawang linya bilang isa lamang. At ito ay ituturing na Sa pangkalahatan ay isang mas eleganteng paraan ng pagsusulat ng iyong code stylistically. Mga Function kami siyempre nakita. Ang mga ito ay pagpunta sa tumagal ng format na ito. Ang pangalan ng isang function, ang ilang mga panaklong, at pagkatapos ay marahil ilang bagay-bagay sa loob. O maaari kang makakita ng mga paggamit ng maramihang mga pag-andar gilid sa pamamagitan ng bahagi, tulad ng isang bagay na katulad nito. Ngayon bilang isang tangent, ginagawa ito Joke gawin ngayon pakiramdam? [Tawa] Hindi ito ang ibig sabihin ay nakatatawa, ngunit ito ay marahil gumawa ng kaunti pa sa kahulugan. Kaya ngayon sabihin pumunta sa CS50 appliance para sa isang sandali. At hayaan mo akong magbukas ng isang teaser dito. At sa katunayan isa sa mga dahilan para sa nagpapakilala sa IKEA katalogo at kumikislap na mga larawan ng iPhone nang kaunti ang nakalipas ay upang aktwal na itali sa sama-sama ang katotohanan na lamang ng ilang taon na ang nakakaraan, noong 2007, ito piraso ng code ay inilabas, na isa sa mga unang pagpapatupad ng isang piraso ng software na ginagawa kung ano ang tinatawag na jailbreaking. Para sa mga pamilyar, jailbreaking isang bagay tulad ng isang telepono o isang iPhone Nangangahulugan mahalagang pag-uunawa kung paano gawin ang mga bagay may ito na ang kumpanya na ginawa hindi ito nilayong. Tulad ng gusto mong i-install ang ilang mga software na hindi sa store app, jailbreaking iyong telepono na gawin mo ang mga bagay tulad na at higit pa. Ngunit kung ano ang masaya sa 2007-- at doon Naging dose-dosenang mga iba't ibang mga bersyon ng mga bagay na ito mula noon, sa lahat ng uri ng languages-- ay na ito ng programa dito, na tinatawag na iUnlock, ay aktwal na nakasulat sa C. At kaya ko na nakuha up ang source code para sa na ito, lamang sa uri ng magpakita ng ilang ka ng ang pagkakatulad na may constructs Na-tatalakayin natin kaya sa ngayon. Ngayon ay mayroong paraan higit pang kumplikado dito kaysa nasaksihan namin na sa klase. Hayaan akong mag-scroll pataas lamang nang kaunti dito. Ngunit mapansin these-- na rin mapansin kami ng ilang things-- ngunit mapansin ang mga linyang dito, kabilang ang standard I / O tuldok h. At all-- linya 24, please-- mapansin standard I / O tuldok h at ng buong bungkos ng iba pang mga mga file na tila iba pang mga tao isinulat. At kung mag-scroll namin pababa sa ito, kaunti nagkataon, abisuhan Hindi ko alam kung paano magsulat ang lahat ng ito sa aking sarili kinakailangan pa, ngunit mayroong kung. Kaya tila na ito ay may isang branch. At kung mag-scroll ko pababa ng kaunti higit pang mayroong isa pang kung. Kung mag-scroll ko up, sa palagay ko humigit-kumulang 100 linya Nakita ko para sa. Kaya hindi ako masyadong sigurado paano pa ito gumagana, ngunit ito ay isang para sa loop na pupuntahan hayaan mo akong umulit ilang bilang ng beses. At kung mag-scroll ko ang lahat ang daan sa ibaba Nakikita ko na mayroong isang gumana down na dito na tinatawag na pangunahing, at ilang mga karagdagang mga kredito para sa iyong pagbabasa kasiyahan. Kaya ito ay lamang sa say-- at maglalagay kami ng ito online sa pinagmulan ang kurso ni code today-- na kahit na ang ilan sa mga aparato na lubos naming para sa ipinagkaloob, sa pagtatapos ng araw na hindi mo pa rin gamitin ang mga pangunahing constructs na hindi namin Na-nagpapakilala na kaya sa ngayon. Tama na ng isa na iyon. Ang lahat ng mga karapatan, kaya ngayon sabihin aktwal na bumuo ng isang bagay. Sabihin higit pa sa isang bagay tulad ng hello.c, at buksan up na ito, magsulat ng programang ito dito ipaalam. Pupunta ako sa magpatuloy at magsulat ng isang programa na tinatawag na adder.c, na kung saan ang layunin sa buhay ay magiging tulad ng aking unang sobrang simple calculator na lamang ay nagdaragdag ng isang pares ng mga numero. Hindi dahil na isang hard problema, ngunit dahil ito Binibigyang-daan sa akin upang itali ngayon nang sama-sama ang ilang mga bagay. Kaya ako pagpunta sa sige at isama karaniwang I / O tuldok h at CS50 tuldok h. Pupunta ako sa sabihin int pangunahing walang bisa. At muli sa hinaharap magpapadala kami bumalik dito sa in sa kontekstong ito at walang silbi ang paraan. At ngayon pupuntahan ko sabihin ng isang bagay tulad ng printf, bigyan ako ng integer. At ngayon sa aking pangalawang linya, paano ko ipahayag ang aking sarili tulad na gusto kong ipinapahayag sa isang variable na pupuntahan upang mag-imbak sa isang int? Literal ano ang gagawin nagta-type ako kapag gusto kong lumikha ng isang variable na nag-iimbak sa isang int Gusto mo sabihin? int isang katumbas getint. Oo naman, kaya na gumagana. At para lamang sa pagkakapare-pareho kasama ang code idedetalye mo makita sa online, hayaan mo akong pagbabago ito sa x, dahil lang x ay isang pangkaraniwang pangalan ng variable para gamitin, hindi bababa sa algebra. Ngayon ipaalam sa akin sige at huwag printf muli. Bigyan mo ako ng isa pang integer. At ngayon Pupunta ako sa uri ng matuto mula sa pattern na iyon, Pupunta ako sa sabihin ay makakakuha ng int y sa GetInt. At hindi na namin gagamitin GetInt dati, ngunit lamang tulad ng GetString pupunta at nakakakuha ng isang string, tulad ng Javier ginawa mula sa madla, katulad ang GetInt simulan ng nagbi-blink ang prompt. At epektibong naghihintay para sa user upang bigyan ito ng isang integer, sa pamamagitan ng pag-type ito sa at pagpindot ng Enter. Ngayon Panghuli Pupunta ako sa gawin ito, printf ang kabuuan of-- at hayaan mo akong makakuha ng magarbong now-- porsiyento i porsiyento at i ay naroroon exclamation point i backslash n. At ano ang gagawin sa tingin mo pupuntahan ko maglagay sa ngayon bilang karagdagang input sa printf? Hindi ko nais na sabihin Literal na quote unquote x. Gusto kong klase sa x at pagkatapos, at ngayon sabihin makakuha ng magarbong at hayaan ang ipinapalagay ni lamang maaari naming gawin kung ano ang gusto namin. Ano ang gusto mong sabihin sa tabi? x plus y. At sa katunayan na ang gagana. Nagnais Ito ay mga programa wika gawin maunawaan ang pangunahing aritmetika, at dapat ito sa katunayan trabaho. Kaya ipaalam sa akin sige at huwag gumawa adder sa aking mga itim at puting window down na dito, pindutin ang Enter. Cryptic linya ngunit walang mga error mensahe, nang sa gayon ay maganda. Dot iwa adder, bigyan ako ng integer, 1. Bigyan mo ako ng isa pang integer, 2. Ang kabuuan ng 1 at 2 ay 3. Ang lahat ng mga karapatan, kaya isang magandang trivia programa, ngunit kung ano ang nagagawa nito? Ito ay pinahihintulutan sa akin upang gamitin ang isang pagpapaandar tumawag dito, tumawag sa isa pang pag-andar dito, dalawang tawag sa GetInt, isang ikatlong tawag sa printf, at pagkatapos ay gamitin ang mga placeholder. Kaya ito ay isang kaunti pa sopistikadong kaysa sa huling beses. Ngunit paano kung gusto kong i- makakuha ng isang maliit na fancier? Hayaan akong sige at ngayon gawin ito. Hayaan akong magpatuloy at lumikha ng isang mga bagong file na tinatawag na mga kondisyon zero. At pupuntahan ko upang i-save ilang panahon para sa kapanan ng mga klase at i-paste lamang sa na code bilang panimula. At ngayon lang pupuntahan ko ilalagay ng isang bagong bagay dito sa gitna. Kaya printf Gusto ko ng isang integer mangyaring. At ang lahat ng code na ito ay magagamit sa website ng kurso, ang hindi mo kailangan ng i-type ang lahat ng ito out sa klase kung mas gusto mong hindi. int, at ngayon pupuntahan ko gamitin, sa halip na x at y, Pupunta ako upang magamit n, na marahil ang pinaka-karaniwang pangalan para sa isang integer sa isang computer program. At ngayon nais ko na gawin ang isang maliit na paghatol dito. Pupunta ako upang makita kung n ay mas malaki kaysa sa 0, pagkatapos ay Pupunta ako sa sabihin printf-- Oops, printf-- mo kinuha ang isang positibong numero, exclamation point backslash n. Isara iyon. Iba Pa Pupunta ako sa i-print ang printf mo kinuha ang isang negatibong numero. Ngayon bago ka sumigaw sa akin, magpatakbo ng program na ito ipaalam. Hayaan akong bumaba dito. At paano ko makatipon ng isang programa na tinatawag na mga kondisyon gitling 0? Gawing kundisyon gitling 0. Uri ng isang hangal pangalan, but-- dammit. OK, magandang pagtuturo sandali. Bakit na masira? Ano ang aksidenteng Tinatawag kong ang file na ito? Maaari mong uri ng infer mula sa tab up dito. Kaya ito ay hindi masama na ako ginawa ito, sapagkat ito ang mangyayari marahil sa ilan sa inyo. Kaya aksidenteng ko na may pangalang aking pinagmulan kondisyon code 0. Ngunit ang aking source code sa pamamagitan ng convention dapat maging sa isang file na tinatawag na kondisyon 0 gitling c, o kahit anong tuldok c. Kaya hayaan mo akong ayusin ito. Tulad ng Microsoft Word ang maaari kong pumunta up upang I-save Bilang at gawin kondisyon 0 tuldok c. Ngayon na maglinis ako lamang pagpunta sa sige at mag-alis 0 kondisyon, na kung saan ay ang aking lumang bersyon. At ni huwag gumawa ngayon hayaan kalagayan 0, ang Enter. OK, mukhang mabuti. Kundisyon 0, ang Enter. Gusto ko ng isang integer mangyaring, 50, mo kinuha ang isang positibong numero. Ngayon kung paano tungkol sa mga negatibong 50? Pinili mo ang isang negatibong numero. Paano ang tungkol sa ngayon, 0. Pretty bang 0 hindi negatibo. Kaya ito ay uri ng isang lohikal na bug. Paano ko ito aayusin? Iba Pa kung n ay mas mababa kaysa sa 0, gawin ito, iba pa maaari kaming magkaroon ng tatlong paraan sangay dito, printf mo kinuha ang 0. Kaya ngayon kung muling patakbuhin ko ito programa, pagkatapos kino-compile ito muli may make, at ngayon muling patakbuhin kalagayan 0, kung ano ang makikita ko makikita dito ay 0 ay nagbibigay sa akin na output. Kaya kung saan kami makapupunta sa ito? Well ito ay mas madali upang mawala ang paningin ng kagubatan para sa mga puno. At kaya daan sa amin upang tapusin na may ganitong 2 at 1/2 minutong video na sa huli ay isang bit ng isang ad mula sa Google, ngunit iyon ay tunay na Tipan sa kung ano ang kahit na gumagamit ng mga pangunahing gusali bloke maaari naming gawin sa huli nang isang beses Mayroon kami ng kaunting programming savvy sa ilalim ng aming sinturon. [Musika nagpe-play] SAROO Brierley (Voiceover): Iyon ay 26 taon na ang nakaraan, at ako ay tungkol lamang upang i-5. Nakakuha kami sa estasyon ng tren at boarded namin ang aming tren nang sama-sama. Aking kapatid na lalaki sinabi lang idedetalye ko manatili dito, at magpapadala ako ay bumalik. At ko lang naisip, gaano mo kakilala ng, Maaaring pati na rin pumunta ko lang matulog at makikita lamang niya ang gumising sa akin. At kapag ako woke up sa susunod na araw, ang buong karwahe ay walang laman sa isang runaway tren, isang ghost tren pagkuha sa akin Hindi ko alam kung saan. Ako ay pinagtibay out sa Australya, sa isang pamilya sa Australya. At ina ay pinalamutian aking room na may mga mapa ng Indya, kung saan ilalagay niya sa tabi ng aking bedside. I woke up tuwing umaga nakikita na mapa, at samakatuwid ito uri ng iningatan ang mga alaala buhay. Ang mga tao ay sabihin, ikaw ay sinusubukan upang makahanap ng isang karayom sa isang haystack, Saroo hindi ka na kailanman na mahanap ito. Gusto ko na flashed ng ang mga lugar na ako ginagamit upang pumunta, ang flashes ng aking pamilya Nakaharap. Nagkaroon ang imahen sa aking ina, sitting down na sa kanyang mga binti ng matang, nanonood lamang ang kanyang sigaw. Buhay ay lamang kaya mahirap. Iyon ay ang aking mga kayamanan. At ako ay naghahanap sa Google Map at natanto mayroong Google Earth pati na rin. Sa isang mundo kung saan maaari kang mag-zoom in, Nagsimula ako magkaroon ng lahat ng mga saloobin at kung ano ang mga posibilidad na maaaring gawin ito para sa akin. Sinabi ko sa sarili ko, alam mo na, hindi mo Nakakuha ang lahat ng mga alaala photographic at landmark kung saan ikaw ay mula sa, at alam mo kung ano ang hitsura ng bayan tulad ng. Maaaring ito ay isang application na maaari mong gamitin upang hanapin ang iyong daan pabalik. Akala ko, na rin ang kukunin ko maglagay ng tuldok sa Calcutta train station, at isang radius linya, alam mo, na dapat na naghahanap sa paligid ng lugar na ito. Ako uri ng ay dumating sa kabuuan mga tren track. At sinimulan ko sumusunod dito, at Dumating ako sa isang istasyon ng tren kung saan masasalamin ang parehong larawan na noon ay sa aking mga alaala. Tumugma sa lahat ng bagay. Naisip ko lang yep, ako alam kung saan ako pupunta. Lamang ako pupunta upang ipaalam ang mapa na mayroon akong sa aking ulo humantong sa akin at dalhin ako pabalik sa aking bayang kinalakhan. Dumating ako sa pintuan ng bahay na ako ay ipinanganak. At lumakad sa paligid tungkol sa 15 metro sa paligid ng sulok, nagkaroon ng tatlong mga kababaihan nakatayo sa labas, nasa tabi ng bawat isa. At stepped ang isa gitna pasulong, at Ko lang naisip, ito ay ang iyong ina. Siya ay dumating pasulong, hugged niya sa akin, at kami ay doon para sa tungkol sa limang minuto. Grabbed niya ang aking kamay at kinuha niya ako sa bahay at nakuha sa telepono, kung saan siya Rang aking kapatid na babae at ang aking kapatid na lalaki sasabihin na, alam mo na, iyong kapatid na lalaki ay may lamang lahat ng biglaang lumitaw tulad ng isang ghost. At pagkatapos ay ang pamilya ay muli reunited. Lahat lahat ng mabuti, Tinulungan ko ang aking nanay out, siya ay hindi kailangang maging slaving ang layo. Maaari niyang mabuhay ang natitira ng kanyang buhay sa kapayapaan. Ito ay isang karayom ​​sa isang haystack, ngunit ang karayom ​​ay doon. Ang lahat ng naroon. Lahat mayroon kami sa mundo ay nasa tap ng isang pindutan. Ngunit mayroon kang nagkakaroon ng kalooban at sa pagpapasiya sa kulang ito. [Musika nagpe-play] David MALAN: Wonderfully matamis testimonial upang lamang kung ano ang kaya mo ngayon ang gagawin sa teknolohiya. Makikita natin sa iyo sa susunod na linggo.