Rob BOWDEN: Hii ni vizuri zaidi sehemu, lakini hiyo haina maana kwamba kama wewe kujisikia kama wewe si vizuri zaidi huwezi kujifunza mambo hapa. Basi hebu kuanza. Je, una slides kwenda haki katika mambo. Mimi kuhusu tu kuchukua hivi sasa? Byte Laptops. ALLISON: Wewe hawataki kuanzisha mwenyewe, Rob? Rob BOWDEN: Oh, mimi nina Rob. Huu ni mwaka wangu wa tano TF-ing CS50. GABRIEL: Mimi nina Gabriel. Mimi nina kichwa TF ya CS50. Mimi nilikuwa TF mwaka jana na mwaka huu. ALLISON: Na mimi nina Alison, na hii ni mwaka wangu wa pili TF-ing CS50. Rob BOWDEN: zote haki, hivyo jambo hili upande wa kushoto, hopefully ve kuonekana kabla. Kama si kwa sababu wewe kushusha ni kwa ajili yako mwenyewe, unapaswa tumeona katika hotuba. Hivyo hii ni CS50 appliance, na yeye alifanya kiasi fulani ya maelezo yake katika hotuba. Lakini kimsingi ni tu wewe ni mbio za uendeshaji mfumo wa uendeshaji ndani ya yako mfumo ili tuweze kukupa programu bila wanaohitaji na wasiwasi, oh ni hii kwenda kufanya kazi juu ya wote Windows na Mac, au kama baadhi ya wewe tayari kutumia Linux, Linux. Ni tu zinatakiwa kuwa kucheza kawaida uwanja ili kila mtu ana sawa mazingira halisi. Hivyo kama una si kupakuliwa hii tayari, unapaswa kushusha ni, kwa sababu wewe ni kwenda haja ni kwa ajili ya kuweka tatizo. Na ni gigabyte mbili download, hivyo inaweza kuchukua muda. On Harvard kutakuwa na kwenda kufunga. Hivyo CS50 appliance. Sasa katika mwanzo, tunakwenda majadiliano juu ya rundo tu ya mstari amri mambo, na hivyo na kwamba, mimi mean kazi katika mazingira haya kidogo zaidi ya hapa. Na taarifa ya mambo yote Nasema haki hapa sasa hivi ni kwenda kufanya kazi kama uko ndani ya terminal ndani ya appliance, au kama wewe ni ndani ya dirisha terminal gedit ndani ya appliance. Hivyo mazingira hayo ni kufanana. Lakini mimi nina kwenda njia tatu. Na taarifa chini hapa hii kidogo IP haki hapa. Hivyo hawana kufanya hivyo, lakini IP hii address-- sasa kama I-- isipokuwa ni unaokolewa na jambo hili. OK, hivyo kwamba IP zaidi katika terminal here-- hivyo terminal hii juu ya hapa ni terminal katika Mac yangu. Hivyo hii ni katika hakuna njia kwa sasa kuhusishwa na appliance wakati wote. Na kama wewe ni juu ya Windows, basi uko kwenda haja ya kushusha jambo mahsusi kwa ajili ya hii, hasa watu huwa kutumia Putty, P-U-T-T-Y. Hivyo nini mimi kwenda kufanya ni aina SSH na kisha IP hiyo. Naam, jharvard katika IP hiyo. Hivyo 192.168.24.220. Hii ujumbe inatisha, kupuuza. Aina tu ndiyo. Hii ni CS50 katika sanduku. Ni anauliza kwa password yako. Na hivyo katika mengi ya haya mazingira ambapo anauliza kwa password, [inaudible]. Sisi tumepewa maswali mengi ambapo inasema siyo kweli kuandika. Haina kuonyesha wahusika wa password kama wewe aina, kama kitu, kwa kipengele usalama, kwa sababu kama mtu ni kuangalia juu ya bega yako na wao kuona nyota nyota nyota nyota, basi wao kujua kwamba password yako ni herufi nne. Hivyo wazo ni kuuliza wewe kwa ajili ya password yako, aina. Ni si kwenda kuonyesha you wahusika, lakini ni kweli kukubali kwao. Katika kesi hiyo, wakati wowote milele kuona password haraka kushughulika na appliance, password itakuwa ni bendera. Hivyo bendera. Na sasa hapa ndani ya hii dirisha kwamba ni katika Mac yangu, Mimi kimsingi kuwa sawa mtazamo halisi kama ndani ya terminal katika appliance. Hivyo huna kufanya hili. Unaweza kufanya kila kitu wanataka ndani ya appliance. Mimi karibu kamwe kweli kufanya chochote katika appliance. Mimi daima karibu kupunguza kwamba na sasa Mimi nina kazi SSH katika appliance. Kama kitu, kama wewe kuwa na kompyuta polepole, unaweza taarifa tofauti. Mimi kufanya hivyo kwa sababu mimi wanapendelea dirisha hili terminal. Ina baadhi ya makala kama Siwezi umegawanyika dirisha, na sasa siwezi SSH katika kupitia appliance. I got mbili SSH kinaendelea kwa mara moja. Kama kompyuta yako ni polepole hasa na wewe ni kufanya kazi katika appliance, na wewe kutambua hii ni kweli laggy, chochote. Huelekea kuwa kasi zaidi kama wewe ni SSH-ed katika. Lakini vinginevyo unaweza kufanya kazi ama njia. Watazamaji: Nini SSH maana? Rob BOWDEN: shells Salama, kitu kama hicho? Nini SSH maana? GABRIEL: ganda Salama. ALLISON: Ni ganda salama tu. Rob BOWDEN: ganda Salama. Ni itifaki ambayo you-- ni itifaki salama, hivyo encrypted. Watu hawawezi Snoop mtandao na kuona nini wewe kusema chochote wewe ni SSH-ed kwa. Na kwa kweli, katika zamani siku ya CS50, hivyo mwaka 2009 nilipokuwa Freshman, njia ambayo kazi katika CS50 seti tatizo, ilikuwa you SSH-ed kwa baadhi server kwamba sisi alitoa wewe kupata, na wewe kazi huko. Hivyo hakuwa na hii graphical appliance. Hakuwa na gedit. Hakuwa na mambo haya yote unaweza kuibua uhakika na click. Alikuwa na kazi katika interface hii. Napendelea kufanya kazi katika interface hii. Hivyo sehemu ya nini tunakwenda kuwa kwenda juu ya haki ya sasa ni kundi la amri kwamba lazima kuanza kupata ukoo na kama wewe kwenda pamoja katika shaka. Na kwa uaminifu, mara moja kupata kutumika kwao, ni ni hivyo kwa kasi zaidi kwa kazi katika mazingira haya kuliko ilivyo kwa kazi na finder, dragging na kubonyeza vitu. Hivyo hapa sisi ni. Sasa mimi tu SSH-ed katika, na hivyo default location-- unaweza kuona baadhi ya amri hizi darasani, lakini tutaweza kwenda juu wote tena. default eneo tuko katika ni directory nyumbani. Na directory, tu neno lingine kwa folder. Hivyo sisi ni katika saraka ya nyumbani. Aina ls, kuorodhesha files katika saraka hii. Dhahiri Mimi umba blah.c mapema. Hivyo tuna directory desktop. Taarifa syntax mwangaza? mwanga bluu mwangaza inaonyesha directory na nyeupe moja kwa moja inaonyesha tu faili wazi. Hivyo kuna ni kwenda kuwa baadhi ya rangi nyingine, unaweza kuona. executable faili pengine ni kwenda kuwa kijani au kitu kama hicho. OK, hivyo sisi ni katika saraka ya nyumbani. Sasa kama nataka kwenda katika tofauti directory, cd ni amri nataka. Hivyo kubadili directory, na kisha kupita jina la directory kwamba unataka kwenda katika. Hivyo hapa tuna chaguzi nne. Siwezi kwenda katika downloads, na sasa tunaona hapa ina updated hii mabano kusema mimi nina katika ~ / downloads. Hivyo ni nini tilde? Ni shorthand kwa nyumbani saraka yako. Hivyo karibu kila kitu wewe kufanya ni kwenda kuwa na heshima kwa nyumbani saraka yako, na pwd ni amri Mimi kutumia mara moja katika mwaka huo tu Prints saraka ya sasa. Na hivyo unaweza kuona hapa kwamba ~ / Downloads kweli resolves kwa / nyumbani / jharvard / downloads. Hivyo / nyumbani / jharvard ni nyumbani directory yangu. Ili tuweze cd dot dot. Sasa dot dot ni directory maalum kwamba daima inahusu directory moja up. Hivyo kama mimi nina katika ~ / downloads, basi cd dot dot ni kwenda kuleta mimi tilde. Nini tunafikiri cd dot dot ni kwenda kuleta mimi sasa? Ni itabidi kuleta mimi / nyumbani. Hivyo tilde na magazeti ya kazi directory, Mimi nina katika sasa / nyumbani / jharvard. moja directory kutoka kwamba, sasa anasema hapa / nyumbani. Sasa cd dot dot. Sasa mimi nina katika saraka mizizi, na unaweza kufanya hivyo tena. Utasikia tu kukaa katika saraka ya mizizi milele. directory mzizi ina rundo zima la mambo ambayo, kama unataka kuangalia katika, unaweza. Kwa mfano, kama mimi kwenda ndani ya bin, ambayo ina binaries wote hawa, kama vile ls, na CD, na wote wa mambo hayo. Hivyo amri hizi haja ya zipo mahali fulani katika mfumo, na ni katika / bin directory. Lakini karibu kila kitu wewe kufanya ni itakuwa kutoka nyumbani saraka yako. Na cd bila hoja yoyote ile, unaweza kusema cd ~, hawana haja ya. cd ni kwenda kuleta kurudi nyumbani saraka yako. Moja ya mwisho moja. cd - ni kwenda kuleta nyuma kwa directory ya mwisho kwamba walikuwa katika. Hivyo mimi tu cd'd mara mbili mfululizo, hivyo yangu directory ya mwisho ilikuwa directory nyumbani. Kama mimi kwenda kufyeka bin, na sasa hebu kwenda juu na ndani ya mtumiaji. Kushiriki mtumiaji. Hebu kwenda kushiriki user. Sasa mimi nina sasa katika sehemu mtumiaji. cd -, nyuma katika bin. Hivyo hii anapata muhimu hasa wakati have-- na kutakuwa na kugeuza. Hivyo kushiriki user, nyuma bin, kushiriki bin. Hivyo hii anapata muhimu. Unaweza kupata mwenyewe kuwa wengi, wengi, wengi Furushi directories. Na unataka kufanya kitu haraka halisi katika orodha ya juu. Kwenda directory kwamba, kufanya mabadiliko na mambo kama hayo, na sasa unataka kwenda nyuma ambapo walikuwa. cd -. Mimi nina daima frustrated wakati mimi kutokea kwa kwenda kwa kuwa mimi directory alitaka kufanya kazi katika. Mimi daima kupata frustrated wakati mimi katika hatua mbili badala ya hatua moja, kwa sababu hiyo ina maana kwamba cd - ni kwenda kuleta katika eneo kwamba kati badala ya ambapo mimi unataka kwenda. Hivyo tunaona mafaili yote orodha. Tunajua jinsi ya kupata kote hadi sasa. Hivyo sasa hebu majadiliano juu ya uhariri files. Hivyo katika kozi hii, wewe ni karibu daima inatarajiwa kutumia gedit. Kama unataka, unaweza kuchukua hatua ya pili na kuanza kujifunza mstari amri Nakala mhariri. Hivyo chaguzi mbalimbali zipo. Na wale ambao pengine itakuwa muhimu kwa wewe, tuna Nano, VIM, na Emacs. Hivyo Nano ni Kompyuta mstari amri mhariri wa maandishi. Hivyo Nano hebu kwenda juu ya blah.c mimi umba mapema. Ni tu hii standard C faili. Na unaweza kuona rundo zima ya mambo kinachoendelea chini ya screen, na inaonekana blah.c ina hii C kanuni. Hivyo katika mhariri hii hasa, nini ni kusema katika bottom-- sasa alama hii kareti, tunaona hii ^ G, ^ X, ^ O. Hivyo kwamba karibu katika kila mazingira kwamba unaweza kuona, unaweza kuona kwamba kareti ishara katika maeneo mengine online, juu ya Stack kufurika, kitu kama hicho. Ni karibu kila mara inahusu kudhibiti. Hivyo exit nataka kufanya Kudhibiti X. Kudhibiti X, exits. Na siwezi kutumia mshale wangu funguo kuzunguka. Taarifa siwezi uhakika na bonyeza kwa urahisi. Unahitaji kutumia mshale yako funguo kuzunguka. Huenda kuna mazingira kwa uhakika na bonyeza. Lakini hebu kufanya baadhi ya mabadiliko. Sasa Kudhibiti X kwenda exit. Ni kwenda kusema ila iliyopita buffer. Sasa haraka, y kwa ndiyo, n kwa no. Kudhibiti C kwa kufuta. Mimi itabidi kusema tu ndiyo. Faili jina kuandika. default ni faili kwamba tayari ni. Hit Enter. OK. Sasa nimekuwa tu mwisho kwamba faili, kuokolewa, na ni iliyopita. Hivyo Nano ni rahisi mhariri wa maandishi kupata kutumika. mbadala ni VIM na Emacs. Wale ni kiwango cha juu wahariri Nakala kuwa na mwinuko sana kujifunza Curve. Hivyo upendeleo wangu binafsi ni VIM. Na ina aina mbalimbali ya chaguzi. Na mara moja kupata kutumika kwa hiyo, utasikia kamwe wanataka kwenda nyingine yoyote mhariri wa maandishi kwa sababu wewe tu mambo mengi inapatikana na wewe katika haya, lakini inachukua kweli muda mrefu kujifunza. Hivyo labda wewe tu unataka kumlazimisha mwenyewe sasa hivi kupata kutumika kwa hiyo, lakini napenda kusema ni thamani yake. Lakini ni vigumu. Na kisha Emacs. Mimi daima mapambano katika Emacs sababu Mimi najua jinsi ya kufanya kitu kabisa. Inavyoonekana Emacs si kwa default imewekwa kwenye appliance. Sisi pengine kuongeza kwamba kama mitambo ya msingi. Mara baada ya kujifunza moja ya Vim au Emacs, kuna hakuna sababu ya kulazimisha milele kujifunza mengine, lakini ni mtindo tofauti kabisa. OK hivyo hiyo ni editing Nakala files. Watazamaji: Kama ungekuwa kukwama katika VIM hivi sasa, ni jinsi gani we-- Rob BOWDEN: Kuna modes mbalimbali katika VIM, na kuna nzima tutorials juu ya kujifunza VIM. Hivyo kama wewe kutokea kwa kuwa katika kuingiza mode ili aina ya maandishi, ambayo unaweza kuingia kwamba kwa njia mbalimbali, lakini i ni jinsi ya kupata katika kuingiza mode. Katika au kupata nje ya yoyote maalum mode kwamba uko, tu Escape. Na wewe tu bash Escape kupata nje ya yoyote njia Furushi katika yako. Tu sawa, sasa mimi nina nyuma katika hali ya kawaida. Na hivyo katika hali ya kawaida, koloni. Unaweza kuona ni kuonekana chini. Na kisha q. Hivyo q itakuwa kuacha kama wameweza alifanya mabadiliko, ambayo I-- kuwa mimi alifanya mabadiliko? Mimi alifanya mabadiliko inaonekana. Hivyo kama wameweza alifanya mabadiliko, ni itabidi wanasema unaweza kuweka alama Moderators. Mimi nina kwenda kumwita bang. Hivyo unaweza kuweka marufuku tu kuacha bila kufanya kitu chochote, au matumbo wq kuokoa na kuacha. Hivyo w kwa ujumla ni kuandika. Hivyo kuandika faili. Siwezi kuandika na kuacha. Au unaweza kuwa tu qx slam, q bang tu kupata nje ya hapo bila kujali ya mabadiliko yoyote ambayo umefanya. Haki wote, hivyo sasa hebu go-- tunaweza kujenga files. Hebu kuanza kuondoa files. Na mimi itabidi kutupa katika moja haraka amri mpya, kugusa. Hivyo kugusa foo. Kugusa bar. Kugusa bazi. Kama mimi ls, sasa tunaona kwamba mafaili ya wale kuwepo. Wao ni tupu kabisa. Hivyo kugusa ni rahisi tu njia ya moja, [inaudible]. Mbili, kitaalam tu hali hivyo, updates timestamps. Hivyo faili yoyote kwamba kujenga ina timestamp yanayohusiana na hayo. Hivyo bazi iliundwa juu ya Septemba 14 katika 16:21. Ni sasa 16:22, hivyo kama Mimi kugusa bazi tena, sisi kuona kwamba bazi ilikuwa zaidi hivi karibuni iliyopita katika 16:22. Lakini vinginevyo mimi kamwe karibu kuangalia timestamps juu ya files. Hivyo kugusa, hapa mimi nina kutumia tu kwa kujenga baadhi ya mafaili ya haraka. Wote haki, hivyo sasa rm ni amri kwamba sisi huduma ya juu hapa. Na tunaweza Rm boo. Kusema kuondoa mara kwa mara tupu faili boo. Na tunaweza aina y, na sasa ni kuondosha. rm bazi. Kuondoa mara kwa mara faili tupu bazi na aina n kwa no. Sasa ni si kuondolewa. Hivyo bar na bazi bado zipo. Foo ni gone. GABRIEL: Weka kuzungumza. Rob BOWDEN: Mkuu. Hivyo ujumbe annoying hapa, kuondoa empty-- ya mara kwa mara unafanya nini huko chini? Kuondoa mara kwa mara ya faili tupu. Hivyo kama hatutaki kuwa bothered na ujumbe huo, tunaweza kutupa katika -f hii bendera, na hivyo hiyo ni nguvu. Na sasa kama mimi Rm -f, ni si kwenda kusema unataka kuondoa faili hii. Ni itabidi kufanya hivyo. Na ls, sijui kuona bar huko tena. Sasa kwa kuwa ni uwezekano hatari amri. Inaelekea si mbaya sana. Tutaweza kuja nyuma katika pili jinsi inaweza kupata kweli hatari. Na hebu kujenga baadhi ya directory temp. mkdir, amri nyingine. Hivyo mkdir ni amri kwamba inafanya directory. Na sasa na ls tunaona hii mwanga nzuri bluu yalionyesha temp directory. Naweza cd ndani ya temp. Na siwezi mkdir foo. cd ndani ya foo. mkdir bar. cd ndani ya bar. Hivyo tunaona tunaweza kupata urahisi katika baadhi ya nesting pretty kirefu. Sasa jinsi gani mimi kuondoa directory? rmdir. Hivyo kama mimi tu moja kwa moja kujaribu rm, kama tulivyofanya na faili mara kwa mara, rm bar ni kwenda kusema hawezi kuondoa bar. Ni directory. Kuna amri maalum kwa ajili ya kuondoa Directories, aina ya. Hivyo rmdir bar. Sasa bar ni gone. OK, hivyo rmdir mimi pretty much kamwe kutumia. Sababu being-- sasa hebu kufanya mara kwa mara ya faili bar katika hapa. Hivyo rmdir boo. rmdir. Alishindwa kuondoa foo. Directory si tupu. Hivyo huwezi kutumia kuondoa dir juu ya directory ambayo ina mambo ndani yake. Hivyo una baadhi ya chaguzi. Unaweza kwenda katika saraka kwamba, kuondoa kila kitu mwenyewe, na kisha kuja nje na rmdir directory. Kwamba ni wazi sauti annoying. Nini kama kuna maelfu ya mafaili katika huko? Vizuri, unaweza Rm *. Tutaweza majadiliano juu ya * katika pili. Ni kimsingi ina maana mambo yote. Lakini bado bora, hivyo rm r. Hivyo rm -r-- katika mengi ya mazingira, r maana kujirudia, ambayo tutaweza majadiliano juu ya kile njia ya kujirudia katika wiki kadhaa. Lakini kimsingi ina maana tembeeni ukamilifu wa orodha hii na kuondoa kila kitu. Hivyo rm r foo ni kwenda kusema kushuka katika orodha foo? Ndiyo. Kuondoa mara kwa mara tupu faili foo / bar? Ndiyo. Kuondoa directory foo? Ndiyo. Hivyo sasa foo na kila kitu ndani yake imekuwa kuondolewa. Sasa kwa kuwa wanaweza kupata hasa annoying when-- hebu kugusa 1, kugusa 2, kugusa 3. Inaweza kuwa na rundo zima la files. Kama nilitaka, mimi inaweza kujenga maelfu ya files katika hapa. Na rm r foo ni kwenda kuwa pretty annoying. Ndiyo, ndiyo, ndiyo, ndiyo, ndiyo, ndiyo. Na mafaili mengi zaidi haraka kuona mara ngapi Napenda kuwa na aina ndiyo. Naam, sisi tu kuona jinsi kabla tunaweza kujikwamua wanaohitaji aina ndiyo, -f. Hivyo mkdir foo cd foo kugusa 1 2 3. OK, hivyo rm -rf foo ni kwenda upofu kuondoa foo kabisa. Hakuna haraka. Hakuna kitu chochote. Foo ni gone. Hivyo mimi huwa kutumia hii amri wakati wote. Alisema, ni amri hatari sana, kwa sababu kama mimi kufanya kitu kama hii, itakuwa si kuchochea wewe. Itakuwa gone. Na kinachotokea pretty mara kwa mara, na hata katika ngazi ya juu CS kozi. Wakati mwingine tutaweza kuona kitu ambapo mtu anasema mimi ajali wetu rm rf-ed nyumba yangu directory na wote wa P kuweka yangu ni gone. Na ni makubwa, lakini hakuna can takataka. Kuna hakuna kuna kitu kwa retrieve. Ni tu gone. Hata mbaya itakuwa kitu kama rm -rf /. Hivyo sisi tu kujadiliwa kwamba directory mizizi. Ni anashikilia yote ya mafaili kwenye mfumo wako. Mambo huwa na kupata pretty messy wakati wewe kuondoa vitu kama ls, na CD, na wale wote. Watazamaji: Nini tofauti kati rm, rf, na rm * Rob BOWDEN: Hivyo rm * - ALLISON: Swali lilikuwa nini Tofauti kati ya rm, rf, na rm *. Rob BOWDEN: Hivyo rm *. Nyota katika njia ujumla yote ya yaliyomo ya directory hii. Kujaribu kufikiri ya nyingine njia ya kuonyesha nyota. Naam, nyota kweli ujumla ina maana mechi yoyote mfano. Hivyo kama nina faili inayoitwa dog1, kugusa dog2, kugusa cat1, kugusa cat2. Hivyo ls * 1 ni kwenda magazeti cat1 na dog1, kwa sababu kwamba nyota zinaweza kujazwa katika with-- mtu anahitaji kuwa huko, lakini nyota inaweza kuwa ama paka au mbwa. Ni kadi ya pori. Hiyo ni neno mimi nina kuangalia kwa. Pori kadi. Au mimi naweza LS mbwa *, na Mimi got kuona dog1, dog2. Hivyo wale ni kuorodhesha files wanaofanana mfano kwamba fulani. Unaweza kutumia ls kwa njia hii. Ls * nyota mechi ya kitu chochote. Hivyo ni kwenda magazeti yote ya yaliyomo ya directory hii tangu wote mechi. Ni si kwenda na magazeti chochote katika directories ngazi ya juu. Kama mimi na ndogo directory, foo, na kugusa 1 2 3-- hivyo sasa kama rm * nyota, kuondoa cat1, cat2, dog1, dog2. Hawezi kuondoa foo. Ni directory. Hivyo nyota expands wote files katika directory. Basi kitaalam rm * ni kama kusema rm cat1, cat2, dog1, dog2, foo. Wakati rm -rf, kitaalam nyota ingekuwa kukamilisha kile tunataka, lakini rm -rf-- kama mimi kwenda nje ya hii directory, rm -rf temp, hiyo ni kwenda kwenda katika temp na recursively kuondoa kila kitu. Hivyo nyota ni tofauti katika kwamba inaeleweka by-- hivyo jambo hili kwamba mimi nina mbio katika, jambo hili kwamba ni kusababisha mimi kwa amri na kisha utekelezaji na kufanya nao, mimi wito huu ganda yangu. Na hivyo ganda hii ni yenyewe mpango. Na kama nilitaka, mimi inaweza kukimbia katika / bin / bash. ganda inaitwa bash. Na sasa sisi taarifa kitu ina kidogo iliyopita, na kwamba kwa sababu ya mazingira yangu kwa ganda ni tofauti. Lakini sasa mimi nina kitaalam mbio ganda ndani ya ganda yangu ya awali, na siwezi exit kwamba ganda, na sasa Mimi nina nyuma yangu ganda ngazi ya juu. Madhumuni ya kusema kwamba is-- nyota. Hivyo nyota ni kitu kueleweka kwa bash. Hivyo rm -rf, -rf bendera ni kueleweka kwa tu rm. Ni anajua kwamba wakati kupita -rf kwamba unataka kwa recursively kuondoa mafaili yote bila kusababisha. nyota ni kitu kueleweka na bash kwamba unaposema rm *, bash si kwenda kusema hey rm *, kuondoa nyota. Bash ni kwenda kusema rm * kuondoa cat1, cat2, dog1, dog2. Ni moja kwa moja kwenda kupanua wote wa files katika directory. Na vile vile tilde ni mwingine ishara kwamba bash anaelewa. Baada ya kusema cd ~, bash expands kwamba nyumbani saraka yako. Maswali mengine hadi sasa? OK hivyo tunakwenda kuanza kwenda haraka. Tab kukamilika. Tu kutupa huko nje. mengi ya watu kufanya si kutambua hili lipo. Hivyo kama mimi aina cd Dow, mimi unataka kwenda katika downloads. Sina haja ya aina nloads. Naweza tu kugonga Tab. Hivyo inatambua kuwa Dow ni kiambishi kwamba hailingani chochote kingine katika orodha hii, hivyo itakuwa kukamilisha kwamba kwa ajili yenu. Sasa siwezi kuingia. Mimi pia kufanya kwamba recursively. Hivyo mkdir foo. Hebu kwenda katika foo. mkdir bar. Hivyo kurejea nyumbani kwangu directory, naona downloads. Sasa kupiga tab tena, moja kwa moja kwenda kujaza katika foo. Ni directory tu. Kupiga tab tena, moja kwa moja kwenda kujaza katika bar. Hivyo sasa mimi nina katika (~ Mkono / foo / bar). Hivyo kukamilika hii tab, wakati mimi got masaa ya ofisi, na mimi nina amesimama juu ya bega mtu, na wao wanaenda rm D-O-W-N-L-O-A-D-S, nina kufa. Tab tu, tab, tab, tab. Hivyo dhahiri kutumika tab. Na vile vile juu na chini, mengi ya watu tu kwamba kilichotokea kwa kamwe hit juu na chini. Utakuwa kwenda kupitia uliopita amri, hivyo kama wewe tu mbio kitu, na unataka kukimbia tena, tu kushikilia juu mpaka kupata hiyo. OK. Hivyo haraka, baadhi ya mambo mengine. Hebu kwenda nyuma katika temp. Hebu kujenga baadhi ya files. Hivyo katika hapa, mimi nina tu kwenda kuorodhesha baadhi ya maneno. mbwa, paka, meow. Hebu kufanya mbwa, samaki. Hivyo sasa rep ni sana amri muhimu kwamba wewe kutumia kutafuta hela files kwa maandishi fulani, na kitaalam unaweza kufanya kweli maneno tata kwa kuwa na mechi. Hivyo hapa, kama mimi grep, na kile mimi nataka kutafuta? Hebu kusema mimi nina kwa ajili ya kutafuta paka, na Nataka kutafuta wote wa files haya. Hivyo ni jinsi gani mimi kufanya yote ya mafaili haya? Star. Hivyo katika faili moja, nina paka. Mimi labda inaweza kuwa kuitwa ni kitu bora, sababu kwamba inaonekana kama namba line au kitu. Lakini katika faili moja nina sambamba na paka. Katika faili mbili nina sambamba na paka. Hivyo sasa siwezi kuangalia ndani ya faili moja na kuona oh yeah, kwamba faili alikuwa na paka. Ilani ya faili tatu ilikuwa si kuendana kwa sababu paka si huko. Siwezi grep kwa meow. Faili mbili tu ina meow. Hivyo hii unaweza kuchanganya, tena, na r, ambayo kama nilivyosema kabla mara nyingi ina maana ya kujirudia. Na hivyo siwezi kuja hapa, grep r kwa mfano yoyote of-- hebu hariri hii moja tu kutupa paka huko. Hivyo grep r kwa mfano yoyote ya paka katika orodha hii. Na itakuwa recursively kutafuta subdirectories yoyote. Hivyo katika bazi, kuna paka. Katika temp / 2, kuna paka. Na katika temp / 1 kuna paka. Hivyo hiyo ni kutafuta ndani ya files. Sasa unaweza pia kutumia kupata. Na hivyo kupata ni hasa kuhusu kuangalia kwa files na jina aliyopewa. Basi hebu kufanya baadhi ya zaidi. Hebu kwenda katika downloads. Kugusa dog1. Kugusa cat2. Kugusa cat_dog. Kugusa catcat. Hivyo nataka kupata kila files na mbwa katika jina. Hivyo kupata, na kwa muda mrefu zaidi wakati mimi kamwe ikumbukwe jinsi kupata kazi, mpaka mimi hatimaye kusoma kitu kwamba alifanya hivyo wazi. Hivyo kupata, moja kwa moja kujirudia. Huna haja ya kupita r. Hivyo kupata dot. Sisi si aliongea kuhusu nukta bado. Wakati dot dot daima ina maana moja directory up. Dot daima maana saraka ya sasa. Ili niweze Rm r dot katika njia sawa naweza Rm -rf *. Hatimaye wao kukamilisha kitu kimoja. rm -rf dot ni kwenda kuondoa nzima directory sasa. OK, ambayo sitaki kufanya huko. Lakini kupata dot. Hivyo recursively kutafuta sasa directory, na sasa kila kitu baada ya hii ni rundo la bendera kwamba wewe kutumia kuwatenga mambo kutoka kurudi. Hivyo kupata dot anarudi kila kitu kwamba Unaweza kupata kutoka directory sasa. Wale ni mafaili yote recursively kutafuta. Tutaweza kuona baadhi ya wale katika pili. Lakini katika kesi wewe wanashangaa jinsi mimi kufanya kwamba, hivyo amri K, angalau sana katika terminal yangu katika Mac clears yake. Kudhibiti L ujumla clears ni kwa ajili ya aina yoyote ya wastaafu. Unaweza pia aina ya wazi. Na kama wewe milele kupata ndani ya scenario-- weird ni kilichotokea kwangu wanandoa time-- ambapo rangi ya papo kwa yako wote messed up, au si uwezo wa kuona kitu chochote kuwa typed wakati wewe ni kuandika, kwa sababu wakati mwingine kama rangi ya asili ni kuweka sawa rangi foreground na sasa unaweza kuona fonts. Rudisha ni kitu ambacho tu resets wewe default nyeusi background, nyeupe mbele, au chochote kuweka yao. Hivyo ambapo walikuwa sisi? Kupata dot. Hivyo sasa kila kitu nyuma hii hatua inapinga matokeo kitu ambacho mechi mfano huo. Hivyo hapa nataka kutafuta kila kitu kwa jina paka. I got chochote. Kwa nini ni kwamba kesi? Naam, mimi nina tu kwa ajili ya kutafuta kitu na hasa jina paka. Kama nataka kutafuta kitu ambayo ina baadhi ya muundo, na cat-- quotes kitaalam si lazima, lakini nina kutupa yao huko. Hivyo sasa anaona catcat sababu hiyo ni jambo tu kwamba ina baadhi holela mfano ikifuatiwa na paka. Siwezi kuweka paka *, na sasa kupata catcat, cat_dog, cat2, kwa sababu wale ni mambo yote na paka mwanzoni ikifuatiwa na kitu chochote. Unaweza kuchanganya huu. Kama unataka kutafuta mafaili yote C kwamba una, unaweza kufanya * c. Tuna blah.c hapa. Hivyo hiyo ni kupata kazi. Unaweza kutafuta. Ina rundo zima la bendera kwa vikwazo zaidi. Na moja juu yao, hebu kusema -D. Hivyo imepungua thamani. Oh, kwamba si nini nataka. Si -D. Aina d. Hivyo kupata dot - aina d. Hivyo kile kwamba tu alifanya ni mimi nina kutafuta kwa mafaili yote katika saraka ya sasa na a-- d anasimama kwa directory-- directory aina. Hii anarudi directories wote katika saraka ya sasa. Na aina F ni wote mara kwa mara files, directories yote yasiyo. Ili tu mfano wa njia nyingine wanaweza kuzuia search nyingine kuliko tu jina la faili. Imekuwa ni dakika 30. Bado kwenda. ALLISON: Mimi itabidi breeze kupitia. Utakuwa faini. Rob BOWDEN: Hivyo baadhi ya mambo mengine. Sasa bang, Moderators chapa. Hivyo kwamba kwa ujumla means-- vizuri, hebu angalia mfano. Hivyo! F, nini ni kwamba kwenda kufanya? Vizuri inaonekana kuwa mara kwa mara kupata dot -Type f. Nini kuhusu! G? Kwamba tu grep r paka *. Hivyo bang unaweza kutumia kurudia Hivi karibuni amefanya amri. Hivyo kama mimi aina! Gre, ni kwenda re-kukimbia amri ambayo ilianza na gre zaidi hivi karibuni. Na unaweza kuona haya yote amri na historia. Hivyo historia. Haya yote ni amri nimekuwa kukimbia leo. Na pia, ni si halisi vikwazo kwa leo, lakini nimekuwa tu kutumika hii appliance kama ya leo. Ni ukamilifu yako ya historia ya bash ganda yako, isipokuwa kupunguzwa mbali katika baadhi ya uhakika. Watazamaji: Nini kinatokea kama wewe kufanya historia [inaudible] amri na makosa katika matokeo bado magazeti the-- Rob BOWDEN: Yeah, kama kuna kosa katika moja ya commands-- haya hivyo hebu kusema, kwamba ni Kosa amri halikupatikana. Bado inaonekana katika historia. Wote haki. Maswali mengine juu ya kitu chochote? Hivyo hiyo ni bang. Sasa, amri muhimu kweli kweli, mtu. Hivyo kwamba anatoa mwongozo kwa amri aliyopewa. Basi hebu kusema mtu ls, hivyo hii ni kuonyesha mimi ls. Ni orodha ya yaliyomo directory. Na hii ni mahali ambapo mimi kuona kwamba kuna ni haya bendera mbalimbali ambazo zipo. Hivyo tunaona kwamba LS-l ipo kama tulikuwa kusoma hiyo. ls-l anitiaye orodha hii kamili ya directory na ambaye anamiliki faili, ukubwa wa faili, iliyopita timestamp. Hivyo ls kinacho ni mtu mwingine kwamba huenda kweli matumizi fulani mara kwa mara. -al ni wangu bendera ya kawaida ls hii iliyopita. Hivyo kinacho, taarifa kuna mengi mafaili zaidi ya ls tu. ls kinacho. Nini katika kawaida na mafaili yote haya? Wao kuanza na dot. Hivyo hii ni mkataba katika Linux kwamba files yanayoanza kwa dot ni siri. Hivyo tu ina maana kwamba wakati sisi tu ls sawa, au sisi ni kutafuta directory hii kwa kutumia finder sawa, au Windows Explorer sawa, kwamba sisi hawataki kuona dot files haya. Wao tu kuchafua mtazamo wa mambo. Hivyo ni siri isipokuwa hasa kuwaomba na kitu kama ambacho ni. Hivyo naweza cd ndani ya .local, na mimi kuona kwamba ni yenyewe directory na directory ya pamoja, na maombi, na blah blah blah. Hivyo dot, mafaili wao ni tu siri. OK, ndio hivyo mengine muhimu. Mimi kuwa wanandoa naweza ruka. Hebu tu halisi majadiliano haraka kuhusu faili redirection mambo. Hivyo kuna nzima tata mfululizo ya mambo unaweza kufanya na hayo, lakini tu kuona yao, hebu sema, echo. Amri nyingine. Kweli bubu amri. All yake ni magazeti gani mimi kuwaambia ni. Hivyo echo hello. Ni tu aliunga hello screen. Hujambo dunia. Mwangwi hujambo dunia. Hivyo amri moja au moja ishara kwamba bash anaelewa ni hii kubwa kuliko ishara, na kwamba ni pato na faili ishara. Hivyo kama mimi pato hii foo, kuna sasa faili aitwaye foo, ndani ya ambayo ni hujambo dunia. Hivyo taarifa kwamba wakati mimi echo hujambo dunia bomba katika foo, hakuwa echo hujambo dunia. Badala yake ilikuwa kuweka katika faili foo. Na amri nyingine tu kutupa saa wewe, paka. Hiyo ni njia rahisi tu kabisa orodha ya yaliyomo ya faili hivyo kwamba sina kufungua mhariri wa maandishi kuangalia yake. Hivyo yaliyomo ya foo faili ni hujambo dunia. Na mimi naweza paka blah.c, yaliyomo ni hii. Tena, hizi ni amri kwamba, hawana kutarajia una yao yote kujikumbusha. Wazo ni ve kuonekana yao. Labda wewe ni kazi kitu, na wewe ni kama mimi nina mgonjwa wa kufungua faili hii. Nilikuwa napenda tu kuangalia katika yaliyomo halisi ya haraka. Unaweza kufanya hivyo, basi kuangalia nyuma na kusema oh mimi kumbuka kitu kama kwamba ipo, na ni paka. Hivyo kwamba ni kwenda faili. Sasa kuna si kweli yoyote nzuri mfano wa kusoma kutoka faili bado. Nini kitu kwamba inachukua kitu kutoka kiwango katika? Yoyote rahisi Linux amri? Wakati sisi kupata hiyo, katika michache wiki yote piece-- vizuri, wiki hii una kipande ambapo kuanza kuchukua pembejeo kutoka kwa mtumiaji. Na hivyo kwa kawaida aina kwamba pembejeo katika keyboard. Badala ya kuandika kwamba pembejeo katika keyboard, unaweza badala bomba katika kutoka faili hivyo kwamba wakati wewe kufanya Mario, ./mario, bomba katika kutoka faili wowote, na hiyo ni kwenda kukimbia mpango Mario. Si kutarajia pembejeo katika keyboard, badala ni tu kwenda kusoma mistari kutoka foo faili. Hivyo zaidi kuliko foo kuiweka katika foo faili, na chini ya foo inachukua mambo kutoka foo faili na anatumia kwamba kama pembejeo kwa mpango huu. Na tu kuona hivyo, tunaweza pia echo foo bar bazi, na kisha badala ya moja kubwa kuliko, hebu kufanya mbili katika foo. Je, hiyo kufanya? Ni tu appends na faili. Hivyo badala taarifa kama mimi echo blah katika foo na kisha paka foo, ni tu blah. Hivyo wakati wewe pato na faili, ni kabisa overwrites faili hilo. Kama unataka tu append, mara mbili [? grader. ?] Na mwisho ni bomba. Bomba Anapata ngumu zaidi, ambapo inachukua pato la amri moja na feeds ndani amri ijayo. Hivyo baadhi ya jambo la kawaida, historia. Hivyo, ugh, sitaki kuangalia hii. Kuonyesha mimi amri zote katika historia yangu ambapo mimi grep-ed kwa kitu. Hapana, hiyo ni utata. Kuonyesha mimi amri zote ambapo mimi kupata. Wote kupata amri mimi milele mbio. Hivyo historia. Sasa historia matokeo ya screen orodha hii ya amri, lakini mimi sitaki pato kwa screen. Badala mimi nina kwenda bomba ndani grep. Basi hebu grep kwa matukio yote ya kupata. Hivyo sasa badala ya kuchukua grep pembejeo, badala of-- grep ni uwezo wa kushughulikia kama input-- tuko kutumia grep kidogo tofauti hapa. Hivyo badala ya kuandika orodha ya mambo tulitaka kutafuta akasema grep ni kuchukua kama pembejeo. Hivyo kama mimi tu grep kupata, ni waits kwa ajili yangu na aina ya mambo. Hivyo paka hujambo kupata. Hello. Kupata. Taarifa kila wakati mimi aina kupata inatambua kwamba mimi typed kupata. Hivyo badala ya hii, mapenzi files search kwa kupata. Hivyo historia sasa ni kwenda pato orodha ya amri zote. Sisi ni kuweka pato kwamba, na sisi ni kulisha kwa grep, na hivyo ni kutema nje matukio yote ya kupata. Sababu mimi alisema d utata ni kama I-- bado ni utata. Kama mimi grep kwa grep. Taarifa ni kiasi pretty daima kuonyesha amri Mimi tu mbio kwa sababu amri kwamba yenyewe ina grep ndani yake. OK, hivyo maswali yoyote juu ya kitu chochote? Na mimi itabidi kuhamisha juu katika hatua hii. Hopefully hii ni nzuri maelezo ya jumla ya amri zote kwamba huna haja ya kuwa na kujikumbusha, lakini hizi yanafanya imara 95% ya kile kufanya katika mstari amri. Pia kukumbuka kwamba mstari amri yenyewe, bash ni lugha ya programu, na hivyo wakati kupata chini yake, wewe kutaka kufanya mambo kweli tata. Na hivyo ina mambo kama loops, na ikiwa na wale wote kwamba wewe ni kwenda kupata kutumika na lugha yako ya programu. Lakini hiyo ni zaidi ya wigo wa sehemu hii. OK, hivyo hakuna maswali? ALLISON: Hakuna? GABRIEL: Je, wewe kwenda to-- ALLISON: Mimi anaweza kufanya hivyo kuhusu mgodi kama unataka. Tunaweza kuona nini kinatokea. Rob BOWDEN: Off Allison. ALLISON: Woo. Wewe ni kitendo ngumu kufuata, Rob. Je, unataka mimi kubadili na wewe? Au wewe got, OK. Mimi nina kwenda kujaribu na si kabisa kuwa kama muda mrefu huko. Hebu angalia kama mapenzi hii kazi kwa njia mimi unataka kwa. Labda? Haha! Ndiyo. Hivyo mimi nina kwenda tu kwa haraka sana kwenda kupitia vigezo, tanzi, conditionals, na kidogo kidogo juu ya compiler. Kama una maswali katika wakati wowote, tafadhali kuacha yangu. Haya guys mapenzi kuwakumbusha yangu ya kurudia swali yako katika kesi mimi kusahau, lakini lazima kuwa mbaya sana. Hivyo vigezo, yeah. Sisi hatuna moja ya yako Vipande mwanzo hapa. Mimi nina uhakika wengi wenu, kama alikuwa na aina fulani ya mchezo kwamba iliundwa na Scratch, alikuwa kuweka wimbo wa kitu kama alama, au wakati, au kitu kama hicho. Hivyo machungwa wale mkali vipande kwamba sisi kuona kuna ni tu Scratch aina ya vigezo, na utakuwa dhahiri kuwa kutumia vigezo katika mipango yako. Kama huna, mimi si kweli uhakika nini unafanya. Lakini anyway, jambo kubwa, kufafanua vigezo. Na C kila kutofautiana ina kuwa na aina alitangaza, hivyo mimi alitoa wewe sana ujumla moja kwa juu. Hivyo itabidi yako aina na kisha chochote kuamua kuwaita variable yako. Hivyo katika kesi hii, aina katika orodha yako kutofautiana. Tuna mifano mitatu. Char ya baadhi daraja, A, ambayo ni nini Mimi nina uhakika wote wanataka kupata katika darasa hili. Unaweza kufafanua nyingi vigezo kwenye mstari mmoja muda mrefu kama wao ni wote aina moja, ambayo ni mfano wetu wa pili huko ambapo una tatu vigezo, x, y, na z. Wao ni ikifungwa wote. Na kisha unaweza pia, katika hii ya mwisho mfano na int alama na idadi wa timu, unaweza initialize haki yao huko. Hivyo katika mfano katikati ambapo sisi tu kuelea wa x, y, na z, wale si initialized bado. Hawana thamani. Au wao kuwa na maadili ya takataka. Na kama wewe kujaribu na matumizi yao, compiler itakuwa yell saa wewe. Una wote wawili kutangaza na initialize vigezo yako. Hivyo katika hii moja iliyopita, sisi ni kufanya wawili. Sisi ni kutangaza vigezo ya alama na idadi ya timu, na sisi ni initializing kuwapa nao maadili yao ya awali ya 7 na 4 mtiririko huo. Baridi. Kila mtu mzuri? Kutisha. OK, hivyo baadhi makongamano. Kama wewe guys kuwa na kusoma kupitia style 50, hizi ni mambo tu kwamba tunatarajia kwa wewe kutekeleza katika style yako. Hivyo maana ya majina. Kama kuanza wito mambo tu x, y, na z, hasa kama wewe kupata katika lengthier programu, wewe ni pengine ni kwenda kuwachanganya mwenyewe na kuwa kama kile ni kutofautiana hii akimaanisha. Mimi sijui nini maana ya hii. Hivyo kama ni maana ya kushikilia alama, simu yake alama. Kama ni maana ya kushikilia jibu baadhi au kusababisha, kuwapa jina kama hiyo. Kwa loops, ambayo sisi kupata katika katika slide ijayo, vigezo barua moja ni faini. Rob BOWDEN: Mimi, j, na k ni mikataba tu kwa ajili ya loops kwamba kila mtu anatarajia kuitwa i, j, na k. Unaweza kupiga them-- naona mstari safu au mstari wito wakati mwingine kwa ajili ya mbili loops Furushi, na hilo pia ni aina ya kiwango. Lakini i na j ni kueleweka kabisa. ALLISON: Yeah, i na j uko kabisa faini. Kwa ajili ya ufafanuzi kama katika baadhi ya P seti yako, inaweza kufanya maana ya kuwa na zaidi mambo ya maelezo katika huko tu kuweka wimbo wa ni. Lakini nadhani i, j, na k Nadhani idadi kubwa ya sisi matumizi yote. Rob BOWDEN: Pamoja na hayo mikataba, hivyo style ni muhimu. Ni moja ya shoka nne ambayo wewe ni hadhi, na ni rahisi tu kwenda juu ya P yako kuweka mwishoni na kuhakikisha kwamba kuna si makosa Stylistic. Ili kuhakikisha wewe ni tabbing usahihi. Kuhakikisha vigezo yako ni jina lake. Kuacha baadhi ya maoni. Ni rahisi sana kupata pointi hizo. Huna kufikiria chochote ili kupata pointi hizo. Huna kufikiri kitu chochote nje. Ni maamuzi tu ni kuangalia pretty. ALLISON: Kwa kweli, sisi kuwa na mtindo 50, ambayo atakwambia ambapo wewe ni messing up kama wewe ni messing up juu ya mtindo na kukuambia nini hasa haja ya kurekebisha na jinsi unahitaji kurekebisha. Ni pia nzuri tu kutaja kwamba ni sera bila shaka kwamba kama wewe ni katika ofisi masaa na kanuni yako ni fujo, tunaweza kushuka kusaidia you mpaka inaonekana nicer. Hivyo kuanza nje haki, kuweka style thabiti, wewe ni pia tu kwenda kufanya maisha yako rahisi sana nzima wakati wewe ni kujaribu kwenda kwa njia ya Debug. Kama wewe ni kujaribu kufikiri ambapo wewe ni kukosa brace curly na wao ni kila mahali, wewe ni tu kufanya maisha yako mwenyewe ngumu. Hivyo kuwa thabiti na style. Mimi ahadi utakuwa kufanya maisha yako rahisi. Ni itabidi kufanya maisha yetu rahisi. Kila mtu itakuwa furaha sana. Na kwamba ni nini unataka. GABRIEL: daraja yako itakuwa juu. ALLISON: Ndiyo, na daraja yako. Kama TF yako kama wewe, huelekea kuwa nzuri. Wote haki, na kisha tu Jambo la pili hapa. Thabiti initializations. Hivyo kama tuliona, unaweza kutangaza na initialize mambo. Vigezo mbalimbali juu ya mstari huo. Jambo moja tungependa si kufanya ni kutangaza baadhi ya vigezo na si initialize yao juu ya sawa line ya kuwa wewe ni initializing wengine. Hivyo katika kesi kwamba alifanya hakuna maana yoyote, tuna mfano hapa ambapo sisi ni kutangaza ints katika vigezo ya robo Dimes na pennies, lakini robo na pennies hawana thamani ya awali. Sisi si initialized yao, lakini haki ya katikati kuna sisi tayari initialized Dimes kwa 0. Hivyo ama kufanya robo, dimes, pennies. Au kufanya robo sawa 0. Dimes sawa 0. Pennies sawa 0, au chochote wale maadili ya awali ni. Jambo kubwa kwa mtindo, kuwa thabiti. Wakati katika shaka, kuwa thabiti. Lakini kufuata mtindo mwongozo wetu pia. Baridi. Kila mtu nzuri huko? Watazamaji: wapi style mwongozo? ALLISON: mwongozo style ni on-- nini tovuti? GABRIEL: Nadhani ni manual.cs50.net/-- ALLISON: Sinema? GABRIEL: Sinema. Yep. ALLISON: Ndiyo. Hivyo swali, ambapo ni style 50. manual.cs50.net/style. Ndiyo? Watazamaji: Kama sisi ni kufafanua vigezo, ni sawa kama sisi kuweka kama [inaudible] kama int alama na kisha int lengo. Hivyo unaweza kusema kwamba sasa tumekuwa got kufafanua yao pamoja? ALLISON: Hivyo swali, lazima una redundant kificho wakati wewe ni kufafanua vigezo kama vile int alama na ijayo line int mchezo? Rob BOWDEN: ni Kuna dhahiri kesi ambapo redundant kificho ni mbaya. Mimi bila kuzingatia kwamba kanuni redundant. Mimi karibu kamwe kutangaza nyingi vigezo juu ya mstari huo milele. Na kama kitu chochote, ni kwa sababu kawaida mimi kuondoka aina fulani ya maoni kueleza kile kutofautiana ni kwa. Hivyo mimi itabidi kusema int alama kufyeka kufyeka. Anaendelea kufuatilia chochote. Katika jumla kufyeka kufyeka. Hivyo ni grosser sana katika njia kwamba kuziweka zote juu ya mstari huo. Mimi kamwe tu kuziweka juu ya mstari huo. ALLISON: Najisikia kama ni upendeleo wa binafsi katika hatua hii. Watazamaji: Je, hiyo kwenda kwa kwa loops na mambo pia? Rob BOWDEN: Kama ndani? Kama int i sawa 0 comma urefu sawa kitu? Kwamba huna uchaguzi. Na kwa loops initialization part-- hivyo unaweza tu kuonekana int i sawa 0 semicolon i chini kuliko chochote semicolon i pamoja pamoja. Kwamba int i sawa 0, kitaalam unaweza pia kufanya nini tuliona kabla ya na comma syntax. int i sawa 0 comma j sawa 3 comma k sawa 5. Huna uchaguzi kugawa kuwa hadi katika mistari mingi, na kwamba kiwango. Kuona ni kuna faini. ALLISON: Ajabu. Naam, segue rahisi katika loops. Hivyo yeah, hapa tuna baadhi ya mifano ya loops kwamba wewe guys aliona katika Scratch. Na bila shaka yote haya unaweza tu kuwa recreated katika C. Na wao kimsingi kuruhusu kurudia sehemu fulani ya kificho mpaka hali fulani ni alikutana, ambayo tutaweza kupata katika haki baada ya kuzungumza kuhusu loops na conditionals. Hivyo tuna aina tatu kuu. Kwa wakati, na kufanya wakati, ambayo sisi wote kwenda kwa njia ya haki ya sasa. Hivyo moja ya kwanza ni kwa ajili ya loops. Hivyo kwa baadhi ya hali, nitafanya hii ya kuzuia wa kanuni. Sisi tuna hii kidogo baridi mchoro hapa chini. Lakini kimsingi una katika kwa yako, kwamba mstari wa kwanza, wewe kwenda initialize vigezo yako. Hivyo kama sisi aliyesema kuhusu, i ni sawa na 0 au i ni sawa na 10. Chochote haja ya kuwa kutofautiana kuwa ni kwenda kuwa initialized huko, alitangaza na initialized kwa baadhi ya thamani. Hivyo basi tuna baadhi hali hiyo ni kwenda kuwa kuangalia wetu kutofautiana dhidi ya kitu fulani. Hivyo katika kesi ya kawaida kesi ambapo labda unataka sehemu hii ya kificho kutekeleza mara tano. Hivyo tunatarajia kuwa int i sawa 0, na sisi unataka kuwa wakati i ni chini ya 5. Hivyo hali hiyo ni tu kwenda kuangalia kwamba kila wakati. Kama hali hiyo kutathmini kwa kweli, ni kwenda kukimbia kificho, ambayo ni hasa nini mchoro huu mdogo ni kuonyesha. Na hivyo executes yake. Updates kutofautiana, ambayo ni nini tunaona katika sehemu ya mwisho ya kwa wetu kitanzi initialization huko. Hivyo itabidi kuendelea kufanya hivyo mpaka hali ambayo si alikutana, na basi itakuwa exit kitanzi na kuendelea kuhamia kwenye na wengine wa programu yako. Kila mtu nzuri huko? Baridi. Hivyo hapa ni mfano, ni sawa kwa kitu ambacho mimi tu kuongelea. Hivyo sisi tu unataka magazeti hii ni CS50 mara 10. Hivyo unaweza kuona hapa tuna kwa yetu, na kisha sisi initialize variable i kuwa sawa na 0. Hali yetu ni kuangalia kuwa ni chini ya 10. Hivyo kutathmini kwa kweli wakati sisi kwanza kuanza, na kisha updates variable wetu kila wakati kwamba ni kweli executes na prints nje hii ni CS50. Na kusitisha baada ya mara 10. Baridi. Hivyo wakati loops ni up ijayo. Na kama unaweza kuona hapa, sisi tu baadhi ya wakati swali hili condition--? Watazamaji: Ninawezaje kuruka kweli si tu namba moja, lakini namba mbili [inaudible] i pamoja pamoja pamoja? ALLISON: Hivyo swali ni jinsi gani unaweza update kutofautiana yako kwa zaidi ya moja wakati huo. Hivyo i pamoja pamoja mapenzi update na moja kila wakati. Kama alitaka update na mbili, unaweza kufanya i pamoja sawa 2. Rob BOWDEN: Umeona pamoja sawa katika hotuba bado? Watazamaji: [inaudible]. ALLISON: Ni ufanisi kitu sawa kama i sawa na i plus 2. Hivyo ni kwenda na kuchukua na update na mbili kila wakati. Plus sawa ni tu kitu sisi kuwaita sukari kisintaksia. Rob BOWDEN: Yeah, wale kuwepo kwa pretty much waendeshaji wote hesabu. Hivyo mara i kwa sawa ingekuwa mara mbili idadi. j mgawanyiko sawa 3 ni sawa kama j sawa j kugawanywa na 3. ALLISON: Au minus ni sawa na 2 ingekuwa mapunguzo i na mbili kila wakati. Rob BOWDEN: Hata mod sawa. Hawajaona waendeshaji bitwise, lakini kareti sawa na ampersand sawa, wale wote zipo. ALLISON: Hivyo mara nyingi, hasa na michache yako ya kwanza ya seti P, wewe utakuwa pengine incrementing na moja, hivyo i pamoja pamoja, j pamoja pamoja ni mambo yote wewe kwenda kwa kawaida kuwa kutumia. Lakini kwamba hali update ni kikamilifu ndani ya utawala wako. Unaweza update na chochote nyongeza au kwa njia yoyote kuamua. Labda hata unataka kuwa idadi random wakati mwingine. Lakini ndiyo, kuna kura ya mambo unaweza kufanya na kwamba. Wewe si vikwazo kwa i pamoja pamoja. Rob BOWDEN: Tu ili kujua ipo, pia ipo katika aina nyingine, pamoja pamoja i. Hivyo kama wewe ni milele kutafuta online na kutokea kwa kuona pamoja pamoja i, pretty much ina maana kitu kimoja. ALLISON: Baridi. Nzuri? Kutisha. Hivyo wakati loops. Sawa sana. Una baadhi ya hali hiyo. Jambo kuu taarifa hapa ni badala ya kuwa sehemu tatu tofauti kuanzisha, tuna moja. Sisi tu kuwa na baadhi ya hali ya hiyo kuwa checked. Na kwa njia hiyo hiyo, kwa muda mrefu kama hali hiyo kutathmini kwa kweli, kificho wako ni kwenda kukimbia. Na kama ni uongo, ni ataondoa, hoja kwenye sehemu ya pili ya mpango wako. Hivyo hii ni aina ya like-- nini mfano mzuri wa kuangalia kwa baadhi ya hali ya kawaida? GABRIEL: Wakati ni kweli. ALLISON: Unaweza kufanya wakati kweli. Vizuri, 1 ni sawa na 1. Rob BOWDEN: Unaweza kufanya while-- tu badala ya kutumia kwa kitanzi, unaweza daima kanuni ya kwa kitanzi katika kitanzi wakati, hivyo i mkubwa kuliko 0 au wakati i chini ya 10. ALLISON: Ajabu. Na kisha sisi kufanya wakati tanzi, ambayo ni kubwa kwa mtumiaji uthibitisho, ambapo unataka kupata kitu kutoka user yako, kuona kama ni halali, na kisha kuendelea kutoka huko. Hivyo moja ya mambo ya kujua ni kwa kufanya wakati ni kwamba ni kwenda kutekeleza, na kisha itakuwa re-nitafanya kama hali hii ni alikutana. Hivyo pengine njia bora ya kufanya hivyo ni tu kuona mfano hapa. Hivyo kama mimi tu zilizotajwa, user uthibitisho ni kweli useful-- au kufanya whiles ni kweli muhimu kwa mtumiaji uthibitisho. Hivyo hii ni kwenda tu tena kuchochea baadhi ya mtumiaji mpaka waingie idadi chanya, ambayo inaweza kuwa na manufaa kwa P kuweka yako wiki hii. Na hivyo katika kesi hii, wakati sisi awali kukimbia mpango huu, ni kwenda na magazeti kuingia idadi chanya. Ni kwenda kupata baadhi pembejeo kutoka kwa mtumiaji, na basi ni kwenda kuangalia kwamba pembejeo dhidi ya hali kwamba umefanya kuweka kwa ajili yake. Hivyo katika kesi hii ni ya kwenda kuangalia. Ni kwenda kusema, sawa, ni pembejeo yetu hasi, au ni 0 au hasi, ambayo itakuwa batili. Hivyo basi itakuwa re-haraka. Swali? Watazamaji: Je, hii ni sawa basi kama kitanzi wakati kama wewe tu kunakiliwa kwamba kanuni na kuiweka [inaudible] kitanzi wakati? ALLISON: Hivyo swali lilikuwa ingekuwa hii kuwa sawa kama tu wakati kitanzi kama sisi walikuwa tu nakala kitanzi wakati juu. Hivyo katika kesi hii, wakati wako kitanzi ni kwenda kuangalia hali ya kwanza. Hivyo katika kesi hii, kama sisi alijaribu kuandika kama tu kitanzi wakati, ingekuwa kusema wakati pembejeo ni chini ya moja. Lakini hatuna pembejeo kwa ajili yake. Watazamaji: Kama [inaudible] kitanzi wakati ikiwa ni pamoja na kanuni hii, lakini basi coped kificho juu ya kitanzi wakati pia. Wewe tu alikuwa kificho hii [Inaudible] kitanzi wakati. ALLISON: Itakuwa kitu kimoja, ndiyo. Hivyo unaweza tu write-- badala ya kuwa ndiyo do--. GABRIEL: Lakini hiyo ni zaidi ya kifahari. ALLISON: Yeah, hiyo ni zaidi ya kifahari. Unaweza kupata katika kubuni na whatnot, lakini ndiyo, unaweza kabisa kufanya hivyo. Yoyote maswali mengine? OK, baridi. Hivyo tumekuwa aliongea mengi kuhusu hali ya na loops hizi zote kwamba tuna, hivyo sisi ni kweli kupata katika masharti katika maneno Boolean. Tena, matumizi haya katika C, hivyo tu aina ya mpito kutoka zaidi graphic interface kwa kweli coding. Baridi, hivyo moja kubwa, kama. Kimsingi tu inaruhusu sisi kuanzisha baadhi ya mantiki katika mpango wetu na kuangalia sys masharti. Hivyo katika kesi hii, sawa, ni mkubwa kuliko 0 n? Ndiyo ni, hivyo unaweza nitafanya hili. Ni kuangalia baadhi tu masharti kwamba wameweza kuweka, ambayo nadhani tuko wote starehe na kuangalia hali ya. Baridi. Hivyo kama kingine ni moja yako mengine, unaweza kusema sawa, kama hii ni kweli, jambo hili kwanza. Vinginevyo nataka default na kufanya kitu kingine. Kama katika kesi hii, wewe ama pick idadi chanya au hasi idadi. Wewe tu kuwa na chaguzi mbili. Unahitaji yake kutekeleza bila kujali nini yako user pembejeo. Hivyo unaweza kusema vizuri, ni mkubwa kuliko 0? Baridi. Magazeti idadi chanya. Kama siyo, magazeti hasi. Kila mtu mzuri? Na kisha jambo moja kutambua ni kwamba kama kama hali ni alikutana, mwingine kamwe pia nitafanya. Mmoja wa haya mapenzi tu nitafanya wakati huo. Hivyo ni biashara mbali. Huwezi kupata kuwa na wote wawili. Aidha una hali ya kwanza. Aidha una kama au mwingine, si wote. Ambayo kisha inaweza kufanya mambo hata ngumu zaidi, kwa sababu unaweza kufanya kama, mwingine, na kisha mwingine. Hivyo katika kesi hii, sisi kuwa hali ya tatu. Na tena, moja tu kati ya hayo ni kwenda kuishia kunyongwa. Hivyo unaweza kuwa anashangaa vizuri, nini kama wewe kuwa na kitu ambacho unaweza kukutana wawili wa haya. Labda chochote wewe ni inputting hukutana wote wawili hali kwa maana kama na mwingine kama. Kitu pekee ambayo inaenda kukimbia ALLISON: Kama haraka kama anaona jambo kwamba hukutana na hali kwa kuwa kutathmini kwa kweli, kwamba ni nini ni kwenda kukimbia na kitu kingine. Hivyo kama wewe alikuwa ni idadi hii kati ya 0 na 5 kwa moja yako ya kwanza, au ni idadi huu kati ya 3 na 5 kwa mwingine kama sehemu, na pembejeo number-- Mimi alisema 0 na 5 and-- 4. Ni kwenda hit moja ya kwanza. Ni kwenda kusema sawa, hii idadi ni kati ya 0 na 5. Kutekeleza na kuondoka. Ni kamwe hit kwamba chaguo la pili. Baridi? Kutisha. OK pia tuna kauli kubadili kama unataka kupata hata more-- au pole, kubadili ni ijayo. Mimi nina kupata mbele ya mwenyewe hapa. Tena, nyingi kama vitalu ambapo kama mimi tu alisema ni haraka kama wewe kupata hali hiyo alikutana na An kama mwingine kama kingine, majani. Kama unahitaji kuangalia mambo mbalimbali, wewe ni kwenda wanataka kutumia kwa sababu hii itakuwa kuangalia kila wakati hapa. Hivyo hii itakuwa kukimbia kwa njia na kama ni kubwa zaidi kuliko au sawa na 90, ni kwenda magazeti hayo. Na itakuwa kukimbia kwa njia na kuangalia kila mmoja wa hawa. Watazamaji: Hivyo hii itakuwa zaidi kuliko Buggy [inaudible]. Je, hii kuwa kama [inaudible]? ALLISON: swali ni gani hii kuwa Buggy au gani hii kufanya nini unataka. Ni kweli unategemea nini unataka kutoka programu yako. Watazamaji: I mean kama kama wewe kuweka 90 katika. ALLISON: Kama kuweka 90-- Watazamaji: [inaudible]. GABRIEL: Wewe ni kwenda kupata mambo mawili. ALLISON: Wewe ni kwenda kupata mambo mawili. Ndiyo, mbili. Rob BOWDEN: Mbili? ALLISON: Hapana Rob BOWDEN: Nne. Kama kuweka 90, ni kwenda kusema wewe got A, wewe got B, wewe got C, wewe got D. Watazamaji: [inaudible]. ALLISON: Haki. Hivyo mimi unategemea nini wanataka kutoka mpango. Wakati mwingine unahitaji kuangalia mambo mbalimbali. Utasikia kupata mengi zaidi katika kile kubuni nzuri ni kama wewe kwenda mbele. Jambo muhimu kutambua ni kwamba hii kuangalia hali zote nne hapa. Ambapo kama hii walikuwa kama mwingine kama mwingine kama mwingine, ingekuwa hit kwamba kesi ya kwanza, ingekuwa magazeti got A na kifanyike. Rob BOWDEN: Hata kama sisi aliamua kubadili hii kama na zaidi au sawa na 90, kama na zaidi au sawa na 80, na chini ya au sawa na 89, kama n kubwa zaidi kuliko au sawa na 70, na n chini ya au sawa na 79, hivyo kwamba itakuwa sahihi. Kwamba kufanya nini tunataka, lakini bado hundi kila moja yake. Hivyo ambapo katika mazingira ya kwanza, kama sisi kuingia 90 na tu kama mwingine kama mwingine kama, na sisi kuingia 90, basi ni kwenda kusahihisha. Ni kuangalia kwanza moja, magazeti got A, ruka kila kitu, kwa sababu tayari kupatikana moja kwamba kazi. Kesi zote ni pande kipekee kulingana na kama mwingine kama mwingine kama. Hivyo itabidi nitafanya kwanza kama, basi ni kosa. Kutakuwa na kwenda hadi mwisho. Ambapo kama sisi mabadiliko hii kuwa kile nilikuwa akisema kwa chini ya au sawa na 89. Ni kwenda kuangalia moja ya kwanza. Utakuwa magazeti. Ni itabidi kuangalia moja ya pili. Ni si kwenda na magazeti. Angalia moja ya tatu. Si kwenda magazeti. Angalia moja ya nne. Sasa kwenda magazeti. Hivyo katika kesi hiyo, mwingine kama toleo, tangu kesi hizi ni pande kipekee, ni matumizi bora kama mwingine kama mwingine kama, sababu kwamba ni kwenda kuwa hundi wachache wa hali ya kuliko toleo hili. ALLISON: Ajabu. Hivyo kitu kingine tunaweza kufanya ni kauli kubadili. Kimsingi kauli kubadili inachukua katika baadhi ya kutofautiana, katika kesi hii ni n, na huamua kesi ambayo kutekeleza. Hivyo hii pia ni moja ambapo kesi yako lazima aina ya pande kipekee. Hivyo katika kesi hii, kama sisi sisi kupata moja, ni kwenda kwa mechi yoyote kwamba variable-- chochote thamani ya n ni moja ya kesi hizi, hivyo 1, 2, au 3, na magazeti nje ya mstari sambamba. Na kisha kama taarifa hapa, sisi pia kuwa msingi, ambayo unaweza kufikiria kama ya mwingine yako. Hivyo kama wewe kuchukua idadi yoyote badala ya 1, 2, na 3 katika kesi hii ni tu kwenda magazeti batili. Kuamua wakati wa kutumia ikiwa dhidi ya kama elses dhidi swichi ni kwenda kuwa kitu ambacho wewe guys mapenzi kuona kubuni busara kama wewe kuanza kuandika mipango ngumu zaidi, na hakuna ngumu na ya haraka ya sheria ya wakati kwa matumizi yao. Ni kweli inategemea mazingira yako. Rob BOWDEN: Na tu kutupa huko nje kwani ni vizuri zaidi sehemu. Swichi, wao huwa na be-- hivyo wewe ni mdogo katika idadi ya njia unaweza Unaweza kutumia yao, kwa sababu ikiwa, hali inaweza kuwa pretty kiasi chochote unataka. Na swichi kesi kuwa namba, au kitaalam wanaweza kuwa chars, lakini chars, kama tutaweza kuona, ni namba tu. Hivyo wao kuwa namba, lakini swichi ni kweli ufanisi zaidi kuliko kama mwingine kama mwingine kama, kwa sababu hata kuchukua mfano before-- vizuri, daraja mfano inaonekana nzuri. Vizuri hebu sema hapa, sisi badala kufanya hii kama mwingine kama mwingine kama mazingira. Hivyo kama n ni sawa sawa na 1, magazeti ilichukua idadi ya chini. Kama mwingine kama n ni sawa sawa na 2, wewe ilichukua idadi kati. Mwingine kama usawa sawa 3, juu. Mwingine batili. Basi hebu kusema kwamba alikuwa mazingira yetu. Basi hebu kusema sisi kuingia 4, hivyo tunatarajia batili. njia kwamba kama mwingine kama mwingine kama mbinu ni kwenda kufanya kazi ni hundi ya hali ya kwanza. Ni si kuridhika. Hivyo sisi kuangalia hali ya pili. Ni si kuridhika. Kuangalia hali ya tatu. Kutokuridhika. Hivyo sisi kwenda kingine na magazeti batili. njia ya kubadili kazi ni inaandaa chini ndani ya nini tunakwenda kuwaita meza kuruka. kuu wazo kuwa kwamba wakati wewe kuingia 4, inaweza mara moja kwenda default. Haina haja ya kuangalia asubuhi mimi kesi 1? Nope si kwamba hilo. Uchunguzi 2? Nope. Uchunguzi 3? Nope. Default. OK, hii ni lazima ambapo mimi wanataka, na kisha kutekeleza hiyo. Hapana, mara moja anaruka kwa default. Au ni mimi kuingia 2, ni mara moja kwenda kwa 2 bila wanaohitaji kwenda kupitia kesi 1. Hivyo kwa njia hiyo, realistically siku hizi kwamba ni si kwamba mengi ya faida ufanisi. Kawaida kompyuta ni pretty haraka, na kwamba si kwamba kubwa. Lakini ni kwamba kesi swichi ni kwa kasi zaidi. Kama wewe ni kweli kujaribu kuongeza, matumizi ya kubadili. ALLISON: Baridi. Na kisha tuna ternary operator. Hivyo najua mimi zilizotajwa hapo awali neno sukari kisintaksia. Hivyo ni mambo tu kwamba kufanya kificho wako zaidi mafupi. Hivyo hii ni moja ya kesi hizo. Hivyo ternary operator ni alama swali koloni kama sisi kuona katika kamba line s sawa n mkubwa kuliko 100 swali alama ya juu koloni chini. Hivyo kimsingi jinsi hii matendo ni ni n mkubwa kuliko 100 ni hali ya. Hivyo nadhani inaweza kufanya maana. Ni kama kuuliza swali. Ni kusema oh, ni n mkubwa kuliko 100. Nani anajua? Na kama ni kutathmini kwa kweli, ni kwenda kukupa Jambo la kwanza kwamba waliotajwa hapo, ambayo ni ya juu. Vinginevyo ni kwenda kukupa chini. Hivyo hii ni kweli tu rahisi na njia bora ya kufanya kama kama mwingine. Hayo ni yote hii ni. Na kama sisi walikuwa kuandika hii kama mwingine masharti, itakuwa kama n ni mkubwa ya 100, kurudi juu. Mwingine, kurudi chini. Hii ni zaidi njia mafupi ya kuandika. Rob BOWDEN: Hivyo mfano huu hasa ni wakati wowote wewe kufanya kitu kama hii, hii ni mfano ambapo mimi kutumia ternary mara nyingi sana. Hivyo sisi si aliyesema kuhusu wigo bado, lakini I hate kuona kamba s semicolon. Kama n mkubwa kuliko 100, s ni sawa na ya juu. Mwingine, s ni sawa chini. Hivyo mfano kwamba, wale mistari mitano ya kificho halisi 100% ya muda zinaweza kuhamishiwa katika kile ilikuwa hadi pale na ternary. Hivyo ternary, line moja ya kanuni. kama mwingine, tano. Hiyo ni mfano mimi kumweka nje kila wakati. Hii ingekuwa nafasi kubwa kwa operator ternary. Ni hivyo safi. Lakini watu huwa na kamwe matumizi yake. ALLISON: Kuchukua mbali Gabe. GABRIEL: Hivyo sasa nyie wote kujifunza katika hotuba wiki hii kwamba kila kitu katika kompyuta ni binary, haki? Kama taa hapa. Unaweza kuwa ama akageuka na mbali. Na kwa kila kitu, I mean halisi ya kila kitu. Baadhi ya namba, na chars, na masharti, na hata kificho kwamba wewe kuandika wakati anapata ulioandaliwa kwa mashine kificho na mambo kama hayo, hivyo majipu yote chini ya 0 na 1 '. Na hivyo wakati sisi ni kushughulika na integers, ambayo ni kitu ambacho ni kitaalam sana rahisi, tunapaswa kuwa na uwezo wa kufanya mambo kama kuongeza yao, ambayo ni pengine ni moja ya mambo rahisi unaweza kufanya integers mbili, haki? Hivyo kujumlisha na kutoa kazi tu kama ni kazi katika nukuu alisema, isipokuwa hapa ni binary, haki? Hivyo ni katika msingi mbili. Hivyo kuongeza 1 plus 1. Kwamba anatoa 0, na 1 hubeba juu. Na tu kuendelea kufanya kwamba, Hivyo sasa inakuja swali zaidi ya kuvutia. Tunajua jinsi ya kuwakilisha wote integers chanya katika kompyuta, lakini hebu kufanya zoezi hili. Kujifanya wewe guys ni wote mwaka 1960 au kitu kujaribu kujenga kompyuta, na una kuja ya njia ya kuhifadhi minus 1, kwa mfano, au bala yoyote integer kwa jambo hilo. Jinsi gani unaweza kufanya hivyo? Mawazo yoyote? Tu kutupa kitu chochote saa yangu. Ndiyo? Watazamaji: [inaudible] mteule maalum kama wako [inaudible]. GABRIEL: Unaweza mteule maalum kidogo, ambayo itakuwa 0 au 1. Hebu kusema moja kama ni chanya na 0 kama ni hasi. Na kisha wengine wa kidogo ni tu kuhifadhi idadi. Baridi. Hivyo hiyo ni wazo nzuri sana. Tuna, mimi sijui, 200. Na kama kwanza kidogo ni akageuka juu, basi ni pamoja na 200. Kama ni akageuka mbali, ni bala 200. Baridi. Kuna moja tu ndogo tatizo na hii, ambayo ni kama sisi kujaribu kuhitimisha mambo up. Hivyo kufikiria tuna 11111 hapa, na sisi ni summing huu kwa 00100 chochote. Kama wale wawili ni chanya, hiyo faini. Lakini basi kama moja ya nao ni hasi, kama hebu kusema kwamba hii kidogo hapa ni moja kwamba wajibu for-- mimi nina kwenda kufanya separate-- hivyo hii moja ina maana kwamba idadi hii hapa ni mazuri. Hii moja ina maana kwamba hii idadi hapa ni hasi, haki? Lakini basi wakati uko kwenda kwa jumla yao, haja kama kauli akisema oh kama hii ni 0, basi Jumla yangu itakuwa kitu tofauti, haki? Hivyo kuna kidogo zaidi wajanja njia ya kufanya kwamba, iitwayo mbili ya inayosaidia. Hivyo kimsingi nini sisi kufanya ni sisi kufafanua minus 1 kuwa jambo kwamba kama sisi kuongeza hadi 1 inatupa 0. Napenda kurudia kwamba. Basi hebu kusema kwamba hii hapa ni 1. Ni jambo gani kwamba kawaida katika chanya integers aliongeza kwa kuwa inatupa 0? Nini kama sisi kujaribu kuongeza kwa idadi hii? Tunakwenda have-- Sawa, hivyo hebu kuongeza. Tunakwenda kuwa 1 plus 1 ni 0, na kisha hubeba juu. Na kisha sisi ni kwenda kupata 0 tena. Mimi nina kupata kuchanganyikiwa. Na wewe ni kwenda kupata 0 na 0 na 0 na 0 na 0 na 0. Kura ya 0 ya. Saa moja iliyopita sana, sisi siyo kwenda kuwa na uwezo wa kubeba juu, kwa sababu hebu kusema sisi ni kushughulika tu na Byte moja, hivyo vipande 8 tu. Hivyo kile kompyuta gani na default ni anasahau kwamba [inaudible] tu, OK? Hivyo hii ni kile kinachoitwa mbili ya inayosaidia. Sisi tu kufafanua minus 1 kuwa Jambo hapa kwamba kama wewe kuongeza kwamba kwa 1 ingekuwa kukupa 0. Na kwamba ni pretty baridi kwa sababu sisi si kweli haja marehemu kutekeleza aina tofauti ya Jumla kutegemea kama kwamba hasi au chanya idadi. Je, hiyo mantiki? Jambo hivyo moja kwamba sisi kufanya hapa ili kubadilisha kati ya chanya na hasi integer ni kisha sisi flip kila kitu, na kisha sisi kuongeza 1 kwa idadi hiyo. Kama wewe kujaribu kufanya hivyo mwenyewe juu ya kipande cha karatasi, wewe ni kwenda kuona kwamba inafanya hisia. Lakini kama mimi kuchukua idadi hii hapa, hii ni tano. Hivyo kama mimi flip kila kitu hapa, hivyo 1, 1, 1, 1, 1. Flip, flip, flip. Na kisha mimi kuongeza 1 na hiyo. Mimi nina kwenda kuwa hasa minus 5. OK? Hii aina ya mantiki kwa sababu kama wewe kujaribu kuhitimisha huu kwa idadi kwamba tulikuwa kabla, ambayo was-- hebu flip hii tena. Ilikuwa 101 na kura ya 0 ya. Kama wewe kujaribu kuongeza hizi namba mbili pamoja, wewe ni kwenda kuwa na hasa 0. OK. Maswali yoyote? Watazamaji: [inaudible] GABRIEL: Nini maana? Watazamaji: Negative kwa chanya [inaudible]. GABRIEL: Hapana, wewe flip na kuongeza 1 daima. Yeah. OK, hivyo wahusika pia encoded binaries. Tuna meza ASCII, kama wewe Pia aliona katika hotuba, haki? Hivyo ni kimsingi ramani ya mambo. Na hapa mimi siwezi kusisitiza kutosha kwamba kwa kompyuta, a na 65 ni halisi kitu kimoja. Hivyo kama mimi kuandika kitu kama Char c sawa, mimi naweza wakati huo huo kuandika tu 65 hapa, na ni itakuwa sawa, sawa? Hakuna tofauti wowote. Sisi kwa kawaida huwa kuweka wahusika katika vigezo ya aina. Char, si kwa sababu wao ni kimsingi alifanya kwa hiyo, lakini kwa sababu ya mkataba wa binadamu. Lakini unaweza tu kukabiliana na integers badala ya vigezo ya aina Char, na wewe utakuwa faini. tu halisi tofauti kati ya Char c na int i ni kwamba int ina ka wanne katika zaidi mifumo, wakati Char ina Byte moja. Wao ni kimsingi kitu kimoja katika suala la data. Hivyo kile magazeti hapa? Hapa sisi ni uchapishaji tarakimu kutumia printf na pamoja na 1, na kama tu integers, chars inaweza kuwa inaongozwa, hivyo wahusika pia inaweza inaongozwa. Hivyo hii ni hasa 65. Hivyo kuna kwenda kuwa 66, na hapa tuna 65 pamoja na kidogo minus kubwa A, ambayo itakuwa, mimi si kweli kujua. Lakini itakuwa hasa pengo kati ya herufi na na barua ndogo, hivyo sisi ni kwenda kupata ndogo a, haki? Yeah. Hivyo hii ni kwenda magazeti tabia ambayo ni hasa hii moja. Nzuri? Maswali yoyote? Hapa tuna rundo la tofauti aina kwa vigezo namba. Sisi tayari kuzungumzia int. Kuelea ni njia tu to-- hii ni kweli funny, kwa sababu wakati mimi kwanza kujifunza mpango nyuma katika siku na Chatu, mpango wa kwanza mimi milele alijaribu kuandika, nikaona kwamba kulikuwa aina kuitwa katika na aina iitwayo kuelea. Na kuelea ilikuwa kwa ajili ya namba zote kweli. Hivyo basi mimi aliuliza kwa nini Mimi milele kutumia int, basi? Kwa sababu kama mimi wanaweza kutumia yote idadi halisi na kuelea, Napenda tu kuacha kutumia ints, haki? Kwa sababu idadi halisi ni kiasi kama zaidi generic. Ni zinageuka kuwa hii ni si kesi katika kompyuta kwa sababu wao ni kimsingi mambo mbalimbali. Hivyo integers na ikifungwa, shughuli kwamba kufanya nao kimsingi tofauti kwa sababu njia kwamba wao ni kuhifadhiwa, sawa? Sisi ni kwenda kuzungumza kidogo kidogo zaidi juu ya kwamba katika pili. Hivyo mara mbili tu kuelea kubwa. Kawaida katika mifumo ya wengi, kuelea ni ka wanne, kama int. Na mbili ni ka nane. muda mrefu kwa muda mrefu ni kweli tu ishara kwamba append na aina kama int. Unaweza kusema kwa muda mrefu kwa muda mrefu int kama hii. Muda mrefu muda mrefu int x kufanya hivyo tena. Hivyo katika mifumo ya wengi, kwamba nitakupa ka nane badala ya kawaida ya nne. Na unaweza kweli kuacha katika, hivyo inaweza tu kusema kwa muda mrefu kwa muda mrefu, na kwamba kazi pia, sawa? Unaweza pia kufanya mambo mengine kama unsigned int, au tena tu unsigned ingekuwa pia kazi. Na kwamba bila kufanya x kuwa kutofautiana kama kila kitu ni chanya, hivyo unaweza si kweli kuwa hasi namba katika njia ambayo tuliona hapa. Hivyo kufuatia ajabu yaliyo uhakika na usahihi. Hiyo ni moja ya sababu kwa nini wanataka kutumia ints badala ya ikifungwa, kwa sababu ints ni 100% sahihi, haki? Ni hasa idadi hiyo. Kwa pointi floating, kama wewe kusema jibu sawa 1 juu ya 10-- Mimi kutokea kwa kuwa hii halisi mpango hapa, float.c. Kwamba Prints 20 maeneo alisema. 1 kugawanywa na 10, na kwamba kawaida ni 0.1, sawa? Lakini hapa kama sisi kufanya kuelea na kisha sisi kukimbia, tunaona kwamba si hasa 0.1. Ni 0.149 kitu. Na kwa nini ni kwamba? Sababu unaweza si kweli kuwakilisha kila moja iwezekanavyo idadi halisi katika kumbukumbu kwa sababu kuna uncountably wengi wao. Hivyo sisi ni tu na uwezo wa kitaalam kuwakilisha kiasi kidogo cha yao na kiasi kidogo cha data. Lakini ni kweli kuvutia. Sasa hii anaomba swali la jinsi wewe ungekuwa kwenda juu anayewakilisha huu kwa bits, haki? Hivyo ni jinsi ni ikifungwa kuhifadhiwa? Na integers ilikuwa rahisi. Lakini pamoja na ikifungwa unataka kuongeza mbalimbali, na unataka kuwa na uwezo wa kuwakilisha idadi kubwa na namba vidogo sana kama 0.000001 wakati huo huo. Hivyo tena, mchezo huo. Je, mtu yeyote kuwa na wazo lolote jinsi tunaweza kwenda juu anayewakilisha kuelea katika kumbukumbu? Tu kutupa kitu chochote. Ndiyo, tafadhali. Watazamaji: [inaudible] kama kama ilikuwa ints mbili na moja kuwa [inaudible] na kuwa moja kila kitu baada ya uhakika decimal. GABRIEL: OK, baridi. Hivyo integers mbili tofauti. Unaweza kuwa 12.45, hivyo hiyo ni 12 na 45. Nzuri. Nini kabla ya kuwafikia wewe kwenda kusema? kitu kimoja? Yeah? Watazamaji: [inaudible] nukuu ambapo tofauti ya msingi. GABRIEL: nukuu ya kisayansi, yeah hiyo ni kawaida nini kinatokea. Hivyo hii ni kile kinachoitwa mantissa. Hiyo ni nini ni kweli idadi, na kisha exponent ni tu ambapo comma ni, haki? Hivyo hii ni kwenda kuwa kitu ya aina 1, 2, 3, 4, 5 mara 10 minus 4. Mimi tu barabara that-- yeah, hasa. Na kisha hii 10 bala 4 ni kwenda kufafanua ambapo comma yaani, OK? Katika Brazil sisi kutumia comma. Hapa guys kutumia dot. Hivyo dot. Na hii ni ya baridi, kwa sababu kisha unaweza kuzingatia kura ya bits yako juu ya guy hii hapa, juu ya mantissa, na kisha kwamba itakuwa usahihi yako halisi. Na unaweza kufanya hivyo aidha katika alisema au katika binary mfumo wa msingi. Kuna tofauti njia ya kutekeleza hili. Maswali? Ndiyo? Watazamaji: Jinsi maeneo mengi baada decimal [inaudible]? GABRIEL: Hilo ni swali ngumu, sababu ni kweli kamwe 100% sahihi, kwa sababu kama unaweza kuona hapa, kwa baadhi namba ni 100% sahihi. Naamini kama sisi kuweka 0.5 hapa, ni kwenda kuwa 100% sahihi. Ni kwenda kuwa 0.500000. Hivyo katika kesi hiyo, ni kamilifu. Lakini katika kesi nyingine, ni kidogo sana kamilifu. Katika uzoefu wangu, kama hadi nne, maeneo tano alisema ni pretty sahihi. Kama matumizi ya mara mbili, ni kwenda kwa kuwa njia sahihi zaidi kuliko ile, sawa? Rob BOWDEN: Hivyo tu kutupa baadhi mazingira zaidi katika ikifungwa, Mimi kamwe kukumbuka 100% jinsi spec ya ikifungwa kweli kazi, lakini mimi daima kumbuka kwamba ikifungwa kuanza kupata messy. Hivyo wazo ni kwamba wakati wewe kupata kweli, kweli namba kubwa au kweli, kweli idadi ndogo, sisi kuanza kupata zaidi na zaidi katika kutofautisha kati ya ikifungwa mbili karibu. Hivyo ni jinsi mimi kama kufikiri kuhusu ni na yaliyo hatua kutokuwa sahihi, kuna ikifungwa mbili kwamba kama mimi kujaribu kutaja yao katika C, licha ya ukweli kwamba wao ni namba tofauti, wao ni kwenda kuwa kufasiriwa kama idadi sawa, sababu hatuwezi kuhifadhi yao tofauti. Tunahitaji kutumia bits huo. Na hivyo wakati sisi kupata kweli, idadi kubwa kweli, kuzungumza kama 10-300 au kitu, ni katika hatua hiyo kwamba 10-300 au Mara 5 10-300 hawezi kutofautishwa kutoka 7 mara 10 hadi 300. Hivyo hiyo ni tofauti kubwa pretty kati ya namba mbili. Lakini basi wakati kupata chini kawaida mambo mbalimbali, wewe huwa na kuwa pretty nzuri saa kutofautisha. Na kisha wakati wewe kupata chini kweli ndogo, wewe pia kupata pretty mbaya tena. Hivyo kama rundo zima la 0.0000, anapata pretty mbaya. GABRIEL: Yeah, hivyo kumbuka haraka. Kamwe kufanya hivyo. Kamwe kujaribu kulinganisha ikifungwa kutumia sawa sawa, kwa sababu hata kama uko karibu huo, karibu sawa si sawa. Hivyo nini kawaida kufanya ni wewe Ondoa yao, kuchukua thamani kamili ya kwamba, na kuona kama hiyo ni ndogo kuliko 0.0001 au kitu kama hicho, sawa? Na baridi. Najua mengi ya watu kuwa baadhi background katika Java, hasa wale ambao walifanya AP sayansi ya kompyuta, haki? Na Java ni lugha kwamba zaidi kulingana na C, ina wanandoa tofauti kubwa sana. Lakini kwa tanzi, na ikiwa na mambo kama kwamba, wao ni wote syntax huo. Nina mipango chache hapa kuonyesha hii. Hivyo kwa mfano, rahisi hujambo dunia. Hii ni hujambo dunia katika C, ambayo guys ni dhahiri ukoo na, na hii na hii moja ni katika Java. Hivyo katika Java tuna hii darasani umma, hujambo dunia, na umma tuli utupu kuu, na kamba args. args kamba ni kwenda kuonekana katika C muda mfupi sana. Lakini hebu kwenda huko bado. Hivi sasa tuna utupu hapa, ambayo ina maana kwamba kuu ni kuchukua hoja yoyote. Na kisha tuna system.out.println, na kwamba aina ya sawa kwa printf. Hapa sisi si kweli haja backslash n kwa sababu magazeti ln gani kwamba kwa ajili yenu. Ni appends backslash n mwisho wa mstari. Lakini kama wewe kwenda katika kitu kama kwa, wewe unaweza kuona kwamba wao ni pretty much kitu kimoja. Hivyo initialization, na hali, na update is-- mimi amekosa nafasi here-- wao ni pretty much kitu kimoja, ila Java ina kama wachache zaidi mambo ya kiwango cha juu. Hapa tunaweza kufanya pamoja na mimi na Java mapenzi moja kwa moja kufanya hii i hapa, ambayo ni integer, ndani ya kamba, na kisha append mbili masharti pamoja. Hapa katika C sisi haja ya kufanya &% d. line hapa, kwa inaonekana sawa. Na kama sisi kuangalia kama, ikiwa pia kuangalia sawa, haki? Hivyo kweli tofauti kubwa ni katika mambo ambayo unaweza kuona hapa. Tuli umma, batili, na basi darasani umma kama. Hivyo Java ina nini aitwaye mashine virtual. Na ni sana sana kulingana na kile inaitwa kitu oriented programu, ambayo ni sana, kawaida sana dhana kwa ajili ya programu ya siku hizi. Na jambo hili darasani ni nini kuona, kitu kutoka kitu mwelekeo, ni kujenga daraja na kisha unaweza hupata vitu kutoka darasa kwamba. Sisi siyo kwenda kuzungumza pia mengi kuhusu kwamba katika CS50, lakini hiyo ni dhahiri kitu kweli baridi, hasa kama unataka kwenda katika maendeleo ya kisasa zaidi ya mtandao mwishoni mwa kozi, kama kuwasilisha mradi wako wa mwisho na mifumo ya baadhi nzuri na mambo ya ajabu. Hivyo kimsingi wazo ni kwamba hawataki tena kutekeleza jambo fulani, hivyo kujenga kitu ambacho ni generic sana, kama sura, na kisha kujenga maumbo tofauti na hilo, na kisha kutoka kila maumbo haya, kujenga baadhi ya maumbo maalum zaidi katika tatu vipimo au kitu kama hicho. Na wao kuwa na uongozi huu wao kurithi kutoka kwa wale wengine, hivyo kazi zote na vigezo vyote sura kubwa hapa ina, yote haya ni kwenda na, na yote haya ni kwenda na, na kadhalika na kadhalika. Hivyo hiyo ni wazo msingi. C haina kwamba, lakini C ++ gani kuwa aina hiyo ya kipengele. Na Java uzito kusukumwa na kitu mwelekeo, hivyo ndiyo sababu unaweza kuona darasani hapa wakati wote. Na jambo jingine ni hii Java virtual mashine. Hivyo hii, nadhani, ni wazo smart sana. Hivyo kile folks ambao zuliwa java alifanya ni wao hawakutaka kukusanya kanuni zao mara mbili kama alikuwa na kukimbia katika Windows, au Mac, au Linux, hivyo nini kufanya ni wao halisi kukimbia kitu kama appliance, lakini si kweli kuona kinachotokea. Hivyo kukimbia mashine virtual ndani ya kompyuta yako, ambayo kimsingi ni kama mini mfumo wa uendeshaji. Na kwamba uendeshaji mfumo ya kusudi katika maisha ni tu ya kuendesha kile kinachoitwa Byte kificho. Hivyo badala ya mwaka C, njia ya sisi ingekuwa kukusanya hii ni kufanya kama, na kisha kukimbia ./if. I forgot backslash katika. Katika Java, ungependa kufanya kwanza Java C kukusanya yake, if.c. Siyo C. Ni ya dot java. Na kisha una kukimbia si ./. Kupata faili hii mpya if.class, lakini unaweza si kweli kukimbia if.class sasa tu kama tulivyofanya kabla. Hii si kutekelezwa. Una kukimbia. Una kulisha ndani mpango ujulikanao Java, na mpango kwamba ni mashine virtual, na kisha kufanya if.class, au kama. Ndiyo. Na kisha ni kazi. OK hivyo hii ni aina ya mashine virtual kinachotokea. C hana kwamba, hivyo kama ningekuwa kuweka mpango huu katika mashine Windows, itakuwa si kazi katika C. Katika Java ni gani. Maswali? Baridi. Hiyo ni kama kwa sehemu super kwa leo.