[Powered by Google Translate] [♪ paghiging ♪] Kaya upang ipakilala ka sa kung ano ang Mayroon akong sa screen; ito ay isa sa mga tool na aming binuo sa ibabaw ng tag-araw; ito ay tinatawag na CS50 puwang, at ito ay aming collaborative coding application na kami ay pagpunta upang gamitin sa mga seksyon. Ito ay medyo cool. Na-anumang mo nakikita CS50 run? Hayaan akong hilahin ang up na iyon sa isa pang tab. Run.cs50.net Kaya kung pumunta ka sa run.cs50.net, maaari mong makita na ito ay isang sa iyong browser na paraan upang aktwal na code - isulat ang C code, at pagkatapos patakbuhin ang mga ito, kaya parehong compiles ito, tumatakbo ito, pagkatapos ay bumalik ang output sa iyo, kaya ito ay uri ng isang cool na paraan upang eksperimento sa ilan sa ang code na David napupunta sa aralin at bigyan kami sa iyo sa hanay ng problema nang hindi aktwal na pagkakaroon painitin ang appliance. Kaya kung ano ang mga puwang ginagawa na naiiba mula sa kung lumipat ako pabalik sa tab na ito, Puwang CS50 run, tulad ng makikita mo dito mismo, ngunit kung mag-scroll namin at tingnan ang iba pang mga bahagi ng window, makikita mo sa kanan ako lamang ang tao sa puwang na ito, ngunit kung ano ako pagpunta sa gawin ay hilingin mo guys na sumali sa Space sa akin at namin ang lahat ng sa code sa parehong maliit na window, ibahagi ang code sa bawat isa, at makipag-usap tungkol sa mga pagkakaiba sa pagitan ng aming code. Kaya ito ay uri ng isang cool na bagay - kaya sumali, kung gusto mong bisitahin ang link na ito dito mismo sa tuktok na nai-highlight ko, maaari mong i-type lamang sa apps.cs50.net/spaces/vqcspSnO. Lahat ng karapatan, kaya magsimula, Ako pagpunta upang bigyan ka ng ilang sandali ng isang tour ng ito. Hindi namin gonna gawin ang ilang ulok maliit na coding dito sa unang, lamang upang ang lahat ay medyo nakakakuha ng isang pakiramdam para sa kung ano ito ay tulad ng, ngunit kung ano ang ko na gawin - o kung ano ako tungkol sa gawin dito mismo ay - Ako pagpunta sa gawin ang mga code na ko na nakasulat sa dito, kung saan tulad ng nakikita mo ngayon ay walang laman; hindi ito gawin. Lang boiler plate ng code, makakakita kami tatawag ito. Na may isang maliit na gagawin komento. Ako pagpunta sa i-save ang mga ito sa pamamagitan ng pagpindot ang pindutang I-save. At ano ang ginagawa nito naka-highlight na ito dito maikling - na rebisyon save berdeng kahon, at ngayon, kung kang maghanap para sa akin sa Space, sa iyo na i-click ang aking pangalan, maaari mong makita na Mayroon akong ang pagbabago na ito dito mismo, at kung nag-click ka sa na rebisyon, ito load na ang code sa iyong Space,. Kaya ang lahat load na ang code sa kanilang Space? Karapatan lahat, kung mayroon kang hindi pa, sige at gawin iyon, at pagkatapos ay kung ano ang gusto kong mo guys na gawin sa ang maliit na ito upang gawin ang seksyon ay magsulat ng kaunti gamit printf tungkol sa iyong sarili, kaya halimbawa, nais kong isulat printf ("Ang pangalan ko ay Nate"); at gusto kong isulat "Ako nagtapos noong 2009 mula sa Stanford " at gusto kong makarinig ng tungkol sa ano taon sa paaralan, kung ikaw ay sa kolehiyo o sa negosyo paaralan o iba pang Harvard paaralan, kung ano ang iyong pag-aaral kung ito ay kilala pa; kung hindi ito kilala, na lubos na cool na. Hindi ko magpasya hanggang ako ay late sa aking sopomor taon. at pagkatapos ay Gusto ko ring ibigin malaman anumang mabaliw gusto mong sabihin sa akin o isang bagay tungkol sa klase o anumang bagay. Kapag tapos ka nang pagsusulat na sa iyong maliit na printf, kung makikita mo i-save ang rebisyon o sa halip siguraduhin munang maaari mong patakbuhin ang mga ito at ito mga Kopya kung eksakto kung ano ang nais mo ito upang i-print ang, at pagkatapos ay kung pupunta ka magpatuloy at i-save na ang rebisyon gamit ang pindutan ng I-save ang Pagbabago, ang unang maliit na tao sa paglipas dito, at magpapadala kami ay medyo pumunta sa pamamagitan ng at gawin ang isang maliit na panimula na paraan. Kaya dapat mo lamang pindutin ang pindutan ng Play, na dito sa tuktok na kaliwang, kaya ito Play button sa kaliwang tuktok ay ipadala ang iyong code sa aming server na kung saan ito ay makakakuha ng inipon at pagkatapos ay magpatakbo ng. Kaya kung ano ang ay medyo mabaliw tungkol sa ang code na ito ay hindi aktwal na tumatakbo sa iyong computer; aktwal na ito ay ipinadala sa Internet. Paano ang pagpunta, Charlotte? >> Ko - okay. I'm - tingin ko ako pag-kahirapan-save ito sa server tulad na ito - Maaari ko bang patakbuhin ang program. At pagkatapos ay kapag sinusubukan kong patakbuhin ito, sinasabi nito na may isang error. Ipinahayag bilang isang virus, na kung saan ay hindi doon ngayon. Oh, sabihin makita, maaari mong pindutin ang I-save muli? Ko makita ito sa screen. >> Karapatan, okay, kaya na kung ano ang mayroon akong. At hindi ko alam kung bakit hindi ito ipaalam sa akin patakbuhin ito. Oh, okay, paumanhin. Maaari mong ipaliwanag kung bakit - kung ano ang mali - kung ano ang hindi gumagana dito? >> Oo, dahil hindi ko nakita na nagkaroon ng huling linya kung saan may pa rin sa isang variable na hindi ako ay ipinahayag, na hindi ko nilayong para dito doon. Oo, perpekto! >> Ngayon kung ko bang i-save ito, tingin ko ito ay gagana. Ngayon na nai-save mo ito, ito gumagana; kahanga-hangang. Kaya oo, bilang namin pumunta sa pamamagitan ng - kaya kung ano ang pagpunta sa, Ako pagpunta sa ulitin ito para sa camera. Ano ang nangyayari ay na ito variable s ay naiwan sa pagkatapos - ipinapalagay ko tinanggal mo ang ilang iba pang mga bagay-bagay kung saan mo ipinahayag bilang, at kaya ito ay ibinabato bagay off at hindi hinahayaan kang patakbuhin ito. Kaya ito ay kung ano mismo ang gusto naming gawin sa seksyon ay na ang mga tao na subukang pagsusulat ng mga iba't ibang mga piraso ng code, kino-compile ito, tingnan kung ano ang gumagana, makita kung ano ang hindi, at pagkatapos ay medyo makipag-usap tungkol sa mga bagay na ito, dahil ang mga balakid puntos na Ko pa rin nakatagpo, Ko pa rin - gagawin ko maraming ng ulok mga bagay-bagay sa lahat ng oras, at hindi ko alam kung bakit hindi ito gumana, kaya sabihin makuha ang Charlotte ng rebisyon 3, at kami na patakbuhin ito. Kaya kapag nagpatakbo ako, ngayon na Mayroon akong kanyang code in dito, Maaari kong mag-zoom in, pindutin ang pindutang Run, upload ito, bumubuo ito, tumatakbo ito, sabi ni tumakbo ito matagumpay, at kung mag-scroll ko pababa, makita Charlotte ay isang junior sa Adams House, sikolohiya, pangalawang sa economics; kahanga-hangang. Ang Great upang matugunan sa iyo! Kahanga-hanga. Okay, paglipat sa, sabihin pumunta sa Daniel, pumunta sa rebisyon 3, makatipon, patakbuhin; bakit hindi mo sabihin sa amin ng kaunti tungkol sa iyong sarili, Daniel? >> Tawagan ako Dan. Ako pagpunta sa paaralan ng negosyo sa kabuuan mula sa iyo guys, at ako ay sa Marino bago dito, at ito ay lahat ng mga bagong sa akin, kaya oo. Huwag sumama ang pakiramdam, ako 30 at hindi ko alam ang anumang ng mga bagay na ito. Kahanga-hanga; salamat, Dan! Karapatan lahat, nakuha namin ng isa pang Daniel. Pumunta ka sa pamamagitan ng Daniel - ay mong ipakilala ang iyong sarili, Daniel? >> Oo naman, ako Daniel. Ako isang sopomor sa Mather ngayon. Ako sa pagtuon sa mga pamahalaan, ngunit Nais kong gumawa ng CS50 dahil narinig ko na mahusay na mga review tungkol sa mga klase at hindi ko na sinubukan CS bago. Mag-scroll down dito at ipakita ito - cool. Paglipat sa, Jared. Paano ang pagpunta? >> Magandang, kung paano ka? Tulad ng iyong nakikita, ako junior concentrator pilosopiya sa Eliot, orihinal na mula sa timog California, at ako ay interesado sa pagkuha CS50 dahil gusto ko ang logic nito, at tila talagang cool na upang gawin ang mga bagay sa computer, kaya. Kahanga-hanga, kung saan sa katimugang California ay mula sa? >> Tungkol sa isang oras mula sa [hindi marinig], isang maliit na lungsod [hindi marinig]. Oh, oo, ang aking ama mula sa Redlands. Cool na bagay. Lahat ng karapatan, Jimmy; kung paano ang ito pagpunta, Jimmy? >> Magandang, kung paano ka? Paggawa medyo na rin! Sabihin sa amin ang tungkol sa iyong sarili. >> Ako ng isang primer anyo, at ako ay hindi ganap na sigurado kung ano ako majoring sa ngunit ay medyo ako nakahilig patungo sa economics. Tulad Daniel bago sa akin, hindi ko nagawa mo na ang anumang CS, ngunit ito tunog ay medyo cool na. Ako ay orihinal na mula sa Chicago. Kahanga-hanga. Kaya tingnan ang kanyang printout dito. Nais kong hilingin, ginawa ito print out bilang inaasahan mo? >> Hindi, nakalimutan ko upang mag-print ng isang bagong linya. Nakalimutan ko aktwal na kapag ako ay sumusulat ng aking mga bagay sa unang pagkakataon, masyadong. Ito ay uri ng isang sakit sa tandaan na ilagay ang mga nang manu-mano. Nais ito ay gandang kung ito lang alam na kung ano ang nais. Okay, Kelly. Wow, mayroon kaming 2 Kellys; 2 Daniels, 2 Kellys. Kaya Kelly - kang pumunta ni Kelly Ren? Okay, kahanga-hangang. O Kelly, ibig sabihin ko. >> Kaya oo, kaya ako Kelly. Ako isang sopomor sa Pfoho. Nakatanggap ako ng e-mail ngayon na Mayroon pa akong 7 linggo upang idedeklara ang aking konsentrasyon, kaya sinusubukan ko ang hindi mag-isip tungkol dito, at gusto ko sa pagbe-bake, pagtakbo, at Craisins. Wala akong karanasan sa karamihan ng CS; Taught ko sa aking sarili upang bumuo ng mga Web site kapag ako ay talagang batang, ngunit tingin ko ko marahil taught aking sarili mali ng maraming beses. Sana matuto ako ng kaunti higit pa at - oo. Kahanga-hanga; na rin, salamat sa iyo. Natin pumunta sa iba pang mga Kelly; Wala akong anumang - ang sinabi ninyo ng isang bagay in dito? >> [Hindi marinig] May ito ay! Magaling! >> Lahat ng karapatan, kaya ako Kelly. Ako ng unang taon mag-aaral ng graduate. Majoring ako sa isip, Utak, at Education. Nagtapos ako sa Franklin & Marshall College noong 2008 may mga majors sa sikolohiya at sosyolohiya at isang menor de edad sa Pranses. Ako ang pagkuha CS50 dahil ako ay interesado sa pagkuha ng isang PhD sa Neuroscience at pakiramdam ko tulad ng ito ay makakatulong sa akin na maunawaan ang mga teknolohiya na ginagamit. Kahanga-hanga. Paglipat sa, Mikaela. Ay na tamang pagbigkas? Okay, kahanga-hangang. >> Ako Mikhaila. Ako isang sopomor sa Kirkland House, at ako pagtuon sa Mechanical Engineering. Gusto ko talagang pagbibisikleta, na binuo ng bisikleta ito tag-init. Ako ang pagkuha ng CS, aktwal na, bilang isang konsentrasyon kinakailangan, ngunit alam mo, tingin ko pa rin ito cool na uri ng klase ng engineering. Kahanga-hanga - bumuo ng isang bike ang tag-init na ito? >> Oo. Wow, tulad ng frame at ang lahat na? >> Uh-hunh (positibong). Wow, na talagang cool na. >> [Hindi marinig off-camera chat] [Tawa] Oo, ito ay kaya mahaba. Hindi mo alam, i-right? Well, cool na; well salamat, Mikhaila. Lahat ng karapatan, Missy. >> Missy ng Aking pangalan; ako ng primer anyo, sa gayon ay nangangahulugan na hindi ko alam ang anumang! Gusto ko upang tumutok sa mga astropisika. Sa CS50, Pakiramdam ko ay tulad ay tiyak makatulong na iyon. Isang kakaibang katotohanan tungkol sa akin ako ng isang nationally certified firefighter. Wow! Paano ay na mangyayari? >> Ko dinaluhan ng isang akademya at nagpunta sa pamamagitan ng impiyerno para sa isang maraming linggo at nakuha ang aking certification. Wow, Malugod na pagbati! Iyon ay hindi maliit na gawa, para bang. Okay, kaya ngayon gagamitin namin gawin sa akin. Ako sa susunod na isa sa sunud-sunod. I'm - patakbuhin ito. Kaya ang aking pangalan ay Nate. Ako ay klase ng 2009 sa Stanford. Ako ay isang symbolic Systems pangunahing, na katulad sa isip, Utak, Ugali ng konsentrasyon dito, ngunit ito ay uri ng isang halo ng mga computer science, lingguwistika, sikolohiya, at pilosopiya. Uri ng - oo, ng maraming mga bagay na kakaiba, ngunit ito ay mahusay, at pagkatapos ko ang aking master sa Computer Science doon, pati na rin. Kaya ako bago sa Harvard sa taon na ito. Ko talagang gusto upang makakuha ng sa pagtuturo. Ginugol ko ang huling 4 na taon sa Stanford TA-Pina klase ng Computer Science at kaya ipaalam David dumating ako sa, at ako ay gonna ay ang pagtulong sa may CS50, kaya ko full time na ito, Hindi ako sa Grad paaralan. Ito ay masaya. Sana ito ay patuloy na maging masaya, ako ba ay ito. Lahat ng karapatan, Sam. >> Ang pangalan ko ay Sam; ako sopomor sa kolehiyo, sa batas partikular. Aking mga pangunahing ay kasaysayan ng agham, marahil, at VES pangalawang, at ang aking paboritong kulay ay dilaw. Hindi na kailangan upang pumasa paghuhukom o anumang bagay, ngunit ito ay isang mahusay na kulay! At Stella. >> Hi, ako Stella, ako isang primer anyo sa Grays. Mayroon akong walang bakas kung ano ang ko na puro sa pa, kaya CS50 lamang uri ng random, na kawili-wili. Kasayahan katunayan, Jimmy unang Harvard kaibigan ng minahan, dahil hindi namin parehong mula sa Chicago. Mahusay, at Grace - na dapat na talagang maganda ang isa, i-right? >> Naisip ko na [hindi marinig]. Oh, oo. [Hindi marinig / off-camera chat] Okay; pa rin ako sa pag-aaral, pa rin ang pag-aaral. Kaya Mayroon namin ang ibang bagay na uri ng kawili-wiling dito. Oo, ako nagtataka, mayroon kang isang ideya na ang nangyayari sa dito? Alam mo kung paano i-interpret ang? >> Ko ay dapat na ilagay ang semicolon pagkatapos ng bawat solong linya. Iyon ay uri ng isang sakit. Minsan ang mga semicolons ay maaaring maging isang tunay na sakit upang subaybayan ang down na. Kaya ito lumiliko out na ang mga espesyal na programa na aming ginagamit ang taon na ito sa makatipon ang aming code sa C ay tinatawag na kumalatong, at ang dahilan na sinimulan namin upang gamitin ang kumalatong sa taong ito - dahil hindi pa namin ginamit ang program na sa nakaraan; ginamit namin ang isa pa tinatawag GCC na talagang sikat na - Kumalatong aktwal ay nagbibigay sa iyo ng mga mensahe ng error na may kabuluhan. Ang isang ito nagsasabing "inaasahan ';' pagkatapos expression", at kahit na nagsasabi sa iyo ang expression na kung saan pagkatapos, kailangan mo ng isang tuldok-kuwit. Kaya mo ang pag-aayos nito? >> Oo, sa ngayon. Kahanga-hanga, ipaalam sa akin at makikita namin ito hilahin pataas, at kami na patakbuhin ito. Ngunit oo, paglalagay ng mga semicolons na ito sa uri ng isang sakit. >> Naayos ko ito, kaya tingin ko ito ay gagana. Kahanga-hanga - rebisyon 3. Na kamukha nito. Karapatan lahat, kaya ngayon kung patatakbuhin namin ito, may napupunta ito. Cool na bagay. Ayos lang. Kaya salamat para sa paggawa na. Ito ay mahusay na upang matugunan sa iyo guys. Ano ang hindi namin gonna gawin ngayon ay gastusin sa susunod na kaunti ay medyo diving sa problema ng seksyon na dumating mula sa problema mula sa linggong ito at gagawin namin na para sa karamihan ng mga seksyon para sa iba pang mga bahagi ng termino, at pagkatapos ay gagamitin namin i-save ang huling 15, 20 minuto o kaya makipag-usap tungkol sa problema ang mismong at pagkatapos ay anumang iba pang mga tanong na mayroon ka sa pangkalahatang tungkol sa klase. Na sinabi, kung ano ang aming talagang Gusto gawin ay na lahat kalahok gamit ang mga puwang sa mga bagay-bagay, ibinabato sa code, ibinabato sa mga mungkahi, at pakikipag-usap tungkol sa kapag ang mga bagay na gusto ito ng break o hindi gumagana, dahil lang sa mga bagay na Alam ko na ako ay dumating sa buong kapag nagsimula ako coding, at talaga ay medyo nakakadismaya sa mga oras dahil kung ito ay tulad ng 2:00 bago ang iyong hanay ng problema ay dahil, kaya - para lamang sa pagsisiwalat, Hindi ko simulan ang programming hanggang ako ay isang sopomor sa kolehiyo. Ito ay uri ng ito kakaiba, hindi alam na bagay na Narinig ko ay medyo cool na at narinig ko din maaaring ito ay isang tunay na sakit sa puwit kung miss ka ng semicolon at na lamang ang error na pinapanatili ang iyong programa mula sa pagtatrabaho at pinapanatili sa iyo mula sa pag-sleep, kaya talagang, kung mayroon kang mga katanungan na tulad nang, kung mayroon kang mga alalahanin na tulad nang, ipaalam sa akin, dahil gusto ko upang gawin itong isang mahusay na karanasan para sa iyo guys. Kaya mo lahat ng na-download ang mga guys ang problema ay itakda ang pa? Ay medyo malaman kung saan ito ay? Okay. Kaya kailangan naming pumunta sa cs50.net, dahil hindi ko ito sa account na ito, makuha ang mga hanay ng problema, makuha ang problema set 2, at titingnan namin sa standard edition ngayon. Susubukan naming makuha ang detalye ng dito. Mag-scroll pababa. Kaya hindi namin gonna simulan ang pagtingin sa seksyong ito ng mga tanong. Mo ba ang guys pinanood pa ang mga shorts na ito? Okay. Kaya may short sa loop, na ginawa ni Tommy, isa ng ang mga Fellows ng pagtuturo ng ulo. Mayroong isa sa saklaw, Ako Naniniwala ginawa ng ibang kapwa ng pagtuturo na may pangalang David at pagkatapos ay isa sa Caesar Cipher na ginawa sa pamamagitan ng David. Ang mga ito ay medyo cool. Mo ba ang guys na nanonood sa ngayon ang kanilang mga shorts? How've sila ay? Nakakatulong? Okay, magandang malaman. Kung hindi, maaari mong sabihin ito. Ngunit bago mo ito gawin, mo guys tumingin sa mga tanong na ito sa lahat? Natin makipag-usap tungkol sa ilang sandali. Kaya ipinakilala namin ang sa huling dalawang linggo sa panayam ng isang bilang ng mga iba't ibang mga loop. Ang loop, habang loop, at pagkatapos ay ang Do-habang loop, at sa panayam, kami ay pakikipag-usap ng maraming tungkol sa kung paano ang mga loop ang lahat medyo katulad sa maraming paraan, at maaari mong gawin mas ng parehong mga bagay na may isang habang loop na maaari mong may isang para sa loop. Mo lamang sa uri ng gamitin ang tamang kumbinasyon ng mga variable at tulad. at kaya talagang ang tunay na pagkakaiba sa pagitan ng lahat ng mga loop na minsan ito ay mas kapaki-pakinabang gamitin ang mga ito sa isang oras kaysa sa ibang oras. Kaya halimbawa, habang loop magkakaibang mula sa isang Do-habang loop. Pakiramdam ba ang lahat tulad ng mayroon sila ng isang mahusay na hawakan sa kung kailan isang gawin-habang loop ay mas kapaki-pakinabang o kung ano ang pagkakaiba sa? >> Sa tingin ko na ang pagkakaiba ay isang Do-habang loop tumatakbo - Hindi ko alam lubos kung ano ang terminolohiya ay, ngunit ang serye ng mga function sa loob ng loop. Ito ay awtomatikong - ginagawa nito nito Nagpapatakbo ng hindi bababa sa bago ito sumusuri ang kundisyon, o habang loop ay tatakbo lamang ito kapag ito patuloy na tumatakbo - man o hindi ang kondisyon ay nasiyahan. Oo, ay na magkaroon ng kahulugan? Natin tingnan sa ilang sandali ng code. Kaya lang ulitin ang tanong, o ang sagot, sa halip; ang sagot ay na habang loop ay suriin upang makita kung ang kundisyon na tinukoy mo ay natugunan bago ito tumatakbo ang katawan ng loop para sa unang pagkakataon, samantalang ang Do-habang loop ay awtomatikong tatakbo ang katawan ng loop, ay kung ano ang tinatawag naming ito - ito ay kakaiba terminolohiya, ngunit kung ako man nating ang anumang bagay na hindi magkaroon ng kahulugan, ipaalam sa akin - sa loop katawan na mga bagay-bagay na iyong ilagay in sa pagitan ng mga kulot tirante. At sa do-habang loop, na katawan makapag patakbuhin ang nang hindi bababa sa isang beses, at pagkatapos ay ang kundisyon ay makakakuha ng naka-check bago ito ay tumatakbo sa bawat sunud-sunod na oras. Sa aktwal, Sam, tututol ba kayo sumulat ng isang simpleng habang loop sa puwang? >> Paano mo ayusin ng tulad ng gumawa ng bagong ...? Ko lang tanggalin ang anumang mayroon kang doon. Oo, i-clear lang ito. >> Well, naniniwala ako Nagkakaroon ako ng mga ito - kung alin ang gusto mo, habang, o ang gusto mong ...? Oo, lamang ang habang totoo, i-print ng isang bagay out. At sabihin makita. Alexander, natanto ko ipinakilala namin kailanman mo. >> Oh, na fine. Ka ba - maaari mong code do-habang loop para sa amin? >> Oo, kukunin ko na subukan. Karapatan lahat, kami lang hilahin ang mga up sa screen, sa gayon ay uri ng isang hawakan sa kung ano ang pagkakaiba. Kaya narito ang Sam tapos. Siya nakakuha ng isang integer tinatawag na i na siya nasimulan sa 17. Pagkatapos sabi niya habang (int i = 17) printf ("Ang pangalan ko ay Sam."); Kaya kung ano ang mangyayari kapag nagpatakbo namin ang code na ito? Mayroong isang error, kung ano ang sabihin ng error? Natin hilahin ang mga ito at makipag-usap tungkol dito. May naganap na error, sinasabi nito. Natin mag-scroll pababa. Kaya ibinigay sa amin ang error na ito, at sinabi, "Uy, inaasahan ko ng isang expression." Iyon ay medyo misteriyoso. Oo, kaya eksakto - at muli, ay may isa pang maliit na bug na kami mahuli sa loob lamang ng pangalawang. Ngunit ito ay isa pang isa sa mga uri ng kakaiba terminolohiya bagay, kaya ito int i = 17 ay hindi isang expression. Ano ang mukhang ito ginagawa ito deklarasyon isang integer na tinatawag i at pag-set ito upang pumatas sa 17 o, sa halip, paglalagay ng 17 sa int na tinatawag i. At na hindi magkaroon ng kahulugan sa konteksto ng mga ito habang loop. Ito ay hindi magkaroon ng kahulugan, dahil kakailanganin namin nakikita, sa konteksto ng isang loop, dahil para sa mga pagdeklara ng loop magsimula sa na ang para sa int i katumbas ng isang bagay at napupunta sa. Kaya ginawa mo - ayusin ang isang bagay, ang lahat ng karapatan. Narito ito napupunta; kahanga-hangang. Kaya ngayon bagay tumingin ng kaunti ibang. Ang ilang mga bagay ay nagbago. Maaari mong sabihin sa amin kung ano ang bagay ay nagbago? >> Kinuha ko ang int, kaya ang walang deklarasyon [hindi marinig] sa halip ng isang pagtatalaga. Ang isang katumbas sign, ko bang ilagay ang 2 katumbas na palatandaan, na nangangahulugan ng isang katumbas. Kahanga-hanga. Oo, kaya kung ano ang Sam ay ay kinuha niya ang int na dito mismo mas maaga, kaya kung ko lang tumingin sa ito - ito ay kung ano ito ay mas maaga, sinabi int, na deklarasyon ito - kaya kinuha namin ang uri. May int, magpasinda, string, maikling, iyon ay tinatawag na uri. Kaya mo kinuha ang uri at pagkatapos ay dati, nagkaroon siya lamang iisang equals sign at kung ano ang sinabi niya ay may problemang tungkol sa kapag mayroon kang 1 equals sign, na ang isang operator sa pagtatalaga. Na hindi sa pagsubok man o hindi ang 2 bagay ay pantay-pantay. Na aktwal na pagtatakda ng isang bagay na katumbas sa isang bagay. Namin ang paglalagay ng bilang 17 sa variable i. Kaya gawin na uri ng paghahambing, mayroon kang upang gamitin ang double katumbas, na uri ng kakaiba bagay ngunit ito ay isang medyo karaniwang error. Kaya isa pang bagay kukunin ko na ituro, kung hindi tututol kayo, ay na sa ang aming function na dito sa int pangunahing, nakikita mo na ang katawan ng aming mga function na offset mula sa kaliwang bahagi ng 4 na mga puwang o isang tab. Ang dahilan na gawin namin ito ay para lamang sa pagiging madaling mabasa. Tulad ng iyong nakikita sa habang loop Sam dito, hindi siya i-indent sa lahat, at na hindi nakakaapekto sa pag-andar ng code. Ito ay magpatakbo ng eksaktong kapareho. Kaya halimbawa, kung dumating kami sa tuktok dito at pindutin ang aming Play button, ito ay bumuo ng ang mga ito, ito patakbuhin ito, at kung ano ang pagpunta sa mangyayari? Bakit ang sinasabi pa rin ito ang tumatakbo? >> Dahil ito ay patuloy na paulit-ulit na hi. Eksakto, at bakit ang patuloy na paulit-ulit na hi? >> Hindi kailanman Dahil integer ang mga pagbabago, kaya ito ay palaging 17. Oo, eksakto, kaya sabihin makita, pagkatapos - ipaalala sa akin ng muli ang iyong pangalan? Jimmy. Kaya Jimmy sinabi na ang dahilan kung bakit ito mapigil ang paulit-ulit na hi nang paulit-ulit ay dahil sa kondisyon na ito ay palaging tunay. Hindi namin baguhin ang halaga ng i. Hindi namin baguhin ang mga nilalaman ng kung ano ang naka-imbak sa variable na. Kaya sa puntong ito namin nakuha ang error na ito na ang iyong programa ay nakabuo ng masyadong maraming output, at kung mag-scroll pababa namin at uri ng pagtingin sa kung anong nangyayari sa dito, maaari mong makita na ito ay hi, hi, hi, hi, hi, hi, hi ang lahat ng mga paraan sa pamamagitan ng. Kahanga-hanga. Kaya uri ng bumalik sa orihinal na punto na ang pagkakaroon dito ang indentation sa katawan ng loop habang hindi makakaapekto sa anumang bagay. Ang programa pa rin tumatakbo lamang fine. Karaniwan para sa mahusay na estilo - at ito ay isang bagay na tinitingnan namin para sa iyong mga hanay ng problema - kami ay magtatanong sa iyo upang ipasok ito sa pamamagitan ng 4 puwang, na maaari mong gawin sa pamamagitan ng lamang ng pagpindot sa key ng tab o sa pamamagitan ng manu-manong ng paglalagay sa 4 puwang sa iyong sarili. Cool, okay kaya sabihin bumalik at tumingin sa Alexander gawin-habang. >> Lamang ay medyo nagkakaroon ng kaunti ng problema. Okay, mahusay na sabihin sa pamamagitan ng ito. Na cool na? >> Oo. Okay, kaya dito namin pumunta. Ito ay ang code na Alexander sinulat ni. Huwag kang pumunta sa pamamagitan ng Alex - okay. Kaya narito ang code na Alex ay nakasulat. Kaya, na nakuha namin sa aming deklarasyon ng pangunahing dito mismo, at pagkatapos namin Mayroon integer variable na ito na tinatawag na i na ipinahayag dito mismo. Mayroon kaming Do pahayag at pagkatapos ay ang katawan muli sa mga tirante, kaya ito ay ang katawan ng Do-habang - hayaan mo akong mag-zoom in sa upang mas nababasa - at sa katawan, kami ay sinusubukang i-print "ito ay katawan", i + +, kaya dagdagan ang mga nilalaman ng i at gawin ito hanggang sa i ay nakakakuha na 3, at pagkatapos ay nagtatapos ang aming programa. Kaya kung ano ang mangyayari kapag nagpatakbo namin sa programang ito? >> Inaasahan ko isang identifier. Okay, sa gayon bumuo, patakbuhin, ang error ay nangyayari. Ano ang mangyayari? Mag-scroll pababa namin dito, makuha namin ito medyo misteriyoso hinahanap na bagay, inaasahan semicolon pagkatapos ng nangungunang antas na pagpapahayag. Iyon ay medyo kakaiba. Ba ang sinuman magkaroon ng isang ideya ng kung ano ang maaaring nangyayari sa? Ay medyo kakaiba, oo. >> [Hindi marinig] ay ipinahayag sa labas ng panaklong? Kaya ay hindi pagkatapos ay ilapat kapag gumamit ka ng panaklong? Kaya ipinahayag niya ang tao sa labas ng kung saan panaklong? Oh, mga guys - ang kulot tirante? >> Oo. Oo, eksakto. Kaya ito lumiliko out na hindi tunay ka maaaring ipinapahayag sa isang variable dito mismo tulad nito. Ano ang maaari mong sinusubukan na gawin ay - cut ito ng doon - maaari mong ilagay ang mga ito sa loob ng kulot tirante dito mismo o iba pang alternatibo ay upang ilagay ito nang ganap sa labas. At kaya ang mga - depende sa kung saan ang iyong aktwal na ilagay ang deklarasyon ng na integer variable, maaari kang makakuha ng 2 napaka-iba't ibang mga uri ng variable; kapag ito ay sa labas ng pangunahing, ito ay kung ano ang tinatawag naming isang pandaigdigang na variable. Ito ay sa labas ng saklaw ng anumang mga pag-andar - ito ay hindi sa loob ng isang function - samantalang kung namin itong ilagay sa loob ng pangunahing, bang dito mismo, pagkatapos ito ay tinatawag na isang lokal na variable, dahil ito ay lokal sa saklaw ng pangunahing. At makipag-usap namin ng kaunti higit pa tungkol sa kung ano ang mga pagkakaiba sa sa pagitan ng 2 uri at kung bakit gumagamit ka ng iba't ibang mga uri ng variable, ngunit sa ngayon, Maaari mo lamang panatilihin ang lahat ng mga variable na lokal, dahil wala kaming anumang mga pangangailangan para sa mga pangkalahatang variable. Okay, sa gayon na ang isang bagay doon. Natin subukang patakbuhin ito muli, makita kung ano ang mangyayari. Patakbuhin, kumuha ng isa pang error. Mag-zoom sa isang bit, ano ang gagawin namin? Makuha namin ito inaasahan panaklong pagkatapos gawin / habang. Anumang mga ideya sa kung anong nangyayari sa? Dan? >> Ang habang pagkatapos panaklong at pagkatapos - Hindi ko alam kung kailangan mong redeclare int, ngunit ang gawin habang (i <3). Eksakto, oo. Kaya ito lumiliko out na Dan akmang-akma. Hindi namin kailangan upang ilagay dito ang uri na ito muli. Maaari namin sa halip pumatay sa uri at gawin iyon. Ayos lang. Makikita ako mag-zoom out, subukan ito ng isa pang beses. Tumingin sa iyon; tumatakbo matagumpay ito. Kung mag-scroll pababa namin, "ito ang katawan ng" print mo ng 3 beses. Iyon ay medyo matamis. Magaling, magaling, guys. Magaling. Paano na ito ng pagpunta sa ngayon? Disenteng makasabay? Okay, cool. Kaya, namin ang uri ng bumalik sa orihinal na tanong, namin - at ngayon kung makita natin ang pagkakaiba, nakikita mo na sa Do-habang loop, ang kundisyon na ito ay huling. Kaya bilang computer bumabasa sa programa dahil ang C programa ay isinasagawa uri ng sunud-sunod na ito, kung saan sila literal magsimula sa ang unang linya ng pangunahing, at pagkatapos ay magsagawa ng linya 6, linya 7, linya 8, linya 9, linya 10, linya 11, ang lahat ng ito bagay-bagay sa kanang tuktok dito ay pagpunta upang maisagawa sa sandaling bago namin subukan ang kundisyong ito upang makita man o hindi i - o ang mga nilalaman ng i, sa halip - ay mas mababa ang bilang 3. At lamang kung sa sandaling makuha namin sa linya 12, ang mga nilalaman ng i mas mababa sa 3 namin aktwal na tumalon ng pabalik hanggang sa linya 7 at ulitin ang proseso, at pagkatapos namin subukan ang kundisyon muli at muli at muli. Upang maaari naming Contrast ito may --zoom umurong, mag-scroll pababa sa Sam sa bersyon, hindi namin gonna tingnan ito, bahagyang nagbago sa gayon ay hindi na ito isang walang-katapusang loop - kung saan kung naming mag-zoom in, nakikita namin na ang program na ito executes, ito sa unang idedeklara int i, itakda ang mga nilalaman ng i sa 0, at pagkatapos ay pinindot niya ang kundisyon ng habang loop unang, kaya sa kasong ito, ang katawan na ito, ito printf ("hi") at i + + ay hindi kahit execute maliban kung i ay talagang mas mababa sa o katumbas ng 2. Kaya kung i 3, halimbawa, kung kami itakda ito karapatan dito katumbas ng 4 - o ko ng 3, dahil sinabi ko 3 - at pagkatapos patakbuhin ang mga ito, ito bumuo, magpatakbo ng lubos pinong, ngunit hindi tunay na ito i-print ang anumang bagay, dahil ito Nabigo na pagsubok para sa unang kaso. Kaya sa klase, namin uri ng uusapang tungkol sa kung bakit ang mga Do-habang loop kapaki-pakinabang minsan at bakit namin gamitin ito bilang laban sa isang loop habang. Mayroon bang - ka guys ay may anumang mga mungkahi para sa kung bakit ang isang gawin-habang loop ay maaaring maging mas kapaki-pakinabang? >> Well, sa tingin ko gawin-habang loop ay kung gusto mo ang user input, dahil ang paraan na maaari mong hayaan silang maglagay ng isang bagay sa sabay-sabay, kung ito ay tama, maaari naming ilipat sa sa ibang bahagi ng programa, ngunit kung ito ay hindi tama, pagkatapos mong panatilihin sa pagdikta sa gumagamit hanggang sa ikaw ay ilagay ang tamang input. Oo, eksakto - eksakto, kaya ang gawin-habang loop ay kapaki-pakinabang dahil kapag pagdikta para sa user input dahil kailangan mo upang makuha ang input ng user bago aktwal mong suriin ito. Kaya sa pset 1, sa pset 2, kung saan ka pagdikta para sa user input ng maraming, na isang madaling gamitin na bagay upang gamitin ang bilang laban sa isang simpleng habang loop. Kung gumamit ka ng isang habang loop, maaari mong gawin ang parehong bagay - maaari mong gawin ang parehong bagay sa isang loop habang tulad ng iyong ginagawa sa do-habang loop. Mo lang ay ang uri ng duplicate na proseso na ito kung saan mo makuha ang input una at pagkatapos ay simulan ang iyong habang loop. Sapagkat isang Do-habang loop, mo lamang upang isulat ang mga ito sa sandaling at ito ay isang maraming mas malinis. Ayos lang. Anumang mga katanungan? Kabuluhan? >> Ang return 0 - na lamang ang uri ng isang stall o ito -? Oo, kaya maaari namin - mahusay, tatalakayin namin ito ng kaunti mamaya ngunit ito lumiliko out na ito balik 0 na inilalagay namin sa dulo ng pangunahing sa lahat ng oras - Maaari mo ay medyo lang ang dadalhin ang mga ito bilang isang bagay na ginagawa namin para sa oras. Ano Sinimulan na namin ang makipag-usap tungkol sa may function uri ng sa dulo ng nakaraang linggo at pagkatapos ay muli sa linggong ito ay na ang isang function tumatagal ng input na ang mga bagay na ito sa loob ng panaklong; ito ay 2 input, ang aming mga argumento o mga parameter, kung ano ang tinatawag din sila sa aming pangunahing function na, at pagkatapos ay ang function na gumagawa ng isang output na tinatawag naming may return halaga. At ang return halaga sa kaso ng mga pangunahing int na ito, ito integer, at ang paraan na sabihin sa iyo ang isang function, "Hey, ito ay kung ano ang iyong output ay magiging, "na ang salitang" kita ", keyword na iyon, sa halip, at kaya pangunahing bumabalik 0 o pangunahing outputting 0 Standard sa C programa dahil bumabalik 0 mula sa pangunahing paraan na "Uy, pinaandar ang lahat ng may sa aking programa lamang fine." Kung kami ay maglagay ng bagay maliban sa 0, tulad ng 1, halimbawa, na ginagamit upang sabihin sa sinumang tumakbo sa programang ito isang bagay na nangyaring mali. Kaya bilang makakakuha tayo ng mas kasangkot na may mga bagay sa ibabaw ng semestre, kung ka nangangailangan ng sasabihin, "Naku, alam mo, may nangyaring mali sa programang ito," sa halip ng pagkakaroon ng pag-crash ng aking programa, gusto ko upang i-notify runner ng aking mga programa na may nangyaring mali, maaari mong gamitin ang return halaga, na tinatawag naming, na hindi 0. Kaya tatalakayin namin na ang isang maliit na bit higit pa sa sandaling makuha namin sa function. Na uri ng saysay? Okay. Pag-andar uri ng kakaiba - Tingin ko para sa mga tao na may maraming ng matematika background, ito ay isang maliit na mas madali, lalo na kung mayroon kang kaunti mas abstract na background matematika at ginamit ka sa pinag-uusapan ng mga function at lahat na uri ng mga bagay-bagay. Ngunit susubukan naming at masakop ang mga ito at pumunta ng maganda at mabagal na ang mga ito ay. Gayundin, ang buong argc int, magpasinda * argv [], para sa ngayon, maaari mo ring na bilang kuluan plate. Sinimulan na namin ang upang masakop ang mga kaunti sa panayam kapag makipag-usap namin tungkol sa mga argumento na makapag ang pumasa sa mga programa sa command line, ngunit sa iyong mga set ng problema at ang iyong mga programa, lubos pinong lamang sa sumulat ng walang bisa at panatilihin ang mga ito sa simpleng. At kung ano ang walang silbi ang ibig sabihin nito ay ay na "Uy, pangunahing ay hindi tanggapin ang anumang input; ito ay isang programa na kami ay gonna lamang patakbuhin ang. Hindi namin gonna bigyan ito ng anumang karagdagang impormasyon sa tuwing sisimulan namin ito sa pagtakbo. " Kaya sa ngayon, maaari mong gawin ito; maaari mo ring kahit na alisin ang return 0 sa dulo ng iyong mga programa at tumakbo ang mga ito lamang fine, ngunit inirerekumenda ko lamang pinapanatili na in Sa loob ng ilang linggo, sisimulan namin sa uri ng hilahin pabalik ang takip ng kaunti at maunawaan ang higit pa tungkol sa lahat ng mga iba't ibang mga maliit na gumalaw na mga bahagi. Lahat ng karapatan, ngayon sabihin makipag-usap tungkol sa aming ikalawang tanong dito. Kaya kung ano ang "hindi nagbigay-alam identifier" ay karaniwang ipahiwatig kung outputted sa pamamagitan ng kalatong? Tingin ko nakita natin na na ngayon. Maaari isang tao magbigay ng isang pagbabalik-tanaw ng kung ano ito ay nangangahulugan na? Natin makita, Kelly - isa ng ang Kellys. >> Kaya - Oo, kung ano ang - >> Tingin ko kapag sa iyo, tulad ng, hindi ipinapahayag ang mga variable at subukan mong gamitin ang mga ito. Oo, eksakto, eksakto. Kaya kung sakaling makita ang output kapag ikaw subukan at ipunin ang iyong programa, lamang tulad ng Kelly sinabi, nangangahulugan ito na gumamit ka ng variable na hindi mo idedeklara, kaya kung pumunta ako pabalik sa aming Space, at gagawin ko isang bagay tulad ng printf ( "Kumusta% s") at subukan at punan na% s may isang variable na s na hindi ko na ipinahayag sa kahit saan at subukan kong patakbuhin ito, makikita mo kung ano ako makakakuha ng sa ibaba dito mismo: "Paggamit ng hindi nagbigay-alam identifier 's'"; na lamang ang ibig sabihin nito ay hindi mo idedeklara ang iyong variable. Parehong bagay ang mangyayari kung mayroon kang x at mong subukan at mag-store ng 7 sa loob nito at hindi ko ipinapahayag X. Ko na parehong error: "Gumamit ng 'x' hindi nagbigay-alam identifier". Lahat ng karapatan, kaya ang Caesar Cipher, hindi napaka-secure na, Ipapaalam ko mo guys panoorin ang maikling, uri ng maunawaan kung bakit, at sana matapos na ginagawa ang problemang ito linggo itakda kung saan ang iyong aktwal na magsulat ng isang Caesar Cipher, makikita mo maunawaan ng kaunti higit pa tungkol sa kung ano ang ibig sabihin nito upang maging isang secure at hindi secure na - o hindi secure, hulaan ko - hindi secure na ay bahagyang naiiba. Ang iba pang bagay ay mayroon kaming iba pang mga tanong dito tungkol sa mga function at kung ano ang function na ay, at hindi na namin uri ng uusapang tungkol na panandaliang kapag usapan natin ang tungkol sa mga halaga return; para sa isang tao na naging panayam, maaari mong paglalagom na naging panayam ngayon? Ayos lang. Natin makita, sabihin mayroon - maaari isang tao sabihin sa amin kung ano ang isang function na? Kelly? >> Talaga ng isang bagay kang gumuhit kapag isang bagay na nakasulat sa library na mas komplikado banda roon, at pagkatapos mo lamang na magsulat ng isang maikling form nito, kaya tulad ka nagre-refer na bumalik sa library na iyon, gamit lahat na mahaba code at [hindi marinig]. Oo, eksakto, at pagkatapos mo Gusto mo bang magdagdag ng isang bagay na iyon? >> Oo, sa tingin ko tungkol dito bilang katulad sa ang konsepto ng isang formula sa matematika kung saan ka magsulat lamang ng formula at maaari mong plug ang mga variable sa at iyon ang kung ano ang function ng [hindi marinig]. Oo, kaya namin Mayroon ng ilang ng mga sagot dito na parehong talagang mabuti at pakanan sa. May tumutukoy sa code na nakasulat sa library sa isang lugar na mas komplikado at pagkatapos ay maaari kang gumuhit kapag ang code at aktwal na gamitin ang mga ito sa pamamagitan ng pagsusulat lamang ng maikling form nito - o, sa halip, ang pangalan nito - at pagkatapos ay mayroon ding ang paghahambing na ito sa isang formula sa matematika o pisika, lahat na uri ng mga bagay-bagay kung saan mayroon kang isang formula at maaari mong plug sa ang mga variable na formula upang makuha ang resulta ng formula, kaya sa tingin mo tungkol dito tulad ng parisukat equation. Isipin kung sa halip ng pagkakaroon upang malaman ang tungkol kung ano ang parisukat na formula ay sa matematika klase, mo lamang ay nagkaroon ng isang maliit na programa na calculator na ginawa ito para sa iyo. Ba sinuman gamitin ang mga programa ng calculator sa klase ng matematika sa high school? Oo, pisika klase? Kung saan maaari mo lamang sabihin, "Uy, parisukat formula. Ito ay ang mga variable na gusto kong input. Ngayon ninyo akong bigyan ang kasagutan. " Iyon ay uri ng kung ano ang isang function na. Ito ay isang paraan para sa amin upang uri ng mga write tulad ng isang maliit na maliit na sub programa sa loob ng aming mas malaking programa at gamitin ito nang paulit-ulit sa gayon ay hindi namin upang kopyahin at i-paste ang code, maaari naming bigyan ito ng ibang mga input at makakuha ng ibang output, sobrang madaling gamiting kapag ikaw ay sinusubukan upang isulat ang iba't ibang mga programa sa iba't ibang oras. Kaya halimbawa, ang isang function na namin ang gamit at paulit-ulit buong kurso ay printf. Ay mismo Printf isang function at ito ay lumiliko out na ito ay talagang isang medyo mahaba at kumplikadong, makukulit hinahanap, gumana na magsulat. Kaya bilang simpleng bilang tila sa amin upang i-print ang mga bagay-bagay sa screen, dahil namin ang lahat lamang ginawa iyon sa simula ng seksyon ngayon, ito lumiliko out na ito aktwal, alam mong, isang magandang ilang daang mga linya ng code. Ito ay hindi isang bagay na Gusto ko kailanman nais na magsulat, para bang, ngunit makuha namin upang gamitin ito araw-araw, na uri ng mga cool na, kaya namin upang ibahagi ang mga ito sa bawat isa, sa iba't ibang mga programa, kaya kami ay magiging diving higit pa sa function; para sa oras, hindi kami - lamang ang function na kami ay pagpunta sa ay pagsusulat ay pangunahing. Pangunahing din mismo ay isang function, at maaari mong makita ang mga ito ay nakuha nito output, nitong mga input tulad namin uusapang tungkol sa, at pagkatapos ay ang pangalan nito, na siyang pangunahing. Pangunahing uri ng - ay isang espesyal na function na doon. Sa iyong programa sa C, ay isang pangunahing function na, at iba pa sa ngayon, na namin uri ng tinanggal pagsulat ang prototype, o ang deklarasyon ng pangunahing. Nagbigay kami na sa iyo, at kami ay mong punan sa uri ng blangko. >> Kaya para sa pangalawang hanay ng problema, hindi namin kailangang sumulat ang mga ito sa ang pangalawang function na? Hindi ako naniniwala ito. Naniniwala ako na ang lahat ng ito dito. Oo, kaya Caesar Cipher, hindi mo, ito ay hindi hitsura, at Vigenere, hindi mo pag alinman, kaya - at ito ay lumiliko out hindi mo kailanman aktwal na magsulat isang function, i-right? Tawagan ka palaging ilagay ang lahat ng iyong code sa loob ng pangunahing, at maraming programmer gawin na. Habang kami, simulan namin nagpapakilala ng mga function bilang isang paraan upang linisin ang iyong code, upang gawin itong mas eleganteng, kung sakaling mayroon kang gawain - uri ng tulad ng kapag usapan natin ang tungkol sa mga loop, kung paano minsan may mga bagay na gusto mong gawin muli at muli at muli, at mayroon kang uri ng musmos paraan - o kung ano ang madalas naming tawagan ang "dayami tao" na solusyon, ay upang kopyahin lamang at i-paste ang paulit-ulit - maaari mong gawin ang parehong bagay sa function kung saan mo lamang kopyahin at i-paste ang parehong code nang paulit-ulit, ngunit iyon bloats iyong code - ito ay nagtatapos up paggawa ng iyong code talagang mahaba - at ito din ay nakakakuha ng kaunti nakalilito, at pagkatapos ito ay nangangahulugan na ikaw ay hindi magagawang i - kung sakaling gusto mong gamitin muli ang code na iyon sa ibang programa, ka rin natigil ang pagkopya at pag-paste itong muli, kaya ang isa sa mga bagay na gagamitin namin makipag-usap tungkol sa uri ng disenyo at estilo ng iyong mga programa, at kaya kapag saysay sa uri ng pakete ng isang bagay up at ilagay ang mga ito bilang isang hiwalay na function na, hinihikayat ka namin na gawin iyon, at iyon ay isang bagay na, muli, walang mahirap at mabilis na panuntunan. Bihira namin sinasabi na dapat mong magsulat ng isang function na tinatawag na ito, subalit ito ay higit pa sa isa sa mga bagay mo lamang bumuo sa paglipas ng panahon habang sumulat ka ng higit pa at higit pa na mga programa. Anumang higit pang mga tanong? Okay, kaya natin ngayon pumunta-back up ito tao dito mismo, kaya ako pa rin sa seksyon na ito ng mga tanong. Namin ang uusapang tungkol sa lahat ng mga iba't ibang mga, kung ano ang isang function na, bakit sa sumulat ng mga function, kapag maaari mong kopyahin lamang at i-paste? Sana kami kumbinsido mo na ang pagsusulat function ay isang magandang bagay. Kaya ngayon sabihin lumipat sa MySpace programa na ito, at kami na gastos ng kaunting oras paggawa nito. Kaya, sabihin makita, ko na ang isang tao na basahin ito para sa akin? Natin may Mikhaila - mong basahin ang mga ito para sa amin? >> Ibig sabihin mo pabalik kapag MySpace - Back kapag MySpace ay cool na. >> "Bumalik kapag MySpace ay cool, ito ay ang lahat ng galit i-type tulad nito. Siguro pa rin ito ay? Hindi ako talagang sigurado. Sa anumang kaso, gamit ang CS50 Appliance, CS50 Run, o CS50 puwang, magsulat ng isang programa na prompt ang user para sa isang mensahe at pagkatapos output ang message na may malaking titik ang unang titik nito, sa lahat ng iba pang mga titik sa alternating kaso, tulad ng bawat ang sample output sa ibaba, kung saan boldfaced teksto ay kumakatawan sa input ilang user. Simple, maaari mong ipagpalagay na ang mga gumagamit ay lamang input maliliit na titik at espasyo. Isaalang-alang ang problemang ito ng pagkakataon na magsanay; hindi mo hilingin sa iyo na isumite ang programang ito. " Kahanga-hanga, salamat. Kaya bilang Mikhaila sinabi, kami ay pagpunta sa magsulat ng isang programa na MySpaces iyong code. Kaya ang anumang mo guys gamitin MySpace? Anumang mo ay may MySpace account? Oh, oo, oo! Ito ay medyo cool. [Tawa] Alam ko. Dating aking sarili. Kaya kung ano ang sinusubukan naming gawin ay isulat ang isang programa na Dumadaan at capitalizes ang unang titik at pagkatapos bawat titik na sandali - o bawat iba pang sulat noon, ako ng paumanhin. Kaya - at maaari mong makita sa halimbawang ito, ito ay kung paano patakbuhin ang namin ang programa, at kaya ito ay lamang na nagsasabi, "Kami ay nagpapatakbo ng isang programa na tinatawag na a.out. Ang input na kami ay pagpunta sa pagbibigay ito pagpunta sa-prompt. Hindi namin gonna ibigay ang input sa command line. " Kung ikaw ay pagsunod sa lahat ng mga aralin at pagdinig tungkol sa mga argumento sa command line, na uri ng kung saan ang mga - na funky syntax sa pangunahing ay may int argc, ang lahat ng mga bagay-bagay, kaya dito hindi namin ginagamit na, hindi namin pagharap sa anuman sa mga iyon. Humihingi kami lamang gonna makakuha ito-type ng user, at pagkatapos ay ang pangalawang linya na ito na may funky capitalization kung ano ang gusto namin ang aming programa sa output. Kaya sa halip na gamitin ang Appliance o Run, gagamitin namin ang mga puwang, dahil kami nakakuha puwang, at kaya kung ka guys gagawin makuha ang iyong code upang tumingin ng isang bagay na tulad nito, kaya ako pagpunta sa i-save ang pagbabago na ito lang kaya mo Mayroon boiler plate dito mismo na ganito ang hitsura, int pangunahing (walang bisa), wala sa loob nito. Aktwal na, kung ano kami na lang namin tanggalin ang lahat ng lahat ng sama-sama. Gusto namin ng blangkong slate, dahil hindi namin gonna simulan ang pagsusulat ng code; sa halip, hindi namin gonna subukan ang pagsusulat ng ilang pseudocode kung saan talagang lamang ay nangangahulugan na ang kami ay pagpunta sa magsulat ng isang bagay na hindi code na uri ng naglalarawan kung ano ang gusto naming gawin, ay medyo tulad ng David ay ginawa sa unang araw ng panayam, o hulaan ko na ang ikalawang araw ng panayam kapag ginawa niya ang buong demo ng mga medyas. Mong guys tandaan na - nakikita ang medyas? Joseph ay doon uri ng pag-type sa Ingles? Kaya hindi namin gonna gawin ang parehong bagay. Kaya kapag sisimulan ko ang pagsusulat ng pseudocode, Gusto kong magsimula sa pamamagitan ng pagtingin sa kung ano ang input ay magiging. At bigyan ko ang aking sarili ng isang sample ng kaso, kaya tulad ng "salamat para sa add!" At pagkatapos ko ring sumulat kung ano ang gusto kong output na, na sa kasong ito ay isang bagay tulad nito. At ang uri ng nagbibigay sa akin ng isang mahusay na, tulad ng, na nagsisimula lugar na isipin ang tungkol, "Okay, gusto kong linya 1 at gusto ko na baguhin ang mga ito sa linya 2, " at sa uri ng tumutulong na gabayan ang aking pag-iisip. Ito ay isang magandang lugar upang magsimula. Isa pang paraan upang tingin tungkol dito, masyadong, bilang ay medyo namin ilipat sa at ginawa mo na ito sa iyong sariling mga programa, ay isipin ang tungkol sa uri ng tulad ng kung ano ang kaso sa gilid na ito? Ano ang mga uri ng kakaiba sitwasyon? Ano ang kakaiba input na maaari naming makakuha ng? At ano ang dapat mga output hitsura? Halimbawa, isang kakaiba input ay ang isang ito, paglikha ng ganap na walang, tulad ng kung ano ang dapat naming output sa kasong iyon? Isang bagay na gusto naming mag-isip tungkol sa, masyadong. Kaya lang ng isang tanong, kung ano ang maaari naming nais na output? Kung hindi kami makakuha ng anumang mga input sa lahat, ano ang dapat aming programa outputting? >> Walang. Wala? Tunog mahusay. Kaya gusto namin upang matiyak na hindi kami ay sumusulat ng anumang out kung hindi kami makakuha ng anumang. Cool. Okay. Kaya Ako pagpunta sa tumawag sa isang ilang mga tao bilang pumunta kami sa pamamagitan ng at malaman ang uri ng tulad ng kung ano ang pangkalahatang algorithm at kami na uri simulan ang nagtatrabaho sa pamamagitan ng sama-sama na ito. Kaya, sabihin makita. Missy. Paano mo tingin gusto namin magsimula? Ano ang gusto maging isang magandang lugar upang magsimula dito kung gusto namin na baguhin, sabihin, linya 1 sa linya 2? Maaari mong uri ng lamang ipaliwanag sa akin, sa Ingles, ano ang iyong iniisip? Huwag kahit na mag-alala tungkol sa code. >> Unang bagay na gusto kong gawin ay uri ng direktang ng gumagamit upang sabihin sa kanila kung ano ang nais mong. Okay, kaya, sabihin nating, "Uy, gumagamit. Gusto ko isang string "- kahanga-hangang. Kaya sabihin isulat ito pababa. -Prompt ng ng gumagamit para sa isang string. Iyan tulad ng isang mahusay na pagsisimula. Ayos lang. Natin hilingin Kelly Ren oras na ito. Ano ang gusto namin gusto ang susunod na gagawin? Ano ang uri ng aming susunod na -? >> Kolektahin ang kanilang mga input at mag-imbak ang mga ito bilang isang variable. Mahusay. Kaya mangolekta ang string, -imbak ang mga ito sa isang variable. Kaya Mayroong anumang espesyal na gusto naming gawin dito? Gusto naming suriin ang kanilang mga input bago -? >> Oo. Ano ang maaari naming gusto upang suriin para sa? >> Well, sinabi hindi namin upang suriin kung ito ay isang numero, i-right? Dahil ito ay ipinapalagay na ito ay lowercase? Oo. Kaya ito lumiliko out na - oo. Kaya getString katiyakan upang bumalik sa amin ng isang string. Hindi ito upang bumalik ang isang numero sa amin o anumang bagay tulad na. Maaaring digit na mga character sa loob ng string na iyon, bagaman. At sa mga, maaari naming huwag pansinin namin ginawa ang capitalization. Ngunit ang isang walang laman na string ay lubos pinong, kaya ang kaso dito mismo sa linya 4 at 5, kanan, kung saan ang walang input, at hindi na namin inilagay ang mga walang bilang aming output. Hindi namin kailangang mag-alala tungkol sa siguraduhin na may isang bagay sa string o na ang string ay hindi bababa sa 4 na mga character ang haba; anumang ay pinong. Kaya ito ay contrasted, halimbawa, tulad ng programa pennies na iyong sinulat ni kung saan mayroon kang upang tiyakin na ikaw ay nakakakuha ng di-negatibong numero; mayroon kang upang matiyak na ikaw ay pagkuha ng tamang bilang ng mga araw sa isang buwan. At kung paano mo guys na ginagawa na? Paano mo ire-gawin na pagsubok? Ano ang na nangangailangan mong gamitin? >> Ba-habang loop. Gawin-habang loop, ang iba pang mga uri ng mga loop, masyadong, oo. Kaya ito lumiliko out wala kaming gumamit ng loop sa kasong ito, kapag kami ay pagdikta para sa isang string, na uri ng magaling. Lahat ng karapatan, paglipat sa. Kaya, Stella. Maaari mong sabihin sa amin ng kaunti tungkol sa kung ano ang dapat naming gawin ang mga susunod na? Kaya ngayon namin Mayroon string, kami nakuha ko na naka-imbak sa isang variable; kung ano ang kailangan naming gawin sa mga string? >> Kailangan naming - makilala ang 2 - Oo, lamang ito sinasabi sa Ingles, na kahanga-hangang. >> Kilalanin ang [hindi marinig] capitals - o, uppercase. Oo, kaya nais mong makilala kung aling mga uppercase at lowercase. Hindi namin uppercase o lowercase ang mga ito hanggang namin natukoy kung alin. Kaya maglalagay kami na in dito. Kaya, lamang pag-iisip tungkol sa prosesong ito, kung paano namin gawin ito identification? Alam mo ba, Dan? Uri ng kung ano ang aming - kung ano ang tool na nais namin upang gamitin sa aming mga toolbox? >> Nais ko bang ilagay ito sa sa paanuman sa tulad ng isang array o bawat linya ng sarili nitong maliit na kahon, at pagkatapos ay uppercase ito mula doon o hindi. Okay, sa gayon ang isang tool na maaari naming gamitin ang isang array. Ano ang gagawin namin upang tingnan sa string, bagaman, upang malaman kung - nagkaroon kami upang tingnan ang mga character na. >> Kaya mo Mayroon upang tumingin sa ang haba ng string? Oo, kaya bahagi na pagkuha ng haba ng string. Lamang sa labas ng pagkausyoso, ano ang gagawin namin gamitin upang makuha ang haba ng isang string? >> Strlen? Oo, strlen; tumawag namin ito "strlen" Ang lahat ng mga function ng string, kaya strlen ay isang function, at sobrang madaling-magamit na, dahil maaari naming gamitin ang mga ito sa lamang sabihin, Uy, strlen: Narito ang isang string, sabihin sa akin kung gaano ito kahaba. Sa panayam ngayon, David uusapang ng maraming tungkol sa kung paano strlen ay ipinatupad, kung ano ang aktwal na pagpunta sa likod ng mga eksena. Ngunit ito ay isa ng napaka sobrang madaling-gamiting mga. May iba pang mga na din sa library ng string, tulad ng strcmp, na-spell na "strcmp", na ginagamit upang ihambing ang mga string sa bawat isa. Iba pang mga mong gamitin tulad ng strstr, na ay mabuti para sa paghahanap ng mga sub string at iba pa. Para sa nakararaming bahagi, lahat sila magsimula sa STR at pagkatapos ay pumunta sa iba pa. Ang dahilan kung bakit hindi nila aktwal na ini-ispel ito tulad ng string at iba pa ay dahil pabalik sa tulad ng maagang araw ng C, kapag ang mga tao ay unang nakasulat at ang lahat na, nagkaroon sila ng mga limitasyon sa bilang ng mga character na maaari mong gamitin para sa mga function na pangalan at mga variable na pangalan, kaya ang lahat ng bagay ay tulad ng sobrang condensed. Ngunit anumang oras mo makita ang isang bagay na nagsisimula sa STR, na karaniwang ay nangangahulugan na ito ay isang bagay na gawin sa isang string. Okay, kaya mo na nakuha sa ang haba ng string, at pagkatapos, ano ang gagawin namin gawin sa ang mga character? Alam mo ba, Sam? >> Wala akong palagay; ako ay sinusubukan upang malaman ito. Ko talagang hindi alam - nais ko mayroong ilang mga paraan upang - Ibig kong sabihin, Gusto ko sa tingin siguro kami maaaring gawin ang isang bagay na may logro at Tabla, ngunit hindi ko alam ng anumang function na tulad na. Oo. >> Ngunit iyon - hindi kinakailangang ito ay gumana, dahil gusto mong makakuha ng mga puwang na - gusto mong magkaroon ng puwang upang makakuha ng mga tip sa kung paano - Okay. >> Hindi ko alam - I'm uri ng nawala sa puntong ito. Oo - hindi, hindi, hindi, ito ay mahusay na puntos. Kaya kung ano ang kailangan namin upang gawin, tulad ng Sam sinabi, kailangan namin upang subaybayan kung aling mga titik ang mga kakaibang titik, at kung alin ang kahit mga titik. Ngunit nais naming upang matiyak na hindi namin lamang hinahanap sa kakaiba at kahit mga indeks sa string, ngunit sa halip ay naghahanap sa kakaiba at kahit na mga titik sa string, kaya kailangan namin ay medyo ang pagkakaiba sa pagitan ng ito titik - tulad ng kung ano ang aktwal na A, B, C, D, o kaya, at kung ano ang mga bagay na hindi titik ngunit pa rin sa aming mga string. Para sa halimbawa dito, tulad ng exclamation point na ito ay hindi isang sulat, ngunit pa rin bahagi ng aming string; pa rin ito ng pansamantalang trabaho. Gayundin, ang lahat ng mga puwang - ito ay hindi magkaroon ng kahulugan upang mapakinabangan ng isang puwang, i-right? Kaya gusto namin upang matiyak na namin sa paanuman laktawan ang mga habang pagsubaybay ng mga logro at Tabla. Kaya uri ng sa aming programming toolbox sa ngayon, kung kalooban mo, mayroon kaming isang bilang ng iba't ibang mga tool na namin ang uusapang tungkol sa. Kaya isa, halimbawa, ang mga variable, tulad namin na uusapang tungkol dito. Isa pang tool na namin ang uusapang tungkol function. Kaya nagbigay kami uusapang tungkol sa mga variable sa aming pseudocode dito tulad ng kung ano ang namin ang pagpunta upang gamitin upang mag-imbak ang aming string. Namin na uusapang tungkol sa mga function upang makuha ang haba ng isang string, tulad strlen. Namin ang pakikipag-usap tungkol sa iba pa, at uusapang namin ang tungkol dito para sa ng maraming mas maaga sa seksyon ngayon: loop. Ano ang gagawin mo guys sa tingin tungkol sa paggamit ng isang loop sa programang ito? Jared, kung ano ang tingin mo? Gusto naming gumamit ng loop sa programang ito? >> Malamang hindi, hindi, dahil hindi mo na kailangang pumunta sa pamamagitan nito nang higit sa isang beses. Okay, hindi mo na kailangang pumunta sa pamamagitan ng kung ano ang higit sa isang beses? >> Ang buong string. Karapatan, kaya hindi mo na kailangang pumunta sa pamamagitan ng string buong sabay-sabay. Paumanhin na ginawa ganap na walang kahulugan! Hindi mo na kailangang pumunta sa pamamagitan ng buong string higit sa isang beses. Okay. Ano sa tingin ninyo? >> Sa tingin ko na ito ay mas mahusay na gamitin ang mga ito upang maaari naming gawin tulad ng mapakinabangan habang ang lokasyon nito ay [hindi marinig] numero. Mahusay, at gayon mapakinabangan kung ano? Okay, sa gayon kami ay nagsasabi na dapat naming gumamit ng loop dahil gusto naming mapakinabangan ng sulat habang ito ay hindi isang numero. Kaya - paumanhin, ang gusto mong idagdag? >> Ako pagpunta sa sabihin na ang paraan sa tinatrato ang string at ito [hindi marinig] hiwalay na ang [] hindi marinig sa mga character? Oo. >> At pagkatapos ay maaari naming italaga ang mga numero sa - o batay sa lokasyon ng ang mga titik sa string? Oo. >> At kilalanin kung ito ay kakaiba o kahit at upang mapakinabangan ang titik mismo habang ang lokasyon ng sulat ay [hindi marinig] - paumanhin. Mahusay. Kaya lamang pagbabalik-tanaw. Maaari mong ipaalala sa akin muli ng iyong pangalan - I'm paumanhin. >> Charlotte. Charlotte, okay. Kaya kung ano ang Charlotte ay sinasabi, na lubos na karapatan - sus, ang gusto na ito upang awtomatikong i-indent sa akin - ay na kung tinitingnan namin ang isang string tulad ng isang ito sa tuktok - "Salamat para sa ang mga add" - bilang isang pagkakasunud-sunod ng mga character kung saan ay sa posisyon 0, h ay sa posisyon 1. Ay sa 2, pagkatapos namin nakuha 3, 4, 5; espasyo sa posisyon 6. Ngayon - kung ano ang posisyon ng f? 7! O? 8. R? 9. At pagkatapos namin Mayroon 10, at hindi talaga ako makapag sumulat ito nang wala ito ay medyo pagkuha ng magulo sa screen. Ngunit ito ay talagang kung paano maaari naming makipag-usap tungkol sa mga string sa memorya. Ay isang string ay isang pagkakasunud-sunod ng mga character, at kapag sumangguni namin sa isang indibidwal na character sa isang string, madalas naming gawin ito sa pamamagitan ng pagsangguni sa posisyon na karakter sa loob ng string, marahil sa parehong paraan na makipag-usap namin tungkol sa Septiyembre sa ika-siyam na buwan ng taon o Lunes ang unang araw ng linggo. Kaya ito ay nagbibigay sa amin ng isang paraan upang malaman kung aling mga kakaiba kumpara sa kahit dahil maaari mong makikita dito, kung tumutugma namin ito gamit ang T, maaari mong makita na ang lahat ng mga capitalized na mga sa kahit na posisyon, hindi bababa sa para sa unang salita, at pagkatapos ay mga bagay na makapag itinapon off sa sandaling pindutin namin sa puwang na iyon, dahil hindi namin bilangin ang puwang na ito bilang isang sulat, kaya bilang kung nagsimula kaming at nagpunta 0, 1, 2, 3, 4, 5, espasyo, 6, 7, 8, espasyo, 9, at pagkatapos ay 10, 11, 12, at iba pa. Mahusay, kaya namin talagang ay nais na gumamit ng ilang mga uri ng loop pumunta sa bawat isa ng ang mga character na siya namang. Kaya sa puntong ito, magpapadala kami bumalik sa aming lumang pseudocode dito. Bilang bahagi ng ito pagkakakilanlan ng alin ay uppercase at kung alin ang lowercase, namin gusto mong gawin ito sa ilang mga uri ng loop. Loop, colon. Anong uri ng loop, sa labas ng ang mga uri ng mga loop na mayroon kaming, tila na maging isang mahusay na gamitin sa kasong ito? >> Ako ay nag-iisip para sa loop. At bakit mo pag-iisip ng para sa loop? >> Dahil ito ay nagsisimula sa zero, at pagkatapos ay kapag naabot namin ang haba ng string, at pagkatapos ay sa bawat pag-ulit na maaari mong [hindi marinig], masyadong? Oo, eksakto. Kaya, sa labas ng ang iba't ibang mga pagpipilian ng loop, na mayroon kami para sa mga loop, habang loop, at gawin-habang loop. Kung saan isang para sa loop ay partikular na kapaki-pakinabang kapag gusto mong malaman uri ng kung saan ikaw ay nasa sa loop, kung gaano karaming beses loop ay pinaandar sa ngayon. Na kung saan ay kung ano mismo ang gusto naming malaman sa sitwasyong ito, tulad ng sinabi Kelly, batay off ng mas maaga Charlotte komento na gusto naming malaman ang posisyon ng mga character sa loob ng string, at ang para sa loop ay magbibigay sa amin lamang na, dahil kung sisimulan namin ang uri ng naghahanap pabalik sa aming string, kung sinimulan namin ang aming para sa loop sa 0, at pumunta kami sa pamamagitan ng haba ng buong string, maaari naming iugnay ang mga titik T 0 sa aming para sa loop, sulat H na may 1 sa aming loop, at iba pa, pagpunta ang lahat ng mga paraan sa pamamagitan ng dulo ng string. Kaya natin simulan ang coding ito lamang ng kaunti lang kaya mo guys makakuha ng isang pakiramdam para sa kung ano ito mukhang. Ako pagpunta upang i-save ito, kaya Mayroon namin ang aming palsipikado code in dito, at ako pagpunta sa tanggalin ang lahat. Kaya ako ng blangkong slate. Ako gonna magsimula sa pamamagitan ng pagsusulat int pangunahing (walang bisa) { Ako gonna ilagay ang return 0 sa at pagkatapos ay ang}. Kaya karaniwang kapag nagsimula ako sa programa, ito ay kung ano ang sisimulan ko na may. Ko bang i-save ang mga ito upang ang guys na may ito. Kaya isa sa mga unang bagay usapan natin ang tungkol ay pagkuha ng input mula sa user at pag-imbak nito sa isang string. Paano kami makakuha ng input mula sa isang user? >> GetString. GetString, ang lahat ng karapatan. Kaya kung type ko ang GetString () at isang tuldok-kuwit. Natin subukang patakbuhin ito; ay run na ito, una sa lahat ng? At bakit hindi ito tatakbo? >> Mayroon kang idedeklara ang variable. Mayroon akong idedeklara ng variable. Okay. Kaya paano ang gagawin ko na? Tututol ba kayo pagsusulat ng isang bagay, ang pagbabahagi ito? At pagkatapos ay maaari naming hilahin ito. Natin makita, si Dan, kanan, okay. O Daniel. Kopyahin sa, string input = GetString (). Kahanga-hanga. Ay ito patakbuhin? Hayaan ang subukan ito. Pindutin run, nag-a-upload source code, gusali, may naganap na error. Okay. Kaya kung ano ang pagpunta sa dito? Gamitin ng hindi nagbigay-alam identifier na 'string'. >> Mayroon kaming isama ang library? Oo, kaya Dan ang sinasabi namin upang isama ang mga aklatan. Ay na kung ano ang iyong pagpunta sa sabihin, Stella? Kahanga-hanga. Iyan ay kahanga-hangang, kaya Stella, maaari mong kopyahin ang code na ito sa labas ng Daniel ng Space? Kung nag-click ka sa Daniel Roland Ki, kopyahin ito, at pagkatapos ay ilagay ang kinabibilangan ng linya sa, at pagkatapos ay i-save ito? Ipaalam sa akin kapag handa ka na. Kaya ito ang syntax ding uri ng funky; may tulad na hash tag, at mayroong ang isama, at pagkatapos ay may mga anggulo bracket. Huwag mo matandaan kung paano ito gumagana, o dapat ko bang ilagay ang mga ito sa ang code na ito dito mismo? >> Ako mabuti. Okay. >>-Print ko ito - ako ay hindi sigurado kung anong library, bagaman. Oh, okay - oo, kaya ang CS50 library. >> Oh, ko bang ilagay ang stdio library. Oh, nakuha ko ito - oo, hindi, that's - kaya lumiliko na string ay talagang isang bagay na espesyal sa CS50. May aktwal na ay hindi isang tunay na uri ng string dahil dito mismo, ang string ay sa posisyon ng uri, - deklarasyon kami ay isang variable na tinatawag na input ng uri ng string - at kami ay paglalagay ng loob ng input ang halaga na ay makakakuha ibinalik sa amin: ang output ng ito GetString function na tawag. Maaari mong sabihin na ito ay isang function na tawag dahil ito ay nakuha ang mga panaklong, tulad ng printf ginagawa, tulad ng strlen ginagawa. Ngunit string ay talagang hindi isang tunay na uri sa C wika. Iyong ginawa namin ito sa isang uri, at isasaalang-alang namin ang tungkol sa higit pa sa kung ano talaga sa C, dahil mayroong ay isang paraan upang gumana sa string; lamang kami ng isang bagay upang gawin itong tumingin ng kaunti nicer. Kaya dito namin pumunta. Narito ang code ng Stella. Ang nakuha # include . Ay tinatawag ito ng mga ibang tao tulad ng isang hash ang minsan o isang matalim isama. Ngayon ay maaari naming simulan ito, patakbuhin ito, at hindi na namin pa ring makakuha ng isang error. Natin makita kung ano ang nangyayari. "'Input' Unused variable." Okay, sa gayon ay cool, na cool na. Ibig kong sabihin, ito ay hindi talagang cool na, dahil kami ay nakakakuha ng isang error at hindi ito tumatakbo, ngunit kung ano ito ay sinasabi na hindi namin ginagamit ang aming variable, na saysay. Hindi namin sinubukan gawin dito. Ito ay isang paraan na Kumalatong ay sinusubukan upang tulungan kaming tiyakin na hindi namin lamang gamit ang mga variable at pagkatapos ay sinasadyang pagtawag sa kanila ng ibang bagay sa ibang pagkakataon sa aming code, pagtulong sa amin maiwasan ang mga error na paraan. Karapatan lahat, kaya namin Mayroon input mula sa user, naka-imbak namin ito sa isang variable. Ang susunod na hakbang ay pagkatapos simulan ang pagtingin sa lahat ng ang mga character na sa string at pagkilala sa kung alin ang na uppercase at kung alin ang na lowercase. At tulad ng Kelly at Charlotte nagdala up, namin ito gamit ang isang para sa loop. Kaya ang sinuman tandaan ang syntax ng isang para sa loop at nais na tumagal ng isang ulos sa lamang pagsulat ang unang linya ng loop, ang para sa bit? Kelly, Gusto mo bang subukan ito? >> Oo, kaya mayroon kang initialize muna, kaya ko bang ilagay i = 0, at pagkatapos ko ginawa i > Oo, ako screwed ng kaunti, ngunit oo. Okay, sabihin bunutin ito. Kahanga-hanga. >> Ngunit pagkatapos ay hindi ko malalaman kung mayroon kang na - Oo, okay. Kaya narito ang Kelly ay nakuha: tingnan natin ito nang mabilis. Kaya siya kasama ang cs50 library sa tuktok. Siya kasama ang standard IO library sa tuktok, at ang standard IO ay function tulad ng printf, kaya kung sakaling nais na gumamit ng printf, kailangan mo na linya. At pagkatapos siya kasama ang string library, na kailangan namin, dahil ang string library ay may strlen function, na namin sa loob lamang ng kaunti. Kaya't kung tiningnan namin sa kung ano Kelly tapos dito, Maaari kang maglakad sa amin sa pamamagitan ng kung ano ang ginawa mo? >> Oo, kaya - Ibig kong sabihin, Nakatanggap ako error, sa gayon - Oo, hindi, it's - >> Kaya ko nais upang tawagan ang string na nakuha ko lang "string". Gusto ko upang i-print ang string at pagkatapos ko - Gusto ko upang i-set ang string tulad ng tulad ng isang array ng bawat karakter pagiging ibang [hindi marinig], tama? At pagkatapos Nais kong magsimula sa posisyon 0 at pagkatapos bawat 2 puwang, Ako pagpunta sa sulatin sa malaking titik, kaya ko lang inilarawan ito bilang 23, dahil ako ay naghahanap sa ASCII table. Kaya na kung ano ako ay nag-iisip - Alam ko ito ay hindi tama. Nakuha ko, kaya ito ay isang mahusay na pagsisimula. Tingin ko ng maraming ng balangkas sa lugar dito. Natin pumunta sa pamamagitan ng uri ng linya sa pamamagitan ng linya at makita kung ano ang nangyayari sa. Kaya ang paraan na gusto kong gawin ito lamang magsimula sa pamamagitan ng kino-compile ang code at pagpapaalam tagatala ang sabihin sa akin tulad ng kung ano ang mali sa aking code, dahil ang tagatala ay talagang mahusay na nagsasabi sa iyo kung ano ang mali sa iyong code. Kaya kung i-play namin ito, pagbuo, at ito ay hindi bumuo. Sinasabi nito na nagkaroon ng isang error, kaya kung mag-scroll namin down at tumingin sa unang error, ito sinabi - mag-scroll namin pabalik hanggang sa tuktok, maaari naming makita may 5 error nabuo dito sa ibaba. Oops, na talagang maputol. Hulaan ko na lamang hindi pagpunta upang makakuha ng anumang mas mahusay. Narito kami. Kaya may 5 kabuuang mga error na nabuo. Dito maaari ko lamang makita ang unang 2, kaya ko ilipat ang up ng kaunti at ang uri ng mag-scroll up. Ito ang utos na patakbuhin ang upang ipunin ang code, at pagkatapos ay ang unang error sa file.c dito: "Kilalanin ang inaasahan o '('", at ito ay sa linyang ito kung saan sinabi namin string = GetString (). Maaari mong makita dito mismo na ito ay sa linya 8 ng file.c, at pagkatapos ay naniniwala ako na ito ay karakter 12 - na ang error. Kaya kung ano ang nangyayari mali sa linya 8 - Kelly? >> Kailangan lang na tumawag ito, tulad ng, isang titik o isang bagay, tulad ng string s o isang bagay? Oo, kaya ito lumiliko out na ang mga espesyal na uri ng pangalan, kaya string, int, pansamantalang trabaho, maikli, na ang mga ito ang lahat ng mga espesyal na mga keyword, at hindi tunay ka maaaring gamitin ang mga ito bilang mga pangalan ng iyong mga variable, dahil tagatala tinitingnan na at sabi, "Oh, alam ko na isang uri," kaya hindi na aktwal mong magkaroon ng isang string variable na tinatawag na string, tulad ako sinusubukang gawin dito, ito ay hindi gagana. Ngunit sa halip, maaari naming tumawag ito isang bagay tulad ng mga o st o STR. Din namin hindi maaaring tumawag ito int. Hindi namin maaaring magkaroon ng isang string na tinatawag int. Hindi namin maaaring magkaroon ng isang string na tinatawag na pansamantalang trabaho, wala ng mga gagana. Kaya namin lamang tumawag ito s para sa oras. Kahanga-hanga. Kaya kung ano ang susunod na pagpunta sa linya na ito? String - medyo magandang hitsura ng linyang ito? Natin bigyan ito ng isa pang subukan, sabihin patakbuhin ito. Okay, sa gayon pa rin makakuha ng mga error. Oras na ito, hindi namin down sa 4 na error. Kaya namin nakuha ang isa sa mga ito. Natin kumilos pataas. "'String' Hindi inaasahang uri ng pangalan: inaasahang expression," oo? >> Oo, na dahil sinubukan ko upang pangalanan ang string. Oo, kaya mukhang namin ngayon din pumunta aayos ang lahat ng mga sanggunian sa string. Maaari mong makita may isang reference sa string dito, dito, dito, upang maaari naming ilipat ang lahat ng mga ito sa mga. Mahusay. Okay, patakbuhin itong muli. Building - Naganap ang isa pang naganap. Okay, ngayon hindi namin down sa isang error, kaya int i = s at pagkatapos ay ang mga square bracket. Sa gayon maaari mong sabihin sa amin ng kaunti tungkol sa kung ano ang iyong ginagawa dito, Kelly? >> Oo. Ito ay sa linya 10. >> Hindi ko alam kung kailangan namin ang lahat ng ito, ngunit tingin ko ako ay sinusubukan upang - Ko bang i-save ito sa gayon ay maaari mong sundin sa kahabaan. >> Tingin ko ako ay sinusubukan upang sabihin dito upang magsimula sa posisyon 0 sa simula ng aking para sa loop, kaya tingin ko siguro na sinasabi ay hindi kinakailangang. Kaya lang sa paglalagom, ikaw ay nagsasabi na ito - ikaw ay sinusubukan upang simulan ito sa posisyon 0 at makakuha ng ito - oo, kaya tingin ko mas maaga, masyadong, kapag ikaw ay paglalakad sa pamamagitan ng code, ikaw ay pakikipag-usap tungkol sa kung paano mo nais na ituturing ang string na ito bilang isang array upang maaari naming ma-access nang isa-isa ang bawat karakter. Tingin ko Dan nabanggit na array, masyadong, subukang i-convert ang mga string sa array. Ito lumiliko out na uri ng sa ilalim ng hood, string ay aktwal na naka-imbak bilang isang array na, at maaari mong i-access ang mga ito tulad ng isang array; walang conversion na kailangan mong gawin. Ang isang string isn't - kaya - string ay hindi talagang isang array, ngunit maaari mong i-access ito bilang tulad, dahil ang lahat ng ang mga character na ay naka-imbak isa sa tabi mismo sa bawat isa sa memorya, kaya kung nais mong makuha ang unang character ng string, ito ay katulad ng pagkuha ng unang integer sa isang integer array. Kaya madalas naming - we'll sumangguni sa 2 tulad oh, bilang isang string, bilang isang array, kahit talaga - they're napaka-ibang mga bagay, ngunit maaari mong ituring ang mga ito napaka ang parehong. Kaya ito lumiliko out na ang linya na ito sa aktwal na - hindi namin kailangan upang gawin ang anumang conversion, at sa katunayan, ito aktwal na ay hindi isang wastong expression, na kung ano ang aming tagatala ng pagsasabi sa amin. Ito ay sinasabi, "Uy, inaasahan isang expression, at kung ano ang Mayroon akong dito ay isang bagay na hindi isang expression. " Idedeklara ng isang array, lahat ng kailangan mong gawin ay isang bagay tulad nito na may semicolon, at pagkatapos mo sabihin ang array kung gaano katagal ang nais mo itong maging, tulad ng 5, kaya ang line 10 ay ipinapahayag ng isang array na tinatawag na i may 5 integer sa loob nito. Ito ay isang bukod, ito ay hindi kinakailangan para sa code, ngunit ito ay - ito ay uri ng kung ano ang deklarasyon kamukha. >> Paano hindi mo gamitin ang magpasinda i [strlen (s)]? Magpasinda i [strlen (mga)]? >> Magpasinda i, at pagkatapos ay sa loob ng mga bracket, strlen (mga). Oo, kaya maaari namin - kami maaaring gawin ito, at ito ay ipinapahayag - kung ano ang ito gawin? >> Tingin ko ay ito ipinapahayag ng isang array ng, tulad ng - ng - oh, hindi mo na kailangan ang i - oh, oo, tiyak ka ay hindi kailangan ang i. Idedeklara sa iyo ng isang hanay ng mga character ng haba s. At kaya kung ano ang Sam ang sinasabi ay ito linya 10 - hayaan mo akong ilagay ang ilang mga puwang sa pagitan ito at ang natitira ihiwalay ito upang maaari naming - ang line 10 ipinapahayag ng isang array ng mga karakter, strlen (mga) halaga ng mga ito, ngunit aktwal na namin kailangang i, at ang dahilan na kailangan namin ang i ay dahil kailangan namin upang bigyan ang array ng pangalan; kung hindi man, hindi namin magkaroon ng isang paraan upang sumangguni sa array sa ibang pagkakataon sa code. Kaya ito karapatan dito ang array pangalan at sa loob ay ang haba. Ay magbibigay sa amin ng isang array, ngunit ito ay - muli, ito ay isang deklarasyon. Hindi ito isang pagtatalaga, ito ay hindi isang Pinasimulan. Kung ipinapahayag namin ang array na ito tulad ng ito, may aktwal na wala sa mga nilalaman ng array. Lang junk - anumang doon. At tulad ng sinabi namin, hindi namin aktwal kailangan upang gawin ito conversion, dahil na namin tinatrato ang string s bilang isang array. Alam ko namin ang pagpapatakbo ng isang bit mahaba sa oras, ngunit nais ko lang talagang makakuha ng mabilis na ito para sa loop at ipakita sa iyo kung paano upang ma-access ang mga indibidwal na mga character sa array, dahil na key para sa aming pagtatalaga. At pagkatapos ay ipapaalam namin sa iyo pumunta mula doon. Kaya dito, hindi namin Mayroon para sa loop na mukhang halos magandang. Ano ang hindi pa halos doon? What's - kung ano ang hindi masyadong tama tungkol sa para sa loop? >> Walang kulot tirante? Walang mga kulot tirante, para sa isa. Nais mong tiyakin na namin ang katawan ng loop na may kulot tirante. Oops, hindi ang parisukat suhay! At kung ano ang susunod na bagay na kailangan namin upang gawin sa loop na ito? Kung ako subukan at patakbuhin ito, kung ano ang error na ito na nakukuha ko? Nakukuha ko ang lahat ng mga error na ito - kong i initialize. Mahusay. Kaya ito ay isang loop - ito ay hindi pa doon, ngunit nakakakuha ito ng talagang malapit. Code na ito, maaari naming ngayon tumakbo, bumuo, pa rin ang isang error nangyayari. Bakit ito pa rin nagrereklamo, sinasabi ang expression ay hindi nagamit, at iyon dahil ang linya na ito ay hindi gawin. Hindi namin iimbak ito kahit saan, hindi namin i-save ang mga resulta. Saan dapat namin sine-save ang resultang ito? >> Mga o i? Eksakto, at ito funky syntax, ang mga ito na may mga square bracket ay nangangahulugan na ma-access ang i-ika na character ng mga. Na pagpunta sa isang bagay na talagang mahalaga para sa pagtatalaga. Sa kasamaang-palad, hindi namin ay pagpunta sa may upang ihinto dito, kaya na ang Sebastian seksyon ay maaaring dumating sa, ngunit ako masaya upang manatili pagkatapos sa labas at gumawa ng anumang mga katanungan. Kaya salamat sa iyo guys para sa darating na. Ito ay dapat na ngayong mag-upload, bumuo, patakbuhin. Maaari naming magpasok ng isang string tulad ng "kumusta" at mga Kopya ang "QOX". [Tawa] Kaya hindi pa doon, ngunit gumagalaw, pagkuha patungo sa mga loop! Salamat para sa darating na, at ko makikita sa labas.