SPIKA 1: zote haki. Karibu tena. Hii ni Wiki Mbili ya CS50, na tuna hivi sasa wamekuwa kutumia kazi lakini kiasi kikubwa kuchukuliwa yao kwa nafasi. Tumekuwa kutumika printf ambayo ina upande wa athari za uchapishaji mambo kwenye screen. Tumekuwa kutumika kupata-int, kupata kuelea. Lakini nini kama kweli wanataka kujenga kazi yako mwenyewe, kama baadhi ya unaweza kuwa tayari imeanza kufanya kwa ajili Tatizo Set Moja, ingawa si madhubuti inahitajika? Naam, hebu kwenda mbele na kupitia upya kwamba tatizo la kuuliza tu kwa mtumiaji majina yao na uchapishaji kitu juu ya screen, lakini jaribu nje ya sababu baadhi ya ya ufanano kwamba tumekuwa kuonekana katika kanuni yetu hivi sasa. Hivyo kwa kuwa mimi maana zifuatazo. Mimi nina kwenda mbele na kujenga mpango mpya, kuwaita tu ni hello.c kama kawaida. Mimi nina kwenda mbele na kutoa mwenyewe ni pamoja na kiwango io.h kwa juu. Mimi naenda pia kutoa mwenyewe preemptively maktaba CS50 ili Mimi si kupata yelled saa na mkusanyaji. Na sasa mimi nina kwenda mbele na kutangaza int, kuu, utupu. Na kisha katika hapa, hii ni wapi nataka kuanza outsource utendaji kwa baadhi ya kazi nyingine kwamba Mimi mwenyewe ni kwenda kuandika lakini hiyo haina sasa zipo. Kwa mfano, tuseme kwamba nilitaka kuandika kazi kwamba inaruhusu mimi magazeti nje hello, comma, na kisha jina baadhi ya mtumiaji. Kuliko kuendelea kufanya printf hello,% s, si ingekuwa nzuri kama kulikuwa tu kazi kuitwa si printf lakini jina magazeti? Hivyo kwa maneno mengine, nataka kuwa na uwezo wa kuandika mpango kwamba haina kidogo kitu kama hiki. Kwanza, mimi nina kwenda kusema printf yako jina, na hivyo kusababisha mtumiaji nipe jina lake, na kisha mimi nina kwenda kutumia kamba ya ukoo kwa kutangaza kamba. Nipe kutofautiana wa kamba aina, simu yake, na kwamba kuhifadhi katika kusababisha ya wito wa kupata kamba. Lakini sasa katika kipindi cha wiki, mimi ingekuwa kiasi fulani tediously kufanyika hello,% s / n. Na kwa maneno mengine, tumeona hii mfano rundo la nyakati, na ni yasiyo na maana kwa sababu kuna mfano moja tu mstari wa kanuni hivyo ni kweli si kubwa mpango wa kuweka kuandika tena. Lakini tuseme kwamba hii mstari wa kanuni kweli walikuwa kuwa mzigo, na siyo moja mstari wa kanuni lakini ni 10 mstari wa kanuni wiki kadhaa kuanzia sasa, na wewe ni kupata tu amechoka ya kuiga na pasting au retyping kwamba kanuni hiyo. Je, si ni kuwa nzuri badala ya kufanya printf hello,% s na kadhalika, si ingekuwa nzuri kama kulikuwa tu kazi kuitwa magazeti jina kwamba inachukua hoja - kwa maneno mengine, inachukua pembejeo - na kisha semicolon. Hivyo kazi kwamba, sivyo kuwa nzuri kama kwamba kuwepo? Basi mimi bila kuwa na wasiwasi kuhusu nini printf ni, nini% s na wote wa haya matatizo makubwa ambayo ni si yote ya kuvutia. Wao ni muhimu. Hivyo magazeti jina, kwa bahati mbaya, hakuwa zuliwa baadhi ya 40 pamoja na miaka iliyopita. Hakuna mtu walidhani kuandika. Lakini hiyo ni uzuri wa kuwa na programu lugha, kama katika Mwanzo unaweza kufafanua vitalu desturi, hivyo katika C na lugha yoyote zaidi, unaweza kufafanua utendaji yako mwenyewe, unaweza unaweza kufafanua majukumu yako mwenyewe. Hivyo hata kama sisi kupata kuu na moja kwa moja kwa ajili ya bure, tunaweza kutangaza kazi yetu wenyewe. Hivyo nina kwenda kufanya baadhi ya chumba hadi hapa juu juu, na mimi nina kwenda kutangaza yangu mwenyewe kazi hiyo ni kwenda kuangalia ajabu kidogo mwanzoni lakini tutaweza kuja nyuma ya hii kabla ya muda mrefu. Mimi nina kwenda kusema batili, na hivyo kuonyesha kazi hii haina kitu, ina athari upande, lakini ni haina kurudi kitu kwangu katika njia ile kupata int au kupata kamba yenyewe gani. Na mimi naenda kuwapa kazi huu jina ya jina magazeti, na mimi nina kwenda bayana kwamba guy hii ni kwenda kuchukua kamba, na mimi nina kwenda kuwaita kwamba kamba jina. Mimi naweza kuiita kitu nataka, lakini mimi unataka kanuni yangu kuwa binafsi kumbukumbu. Kwa maneno mengine, kama moja ya ungekuwa na kufungua faili hii na kusoma, unaweza aina ya tuambia ya kwamba jina pembejeo nini jukumu ni walidhani kucheza. Na sasa chini ya kwamba, mimi naenda kufungua curly brace na kufungwa curly brace, na hivyo taarifa nimekuwa ikifuatiwa huo mfano juu ya mistari minne kupitia saba kama Nimekuwa zifuatazo kwa ajili ya wiki nzuri pamoja na sasa kati, wanasema, mistari tisa na 14 ambayo kutunga kuu. Kwa maneno mengine, magazeti jina ni kazi nyingine. Sasa, mkusanyaji si kwenda kujua kuwaita jambo hili moja kwa moja kwa sababu mimi literally tu zuliwa yake, lakini itakuwa kujua bado kuwaita kuu moja kwa moja, na kisha bila shaka katika mstari 13, Mimi wito kazi yangu mwenyewe. Na kwa sababu nimekuwa alitangaza kwamba kazi hadi kwenye mstari nne kabla kuu, hii ni kwenda kufundisha mkusanyaji nini quote, unquote, "magazeti ya jina" ina maana na nini anatakiwa kufanya. Hivyo mimi nina aina ya kutoa ni desturi mpya kuzuia katika mazingira ya, kusema, Scratch. Hivyo katika hapa, siwezi kuweka kwamba kawaida sana au mara kwa mara mfano wa kanuni ya mimi kuendelea kuandika katika darasa, printf % S hello,% s / n ", - je, nataka kuweka hapa? S? Hivyo nataka kuweka jina katika muktadha huu. Hivyo taarifa kidogo ya dichotomy hapa. Kwa sababu mimi kutangaza kazi yangu mwenyewe na mimi kuwa kiasi fulani kiholela kuitwa ni magazeti jina, na kwa sababu nimekuwa maalum katika mabano kuwa hii kazi inachukua moja hoja, aina ya ambayo ni kamba - hivyo ni neno au maneno au kitu kama hicho - na Mimi nina wito kwamba jina hoja, kwamba maana kutofautiana tu kwamba katika upeo, ili kuzungumza, ni jina. S tu lipo kati ya yale mawili curly braces, bila shaka? Vizuri kweli, kama tu mstari wa 10 kupitia 14, hivyo kama tu Jumatatu hawawezi kutumia S, lakini ninachoweza kufanya ni kupita S katika jina magazeti. Magazeti jina tu hivyo hutokea kuwapa pak, kisawe, jina la utani, kuiita jina, na sasa kutumia katika mstari huu. Hivyo sasa napenda kuokoa hii, zoom nje. Hebu kwenda mbele na kufanya hello. Inaonekana nzuri. Hakuwa mate nje ya makosa yoyote. . / Hodi kuingia. Nini jina langu? Daudi. Hujambo na Daudi. Hivyo si kusisimua kwamba wote, lakini nadhani tu sasa. Sasa una kwamba kiungo hicho kama tulivyofanya katika Scratch kufanya kazi zetu wenyewe. Lakini kuna ni kidogo ya gotcha. Tuseme kwamba sikuwa kweli mawazo hii kwa njia na mimi kwa kweli bila kweli kufikiri juu yake aliandika kwamba kazi ya chini hapa. Anahisi kikamilifu busara. Katika Scratch kuna dhana hakuna ya eneo katika maandiko yako. Unaweza kuweka moja hadi hapa, mmoja hapa juu, moja hadi hapa, na ili kuanza kuangalia messy kidogo kama huna kuweka nje vizuri, lakini haina jambo ambapo kimwili scripts walikuwa kwenye screen. Kwa bahati mbaya katika C - na hii ni tofauti na lugha kama Java na chatu na wengine kwamba unaweza kuwa na mazoea na - kwa bahati mbaya katika C, ili gani jambo kwa sababu ya kuangalia nini kutokea sasa. kazi default kwamba kinaendelea kutekeleza, ni wa kweli, kuu. Kuu ni kwenda kuwaita jina kwenye magazeti line nane, lakini kwa bahati mbaya, mkusanyaji si hata kujua kwamba jina magazeti ipo mpaka anapata kwa mstari 11, ambayo kwa bahati mbaya ni kwenda kuwa kuchelewa mno. Basi hebu kufanya kufanya hello. Na sasa damn, makosa mawili yanayotokana. Hivyo sasa napenda kitabu juu kwa sana kwanza, kama sisi lazima daima kufanya, na taarifa kwamba ni kunguruma saa yangu, "Thabiti tamko la kazi magazeti jina. " Hivyo tumeona ujumbe huu kabla, thabiti ya tangazo la kazi. Lini sisi kuonekana kuwa aina ya kosa? Wakati mimi hawakuwa ni pamoja na maktaba. Kama Nimesahau cs50.h na napenda kupata yelled saa kwa ajili ya kupata kamba au kupata int. Lakini katika kesi hii, magazeti kazi jina si katika maktaba, haki? Ni halisi katika faili hii, hivyo nini kweli tatizo? Vizuri kwa bahati mbaya katika C, inachukua wewe hivyo incredibly halisi kwamba kama wewe wanataka kazi kuitwa magazeti jina kwa zipo, aidha una kutekeleza kwamba kazi saa ya juu sana ya yako kanuni ili ni kupatikana kwa kupunguza kazi, lakini kusema ukweli, kwamba inakuwa sloppy haraka sana. Binafsi, mimi kama kuweka kuu ya kwanza kwa sababu basi ni wazi sana jambo hili mpango gani katika mtazamo wa kwanza. Na pamoja, unaweza kupata ndani ya kona weird kesi ambapo kama x anataka kuwaita y lakini y kukiita x, wewe tu kimwili hawawezi kweli kuweka moja juu ya wengine. Lakini zinageuka katika C, tunaweza kutatua sana tu. Mimi naenda kuweka kidogo kidogo ya nafasi hapa juu, na mimi nina kwenda tu preemptively, angalau kwa kiasi fulani redundantly, kwenda kufundisha mkusanyaji kuwa kuna kazi kuitwa magazeti jina, inachukua kamba, na mimi naenda kuwaita ni jina semicolon. Hivyo hii sasa katika mstari nne, ambayo sisi hawajaona kabla, ni tamko ya jina magazeti kazi, lakini ni tu ahadi kwamba kazi hii itakuwa hatimaye kuelezwa, hatimaye kutekelezwa. Hii sasa siwezi kuondoka peke yake kwa sababu sasa hii ni ufafanuzi, utekelezaji, aina ya maili ya mwisho ya utekelezaji wa hii hasa kazi. Hivyo kusema ukweli ni wajinga, ni annoying, lakini hii ni njia C ni, na ni kwa sababu inachukua wewe sana halisi na, kama kompyuta kusema ukweli lazima, tu haina nini hasa kuwaambia ni kufanya, na ili kuagiza ni muhimu. Hivyo kuendelea kuwa katika akili na tena, kuanza taarifa kujirudia kwa chati. Ni tabia mbaya wewe, kama wewe si tayari, kuanza kukutana na ujumbe kama hii katika mtazamo wa kwanza wanaonekana kabisa fumbo, lakini kama wewe kuanza kuangalia kwa maneno haya muhimu kama "Thabiti tamko," kutaja ya kazi katika kesi hii - na kusema ukweli, wewe wakati mwingine hata kupata kijani kidogo karoti ishara kwamba anakwambia ambapo suala pengine ni - unaweza kuanza kufanya kazi kwa njia yako kwa njia ya bado ghaibu kosa ujumbe. Maswali yoyote juu ya kuandika yako mwenyewe kazi kwa njia hii? Hebu kufanya kitu ambacho zaidi kidogo ya kulazimisha. Badala tu ya kufanya kitu ambayo ina athari upande wa uchapishaji, napenda kwenda mbele na kuokoa faili mpya, na tutaweza wito huu positive.c, hata kama ni kwenda kuwa tofauti kidogo dhidi ya wakati wa mwisho. Na wakati huu, nataka tena kutekeleza mara ya mwisho ya positive.C mfano, ambayo ni nguvu ya mtumiaji kutoa mimi sifuri. Lakini nilikuwa kutumia kupata int mara ya mwisho. Je, si ni kuwa nzuri kama kuna kazi kuitwa kupata int chanya kwamba mimi naweza tu outsource hii kipande ya utendaji na? Hivyo tofauti hapa ni tutaweza kutekeleza kupata int chanya, lakini tofauti na magazeti jina ambalo alikuwa na athari upande - ni hakurudi kitu kwangu kama idadi au kamba - kupata int chanya, bila shaka, kwenda kurudi, hopefully, int chanya. Basi hebu kufanya hili. Pamoja cs50.h, pamoja na kiwango io.h. Int utupu kuu. Na sasa katika hapa, mimi nina kwenda mbele na hebu sema int, simu yake n, sawa na kupata int chanya. Na kama tu kupata int tayari ipo sababu wafanyakazi aliandika, mimi naenda kwa kudhani kwa muda kwamba kupata int chanya lipo, na sasa mimi naenda kwenda mbele na kusema printf, shukrani kwa ajili ya% i / n ", n. Hivyo sasa kama mimi kukusanya mpango huu, nini kinaenda kutokea katika terminal yangu dirisha chini ya screen? Mimi nina kwenda pengine kupata kwamba huo kosa kama kabla. Basi hebu jaribu hii. Kufanya chanya. Na tena, thabiti tamko ya kazi, kupata int chanya. Ili tuweze kutatua hili katika michache ya njia. Mimi nina kwenda kushika ni rahisi na wa haki kuweka tamko wangu hapa juu na kupata chanya int. Mimi haja saini kinachojulikana. saini tu inahusu kwa aesthetics ya mstari wa kwanza wa mpango. Hivyo kile lazima kupata chanya int kurudi? Hivyo int. I mean walau, ingekuwa kurudi kitu kama int chanya, lakini kwamba haipo. Tumekuwa si kuonekana kwamba kati ya data zetu aina, hivyo tuna kukabiliana na ukweli kwamba tuna wachache sana data aina ya kazi. Lakini tunaweza kurudi int na tu kuamini kwamba itakuwa chanya. Ni kwenda kuitwa kupata int chanya. Na sasa vipi kuhusu hoja yake? Gani kuchukua mchango wowote? Je, ni haja yoyote ya pembejeo? Hivyo haina haja ya kujua katika kitu chochote mapema. Kupata kamba hana, kupata int hana. Printf gani - ni mahitaji ya kuwa na baadhi ya pembejeo kupita ndani yake - na jina magazeti zinahitajika baadhi ya pembejeo, lakini kupata int chanya hana. Hivyo nina kwenda kupanga kuwaambia utupu mkusanyaji. Utupu ni kukosekana kwa kitu kingine chochote. Hivyo utupu njia kitu kinaenda ndani ya ya wale mabano, semicolon. Na sasa chini ya faili yangu - na tena, Mimi tu kuwa aina ya anal hapa kuweka kuu saa ya juu, ambayo ni mazoezi mazuri kwa sababu njia hii, wakati wowote wewe au mtu mwingine kufungua faili yako, utendaji ni haki pale. Unaweza kupiga mbizi katika kutoka moja ya mraba. Hivyo sasa mimi naenda duplicate hii, kupata chanya int batili, lakini nina kwenda hit semicolon sasa. Mimi naenda kufungua braces curly, na sasa mimi haja ya kukopa baadhi ya mawazo kutoka Jumatatu. Hivyo kama unakumbuka, sisi alifanya kitu kama kufanya yafuatayo wakati kitu ilikuwa kweli. Na nini mimi? Mimi alifanya kitu kama kutoa mimi integer chanya, kidogo kidogo ya haraka. Mimi naweza kutumia maneno yoyote nataka. Na kisha mimi kutumika nini? Int n sawa na kupata int, hakuna hoja yake. Na taarifa tofauti. Wakati wewe piga kazi, wakati matumizi ya kazi, huna kuweka katika utupu. Wewe tu kufanya hivyo wakati akitangaza kazi, akifundisha mkusanyaji nini ni lazima kutarajia. Hivyo huna haja ya kuweka utupu mwenyewe hapo. Na sasa nini ilikuwa hali yangu? Naam, n si sawa na chanya, lakini hiyo ni Pseudo-code. Hivyo ni jinsi gani mimi kueleza hii zaidi cleanly? Hivyo chini ya au sawa na sifuri. Hivyo tena, taarifa unaweza kufanya kidogo kuliko au sawa na. Hata kama ni mbili tofauti alama, unaweza kufanya hivyo kwa keyboard yako kama vile. Lakini bado kuna mdudu kwamba Mimi Star juu wakati wa mwisho pia. Mimi kutangaza - hasa. Mimi na kutangaza n nje ya kitanzi. Hivyo mimi haja ya kuweka n hapa juu, na mimi si wanataka tena kutangaza hapa nisije kupata kutofautiana mpya. Mimi nataka tu hawawajui thamani katika hapa. Na sasa mimi nina si kabisa kufanyika hapa. Hebu kupata mbele ya mwenyewe na kujifanya mimi nina kufanyika. Kufanya chanya, na sasa kuna makosa mpya. Kudhibiti unafikia mwisho wa mashirika yasiyo ya utupu kazi. Hivyo ujumbe mpya kosa, lakini kama aina ya tease mbali kila aina ya maneno, ni pengine anadokeza nini kibaya. Kudhibiti. Kudhibiti tu ina maana kwa utaratibu wa shughuli katika mpango. kompyuta ni katika kudhibiti na kitu potoka. Hivyo kufikia mwisho wa kazi si batili. Nini kazi ni inaonekana akimaanisha? Nini kazi ni mashirika yasiyo ya utupu? Hivyo kupata int chanya, na kidogo utata katika vizuri kwamba, ni aina ya utupu. Ina vipimo ya batili kwa wake hoja, lakini matokeo yake ni kwenda kuwa ya n aina. Hivyo neno upande wa kushoto ni kinachojulikana kurudi aina. neno juu ya ndani hapa ni hoja sifuri au zaidi kwamba kazi inachukua. Hivyo nini mimi haja ya kufanya nini? Katika hatua hii kanuni yangu, line 21 ambapo haraka blinking sasa ni, mimi kuwa int chanya ndani ya ya kutofautiana kuitwa n. Jinsi gani mimi kuwapa nyuma kuu? Literally. Kurudi n semicolon. Hivyo tu kama Colton akarudi kipande cha karatasi na jibu kwangu na kuacha kwamba kipande cha karatasi katika nyeusi kidogo sanduku juu ya meza, kwa kufanya hivyo katika kanuni, wewe literally kuandika tu, kurudi n, na ni kama kwamba walikuwa Colton kuwapatia mimi kitu kimwili nyuma. Katika kesi hiyo, kinachotokea ni kupata int chanya ni kwenda mkono nyuma nini labda chanya integer kwa nani? Ambapo haina thamani kwamba kuishia? Kwamba mwisho juu katika variable hii, n, na kisha sisi kuendelea na line tisa. Hivyo kwa maneno mengine, katika utaratibu wa shughuli, mpango huu kuanza utekelezaji, na mkusanyaji anatambua, oh, unataka maktaba? Hebu kwenda kunyakua chochote ni ndani ya kwamba. Oh, unataka kiwango IO maktaba? Hebu kwenda kunyakua chochote ni ndani ya kwamba. Je mkusanyaji kusema yenyewe wakati hits nne mstari? Oh, wewe aliahidi kutekeleza kazi kuitwa kupata chanya, lakini tutaweza kupata nyuma na kwamba baadaye, kitu pamoja na wale mistari. Int utupu kuu tu ina maana hapa ni guts ya mpango wangu. Line saba ni brace curly. Line nane ni kusema juu ya kushoto, kutoa mimi bits 32 kwa integer, simu yake n. Upande wa kulia, ni akisema kupata int chanya. Sasa pause hebu kwamba hadithi kwa sababu sasa Mimi si kusonga mshale yangu chini. Mshale yangu sasa inakwenda chini hapa kwa sababu sasa kupata int chanya executes. N int ya kutangazwa. Kufanya yafuatayo. Printf anitiaye sifuri. Kupata int kutoka kwa mtumiaji, kuhifadhi katika n, na labda kufanya hivyo tena na tena. Kitanzi Hii ina maana kwamba kanuni hii ili nitafanya juu na chini kama hii tena na tena, lakini wakati mtumiaji hatimaye inashirikiana na anitiaye chanya int, mimi hit line 21, ambapo kiwango simu ni mitupu nyuma, na ambayo moja lazima mimi kuonyesha sasa? Tisa. Udhibiti, hivyo kusema, anarudi kwa line tisa. Hiyo line kwamba sasa katika malipo. Hivyo kwamba ni ya kinachotokea kila wakati huu chini ya Hood, lakini wakati tumekuwa kutumika kazi kama printf au hata kupata kamba kwamba mtu mwingine aliandika kwa ajili yenu, kudhibiti mara kuwa mitupu kanuni mbali na mtu mwingine mstari na mstari kwa mstari. Ni tu hatukuweza kuona na sisi hakuweza kweli depict katika hii mpango kwa sababu ni katika baadhi ya wengine faili kwenye gari ngumu unbeknownst kwetu. Basi hebu kweli kukusanya na kukimbia hii sasa. Kufanya chanya. Kukusanya, hiyo ni maendeleo. . / Chanya. Nipe sifuri. Hebu kuwa vigumu. Hasi 1. Sifuri. Hebu kuwapa 50. Shukrani kwa ajili ya 50, na hivyo kudhibiti sasa akarudi. Maswali yoyote, basi, juu ya hilo? Yeah? [Inaudible]. Kusema tena. Oh, nzuri swali. Hivyo unaweza taarifa sambamba hapa kwamba Mimi nina aina ya kukata kona juu. Katika mstari wa 12, mimi kusema, kupata int chanya anarudi int, lakini kwa huo mantiki, sasa anasimama kwa kufikiri kwamba katika line sita, mimi kusema kwamba kuu anarudi int, lakini tuna nini sisi kamwe alikuwa katika mojawapo ya mipango yetu? Tumekuwa kamwe alikuwa kutaja ya hii muhimu neno kurudi. Hivyo zinageuka kuwa katika C, angalau version ya hiyo kwamba sisi ni kutumia kufanywa katika 1999, kitaalam, hii ni yanatokea kwa wewe moja kwa moja. Wowote kutekeleza mpango na wewe kutekeleza kazi kuitwa kuu, kwamba kazi ya kurudi sifuri na default kama huna kusema vinginevyo, na sifuri ni mkataba. ulimwengu anarudi sifuri hivyo kuonyesha kwamba wote ni vizuri, ufanisi na kuacha yetu na bilioni nne inawezekana mambo ambayo inaweza kwenda hivyo vibaya kwamba kama sisi kurudi moja, kwamba wapate yanamaanisha kificho kwamba maana hii Jambo potoka. Tungeweza kurudi mbili, ambayo ina maana ya jambo hili nyingine potoka. Tungeweza kurudi bilioni nne, ambayo maana jambo hili nyingine potoka. Na kama wewe sasa kufikiri juu yako mwenyewe PC au Mac, unaweza kukumbuka kuwa wakati mwingine wewe kupata ujumbe wa makosa cryptic kutoka programu ya kwamba wewe ni kutumia, na wakati mwingine ina binadamu kirafiki maelezo, lakini kuna mara nyingi kanuni au idadi kwenye screen? Kama hii haina kuja akili, tu kuweka jicho nje kwa ajili yake. Hiyo ni kawaida nini hawa namba ni akimaanisha. Wao ni pamoja na katika Microsoft Word na programu nyingine ili kwamba kama wewe faili mdudu ripoti na kampuni, unaweza kuwaambia, oh, I got makosa ya simu 45. Na baadhi ya nyuma programu katika kampuni wanaweza kuangalia kuwa hadi katika yake kanuni na kusema, oh, hiyo ni kwa sababu mimi alifanya hii mdudu na kwamba sababu ya mtumiaji got ujumbe huu. Lakini kusema ukweli, ni kidogo tu bughudha na tedious kidogo kuhitimisha kwamba, angalau juu yetu michache ya kwanza ya mipango, hivyo tumekuwa wamekuwa omitting yake. Lakini wakati huu wote kila mmoja wenu kazi kuu ina siri alikuwa na haya ya line moja kwa moja aliongeza kwa ajili yenu na mkusanyaji, tu na mkataba wa kuokoa baadhi ya wakati. [Inaudible]. Huna haja kwa pamoja katika kuu. Hiyo ni sawa. Huna haja ya pamoja ni kama walikuwa utekelezaji wa kazi kama hii. Vinginevyo gorofa kazi nje bila kazi. Lakini katika kuu, siyo lazima. Katika wiki moja au mbili, tutaweza kuanza kupata katika tabia kwamba mara tunataka kuanza akionyesha makosa. Nzuri kwa kweli swali. Hivyo haraka matusi mapumziko kutaja kwamba Ijumaa hii, sisi si kuwa baada ya chakula cha mchana per se, lakini tutaweza kuwa baada ya chakula cha jioni na baadhi ya wanafunzi na wafanyakazi. Kama Ningependa kujiunga na sisi, kujisikia bure kwenda cs50.net/rsvp. 6:00 Ijumaa hii. Nafasi ni, kama siku zote, mdogo, lakini tutaweza kuendelea kufanya haya juu ya karibu kila wiki msingi kama nafasi anaendesha nje wiki hii. Hivyo cliffhanger kwamba sisi kushoto mbali juu ya Jumatatu ilikuwa kwamba masharti unaweza kweli kuwa indexed ndani, ambayo ina maana wewe unaweza kupata katika tabia ya kwanza, pili tabia, tabia ya tatu na kadhalika, kwa sababu unaweza ufanisi kufikiri wa kamba, kama hello, kama kuwa katika kesi hii tano barua ndani ya masanduku. Na unaweza kupata katika kila moja ya hizo masanduku na kile syntax hatukufanya kuanzisha Jumatatu? Wale mabano mraba kwenye keyboard yako. Kwamba tu maana ya kwenda mahali sifuri. Sisi kuanza kuhesabu saa sifuri, hivyo bracket sifuri kunaashiria h, bracket moja kunaashiria e, na kadhalika. Na hivyo wakati wote wakati tumekuwa kutumia masharti na kuandika katika "hello" na "dunia" na mambo mengine katika screen, imekuwa ni kuhifadhiwa katika masanduku kama hii. Na kuchukua nadhani. Nini kila sanduku kuwakilisha kimwili ndani ya kompyuta yako? [Inaudible]. Pole? Wahusika. Hivyo tabia, hakika katika kesi ya masharti, na tabia ni tu nane bits au mmoja Byte. Hivyo pengine ni angalau bila kufafanua ukoo na ukweli kwamba yako kompyuta ina kumbukumbu. Ina aina mbili za kumbukumbu angalau. Moja ni disk ngumu ambapo wewe ila mambo ya kudumu, na kwamba kawaida kubwa hivyo unaweza kuwa na sinema na muziki na kadhalika. Basi una aina nyingine ya kumbukumbu kuitwa RAM, R-A-M, Random Access Kumbukumbu, na hii ni aina ya kumbukumbu kuwa ni kutumika wakati kompyuta yako ni mbio lakini kama wewe kupoteza nguvu au yako betri akifa, kitu ambayo imehifadhiwa katika RAM kutoweka kama kupoteza nguvu kabisa kwa sababu si kuendelea. Wewe kawaida kuwa, siku hizi, GIG yake, wawili gigs, labda zaidi. Na kichwa cha RAM ni kwamba ni kiasi gani sana, kwa kasi zaidi kuliko disks ngumu au hata hali imara anatoa siku hizi, lakini ni kawaida ghali zaidi ili una chini ya hiyo. Hivyo mazungumzo ya leo kweli inahusu na RAM, kwamba aina ya kumbukumbu kwamba ipo tu wakati kuna nguvu kuwa kulishwa ndani ya kompyuta yako. Hivyo wakati wewe aina katika H-E-L-L-O, Kuingia kwenye keyboard, H ni kwenda katika moja Byte ya RAM, E ni kwenda katika mwingine Byte ya RAM, kama ni mapumziko ya neno. Hivyo kukumbuka kile tulikuwa na uwezo kufanya mara ya mwisho ilikuwa hii. Hebu kwenda mbele na kufungua faili kwamba sisi kuitwa string.c, na kukumbuka kwamba inaonekana kidogo kitu kama hiki. Hebu kweli unaendelea nyuma na kubadili ni nini hasa ilikuwa inaonekana kama, urefu wa kamba s. Hivyo kuangalia mpango hapa. Sisi ni pamoja na maktaba CS50 hivyo kwamba tunaweza kutumia kupata kamba. Sisi ni pamoja io.h kiwango ili tuweze kutumia printf. Kwa nini sisi ni pamoja string.h? Hii ilikuwa mpya juu ya Jumatatu. Basi tulitaka kamba urefu. Str leng. Watu aliamua miaka iliyopita, hebu tu kuwa succinct. Badala ya kuiita "string urefu," hebu kuiita "str leng" na basi dunia kwamba takwimu nje, na hivyo kwamba ni nini sisi kupata na string.h. Hii ni ukoo. Hii ni ukoo. Hii ni ukoo. Hii ni kidogo mpya. Katika mstari wa 22 - na tutaweza kurudi na hii, lakini kwa sasa najua - na wewe tu kujua hii kutokana na kuwa na kusoma nyaraka au kama wewe alijua C tayari - kupata kamba wakati mwingine unaweza screw up. Kama mtumiaji ni kweli ushindani au uncooperative na yeye tu haina aina kitu katika keyboard au aina sana katika keyboard kwamba ni overwhelms kumbukumbu ya kompyuta, katika nadharia, kupata kamba inaweza kurudi kitu kingine zaidi ya kamba ya wahusika. Ni inaweza kurudi thamani maalum iitwayo NULL katika mechi zote, N-U-L-L, na hii ni tu kinachojulikana sentinel thamani. Ni thamani maalum kwamba kunaashiria kitu mbaya kilichotokea katika kesi hii. Ni kukosekana kwa kamba. Hivyo null mimi nina kuangalia kwa tu hivyo kwamba, muda mrefu hadithi fupi, na str leng majukumu mengine kwamba kuja na C, kama wanatarajia kamba lakini wewe kupita yao kukosekana kwa kamba, kama wewe kupita yao null, kompyuta au mpango tu ajali ya wazi. Itakuwa hutegemea. Itakuwa kutupa juu ya baadhi ya ujumbe wa kosa. Mambo mabaya kutokea. Hivyo hata kama hii bado ni si vizuri defined - hii kufanya maana zaidi katika wiki au mbili - katika mstari 22, hii ni mfano wa kuangalia binafsi kujihami kosa tu katika kesi moja wakati nje ya milioni kitu kitaenda vibaya, saa angalau mpango wangu si kukwama. Hivyo kama s haina sawa na kitu mbaya, Nina hii kwa kitanzi, na hii ilikuwa ambapo tulikuwa na kwamba wengine mpya kipande cha syntax. Nina kwa kitanzi iterating kutoka sifuri juu hadi urefu wa s. Na kisha hapa, mimi nilikuwa nje ya uchapishaji s bracket i, lakini kwa nini mimi kutumia% c yote ya ghafla badala ya% s hata ingawa s ni kamba? Ni tabia, haki? S ni kamba, lakini s kitu bracket, s mabano i ambapo i ni sifuri au moja au mbili, kwamba ni mtu binafsi tabia katika kamba, na hivyo kwa kwamba, printf anahitaji kuwa na taarifa kwamba ni kweli tabia ya kutarajia. Na kisha kukumbuka, nini hii mpango wa kweli kufanya? Kuchapishwa nje katika nguzo. Yeah, hasa. Ni tu kuchapishwa neno kwamba mimi aina katika safu, tabia moja kwa kila mstari. Basi hebu angalia hii tena. Hivyo kufanya kamba. Imekusanywa OK. . / Kamba. Hebu aina katika H-E-L-L-O, Ingieni, na kweli mimi kupata, moja kwa kila mstari. Hivyo basi mimi kufanya moja optimization hapa. Kama unafikiri kuhusu hilo, hasa kama umefanya iliyowekwa mbele, kuna arguably uzembe katika mstari 24. Kwa maneno mengine, siyo lazima kubuni bora. Moja kwa moja, angalau mara moja kukumbuka kile str leng ni, lakini ni kufanya kitu bubu uwezekano. Nini kinaweza kuwa ni nani? [Inaudible]. Hasa. Ni kuangalia kwa urefu wa s kila wakati hata kama H-E-L-L-O daima kwenda kuwa tano wahusika. Kila wakati kwa njia ya kitanzi hii, tano si kubadilisha. Nipate incrementing i, lakini kile ni urefu wa s juu ya kila iteration ya kitanzi hii? Ni tano, ni tano, ni tano, na lakini hata hivyo mimi kuuliza hii swali tena na tena na tena. Sasa kusema ukweli, kompyuta ni hivyo damn haraka, hakuna mtu kwenda taarifa tofauti katika kesi hii, lakini aina hii ya maskini kubuni maamuzi unaweza kuanza na kuongeza hadi kama mkusanyaji yenyewe haina kujaribu kurekebisha hii kwa ajili yenu ambayo ni kawaida hakutaka, saa angalau katika appliance. Hivyo nina kwenda kufanya hili. Mimi nina kwenda kuongeza koma baada ya kutofautiana yangu ya kwanza, i. Mimi naenda kutoa mwenyewe mwingine kutofautiana, wito ni n, tu kwa mkataba kwa idadi, na kisha mimi nina kwenda hawawajui n thamani ya kamba urefu wa s. Na basi mimi nina kwenda na mabadiliko ya hali yangu kwa kuwa na nini? Mimi nina kwenda na mabadiliko ya hali yangu kwa wakati i ni chini ya n. Hivyo sasa, mara ngapi mimi kuangalia urefu wa s? Mara moja, lakini ni sawa na kuangalia i dhidi ya n tena na tena kwa sababu sasa wale maadili ni kweli si kubadilisha. Sasa kwa ajili ya sasa, tu kujua kwamba wakati wowote piga kazi, kuna kidogo ya Rudia, haitoshi kwa tamaa wewe kweli kutoka milele kutumia kazi, lakini hakika wakati kuna mstari wa kanuni kama kwamba - na mistari ya kupata kuvutia zaidi kabla ya muda mrefu - ambapo kuna nafasi ya kufikiri, kama mimi aina hii ya kanuni, wangapi mara itakuwa ni kutekeleza? Itabidi kuanza kuona baada ya muda utendaji wa programu yako unaweza Hakika mabadiliko. Kwa kweli, moja ya tatizo seti tumekuwa kufanyika katika kipindi cha miaka inahusisha kutekeleza, kama unaweza kukumbuka kutoka wiki sifuri, kusahihisha Spell, lakini Spell kusahihisha hiyo iliyoundwa na kusaidia kamusi ya 150,000 pamoja na maneno kwamba sisi kukupa guys. Wewe ingekuwa kuandika kificho kwamba mizigo maneno hayo ndani ya RAM, hivyo katika masanduku kama tuliona juu ya screen wakati iliyopita, na kisha kwa haraka iwezekanavyo unaweza, unahitaji kuwa na uwezo wa kujibu swali la fomu, ni neno hili misspelled? Ni neno hili misspelled? Ni neno hili misspelled? Na katika kitu kama kwamba kile tumekuwa kufanyika katika kipindi cha miaka ni akageuka ndani, angalau kwa opt-katika misingi ya hiari, ushindani wa kila aina, ambapo wanafunzi ambao kutumia RAM chini na chini muda, wachache CPU mizunguko, kuishia bubbling hadi juu ya kidogo kiongozi wa bodi au cheo kwamba sisi kuweka kwenye Mzee bila shaka ya kama tumekuwa kufanyika katika miaka ya nyuma. Hivyo tena, kabisa hiari, lakini hii anaongea na fursa ya kubuni kwamba ni mbele kwa mara sisi kuanza kujenga atop baadhi ya haya msingi ujenzi wa vitalu. Hivyo basi mimi kwenda nyuma ya mchoro huu kwa muda tu na yatangaza kidogo kitu zaidi. Kweli hii ni kamba, na tumekuwa kuchukuliwa faida ya maktaba chache, kiwango io.h ambayo ina - Printf. Printf, miongoni mwa mambo mengine. cs50.h, ambayo ina kupata int na kupata kamba na kadhalika, string.h, ambayo alikuwa str leng. Lakini zinageuka kuna jingine. Kusema ukweli, kuna kura na kura ya header files kwamba kutangaza kazi kwa ajili ya maktaba, lakini hii ni ctype.h kweli kwenda kuwa fulani faida kwa sababu mimi naenda kwa kwenda mbele na kutekeleza moja nyingine ya mpango hapa. Hebu kwenda mbele na kufungua kitu Mimi aliandika mapema kuitwa capitalize.c, na hebu kuchukua kuangalia jinsi hii matendo. Taarifa kwamba mimi nina kutumia, katika toleo hili ya hayo, tatu ukoo files. Taarifa kwamba katika mstari 18, mimi nina kupata mstari wa maandishi. Ilani katika mstari 21, mimi nina wakidai kwamba kanuni zifuatazo ni kwenda capitalize s, chochote mtumiaji typed katika, na jinsi mimi kufanya hivyo? Naam, mimi nina kuchukua - somo la kujifunza kutoka wakati wa mwisho - Mimi kutangaza i na n na iterating juu ya wahusika katika kamba. Na kisha ni nini hii block ya kanuni ya 24 kupitia katika mstari 27 kufanya katika suala layman? Herufi za chini ya mbili nyuma. Hasa. Kama s mabano i - hivyo kama i-th tabia ya s, ambayo ni mahususi Char katika kamba, ni mkubwa kuliko au sawa na Herufi za chini na - kukumbuka kuwa Ampersand mara mbili tumeni na - na tabia hiyo, s mabano i, ni kidogo kuliko au sawa na Herufi za chini z, kwamba maana yake ni b au au au c nukta nukta nukta au z, ambayo ina maana ni lowercase. Nini nataka kufanya katika kesi hiyo? Naam, siwezi kufanya hivyo kwa kiasi fulani isiyoeleweka kirahisi, lakini hebu tease hii mbali. Mimi naenda kuwaita printf, prints% c sababu nataka kikachapishwa hii tabia kwenye screen. Mimi kisha kwenda kuchukua s mabano i, i-th katika tabia, na kwa nini basi Mimi kufanya hila hii kidogo hapa, Herufi za chini bala mji mkuu wa A? Kile ni kwamba kwenda kutoa mimi, kwa ujumla kuzungumza? [Inaudible]. Hasa. Mimi si kweli kukumbuka - ilikuwa ni 65 kwa ajili ya mji mkuu wa A. mimi si kweli kukumbuka kile Herufi za chini ni, lakini hakuna jambo. kompyuta anajua. Hivyo kwa kusema, Herufi za chini bala mji mkuu wa A, ni weird kuwa subtracting moja Char kutoka mwingine, lakini kile ni chars chini ya Hood? Wao ni idadi tu. Hivyo chochote wale idadi ni, basi kompyuta kumbuka ni kuliko mimi binadamu. Herufi za chini hivyo mji mkuu bala ni anaenda kunipa tofauti. Hutokea kwa kuwa 32, na kwamba itakuwa kesi kwa b lowercase na mji mkuu wa B na kadhalika. Anakaa thabiti, nashiriki. Hivyo mimi nina kimsingi akisema, kuchukua Herufi za chini ya mbili, Ondoa mbali kwamba kiwango tofauti, na kwamba bracket ufanisi mabadiliko s i kutoka Herufi za chini, bila shaka, uppercase, bila wangu kweli ya kuwa na kufikiri kuhusu au kumbuka, nini walikuwa wale idadi kuongelea wakati nane kujitolea alikuja juu ya hatua? Sasa wakati huo huo, katika mwingine, kama si barua lowercase kama ilivyopangwa na mstari wa 24, magazeti ya nje tu. Mimi nataka tu kugusa wahusika kuwa walikuwa kweli awali Herufi za chini. Basi hebu angalia hii. Kufanya capitalize. Imekusanywa, OK. . / Capitalize. Na napenda aina katika H-E-L-L-O katika lowercase, kuingia. Na taarifa kwamba ni waongofu katika herufi kubwa. Basi mimi kufanya hili tena na neno tofauti. Vipi kuhusu D-A-V-I-D na D ya kwanza mtaji kama jina kawaida ni? Kuingia. Taarifa bado ni sahihi. Ni tu outputted kwamba kwanza D bila kubadilika kupitia kwamba mwingine kujenga. Hivyo kuendelea katika akili, basi, michache ya mambo hapa. Moja, kama wewe milele unataka kuangalia mbili hali ya mara moja, unaweza na wao pamoja kama sisi alitabiri. Unaweza kulinganisha wahusika kwa njia hii na ufanisi kutibu wahusika kama idadi, lakini kusema ukweli, hii ni hivyo damn cryptic Mimi kamwe kwenda kukumbuka jinsi ya kuja na hii kutoka mwanzo bila sababu kwa njia hiyo kwa kabisa muda kidogo. Je, si ni kuwa nzuri kama mtu huko nje aliandika kazi kuitwa ni kupunguza kwamba anaweza kujibu kwa ajili yangu kweli au uongo, tabia hii ni lowercase? Vizuri nashiriki, mtu aliandika ctype.h alifanya hasa kwamba. Hebu kwenda hapa na kuongeza ctype kwa c aina, na sasa napenda kwenda chini hapa na rewrite mstari huu kama ifuatavyo. Hivyo kama ni kuitwa ni ya chini, mimi kudai, s bracket i, basi mimi naenda kufuta hizi mistari mbili kabisa. Hivyo sasa mtu mwingine, nina matumaini, aliandika kazi kuitwa ni ya chini, na ni zamu nje walivyofanya na wao alitangaza ni ndani ya ctype.h. Na sasa mimi naenda kuondoka mstari 27 peke yake, mimi naenda kuondoka mstari 31 peke yake, lakini taarifa jinsi gani mimi wameweza minskat juu ya kanuni yangu. Ni sasa safi. Ni chini vigumu kuangalia njia kwa sababu sasa kazi, zaidi ya hayo, ni hivyo ajabu aitwaye tu anafanya nini anasema. Hivyo sasa mimi naenda kuokoa hii. Mimi nina kwenda kuvuta nje. Na kama katika Scratch unaweza kuwa na Booleans, Boolean maadili kweli au uongo, kwamba ni nini hasa ni kupunguza mapato kwa ufanisi. Hebu recompile. Hebu re-run. Na sasa hebu jaribu tena, H-E-L-L-O, kuingia. Hiyo ni nzuri sana. Na kujaribu tena, kuhakikisha mimi hakuwa parafujo kitu juu. Kwamba ni mtaji vilevile. Lakini hii si nzuri ya kutosha kwa sababu chochote ambacho kwamba mimi nina kamwe kwenda kukumbuka isipokuwa mimi kazi kwa njia hiyo kweli makini juu, kusema, karatasi ni mstari huu damn. Je, si ni kuwa nzuri kama kulikuwa na kazi kuitwa kwa juu? Vizuri zinageuka kuna ni katika ctype.h pia. Mimi nina kwenda mbele na aina yake - basi mimi kuleta kwamba line nyuma. Badala ya hii hapa, napenda kwenda mbele na kusema, mbadala kwa ajili ya c% matokeo ya wito wa kazi huu kwa juu juu ya tabia i-th wa s. Na sasa ni kupata taarifa kidogo uwiano. Nina kuweka wimbo wa ngapi mabano nimekuwa kufunguliwa na kufungwa. Hivyo sasa ni hata safi. Sasa mpango huu ni kupata bora na bora iliyoundwa arguably sababu ni kiasi, zaidi someka lakini ni hakuna hebu kusahihisha. Kufanya capitalize. . / Capitalize. H-E-L-L-O. Hebu kukimbia tena, D-A-V-I-D. OK, hivyo bado tuko katika nzuri sura. Lakini sasa kwa juu. Napendekeza kwamba kuna moja zaidi ustaarabu tunaweza kufanya kwamba itakuwa mzuri kweli, kwamba inaweza kweli kaza juu ya kanuni hii na kwa kweli kutupatia tano kati ya tano kwa ajili ya kubuni, kwa mfano. Nini itakuwa nzuri ya kujikwamua? Naam, kuangalia jinsi ya damn muda mrefu hii block ya kanuni ni kufanya kitu rahisi. Sasa kama kando, kama unaweza kuwa na kuonekana katika sehemu super hii iliyopita mwishoni mwa wiki, huna haja madhubuti curly braces wakati wewe tu na moja mstari wa kanuni, hata kama sisi mapendekezo kushika yao ili kwamba inafanya mengi wazi zaidi, kama katika Scratch ya U-umbo vitalu, nini ndani ya tawi. Lakini bila kuwa nzuri kama ya juu, wakipewa pembejeo zake, akageuka ndani uppercase kama siyo, na kile ingekuwa kuwa ya ajabu katika kesi kinyume kama ni tayari uppercase? Tu kupita kwa njia ya na kuondoka peke yake. Hivyo labda ni gani kwamba. Mimi naweza kujaribu na tu matumaini kwamba hana, lakini napenda kuanzisha jambo moja nyingine. Badala ya kutumia hii terminal kujengwa katika dirisha chini hapa, kukumbuka kwamba hii mraba nyeusi icon inakupa kubwa terminal dirisha kwamba naweza full screen kama nataka? Hivyo zinageuka wao ni aina ya oddly jina lake, lakini kuna mambo haya kuitwa mtu kurasa, kurasa mwongozo, mtu kwa ajili ya muda mfupi, na mimi wanaweza kupata haya kwa kuandika mtu - je, nataka na aina? Mtu juu. Na sasa taarifa kama kuna kazi ndani ya kompyuta, katika kesi hii appliance, ambayo ni haki mfumo wa uendeshaji Linux, ni kwenda kunipa kuweka kiasi fulani fumbo la pato, lakini utapata juu ya wakati huo daima ni formatted pretty much vivyo hivyo kuanza kupata kutumika yake. Taarifa juu ya juu, na inaonekana ni sawa nyaraka kwa ajili ya kupunguza. Mtu aliandika kinawafyeka baadhi pembe na kuweka yote kwenye ukurasa mmoja. Kusudi mambo haya 'katika maisha ni kubadili barua kwa juu au lowercase. Taarifa kwamba chini ya Synopsis, ukurasa wa mtu ni kufundisha mimi nini faili nina kwa pamoja kwa kutumia neno hili. Ni kunipa saini kwa ajili ya haya kazi, wawili kati yao, hata ingawa sisi sasa hivi tu huduma ya juu moja. Hapa sasa ni maelezo. Kwa juu waongofu mbili c uppercase kama inawezekana. Bado si kwamba mazingatio, lakini napenda sasa kuangalia chini ya thamani ya kurudi, jambo hiyo ni mitupu nyuma. Hivyo thamani akarudi ni ile ya waongofu mbili au c kama uongofu hakuwa iwezekanavyo. Je, ni c? tabia ya awali. tabia ya awali na tunajua kwamba kwa mara nyingine tena, anakwenda Synopsis, na yeyote aliandika hii kazi tu aliamua kwamba pembejeo na kwa ya juu na ya chini ni tu kiholela kwenda kuitwa c. Wangeweza kuitwa ni zaidi ya kitu wanataka, lakini wao kuitunza rahisi kama c. Hivyo nimekuwa ushauri ukurasa mtu. Hii hukumu reassures kwangu kwamba kama siyo barua lowercase, ni kwenda tu nipe nyuma c, ambayo ni kamilifu, ambayo ina maana mimi wanaweza kujikwamua hali yangu mwingine. Hivyo basi mimi kwenda nyuma gedit, na sasa napenda tu kufanya hivyo. Mimi nina kwenda nakala kauli yangu printf. Mimi nina kwenda mbele na haki ndani ya kwa ajili ya magazeti kitanzi kwamba nje, na kupata kuondoa ya sasa hii yote kama kujenga. Ilikuwa si wazo mbaya, na ilikuwa ni ya kiasi sahihi na thabiti na kila kitu tumekuwa unahubiriwa, lakini si tu muhimu. Haraka kama wewe kutambua baadhi ya maktaba kazi ipo kwamba mtu mwingine aliandika, au labda wewe aliandika mahali pengine katika faili, unaweza kutumia na kwa kweli kuanza kaza juu ya kanuni. Na wakati mimi kusema mambo kama mtindo mzuri, ukweli kwamba mtu huyu aitwaye kazi ya juu, au hapo awali ni chini ni ajabu muhimu kwa sababu wao uko sana maelezo. Wewe si unataka kuwaita kazi yako x na y na z, ambayo sana, kiasi kidogo maana. Maswali yoyote juu ya mfululizo kwamba ya maboresho? Hivyo inatosha kusema moja ya takeaways ni hata kama tatizo lako mwenyewe kuweka - labda tatizo kuweka moja, lakini hakika P kuweka mbili na kuendelea, hata wakati wao uko sahihi siyo lazima maana wao ni kamilifu tu bado au hasa vizuri iliyoundwa. Hiyo ni mhimili mwingine kuanza kufikiri juu. Hivyo hii ilikuwa ndani ya kamba ya yako kumbukumbu ya kompyuta, lakini kama una nzima rundo la wahusika kama H-E-L-L-O ndani ya RAM, na tuseme kwamba katika mpango wako kuwaita kupata kamba mara nyingi kama kwamba wewe kuwaita kupata kamba mara moja, basi kuwaita kupata kamba tena. Vizuri, nini kinaendelea kutokea baada ya muda? Kwa maneno mengine, kama una mstari wa kanuni, pamoja na nje ya mazingira, kama kamba s anapata - hebu kufanya hii. Kamba jina sawa na kupata kamba. Hivyo tuseme kuwa mstari wa kanuni ni maana kuuliza mtumiaji kwa ajili ya jina lake. Line hii ya pili ya kanuni ni maana ya kuuliza mtumiaji kwa ajili ya shule yake, na line hii ya pili, na kadhalika. Tuseme kwamba sisi kuendelea kuuliza mtumiaji kwa ajili ya mwingine na mwingine na mwingine kamba. Wao ni kwenda kukaa katika kumbukumbu wakati huo huo. Moja si kwenda clobber mengine. Shule si overwrite mengine. Lakini pale ambapo kufanya wao wote kuishia katika kumbukumbu? Naam, kama sisi kuanza kuteka kwenye screen, ambayo tunaweza kutumia neno hili hapa kama ubao, kama hii nyeusi Mstatili inawakilisha kompyuta yangu kumbukumbu, mimi nina kwenda kiholela kuanza kugawa hivyo hadi katika viwanja kidogo, kila mmoja ambayo inawakilisha moja Byte ya kumbukumbu. Kusema ukweli, kama una gigabyte ya RAM siku hizi, una ka bilioni ya kumbukumbu katika kompyuta yako, hivyo bilioni ya mraba haya. Hivyo inatosha kusema, hii si kweli kwa wadogo. Lakini tunaweza kuweka kuchora yote haya wazi si kuongeza viwanja, na hii pamoja inawakilisha kompyuta yangu ya kumbukumbu. Sasa tutaweza tu kufanya dot, dot, dot. Hivyo kwa maneno mengine, wakati mimi sasa kuchochea mtumiaji kwa kamba wa kupata kunipa kamba, nini kitatokea? Kama mtumiaji aina katika "hello," kwamba mwisho hadi katika H-E-L-L-O. Lakini tuseme mtumiaji basi aina katika - kweli, mimi lazima kuwa na kosa hujambo kwa sababu sisi ni kuuliza yao kwa majina yao. Basi hebu kwenda nyuma kama naweza kufanya hili. Hivyo kama mimi aina katika D-A-V-I-D kwa ajili ya jina langu, lakini kukumbuka kuwa mstari wa pili wa kanuni ilikuwa kupata kamba tena kupata shule zao. Ambapo ni neno kwamba mtumiaji aina katika kwenda ijayo? Vizuri, labda ni kwenda na kwenda katika H-A-R-V-A-R-D. Hivyo hata ingawa nimekuwa inayotolewa ni kama safu mbili, hii ni kundi zima la ka katika yako kompyuta RAM. Kuna tatizo sasa kwa sababu sasa kama mimi nina kutumia RAM katika hii nzuri sana lakini aina ya njia wasiojua, nini unaweza si inaonekana kutofautisha? Ambapo moja huanza na ambapo moja mwisho, haki? Wao ni aina ya blurring pamoja. Hivyo zinageuka kompyuta haina kufanya hivyo. Basi mimi kwa kweli kitabu nyuma katika wakati wachache wahusika, na badala ya Harvard kwenda mara baada ya jina la mtumiaji, mtumiaji kweli anapata, nyuma ya pazia, tabia maalum kuingizwa kwa kompyuta kwa ajili yake. / 0, inayojulikana kama tabia nul annoyingly kuitwa N-U-L, si N-U-L-L, lakini kuandika ni kama / 0. Ni tu kila bits sifuri ni alama katika kati ya neno la kwanza kwamba mtumiaji typed na ya pili. Hivyo Harvard kweli sasa inaishia kama hii mlolongo wa wahusika na moja zaidi / 0. Hivyo kwa maneno mengine, kwa kuwa na hizi sentinel maadili, nane contiguous sifuri bits, sasa unaweza kuanza kutofautisha tabia moja kutoka nyingine. Hivyo wakati huu wote kile "hello" ni kweli "hello" na / 0, na wakati huo huo, kuna nguvu vizuri sana kuwa kidogo kabisa zaidi RAM ndani ya kompyuta. Basi mimi kufanya jambo moja nyingine sasa. Ni zinageuka kuwa yote ya mraba haya tumekuwa kuchora, wao, ndiyo, masharti, lakini kwa ujumla zaidi, mambo haya ni ya arrays. safu ni tu chunk ya kumbukumbu hiyo ni nyuma kwa nyuma kwa nyuma kwa nyuma, na kwa kawaida wewe kutumia safu kwa njia hii ya nukuu za mraba mabano. Hivyo sisi ni kwenda kuona haya kabisa kidogo baada ya muda, lakini napenda kwenda mbele na kufungua, hebu simu yake ya milele. Na taarifa ya nini tunaweza kufanya na hizi mbinu hiyo, kidogo kidogo zaidi syntax hapa. Hivyo katika mstari wa 17 wa mpango huu - kweli, basi mimi kuendesha programu ya kwanza hivyo tunaweza kuona nini jambo hili gani. Hebu piga kufanya nyakati kukusanya mpango huu. . / Milele. Jinsi watu wengi katika chumba? Kuiita tatu. Umri wa mtu wa kwanza? 18, 19, na 20. Na sasa kiasi fulani ridiculously, mimi tu kuwa alifanya mpango kwamba wale wenye umri watu watatu. Hivyo kuna nafasi wazi kwa baadhi ya hesabu ya furaha hapa. Nashiriki, math ni sahihi. 18 akaenda 19, 19 akaenda hadi 20 na kadhalika. Lakini nini kweli maana ya kuwa unaonyesha hapa ni jinsi sisi ni kuhifadhi wale watu watatu wa milele. Hebu kuvuta saa nini kinachoendelea hapa. Hivyo kwanza, hizi kwanza mistari michache lazima kuwa kupata pretty ukoo. Mimi tu na kusababisha mtumiaji kwa ajili ya idadi ya watu katika chumba. Basi mimi nina kutumia kupata int na kufanya wakati kwa kufanya hivyo tena na tena na tena. Tumeona kwamba mfano kabla, lakini mstari 27 ni mpya na kweli kabisa muhimu, na watakuwa inazidi muhimu. Taarifa kwamba nini tofauti katika mstari wa 27 ni kwamba mimi kuonekana kuwa kutangaza int umri kuitwa, lakini kusubiri. Siyo tu int milele. Kuna haya mabano mraba, ndani ya ambayo ni n. Hivyo n mabano katika muktadha huu, si ndani ya kauli printf hapa lakini katika mstari huu pekee 27, mstari huu ni akisema, nipe n ints, ambayo kila mmoja ni ya int aina. Hivyo hii ni ndoo, hivyo kusema, ya, katika kesi hii, tatu integers nyuma nyuma kwa nyuma ili mimi kwa ufanisi wana vigezo tatu. mbadala, kwa kuwa wazi, itakuwa hii. Kama nilitaka mwanafunzi wa kwanza umri, mimi ili kufanya hii. Kama nilitaka mwanafunzi wa pili umri mimi ili kufanya hii. Kama nilitaka mwanafunzi wa tatu umri, mimi ili kufanya hii. Na mungu apishe tunahitaji kila mtu umri katika chumba hii - I mean, hii ni heck ya mengi ya nakala, kuweka tena na tena na tena. Na pamoja na mara moja mimi kukusanya mpango huu, ikiwa mwanafunzi mwingine anatembea katika zaidi ya nje ya mlango kwamba, sasa namba yangu ya vigezo ni sahihi. Basi nini kizuri kuhusu safu ni kama haraka kama wewe kuanza hisia mwenyewe kuiga na pasting, ni tabia mbaya kwamba si njia bora. safu ni nguvu uwezekano. Sijui mapema jinsi watu wengi ni kwenda kuwa katika chumba, lakini najua mimi haja n yao, na mimi itabidi kufikiri n wakati unakuja. Line hii ya maadili ya sasa ina maana, nipe chunk ya kumbukumbu kwamba inaonekana kama hii ambapo idadi ya masanduku ya juu ya screen ni hutegemea n kwamba mtumiaji typed in Hivyo sasa mapumziko ya mpango huu ni kweli pretty sawa na kile sisi tu alivyofanya na wahusika. Ilani Mimi kwa kitanzi kuanzia katika mstari 30. Hivyo haki baada ya mimi kupata safu, mimi iterate kutoka y sawa na sifuri juu hadi n. Mimi tu kuwa hii printf mazingatio ujumbe kwa kusema tu, nipe umri ya mtu #% i, hivyo namba moja, namba mbili, namba tatu. Na kwa nini mimi kufanya hili? Kusema ukweli, binadamu wanapendelea kuhesabu kutoka moja juu juu ambapo kompyuta wanasayansi, sifuri juu juu. kompyuta wanasayansi si kwenda kutumia aina hii ya mpango, hivyo sisi ni kwenda tu kuanza kuhesabu saa moja kama watu wa kawaida. Na sasa katika mstari 33, taarifa kidogo tofauti kipande cha syntax. umri i-th katika kwamba kutofautiana wa aina safu ni kwenda kupata int. Na sasa mwisho, hii ni hesabu chini hapa. Niliamua katika kitanzi tofauti kudai baadhi ya wakati unapita, na sasa katika hii kitanzi tofauti, hizi mistari nitafanya. mwaka kuanzia sasa, mtu i itakuwa i umri wa miaka, lakini taarifa hii si kutofautiana i. Hii sasa ni% i kwa int. Na taarifa kama placeholder kwanza, mimi kuziba katika i pamoja na 1, hivyo sisi kuhesabu kama kawaida mtu. Na kisha kwa ajili ya thamani ya umri wao, kwa i na umri wa miaka, mimi kuchukua umri bracket i - na kwa nini mimi kufanya pamoja na moja hapa? Wao tu wenye umri. Ni uchaguzi wangu kijinga ya mipango. Wao tu wenye umri wa mwaka mmoja. Mimi naweza aina katika idadi yoyote kwamba Mimi kweli wanataka huko. Basi nini kweli yote ya umuhimu hapa? Naam, napenda kwa kweli kitabu nyuma zaidi ya hapa na kuchora picha ya kile uongo mbele. Nini tutaweza kufanya na wetu ujao Tatizo Set mbili ni dabbling katika ulimwengu wa cryptography. Hivyo hii ni kamba ya wahusika, hivyo mlolongo wa chars nyingi, na nini gani hii kusema? Siyo katika toleo online ya slides. Hivyo mimi kudai kwamba hii ni sawa na hii, kijinga tangazo kutoka miaka mingi iliyopita kuwa ili kweli kukumbuka moja ya asili yake. Hivyo hii ni mfano wa encryption au cryptography. Ni zinageuka kuwa kama unataka kweli kutuma habari au kushiriki habari na mtu salama, kama ujumbe kama hii, unaweza kinyang'anyiro barua. Lakini kwa kawaida, maneno ni si scrambled nasibu. Wao ni permuted katika baadhi ya njia au iliyopita katika baadhi ya njia ili - oops. Hiyo ni spoiler furaha kwa wakati ujao. Hivyo unaweza ramani ni nini inaonekana O na Ilani B. kwamba mistari hadi mtaji-busara. Inavyoonekana r inakuwa e. Inavyoonekana F-H-E-R inakuwa S-U-R-E. Hivyo zinageuka kuna ramani, na katika hii kesi kuna kijinga pretty ramani kama kuna mtu ana figured nje? Hii ni kitu kinachoitwa Kuoza 13, Mzunguko 13. Ni stupidest ya encryption taratibu kwa sababu ni literally tu anaongeza 13 kwa kila moja ya barua, kijinga kwa maana kwamba kama wewe tu kuwa na kidogo ya muda wa bure juu ya mikono yako na penseli, au wewe tu nadhani ni kupitia katika kichwa yako, unaweza kujaribu kila nyongeza inawezekana - moja, mbili, tatu, dot, dot, nukta 25 tu mzunguko wa alfabeti nzima, na hatimaye, itabidi kufikiri nini ujumbe huu ni. Hivyo kama wewe alifanya kitu kama hiki katika darasa la shule ya kupita ujumbe kwa yako bora rafiki, kama shule yako daraja mwalimu tu kusoma kwa njia ya ujumbe na brute kulazimishwa ufumbuzi, unaweza kuwa na kujipatia Jibu na kwamba. Sasa bila shaka, katika ulimwengu wa kweli, cryptography ni ya kisasa zaidi. Hii ni kijisehemu cha maandishi kutoka mfumo wa kompyuta ambayo ina majina ya watumiaji na nywila, kama karibu wote ya sisi kufanya, na hii ni nini password yako ili kuangalia kama kama kuhifadhiwa kwenye bidii yako gari lakini katika hali ya uliosimbwa. Hii si tu mzunguko wa barua, B ni A na B ni C. Hii ni kisasa zaidi, lakini inatumia nini ujumla inayojulikana kama ufunguo wa siri cryptography. Picha hii anasema yafuatayo hadithi na icons wachache. Upande wa kushoto, tuna nini Tutamwita Nakala wazi. Katika dunia ya cryptography, wazi Nakala tu ni ujumbe wa awali imeandikwa kwa Kiingereza au Kifaransa au lugha yoyote ile. Kama unataka encrypt, tutaweza kupitisha ni pictorially kupitia kufuli, hivyo baadhi ya aina ya ya algorithm, baadhi ya kazi au mpango kwamba mtu aliandika kwamba scrambles barua hopefully zaidi kuliko tu complicatedly akiongeza 13 kwa kila mmoja wao. Nini kupata nje ya mchakato wa kuwa katika katikati kuna inaitwa cyphertext. Hivyo aina ya neno sexy. Ni tu ina maana ni encrypted toleo la Nakala wazi. Na kama tu una kwamba siri moja, 13 au bala 13, ni wewe na uwezo wa decrypt ujumbe kama hiyo. Hivyo katika Tatizo Kuweka Mbili, miongoni mwa mambo itabidi kufanya kama katika Hacker Toleo, utakuwa na kuandika kanuni na ufa nywila haya, kuhesabia walikuwa nini na jinsi wao walikuwa encrypted, ingawa sisi kufanya kukupa kidogo ya uongozi njiani. Katika toleo la, sisi kuanzisha michache ya ciphers, fiche taratibu, na mtu mmoja aitwaye Kaisari, mmoja kuitwa Vigenere, kwamba bado ni mzunguko ciphers ambapo inakuwa kitu, B inakuwa kitu, lakini una kufanya hivyo programmatically sababu kuna hakika kuwa siri muhimu ya kushiriki ambayo ni kawaida ya simu au Keyword kwamba tu mtumaji na mpokeaji wa haya ujumbe wanapaswa kuelewa. Sasa, hii kweli ina incarnations katika ulimwengu halisi. Hii, kwa mfano, ni kidogo yatima Annie ya siri avkodare pete, na wewe kweli anaweza kutekeleza haya mzunguko ciphers - inakuwa kitu, B inakuwa kitu fulani - na michache ya magurudumu, mmoja upande wa nje, moja juu ya ndani vile kwamba kama mzunguko gurudumu au pete, unaweza kweli kujipanga barua na barua tofauti, kupata kanuni ya siri. Na hivyo kama cliffhanger kwa leo, nilifikiri nini ningependa kufanya ni kidogo ya Throwback kwamba kama kurejea kwenye TV Desemba 24, unaweza kuangalia movie ad nauseum kwa Masaa 24 mfululizo. Lakini kwa leo, mimi itabidi kufungua it up hapa na kutupa dakika mbili tu ya pedagogically husika Krismasi Story na wenzake mdogo aitwaye Ralphie. [Video avspelning] -Ijulikane kwa wote na sundry kwamba Parker Ralph ni hili kuteuliwa mwanachama wa Little Yatima Annie siri mduara na ni haki ya kila heshima na faida zinazotokea lazimishwa. -Saini, Little Yatima Annie. Countersigned, Pierre Andre katika wino. Heshima na faida tayari katika umri wa miaka tisa. [SHOUTING ILIYO RADIO] Kuja juu, hebu kupata tarehe na hayo. Sihitaji jazz kwamba wote kuhusu smugglers na maharamia. -Sikiliza kesho usiku kwa ajili ya kumaliza adventure ya nyeusi pirate meli. Sasa, ni wakati kwa siri Annie ya Ujumbe kwa wanachama wewe ya mduara siri. Kumbuka, watoto. Wanachama tu wa Circle Annie ya siri unaweza Decode Annie ya siri ya ujumbe. Kumbuka, Annie ni kulingana na wewe. Kuweka pini yako B2. Hapa ni ujumbe. 12, 11, 2 - -I am katika mkutano yangu ya kwanza ya siri. -25, 14, 11, 18, 16 - -Pierre ilikuwa katika usiku wa leo kubwa sauti. Mimi naweza kumwambia ujumbe kwamba usiku wa leo alikuwa kweli muhimu. -3, 25. Hiyo ni ujumbe kutoka Annie mwenyewe. Kumbuka, usimwambie mtu yeyote. -90 Sekunde baadaye, mimi niko katika chumba tu katika nyumba ambapo kijana wa tisa wanaweza kukaa katika faragha na Decode. Aha, B. nilikwenda ijayo. E. neno la kwanza ni "kuwa." S. Alikuwa anakuja rahisi sasa. U. 25. Hiyo ni R. -Haya, Ralphie. I gotta go. -I'll kuwa haki ya chini, Ma. Gee whiz. -T. O. Kuwa na uhakika wa. Kuwa na uhakika wa nini? Nini ilikuwa Yatima Kidogo Annie anajaribu kusema nini? Kuwa na uhakika wa nini? -Ralphie, Randy ina got kwenda. Je, tafadhali kuja nje? -All kulia, Ma. Mimi itakuwa haki ya nje. -Mimi nilikuwa kupata karibu na sasa. mvutano ilikuwa ya kutisha. Ilikuwa ni nini? Hatima ya dunia inaweza hutegemea katika mizani. -Ralphie, Randy gotta go. -I'll kuwa haki ya nje kwa ajili ya kelele kubwa. -Karibu huko. Vidole yangu akaruka. Mawazo yangu yalikuwa ni mtego chuma. Kila pore vibrated. Ilikuwa karibu wazi. Ndiyo, ndiyo, ndiyo, ndiyo, ndiyo. -Kuwa na uhakika na kunywa Ovaltine yako. Ovaltine? kibiashara crummy? Mwana wa bitch. [MWISHO video avspelning] SPIKA 1: Hii ni CS50, na kwamba itakuwa Tatizo Set Mbili. Kuona wewe wiki ijayo. SPIKA 2: Wakati ujao CS50, hii hutokea. SPIKA 1: Hivyo moja ya mada hatuna inaonekana katika hivi sasa ni kwamba kazi ya kuyatumia. Sasa, pointer kazi ni tu anwani ya umma kazi, lakini kama ilivyo - mwana wa -