Jason HIRSCHHORN: Maligayang pagdating sa CS50 seksyon, sa lahat. Ang pangalan ko ay Jason Hirschhorn. Ako ng maraming iyo TFs, ngunit ng maraming mga tao ay sana ay pagsali sa amin online, extension ng mag-aaral o estudyante sinusubukan upang tumingin sa pamamagitan ng seksyon na kung ang mga ito nakakaligtaan ang kanilang mga seksyon na linggo o lamang makibalita kung nais nila upang suriin ang ilang materyal. Kaya bilang bawat ang syllabus, na lahat ng iyong nabasa, itama? Nakakakita ako ng maraming nods head. Seksyon magbigay sa iyo ng pagkakataon upang galugarin ang kurso ni materyal sa isang mas kilalang-kilala kapaligiran, pati na rin ang dive sa hands-on activities. Kaya na kung ano talaga kami pagpunta sa ay paggawa bawat linggo. Kami ay pagpunta sa pumunta sa pamamagitan ng kung ano ang mayroon kami na natukoy na ang pinakamahalagang mga paksang tinalakay sa lecture, at ang mga bago marahil din pinaka-kapaki-pakinabang at pinaka-malamang na dumating up sa mga hanay ng problema at sa mga pagsusulit, at sa iyong coding buhay sa labas ng CS50. Kaya kami ay pagpunta sa pumunta sa mga paksang iyon, talakayin ang mga ito, pumunta sa mga iyon, sagutin ang anumang mga katanungan ka guys mayroon, at pagkatapos kami ay pagpunta sa gawin ng maraming kasanayan problema sa coding. Ikaw ang lahat ng dinala sa mga laptop, na kung saan ay hindi kapani-paniwala. Ito ay isang computer na klase agham. Gayunpaman, ng maraming mga pagsasanay na ginagawa namin, hindi mo na kailangan ang iyong mga laptop para sa. Maaari mong gawin ang mga ito sa isang sheet ng papel. Iyon ay kung paano ka ng pagpunta sa gawin ang mga ito sa mga pagsusulit. At sa katunayan, iyon ay isang mahusay na paraan upang talaga alam mo na kung paano gawin isang bagay kung hindi mo na kailangang 50 Suriin upang umasa sa Gawing o umasa sa, na nagsasabi gumawa ka ng anumang mga error. Kaya ka maligayang pagdating sa code sa appliance o run.cs50.net, na siyang isa pang tool na nagbibigay-daan sa iyo upang Code online, ngunit ko rin nais inirerekomenda, kung hindi mo pa sinubukan ito, gamit ang isang sheet ng papel at sinusubukan ang mga kasanayan problema sa isang sheet ng papel. Dahil muli, iyon ang sa huli kung ano ang iyong pagpunta sa maging hiningi na gawin sa mga pagsusulit. Kaya sabihin magsimula sa aming agenda para sa araw na ito. Kami ay pagpunta sa pumunta sa paglipas ng ilang mga kaugalian para sa ang aming seksyon, pagkatapos kami ay pagpunta sa sumisid sa array, pag-andar, at command line argumento, na kung saan ay kung ano ang iyong guys na sakop ito nakaraang linggo sa panayam at pagkatapos ay Lunes, at kung ano ang makikita mo takpan higit pa sa bukas. At pagkatapos ay sa wakas, kami ay pagpunta upang makipag-usap tungkol sa pset2. Kung maaari ba akong makakuha ng show ng mga kamay kung hindi Tiningnan ang problema dalawang hanay pagtutukoy. Susubukan naming sabihin sa lahat ng tao. Hindi kapani-paniwala. Susubukan naming makipag-usap tungkol sa mga hanay ng problema sa isang bit, ngunit kung basahin mo ang mga problema na hanay pagtutukoy, na lahat ng kailangan mong gawin. Kung nababasa mo na bago pumunta ka sa klase at seksyon sa Martes, kalooban mo maging isang mahusay na posisyon. Maaari naming pumunta sa pamamagitan ng pag-set problema, na kung saan ay kung ano kami ay pagpunta gawin sa dulo. Kami ay pagpunta sa pumunta sa pamamagitan ng ang logic, tiyakin lahat ng tao ay sa parehong pahina. Gusto ko sa iyo upang ma-iwan Martes pakiramdam napaka-kumportable sa kung ano ang iyong kailangang gawin para sa problema hanay na ito linggo, at kung wala ka, ako maligaya pagkatapos manatili at magtrabaho sa iyo. Ngunit iyon ay isang bagay na mayroon ka sa gawin ngunit sa palagay ko ay magiging talagang matalino, lamang na basahin ang mga problema na hanay specification sa pamamagitan ng klase sa Martes, saan ito tunog tulad ng isang maraming ka guys ginawa. Kukunin ko magsimula sa isang agenda sa bawat klase sa gayon alam mo kung saan kami ay pagpunta. Ito ay kapaki-pakinabang din para sa mga taong nanonood online dahil sa bawat seksyon ay naka-code ng kulay, kaya kung nais mong dumating bumalik lamang at manood ng 10 minuto sa halip kaysa sa buong 90-minutong seksyon, mo maaaring pumunta lamang sa seksyon ng kulay naka-code at tumingin sa bahaging iyon. Kaya ko na sinubukan na putulin ang mga ito hanggang sa magaling module na magpapahintulot sa iyo upang - kung gusto mong bumalik at suriin, o iba pang mga mag-aaral na lamang ang nanonood ng seksyon upang suriin - upang makita ang tukoy na bagay sila nais bigyang-pansin at matuto nang higit pa tungkol sa. Sweet. Kaugalian. Ako ay isang taong labis manamit lider sa campus. Hindi ko alam kung sinuman ginawa ng taong labis manamit. Ang ibig kahit sinong taong labis manamit gawin? Isang tao ang ginawa ng taong labis manamit. Dalawang mga tao ginawang taong labis manamit. Kahanga-hanga. Kaya taong labis manamit ay ang unang taon Outdoor Oryentasyon Program. Alang namin ang freshmen sa gubat at gumawa ng ang pinaka-mahiwagang karanasan ng mga ang kanilang buhay, tama? Oo. Tunog tungkol sa karapatan. Kaya ko lang gusto upang simulan ang aming pinakaunang seksyon sa pamamagitan ng tatalakayin ang ilang mga kaugalian para sa mga klase at ang aming relasyon dahil sa tingin ko ang mga ito ay napakahalaga. Una at nangunguna sa lahat, bilang mga ng sa iyo kung sino ang aking mga seksyon natanggap at ay tinatalakay sa na e-mail, pag-ibig kong ito. Ito ang aking mga paboritong bahagi ng taon. Ko pa kaya nasasabik. Ko pa dito para sa oras ngayon. Hindi ko pa pakaliwa gusaling ito maliban sa pumunta kumain dahil mahal ko CS50 seksyon, ako Gustung-gusto pagtuturo, pag-ibig ko nagtatrabaho sa iyo guys. Isa sa aking pinakamataas na priority, kung hindi aking bilang isa priority, hindi lamang para sa class na ito ngunit kabilang sa aking ibang mga klase at extracurriculars, ay upang sumusuporta ka sa guys, at makatulong sa iyo na guys, at gawin ang aking pinakamahusay na upang tiyakin na ikaw guys may isang kahanga-hangang, masaya, produktibo, makatawag pansin, kapana-panabik na maranasan ito sa klase. Iyon ay kung ano ako nakatuon sa. Iyon ang dahilan kung bakit gustung-gusto kong gawin ito. Iyon ay ang aking numero ng isang bagay, susuportahan ka guys. Kung mayroon kang anumang mga katanungan tungkol sa mga panayam, ang problema set, seksyon, buhay, kahit na gusto mong makipag-usap tungkol sa buhay, mangyaring huwag mag-atubiling makipag-ugnay. Mayroon kang ang aking cell phone number, mayroon kang ang aking email address, mayroon kang aking GChat. Maaari kang makipag-ugnay sa akin sa anuman o lahat ng mga kailanman, ngunit marahil ay hindi makakakuha isang tugon kailanman. Ako subukan at makabalik sa loob ng 24 oras. Malimit ito ay sa loob ng 20 minuto o 24 minuto. Dapat ko pa sinabi na upang gawin itong parallel. Ngunit makakakuha ka ng isang tugon medyo mabilis. Kung TEXT mo ako ng isang oras bago ang problema hanay ay dapat bayaran, ako ay kalmado ka down at gawin malalim na pagsasanay paghinga sa iyo, ngunit kung hindi mo pa magsimula, marahil ay hindi mo pagpunta sa matapos, at Hindi talaga ko maaaring makatulong sa iyo out doon kahit Kukunin ko subukan ang aking pinakamahusay. Kaya ako ay gawin ang lahat ng Maaari ko upang suportahan ka. Mangyaring huwag mag-atubiling makipag-ugnay kung ito ay nasa seksyon na muli, sa Oras ng Opisina kung makikita mo sa akin, o kahit na sa labas. Ikinagagalak kong i-set up ang isang oras upang matugunan at trabaho sa pamamagitan ng mga problema may o pumunta sa paglipas ng materyal. Kaya na numero ng isa, sa suporta. Ako ay gawin ang lahat ng ko Maaari upang suportahan ka. Numero ng dalawang, pulong sa gitna. Bilang magkano bilang Gusto kong maging, ako hindi makapangyarihan o lahat-ng-malakas o lahat ng nakaka-alam, kaya hindi ko alam ang lahat ng mga panahon kung ano ako paggawa ay pagkuha sa kabuuan, kung ang paraan ako nagtuturo ng topic tumutulong sa iyo na malaman ito, o kung ikaw ay lito sa isang paksa ngunit hindi gawin itaas ang iyong mga kamay o hilingin sa akin o magpadala sa akin ng isang email. O kahit na sa iyo, muli, ay lito tungkol sa isang bagay sa hanay problema. Kung hindi mo maabot ang out sa akin, Hindi ko alam na para bang. Pupuntahan ko na gawin ang aking pinakamahusay na mag-check in sa guys mo, siguraduhin ang lahat ng bagay ay pagpunta na rin, subukan magturo sa mga bagay sa isang paraan na magiging kaaya-aya sa karamihan ng ang iyong pag-aaral ng mga estilo, ngunit kung mayroong kahit ano ang maaari kong gawin, ipaalam sa akin. Kasama ang mga linya, kung gusto mo ng ilang tulong sa hanay problema, ako nang higit pa kaysa masaya na tulungan kang sa problema set. Kami ay pagpunta sa gawin ng maraming na patungo sa pangalawa kalahati ng seksyon na ito. Ngunit kung hindi mo pa basahin ang problema nagtatakda i-back at hindi pa napanood ang lakad sa pamamagitan at hindi pa napanood ang shorts at umaasa sa akin upang magturo sa iyo ang lahat ng bagay na na-videotape o online na maaari mong matagpuan sa CS50 pag-aaral, na hindi talaga patas sa sa akin o sa iyong iba pang mga kapantay. Kaya mangyaring, ako ay higit sa masaya na tulungan sa iyo, ngunit ikaw guys nakuha upang matugunan sa akin sa sa gitna. Mayroon kaming tonelada ng mga mapagkukunan para sa magagamit mo sa CS50. Nabanggit ko ang ilan sa kanila. Mangyaring samantalahin ng mga ito. Kung ikaw ay naguguluhan, ako nang higit pa kaysa masaya upang makatulong sa iyo na ipaliwanag ang mga ito sa isa pang paraan, pero hindi patas kung mag-aaral na ipakita up sa oras ng opisina, hindi pa nagsisimulang anumang bagay, at ito ay Huwebes gabi at sila ay umaasang ang tf para lakarin ang mga ito sa pamamagitan ng bawat solong bagay para sa mga problema dahil nakatakda sa tanghali ng susunod na araw. Magkaroon ng kahulugan? Muli, mangyaring matugunan sa amin sa gitna. At sa wakas, mataas na mga inaasahan. Pupunta ako sa maging grading lahat ng tao kung sino ang sa aking seksyon, o pagmamarka ng iyong problema set. Hindi ka pa nawala pabalik problema itakda sa zero o isa pa. Humihingi kami ng paumanhin tungkol sa na. Ito ay kinuha sa amin sandali upang sa wakas tumira seksyon, at ngayon maaari naming simulan grading. Kukunin ko ang mga iyon pabalik sa iyo sa lalong madaling panahon. Iyon ang ilan sa aking mga advisees out doon. Kukunin ko ang mga iyon pabalik sa iyo sa lalong madaling panahon. At para sa mga problema ng dalawang hanay, kami ay magiging sa iskedyul at kami ay magsimulang makakuha ng mga ito sa iyo medyo mabilis matapos mong i-on ang mga ito in Kapag kang makakuha ng iyong problema itakda pabalik, mo makakakuha ng mga puntos, pati na alam mo mula sa binabasa ang syllabus - kawastuhan, disenyo, saklaw, at mga marka ng estilo. Makikita mo rin makakuha ng mga komento. Ang mga komento ay mas mahalaga kaysa sa mga marka. Sa tingin ko ito ay ligtas na sabihin na. Mga Marka lamang ang isang numero 1-5. Ito ay mahirap na basahin sa mga iyon. Ito ay mahirap upang mapabuti ang mula sa mga. Ngunit ang mga komento ay ituro tiyak mga bagay na ginawa mo na rin o lugar maaari mong pagbutihin ang on at magbibigay sa iyo ng ilang mga mga ideya para sa hinaharap o alternatibong mga paraan ng paggawa ng mga bagay-bagay. Kaya mangyaring, mangyaring, mangyaring basahin sa pamamagitan ng mga komento. Ko bang ilagay ang isang pulutong ng mga oras sa mga komento. Mangyaring basahin sa pamamagitan ng mga ito at gawin hindi lang mag-scroll pababa sa ilalim ng PDF, hanapin ang iyong iskor, o pumunta online at hanapin ang iyong mga puntos, at pagkatapos ay huwag pansinin ang mga komento. Iyan ay hindi kung ikaw ay pagpunta upang makakuha ng mas mahusay. Na hindi kung paano ka ng pagpunta sa taasan ang iyong mga marka sa huli, lamang pamamagitan ng pagtingin sa mga marka. Mangyaring tumingin sa mga komento. At sa kahabaan ng linya ng mataas na mga inaasahan, muli, tulad ng sinabi ko, mo maaaring nakapuntos mula isa hanggang lima. Twos, threes, at fours ay ang mga napakaraming mga puntos ka pagpunta upang ma-pagkuha. Mga bago at fives ay parehong talagang bihira. Mayroong mga bagay na laging maaari naming gawin mas mahusay. Tuwing ako code sa isang programa, mayroong palaging isang bagay ko sana tapos na mas mahusay. Kaya sa halip na sa sinasabi mong makakuha ng isang limang sa lahat ng oras sa lahat ng bagay at ginawa lahat ng bagay perpekto, palagay ko ay hindi anumang sa atin talagang naniniwala na namin - o sana, hindi namin gawin ang lahat ng maperpekto ang lahat ng mga oras. Kaya huwag ma-alala kung ikaw Hindi makakuha ng isang limang. Ang isang limang hindi map papunta ng A, isang apat na Hindi map papunta sa B, ang isang tatlong gumagana Hindi mapa papunta sa isang C. Iyon ay hindi kung paano ang mga marka ng trabaho. Tulad David ay sinabi ng maraming beses, sa katapusan ng semestre lahat ng iyong mga puntos at mga input mula sa akin, ang iyong mga tf, tipon at matukoy ang isang pangwakas na grado para sa iyo. Ngunit muli, hindi lima, A, apat, B, at iba pa. Kaya Pupunta ako sa may mataas na mga inaasahan para sa iyo guys. Pupunta ako sa inaasahan magandang problema sets at pupuntahan ko bigyan feedback ka bilang naturang. At hindi ito ay pagpunta sa ibig sabihin ikaw ay pagpunta upang makakuha ng isang mas masahol grado. Ikaw ay namarkahan sa mga tuntunin ng iyong pag-unlad mula sa linggo zero sa pagtatapos ng kurso. At sa wakas, sa mga tuntunin ng mataas mga inaasahan sa klase, gustong-gusto ko kapag mga tao na lumahok. Nauunawaan ko ang ilang mga tao pakiramdam mas o mas kumportable kalahok. Iba pang mga tao ang mga kalahok na hindi sa pamamagitan ng pagtataas ng kanilang mga kamay at pakikipag-usap sa lahat ng oras. Ngunit kami sa class na ito ay pagpunta sa maging paggawa ng maraming maliit na mga problema, ng maraming ng mini tanong, at pagkatapos ng ilang mas malaking problema sa coding. Kaya siguradong gagana mga pagsasanay out kapag ginagawa namin ang mga ito sa iyong computer o sa isang sheet ng papel. Ngunit kukunin ko din bigyan ka ng ilang oras bago kahit sino man ang may upang sagutin ang ilang sa mga tanong sa tanungin ko. Kaya dahil ako ay magbibigay sa iyo ng ilang panahon upang isipin ang tungkol dito, dahil kami ay pagpunta upang gawin ang mga bagay sa mga kasosyo sa kung minsan, Ako ay inaasahan lahat ng tao na nakatuon medyo. At para sa kakulangan ng isang mas mahusay na term, doon ay marahil maging malamig na pagtawag, na ay kung saan lahat ng tao ay magkakaroon ng isang pagkakataon upang isipin ang tungkol sa sagot, at pagkatapos ay Tatawag ako sa iyo, at pagkatapos ay makikita mo sinasabi ang sagot. Huwag mag-alala o matakot tungkol sa na. Gumawa ako nito sa nakaraan at nalaman namin na ito ay magkano ang mas matagumpay, din basahin ang pang-edukasyon pananaliksik sa mga ito sa matukoy kung o hindi ito ay isang magandang taktika. Ito ay lubhang kapaki-pakinabang, lalo na kung bigyan ang mga mag-aaral oras upang isipin ang tungkol sa sagot at huwag gumawa ng mga ito lamang ang dumating out at ito sinasabi karapatan off ang bat. Ngunit kung hindi ka komportable sa pagsagot, ako rin medyo magandang sa Pagramdam na out, at hindi kami ay pagpunta sa ilagay mo sa lugar, lalo na sa ang camera, kahit na wala sa ikaw ay nasa camera ngayon. Kaya iyon ay ang mga kaugalian mayroon akong. Isa pang bagay kasama ang mga linya sa pagtugon sa gitna. Pupunta ako sa magbibigay sa iyo ng guys ng maraming feedback. Pakibigyan ako ng feedback pati na rin. Mayroong isang website, sayat.me/cs50. Kaya ito ay isang matapat na puna. Kung gusto mong bigyan ito sa panahon ng seksyon, Nakakuha ako ng email sa tuwing mangyayari ito. Susubukan naming magpahinga sa isang bit, kaya bibigyan ko tumingin sa pamamagitan ng feedback pagkatapos. Kung sakaling magkaroon ng anumang feedback, mangyaring ibigay ito sa akin doon. Kung ba ninyo akong bigyan ng feedback sa mga Q, na kahanga-hanga, ngunit iyon ang gabay na gagawin mo sa dulo. Ngunit iyon ay magiging sa katapusan ng semestre kaya Hindi ko magagawang gumawa ng anumang ng na feedback at i-on ito sa pagtuturo ka guys mas mahusay. Kaya mangyaring, kung mayroon kang anumang feedback, ibigay ito sa akin. Gustung-gusto ko ang feedback. I-back sa taong labis manamit, nakakakuha kami ng feedback sa lahat ng oras. Maaari mong ibigay sa akin ang mga plus, mahusay na mga bagay, deltas, mga bagay na maaari ko mapapabuti sa oras. Maaari kang magkomento sa aking mga outfits. Iyon ay hindi bilang kapaki-pakinabang, ngunit ikaw ay maligayang pagdating sa magkomento sa anuman at ang lahat ng bagay. Mangyaring, mangyaring akong bigyan ng feedback. Pinahahalagahan ko ito ng maraming at ito ay nangangahulugan ng maraming sa akin. Isa pang pamantayan, masaya. Kami ay pagpunta sa magkaroon ng maraming masaya. Sana sa kursong ito, bibigyan ka magkaroon ng maraming masaya. Magkakaroon kami kendi sa seksyon. Magkakaroon kami ng musika. Ay sana naming ma-pagkuha ng malaman ang isa isa pang medyo maayos, kaya gusto ko ito upang maging isang masaya, nakakaengganyong karanasan. Alam ko ang ilan sa inyo na nahulog tulog sa ang aralin ay nagkaroon ka ng mas maaga ngayon, kaya sana ay iyon ay hindi ang kaso ngayon. At kung ito ang kaso ngayon, lamang huwag humagok dahil na kapangyarihan ay nahuli sa camera. Sweet. Ang anumang mga katanungan, komento, o alalahanin bago ilipat ko sa tungkol sa anumang bagay na namin uusapang tungkol sa? Mahusay. Kaya kami ay pagpunta sa pumunta sa unang array. Ito ay kung paano gumawa ka ng isang array. Nasaksihan namin ito bago. Mayroon kang isang uri ng data, mayroon kang isang pangalan, at pagkatapos ay mayroon kang isang laki. Kanan dito, lumikha ako ng dalawang array. Ang unang isa ay isang array ng mga character, at mayroon itong 26 na mga puwang. Ang ikalawang isa ay isang hanay ng mga mga marka, at ito ay may tatlong espasyo para sa tatlong integer. Oo? MAG-AARAL: Sigurado lahat ng mga slide magagamit sa isang lugar para sa amin? Jason HIRSCHHORN: Mahusay tanong. Ang tanong ay, ay ang lahat ng mga slide na magagamit? Oo. Ang lahat ng mga slide ay magagamit, at sa hinaharap, kakailanganin ko i-email ang mga ito sa bago ka seksyon. Ngunit ngayon, dahil ito ay ang unang linggo, nagkaroon kami ng late start. Kaya kadalasan, makakakuha ka ng mga slide, ngunit sila ay magagamit na online at Kukunin ko i-email ito sa iyo karapatan pagkatapos ng klase. Anumang iba pang mga katanungan? Kaya muli, array ay box, para sa kakulangan ng isang mas mahusay na salita, na maghawak ng maramihang mga elemento ng isa sa uri ng data, at sila handa sa tabi ng isa't isa sa memorya. At kaya muli, ito ay kung paano maaari mong gumawa ng dalawang uri ng array. Kaya pagkatapos mong gawin ang iyong mga array na may na ang unang linya - int score, bracket tatlo, malapit na bracket - mo nais upang simulan ito. Gusto mong ilagay sa ilang mga halaga sa doon. At ito ay kung paano mo ilalagay sa ilang mga halaga sa doon, lamang ng pagpili ng indice at Sumusulat ang numero. Sabihin gumuhit ito sa board. Maaari ba makita ang lahat ng tao? Lahat ng tao ang maaaring makakita. Sweet. Kaya na pagpunta sa maging ang aking array na tinatawag na Marka ng. Tulad ng iyong nakikita, ito ay tatlong sukat. May tatlong mga kahon sa doon. Ang bawat isa ay maaaring magkasya kung ano uri ng data uri? MAG-AARAL: Integer. Jason HIRSCHHORN: Ang isang integer sa isang ito. Kami ay sumulat int score, at ang unang salita ay ang uri ng data na pupuntahan pumunta sa ang mga kahon na sa array. Kaya ang maaari kong magkasya tatlo. Bakit ako ay may zero up doon sa board? Bakit sinasabi nito puntos ay katumbas ng zero 1? Ipaalala sa akin ng iyong pangalan. MAG-AARAL: Kurt. Jason HIRSCHHORN: Kurt. MAG-AARAL: Oo. Jason HIRSCHHORN: Bakit? MAG-AARAL: Dahil sa unang index ay zero, sisimulan namin ang pagbibilang sa zero. Jason HIRSCHHORN: Kaya simulan namin pagbibilang sa zero. Iyan ay akmang-akma. Ito ang bahagi nakakalito at kalooban paglalakbay up mo, lalo na kapag ikaw ay sinusubukan na umulit sa pamamagitan ng array, na gagawin namin sa isang bit. Simulan namin ang pagbibilang sa zero. Kaya kapag gusto kong mag-refer sa unang kahon, ito ay hindi isang kahon. Sa kasamaang-palad, ito ay zero box. Ang ikalawang isa ay isang kahon, at sa ganitong kaso, ang mga third isa ay dalawang kahon. Paano ang tungkol sa tatlong box? Saan ang kahon tatlong? O kung gusto kong gawin score, bracket tatlong, malapit bracket, ano iyon? Kaya't sinabi mo ang null character. Anumang iba pang mga saloobin? Ano ang iskor bracket tatlong bracket? MAG-AARAL: Hindi ito talagang umiiral dahil ikaw lamang tinukoy bilang mga marka, bracket tatlo. Jason HIRSCHHORN: So sinasabi mo ito ay hindi talaga umiiral. Sa ilang mga kaso, kapag kami ay pagharap sa string, sa pangkalahatan ay maglalagay kami ng isang null na character sa dulo. Makakapagsimula na kami na sa isang segundo. Ngunit sa kasong ito, mayroong ay walang third kahon dito. Kaya ang huling kahon sa anumang array ang laki ng minus 1. Kaya kung kami ay may isang array ng n laki, ang unang box ay sa zero, ang huli ay sa n minus 1. At sa kasong ito, ito ay hindi umiiral. May isang bagay dito sa memory pero hindi atin. Hindi namin pag-aari nito. Hindi namin magtanong para dito. Kaya't kung sinusubukan naming i-access ito, na kung saan bibigyan namin ng gawin sa isang bit, marahil kami ay pagpunta sa kumuha sa problema. Sa kasong ito, ako Sinisimulan ang aking array na may tatlong variable. Kami ay paglagay ng isa sa box zero, ang isang dalawang sa kahon ng isa, at isang tatlong sa dalawang kahon. Ba ang sinuman may anumang mga katanungan Sinisimulan ang tungkol sa isang array? Kaya namin nagpunta sa paglipas ng ito ngayon lang. Marka ng, bracket tatlo, malapit bracket, na ay hindi umiiral. Zero kami na-index sa computer science, kaya simulan namin ang pagbibilang sa zero. Ang huling box na magagamit sa amin, ito ay ang mga third kahon, ngunit ito ay tinatawag na kahon dalawang numero. Down sa ibaba, ito ay isang alternatibo paraan ng Sinisimulan array. Kaya sa halip na lumikha ng array sa isa linya, pagpuno ng unang kahon, at pagkatapos ang pangalawang kahon, pagkatapos ang third kahon, maaari mong gawin ang lahat ng ito sa isang linya. Kaya sa na linya, parehong array. Lumilikha ito ng parehong eksaktong bilang array kung ano ang aming ginawa ang karapatan dito, ngunit ito lamang ang ipinapakita ito sa isang linya. Ngayon, gumawa kami ng aming mga array. Karaniwan sa sandaling lumikha ka ng isang array, mo nais na gawin ang isang bagay na may ito, kung na punan ito o makakuha ng mga bagay sa labas ng ito at i-print out ang mga ito sa screen. Sa kasong ito, kami ay pagpunta sa pamamagitan ng aming mga marka ng array, na aming nasimulan sa ang unang linya up dito sa gray. At pagkatapos sa pangalawang linya, simulan namin iterating sa pamamagitan ng array. Ba ang sinuman may anumang mga katanungan tungkol sa ang istraktura ng para sa loop? Kaya ito ang para sa loop. Mayroon kaming ang aming mga paunang kondisyon, at pagkatapos ay ang aming panghuling kondisyon, at pagkatapos namin umulit, i, ang bawat loop. At sa kulot tirante sa ito para sa loop, ano ang mangyayari kung ako ay upang tumakbo sa programang ito? Maaari kahit sino sabihin sa akin kung ano ang gusto namin makuha? [? Matu? ?] MATU: I-print ang lahat ng mga marka sa bawat linya. Gusto ito i-print ang bawat puntos sa isang hiwalay na linya. Jason HIRSCHHORN: Ano ang eksaktong Gusto ito i-print? MAG-AARAL: Ito-print ng isa, pagkatapos ng dalawang, pagkatapos ay tatlo. Jason HIRSCHHORN: Mismong. Gusto Ito-print ng isa, at pagkatapos ay dalawa, pagkatapos ay tatlong, ang bawat isa sa hiwalay na mga linya, dahil kami ay pagpunta sa pamamagitan ng array at bibigyan ka makita na ang pangalawa, ang printf pahayag, puntos i. Kaya sa unang pag-ikot sa pamamagitan ng aming para sa loop, i katumbas ng zero, na nangangahulugan na hindi namin pagkuha ng mga halaga sa puntos zero - kung saan, kung pumunta kami pabalik sa ang aming mga diagram, ay isa - at pagpuno ng mga - oh, sinasabi nito c. Iyon ay dapat na% d. Ako ay ayusin na sa isang bit kapag Kamay ko na sa iyo guys. Ngunit kami ay nagtatanghal ng isang integer kaya ito dapat ay% d dito mismo, hindi% c. Ano ang% c para sa? MAG-AARAL: Character. Jason HIRSCHHORN: Character, eksakto. Ano ang iba pang isa? Kung hindi mo nais na gawin% d para sa isang integer, kung ano pa ang maaari mong gawin? MAG-AARAL: i. Jason HIRSCHHORN:% i, eksakto. Kaya ang anumang mga katanungan tungkol sa iterating sa pamamagitan ng array? Kaya kung ano ang mangyayari kung gagawin namin ito? Sa halip ng paggawa i Mababa sa tatlo, namin i Mababa sa o katumbas ng tatlo. Ano ang mangyayari kapag tumakbo namin ang code na ito? Oo, Annie? MAG-AARAL: Ang mga ito ay pagpunta sa i-print out kakaiba mga bagay-bagay sa ikaapat na linya. Jason HIRSCHHORN: Kaya sinabi mo, ito ay pagpunta sa i-print ang kakaiba bagay-bagay sa ikaapat na linya? Ba ang sinuman magkaroon ng isang sagot sa kanyang tanong? Kaya ang mga logro ay na kapag makuha namin sa - kaya sa ika-apat na pag-ikot sa pamamagitan ng aming para sa loop, tulad ng naisip mo, Annie, Makikita ito maging mga marka bracket tatlong, na na namin may korte out ay hindi umiiral, at kami ay pagpunta sa subukan at i-access na, i-print ito out, gamitin ito ng ilang mga paraan. Kaya computer na ang kalooban marahil makakuha ng galit na galit sa amin. Ikaw ay akmang-akma. Maaaring huminto sa programa sama-sama. Maaaring i-print ang isang bagay talagang kakaiba. Hindi mo maaaring sabihin para sa mga sigurado. Logro ito ay makikita marahil makakuha ng galit na galit sa ikaw lamang at mag-quit kaagad. Ngunit ito ay isang pangkaraniwang pagkakamali magkakaroon ka ng kung saan ikaw ay nasa labas lamang ng isa sa ang dulo, at ito ay isang bug na kalooban peste ka sa iyong buong coding. Ang isang paraan na gusto ko lang gawin ay lamang sa isang Whiteboard, pumunta sa pamamagitan ng bawat pag-ulit ng loop sa kamay o sa papel upang makita ang kung ano ang nangyayari, at pagkatapos ay sa iyo Napagtanto pangkalahatan, oh maghintay, hindi ko dapat na nawala na sa mas mababa sa o katumbas ng tatlo. Ko dapat ay tumigil sa dalawang, na kung saan ay kung ano ang mangyayari kung ang iyong kalagayan ay mas sa tatlong. Ang anumang mga katanungan sa ngayon? Sweet. Kaya mo ang lahat ng iyong mga computer bukas. Kami ay pagpunta sa magbibigay sa iyo ng 2:58 minuto upang magsulat ng isang programa na lumilikha ng isang array na may isang integer sa pamamagitan ng limang at pagkatapos ay i-out ng mga Kopya bawat integer sa isang bagong linya. At kung mayroon kang anumang mga katanungan, itaas ang iyong mga kamay. Ikinagagalak kong dumating sa pamamagitan ng. Tulad ng sinabi ko, sabihin tumagal ng tatlo minuto upang isulat ito. Lahat ng tao ay OK kung pumunta ako sa isang bagong window at isara ito? Sorry kung hindi mo pa nagkaroon ng isang pagkakataon upang matapos, ngunit kami ay pagpunta sa gawin ito magkasama ngayon. Kaya up sa screen, # ko isama cs50.h, # isama stdio.h. Maaari isang tao sabihin sa akin kung ano ang mga dalawang linya gawin? Michael? MAG-AARAL: Kasama sa mga ito ang mga library CS50 na ginawa at Steve na may naka-save na para sa iyo na gamitin sa gawin ang iyong buhay mas madali. Jason HIRSCHHORN: Kaya mo sinabi nila isama ang mga library, isa na CS50 ginawa, cs50.h, at isa na ay lamang karaniwan, ay may ang package C, stdio.h. Ano ang ibig mong sabihin isama mga aklatan, bagaman? Maaari kang maging isang bit mas tiyak? MAG-AARAL: Ito ay ginagawang gayon maaari mong gamitin ang mga tiyak na salita code upang magkaroon ng isang gumana mangyari nang hindi na kinakailangang pumunta at gawin ang mga function na ang iyong sarili c. Jason HIRSCHHORN: Maaari bang mag ka bigyan ako ng halimbawa? MAG-AARAL: Tulad ng printf ay isa maaari mong gamitin. Jason HIRSCHHORN: Printf. Kaya sinabi mo printf ay isa sa mga pag-andar kung saan sa halip ng pagkakaroon sumulat printf sa iyong sarili, ay printf Kasama talaga sa stdio.h, kaya mo Maaari lamang itong gamitin at angkinin na ito ay gumagana. Sa stdio.h, kung ikaw ay nagbukas ng file na iyon, Gusto ito isama kung paano printf gawa, ang lahat ng mga code para sa printf? Bakit mo nanginginig ang iyong ulo? MAG-AARAL: Dahil sa header na file lamang Kasama ang function na deklarasyon. Jason HIRSCHHORN: Eksaktong karapatan. Ang header na file lamang Kasama ang function na deklarasyon. Kaya talaga, kapag nag-compile ito, pindutin ang Gumawa ng Count, na gagawin namin sa isang pangalawa, tagatala ang nakakaalam na kung gumamit ka ng printf, printf umiiral na. Ito ay pagpunta sa ay tinukoy sa isang lugar. Ito ay hindi isang problema para sa iyo gamit ito. At pagkatapos ay sa ibang pagkakataon, magkakaroon ito isama ang mga bago at mga zero na aktwal na naglalaman ng printf ng pagpapatupad at pagsamahin ang mga ito sa iyong code. Paano gumawa ka ba na kasama nito ang mga mga bago at mga zero para sa, sabihin nating, kumuha ng string? MAG-AARAL: Kumuha ng string ay nasa cs50.h. Jason HIRSCHHORN: Kanan. Kaya na nagsasabing makakuha ng string umiiral, ang function na deklarasyon. Ngunit pagkatapos ay ang mga bago at mga zero, ang binary file na aktwal na kinabibilangan ng mga pagpapatupad ng get string? Paano mo matiyak na napupunta sa iyong programa? MAG-AARAL: Daanan ng linker sa ang command argumento line. Jason HIRSCHHORN: Pass ang linker sa mga argumento command line. Paano mo gawin iyon? MAG-AARAL: Ito ang l-linya sa kalatungin Jason HIRSCHHORN: Eksaktong karapatan. Sabihin-l mo cs50, tama? Kabilang sa mga iyon ang mga bago at mga zero. MAG-AARAL: Ngunit Gawin ang ibig na para sa iyo, i-right? Jason HIRSCHHORN: Mismong. Gawin ang ibig na para sa iyo, ngunit sa kalaunan, hindi mo na Magsagawa, o kailangan mong gumawa ng isang Magsagawa sa iyong sarili, sa gayon na ang isang mabuting bagay na dapat tandaan. Kung ikaw ay pagpunta sa gamitin ang isa sa mga iba pang mga library, hindi lamang ang mayroon ka upang magsulat # include at pagkatapos ay ang library. Kailangan mo ring i-link ito in At ang dalawang mga bagay ay magkaiba. -L cs50 ay iba kaysa # include cs50.h. Pagkatapos kami ay may int pangunahing walang silbi ang kulot tirante, at ngayon kami ay pagpunta sa code sa loob ng main. Ang unang linya Mayroon akong dito ay isang komento na nagsasabing, lumikha ng isang array may ints isa hanggang lima. Ano ang isang mahusay na salita upang ilarawan kung ano ako mayroon ngayon sa screen, lamang mga komento sa loob ng main? Ano ang gagawin namin tawagan iyon? MAG-AARAL: Pseudocode. Jason HIRSCHHORN: Pseudocode. Salamat sa iyo, Jeffrey. Iyon ay akmang-akma. Pseudocode. Mayroon ba guys nakita pseudocode bago? Itaas ang iyong kamay kung ginamit mo pseudocode problema bago magtakda ng isa. Tungkol sa kalahati ng sa iyo. Gusto ko lubos na inirerekomenda ang paggamit pseudocode upang masira mga problema sa mas maliit, mas madaling i-off ang kumagat piraso. Gayundin, kung gagawin mo ang pseudocode, mo Mayroon ang iyong mga komento na higit sa lahat built in, kaya hindi mo kailangang i- bumalik at subukan upang malaman kung ano ang iyong ginagawa. Kaya maaari isang tao akong bigyan ang unang linya upang lumikha ng isang array na may ints isa sa pamamagitan ng limang? Ikaw? MAG-AARAL: int at pagkatapos ay maaari kang tumawag sa anumang bilang, at pagkatapos ay parisukat limang bracket. Jason HIRSCHHORN: Kaya int numero, square bracket limang. MAG-AARAL: Kapantay, at pagkatapos kulot tirante. Jason HIRSCHHORN: Kapantay, kulot tirante. MAG-AARAL: Ang isa, dalawa, tatlo, apat. Jason HIRSCHHORN: Isa, dalawa, tatlo, apat, lima. MAG-AARAL: At pagkatapos kulot tirante at pagkatapos ay tuldok-kuwit. Jason HIRSCHHORN: At kulot tirante at tuldok-kuwit. Magaling. I-print ang bawat int sa isang bagong linya. Maaari ba ibang tao bigyan sa akin na ang code, pakiusap? [? Matu? ?] Sige. MAG-AARAL: Para sa ( Jason HIRSCHHORN: Para sa ( MAG-AARAL: int i = 0 Jason HIRSCHHORN: int i = 0 MAG-AARAL: semicolon i mas mababa sa limang. Jason HIRSCHHORN: tuldok-kuwit, i mas mababa sa 5. MAG-AARAL: tuldok-kuwit, i + +. Jason HIRSCHHORN: tuldok-kuwit, i + +. MAG-AARAL: Sarado panaklong, pagkatapos ay bukas suhay. Jason HIRSCHHORN: Sarado panaklong at dalawang tirante. Sa loob ng tirante? MAG-AARAL: At pagkatapos ay printf "% d / n" Jason HIRSCHHORN: Paumanhin, hawakan. Printf "% d / n, closed quote. MAG-AARAL: At pagkatapos closed quote, kuwit, count, i bracket. Jason HIRSCHHORN: Comma, count, i bracket. MAG-AARAL: Paumanhin, numero i bracket. Jason HIRSCHHORN: Numero, i bracket. MAG-AARAL: Paumanhin. At pagkatapos ay isinara panaklong, tuldok-kuwit. Jason HIRSCHHORN: Sarado panaklong, tuldok-kuwit. Pupunta ako upang i-save na. Kami ay pagpunta sa gumawa ng count. At paano ko patakbuhin count? MAG-AARAL: Backslash. MAG-AARAL: Dot forward slash - Jason HIRSCHHORN:. / Bilangin, eksakto. Salamat sa inyo. . / Bilangin. Ang isa, dalawa, tatlo, apat, lima sa mga bagong linya. Mukhang ito ay nagtrabaho. Oo, si Noah? MAG-AARAL: Maaari mo ring gawin mas mababa sa o katumbas ng apat, tulad ng i Mababa sa o katumbas ng apat? Mayroon bang anumang bentahe sa paggawa ng mas kaunting sa limang, o lamang ng ibang paraan ng Sumusulat ito? Jason HIRSCHHORN: Kaya ang tanong ay sa iyo sana tapos i mas mababa sa o katumbas ng apat na sa halip ng i ay mas mababa sa limang. Nais na nagtrabaho sa parehong? MAG-AARAL: dapat ito. Jason HIRSCHHORN: Oo. Ito ay lubos na sana ay gumagana sa parehong. Stylistically, ito ay sa pangkalahatan ay mas mababa, at makikita mo sa isang segundo kapag kami mga string, maaari mong gamitin ang isang bagay tinatawag strlen, na iyong nakita bago, upang makuha ang haba sa mga string. At hindi ka maaaring gawin mas mababa sa o katumbas strlen. Maaari mong gawin mas mababa sa o kasing-halaga strlen minus isa. Kaya lang nicer upang gawin mas mababa sa strlen. Oo? MAG-AARAL: At sa aktwal na mga pagsusulit, gawin kami ay may upang magbigay ng mga komento sa aming mga code pati na rin? Jason HIRSCHHORN: Ang tanong ay sa mga pagsusulit, gawin mo mayroon na magbigay ng komento? Kaya naming makipag-usap nang higit pa tungkol sa mga pagsusulit kapag ang mga ito ay up, ngunit sa pangkalahatan, isang magandang pamantayan ay tuwing ikaw ay pagsulat code, magbigay ng mga komento. Kung nakuha mo ang code maling ngunit ang magkomento karapatan, maaari kang makakuha ng ilang credit parehong mula sa akin kung ako ay grading mo sa isang hanay problema o sa isang pagsusulit. Kaya mga komento ay palaging mahusay na magbigay. Sweet. Bilangin. Mahusay trabaho. Sabihin umusad. String. String. Nasaksihan namin ito bago magbigay ng panayam sa. Ito blew aking isip kapag ako unang natagpuan out ito. Ito marahil ay hindi pumutok kahit sino ni tututol dito, ngunit iyon ang OK. String ay array ng mga character, at tapusin ang mga ito sa, pati na sinabi mo nang mas maaga, ang null Terminator, na ay ang / 0 karakter. Kung kami ay pagpunta upang gumuhit ng isang string sa board, makikita namin gumuhit ito sa paglipas dito. Kaya kung gaano katagal ay ang string na ito? Sorry. Gaano kahaba ang string na ito? MAG-AARAL: [hindi marinig]. Jason HIRSCHHORN: Four? Bakit ito apat? MAG-AARAL: Dahil ang ikalimang puwesto ay para sa null character. Jason HIRSCHHORN: Kaya ang ikalimang puwesto ay para sa null character. Kaya kung ako ay upang tumakbo sa strlen ito, magiging akong bigyan apat. Itama. At ang array, bagaman, kung ako ay upang initialize ito array, kung gaano karaming mga puwang Gusto ko mayroon upang humingi? MAG-AARAL: Limang. Jason HIRSCHHORN: Limang. Gusto ko mayroon upang humingi ng limang, ngunit maaari ko lamang ilagay ang apat na mga character sa dito dahil kailangan kong ilagay na null Terminator sa dulo. Kaya kami ay pagpunta sa sumulat sa "ohai" at ilagay ang null sa Terminator sa dulo. Susubukan naming sabihin na ito ay string s ay katumbas ito. Ano ang zero s bracket? s bracket zero, Annie? MAG-AARAL: O. Jason HIRSCHHORN: O, eksakto. s bracket ng isa? s bracket limang? s bracket limang? MAG-AARAL: Hindi umiiral. Jason HIRSCHHORN: ba ang hindi umiiral. Mismong karapatan. Cool. Ang anumang mga katanungan tungkol sa pang-unawa bilang mga string array ng mga character? OK, pagkatapos. Isa pang programa para sa iyo guys. Sumulat ng isang programa na nagtatanong sa gumagamit para sa isang string pagkatapos ng mga Kopya bawat out na character sa isang bagong linya. Kaya sabihin tumagal ng tatlong minuto upang isulat programa na ito, at pagkatapos ay makikita namin ito code bilang isang grupo. Sorry. Nagustuhan kailangan mo upang makita ito? MAG-AARAL: Hindi. Jason HIRSCHHORN: OK. Magpahinga ng isa pang minuto sa code na ito, o hindi bababa sa magsimula sa ito. Kaya maaari mong mapanatili ang nagtatrabaho, ngunit ako pupunta upang simulan ang pagpunta sa pamamagitan nito. Kaya bang bago, mayroon akong sa screen # Include cs50.h, # isama stdio.h. int pangunahing walang bisa. Sa loob ng main ni kulot tirante, mayroon akong dalawang komento, pseudocode. Ang isa ay humihingi ng string mula sa user. Ang pangalawa ay i-print ang bawat na character sa isang bagong linya. Kaya Anna, maaari mong ibigay sa akin ang magtanong para sa isang string mula sa mga gumagamit? MAG-AARAL: Printf. Jason HIRSCHHORN: Printf? MAG-AARAL: Oo. ( Jason HIRSCHHORN: ( MAG-AARAL: "ninyo ako ng string. Jason HIRSCHHORN: "bigyan sa akin ang STR - oops - string. MAG-AARAL: / n ") semicolon. Jason HIRSCHHORN: Tapusin ang string, closed panaklong, tuldok-kuwit. MAG-AARAL: Oo. At pagkatapos ay susunod na linya, string s = makakuha ng string. Jason HIRSCHHORN: String s = makakuha ng string. MAG-AARAL: Oo. At pagkatapos () Jason HIRSCHHORN: () MAG-AARAL: tuldok-kuwit. Jason HIRSCHHORN: tuldok-kuwit. Hindi kapani-paniwala. Kaya ako pupunta upang makakuha ng isang string at Pupunta ako sa i-save ito sa kung ano? Ano ang mga variable na tinatawag na iyong nilikha? MAG-AARAL: String s. Jason HIRSCHHORN: Ang variable ay tinatawag s. Ito ay uri ng string. Mismong. Susunod na bagay na gusto naming ay i-print out bawat karakter sa isang bagong linya. Sino ang maaaring magbigay sa akin na code? [Hindi marinig]? Maaari mong ibigay ito sa akin? MAG-AARAL: Oo naman. Jason HIRSCHHORN: Sabihin gawin ito. At paumanhin. Hindi ko nais na ulitin kung ano ang sinasabi mo dahil ka nakakakuha ito ng tama, ngunit ko kailangang ulitin ito nang sa gayon ay kapag sila ay isalin sa ibang papel na ito, maaari silang makakuha ng lahat ng ang teksto sa labas ng mga transcription. Kaya maaari mo lamang panatilihin ang pakikipag-usap. Sa kasamaang palad, mayroon akong upang sabihin ito sa iyo. Sorry, ngunit - MAG-AARAL: Iyon ay pinong. Para sa int i = 0 Jason HIRSCHHORN: Para sa int i = 0 MAG-AARAL: ako mas mababa sa - Jason HIRSCHHORN: tuldok-kuwit. MAG-AARAL: Bago ito, maaari naming ilagay ang isang variable kaya kumuha ka ng int pangalan haba? Jason HIRSCHHORN: Oh, hindi mo pag nais na ilagay ang tuldok-kuwit? OK. Kaya kung ano ang gusto mong gawin pagkatapos ng zero? MAG-AARAL: Gusto kong makuha ang string ng haba at s nakatakda na sa isang variable? Jason HIRSCHHORN: OK, kaya paano ko gawin iyon? MAG-AARAL: Kaya gawin mo int haba = Jason HIRSCHHORN: int haba = MAG-AARAL: S-T-R-L-E-N. Jason HIRSCHHORN: S-T-R-L-E-N - MAG-AARAL: Ng s. Bracket. Jason HIRSCHHORN: (s). MAG-AARAL: At pagkatapos ay sa tingin ko mayroon kang upang maglagay ng tuldok-kuwit sa pagitan ng dalawang ints. Jason HIRSCHHORN: Ang isang tuldok-kuwit pagkatapos ng zero? MAG-AARAL: Oo. Pagkatapos maglagay ng semicolon pagkatapos na, at sabihin mo, i mas mababa kaysa sa haba. i mas mababa kaysa sa haba, na ay ang variable. MAG-AARAL: At pagkatapos ay tuldok-kuwit. Jason HIRSCHHORN: tuldok-kuwit. MAG-AARAL: i + +. Jason HIRSCHHORN: i + +. Mayroong para sa aming mga loop. OK, sa loob ng para sa loop. MAG-AARAL: At pagkatapos gawin printf. Jason HIRSCHHORN: Printf. MAG-AARAL: bracket. Jason HIRSCHHORN: panaklong, quotes. MAG-AARAL: panaklong, quote,% c / n. Jason HIRSCHHORN:% c, OK. MAG-AARAL: / n. Jason HIRSCHHORN: / n. MAG-AARAL: Sarado quotes. Jason HIRSCHHORN: Sarado quotes. MAG-AARAL: Comma. Jason HIRSCHHORN: Comma. MAG-AARAL: S. Jason HIRSCHHORN: S. MAG-AARAL: i Bracket. Jason HIRSCHHORN: i Bracket. MAG-AARAL: At pagkatapos ay sarado panaklong. Jason HIRSCHHORN: Sarado panaklong. MAG-AARAL: At pagkatapos ay tuldok-kuwit. Jason HIRSCHHORN: tuldok-kuwit. Hindi kapani-paniwala. Kaya natin i-save ito. Gumawa ng oras ng paggawa. Oh batang lalaki. Mayroon akong isang pares ng mga error. Una error sa linya 11, sinasabi nito, inaasahan expression, at ito ay nagbibigay sa sa akin ng isang error na ang ikalawang int, mayroong error sa. Mayroong ilang mga error sa paligid doon. Ba kahit sino malaman kung ano ang error na? Kurt? MAG-AARAL: Sa tingin ko ito ay dapat na maging isang kuwit at hindi isang tuldok-kuwit. Jason HIRSCHHORN: OK, ang isang kuwit sa halip ng isang tuldok-kuwit. Kaya ay na ang lahat ng kailangan namin upang ayusin? MAG-AARAL: Hindi. Jason HIRSCHHORN: Ano pa huwag kailanganin naming ayusin? MAG-AARAL: Mayroon kaming upang isama string.h. Jason HIRSCHHORN: Isama string.h. Saan ko kailangan upang isama iyon? MAG-AARAL: Parehong lugar ka kabilang ang iba pang mga bagay-bagay, i-right pagkatapos isama stdio.h. Jason HIRSCHHORN: natin makita kung ito ay nagpapatakbo una dahil sa pangkalahatan, gusto ko upang ayusin ang isang bagay muna, at pagkatapos ay magpatakbo ito, at pagkatapos ay makita ang mga error makuha namin. Kaya kami ay pagpunta upang i-clear ang terminal may control n, sabihin huwag gumawa ng spell. Kaya isa pang error sa linya 11. Inaasahang tuldok-kuwit. At pa rin ako nakakakuha ng error sa linyang ito. Kaya hindi ito ay nagbigay sa akin ng isang error na nagsasabing ito ay hindi maunawaan kung ano ang strlen ay, ngunit ito ay nagbibigay sa akin ang error na ito sa line, kaya ano pa ang mali? Markahan? Marcus. MAG-AARAL: Huwag mo na kailangang alisin ang pangalawang int deklarasyon? Jason HIRSCHHORN: Alisin ang pangalawang int. Tayo'y subukan ito. Ngayon i-clear ang terminal. Gumawa ng oras ng paggawa. Nagkaroon ng error. Nang kataon lamang deklarasyon library function na strlen. Kaya ngayon namin makita ang error na iyon. Ano ang gagawin namin kailangan upang isama? MAG-AARAL: String.h. Jason HIRSCHHORN: Isama string.h, # makikita namin isama string.h sa tuktok ng screen. Sabihin save, gumawa ng oras ng paggawa. Ngayon ay pinagsama-sama. Kaya muli, ang mga bagay na aming kailangan upang matandaan linya 12 sa aming para sa loop kapag kami set up ito, int i = 0, haba = strlen (s). Ito ay isang hindi kapani-paniwala diskarte. Ang estilo ng ito ay mahusay, ang disenyo ng mga ito ay mahusay. Maaari naming pumunta sa mga kadahilanan sa ibang pagkakataon, ngunit sa ganitong paraan kailangan mo lamang na tumawag strlen isang beses sa halip ng bawat solong na patakbuhin mo ang sa pamamagitan ng mga loop. Gayunpaman, kailangan mong gumamit ng isang kuwit doon at hindi mo kailangang int muli. Kung naka deklarasyon parehong mga variable magkasama, mo hindi na kailangan ng int muli. At pagkatapos ay kung ikaw ay pagpunta sa gamitin strlen, na kung saan ay isa pang library Ang function na ay hindi kasama sa stdio.h o cs50.h, gumawa Tiyaking isama mo ang string.h. Kurt? MAG-AARAL: Kaya pagkatapos ay kung hindi mo kailangang sabihin kung anong uri haba ay, gumagana na ibig sabihin nito ay upang maging isang int? Hindi ka maaaring magkaroon ng dalawang magkaibang mga uri doon? Jason HIRSCHHORN: Kaya maaari mong may dalawang magkaibang mga uri. Haba ay isang int dito, bagaman. Haba ay isang int dahil ito ay pinaghihiwalay at pagkatapos ay ang parehong bagay. MAG-AARAL: Kaya ito Ipinagpapalagay na ito ang nangyayari upang maging ang parehong bilang unang isa? Jason HIRSCHHORN: Mismong. Hindi namin pagpunta sa gawin ito ngayon, ngunit sa iyo Maaaring kabilang sa dalawang variable sa parehong linya gamit ang isa sa uri ng data. Kaya int x, y ay lumikha dalawang variable. Kaya int x, y, kapag gumawa kami na, ito ay nagbibigay sa sa akin ng isang hindi nagamit na variable x at y dahil hindi namin ginagamit ang mga ito. Kaya walang silbi ang paglalagay bago lamang ang magarbong bilis ng kamay kung hindi mo ginagamit ang isang bagay, gamitin ito. Ngunit tulad ng nakikita mo, lumikha ako x at y sa parehong linya gamit ang isang kuwit. Ito ay ang paglikha ng dalawang integer doon. Kaya oo, lahat-lahat na posible upang lumikha ng dalawang bagay sa parehong linya pinaghiwalay ng kuwit. Natin mapupuksa ang mga, bagaman. Kaya mayroong spell. Salamat guys para sa coding nito para sa amin. Natin gawin itong isa pang beses, patakbuhin ito. Bigyan mo ako ng isang string. [Hindi marinig], ginawa mo ang karamihan sa mga ito. Ano ang string? MAG-AARAL: Hello. Jason HIRSCHHORN: Hello. H-E-L-L-O, ang bawat karakter sa isang linya. Mukhang mahusay. Sabihin patakbuhin itong muli. Laging pagpunta upang suriin para sa mga kaso na sulok. Ano ang isang mahusay na kaso sulok sa pagcheck? MAG-AARAL: Ang isang numero? Jason HIRSCHHORN: Isang numero. Kaya kailangan kong ilagay sa 1, at ito prints out 1. Hindi ito nagtatanong para sa mga titik, kaya't parang katulad ng mga numero ng trabaho. Magandang sulok kaso upang suriin. Ano ang isa pang mahusay na sulok kaso upang suriin? MAG-AARAL: Ang isang walang laman na string. Jason HIRSCHHORN: Hm? MAG-AARAL: Tulad ng isang walang laman na string. Jason HIRSCHHORN: Walang laman na string. Kaya sabihin hindi ilalagay sa kahit ano. At kung ano ay makakakuha ng naka-print out? MAG-AARAL: Wala. Jason HIRSCHHORN: Wala. Tila ito gumagana. Maaari mong subukan ang higit pang mga kaso sulok, ngunit sa pangkalahatan ay numero, isang iba't ibang mga data ay mahusay na subukan, pati na rin ay wala. Wala, zero, negatibo ay palaging mahusay na mga bagay upang subukan at bagay sa iyo Dapat na pagsubok, mga bagay na tiyak naming subukan at para sa Suriin ang 50 ay subukan para sa. Ang anumang mga katanungan tungkol sa spell.c? OK, sabihin ulo pabalik. Mayroon akong isa pang programa para sa iyo guys upang magsulat. Ito ay tinatawag na students.c. Ito ay isang programa na nagtatanong sa gumagamit para sa limang mga pangalan, pagkatapos ay sapalarang pinili at mga print out ang isa sa mga pangalan. Ang program na ito ay isang maliit na bit higit pa kasangkot sa ang huling dalawang mga sinulat namin, kaya bakit hindi kami tumagal ng limang minuto upang Code ito nang paisa-isa, at pagkatapos ay bibigyan namin ng Code ng ito bilang isang grupo. Ang programang ito ay din kasangkot ang ilang mga bagay maaaring hindi mo nakikita dati, kaya kung may tanong ka tungkol sa, kung paano gawin Gagawin ko na, itaas ang iyong kamay. Kukunin ko dumating sa ibabaw at ituro sa iyo sa tamang direksyon. Ngunit din namin ito ginagawa dahil ito ay magiging isang mahusay na paraan upang ipakilala ang ilang mga pakay na nakakalito. Kaya ito gumagana, tama? MAG-AARAL: Oo. Jason HIRSCHHORN: Sa tuwing i-on mo sa isang problema set, may maraming mga paraan upang gawin ito, ngunit ang ilan ay higit pa eleganteng kaysa sa iba. Ipaalam sa amin sumisid in # Include cs50.h. # Isama stdio.h. int pangunahing walang bisa, kulot tirante. Sa loob ng kulot tirante, Mayroon akong dalawang mga komento. Ang unang isa ay, tanungin ang gumagamit para sa limang mga pangalan. Ang ikalawang isa ay, sapalarang pipili ng at i-print out ang isa sa mga pangalan. Kaya natin gawin ang unang isa, magtanong ang mga gumagamit para sa limang mga pangalan. Sino ay humiling ng user para sa limang mga pangalan at maaaring sabihin sa akin kung paano gawin iyon? Tanging dalawang tao ginawa sa unang bahagi. Tatlong tao ang ginawa sa unang bahagi. Apat, lima. Tom, paano mo gawin ito? MAG-AARAL: Gusto mo idedeklara isang string at pagkatapos ay i-pangalan, bracket limang. Jason HIRSCHHORN: String pangalanan limang bracket. Kaya kung ano ito linya ng paggawa, string pangalan bracket limang? MAG-AARAL: Gusto mo idedeklara isang array ng mga string. Jason HIRSCHHORN: Ito ay isang array ng mga string. Gaano karaming mga string ay pagpunta upang magkasya sa dito? MAG-AARAL: Limang. Jason HIRSCHHORN: Limang. Magaling. Kami ay pagpunta sa tumawag ito dahil Pangalan kami ay pagpunta upang makakuha ng maraming mga bago. OK, susunod? MAG-AARAL: At pagkatapos mo magkaroon ng para sa loop - Jason HIRSCHHORN: Para sa loop. MAG-AARAL: - para i = 0. Jason HIRSCHHORN: Para sa (int i = 0. MAG-AARAL: tuldok-kuwit. Jason HIRSCHHORN: tuldok-kuwit. MAG-AARAL: ako mas mababa sa limang. Jason HIRSCHHORN: ako mas mababa sa limang. MAG-AARAL: tuldok-kuwit. Jason HIRSCHHORN: tuldok-kuwit. MAG-AARAL: i + +. Jason HIRSCHHORN: i + +. MAG-AARAL: At pagkatapos ay sarado panaklong. Jason HIRSCHHORN: Sarado panaklong, at pagkatapos ay ang ilang mga kulot tirante. Sa loob ng kulot tirante? MAG-AARAL: At pagkatapos ay printf. Jason HIRSCHHORN: Printf. MAG-AARAL: Bukas panaklong, pangalan ng% d. Jason HIRSCHHORN: Paumanhin? MAG-AARAL: Pangalan. Jason HIRSCHHORN: Pangalan. MAG-AARAL: At pagkatapos na espasyo, at pagkatapos ay% d. Jason HIRSCHHORN: Pangalan, space,% d. MAG-AARAL: At pagkatapos ay / n, at pagkatapos ay sarado. Jason HIRSCHHORN: Kaya pangalan, espasyo, % D / n, closed parentheses. MAG-AARAL: Comma, i + 1. Sorry. Sarado quote, at pagkatapos ay i-comma, i +1. Jason HIRSCHHORN: Sarado quote, kuwit, i +1. MAG-AARAL: Oo. At pagkatapos ay ang susunod na linya - Jason HIRSCHHORN: i + 1. MAG-AARAL: Oo. At pagkatapos ay ang susunod na slide ay i mga pangalan ng bracket. Jason HIRSCHHORN: Susunod na linya ay i mga pangalan ng bracket. MAG-AARAL: = makakuha ng string. Jason HIRSCHHORN: Kunin = - capital G-E-T - string. Oops, paumanhin. MAG-AARAL: Bukas, closed panaklong at pagkatapos - Jason HIRSCHHORN: Bukas, sarado paren. MAG-AARAL: tuldok-kuwit. Jason HIRSCHHORN: tuldok-kuwit. OK, kaya mo initialize ang array ng string, pangalan, at pagkatapos ay pumunta sa pamamagitan ng isang para sa loop, at limang beses i-print ang ilang mga prompt sa gumagamit at pagkatapos ay mag-imbak limang mga string. Ba ang sinuman ay may anumang pagsasaayos na ito? Tom, tingin ko lahat ng tao Sumasang-ayon sa iyo. Mukhang medyo magandang. OK. Bakit mo gagawin i +1, bagaman? MAG-AARAL: Ibig kong sabihin, walang maging, ngunit i +1 upang ito ay pangalan ng isa sa limang pangalanan. Kung hindi man, magiging pangalan zero upang pangalanan ang apat. Jason HIRSCHHORN: Kaya mo ginawa i +1 dahil kung hindi man ay mayroon ito print mo zero sa pamamagitan ng apat dahil na kung paano mga computer sa tingin, ngunit kawani na tao hindi talagang basahin tulad na. Iyon ay isa pang bagay makakakita ka magkakaproblema. Minsan kapag i-print out ka ng isang bagay sa gumagamit, makikita mo nais upang gawin itong isang Medyo prettier, at paggawa i +1 sa kasong ito ay isang paraan upang gawing mas prettier. Ko rin makita limang dalawang beses, string pangalan ay limang, i Mas mababa sa limang. Alam ko kung saan mo nakuha ang lima. Nakakuha ka ito mula sa akin na nagsasabi sa mo limang mga pangalan. Ngunit kung gusto naming gawin ang isang code Medyo mas matatag, isang bagay na namin maaari ko ay wala dito, sa labas ng int, maaari naming gawin ang isang bagay na tulad nito, # Tukuyin, at maaari naming gawin NAMES 5. Kaya talaga, kahit saan sumulat ako kabisera N, capital A, capital M, E kabisera, capital S, na string, ito ay palitan na may 5 sa code. O kaya sabihin lamang tumawag ito - bibigyan namin ng tumawag lamang ito NUMBER. Kaya ako ng pagtukoy sa lahat caps NUMBER upang maging 5. Kaya ngayon kahit saan mayroon akong ang bilang 5, ko maaaring palitan ito ng lahat ng NUMBER caps. At ngayon, kung gusto kong baguhin ang numero ng mga pangalan, ang kailangan ko lang gawin ay ang isang linya, linya apat, kung saan mayroon ako # Tukuyin ang numero 5, palitan na sa 10, o palitan na sa 4. Kapag ang iyong code ay nakakakuha ng mas mahaba, hindi ka pagpunta sa tandaan ang lahat ng mga lugar na iyong ilagay kung gaano karaming mga pangalan na gusto mo, at sa order na para sa iyo hindi upang makaligtaan ang isa, ito ay isang mahusay na paraan upang gawin ito, upang makahanap ng isang bagay up tuktok at pagkatapos lamang gamitin na parirala lahat ng lugar sa kabuuan ng iyong code. Marcus? MAG-AARAL: Iyan ba stylistically ninanais kaysa sa buong mundo ng pagtukoy sa isang pare-pareho n? Jason HIRSCHHORN: Kaya ay na stylistically ginustong kaysa sa buong mundo pagtukoy sa isang pare-pareho n? Kaya mo sinasabi na maaari mong gawin, int numero = 5? MAG-AARAL: Huwag mayroon sila consonants sa C o hindi? Jason HIRSCHHORN: O const - sa pantay. Kaya mo sinasabi na lang isang global variable? MAG-AARAL: Oo. Jason HIRSCHHORN: Kaya stylistically, walang kinakailangang isa pakanan sagutin, ngunit pareho ng mga ito ay mas mahusay na kaysa lamang ibinabato ang mga random mga numero sa kabuuan ng iyong code. Tinatawag namin ang mga ito magic numero. Kapag tumingin ako sa iyong code o kapag kahit sino ay pagbabasa sa pamamagitan nito, sila ay ayaw lamang ang mga random na numero na hindi magkaroon ng kahulugan. Kahit na ang bilang 26, na sa pangkalahatan ay ang bilang ng mga titik sa alpabeto, ito ay mas mahusay na upang tukuyin ang alpabeto up tuktok at i-save ang numero sa 26 na string, kung na saysay. O sa problema magtakda ng isang, sa halip na - muli, wala kaming makipag-usap tungkol sa ito sa ang oras, ngunit sa halip na lamang ang ibinabato sa lahat ng lugar 25 o 10, maaari mong i-save ang numero ng 25 bilang Quarter o 10 bilang Magagamit ng lahat, at na ginagawang mas madali para sa kung sinuman ang pagbabasa sa pamamagitan ng iyong code sa maunawaan kung bakit pinili mo ang numerong iyon. At din para sa iyo, kung sakaling nais upang i-update ang iyong code, ito ay ginagawang isang bit mas matatag na. Oo? MAG-AARAL: ba ang code na ito din ng pagpunta upang maging magagamit para sa amin pagkatapos? Jason HIRSCHHORN: Lahat ng mga code na namin ang nakasulat na sama-sama ay pagpunta sa mai-email sa iyo guys at magagamit. Oo. Kaya tanungin ang user para sa limang mga pangalan. Sapalarang pipili at mag-print isa sa mga pangalan. Sino ginawa ang linyang ito? Ito ang trickiest linya dito. Paumanhin, Tom. Ikaw ginawang isang talagang magandang trabaho, ngunit ang ito ay isang bit trickier. Marcus, sige. MAG-AARAL: Well una, ikaw ay pagpunta sa kailangang isama stdlib.h at time.h. Jason HIRSCHHORN: Kaya mo sinasabi na sa itaas ang, kasama ang dalawang higit pang mga aklatan. Gusto mo sa akin upang isama ang S-T-D-L-I-B tuldok H, Standard Library, at kung ano ay ang iba pang isa? MAG-AARAL: Time.h. Jason HIRSCHHORN: # include time.h. Kaya ang mga ito ay dalawang higit pang mga library. Ipinapalagay ko na namin ngayon ng pagpunta sa gumagamit mga function na ay nakapaloob sa mga dalawang, na ang dahilan kung bakit mo kailangan upang isama ang mga ito? MAG-AARAL: So pagkatapos, una ikaw ay pagpunta sa nais na magsulat srand. Jason HIRSCHHORN: Srand. MAG-AARAL: (oras (0) Jason HIRSCHHORN: Paumanhin. Srand (oras ( MAG-AARAL: 0. Jason HIRSCHHORN: 0. MAG-AARAL:)), tuldok-kuwit. Jason HIRSCHHORN: Isa pang closed paren? Tuldok-kuwit. Pupuntahan ko lang palitan ang iyong zero na may null. Makikita ito gawin tungkol sa mga parehong bagay, ngunit Sa pangkalahatan, makikita mo ang walang bisa, na magpapadala kami makipag-usap tungkol sa linya sa isang segundo. MAG-AARAL: Stylistically mas mahusay? Jason HIRSCHHORN: Sa pangkalahatan, ang mga tao karapatan null, ngunit parehong bagay. MAG-AARAL: At pagkatapos int pangalan. Jason HIRSCHHORN: int pangalan. MAG-AARAL: = Jason HIRSCHHORN: = MAG-AARAL: Rand. Jason HIRSCHHORN: Rand. MAG-AARAL: () Jason HIRSCHHORN: () MAG-AARAL: Modulo numero. Jason HIRSCHHORN: Ano ang modulo? Ang mga character na? Ang porsiyento ng character? MAG-AARAL: Porsyento ng character. Modulo NUMBER na iyong tinukoy up tuktok. Jason HIRSCHHORN: Modulo NUMBER. MAG-AARAL: At pagkatapos ay tuldok-kuwit. Jason HIRSCHHORN: tuldok-kuwit. MAG-AARAL: At pagkatapos ay bagong linya, printf. Jason HIRSCHHORN: Printf. MAG-AARAL: ( Jason HIRSCHHORN: ( MAG-AARAL: " Jason HIRSCHHORN: " MAG-AARAL:% s / n Jason HIRSCHHORN:% s / n MAG-AARAL: " Jason HIRSCHHORN:% s / n " MAG-AARAL: Comma, mga pangalan ng puwang. Jason HIRSCHHORN: Space - MAG-AARAL: Oh, hulaan ko, kung ano ay namin tumawag ito dito? Jason HIRSCHHORN: namin tinatawag itong mga pangalan. MAG-AARAL: Bukas bracket, pangalan. Jason HIRSCHHORN: Bukas bracket, pangalan. MAG-AARAL: Sarado bracket. Jason HIRSCHHORN: Sarado bracket. MAG-AARAL:) Jason HIRSCHHORN:) MAG-AARAL: tuldok-kuwit. Jason HIRSCHHORN: tuldok-kuwit. OK, sabihin i-save. Sabihin gumawa ang code na ito. Mga mag-aaral. Natin patakbuhin ang code na ito. Mga mag-aaral. Hindi. / Mag-aaral. . / Mag-aaral. Pangalan ng isa. Susubukan naming sabihin David. Pangalan ng dalawang, RJ. Pangalan ng tatlo, Rob. Pangalan apat, Lucas. Pangalan ng limang, Joseph. At pagkatapos ay ito prints out Joseph muli. Kaya hayaan mo akong tumakbo ito muli. Hayaan akong gawin ang parehong pangalan. David, RJ, Rob, Lucas, Joseph. At ito ay nagbigay sa akin David oras na ito. Kaya ko ginawa ang parehong bagay, ngunit ito ay nagbigay sa akin ang iba't ibang mga bagay, at iyon dahil, siyempre, hinihiling namin sa para sa isang random na pangalan. Kaya sa tingin ko, batay off ng akin libot sa buong room, na karamihan ng mga tao marahil ang nakuha unang kanan bahagi, set up na array at pagkatapos ay sa pagkuha ng lahat ang mga pangalan. Ako pinag-uusapan ng mga linya 10 sa pamamagitan ng 16. Ngunit linya 18 sa pamamagitan ng 21 ay marahil ilang mga bagay na hindi mo pa nakita bago, kaya natin pumunta sa pamamagitan ng mga. Ang line, srand oras null ay totoo - Paumanhin, sabihin laktawan down na isang linya, ribete (). Na nagbibigay sa iyo ng random na numero, isang random na integer. At kung ikaw pindutin ribete tao, na ng maraming ng ginawa mo - M-A-N espasyo R-A-N-D - sa terminal ganito, M-A-N espasyo R-A-N-D, pindutin ang Enter. Gusto mo magtagpo ang manu-manong at Gusto magagawang basahin ang mga ribete utos output num palsipikado random bytes pagkatapos seeding ang random na numero generator sabay-sabay. Kaya na ang paglalarawan. Iyon ay kung ano ang ibig ribete, ay nagbibigay sa ka ng random na numero kapag tawagan mo na function. Sa kasamaang-palad, ito ay hindi talaga random dahil kung ikaw lang tawagan random nang hindi nakakakuha ito ng ilang mga buto, ang ilang mga panimulang punto, ito ay palaging pumili ang parehong isa at ito ay gumagamit ng isang formula upang matukoy ang susunod na isa. Kaya kung tawagan ka ribete, bibigyan ito lamang magbibigay sa iyo ng parehong bagay. Magiging napaka-predictable. Ito talaga ay hindi random. Kaya kung ano ang kailangan naming gawin, per ni Marcus tagubilin sa akin, ay binhi ribete may mga ibang bagay, na kung saan ay kung ano ang ang srand function na ginagawa nito. Ito buto ribete may isang bagay ng kaunti pang random kaysa sa parehong bagay, at siya seeding ito sa oras null, na ay, sa pamamagitan lamang ng convention, ang kasalukuyang oras sa segundo. Kaya ka ipagpalagay na ang lahat ng tao ay hindi pagpunta sa patakbuhin ang code na ito sa eksaktong parehong segundo, kaya ito ay isang ligtas na taya oras null ay pagpunta sa maging iba sa tuwing ang code na ito ay tumakbo. Ligtas taya na kaya, srand kalooban binhi ribete isang bagay na may iba't ibang mga araw- solong oras. Kaya sa pamamagitan ng convention, kapag ginagawa namin gusto ang isang random na numero, isulat namin ang linyang ito, srand oras null, upang bigyan kami ng isang mas higit pang mga random na buto, at pagkatapos ay namin tumakbo ribete, na kung saan ay nagbibigay sa amin ng random na numero. Oo? MAG-AARAL: Maaari mong sabihin kung ano ibig sabihin sa iyo sa pamamagitan ng buto? Jason HIRSCHHORN: Buto ng sa - kaya ribete ay pagpunta upang pumili ng ilang mga numero at ito ay pagpunta upang gamitin ang ilang formula upang makakuha ng doon. Kaya ito ay pagpunta sa magsimula sa isang bagay at pagkatapos ay i-on ito sa isang bagay batay off na ng formula. Kung palagi mong bigyan ito ang parehong bagay, palagi itong pagpunta sa i-on ito sa parehong bagay. Kaya na ang unang bagay na sa iyo bigyan ito ay ang binhi. Kaya gusto mong bigyan ito ng isang bagay iba't ibang upang simulan out kasama, at kaya ito ay i-on ito sa isang bagay na naiiba. At pagkatapos ay sa wakas, line 20, % ito ay tinatawag na modulo, at iyon ay nakakalito. Iyan ay isang bagay na ay isang maliit na bit iba't ibang mga dito na hindi mo talaga mayroon sa tunay na buhay matematika. Ngunit mahalagang, kapag kumuha ka ng isang higanteng number at hatiin mo sa C, kung ano ang mangyayari sa ang natitira? MAG-AARAL: Ito ay makakakuha ng pinutol. Jason HIRSCHHORN: Ito ay makakakuha ng pinutol. Kaya 20 na hinati sa 3 ay kung ano? Ano ang ginagawa na bumalik sa mo, 20 na hinati sa 3. Paumanhin, 10 na hinati sa 3. Ano ang ginagawa na bumalik sa iyo? MAG-AARAL: [hindi marinig]. Jason HIRSCHHORN: 10 hinati sa 3 lamang return 3, hindi 3 1 natitira. Kaya kung ano ang 10 modulo 3 returns lamang ang natitira, 1. Kaya kung nais mong malaman kung ano ang 10 na hinati 3 sa pamamagitan ng aktwal na noon ay, ng ginagawa mo gawin 10 na hinati sa 3, gusto mo makuha ang iyong mga 3, at pagkatapos ay gusto mong gawin 10 modulo 3, at nais mong makakuha ng isang 1. Kaya gusto mo mapagtanto na 10 na hinati sa pamamagitan ng 3 ay 3, 1 natitira. At sa linyang ito, ribete maaaring maging anumang integer, mahalagang. Kaya modulo ay nagsasabi, hatiin ito sa pamamagitan ng numero, na kung saan ay sa kasong ito 5. At kung sakaling hatiin sa pamamagitan ng isang numero, ang integer laging may na maging mas mababa sa na numero. Kaya kung nag-divide sa pamamagitan ng isang numero 5, ang natitira ay palaging pagpunta sa maging zero sa pamamagitan ng apat. Iyon lang kung paano matematika ay gumagana out. Kaya ang isang malaking bilang moduloed sa pamamagitan ng isang mas maliit na numero ay laging nagbabalik natitira at ay palaging bumalik sa ilang bilang na mas mababa kaysa sa numero mo hinati. Ba ang sinuman may anumang mga katanungan tungkol sa modulo, dahil ito ay dumating sa napaka, napaka-madaling-magamit na, kaya gusto kong tiyakin Naiintindihan ng lahat ng tao ito? Cool. At nakita natin ang programang ito nagtrabaho. OK, gumagalaw sa. Kaya susunod, kami ay pagpunta sa pumunta sa pag-andar, at kami ay pagpunta sa pumunta sa pamamagitan ng ang natitirang bahagi ng mga bagay-bagay na ito marikit mabilis dahil gusto ko upang makakuha ng sa linya ng command argumento. Kaya function ay mahalagang, bilang na iyong nakita, itim na kahon. Sila ay gumawa ng mga bagay na tinatawag na sa mga parameter, ginagawa nila ang isang bagay sa kanila, alinman sa baguhin ang mga ito o lumikha ng ilang mga epekto, at sa wakas, sila ay dumura isang bagay out, na kung saan ay ang return value. Maaari sinuman ninyo akong bigyan ng isa dahilan bakit gusto naming gamitin ang function? Kahit sino? Isang dahilan kung bakit gusto naming gamitin ang function? Sinuman? Nakita ko ng dalawang kamay. Ano ang isang magandang dahilan? Marcus? MAG-AARAL: Kung mayroon kang tumawag sa parehong tipak ng code nang maraming beses. Jason HIRSCHHORN: OK, kung kailangan mo upang tawagan ang parehong tipak ng Code ng maraming beses. Jeff, ay mayroon ka ng ibang dahilan? MAG-AARAL: Para lang na maaari mong mas mababa code. Jason HIRSCHHORN: Maaari mong code mas mababa. I-right. Kung gusto mong gawin ang isang bagay ng maraming - sa nakaraang code, maaari ba akong magkaroon ng nakasulat makakuha ng string limang beses, ngunit isang para sa loop na ginagawang tumingin nicer at mayroon kang magsulat ng mas kaunting code. Function ay isang katulad na ideya. Kung gusto kong gawin ang parehong bagay ng maraming, ilipat ito sa isang function at tumawag na gumana sa bawat oras. Iyon ay gawin na bagay para sa iyo. Iyon ay isang magandang dahilan upang gamitin ang function. Kaya anatomya ng isang function. Ang isang function na kalooban sa pangkalahatan ganito ang hitsura. Makikita itong magsimula sa ang uri return, pagkatapos ay makakakuha ka ng mga pangalan. Makikita tumagal ang argumento, kung hindi man Kilala bilang ng mga parameter, at sa loob ng mga kulot tirante, bibigyan ka isulat ang iyong code. Nakakita kami ng isang function na ng maraming. Iyon ang pangunahing. Narito ang pangunahing superimposed sa na anatomya ako nagkaroon ng mas maaga. Ano ang int dito mismo maging mahalaga? Ano ang ibig sabihin ng int? Kapag sumulat ako int pangunahing (walang bisa). MAG-AARAL: Return uri? Jason HIRSCHHORN: Paumanhin? MAG-AARAL: Ang return type. Jason HIRSCHHORN: int ay ang bumalik uri, eksakto kanan. Main nagbabalik ng isang int. Ano ang main? MAG-AARAL: Ang function na pangalan. Jason HIRSCHHORN: Main ay ang pangalan ng function. Mismong karapatan. At walang silbi? Ano ay walang bisa sa loob ng panaklong? MAG-AARAL: Hindi ito tumagal anumang mga panlabas na halaga. Jason HIRSCHHORN: Kaya walang bisa - karapatan. Sa loob ng panaklong, inilalagay namin ang mga parameter o ang mga argumento ng function na tumatagal, kung ano ang napupunta sa loob ng itim na kahon. Kapag sumulat ka walang silbi, na iyong sinasabi ito ay tumatagal wala in Kaya int pangunahing nangangahulugang walang bisa pangunahing ni hindi pagsasagawa ng anumang bagay in Sa loob ng kulot tirante, mayroon kaming ilang mga code, at pagkatapos ay namin makita sa dulo bumalik sa zero. Ano ang return zero ibig sabihin nito? Well, usapan natin ang tungkol sa mga uri ng return. Main kailangang bumalik sa isang int. Iyon ay kung ano ang linya na ito ang ipinapakita. Ito ay nagbabalik ng isang int, zero. Siyempre, hindi pa namin nakikita na ng maraming dahil sa programming ang ginagawa namin sa machine ang ginagawa namin at ang compiler ginagamit namin ngayong mga araw na ito, mo hindi na kailangan na linya. Main ay espesyal na sapat na ito nakakaalam kapag naabot mo ang dulo ng pangunahing, lamang bumalik zero kung ang lahat ng bagay nagpunta rin. Sa katunayan, kung ang isang bagay ay hindi pumunta na rin, main ay madalas na bumalik sa ibang bilang signifying na may isang bagay nangyaring mali sa iyong programa. Kaya sa pangkalahatan kapag nakita mo ang code, mo huwag magsulat return zero, ngunit ito ay magandang upang malaman na ito ang nangyayari sa likod ng eksena dahil kailanman isulat mo isa pang uri ng pag-andar, ikaw ay pagpunta sa kailangan upang magsama ng isang return line. Kung sinasabi na pupuntahan ko bumalik sa isang int, kailangan mong sumulat magbalik ng bagay. Kung sinasabi mo walang bisa hanggang dito sa simula, walang bisa pangunahing walang silbi, para sa Halimbawa, pagkatapos ay hindi ito bumabalik kahit ano - walang silbi ang ibig sabihin wala - kaya hindi mo na kailangan na return line. Ngunit mo kailanman isulat ang isang bagay na hindi walang bisa para sa uri ng return, kailangan mong isang linya na nagsasabing balik at ka kailangang maglagay ng isang bagay doon na tumutugma sa uri. Ang anumang mga katanungan tungkol sa na? Sweet. Saklaw. Ito ay isang bagay na namin hinawakan sa pati na rin. Ang bawat variable, pati na alam namin, ay may tiyak na saklaw, at iyon talaga pakikipag-usap tungkol sa kung saan ang mga variable maaari o maaaring hindi na isinangguni. At gusto ko upang sabihin kung ano ang mangyayari sa kulot tirante nananatili sa loob ng kulot tirante. Kaya halimbawa, kung tinitingnan namin ang code na ito, kami ng pagtukoy sa isang global variable sa labas ng pangunahing, isang int, up dito sa itaas. Kami ay pagtawag sa isa pang int sa loob ng isang pangunahing. Mayroon kaming ilang mga mas kulot tirante, at kami ay pagtawag sa isa pang isang int. Mayroon kaming tatlong ng sa code. Ang mga ito ay hindi ang parehong bagay. Lumikha ako ng tatlong natatanging mga variable. Pagkatapos, sa loob ng mga panloob na kulot tirante, sasabihin ko isang = 4. Aling ay isang na pinag-uusapan, ang unang isa, ang pangalawang isa, o sa ikatlong isa? MAG-AARAL: Ang ikatlong isa. Jason HIRSCHHORN: Ito ay pakikipag-usap tungkol sa ikatlong isa. Ang lahat ng mga ay isang aktwal na maaaring maging uusapang tungkol sa partikular na ito Halimbawa sapagkat ang kanilang mga saklaw lahat napupunta sa mga pinakaloob kulot tirante. Gayunpaman, kapag tumawag ka ng mga bagay na ang parehong pangalan, mayroong isang bagay na tinatawag na itinatago. Kaya mo lamang makitungo sa o ayusin o gamitin ang pinakabagong mga variable, o ang isa na pinakamalapit sa iyo. Kaya sa loob dito, ang isang ikatlong ay na pinakamalapit sa na linya, isang = 4, kaya ito nakakaapekto sa ikatlong isa. At sa huling linya, isang = 2, na kung saan ay isang na pinag-uusapan, ang una, ikalawa, o isang ikatlong? MAG-AARAL: Ikalawa. Jason HIRSCHHORN: Ito ay pakikipag-usap tungkol sa isang segundo. Siyempre pa, ang isang ikatlong ay pinakamalapit sa ito sa code, ngunit sa ikatlong isang Hindi umiiral sa labas mga kulot tirante. Sa sandaling kang makakuha sa na closed kulot suhay, ito ay tulad ng ito ay nawala, talaga. Kaya ang tanging dalawang na iyong iniwan ay ang mga unang dalawang, at siyempre, ngayon ito ay pinakamalapit sa ang pangalawang isa. Kaya iyon, isang magandang bagay sa tandaan tungkol sa saklaw. Halimbawa, ako sigurado na nakasalamuha mo ito sa isang gawin habang loop. Kung initialize ng variable sa loob ang ko habang loop at pagkatapos mong subukan upang itong ma-access sa labas, malamang na Nakakuha ng ilang babala tulad ng, ito variable na ay hindi umiiral. Iyon ay dahil sa ang ideya saklaw, na bagay lamang umiiral sa loob ng mga kulot tirante. Kulot tirante ay tulad ng isang higanteng yakapin na ka sa pagbibigay ng iyong code, ay isa pang na paraan upang isipin ang tungkol dito. Kaya ito ay isa pang function, isang bagay para sa iyo guys sa code, hellofunction.c. Kami ay pagpunta upang laktawan na sa ngayon, ngunit ito ay isang bagay Hinihikayat ko sa iyo upang magsanay sa inyong sarili. Sumulat ng isang programa kung saan ang pangunahing tawag isa pang function na out ng mga Kopya ng Pagbati sa user. Lubos itong tumatagal kumusta mundo at abstracting na printf sa isa pang function. Ngunit hindi namin ang pagpunta sa gawin iyon sa ngayon dahil hindi namin magkaroon ng mas maraming oras pakaliwa bilang Gusto ko ang gumusto. Kaya function na deklarasyon. Nasaksihan namin ito bago pati na rin. Kung nais mong magsulat ng isa pang pag-andar, kailangan mong ipaalam sa computer ng alam at pangunahing malaman na ito ay umiiral na. Kaya kung ano kami ay sa itaas main, isulat namin ang return uri, ang pangalan, at ang mga parameter, at pagkatapos ay pababa sa ibaba pangunahing, down na dito, namin talagang kopyahin na linya at pagkatapos ay isulat ang aktwal na code. Kaya sa ganitong paraan, kung tawagan mo ang function na sa main sa tuktok, pangunahing nakakaalam na kumusta na, halimbawa, kung ako ay upang tumawag kumusta, at pagkatapos ay tinitingnan nito sa pagpapatupad ang down sa ibaba. Ano ang mangyayari kung hindi ko isama ito line up tuktok, walang bisa kumusta (walang bisa)? Kung hindi ko isama ang linya na ito at pangunahing mga tawag kumusta, ako pagpunta upang makakuha ng isang error. Pupunta ako upang makakuha ng isang error na ito dahil ang tagatala ay hindi alam bagay na ito ay umiiral na. Ito ay katulad sa kung bakit namin # huwag isama cs50.h. Ano ang mahalagang cs50.h ginagawa ay paglalagay makakuha ng string up doon. Ito ay paglalagay makakuha int up doon. Ito ay ilagay ang lahat ng mga function na modelo up bago pangunahing upang kapag tawagan mo ang mga ito sa pangunahing, pangunahing nakakaalam na ang mga bagay na umiiral. Iyon ay kung ano ang mga iyon. H file gawin. At kaya kung ikaw ay pagpunta sa gawin ang iyong sariling function, na kailangan mong tiyakin ilagay mo na prototype up doon. Ang anumang mga katanungan tungkol sa ngayon? Command line argumento. Ito ay kung ano kami ay pagpunta upang tapusin sa, at pagkatapos sana ay bibigyan namin ng lamirain sa ilang pset. Hindi ko alam kung magagawa naming i-lamirain na sa dahil sa oras, ngunit sa iyo guys kung sino dito, at kung ikaw guys nais upang sabihin pagkatapos para sa isang bit, namin Maaari pumunta sa paglipas ng ito sa labas. Ngunit kami ay pagpunta upang tapusin sa linya ng command argumento para sa huling 15 minuto. Kami gising, Michael? Ikaw ay gising? Magandang. Hindi ko alam kung makatulog ka sa iyong mga mata sarado. Mas nakakalito. Command line argumento. Iyon ang isang paraan upang pumasa sa impormasyon sa isang programa. Sa paglaon, makikita namin makaharap ng iba. Ngunit mahalagang, kami ay pagpunta sa itigil Sumusulat int pangunahing (walang bisa) kung gusto naming tumagal ng ilang mga argumento command line. Kami ay pagpunta sa sumulat ito bagay tinatawag int main (int argc, string argv, bracket. Iyon ay nakakalito. Iyon ay isang pulutong ng mga titik na wala sa pantao Ingles, kaya kami ay pagpunta sa unpack ang mga ito ngayon. Argc nakatayo para sa argumento count - at muli, ang lahat ng mga kalooban magiging available online - at iyon ang bilang ng mga argumento. Argv nakatayo para sa argumento vector, at iyon ay ang kanilang sarili na mga argumento. Ito ay isang array ng mga string. Talaga nakakita kami ng isang array ng mga string ng bago ngayon. Nilikha namin ang isa sa mga huling programa namin ma-code. Kaya dito ang isang halimbawa. Isulat ko. / Ohai cs50 seksyon sa aking linya ng command. Argc sa kasong ito ay katumbas ng 3. Argv bracket 0 ay ohai, argv bracket 1 ay cs50, argv bracket 2 ay section. Muli, argc ay ang bilang ng mga argumento, at sa paglalakbay mo up ng isang maliit na bit, lagi naming bilangin sa pangalan ng function na bilang ang unang argumento. Kaya sa kasong ito, mayroong tatlong argumento, ang pangalan ng function na at pagkatapos ay ang dalawang na aking nai-type in Susunod, kami ay pagpunta sa i-save ang mga argumento ang kanilang mga sarili sa argv. At muli, tulad ng nakita natin dati, ginawa namin ito sa huling programa namin ma-code. Maaari mong ilipat sa pamamagitan ng hanay ng mga argv at makakuha ng mga string. Iyon ay mahalagang kung ano ang ginawa namin sa Sa dulo ng aming huling programa. Namin kinuha ang isang random na pangalan at pagkatapos ay nagpunta sa mga pangalan ng kahit anong bracket at naka-print out ang string na matatagpuan doon. Sa tuktok ng lamang ang isang array, dahil string ang kanilang mga sarili ay ang array, bilang uusapang tungkol sa, maaari kang magkaroon ng array ng array, na kung saan ay talaga kung ano argv ay. Ang isang paraan maaari mong isipin ang tungkol ito ang mga hanay at haligi. Maaari kong gumuhit na ngayon. Kaya argv - na hindi binubura. Sabihin gumuhit sa ilalim ohai. Kaya kung ako ay nagsulat sa, ohai cs50 seksyon, Pupunta ako sa truncate na seksyon para sa halimbawang ito. Ngunit mahalagang, ang aking multi-dimensional array, ohai cs50, kami ay pagpunta sa gawin sekta. Kaya dito, maaari ko ma-access - kung ko lang bigyan argv bilang isa - ito ay mali. Ano ang mali sa diagram na ito? MAG-AARAL: Magsimula sa zero. Jason HIRSCHHORN: dapat ito magsimula sa zero. Ang dapat kong marahil ring i-rotate ito, ngunit dahil ko na iginuhit ito sa, ako pagpunta sa iwanan ito sa doon para sa ngayon. Ngunit ito ay nagsisimula sa zero. Iyan ay karapatan. Sorry kung ito ay maliit. Maaari ka guys uri ng makita? Kaya kung gagawin ko argv 0, bibigyan ko makakuha ng lahat ng ohai. Kung gagawin ko argv 1, makikita ako makakakuha ng lahat ng cs50. Kung gagawin ko argv 2, magagawa ko na ang lahat ng mga sekta. Ngunit ngayon, tulad ng sinabi namin, string mga array kanilang mga sarili. Kaya kung ano ang maaari kong gawin ay ang maaari kong ituring ito bilang isang multi-dimensional array, at ako maaaring gawin ang isang bagay kasama ang mga linya ng argv 0, 0, na kung saan ay nagbibigay sa akin lamang ang 0 karakter. Argv 0, 1, na kung saan ay nagbibigay sa akin lamang h. Argv 1, 3, kung saan ay nagbibigay sa akin lamang 0 ito pababa dito sa cs50. Kaya dahil string ang kanilang mga sarili ay array, kami ay paglalagay na sa isa pang array. Kami ngayon ay mayroon ng array array, at kami maaari index sa aming unang array at pagkatapos ay i-index sa aming ikalawang array. At tulad ng iyong inaasahan, ginagawa namin na sa pamamagitan lamang ng paglalagay ng mga dalawang - ginagawa namin ang mga square bracket lamang sa tabi mismo ng isa't isa. Kaya sa halimbawang ito, argv 1 ay cs50 at argv 1, 2, tulad ng sinabi namin, ay 5. Ba ang sinuman may anumang mga katanungan tungkol sa multi-dimensional array? Ikaw guys ang ginagawa ng mga kahanga-hangang. Sweet. Kaya kami ay may isa pang program dito mismo, at ito ay ang huling bagay kami pagpunta sa gawin ngayon. Kaya gusto ko sa iyo upang magsulat ng isang programa na tumatagal ng buong pangalan ng isang user, at dalawa lamang dalawang linya ng command argumento, at sa wakas, mag-print ng pagbati sa user na kasama ng kanilang unang pangalan. Kaya bakit hindi mo tumagal ng tatlo o apat na minuto upang gawin ito, at pagkatapos ay ipagpapatuloy namin sa paglipas ng ito bilang isang grupo, at pagkatapos ay gagamitin namin balutin? At muli, dito, kapag sinabi naming maglaan ng buong pangalan ng user sa bawat ang paglalarawan sa problemang ito, ito ay kailangang maging utos argumento line, hindi gumagamit makakuha ng string. Oo, Marcus? MAG-AARAL: Kaya kapag sinabi mong dalawang utos linya ng argumento, ay na bilang karagdagan sa . ang / tumakbo, o - Jason HIRSCHHORN: Magandang katanungan. Mayroon ba, kabilang ang. / Run, tatlo linya ng command argumento. O kabilang ang. / Personalized, sa kasong ito, dahil iyon ang pangalan ng file na ito. Kaya argc magiging tatlo. Pero gusto ko lang dalawang argumento ibinigay sa programa. Ang dapat kong tukuyin iyon. Magtatagal ako gumawa ng pagbabagong iyon bago ko i-post mga ito at ipadala ang mga ito sa iyo guys. MAG-AARAL: Paano kung ikaw May gitnang pangalan? Jason HIRSCHHORN: Kung mayroon kang isang gitnang pangalan, ikaw ay out ka sana. Sorry. O kung ikaw lamang pumunta sa pamamagitan ng Shakira, ikaw din out ka sana. Oo? MAG-AARAL: Kaya kapag ang mga tao ay walang cs50.h, huwag nilang tukuyin argv bilang pansamantalang trabaho star argv? O kaya naman ay pa rin itong tinatawag na string argv? Jason HIRSCHHORN: Oo. Kaya string, muli, kami mask sa kung ano ang eksakto ang nangyayari doon. Na pupuntahan ay unpacked siguro sa Miyerkules, ngunit sa lalong madaling panahon. Ito ay tulad ng mga gulong pagsasanay. Dahil totoo, ito ay ang parehong bagay. Kaya sabihin tumagal ng isa pang minuto upang programa ito, at pagkatapos ay namin pumunta sa ibabaw ito bilang isang grupo, at pagkatapos ay tulad ng sinabi ko, balutin. At sa tingin ko ang mga ito ay pa rin ng dagdag na kendi, kaya ka guys ay dapat sana ay tumagal na, o mangyaring gawin na. Paumanhin kung ka pa rin ng pagsulat, ngunit gusto kong sumisid sa at kami Maaari tapusin ito nang sama-sama. Kaya isinulat ko in, # include cs50.h, # isama stdio.h. int pangunahing (walang bisa), kulot suhay, kulot suhay, sa loob ng tatlong linya ng pseudocode, tumagal ng buong pangalan ng isang user, at dalawa lamang dalawang linya ng command argumento, mag-print ng pagbati sa user na kasama ng kanilang unang pangalan. Kaya ang unang isa, tumagal buong pangalan ng isang user. Sino ang maaaring makatulong sa akin tumagal buong pangalan ng isang user? Paano ang aking gagawin na bahagi? Ang ibig mo guys gawin iyon unang bahagi? Dalhin ang buong pangalan ng isang user. Well, para sa isa na command line argumento, ano ang dapat kong isulat? Ano ang dapat kong baguhin ang tungkol sa ang aking mga pag-andar na pagpapahayag? MAG-AARAL: Hindi mo gusto ito upang maging walang bisa na ngayon. Jason HIRSCHHORN: Mismong. Hindi ko gusto ito upang maging walang bisa. Ano ang gagawin ko gusto ito upang ma-? MAG-AARAL: int argc. Jason HIRSCHHORN: int argc. MAG-AARAL: String argv. Jason HIRSCHHORN: String argv. MAG-AARAL: Bracket, bracket. Jason HIRSCHHORN: Bracket, bracket. Iyan ay akmang-akma, at iyon talaga paano ako pupunta upang makakuha buong pangalan ng isang user. Ang mga ito ay pagpunta sa ilagay ito sa doon. Kaya isa na tapos na. Kaya ngayon Gusto kong dalawa at lamang dalawang linya ng command argumento. Kaya Noah, kung ano ay isang paraan maaari ko suriin ang bilang ng mga utos linya ng argumento mayroon ako? MAG-AARAL: gawin mo kung ang isang statement. Jason HIRSCHHORN: Kung statement, eksakto. Ano ang gagawin ko gusto bilang ang kundisyon? MAG-AARAL: Kung argc mas malaki kaysa sa 3. Jason HIRSCHHORN: Kung argc ay mas malaki kaysa sa 3. Kung argc mas malaki kaysa sa 3, ano ang gagawin ko? MAG-AARAL: Return 1. Jason HIRSCHHORN: Bumalik 1. Makakaapekto ba na matiyak na mayroon ako dalawa at dalawa lamang? MAG-AARAL: Hindi. Kung argc ay mas malaki sa 3 at mas mababa sa 2. Jason HIRSCHHORN: Kung argc ay mas malaki sa 3 at argc ay mas mababa kaysa 2. Ano ang isang paraan na maaari kong isulat ito sa loob lamang isang linya, o walang gamit na at Boolean operator? MAG-AARAL: Ito ay hindi katumbas ng 2. Jason HIRSCHHORN: Kung argc ay hindi katumbas ng 2. Mismong. Kaya kung argc ay hindi kapantay sa 2, na ay magbibigay sa akin ang programang ito, personalized, kapag tumakbo ko ito, at na ay magbibigay sa akin kung gaano karaming linya ng command argumento? Gaano karaming ako ay suriin para sa? Sorry. Hayaan akong ibahin ang mga salita na. Kung argc = 2, kung gaano karaming mga bagay na ginawa gumagamit ang magsulat sa linya? MAG-AARAL: Isa. Jason HIRSCHHORN: lamang isa. Kaya bago, ikaw ay karapatan, Noah. Ano ang gagawin ko talagang kailangan upang ilagay doon? MAG-AARAL: Iyon ay katumbas ng 3. Jason HIRSCHHORN: Argc ay hindi katumbas ng 3. Gusto kong kasing-halaga ng 3 dahil gusto ko personalized plus ang iba pang dalawang. Kaya kung argc ay hindi katumbas 3, bumalik 1. Bakit sinabi mong bumalik 1? MAG-AARAL: Dahil na Nangangahulugan ito ang mali. Jason HIRSCHHORN: Iyon ay nangangahulugang ito ang mali, at kung ano na ang pagpunta sa gawin? MAG-AARAL: Muling i-prompt ng gumagamit. Jason HIRSCHHORN: Ito ay pagpunta sa mag-quit ang programa, kaya magkakaroon ito upang tumakbo muli, ngunit hindi namin kayong anumang in dito upang magtanong para sa muli ang mga ito. Hindi ko hilingin na. Kaya iyon mismo kanan. Bumalik lang 1 tabla sa programa. Mahusay. At mag-print ng pagbati sa gumagamit na kasama ng kanilang unang pangalan. Paano ko gawin iyon? Anna? MAG-AARAL: Printf. Jason HIRSCHHORN: Printf. MAG-AARAL: (" Jason HIRSCHHORN: ( MAG-AARAL: "kumusta Jason HIRSCHHORN: "kumusta MAG-AARAL:% s Jason HIRSCHHORN:% s MAG-AARAL: / n Jason HIRSCHHORN: / n MAG-AARAL: ", Jason HIRSCHHORN: ", MAG-AARAL: Argv Jason HIRSCHHORN: Paumanhin? MAG-AARAL: Argv Jason HIRSCHHORN: Argv MAG-AARAL: Square bracket 1. Jason HIRSCHHORN: Square bracket? MAG-AARAL: 1. Jason HIRSCHHORN: 1. MAG-AARAL: At) semicolon. Jason HIRSCHHORN:) semicolon. Ipaalam sa amin patakbuhin ito. Gawing personalized. . / Personalized. Ito lang ang mag-quit. Bakit ito quit? MAG-AARAL: Hindi ninyo maglagay ng anumang argumento. Jason HIRSCHHORN: ako ay hindi maglagay ng anumang argumento in Mukhang mahusay. Ikaw guys ipinako ito. Kaya muli, ikaw nagpunta sa argv at ikaw naka-check sa argc simula. Yaong ang dalawang mahalagang mga bagay na dapat tandaan. Kaya sa aming mga huling dalawang minuto bago namin umalis, hindi namin makuha sa pset dalawa, ngunit tulad ng sinabi ko, kung nais mong upang manatili pagkatapos para sa 10 minuto, gagawin ko siya masaya na pumunta sa paglipas ng sa iyo guys ang logic para sa mga hanay ng mga problema. Nagkaroon kami ng maraming upang masakop ngayon kaya hindi ako makapunta sa mga ito. Sa pangkalahatan, gusto kong isama na sa dulo. Kaya kung nais mong dumikit sa paligid, dumikit sa paligid para sa 10 minuto. Susubukan naming gawin iyon. Pagkatapos, tulad ng nabanggit ko sa simula, pset zero at isa, aasikasuhin namin na feedback sa iyo sa lalong lalong madaling panahon. Ang layunin ay upang makakuha ng isa pset feedback, ang mga komento bahagi, bago pset dalawa ay dapat bayaran. Kaya kung gumawa ka ng ilang mga pagkakamali o stylistically, mga bagay na maaaring maging mas mahusay, magkakaroon ka ng impormasyon na iyon kaya mo ay hindi gawin ang parehong bagay sa pset dalawa. At pagkatapos ay sa hinaharap, makakakuha ka ng lahat ng iyong pset feedback at mga komento bumalik bago ang isa ay dapat bayaran. Panghuli, kung maaari kong ilagay sa isa pang plug para sa mga puna. Ito ang iyong unang seksyon. Iyon ay ang aking unang seksyon pagtuturo sa taong ito. Pumunta doon. Sumulat ng mga bagay-bagay, mabuti at masama, at ako ay gamitin ito upang gumawa ng mga seksyon ng mas mahusay na susunod na pagkakataon. At huli, muli, kung kailangan mo anumang bagay, ipaalam sa akin. Ako ay higit pa sa masaya na tulungan ka guys. Kung gusto mo lang kendi, ako Magkakaroon ng dagdag na kendi. Ikinagagalak kong dalhin ito sa iyo. Ito ay magiging isang kamangha-manghang mga kurso. Ito ay isa sa, kung hindi ang aking mga paboritong Siyempre, ko na kinuha sa aking buong buhay, at Umaasa ako na ito ay magiging na kahanga-hanga para sa iyo. Kaya gusto kong gawin ang lahat sa aking kapangyarihan upang gawin itong na kasindak-sindak para sa iyo. Pupunta ako sa nagpapadala ng email kung ikaw ay sa aking mga seksyon o Noah, at pagpunta sa subukan at iskedyul sa bawat isa sa ka guys isang oras na mag-check in sa ibabaw ng susunod na dalawang linggo upang maaari ba akong makakuha ng kahulugan ng kung ano ang iyong background sa CS ay, at ito ay din makatulong sa akin maiangkop ang mga mga seksyon upang mas mahusay na angkop sa iyong mga pangangailangan. Kaya na kung ano ang Mayroon akong may linya up. Muli, makikita ko bang makita ka sa labas kung gusto mong maging doon. Ito ay dalawang linggo seksyon. Salamat guys kaya magkano.