[Playback ng video] -Isang Pagtatagumpay ng matematika at makina na kasanayan ay mahusay na bagong mga awtomatikong calculator sa Harvard University. Ang masalimuot na mga problema sa matematika ilagay sa pamamagitan ng machine sa code form sa tape ay tumpak malulutas sa isang minuto maliit na bahagi ng oras na kinakailangan para sa pagkalkula ng tao. Dinisenyo upang mapabilis ang lahat ng porma ng matematika at siyentipikong pananaliksik, ang higanteng makina utak ay gagana para sa ang Estados Unidos Navy hanggang matapos ang gera. [END playback] David J. MALAN: Ito, ay CS50. Nakaraan ay isang kabigha-bighani lugar, ngunit kung na sa iyo kailanman ba kung ano ang aparato na sa Harvard Science Center, ito ay sa katunayan bahagi ng Harvard Mark ko, at ito ay sa display doon ngayon para sa nakaraang ilang taon. At ano ang makikita mo naka-embed sa hanay problema isa ay isang tumingin sa likod ng mga eksena sa kung ano ang ginawa na aparato, at ang ginagawa, mula Professor Harry Lewis, na nasa ang computer science department dito. Kaya higit pa sa na sa ilang saglit lamang. Ngunit ngayon kami ay magsisimula sa transition mula noong nakaraang linggo na ito, at kami na magdala ng pagbanggit ng isang litrato dito na talagang masyadong sikat. May nakakaalam ba kung ano ang mga ito dito ay sa screen? Hindi bababa sa ayon sa mitolohiya. Oo. Madla: Ang unang virus. David J. MALAN: Kaya ito ay parang ang pinakaunang aktwal na bug sa isang computer. Ngayon sa katotohanan ang salitang bug, para sa isang pagkakamali sa isang programa, ay sa amin para sa ilang oras sa pisikal na mundo, at ito ay isa sa mga unang dokumentado beses kung saan ang isang tao ay tunay na inagaw ko ang isang malaking tanga sa labas ng Mark II computer, ilagay ito sa aklat, at pagkatapos ay naitala ito bilang unang kilalang bug na may tunay na natagpuan sa pisikal. Kaya ganito ay ipinasok na sa tradisyonal na kaalaman ngayon. Lahat ng bagay mula sa huling linggo ay magagamit online. Sa partikular na mapagkukunan na maaari ka hindi kinakailangang paunawa, lalo na kung pagdating dito sa tao. Kaya isa sa mga Fellows ng pagtuturo sa bawat taong gumagawa ng isang canonical na hanay ng mga tala, kaya hindi mo na kailangan panatilihin iyong down ulo, sinusubukan isalin sa ibang papel ang karamihan ng anumang bagay na maaaring mangyari dito sa class. Kaya Napagtanto na ang mga tinatawag na [? Scribd?] Tala ay online, tiyak na ang mga slide at source code na ginagamit namin sa class. Gumawa kami ng full transcript text makukuha rin. Kaya kung vaguely mong tandaan ang ilang mga term, at nais na tingnan ito ng kaunti mas magaan, alalahanin na ang lahat ng ng mga iyon ay mahahanap online. Pati na rin ang walkthroughs rin. Sa katunayan, ngayon magsisimula kami upang tumingin sa isang mas mababang level programming language, sa lalong madaling panahon upang maging kilala sa amin bilang C, at ito ay tunay madali na uri ng mawala pagkatapos lamang ng ilang sandali na oras, at pagkatapos ay ayusin ng Wonder kung paano namin aktwal na nakuha sa ilang mga mas kumplikadong halimbawa mula sa pinakasimpleng. At kaya Napagtanto bibigyan namin ng cherry kunin sa panahon ng klase ng ilang mga kinatawan ng mga halimbawa, ngunit mapagtanto na kaya marami pa rin na magagamit sa online upang maaari mong trabaho sa pamamagitan ng ito sa sarili mong bilis, subalit ikaw ay pinaka-komportable. Ngunit tumigil kami sa mga programa na lamang ito. Kaya mag-click ko ang berdeng flag, at kung ano ang ginagawa ng programang ito? Sabi, hello, world. Ito ay gumagawa ng pusa sabihin kumusta sa kanyang maliit na mundo sa itaas na kaliwang bahagi ng user interface scratch. Ngunit kami ay nagsimula upang ipakilala ang ilang mga terminolohiya noong nakaraang linggo. At ito, ang mga bagay tulad na ito namin tinatawag ano? Ano ang maaaring ang generic term para sa mga ito? Oo. Ang isang paraan o isang pahayag. Oo, ito ay isang aksyon. Gawin ito. At pa doon ay iba pang mga hugis sa simula, bukod sa mga ito ang tinatawag pahayag, sila ay din mga bagay na tulad nito, na tinawag naming ano? Oo. Kaya ang isang loop. At sa kasong ito, ang bagay na ito umuulit, malinaw naman, 10 ulit. May isang magpakailanman block. May isang pares ng iba. At ngayon kami ay pagpunta upang makita kung paano isalin ito sa isang mas modernong mundo, kung ikaw ay, kahit na ito ay pagpunta sa lumitaw sa unang sulyap upang maging mas arcane. Ngunit iyon ay sa katunayan loop. At pagkatapos kami ay may mga bagay tulad ng na ito, na kung saan ay nagkaroon na ito ng hugis, at mahalagang itanong. At tinutukoy namin sa mga ito bilang kung ano? Madla: Boolean expression. David J. MALAN: Oo. Boolean expression. Isang bagay na ay alinman true o false, oo o hindi, isa o zero, subalit nais mo upang makita ang mundo. Ngunit tinatawag naming mga Boolean expression, at mga plug namin ang mga ito sa kondisyon, o sanga. At sa mundo ng Sa simula, ang lahat ng bagay na mabuti interlocks sa mga tuntunin ng hugis nito, kung ito ay gumagawa ng lohikal na kahulugan na gawin ito, ngunit hindi mo na kailangang itigil lamang paggawa ng isang bagay nang may pasubali, Maaari kang magkaroon ng isang kilalang-kilala tinidor sa kalsada at gawin ang alinman sa mga ito o na kung ang kalagayan ay totoo o hindi. At pagkatapos, tulad ng makikita mo, kung hindi mo pa nagagawa, Maaari kang kahit na nest ang mga bloke. Kaya lumalaki scratch upang punan ang mga hugis na maaari mong ipasok sa mga ito, para makita mo ang tunay na ipahayag ang pinaka anumang logic na maaaring gusto mong gawin. Ngayon ng ilang mga salita ng patalastas para sa parehong dito at New Haven. Kaya sectioning nagsisimula ngayon. Ang URL para ito ay sa kurso ni website, para sa mga pamilyar. Seksyon ay magiging isang pagkakataon na makakuha ng sama-sama sa isang mas intimate kapaligiran kaysa [? Sanders?] Ay nagbibigay-daan, may 10 hanggang 20 kaklase na may isang pagtuturo kapwa sa iba't ibang mga track, at iba't ibang mga hakbang, kung pinili mo ito. Sa katunayan ang mga alok course iba't ibang mga seksyon para sa mga mas kumportable, mas kumportable, at lugar sa pagitan, at ang papel ng hinlalaki dito, ay walang pormal na kahulugan, ngunit kung ikaw ay mas kumportable, mong uri ng malaman ito. Kayo ay isang bit nagugulat tungkol sa ideya ng tuntong paa, marahil, bumalik sa silid-aralan, o pagpapakita hanggang sa isang sa pagitan ng section. Kung kayo ay programming dahil ikaw ay anim na taong gulang, mas kumportable, marahil sa iyo. At kung ito ay uri ng isang palabunutan, na eksakto kung ano ang sa pagitan ng ay sinadya upang maging. Ngayon, sa habang panahon, para sa isang klase sukat na ito, ito ay tumatagal sa amin sa lubos ng ilang oras upang section sa lahat, kaya kami ay tinatawag na, super seksyon, paparating na ito weekend at maagang susunod na linggo, kaya tingnan sa website ng kurso para sa mga na kurso malawak, at kinukunan din para sa mga na hindi maaaring gumawa ng mga ito. At seksyon ay ang kanilang mga sarili simulan sa tatlong linggo ng CS50 zero index. Itakda Problema 0 ito ay ginagamit na sa website ng kurso. At napagtanto na ikaw ay walang siyam na late araw na ito semestre. Kaya ito ay isang mag-upgrade mula sa nakaraang taon, kapag nagkaroon kami ng limang late araw. Kaya't kung ikaw ay nagtataka, kami ay may siyam hanay ng problema. Mayroon kang siyam late na araw, ang bawat isa ay maaari ka lamang gumastos ng isa bawat linggo sa. Iyon epektibong gumagawa ng lahat ng nagtatakda ng mga problema dahil Biyernes, ngunit ang layunin ay upang ilagay ang isang maliit na piraso ng sikolohikal na presyon sa inyo na subukan upang makakuha ng sa mga bagay na sa Huwebes dahil bilang ikaw ay madaling matuklasan, para sa mas mahusay o mas masahol pa, ang karamihan ang lahat ng bagay sa mundo ng software ay nagtatapos up mas matagal kaysa sa inaasahan mo ang pagkuha. Kaya isaalang-alang ito ng isang uri ng pagkakataon na makatulong sa sa iyong sarili upang i-target Huwebes, ngunit kumuha ng kaginhawaan sa na, oo, ang lahat ng bagay ay dahil Biyernes. At kung isumite ang mga ito sa iyo Huwebes, iyan ay kahanga-hanga. Walang mga puntos ng bonus o dagdag credit para sa pulong na deadline. Ito ay nilalayong maging isang saklay lamang. At mga oras ng opisina, kapwa dito at sa New Haven, sa tao, kung gusto mo upang matugunan sa sinuman sa aming mga kurso pagtuturo Fellows at Cas para sa tulong. Ayos lang. Kaya ngayon, gumawa ng mga ito ng mas tunay na ipaalam. At para sa isang sandali na ito ay pagpunta upang simulan ang upang makakuha ng isang maliit na mas arcane, ngunit masyadong mabilis sa Biyernes at susunod na linggo ay hindi namin kayang gawin ito ng higit pa kaysa kami dati kaya ngayon sa scratch. Kaya ipinakilala namin huling code linggo, kahit pictoral. Ito ay mga piraso ng puzzle. At kami pormal na ito ay bagay na tinatawag na source code, ngunit nais ay ganito ang hitsura? Well, ito ay tumingin sa isang maliit na bagay tulad nito. At, sa katunayan, lamang sa uri ng mang-ulol kung saan maaari naming pumunta sa mga ito. Pupunta ako sa sige at magbukas ng isang window dito, at ako lamang ang pagpunta upang pumili New File. At ako pagpunta upang i-save ang file na ito bilang isang bagay tulad kumusta dot c. Higit pa sa na pagpili ng mga salita sa isang sandali lamang. At ito ay kung paano ang isang tao ay maaaring pumunta tungkol sa pagsusulat ng isang programa. Isama standard I / O tuldok h, int pangunahing walang bisa, at pagkatapos ay buksan ang kulot suhay, malapit kulot suhay, printf kumusta comma mundo, backslash n, semicolon, Save, tapos na. OK. Ako ng nakasulat na ang aking unang programa, ngunit ito ay pagpunta upang maging kapani-paniwalang underwhelmed dahil kapag ako ay tunay patakbuhin ang program na ito, siyempre, sa pamamagitan ng unang pagsulat gumawa hello, at pagkatapos ay tuldok slash hello, at bibigyan namin ng pumunta sa pamamagitan na ito sa marami pang detalye sa isang sandali, na ang lahat ng ginagawa nito. Hindi pop bukas anumang bintana. Hindi ito gumawa ng anumang bagay lalo na pag-iisip. Lahat ng ito ay kung ano ang sinabi ko ito sa gawin, ngunit paano namin makuha sa na? At paano namin bumuo sa iyon? Well, sabihin ipakilala ng ilang hayaan iba't-ibang mga concepts dito. Kaya isa, hindi namin tungkol sa upang simulan gamit ang isang programa na tinatawag na isang compiler. A compiler ang umiiral para sa Mac OS, Windows, Linux, ang anumang bilang ng mga operating system, at kami na sa lalong madaling panahon kitang ipakilala sa mga kapaligiran na kami ay gumagamit ng, ngunit isang tagatala ay lamang ng isang pangkalahatang term para sa isang piraso ng software na tumatagal ng source code at gumagawa object code mula dito. Sa ibang salita, kung ikaw magkaroon ng input ang iyong mapagkukunan code, isang bagay na tulad ng kung ano lang type ko, ito ay ganap na gumagawa ng object code. At object code ay talagang lamang isang magarbong paraan ng pagsabi nito output zero at isa sa. Sa ibang salita, ang pinagmulan code, kahit na ito ay pagpunta sa hitsura ng isang maliit na arcane, at isang maliit na mas friendly sa simula sa unang tingin, ito ay hindi bababa sa isang bagay na maaaring maunawaan namin ang mga tao. Ito uri ng hitsura at tunog tulad ng Ingles kahit na ito ay napaka-maikli at malinaw. Sapagkat programming sa zero at ng isang tao, tulad ng aming mga predecessors ay upang gawin, ilang taon na ang nakaraan, ay hindi isang lalo na masaya hamon. At gayon pa man, ito ay kung ano ang naiintindihan pa rin ng computer. Kaya makakakuha compiler sa amin mula sa source code sa object code. Ito ay tulad ng pagbubukas ng isang file na may mga tagatala, at kapag na-save mo ito, kumuha ka ng mga zero at mga. Kaya makikita namin makita kung paano gawin na sa ilang sandali lamang. Ngunit subukan na magbigay ng isang sabihin ngayon tulay sa pagitan ng huling linggo at ito, upang ang kahit na bilang namin makakuha ng hung up sa mga bagay tulad curly braces, at semicolons, at panaklong, at lahat ng mga kagiliw-giliw na intellectually aspeto ng programming, na tunay understandably trip mga tao hanggang sa maagang bahagi, mapagtanto na ang lahat ng mga ideya araw na ito, ay ang parehong bilang huling. Kaya noong nakaraang, nakita namin ang mga halimbawa na ito dito, program Hello World. Well, simula ngayon, kung gusto naming upang ipatupad ang parehong programa, ito ay pagpunta sa hitsura ng isang maliit na bagay tulad nito. At ipapaliwanag namin kung bago ang haba ano int, at pangunahing, at walang bisa, at ang lahat ng na ay, ngunit hindi bababa sa nakikita ko dito na ang mga pamilyar na Hello World. Samantala, ang mga bagay tulad ng function, sabihin nating hello, ay tunay lamang magiging isang napaka-simpleng statement na tulad nito. Printf kumusta mundo, na may ilang mga quotes, na may isang backslash, may isang tuldok-kuwit, ngunit higit pa sa na sa darating. Mga Loop, samantala, ito ay isang loop na, siyempre, sabi hello world magpakailanman, at ang isang ito ay pagpunta sa hitsura ng isang maliit weirder kaysa sa huling, Nguni't kung sabihin ko ng isang bagay tulad ng, habang ang totoo, ako maaari pagkatapos i-print out Kamusta mundo muli at muli at muli at muli. At pagkatapos ay maaari mong uri ng simulan upang ipahiwatig dito, convention na ito ng mga gamit curly braces ay uri ng mga tulad ng pagyakap sa indent linya ng code doon. Ang printf linya ng code na halos tulad ang dilaw na piraso ng puzzle up sa itaas. Kaya kami ay hindi pagpunta sa sabihin magpakailanman, kami ay pagpunta sa sabihin habang totoo, ngunit kami ay makita kung bakit na sa ilang saglit lamang. Samantala, kung kami ay may isang loop na tulad nito, kung saan ulitin mo ang isang bagay ng isang may hangganan beses na numero, ang isang ito ay masyadong ito ay pagpunta sa isang maliit na nagsisimula ginagamit sa, ngunit ito ay pagpunta sa sabihin para sa int i makakakuha ng zero, i mas mababa sa 10, i ++, at pagkatapos ay printf muli. Ngunit may ay magiging pattern. At para sa mga pamilyar sa AP Computer Science, o Java, o anumang bilang ng iba pang mga wika, halos lahat ng mga constructs kaya sa ngayon ay dapat magmukhang halos pamilyar. Kaya variable. Kaya narito ang isang simpleng scratch excerpt na Nagtatakda ng variable na tinatawag na counter sa zero, at pagkatapos ay magpakailanman sabi ng counter, at pagkatapos ito ang mga pagbabago sa mga counter-isa. Kaya ito ay nagsisimula sa zero, at pagkatapos ay isa, dalawa, tatlo. Well, kung paano maaari naming ipakilala na sa ang bagong wika ng isang maliit na parehas? Counter int katumbas zero, habang ang totoo, na ay na parehong ideya mula sa harap ng paggawa ng isang bagay magpakailanman, at ako lamang ang pagpunta sa printf. At ngayon ito ay nakakakuha ng isang maliit na kakaiba, porsiyento i, ngunit higit pa sa na sa darating, ngunit ang mga ideyang ito ay eksaktong kapareho. Ngayon namin lamang na sumunod sa ang syntax na ang computer ay pagpunta sa demand na sa amin. Boolean expression, ang isang bagay tulad x mas mababa sa y, o x mas mababa sa y, at y mas mababa sa z. Ito ay pagpunta upang tumingin ng isang maliit na bagay tulad nito, na may mga panaklong lamang tulad ng sa math para sa mabuting panukala sa makatarungan matiyak na ang pagkakasunod-sunod ng mga operasyon ay bilang layon naming. At ngayon, mga kondisyon. Kaya kung x mas mababa sa y, sabihin x ay mas mababa kaysa sa y, iba kung x ay mas malaki kaysa sa y, sabihin x ay mas malaki kaysa sa y, sa kabilang banda lohikal, x dapat na katumbas ng y. Kaya maaari mong ipatupad bagay na tulad nito sa simula, o maaari mong ipatupad ito sa ganitong syntax. At muli, ang curly braces ang mga uri ng pagbigay sa amin ng parehong hugis bilang ang puzzle piraso, ngunit ang syntax, ngayon, ay marahil simula na sundin ang ilang mga pattern. Kaya, ano ang ibigay sa amin dito? Kaya hindi namin pabalik pagkatapos ay sa aming mga pangunahing programa. Sabihin ang tunay na, ngayon, gawin ang isang bagay sa mga ito. Kaya sa unang line matalim namin makita isama, standard I / O, tuldok h, at pagkatapos ng ilang mga kakatwang anggulo bracket sa ibaba na. int main walang bisa, at pagkatapos ay printf kumusta mundo. Kaya tumagal lamang ng isang hakbang. May isang tao na hindi kailanman program bago, hindi bababa sa ipaliwanag ang isa sa mga linyang ito. Paggamit marahil ang ilan sa magulong pag-uusap ng huling linggo. Ano ang printf, halimbawa? Oo. Madla: [hindi marinig] David J. MALAN: Oo. Ito ay isang function, o isang pahayag, mula sa mga terminolohiya na noong nakaraang linggo. At ito ay isang aksyon na paggawa ng isang bagay. Ngayon ang function na ito, o ang pahayag na ito, ay ito ay lalabas sa tumagal ng ilang uri ng mga input? At sa kung ano kahulugan ang ginagawa nito mukhang kumuha input, kung gayon? Input, kung ano ang ibig sabihin ako sa pamamagitan ng na? Oo. Madla: [hindi marinig] David J. MALAN: Oo. Kaya Kaskasin out ng ilang mga piraso ng puzzle kung saan maaari mong parametrize. Maaari mong sabihin sa mga paulit-ulit na harangan ang kung gaano karaming beses na ulitin, nang sa gayon ay isang input ng masama, at tulad ng mga scratch ay nagkaroon ng isang maliit na puting placeholder para sa bilang na iyong nais na i-type sa, kaya gawin na ginagamit namin sa mga ito text mundo panaklong upang bigyan kami na pabilog na hugis sa kung saan maaari naming plug aming input. Pagkatapos ng lahat, sampu-sampung taon na ang nakaraan kapag ang wikang ito, na tinatawag na C, ay likha walang inaasahang ito ay isa sa atin, mga ilang taon na ang lumipas, gusto namin Gusto ng isang function na nagsasabing hello. Right? Gusto Ito ay maganda kung mayroong isang piraso ng puzzle, o isang susi salita, na tinatawag na hello, na literal lamang sabi kumusta. Ngunit hindi namin kailangan iyon. Maaari naming magkaroon ng isang bagay na mas mababa antas, tulad ng isang generic print command, na tumatagal ng input, at mga kopya ng kahit anong gusto namin. Kaya ngayon mapansin ang pattern na ay magsisimula na lumitaw. Open paren, malapit paren ay tila pagyakap sa input, at pagkatapos ay makita ko double quotes sa parehong dulo. Mayroon pa rin ng kakaibang backslash n, ngunit sana ngayon mo maaaring magsimula upang mailarawan ang hindi bababa sa na printf ay ang pagkuha sa ilang mga paraan ng pag-input. Hindi bilang user friendly bilang Kaskasin, ngunit ito lamang tulad ng pagkakaroon ng naka-plug in ang ilang mga halaga doon. Lahat ng karapatan, ngayon sabihin aktwal gawin ang isang bagay na may ito. Kaya ikaw ay makilala ang ilan sa iyo mula sa pagkakaroon ng nag-shop sa klase bago, chat sa mga kaibigan, na para sa maraming taon ginagamit namin ang isang bagay na tinatawag na CS50 appliance. Ito ay isang kataga na naglalarawan ng isang technology tinatawag na ang virtual machine, na kung saan ay isang piraso ng software na ang iyong predecessors ay i-download off website ng kurso para sa libre. Gusto nila i-download din ng isang libreng piraso ng software na tinatawag na isang hypervisor, isang bagay na tinatawag tulad ng VMware, o VirtualBox, o anumang bilang ng iba pang mga kasangkapan, at sa kanilang Mac o PC o kahit anong computer na sila ay nagkaroon ng nakaraang taon at sa mga nakaraang taon, ang mga ito ay double click ang isang icon upang patakbuhin ang software na ito tinatawag na hypervisor. At pagkatapos ay sa loob ng programa na Gusto nilang buksan ang CS50 appliance. At ang mga epekto ay na kung ang isang sinundan ng sa iyo ay tumatakbo sa Mac OS o Windows, siya pagkatapos ay dakong huli ay nagkaroon ng isang bagong window sa kanilang screen tumatakbo kapaligiran CS50. Kaya ang isang virtual machine hinahayaan kang magpatakbo ng isa operating system sa loob ng isa pang, at iyon mismo ang ginawa namin. Sa buong karamihan ng mga kurso namin gamitin ang isang operating system na tinatawag na Linux, partikular Ubuntu Linux, at ito ay isang napaka-magandang paraan sa mga nakaraang taon ng siguraduhin na ang lahat ng tao sa kurso nagkaroon lamang ng parehong kapaligiran. At maaari mong gamitin ang anumang uri ng ng computer na iyong aktwal na gusto. Kabilang sa mga downsides, bagaman, ay ito ay tulad ng dalawang gigabytes upang i-download ang bagay na ito. Ito ay hindi kinakailangan sa trabaho super na rin sa mga tao na ang mga computer na siguro lamang ay nagkaroon ng isang gig o kaya ng RAM, o hindi masyadong maraming mga gigahertz ng bilis ng CPU, at iba sa taong ito, para ito at iba pang mga kadahilanan, mayroon kaming na-transition sa environment na ito. Ang tinatawag na CS50 IDE, na kung saan ay batay sa open source software, at isang suportadong platform na ang isang kumpanya na tinatawag na Cloud9 sinusuportahan sa Europa, na ay nagbibigay-daan sa amin upang magkaroon ng mahalagang na eksaktong parehong kapaligiran bilang in nakaraang taon, ngunit sa ang tinatawag na ulap. Kaya kung ano ang ulap? Malamang na-click mo icon nito sa iyong Mac o PC. Ano ang cloud? Oo? Ang isang maliit na louder. Oo. Ito ay lamang ng isang grupo ng mga computer sa ibang lugar na tindahan ng data at run software at mga katulad. Kaya ito ay talagang lamang sa salita de ayon sa batas ng naglalarawan [? rentable?] mga computer na nakatira sa ibang lugar. Na ikaw, ang iyong sarili, hindi kinakailangang pag-aari. Kaya kapag ang iyong data, o ang iyong programa, ay sa ulap, ito ay nangangahulugan lamang na ito ay sa isang tao computer ng ibang tao sa ibang lugar, at hindi, malamang, sa iyong pisikal laptop o desktop. At kaya na kung ano ang CS50 IDE ngayon ay. Simula ngayon kailangan mong pumunta sa isang tiyak na URL na ipakikilala sa iyo upang, sa hanay ng problema 1, mamaya na ito linggo, na pagkatapos, sa pag-log in, magbibigay sa iyo ng environment na ito. At marami tulad ng simula ay nagkaroon ng isang ilang iba't ibang panels kasangkot, sa gayon ay magkaroon ng eksakto na IDE CS50. Sa itaas na kaliwang bahagi dito, ikaw ay pagpunta upang makita ang isang pamilyar na file browser. Kaya ang anumang mga file na iyong ilagay sa environment na ito pupunta lamang na nakalista doon. Mga file at mga folder. Sa tuktok ng karapatan dito, ikaw ay pagpunta upang makita ang isang lugar kung saan maaari mong aktwal na isulat ang iyong code. Sa una sa C, sa ibang pagkakataon sa kataga sa PHP at JavaScript, at, marahil para sa pangwakas na proyekto, Ruby o Java o sawa o anumang bilang ng mga wika ay suportado sa environment na ito. Ito ay hindi sa lahat ng nakatali sa CS50 mismo. At pagkatapos ay sa ilalim ng sulok dito, lalo na para sa mga mas kumportable, mayroon kang isang bagay tinatawag na isang terminal na window. At ito ay nagpapahintulot sa terminal na window sa iyo upang maipatupad ang anumang utos na ikaw nais sa cloud kapaligiran. Ito ay nagpapahintulot sa inyo na i-install anumang mga karagdagang software na gusto mo dahil ikaw ay tinatawag na root, o mga pribilehiyo ng administrator. Kaya sa ibang salita, kahit na ito ay ganap na naka-host sa ulap, at kahit na mayroon kaming pinasimple ito sa ilang mga lawak sa pamamagitan ng default, literal na nagpapakilala, salamat sa Dan Armendariz, at Dino, at Dan Bradley sa team CS50 sa ibabaw ng nakalipas na ilang buwan, ang isang mas kumportable mode na Itinatago ng maraming ng una nakalilito distractions. Lahat doon ay umiiral na kumakatawan sa isang tipikal na sistema ng computer na maaari mong gamitin sa tunay na mundo. Kaya kung ano ang ibig sabihin ng lahat, at kung ano ang maaari naming aktwal na gawin dito? Sabihin aktwal na tumagal ng isang silip sa isang programa. Kaya ako pagpunta upang buksan ang mga aktwal na kapaligiran dito, na kung saan ay lamang ang aming Chrome browser, na maaaring maging Firefox, maaaring Internet Explorer, o ilang iba pang browser pati na rin. Full Ito ay sinalang dito para sa mga sandali. At gusto ko na talagang mang-ulol bukod sa kung ano ang program na ito ay. Kaya sabihin tumagal ng isang pagtingin, sa pamamagitan ng pag-zoom in up itaas, sa kung ano ang ginawa ko, at kung paano nakuha ko dito. Kaya dito ang mga eksaktong parehong linya ng code. Kaya ito ay ang pahayag, tulad ng nabanggit mo ng mas maaga. Ang function na nagsasabing hello. Ang curly braces, sa line apat at anim na linya, baka uri ng balutin na linya upang iugnay ito sa kakanyahan ng aking programa. Kaya nga, ang keyword na main, na ang bahala doon sa tatlong linya, maaari mong isipin na ang bilang ng katumbas ng na kapag nag-click green flag, harangan sa scratch. Kaya na ang lahat na namin dito, ay kapag green flag na-click, i-print, o sabihin, kumusta mundo. Ngunit tumagal ng isang hulaan, ngayon, sa ipaalam sa kung ano ito una, mas arcane line, ay. Biglang isama, buksan angled bracket, standard I / O dot h, isara angled bracket. Anong na marahil ang paggawa, lalo na kung ka-program bago sa ilang iba pang mga wika. Oo? Madla: [hindi marinig] David J. MALAN: Oo. Mismong. Kaya ito ay nagbibigay sa iyo ng access sa isang library, wika nga, ng mga pag-andar. At isang library ng mga function ay mga function na may ibang tao sumulat, mag-kamakailan o matagal na ang nakalipas, sa gayon ay ikaw Hindi mo na kailangang muling baguhin ang wheel. Halimbawa, hindi namin kung alam, sa 2015, kung paano magsulat ng code na inilalagay isang karakter sa aking screen. May ibang tao ay may korte na out sa printf function gayon ay maaari kong ayusin ng abstract layo mula sa na, o layer sa itaas ng kanyang code, at ngayon ay tumagal lamang para sa ipinagkaloob na ang anumang programa kong isulat maaaring i-print ang isang bagay sa screen. Kaya ito ang unang linya doon sa hakbang ng isa Kabilang dito ang tinatawag na file header para sa mga standard library. Kaya nakikita, ang wika sa na sa ngayon kami ay nagtatrabaho ay nagkaroon ng isang standard library na may maraming mga pag-andar. Printf ay isa sa kanila, at na ang unang linya ng code nangangahulugan bigyan ako ng access sa mga pag-andar, kaya na ako Hindi mo na kailangang muling baguhin ang wheel. Ngayon sabihin pumunta sa ibaba ng window at gawin kung ano mismo ang ko ay bago. Isang sandali ang nakalipas, kapag ako ay whizzing sa pamamagitan ng code, pag-type ang mga ito para sa unang pagkakataon, Ako ay mabilis na nag-type, gumawa ng halo. Ano na ang lahat tungkol sa mo hulaan? Ano ang ginagawa ko? Oo? Wala iyon. Ito ay OK. Oo. Madla: pag-ipon ng mga ito. David J. MALAN: Oo. Ito ay lamang ng pag-ipon ng mga ito. Right? Kahit na ito ay ganap na pamilyar sa iyo, ito ay medyo English gusto. Ito ay tiyak na hindi zero at bago, kaya ko pa rin kailangan upang patakbuhin ito sa pamamagitan na tinatawag na programa, ang isang tagatala, na pupuntahan upang dalhin ito bilang input at makabuo ng output. At hindi bababa sa, para sa ngayon, sa ito Linux kapaligiran, ngunit ito ay hindi unang kailangan, ito lamang kung saan sisimulan namin, ikaw ay karaniwang makipag-ugnayan sa mga sistema ng computer na tulad nito sa pamamagitan ng isang tinatawag na linya ng command. Kaya sa isang kumikislap na prompt at sa iyong keyboard, at hindi masyado ang iyong mouse, at hindi kaya marami ang mga bintana at mga icon at mga menu, sa halip ang lahat ay sa texto. At kahit na ito nararamdaman, sa unang sulyap, marahil, tulad ng isang hakbang paurong, ito ay talagang isang mas malakas at nagpapahayag paraan ng pagkontrol ng isang computer lalo na bilang sa iyo, sa iyong sarili, magiging mas kumportable mula sa mas mababa. Ito ay pagpunta sa magpapahintulot sa inyo na gumawa ng isang pulutong mas bagay pa sa kung ano ang Microsoft o Apple ay nagpapahintulot sa iyo na gawin sa kanilang mga graphical operating system. Kaya kapag ako ay pindutin ang Enter, ngayon, walang mangyayari oras na ito dahil tila ang kumusta na programa ay hanggang sa petsa. At ano ang mga utos Ako ran matapos na? Dot slash hello, and hello mundo. Ngayon sabihin tumagal ng isang hakbang i-back para sa sandali lamang. Lumalabas na gumawa ng halo ay lamang ng isang pinasimple na paraan ng pag-ipon ng isang programa. Hayaan ipakilala ni lamang isang piraso ng magulong pag-uusap, ngunit pagkatapos ay ilipat ang layo mula sa mga ito, dahil ito ay hindi lahat na kawili-wili para sa mga layunin ngayon. Ang compiler kami ay pagpunta upang simulan ang paggamit ay tinatawag na kumalatong, para sa mga wika C. At ito ay isang programa na patakbuhin lamang tulad ng ginawa namin sa command line doon. At kaya kung gusto kong magtala ng isang programa na ako may nakasulat sa isang file na tinatawag na halo dot c, literal lamang ako type clang kumusta c ipasok. Ang nakakatawa bagay ay, para sa mga makasaysayang dahilan, kung hindi ko tukuyin ang pangalan ng programa na gusto ko na output, kung hindi ako tukuyin ang isang pangalan ng file para sa mga zero at bago, isang napaka-kakaiba convention ay pinagtibay taon na ang nakaraan na kung saan ang may palagay na ito uri ng isang magandang sagot sa oras, balon nagkataon lamang tumawag sa ipaalam unang programa compile kami ng isang tuldok out. A mauna sa alpabeto. Out, ito ay ang output. Kaya tatawagan namin ang programa sa pamamagitan ng default isang tuldok out. At iyon ang masarap dahil kung gusto kong patakbuhin ang programa sa text na ito batay kapaligiran, i-type lamang ako dot slash isang tuldok out ipasok. At ito ay tumakbo nang eksakto tulad ng dati. Kaya sabihin makita na tunay na mabilis. Kaya kung pumunta ako pabalik sa aking source code sa CS50 IDE, at sa halip ay kong gawin ito, clang kumusta cot c pasok, walang notice tila mangyari, ngunit halos palaging sa ito Linux kapaligiran, kapag walang masamang tila mangyari, na ang ay nangangahulugan ng isang bagay mabuti ang tunay na nangyari. Kung hindi mo makita ang isang error mensahe, ang lahat ay marahil na rin. At sa katunayan, kung ngayon ang gagawin ko dot slash isang tuldok out pasok, patakbuhin ko na ang aking parehong programa. Mayroon pa akong mga program kumusta mula sa mga naunang dahil sa katunayan, ito ay magiging kaya magkano nicer lamang type gumawa sa halip ng pag-alala mga incantations ng utos, ngunit sabihin makita kung paano namin maaaring mapabuti sa ito, gayunman. Kaya, ito ay ang mga utos upang itala ang code. Ito ang utos na tumakbo ang naipon code pagkaraan. Paano ko maaaring tukuyin ang isang pangalan ng file? Well hayaan ipakilala ni lamang isa pang piraso ng magulong pag-uusap. Kapag handa ka sa ganitong text based na kapaligiran, ikaw ay pagpunta sa nais na tukuyin ang mga bagay-bagay na tinatawag na argumento command line. Aling ay lamang ng isang magarbong paraan ng sinasabi, iba pang mga salita sa prompt na mag-tweak ang pag-uugali ng kahit anong program kayo ay tumatakbo. Kaya partikular na ang program Ako pagtakbo, sa pamamagitan ng pag-type ng pangalan kalatungin, ay ang programa na tinatawag Clang. Kaya ito ay o ang old school katumbas ng pag double-click sa Microsoft Word o icon ilang program. Sa halip lang ako sa pag-type ng pangalan nito, ngunit sa ganitong bersyon ng command, Pagkatapos ko dash space o kumusta space kumusta dot c. Kaya kahit na sa iyo na hindi kailanman play sa mundo na ito bago, tumagal lamang ng isang hulaan kung ano ang ay dash o kumusta gawin? O kung ano ang sabihin sa kumalatong gawin? Oo. Madla: [hindi marinig] David J. MALAN: Oo. Nagtatakda Ito lamang ang output ng file na kumusta sa halip na ang sillier isang tuldok out. At, sa katunayan, sabihin subukan ito ipaalam. Kaya kung ngayon gagawin ko, first ni gawin ito ipaalam, r m hello. Iyan ay alisin. At ito ay pagpunta sa sabihin alisin regular file hello, kung saan ay hindi kinakailangan arcane, ngunit ito lamang ibig sabihin nito ay ang gusto mong burahin ang mga file, at i-type ko y para sa yes. At mapansin, kung ikaw ay glancing sa itaas kaliwa, ito ay mawawala mula up doon. Hayaan akong ngayon gawin kumalatong dash o, at Pupunta ako sa magpatuloy at gawin hello, sa lahat ng takip, hello dot c. Ngayon, kung gagawin ko dot slash hello, kung ano ang gusto mong asahan? Siguro ay case sensitive. Siguro ay hindi. Tingnan natin. Walang ganitong file o directory. At maaari naming uri ng impostor sa pamamagitan ng lamang ng pagtingin sa kaliwang tuktok. Ano ang ginawa ko nang walang alinlangan i-save ang mga programa tulad ng? Lahat ng caps hello. Kaya sa katunayan, iyon ang pagpunta upang gumawa ng isang pagkakaiba. Kaya ngayon kumusta mundo ay bumalik. Ngayon, ito ay ang lahat ng multa at mabuti, at ang lahat ng tunay na isip-numbing, na uri ng get nabalaho sa putik sa mga mga detalye, ngunit-unawa sa kanila ay mabuti. Ang pag-type ang mga ito unting mahabang incantations ay hindi magiging partikular na masaya, kaya ang mga tao sa mundo imbento ng isa pang programa, ilang taon na ang nakakaraan, na tinatawag na gumawa, na ganap lamang ay nagbibigay-daan sa iyo upang i-type make, ang pangalan ng programa nais mong gumawa ng, at gumawa ay matalino sa na ito ay tumingin sa kasalukuyang folder, aka direktoryo, at kung ikaw ay may isang file na tinatawag na halo dot c, iyon ay ang file na ito ay sumulat ng libro para sa iyo sa isang programa na tinatawag na hello. Kaya ito ay isang mas simpleng paraan ng paggawa ng mas misteriyoso utos na ginawa namin nang mas maaga. At kami ay pre-configure CS50 IDE malaman na ito ay dapat gawin dash o at isang bilang ng mga iba pang mga flags, o argumento command line, na namin makita bago ang haba. Ngunit sabihin ngayon talagang gawin isang bagay na mas kawili-wili. Pag-type lang ang hello world lahat ang oras ay hindi lahat na nakapanghihimok. Kaya hayaan mo akong magpatuloy at baguhin ang program na ito at sabihin, hello David. Ngayon ako pagpunta sa pumunta down dito. Pupunta ako sa magpatuloy at gawin gumawa ng halo. At muli ngayon ang iyong nakikita gumawa ay nagpapakita sa iyo ng mas matagal pagkakasunod-sunod ng mga utos na ito ay ginagawa dahil na-pre-configure namin ito na paraan, ngunit hindi namin kailangan mag-alala para sa ngayon kung ano ang ginagawa maliban sa ito ay kino-compile ang dot slash hello, hello mundo. Ano ang mali? Oo. Madla: [hindi marinig] David J. MALAN: Oo. Kaya, noobie pagkakamali. Mapapansin ko na ito ay sobrang pino, ngunit ang mga asterisk dito, sa tab, ito ay nangangahulugan lamang na hindi mo na-save ang mga ito, at mga browser at iba pang mga programa gawin ito paminsan-minsan. Kaya control s o command dapat s-save ito. Ngayon hayaan mo akong magpatuloy at muling patakbuhin ang program. Recompiled. Right, kaya ito ay isang proseso ng multi-hakbang. Wala na kung saan ay partikular na mahirap unawain, ngunit anumang oras baguhin namin ang file, kailangan namin upang baguhin ang mga resultang zero at mga, at tuldok slash hello. Wow. Kaya ito ay tunay underwhelming na naka-print na lang kami sa labas na ito. Gumawa ng mga bagay-bagay Hayaan ang isang maliit na mas dynamic, ngayon. Well ito ay lumiliko out, na gusto Simula, sinusuportahan C variable. At ito ay lumiliko out kung nais mong na magkaroon ng isang variable na mga tindahan, hindi isang numero tulad namin karaniwang ginawa sa simula, ngunit tulad ng isang salita, o isang parirala, o ng isang pangalan, ikaw ay maaaring tukuyin ang isang variable na ng uri ng string. Kaya makikita namin makita pa ang mga ito sa ilang sandali lamang, ngunit ito ay lumiliko out na ang C, at isang pulutong ng mga wika tulad ng mga ito, may tunay tiyak na mga uri ng variable. Hindi lamang ito tulad ng algebra, kung saan makakakuha ka ng isang x, isang y, at z at ang mga ito ay laging lamang numero, sa isang programming language maaari mong itabi ang mga numero, maaari mong tindahan ng mga indibidwal na mga character, maaari mong itabi ang mga buong salita, maaari mong tindahan ng buong imahe, buong sound files, at ang gusto. Kaya kailangan namin upang tukuyin kung ano ang ang uri ng aming mga variable ay. At sa pamamagitan ng convention ako pagpunta sa tumawag sa aking variable s dahil lang sa ito ay maikli at malinaw, at s ibig sabihin para sa string. At pagkatapos ay ako pagpunta sa tindahan sa loob ng variable na ito, gusto lang sa scratch kapag ginagamit ko ang set block, Pupunta ako upang gamitin ang assignment operator sa C, na mabuti sapat ay ang pantay-pantay na mag-sign, ngunit gumagana ang mga pantay-pantay na mag-sign. Ito gumagalaw ang isang bagay mula sa mga karapatan sa kaliwang bahagi ng expression. Kaya kung ano ang ginawa ko, upang maging malinaw sa limang linya, ay ipinahayag ko ang isang variable. Sinabi ko na ang computer, ninyo ako memory para sa isang variable, tumawag ito s, at alam nang maaga na pupuntahan ko na paglalagay ng isang string sa loob nito. At ang isang string ay lamang ng isang pagkakasunod-sunod ng mga character. Ito ay isang salita, o ng isang parirala, o talata, ngunit ito ay isang pagkakasunod-sunod ng mga character. Ito ay hindi numero. Ano string ako magiging paglagay sa variable na? Well, tila quote magpanipi, "Hannah". Ngayon pansinin ang mga pattern na umuusbong. May isang kaliwang kamay expression. May isang tamang expression kamay, pinaghiwalay ng equal sign. At tumagal lamang ng isang hulaan, kung hindi marunong gayunman, sa kung ano ang ginagawa ng tuldok-kuwit. Ano siguro ginagawa nito para sa amin? Oo? Madla: [hindi marinig] David J. MALAN: Oo. Ito lang ang pagwawakas ng mga linya. Right? Gusto Ang mga computer na maging bluntly Sinabi, literal, ano ang gagawin. Tulad ng peanut butter at halaya sanwits halimbawa, kung hindi mo tukuyin ang kung ano ang balak mo, maaaring ito ay ang natitira upang paghatol o error. Semicolon Ang ibig sabihin nito, na ito para sa command na ito. Ito ay pagiging sobrang tumpak, at ito ay isang napaka-madaling bagay na tigilan. Kaya ngayon ang program na ito ay hindi mukhang ay kumikilos anumang iba hanggang ako gawin itong mas dynamic. Kaya sa halip na hard dati ang aking sariling pangalan, hayaan mo akong ilagay ang halaga ng isang placeholder. At ito ay lumiliko out na, at alam ko na ito mula sa pagkakaroon ng basahin ang mga babasahin, at ginamit ang pag-andar para sa taon, na printf ay idinisenyo upang maging dynamic. Hindi mo na kailangang malaman in advance ano ang mga salita na gusto mong ilagay sa loob nito. Maaari mong sa halip na magkaroon ng isang placeholder, tulad ng porsyento s, na ay upang sabihin sa mga computer, maglagay ng isang string dito. Aling string ang gusto naming ilagay doon? Will ay lumiliko out na sa pagitan ng mga panaklong, na tandaan, maghiwalay ang input sa isang function, kung mayroon kang comma separated na listahan ng mga bagay-bagay dito, talaga naming ipasa sa maramihang input sa isang function. Kaya gusto lamang ng ilang mga scratch bloke, hindi mo maaaring ay nilalaro gamit ang mga ito para sa iyong proyekto pa o sa lahat, ilang mga scratch bloke ay may dalawang input. Dalawang kahon puting maaari mong type ang mga numero o mga salita sa. Kaya upang ang C ay may mga pag-andar tulad ng printf na maaaring tumagal ng dalawang input. At muli, ito comma ay naghihiwalay sa kanila. Kaya sa Ingles, muli kahit na hindi mo na-program bago, sa pamamagitan ng na logic printf ay isang function, tumatagal ng dalawang input, isa rito ay isang placeholder, kung ano ang inyong pag-asa printf ay pagpunta sa gawin sa input na ito? Ito ay pagpunta upang kamustahin Hannah, sana. Kaya upang gawin ito, kailangan naming i-save ito. Pupunta ako upang mag-zoom out. Pupunta ako sa bumalik pababa dito at sabihin, gumawa ng halo ipasok. Oh. Isang bagay ang mali, at ang tunay na ito ay lubos napakalaki. Mayroon akong anim na linya ng code at tulad ng 12 mga linya ng error. Kaya, inaasahan ang mga ito. Kaya kung ano ang nangyayari sa dito? Kaya ang pinakamahusay na patakaran ng hinlalaki dito, lalo na kapag ikaw ay nagsisimula, hindi makakuha ng ginulo sa pamamagitan ng ang mga bagay-bagay sa ilalim. Sa katunayan, ang tunay kong sadya scrolled lamang up dahil madalas, ang computer ay hindi lahat na maliwanag ng isang aparato. Ito ay pagpunta upang makakuha ng nalilito. Kung nakikita ito isang bagay na ito ay hindi maunawaan, maaaring ito pagkakamali ng iba pang mga mga linya ng code ng hindi tama, kahit na ang mga ito ay ganap na multa. Kaya palagi mong nais na magtrabaho top down sa pamamagitan ng mga error. At tinatanggap na ito ay super arcane sa sandaling ito. Error, ang paggamit ng hindi nagbigay-alam identifier string. Ang ibig sabihin ng ko standard in? Hindi, sinadya ko string. At ito ay tumuturo sa, marahil ito ay isang typo. Uri ng tulad, spell-check in sa isang very geeky paraan, ngunit ang mga dahilan dito, at malalaman mo kung ito sa pamamagitan lamang ng pagsasanay, ay na ito lumiliko na string ay hindi umiiral sa C. Sa katunayan, C ay isang partikular na lumang wika, at ito ay mababang antas, at ito ay hindi isang pulutong ng mga tampok na baka may gulang hanggang sa kung mayroon kang, sa katunayan, na nakaprograma sa Java, pati na mayroon ilan sa inyo, ngunit maaari mong ituro ito bagong bagay. At sa katunayan, kami ay tapos na ito CS50, kahit na sa katapusan ng semestre, lahat ng mga gulong ng pagsasanay ay ay kinuha off, ano ang ginagawa namin dito sa unang ilang linggo una ay mayroon rin kaming isama mo CS50 dot h. Alin ang isang header na file. Higit pa sa na sa hinaharap. Ito ay isang file na naglalaman ng mga pag-andar na namin ang nakasulat na para sa iyo. At sa gitna ng mga pag-andar ay pag-andar para sa pagkuha ng input mula sa mga gumagamit, tulad ng mga string, at numero, at mga tunay na numero, at higit pa. Ngunit ito rin ay may ilang mga shortcut. Ito ay tumutukoy sa isang Boolean bilang isang uri ng data. C ay walang true o false. Ngunit maaari naming bigyan ito ang paniwala ng totoo o hindi sa pamamagitan ng paraan na ito ng library. At ito ay hindi rin magkaroon ng isang string built in hanggang isama namin ang linyang ito. Kaya nagsasabi na ito linya ng code tagatala, hey, Clang, tumingin sa file na ito para sa isang buong grupo ng mga code na CS50 ay isinulat upang sinuman gamit ang file na ito Maaari mang-ahas ang mga tampok na sila na idinagdag. Kaya ngayon hayaan mo akong magpatuloy at malinaw na ang screen, at kung curious lang ako nagsasabi control l sa bawat oras na i-clear ang screen, o maaari mong i-type malinaw. Lamang ako pagpunta sa magpatuloy ngayon at type gumawa ng halo, at lahat ay mabuti. Isang arcane output pa rin, ngunit ito ay hindi isang maling mensahe. Ngayon kung gagawin ko dot slash hello, at bilang isang bukod, tuldok slash ay hindi pamilyar sa karamihan. Ito lamang ay nangangahulugan, dot paraan kasalukuyang directory. Kaya kung sakaling mo na ginagamit Dos, o Linux, o Unix baka may gawin ang isang bagay tulad ng cd tuldok tuldok, kung saan dot dot nangangahulugan pumunta paurong sa oras, o pumunta paurong, o mas mataas up sa inyong direktoryo. Nangangahulugan lamang Dot tumingin sa kasalukuyang directory. Gusto ko ng hello, kung saan ay karapatan dito. At sa katunayan, ngayon ang sinasabi nito kumusta Hannah. At kapag binago ko ang mga ito muli na Maria, mag-recompile ito ay gumawa ng hello, tuldok slash hello, ang programa mapigil ang pagbabago. Ngunit ito pa rin ang isang pretty tangang program. Kung gusto kong ipadala ang programang ito, o ibigay ito sa isang kaibigan, o ibigay ito sa Maria o Hannah para sa mga bagay, na multa. Maaari ko ba itong i-customize para sa pareho ng mga ito, ngunit hindi ito ay magiging dynamic. Hindi nila maaaring baguhin ito sa sandaling ito ay pinagsama-sama down sa mga zero at mga. Kaya kung ano ang ginawa namin ang isang bagay na mas madunong? Paano kung, sa halip na hard-coding sa pangalan ng taong ito na programa, paano kung makuha namin lamang ang string on demand? Kaya sa ibang salita, hayaan mo akong gawin ito. Pupunta ako sa recompile programang ito. At hayaan mo akong mag-zoom in sa ibaba ngayon. Gumawa kumusta dot slash hello. Ngayon wala ang nangyayari. Puwede ba kaming makakuha ng isang mabilis volunteer upang gumawa ng isang bagay na mangyayari? Lumapit sa up. Ano ang inyong pangalan? PANCHO: Pancho. David J. MALAN: Pacho? Lumapit sa up. Kapag nakarating ka na dito, na ito ay magiging masyadong underwhelming, ngunit ito ay mas kawili-wiling kaysa sa akin-type ito. Kung nais mong magpatuloy at i-type ang iyong pangalan, ginawa ko ang program na ito para lamang sa iyo. I-type lamang ang iyong pangalan. Enter. Magagandang. Sige, salamat sa inyo. PANCHO: Maraming salamat sa inyo. David J. MALAN: OK. [Palakpakan] Iyon ay napakabait. Narito Pumunta ka. Ano ang gagawin namin? Kaya sa wakas namin, hindi bababa sa, ginawa dynamic programang ito. Ngayon ay tiyak pa rin sa pamamagitan underwhelming disenyo, ngunit kami sa wakas ay may kakayahan ngayon upang isulat ang code nang maaga, marami tulad ng mga may-akda ng printf, at pagkatapos ay magilas iakma batay sa input tayo ipinasa, alinman sa pamamagitan ng mga programmer, o sa pamamagitan ng mga tao kung sino ang tunay na pakikipag-ugnay sa programa. Kaya sabihin aktwal na ngayon subukan upang gawin ang ilang iba pang mga constructs at makita kung hindi namin maaaring gumawa ng mga programa ang kanilang mga sarili mas sopistikadong. Kaya sabihin sige at sa halip ng pagsulat ng isang ito mula sa simula, Pupunta ako sa pumunta sa ngayon source code, at ang lahat ng mga ito ay magagamit sa kurso ni website, at maaari mong i-drag at i-drop ito sa iyong sariling kapaligiran dumating Biyernes sandaling problema set 1 ay nagbibigay sa iyo ng mga tagubilin, o maaari mong gawin ito sa command line ng mabuti, ngunit higit na dumating sa p set 1. Tayo'y makita kung ano ang sa programang ito dito na tinatawag, ulupong dot c. Ngayon na nagkomento ako ito, ngunit ano ang bago? Sa unang tingin, kung ano ang linya ng code ay ganap na bagong? Marahil hindi sa panimula hindi marunong ngayon. Madla: [hindi marinig] David J. MALAN: Oo, kaya int x ay katumbas makakuha n. Hindi namin nakita ang anumang mga ito bago, ngunit int ay marahil ang simbolo para sa kung anong uri ng variable, [? mula?] isang integer. Kaya int para integer. Lamang Ito ay ang pagiging mas maikli at malinaw. x ay lamang arbitrary. x at y at z ay pa rin pretty makatwirang para sa mga numero, ngunit sa pangkalahatan ay gagamitin namin ang mga salita sa sandaling ang aming mga programa makakuha ng mas kumplikadong. Kumuha ng int, siyempre, marami tulad get string, ay marahil pagpunta upang makakuha ng isang int mula sa gumagamit, at pagkatapos kami ay pagpunta sa gawin ang parehong bagay sa y. At tila, kahit na ito huling linya, 24, mukhang mas kumplikado, ito ay pagpunta sa sabihin ang kabuuan ng mga ito at iyon ay ang iba pang mga bagay. At pansinin porsiyento i marahil nagsasaad kung ano? Anong papel ang porsiyento i tila maglingkod? Ito lang ang mga placeholder. Right? Porsyento s ay para sa string, porsiyento i ay para sa integer. May pupuntahan na porsyento f para sa mga lumulutang na halaga ng point, na ay isang numero lamang na may isang decimal point. Sa ibang salita, ang isang tunay na numero. Kaya sabihin aktwal na sumulat ng libro na ito programa real mabilis at gumawa ng mga ulupong. Oops. Magandang pagkakataon. Kaya mapansin dito, ang lahat ng mga oras na ito ang aking mga user pangalan para sa account na ito ay jharvard. Kasama ko sa CS50 IDE, aka IDE50. At ngayon sa asul dito, ay isang banggitin, ngunit mula sa kapaligiran, ng kung saan ako. At sa katunayan, kung ako mag-zoom hanggang sa tuktok dito, mapansin na mayroon akong isang IDE50 at nakikita ko ang salitang ito, kung ikaw uri ng buksan ang iyong ulo sa gilid, workspace. Sa maikling sabi, ang katunayan na ang Nakakakita ako ng tilde slash workspace Nangangahulugan ito na sa tekstong ito base command na kapaligiran, Kasama ko sa text katumbas ng Ang graphical na folder up dito. Kaya kapag ko dot slash ahas, ito ay nagsasabi na walang patakaran upang gumawa ng mga target ulupong stop. Hindi ko alam kung ano ang ibig sabihin nito, ngunit ito ay masamang para sa ilang kadahilanan. Walang ganitong file o directory ay mas malinaw. Saan ito pagkatapos? Batay sa kung saan ako nag-click upang buksan ang file na mas maaga. Saan maaaring ito ay? Ito ay marahil sa pinagmulan isa w, para sa Miyerkules, at ang maaari kong makita ito, sa katunayan, kung bubuksan ko na ang up. May ahas dot c, ngunit sa ito text-based na kapaligiran, muli, kailangan kong maging tahasan super. Kung gusto kong baguhin ang mga direktoryo sa pinagmulan ng isa Wednesday, kailangan ko na i-type, cd space source isa Miyerkules ipasok at ngayon aking prompt pagbabago sa bigyan ako ng isang visual cue na Ako, sa katunayan, sa ibang lugar sa aking kapaligiran, ngunit ngayon maaari kong gawin gumawa ahas, ito tila sa trabaho, dot slash ahas, bigyan ako ng isang integer. One. Dalawang. Ang kabuuan ng isa at dalawa ay tatlo. Ngunit kung hindi ako tumulong, sabihin makita kung ano ang makukuha int ginagawa. Bigyan mo ako ng isang integer. Hindi. Subukang muli. OK. Fine. 50. 50. Ayos lang. Kaya ito sa wakas ay nakikipagtulungan. At iyon ang ilan sa mga functionality na ang mga function Maaari Binuo para sa iyo. Kaya sa loob ng pagpapatupad ng makuha int, kung ano ang programming bumuo mula noong nakaraang linggo ay marahil sa doon upang pilitin ang pag-uugaling ito ng retry, muling subukan, subukang muli? Oo, may marahil ilang mga uri ng loop. Ito ay pagpunta upang tumingin syntactically naiiba mula sa mga bloke scratch, ngunit iyan ay sa katunayan kung ano ang sa loob ng file. At sa isang oras ilang linggo ipapakita namin talagang tingnan ang CS50 library bilang sa kung ano ang nasa loob, ngunit mayroong isang loop pagpataw eksakto na. Maglaro ng isang hangal kaunti Ipaalam game dito sa file na ito. Kalagayan zero dot c. Kami ay pagpunta sa pangkalahatan simulan ang pagbibilang sa zero. At ako panatilihin scroll nakalipas ang ilan sa mga bagay-bagay sa itaas. Sa bughaw na dito, demarcated sa lahat mga bituin at ang slashes, sa mga ka na programa bago, ano na? Bakit patuloy naming laktaw sa mga ito? Ano? Madla: Ito ay isang komento. David J. MALAN: Oo. Ito ay isang komento. Ito ay isang komento para sa mga tao basahin, na sa aming kaso, Sinasabi sa amin kung ano ang pangalan ng file ay, na sinulat ni ito, at kung ano ang ginagawa nito, sa gayon ay hindi mo na kailangang upang basahin sa pamamagitan ng mga code upang malaman kung ano ang file na ito ay tungkol sa lahat. Ito ay isang paglalarawan lamang, ngunit pagtakbo ito ay kaugnay. At kahit ako maaaring tanggalin ito mula sa aking file at ito ay walang epekto. Ang mga makatas mga linya ay mga unang dalawang dito, ngayon. int pangunahing walang bisa ay ang katumbas ng aming kapag nag-click green flag, kaya kami ay pagpunta sa umalis na maging para sa ngayon, at kami ay bumalik, sa huli, sa kung ano ang int at walang bisa ay, ngunit ngayon, paunawa kung ano gumawa ako dito rin, maaari mo ring, kung mayroon kang isang sa linya puna, kung mayroon kang isang-iisip na nais mong ibahagi tungkol sa isang partikular na linya ng code, kombensiyon sa C ay ang gawin slash slash, at pagkatapos ng ilang maikli at malinaw na mga salita, hindi isang ganap na pangungusap, sa pangkalahatan ay hindi isang talata, na lamang ay nagpapaliwanag sa iyo, o ang iyong TF, o iba pang mga mambabasa o mga kasamahan, kung ano ang iyong code ay ginagawa. Kaya sa halip na may sa hitsura at ito at ipahiwatig mula linya siyam at 10, kung ano ang ito ginagawa, sa walong linya Ako ay magbibigay lamang ng komento sa tanungin ang user para sa isang integer, pagkatapos ay hindi ko kailangang mag-isip masyadong matigas tungkol sa kung ano linya siyam at 10 ay. Lang alam ko na na kung ano ang sama-sama ang kanilang ginagawa. Paano? Well, narito ang mga prompt. Narito ang pagkuha ng int. At batay sa mga nakaraang pag-uugali, ito ay tila tulad get int ay matalino na sapat upang tiyakin na nakikipagtulungan sa mga tao at ito ay nagbibigay sa isang integer. Ngunit ngayon nakita namin na ito. At ito ay nakapagpapaalaala ng scratch. Ako nagke-claim na ako pag-aaral sa input ng user, pero medyo hindi tumpak. At ito tila sa C ay kung paano express namin ang isang kung ibang tao, isang sangay, isang tinidor sa kalye, ngunit ako sabihin medyo hindi tumpak. Ano ang mga bug sa programang ito? Tungkol sa karagdagang-back? Oo. Madla: [hindi marinig] zero. David J. MALAN: Oo. Kaya kung type ko sa zero, isaalang-alang ng ipaalam eksakto na kaso, o sulok kaso, kung ikaw ay. Kaya kung type ko sa zero, kung alin sa mga bloke ay pagpunta sa tila grab ito? Ang kung o ang ibang tao? Ang ibang tao, at ito ay pagpunta sa sabihin, kayo pumili ng isang negatibong numero. At sa katunayan, zero ay hindi dapat upang maging positibo o negatibo, at sa gayon ay magiging wasto. Iyon ay magiging isang bug. Kaya kung paano namin ito aayusin? May isang tao na hindi pa program bago? Gawin want-- mo Madla: [hindi marinig] David J. MALAN: Binabawi? Madla: [hindi marinig] David J. MALAN: Oh, mayroon ka? May isang tao na hindi pa program bago. Gusto mong subukan ang iyong mga kamay sa ito, sa red shirt? Lumapit sa up. Oh oo, dumating sa up, kung hindi tututol kayo. Kaya hindi pagkakaroon ng program bago, ano ang pangalan mo? LAUREN: Lauren. David J. MALAN: Lauren, lahat ng karapatan. Kaya ayusin ang bug na ito para sa amin. Hindi mo na makikita C, siguro, at marahil walang iba pang mga wika. Kaya ayusin ang program na ito para sa amin. Masaya akong makilala ya. Walang presyon. LAUREN: Oo. David J. MALAN: Ngunit muli, kung ito sugal napupunta ayon sa plano, ang takeaway ay dito maging, muli lamang, upang simulan sa paunawa pattern at magpakilala mula sa umiiral na syntax paano pa maaring ipahayag ang sa iyong sarili, walang pun nilalayon, upang sa pagkuha ng ilang karagdagang mga sitwasyon. Kaya namin sinasabi ng ibang tao kung. printf, mabuti. At mapansin na may CS50 IDE, at frankly-- IDE ibig sabihin para sa Integrated Development Environment. Ito lamang ay isang magarbong paraan ng sinasabi isang programa na tumutulong sa iyo na programa. Ito ay gumagamit friendly mga bagay tulad ng kapag nag-type ka ng isa parenthesis, ito ay awtomatikong nagbibigay sa iyo ng isa. Aakala Ang pagiging na ikaw ay huli pagpunta sa nais na uri na iyon, at ito rin ay ito sa quotes. Kaya gusto ko 23 linya. 99% ng mga paraan doon. May isang tao na nais sa tunog ng relos in gamit ang isang tip? Narinig ko ang semicolon mula sa madla. Good. Kaya na nakatapos na. At ngayon, mayroon akong lamang ng isang maliit consternation may 21 linya. Paano nais naming ipahayag ito? Anong tanong ang gusto natin na magtanong, sa palagay mo? Kaya dati hiniling namin ang tanong, kung n ay mas malaki kaysa sa zero, gawin ito. Iba Pa, gawin na. Kaya kailangan namin upang pumili ng isang tanong na magtanong dito. Madla: [hindi marinig] David J. MALAN: Magandang. Kaya kung n ay katumbas ng zero. Magaling. Kaya ni-pause dito. Salamat sa iyo kaya magkano para sa braving ito. Hayaan akong bigyan ka ng isang maliit na well-marapat stress ball, marahil doon. Kaya hindi namin halos doon. Sa katunayan, Lauren, kung hindi mo gusto isip, hayaan mo akong gumawa ng isa tweak dito, upang maging pare-pareho kahit na may lamang ano ang nakita natin sa simula, kung ano ang gusto kong gawin sa mga linya 21 at 24, batay lamang muli sa kung paano namin ginawa ito sa simula, marahil? Madla: Ilipat up ito. David J. MALAN: Oo, ilipat ito up. Kaya ang kalagayan ng ibang tao, ang third, o ikaapat, o ikalimang, o pangwakas na branch, dapat katunayan dumating pagkatapos nito, at na lamang sa pamamagitan ng convention, dahil lang kung ikaw ay. Kaya kailangan ko upang gumawa ng mga ito tweak. At kailangan ko upang ilagay ang aking kulot suhay bumalik dito. At ngayon, ang programang ito ay sumulat ng libro. Humihingi kami kaya malapit, ngunit mayroong isang tunay, tunay mapaglalang bug. Tingnan natin kung ano ang mangyayari. Una, sabihin sa akin sige at mag-zoom out. Pupunta ako sa sige at type gumawa condition zero. Oh, nagsinungaling ako. Ngayon ang tagatala ay talagang medyo smart. At hindi ko talaga maintindihan ito ay error na mensahe. Paggamit ng mga resulta ng isang pagtatalaga bilang isang kondisyon na walang mga panaklong, ay tila masama. Ngunit ano ang ibig sabihin nito? Well muli, naghahanap para sa mga pattern sa code na iyong nakita natin dati, kung ano ang line 17 aktwal na ginagawa, kahit Lauren inilaan bahagyang sa kabilang banda? Oo. Madla: [hindi marinig] David J. MALAN: Oo. Kaya tandaan ang equal sign, tila bilang ginamit namin bago ito, ay hindi katumbas. Ang assignment, mula kanan pakaliwa. Kaya line 17 sa sandaling ito ay isang kondisyon, at ito ay Isinasagawa ang code sa loob ng mga panaklong, ngunit kapag inilapat na code, kung ano ang nangyayari sa ang halaga ng zero? Ano ang nangyayari sa mga halaga ng n? Pagiging zero. Kaya kung n ay nagiging zero, at muli, tulad ng bawat noong nakaraang linggo, sa pangkalahatan naming sabihin na zero ay hindi totoo at ang isa ay totoo, o yes ay isa at walang ay zero. Kaya tunay at huwad na isa at 0,. Kung n bilang ng mga linya 17 ay ibinigay ang halaga 0, ay zero totoo? Hindi. Sa pamamagitan ng kahulugan, zero ay hindi totoo. Iyan ang convention hindi namin pagpunta sa kumapit sa paglipat ng pasulong. Kaya ay linya 18, 19, at 20 kailanman mag-apply ngayon, lohikal? Hindi nila makakaya. Kaya tinanong namin ang tanong ngunit hindi pa tiyak, at hindi mo alam na ito maliban kung na iyong nakita ito, ang solusyon sa C ay kung nais mo upang ipahayag ang pagkakapantay-pantay, sabihin mo equals katumbas. Kaya katumbas sign ay ginagamit na up sa pamamagitan ng pagtatalaga, mula kanan pakaliwa. Katumbas ng ay katumbas ng paraan katumbas. At kung gusto mo talagang iyong isip upang maging baluktot, sa JavaScript at PHP, may katumbas katumbas katumbas, na ibig sabihin iba pa sa kabuuan, ngunit kami ay kumuha na bago ang haba. Kaya ito ay isang simpleng pag-aayos, ngunit mapagtanto napakadaling upang gumawa ng mga pagkakamali, at pagkatapos ay magtaka at pakikibaka para sa mga minuto, kung hindi isang oras, kung bakit ang aking code ay hindi Isinasagawa rin ang balak ko? Ito ay dahil hindi mo sabihin ito tiyak kung ano ang iyong ibig sabihin. Kaya na ay halos perpekto, at ito ay mahusay na na kami stumbled sa kabuuan ng mga dalawang maliit bagay na ito dahil ngayon kung maayos namin ang mga ito, at ako ay gagawa condition zero dot slash condition zero, Gusto ko ng isang integer please. Tingnan natin. Hindi. Ito ay pagpunta sa lakas sa akin upang gawin ito. Kaya 42. Ako pumili ng isang positibong numero. Kaya ngayon kung paano gawin patunayan ko ang program na ito ay tama? Kung ikaw ay isang mathematician, hindi ka maaaring talagang patunayan ito sa pamamagitan ng pagsubok at error, right? Maaari kang hindi lamang ang katibayan sa pamamagitan ng halimbawa, ngunit hindi bababa sa bilang isang programmer hindi kami pagpunta sa subukan upang patunayan para sa ngayon na ito ay talagang tama, ngunit ang dapat kong marahil subukan ang ilang mga kinatawan ng mga kaso. Sinubukan ko na 42. Maaaring kong subukan 43. Maaaring kong subukan 44. Test 45. Right? Ngunit maaari kong gawin ito ng isang talagang mahabang panahon. Ano kaya ang ilang mga iba pa kagiliw-giliw na mga kaso upang subukan? Madla: [hindi marinig] zero. David J. MALAN: Kaya zero. Oo nga. At mabuti, namin ang nakuha ko oras na ito, salamat sa bagong code Lauren. Ano ang isa pang mahusay na kaso upang subukan? Madla: Negative isa. David J. MALAN: Negative isa, at marahil ng isang bagay ng isang maliit na mas malaki, kaya siguro negatibong 42, ngunit sa pangkalahatan, kapag ang pagsubok ang iyong mga programa paglipat ng pasulong, ikaw ay pagpunta sa nais na mag-isip sa iyong sarili, tulad ng kung ano ay ang mga pangunahing iba't ibang mga kaso. At loob ko sabihin ng negatibong kaso, isang positibong kaso, at isang zero case medyo marami round out ang mga ito. Tingnan natin ang isang variant ng ito kahit Hayaan. Mga Kundisyon ng isa. Ito ay isang tamang solusyon dito, sa gayon ay makikita mo ang dalawang at online, kung ituturo sa iyo ang walkthroughs, ay sa pangkalahatan paglakas mga stepwise hanggang tayo makakuha ng eksakto ang tamang diskarte. Paano kung gusto naming itanong dalawang tanong nang sabay-sabay? Hayaan akong buksan up na ito sa halip. Non-switch, para sa mga dahilan kami ay makita sa ibang oras. Ano ang bago syntactically dito? Kasalukuyan akong naglalaro ng isang laro kung saan ang computer ay nagsasabi sa akin, bigyan mo ako ng isang integer sa pagitan ng isa at 10, at pagkatapos ay ako paghusga sa balat ng input ng user. Sa Ingles, batay sa ang code na makikita mo dito sa asul, kung ano ang program na ito ginagawa? Madla: [hindi marinig] pinili isang malaki o maliit na bilang. David J. MALAN: Oo. Lamang Ito ay adjudicating kung Ako pumili ng isang malaki, o medium, o maliit na bilang batay sa isang napaka arbitrary kahulugan ng maliit, katamtaman, at malaki dito, ngunit notice ang syntax na ang bago ay ito. Walang mas mababa sa int sa o katumbas ng mag-sign, o mas malaki kaysa sa o katumbas ng sign, kung saan ang isa ay higit sa iba, na kayo maaaring ipahayag sa tulad ng Microsoft Word. Kaya sa isang programming language sa iyo karaniwang lamang gawin ang dalawang character, isa-isa. At ano ang ginagawa ito marahil kumatawan, ampersand ampersand. Madla: [hindi marinig] David J. MALAN: Oo. Ito ay nangangahulugan lamang at dahil ito lumiliko out na ang mga may-akda ng C ginagamit ng isang solong ampersand, na kung saan maaari mong isipin ay perpekto para sa mga kuru-kuro ng at, ay ginagamit up, kaya ampersand ampersand talaga kinukuha ang kaso namin talagang gusto. Kaya sabihin ngayon makasumpong sa kabuuan ng dalawang bagay. Hayaan akong sige at buksan up ng isa. Isang bagay na ay isang maliit na nakakaligalig. Imprecision dot c. Hayaan akong kitang ipakilala sa dalawang mga bagay dito. One, notice na maaari naming gawin math, tulad lamang ng dati nang ginawa namin plus ng dalawang numero, x at y. Ano ang programang ito ay tila ginagawa? Hindi ko na pa nagkomento ito, at ipinakilala ko na porsiyento f, ngunit ako mabilis na sinabi ng mas maaga porsyento f nangangahulugan lumulutang point halaga, na kung saan ay tunay na numero. Isang bagay na may isang decimal point, na kung saan ay hindi isang integer. Ano ang tingin mo sa programang ito ay sinusubukan mong ipakita sa akin sa screen? Oo? Madla: Ang resulta ng isa sa higit sa 10. David J. MALAN: Oo. Ano ang mga resulta ng isa na hinati sa 10. Right, dahil ang lahat ng mga malamang na ikaw ay lumago up-alam na isa sa higit sa 10 ay kung ano? Oo, ito ay lamang 1/10 o 0.1. Right? Kaya sabihin makita kung ano ito ay talagang. Kaya hayaan mo akong magpatuloy at i-save ito. Hayaan akong pumunta dito sa ibaba. Gumawa imprecision dot slash imprecision, at notice, masyadong, sa isang Linux na kapaligiran, hindi mo kailangang i-type out imprecision at kumuha buong araw. Ito sa pangkalahatan, kung ikaw ay pindutin ang Tab, ito matatapos ang iyong pag-iisip para sa iyo, batay sa mga salita na magagamit sa kasalukuyang directory. OK. Kaya ikaw ay kanan. One hinati sa 10 ay, sa katunayan, 0.1. Ngunit ako ng isang maliit na kakaiba. At ito ay lumiliko out printf Sinusuportahan ng ilang mga tampok kung saan maaari mong tukuyin ang higit sa ang default na bilang ng mga decimal point. Kaya kung gusto kong makita ang 10 decimal puntos ang maaari kong gawin porsyento, para sa mga simbolo ng placeholder, tuldok 10 para sa, bigyan ako ng 10 mga decimal point, at pagkatapos pa rin lumulutang point halaga, at, bilang isang bukod, kung ano ito backslash n Lumilitaw na panatilihin namin ginagamit? Ito ay lumiliko out na ito ay isang simbolo para sa isang bagong linya. Ito ay ang tunay tahasang paraan ng mga sinasabi sa computer, ilipat ang cursor sa susunod na linya pagkatapos tapos ka na. At kami na makita kung ano ang mangyayari kapag hindi namin gawin iyon. Hayaan akong mag-recompile gumawa imprecision. Ngayon dot slash imprecision. OK. Still karapatan. One hinati sa 10. Ngayon ako nakakakuha ng isang maliit na kakaiba, kahit na. Paano kung ako ay tumingin sa 20 decimal points out, recompile, gawin uli, at bilang isang tabi para bilis, maaari mo ring gamitin ang iyong up at down arrow upang mag-scroll sa pamamagitan ng iyong kasaysayan, kaya hindi mo na kailangang panatilihin retyping ang mga utos, ipasok. Huh. Hindi ko malaman na sa mababang paaralan. Lahat ng karapatan, kaya hayaan mo akong makita tulad ng 29 mga lugar sa labas. Marahil ito ay isang parasitiko lamang. Siguro ang aking computer ay kumikilos kakaiba. Iyan ay hindi isang bagay, i-right? Ito ay paggawa ng isang bagay deterministically. Kaya gumawa imprecision. OK, na messed up. Kaya kung ano ang nangyayari? Kaya tila iyong guro ay namamalagi sa inyo ang lahat ng mga oras na ito para sa dahilan na kami makita bago ang haba. Ngunit sabihin magtapos sa isang iba pang mga program ipaalam. Ito ay isang maliit na mga programa ang isang tao ay sumulat ng ilang mga taon na nakalipas, at ito ay aktwal na bahagi ng isang contest. Walang sinuman ang talagang magsusulat code tulad nito, at kung gagawin mo, ito ay stylistically isang problema. Subalit ang mga tao gawin ito para sa mga karapatan ng hangin. Upang isulat ang pinaka-nakalilito naghahanap ng programa na gayunman ay isang bagay na kawili-wili. At ang tala naisip ko na gusto naming mag-iwan sa ngayon, bago Colton gumaganap sa amin dito, ay upang patakbuhin ang program na ito, na kung saan, kahit na sa loob lamang ng paggamit C sa batay sa teksto kapaligiran, ay nagbibigay sa amin na ito. Dammit. [Tawa] Stand by. [Hindi marinig] c dash l m. Ikaw ay pagpunta upang makita ang mahiwagang bulong na namin makita bago ang haba. Lahat ng mga karapatan [hindi marinig]. At ngayon maaari mong kahit na gawin ang mga bagay na tulad nito. Iyan na ang lahat. Para sa CS50 namin, ay nakikita mo sa Biyernes. [MUSIC nagpe-play] [Palakpakan]