David J. MALAN: Kaya ito ay CS50. At ito ay sariling Colton Ogden CS50 ni, para sa higit pa sa kung sino ang musika maaari mong i-download sa soundcloud.com/cs50. Kaya ngayon namin ituon ang lahat ng higit pa sa sining ng programming. At tumagal kami kung saan kami pakaliwa off noong nakaraang linggo, ay nagbibigay-diin sa simula, na kung saan ay ito graphical programming language. At kumuha ng mga bagay down sa isang mas mababang antas, gamit ang isang mas tradisyonal na programming wika na kilala bilang C. Ngunit sa kahabaan ng paraan, napagtatanto na ang parehong mga ideya namin usapan tungkol sa huling Biyernes ay magbalik hindi lamang sa isang ito wika C, ngunit sa karamihan ng bawat iba pang mga na tinitingnan namin ang semestre na ito. Kaya tinatawag namin ang bagay na ito dito kung ano ang huling beses? Ito ay kinatawan ng isang statement. Kaya tinatawag namin itong isang pahayag. At ginagawa nito ang isang bagay. Ito ay isang pagtuturo na ang isang Maaaring magsagawa ng computer o sa simula. At henceforth, sabihin ring magsimula ng pagtawag ng isang bagay na tulad nito ng isang function, para sa mga kadahilanang ay dapat sa lalong madaling panahon namin makita. Samantala, nakita namin ang mga bagay na katulad nito. At ang mga ito ay sa pangkalahatan na kilala bilang kung ano bumuo? Madla: Loop. David J. MALAN: Kaya isang loop. Kaya medyo prangka. Ito Literal na ginagawa kung ano ang sinasabi nito. At sa simula, kung nais mong Cram higit pang mga piraso puzzle sa doon, ang piraso ay lalaki upang magkasya ito. At kami makita sa C na maaari naming gawin ang parehong bagay. Ang isa pang uri ng loop, bagaman, sa simula ay maaaring maging walang hanggan, o mayroong anumang bilang ng iba pang mga diskarte. Ngunit ng tumagal ng higit pang ipaalam generalist hitsura, na may isang mukha na malamang medyo pamilyar, sa mga loop sa mas pangkalahatang paraan. MARK ZUCKERBERG: Isa bagay na mga computer ay talagang magandang sa ay paulit-ulit na mga utos. Bilang isang tao, dapat mong makakuha ng talaga ay nababato kung ay kinailangang gawin ang parehong bagay maraming beses sa isang hilera. Ngunit maaari gawin ang parehong bagay sa isang computer milyun-milyong o kahit na bilyun-bilyong beses, at hindi makakuha ng nababato, at magagawa upang isakatuparan na out talagang mahusay. Kaya halimbawa, kung ako nais na nais lahat ng tao sa Facebook ng masaya kaarawan sa pamamagitan ng pagpapadala sa kanila ng isang email, maaaring tumagal ng akin ang higit pa kaysa sa isang siglo upang aktwal na isulat lahat ng mga email na iyon sa lahat ng tao. Ngunit sa loob lamang ng ilang linya ng code, maaari ko magkaroon ng isang sistema magpadala ng email sa lahat ng tao sa Facebook na nagnanais ang mga ito ng masaya kaarawan. Nang sa gayon ay ang kung ano ang mga loop ay at kung bakit ang mga ito ay mahalaga at isang bagay na maaaring gawin nang napakahusay na mga computer. David J. MALAN: Kaya kung ikaw pa ang tatanggap ng ilan sa CS50 at Espasyo ng late Dropbox ni, na talagang tiyak kung ano ang namin gawin, gamit ang code masyadong tulad na. Lubos kaming magkaroon ng malaki spreadsheet sa kung saan kakailanganin ng mga tao ay na-inputting ang kanilang pangalan at email address. At ay nagsulat kami ng isang maliit na maliit bit ng code na Maaari umulit sa paglipas ng mga address na iyon at dumura out natatanging address sa isinumite kaso sinuman maraming beses. At pagkatapos noon, nagpapadala kami ng isang awtomatikong email mula sa bot CS50 ni, kabilang ang code ng kupon. Ngayon kami ay tumingin din sa ito ay makagawa ng huling beses. At ito ay isang partikular na Halimbawa ng kung ano? Kaya, Oo, isang Boolean expression. At ang mga hugis ay sinadya upang makuha din iyon. Ang lahat ng mga naturang katanungan ng bumuo ng tama o mali sa scratch ang magiging hitsura ng kaunti ng isang bagay na katulad nito. At tinatawag naming ito ng Boolean expression. Iyon ay sa katunayan totoo o hindi, oo o hindi. Ito ay isang paraan ng pagsagot ng tanong. At Samantala maaari mong gamitin ang mga Boolean expression sa loob ng constructs tulad ng mga ito, na ng Siyempre mga kondisyon o sangay, proverbial tinidor sa kalsada. At maaari silang tumingin hindi lamang tulad nito, ngunit maaari rin silang elses na nauugnay sa mga ito. At maaari mong aktwal na magkaroon ng isang tatlong paraan tinidor sa kalsada o ang isang apat na paraan tinidor sa kalsada, sa pamamagitan lamang ng nesting mga bagay na ito, bilang iyong makikita sa scratch kung hindi mo pa nagagawa. At bilang maaari mong gawin sa C pati na rin. Tingnan natin ang isa pang generalist Tingnan natin ang isang alumnist, pati na rin, na nag- Maaaring ipakita ng iba't ibang mga diskarte sa mga bagay na ito na tinatawag na kundisyon. Bill Gates: gumawa ng mga tao pagpapasya sa araw-araw. Halimbawa, bago ka pumunta sa labas ka uri ng magkaroon ng isang kung pahayag na nagsasabing, kung ito ay umulan pagkatapos ko kailangan upang makakuha ng aking jacket. At computer ay kamangha-manghang sa sandaling magpasya ang mga uri ng mga pahayag, na maaari nilang isagawa mapagkakatiwlaan mga bagay sa unbelievable bilis. At kaya isang computer program talaga Medyo ng matematika at ang ilan kung pahayag kung saan ang desisyon ay makakakuha ng ginawa. David J. MALAN: Kaya bilang maaaring alam mo na, ito ay kakailanganin ng mga tao tulad ng Bill Gates, Paul Allen, at iba pa na tunay na kicked off ang tinatawag na personal na computer rebolusyon ng ilang taon na ang nakakaraan. Akala ko, bago namin sumisid sa ilang mga administrivia, nais naming nauugnay ang isang kuwento mula sa Albuquerque, New Mexico museo ng Natural History at agham kung saan ang ilan sa Bill Gates ' at pinakamaagang mga kuwento Paul Allen ni ay recounted kung paano namin ay mayroon na ngayong mga PC ngayong araw at sa mga Mac at higit pa. Para sa mga ito, bagaman, kailangan namin ng dalawang mga boluntaryo na may napakagandang boses pagsasalaysay basahin ang isang script nang malakas. Ang lahat ng mga karapatan, kung paano tungkol sa likod doon. Halika sa up. At kung paano tungkol sa harap dito. Halika at pababa. Dalhin ang iyong mga lugar dito. Habang ikaw ay guys makabuo, ng ilang ng mga anunsyo administratibo. sectioning, ang proseso ng ng pagpili ng isang seksyon, Magsisimulang ito Miyerkules hanggang Biyernes. Higit pa sa na ito darating Miyerkules sa panayam. Super seksyon, samantala, ay isang bagay na nag-aalok kami sa susunod na linggo kung saan ang buong klase ay inanyayahan upang lumahok sa medyo malaki ang sukat mga seksyon, isa pang comfy, mas kumportable. At kami ay ipahayag ang mga detalye ng na, pati na rin, sa ibang pagkakataon sa linggong ito. Mga seksyon Samantala, kanilang sarili, ay magsisimula sa linggo tatlong ng mga kurso, zero index, na nangangahulugan na ang mga ilang mga linggo out. Kaya huwag mag-alala. Hindi ka pa napalampas na anumang bagay sa kahabaan ng mga linya. Samantala sa ngayon, kung iyong mayroon kayong mga katanungan administratively, email sa aking sarili at Devon at Gabe at Rob sa address na ito dito. Panghuli, itakda ang problema 0 ay, siyempre, out. Maaaring napansin mo ito sa website ng kurso ni. Dapat itong magbigay sa iyo ng lahat ng mga sagot sa mga tanong maaaring mayroon ka sa kahabaan ng paraan para sa pagsisimula sa mga hanay problema. Ngunit kung nakita mo ang iyong sarili nangangailangan ng isang pagtulong sa kamay, sa pamamagitan ng lahat ng paraan dumalo sa oras ng opisina, Monday, Tuesday, Miyerkules, Huwebes ng linggong ito sa gabi sa apat na dining hall. Tingnan ang mga URL na iyon doon para sa mga particular ng kung saan ang mga oras ng opisina ay dapat. Ngayon Magkita tayo ng ating dalawang bisita dito ngayon. Ano ang inyong pangalan? Jay Paul: Jay Paul. David J. MALAN: Jay Paul, mabait sa matugunan mo. HIKARI: Hikari. David J. MALAN: Hikari? HIKARI: Hikari. David J. MALAN: Hikari. Nice upang matugunan mo pati na rin. Jay si Pablo at Hikari mayroon sa harap ng mga ito sa mga musika Sinusubaybayan ng dalawang mga script na ako naka-print out na ito umaga mula sa New Mexico museo ng Natural History and Science. At kung ano naisip ko Gusto kong gawin sa overhead ay samahan ang iyong recitation ng script at kasaysayan ito na may ilang mga visual na mga imahe, walang mga sorpresa. At kung ano ang nagawa ko nang maaga ay prehighlight sa iyong script kung ano ang dapat mong basahin, at kung ano ang dapat mong basahin. At idedetalye namin mahalagang lamang kahaliling mga talata. Kaya ito ay halos tulad ng maaari mong ginawa sa klase Ingles. Iyon talaga ang pilitin ang madla upang maniwala sa iyong kuwento dito. Ay dapat namin? Kaya ang kuwento dito ay, mayroon kaming isang BATAYANG, at ito ay nagsisimula sa Cambridge. Jay Paul: Ito ay taglamig, 1974, sa Cambridge, Massachusetts kung saan Winters ay maaaring maging malamig. Ang isang may balbas, mahabang buhok dropout sa kolehiyo na may pangalang Paul Allen ay drudging sa Harvard Square, hinihigop sa kanyang mga saloobin. Ang kanyang pangunahing preoccupation sa mga araw na iyon ay kung paano makakuha ng kanyang kaibigan, Bill Gates, na umalis sa paaralan at pumunta sa negosyo na kasama niya. HIKARI: Ang dalawang ay na nawala sa pamamagitan ng isang bilang ng mga pakikipagsapalaran sa negosyo nang sama-sama, simula sa Lakeside paaralan sa Seattle kung saan sila ay mababayaran sa libreng oras computer upang subukan ang isang PDP-10 computer sa isang lokal na oras pagbabahagi ng kumpanya. Ang pinaka-kamakailang mga plano ay hindi naging upang tumigil paaralan at bumubuo ng isang kumpanya ng software. Allen ay iniwan Washington State University. Ngunit sa huling minuto, Gates nagpasyang manatili sa Harvard. Jay Paul: araw na iyon, na tumatawid sa Harvard Square, Allen nakita ang Enero, 1975 isyu ng mga Sikat na Electronics sa lupa pagtigil ng ulo ng ad, Una Minicomputer Kit mundo sa karibal Commercial na mga modelo. Sa ilalim ng headline ay isang larawan ng isang maliit na kahon adorned na may ilaw at switch. Ito ay tinatawag na ang MITS Altair 8800. At alam Allen ito ay kung ano ang siya ay naghahanap para sa. HIKARI: Mga Araw ng talakayan sinundan. Naunawaan Allen at Gates ang kabuluhan ng mga Altair. Madalas Sila ay usapan tungkol sa microprocessors at ay naghihintay upang makita kung ano ay tapos na sa kanila. Ngayon nagkaroon ng minicomputer kit sa ang takip ng Mga patok na Electronics. Tila ito pa ay walang na software. Naisip nila ang isang bansa ng programmer pababang sa MITS. At kaya sila tinatawag Ed Roberts, ang pinuno ng kumpanya, nagke-claim na magkaroon ng isang bersyon ng BATAYANG wika programming halos handa na para sa Altair. Sila ang hindi. At Roberts ay dapat na kilala nila ang hindi. Siya ay nakakakuha ng 10 mga tawag sa isang araw mula sa mga tao na nagkaroon ng isang BATAYANG halos handa na. At ang kanyang tugon stock ay, "Ang unang tao na nagpapakita up sa isang gumaganang BATAYANG nakakakuha ng kontrata. " Jay Paul: Gates at Allen ay hindi kailanman nakita ang isang Altair. Sila ay hindi kailanman kahit na nakita ang Intel 8080 microprocessor sa gitna ng Altair. Ngunit pagkatapos ng dalawang taon mas maaga Allen ay nagsulat ng isang programa sa isang mainframe computer na emulated sa pagpapatakbo ng isang nakaraang Intel microprocessor. At oras na ito sa palibot nila Gusto gawin ang parehong bagay. HIKARI: Gamit ang isang Intel 8080 manu-manong sa kanyang tagiliran, Allen nakaupo pababa sa isang Harvard PDP-10 na computer at sinulat emulator at software mga tool na kailangan upang gawin ang programming. Samantala tumigil Gates ng pagpunta sa klase at nakatuon ang kanyang sarili sa pagdidisenyo sa BATAYANG, gamit ang bawat nanlilinlang alam niya upang makuha ang laki down na mababa sa 4 kilobytes. Jay Paul: Out sa Albuquerque, Ed Roberts nakuha ng isang tawag mula sa Gates pagtatanong para sa mga detalye tungkol sa kung paano ang Altair mapangasiwaan tiyak na gawain. Walang isa ay kailanman tinanong na dati. At nagsimula Roberts upang makakuha ng interesado. HIKARI: Gamit ang pag-unlad mga tool at handa na ang disenyo, Isinulat ni pintuan at Allen ang code sa PDP-10, enlisting isa pang Harvard mag-aaral, Monte Davidoff, magsulat ng matematika gawain. Pagkatapos ng isang pangwakas na gabi ng programming, nakuha ko Allen sa isang plane upang maihatid ang kanilang BATAYANG sa MITS. Ginugol niya biyahe ang eroplano nag-aalala. At bumalik sa Cambridge Gate ay nag-aalala. Sila ay nasubok ang kanilang BATAYANG at ito ay nagtrabaho sa emulator. Ngunit paano kung ang emulator ay mali? Jay Paul: Bilang ng eroplano ay lumapit sa Albuquerque, Allen natanto na ang kanilang BATAYANG, maaayos nang ngayon contained sa isang maliit na roll ng punched papel tape, ay maging walang kasaysayan nang walang isang hiwalay na programa, na tinatawag na isang loader, na Gusto sabihin sa Altair kung paano upang basahin ang papel na tape pagkatao fed sa teletype machine. Kinuha niya ang kanyang notebook at mabilis nagsulat pababa sa isang programa loader sa wikang Asembleya, pagkatapos ay manu-mano naisalin na sa 1s at 0s ang Altair ay maunawaan. HIKARI: Allen ay umaasa sa isang malinis, maliit, mataas na tech na kumpanya pinapatakbo ng lalaki sa demanda ng negosyo. Kaya siya ay magulat kapag natugunan Roberts sa kanya sa airport naghahanap tulad ng isang Ranch kamay. Roberts ay magulat din. Kapag bumaba siya sa Harvard programmer sa isang mamahaling hotel, Allen nagkaroon sa aminin na Hindi siya maaaring kayang bayaran ang kuwarto. Jay Paul: MITS, mismo, ay matatagpuan sa isang maalikabok strip mall. Inside sa isang cluttered workbench ng Altair load ng hanggang sa 5 kilobytes ng memorya at konektado sa pamamagitan ng isang cable sa isang teletype machine. Roberts at Chief Engineer, Bill Yates, naghintay expectantly bilang Allen toggle ang kanyang loader programa sa Altair. Teletype ang nagsimulang chugging bilang na nakuha ito ang papel tape sa pamamagitan ng tape reader. Ito kinuha marahil 15 minuto upang i-load ang programa. Pagkatapos ang teletype biglang-print ng maagap na memorya, pagkatapos ay handa na ang isang prompt, at nagsimulang mag-type Allen ang ilang mga pagsubok na utos. Upang pagkamangha ng lahat, ang software na nagtrabaho. Nagkaroon ng mga bug, siyempre. Ngunit ang pangunahing bagay noon ay nagtrabaho ito. HIKARI: Sa paglaon, sa kanilang mga paraan sa isang $ 3.00 tanghalian sa Pancho, ang nagsakay ng isang wasp sa window ng pickup trak at stung Allen sa braso. Ngunit sa puntong iyon wala maaaring palayawin ang mood. Ngayon ay nagkaroon ng Altair nito BATAYANG, ang unang komersyal na software para sa isang bahay computer, na ginawa sa pamamagitan ng Paul Allen at Bill Gate, na nagnenegosyo bilang Microsoft. David J. MALAN: Maraming mga salamat sa aming dalawang mga mambabasa. [APPLAUSE] David J. MALAN: Ngayon mayroon kang ang iyong mga pagpipilian, bago umalis ka, ng isang sparkly o isang glow sa dark-- oh, maghintay ng isa seg, wait-- sparkly at isang glow sa dark elephant mula sa sariling Cheng Gong CS50 ni. HIKARI: Ay, salamat sa iyo. David J. MALAN: Lahat karapatan, salamat sa iyo kaya magkano. [APPLAUSE] David J. MALAN: Kaya tunay na kuwento. Ito ay upang sabihin na ang lahat ng mga machine at ang kadalian na kung saan namin gamitin ang mga ito ngayon at kumuha para sa ipinagkaloob, talaga Nagsimula dito, may ilang paces mula sa aktwal na teatro. At ngayon ngayon, kung hindi mo pa, ito ay Maxwell Dworkin, ang computer mga agham na gusali, ring sa palibot ng sulok. At sa ikalawang palapag ng ito hang tatlong pahina gusali gumagana mula sa orihinal na source code na Isinulat ni Bill Gates at Paul Allen. Sa katunayan, kung ang paggamit mo mag-zoom sa maaari mong makita hindi lamang ang kanilang mga pangalan sa orihinal na uri, kundi pati na rin ang kanilang mga pirma na sila adorned isang ilang taon bumalik noong huli nilang binisita. Ngunit kung ano ang partikular na nakakahimok tungkol sa ito ay kung ano ang set nila out na gawin ay magsulat ng isang programa na gagana paganahin ang iba pang mga tao na magsulat kanilang sariling mga programa. Sa oras na ang lahat ng nagkaroon sa ito ginawa ng MITS Altair machine. At ang lahat na kailangan nila ay ang ilang mga paraan ng ginagawa nitong madali para sa hobbyists at mga taong i amin sa kuwartong ito upang aktwal na programa na walang kinakailangang pag-unawa Asembleya code, o machine code, o Diyos pagbawalan, 0s at 1s. Kami programmer, tulad ng mga nasa kuwartong ito, kami nais na magagawang upang ipahayag ang ang ating mga sarili magkano ang mas katulad pseudo code kahit na ito ay isang kaunti pa nit picky kaysa usapan natin noong nakaraang linggo. Hindi namin gustong magsulat ng code tulad nito, kung saan ginawa Paul Allen at Bill Gates. Kami, sa halip, gusto upang isulat ang code na mukhang ng kaunti pa user friendly. Ngayon ito ay isang wika na kilala bilang BATAYANG. At ang mga numero ng linya doon ay kung ano ang iyong gamitin upang numero lamang ang mga linya ng code na ikaw ay sumusulat. Hindi namin kahit na mayroon sa gawin na mga araw na ito. Ngunit maaari mong makita dito kung paano i-print ang "kumusta, mundo" Gusto talaga baka i-print lamang iyon. At kaya kung ano ang Bill at Paul ginawa noon ay bigyang kapangyarihan ang mga tao na magsulat code na tulad nito sa halip of-- kung kumuha ka ng isang pagtingin sa wall-- computer science code na katulad nito. Sa katunayan, CS50 kamakailan ay nagkaroon ng isang pagkakataon upang umupo sa Propesor Harry Lewis sa Computer Science kagawaran, na nag- talagang tinuruan Bill Gate ilang taon na ang nakakaraan, at ito ay nakatayo dito bago mga tatlong mga pahina ng sipi. Tingnan natin ang isang hitsura. Harry Lewis: Ano ang mayroon kang dito ay isang listahan ng maagang bahagi ng software isinulat ni Bill Gates at Paul Allen, ang tagapagtatag ng Microsoft. Kaya ang code ay kawili-wiling para sa dalawang mga kadahilanan. Una sa lahat, naging ito Unang produkto ng Microsoft sa, na kung saan ay isang interpreter para sa ang BATAYANG wika programming. At ikalawa, ito ay isa sa mga unang pagtatangka upang lumikha ng isang interpreter kaya ordinaryong maaaring gamitin ng mga taong personal na mga computer. Kaya Bill Gates ay isang undergraduate sa Harvard. Nagsimula ako nagtuturo sa Harvard sa 1974. Ito ay tapos noong 1975. Kaya ito ay maaga sa kanyang karera at maaga sa aking karera. Talagang tinuruan ko Bill sa isang kurso sa oras na ito. Paul Allen ay hindi isang Harvard mag-aaral, ngunit siya naging isang mataas na paaralan kaklase ng Bill Gates. Kung darating at tumingin sa listahan, ikaw ay aktwal na mahanap ang isang third pangalan, Monte Davidoff, na naging kaklase Gates ni dito sa Harvard. OK, kaya narito ang isang dito kawili-wiling mga komento up. Sinasabi nito na "Sa 4K maaaring tanggalin ang parisukat na ugat ngunit para sa mga loop ay dapat pa ring gagana. " OK, kaya kung ano ang ibig sabihin nito ay ay na mayroong ay dalawang paraan upang ipunin ang programang ito. Ang isa ay upang tumakbo sa isang bersyon ng ito Altair computer na na lamang nagkaroon 4K salita ng memorya, 4096 mga salita ng memorya. Subalit ang malaking bersyon ay may 8K. At kaya kung ano ang sinasabi ay na sa bersyon ng 4K kayo ay nagkaroon ng upang magtanggal ng ilang mga code upang gawin itong akma. At isa sa mga bagay na ay tinanggal ay magiging mga parisukat ugat routine. Ngunit tila ang para sa mga loop ay dapat pa rin gumana kahit na kapag ikaw ay kino-compile ang pababa para lamang sa 4K na bersyon ng computer. David J. MALAN: Kaya isa sa mga tema, dahil kakailanganin namin makita sa computer science, ay ang paniwala ng layering at abstraction, at talagang nakatayo sa mga balikat mga tao na nag-dumating bago sa amin, hindi hindi tulad ng ilan sa mga Bill Gates at Paul Allen sanaysay dito. At kung ano ang ibig sabihin nito ay na ngayon maaari naming tumagal para sa Binigyan na bagay ay aktwal na madali para sa amin upang isulat ang code. Sa katunayan code, tulad ng sinabi namin sa Biyernes, ay higit pa technically na kilala bilang source code. At ito ay Ingles na ito tulad ng syntax na mas wastong at higit pa rin tinukoy kaysa sa isang bagay tulad ng pseudo code, para sa na walang mga pormal na kahulugan. At ngayon kung ano kami ay pagpunta mag-focus sa ay source code na ganito ang hitsura, na admittedly sa unang tingin mukhang ganap cryptic. At tapat, ito ay paraan higit pa aesthetically kumplikadong kaysa sa napapailalim na programa ay. Ang lahat ng mga program na ito ginagawa, pagpapabalik, ay kung ano ang sinabi namin? Pini-print ito lang ang "kumusta mundo." At gayon pa man tumingin sa lahat ng mga bagay-bagay na kailangan namin upang balutin sa paligid na napaka-simpleng parirala. Ngunit bago mahaba ang lahat ng mga linyang ito at higit pa Gagawing mas mas mahusay na pakiramdam sa iyo. At ang daloy ay ang mga sumusunod. Ano ang kailangan namin sa aming pagtatapon ay gumawa ng code, tulad ng pinagmulan code na nakita natin lamang. At kailangan namin ng isang bagong programa upang patakbuhin ito sa pamamagitan ng. Kailangan namin ng algorithm na maaari convert ang source code, tulad nito, sa bagay code, 0s at 1s. Sa ibang salita, kung ano ang kami ay pagpunta upang matuto ngayon ay kung paano gawin ito, isulat source code up tuktok, pumasa ito bilang input sa isang espesyal na programa na kilala bilang isang Compiler, at kami ay pagpunta upang makabuo ng object code. Aling lamang magarbong paraan ng sinasabi magsasagawa kami ng isang bagay na mukhang ganito, ipasa ito sa isang programa na tinatawag na isang Compiler, paggawa object code na ganito ang hitsura. Kaya ito ay literal ang mga pattern ng 0s at 1s na maunawaan ng isang Intel computer na mga araw na ito, na kung ipakahulugan ng CPU, ang brains sa loob ng isang computer, ay literal na i-print out, masyadong simple, "kumusta mundo." Ngayon ay mayroong paraan nang higit pa 0s at 1s kaysa sa iyo Gusto Umaasa maaaring kinakailangan para sa iyon. Ngunit iyon dahil kami ay pagbuo sa isang magandang deal ng pagiging kumplikado na maaari henceforth namin tumagal para sa ipinagkaloob. Sa ibang salita, ng maraming ng smart mga tao Nagbigay kami ng maraming cool na mga tool at malakas na software na kung saan namin Maaari na ngayong magsagawa ng mga proyekto ng ating sariling. Kaya sabihin makapagsimula. Sapagkat ang huling Biyernes, at para sa Problema Set 0 sa linggong ito, ikaw ay ipinapalabas sa isang mundo na ganito ang hitsura. Simula ngayon at para sa Problema Itakda ang 1 sa susunod na linggo, ang code Pupunta upang tumingin ng kaunti pa cryptic, ngunit sa pagtakbo ay magiging pareho. Kaya paunawa, nangungunang ay wala, ibaba ay C. tapat scratch ay isang pulutong mas user friendly at naa-access. Ngunit kung mong ihambing ngayon biswal na tuktok upang ibaba, mayroong uri ng isang 00:59 pagsusulatan sa pagitan ng mga palaisipan piraso at ang wika Ikinalulungkot namin tungkol sa upang i-play na may. Sa partikular, sabihin nating, ang asul na palaisipan piraso up tuktok, ay tila katumbas ng kung ano ang keyword o espesyal na mga parirala sa wikang ito na tinatawag na C? Madla: Printf. David J. MALAN: Printf. Nangangahulugan iyon na format sa pag-print. At iyon ang isang magarbong lamang paraan ng pagsabi printf sa C ay magiging isang pahayag o ng isang function na mga Kopya ng isang bagay sa screen. Ano ang ibig ito mag-print sa screen? Anuman mong sabihin ito sa loob ng mga quote, sa loob ng panaklong. Kaya muli, admittedly, maraming ng mga bagay-bagay na mayroon ka na dapat tandaan, panaklong, quote, semicolons, at lahat ng mga ito. Ngunit lahat ng iyon ay isang uri ng sa tabi ng point. Ang kawili-wiling mga takeaway para sa ngayon ay ang sabihin nating bloke sa scratch ay halos katumbas ng ang printf pahayag sa C. Samantala, ang dilaw na piraso palaisipan up tuktok, kapag nag-click ang berdeng flag, Marahil katumbas sa kung anong mga dito? Madla: Main. David J. MALAN: Kaya pangunahing. Siguro int, siguro ay walang bisa. Ngunit pangunahing uri ng mga tunog tulad ng mahalaga, at sa katunayan ito ay. Kaya kapag nag-click ang berdeng bandila ay, muli, ang piraso palaisipan na kicks-off ang isang buong programa sa simula. Ngunit kami ay pagpunta sa ngayon simulan ang pagtawag na pangunahing, na kilala bilang pangunahing ito function. Ngayon samantala na aming tuntuning panlahat ito tulad ng sumusunod. Maaari naming tawagan ang sinasabi ng isang function. At ito ay maaaring tumingin partikular na tulad nito. Well, kung ano ang tungkol sa mga loop? Kung gusto namin upang simulan ang nagko-convert o isinasalin nang higit pa sa scratch sa C, ito bagay dito tila lamang sabi ni "kumusta mundo" magpakailanman. Kaya kung nag-ugnay ka ng mga mga script na may pusa sa simula, lamang ito ng pagpunta sa panatilihin ang sinasabi ng sa ilang mga uri ng cartoon ng bubble, "Kumusta mundo, kumusta mundo, kumusta mundo, "ad nauseum, magpakailanman. Kung gusto naming gawin ang isang bagay na katulad sa C, ito ay pagpunta upang tumingin ng kaunti cryptic. Ngunit maaari naming makamit ang parehong Mga resulta, pati na aming kalaunan malaman, na may syntax tulad nito. Pupunta ako upang magamit muli printf, dahil sa pagtatapos ng araw Gusto kong i-print "kumusta mundo." At tila gumagamit ako ng isang sa keyword na iyon ay hindi magpakailanman. Ito ay sa halip ang salita habang. Ngunit lamang magkakahulugang sa Ingles, habang ang uri ng Iminumungkahi ng ilang mga uri ng loop o pag-ikot. Kaya nangyari iyon upang maging ang keyword na gumagamit ng C. At habang totoo, bakit ginagawa habang tunay na epektibo ang ibig sabihin nang pirmihan? Well, habang, bilang na aming lalong madaling panahon Pinahahalagahan ang lahat ng higit pa, May ito parenthetical sa tabi nito kung saan maaari kang maglagay ng Boolean expression. At kaya hangga't na expression ay totoo, ang code na ito, bilang naitala sa pagitan ng dalawang kulot braces bilang namin tumawag sa kanila, ay lamang na patuloy na tumatakbo muli at muli. Kaya totoo ay totoo. Kaya habang tunay na paraan gawin lamang ito nang permanente. Ito ay halos isang hangal bumuo upang ipahayag ang iyong sarili. Ngunit walang magpakailanman keyword sa C. Nagkaroon habang. At nagkaroon ng isang napaka-simpleng Boolean expression tulad ng totoo. At kaya ito, sisimulan naming makita, Nakakamit ang parehong resulta. Paano pa ang maaari mong ipatupad ang isang loop? Well, sa scratch maaari mo matapang na code isang tiyak na bilang ng iterations sa loop dito. At kaya iyon mismo ang namin maaaring gawin sa bersyong ito ng C, kung saan mayroon kaming tinatawag na para sa loop. At ang para sa loop dito ay pagpunta upang umulit, medyo cryptically, mula sa halaga sa 0 hanggang ngunit sa mas mababa sa 10. Ngayon mga variable sa simula. Hindi mo maaaring nagkaroon Paminsan-minsan na gamitin ang mga ito. Ngunit ano ang punto, sa pangkalahatan, ng isang variable na sinabi namin noong nakaraang linggo? Ano iyan? Madla: Mga Punto. David J. MALAN: Upang ituro? Oh, tumuturo. OK, nang pinapanatili ang track ng mga punto, halimbawa, sa isang laro. O sa mas pangkalahatang paraan ng paggawa ano may variable? Ano ang utility ng mga ito? Madla: Memory. David J. MALAN: Oo, kaya memorya. Ito ay para sa pag-iimbak ng isang bagay. At ang uri ng Silly visual na ginamit ko huling oras ay tulad nito glass mangkok. At kung gusto naming mag-imbak isang bagay sa loob ng isang variable, halimbawa ngayon ang halaga ay anim dahil doon anim na bola ping pong in dito. Ito ay ilan lamang uri ng imbakan lalagyan na sa ilalim ng hood ay ipinatupad gamit ang mga piraso, 0s at 1s, gayunpaman isang computer mangyayari upang gawin iyon. Kaya sa simula, kung namin nais na magkaroon ng isang variable, maaari naming gamitin ang isang orange bloke na katulad nito. Susubukan naming tumawag na counter sa partikular na kasong ito. Nasimulan ko ito sa 0. At kung ano ito pagkatapos gagawin ko? Habang Panahon, sabihin natin na counter, na kung i-play sa iyo ng na sa simula, makikita mo lamang makita sa simula. Ang pusa o kahit anong costume mong ilagay sa ay makipag-usap sa kanya ang numero na pinag-uusapan. Baguhin ang counter ng 1 ay tulad ng incrementing sa pamamagitan 1. At kaya ito ay pagpunta sa bilangin mula sa kung ano ang kaya kung ano? Mula sa 0 til infinity, o hanggang sa wala ng pahinga, o hanggang sa i-isang uri ng mawalan ng interes sa panonood ng kung gaano kataas maaari siya talaga bibilangin. Kaya kung paano na maaari naming i-convert ito sa C? Ito ay pagpunta upang tumingin ng kaunti cryptic. Ngunit muli, kung tiningnan mo ang bawat ng mga linyang ito nang isa-isa sila uri ng lineup sa pangkalahatan. Kaya tila int ay pagpunta sa kumuha ng mga espesyal na kahulugan sa C. Susubukan naming makita na muli. Bilang isang bukod ito ay nangangahulugan na integer. Kaya nangangahulugan lang ito na numero. Kaya iyon ang uri ng glass mangkok gusto ko, isa na maaaring mag-imbak ng mga numero, hindi i-ping pong bola. At ako pupunta na gamitin ang katumbas sign doon upang magtalaga dito ng isang halaga ng 0. Kaya na Medyo tulad ng hanay counter sa 0, ngunit sa C. Samantala, habang totoo, na noon ay katumbas, siyempre, sa habang panahon, kahit na medyo cryptic, at pagkatapos ay sa loob ng kulot braces. At maaari mong isipin na ang mga kulot braces, kung saan maaari mong i-type sa iyong keyboard, bilang pagiging talagang tulad ng curvature sa mga kulay-dilaw na mga bloke loop sa simula. Embraces ito sa maramihang mga linya ng code. Printf ay nakakakuha ng isang maliit na nakakatakot ngayon dahil ako makita quote hindi lamang sa mga panaklong. Ngunit ano pa ang bagong syntactically sa halimbawang ito? Mayroong isang porsiyento d. At pagkatapos ay backslash n ay doon. Ay namin makita na bago, kahit bagaman hindi ko babanggitin dito. Pagkatapos ay mayroong isang kuwit. At pagkatapos ay mayroong isang counter. Ngunit kami ay makita sa loob lamang ng sandali na ito ay isa lamang isang karaniwang paraan ng pagsabi sa pag-print ng "Numero ng decimal," quote, unquote, ang ilang mga decimal na numero. Ngunit Pupunta ako sa sabihin sa iyo sa ibang pagkakataon ano na decimal na numero ay. Kaya ang katotohanan na mayroong isang kuwit sa linyang ito sinasabi printf, Ibig sabihin sige at i-print ang ilang mga decimal na numero. Oh, at sa pamamagitan ng mga paraan, ang bilang ay anuman ang halaga ng variable na ito ay. At kaya upang gawin itong higit pa malinaw, magpapadala kami makakita ng halimbawa bago mahaba na kinasasangkutan ng eksaktong printf sa konteksto ng totoong C programa. Ngayon lang sa wrap up ilang ng mga constructs. Boolean expression, hindi mo na maaaring mayroon okasyon upang gamitin ang mga ito sa iyong programa ngunit maaari mo nang napakahusay, lalo na kung gumagamit ng mga kundisyon. At kaya ang dalawang mga halimbawa mula sa Sa simula ibig sabihin kung x ay mas mababa sa y, o kung x mas mababa sa y at y Mababa kaysa z, kung paano maaari naming isalin iyon? Well, sa C ito lamang pagpunta sa magmukhang ganito. Ang isang maliit na cryptic, higit pang mga panaklong, ang ilang mga kakatwang mga ampersand, ngunit fundamentally ang mga ideya ay kasing simple ng mga ito ay nasa piraso puzzle mundo. Lang namin Sinusuri kung may isang bagay Mababa sa ibang bagay. Paano ang tungkol sa mga kondisyon? Sa isang maikling salita sa Ingles, ano ang ginagawa ito chunk ng scratch code ko nais mong sabihin? Madla: Inihahambing ng dalawang numero. David J. MALAN: Inihahambing ng dalawang numero, at kung x mas mababa sa y sabi ni ito bilang magkano. Kung x ay mas malaki kaysa sa y sinasabi nito ng maraming, tao kung x ay katumbas ng y sinasabi nito bilang magkano. Ngayon kung saan ay x at y nanggaling? Sino ang nakakaalam. Ito chunk ng scratch code ay nasa labas ng konteksto. Ngunit kung ano ang gusto naming gawin ngayon ay i-translate ito para sa isang sandali lamang upang makita. Kaya habang ikaw ay komportable sa linggong ito sa Problema Set 0 ipinapalabas sa mundong ito sa kaliwa, Napagtanto na ang mga ideya ay hindi nagbabago sa linggong ito o sa susunod na o lagpas. Lamang kami ng pagpunta sa simulan ang pagsusulat ng mga bagay sa ibang paraan gamit ang aming keyboard sa halip ng aming mouse. Kaya kung x mas mababa sa y, at mayroong ilang mga panaklong doon, pagkatapos ay mayroong ilang mga kulot braces muli sa uri ng encapsulate ito tulad lamang ang dilaw na mga piraso palaisipan gawin. At Pupunta ako sa printf x Mababa sa y at iba pa. Ano ang maganda ang tungkol sa C, bilang maaari mong makita dito, ay na hindi mo makuha ang nesting, nesting, nesting na kinakailangan pagpunta sa itulak ang iyong code sa kanan. Maaari mong sa halip mayroon ang lahat ng bagay lineup maaayos nang i ito. Ngunit ito lamang ay isang Aesthetic detalye magpapadala kami makita muli bago ang haba. Lahat ng karapatan. Kaya na pinagsasama sa amin pabalik sa ito cryptic naghahanap ng programa. Ng aktwal na sumulat ng ilang code Hayaan. Ngayon paano mo pumunta tungkol sa pagsusulat ng code? Ang lahat ng mga taon na iyong pag-aari Mac o PC, desktop o laptop, talaga nagkaroon ka ng kakayahan upang simulan ang pagsusulat ng programming code. Ngunit marahil ka nawawala ng isang espesyal na uri ng programa. Maaari mong isulat ay tiyak na code. Ngunit hindi mo magagawa kinakailangan, sa labas ng kahon, convert na source code sa bagay code, 0s at 1s nang walang ano sa iyong computer? Madla: Compiler. David J. MALAN: Kaya isang Compiler, i-right. Ngayon karamihan ng marahil hindi pagmamay-ari ng Compiler, na hindi kailanman na-download ng isang Compiler. Ngunit makikita mo ang maaari mong i-download ito tulad ng karamihan sa anumang iba pang mga piraso ng software. Sa mundo ng Mac OS, maaari mong i-download o na-download na isang bagay na tinatawag Xcode o GCC o Clang. Kung dumating ka mula sa Windows mundo mo maaari na-download ang Visual Studio, Visual Basic, tulad ng mga kapaligiran na iyon. Mayroong dose-dosenang mga compiler mga araw na ito na maaari mong gamitin. Subalit ang maikling ng ito dito ay ang magiging sakit ng at, tapat, isang teknolohikal bangungot para sa daan-daang ng mga taong may iba't-ibang configuration ng computer upang ang lahat i-configure ang kanilang mga makina sa eksaktong parehong paraan sa gayon ay maaari naming lahat maging sa parehong pahina. Kaya kung ano ang namin, sa halip, gawin sa CS50 ay magbibigay kami sa iyo isang karaniwang kapaligiran, isang Linux environment na pagpunta sa tumingin ng kaunti isang bagay na katulad nito. Makakakita ka ng higit pa sa ito sa Problema Set 1 ng detalye na ay pupunta sa online na ito Biyernes gabi. At kung ano ang ibig sabihin nito ay na henceforth ay pagpunta sa magagawang i- i-download at i-install ng isang program na tinatawag na CS50 Appliance. At ka ng pagpunta upang i-download at i-install ng isa pang programa na tinatawag na isang hypervisor, na kung saan ay isa lamang magarbong paraan ng pagkamit na ito. Kung nagmamay-ari ka ng Mac o PC o isang Linux computer o isang Solaris computer, o kahit anong mabaliw operating sistema nagpapatakbo ka, ka ng pagpunta sa i-download ang isang program na tinatawag na hypervisor na pagpunta upang patakbuhin ang CS50 Appliance sa iyong computer kahit na ano ang iyong operating system. Ang isang hypervisor sa ibang salita ay nag-convert ang aming mga bagay-bagay sa kahit anong wika, anumang mga tagubilin sa iyong Naiintindihan ng sariling computer. Kaya ito ay isang layering. At muli, ito ang uri ng thematic sa computer agham, ang gusali sa tuktok ng mga bagay. Maaaring mayroon kang Windows. Maaaring mayroon kang Mac OS. Pero simula sa susunod na linggo ikaw ay pagpunta sa na-download isang libreng piraso ng software na tinatawag na hypervisor. Ka ng pagpunta sa na-download ng isang piraso ng software na tinatawag na CS50 Appliance. Na nangyayari na tumakbo sa hypervisor, na kung saan ay pagpunta upang tumakbo sa iyong computer. At ang resulta ay na ang lahat sa atin ay mayroon isang simpleng window tulad ng ito sa iyong Mac o PC na nagbibigay sa amin ang ilusyon ng lahat ang pagpapatakbo ng parehong operating system, nang walang anumang iba pang mga epekto sa iyong computer. At maaari kang buong screen ito at mahalagang kumilos na waring nagpapatakbo ka ng isang operating system na tinatawag na Linux, na kung saan ay kung ano ang CS50 Appliance ay batay sa. Kaya ang aktwal na itong gamitin ng ipaalam ngayon upang magsulat ng isang programa. Maaari kang magsulat ng isang programa gamit ang Microsoft Word. Maaari kang magsulat ng isang programa gamit ang TextEdit, o Notepad, o WordPad, o halos anumang salita pagpoproseso ng programa na iyong ginagamit. Ngunit ang katotohanang ay hindi mo dapat gamitin talaga ang alinman sa mga program. Hindi mo dapat gamitin ang tiyak isang bagay tulad ng Microsoft Word, na May naka-bold nakaharap at italics, at mas malaking mga font at mas maliit na mga font, dahil ang computer ay hindi nagmamalasakit sa anuman sa mga iyon. Ang lahat ng mga computer ay pagpunta sa nagmamalasakit sa ay Ingles tulad ng mga tagubilin na nakasulat sa C. Kaya kung ano ang gagawin namin sa loob ng CS50 Appliance ay gumamit ng isang program malayang magagamit, at ito ay paunang na-install sa appliance, na tinatawag na Gedit. At Gedit lamang ang napaka-simpleng editor ng teksto tulad ng TextEdit sa Mac OS ni, tulad ng Windows Notepad na pupuntahan Inaasahan ng kaunti ng isang bagay na katulad nito. Kaya sabihin aktwal na hindi tumingin sa mga slide ng ito. Ngunit ng aktwal na pumunta sa ipaalam ang kapaligiran mismo. Pupunta ako sa magpatuloy at mag-log in, sa ibang window, sa aking CS50 Appliance, na kung saan na hindi ko na paunang na-install sa aking laptop dito. Pansinin na, tulad ng Windows at Mac OS, ito ay nakuha ang ilang mga menu. Tulad ng Windows ito ay naglalagay ito sa halip down na doon ng Mac OS, na naglalagay ito pababa doon. Ngunit ang katotohanang ay ito ang lahat ng uri ng pareho. At in dito ay isang buong bungkos ng software. Mayroong Dropbox. Mayroong isang buong bungkos ng mga accessory, graphical na mga programa na idedetalye namin gamitin sa ibang pagkakataon sa mga termino para sa mga hanay ng problema. Mayroong isang web browser na binuo sa gayon na ito ay isang buong fledged na computer sa loob ng isang computer. Ngunit Pupunta ako sa i-click ito leftmost puting icon dito, kung saan ay ang icon para sa Gedit. At ito ang nangyayari upang buksan ang isang window na may tatlong mga panel dito, isang kaliwang isa, isang nangungunang isa, at isa ibaba. Ngayon, sa tuktok na kanang isa na Pupunta ako sa aktwal na sumulat ng ilang code. Kaya ni gawin ito ipaalam ,. Pupunta ako sa pumunta sa File, I-save. At mo ay maaaring hindi kailanman nakita ang partikular na window bago. Ngunit ito ay tulad ng Mac OS o Windows. Ito ay isang window lamang kasama ang lahat ng mga folder na mayroon akong sa loob ng computer na ito. At pupuntahan ko upang i-save ang file bilang hello.c. At pupuntahan ko pumunta Magpatuloy at i-click ang I-save. At ngayon mapansin mayroon akong isang tab sa kaliwang tuktok na tinatawag na hello.c. Kaya marahil maganda pamilyar na kahit na hindi mo ay hindi ginagamit sa partikular na programa bago. At ngayon pupuntahan ko mag-type ng mga medyo cryptic pagkakasunud-sunod ng mga utos na nakita natin ng ilang sandali ang nakalipas. Isama, karaniwang ako / O.h. Higit pa sa na sa lalong madaling panahon. Int pangunahing walang bisa, buksan ang kulot Brace, sarado kulot Brace. At pagkatapos ay sa loob ng doon sa palagay ko ay kung saan kami ay may "kumusta mundo," semicolon. At ngayon i-save. Kaya ito ay isang programa na nakasulat sa C, nakasulat, samakatuwid, sa source code. Ngunit hindi ko maaaring tumakbo lamang sa programang ito. Ako uri ng gusto mong i-double mag-click sa isang icon sa isang lugar, ngunit walang umiiral na icon iba pang kaysa sa source code na file. Ano, muli, ay ang proseso ngayon na Kailangan ko bang patakbuhin ang file na ito sa pamamagitan ng? Madla: Compiler. David J. MALAN: Kaya isang Compiler. Kaya sa iba't-ibang mga computer mo gawin ito sa iba't ibang paraan. Ngunit kung ano ang nagawa namin dito sa ang CS50 Appliance na kinatawan ng kung paano mo maaari gawin ito sa maraming iba't ibang mga sistema, ay nagre pupuntahan ko magpatakbo ng isang command na tinatawag na make. At make Literal na pagpunta sa gawin iyon. Gumawa ako ng program. Kaya gumawa ay pagpunta sa magpatakbo ng isang Compiler para sa akin. At ang pangalan ng programa Gusto kong gumawa ay kumusta. Ngayon gumawa ay isang program. At gawin ay mataas na para sa smart Napag-alaman na kung sinasabi ba akong gumawa kumusta, ito ang nangyayari upang awtomatikong hanapin para sa isang file na tinatawag na hello.c dahil lang iyon ang paraan ito ay naka-configure. Kaya kapag ako ay pindutin ang Enter ngayon dito, ito mabaliw cryptic linya Naging pinaandar. At pinagkakatiwalaan sa akin, bago ang haba, sa loob lamang araw, makikita mo maunawaan kung ano ang lahat ng walang katuturang na paraan. Ngunit sa ngayon, alam lamang na gumawa trigger pagpapatupad ng isang Compiler. Sa madaling salita, ang nahanap na ito isang Compiler sa aking computer na paunang naka-install sa CS50 Appliance na aming ibigay sa iyo sa Problema Set 1. At pagkatapos ay kinuha bilang hello.c input, at gumawa ng tila 0s at 1s bilang output. At sa pamamagitan ng default kung ano ang ginagawa nito ay nakatipid ito mga 0s at 1s sa isang file na tinatawag na kumusta. At bagaman ang syntax na ito masyadong maaari maging bagong sa iyo, sa pamamagitan lamang ng sinasabi ng mga tuldok iwa kumusta ay magiging ang Ang ibig sabihin sa pamamagitan ng kung saan ba akong magpatakbo ng program na ito. Para sa ngayon at para sa hindi bababa sa loob ng ilang ng linggo, halos lahat ng mga programang write kami ay magiging sa itim at puting teksto bintana. Walang Mice, walang mga pag-click, Walang bintana, walang mga icon. Kami ay pagpunta sa panatilihin itong simple at tumuon sa mga kaisipan sa una bago namin makuha sa isang bagay mas mataas na antas, halimbawa, tulad ng mga break na out game na namin ang usapan tungkol sa unang panayam noong nakaraang linggo. Kaya kapag pindutin ko Ipasok dito, ito ay katumbas sa isang text lamang sa kapaligiran i-double click ang isang icon na tinatawag na kumusta. Ano ang gagawin mong asahan kalooban mangyari kapag pindutin ko ang Enter pagkatapos? Madla: Ito i-print ang "kumusta mundo." David J. MALAN: Sana ito ay i-print ang "kumusta mundo." At sa katunayan ginawa ito. Ngayon ay mayroong Naging ilang cryptic syntax dito. Ni-rewind para lamang Hayaan ng ilang sandali at tingnan kung namin hindi maaaring magsimula inferring sa pamamagitan lamang ng tinkering, sinusubukan at hindi pagtupad, bilang sa kung ano ang nangyayari sa dito. Paano kung ko mapupuksa ang mga backslash n? Ngayon ang ilan sa iyo kung sino nai -program bago marahil Alam agad kung ano ang ibig sabihin nito ay. Ngunit para sa mga ng sa iyo kung sino nai hindi kailanman-program bago, hindi bababa sa tingin sa iyong sarili kung ano ang pagpunta baguhin kapag muling patakbuhin ko sa programang ito? Kaya ako pupunta upang bumalik pababa sa aking maliit na itim at puti na window, na ay ang window kung saan Maaari ba akong mag-compile na ito. Pupunta ako sa mag-recompile kumusta. Kami ay pagpunta upang makita ang parehong cryptic pagkakasunud-sunod ng mga utos. At ako pagpunta sa gawin tuldok slash kumusta. At ngayon may isang taong, kung gagawin mo, sino ang kailanman-program bago, kung ano ang maaaring maging iba't ibang mga oras na ito? Oo. Madla: Hindi ito ay hihinto pag-print "kumusta mundo." David J. MALAN: Ito ay pagpunta to-- ng paumanhin? Madla: Hindi ito ay titigil sa pag-print ito? David J. MALAN: Ito ay hindi ihinto ang pag-print "kumusta mundo." Kaya hindi isang masamang ideya. Iba pang mga ideya? Oo. Madla: Mensahe ng error? David J. MALAN: Error mensahe, OK, maaaring maging. Ano pa? Madla: Maaaring i-print ang bracket na may semicolon pati na rin? David J. MALAN: maaaring i-print ang bracket na may semicolon pati na rin. Kaya marahil na backslash pagkatapos ay ilang uri ng terminous na mahalaga. Anumang iba pang mga saloobin? Kaya ang lahat ng mga mahusay na ideya. At sa katunayan, ay ito pagpunta upang maging isang mensahe ng error. Iyon ay marahil na mas malamang maging ang kasagutan sa pangkalahatan para sa susunod na ilang linggo bilang matuto namin sa code dito. Ngunit sa ngayon tandaan na mga computer lamang ko kung ano ang sabihin sa kanila na gawin. Halos tulad ng katawa-tawa mani butter at halaya halimbawa. Ang aming mga computer pantao ay dapat lamang gawin ang sinabi mong gawin nila. Kaya sa kasong ito, kung ikaw huwag sabihin ang computer upang ilipat na nagbi-blink na cursor sa susunod na linya, hindi ito ng pagpunta sa gawin ito. Kaya kapag nagpatakbo ako ng programang ito ngayon, mapansin ang pagkakaiba. Mukhang isang bug. Ito ay isang Aesthetic bug, marahil. Ngunit ano ay naiiba tungkol sa output kumpara sa nakaraang isang malinaw naman? Oo. Madla: Hindi ito ginawa ng isang bagong linya. David J. MALAN: Hindi ito ginawa ng isang bagong linya. Ngayon doon sa iyo kung sino mayroon siguro ginawa mga web page bago, maaaring kilala mo sa mga BR tag o ang tag talata, na halos kapareho sa espiritu. Babalewalain mo Ang isang web browser hanggang sa sabihin mo ito nang eksakto kung ano ang gagawin. Katulad nito, ay isang wika tulad ng C lamang pagpunta sa gawin kung ano ang iyong sasabihin nito. Kaya ang dahilan na lahat ng mga ito halimbawa, kaya sa ngayon, mayroon uri ng casually nagkaroon ito backslash doon, iyon ang paraan sa pamamagitan ng kung saan ipahayag mo ang iyong sarili bilang isang bagong linya ng character, kaya na magsalita. At maaari mong uri ng Pinahahalagahan, siguro, na ito magiging ganito ang uri ng hangal kung walang ibang tao. Kung gusto ko ng isang bagong linya, lamang Ipasok ang pagpindot at pagkatapos ay i-uri ng butchering ang code na tulad nang hindi dapat talagang RUB kang tamang paraan. At kahit na hindi mo gusto talagang nagmamalasakit sa puntong ito, ikaw ay mapagtanto na ito ay hindi isang partikular na mahusay na naghahanap piraso ng code. At kaya kung ano ang mundo Nagpasya taon na ang nakalipas ay na kapag nais mong ilagay ang cursor sa isang bagong linya ng tahasan, dapat mong tahasang sabihin bagong linya, backslash n. At mayroong ilang iba pang mga mga simbolo tulad na. Ngunit sa ngayon na aming lamang tumuon sa backslash n. Ngayon gumawa ng mga programa hayaan ng kaunti pa sa kawili-wiling. Pupunta ako sa magpatuloy at oras na ito buksan up ng isang bagong file. Pupunta ako upang i-save ito bilang kumusta-1.c. At para lamang sa mga kicks, pupuntahan ko pumunta ilagay ito sa aking folder Dropbox. Tulad ng makikita mo sa CS50 dokumento para sa appliance, sa ibang pagkakataon sa linggong ito para sa Problema Itakda ang 1, agad naming hinihikayat mong gamitin ang Dropbox o ilang katumbas serbisyo, dahil pagkatapos ang lahat ng iyong code ni pagpunta sa i-back up nang awtomatiko. At sa gayon ay ang dahilan kung bakit na hindi ko na nawala na sa folder na ito dito. At ngayon pupuntahan ko magsulat ng isang bahagyang naiiba programa. Isama, karaniwang ako / O.h, int pangunahing walang bisa. At pagkatapos in dito printf, kumusta mundo, kung saan ay ang eksaktong pareho tulad ng dati. Ngunit ngayon gusto kong i-print ang isang bagay na ang isang ilan naiiba. Gusto kong i-print out, sabihing, "Kumusta, si David." Ang lahat ng mga karapatan, kaya malinaw naman, ito dapat sana ay maging ang kaso na kung mag-recompile ko programang ito, muling patakbuhin ito, ito ay pagpunta sa sabihin ang "kumusta, David." Ngunit ano kung gusto ko upang ipakilala ang ganitong uri ng variable, ang paniwala ng isang lalagyan na ang nangyayari upang mag-imbak D-a-v-i-d at hindi na hard code ito sa aking programa. Well kung ano kung sisimulan ko ang paggawa ng isang bagay na tulad nito? String s, kaya't ito ay isang variable. Kung nais mo ang isang string, kilala ng isang salita o parirala. Ang isang pagkakasunod-sunod ng mga character ay kung ano ang namin sa programming tumawag sa isang string. Lamang kami ng pagpunta sa generically call ito s, dahil ito ay isang magaling simpleng pangalan. Ngunit maaari kong tumawag ito ng kahit ano. Pupunta ako sa sabihin ay katumbas ng string s quote unquote, "David," semicolon. At ngayon nais ko upang ipasok D-a-v-i-d sa kung ano ako sa pag-print. At bago kami nakakita ng isang teaser sa ang screen ng ilang mga espesyal na syntax na nagpahintulot sa amin upang panghalili sa isang halaga. Ano ang espesyal na simbolo ng ilang mga slide nakaraan? Kaya porsiyento. Sa oras na iyon ay porsiyento d para sa numero ng decimal. Hindi iyon mukhang talagang may-katuturan dito. Ginagawang out doon ni isa pang simbolo porsyento, na porsiyento s, na ang ibig sabihin ay para sa isang placeholder para sa isang string. Kaya ngayon, napaka-simple, hindi ako pagpunta sa gawin pumunta kumusta-1, dahil ang file na ito ay tinatawag na kumusta-1.c, at pindutin ang Enter. At screwed ko up. Ano kaya ang nangyari? Well, narito kung saan mayroon kaming upang magsimulang Pinahahalagahan na kami sa command na ito linya kapaligiran, ito text kapaligiran lamang. Walang pag-click sa mga icon tulad ng mga folder sa ngayon. At sa tingin pabalik ng ilang sandali ang nakalipas. Sa anong mga folder ang sinabi ko Ako ay sine-save ang aking code? Kaya ang folder Dropbox. Ay maaaring tinatawag na kahit ano. Ngunit ang mangyayari ito na tinatawag na Dropbox. Kaya kahit papaano kailangan kong i-double-click sa na folder Dropbox sa pagkakasunud-sunod upang makakuha ng mga sa ito at makakuha ng sa aking na tinatawag na code kumusta-1.c. Sa katunayan, hayaan mo akong magpatuloy at i-minimize ang window na ito para sa isang sandali lamang. Tulad ng sa Windows at Mac OS, may mga folder sa Linux. Mayroong mga folder sa CS50 Appliance. Ito ay lamang sa ngayon kami ay confining ang ating mga sarili sa environment na ito ng teksto. Ngunit kung i-double click ako sa Dropbox, mapapansin doon ay ang file na gusto kong i-compile. Ngunit kailangan ko ito itim at puti terminal na window, kaya upang makipag-usap. Ngunit kailangan ko, samakatuwid, upang ilipat sa na folder o direktoryo. Kaya bahagyang arcane, ngunit makakakuha ka ng gamit na ito sa masyadong. Sa mundo ng Linux, na muli ay ang operating sistema nagpapatakbo ka namin sa loob ng CS50 Appliance, mayroong isang command na tinatawag na CD. Na nangangahulugan na maaari kong gawin CD, espasyo, Dropbox. CD, pagbabago sa direktoryo. I-right. Bumalik sa araw kapag ang mga tao ay inventing mga computer at operating mga system na tulad nito, ninais nilang i-type ang fewest mga keystroke maaari. Kaya ang pinakamadaling paraan upang sabihin pagbabago na direktoryo ay CD. Kaya kung pindutin ko CD, espasyo Dropbox, mapansin kung ano ang nagbago dito. Sa loob ng panaklong ang appliance ay uri ng humoring sa akin at nagpapaalala sa akin kung saan ako. Kaya ang bukas folder ay Dropbox. Kung ngayon nagta-type ako ls para sa listahan, muli succinct, dahil hindi gusto ng mga tao sa i-type pabalik sa araw l-i-t-s. Kaya sa halip sila ginawa ito ls. Ipasok. Pansinin nakikita ko ang dalawang bagay, kumusta-1.c, at pagkatapos na ito cryptic bagay, pinagmulan 1m. Iyon lamang ang aking paraan ng pagsabi source code para sa linggong 1 Lunes. Iyon ang isang folder na-download ko mula sa CS50 website na ginawa ko nang mas maaga sa araw na ito at ilagay lamang ito sa appliance nang maaga. Ngunit sa ngayon ang tanging bagay namin nagmamalasakit sa gumagawa ng programang ito. Kaya kapag nagta-type ako gumawa kumusta-1, ang Enter. Damn ito. May nangyaring mali. Kaya ni tease ito bukod ipaalam. At sa kasamaang palad, ito ay kung saan bagay makakuha ng isang maliit na mabigat sa una, hindi bababa sa kung hindi mo hindi kailanman-program bago. Aking diyos. Ay sumulat ako ng isang programa ng dalawang linya at Mayroon akong apat na linya ng mga error. Kaya kung ano ang nangyayari sa dito. Una sa lahat palaging mag-scroll pabalik up at hanapin ang unang mensahe ng error, dahil oftentimes compiler lamang makakuha ng nalilito sa pamamagitan ng kung ano ang at kong gawin. Compiler ay medyo pipi. Makikita lang nila kung ano ang gagawin sabihin mo ang mga ito upang gawin. At kung lituhin ang mga ito, ang mga ito ay lamang pagpunta sa uri ng magtapon up ng kanilang mga kamay at marahil magtapon ng higit pang mga mensahe ng error kaysa ay aktwal na may-katuturan. Kaya tingnan natin ang unang ipaalam. Super cryptic sa unang. Ngunit paunawa, narito ang pangalan ng file kung saan ako screwed up tila. Colon 5, tutuldok 5 lamang ay nangangahulugan sa 5 linya sa ikalimang character. Kaya panlimang hanay ng mga character, kung gagawin mo, error. Paggamit ng undeclared identifier string. Ibig mo bang sabihin standard n? Hindi, sinadya ko string. At pagkatapos ito ay uri ng pagkopya at pag-paste kung ano ang aking nai-type upang gumuhit talaga ang aking atensyon sa kung saan ako screwed up. Kaya para sa ilang kadahilanan C, o hindi bababa sa Compiler hindi maunawaan ang salita string. At iyon ay dahil binubuo namin ito. Kaya string ay hindi umiiral sa C. Ano ang ginagawa CS50, para sa unang ilang linggo lamang ng klase, ay nagbibigay kami ng ilang mga pagsasanay mga gulong, kaya upang makipag-usap. At ilalagay namin ang mga pagsasanay gulong sa loob ng isang espesyal na file na tinatawag na CS50.h. Kaya ito ay ang pangalawang ng dalawang mga file mga pangalan na tila nagtatapos sa tuldok h. Ni-rewind Hayaan. Printf ay isang pahayag o function na na tila mga Kopya isang bagay sa screen. Ngunit hindi mo makita sa akin ipatupad printf, i-right. May nag-taon na ang nakakaraan ipinatupad printf. Sa anong mga file na nais mong wager siya o siya ilagay ang pagpapatupad para sa printf, ang code para sa printf? Sa isang file na tinatawag na standard I / O.h. Sa katunayan, ito ay marahil sa dalawang mga file, karaniwang ako / O.h, na ang ibig sabihin ay header file, at mga karaniwang ako / O.c, na ang ibig sabihin ay C source code. Kaya siya ng ilang mga taon na nakalipas plopped ang code na sila ay nagsulat sa file na iyon upang ang mga taong katulad sa amin taon na ang lumipas maaaring isama ito, kaya upang makipag-usap, sa aming sariling mga programa. At sa katunayan, iyon ang pound ang pag-sign Kasama na sinusundan ng salita ginagawa. Mukhang sa lokal na hard drive, hahanapin ng file na tinatawag na standard I / O.h, at pagkatapos ay epektibong mga kopya at pastes ito sa loob ng aking sariling mga file. Kaya ngayon ay alam ng aking programa kung paano mag-print sa screen. Kaya sa pamamagitan ng logic na iyon, kung saan ay tinukoy string? Madla: CS50.h. David J. MALAN: CS50.h. At sa katunayan, iyon ang namin, core kawani, nagawa na. Imbento kami ng ilang mga uri ng data, kaya upang makipag-usap, tulad ng isang string, bilang karagdagan sa iyong mga nai- makakuha ng libre, tulad ng isang int. At kami makita ang mga tulad ng char para sa isang character at ang ilang higit pa. Sa loob ng CS50.h tila ay ng hindi bababa sa ilang mga pagbanggit ng string. Kaya ngayon hayaan mo akong sige at muling patakbuhin make kumusta-1. Magtatagal ako mag-zoom in muli at mag-krus ang mga daliri ng aking. Ngayon sa pamamagitan ng pagkakaroon ng ginawa ng isa baguhin naayos ko pinaka-bagay. Ngunit damn ito. Higit pang mga percents kaysa sa mga argumento ng data. Ano ang gagawin ko mali oras na ito? Kaya pa rin ito medyo cryptic. Ngunit ang error na ito ay nasa linya 7 at 21 na character. Kaya sabihin pumunta tumingin hanggang dito. Ito ay isang maliit na banayad. Ngunit kung sa tingin mo tungkol sa kung ano sa pangunahing mga ideya dito ay, marahil maaari naming tease ito bukod. Kaya printf ay ang pangalan ng function. Panaklong, kaya sa ngayon, ay tulad lamang ng kung ano ang ilalagay namin sa paligid ang mga bagay na namin ang pagpasa bilang input sa isang function. Ang lahat ng mga karapatan, tulad ng isang arbitrary convention ng tao. Gamitin ang mga panaklong. Sa loob ng mga panaklong Na-putting namin double quote, at pagkatapos ay isang string tulad ng "kumusta mundo." Ngunit sa na mas maaga halimbawa napaka May ginawang mabilis tinitingnan namin ang may scratch. At nagkaroon kami ng porsiyento d, kung ano pa ay sa loob ng mga panaklong na tinatawag na akong hindi sumali sa salita? Oo. Madla: Kaya kung ano ang iyong pagkuha [INAUDIBLE] mula sa loob ng [INAUDIBLE] kung ano ang [INAUDIBLE]? David J. MALAN: Eksaktong. Kaya nagkaroon kami ng porsiyento d. Ngunit pagkatapos namin ay may malapit quote, kuwit, counter. I-right. Tinukoy na namin kung ano ang gusto namin gawin ang bilang placeholder. Kaya kung ano ako pagpunta sa gawin dito ay kuwit, ano ang gusto ninyo sa akin ang ilalagay? Madla: S. David J. MALAN: S, dahil s sa kasong ito ay ang pangalan ng imbakan lalagyan. Ito ay ang pangalan ng glass na mangkok. Sapagkat bago ito ay kontra sa na simpleng halimbawa scratch itinuturing namin ang. Kaya ngayon pagkakaroon ng ginawa ng dalawang mga pagbabago, hayaan mo akong mag-zoom in at subukan nang isa pang beses upang ipunin ang programang ito. Ngayon nakikita ko na cryptic linya. Ngunit iyon lamang ang aktwal na ang pangalanan ng Compiler. Clang ay ang pangalan ng Compiler. Gawing ay lamang sa pag-save sa akin ang sakit ng ulo ng kailanman pag-type na mahaba mabaliw utos out. Kaya ngayon kung tuldok ko iwa kumusta-1, Dapat kong tingnan ang "kumusta, David." Pretty underwhelming, bagaman, i-right? Na namin ma-tapos ito ng maraming higit pa lamang nang walang pakikipag-usap tungkol sa mga variable at CS50.h at ang lahat ng iyon. Kaya sabihin gawin itong isang maliit na mas kawili-wiling. Bilang karagdagan sa CS50.h, pagkakaroon ng mga bagay tulad ng string ipinahayag, ang CS50 library May ilang mga pag-andar rin. Kaya lang tulad ng taon na ang nakakaraan, isinulat ng isang tao printf at ilagay ito sa karaniwang ako / O.h at ilang iba pang mga file. Kami, ang CS50 kawani, ay nagsulat ng isang function na tinatawag na GetChar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, at inilalagay namin ang mga ito sa loob ng file na tinatawag na CS50.h at CS50.c. At inilalagay namin ang mga ito sa loob ng ng CS50 Appliance. At mga taong maaari ring i-download ang mga ito sa online kung ang mga ito nais na ilagay ang mga ito sa kanilang sariling computer pati na rin. Aling ay upang sabihin na lumikha kami mga function na makakuha ng input mula sa user. Hindi ko alam kung ano ang lahat ng ng mga uri ng data ay. GetInt ay uri ng prangka, tulad ng makakuha ng isang integer kahit papaano mula sa user. At GetString ay marahil tulad ng get isang salita o isang pangungusap mula sa user. Kaya sabihin tumuon sa na. At ako pupunta upang bumalik sa appliance at pupuntahan ko sige at i-save ang file bilang, sabihin tumawag sa ito kumusta-2.c bilang aking pangalawang bersyon. At gumawa ng ilang mga pagbabago ipaalam. Ito oras sa halip ng mahirap coding David, na Ginagawang isang tuloy-tuloy na hindi kapani-paniwalang ngunit underwhelming programa, paano kung sa halip gagawin ko GetString? Mapansin Ngayon GetString May open panaklong, closed panaklong, dahil hindi nito kailangan ng anumang pag-input. Lamang Ito ay pagpunta sa pumunta makakuha ng isang string mula sa user. At ngayon ang isang salita sa iba pang mga syntax. Magtapos lamang Semicolons isang linya ng code. Hindi mo na kailangan ang mga ito sa lahat ng dako. Ngunit iyon lamang ay nangangahulugan na ako tapos na may ganitong linya ng code. Hayaan akong ilipat papunta sa isa pang statement o function. String declares isang variable. String ay tulad ng sinasabi ninyo ako ng mangkok, mangyaring. At hayaan mo akong ilagay ang isang string sa loob nito. At ngayon ang katumbas sign. Ano ang katumbas ng pag-sign lubos na katumbas ng? Madla: Magtalaga. David J. MALAN: Oo, magtatalaga ng isang halaga. Kaya kung ako, halimbawa, tawag ito function na GetString, at kami makita ang ilang mga sandali na pagpunta upang i-prompt ang user para sa isang string. Ito ay tulad ng pagpapaalam sa akin pagkatapos ay isulat D-a-v-i-d sa isang piraso ng papel. At kapag sinabi ko string s ay katumbas GetString, ay hindi nangangahulugan na talagang katumbas katumbas sa C programming. Ang ibig sabihin nito magtalaga mula sa kanan bahagi sa kaliwang bahagi. Kaya nakuha ko na isang string. At ang pantay na pag-sign ay nangangahulugan ilagay ito sa imbakan ng lalagyan na tinatawag s. At Pagkatapos ay pumasa ito off sa printf upang aktwal na gawin bagay nito. Kaya pagkatapos ay ang resulta ay pagpunta upang tumingin ng kaunti naiiba. Ni huwag gumawa kumusta-2 Hayaan. Alinman ay maaaring gumana. Sinusundan mo ang kasama. Gawing kumusta-2 nagtrabaho. Dot iwa kumusta-2, ang Enter. Mukhang kong magkaroon ng isang walang-katapusang loop o isang bagay. Wala ang nangyayari. Bakit? Madla: ang paggawa nito ang isang walang-katapusang loop. David J. MALAN: Ito ay isang walang-katapusang loop. Uri ng ito ay naghihintay para sa akin upang aktwal na magbigay ng ito na may ilang mga input. Kaya ipaalam sa akin sige at i-type sa David, at pindutin ang Enter. At ngayon sinasabi nito na "kumusta, David." Kung nagpapatakbo ko ito muli. Ni-type sa Rob, Hayaan ang "kumusta, Rob." Ngayon ito ay ang pinakamasamang user interface kailanman. Ang user ay tila dapat mong malaman kung ano ang gagawin. Ngunit hindi mahalaga. Gamit ang parehong mga gusali bloke tulad ng sa simula, maaari naming malutas ang problemang iyon at sabihin isang bagay tulad ng iyong pangalan ninyo, tutuldok, espasyo, sarado quote, isara ang panaklong, semicolon. Kaya ng maraming muli kalokohan na may syntax. Ngunit mapansin lang nagdagdag ako ng palaisipan piraso sa itaas ang isang ito at sa itaas ng isang ito. Kaya ngayon kung muling patakbuhin ko ito, kumusta-2, ang Enter. Maghintay ng isang minuto. Ano ang mali? Hindi ito gumagana ng anumang magkakaiba. Oo. Madla: ay Hindi ka patakbuhin muli gumawa. David J. MALAN: ako ginawang hindi tumakbo gawing muli, i-right. Kaya nabago ko ang aking mga source code. Ngunit muli, may na daloy. Source code sa pamamagitan ng Compiler ay nagbibigay sa ka ng mga bagong bagay na code, o 0s at 1s. Kaya kailangan ko upang aktwal na Patakbuhing muli ang make kumusta-2 Enter. OK, isang bagay na tila ang nangyari. Dot iwa kumusta-2. Ang iyong pangalan pakiusap. At upang maging malinaw ngayon, kung bakit ay ang cursor sa parehong linya? Mismong. Hindi ko ilalagay ang backslash n up dito sa aking code. Kaya ngayon maaari kong isulat isang bagay tulad ng Daven, ang Enter. Maaari ko ba itong tumakbo muli at i-type isang bagay tulad ng Gabe, Magpasok, at kumuha kami ng isang iba't ibang mga programa at muli at muli muli. Ngayon huli kami ng pagpunta sa kailangan upang gamitin ang ilang naiibang mga kakayahan. Kailangan namin upang ipakilala sa huli ilang kondisyon upang gawin ang mga bagay conditionally. Siguro mga loop upang maaari naming gawin muli at muli bagay. Siguro magiging maganda kung namin maaaring ipatupad ang aming sariling mga pag-andar, tulad namin ma-ipatupad ang aming sariling printf o sa aming sariling bersyon ng GetString at GetFlow, dahil sa huli kahit na gamit ang command na kapaligiran linya maaari naming gawin kahit na ang pinaka- biswal kagiliw-giliw na mga bagay. Sa katunayan sa pagtatapos hayaan mo akong gawin ito. Pupunta ako sa sige at isara ang mga bintana at buksan ang icon na ito dito, kung saan ay isang mas malaking lamang bersyon ng naka-embed na terminal na window. Kaya Gedit ay hindi lamang ang lugar para sa aking code, kundi pati na rin ang isang built in na terminal na window, ang itim at puting window kung saan maaari kong patakbuhin utos. Lamang nangyari ko upang buksan ng mas malaking bersyon ng ito. At ngayon pupuntahan ko pumunta sa ang folder na iyon na hindi ko na ilagay nang maaga sa website ng kurso ni. At ako pagpunta sa sige at buksan ang isang file na tinatawag na thadgavin.c, na kung saan ay isinulat sa pamamagitan ng ibang tao. At kung tinitingnan namin ang na ito, hindi ito ang uri ng code Makakakita ay sumusulat kami mula noong ang layunin ng code na ito ay upang isulat ang prettiest naghahanap ng code na siya ng dati, kanikanilang mga man o hindi isa pang tao ay maaaring kailanman maunawaan ang code na ito. Sa katunayan, bawat taon mayroong kung ano ang na tinatawag na isang nakapailalim C paligsahan, na ay para sa real geeks na magsulat code na walang sinuman ang maaaring basahin, ngunit na ang isang bagay na alinman talagang simple o talagang kamangha-manghang. At naisip namin na gusto namin tapusin na may ganitong hitsura sa isang bagay na medyo kahanga-hangang maaaring nakakita ka ng isang beses bago. Ngunit kami ay nagtatapos sa ito tala, tuldok slash, thadgavin. Ito pagkatapos ay kung ano ang naghihintay. Iyon lang para sa CS50. Makikita natin sa iyo sa Miyerkules. [Musika nagpe-play]