[VIDEO avspelning] -Ushindi Wa hisabati na mitambo ujuzi ni hii kubwa mpya moja kwa moja calculator katika Chuo Kikuu cha Harvard. Matatizo na nje katika hisabati kuweka njia ya mashine katika fomu coded juu ya mkanda ni usahihi kutatuliwa katika dakika sehemu ya muda unaotakiwa kwa hesabu ya kibinadamu. Imeundwa ili kuharakisha aina zote za hisabati na utafiti wa kisayansi, ubongo kubwa mitambo itafanya kazi kwa Marekani Navy mpaka mwisho wa vita ya. [Mwisho avspelning] DAVID J. Malan: Hii, ni CS50. Zamani ilikuwa kichawi mahali, lakini kama wameweza milele kujiuliza nini kifaa kwamba ni katika Harvard Sayansi Center, ni kweli ni sehemu ya Harvard Mark I, na ni juu ya kuonyesha huko sasa kwa kipindi cha miaka mingi. Na nini utaona iliyoingia katika tatizo kuweka moja ni kuangalia nyuma ya pazia nini kifaa kwamba alifanya hivyo, na hivyo, kutoka Profesa Harry Lewis, ambaye ni katika sayansi ya kompyuta idara hapa. Hivyo zaidi juu ya kwamba katika kidogo tu. Lakini leo tunaanza kipindi cha mpito kutoka wiki iliyopita na hii, na tutaweza kuleta kutaja ya moja picha hapa hiyo ni kweli maarufu kabisa. Je, mtu yeyote kujua jambo hili hapa ni juu ya screen? Angalau kwa mujibu wa hadithi. Naam. Watazamaji: virusi kwanza. DAVID J. Malan: Hivyo ilikuwa eti kwanza kabisa halisi mdudu katika kompyuta. Sasa katika hali halisi neno mdudu, kwa makosa katika mpango, imekuwa na sisi kwa baadhi wakati katika ulimwengu wa kimwili, na hii ilikuwa ni moja ya kwanza kumbukumbu nyakati ambapo mtu kweli kumpokonya nondo kubwa nje ya Mark II kompyuta, kuiweka katika Binder, na kisha kumbukumbu yake kama inayojulikana mdudu kwanza kwa kweli imekuwa kupatikana kimwili. Hivyo hivyo alipanda kwamba katika lore leo. Kila kitu kutoka mwisho wiki ya inapatikana online. Katika rasilimali fulani kwamba waweza si lazima taarifa, hasa kama kuja hapa katika mtu. Hivyo moja ya wenzake mafundisho kila mwaka hufanya kisheria seti ya maelezo, hivyo hakuna haja ya kuweka kichwa yako chini, kujaribu transcribe wengi chochote ambayo yanaweza kutokea hapa darasani. Hivyo kutambua kwamba wale kinachojulikana [? Scribd?] Maelezo ni online, hakika slides na chanzo kanuni kwamba sisi kutumia darasani. Sisi kufanya nakala kamili Nakala inapatikana pia. Hivyo kama wewe bila kufafanua kumbuka baadhi muda wake na unataka kuangalia ni juu kidogo kwa urahisi zaidi, kutambua kwamba wote ya kwamba ni kutafutwa online. Kama vile walkthroughs pia. Kwa hakika, leo sisi kuanza kuangalia ngazi ya chini ya programu lugha, hivi karibuni kuwa anajulikana kwetu kama C, na ni rahisi sana kwa namna ya kupata waliopotea baada chache tu muda mfupi wakati, na kisha aina ya ajabu jinsi sisi kweli got baadhi zaidi mfano tata kutoka rahisi. Na hivyo kutambua tutaweza cherry pick wakati wa darasa baadhi ya mifano mwakilishi, lakini kutambua kwamba mambo mengi zaidi pia ni inapatikana online hivyo unaweza kufanya kazi kwa njia hiyo kwa kasi yako mwenyewe, Hata hivyo uko vizuri zaidi. Lakini sisi kushoto mbali na mipango ambayo walikuwa tu hii. Hivyo mimi bonyeza bendera ya kijani, na je, mpango huu nini? Anasema, hello, ulimwengu. Inafanya paka kusema hodi katika ulimwengu wake kidogo juu upande wa kushoto ya Scratch ya user interface. Lakini sisi ilianza kuanzisha baadhi ya istilahi wiki iliyopita. Na hivyo, mambo kama haya sisi kuitwa nini? Nini kinaweza kuwa mrefu generic kwa hili? Naam. Njia au taarifa. Hakika, ni utekelezaji. Kufanya hivyo. Na bado kulikuwa na maumbo mengine kwa mwanzo, zaidi ya hizo kinachojulikana Kauli, walikuwa pia mambo kama haya, ambayo sisi kuitwa nini? Naam. Hivyo kitanzi. Na katika kesi hii, jambo hili kurudia, ni wazi, mara 10. Kuna milele kuzuia. Kuna michache ya watu wengine. Na leo tunakwenda kuona jinsi ya kutafsiri hii kwa dunia ya kisasa zaidi, kama wewe, hata kama ni kwenda kuonekana katika mtazamo wa kwanza kuwa zaidi arcane. Lakini wale walikuwa kwa hakika loops. Na kisha tuna mambo kama hii, ambayo ilikuwa na sura hii, na kimsingi kuulizwa maswali. Na sisi inajulikana kama hizi nini? Watazamaji: kujieleza Boolean. DAVID J. Malan: Yeah. Boolean kujieleza. Kitu ambacho ni ama kweli au uongo, ndiyo au hapana, moja au sifuri, Hata hivyo unataka kuona dunia. Lakini sisi kuitwa wale Boolean maneno, na sisi kuziba yao ndani ya masharti, au matawi. Na katika ulimwengu wa Mwanzo, kila kitu vizuri interlocks katika suala la sura yake, kama ni mantiki mantiki ya kufanya hivyo, lakini huna kuacha saa tu kufanya jambo moja kwa masharti, unaweza kuwa na proverbial uma katika barabara na kufanya ama hii au kwamba kama hali ni kweli au la. Na kisha, kama utaona, kama wewe si tayari, Unaweza hata kiota vitalu haya. Hivyo Scratch inakua kujaza maumbo ambayo unaweza kutaka kuingiza ndani yake, hivyo unaweza kweli kueleza zaidi mantiki yoyote kwamba unaweza kutaka kufanya. Maneno sasa wachache wa tangazo kwa wote hapa na New Haven. Hivyo sectioning inaanza leo. URL hii ni juu ya kozi ya tovuti, kwa wale usio wa kawaida. Sehemu itakuwa fursa ya kupata pamoja katika mazingira mengi zaidi ionekane kuliko [? Sanders?] Inaruhusu, na 10 na 20 kwa wanafunzi kufundisha wenzao katika nyimbo mbalimbali, na hatua mbalimbali, kama hivyo kuchagua. Hakika inatoa kozi sehemu mbalimbali kwa wale chini ya starehe, zaidi starehe, na mahali fulani katika kati, na jukumu la gumba hapa, ni hakuna ufafanuzi rasmi ni, lakini kama wewe ni chini ya starehe, aina ya kujua. Wewe ni kidogo intrepid kuhusu wazo la wanazidi mguu, pengine, nyuma darasani, au kuonyesha hadi katika kati ya sehemu. Kama tumekuwa programu tangu walikuwa na umri wa miaka sita, vizuri zaidi, labda na wewe. Na kama ni aina ya toss-up, hiyo ni nini hasa katika kati ya ni maana ya kuwa. Sasa, wakati huo huo, kwa ajili ya darasa ukubwa huu, inachukua sisi muda kabisa kwa sehemu kila mtu, hivyo tuna kinachojulikana, sehemu super, kuja juu hii mwishoni mwa wiki na mapema wiki ijayo, hivyo tuangalie tovuti kozi ya kwa wale ambao ni kweli pana, na pia kwa wale zingine ambao hawawezi kufanya nao. Na sehemu yao itaanza katika wiki tatu ya CS50 sifuri ripoti. Tatizo kuweka 0 ni tayari kwenye tovuti kozi. Na kutambua kwamba huna kuwa na siku tisa mwishoni mwa muhula huu. Hivyo hii ni kuboresha kutoka mwisho mwaka, wakati tulikuwa siku tano marehemu. Hivyo kama wewe wanashangaa, tuna tatizo seti tisa. Una siku tisa mwishoni mwa mwezi, ambayo kila mmoja unaweza tu kutumia moja kwa wiki juu ya. Kwamba ufanisi hufanya yote ya tatizo seti kutokana Ijumaa, lakini lengo ni kuweka kidogo kidogo ya shinikizo kisaikolojia juu ya wewe kujaribu kupata mambo katika siku ya Alhamisi kwa sababu kama wewe hivi karibuni kugundua, kwa bora au mbaya, wengi kila kitu katika programu ulimwengu huishia kuchukua muda mrefu zaidi kuliko wewe wanatarajia. Hivyo kufikiria ni aina ya fursa ya kusaidia mwenyewe kwa lengo Alhamisi, lakini kuchukua faraja katika kwamba, ndiyo, kila kitu ni kutokana Ijumaa. Na kama wewe kuwasilisha yao juu ya Alhamisi, hiyo ni ajabu. Kuna pointi hakuna ziada au ziada mikopo kwa ajili ya mkutano kwamba tarehe ya mwisho. Ni maana ya kuwa mkongojo tu. Na masaa ya ofisi, wawili hapa na katika New Haven, katika mtu, kama wewe Ningependa kukutana na yoyote ya kozi zetu kufundisha wenzake na CAS kwa msaada. Wote haki. Hivyo sasa, hebu kufanya hili zaidi halisi. Na kwa muda ni kwenda kuanza kupata arcane zaidi kidogo, lakini sana haraka siku ya Ijumaa na wiki ijayo tutakuwa na uwezo wa kufanya hivyo zaidi kuliko tunaweza hivi sasa katika Scratch. Hivyo sisi ilianzisha kificho mwisho wiki, angalau pictoral. Ilikuwa vipande puzzle. Na sisi rasmi kuwa ni kitu kinachoitwa chanzo code, lakini ingekuwa hakuwa kuangalia kama? Naam, ilikuwa inaonekana kidogo kitu kama hiki. Na, kwa kweli, tu aina ya tease ambapo tunaweza kwenda na hili. Mimi nina kwenda kwenda mbele na kufungua dirisha hapa, na mimi nina kwenda tu kuchagua New faili. Na mimi nina kwenda kuokoa faili hili kama kitu kama hodi nukta c. Zaidi juu ya kwamba uchaguzi wa Maneno katika muda tu. Na hii ni jinsi mtu anaweza kwenda juu ya kuandika mpango. Pamoja na kiwango I / O nukta h, int kuu batili, na kisha wazi curly brace, karibu curly brace, printf hodi comma dunia, backslash n, semicolon, Save, kosa. Sawa. Nimekuwa imeandikwa yangu ya kwanza mpango, lakini itakuja kuwa incredibly underwhelmed kwa sababu wakati mimi kwa kweli kuendesha mpango huu, bila shaka, na maandiko ya kwanza kufanya hello, na kisha dot kufyeka hodi, na tutaweza kwenda kwa njia hii kwa undani zaidi katika wakati huu, kwamba ni yote ni gani. Haina pop wazi madirisha yoyote. Haina kufanya kitu chochote hasa dhana. All yake ni nini niliwaambia kwa kufanya, lakini ni jinsi gani sisi kupata hiyo? Na jinsi gani sisi kujenga juu kwamba? Naam, hebu kuanzisha chache dhana tofauti hapa. Hivyo moja, sisi ni juu ya kuanza kutumia programu inayoitwa compiler. Compiler lipo kwa ajili ya Mac OS, Windows, Linux, idadi yoyote ya mifumo ya uendeshaji, na tutaweza hivi karibuni kuanzisha wewe mazingira ambayo sisi itakuwa kutumia, lakini compiler ni tu kwa ujumla mrefu kwa ajili ya kipande cha programu kwamba inachukua chanzo kanuni na inazalisha kitu kificho kutoka humo. Kwa maneno mengine, kama wewe na kama pembejeo chanzo wako kanuni, kitu kama kile tu typed, hatimaye inazalisha kitu kificho. Na kitu kificho ni kweli tu njia dhana ya kusema hayo matokeo sifuri na mtu. Kwa maneno mengine, chanzo kanuni, hata kama ni kwenda kuangalia arcane kidogo, na kidogo kidogo ya kirafiki kuliko Scratch katika mtazamo wa kwanza, ni angalau kitu kwamba sisi wanadamu wanaweza kuelewa. Ni aina ya inaonekana na inaonekana kama Kiingereza hata kama ni succinct sana. Wakati programu katika sifuri na mtu, kama watangulizi wetu alikuwa na kufanya, baadhi ya miaka iliyopita, haikuwa hasa furaha changamoto. Na bado, hii ni nini bado kompyuta anaelewa. Hivyo compiler anapata sisi kutoka chanzo kanuni kwa kificho kitu. Ni kama kufungua faili kwa compiler, na wakati wewe ila ni, kupata wale zeros na ndio. Hivyo tutaweza kuona jinsi ya kufanya kwamba katika muda tu. Lakini hebu sasa kujaribu kutoa kuziba kati ya wiki iliyopita na hii, hivyo kwamba hata kama sisi kupata Hung juu juu ya mambo kama braces curly, na semicolons, na mabano, na yote haya kielimu ya kuvutia masuala ya programu, kwamba sana vyema safari watu asubuhi na mapema, kutambua kwamba wote wa mawazo leo, ni sawa na mwisho. Hivyo mwisho, tuliona mfano huu hapa, mpango Hello World. Naam, kuanzia leo, kama tunataka kutekeleza mpango huo huo, ni kwenda kuangalia kitu kidogo kama hii. Na tutaweza kueleza kabla ya muda mrefu kile int, na kuu, tena utupu, na yote hayo ni, lakini angalau Mimi naona hapa tayari ukoo Habari Duniani. Wakati huo huo, mambo kama kazi, kusema hello, ni sana tu kwenda kuwa Kauli rahisi sana kama hii. Printf hujambo dunia, pamoja na baadhi ananukuu, na backslash, kwa semicolon, lakini zaidi juu ya kwamba kuja. Tanzi, wakati huo huo, hii ni kitanzi kwamba, bila shaka, anasema hujambo dunia milele, na hii moja kwenda kuangalia kidogo weirder kuliko katika mwisho, lakini kama mimi kusema kitu kama, wakati kweli, mimi Basi unaweza magazeti nje Wapendwa dunia tena na tena na tena na tena. Na kisha kama unaweza aina ya kuanza kudai hapa, mkataba huu wa kutumia braces curly ni aina ya kama kumuunga indented mstari wa kanuni huko. Mstari printf ya kificho kiasi kama njano puzzle kipande juu juu. Hivyo sisi siyo kwenda kusema milele, tunakwenda kusema wakati wa kweli, lakini tutaweza kuona nini kuwa ni katika kidogo tu. Wakati huo huo, kama tuna kitanzi kama hii, ambapo kurudia kitu kilicho na mwisho Mara idadi, hii moja pia ni kwenda kuchukua kidogo kupata kutumika kwa, lakini ni kwenda kusema kwa int i anapata sifuri, i chini ya 10, i ++, na kisha printf tena. Lakini kuna kwenda kuwa mwelekeo. Na kwa wale wa wewe ni ukoo na AP Sayansi ya Kompyuta, au Java, au idadi yoyote ya lugha nyingine, karibu wote wa constructs hizi hivi sasa inapaswa kuangalia hasa ukoo. Hivyo kutofautiana. Hivyo hapa ni rahisi Scratch Excerpt kwamba seti kutofautiana kuitwa kukabiliana na sifuri, na kisha milele anasema kukabiliana, na kisha ni mabadiliko ya kukabiliana na kwa moja. Hivyo huanza na sifuri, na kisha moja, mbili, tatu. Naam, ni jinsi gani sisi kuanzisha kwamba katika lugha hii mpya kidogo vile vile? Int kukabiliana sawa na sifuri, wakati kweli, ambayo ni kwamba wazo moja kutoka kabla ya kufanya kitu milele, na mimi nina kwenda tu printf. Na sasa ni kupata kidogo ajabu, asilimia i, lakini zaidi juu ya kwamba kuja, lakini mawazo haya ni sawa. Sisi tu sasa na kuambatana na syntax kwamba kompyuta ni kwenda kudai mmoja wetu. Kujieleza Boolean, kitu kama sx chini ya y, au x chini ya y, na y chini ya z. Ni kwenda kuangalia kitu kidogo kama hii, na mabano tu kama katika hesabu kwa hatua nzuri tu kuhakikisha kwamba utaratibu wa shughuli ni kama sisi nia. Na sasa, hali ya. Hivyo kama x chini ya y, wanasema x ni chini kuliko y, mwingine kama x ni mkubwa kuliko y, kusema x ni mkubwa kuliko y, vinginevyo kifikra, x lazima kuwa sawa na y. Basi unaweza kutekeleza kitu kama hii katika Scratch, au unaweza kutekeleza hivyo katika syntax hii. Na tena, braces curly ni aina ya anatupa sura sawa na puzzle vipande, lakini syntax, sasa, ni labda kuanzia kufuata mwelekeo wa baadhi. Hivyo, ni nini hii kutupa hapa? Hivyo tuko nyuma kisha katika mpango wetu kuu. Hebu kweli, sasa, kufanya kitu kwa hayo. Hivyo katika hili sana kwanza mstari tunaona mkali ni pamoja na, kiwango I / O, nukta h, na kisha baadhi pembe weird mabano chini hiyo. int kuu batili, na kisha printf hujambo dunia. Hivyo tu kuchukua hatua. Mtu ambaye hajawahi iliyowekwa mbele, angalau kueleza moja ya mistari haya. Kutumia labda baadhi ya jargon ya wiki iliyopita. Printf ni kitu gani, kwa mfano? Naam. Watazamaji: [inaudible] DAVID J. Malan: Yeah. Ni kazi, au kauli, kutoka istilahi wiki iliyopita. Na ni hatua hiyo ni kufanya kitu. Sasa kazi hii, au kauli hii, je hivyo kuonekana kuchukua baadhi ya aina ya pembejeo? Na katika kile maana gani wanaonekana kuchukua pembejeo kama ndivyo? Pembejeo, je, mimi maana na kwamba? Naam. Watazamaji: [inaudible] DAVID J. Malan: Yeah. Hivyo Scratch nje vipande wachache puzzle ambapo unaweza parametrize yake. Unaweza kuwaambia kurudia kuzuia ni mara ngapi kurudia, ili kwamba ilikuwa mchango wa kila aina, na kama Scratch alikuwa nyeupe kidogo kishika kwa idadi ungependa aina katika, hivyo kufanya sisi kutumia katika hii mabano maandishi dunia kutupa sura kwamba mduara ndani ambayo tunaweza kuziba pembejeo yetu. Baada ya yote, mamia ya miaka iliyopita wakati lugha hii, iitwayo C, ilizuliwa hakuna mtu kutarajia ni mmoja wetu, hizi miaka kadhaa baadaye, tunatarajia wanataka kazi hiyo inasema hodi. Sawa? Ni d kuwa nzuri kama kulikuwa na puzzle kipande, au maneno muhimu, kwamba wito hello, kwamba literally tu anasema hello. Lakini hatuna haja hiyo. Tunaweza kuwa na kitu chini sana ngazi ya juu, kama magazeti ya kurefusha maisha amri, kwamba inachukua pembejeo, na prints chochote tunataka. Hivyo taarifa sasa mfano kwamba itaanza kujitokeza. Paren wazi, Paren karibu ni inaonekana kumuunga pembejeo, na kisha Mimi naona mara mbili ananukuu juu ya pande zote mbili. Bado kuna weird backslash n, lakini hopefully sasa wewe Unaweza kuanza kwa taswira angalau kwamba printf ni kuchukua katika baadhi ya fomu ya pembejeo. Si kama kirafiki kama mtumiaji Scratch, lakini ni tu kama baada plugged katika baadhi thamani huko. Haki zote, sasa hebu kweli kufanya kitu na hili. Hivyo baadhi yenu wanaweza kujua kutoka kuwa shopped darasa kabla, aliongea na marafiki, kwamba kwa miaka mingi tulikuwa kitu kuitwa Appliance CS50. Hii ilikuwa ni mrefu kuelezea teknolojia aitwaye mashine virtual, ambayo ni kipande cha programu kwamba yako watangulizi ingekuwa kushusha mbali tovuti kozi ya kwa ajili ya bure. Pia ingekuwa kushusha bure kipande ya programu inayoitwa hypervisor, kitu kinachoitwa kama VMware, au VirtualBox, au idadi yoyote ya zana nyingine, na upande wao wa Mac au PC au chochote kompyuta walikuwa na mwaka jana na katika miaka ya nyuma, wao ingekuwa bonyeza mara mbili icon kuendesha programu hii aitwaye hypervisor. Na kisha ndani ya mpango huo wangeweza kufungua appliance CS50. Na athari ni kwamba kama mtangulizi wa kwako alikuwa akikimbia Mac OS au Madirisha, yeye au yeye kisha hatimaye alikuwa dirisha mpya juu yao screen mbio mazingira CS50. Hivyo mashine virtual inakuwezesha kuendesha moja mfumo wa uendeshaji ndani ya jingine, na kwamba ni nini hasa tulivyofanya. Katika zaidi ya shaka sisi kutumia mfumo wa uendeshaji kuitwa Linux, hasa Ubuntu Linux, na hii Ni njia nzuri sana katika kipindi cha miaka ya kuhakikisha kuwa kila mtu katika mwendo tu alikuwa mazingira sawa. Na unaweza kutumia aina yoyote ya kompyuta kwamba kweli wanataka. Miongoni mwa downsides, ingawa, walikuwa ni kama gigabytes mbili kwa kushusha jambo hili. Haikuwa lazima kufanya kazi vizuri juu ya super watu ambao kompyuta kwamba labda tu alikuwa GIG au zaidi ya RAM, au la gigahertz wengi mno wa CPU kasi, na hivyo mwaka huu, kwa huu na sababu nyingine, na sisi wamekuwa kipindi cha mpito kwa mazingira haya. Kinachojulikana CS50 IDE, ambayo ni kulingana na wazi chanzo programu, na jukwaa mkono kwamba kampuni inayoitwa Cloud9 inasaidia katika Ulaya, kwamba inaruhusu yetu kuwa na kimsingi kuwa halisi mazingira kama hicho katika miaka ya nyuma, lakini katika kile kinachoitwa wingu. Kwa hiyo kile ni wingu? Ve pengine clicked icon yake juu ya Mac au PC yako. Ni wingu nini? Yeah? Kidogo nguvu zaidi. Naam. Ni tu rundo la kompyuta mahali pengine kwamba kuhifadhi data na kukimbia programu na kama. Hivyo ni kweli tu kwa neno de jure ya kuelezea [? rentable?] kompyuta wanaoishi mahali pengine. Kwamba, wewe mwenyewe, lakini si lazima uwe. Hivyo wakati data zako, au yako mipango, ni katika wingu, ni njia tu ni juu ya mtu kompyuta mwingine mahali pengine, na si, uwezekano mkubwa, juu yako mbali kimwili au desktop. Na hivyo hiyo ndiyo CS50 IDE sasa ni. Tangu sasa utakuwa kwenda fulani URL ambayo kuanzisha wewe kwa, katika tatizo kuweka 1, baadaye hii wiki, ambayo kisha, juu ya magogo katika, kukupa mazingira haya. Na kiasi kama Scratch alikuwa vikao chache tofauti wanaohusika, hivyo haina IDE CS50 na hasa kwamba. Juu upande wa kushoto hapa, wewe ni kwenda kuona ukoo faili browser. Hivyo yoyote ya mafaili kwamba kuweka katika mazingira haya ni kwenda tu kuwa waliotajwa hapo. Files na folders. Juu hapa hapa, wewe ni kwenda kuona mahali ambapo unaweza kweli kuandika kanuni yako. Awali katika C, baadaye katika mrefu katika PHP na JavaScript, na, pengine kwa ajili ya fainali miradi, Ruby au Java au chatu au idadi yoyote ya lugha ni mkono katika mazingira haya. Siyo wakati wote amefungwa kwa CS50 mahsusi. Na kisha katika kona ya chini hapa, hasa kwa wale vizuri zaidi, una kitu aitwaye dirisha wastaafu. Na dirisha hili terminal inaruhusu wewe kutekeleza amri yoyote kwamba wanataka katika mazingira haya wingu. Ni utapata kufunga programu yoyote ya ziada kwamba unataka kwa kuwa kile kinachoitwa mizizi, au msimamizi marupurupu. Hivyo kwa maneno mengine, hata kama hii ni hatimaye mwenyeji katika wingu, na hata kama tuna rahisi ni kwa kiasi fulani na msingi, literally kuanzisha, shukrani kwa Dan Armendáriz, na Dino, na Dan Bradley katika timu CS50 juu ya kipindi cha miezi mingi, chini ya starehe hali ya kuwa ngozi mengi ya Awali utata usumbufu. Kila kitu hapo ipo kwa ajili kuwakilisha kawaida mfumo wa kompyuta kwamba unaweza kutumia katika ulimwengu wa kweli. Hivyo nini hii yote ina maana, na nini tunaweza kweli kufanya hivyo? Hebu kweli kuchukua Peek katika mpango huo. Hivyo nina kwenda kufungua mazingira halisi hapa, ambayo ni haki yetu Chrome browser, ambayo inaweza kuwa Firefox, inaweza kuwa Internet Explorer, au baadhi browser nyingine kama vile. Ni kamili kupimwa hapa kwa muda. Na mimi nataka kwa kweli tease mbali nini mpango huu ilikuwa. Hivyo hebu tuangalie, kwa zooming katika juu Juu, saa nini mimi, na jinsi I got hapa. Hivyo hapa ni wale halisi mistari hiyo ya kificho. Hivyo hii ni kauli, kama wewe zilizotajwa hapo awali. Kazi ambayo anasema hello. Braces curly, juu ya mstari nne na mstari sita, labda aina ya wafunika kuwa mstari wa kuihusisha na kiini cha mpango wangu. Hivyo kweli, hii kuu keyword, hiyo ni hadi pale kwenye mstari tatu, unaweza kufikiria kwamba kama sawa ya kwamba wakati kijani bendera clicked, kuzuia katika Scratch. Hivyo kwamba wote sisi hapa, ni wakati kijani bendera clicked, magazeti, au kusema, hujambo dunia. Lakini hebu kuchukua nadhani, sasa, katika kile kwanza, zaidi arcane mstari huu, ni. Mkali ni pamoja na, wazi angled mabano, kiwango I / O nukta h, karibu angled bracket. Je, ni kwamba labda kufanya, hasa kama wameweza iliyowekwa kabla katika lugha nyingine. Yeah? Watazamaji: [inaudible] DAVID J. Malan: Yeah. Hasa. Hivyo hii ni kutoa huduma ya maktaba, hivyo kusema, ya kazi. Na maktaba ya kazi ni kazi ambayo mtu mwingine aliandika, ama hivi karibuni au muda mrefu uliopita, ili uweze huna kuyapitia tena. Kwa mfano, hatufanyi una kujua, katika mwaka 2015, jinsi ya kuandika kificho kwamba unaweka tabia kwenye screen yangu. Mtu mwingine ina figured kwamba nje na printf kazi ili niweze aina ya kufikirika mbali na kwamba, au safu juu ya yake kanuni, na sasa tu kuchukua nafasi ya kwamba mpango wowote naandika Unaweza magazeti kitu cha screen. Hivyo mstari huu kwanza huko katika hatua moja pamoja na kile kinachoitwa kichwa faili kwa ajili ya maktaba standard. Basi tazama, lugha katika ambayo sisi ni sasa wanafanya kazi alikuwa maktaba kiwango kwa kura ya kazi. Printf ni mmoja wao, na kuwa mstari wa kwanza wa kanuni ina maana nipe upatikanaji wa kazi hizo, ili mimi huna kuyapitia hiyo. Sasa hebu kwenda chini dirisha na kufanya nini hasa mimi hapo awali. Wakati iliyopita, nilipokuwa whizzing kwa njia ya kanuni, kuandika nje kwa mara ya kwanza, Mimi haraka sana typed, kufanya hello. Nini ni kwamba wote kuhusu ingekuwa wewe nadhani? Nini mimi kufanya? Yeah? Kamwe akili. Ni sawa. Naam. Watazamaji: Kuandaa yake. DAVID J. Malan: Yeah. Ilikuwa tu kuandaa yake. Sawa? Hata kama hii ni kabisa usio wa kawaida na wewe, ni pretty Kiingereza kama. Ni hakika si zeros na ndio, hivyo mimi bado haja ya kukimbia kwa njia ya kwamba kinachojulikana mpango, compiler, ambayo inaenda kuchukua ni kama pembejeo na kuzalisha pato. Na angalau, kwa sasa, katika mazingira haya Linux, lakini hii si sharti, hii ni ambapo tutaweza kuanza, wewe kwa ujumla kuingiliana na mifumo ya kompyuta kama hii na kile kinachoitwa mstari amri. Hivyo, pamoja na blinking haraka na keyboard yako, na si sana panya yako, na si hivyo madirisha mengi na icons na menus, badala kila kitu ni textual. Na hata kama hii anahisi, kwa mara ya kwanza mtazamo, labda, kama hatua nyuma, ni kweli mengi zaidi njia ya nguvu na expressive ya kudhibiti kompyuta hasa kama wewe, wewe mwenyewe, kuwa zaidi vizuri kutoka chini. Ni kwenda kuruhusu kufanya mengi mambo zaidi ya yale Microsoft au Apple inaruhusu kufanya na graphical yao ya mfumo wa uendeshaji. Hivyo wakati mimi hit Enter, sasa, hakuna kinachotokea wakati huu kwa sababu inaonekana Mpango hodi ni hadi tarehe. Na ilikuwa ni nini amri Mimi mbio baada ya hapo? Dot kufyeka hodi, na hujambo dunia. Sasa hebu kuchukua hatua kuunga kwa muda tu. Ni zinageuka kuwa kufanya hello ni njia rahisi ya kuandaa mpango huo. Hebu tu kuanzisha kipande kimoja cha jargon, lakini kisha kuondoka kutokana na hilo, tangu ni si yote ya kuvutia kwa madhumuni ya leo. Compiler tunakwenda kuanza kutumia inaitwa Clang, kwa C lugha. Na hii ni mpango kwamba kukimbia tu kama tulivyofanya katika mstari amri huko. Na hivyo kama nataka kukusanya mpango kwamba mimi wameandika katika faili inayoitwa hodi nukta c, mimi literally aina tu Clang hodi c kuingia. Kitu funny ni, kwa sababu za kihistoria, kama si bayana jina la mpango kuwa nataka pato, kama si kutaja jina faili kwa zeros wale na ndio, weird sana Miaka mkataba ilipitishwa iliyopita ambapo waliona aina ya jibu nzuri kwa wakati mmoja, vizuri hebu tu kiholela wito mpango wa kwanza sisi kukusanya dot nje. A anakuja kwanza katika alfabeti. Nje, ni pato. Hivyo sisi kuwaita mpango by default nukta nje. Na hiyo ni nzuri kwa sababu kama nataka kuendesha programu katika fungu hili kwa kuzingatia mazingira, mimi tu aina dot dot kufyeka nje kuingia. Na ingekuwa kukimbia hasa kama kabla. Basi hebu angalia kwamba kweli haraka. Hivyo kama mimi kurejea yangu chanzo kanuni katika CS50 IDE, na mimi badala kufanya hivyo, Clang hodi kitanda c kuingia, ilani kitu inaonekana kutokea, lakini karibu kila mara katika mazingira haya Linux, wakati hakuna kitu kibaya inaonekana kutokea, kwamba ina maana kitu kizuri hasa kilichotokea. Kama huna kuona makosa Ujumbe, kila pengine ni vizuri. Na hakika, kama mimi sasa kufanya dot dot kufyeka nje kuingia, nimekuwa kuendesha programu yangu mmoja. Bado nina mpango hodi kutoka mapema kwa sababu kwa hakika, ni kwenda kuwa hivyo nicer tu aina kufanya badala ya kukumbuka incantations hizi za amri, lakini hebu angalia jinsi sisi inaweza kuboresha juu hii, hata hivyo. Hivyo, hii ni amri kukusanya kificho. Hii ni amri ya kuendesha ulioandaliwa kificho baada ya hapo. Ninawezaje kutaja jina la faili? Vizuri hebu tu kuanzisha moja zaidi ya kipande cha jargon. Wakati uko katika hii Nakala ya msingi mazingira, wewe ni kwenda kutaka kutaja mambo kuitwa hoja mstari amri. Ambayo ni njia tu ya dhana ya kusema, Yaani katika haraka kwamba tweak tabia ya chochote Mpango wewe ni mbio. Hivyo hasa mpango mimi nina kukimbia, kwa kuandika jina Clang, ni mpango ujulikanao Clang. Hivyo hii ni au umri wa shule sawa na mara mbili-kubonyeza juu ya Microsoft Word au icon baadhi programu hiyo. Mimi badala tu kuandika jina lake, lakini katika toleo la amri, Mimi kisha kuwa dash o nafasi hodi hodi nafasi nukta c. Hivyo hata kama wewe sijawahi alicheza katika dunia hii kabla, tu kuchukua nadhani nini haina dash o hodi nini? Au ni nini kuwaambia Clang kufanya nini? Naam. Watazamaji: [inaudible] DAVID J. Malan: Yeah. Ni tu unaweka pato faili la kuwa hodi badala ya sillier nukta nje. Na kwa kweli, hebu jaribu hii. Hivyo kama mimi sasa kufanya, kwanza hebu kufanya hivyo, r m hodi. Hiyo ni kuondoa. Na itakuja kusema kuondoa faili ya kawaida hodi, ambayo ni usiokuwa arcane, lakini ni tu njia unataka kufuta faili, na mimi aina y kwa ndiyo. Na taarifa, kama ungekuwa glancing juu kushoto, haikuwa kutoweka kutoka huko. Napenda sasa kufanya Clang dash o, na Mimi nina kwenda mbele na kufanya hello, katika mechi zote, hodi nukta c. Sasa, kama mimi kufanya dot slash hodi, gani, unatarajia? Labda ni kesi nyeti. Labda ni si. Hebu angalia. Hakuna vile faili au directory. Na tunaweza aina ya kudanganya na tu kuangalia juu kushoto. Nini mimi ni wazi kuokoa mpango kama? Wote kofia hodi. Hivyo kweli, hiyo ni kwenda ili kuleta mabadiliko. Hivyo sasa hujambo dunia ni nyuma. Sasa hii yote ni mzuri na mwema, na wote sana akili-numbing, kwa namna ya kupata bogged chini katika haya maelezo, lakini kuelewa kwao ni nzuri. Kuandika nje hizi inazidi incantations kwa muda mrefu si kwenda kuwa hasa furaha, hivyo watu katika dunia zuliwa mpango mwingine, baadhi ya miaka iliyopita, aitwaye kufanya, kwamba rahisi kabisa utapata aina ya kufanya, jina la mpango unataka kufanya, na kufanya ni smart katika kwamba itakuwa kuangalia katika folder sasa, aka directory, na kama una faili aitwaye hodi nukta c, kuwa ni faili itakuwa kukusanya kwa wewe katika mpango ujulikanao hodi. Hivyo ni njia rahisi sana ya kufanya amri zaidi cryptic kwamba tulifanya mapema. Na sisi kabla ya kimeundwa CS50 IDE kujua kwamba ni lazima kufanya dash o na idadi ya bendera mengine, au hoja mstari amri, kwamba tutaweza kuona kabla ya muda mrefu. Lakini hebu sasa kwa kweli kufanya kitu zaidi ya kuvutia. Kuandika tu nje hujambo dunia yote muda si yote ya kulazimisha. Hivyo basi mimi kwenda mbele na mabadiliko mpango huu na kusema, hello Daudi. Sasa mimi nina kwenda chini hapa. Mimi nina kwenda mbele na kufanya kufanya hello. Na tena sasa wewe ni kuona kufanya ni kuonyesha wewe tena mlolongo wa amri kwamba ni kufanya kwa sababu tumekuwa kabla ya kimeundwa kwa njia hiyo, lakini sisi haja ya wasiwasi kwa sasa nini ni kufanya mengine kuliko ilivyo kuandaa nukta kufyeka hello, hujambo dunia. Nini mbaya? Naam. Watazamaji: [inaudible] DAVID J. Malan: Ndiyo. Hivyo, Noobie kosa. Mimi taarifa hii ni super hila, lakini kinyota hapa, katika tabo, tu ina maana wewe si kuokolewa, na browsers na programu nyingine kufanya hivyo wakati mwingine. Hivyo kudhibiti s au amri s lazima kuokoa yake. Sasa basi mimi kwenda mbele na re-kukimbia mpango. Recompiled. Haki, hivyo ni mchakato hatua mbalimbali. Hakuna hata mmoja ambayo ni hasa tata, lakini wakati wowote sisi mabadiliko ya faili, tunahitaji mabadiliko kusababisha zeros na ndio, na dot slash hodi. Wow. Hivyo hii ni aghali sana kwamba sisi tu kuchapishwa hii. Hebu kufanya mambo a kidogo nguvu zaidi, sasa. Naam ni zamu nje, kwamba kama Mwanzo, C inasaidia vigezo. Na zinageuka kama unataka kuwa na kutofautiana kwamba maduka, si idadi kama sisi kawaida alivyofanya kwa Scratch, lakini kama neno, au a maneno, au jina, wewe Unaweza kutaja kutofautiana kuwa ya kamba aina. Hivyo tutaweza kuona zaidi ya hizi katika muda tu, lakini zinageuka kuwa C, na mengi ya lugha kama hayo, na aina maalum sana ya vigezo. Siyo tu kama algebra, ambapo unaweza kupata x, y, na z na wale ni tu daima idadi, katika lugha ya programu unaweza kuhifadhi idadi, unaweza kuhifadhi wahusika mtu binafsi, unaweza kuhifadhi maneno nzima, ungeweza kuhifadhi picha nzima, mafaili yote ya sauti, na kama. Kwa hiyo, tunahitaji bayana nini aina ya kutofautiana yetu ni. Na kwa mkataba mimi nina kwenda kuwaita yangu s kutofautiana kwa sababu tu ni succinct, na s anasimama kwa kamba. Na kisha mimi nina kwenda kuhifadhi ndani ya kutofautiana hivyo, tu kama na Scratch wakati mimi kutumia kuzuia kuweka, Mimi nina kwenda kutumia operator zoezi katika C, ambayo nicely kutosha ni sawa ishara, lakini ishara sawa gani hii. Ni hatua kitu kutoka haki katika upande wa wa kujieleza wa kushoto. Hivyo nini nimefanya, kuwa wazi katika mstari tano, ni nimekuwa alitangaza kutofautiana. Nimekuwa aliiambia kompyuta, nipe kumbukumbu kwa kutofautiana, kuiita s, na kujua mapema kwamba mimi nina kwenda kuwa na kuweka kamba ndani yake. Na kamba tu mlolongo wa wahusika. Ni neno, au maneno, au aya, lakini ni mlolongo wa wahusika. Siyo namba. Nini kamba Mimi ni kwenda kuwa kuweka katika kwamba kutofautiana? Naam, inaonekana kunukuu unquote, "Hana". Sasa angalia mfano hiyo kujitokeza. Kuna mkono wa kushoto kujieleza. Kuna mkono wa kulia kujieleza ni, kutengwa kwa ishara sawa. Na tu kuchukua nadhani, kama usio wa kawaida hata hivyo, na kile semicolon ni kufanya. Nini ni labda kufanya kwa ajili yetu? Yeah? Watazamaji: [inaudible] DAVID J. Malan: Yeah. Ni kuahirisha tu mstari. Sawa? Kompyuta wanataka kuwa bila kuficha aliiambia, literally, nini cha kufanya. Kama siagi ya karanga na jelly sandwich mfano, kama huna bayana nini hasa unakusudia, inaweza kuachwa kwa hukumu au makosa. Semicolon maana yake, hiyo ni kwa ajili amri hii. Ni kuwa super sahihi, na ni jambo rahisi sana kuondoka mbali. Hivyo sasa mpango huu haionekani kuwa na tabia yoyote tofauti mpaka mimi kufanya hivyo nguvu zaidi. Hivyo badala ya ngumu alivyoweza yangu mwenyewe jina, basi mimi kuweka thamani placeholder. Na zinageuka kuwa, na Mimi najua hili kutoka baada ya kusoma nyaraka, na kutumika kazi kwa miaka, kwamba printf ilikuwa imeundwa kuwa nguvu. Huna kujua mapema nini maneno unataka kuweka ndani yake. Unaweza badala yake kuwa placeholder, kama asilimia s, ambayo ni kwenda kuwaambia kompyuta, kuweka kamba hapa. Ambayo kamba kufanya tunataka kuweka huko? Mapenzi zinageuka kuwa kati ya hizi mabano, ambayo kumbuka, kutenga pembejeo kwa kazi, kama una comma kutengwa orodha ya mambo hapa, sisi kweli kupita katika mbalimbali pembejeo kwa kazi. Hivyo tu kama baadhi Scratch vitalu, waweza si wamecheza pamoja nao kwa miradi yako bado au hata kidogo, baadhi ya vitalu Scratch na pembejeo mbili. Mbili nyeupe masanduku unaweza chapa namba au maneno ndani ya. Hivyo kwa nini C na kazi kama printf ambayo inaweza kuchukua pembejeo hizo mbili. Na tena, hii comma ni kutenganisha yao. Hivyo katika Kiingereza, tena hata kama wewe sijawahi iliyowekwa mbele, na kwamba mantiki printf ni kazi, inachukua pembejeo mbili, moja ambayo ni placeholder, ungefanya matumaini printf ni kwenda kufanya na pembejeo hili? Ni kwenda kusema hello Hana, hopefully. Hivyo kwa kufanya hivyo tunahitaji kuokoa yake. Mimi nina kwenda kuvuta nje. Mimi nina kwenda nyuma chini hapa na kusema, kufanya hello kuingia. Loo. Kitu kibaya, na kwa kweli hii ni balaa kabisa. Nina mistari sita ya kificho na kama mistari 12 ya makosa. Hivyo, kuangalia mbele kwa hili. Hivyo nini kinaendelea hapa? Hivyo utawala bora wa thumb hapa, hasa wakati wewe ni mapya nje, hawapati aliwasihi kwa mambo chini. Kwa kweli, mimi sana kwa makusudi tu scrolled juu kwa sababu mara nyingi sana, kompyuta ni si kwamba mkali wote wa kifaa. Ni kwenda kupata kuchanganyikiwa. Kama anaona jambo moja kwamba haina kuelewa, inaweza makosa mengine mstari wa kanuni kama sahihi, hata kama wao ni kikamilifu faini. Hivyo daima wanataka kufanya kazi Juu chini kupitia makosa. Na admittedly huu ni super arcane kwa sasa. Makosa, matumizi ya Undeclared kitambulisho kamba. Je, I mean kiwango katika? Hakuna, mimi maana kamba. Na ni akionyesha, labda ni typo. Aina ya kama, Spell-kuangalia katika geeky sana njia, lakini sababu hapa, na wewe utakuwa kujua hii tu kwa mazoezi, ni kuwa ni zamu nje kamba kwamba haipo katika C. Kwa kweli, C ni lugha hasa zamani, na ni kiwango cha chini sana, na si gani mengi ya makala kwamba unaweza kuwa mzima na kama una, kwa kweli, iliyowekwa katika Java, kama baadhi ya kuwa, lakini unaweza kufundisha mambo mapya. Na hakika, tumefanya CS50 hii, ingawa ifikapo mwishoni mwa muhula, wote wa magurudumu haya mafunzo itakuwa zimechukuliwa mbali, nini cha kufanya katika hizi michache ya kwanza ya wiki awali ni pia tuna wewe ni pamoja na CS50 nukta h. Ambayo ni header faili. Zaidi juu ya kwamba katika siku zijazo. Ni faili kwamba ina majukumu kwamba tuna yameandikwa kwa ajili yenu. Na miongoni mwa kazi hizo ni kazi kwa ajili ya kupata pembejeo kutoka kwa mtumiaji, kama masharti, na idadi, na idadi halisi, na zaidi. Lakini pia ina njia za mkato chache. Ni amefafanua Boolean kama aina data. C hana kweli au uongo. Lakini tunaweza kuwapa wazo la kweli au uongo kwa njia ya maktaba hii. Na pia hana kamba kujengwa katika mpaka sisi ni pamoja na mstari huu. Hivyo mstari wa kanuni anaelezea compiler, hey, Clang, angalia katika faili hii kwa ujumla rundo la kificho kwamba CS50 ameandika ili mtu yeyote kutumia faili hili unaweza kuchukua kwa nafasi makala wameweza aliongeza. Hivyo sasa napenda kwenda mbele na ya wazi screen, na kama curious Mimi tu kusema kudhibiti l kila wakati kwa wazi screen, au unaweza aina ya wazi. Mimi tu kwenda mbele sasa na aina kufanya hello, na yote ni sawa. Bado pato arcane, lakini siyo ujumbe potofu. Sasa kama mimi kufanya nukta kufyeka hodi, na kama kando, dot slash ni rahisi kufahamika kwa zaidi. Ni njia tu, nukta njia saraka ya sasa. Hivyo kama wameweza milele kutumika DOS, au Linux, Unix au unaweza kuwa amefanya kitu kama cd nukta nukta, ambapo dot dot ina maana kurudi nyuma katika muda, au kurudi nyuma, au juu juu katika saraka yako. Dot tu ina maana ukiangalia katika saraka ya sasa. Nataka hodi, ambayo ni haki hapa. Na hakika, sasa anasema hujambo Hana. Na kama mimi mabadiliko hayo tena kwa Maria, recompile ingekuwa kufanya hello, dot slash hello, mpango anaendelea kubadilisha. Lakini hii bado pretty kijinga mpango. Kama mimi nataka meli mpango huu, au kuwapa rafiki, au kumpa Maria au Hana kwa jambo hilo, hiyo ni nzuri. Siwezi Customize ni kwa wote wawili, lakini ni kamwe kwenda kuwa nguvu. Hawawezi mabadiliko hayo mara moja ni compiled chini katika wale zeros na ndio. Hivyo kile sisi alifanya kitu nadhifu? Nini kama, badala ya ngumu-coding katika mpango jina la mtu huyu, nini kama sisi tu kupata kamba juu ya mahitaji? Hivyo kwa maneno mengine, napenda kufanya hivyo. Mimi nina kwenda recompile mpango huu. Na napenda kuvuta chini sasa. Kufanya hello dot slash hodi. Sasa hakuna kinachojitokeza. Je, tunaweza kupata kujitolea haraka kufanya kitu kutokea? Kuja juu juu. Nini jina lako? Pancho: Pancho. DAVID J. Malan: Pacho? Kuja juu juu. Baada ya kupata hapa, hii ni kwenda kuwa aghali sana, lakini ni zaidi ya kuvutia kuliko mimi kuandika. Kama unataka kwenda mbele na aina yako jina, nilifanya mpango huu kwa ajili yako tu. Aina tu jina lako. Kuingia. Ajabu. Haki wote, asante sana. Pancho: Asante sana. DAVID J. Malan: Sawa. [Makofi] Hiyo ilikuwa ni aina sana. Hapa Go. Je, tufanye nini? Hivyo sisi hatimaye, angalau, alifanya mpango huu wa nguvu. Sasa ni bado hakika kwa kubuni aghali, lakini sisi hatimaye kuwa na uwezo sasa kuandika kificho mapema, kiasi kama waandishi wa printf, na kisha dynamically kukabiliana kujikita katika sisi ni mitupu, ama kwa programu, au kwa binadamu ambaye kweli mazungumzo na mpango huo. Basi hebu kweli sasa kujaribu kufanya chache constructs mengine na kuona kama hatuwezi kufanya mipango wenyewe kisasa zaidi. Basi hebu kwenda mbele na badala ya kuandika hii moja kutoka mwanzo, Mimi nina kwenda katika leo chanzo kanuni na yote haya inapatikana kwenye kozi ya tovuti, na unaweza Drag na kuacha ni katika mazingira yako mwenyewe kuja Ijumaa mara moja tatizo seti 1 anatoa maelekezo, au unaweza kufanya hivyo katika mstari amri kama vizuri, lakini zaidi ya kuja katika p kuweka 1. Hebu angalia nini katika mpango huu hapa aitwaye barabarani, Bafe nukta c. Sasa nimekuwa tayari maoni hivyo, lakini nini mpya? Kwa mtazamo wa kwanza, mstari gani wa kanuni ni mpya kabisa? Pengine si kimsingi usio wa kawaida sasa. Watazamaji: [inaudible] DAVID J. Malan: Yeah, hivyo int x sawa kupata n. Sisi sijawahi kuona yoyote ya hii kabla, lakini int pengine ni ishara kwa aina gani ya kutofautiana, [? kutoka?] integer. Hivyo int kwa integer. Ni tu kuwa zaidi succinct. x ni tu kiholela. x na y na z bado ni pretty busara kwa idadi, lakini kwa ujumla tutaweza kutumia maneno mara moja mipango yetu kupata ngumu zaidi. Kupata int, bila shaka, kiasi kama kupata kamba, pengine ni kwenda kupata int kutoka kwa mtumiaji, na kisha tunakwenda kufanya kitu kimoja na y. Na inaonekana, hata kama hii mstari wa mwisho, 24, inaonekana ngumu zaidi, ni kwenda kusema Jumla ya hii na kwamba ni jambo hili mengine. Na asilimia ilani i pengine inaashiria nini? Ni jukumu gani asilimia i inaonekana kutumika? Ni placeholders tu. Sawa? Asilimia ulikuwa kwa kamba, asilimia i ni kwa integer. Kuna kwenda kuwa asilimia f kwa hatua yaliyo thamani, ambayo ni tu idadi na decimal uhakika. Kwa maneno mengine, idadi halisi. Basi hebu kweli kukusanya hii mpango halisi haraka na kufanya kufanya fira. Whoops. Fursa nzuri. Hivyo taarifa hapa, wakati huu wote user yangu jina akaunti hii ni jharvard. Mimi ni katika CS50 IDE, aka IDE50. Na sasa katika bluu hapa, ni kutaja, lakini kutokana na mazingira, bila ambapo mimi. Na kwa kweli, kama mimi kuvuta hadi juu hapa, taarifa kwamba nina IDE50 na naona neno hili, kama wewe aina ya kugeuza kichwa yako kwa upande, workspace. Kwa kifupi, ukweli kwamba Mimi nina kuona tilde kufyeka workspace ina maana kwamba katika fungu hili msingi amri mazingira, Mimi ni katika maandishi sawa na huu graphical folder hapa. Hivyo wakati mimi kufanya dot slash fira, ni kusema hakuna utawala kufanya lengo fira stop. Sijui nini maana, lakini ni mbaya kwa sababu fulani. Hakuna vile faili au directory ni hata zaidi ya wazi. Ki wapi basi? Kulingana na ambapo mimi clicked kufungua faili ya awali. Ambapo wanaweza kuwa kitu gani? Ni pengine katika chanzo w moja, kwa Jumatano, na Mimi naona ni, kwa kweli, kama mimi kufungua kwamba up. Kuna fira nukta c, lakini katika mazingira haya maandishi yenye makao yake, tena, nina kuwa super wazi. Kama nataka kubadili directories katika chanzo kimoja Jumatano, mimi haja ya aina, cd nafasi kwa chanzo kimoja Jumatano kuingia na sasa mabadiliko yangu ya haraka kwa nipe cue Visual kwamba Nina hakika, mahali pengine katika mazingira yangu, lakini sasa siwezi kufanya kufanya fira, inaonekana kufanya kazi, dot kufyeka fira, nipe integer. Moja. Mbili. Jumla ya kwanza na ya pili ni tatu. Lakini kama mimi si kushirikiana, hebu angalia nini kupata int gani. Nipe integer. Hakuna Jaribu tena. Sawa. Faini. 50. 50. Wote haki. Hivyo hatimaye inashirikiana. Na hiyo ndiyo baadhi ya utendaji kwamba kazi hizi Unaweza wamejenga katika kwa ajili yenu. Hivyo ndani ya utekelezaji ya kupata int, kompyuta nini kujenga kutoka wiki iliyopita pengine katika kuna kumlazimisha tabia hii ya Jaribu tena, Jaribu tena, jaribu tena? Naam, kuna pengine baadhi ya aina ya kitanzi. Ni kwenda kuangalia syntactically tofauti na vitalu Scratch wa, lakini hiyo ni kweli nini ndani ya faili. Na katika wiki chache wakati tutaweza kweli kuangalia maktaba CS50 kama kwa nini ndani, lakini kuna kitanzi kuweka hasa kwamba. Hebu kucheza silly kidogo mchezo hapa na faili hii. Hali sifuri nukta c. Tunakwenda tu kwa ujumla kuanza kuhesabu katika sifuri. Na mimi kuweka scrolling uliopita baadhi ya mambo juu. Katika bluu hapa, mipaka na kila ya nyota hizi na mikwaju, wale ambao mpango kabla, hiyo ni nini? Kwa nini sisi kuweka kuruka juu yake? Ni nini? Watazamaji: Ni maoni. DAVID J. Malan: Yeah. Ni tu maoni. Hii ni maoni kwa binadamu kusoma, kwamba kwa upande wetu, inatuambia nini jina la faili ni, aliyeandika hayo, na kile yake, ili huna kusoma kwa njia ya kificho kujua nini faili hili ni yote juu. Ni tu maelezo, lakini functionally ni lisilo na maana. Na siwezi hata kufuta kutoka file yangu na ina athari hakuna. Mistari Juicy ni haya mbili ya kwanza hapa, sasa. int kuu utupu ni sawa ya wakati wetu kijani bendera clicked, hivyo tunakwenda kuondoka kwamba kuwa kwa leo, na tutaweza kurudi, Hatimaye, kama yale int na utupu ni, lakini sasa, taarifa kile nimepata kufanyika hapa pia, unaweza pia, kama una sambamba kutoa maoni, kama una a walidhani unataka kushiriki kuhusu mstari fulani ya kanuni, mkataba katika C ni kufanya kufyeka kufyeka, na maneno kisha chache succinct, si hukumu kamili, ujumla si aya, kwamba tu anaelezea kwa wewe, au yako TF, au wasomaji wengine au wafanyakazi, nini kanuni yako ni kufanya. Hivyo badala ya na kuangalia wakati huu na kudai kutoka mistari tisa na 10, ni nini hii kufanya, katika mstari nane I just kutoa maoni kwa kuuliza mtumiaji kwa integer, kisha sina kufikiri ngumu sana kuhusu nini mistari tisa na 10 ni. Mimi tu kujua kwamba hilo ndilo pamoja re kufanya. Jinsi gani? Naam, hapa ni haraka. Hapa ni kupata ya int. Na kulingana na uliopita tabia, inaonekana kama kupata int ni smart kutosha ili kuhakikisha kuwa binadamu inashirikiana na anatoa ni integer. Lakini sasa tunaona hii. Na hii ni kukumbusha ya Scratch. Mimi kudai kwamba mimi nina kuchambua pembejeo mtumiaji, lakini kwa kiasi fulani inaccurately. Na hii inaonekana katika C ni jinsi sisi kueleza kama mwingine, tawi, uma katika barabara, lakini mimi kusema kiasi fulani inaccurately. Nini mdudu katika mpango huu? Kuhusu zaidi kuunga? Naam. Watazamaji: [inaudible] sifuri. DAVID J. Malan: Yeah. Hivyo kama mimi aina katika sifuri, hebu fikiria hasa kwamba kesi kesi, au kona, kama wewe. Hivyo kama mimi aina katika sifuri, ambayo ya vitalu ni kwenda inaonekana kunyakua hiyo? Kama au pengine? Kingine, na ni kwenda kusema, wewe ilichukua namba hasi. Na hakika, sifuri si walidhani kuwa chanya au hasi, na hivyo kwamba itakuwa kimakosa. Hiyo itakuwa mdudu. Hivyo ni jinsi gani tunaweza kurekebisha hili? Mtu ambaye hajawahi iliyowekwa mbele? Je, want-- Watazamaji: [inaudible] DAVID J. Malan: retracting? Watazamaji: [inaudible] DAVID J. Malan: Oh, una? Mtu ambaye hajawahi iliyowekwa mbele. Wanataka kujaribu mkono wako katika hivyo, katika shati nyekundu? Kuja juu juu. Oh yeah, kuja juu juu, kama huna akili. Hivyo kamwe baada iliyowekwa kabla, nini jina lako? LAUREN: Lauren. DAVID J. Malan: Lauren, sawa. Hivyo kurekebisha mdudu hii kwa ajili yetu. Umefanya hawajaona C, labda, na pengine hakuna lugha nyingine. Hivyo kurekebisha mpango huu kwa ajili yetu. Vyema kukutana na ya. Hakuna shinikizo. LAUREN: Naam. DAVID J. Malan: Lakini tena, kama hii kamari huenda kulingana na mpango, takeaway hapa mapenzi kuwa, tu tena, kuanza taarifa mwelekeo na infer kutoka syntax zilizopo jinsi mwingine unaweza kueleza mwenyewe, pun hakuna lengo, ili kukamata baadhi ya mazingira ya ziada. Hivyo sisi ni kusema mwingine kama. printf, nzuri. Na taarifa kwa CS50 IDE, na frankly-- IDE anasimama kwa Integrated Maendeleo ya Mazingira. Ni tu njia dhana ya kusema programu ambayo husaidia mpango. Ni gani user kirafiki mambo kama wakati aina mabano moja, ni moja kwa moja inakupa mmoja. Dhulma kuwa kwamba wewe ni hatimaye kwenda kutaka aina hiyo, na pia anafanya hivyo kwa quotes. Hivyo mimi kama mstari 23. 99% ya njia pale. Mtu unataka chime katika na ncha? Nilisikia semicolon kutoka kwa watazamaji. Nzuri. Hivyo kwamba tamati hiyo. Na sasa, mimi tu na kidogo bumbuazi na mstari 21. Jinsi gani tunataka kueleza hili? Ni swali tunataka kuuliza, unafikiri? Hivyo awali sisi aliuliza swali, kama n ni kubwa kuliko sufuri, kufanya hivyo. Kingine chochote, kufanya hivyo. Kwa hiyo, tunahitaji kuchagua kuuliza swali hapa. Watazamaji: [inaudible] DAVID J. Malan: Mwema. Hivyo kama n sawa na sifuri. Bora. Basi hebu kutulia hapa. Asante sana kwa braving hii. Nikupe kidogo vizuri wanastahili msongo mpira, labda huko. Hivyo sisi ni karibu na hapo. Kwa kweli, Lauren, kama huna akili, napenda kufanya moja tweak hapa, tu kuwa thabiti hata kwa yale tuliona katika Scratch, nini kufanya mimi wanataka kufanya na mistari 21 na 24, tu tena kwa kuzingatia juu ya jinsi sisi alifanya hivyo katika Scratch, labda? Watazamaji: Hoja it up. DAVID J. Malan: Yeah, hoja hiyo juu. Hivyo kingine hali, tatu, au nne, au tano, au mwisho wa tawi, lazima amekwisha kuja baadaye, na kwamba tu kwa mkataba, kwa sababu tu kama wewe. Hivyo mimi haja ya kufanya tweak hii. Na mimi haja ya kuweka yangu curly brace nyuma hapa. Na sasa, mpango huu kukusanya. Sisi ni hivyo karibu, lakini kuna sana, hila sana mdudu. Hebu kuona nini kinatokea. Kwanza, napenda kwenda mbele na kuvuta nje. Mimi nina kwenda kwenda mbele na aina kufanya hali sifuri. Oh, mimi uongo. Sasa compiler ni kweli pretty smart. Na mimi si kweli kuelewa ni ujumbe wa kosa. Kutumia matokeo ya zoezi kama hali bila mabano, ni inaonekana mbaya. Lakini hiyo ina maana gani? Naam tena, kutafuta sampuli katika kificho kwamba tumeona kabla, ni mstari 17 kweli kufanya nini, hata kama Lauren lengo kidogo vinginevyo? Naam. Watazamaji: [inaudible] DAVID J. Malan: Yeah. Basi kumbuka ishara sawa, inaonekana kama tumekuwa kutumika hivyo kabla, sio sawa. Zoezi yake, kutoka kulia kwenda kushoto. Hivyo kujipanga 17 wakati ni sharti, na ni utekelezaji kificho ndani ya mabano, lakini wakati kwamba kanuni executes, kile kinachotokea kwa thamani ya sifuri? Nini kinatokea kwa thamani ya n? Kuwa na sifuri. Hivyo kama n ni kuwa na sifuri, na tena, kama kwa wiki iliyopita, sisi ujumla kusema kwamba sifuri ni ya uongo na moja ni kweli, au ndiyo ni moja na hakuna ni sifuri. Hivyo kweli na uongo, moja na 0. Kama n kama ya mstari 17 imekuwa kutokana na thamani 0, ni sifuri kweli? Hakuna Kwa ufafanuzi, sifuri ni uongo. Hiyo ni mkataba tuko kwenda kung'ang'ania kusonga mbele. Ndivyo mistari 18, 19, na 20 milele kuomba sasa, mantiki? Hawawezi. Hivyo sisi aliuliza swali lakini just si kabisa, na bila kujua hii isipokuwa wameweza kuona hivyo, suluhisho katika C ni wakati unataka kueleza usawa, unaweza kusema sawa sawa. Hivyo ishara sawa tayari alikuwa kutumika juu na kazi, kutoka kulia kwenda kushoto. Sawa sawa na njia sawa. Na kama kweli unataka akili yako kwa kuwa bent, katika JavaScript na PHP, kuna ni sawa sawa na usawa, ambayo maana kitu kingine kabisa, lakini tutaweza kupata kwamba kabla ya muda mrefu. Hivyo hii ni fix rahisi, lakini kutambua super rahisi kufanya makosa hayo, na kisha ajabu na mapambano kwa muda wa dakika, kama si saa moja, kwa nini ni kanuni yangu si utekelezaji kama mimi na nia? Ni kwa sababu wewe hakumwambia ni just nini maana. Ili kwamba ilikuwa karibu kamili, na ilikuwa kubwa kwamba sisi mashaka katika haya kidogo miwili mambo kwa sababu sasa kama sisi kurekebisha yao, na mimi kufanya kufanya hali sifuri dot kufyeka hali sifuri, Ningependa integer tafadhali. Hebu angalia. Hakuna Ni kwenda kunilazimisha kufanya hivyo. Hivyo 42. Mimi ilichukua idadi chanya. Hivyo sasa ni jinsi gani mimi kuthibitisha mpango huu ni sahihi? Kama uko hisabati, huwezi kweli kuthibitisha hili kwa majaribio na makosa, sawa? Unaweza ushahidi si tu kwa mfano, lakini angalau kama programu sisi siyo kwenda kujaribu kuthibitisha kwa sasa kwamba hii ni kweli sahihi, lakini mimi lazima pengine mtihani baadhi ya kesi mwakilishi. Nimekuwa majaribio 42. Mimi naweza mtihani 43. Mimi naweza mtihani 44. Mtihani 45. Sawa? Lakini mimi naweza kufanya hivyo kweli muda mrefu. Nini itakuwa baadhi zaidi kesi ya kuvutia kujaribu? Watazamaji: [inaudible] sifuri. DAVID J. Malan: Hivyo sifuri. Bila ya shaka. Na nzuri, sisi tumepewa ni wakati huu, shukrani kwa Lauren ya kanuni mpya. Nini kesi nyingine nzuri ya kujaribu? Watazamaji: Hasi moja. DAVID J. Malan: Hasi moja, na labda kitu kidogo kubwa, hivyo labda hasi 42, lakini kwa ujumla, wakati kupima programu yako kusonga mbele, uko atataka kufikiria na wewe mwenyewe, kama yale ni msingi kesi tofauti. Na mimi kuthubutu kusema kesi hasi, kesi chanya, na kesi sifuri pretty much raundi hizi nje. Hebu tuangalie lahaja ya ingawa hii. Masharti moja. Hii ni ufumbuzi sahihi hapa, ili utaona mbili na online, kama wewe kutembea kwa njia ya walkthroughs, mapenzi kwa ujumla increment haya stepwise mpaka sisi kupata hasa njia ya haki. Nini kama sisi walitaka kuuliza maswali mawili kwa wakati mmoja? Hebu kufungua hii badala yake. Yasiyo ya kubadili, kwa sababu tutaweza kuona wakati mwingine. Nini mpya syntactically hapa? Mimi sasa kucheza mchezo ambapo kompyuta ni miongoni mwa yangu, nipe integer kati ya moja na 10, na kisha mimi nina hukumu pembejeo mtumiaji. Katika lugha ya Kiingereza, kwa kuzingatia kificho unaweza kuona hapa katika bluu, kile kipindi hiki kufanya? Watazamaji: [inaudible] ilichukua kubwa au ndogo idadi. DAVID J. Malan: Yeah. Ni adjudicating tu kama Mimi ilichukua kubwa, au kati, au idadi ndogo sana kulingana na ufafanuzi holela wa wadogo, wa kati, na kubwa hapa, lakini taarifa syntax hiyo ni mpya ni hii. Hakuna chini ya int au sawa na ishara, au zaidi au sawa kutia saini, ambapo moja ni juu ya nyingine, kwamba unaweza kueleza katika kama Microsoft Word. Hivyo katika lugha ya programu wewe kawaida tu kufanya wahusika wawili, mmoja baada ya mwingine. Na nini hii pengine kuwakilisha, ampersand ampersand. Watazamaji: [inaudible] DAVID J. Malan: Yeah. Ina maana tu na sababu zinageuka kuwa waandishi wa C kutumika ampersand moja, ambayo unaweza kufikiri itakuwa kamili kwa ajili dhana ya na, tayari kutumika juu, hivyo ampersand ampersand kweli Ukamataji kesi sisi kweli wanataka. Basi hebu sasa mashaka katika mambo mawili. Hebu kwenda mbele na kufungua moja. Kitu ambacho ni kidogo inatia mashaka. Kutokuwa sahihi nukta c. Hebu kuanzisha mambo mawili hapa. Moja, taarifa kwamba tunaweza kufanya hisabati, kama tu kama kabla wakati tulivyofanya pamoja ya namba mbili, x na y. Je, ni mpango huu inaonekana kufanya? Nimekuwa si maoni yake bado, na nimekuwa kuletwa asilimia f, lakini mimi haraka alisema mapema asilimia f ina maana hatua floating thamani, ambayo ni idadi halisi. Kitu kwa alisema hatua, ambayo si integer. Unafikiri mpango huu ni kujaribu kuonyesha yangu juu ya screen? Yeah? Watazamaji: matokeo ya moja zaidi ya 10. DAVID J. Malan: Yeah. Nini matokeo ya moja kugawanywa na 10. Haki, kwa sababu kila una pengine mzima akijua kwamba moja zaidi ya 10 ni nini? Yeah, ni tu 10/1 au 0.1. Sawa? Basi hebu angalia nini hii kwa kweli ni. Hivyo basi mimi kwenda mbele na kuokoa hii. Hebu kwenda chini hapa. Kufanya kutokuwa sahihi dot slash kutokuwa sahihi, na ilani, pia, katika mazingira Linux, huna kuwa na aina nje kutokuwa sahihi na kuchukua mchana kutwa. Ni kwa ujumla, kama wewe hit Tab, ni kumaliza mawazo yako kwa ajili yenu, kulingana na maneno ambayo ni inapatikana katika saraka ya sasa. Sawa. Hivyo walikuwa sahihi. Moja kugawanywa na 10 ni, kwa kweli, 0.1. Lakini mimi nina kidogo curious. Na zinageuka printf inasaidia baadhi ya vipengele ambapo unaweza kutaja zaidi ya chaguo-msingi idadi ya pointi alisema. Hivyo kama nataka kuona 10 alisema pointi siwezi kufanya asilimia, kwa placeholder ishara, dot 10 kwa maana, nipe pointi 10 alisema, na kisha bado floating kumweka thamani, na kama kando, ni kitu gani n backslash inaonekana sisi kuendelea kutumia? Ni zinageuka ni ishara kwa mstari mpya. Ni njia wazi sana ya kusema kwa kompyuta, hoja ya mshale ijayo mstari baada ya wewe ni kosa. Na tutaweza kuona nini kinatokea wakati hatuna kufanya hivyo. Napenda recompile kufanya kutokuwa sahihi. Sasa dot kufyeka kutokuwa sahihi. Sawa. Bado haki. Moja kugawanywa na 10. Sasa mimi nina kupata kidogo wadadisi, ingawa. Nini kama mimi kuangalia 20 alisema anasema, recompile, rerun, na kama kando kwa kasi, unaweza pia kutumia up yako na chini mishale kwa kitabu kupitia historia yako, hivyo huna kushika retyping amri hizi, kuingia. Ha. Sikuwa kujifunza kuwa katika daraja ya shule. Haki wote, hivyo basi mimi ona kama 29 maeneo ya nje. Labda ni tu fluke. Labda kompyuta yangu ni kaimu weird. Hiyo si kitu, sawa? Ni kufanya kitu deterministically. Hivyo kufanya kutokuwa sahihi. OK, hiyo ni messed up. Hivyo kile kinachoendelea? Hivyo inaonekana yako mwalimu imekuwa amelazwa na wewe zote za wakati huu kwa sababu ya kuwa tutaona kabla ya muda mrefu. Lakini hebu mwisho na mpango mwingine mmoja. Hii ni programu kidogo mtu aliandika baadhi ya miaka iliyopita, na ni kweli ni sehemu ya mashindano. Hakuna mtu kweli anaandika kificho kama hii, na kama wewe, hii ni stylistically tatizo. Lakini watu kufanya hivyo kwa haki za majisifu. Kuandika utata zaidi kuangalia mpango kwamba hata hivyo hana kitu kuvutia. Na kumbuka Nilidhani tunatarajia kuondoka kwenye leo, kabla Colton ina kututoa hapa, ni kukimbia mpango huu, ambayo, hata katika kutumia tu C katika hii makao maandishi- mazingira, inatupa hii. Dammit. [Kicheko] Kusimama kwa. [Inaudible] c dash l m. Wewe ni kwenda kuona kichawi dua kwamba tutaweza kuona kabla ya muda mrefu. [Inaudible] Sawa. Na sasa unaweza hata kufanya mambo kama haya. Hiyo ni. Kwa CS50 sisi, kuona juu ya Ijumaa. [Music kucheza] [Makofi]