DAVID J. Malan: Hivyo hii ni CS50. Na hii ilikuwa CS50 ya mwenyewe Colton Ogden, kwa zaidi ya ambaye ni muziki unaweza download saa soundcloud.com/cs50. Hivyo leo sisi lengo wote zaidi juu ya sanaa ya programu. Na sisi kuchukua ambapo sisi kushoto mbali wiki iliyopita, kwa kulenga juu ya Scratch, ambayo ilikuwa hii graphical lugha ya programu. Na kuchukua mambo ya chini kwa kiwango cha chini, kutumia programu zaidi ya jadi lugha inajulikana kama C. Lakini njiani, kutambua kwamba mawazo huo sisi aliyesema kuhusu Ijumaa iliyopita itakuwa kurudia si tu katika hii lugha C, lakini katika wengi kila mengine kwamba sisi kuangalia muhula huu. Hivyo sisi kuitwa jambo hili hapa nini wakati wa mwisho? Hii ni mwakilishi wa taarifa. Hivyo sisi kuitwa kauli hii. Na hana kitu. Ni maelekezo kwamba kompyuta au Scratch ili kutekeleza. Na sasa, hebu pia kuanza wito kitu kama hii kazi, kwa sababu sisi watakuja kuona. Wakati huo huo, tuliona mambo kama hayo. Na hawa ni kwa ujumla inayojulikana kama nini kujenga? Watazamaji: Loop. DAVID J. Malan: Hivyo kitanzi. Hivyo pretty moja kwa moja. Ni literally anafanya nini anasema. Na katika Scratch, kama unataka Cram vipande zaidi puzzle huko, kipande kukua na kifafa yake. Na tutaweza kuona katika C kwamba tunaweza kufanya kitu kimoja. Aina nyingine ya kitanzi, ingawa, katika Scratch inaweza kuwa milele, au kuna idadi yoyote ya mbinu nyingine. Lakini hebu kuchukua zaidi generalist kuangalia, na uso hiyo ni uwezekano familiar kabisa, katika loops zaidi kwa ujumla. Mark Zuckerberg: One kitu kwamba kompyuta ni mzuri katika ni kurudia amri. Kama mtu, wewe Ningependa kupata kweli kuchoka kama wewe alikuwa na kufanya kitu kimoja kura ya mara katika mfululizo. Lakini kompyuta unaweza kufanya kitu kimoja mamilioni au hata mabilioni ya mara kwa mara, na si kupata kuchoka, na kuwa na uwezo kubeba kwamba nje vizuri. Hivyo kwa mfano, kama mimi alitaka unataka kila mtu juu ya Facebook furaha ya kuzaliwa kwa kutuma barua pepe, inaweza kuchukua mimi zaidi kuliko karne ya kweli kuandika nje yote ya barua pepe wale kwa kila mtu. Lakini mistari na chache tu ya code, siwezi kuwa na mfumo wa kutuma barua pepe kwa kila mtu juu ya Facebook wanaotaka yao furaha ya kuzaliwa. Hivyo kwamba ni nini loops ni na nini wao uko thamani na kitu kwamba kompyuta anaweza kufanya vizuri sana. DAVID J. Malan: Hivyo kama tumekuwa mpokeaji wa baadhi ya CS50 na Dropbox ya nafasi ya marehemu, hiyo ni kweli just nini sisi kufanya, kwa kutumia kanuni kabisa kama hiyo. Sisi kimsingi kuwa kubwa spreadsheet katika ambayo folks wamekuwa inputting yao majina na anwani ya barua pepe. Na sisi aliandika kidogo kidogo ya kificho kwamba unaweza iterate juu ya wale anwani na mate nje anwani kipekee katika kesi ya mtu kuwasilishwa mara nyingi. Na baada ya hapo, sisi kutuma automatiska email kutoka bot CS50 ya, ikiwa ni pamoja na Coupon code. Sasa sisi pia inaonekana katika hii kujenga wakati wa mwisho. Na hii ni hasa mfano wa nini? Hivyo, yeah, kujieleza Boolean. Na sura ni maana kukamata kwamba kama vizuri. Maswali yote hiyo ya kuunda kweli au uongo katika Scratch kuangalia kitu kidogo kama hii. Na sisi wito huu kujieleza Boolean. Hiyo ni kweli kweli au uongo, ndiyo au hapana. Ni njia ya kujibu swali. Na Wakati huo huo unaweza kutumia haya Boolean maneno ndani ya constructs kama haya, ambayo ya Bila shaka ni hali ya au matawi, proverbial uma katika barabara. Na wanaweza kuangalia si tu kama hii, lakini wanaweza pia kuwa elses kuhusishwa na wao. Na unaweza kweli kuwa na njia tatu uma katika barabara au njia nne uma katika barabara, tu kwa nesting mambo haya, kama utaona katika Scratch kama una si tayari. Na kama unaweza kufanya katika C kama vizuri. Hebu kuchukua generalist mwingine kuangalia alumnist, kama vile, ambao wanaweza kuwasilisha mbinu mbalimbali kwa mambo haya kuitwa masharti. BILL GATES: Watu kufanya maamuzi kila siku. Kwa mfano, kabla ya kwenda nje wewe aina ya kuwa kama taarifa kwamba anasema, kama ni mvua basi mimi haja ya kupata koti langu. Na kompyuta ni ajabu mara moja wewe kuamua aina wale wa kauli, kwamba wanaweza reliably nitafanya mambo hayo katika ajabu kasi. Na hivyo programu ya kompyuta kweli ni kidogo ya math na baadhi ya kama kauli ambapo uamuzi anapata alifanya. DAVID J. Malan: Hivyo kama unaweza kujua, ilikuwa folks kama Bill Gates, Paul Allen, na wengine kwamba kweli mateke mbali kinachojulikana kompyuta binafsi mapinduzi ya baadhi ya miaka iliyopita. Nilidhani, kabla ya sisi kupiga mbizi katika baadhi ya administrivia, tunatarajia yanahusiana tale kutoka Albuquerque, New Mexico makumbusho ya Historia za na sayansi ambapo baadhi ya Bill Gates ' na Paul Allen ya hadithi ya kwanza ni alielezea jinsi sisi sasa PC leo na Macs na zaidi. Kwa hili, ingawa, tunahitaji watu wawili wa kujitolea ambao wana sauti nzuri sana simulizi kusoma script kwa sauti. Zote haki, vipi kuhusu katika nyuma huko. Kuja juu juu. Na vipi kuhusu mbele hapa. Kuja juu chini. Kuchukua maeneo yako hapa. Kama wewe guys kuja, wanandoa matangazo ya kiutawala. sectioning, mchakato ya kuchagua sehemu, itaanza hii Jumatano kwa njia ya Ijumaa. Zaidi juu ya kwamba hii kuja Jumatano katika hotuba. Sehemu Super, wakati huo huo, ni kitu ambacho sisi kutoa wiki ijayo ambapo darasa zima ni walioalikwa ya kushiriki katika wadogo haki kubwa sehemu, moja zaidi comfy, moja chini ya starehe. Na sisi kutangaza maelezo ya kwamba, kama vile, baadaye wiki hii. Sehemu Wakati huo huo, wenyewe, itaanza katika wiki tatu bila shaka, sifuri index, ambayo ina maana wale ni michache ya wiki nje. Hivyo si kuwa na wasiwasi. Wewe bado amekosa kitu chochote pamoja na mistari hayo. Wakati huo huo katika huo huo, kama wewe una maswali yoyote kiutawala, email mwenyewe na Devon na Gabe na Rob katika anwani hii hapa. Mwisho, kuweka tatizo 0 ni, bila shaka, nje. Unaweza kuwa niliona ni kwenye tovuti bila shaka ya. Ni lazima kutoa kwa majibu yote ya maswali unaweza kuwa njiani kwa kupata ilianza na kuweka tatizo. Lakini kama wewe mwenyewe kupata katika haja ya mkono kusaidia, kwa njia zote kuhudhuria masaa ya ofisi, Jumatatu, Jumanne, Jumatano, Alhamisi wa wiki hii katika jioni katika kumbi dining nne. Kuona kwamba URL huko kwa maelezo ambapo masaa ya ofisi itakuwa. Sasa Tukutane yetu wageni wawili hapa leo. Nini jina lako? JAY PAUL: Jay Paul. DAVID J. Malan: Jay Paul, nzuri ya kukutana na wewe. Hikari: Hikari. DAVID J. Malan: Hikari? Hikari: Hikari. DAVID J. Malan: Hikari. Nice kukutana na wewe pia. Jay Paulo na Hikari na katika mbele yao juu ya haya muziki anasimama scripts mbili kwamba mimi kuchapishwa nje asubuhi ya leo kutoka New Mexico Makumbusho ya Historia na Sayansi. Na nini Nilidhani Ningependa kufanya juu ya uendeshaji ni kuongozana kisomo yako ya script na historia hii na baadhi ya picha Visual, hakuna mshangao. Na kile nimepata kufanyika mapema ni prehighlight juu ya script yako nini unapaswa kusoma, na nini unapaswa kusoma. Na tutaweza kimsingi tu mbadala aya. Hivyo ni kiasi kama wewe nguvu wamefanya katika lugha ya Kiingereza darasani. Hiyo ni kweli kumlazimisha watazamaji kuamini katika tale lako hapa. Itakuwa sisi? Hivyo hadithi hapa ni, tuna BASIC, na inaanza katika Cambridge. JAY PAUL: Ilikuwa majira ya baridi, 1974, katika Cambridge, Massachusetts ambapo winters inaweza kuwa baridi. bearded, kwa muda mrefu haired chuo kuacha shule aitwaye Paul Allen mara drudging katika Harvard Square, kufyonzwa katika mawazo yake. Preoccupation wake kuu katika siku hizo ni jinsi ya kupata rafiki yake, Bill Gates, kuacha shule na kwenda katika biashara pamoja naye. Hikari: mbili walikuwa tayari wamekwenda njia ya idadi ya ubia biashara pamoja, kuanzia Lakeside shule katika Seattle ambapo walikuwa kulipwa katika muda wa bure kompyuta mtihani kompyuta PDP-10 katika muda wa ndani kugawana kampuni. mpango wa hivi karibuni alikuwa na kuacha shule na kuunda kampuni ya programu. Allen alikuwa kushoto Washington Chuo Kikuu cha Jimbo. Lakini katika dakika ya mwisho, Gates aliamua kwa fimbo na Harvard. JAY PAUL: Siku hiyo, kuvuka Harvard Square, Allen spotted Januari, 1975 suala la Popular Electronics na nchi kuacha kichwa cha habari, Dunia ya kwanza ya Minicomputer Kit kwa mpinzani Commercial Models. Chini ya kichwa cha habari mara picha ya sanduku ndogo kupambwa na taa na swichi. Ilikuwa inaitwa MITS Altair 8800. Na Allen alijua hii ni nini yeye alikuwa kuangalia kwa. Hikari: Siku ya majadiliano kufuatwa. Allen na Gates kueleweka umuhimu wa Altair. Walishaongelea mara nyingi kuhusu microprocessors na walikuwa wanasubiri kuona nini itafanyika pamoja nao. Sasa kulikuwa na minicomputer kit juu ya cover ya Popular Electronics. Ni inaonekana alikuwa na hakuna programu bado. Wao kufikiri taifa ya programmers kushuka juu ya MITS. Na hivyo kuitwa Ed Roberts, mkuu wa kampuni, wakidai kuwa na toleo la BASIC lugha ya programu karibu tayari kwa Altair. Wao hawana. Na Roberts lazima inajulikana wao hawana. Alikuwa kupata wito 10 kwa siku kutoka watu ambao walikuwa na BASIC karibu tayari. Na wake hisa majibu ilikuwa, "mtu wa kwanza ambao inaonyesha juu na kufanya kazi BASIC anapata mkataba. " JAY PAUL: Gates na Allen sijawahi kuona Altair. Walikuwa kamwe hata kuonekana Intel 8080 Microprocessor katika moyo wa Altair. Lakini miaka michache mapema Allen ameandika mpango juu ya mainframe kompyuta ambayo kuigwa uendeshaji wa Intel uliopita Microprocessor. Na wakati huu wao bila kufanya kitu kimoja. Hikari: Kwa Intel 8080 mwongozo upande wake, Allen akaketi Harvard PDP-10 kompyuta na aliandika emulator na programu nyenzo muhimu ya kufanya programu. Wakati huo huo Gates aliacha kwenda madarasa na kujitoa mwenyewe kwa kubuni BASIC, kutumia kila hila alijua kupata ukubwa chini chini ya 4 kilobytes. JAY PAUL: Kati katika Albuquerque, Ed Roberts got simu kutoka Gates kuuliza kwa maelezo kuhusu jinsi Altair kubebwa routines maalum. Hakuna mtu aliyewahi aliuliza kwamba kabla ya. Na Roberts alianza kupata nia. Hikari: Pamoja na maendeleo ya zana na kubuni tayari, Gates na Allen aliandika kanuni ya PDP-10, kuhusisha mwingine mwanafunzi Harvard, Monte Davidoff, kuandika routines math. Baada ya usiku ya mwisho ya programu, Allen got juu ya ndege kutoa BASIC yao kwa MITS. Yeye alitumia ndege kujinasua katika wasiwasi. Na nyuma katika Cambridge Gates inatia mashaka. Walikuwa majaribio yao BASIC na ni alikuwa na kazi juu ya emulator. Lakini nini kama emulator ilikuwa na makosa? JAY PAUL: Kama ndege akakaribia Albuquerque, Allen waligundua kwamba wao BASIC, sasa neatly zilizomo juu ya roll ndogo ya mangumi karatasi mkanda, bila kuwa haina maana bila tofauti mpango, aitwaye loader, kwamba waliniambia Altair jinsi kusoma karatasi mkanda kuwa kulishwa ndani ya teletype mashine. Alichukua nje daftari yake na kwa haraka scribbled chini ya mpango loader katika lugha Bunge, kisha manually kutafsiriwa kuwa ndani ya 1s na sekunde 0 Altair bila kuelewa. Hikari: Allen alikuwa akitarajia safi, kidogo, high tech kampuni inayoendeshwa na wanaume katika suti biashara. Hivyo yeye alishangaa wakati Roberts alikutana naye katika uwanja wa ndege kuangalia kama ranchi mkono. Roberts pia alishangaa. Wakati yeye imeshuka Harvard programu katika hoteli ya gharama kubwa, Allen alikuwa na kukiri kwamba hakuweza kumudu kununua chumba. JAY PAUL: MITS, yenyewe, alikuwa iko katika vumbi strip maduka. Ndani ya juu ya cluttered workbench mara Altair kubeba up na 5 kilobytes ya kumbukumbu na kushikamana na cable kwa teletype mashine. Roberts na Mhandisi Mkuu, Bill Yates, walisubiri expectantly kama Allen toggled loader yake programu hii katika Altair. teletype alianza chugging kama vunjwa karatasi mkanda kupitia msomaji mkanda. Ni alichukua labda dakika 15 kupakia programu. Kisha teletype ghafla kuchapishwa kumbukumbu ya haraka, basi haraka tayari, na Allen alianza kuandika mtihani chache amri. Kwa mshangao wa kila mtu, programu kazi. Kulikuwa na mende, bila shaka. Lakini jambo kuu ilikuwa ni kazi. Hikari: Baadaye, juu ya njia yao ya $ 3.00 chakula cha mchana katika Pancho ya, wasp akaruka katika dirisha ya Pickup lori na stung Allen juu ya mkono. Lakini katika hatua hiyo kitu inaweza nyara mood. Altair sasa alikuwa BASIC yake, kwanza programu ya kibiashara kwa ajili ya nyumba kompyuta, yaliyotolewa na Paul Allen na Bill Gates, kufanya biashara kama Microsoft. DAVID J. Malan: Wengi shukrani kwa wasomaji wetu wawili. [Makofi] DAVID J. Malan: Sasa una uchaguzi wako, kabla ya kuondoka, ya sparkly au mwanga katika dark-- oh, kusubiri sec moja, wait-- sparkly na mwanga katika giza tembo kutoka CS50 ya mwenyewe Cheng Gong. Hikari: Aw, asante. DAVID J. Malan: All haki, asante sana. [Makofi] DAVID J. Malan: Hivyo hadithi ya kweli. Hii ni kusema kwamba yote haya mashine na urahisi na ambayo sisi matumizi yao sasa na kuchukua kwa nafasi, kwa kweli ilianza hapa, tu paces chache kutoka ukumbi wa michezo hii halisi. Na sasa leo, kama wameweza si kuwa, hii ni Maxwell Dworkin, kompyuta sayansi jengo, pia kuzunguka kona. Na juu ya ghorofa ya pili ya hii jengo gani hutegemea kurasa tatu kutoka code awali chanzo kwamba Bill Gates na Paul Allen aliandika. Kwa kweli, kama wewe zoom matumizi katika unaweza kuona si tu majina yao katika aina ya awali, lakini pia saini zao kwamba wao kupambwa miaka michache nyuma wakati wao mwisho alitembelea. Lakini kile ambacho kilikuwa hasa kulazimisha kuhusu hili ni nini wao kuweka nje kufanya mara kwa kuandika mpango kwamba ingekuwa kuwawezesha watu wengine kuandika programu zao. Wakati huo wote kulikuwa na mashine hii Altair yaliyotolewa na MITS. Na wote walihitaji baadhi ya njia ya kufanya kuwa rahisi kwa hobbyists na watu kama sisi katika chumba hii kwa kweli mpango kwamba bila lazima kuelewa Bunge code, au mashine code, au Hasha, sekunde 0 na 1s. Sisi programmers, kama wale walio katika nafasi hii, sisi wanataka kuwa na uwezo wa kueleza wenyewe zaidi kama Pseudo code hata kama ni kidogo zaidi nit picky kuliko sisi aliyesema wiki iliyopita. Hatutaki kuandika kanuni kama hii, ambayo Paul Allen na Bill Gates alifanya. Sisi, badala yake, unataka kuandika kificho kwamba inaonekana kidogo zaidi user kirafiki. Sasa hii ni lugha inajulikana kama BASIC. Na mstari namba kuna nini kutumia tu idadi mstari wa kanuni kwamba wewe ni kuandika. Sisi si hata kuwa na kufanya hivyo siku hizi. Lakini unaweza kuona hapa jinsi magazeti "hello, dunia" bila ya shaka labda magazeti tu. Na hivyo kile Bill na Paulo alifanya alikuwa kuwawezesha watu kuandika kanuni kama hii badala of-- kama wewe kuangalia sayansi ya kompyuta wall-- code kama hii. Kwa kweli, CS50 hivi karibuni alikuwa na nafasi kukaa chini na Profesa Harry Lewis katika Sayansi ya Kompyuta idara, ambao kweli kufundishwa Bill Gates baadhi ya miaka iliyopita, Na papa hapa kabla ya kurasa hizo tatu za Sammandrag. Hebu tuangalie. HARRY LEWIS: Nini una hapa ni orodha ya kipande ya kwanza ya programu Imeandikwa na Bill Gates na Paul Allen, waanzilishi wa Microsoft. Hivyo code ni ya kuvutia kwa sababu mbili. Awali ya yote, na ikawa Bidhaa Microsoft ya kwanza, ambayo ilikuwa mkalimani kwa BASIC lugha ya programu. Na pili, hii ilikuwa moja ya majaribio ya kwanza kujenga mkalimani hivyo kawaida watu wanaweza kutumia kompyuta binafsi. Hivyo Bill Gates alikuwa shahada ya kwanza katika Harvard. Nilianza kufundisha katika Harvard katika 1974. Hii ilifanyika mwaka 1975. Hivyo ilikuwa mapema katika kazi yake na mapema katika kazi yangu. Mimi kwa kweli kufundishwa Bill katika Bila shaka kote wakati huu. Paul Allen alikuwa si Harvard mwanafunzi, lakini yeye alikuwa wa shule ya sekondari classmate ya Bill Gates. Kama wewe kuja na kuangalia katika listing, itabidi kweli kupata tatu jina, Monte Davidoff, ambaye alikuwa classmate Gates ya hapa katika Harvard. OK, hivyo hapa ni kuvutia maoni hapa. Ni anasema "Katika 4K unaweza kufuta mraba mizizi lakini kwa loops lazima bado kazi. " OK, hivyo nini maana ni kwamba kuna njia mbili za kukusanya mpango huu. Mmoja alikuwa na kukimbia kwenye toleo wa kompyuta hii Altair kwamba tu alikuwa na maneno 4K ya kumbukumbu, maneno 4096 ya kumbukumbu. Lakini toleo kubwa alikuwa 8k. Na hivyo kile hii anasema ni kwamba katika toleo 4K alikuwa na kufuta baadhi code kwa kufanya hivyo inafaa. Na moja ya mambo kwamba itakuwa ilifutwa itakuwa mraba mizizi mara kwa mara. Lakini inaonekana kwa loops lazima bado kazi hata wakati wewe ni kuandaa chini kwa tu 4K toleo la kompyuta. DAVID J. Malan: Hivyo moja ya mandhari, kama tutaweza kuona katika sayansi ya kompyuta, ni wazo hili la layering na kufikirika, na kwa kweli amesimama juu ya mabega ya folks ambao wamekuja mbele yetu, si tofauti na baadhi ya Bill Gates na Paul Allen hadithi hapa. Na nini maana ya hii ni kwamba leo tunaweza kuchukua kwa nafasi ya kuwa mambo ni kweli rahisi kwa sisi kuandika code. Hakika code, kama sisi alisema siku ya Ijumaa, ni zaidi kitaalam hujulikana kama chanzo code. Na ni hii syntax Kiingereza kama hiyo ni sahihi zaidi na vizuri zaidi inavyoelezwa kuliko kitu kama Pseudo code, kwa ambayo hakuna ufafanuzi rasmi. Na leo nini tunakwenda kuzingatia ni chanzo code kwamba inaonekana kama hii, ambayo admittedly katika mtazamo wa kwanza inaonekana cryptic kabisa. Na kusema ukweli, ni njia zaidi aesthetically ngumu zaidi kuliko mpango msingi ni. Mpango huu wote gani, wanakumbuka, ni nini sisi kusema? Ni tu Prints "hello dunia." Na bado kuangalia yote ya mambo ya sisi haja kufungia kwamba maneno rahisi sana. Lakini kabla ya muda mrefu yote ya mistari haya na zaidi itakuwa kufanya maana sana bora na wewe. Na kati yake ni kama ifuatavyo. Nini tunahitaji tulizonazo ni kuchukua code, kama chanzo kificho kwamba sisi tu kuona. Na tunahitaji mpango mpya kuendesha kupitia. Tunahitaji algorithms ambayo inaweza kubadilisha chanzo code, kama hii, ndani ya kitu code, sekunde 0 na 1s. Kwa maneno mengine, kile tunakwenda kujifunza leo ni jinsi ya kufanya hivyo, kuandika chanzo code juu juu, kupita kama pembejeo kwa maalum mpango inayojulikana kama compiler, na sisi ni kwenda kuzalisha kitu code. Ambayo ni njia tu ya dhana ya akisema sisi kuchukua kitu kwamba inaonekana kama hii, kupita ndani ya programu inayoitwa compiler, kuzalisha kitu code kwamba inaonekana kama hii. Basi hizi ni literally mifumo ya sekunde 0 na 1s kwamba ni kueleweka kwa Intel kompyuta siku hizi, kwamba kama kufasiriwa kwa CPU, akili ndani ya kompyuta, mapenzi halisi magazeti nje, kwa urahisi kabisa, "hello dunia." Sasa kuna sekunde 0 na 1s njia zaidi kuliko wewe bila matumaini inaweza kuwa muhimu kwa ajili hiyo. Lakini hiyo ni kwa sababu sisi ni kujenga juu ya mpango mzuri wa utata kwamba tunaweza sasa na kuchukua kwa nafasi. Kwa maneno mengine, mengi ya watu smart ametupa mengi ya zana baridi na nguvu programu ambayo sisi Sasa unaweza kufanya miradi ya yetu wenyewe. Basi hebu kupata kuanza. Wakati Ijumaa iliyopita, na Tatizo Set kwa 0 wiki hii, wewe utakuwa kucheza katika dunia ambayo inaonekana kama hii. Kuanzia leo na kwa Tatizo Kuweka 1 wiki ijayo, kanuni na ni kwenda kuangalia kidogo zaidi cryptic, lakini functionally ni kwenda kuwa sawa. Hivyo taarifa, top ni Scratch, chini ni C. Kwa kweli Scratch ni mengi zaidi user kirafiki na kupatikana. Lakini kama wewe sasa kulinganisha kuibua juu kwa chini, kuna aina ya 1-1 mawasiliano kati ya vipande puzzle na lugha sisi ni juu ya kucheza na. Hasa, kusema, bluu puzzle kipande juu juu, ni inaonekana sawa na kile keyword au maneno maalum katika lugha hii kuitwa C? Watazamaji: printf. DAVID J. Malan: printf. Hiyo ina maana uchapishaji formatted. Na kwamba ni dhana tu njia ya kusema printf katika C ni kwenda kuwa kauli au kazi kwamba Prints kitu screen. Ni nini magazeti kwa screen? Chochote kuwaambia ni ndani ya ya quotes, ndani ya mabano. Hivyo tena, admittedly, kuna mengi ya mambo kwamba una kuweka katika akili, mabano, quotes, semicolons, na hii yote. Lakini yote ya kwamba ni aina ya kando ya uhakika. takeaway kuvutia kwa ajili ya sasa ni kwamba kusema block katika Scratch ni pretty much sawa na printf taarifa katika C. Wakati huo huo, njano puzzle kipande juu juu, wakati kijani bendera clicked, pengine ni sawa kwa nini Keyword hapa? Watazamaji: Main. DAVID J. Malan: Hivyo kuu. Labda int, labda batili. Lakini aina kuu ya sauti kama ni muhimu, na kwa kweli ni. Hivyo wakati kijani bendera clicked ni, tena, puzzle kipande kwamba mateke mbali nzima Scratch mpango. Lakini sisi ni kwenda sasa kuanza wito kuu, kazi kwamba hii inajulikana kama kuu. Sasa wakati huo huo tutaweza kujumlisha hii kama ifuatavyo. Sisi tupate kuwaita kusema kazi. Na ili kuangalia hasa kama hii. Naam, nini kuhusu loops? Kama tunataka kuanza kuwabadili au kutafsiri zaidi katika Scratch kwa C, jambo hili hapa inaonekana tu anasema "hello dunia" milele. Hivyo kama wewe kujiunga hizi scripts na paka katika Scratch, ni tu kwenda kwa kuendelea kusema katika baadhi ya aina ya cartoon Bubble, "Hello dunia, hello dunia, hello dunia, "ad nauseum, milele. Kama tunataka kufanya kitu sawa katika C, ni kwenda kuangalia cryptic kidogo. Lakini tunaweza kufikia huo matokeo, kama tutaweza hatimaye kujua, pamoja na syntax kama hii. Mimi naenda kutumia printf tena, kwa sababu mwisho wa siku Nataka magazeti "hello dunia." Na mimi nina inaonekana kutumia Keyword kwamba ni si milele. Ni badala neno wakati. Lakini tu semantically katika Kiingereza, wakati aina ya unaonyesha baadhi ya aina ya kitanzi au mzunguko. Hivyo kwamba hutokea kwa kuwa Keyword kwamba C anatumia. Na wakati kweli, kwa nini wakati kweli na maana milele? Naam, wakati, kama tutaweza hivi karibuni kufahamu yote zaidi, ana hili mabano karibu na hiyo ambapo unaweza kuweka kujieleza Boolean. Na hivyo kwa muda mrefu kama kwamba kujieleza ni kweli, kanuni hii, kama ulionyehsa kati ya hizi mbili braces curly kama tutaweza kuwaita, tu kuweka mbio tena na tena. Hivyo kweli ni kweli. Hivyo wakati njia ya kweli tu kufanya hivyo milele. Ni karibu kijinga kujenga kwa kueleza mwenyewe. Lakini hapakuwa na milele keyword katika C. Kulikuwa na wakati. Na kulikuwa na rahisi sana Boolean kujieleza kama kweli. Na hivyo hii, tutaweza kuona, kinafikia matokeo sawa. Jinsi mwingine gani unaweza kutekeleza kitanzi? Naam, katika Scratch waweza code kwa bidii idadi maalum ya iterations katika kitanzi hapa. Na hivyo hiyo ni nini hasa sisi wanaweza kufanya katika toleo la C, ambapo tuna kinachojulikana kwa kitanzi. Na kwa kitanzi hapa ni kwenda iterate, kwa kiasi fulani isiyoeleweka kirahisi, kutoka thamani 0 juu ya up kwa lakini chini ya 10. Sasa vigezo katika Scratch. Unaweza kuwa alikuwa nafasi ya matumizi haya. Lakini nini uhakika, kwa ujumla, ya kutofautiana gani sisi kusema wiki iliyopita? Nini hiyo? Watazamaji: Points. DAVID J. Malan: Kwa uhakika? Oh, anasema. OK, kuweka wimbo wa pointi, kwa mfano, katika mchezo. Au zaidi kwa ujumla kufanya nini na variable? Nini matumizi ya yao? Watazamaji: Kumbukumbu. DAVID J. Malan: Yeah, hivyo kumbukumbu. Ni kwa ajili ya kuhifadhi kitu. Na aina ya silly Visual mimi kutumika mara ya mwisho ilikuwa kama hili bakuli kioo. Na kama sisi alitaka kuhifadhi kitu ndani ya kutofautiana, kwa mfano sasa hivi thamani ya kitu sita kwa sababu kuna ni sita mipira Ping Pong katika hapa. Ni baadhi tu ya aina ya kuhifadhi chombo kwamba chini ya Hood unatekelezwa kwa bits, sekunde 0 na 1s, Hata hivyo kompyuta kinachotokea kwa kufanya hivyo. Hivyo katika Scratch, kama sisi wanataka kuwa na variable, tunaweza kutumia block machungwa kama hii. Tutaweza wito kwamba counter katika kesi fulani. Mimi initialized kwa 0. Na nini mimi kisha nini? Forever, kusema counter, ambayo kama wewe kucheza na kwamba katika Scratch, utasikia tu kuona Scratch. paka au chochote Costume kuweka juu ya naye atazungumza simu katika swali. Lugha ya kukabiliana na na 1 ni kama incrementing na 1. Na hivyo hii ni kwenda kuhesabu kutokana na kile ili nini? Kutoka 0 til infinity, au mpaka Scratch mapumziko, au mpaka aina ya kupoteza maslahi katika kuangalia jinsi ya juu anaweza kweli kuhesabu. Hivyo jinsi gani sisi kubadilisha hii kwa C? Ni kwenda kuangalia cryptic kidogo. Lakini tena, kama ukiangalia katika kila ya mistari haya mmoja mmoja wao aina ya lineup kwa ujumla. Hivyo inaonekana int ni kwenda kuwa na baadhi ya maana maalum katika C. Tutaweza kuona kwamba tena. Kama kando ina maana integer. Hivyo ni tu ina maana idadi. Hivyo hiyo ni aina ya kioo bakuli nataka, moja kwamba wanaweza kuhifadhi namba, si Ping pong mipira. Na mimi nina kwenda kutumia ishara sawa kuna hawawajui ni thamani ya 0. Hivyo kwamba ni kabisa kama kuweka kinyume na 0, lakini katika C. Wakati huo huo, wakati kweli, kwamba alikuwa sawa, bila shaka, kwa milele, hata kama ni kidogo cryptic, na kisha ndani ya braces curly. Na unaweza kufikiria braces haya curly, ambayo unaweza aina kwenye keyboard yako, kama kweli kuwa kama curvature katika hizi njano kitanzi vitalu katika Scratch. Ni unadhihirisha mistari mingi ya code. Printf ni kupata kidogo inatisha sasa kwa sababu mimi kuona si tu quotes katika mabano. Lakini kile kingine ni mpya syntactically katika mfano huu? Kuna asilimia d. Na kisha backslash n ni huko. Hatukuwa kuona kwamba kabla, hata ingawa mimi si kutaja hayo. Kisha kuna comma. Na kisha kuna counter. Lakini tutaweza kuona katika tu wakati kwamba hii ni njia standard ya kusema magazeti a "Idadi decimal," quote, unquote, baadhi ya simu decimal. Lakini mimi nina kwenda kukuambia baadaye nini kwamba idadi decimal ni. Hivyo ukweli kwamba kuna comma katika hii line msemo printf, ina maana kwenda mbele na magazeti baadhi ya simu decimal. Oh, na kwa njia, idadi ni chochote thamani ya variable hii ni. Na hivyo kufanya hili zaidi wazi, tutaweza kuona mfano kabla ya muda mrefu kuwashirikisha hasa printf katika mazingira ya programu halisi C. Sasa tu wrap up baadhi ya constructs haya. Maneno Boolean, unaweza kuwa nafasi ya matumizi haya katika mpango wako lakini waweza vizuri sana, hasa kama kutumia masharti. Na hivyo mifano hii miwili kutoka Scratch mean kama x ni chini ya y, au kama x ni chini ya y na y ni chini ya kuliko z, jinsi gani sisi kutafsiri kwamba? Naam, katika C ni tu kwenda kuangalia kama hii. kidogo cryptic, zaidi mabano, baadhi ampersands weird, lakini kimsingi mawazo ni rahisi kama wao ni katika puzzle kipande dunia. Sisi ni kuangalia tu kama kitu fulani ni chini ya kitu kingine. Vipi kuhusu masharti? Kwa kifupi katika lugha ya Kiingereza, nini hii chunk ya Scratch code gani unaweza kusema? Watazamaji: Inalinganisha namba mbili. DAVID J. Malan: Inalinganisha mbili namba, na kama x ni chini ya y inasema kama mengi. Kama x ni mkubwa kuliko y inasema kama mengi, mwingine kama x ni sawa na y inasema kama mengi. Sasa wapi x na y kuja kutoka? Nani anajua. Chunk hii ya Scratch code ni nje ya muktadha. Lakini nini tunataka kufanya sasa ni kutafsiri hii kwa muda tu kuona. Hivyo kama wewe kupata starehe wiki hii katika Tatizo Set 0 kucheza katika dunia hii upande wa kushoto, kutambua kwamba mawazo si kubadilisha wiki hii au ijayo au zaidi. Sisi ni tu kwenda kuanza kuandika mambo kwa njia tofauti na yetu keyboard badala ya panya yetu. Hivyo kama x ni chini ya y, na kuna baadhi ya mabano hapo, kisha kuna baadhi braces curly tena kwa aina ya kurejelea ni tu kama vipande njano puzzle kufanya. Na mimi nina kwenda printf x ni chini ya y na kadhalika. Nini ni nzuri kuhusu C, kama unaweza kuona hapa, ni kwamba huwezi kupata nesting hii, nesting, nesting hiyo ni lazima kwenda kushinikiza code yako kwa haki. Unaweza badala kuwa na kila kitu lineup neatly kama hii. Lakini hiyo ni aesthetic undani tutaona tena kabla ya muda mrefu. Wote haki. Hivyo kwamba unatuleta nyuma kwa hii cryptic kuangalia mpango. Hebu kweli kuandika baadhi code. Sasa jinsi gani unaweza kwenda juu ya kuandika code? Miaka yote ambayo umefanya inayomilikiwa Mac au PC, desktop au laptop, umefanya kweli alikuwa na uwezo kuanza kuandika programu code. Lakini wewe pengine kukosa aina maalum ya mpango huo. Unaweza shaka kuandika code. Lakini unaweza siyo lazima, nje ya boksi, kubadilisha kwamba chanzo kanuni ndani ya kitu code, sekunde 0 na 1s bila nini kwenye kompyuta yako? Watazamaji: Compiler. DAVID J. Malan: Hivyo compiler, haki. Sasa wengi wa pengine si wenyewe compiler, hawajawahi kupakuliwa compiler. Lakini utaona unaweza kushusha ni kama wengi kipande yoyote nyingine ya programu. Katika ulimwengu wa Mac OS, unaweza download au kupakuliwa tayari kitu kinachoitwa Xcode au GCC au Clang. Kama wewe kuja kutoka Windows dunia waweza kupakuliwa Visual Studio, Visual Basic, mazingira kama hayo. Kuna kadhaa ya compilers siku hizi kwamba unaweza kutumia. Lakini short yake hapa ni kwamba itakuwa maumivu na, kusema ukweli, kiteknolojia ndoto kwa mamia ya watu wenye mbalimbali mazungumzo kompyuta kwa wote configure mashine zao katika hasa kwa njia hiyo ili tuweze wote kuwa katika ukurasa huo huo. Hivyo kile sisi, badala yake, kufanya katika CS50 ni sisi kukupa mazingira standard, Linux mazingira ambayo ni kwenda kuangalia kidogo kitu kama hiki. Wewe utakuwa kuona zaidi ya hii katika Tatizo Set 1 vipimo ambayo kwenda online hii Ijumaa usiku. Na hii ina maana gani ni kwamba tangu sasa ni kwenda kuwa na uwezo wa download na kufunga programu kuitwa CS50 Appliance. Na wewe ni kwenda kushusha na kufunga mpango mwingine aitwaye hypervisor, ambayo ni tu dhana njia mojawapo ya kufanikisha hili. Kama wewe mwenyewe Mac au PC au a Linux kompyuta au kompyuta Solaris, au chochote mambo ya uendeshaji mfumo wa wewe ni mbio, wewe ni kwenda download mpango kuitwa hypervisor hiyo ni kwenda kukimbia CS50 Appliance kwenye kompyuta yako bila kujali mfumo wa uendeshaji wako ni. hypervisor kwa maneno mengine waongofu mambo yetu kwa lugha yoyote, chochote maelekezo yako kompyuta mwenyewe anaelewa. Hivyo hii ni layering. Na tena, hii ni aina ya ufadhili katika kompyuta sayansi, jengo juu ya mambo. Unaweza kuwa na Windows. Unaweza kuwa na Mac OS. Lakini kuanza wiki ijayo wewe ni kwenda kupakuliwa kipande bure ya programu kuitwa hypervisor. Wewe ni kwenda kupakuliwa kipande ya programu inayoitwa CS50 Appliance. Hiyo kwenda kukimbia katika hypervisor, ambayo ni kwenda kukimbia kwenye kompyuta yako. Na matokeo ya mwisho ni kwamba sisi sote mapenzi kuwa na dirisha rahisi kama hii juu ya Mac au PC yako kwamba inatupa udanganyifu wa kila mbio huo mfumo wa uendeshaji, bila nyingine yoyote athari kwenye kompyuta yako. Na unaweza screen kamili yake na kimsingi kuishi kana kwamba wewe ni mbio mfumo wa uendeshaji kuitwa Linux, ambayo ni nini CS50 Appliance ni msingi. Basi hebu kweli kutumia hii sasa kuandika mpango. Unaweza kuandika mpango kutumia Microsoft Word. Unaweza kuandika mpango kutumia TextEdit, au Notepad, au WordPad, au pretty much neno lolote usindikaji mpango ve milele kutumika. Lakini ukweli ni lazima si kutumia kweli yoyote ya programu hizo. Wewe hakika wasitumie kitu kama Microsoft Word, ambayo ina ujasiri inakabiliwa na italics, na fonts kubwa na fonts ndogo, kwa sababu kompyuta haina huduma kuhusu yoyote ya kwamba. Kompyuta yote ni kwenda kwa huduma ya juu ni Kiingereza kama maelekezo yaliyoandikwa katika C. Basi nini tutaweza kufanya ndani ya ya CS50 Appliance ni kutumia mpango kwa uhuru inapatikana, na ni kabla ya imewekwa katika hii appliance, iitwayo gedit. Na gedit ni tu super rahisi Nakala mhariri kama Mac OS ya TextEdit, kama Windows Notepad ambayo inaenda kuangalia kitu kidogo kama hii. Basi hebu kweli si kuangalia slides ya hili. Lakini hebu kweli kwenda katika mazingira yenyewe. Mimi nina kwenda mbele na kuingia kwenye, katika dirisha hii nyingine, na yangu CS50 Appliance, ambayo nimekuwa kabla ya imewekwa juu ya mbali yangu hapa. Taarifa kwamba, kama Windows na Mac OS, ni got baadhi menus. Kama Windows unaweka ni chini huko badala ya Mac OS, ambayo kuiweka chini huko. Lakini ukweli ni ni kila aina ya sawa. Na katika hapa ni mzima rundo la programu. Kuna Dropbox. Kuna rundo zima la vifaa, mipango graphical kwamba tutaweza matumizi ya baadaye katika muda kwa seti tatizo. Kuna browser mtandao kujengwa katika hivyo kwamba hii ni full fledged kompyuta ndani ya kompyuta. Lakini mimi nina kwenda click hii leftmost icon nyeupe hapa, ambayo ni icon kwa gedit. Na ni kwenda kufungua dirisha ambayo ina paneli tatu kwa hiyo, kushoto moja, moja ya juu, na moja chini. Sasa ni katika haki hii moja juu ya kuwa Mimi nina kwenda kweli kuandika baadhi code. Basi hebu kufanya hili ,. Mimi nina kwenda na Picha, Save. Na unaweza si milele tumeona dirisha hii hasa kabla ya. Lakini hii ni kama Mac OS au Windows. Ni tu dirisha na wote wa folders kwamba nina ndani ya kompyuta hii. Na mimi nina kwenda kuokoa faili kama hello.c. Na mimi nina kwenda mbele na bonyeza Save. Na sasa taarifa nina tab juu kushoto kuitwa hello.c. Basi pengine pretty familiar hata kama wameweza si kutumika mpango huu hasa kabla ya. Na sasa mimi nina kwenda aina katika wale haki cryptic mlolongo wa amri kuwa tuliona wakati iliyopita. Ni pamoja na, kiwango I / O.h. Zaidi juu ya kwamba hivi karibuni. Int kuu batili, wazi curly brace, imefungwa curly brace. Na kisha ndani ya huko nadhani ni ambapo tulikuwa "hello dunia," semicolon. Na sasa kuokoa. Hivyo hii ni mpango imeandikwa katika C, imeandikwa, kwa hiyo, katika chanzo code. Lakini siwezi kukimbia tu mpango huu. Mimi aina ya kutaka mara mbili bonyeza icon mahali fulani, lakini hakuna icon ipo nyingine kuliko chanzo code file. Je, tena, ni mchakato sasa kwamba Mimi haja ya kuendesha faili hili kupitia? Watazamaji: Compiler. DAVID J. Malan: Hivyo compiler. Hivyo katika kompyuta tofauti wewe kufanya hivyo kwa njia tofauti. Lakini kile ambacho tumefanya hapa katika CS50 Appliance hiyo ni mwakilishi wa jinsi nguvu kufanya hivyo juu ya mifumo mingi tofauti, ni mimi nina tu kwenda kukimbia amri kuitwa kufanya. Na kufanya ni halisi kwenda kufanya hivyo. Kufanya mimi mpango. Hivyo kufanya ni kwenda kukimbia compiler kwa ajili yangu. Na jina la mpango Nataka kufanya ni hello. Sasa kufanya ni mpango. Na kufanya ni smart kutosha kutambua kwamba kama mimi kusema kufanya hello, ni kwenda kuangalia moja kwa moja kwa faili inayoitwa hello.c kwa sababu tu kwamba njia ni configured. Hivyo wakati mimi hit Enter sasa hapa, hii mambo cryptic line tu got kunyongwa. Na imani yangu, kabla ya muda mrefu, ndani ya siku tu, wewe utakuwa kuelewa nini wote ya kwamba njia yasiyo na msingi. Lakini kwa sasa, tu kujua kwamba kufanya yalisababisha utekelezaji wa compiler. Kwa maneno mengine, ni kupatikana compiler kwenye kompyuta yangu hiyo ni kabla ya imewekwa juu ya CS50 Appliance kwamba tutaweza mkono na wewe katika Tatizo Set 1. Na kisha alichukua hello.c kama pembejeo, na zinazozalishwa inaonekana Sekunde 0 na 1s kama pato. Na by default kile yake ni anaokoa wale sekunde 0 na 1s katika faili inayoitwa hello. Na ingawa syntax hii pia nguvu kuwa mpya, tu kwa kusema dot kufyeka hodi ni kwenda kuwa njia ambayo mimi kukimbia mpango huu. Kwa sasa na kwa wanandoa angalau kipindi cha wiki, karibu wote wa programu Sisi kuandika ni kwenda kuwa katika nyeusi na nyeupe Nakala madirisha. Hakuna panya, hakuna kubonyeza, hakuna madirisha, hakuna icons. Sisi ni kwenda kushika ni rahisi na kuzingatia mawazo ya msingi awali kabla ya sisi kupata kitu ngazi ya juu, kwa mfano, kama mapumziko nje mchezo kwamba sisi aliyesema kuhusu katika hotuba ya kwanza wiki iliyopita. Hivyo wakati mimi hit Enter hapa, ni sawa katika maandishi mazingira tu kwa mara mbili kubonyeza icon aitwaye hello. Unatarajia mapenzi kutokea wakati mimi hit Enter, basi? Watazamaji: Ni itabidi magazeti "hello dunia." DAVID J. Malan: Hopefully itakuwa magazeti "hello dunia." Na hakika alifanya. Sasa kuna kuwa baadhi cryptic syntax hapa. Hebu rewind kwa tu wakati na kuona kama sisi hawezi kuanza inferring tu kwa kuchezea, kujaribu na kushindwa, kama kwa nini kinaendelea hapa. Nini kama mimi kujikwamua backslash n? Sasa baadhi yenu ambao wameweza iliyowekwa kabla ya pengine kujua instantly nini maana ya. Lakini kwa wale ambao wameweza kamwe iliyowekwa kabla, angalau kufikiri kwa mwenyewe nini ni kwenda kubadilika wakati mimi rerun mpango huu? Hivyo mimi nina kwenda nyuma chini ya yangu nyeusi na nyeupe dirisha kidogo, ambayo ni dirisha katika ambayo Mimi unaweza kukusanya hii. Mimi nina kwenda recompile hello. Sisi ni kwenda kuona sawa cryptic mlolongo wa amri. Na mimi nina kwenda kufanya dot slash hello. Na sasa mtu, kama wewe ungekuwa, ambao kamwe iliyowekwa kabla, nini inaweza kuwa tofauti wakati huu? Yeah. Watazamaji: Ni si kuacha uchapishaji "hello dunia." DAVID J. Malan: Ni kwenda to-- pole? Watazamaji: Ni si kuacha uchapishaji ni? DAVID J. Malan: Ni si kuacha uchapishaji "hello dunia." Hivyo si wazo mbaya. Mawazo mengine? Yeah. Watazamaji: Error ujumbe? DAVID J. Malan: Error ujumbe, OK, inaweza kuwa. Nini kingine? Watazamaji: Ni wanaweza magazeti bracket kwa semicolon vile vile? DAVID J. Malan: Yanayoweza magazeti bracket kwa semicolon kama vizuri. Hivyo labda kwamba backslash kisha ni baadhi aina ya terminous hayo ni muhimu. Yoyote mawazo mengine? Mawazo hivyo wote nzuri. Na kwa kweli, ni kwenda kuwa ujumbe wa kosa. Kwamba pengine zaidi uwezekano kuwa jibu kwa ujumla kwa wiki chache zijazo kama sisi kujifunza na kanuni hapa. Lakini kwa sasa kumbuka kwamba kompyuta tu kufanya hivyo wewe kuwaambia cha kufanya. Mengi kama karanga ridiculous siagi na jelly mfano. Kompyuta yetu ya kibinadamu walikuwa tu walidhani kufanya nini aliwaagiza kufanya. Hivyo katika kesi hii, kama wewe usimwambie kompyuta kutoa hoja kwamba mshale blinking kwa mstari wa pili, ni si kwenda kufanya hivyo. Hivyo wakati mimi kuendesha mpango huu sasa, taarifa tofauti. Inaonekana kama mdudu. Ni mdudu aesthetic, labda. Lakini nini ni tofauti kuhusu hili pato dhidi ya moja mwisho wazi? Yeah. Watazamaji: Ni hakufanya mstari mpya. DAVID J. Malan: Ni hakufanya mstari mpya. Sasa wale ambao kurasa labda alifanya mtandao kabla ya, unaweza kujua ya BR tag au aya tag, sawa sana katika roho. browser mtandao kupuuza wewe mpaka kumweleza ni hasa nini cha kufanya. Vile vile, ni lugha kama C tu kwenda kufanya nini kuwaambia ni kufanya. Hivyo sababu kwamba mifano yote haya, hivi sasa, kuwa na aina ya casually alikuwa backslash hii katika huko, hiyo ni njia na ambayo kueleza mwenyewe kama mpya line tabia, hivyo kusema. Na unaweza aina ya kufahamu, pengine, kwamba hii itakuwa kuangalia aina ya kijinga kama kitu kingine. Kama nilitaka line mpya, tu kupiga Kuingia na kisha aina ya butchering code kama kwamba lazima si kweli kusugua wewe njia ya haki. Na hata kama huna kweli huduma katika hatua hii, utagundua kuwa hii si hasa mzuri kipande wa kanuni. Na hivyo kile dunia miaka iliyopita aliamua ni kwamba wakati unataka kuweka mshale kwenye mstari wa mwezi wazi, lazima wazi kusema mstari wa mwezi, backslash n. Na kuna baadhi ya wengine alama kama hiyo. Lakini kwa sasa tutaweza tu kuzingatia backslash n. Sasa hebu kufanya mpango kidogo zaidi ya kuvutia. Mimi nina kwenda mbele na wakati huu kufungua faili mpya. Mimi nina kwenda kuokoa hii kama hodi-1.c. Na tu kwa ajili mateke, mimi nina kwenda kwenda kuiweka katika folder Dropbox yangu. Kama utaona katika CS50 nyaraka kwa ajili ya appliance, baadaye wiki hii kwa Tatizo Kuweka 1, tutaweza kuhamasisha wewe kutumia Dropbox au baadhi ya huduma sawa, kwa sababu basi wote wa code yako kwenda kuwa yanayoambatana moja kwa moja. Na hivyo ndiyo sababu mimi wameweza wamekwenda katika folder hii hapa. Na sasa mimi nina kwenda kuandika tofauti kidogo mpango. Ni pamoja na, kiwango I / O.h, int kuu utupu. Na kisha katika hapa printf, hello dunia, ambayo ni sawa kama kabla. Lakini sasa nataka magazeti kitu hiyo ni tofauti kidogo. Nataka magazeti nje, kusema, "Hello, Daudi." Haki zote, hivyo ni wazi, ni lazima hopefully kuwa kesi hiyo kama mimi recompile mpango huu, rerun yake, ni kwenda kusema "hello, Daudi." Lakini nini kama mimi nataka kuanzisha aina hii ya kutofautiana, dhana ya chombo kwamba kinaendelea kuhifadhi D-v-i-d na kanuni ni si ngumu ndani ya mpango wangu. Naam nini kama mimi kuanza kufanya kitu kama hii? Kamba s, hivyo hii ni kutofautiana. Kama unataka kamba, a.k.a. neno au maneno. mlolongo wa wahusika ni nini sisi katika programu kuwaita kamba. Sisi ni kwenda tu kwa generically simu ni s, kwa sababu ni nzuri jina rahisi. Lakini mimi naweza kuiita kitu chochote. Mimi nina kwenda kusema kamba s sawa quote unquote, "David," semicolon. Na sasa mimi unataka Insert D-v-i-d katika kile mimi nina uchapishaji. Na kabla ya tuliona teaser juu ya screen ya baadhi syntax maalum kwamba alituruhusu mbadala katika thamani. Nini ilikuwa maalum ishara slides michache iliyopita? Hivyo asilimia. Wakati huo ilikuwa asilimia d kwa idadi decimal. Hiyo haina kweli wanaonekana muhimu hapa. Zinageuka kuna ya alama nyingine asilimia, ambayo ni asilimia s, ambayo inasimamia kwa placeholder kwa kamba. Hivyo sasa, sana tu, mimi nina kwenda kufanya hujambo-1, kwa sababu faili hili kuitwa hujambo-1.c, na hit Enter. Na mimi Star up. Nini kinaendelea? Naam, hapa ni mahali ambapo tuna kuanza kufahamu kwamba tuko katika amri hii line mazingira, hii Nakala mazingira tu. Hakuna kubonyeza icons kama folders hivi sasa. Na kufikiri nyuma wakati iliyopita. Katika kile folder Je, mimi kusema Mimi nilikuwa kuokoa code wangu? Hivyo folder Dropbox. Wangeweza kuitwa kitu. Lakini hutokea kuitwa Dropbox. Kwa hiyo mimi kwa namna fulani haja ya bonyeza mara mbili kwamba Dropbox folder ili kupata ndani yake na kupata katika wangu code aitwaye hodi-1.c. Kwa kweli, basi mimi kwenda mbele na kupunguza dirisha hili kwa muda tu. Tu kama Windows na Mac OS, kuna folders katika Linux. Kuna folders katika CS50 Appliance. Ni tu sasa hivi sisi ni kuwalazimu wenyewe kwa mazingira haya maandishi. Lakini kama mimi mara mbili click juu ya Dropbox, taarifa kuna ni faili kwamba mimi nataka kukusanya. Lakini mimi haja hii nyeusi na nyeupe terminal dirisha, hivyo kusema. Lakini mimi haja, kwa hiyo, kwa hoja ndani ya kwamba folder au directory. Hivyo kidogo arcane, lakini utapata kutumika kwa hii pia. Katika ulimwengu wa Linux, ambayo tena ni uendeshaji mfumo wa sisi ni mbio ndani ya CS50 Appliance, kuna amri kuitwa CD. Ambayo ina maana siwezi kufanya CD, nafasi, Dropbox. CD, mabadiliko directory. Haki. Nyuma katika siku wakati watu walikuwa kubuni kompyuta na uendeshaji mifumo kama hii, walitaka aina keystrokes fewest iwezekanavyo. Hivyo njia rahisi kusema mabadiliko directory mara CD. Hivyo kama mimi hit CD, nafasi Dropbox, taarifa ya nini imebadilika hapa. Ndani ya mabano appliance ni aina ya humoring mimi na kuwakumbusha yangu ambapo mimi. Hivyo folder wazi ni Dropbox. Kama mimi sasa aina ls kwa orodha, tena succinct, kwa sababu watu hakutaka aina nyuma katika siku l-i-s-t. Hivyo wao badala alifanya hivyo LS. Kuingia. Taarifa naona mambo mawili, hello-1.c, na kisha jambo hili cryptic, chanzo 1m. Hiyo ni njia tu yangu ya kusema chanzo code kwa wiki 1 Jumatatu. Hiyo ni folder mimi kupakuliwa kutoka Tovuti CS50 kwamba mimi alifanya mapema leo na tu kuiweka katika appliance mapema. Lakini kwa sasa kitu pekee sisi huduma ya juu ni kufanya mpango huu. Hivyo wakati mimi aina kufanya hujambo-1, kuingia. Damn yake. Kitu potoka. Basi hebu tease hii mbali. Na kwa bahati mbaya hii ni mahali ambapo mambo kupata kidogo yanayokusumbua mara ya kwanza, angalau kama wameweza kamwe iliyowekwa mbele. Mungu wangu. Niliandika mbili line mpango na Nina mistari minne ya makosa. Hivyo nini kinaendelea hapa. Kwanza kabisa daima kitabu nyuma up na kupata kwanza ujumbe wa kosa, kwa sababu mara nyingi Compilers tu kupata kuchanganyikiwa yale ambayo wewe na mimi kufanya. Compilers ni pretty bubu. Wao itabidi tu kufanya kile wewe kuwaambia cha kufanya. Na kama wewe kuwachanganya, wao uko tu kwenda aina ya kutupa juu ya mikono yao na labda kutupa ujumbe zaidi kosa kuliko ni kweli husika. Hivyo hebu tuangalie kwanza. Super cryptic kwa mara ya kwanza. Lakini sikia, hapa ni jina la faili katika ambayo mimi Star up inaonekana. Colon 5, koloni 5 tu ina maana juu ya line 5 katika tabia ya tano. Hivyo safu ya tano ya wahusika, kama wewe, makosa. Matumizi ya kamba Undeclared kitambulisho. Je, maana standard n? Hakuna, mimi maana kamba. Na kisha ni aina ya kuiga na pasting kile typed kwa kweli kuteka yangu makini na ambapo mimi Star up. Hivyo kwa baadhi ya sababu C, au angalau compiler haina kuelewa kamba neno. Na kwamba ni kwa sababu sisi alifanya hivyo up. Hivyo string haipo katika C. Nini CS50 gani, kwa mara ya kwanza wiki chache tu ya darasani, ni sisi kutoa baadhi ya mafunzo ya magurudumu, hivyo kusema. Na sisi kuweka magurudumu haya mafunzo ndani ya faili maalum iitwayo CS50.h. Hivyo hii ni ya pili ya faili mbili majina kwamba inaonekana mwisho katika dot h. Hebu rewind. Printf ni kauli au kazi kwamba inaonekana Prints kitu kwa screen. Lakini hakuwa na kuona mimi kutekeleza printf, haki. Mtu miaka iliyopita kutekelezwa printf. Katika kile file gani unaweza wager yeye au yeye kuweka utekelezaji kwa printf, kanuni na kwa printf? Katika faili inayoitwa standard I / O.h. Kwa kweli, pengine ni katika files mbili, standard I / O.h, ambayo inasimamia kwa header faili, na standard I / O.c, ambayo inasimamia kwa C chanzo code. Hivyo yeye au yeye baadhi ya miaka iliyopita plopped kificho kwamba wao aliandika katika faili kwamba ili watu kama sisi miaka ya baadaye unaweza kujumuisha, hivyo kusema, katika mipango yetu wenyewe. Na hakika, kwamba ni nini pound ishara ikifuatiwa na neno ni pamoja na gani. Inaonekana kwenye gari mitaa ngumu, hupata faili inayoitwa standard I / O.h, na kisha kwa ufanisi nakala na pastes ni ndani ya faili yangu mwenyewe. Hivyo sasa mpango wangu anajua jinsi ya magazeti kwa screen. Hivyo kwa kuwa mantiki, ambapo ni kamba defined? Watazamaji: CS50.h. DAVID J. Malan: CS50.h. Na hakika, kwamba ni nini sisi, wafanyakazi msingi, wamefanya. Tumekuwa zuliwa aina chache data, hivyo kusema, kama kamba, katika Mbali na ndio wewe kupata kwa bure, kama int. Na tutaweza kuona watu wengine kama char kwa ajili ya tabia na wachache zaidi. Ndani ya CS50.h inaonekana ni angalau baadhi ya kutaja ya kamba. Hivyo sasa napenda kwenda mbele na rerun kufanya hujambo-1. Mimi itabidi zoom katika tena na msalaba vidole yangu. Sasa kwa kuwa alifanya moja mabadiliko ya mimi fasta mambo mengi. Lakini damn it. Percents zaidi ya data hoja. Nini mimi kufanya makosa wakati huu? Hivyo bado ni pretty cryptic. Lakini kosa hili ni juu ya line 7 na tabia ya 21. Basi hebu kwenda kuangalia juu hapa. Ni kidogo hila. Lakini kama wewe kufikiri juu ya nini mawazo ya msingi hapa ni, labda tunaweza tease hii mbali. Hivyo printf ni jina ya kazi. Mabano, hivi sasa, ni tu kama kile sisi kuweka karibu mambo sisi ni kupita kama pembejeo kwa kazi. Haki wote, tu holela mkataba binadamu. Kutumia mabano. Ndani ya mabano wale tumekuwa kuweka quotes mbili, na kisha kamba kama "hello dunia." Lakini katika mfano kwamba mapema sana kwa ufupi alifanya sisi kuangalia kwa Scratch. Na tulikuwa na asilimia d, kile kingine alikuwa ndani ya mabano wale kwamba mimi kuitwa nje kwa maneno? Yeah. Watazamaji: Hivyo ni nini wewe kuchukua [Inaudible] kutoka ndani ya [inaudible] nini hawa [inaudible]? DAVID J. Malan: Hasa. Hivyo tulikuwa asilimia d. Lakini basi sisi alikuwa karibu quote, comma, counter. Haki. Sisi maalum nini tunataka kufanya kama placeholder. Basi nini mimi nina kwenda kufanya hapa ni comma, je, unataka mimi kuweka? Watazamaji: S. DAVID J. Malan: S, kwa sababu s katika kesi hii ni jina la chombo hifadhi. Ni jina la kioo bakuli. Wakati kabla ilikuwa counter katika kwamba rahisi Scratch mfano sisi inaonekana saa. Hivyo sasa kuwa alifanya mbili mabadiliko, basi mimi zoom katika na kujaribu mara moja zaidi kwa kukusanya mpango huu. Sasa naona kwamba line cryptic. Lakini hiyo ni kweli jina la compiler. Clang ni jina la compiler. Kufanya ni kuokoa mimi tu maumivu ya kichwa ya milele kuandika kwamba amri ya muda mrefu mambo nje. Hivyo sasa kama mimi dot kufyeka hodi-1, Mimi lazima kuona "hello, Daudi." Pretty aghali, ingawa, haki? Sisi wangefanya hii tu mengi zaidi bila kuzungumza juu ya vigezo na CS50.h na yote hayo. Basi hebu kufanya hivyo kidogo zaidi ya kuvutia. Mbali na CS50.h, kuwa na mambo kama kamba alitangaza, maktaba CS50 pia ina kazi chache. Hivyo tu kama miaka iliyopita, mtu aliandika printf na kuiweka katika kiwango I / O.h na baadhi ya faili nyingine. Sisi, wafanyakazi CS50, aliandika kazi kuitwa GetChar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, na sisi kuweka wale walio ndani ya faili kuitwa CS50.h na CS50.c. Na sisi kuziweka ndani ya ya CS50 Appliance. Na watu unaweza pia download yao online kama wao wanataka kuweka yao juu yao mwenyewe kompyuta kama vizuri. Ambayo ni kusema kwamba tuna umba kazi ili kupata pembejeo kutoka kwa mtumiaji. Sijui nini wote ya data aina hizi ni. GetInt ni aina ya moja kwa moja, kama kupata integer kwa namna fulani kutoka kwa mtumiaji. Na GetString ni pengine kama kupata neno au sentensi kutoka kwa mtumiaji. Basi hebu kuzingatia kuwa. Na mimi nina kwenda nyuma katika appliance na mimi nina kwenda mbele na kuokoa faili hii kama, hebu kuwaita ni hodi-2.c kama toleo yangu ya pili. Na hebu kufanya michache ya mabadiliko. Wakati huu badala ya ngumu coding David, ambayo hufanya incredibly thabiti lakini aghali mpango, nini kama mimi badala kufanya GetString? Sasa taarifa GetString ina mabano wazi, C. mabano, kwa sababu haina haja yoyote ya pembejeo. Ni tu kwenda kupata kamba kutoka kwa mtumiaji. Na sasa neno juu ya syntax nyingine. Semicolons mwisho tu mstari wa kanuni. You hawana haja nao kila mahali. Lakini kwamba tu maana mimi nina kufanyika kwa mstari huu wa kanuni. Hebu kuhamia kwenye mwingine kauli au kazi. Kamba anatangaza kutofautiana. String ni kama kusema nipe bakuli, tafadhali. Na basi mimi kuweka kamba ndani yake. Na sasa ishara sawa. Ni ishara sawa Nini kimsingi sawa na? Watazamaji: Hawawajui. DAVID J. Malan: Yeah, kumshirikisha thamani. Hivyo kama mimi, kwa mfano, simu hii GetString kazi, na tutaweza kuona katika wakati kwamba kwenda haraka user kwa kamba. Hii ni kama kuruhusu mimi kisha kuandika D-v-i-d juu ya kipande cha karatasi. Na wakati mimi kusema kamba s ni sawa na GetString, sawa kweli haina maana sawa katika C programu. Ina maana hawawajui kutoka upande wa kulia upande wa kwa upande wa kushoto. Hivyo nimekuwa wamezipata kamba. Na ishara sawa maana kuiweka katika kuhifadhi kontena kuitwa s. Na Kisha kupita hii mbali na printf kwa kweli kufanya kitu wake. Hivyo matokeo ya mwisho basi ni kwenda kuangalia tofauti kidogo. Hebu kufanya kufanya hujambo-2. Aidha anaweza kufanya kazi. Wewe ni kufuatia pamoja. Kufanya hujambo-2 kazi. Dot kufyeka hodi-2, kuingia. Mimi wanaonekana kuwa na usio kitanzi au kitu. Hakuna kinachofanyika. Kwa nini? Watazamaji: Ni kufanya kitanzi usio. DAVID J. Malan: Ni kitanzi usio. Ni aina ya kusubiri kwa mimi kweli kutoa ni pamoja na baadhi ya pembejeo. Hivyo basi mimi kwenda mbele na aina katika David, na hit Enter. Na sasa anasema "hello, Daudi." Kama mimi kukimbia tena. Hebu aina katika Rob, "hello, Rob." Sasa hii ni mbaya user interface milele. user ni inaonekana wanatakiwa kujua nini cha kufanya. Lakini hakuna jambo. Kutumia hizi ujenzi huo vitalu tu kama katika Scratch, tunaweza kutatua tatizo hilo na kusema kitu kama jina yako tafadhali, koloni, nafasi, imefungwa quote, karibu mabano, semicolon. Hivyo mengi ya tena puo na syntax. Lakini taarifa Nimekuwa tu aliongeza puzzle kipande juu ya hili moja na juu ya hili moja. Hivyo sasa kama mimi rerun hii, hello-2, kuingia. Kusubiri dakika. Nini mbaya? Ni si tabia yoyote tofauti. Yeah. Watazamaji: You hawakuwa kukimbia kufanya tena. DAVID J. Malan: Mimi si kukimbia kufanya tena, haki. Hivyo nimekuwa iliyopita chanzo code yangu. Lakini tena, kuna kuwa kati yake. Chanzo code kwa compiler inatoa wewe mpya kitu code, au sekunde 0 na 1s. Kwa hiyo mimi haja kwa kweli rerun kufanya hujambo-2 kuingia. OK, kitu inaonekana kuwa kilichotokea. Dot kufyeka hodi-2. Jina yako tafadhali. Na kuwa wazi sasa, kwa nini ni cursor juu ya mstari huo? Hasa. Mimi hakuwa na kuweka backslash n hapa up katika code yangu. Hivyo sasa siwezi kuandika kitu kama Daven, kuingia. Siwezi kukimbia tena na aina kitu kama Gabe, Ingieni, na sisi kupata mpango mbalimbali tena na tena na tena. Sasa hatimaye sisi ni kwenda haja ya kutumia chache uwezo tofauti. Tunahitaji kuanzisha hatimaye baadhi hali ya kufanya mambo kwa masharti. Labda loops ili tuweze kufanya mambo tena na tena. Labda itakuwa nzuri kama sisi inaweza kutekeleza majukumu yetu wenyewe, kama tunaweza kutekeleza yetu wenyewe printf au toleo yetu wenyewe ya GetString na GetFlow, kwa sababu hatimaye hata kutumia amri line mazingira haya Tunaweza kufanya hata wengi kuibua kuvutia ya mambo. Hakika katika hitimisho napenda kufanya hivyo. Mimi nina kwenda mbele na funga madirisha hayo na kufungua icon hii hapa, ambayo ni tu kubwa toleo la kwamba iliyoingia terminal dirisha. Hivyo gedit ina si tu mahali kwa code yangu, lakini pia kujengwa katika terminal dirisha, nyeusi na nyeupe dirisha ambapo naweza kukimbia amri. Mimi ilitokea tu kufungua toleo kubwa ya hii. Na sasa mimi nina kwenda katika folder kwamba nimekuwa tayari kuweka mapema kwenye tovuti bila shaka ya. Na mimi nina kwenda mbele na kufungua faili inayoitwa thadgavin.c, ambayo ilikuwa imeandikwa na mtu mwingine. Na kama sisi kuangalia hii, hii ni si aina ya code tutaweza kuwa na kuandika tangu Lengo la kanuni hii mara kwa kuandika prettiest kuangalia kificho kwamba yeye au yeye anaweza, bila kujali kama au si binadamu mwingine inaweza milele kuelewa kanuni hii. Hakika, kila mwaka kuna nini kuitwa obfuscated C mashindano, ambayo ni kwa geeks halisi ambao kuandika kificho kwamba hakuna mtu mwingine anaweza kusoma, lakini kwamba hana kitu ama kweli ni rahisi au kweli kushangaza. Na sisi mawazo tunatarajia kuhitimisha kwa kuangalia hii katika kitu ambacho ni pretty ajabu unaweza kuwa na kuonekana mara moja kabla ya. Lakini tutaweza mwisho juu ya hili kumbuka, dot slash, thadgavin. Hii basi ni nini watapata. Hiyo ni kwa CS50. Sisi kuona juu ya Jumatano. [MUSIC KUCHEZA]