[Music kucheza] ANDI PENG: Hii ni CS50, na kuwakaribisha kwa wiki mbili za sehemu. Hii ni kweli wakati wiki wawili wa class-- yetu kweli, wiki ya kwanza tulikuwa na sehemu. Show ya mikono, jinsi wengi wenu zote alikuja sehemu super wiki iliyopita? OK, hiyo ni sawa. Hiyo ni sawa. Ni wangapi wenu watched kifungu cha super wiki iliyopita? SAWA. Na nyie alifanya faini juu ya tatizo kuweka moja? Hivyo nina kwenda kuchukua ni kwamba tuna rundo la kweli akili ya watoto katika darasa hili na mambo itakuwa vizuri. SAWA. Hivyo first-- Kwanza, tunakwenda tu kwa ufupi kwenda juu ya ajenda kwa leo. Tutaweza majadiliano juu ya kozi za usafirishaji. Mengi ya pengine una maswali kuhusu jinsi mambo kukimbia katika kozi hii. Tutaweza kujibu yao. Tunakwenda kwa ufupi kwenda juu mizunguko katika kesi yoyote ya nyie amekosa sehemu super. Tutaweza majadiliano juu ya ramani ASCII. Tutaweza majadiliano juu ya arrays, kazi, hoja mstari amri. Na hatimaye, nini nyie pengine wote kweli unataka kuwa hapa kujifunza kuhusu, ni pset2 yako. Kutakuwa na baadhi ya mbinu nzuri na tips kwa jinsi ya kufanya hivyo. SAWA. Pia, pili, tuna kura ya pipi hapa. Mtu yeyote ambaye anapenda pipi, tu kuja hapa. Kunyakua baadhi. Nina rundo. Tuna tani katika ofisi. Mimi si kweli wanataka kula pipi siku zote. Nyie lazima kula pipi wote, kwa sababu mimi kuletwa hapa kwa nyie. Tu kula pipi. Kutakuwa na pipi kila sehemu. Hivyo kwanza, mimi ni nani? Jina langu ni Andi Peng. Mimi ni kichwa TA wa CS50 hapa katika Yale. Na kwa kuongeza kwamba, mimi pia be-- kama mtu yeyote bila like-- mbio yako buddy, bega yako kulia juu ya. Kama usiku kabla kutokana pset yako, hawana wazo nini kinaendelea, hit me up. Tutaweza commiserate pamoja, na kadhalika. Tu kujua kwamba mimi niko hapa kama rasilimali kwa ajili yenu kama mstari wa mbele katika kusaidia nyie kufikiri jinsi kutatua matatizo katika CS50 na kwingineko. Email yangu ni andi.peng@yale.edu. Mimi itabidi pia kutuma nje ya mtu binafsi email na simu yangu namba ndani yake hivyo kwamba si kila mtu juu ya biashara unaweza kuona simu yangu idadi. Kujisikia huru simu yangu wakati wowote. Umakini, simu yangu ni kawaida masharti ya mkono wangu. Siwezi kujibu ndani ya dakika kadhaa. Siwezi kujibu ndani ya masaa kadhaa. Lakini Naweza kuthibitisha, ikiwa wewe e-mail yangu, kama wewe simu yangu, Nakala mimi, mimi kujibu ndani ya masaa 24. Mara nyingi, mimi itabidi kujibu kabla kwamba, kwa sababu mimi kuelewa kwamba kila mtu got baadhi ya matatizo, na unataka majibu yako kujibiwa kwa haraka sana. Hata hivyo, kama wewe piga mimi dakika 30 kabla kwamba kipande kwamba ni kutokana Alhamisi night-- kuwa kama, Andi, nisaidie, Mimi si started-- nipate kuwapa wewe kuwa bega kwa kilio juu. Lakini inaweza kuwa muda wa kufikiria kuhusu jinsi ya kufanya hivyo wakati ujao. SAWA. Oops. Je, mimi kurudi nyuma? Kuna sisi kwenda. Hivyo katika kozi hii, tuna tani ya msaada kwa ajili ya kila mtu. Mbali na tu sehemu hapa, ambayo wewe kila wiki kupata kwa kutumia 90 Dakika ya ajabu na mimi, sisi pia kuwa masaa ya ofisi. Ni wangapi wenu guys kuwa tayari wamekuwa na masaa ya ofisi kwa ajili ya kusaidia? Kubwa. Hiyo ni nzuri kwa kweli kuona, kwa sababu sisi na wafanyakazi wa zaidi ya 45 TAS na CAS mafunzo kwa kozi hii kuwa ni hapa kwa ajili ya kusaidia nyie na psets yako. Jumatatu wao ni uliofanyika katika TEAL darasani katika 17 Hill House hapa katika Yale. Jumanne na Alhamisi, re uliofanyika katika commons. 8:00-11:00 pretty much kila wiki. Karibu, kutoka nje. Tatizo lolote, hakuna problem-- kuja juu tu katika, na kisha tutaweza kukusaidia nje na kwamba. Pili, pamoja na masaa ya ofisi na sehemu, sisi pia kuwa kaptula. Kuna mtu yeyote milele kuonekana michache ya kaptula au walkthroughs katika video kwenye tovuti? SAWA. Hivyo wao ni kweli, kweli kusaidia. Harvard yetu nzuri ya uzalishaji timu zaidi ya hapo juu kwamba shule hadi kaskazini, wao zingine na zinazozalishwa hizi ajabu walkthrough video. Wao itabidi kuchukua wewe hatua kwa hatua kupitia jinsi ya kwenda juu ya kutatua tatizo. Mara nyingi, ikiwa ni kuchanganyikiwa kuhusu dhana rahisi, dhana ya umoja, tuangalie, kwa sababu sisi pengine mfupi juu ya mahali fulani kwenye tovuti yetu. Na ni kawaida rasilimali kubwa kuangalia kwa wakati wewe ni wa kwanza waliopotea juu ya jinsi ya kushughulikia tatizo hilo. Tatu, sisi pia kuwa study50 na reference50. Hivyo kujifunza juu ya 50 tovuti ni tu kiungo. Ni, nadhani, study.cs50.net au kitu kama hicho. Tu Google ni. Sisi wana kura ya slides tayari. Sisi wana kura ya kaptula na mambo walkthroughs-- zote ulioandaliwa nzuri sana na nadhifu kwa nyie zote kuvinjari kwa njia, angalia dhana yoyote kwamba wewe ni kuchanganyikiwa kuhusu. Ni d pengine kufunikwa zaidi ya hapo katika study50. Reference50-- sawa. Tuna mengi ya maelezo mbalimbali hazijapatikana kwa ajili ya ovyo wako. Na Mwisho, tuna nini aitwaye CS50 Jadili, jukwaa ambalo, kama usiku kabla unafanya matatizo yako, kusema, una swali. Kuingia kwenye CS50 Diskutera. Baada ya swali lako. Na kisha moja ya hundreds-- pengine, thousands-- wa rika kuchukua darasa hili online itakuwa kuingia katika. Na labda mtu anaweza kupata jibu lako kabla TA can. Ni kimsingi tu jukwaa online kwamba tunaweza zote kutumia ili kujadili matatizo yetu. Hiyo ni poa. SAWA. Hivyo tatizo seti. Sisi ni juu ya haki katika nene ya tatizo kuweka mbili. Wengi wetu tayari alijitahidi kuweka tatizo moja. Sisi tayari kujua kwamba labda kusubiri kwa usiku wa mwisho wa kufanya pset yako si jambo smartest kufanya katika CS50. Tips na vidokezo kimsingi kwa mafanikio ni kusoma spec nzima. Ni wangapi wenu tayari kusoma spec kwa pset 2? SAWA. Hiyo ni kiasi imara. Najua nyie kuwa pengine kutambuliwa na sasa specs ni kweli kwa muda mrefu. Wao ni kweli, kweli kwa muda mrefu. Ni kweli ni vigumu kusoma kila mstari ya kwamba kwa makini neno kwa neno. Unataka tu skim kwa ambapo anakwambia kufanya kitu fulani. Naweza kuthibitisha, si kufanya hivyo. Kama wewe kufanya hivyo, wewe pengine kwenda miss mahali fulani ambako atakwambia jinsi ya kuanza tatizo au anakwambia nini cha jina tatizo lako au anakwambia, hii pengine ni njia bora kuanza kufanya tatizo lako. Na kisha utasikia kupotea. Wakati kujaribu kusoma yako spec nusu ya njia, mengi ya muhimu information-- katika kwamba wewe si kwenda kuwa na uwezo wa kweli kupata. Hivyo kusoma spec nzima. Jaribu kusoma spec nzima kabla ya kuja kwa sehemu, kwa sababu wakati huo, wakati sisi majadiliano juu ya pset, sisi wote kuwa na wazo ya nini kinaendelea. Pili, hii ni dhana kwamba mimi itabidi kama rejea mengi katika mwenendo muhula. Lakini kimsingi, kukutana na sisi nusu, sawa? Mimi, kama TA yako na Jason kama kozi meneja na Scaz kama profesa yako na Daudi kama profesa yako na wote wa wengine TAS nzuri katika kozi hii, wasaidizi katika kozi hii hii sisi kufanya kazi nzuri ili kuhakikisha kuwa wewe ni kuweka hadi kufanikiwa katika kozi hii. Sisi itafanya sehemu. Sisi itafanya masaa ya ofisi. Sisi kujibu simu yako wito, kujibu barua pepe yako, kufanya kila kitu tunaweza kufanya uhakika maswali yako ni akajibu. Hata hivyo, kutusaidia nje pia. Kukutana na sisi nusu. Kama wewe kuja masaa ya ofisi si alikwenda kwa sehemu, si baada ya kuona mihadhara, kutokuwa na sijui nini kinaendelea, kuwa kama, nisaidie. Mimi nina kwenda kuwa kama, vizuri, mimi nina pole. Huenda wakati wa kutoa mikopo kuwa bega kwa kilio juu, kwa sababu mimi nina uhakika nini siwezi kufanya ili kukusaidia kama huna kujaribu angalau msaada mwenyewe kidogo katika mwanzo. Kukutana na sisi nusu. Unajua, tafadhali kuja tayari kujibu na kupata tayari kushiriki katika nyenzo. Ni hufanya mambo mengi rahisi kwa kila mtu kushiriki. Yeah, hiyo ni pretty kiasi. Grading. Kadhalika mtaala, ni pretty kina kuhusu jinsi sisi daraja. Lakini kimsingi, kuvunjika katika hili ni 50% ya daraja yako itakuwa psets, ambayo ni nzuri, kwa sababu hiyo ni ambapo wewe ni matumizi makubwa Wengi wa kozi muda wako juu. Quizzes 40%, na yako mradi wa mwisho itakuwa 10%. Kutakuwa na mbili Quizzes katika kozi ya muhula. Nadhani nyakati na majira ni pia waliotajwa kwenye mtaala. Njia ambayo sisi kuwa grading psets yako ni kwamba tuna kimsingi nne maadili ambayo sisi kuwapa ya kila daraja. Tuna thamani ya wigo, usahihi, kubuni, na style. Hivyo kama unaweza kuona, hiyo ni aina ya yetu fomula kwa ajili ya kuhesabu psets. Tatu tunatoa zaidi uzito kwa usahihi, sababu ni wazi kocha yako lazima kupima kwa kesi kwamba tunataka mtihani kwa. Nyie wote wana check50 ovyo wako. Ni kazi muhimu sana kwamba nyie Unaweza zote kupakia kanuni yako kwa server yetu, ambapo sisi kuangalia ni kwa ajili yenu. Na wameweza kuona wale nyuso frowny, nyuso smiley. Wao ni kweli, kweli kusaidia. Tafadhali usiwe mwanafunzi kuwa kama inajaribu kwa Hardcode katika majibu yote kwa wao. Nimekuwa dhahiri kuonekana pset ambapo mtu aliona maadili yote ya check50 na wao kwa bidii tu kutolewa in-- kama idadi hii, magazeti nje idadi hii. Kama idadi hiyo, magazeti nje idadi hiyo. Je, si kufanya hivyo. Japokuwa kitaalam check50 ni sahihi, njia yako ya kutatua Tatizo siyo sahihi. Hivyo tu kutumia check50 haba. Lakini pia kuhakikisha kuwa wewe kuelewa ni jinsi gani kazi, Mpango ni kazi pamoja na check50, kwa sababu hatuwezi mtihani kila Inawezekana kesi ya check50. Tutaweza kuwa kupima baadhi yao. Mtindo huo ni kimsingi, jinsi pamoja iliyoundwa ni kanuni yako? Kama wewe ni nakala-pasting nyingi mstari wa kanuni mara nyingi sana. Labda huna kabisa kubuni bora katika kanuni yako. Labda ni wakati wa kuongeza kuwa kitanzi. Kimsingi, hapa ni tu zote kuhusu kujaribu kufanya kanuni yako, kujaribu kuandika kanuni yako kama ufanisi iwezekanavyo ili anaendesha mpango wako haraka iwezekanavyo. Mwisho, tuna style. Hivyo mtindo ni aina ya kiholela, lenyewe mrefu. Najua sisi ni rasmi na mwongozo style 50 kwa CS50, ambako atakwambia, loo, wewe wanapaswa kuwa na nafasi hapa. Unapaswa aina ya format kanuni yako kwa njia hii. Unapaswa kutaja mambo kwa njia hii. Mimi si kweli huduma, per se, jinsi kuchagua style kanuni yako, tu kwa muda mrefu kama wewe kukaa thabiti. Kwa mfano, kama wewe kama kuacha nafasi baada ya nne yako kabla yako kitanzi nne, tu kufanya hivyo kila wakati. Je, si aina ya kufanya hivyo. Je, kufanya hivyo nyakati nyingine. Kama wewe kama kuweka curly braces nafasi njia fulani, tu daima kufanya hivyo. Je, si aina ya kufanya hivyo mahali fulani hapa na mahali fulani si huko. Wakati sisi ni grading, kwa hakika ni vigumu kama mimi hawana wazo jinsi wewe ni formatting kanuni yako, mambo ni wacky na nje ya mahali. Kama wewe tu kushika ni thabiti, ni rahisi sana kwa mimi kama mkuu kuwa na uwezo wa kusoma kanuni yako. Ni rahisi sana kwa wewe kama mwanafunzi kuwa na uwezo wa kuangalia njia ya kanuni yako na kuona nini mbaya na ni kufyeka nini kuna masuala. Style ni moja ya mambo rahisi nyie wanaweza kufanya ili kupata alama kamili. Kimsingi, kama wewe tu huduma, ikiwa kulipa dakika tano ya tahadhari na kanuni yako kila wiki, unapaswa kuwa kupata pointi kamili style. Mwisho, tuna kile kinachoitwa multiplier ya wigo. Scope-- Najua ni kubwa neno, hasa katika darasa hili. Lakini upeo, njia kwamba wote ni kwamba wewe ni kujaribu psets kwa kadri ya uwezo wako. Kama kurejea katika tatu kati ya yako matatizo nne na wala hata jaribio mwisho moja, wewe pengine kwenda kupoteza pointi baadhi ya wigo. Hata kama wewe tu kuanza tatizo, kufanya bora yako ya kutembea kwa njia hiyo. Hata kama hana kazi, kurejea katika, kwa sababu hiyo inaonyesha na inaonyesha kwetu kwamba wewe ni kujaribu, kwamba wewe alijaribu kuweka tatizo kwa kadri ya uwezo wako. Na kisha tunaweza kukupa pointi kamili kwa upeo. Wigo ni muhimu sana kwa wakati sisi pia majadiliano juu ya chini pset alama kushuka. Hivyo katika kipindi cha muhula, nyie na psets tisa. Na sisi kwa kweli kuacha alama ya chini nje ya wale tisa, lakini kama tu una pointi full wigo. Hivyo kama wewe kugeuka katika pset pungufu, kwa bahati mbaya, hatuwezi kuacha kwamba mmoja, kwa sababu upeo wako pointi walikuwa si kukamilika. Hivyo hata kama una wiki kubwa ambapo wewe ni kufa na wewe ni mgonjwa au mbwa wako akifa, paka wako akifa, na wewe ni overloaded na kazi za nyumbani, kujaribu tu pset. Kufanya hivyo kwa kadri ya uwezo wako. Kama haifanyi kazi, haijalishi. Tu kugeuka kuwa katika. Angalau tunaweza kutoa wewe pointi kwa juhudi. A kwa juhudi katika darasa hili. Kwa uchache chini ya alama kushuka kwa juhudi. Hivyo yeah. Hiyo ni pretty kiasi. Je, mtu yeyote una maswali hivyo mbali juu ya jinsi sisi Daraja darasani? Au kimojawapo cha vitu hivi? Kimojawapo cha vitu hivi ili far-- sehemu, masaa ya ofisi? Baridi. SAWA. Hivyo hii ni somo kwamba hakuna mtu kweli anapenda kuzungumzia. Mimi si kweli kama kuzungumza kuhusu suala hilo. Nyie si kweli unataka kusikia mimi kuzungumza kuhusu suala hilo. Lakini kwa bahati mbaya, sisi wote na kuzungumza kuhusu suala hilo. Daudi alitumia muda wa dakika 20 hotuba kuzungumza kuhusu suala hilo. Na kwamba ni chini ya uaminifu kitaaluma. Hivyo sisi wote hapa kuwa pengine imeandikwa insha wakati mwingine katika kazi yetu Yale. Tumekuwa pengine wamezipata majadiliano ambapo tumekuwa ameambiwa na si plagiarize insha zetu, kwa sababu kazi hiyo ni siyo yetu. Katika sayansi ya kompyuta, tuna aina hiyo ya dhana. Kazi zote kwamba kuwasilisha, zote kificho kwamba kuandika lazima kificho kwamba umeandika. Haipaswi kuwa kificho kwamba wameweza kunakiliwa kutoka mahali pengine. Haipaswi kuwa kificho kwamba umefanya googled na plopped katika na wewe kwa kweli sijui kama ni kazi. Aina ya kuwa na hisia ya nini ni kufanya lakini si kweli. Wakati katika shaka, kimsingi, ni tu kuwa na busara. On mtaala wetu, tuna orodha nzima ya mambo tunaona kama busara dhidi si busara. Kwa mfano, busara ni wewe na rafiki yako kujadili nini njia bora ya kwenda kuhusu mantiki ya kutatua tatizo. Hiyo ni haki ya kuridhisha. Nini isingekuwa busara kama wewe ni guys got pamoja, typed kificho huo, na akageuka katika kanuni hiyo. Hiyo si nzuri. Same kitu, aina ya insha. Kama unataka kujadili na rafiki yako, hey, hii ni nini nataka kuandika kuhusu. Hizi ni hatua Nataka kuchukua kuandika kuhusu hilo, mkuu. Hiyo ni ajabu. Tafadhali kushirikiana na kila mmoja. Kama nyie kuanza kuandika kitu kimoja, kugeuka katika insha huo, hiyo ni chini Sawa. Hivyo wakati katika shaka, si tu kufanya hivyo. Hapa, sisi katika CS50, tuna maandiko kwamba kukimbia aĆ­tomate mtihani si tu usahihi wa kanuni yako, lakini pia pekee ya kanuni yako. Hivyo tafadhali wala kuweka yetu katika nafasi ya kuwa na kupeleka kesi yako kwa EXCOMM. Tafadhali tu kwa kila mtu, hebu tu kufanya hili uzoefu wa ajabu. Kila mtu anajifunza vizuri, sisi wote ni furaha, na sisi wote ni kuanzisha kufanikiwa katika kozi hii. Kitu ambacho ni sana kipekee kuhusu darasa hili kwamba nadhani kila mtu lazima kweli makini na ni kwamba tuna kile kinachoitwa majuto kifungu katika mtaala wetu. Hivyo kimsingi, ndani ya masaa 72, ikiwa unaamini tumefanya kitu wewe si kweli na uhakika ilikuwa sahihi, tafadhali kuja kwetu. Sisi ahadi kwamba ndani ya masaa 72 sisi kushughulikia kesi wenyewe bila akimaanisha juu mamlaka katika utawala. Hivyo kama wewe kuja kwangu na kusema, Andi, hey, mimi nina kweli pole, lakini nadhani kuna mistari michache katika wangu kificho jana usiku kwamba mimi aina ya googled, got off ya Stack Kufurika, nakala na pasted, na mimi nina kweli, kweli pole juu ya hilo, basi mimi kujua. Tafadhali wala tu basi ni fester na matumaini kwamba mimi kukamata yake. Sisi kukamata yake. Tu kuja kwangu. Napenda kujua ndani ya masaa 72. Tutaweza kufikiri ufumbuzi. Na sisi ahadi kwamba sisi si kutaja Mamlaka chuo kikuu kimsingi. Hivyo ni kwa maslahi yako bora tu kuwa waaminifu na kila mtu kushiriki katika shaka. SAWA. SAWA. Hivyo sasa, kwa haraka kabla ya Mimi kusonga mbele, hana mtu una maswali kuhusu vifaa jinsi kozi tunakwenda kukimbia, jinsi sehemu ni kwenda kukimbia, yoyote ya kwamba? SAWA. Naam. Watazamaji: [inaudible]? ANDI PENG: Naam. Hivyo quizzes-- jinsi wengi wenu ni katika sehemu Jumatatu / Jumatano? Ni wangapi wenu walio katika Jumanne / Alhamisi? OK, hivyo ni mgawanyiko imara hapa. Hivyo njia kwamba sisi kukimbia ni katika Yale ni kwamba sisi ni kwenda na tofauti mbili quizzes-- moja kwa kila section-- kwamba zitachukuliwa wakati wa darasa. Nadhani ni Oktoba, mwishoni mwa Oktoba, kitu kama hicho, kama wiki moja ya jaribio. Yeah, hivyo kuja tu darasani. Juu ya kwamba Jumatatu au Jumatano, utasikia kuchukua jaribio. On kwamba Jumanne au Alhamisi, utasikia kuchukua jaribio tofauti. Lakini vifaa hivyo itakuwa kufunikwa. Naam. Nzuri swali. Naam. Watazamaji: kufanya wapi sisi kwenda kuangalia darasa letu? ANDI PENG: Naam. Hivyo Nitawatumia nje barua pepe chochote kila wiki wakati Quizzes ni graded-- au, pole, wakati psets ni hadhi. Psets ni kawaida akageuka katika na mchana au Ijumaa. Hivyo mimi ahadi kwamba mimi kujaribu kupata yao nyuma yenu na mchana wa Ijumaa iliyofuata. Wakati mimi Daraja pset, nitaleta nje taarifa juu ya kitabu daraja kwamba anaelezea alama yako inaweza kutazamwa online. Hivyo haki wiki hii, baada ya mimi kumaliza grading psets wiki iliyopita, nyie kupata barua pepe taarifa nawaambia, hey hii ni wapi kwenda kuona darasa lako. Na unaweza kuona kila kuvunjika kwa darasa lako. Unaweza kuona comments. Oh, jambo haraka pia. Sehemu ya maoni katika kubwa kitabu ni mahali ambapo mimi itabidi pengine kutumia idadi kubwa ya muda wangu grading. Kwa hiyo, jambo moja kwamba ni kweli ni muhimu wakati nyie ni kuangalia darasa yako kwenye psets yako si tu kuangalia katika alama za kimwili lakini pia kuchukua muda wa kweli kusoma maoni yangu. Mara nyingi kwamba anatoa maoni juu ya jinsi wewe ni kutatua tatizo. Kama unahitaji kufanya kitu kidogo bora, upinzani kujenga kawaida ni bora uliotolewa katika sehemu ya maoni hayo. Hivyo tafadhali, tafadhali, mimi nina kwenda kutumia muda kuandika maoni. Tafadhali, napenda kweli kufahamu ni kama wewe guys ingekuwa kusoma maoni hayo. SAWA. Baridi. Sawa. Hivyo sisi ni kwenda kuanza kuzungumza na tu kupitia upya haraka baadhi ya vifaa kutoka wiki sifuri tu hivyo tuko juu ya ukurasa wa kulia kwa mwanzo matatizo ya wiki hii. Hivyo kitanzi wakati ni moja ya tatu aina ya mizunguko sisi kujadiliwa mapema katika darasa hili. Kitanzi wakati kimsingi Imeandikwa katika syntax ambapo, wakati hali fulani, kufanya hivyo tena na tena, sawa? Fikiria ni katika hii graphic hapa. Wewe ni kwenda kuanza saa hatua fulani katika kanuni yako. Wewe ni kwenda kuingia hali kitanzi if-- mimi hamjui x ni chini ya moja. Kama hiyo ni kweli, wewe ni kwenda kutekeleza kitanzi mwili. Na wewe ni kwenda kuendelea kufanya kwamba tena, tena, tena, tena na over-- ambayo ni kwa nini ni loop-- mpaka hali yako inakuwa uongo. Hivyo kwa njia hii, wakati kitanzi ni moja ya njia rahisi kuandika aina yoyote ya masharti kwamba mahitaji ya kurudia tena na tena na tena. Tu kuwa makini wakati wowote wewe ni kuandika aina yoyote ya kitanzi kwamba una hali ya kutoka vile pamoja na update kwa chochote ni ili kitanzi yako haina tu kukimbia tena na tena kubwa. Katika hali yoyote, wewe ni kwenda kutaka kuhakikisha kuwa wewe ni kubadilisha baadhi ya nyanja ya kanuni yako au mwishoni mwa kitanzi tu kuhakikisha kwamba una njia ya inaendelea kuelekea hali kwamba unataka kukutana na mwisho. Je, hiyo mantiki kwa kila mtu? Sisi tu hawataki kuwa hawakupata juu katika ond hii ambapo sisi kwenda kwa kuzunguka na hakuna njia ya kuvunja kitanzi. Na kila kitanzi kimsingi ina njia ya kufanya hivyo. SAWA. Pili, wengi wenu katika yako Mario psets pengine alikuwa kuajiri aina hii ya kitanzi. Hiyo inaitwa kufanya wakati kitanzi. Awali ya yote, yeyote anaweza kuniambia nini tofauti kati ya kufanya kitanzi wakati na kitanzi wakati ni? Naam. Watazamaji: kufanya wakati kitanzi anaendesha kwa mara ya kwanza [inaudible]. ANDI PENG: Yeah, kwa uhakika. Hivyo kufanya wakati kitanzi daima gani chochote ni ndani ya do, ndani ya mabano kuna na anafanya hali hiyo kabla ya kuangalia kwa the-- pole, je, hiyo kificho kabla kuangalia kwa hali hiyo. Na hii ni hasa muhimu kwa sisi hapa katika darasa hili, kwa sababu mara nyingi tunakwenda wanataka kuchochea user kwa aina fulani ya pembejeo. Na kisha, kutegemea pembejeo wao kutupatia, basi tunaweza kutathmini, loo, kufanya tunahitaji kuwashawishi tena? Hivyo katika Mario, kama mtumiaji aliwapa urefu hasi, kwa mfano, wewe ni kwenda haraka kwanza na kufanya chochote ni ndani. Kisha utaenda kuangalia wakati. Unajua, ni hasi 1, ni kwamba idadi chanya? Kama siyo, mimi nina kwenda nyuma na kurudia na kurudia kufanya na kurudia na kurudia mpaka hatimaye kukupa idadi hiyo wewe kama, tuweze zote kuajiri katika kanuni zetu. Ni pretty muhimu kwa kimsingi mchango wowote kwa mtumiaji. Naweza kuthibitisha yoyote wakati katika pset ambapo tunakuomba pembejeo aina yoyote ya kificho, tuko pengine ni kwenda kukupa kesi mtihani ambao tuko kwenda kukupa jambo baya hiyo ni kwenda kujaribu kuvunja kanuni yako. Kama sisi kujaribu kuuliza wewe pembejeo an integer, tunaweza kukupa kamba tu na kuona ni jinsi gani ingekuwa kushughulikia jambo hilo. Kama tunakuomba kuajiri umri, sisi inaweza kukupa namba hasi kuona jinsi gani kushughulikia hilo. Tu kuhakikisha nyie ni kupima kwa kesi ambayo huwezi kupata bora pembejeo, hebu sema tu. Na kufanya wakati kitanzi ni mara nyingi bora njia ya kubuni kanuni yako hivyo kwamba hukutana kwamba wigo. SAWA. SAWA. Hivyo hii pengine ni tata kitanzi nje ya tatu kwamba tumekuwa inaonekana katika hadi sasa. Na inaonekana sana inatisha kwa mara ya kwanza. Lakini Mimi kuhakikisha, kwa mara nyingine nyie kupata hutegemea jinsi ya kutumia kwa kitanzi, ni moja ya mambo muhimu sana, zana zaidi na manufaa katika ghala yako kwa kusonga mbele katika darasa hili. Hivyo kwa mfano, katika Scratch, tulikuwa na kuzuia hii ni rahisi sana kwamba alisema tu kurudia huyu mmoja misemo fulani mara kadhaa. Kwa njia, SAJ-- hiyo ni Scaz Andi Jason. Sisi mara nyingi ishara barua pepe yetu SAJ. Tukisema SAJ, msiwe na kuchanganyikiwa. Hiyo tu sisi. Hivyo katika Scratch, tulikuwa na uwezo wa kuwa na kuzuia kwamba alisema, kurudia nampenda SAJ! Mara 10. Rahisi sana. Mantiki nyuma kwamba ni sana, rahisi sana, sawa? Nataka kwanza kwenda kwa njia ya kwanza muda na kuona kwamba, mara ya pili na kuona kwamba, mara ya tatu, na kadhalika na kadhalika, mpaka hit kwa 10. Na njia tunataka kuwakilisha kwamba katika kificho ni njia rahisi kwa kitanzi. Hivyo kwa, wewe ni kwenda kutangaza kutofautiana yako hapa, katika kesi hii, kwa int. Tunakwenda jina hilo i. Tunakwenda initialize kwa 0. Na kuacha toleo ni kwenda kuwa i ni chini ya 10. Na update ni kwenda kuwa i ++. Na ndani ya kitanzi, ni kwenda kutekeleza mpaka hatimaye hits mwisho wa condition-- ambao kesi, ni kwenda kuvunja kitanzi. Kuna haja ya kuwa mambo ambayo wewe guys kila aina ya kuona mbele na alikuwa na kufanya kwa tatizo lako kuweka moja. Je, mtu yeyote una maswali yoyote kuhusu kwa mizunguko sasa hivi? SAWA. Kubwa. SAWA. Hivyo kwa wale ambao wana kusoma spec pset kwa wiki hii tunajua kwamba sisi ni kwenda na kuajiri kitu kinachoitwa ASCII na meza ASCII. Basi Daudi katika hotuba wakaenda upande wa pili kwa ufupi jinsi ya kompyuta essentially-- kila kitu ni encoded katika kompyuta katika mapacha, katika zeros na ndio. Na kwa njia hiyo kompyuta ni uwezo kuhifadhi maadili tofauti kwa kuongeza kwa zeros na ndio ni kupitia ramani wale idadi kuiwakilisha tarakimu mengine au wahusika kimsingi mengine. Hivyo katika kesi hii, ASCII table-- yote ni gani ni wahusika kwenye ramani, au chars, kwa idadi. Hivyo chanzo kanuni faili katika yako computer-- anaona, hey, kundi la zeros na ndio, zeros na ndio, zeros na ndio. Hiyo ni nini kuhifadhiwa katika kumbukumbu halisi ya kompyuta yako. Lakini wakati sisi binadamu kutaka kuwasiliana na kompyuta, sisi want-- kusema, kwa mfano, kama nataka uppercase A, Mimi nina kwenda haja ya baadhi ya njia ya kuwaambia kompyuta, loo, wakati mimi aina uppercase A, I mean uwakilishi huu katika mapacha. Na hivyo njia sisi kufanya hivyo ni kurusha Jambo holela aitwaye meza ASCII, ambapo sisi, kama binadamu, kama programmers, baadhi ya wakati uliopita, sisi kiholela aliamua kwamba sisi wanakwenda kuwapa idadi hawa maadili kwa wahusika hawa. Hivyo wewe guys unaweza google huu online. Nadhani kuna kiungo yake katika yako pset-- tu meza ramani ASCII, ASCII meza. Ni tu inasababisha mapacha idadi katika wahusika. Na itakuja kuwa sana muhimu kwa ajili ya tatizo kuweka yako kila unataka mahesabu ya kitu chochote au kama wewe wanataka kuonyesha baadhi ya wahusika au integers au kuendesha baadhi ya wahusika. Ni kwenda kuwa sana muhimu kwamba nyote kujua jinsi ya navigate meza ASCII. Hivyo kwa mfano, uppercase A ni kuwakilishwa na idadi 65. Na ndogo a ni kuwakilishwa na 97. Hivyo ni muhimu kujua kwamba Tofauti kati ya maadili mbili ni 32. Mara nyingi, kama unahitaji kubadili kutoka moja hadi nyingine, tofauti ni 32. Na msiwe na wasiwasi kama wewe ni aina ya kuchanganyikiwa juu ya hili kwa mara ya kwanza. Tutaweza kwenda juu ya jinsi tunataka kuajiri hii katika kanuni halisi. SAWA. Hivyo kwa wale wa wewe kwa Laptops nje, kujisikia huru na kuvuta up meza ASCII, kwa sababu hizi pengine zinahitaji nyie rejea nini wahusika ni. SAWA. Hivyo kujua kwamba baadhi ya wahusika ramani kwa idadi fulani, kama ningekuwa kukimbia tu kwanza mstari wa kwamba code-- printf a, Herufi za chini, bala uppercase A. Je, mtu yeyote na nadhani juu ya nini itakuwa uchapishaji nje ya screen hivi sasa? Hivyo kwanza ya yote, ni nini lowercase kuwakilisha? Nini idadi ni kwamba encoded katika meza ASCII. Pole? Watazamaji: 97? ANDI PENG: 97, kubwa. Na ni nini uppercase A? Watazamaji: 65. ANDI PENG: Kwa hiyo ni nini 97 bala 65? Watazamaji: 32. ANDI PENG: Sawa. Basi je, wewe guys kufikiri ni kwenda kutokea wakati mimi pembejeo kwamba mstari wa kanuni ndani ya kompyuta yangu? Watazamaji: [inaudible]. ANDI PENG: Sorry, kuongea. Hakuna wasiwasi. Hii ni salama sana mazingira, bala kamera. Tuko wote kwenda to-- hakuna wasiwasi. Tu sisi ni wote kwenda kujifanya kama ni tu sisi makubwa katika chumba hiki. Hakuna wasiwasi. Hakuna swali la kijinga mno. Hakuna jibu ni jibu kijinga. Mimi pengine ni kwenda kufanya makosa Katika mafundisho yangu. Umakini, guys, tu blurt nje. Kuwa na ujasiri katika mwenyewe, unajua? Kwa hiyo kile ni kwamba? Nani alisema jibu kwamba mwisho? SAWA. Kelele kwamba nzuri na ya wazi. Watazamaji: 32? ANDI PENG: 32. OK, hebu kukimbia hii kanuni na kuona kama kwamba ni nini kinatokea. SAWA. Hivyo kama wewe guys unaweza aina ya ona, mfano nukuu nimekuwa kuanzisha hapa kwa jinsi gani tunataka kuajiri aina yoyote ya mpango katika kompyuta yetu. Tuna kazi yetu kuu ndani ya kazi yetu kuu. Mimi tu kwenda na nakala na kuweka mstari wa kanuni. Pia kuwa makini wakati nyie ni kuiga na pasting code. Waendeshaji wakati mwingine baadhi ya si kuweka juu ya usahihi. Katika kesi hiyo, bala ishara kwa kweli dash. Na hivyo kompyuta hakuwa pick it up. Hivyo ilibidi kurudi nyuma na kimwili retype hiyo. Tu kuwa makini wakati nyie ni kufanya hivyo. SAWA. Sisi ni kwenda kukimbia hii hapa. Hivyo sisi ni kwenda kwa cd ndani ya section2 yetu. Nimekuwa kuitwa hii asciimath mpango. Basi kumbuka, wakati sisi kukimbia yoyote mpango, tunataka kwanza kukusanya ni kwa kuendesha hivyo kwa njia ya kufanya yetu. Na kisha tunataka kweli kuendesha Mpango kwa kufanya dot-kufyeka. Hivyo sisi ni kwenda kwa ./asciimath. Haki, kuna sisi kwenda. Na tunaona 32. Umefanya vizuri. Unastahili kipande cha pipi. Pipi kwa ajili yenu. Pole. Sawa. SAWA. Ili tuweze kurudi nyuma kwa mfano wetu hapa. Aah, hakuna. Aah. SAWA. Mimi tu kwenda kuitunza kama hicho. SAWA. SAWA. Hivyo kama wewe guys unaweza kuona, tunaweza kufanya kura ya mambo ya kuvutia sana, mambo mengi baridi sana, mengi ya mambo ngumu sana kuwashirikisha Wahusika ASCII na namba. Mara baada ya kupata chini ya kujipanga tano, hiyo ni mengi kufuata pamoja. Sisi siyo kwenda kupitia sehemu. Kujisikia huru, kama unaweza, sababu ni nje ya karatasi kwanza juu ya kile lazima kuwa kinachotokea wakati wewe pembejeo kama kamba ya maadili. Kwa mfano, kwa kuwa mstari wa mwisho, tuna z-- ambayo inawakilisha number-- fulani a-- ambayo pia inawakilisha baadhi number-- pamoja na 1 modulos 26 pamoja na Herufi za chini. Kama nyie kuendelea kusoma kupitia haya, waone mfano kuja katika jinsi sisi ni kufanyia kanuni. Mimi sana, sana kupendekeza baada ya kifungu cha nyote guys kwenda mbele na pembejeo wale wote katika kompyuta yako na kuona aina gani ya idadi ni kuja nje na hoja kupitia kwa nini wale ni kinachotokea, kwa sababu kwa psets yako utakuwa ni kweli ni muhimu kwa wewe kuelewa kwa nini mambo fulani yanayotokea. Wote wa slides hizi itakuwa online. Hivyo hakuna wasiwasi kuhusu kujaribu kimwili nakala chini maelezo. Kila kitu ni online. Sehemu hii yenyewe itakuwa online. Wote chanzo kanuni yangu kwamba Mimi mbio itakuwa online. Naam. Je, bado una swali? Watazamaji: modulos ni nini? ANDI PENG: Sawa. Hivyo modulo ni alama ambayo inaenda kuwa pretty muhimu kwa pset guys wako hapa. Hivyo njia kwamba waendeshaji katika C na katika programu kazi ni kwamba una kile kinachoitwa mgawanyiko ishara na modulus ishara, ambayo ni haki kama ishara asilimia. Hivyo katika C, wakati wa kufanya integer kugawanywa na integer na kufyeka, C ana tabia ya kutaka kukata mbali yote ya pointi alisema, kwa sababu integer anataka kubadilisha na integer. Ni si kwenda kutaka kuwa mara mbili pamoja na kundi la decimals zote baada yake. Hivyo kama mimi kufanya 3 kugawanywa na 2, ni kwenda kukatwa 0.5 na kukupa tu 1. Hivyo hiyo ni kitu cha makini sana wa wakati uko kufanya aina yoyote ya hisabati katika programu, ni kwamba idadi ya kupata inaweza kuwa idadi kwamba walikuwa kufikiri, ambayo ni kwa nini rounding katika yako mwisho pset ni muhimu sana. Modulo anatoa salio. Hivyo kwa mfano, kama mimi 3 modulo 2-- hivyo asilimia 3 ishara 2-- ingekuwa kukupa salio ya jambo hilo. Hivyo 3 kugawanywa na 2 ni 1.5. Ni 1 salio ya 1. Itakuwa kukupa 1, ambayo ni salio ya jambo hilo. Hivyo wakati nyie ni kusonga kupitia meza ASCII, modulo kuishia kuwa kitu ambacho ni muhimu sana, na tutaweza kujadili kwamba baadaye. SAWA. Hivyo kitu ambacho ni mzuri, pretty mpya na mzuri kipekee kwamba tumekuwa kujadiliwa wiki hii ni dhana ya nini safu ni. Hivyo safu ni ya kwanza aina ya muundo data kwamba tunakwenda kukutana katika darasa hili. Muundo wa data zote ni ni aina fulani ya kiholela, halisi ya mambo kama muundo kwamba sisi kama programmers tumemuumba, kwamba tumekuwa kuweka katika kanuni yetu kwamba unaweza vyenye vipande nyingine ya kificho. Hivyo kwa mantiki hii, array-- kufikiria kama faili baraza la mawaziri, ambapo kama wewe kufungua mbalimbali rafu ya faili baraza la mawaziri yako, unaweza kupata mambo mbalimbali. Katika kumbukumbu, safu ni kufanya tu kitu kimoja kwenye kompyuta yako. Unaweza kuwa tofauti blocks-- sisi kuwaita indices-- ya safu. Ni kama tu kuzuia, rafu ya kumbukumbu kwamba tumeunda ndani ya yako kompyuta ambayo unaweza pembejeo mambo fulani katika maeneo mbalimbali. Hivyo, pamoja na safu, wewe daima kuwa na specify-- una bayana kutangaza safu katika muundo yafuatayo. Wewe ni kwenda kwanza kutaja aina data kwamba unataka kujenga ya safu. Kama nataka safu ya integers, Mimi kwenda kuweka int pale pale. Kama nataka safu ya masharti, Mimi nina kwenda kuweka masharti huko, jina la safu yako, na kisha wewe ni kwenda na mabano mraba. Na ndani ya mabano mraba, wewe ni kwenda na ukubwa wa safu yako. Kitu ambacho kweli ni muhimu kwa kukumbuka wakati kujenga arrays ni kwamba, mara moja kujenga safu, kwamba ukubwa hawezi kubadilika. Hivyo kama unajua kwamba hivi sasa una safu ya ukubwa 10, unajua kwamba mimi nina kwenda na seli 10 ndani ya au 10 fahirisi ndani ya safu hii, na ni kamwe kwenda kupanua au kupunguza hakuna jambo gani, na kwamba kuna sasa tu vitalu 10 ya nafasi zilizotengwa katika kumbukumbu yako kwamba wanaweza kuhifadhi hadi 10 mambo ya chochote wameweza kuweka. Hivyo kwa njia hii, data aina safu, muundo data kwamba ni safu ni tofauti sana na baadhi ya watu wengine tutaweza kufunika baadaye katika kozi hii. Naam. Kwa mfano, kama alitaka kujenga safu ya ukubwa 3 kwamba zilizomo vigezo ya integer-- loo, pole, wa temperature-- na joto, ya Bila shaka, ni integer. Hivyo tunataka kujenga int, ambayo ni data ya aina ya nini tunataka kuhifadhi. Sisi ni kwenda kuwaita joto huu kwa ajili ya utaratibu wa majina ya kumtaja jambo ambalo sisi wote kuelewa. Na tunakwenda na mabano mraba. Na tunataka namba tatu. Hivyo sisi ni kwenda kuweka tatu ndani yake. Kitu ambacho ni kweli muhimu kukumbuka ni kwamba arrays ni sifuri indexed. Wote kwamba maana ni kwamba kuanza na ripoti ya 0, na wewe kukimbia juu kupitia ukubwa wa safu bala 1. Hivyo kwa mfano hapa, sisi na safu ya ukubwa 3. Ni kwenda kuwa na uwezo kushikilia maadili matatu. Lakini idadi themselves-- kwamba idadi, safu, kwamba ripoti, safu, ni 0 kwa njia ya 2. Hivyo guys, kuwa kweli, kweli makini wakati wewe ni kwenda kupitia matatizo yako kuweka na kujenga aina yoyote ya safu, kwa sababu mara nyingi ni kweli, kweli rahisi kusahau kwamba. Mimi kwa kweli hawana ripoti ya 3, kwamba mimi sasa tu na ripoti ya 2. Na kama wewe kujaribu kupata tatu ripoti, ni kwenda kuwa nini aitwaye null Terminator. Ni si kwenda kwa kweli zipo katika safu. Na kompyuta ni si kwenda kama hiyo. Hivyo kuwa makini wakati wowote wewe ni kupata mambo tu kuhakikisha kwamba unakumbuka kuwa arrays ni sifuri indexed. SAWA. Hivyo mfano wa kwanza ni njia mojawapo ya kujenga safu. Mfano wa pili nina chini ni njia tu tofauti ya kujenga kile ni sawa data muundo kwamba tumekuwa tu inputted. Hivyo badala ya kimwili mbio kupitia na kuweka katika hali ya joto ya 0 sawa chochote, joto 1 sawa chochote, joto 2 sawa chochote, mimi naweza kweli tu moja kwa moja kujenga kila kitu katika mstari mmoja ndani ya joto mabano mraba sawa. Na taarifa katika kesi hiyo, huna haja kutaja jinsi kubwa safu yako ni, kwa sababu kompyuta kinaendelea kwenda kwa njia na kuona kwamba kuna mambo matatu katika braces wale curly. Na itakuja kujua, sawa, Mimi haja safu ya ukubwa 3. Wewe si kwenda haja ya pembejeo njia zifuatazo. Na pia, ndio, kwa njia hiyo. Je, mtu yeyote una maswali kuhusu jinsi sisi kufanya arrays au jinsi muundo wa safu kazi? Naam. Watazamaji: [inaudible]? ANDI PENG: Yeah, kwa uhakika. Hivyo kama ungekuwa kutangaza na initialize safu njia ifuatayo, ambayo ni njia ya pili, unaweza kuacha tu wale. Na kompyuta moja kwa moja anajua kwamba mahitaji ya kuhesabu mambo mangapi ni katika braces wale curly, kutengwa kwa koma. Hivyo hapa wanachokiona 65, 87, 30. Hivyo kompyuta anajua, loo, kuna integers tatu. Najua kujenga jina safu joto na mambo matatu ndani yake. Nzuri swali. Naam. Watazamaji: Je, si hivyo inawezekana kujenga safu na aina tofauti ya data ambayo inaweza kuwa aliingia ndani yake? Kwa mfano, kwa integers [inaudible]? ANDI PENG: Kwa madhumuni ya darasa hili, hapana, hivi sasa. Wakati kujenga data muundo kama safu, wewe ni kuwaambia kompyuta, hey, mimi haja wewe kutenga kiasi hiki kumbukumbu katika gari yangu ngumu, na kila kiini kuwa baadhi idadi ya bits. Kumbuka tulijifunza katika wiki sifuri kwamba data mbalimbali aina na ukubwa tofauti? Hivyo kwa mfano, kamba ni kiasi tofauti ya nafasi ya Char, ambayo ni kiasi tofauti ya nafasi kutoka integer. Na hivyo kama huna bayana na wewe kuchanganya na mechi ni aina gani ya vigezo una, kompyuta kwenda kuwa kuchanganyikiwa sana. Na si kwenda kujua kiasi gani kumbukumbu kukupa. Hivyo kwa madhumuni ya haki sasa, kompyuta inaweza tu kutambua aina moja ya safu. Nzuri swali. SAWA. Hivyo asili, Swali la pili tuna ni, vizuri, sasa kuwa tumeunda safu na tumekuwa kuweka mambo yote haya katika safu, jinsi ni sisi kwenda kuwa na uwezo wa kupata huduma hiyo? Hivyo muundo wa kawaida kwamba sisi daima kupata safu ni nzuri yetu kwa kitanzi. Mimi ahadi nyie kwamba tutaweza kuwa kuona mengi ya huyu hapa. Kimsingi, wakati wowote unataka pembejeo maadili katika safu au unataka kupata yao, njia bora ya kufanya hivyo ni kwa kitanzi, kwa sababu katika kwa kitanzi, wewe kujua ni mara ngapi uko atataka kukimbia kwa njia ya safu, kwa sababu una kuacha toleo, sawa? Na kila wakati wewe kukimbia kupitia, unaweza kupata kipengele tofauti ya safu. Na pia, hii ni sababu ni kwa nini kwa kawaida sisi kuanza yetu kwa mizunguko saa 0 thamani, kwa sababu wakati wewe kupata arrays, unaweza kupata sifuri ripoti. Na hivyo sambamba vizuri mno. Nyie huenda alitaka kuandika kwa int i sawa 1. i ni chini ya au sawa na 3. Lakini itakuwa si kazi kabisa kama vizuri hapa, kwa sababu wewe tu na mambo ya 0, 1, na 2. Na hivyo kama ungekuwa kuanza i wako katika kipengele 1, 2, na 3, wewe ni kwenda kuishia mbio nje ya mipaka ya safu yako, na mambo mabaya ni kwenda kutokea. Kwa hiyo, natumaini nyie angalia segue kwa nini katika madarasa ya awali tulikuwa nyie kufundisha jinsi ya kuendesha na muundo kwa kitanzi kwa njia hiyo tulikuwa. Ni kwa sababu, sasa tumekuwa zilianza katika arrays, unaweza kuona kwa nini 0 lends yenyewe vizuri mno kwa kupata. Hivyo njia sisi kufanya hivyo ni that-- mimi nina tu uchapishaji ni nje hapa kwa ajili ya uchapishaji nje. Lakini nina placeholder yangu, comma. Na upatikanaji halisi sehemu kinachotokea. Jina la safu aliitwa joto. Hivyo ni joto na i-th kipengele cha safu. Hivyo kama kwa kitanzi anaendesha kwa njia, ni kwenda kuanza saa 0. Ni kwenda magazeti nje 0 ripoti ya safu hii. Basi ni kwenda magazeti nje kitu cha kwanza. Basi ni kwenda magazeti nje moja ya pili. Na kisha tunakwenda kuvunja. Ni wazi juu ya kila mtu jinsi yale yanayotokea? Kubwa. Sawa. Hivyo hapa tuna njia ya akisema, ikiwa hatukutaka ngumu-code in-- mimi kama programu. Sikutaka kwa kweli kimwili kuweka katika kila kipengele binafsi wa safu hii. Kama nilitaka badala na maadili ya pembejeo user, nini njia bora ya kufanya hivyo? Naam, hapa mimi tumemuumba kazi hii ya kupendeza, ambao siwezi kutangaza safu. Hivyo int scores-- hebu tu kusema tunataka kufanya safu kwamba uliofanyika darasa la zote 18 ya wanafunzi hapa katika sehemu hii. Nadhani sisi tumepewa kidogo watoto zaidi ya 18 leo. Lakini kwa ajili mfano wa, hebu tu kudhani tulikuwa 18. Napenda kuunda alama jina safu na aina int, kwa sababu alama, bila shaka, ni namba. Na mimi nina kwenda kuwa na 18 katika mabano mraba, kwa sababu hiyo ni jinsi wengi mimi wanafunzi wanataka kuwa na uwezo wa kuhifadhi alama ya. Na njia Ningependa idadi safu ni kwamba Ningependa kukimbia kwa njia ya kitanzi, ya Bila shaka, kwa kuwa 0 0 ripoti yangu. Na kisha kwa 18 akiwa yangu kuacha toleo, kwa sababu kuna Mambo 18 katika safu. Na kisha mimi nina kwenda kufanya printf, kuingia alama kwa student-- yada yada yada. Yeyote anaweza kuniambia kwa nini hapa mimi nina uchapishaji i pamoja na 1 na si i? Ni aina ya hila swali, si kweli. Haina kweli kimwili kuathiri uendeshaji wa kificho. Naam. Watazamaji: [inaudible] 0? ANDI PENG: Yeah, kwa uhakika. Ni kidogo Awkward kusema, hey, wewe ni mwanafunzi 0 katika darasa hili. Ni kidogo weird. Sisi hivi, kama binadamu, si kweli kama kufikiria jinsi ya kompyuta kufikiri. Hivyo hata kama katika kompyuta, ni hifadhi ya maadili katika 0-th ripoti, wakati tuko binadamu, sisi si kweli kama kwa kutaja wenyewe kama sifuri. Hivyo wakati mimi tu magazeti kwamba, Mimi nina kwenda magazeti na kuongeza 1 tu kwa ajili ya ufafanuzi. Hivyo wakati mimi magazeti, mimi nina kwenda kuwa uwezo wa magazeti ya wanafunzi 1 kwa njia ya 18. Haina kweli athari uendeshaji wa kanuni kwa njia yoyote ile, njia mimi magazeti. Lakini kuwa makini wakati uko kweli kupata safu. Baada ya kuona alama i, taarifa hapa mimi nina kweli kupata 0 ripoti na si 1 pamoja na 0-- au 1 plus 1, katika kesi hiyo, ripoti hiyo kwamba ni kweli wazi. Ni kila mtu wa aina sawa ya jinsi hii ni mbio kwa njia ya na kwa kila ripoti mimi nina kuweka thamani katika safu na kujenga safu na namba 18 kwamba mtumiaji ni kwenda pembejeo? SAWA. Baridi. SAWA. Sisi sasa kuhamia katika kitu ambacho ni pretty husika kwa ajili kipande hii kuweka pamoja. Najua katika hotuba, David-- pole, alikuwa swali? Watazamaji: Je, unaweza kupanua yake? ANDI PENG: Yeah, hivyo mimi walijaribu. Lakini sijui. Kwa sababu fulani, hii toleo la PowerPoint ni kweli si kazi vizuri na kuonyesha. Hivyo sisi ni kwenda tu kuitunza kama hii. Hayo yote itakuwa uploaded online. Samahani, nyie. Naam. SAWA. Ili tuweze pia kuwa masharti. Hivyo kama wewe guys kweli notice-- mimi kujua Rob wakaenda upande wa pili huu katika hotuba kwamba kuwa yeye did-- kamba ni kweli tu safu ya wahusika, kama wewe kufikiri juu yake, sawa? Kamba ni jina au a hukumu au neno, sawa? Kama ningekuwa kujenga kamba aitwaye Andi-- jina tu wangu,-N-D-I. Unafikiri ya kwamba kama kigezo kimoja tu. Lakini kwa kweli, ni kuvunjwa chini ndani ya tu safu ya chars. Hivyo ni got tabia ya kuhifadhiwa katika thamani safu. Ni got tabia ya N kuhifadhiwa katika pili ripoti na kadhalika na kadhalika. Hivyo katika njia hiyo, sisi kweli kuwa aina hii muundo wa kuweka katika mahali kwa masharti yetu. Hivyo hapa, kama ningekuwa pembejeo neno "kula" - hivyo kamba neno ni sawa na kupata kamba. Kama ningekuwa na pembejeo neno "kula," kwamba ni kimwili kwa njia hiyo kompyuta yangu ni hifadhi ya kwamba kamba katika kumbukumbu yangu. Na kama nilitaka kukimbia kwa njia ya kwamba na magazeti kwamba out-- hivyo kwa ndani i sawa sifuri, kumbuka, katika hotuba, sisi kitu kufunikwa kwamba wito strlen, au urefu wa kamba. Kwa sababu mimi si kweli kujua jinsi kubwa safu ni ya chochote mtumiaji inputting-- Kwa mfano, mimi inputted neno "kula," na najua hiyo ni herufi tatu kwa muda mrefu, sawa? Ili niweze kuweka katika tatu huko na kila kitu itakuwa vizuri. Lakini kama pembejeo mtumiaji wako kitu hiyo ni idadi tofauti ya maadili, wewe ni kwenda kuwa na uwezo wa kweli tunajua kwamba wakati wewe mpango kanuni yako. Hivyo njia kwamba sisi kushughulikia kesi mtihani kama kwamba ni kwamba tuna kitu aitwaye strlen, ambayo ni tu kazi kwamba anaelezea kwa muda gani kamba ni. Hivyo strlen ya neno. Neno langu ni kula. n sawa na strlen ya neno. Je, mtu kuniambia nini kwamba thamani kweli ni haki pale? Je N anayewakilisha sahihi sasa, katika mfano huu, kama ningekuwa na chakula? Watazamaji: 3. ANDI PENG: 3, hasa. Hivyo tuna kwa int i sawa sifuri, n sawa na 3, kimsingi. Na i ni kwenda kukimbia mpaka ni chini ya 3i ++. Na itakuja kimsingi kwenda kupitia na kufanya kitu kimoja. Ni kwenda magazeti nje kila thamani na kukupa E-A-T. Ni denoting tu njia mbalimbali za kuandika hayo. Hiyo inaenda kuwa na manufaa sana. Naam. Watazamaji: Nini faida ya kuweka n sawa na strlen neno ndani ya kwamba kwa kitanzi [inaudible]? ANDI PENG: Naam. Hivyo kama ningekuwa to-- kusema, kwa mfano, kama ningekuwa kufanya hivyo na kisha do-- oop-- kwamba, katika kanuni yangu, ingekuwa kweli kuwa kufanya kama kitu kimoja. Hata hivyo, njia ambayo Daudi alieleza ni wakati wa hotuba, kama wapo ya nyie kumbuka, ni kwamba, kama binadamu, kama programmers, sisi kweli kujaribu mpango wetu kificho ili kompyuta yetu ina kufanya kazi kama ndogo kama iwezekanavyo, ili kwamba kanuni zetu ni ufanisi sana. Hivyo kama mimi alikuwa kwamba kuna, nini lingetokea kwa njia yangu kwa kitanzi ni kwamba Ningependa kwanza kutangaza kutofautiana aitwaye i ni kwenda kuwa 0. Mimi ni kwenda kuangalia, loo, kile ni strlen ya neno? Loo, strlen ni 3. Hivyo ni i chini ya tatu? Ndiyo, ni. Mimi nina kwenda kukimbia. Na kisha mara ya pili nyuma karibu kitanzi, mimi nina kwenda increment i. i ni kwenda kuwa moja. Na i ni kwenda kuangalia, loo, lakini nini strlen ya neno? Oh, ni tatu. Na anafanya kwamba wanaonekana aina ya fujo, kila wakati wewe kukimbia kwa njia ya kitanzi, kuwa kuangalia kazi, hata kama strlen ya neno kamwe kweli mabadiliko? Hivyo ni nguvu ya ziada kwa kompyuta. Baada ya kuanza kuzungumza juu ya mambo ambazo ni mabilioni na mabilioni na mabilioni ya maeneo muda mrefu, kufikiria kompyuta yako kuwa na kimwili kwenda kwa njia na kuangalia yote ya kwamba kila wakati. Hii ndiyo sababu, kufanya tu kwa ajili ya ufanisi, sisi huwa na tu kufanya hivyo, kwa sababu kwa njia hii tuko tu wito kazi mara moja katika mwanzo, na kwamba kila wakati huenda kwa njia ya itakuja kuhifadhi thamani 3 pale, kwamba huna na kuendelea kuangalia kila wakati. Naam. Watazamaji: Sorry. Tu [inaudible]. Je, unaweza kufanya int n sawa na strlen na kuweka kuwa juu nje ya kwa kitanzi vile vile? ANDI PENG: Naam. Unaweza kufanya hivyo, kabisa. Sababu sisi kuwa nayo katika hapa ni kwa sababu njia a kwa kitanzi matendo ni kwamba ni kuitwa kutofautiana ndani kwa maana ya kwamba kila kitu uko kujenga ndani ya kwa kitanzi tu ipo ndani ya kwa kitanzi. Hivyo kutofautiana i tu ipo katika mabano hayo. Na hapa vigezo ya n pia tu ipo katika mabano hayo. Hivyo kama ungekuwa kutumia strlen ya neno mara nyingi chini chini, kabisa njia bora ya kufanya hivyo itakuwa kutangaza it up juu hivyo huna kufanya hivyo mara moja. Naam. Watazamaji: Kwa nini una mstari mpya baada ya asilimia kuona kama unataka kuweka yote barua yake ijayo kutenganisha? ANDI PENG: Oh, nilitaka magazeti yao yote juu ya kila mstari. Haijalishi. Yeah, ni formatting. Hilo ni swali zuri, ingawa. Naam, ikiwa mimi alitaka magazeti yote kwenye mstari mmoja tu, Mimi bila kuwa dash katika. SAWA. Kila mtu mwema? SAWA. Baridi. Hivyo nadhani nimenena kutosha. Nyie zamu ya kukimbia kwa njia ya kanuni na kuniambia nini ni vibaya hapa. Wapi mdudu? Hivyo kama unaweza kuona, nimekuwa alitangaza safu mpya ya kamba aina aitwaye darasani. Na nimekuwa inputted Sam, Jess, na Kim ndani yake. Na mimi nina kujaribu magazeti nje mambo yote ya safu. Je, mtu kuniambia kwa nini hii ni kwenda kunipa matatizo? Mimi nitakupa guys 10 sekunde kufikiri kuhusu hili. SAWA. Yeah? Watazamaji: Je, kituo cha kushoto sawa na 3 au [inaudible]? ANDI PENG: Haki. Hivyo ni mara ngapi ni kweli hii kwenda kukimbia kwa njia ya kitanzi hii? Watazamaji: Nne. ANDI PENG: Hasa. Ni kwenda na njia ya mara nne. Ni kwenda kukimbia kwa njia ya saa 0, 1, 2, na 3, kwa sababu ya kipengele yao ni i ni chini ya au sawa na 3. Ni si kwenda kuacha wakati ni 2. Ni kwenda kuweka kwenda mpaka hits 3. Na kama tunajua, kuna tatu tu vipengele katika safu yetu halisi. Kama sisi kujaribu kupata nne kipengele au ripoti ya 3, wewe ni kwenda kugonga mahali fulani katika kumbukumbu hiyo haipo. Ni wito null Terminator. Hakuna kitu kinaendelea kuwa huko. Kompyuta yako si kwenda kuwa na furaha sana na wewe. Naam. Je, mtu yeyote una maswali juu ya nini kwamba kilichojitokeza? Hiyo ni eneo la kawaida ili kuepuka. Naam. Watazamaji: Je, si kwanza slide pia kuwa kamba ya 2? ANDI PENG: Hapana Hivyo kimsingi, wakati wewe ni kufanya safu, kwamba mabano haki pale, kwamba number-- zote ni kuwaambia wewe ni jinsi mambo mengi nina. Siyo kweli kuwaambia mimi bahati ya kitu chochote. Hivyo katika kesi hii, najua nataka kuandika na maeneo matatu, na maeneo matatu ya kimwili kwa kushikilia chochote mimi nataka kushikilia. Hivyo ndiyo sababu namba tatu ni pale. Hata hivyo, kama nilitaka kwa kweli kupata hiyo, kama nilitaka kusema, printf tabaka la mabano idadi, kisha wewe ni kwenda kweli kuweka ripoti kimwili huko. Yeah, swali zuri. Watazamaji: Hivyo ni kimwili ripoti zinatakiwa kuwa [inaudible]? ANDI PENG: Samahani. Je, unaweza kuongea kidogo? Watazamaji: Hivyo ni ripoti kimwili [Inaudible] kila mmoja masanduku? [Inaudible]? ANDI PENG: Naam. Hivyo nina kwenda na kurudi hapa hapa. Fikiria haki hapa. Tuna safu ya ukubwa 3. Kuna maeneo matatu, kama, placeholders kimwili katika hapa. Lakini wao ni jina lake 0, 1, na 2. Hivyo kama nilitaka kupata huduma hizo, njia ambayo mimi kuzipata ni printf wa chochote nilitaka katika hapa. Ingekuwa magazeti nje jina lake, kwa sababu kisha kompyuta anajua, loo, mimi haja ya kuangalia katika safu hii kwa 0 index. Naam. Lakini ukubwa wa haina mabadiliko. Ukubwa ni 3, bila kujali ya jinsi studio yao. SAWA. Kila mtu mwema? Watazamaji: Hivyo kila wakati mimi [inaudible]? ANDI PENG: Sawa. Hivyo katika kesi hii, sisi si kweli kupata ndani yake hivi sasa katika mwendo. Lakini tunajua kwamba kamba kama mimi Alisema kabla, kamba kimsingi ni safu ya wahusika. Hivyo kama mimi kuunda safu ya masharti, mimi aina ya safu ya safu ya wahusika, sawa? Hivyo katika kesi hii, kwa sababu mimi na safu ya masharti, kama ungekuwa na pembejeo neno kweli kwa muda mrefu, kwamba bado unachukua nafasi moja tu, kwa sababu hiyo ni kamba moja. Lakini kama ungekuwa na kufikiria wahusika wa kwamba safu, kisha hiyo kuchukua mengi zaidi wahusika kuliko yoyote ya maneno mengine ni. Si kweli ni muhimu kwa hivi sasa. Lakini hiyo ni kwa ujumla jinsi ni kazi. SAWA. Hivyo hii ni kitu mimi itabidi basi kufanya mengi katika kipindi cha muhula. Nahitaji kupumzika sauti yangu. Nyie haja ya kuchochea wenyewe. Mengi ya pengine na kulala hivi sasa. Mimi inputting matatizo random ambapo sisi kama darasa au wewe na mpenzi karibu na wewe ni kwenda kutumia dakika kadhaa kujadili jinsi tunataka kwenda kuhusu utatuzi au kujenga mpango kama huu. Hivyo sasa hivi, tunataka kujenga program-- tunakwenda kuiita upper.c-- kwamba waumini neno lowercase kwa juu-darasa kamba uppercase, pole. Neno katika masharti, pole, ni sawa. Mimi nina kwenda kuwabadilisha kwa maana moja. Naam. Kuchukua dakika kadhaa. Haina kuwa zilizoandikwa kwa lugha yoyote. Tu katika pseudocode kanuni au kifikra jinsi sisi ingekuwa hata kwenda juu ya kufanya tatizo hilo. Naam. [SIDE MAZUNGUMZO] Mimi pia niliona kuwa nyie can-- Mimi aina ya kuona tayari mpango. Nadhani ukosefu wangu wa mtangazaji hali ni tatizo. Lakini ni sawa. [SIDE MAZUNGUMZO] Naam, tafadhali, nyie. Kuja kupata pipi. Kuja kupata pipi. Watazamaji: Ndiyo! [SIDE MAZUNGUMZO] ANDI PENG: Pia, yeah, Mimi itabidi kuanza kutupa pipi katika watu ambao hawana kujibu maswali. Hivyo unapaswa maswali yote jibu. Au nadhani watu ambao Je, kujibu maswali. Naam, njia nyingine kote. [SIDE MAZUNGUMZO] Watazamaji: [inaudible] ANDI PENG: Naam. Naam. [SIDE MAZUNGUMZO] Haki wote, nyie. Kuchukua, kama, sekunde 10 zaidi. [SIDE MAZUNGUMZO] OK, nyie. Hivyo kabla ya sisi kuanza kujaribu kweli kimwili kuandika kanuni, tabia nzuri ya kuendeleza ni kwamba tunataka aina ya kwanza ya sababu nje kifikra jinsi tunataka kufanya hivyo. Wewe unataka kuhakikisha, kabla kimwili kuanza kujaribu kanuni katika Mario, kwamba kufanya kuhakikisha kwamba una pseudocode yako. Hiyo ni kuchukua wewe kupitia nini unahitaji kujenga hivyo kwamba, wakati wewe kimwili kuandika mpango wako baadaye, wewe ni bora na uwezo wa kupata makosa katika kanuni yako na mambo kama hayo. Hivyo sisi ni kwenda kuanza tu by-- kwa Kiingereza, katika pseudocode, haina mtu yeyote nataka kutoa mimi maelezo ya kurefusha maisha jinsi tunataka kwenda juu ya kufanya hii? Naam. Watazamaji: [inaudible]. ANDI PENG: Hakika, hakuna wasiwasi. Watazamaji: Je, unaweza kuuliza kwa au kuuliza mtu kupata kamba 1-- yeah, kamba, na then-- ANDI PENG: Ndiyo, hivyo hii ni mwanzo mzuri. Mimi itabidi kuanza kuandika, sorry, kama wewe kusema. So-- Watazamaji: --the ndogo idadi ni ya juu, sawa? Au herufi ndogo kuwa na idadi kubwa? ANDI PENG: Hasa. Watazamaji: Hivyo basi sisi Ondoa 32 kutoka chochote [inaudible]. ANDI PENG: Mkuu. Hivyo sisi aina ya kuwa na hisia kwa ujumla ya jinsi ya kufanya kazi juu ya tatizo hili. Akijua kwamba tumekuwa aina ya kujifunza njia ya kimwili ambayo masharti kuhifadhiwa katika kumbukumbu, je, wewe tayari tunajua kwamba wewe ni kwenda pengine kuandika katika kanuni yako ili kusonga kupitia kamba? Watazamaji: Kwa kitanzi. ANDI PENG: A kwa kitanzi, hasa. Kubwa. Hivyo sisi aina ya kuwa kurefusha maisha pseudocode kuandikwa aina hiyo ya anawapa wewe inabainisha juu ya jinsi gani ingekuwa hoja kuhusu utatuzi wa matatizo. Sasa kwa kuwa una hii, unaweza rejea ni kwa ajili ya baadaye juu ya wakati wewe ni kujaribu kweli kuandika kanuni yako. Hivyo tunaweza kweli kwenda hapa. Na mimi nimepata kazi kuitwa upper.c-- huko ni is-- ya tu template tupu sasa hivi kwamba nyie ni kwenda nisaidie kufikiri juu ya jinsi ya kuandika mstari huu wa code-- si mstari wa kanuni. Ni utakuwa mistari mingi ya kificho. Wakati wa kuanza aina yoyote ya tupu pset, nini Jambo la kwanza mimi haja kukumbuka kufanya nini? Watazamaji: [inaudible]. ANDI PENG: Mkuu Yep. Pamoja. stdio.h. Mara nyingi hii ni moja ya rahisi zaidi makosa watu itafanya wakati wao uko kuandika, ni kwamba wao itabidi kusahau ni pamoja na muhimu maktaba wanahitaji. Hivyo kama ni masaa ya ofisi na wewe ni kama, Mimi sijui ni kwa nini kanuni yangu haifanyi kazi. Je, unaweza kuniambia kwa nini ni si kazi? Tunakwenda kusema je # ni pamoja na? Unapaswa # ni pamoja na hiyo. SAWA. Hivyo sisi tumepewa kiwango I / O hapa. Ni kwamba maktaba tu sisi ni kwenda haja hapa? Nini kingine ni sisi kwenda kufanya? Pole. Mtu tu kupiga kelele nje? Watazamaji: [inaudible]. ANDI PENG: Kuna kwenda. SAWA. Na jinsi gani mimi kwenda kuhusu kuanzia aina yoyote ya kazi, aina yoyote ya kazi kuu ndani ya mpango wetu? Int kuu. SAWA. Je, mimi kuweka ndani ya hapa? Nini jambo la kwanza unataka kufanya? Kama tunataka kupata kamba kutoka kwa mtumiaji, kile ni sisi kwenda na kufanya juu ya mstari huu wa kwanza? Samahani, nyie kuhisi tu bure kuongea na sauti kubwa. Tu kuita chochote. Watazamaji: Uliza mtumiaji? ANDI PENG: Je, sisi kufanya hivyo? Ask-- Mimi ni kwenda aina "kuuliza user"? Watazamaji: Printf. ANDI PENG: Sawa. Printf. Je, nataka printf? Watazamaji: Aina katika kitu fulani. ANDI PENG: Kama kwamba? Guys, kujifanya kama mimi nina kompyuta. Kimwili kuniambia kila hatua kwamba mimi haja ya aina katika hapa? Mimi ni kufanya kitu kibaya? Je, mimi kuwa typed kitu? Watazamaji: Unahitaji quotes. ANDI PENG: nahitaji quotes? SAWA. SAWA. Watazamaji: Na mstari kisha mpya. Semicolon. ANDI PENG: semicolon? SAWA. Nzuri. Watazamaji: Na labda kutaja kwamba unataka katika lowercase? ANDI PENG: Mkuu. Nyie laugh at me kusahau kuweka semicolon. Mimi kuhakikisha wewe mahali fulani katika mwendo wa darasa hili, utakuwa kusahau kuweka semicolon, na itachukua wewe masaa matatu kufikiri kwa nini kanuni yako hakifanyi kazi. Ni kilichotokea kwa sisi sote. Pengine kutokea kwa ninyi. Kupata katika tabia nzuri ya kutumia semicolons. SAWA. Watazamaji: Je, unataka kufanya backslash katika? ANDI PENG: Ni kweli. Je, unataka kufanya backslash katika? Watazamaji: Ndiyo. ANDI PENG: Mkuu. SAWA. Je, nini baada ya hapo? Watazamaji: Kupata kamba. ANDI PENG: Kupata kamba. Basi je, mimi aina? Kuna mtu? Watazamaji: Kamba s. ANDI PENG: Kamba s. Watazamaji: GetString. ANDI PENG: Kuna mtu, unaweza kuniambia ambapo huu GetString kazi anakuja kutoka? Watazamaji: string.h. ANDI PENG: string.h? Unafikiri ni kutoka string.h? Watazamaji: [inaudible]. ANDI PENG: Kuna kwenda. Ni kutokana na CS50.h. Kama wewe ni daima kuchanganyikiwa na pale faili maktaba ni au kichwa faili ni, google halisi string.h, na mimi nitakuambia nini ni kazi zote walioko string.h. SAWA. Hivyo sasa kwamba mimi tumemuumba kamba na nimekuwa kuchochea mtumiaji kwa ajili yake, Nimekuwa kuhifadhiwa katika kutofautiana jina lake s, je, mimi haja ya kufanya sasa? Watazamaji: Angalia ikiwa ni katika lowercase. ANDI PENG: Sorry? Watazamaji: Angalia ikiwa ni katika lowercase. ANDI PENG: zote haki, hebu kufanya hivyo. Je, mimi kufanya hivyo? Kwa kweli, kwa madhumuni ya darasa sasa hivi, tunakwenda tu kwa kudhani kuwa kila kitu kwamba sisi pembejeo tayari katika lowercase. Kama alitaka kuangalia, wewe ungekuwa tu kuongeza kauli masharti kuwa kuchunguzwa, kwamba mbio kwa njia ya kila moja safu kipengele na kuangaliwa kama ni kati ya maadili fulani. Mimi kusahau nini idadi maadili ya lowercase ni. Unaweza kuangalia ni juu ya meza ASCII. Lakini yeah, hiyo ni hatua nzuri kwa kweli. Lakini sasa hivi, tunakwenda tu kwa kudhani kuwa masharti yote sisi pembejeo ni katika lowercase. SAWA. Hivyo ni jinsi gani mimi kwenda kuhusu tatizo hili baada ya hapo? Watazamaji: Kwa kitanzi. ANDI PENG: Kwa kitanzi? SAWA. Kuniambia nini cha aina. Watazamaji: Kwa int i sawa 0. ANDI PENG: Sawa. Watazamaji: Oh, kweli, basi kufanya comma na kufanya n sawa na strlen. ANDI PENG: Jambo Hivyo muhimu nadhani yeye ni niliona hapa ni kwamba hatukuwa na kusema int n mara ya pili sisi alifanya hivyo. Tu kujua kwamba katika kwa kitanzi wakati wewe ni kutangaza, wewe kweli hawana haja int wa mara ya pili unaweza kufanya kutofautiana. Unaweza kusema n strlen. Watazamaji: Kwa s. ANDI PENG: s. SAWA. Watazamaji: Basi semicolon. ANDI PENG: Ni kweli. Watazamaji: Na kisha [inaudible] n. Kisha i ++. ANDI PENG: Mkuu. Sawa. Je, tunataka ndani ya ya hii kwa kitanzi sasa? Kumbuka, kama tunakwenda kukimbia kwa njia ya kamba na kukimbia kwa njia ya safu, tunataka kuangalia mambo ndani yake. Je, ni sisi kwenda haja? Hii ni aina ya sehemu gumu sasa. Mtu yeyote kuwa nadhani? SAWA. Hivyo kwanza, jinsi gani sisi hata kupata? Je, sisi hata kuangalia kwanza au kupata kipengele katika safu? Je, sisi kufanya hivyo? Nini nukuu tunatumia kufanya hivyo? Nini jina la safu hii iitwayo? Ni wito s, sawa? Kumbuka, kamba yoyote ni daima safu. Hivyo s mabano i, sawa? Kwa sababu hiyo ni thamani ya sasa au thamani index sisi ni kuangalia. Na tunakwenda kuweka kwamba sawa to-- tunataka thamani ndogo, sivyo? Tunataka kugeuka kuwa lower-- pole, tunataka herufi kubwa. Tunataka kugeuka ndogo thamani katika uppercase. Na hivyo like-- Samahani, Jina lako nani? Watazamaji: Heidi. ANDI PENG: Sorry? Watazamaji: Heidi. ANDI PENG: Heidi. Kama Heidi alisema Awali, sisi ni pengine kwenda haja the-- tuko pengine kwenda na Ondoa 32 kutoka charc chochote kile, sawa? Kwa sababu juu ya ASCII meza, tofauti kati ya barua lowercase na barua uppercase ni 32. Hivyo wakati sisi ni kufanya hivyo, tuko pengine atataka Ondoa 32, sawa? Hivyo sisi ni kwenda kufanya s i. Je, kila mtu kuelewa kwa nini mimi alifanya hivyo? Kwa sababu sasa hivi, katika safu yetu, sisi ni kuangalia 0 ripoti, haki? Na katika 0 ripoti ya kamba, hiyo ni tabia ya kwanza. Na kwamba tabia tunakwenda kwa kudhani ni ndogo. Kama tunataka kufanya hivyo uppercase, sisi na Ondoa 32 kutoka thamani yake, kwa sababu katika ASCII yetu meza, hiyo ni jinsi sisi kupata ijayo sambamba thamani kwamba inafanya uppercase. Je, kila mtu kuelewa kwamba? Naam. Watazamaji: Je wewe pia Je, Herufi za chini minus-- ANDI PENG: Yeah, hivyo hiyo ni kweli mzuri. Mimi nina kwenda kuja nyuma na kwamba swali baada ya sisi kufanya hivyo. Naam. Na kisha kama nataka kuona nini kinaendelea, Mimi pengine ni kwenda unataka magazeti, sawa? Kuna mtu kuniambia nini Nataka magazeti hapa. Watazamaji: printf asilimia c backslash [inaudible]. Hiyo ni thamani ya [inaudible] s i. ANDI PENG: s i, pole? Watazamaji: [inaudible]. ANDI PENG: Sijui. Je, unafikiri? Watazamaji: Naam, mimi wouldn't-- Nadhani napenda bring-- Napenda kuchukua nje ndani, kwa sababu [inaudible]. ANDI PENG: Oh, wewe ingekuwa amefanya hivyo? Watazamaji: Naam. ANDI PENG: Hebu kuondoka njia ni, na mimi itabidi kueleza kwa nini baadaye. Kumbuka, hata wakati kuwa mmiliki mahali, unataka kuweka mabano kuzunguka. Sawa. Hivyo hii lazima kazi ngumu hapa. Hebu kuendesha na kuona kama ni inaandaa. Kufanya juu. Uh-oh. Hiyo haina kuangalia vizuri pia. Kwa nini hii inatokea? Kama ilivyo kwa makosa yoyote, unataka kwenda nyuma na kuanza na moja ya kwanza, kwa sababu kwa kawaida makosa moja ya sababu kura ya makosa mengine baada yake. Hapa tunaona upper.c: 18: 25, ambayo anaelezea mimi katika mpango huu aitwaye upper.c, kwenye mstari 18, kosa implicitly kutangaza maktaba ya kazi strlen na aina unassigned-- blah, sijui nini kinaendelea baada ya hapo. Wote ni kuwaambia mimi hivi sasa ni kitu ambacho kinaendelea strlen. Na ni kompyuta kuchanganyikiwa, kwa sababu ni kama, mimi sijui nini strlen ni? Je, hiyo pengine kukuambia wewe ni kukosa? Watazamaji: Wewe ni kukosa [inaudible]. ANDI PENG: Wewe ni haki. Hasa. Hivyo hii ni mahali ambapo ni muhimu kuhakikisha kwamba kila kazi ya kutumia katika yako kanuni ni kuwa na kichwa sahihi faili kwa ajili ya maktaba, au mwingine wewe ni kwenda kupata kura ya makosa na kanuni yako si kwenda kujua nini kinaendelea. Hivyo sisi ni kwenda ni pamoja na string.h hapa. Sasa wakati sisi kujaribu kukusanya juu. Kukusanya usahihi. Hebu kuendesha mpango huu. Hivyo aina ya kitu katika lowercase. Nini guys unataka aina? Kuita kitu. Haki wote, Charly tu kutembea katika. Tutaweza kuandika jina Charly ya. Charly katika lowercase. Na hopefully, hopefully, hii ni kwenda kuita na mate nje Charly katika uppercase. Yay! haina kila mtu kuelewa jinsi Nikaenda kuhusu utatuzi hiyo? Njia ambayo naweza kuendesha kwa kutumia integers kutatua jambo ambalo Nataka kufanya katika masharti, kwa sababu wahusika na integers Unaweza kuwa referenced katika njia ile ile kwa sababu ya ramani ASCII. Hivyo kurudi kwa uhakika yako, kama mimi alitaka kuweka hapa badala ya 32 uppercase A bala Herufi za chini tu kama kwamba, kwamba ingekuwa kazi sawa kama vizuri, kwa sababu hiyo ni tu tu Tofauti kati ya maadili hayo mawili. Kama nataka kufanya charly hii again--. Oh no. Nadhani tulikwenda njia sahihi, ndiyo? Watazamaji: [inaudible] Herufi za chini. ANDI PENG: Kuna kwenda. Yep. Na nje mtemi charly. Hivyo kuwa makini wakati wewe ni subtracting maadili kukumbuka ambayo moja ni mkubwa kuliko wengine. Kwa mfano, hapa mimi alisahau kuwa lowercase a ni kweli kubwa kuliko herufi kubwa A. Hivyo wakati mimi alijaribu Ondoa yao kwa njia nyingine karibu, I got hasi 32. Na kompyuta yangu ilikuwa kama, Sijui nini kwamba ni. Ni uwezekano baadhi tu bila mpangilio thamani ambayo si nzuri sana. Na ili kuhakikisha kuwa wewe ni subtracting katika urefu sahihi kupata tabia unataka. SAWA. Kuna mtu yeyote kuchanganyikiwa juu ya jinsi sisi akizunguka kuandika kazi hii? SAWA. Hivyo kweli, kazi tayari lipo katika maktaba inayoitwa ctype.h. Maktaba kuitwa ctype.h. Kazi hii kwa kweli ni tayari imeandikwa kwa ajili yenu. Ni wito kwa juu. Na hivyo kwa madhumuni ya pset hii, wewe ni kwenda kupata kwamba kwa kweli wanataka kutumia mengi ya kazi zilizomo ndani ya maktaba ctype. Kwa juu, kupunguza, ni juu, ni lower-- wale ni kazi zote kwamba utakuwa na uwezo wa kutumia sana, haraka sana katika kanuni yako mwenyewe kwamba gani hasa nini anafanya hivyo. Tuliandika nje ya jinsi ya kubadilisha kamba kwa uppercase. Lakini hii ni kweli kificho kwamba mtu mwingine ameandika na kwamba unaweza kupata kupitia kazi mbalimbali. Yeah? Watazamaji: Hivyo wewe tu nakala ya huko na kufanya hivyo kwa kila barua moja? ANDI PENG: Ndiyo, kwa sababu mimi si huduma kuhusu maadili ya. I just huduma ya kwamba tofauti kati yao ni 32, sawa? Tofauti kati ya ndogo b na uppercase B pia ni 32. Na tofauti kati ya c na uppercase C ni daima 32. Mimi tu huduma ya juu tofauti kati ya mbili, kwa sababu wote wa barua kufuata mfano huo, sawa? Kama mimi na tofauti kati ya mmoja wao, Mimi najua kile tofauti kati ya wote ni. Nzuri swali. Naam. Kila mtu mwema? SAWA. OOP. SAWA. Hivyo dhana mwingine ambaye yuko kwenda kuwa muhimu sana kama wewe kuendeleza kanuni yako ni wazo hili ya kujenga kazi au uchukuaji. Hivyo sasa hivi, tumekuwa wote kuchukuliwa algebra. Katika algebra, wewe ni kufundisha kuwa kuna jambo hili ajabu aitwaye kazi mashine, ambapo kama wewe pembejeo moja aina ya idadi, ni anaendesha kwa njia ya kazi hii ya ajabu na nje pops pato mbalimbali, sawa? Katika kanuni, kitu kimoja kinachotokea katika aina yoyote ya kazi. Hivyo mimi naweza kimwili kuandika katika mwili wangu wa kanuni yangu Kauli kuu kwamba kweli haina chochote mwili wa kanuni ni kufanya. Lakini nje ya kwamba, siwezi pia kuandika kazi nyingi tofauti kwamba kufanya mambo mengi tofauti. Kwa mfano, tumekuwa tayari kuanza kutumia baadhi yao. Printf-- kwamba ni kazi ambayo mtu mwingine tayari imeandikwa kwamba tunaweza kuwaita katika kanuni zetu. Kwa upper-- katika kesi hiyo, upper-- ni kazi nyingine tumekuwa imeandikwa kwamba sisi Unaweza kupiga simu katika kanuni zetu. Na hivyo mimi nadhani nini sisi hata kuwa na kazi? Mbona sisi tu plop ni wote katika mstari huo wa kanuni? Ni kuwa rahisi kwa kila mtu. Naam, hoja nyuma kwamba ni, kwanza ya yote, shirika hilo. Ni kweli annoying kwenda kupitia mtu wa kanuni na kazi moja kama printf. Kama nyie kweli alijua nini kazi printf kilichomo kuandika, ni, kama, mistari 1,000 wa kanuni. Kama kila wakati nilitaka printf kitu, Mimi nilikuwa na kuandika mistari 1,000 wa kanuni, hiyo inaweza kuwa kweli annoying kusoma, sawa? Hiyo ni kwa nini tumekuwa tu umba kazi hii abstract kwamba tuna tayari mtu mwingine ameandika mahali pengine. Na kila wakati tunahitaji kuitumia katika kanuni zetu, sisi tu kusema printf. Na kwamba anao uwezo wa kutumia kazi mtu mwingine ameandika katika kanuni zetu. Inafanya kuwa rahisi organizationally kusoma kanuni. Pili, ni kurahisisha. Ni simplifies hatua tuna kuchukua ili kutatua tatizo letu. Printf, kazi kama printf, kazi kama kwa juu yote ni mambo ambayo kuruhusu sisi kurahisisha kificho yetu chini hivyo ni rahisi. Na jambo la mwisho ni reusability. Hivyo ukweli kwamba tuna kazi kuitwa printf kwamba tunaweza kuwaita mbalimbali nyakati na inaruhusu kuwa ni reusable. Kama ningekuwa kuandika printf, Mimi tu kuandika ni mara moja. Ipo tu kwa kuwa sehemu moja. Kama nilitaka kufanya hivyo tena, napenda na nakala na kuweka yote ya kwamba katika upinzani wangu wa pili wa kanuni. Hiyo ni kwa nini kama sisi kujenga kazi ambayo ipo nje ya kuu yetu, tunaweza tu waomba hiyo na kutumia tena wakati wowote tunahitaji ili ni rahisi sana kwa ajili yetu kama mipango ya kuandika. Hivyo njia kwamba tunataka kweli kuandika kazi ni sawa, sawa? Hii ni aina ya kwanza mfano ambao tutaweza ona kazi kuchukua juu ya mtindo tofauti kuliko int kuu utupu wetu. Katika kesi hiyo, kama nilitaka kuandika kazi kuitwa q, sawa? Na int thamani hapa ni wote kuniambia, je, nataka hii kazi kurudi kwangu? Kama mimi nataka mchemraba integer, Mimi nina kwenda wanataka pembejeo. Hizi ni vigezo. Mimi nina kwenda pembejeo thamani ya aina int. Na mimi nina kwenda na kurudi aina nyingine ya thamani ya int. Na katika hapa, kama wewe Unaweza kuona, kila mimi nina kufanya ni cubing chochote pembejeo yangu ni kama pato langu na kurudi yake. Hivyo kazi hii yote ni gani inachukua aina fulani ya integer. Ni hulizidisha na yenyewe mara mbili hivyo kwamba cubes katika athari. Na kisha kuirudisha chochote pato kwamba ni. Hivyo katika kesi hii, ni mistari miwili ya kificho kwamba tulikuwa na kuandika ziada. Lakini kama sisi alitaka kuwaita juu ya hili mara kwa mara nyingi, ni rahisi sana na aina hiyo moja mstari wa kulia hapa hiyo ni katika mchemraba kuliko una kwenda kupitia mara nyingi. Hivyo njia kwamba kimsingi yoyote formatting kwa aina yoyote ya kazi kinaenda zipo ni kama hapa. Hivyo tuna jina kazi. Katika kesi hiyo, ni kuitwa mchemraba. Na sisi jina hilo kwa sababu mchemraba ni rahisi kukumbuka. Unaweza jina hilo mraba na ni kweli anaweza cubed. Haijalishi. Tu jina kuwa uko kumshirikisha kazi yako. Haki hii hapa, int, ni aina ya parameter unahitaji. Kwa hiyo kile anafanya kazi hii unahitaji ili kufanya kazi? Naam, inahitaji pembejeo. Mimi jina lake ni pembejeo. Unaweza jina hilo chochote unataka. Lakini nahitaji kitu cha aina int. Ni kwenda kweli nitafanya chochote ni ndani ya hapa, mwili wa kazi. Na kisha aina ya kurudi haki hapa, hii int zote ni kuwaambia mimi ni kuwa kazi hii ni kwenda na kurudi kwangu katika int. Hivyo ni kwenda kuchukua katika int, na itakuja kukupa nyuma int. Je, kila mtu kuelewa jinsi formatting ya aina hii kazi? Baridi. SAWA. Kwa hiyo msiwe na wasiwasi kama hii inaonekana kidogo abstract hivi sasa. Hili ni jambo ambalo tutaweza majadiliano juu. Tutaweza kupiga mbizi katika undani baadaye katika shaka. Njia hiyo aina yoyote ya kiwango cha juu uchukuaji wa mambo haya kazi ni kwamba, katika kumbukumbu, katika kompyuta yako, kila kitu ni kuhifadhiwa katika aina hii ya stack, niseme. Hivyo hadi pale juu. Sijui kama wewe guys unaweza kuona kwamba pia. Nitajaribu kuvuta. Hapa juu, sisi na asilia kimwili nini kompyuta ni interpreting-- zote zeros na ndio kwamba zipo ndani ya kompyuta yetu. Na kisha sisi initialized data na uninitialized data, kile tunachokiita vigezo kimataifa. Hivyo vigezo ambazo zipo katika mipango yote na hela nzima wako, kimsingi, kanuni. Hakuna wasiwasi kama wewe guys ni aina ya wazi juu ya hili. Ni kweli haina jambo hivi sasa. Na kisha tuna nini aitwaye chungu katika stack. Fikiria mkusanyiko halisi kama kama mkusanyiko wa mambo, mkusanyiko wa tofauti mambo kuwa kusukuma juu ya kila mmoja kuwa kuhifadhi mbalimbali vigezo na syntax ndani ya kanuni yako. Na kisha hapa chini kabisa, tuna mazingira vigezo ya nini wewe ni utekelezaji ndani ya tu mstari wako mdogo wa kanuni. Na sisi ni kwenda tu kuvuta katika juu ya halisi mkusanyiko sehemu. Hivyo haki hapa, kama tulikuwa kuvuta katika juu tu eneo hili la stack, hii ni nini inaonekana kama. Na hii ni kweli pretty muhimu wakati nyie kuzungumzia kazi, kwa sababu taarifa kwamba kumbukumbu ya kompyuta yako ni hifadhi ya vigezo na kazi na vigezo ya wote wako kazi na vigezo yako kuu katika maeneo mbalimbali. Hivyo sasa hivi, kuu ni kazi halisi kuwa wewe ni utekelezaji katika kanuni. Una vigezo wake kuhifadhiwa hapa na vigezo yake mitaa kuhifadhiwa hapa. Mitaa kutofautiana tu ina maana kutofautiana yoyote ambazo zipo tu ndani ya kazi hiyo. Na juu ya hayo, una hii kazi tofauti inayoitwa mchemraba. Una hiyo ni vigezo kama vile wenyeji hao. Na sababu unaweza ona hapa ni kwamba kile hutokea wakati mchemraba inachukua katika thamani kutoka kazi yako kuu ni kwamba kweli ni kuiga kwamba zaidi. Hivyo kama nilitaka mchemraba 2 na kurudi 8, kwamba 2 ni kweli inputted kama parameter na ni kunakiliwa juu ili una hiyo iliyopo katika maeneo mawili tofauti katika kumbukumbu. Na wewe kuwa makini sana juu ya kukumbuka ambayo moja ya wale wewe ni kweli kufanyia. Na mfano wa kile kilichotokea kwamba itakuwa sana, mbaya sana lipo hapa hapa. Hivyo haki hapa, I have got, katika nadharia, Mpango wa kulia hapa, kazi kuu kwamba mimi nina kutangaza int x sawa 1. Mimi kutangaza mwingine y int sawa na 2. Na kisha mimi nina mbio kupitia kazi hii aitwaye wabadilishane, ambapo mimi kudhani kuwa ni swapping maadili miwili. Na kisha mimi nina kwenda kwa magazeti yao nje, sawa? Hiyo ni nini nataka mpango huu kufanya. Basi hebu kuja chini na kuangalia. Hivyo kama mimi kweli kuandika tofauti kazi, kama unaweza kuona, tuna kazi yetu kuu hapa. Na kisha tuna yetu kazi ya pili hapa. Utupu wabadilishane. Utupu tu ina maana kwamba ni si kwenda na kurudi kitu chochote. Jina kazi ni aitwaye wabadilishane, na ni kwenda ulaji vigezo mbili, int a na int b, kutoka [inaudible] kazi yako. Hivyo kimsingi katika hapa, tuko kupita x na y katika kazi hii. Na kama tulikuwa kujenga Haya hivyo tunataka kujenga thamani ya muda, sawa? Tunakwenda kuwapa kwamba kwa. Na kisha ni kwenda sasa sawa b. Na b ni kwenda kuwa nyuma ambapo thamani temp ilikuwa, ambayo ni, kwa sababu wakati unataka wabadilishane mambo, huwezi tu kama kubadilishana nao. Una kuweka moja nje hapa ili anakumbuka nini yaani, kwa sababu mara moja wewe wabadilishane moja, kusahau nini kwamba thamani ya awali ilikuwa, sawa? Hivyo katika nadharia, mpango huu wanapaswa kufanya kazi, haki? Kama nilitaka wabadilishane mbili, wanapaswa wabadilishane. Basi hebu kuendesha na kuona kama ni kazi. Hivyo kama wewe guys unaweza kuona, x mara kwa mara nyingine 1 na y mara kwa mara nyingine 2. Na kama mimi magazeti ya nje, x bado ni 1 na y ni 2. Hmm, mpango huu haionekani kuwa kazi kwa njia hiyo mimi nataka kufanya kazi. Je, mtu yeyote wanataka kuchukua risasi saa kubahatisha kwa nini hii kilichojitokeza? Ni ina nini na njia kwamba mambo mbalimbali ni kuhifadhiwa katika maeneo mbalimbali katika kumbukumbu. SAWA. Hivyo nyie hawana na wasiwasi sana kuhusu hili hivi sasa. Lakini tunajua kwamba mchemraba wa ndani vigezo walikuwa na b, kwa sababu hapa katika kazi yetu, tumekuwa alitangaza a na b kama vigezo ambazo zipo ndani ya mchemraba, kazi hiyo. Lakini kama unaweza kuona, vigezo kwamba ni kuchukua katika walikuwa kuwa kuhifadhiwa hapa. Lakini sisi si walikuwa kweli kurudi kitu chochote. Sisi si kweli kubadilisha x na y. Sisi tu kubadilisha a na b. Tulikuwa kunakiliwa x na y katika kitu kinachoitwa a na b. Lakini sisi kamwe kweli kijanja x na y wenyewe. Je, wewe guys kuona jinsi yale yanayotokea? Ni kwamba tumekuwa tu kunakiliwa juu, lakini sisi si kweli naendelea wimbo wa ambapo walikuwa katika kumbukumbu. Na hivyo sasa kompyuta ni kutafuta, loo, nimekuwa kukimbia jambo hili kupitia kazi hii nzuri. Lakini x na y bado ni x na y. Hakuna kitu kilichotokea kwa nao kwa sababu ya ukweli kwamba vigezo wale na vigezo mitaa kuhifadhiwa katika tofauti mahali katika kumbukumbu. Na hii ni ngazi ya juu dhana kwamba tutaweza kuanza kuona baadaye katika shaka. Lakini tu kujua kwamba hii ni Tatizo ambayo yanaweza kutokea na kwamba tutaweza kufikiri njia ya jinsi ya kukabiliana na hii baadaye katika shaka. SAWA. Sawa. Hivyo dhana mwisho tuko kweli kwenda kufunika ambayo inaenda kuwa na manufaa kwa pset wiki hii ni kile kinachojulikana hoja mstari amri. Hivyo Rob katika hotuba yake akaenda kwa njia ya aina ya ufupi juu ya jinsi hizi kazi. Kimsingi kujua kwamba wakati wewe ni kuandika kama kazi kuu, wakati sisi aliandika kazi kabla katika siku za nyuma, tulikuwa int kuu utupu. Na sababu tulikuwa na utupu pale Ilikuwa kwa sababu mipango yetu hakufanya hivyo haja ya maadili ya pembejeo kuendesha, sawa? Wakati mimi mbio Mario, sikuweza haja kwa kweli aina tu katika kitu wakati mimi mbio Mario. Mimi naweza kuchochea mtumiaji baadaye. Lakini hiyo si mara zote kuwa kesi. Kwa mfano, katika hii Tatizo wiki seti, wewe ni kwenda kuulizwa kwamba, katika Mbali na kuendesha programu yako, wewe ni kwenda kutaka pembejeo mambo fulani katika moja kwa moja kama wewe kuendesha programu yako. Hivyo njia sisi kufanya hivyo kuitwa mstari amri hoja, ambayo ni kama hoja unaweza pembejeo moja kwa moja kama wewe ni kujaribu kuendesha programu yako. Hivyo nukuu kwa hii, ni pretty ngumu-kuangalia, lakini ni kweli si kwamba magumu. Hivyo int main-- hiyo ni kazi yako kuu. Ndani ya argc comma mabano kamba argv. Hivyo yote yale kusema ni kwamba hii int yote argc kuwaambia wewe ni kwamba wale ni idadi ya hoja ya kompyuta wanapaswa kutarajia. Kwa hiyo, jambo moja kwamba ni kweli muhimu kuweka wimbo wa ni jina kimwili ya mpango wako makosa kama moja ya hoja hizo. Hivyo kama mimi alitaka kuwa na mpango wangu kukimbia pamoja na moja ya ziada mstari amri Hoja, mimi nina kweli kwenda na mbili. Argc ni kweli kwenda kuwa mbili. Na kisha kamba argv bracket-- yote ni kufanya, ni kunipa safu ya masharti kwamba kwenda kuonyesha tu na kuhifadhi kile wote wa wale hoja mstari amri ni. Hivyo kwa mfano, kama alitaka kuwa hii mpango, ./copy infile outfile, haki? Hiyo tu ya kawaida Linux amri. Ni nini hasa ni argc? Jinsi mstari amri hoja nyingi je, kuna kweli katika hili? Wote hii haina ni kufanya nakala ya infile ya jina la faili moja na nakala yake ndani ya faili mwingine, sawa? Hayo ni yote hii ni kufanya. Kama unaweza kuona, mimi nina kufanya hivyo kwenye mstari mmoja bila kweli wanaohitaji mpango. Argc yetu katika kesi hii ni nini? Jinsi hoja nyingi tuna? Watazamaji: Tatu? ANDI PENG: Tuna tatu, hasa. Hivyo ni Intuitive sana kwa tu kufikiri kwamba ni tu infile na outfile. Lakini tunajua kwamba jina kimwili ya Mpango wewe ni mbio makosa kama moja. Hivyo katika kesi hii, argc ni kweli tatu. Vipi kuhusu, ni nini argv 0? Kumbuka, yote ya hoja mstari amri walikuwa kuhifadhiwa katika safu ya masharti. Hivyo kama mimi kujaribu kupata hiyo, ni nini ingekuwa argv mabano 0 nipe? Watazamaji: [inaudible]. ANDI PENG: Hasa. Itakuwa nipe nukta kufyeka nakala, kwa sababu hiyo ni kipengele 0, sehemu ya kwanza ya safu yangu. Je kuhusu argv 1? Watazamaji: Infile. ANDI PENG: Infile, hasa. Je kuhusu argv 2? Watazamaji: Outfile. ANDI PENG: Outfile. Hii ni kidogo suala gumu sasa. Nini guys kufikiri argv 3 ni kwenda kuwa kunipa kama mimi walijaribu magazeti kwamba nje? Watazamaji: [inaudible]? ANDI PENG: Je, una mkono up? Naam. Watazamaji: mbadala. ANDI PENG: Hasa. Basi kumbuka katika hotuba kwamba sisi na mwisho wa mashindano kitu aitwaye null Terminator? Tutaweza kupata katika hii pia zaidi juu ya darasani. Lakini tunajua kwamba katika nukuu, njia kompyuta yako anajua kwamba ni mwisho wa safu ni kwamba unaweka kitu kinachoitwa null Terminator au dash sifuri. Hivyo kama wewe kujaribu kupata argv 3, wewe ni kwenda kugonga hii dash 0. Hii ni hata zaidi ya swali hila. Je kuhusu argv 4? Hivyo hii ni nyuma null Terminator, siku za nyuma mipaka ya safu yetu. Je, unafikiri ni kwenda kutokea wakati sisi kujaribu kufanya hivyo? Watazamaji: [inaudible]? ANDI PENG: Sorry? Kusema kwamba kidogo nguvu zaidi? Watazamaji: [inaudible]. ANDI PENG: Ndiyo. Hiyo ni jina la eneo utasikia zaidi uwezekano kupata. Lakini tunajua kwamba argv 4-- kwamba utapata kupata maeneo katika kompyuta yako kumbukumbu kwamba kwa kweli haipaswi kuwa kugusa, kwa sababu sasa hivi unajua nini argv ni. Unajua kwamba ni safu ya ukubwa 3 ambayo ina nukta nakala, infile na outfile. Kama wewe kujaribu kwenda mbali zaidi ya hapo kwamba wewe ni nyuma null Terminator, kompyuta yako ina pengine kuhifadhiwa kitu katika argv 4. Na kwa kweli haipaswi kuwa kuruhusiwa upatikanaji katika argv 4, kwa sababu una faili baraza la mawaziri na uko tu kuruhusiwa upatikanaji wa wale rafu tatu. Lakini kama wewe kujaribu kufikia njia zaidi rafu ya ambapo wewe ni kuruhusiwa, wewe ni kwenda kuanza messing na mambo mengine katika kumbukumbu ya kompyuta yako. Hiyo inaenda kuwa kweli, kweli mbaya. Hivyo tu kujua kwamba. Kuwa makini sana kwamba wewe si tu nasibu kuanza kupata mambo katika safu kwamba hawakuwa katika nini alitaka kujenga. Yep. SAWA. Hivyo sisi ni kwenda kufanya mwingine wastaafu mfano hapa. SAWA. Hivyo Rob haraka katika hotuba siku nyingine alikwenda kupitia mfano huu, ambapo yeye alikuwa int kuu int argc kamba argv mabano, ambayo ni akiniambia kwamba mimi nina kwenda na hoja mstari amri. Ana, ikiwa argc ni sawa na sawa 2-- kumbuka, sawa sawa maana kulinganisha. Kama ni sawa na 2, basi mimi nina kwenda magazeti hodi, chochote kwanza kipengele cha safu ni. Mwingine magazeti, hujambo dunia. Kile ni hii kwenda kutokea kimsingi? Je, mtu tu kueleza katika Kiingereza nini mpango huu ni kufanya? Naam. Watazamaji: Kama mtu typed katika amri akasema majina yao ya kwanza na ya mwisho, itakuwa si tu magazeti kwanza moja na kusema, hello, jina lolote yako ya kwanza ni. ANDI PENG: Sawa, hebu kukimbia nayo. Hivyo kwa mfano, kama ningekuwa kufanya faili hili kufanya hello to-- hodi to-- je, unataka mimi pembejeo? Watazamaji: wa kwanza na jina la mwisho. ANDI PENG: Kwanza na jina la mwisho? Nafasi? Watazamaji: Naam. ANDI PENG: Je, mtu kuwaambia mimi hivi sasa, ni nini argc? Haki tu huko? Lo, pole. Hebu kwenda nyuma. Jinsi mstari amri hoja nyingi are-- nyie kweli hawezi kuona. Lakini nitajaribu kuvuta. Ninajaribu. Naam, kuna tatu, sawa? Ni dot slash ni hodi, ni Andi, na ni Peng. Basi je, wewe guys kufikiri hii Mpango ni kwenda kuwa uchapishaji nje? Loo. Oh, pole. Jina sahihi. Ni uchapishaji nje, hello dunia. Je, mtu yeyote wanataka kueleza nini kinatokea? Yeah? Watazamaji: [inaudible]. ANDI PENG: Hasa. Hivyo hapa, ni masharti ni, kama argc ni sawa sawa na 2. Hivyo tu katika kesi hiyo kuna mbili hoja mstari amri. Kisha mimi nina kwenda magazeti, hello, chochote ni. Lakini kingine, mimi nina kwenda kwa magazeti tu, hello dunia. Hivyo haina mtu unataka kunipa mfano ya jinsi napenda kuwa na uwezo wa kweli kupata hiyo na magazeti thamani ya argv 1? Kitu gani mimi kuwa na pembejeo hapa? Jambo moja tu, sawa? Kwa sababu nukta hello tayari makosa kama hoja ya kwanza. Mimi tu moja zaidi. Hivyo dot hodi kama mimi tu kufanya Andi. Hello, Andi. Je, kila mtu kuelewa nini kinatokea? Naam. Watazamaji: Hivyo nafasi kati amri line-- ni [inaudible]? ANDI PENG: Hapana Hivyo nafasi katika mstari amri hoja, X, kuwaambia kompyuta yako kwamba hii ni mwanzo wa kamba mpya. Hivyo kamba argv here-- ni maduka wote wa amri yako hoja mstari katika masharti. Na hivyo nafasi katika mstari amri argument-- zote kwamba hana ni nawaambia, hii ni mwisho wa kamba mmoja na ni wakati wa kuendelea na mwingine. Naam. Hii ni pretty muhimu kwa pset yako, kwa sababu wewe ni kwenda kuwa kupima haya. Hivyo haina mtu yeyote kuwa maswali yoyote juu ya hili? OK, baridi. Yeah? Watazamaji: Hivyo sababu wewe ungekuwa kuweka integer hoja calc badala ya [inaudible] itakuwa wakati unataka aina ya maelezo ya ziada kwa [Inaudible]? ANDI PENG: Yeah, kwa uhakika. Baadhi ya programu itahitaji pembejeo mstari amri hoja kwamba unapita katika na ambayo inatumia huo. Naam. Watazamaji: Hivyo nini kama [inaudible]? ANDI PENG: Naam, je, nina kubadili kisha katika mpango wangu? Watazamaji: 3 tu. ANDI PENG: Kwa nini ni kwamba kinachotokea, unafikiri? Watazamaji: Kwa sababu [inaudible]. Watazamaji: Ningependa kuwa na mabadiliko hayo kwa 2 [inaudible]. Watazamaji: 1 na 2. ANDI PENG: 1 na 2, hasa. Hivyo katika kesi hii, wewe ingekuwa pengine wanataka kuwa na mbili printf statements-- moja kwamba kuchapishwa argv 1 na moja kwamba kuchapishwa argv 2. Hapa. Mimi kweli anaweza kufanya hivyo haraka kweli. Kuna kwenda. Loo. Si kabisa nini alitaka. Lakini kama nyie fujo karibu na formatting, itakuwa nje. Naam. Baridi. Najua sisi ni kidogo mfupi juu ya muda. Lakini mimi nina kwenda tu haraka kutumia dakika kadhaa kwenda kwa helpful-- Watazamaji: Una dakika mbili. ANDI PENG: Nina dakika mbili? Asante. Baadhi ya haraka pset tips. Hivyo kwa pset hii, Mimi sana kupendekeza, kama nilivyosema, kila mtu kusoma spec. Wewe utakuwa kuandika tatu programs-- moja aitwaye initials.c, yeye anayeitwa caesar.c, mtu mmoja aitwaye vigenere.c. Baadhi ya vidokezo muhimu kwamba nyie kweli wanataka kuweka katika mind-- hivyo kuna kazi hii aitwaye atoi-- kama mimi kama kusema, trois. Haieleweki kama hiyo kweli jinsi gani kusema hivyo. Lakini wote ni kufanya, ni inputting. Ni waongofu kamba kwa int. Hivyo inawakilisha ASCII kwa i integer. Ni kuwabadili ASCII tu maadili kwa integer maadili. Basi kumbuka argv, safu kwamba maduka wote wa amri yako kujipanga arguments-- ni maduka yao yote kama masharti. Na hivyo kama unataka kuwa na uwezo wa kuwa mmoja wao kuwa integer, wewe ni kwenda na kutumia thamani huu hapa. Modulo, kama sisi kufunikwa mapema katika darasa leo, utapata kuwa salio ya chochote una. Hivyo kama tuna kweli, kweli idadi kubwa katika Kaisari, nini kama tuna mwisho ya kamba ya Vigenere? Jinsi ni wewe kwenda kuwa na uwezo kupata kwamba kufungia? Kama mimi kugonga z na nataka ni kurudi kwenye, jinsi mimi kwenda kupata kwamba kufungia? Pengine wanataka kutumia modulo katika pale mahali fulani. Pili, kuvinjari kuzunguka maktaba yako. ctype.h. Hiyo ni maktaba mpya tuna. Utakuta mengi ya kweli, kweli muhimu functions-- isupper, islower, toupper, tolower, isalpha, nakadhalika. Kazi zote kwamba itakuwa muhimu sana wakati wewe ni kujaribu kufikiri, ni tabia hii barua lowercase? Je, mimi kubadili hii kamba kwa uppercase? Mambo haya yote itakuwa sana, msaada sana kwa pset yako. SAWA. Ofisi ya masaa usiku wa leo ni 8:00 kwa 11:00 katika TEAL darasani kesho kama vile Jumatano na Alhamisi usiku. Masaa ya ofisi ni katika commons. Sana kupendekeza nyie zote kupata kuanza mara moja, kwa sababu wewe hawataki kuwa kwamba mtoto ambaye Alhamisi usiku ana matatizo kuwasilisha pset yako na ni kama, sijui nini cha kufanya. Mimi kuanza, mimi kumaliza, mimi kuwasilishwa. Jaribu kujipa baadhi ya chumba, kwa sababu katika matatizo kificho daima kutokea. Wewe unataka kuhakikisha kwamba wewe kutoa mwenyewe muda mwingi kuweza kukamilisha psets. Baridi. Mimi itabidi hutegemea kuzunguka hapa. Watazamaji: Je, hii ni online tayari? ANDI PENG: Sijui kama ni online tayari, lakini itakuwa. Mimi itabidi hutegemea kuzunguka hapa kama kuna mtu ina maswali yoyote tayari. Shukrani kwa kuja.