[Musika sa pag-play] Allison BUCHHOLTZ-AU: Uy lahat. Maligayang pagdating sa iyong unang opisyal na seksyon CS50. Bilang maaari mong, tingnan ito seksyon CS50-tulad ng, lamang upang makuha ang aming mga agenda para sa araw na ito. Kaya, sino ako, bilang ako sigurado lahat naka-iisip. Ako ang iyong tf. Hindi ako lamang ang isang random na mag-aaral sino ang gumagaya sa iyong tf. At ako pagpunta sa pumunta sa pamamagitan ng uri ng mayroon na seksyon ay dumaloy, mga inaasahan na mayroon kami, mapagkukunan, kaya sa at iba pa. Kami ay pagpunta sa makipag-usap tungkol sa array, ASCII -andar, mga argumento command-line, at ito ay hindi sa dito, ngunit Ako ay din pagtulong mo uri ng makaisip ang inyong susunod na pset para sa linggong ito. Aling Sigurado akong ikaw Pinahahalagahan lahat. Kaya, question-- muna kung sino ako, bukod sa iyong masayang-masaya tf dito. Ako Alison Buchholtz-Au. Ito ang aking pangalawang taon TFing CS50. Din ako tf CS51 sa Spring. Maaaring makita mo ulit doon kung ikaw ay magpapasiyang kumuha ito. Sa tingin ko rin ang isang PAF, sa gayon ang anumang Freshmen-- at kung ikaw ay hindi isang presman, ito ang aking ikatlong taon bilang isang pagpapayo sa kapwa. Ako masyadong mahusay na dalubhasa sa pagpapayo mo sa buhay at mga kurso sa loob ng CS at hindi sa loob ng CS. Isa akong Computer Science Concentrator. Ako ay isang senior sa Adams House, pinakamahusay na bahay. At bago ako lumipat sa CS aking sopomor Spring, Ako ay tunay na isang biomedical engineer. Ako ay pagpunta sa pumunta sa Med paaralan. Ako ay magiging isang trauma siruhano. At na may ganap na nagbago mula noong kinuha ko CS50. Kinuha ko ang kurso aking sopomor Taglagas. Ito ay ang aking unang panimula sa CS kailanman. Ako ay isa sa mga 78% ng sa iyo kung sino ay zero karanasan pagdating sa, at ito ganap na nagbago ng aking buhay. At ngayon ako nagtatrabaho sa Microsoft, at ang iyong mga kaibig-ibig tf. At CS50 ay marahil isa sa mga pinakamahusay na karanasan na nagkaroon ako dito sa Harvard-- parehong paglalaan ng klase at nagagawang makatulong magturo mga mag-aaral na tulad mo. Kaya ako ay talagang nagaganyak na ikaw ay ang lahat dito. Sa kasong ka dumating sa late na, may kendi, na dapat mong huwag mag libreng darating mang-agaw, o magpadala ng ibang tao sa grab ito para sa iyo. OK. Hindi ko nais na makakainan na iyon. Ang aking kuwarto ay may sapat na tsokolate, kaya Dapat y'all subukan at tapusin iyon. Alam ko mayroong 100 piraso, ngunit tulad ng, 04:00 sa Lunes, Sa palagay ko ay maaaring gamitin sa lahat ng asukal. Kaya lahat na mga opisyal sa aking seksyon dapat nakuha ng isang email mula sa akin sa aking numero ng telepono, email address-- huwag mag-atubiling idagdag mo ako sa Gchat, huwag mag-atubiling idagdag mo ako sa Facebook, at din para sa natitirang bahagi ng sa iyo, Maaari mong i-email sa akin dito mismo. Mayroong dalawang H ni. Palaging gumagana sa lahat ng tao tulad ng dalawa o dalawang C ni L's. Dalawang sa huling pangalan H. Kung hindi man ito ay pagpunta sa bounce, at Hindi ako pupunta upang makuha ang iyong email. Kaya huwag mag-atubili na mag-email sa akin, -ugnay sa akin sa anumang oras. Maaaring hindi ako makabalik sa sa iyo sa loob ng 24 minuto, ngunit nangangako ako upang makabalik sa iyo sa loob ng 24 na oras. Kung tumawag ka sa akin kalahating oras bago ang iyong pset ay dapat bayaran, na tulad mo pagiging, Wala akong palagay kung ano ang ako paggawa Allison. Tulungan akong. Pupunta ako sa kalmado ka pababa, ngunit sa pagtatapos ng araw, kung gumagamit ka ng pagtawag sa akin kalahating oras bago ang iyong pset ay dahil sa walang nakasulat, Pupunta ako upang maging parang, na rin, siguro Panahon na upang gamitin ang na late araw. Kaya ako ay tumugon sa lahat ng iyong mga mga kahilingan sa isang napaka-napapanahong paraan. Aking telepono ay karaniwang naka-attach sa aking mga kamay. Karaniwang kong tumugon magkano mas mabilis kaysa sa 24 na oras, ngunit maaari ko lamang garantiya 24 oras na tugon. Lahat ng karapatan. Kaya kung bakit hindi namin dito? Gayundin, kung mayroon kang mga tanong sa anumang oras, mangyaring ipaalam sa akin. Makipag-usap ko ng maraming. Makipag-usap ko mabilis, ngunit mangyaring huwag mag-atubiling makakagambala sa akin. Nagbibigay ito sa akin paghinga room pati na rin. Kaya seksyon ay isang pagkakataon para sa atin na talagang lamang dive sa, makakuha ng ilang mga hands-on na karanasan, upang pumunta sa pamamagitan ng mga paksa na aming nabanggit sa klase o sa mga materyales sa pag-aaral na Inirerekumenda namin sa iyo guys online. At kami talaga pumunta sa pamamagitan ng ang ilan sa mga mapagkukunan sa ilang sandali. Kaya ang ilang mga tala sa suporta seksyon. CS50-- isa sa mga bagay na ginagawang ito ang isa sa aking mga paboritong mga klase ay ang pakiramdam na ikaw ay hindi kailanman nag-iisa. Mayroon kaming mga kawani ng higit sa 100 mga taong dito upang makatulong sa iyo. Mayroon kaming oras ng opisina Lunes hanggang Huwebes. Kaya may mga kaya maraming mga tao na Gustung-gusto ang klase gaya ng gagawin ko at kung sino ba talagang dito dahil gusto nilang maging dito. Karamihan sa atin ay mga mag-aaral, at ito ay tulad ng ikalimang klase sa karagdagan upang ang natitirang bahagi ng aming trabaho. At ito ay isang maraming trabaho, ngunit gawin namin ito dahil gustung-gusto namin ito, at talagang gustung-gusto namin upang magturo sa iyo at tulungan ibahagi ang aming pagkasabik para sa paksang ito at class na ito. Kaya mangyaring samantalahin. Halika at mag-usap sa amin. Nakakuha ako nag-iisa kapag ang aking mga mag-aaral huwag makipag-usap sa akin, kaya kung gusto mo, dumating hang out kasama ko. Makikita itong maging mahusay. Kaya seksyon ay malinaw naman isa sa iyong mga pinakamalaking bagay. Susubukan naming pumunta sa pamamagitan ng mga bagay na natutunan mo sa aralin, gawin ang ilang mga maikling mga halimbawa kapag mayroon kaming oras, at sa pangkalahatan uri ng makakuha ng ideya tungkol sa mga bagay dapat kang pag-iisip mga para-set ang iyong problema. Shorts-- kung gaano karaming mga tao ang aktwal na pinanood ang video mula sa iyong mga scratch maikling? Sinuman makilala sa akin? Kaya mga napaka mahusay. Dapat mo talagang panoorin ang mga iyon. Isang maraming trabaho Nailagay ang mga ito. At sila lang ang naka-sinadya upang maging kumagat-size na piraso para sa iyo upang mapanood lamang para sa tatlo o apat na minuto at makakuha ng mas mahusay na pang-unawa ng isang konsepto. Maglakad throughs-- kung paano maraming tao ang nanood ang walk-through para sa nakaraang mga bago? Zamyla ay kamangha-manghang, tama? Tulad ng, nais kong ako ay minsan Zamyla. Kaya nga gamitin ang iyong walk-through. Ay siya masira ito down sa piraso maliit, kumagat-laki. At kapag mayroon kang mga malalaking pagtutukoy mula sa iyong mga hanay ng problema, ito ay magiging talagang mahalaga upang magawang mahanap lamang sa isang lugar upang simulan at gumagana nang mabagal sa pamamagitan nito. Ang lahat ng mga karapatan, mayroon rin kaming Study50, na ay study50.harvard.edu, naniniwala ako. Maaari mo lamang ang Google pag-aaral, at sasabihin nito makabuo. Ito ay isa sa mga pinakamahusay na mga mapagkukunan na mayroon kami. Ito ay PowerPoints na may mga tala at magsagawa ng mga problema para sa iyo may mga solusyon na sa iyo aktwal na maaaring maglakad sa pamamagitan ng. Kaya kung nais mo ang higit pang mga kasanayan, higit sa gawin namin sa mga seksyon o higit pa kaysa sa iyong mga hanay ng problema, ito ay talagang isang lugar Hinihikayat kita na pumunta. Ito ay itinayo noong nakaraang tag-araw sa pamamagitan ng ilan sa aking mga talagang magandang mga kaibigan. At ito ay kamangha-manghang. Sa katunayan, maraming mga slide na ako mag-i-paggamit para sa Seksiyon ay darating mula sa Study50. Kaya ng maraming mga TFs gamitin ito. At sa wakas, bilang ako Binanggit, oras ng opisina. Kung nagkakaproblema ka sa pag sa araling-bahay, ikaw ay nagkakaproblema ka sa isang konsepto, dumating sa oras ng opisina. Pumunta sa unang bahagi ng linggo kung maaari. Kumuha out sa patyo sa loob, dahil ito ay uri ng malayo. Walang sinuman ang may gusto sa maglakad out doon. Ngunit ito ay sa iyong kalamangan, dahil pagkatapos ikaw ay pagpunta sa lahat ng mga TFs, [Hindi marinig] ipinaloob mo. At lalo na ngayon, lamang ng tip, Huwebes napaka chill ngayon sa Mather dahil ang iyong psets ay dahil sa Huwebes. At alam Nais ni na gamitin ang iyong mga late na araw pa. Kaya kung nagkakaproblema ka sa problema sa mga konsepto, mayroong maraming mga TFs na ay doon upang makatulong sa iyo. Kaya dumating out sa Mather sa Huwebes. Kung gusto mong makita sa akin, Pupunta ako sa maging doon. Karaniwang ako ng paggawa ng aking sariling mga araling-bahay, dahil walang sinuman ang gusto ng aking tulong. Kaya dumating makita sa amin. Kilalanin amin nang kalahating. Kaya kung gaano karaming mga tao ang nag-aral panayam o napanood na ito online? Gaano karaming tao ang nagpunta sa sobrang seksyon noong nakaraang linggo? Ayos. Iyon ay talagang isang patas na bilang. Paano marami sa inyo na basahin ang iyong spec para sa linggong ito, para sa iyong pset? Ooh, ako maipagmamalaki ng sa iyo guys! Higit pang mga candy para sa y'all. Mahusay, kaya kung ano ang ibig sabihin namin "Matugunan sa amin nang kalahating," ay seksyong iyon ay talagang lamang magiging sobrang kapaki-pakinabang sa iyo kung napunta ka sa pagkakaroon ng basahin ang iyong pagtutukoy para sa iyong pset. Dahil kapag pumunta ko sa pamamagitan ng isang pangkalahatang-ideya ng bagay na dapat mong hinahanap out para sa, hindi ito pagpunta sa gawin ng maraming kahulugan kung hindi alam kung ano ang nakatakda ang iyong problema Mawawala na humihiling sa iyo na gawin. Kung hindi mo dumating sa seksyon, nang walang alinlangan Hindi ko maaaring maging kapaki-pakinabang na sa iyo. Hindi ako pupunta sa dalhin ito personal na kung hindi mo dumating sa aking seksyon ngayon, ngunit tiyak dapat sa iyo. Kung hindi mo maaaring, panoorin ang mga ito sa online. Ang mga ito ay may para sa isang dahilan. Ay Mine maging doon. Tulad ng napansin mo, na kami ay naitala, kaya makikita ito doon para sa iyo guys. Pati na rin, ng pagpunta sa lectures-- na malinaw naman kung saan nakukuha mo ang magsimula ng iyong materyal dito. Kaya ako ay talagang subukan at makatulong sa iyo ng mas maraming hangga't makakaya ko, ngunit maaari ko lamang natutugunan mo sa ngayon. Mayroon kang sa uri ng matugunan sa amin nang kalahating doon. Grading-- kaya, ang lahat ng iyo na nakakuha ng isang email mula sa akin, ikaw ay aking opisyal na seksyon. Ako grading iyong psets. At gusto ko lang sabihin, isang bagay na Dapat mo ba talagang bigyang-pansin ang mga komento. Ang mga komento ay madalas na mas kapaki-pakinabang kaysa sa aktwal na iskor bigyan kami sa iyo. At ang mga komento ay talagang kung saan gagastusin ko ng maraming ng aking mga oras kapag ako ay grading. Kaya gusto kong pinahahalagahan ito kung basahin mo ang mga ito. At ang mga ito ay aktwal na kung paano ka ng pagpunta upang matuto nang higit pa tungkol sa disenyo at estilo at mga bagay na may maliit na mas mababa cut at dry. Kaya ba talagang bigyang-pansin sa mga komento. Kung mayroon kang mga tanong tungkol sa mga ito, o katanungan tungkol sa iyong iskor, mangyaring makipag-usap sa akin alinman sa bago seksyon, Makikita ko marahil ay nakikipag-hang-out sa lobby, o pagkatapos. Kung gusto mong mag-iskedyul isa-sa-isang pulong tungkol sa kung paano maaari kang makatulong na mapabuti mamaya mga hanay ng problema, ipaalam lamang sa akin. At pagkatapos lamang ng ilang ng mga tip para sa iyo guys. Kaya isa sa pinakamalaking bagay Laging ko ang stress sa aking seksyon kapag tapos ka sa pag-aaral kung paano i-code isulat ang mga bagay out sa papel muna. Kung mayroon kang isang plano ng laro para sa kung saan kailangan ng iyong code upang pumunta at kung ano ang kailangan nito upang gawin at ito ay pinaghiwa-hiwalay sa maliit na piraso ng pseudocode code na naisulat out, ka ng pagpunta sa mas mababa malamang na gumawa ng mga syntax error o lumikha ng isang kung loop na Walang isang tao. Kung alam mo kung saan ikaw ay pagpunta sa pangkalahatan, ikaw ay mas malamang na gumawa ng mga maliliit na pagkakamali na minsan ay magdadala sa iyo oras upang ayusin, dahil ikaw ay tulad, kung saan ako ay nawawala ko ang bracket? Sa na tala, mangyaring gamitin Style50. Lalo na kapag ikaw ay pagpunta sa oras ng opisina, kung ang iyong code ay ang lahat ng lumipat sa ibabaw sa isang gilid, patakaran ng kurso maaari naming sabihin, ayusin ito nang sa gayon ay mukhang Style50 sabi dapat ito, at pagkatapos ay tutulungan ka namin. Kaya ito ay gawing mas madali ang iyong buhay. Ito gawing mas madali ang ating buhay. Ang bawat tao'y ay mas masaya. Ang bawat tao'y nakakakuha ng mas mahusay na mga grado. Ay hindi na kung ano ang namin ang lahat ng gusto? Kaya magsulat ng mga bagay out sa papel bago kailanman pindutin mo ang iyong computer. Makipag-usap bagay out sa isang mataas na antas, at tiyakin na alam mo kung saan ka pupunta. At kung hindi ka sigurado, umupo ka sa isang tao at maglakad ang mga ito sa pamamagitan ng hakbang-hakbang kung ano ang iyong code ay dapat gawin. At siyam na beses sa 10, ikaw ay tulad ng, oh, nakalimutan ko ang isang kung kondisyon o nakalimutan ko may semicolon dito o Ako sa pag-update variable na mali ito. Kaya mga ang aking mga tip para sa tagumpay. Kaya dahil tungkol sa kalahati ng kang tumingin tulad mo dinaluhan sobrang seksyon, Lamang ako ng pagpunta sa napaka sa madaling sabi pumunta sa pamamagitan ng mga loop, na kung saan ay hindi sa aming orihinal na agenda. Ngunit ang mga ito ay talagang mahalaga. At kaya ako pagpunta sa uri ng bilis sa pamamagitan ng mga bago namin makuha sa aming mga aktwal na seksyon. Bago gawin ko na, may mga anumang questions-- logistically, personal, ay mayroong anumang bagay na gusto mo malaman tungkol sa akin o tungkol sa seksyon o klase sa pangkalahatan? Lahat ng magandang? OK, cool. Kaibig-ibig. Kaya loops-- mo guys dapat lahat makilala ang mga piraso mula sa simula. Kaya loop ay isa lamang lamang isang paraan para sa amin upang gawin ang isang bagay ilang bilang ng beses, ang ilang mga paulit-ulit batay sa ilang mga kondisyon na pagkilos. Kaya mayroon kaming tatlong iba't ibang mga uri. Mayroon kaming para sa loop, habang, at gawin-habang. Kaya para loops-- mayroon kaming lamang ng isang napaka pangkalahatang layout dito ng isang para sa loop. At ito ay mahusay para sa kapag alam mo kung paano maraming beses ng isang bagay na kailangang isagawa. Kapag makipag-usap namin tungkol sa iba pang mga loop, ikaw makita kung bakit na ang isang mahalagang pagkakaiba. Ngunit para sa mga loop ay para sa isang bagay na set. Alam mo maaari kang kalkulahin ang bilang o alam mo ang dami ng beses mo Gusto ito paulit-ulit sa simula. Kaya kung makita mo rito, namin magkaroon ng isang pangkalahatang lamang uri balangkas ng balangkas para sa isang para sa loop dito. Kaya para sa pag-pagsisimula, ito ay kung saan ang iyong mga variable ay nasimulan. Sa Mario, ako sigurado ka guys ginawa isang bagay tulad ng int i katumbas ng 0. Iyon ay kung saan na ang mangyayari sa asul. Mayroon kang ang iyong mga kondisyon, na ay kung ano ang naka-check sa bawat oras. Kung ang kundisyong ito ay totoo, pagkatapos ay ang natitirang bahagi ng code executes. Pagkatapos ay makikita ito patakbuhin again-- at magtanong. At pagkatapos ay mayroon kaming i-update, kung saan naka-update ng iyong mga variable. Kaya, muli, na may tulad Mario, ako sigurado ginawa mo guys isang bagay tulad ng i plus plus. Kaya sa tuwing loop Tumakbo, i Kaka-update kaya na kapag tayo ay pagsuri ito kumpara ang ilang mga kalagayan, ito ay nagbabago. Dahil kung mo lamang May isang static na variable, kung executes ito ang unang pagkakataon, lamang ng pagpunta upang maisagawa walang hanggan. Kaya ikaw ay may upang matiyak na -update nang maayos ang iyong variable. At mayroon din kaming lamang visual na representasyon doon. Ang bawat tao'y magandang? Para sa mga loop. Dapat na nakita ang mga ito sa iyong pset. Ayos. Kaya narito lamang ng isang madaling halimbawa. I-print na ito ay CS50! 10 beses. At kaya may namin ang aming pagsisimula, tulad ng nakikita namin doon, sa int i ay katumbas ng 0, para i Mababa sa 10, at i plus plus. At makikita ito i-print na 10 beses. Kaya habang loops-- habang loop ay mahusay na kapag gumawa ka hindi kinakailangan mayroon na malaman kung gaano karaming beses ito pagpunta upang i-update sa simula. Mayroon kang lamang ng ilang kondisyon na naka-check. At ito ay maaaring maging isang bagay tulad ng while-- ipaalam sa tumagal ang isang halimbawa mula sa iyong pset. Kung Mario, subukan mong -input ng negatibong numero. Mag-right? Ay dapat kang muling i-prompt ng iyong mga user. Kaya maaari mong sabihin, mahusay, kung ang input ng user isang bagay na mas mababa sa zero, muling prompt ang mga ito. At ako sigurado na maaaring mayroon naging isang bagay na ang ilan sa iyo na ginagamit sa iyong code. Kaya ito ay isang simpleng bagay. Mayroon kang habang, ang ilang mga kondisyong iyon ay naka-check sa tuwing pumupunta ang code upang maisagawa. Kung pinag-aaralan ito sa true, patakbuhin namin ito. Kung hindi man hindi namin. At kung ano talaga important-- isang bagay ko isipin na usapan David tungkol sa sa lecture-- ang brace. Anuman sa loob ng brace ay kung ano ang pinaandar. Kung makalimutan mo ang mga brace na itong ibang mapupuntahan lamang upang maging direkta sa linya pagkatapos ng habang ay pinaandar. Kaya kung mayroon kang tatlong mga bagay na dapat mangyari kapag ang kondisyon na sinusuri sa true, at wala kang mga brace, tanging ang ang unang bagay ay pagpunta sa mangyayari. Kaya maging napaka-nababatid ng kung saan mo inilagay ang iyong brace. Kung manatili ka sa Style50, ito ay talagang makakatulong sa iyo. Ayos. Kaya ito ay isang countdown mula 10 hanggang zero. At tulad ng nakikita mo dito, initialize namin ang ilang mga sagot sa labas ng ito. Ang isang bagay na naiiba ay Hindi namin Sinisimulan ang aming mga variable sa loob ng aming habang loop. Ito ay nasimulan sa labas ng ito. Nang simple lamang ng paglalagay namin ang kondisyon sa para sa aming habang. Kaya sa kasong ito, habang count ay mas mataas sa zero. At i-print out namin kung ano ang aming count ay, at pagkatapos ng pagbawas namin ang aming mga variable. At na rin ng isa pang bagay na mapapansin. Ang aming mga pag-update ay hindi mangyayari sa loob ng ang unang bahagi ng habang loop. Ito ay talagang nangyari sa loob ng ang brace, ang katawan ng iyong teksto. Kaya ko-habang loops-- gawin-habang loop ay mahusay para sa pagpapatunay ng user. Kaya maaaring magkaroon ng ilan sa inyo Ginagamit din ito sa iyong pset. Maaari mong sabihin, gawin, gaya ng, tanungin ang user para sa input. At pagkatapos ay habang, tulad ng, ang -input ay mas mababa kaysa sa ilang numero. Kaya para sa isang tahasang kaso sa Mario, ito ay magiging gawin printf, ipasok ang isang integer, at pagkatapos ay ilang mga integer ay katumbas ng getint. At pagkatapos nito idedetalye talaga isagawa muna ang code na iyon. Makikita mo talagang mayroon isang uri ng integer. At pagkatapos ay maaari mong sabihin, habang na integer ay mas mababa sa zero. Kaya kung ano ang pagpunta sa gawin ay ito pagpunta sa nagsasagawa ng hindi bababa sa isang beses. Ito ay pagpunta upang suriin ang kalagayan. Kung ang kalagayan ay Totoo, ito ay tumakbo muli. Kaya gawin-habang loop ay mahusay para sa pagpapatunay ng gumagamit, dahil alam mo ang code Mawawala upang maisagawa ng hindi bababa sa isang beses, samantalang sa habang loop, hindi ka katiyakan na ito pagpunta sa isagawa nang isang beses. Ito ay pagpunta upang suriin ang kundisyon una at pagkatapos ay magpasya upang maisagawa ito, habang ang isang do-habang habilin isagawa muna ang code at pagkatapos ay suriin upang makita kung ang kailangan mong ulitin ito. Sinusuportahan ba na pagtatangi magkaroon ng kahulugan sa lahat? OK. Ayos. Kaya sa kasong ito, ito ay uri ng kung ano ang pinag-uusapan ng ko tungkol sa, ito muling senyas hanggang sa iyo makakuha ng isang positibong numero. Kaya alam namin na printf "Magpasok ng isang positibong numero" at aktwal na humihingi na -input ang mangyayari ng hindi bababa sa isang beses. Kung ang gumagamit ay masama at pinapanatili pagpasok ng isang negatibong bilang, na alam ng kung gaano karaming beses ito ay maisagawa. Ngunit ang code na ito ay garantisadong upang maisagawa ng hindi bababa sa isang beses. At iyon ang dahilan kung bakit ito ay mahusay na para sa pagpapatunay ng pag-input. At gagamitin mo na tila. Ang lahat ng mga karapatan, anumang mga katanungan sa ngayon? Humihingi kami ng lahat ng magandang? Ako ay masyadong mabilis ako ng pakikipag-usap? Humihingi kami ng magandang? OK. Kasindak-sindak Kaya kami ng pagpunta sa sige at makipag-usap tungkol sa array. Ayos. Kaya array ay isa lamang mga istraktura ng data lamang na nagbibigay-daan sa amin upang mag-imbak bagay ng parehong uri. Kaya kung sakaling mayroon kang isang array, ito ay alinman lamang ng pagpunta sa may ints o ito ay lamang ng pagpunta sa mayroon sa kamay o ito ay lamang ng pagpunta sa mayroon na karakter. Hindi ka pagpunta sa magkaroon ng isang int sa isang pansamantalang trabaho na may float na may double. Ang isang bagay. Ang mga array ay isang laki lamang, o ang mga ito ay isang uri ng lamang. Kaya dito mayroon kaming isang array ng laki tatlong na may tatlong integer sa loob nito. Maaaring kamay, ngunit kami ay pagpunta sa sinasabi nila ints. Kaya isang bagay upang mapagtanto ay na array ay isang hanay laki kapag initialize mo kanila, at sila ay hindi easily-- dahil sa iyo ang lahat ay mas kumportable, dapat mong tingin lamang sa mga iyon bilang hindi ma-extend ang laki. Gayunpaman malaki itinakda mo ang iyong array sa simula, iyon ang laki nito ang nangyayari upang manatili, dahil array ay tuloy-tuloy na mga bloke ng memorya. At kapag nakakuha ka guys sa isang kaunti higit pa ng kung paano memorya ay aktwal na inilatag out sa disk at sa kimpal at ng stack, Makikita ito gumawa ng kaunti pa sa kahulugan. Ngunit maaari mong tingin lamang ng katulad, ito ay lamang ng isang hilera ng mga puwang sa iyong disk. At hindi mo magagarantiya na mayroong magiging libreng puwang pagkatapos nito. Maaari mong simulan ang isang array ng tatlong at pagkatapos ay marahil mo pagsisimula ng isa pang hanay ng mga limang sa ibang pagkakataon, at ito ay matapos na. Kaya kung ikaw ay upang pumunta nakalipas na lugar tatlong sa na unang array, Gusto mo ay sumusulat sa ibabaw ng iba pang bagay. Kaya array are-- para sa iyo guys, lamang palagay sa kanila bilang isang nakapirming laki. Kaya paglikha ng isang array-- na iyong pupuntahan sa kailangan upang gawin ito tila. Kaya sa parehong paraan na kami ay may isang pangkalahatang istraktura para sa aming para sa loop, mayroon kaming magandang pangkalahatang istraktura para sa aming mga array. Dahil ang mga ito ay ng isang uri, lahat ng mga elemento sa isang array ay ng isang uri, kailangan mong i-initialize kung anong uri na. Kaya, tulad ng nakikita mo dito, mayroon kaming isang magandang maliit na uri ng bracket data. Kaya kung namin ang paglikha ng isang int array, na magiging int. Kung namin ang paglikha ng isang pansamantalang trabaho array, ito ay pansamantalang trabaho. Kung namin ang paglikha ng isang string array, ito ay string. At pagkatapos ay ang pangalan ng iyong array, kahit anong nais mong ito upang maging. Kaya marahil ito ay mga marka ng pagsubok o siguro ito ay mag-aaral o marahil ito ay kendi. Anuman kang magpasya upang pangalanan ang iyong array, na kung ano ang makikita itong maging. At pagkatapos ay sa mga bracket, ikaw magkaroon ng laki na gusto mo. Kaya, ay ang pag-iimbak kami ng 10 mga mag-aaral o ay namin ang pag-iimbak ng 15 mga uri ng kendi? Ano ang hindi. Kaya sa aming mga halimbawa dito, kami ay lumikha ng isang array ng laki ng tatlo, kung saan mo guys makita dito mismo sa kanan. At noong una naming initialize ito, ang lahat ay naka-set sa zero. Kaya ito ay naisip lamang ng tulad ng isang blangko ang talaan ng mga kandidato. Mayroon kaming lahat ng mga puwang, mayroon kaming lahat mga kahon na maaari kaming maglagay ng aming mga data sa, ngunit ang mga ito ay lamang blangko sa ngayon. Kaya kung gusto naming aktwal magtalaga sa kanila ng mga halagang ito, gawin namin ito sa lalong karapatan sa ilalim dito ay nagpapakita. Kaya mayroon kang anumang ang pangalan ng iyong array ay at pagkatapos ay kung ano ang index na gusto mo. Kaya ang index lamang ay tumutukoy sa, tulad ng, kung ano ang puwang kaming naghahanap sa. At isang mahalagang bagay na napansin ay ang array ay zero-index. Kaya kung nais naming unang puwang sa memorya ng sa aming mga array, ito ay magiging zero. Kung gusto namin ang pangalawang, ito ay maging isa. Kung gusto namin ang mga third, magkakaroon ito ng dalawang. Kaya sa at iba pa. Alin ang din kung bakit, conventionally, kapag ginagawa namin para sa loops-- ako sigurado ka guys ay nagtataka, bakit magsisimulang namin sa 0 kumpara sa 1? At iyon ay dahil kapag lumipat kami sa paggamit ng array, mapa ito nang tama. Kaya kung nais mong umulit sa isang array, ito Pinapadali ng maraming higit pang mga kahulugan sa gawin i ay katumbas ng 0, dahil kami Alam na tumutugma sa unang puwesto sa memory. Ang bawat tao'y may mahusay na? Ayos. At pagkatapos ay sa ibaba dito ay lamang isa pang paraan upang simulan ang isang array. Mayroon ka pa rin sa iyong uri ng data at ang pangalan, ngunit sa halip na aktwal na paglalagay ng laki sa doon, maaari mo lamang gawin walang laman bracket. At pagkatapos ay may mga kulot brace sa ibaba, maaari kang maglagay ng lang ang data na na nais mong pinaghihiwalay ng mga kuwit. At na Awtomatikong sabihin, OK, nakikita ko na mayroon kang tatlong bagay sa mga brace. Kaya alam ko na kailangan kong maglaan ng tatlo bloke ng memorya at pagkatapos ay i-iimbak ang mga iyon. Kaya ang unang bersyon na maaari mong gamitin kung gumagamit ka na humihiling sa iyong mga gumagamit upang pag-input mga halaga sa gayon ay maaari kang umulit sa pamamagitan ng array at ask-- makakuha ng ilang int sa input mga ito. Kung alam mo ang halaga sa simula pa, ito ay gumagawa ng maraming higit pang mga kahulugan gamitin ang pangalawang paraan. Ngunit sa karamihan ng mga kaso, hindi mo maaaring kilala kung ano ang mga halagang iyon ay magiging. Ayos. Ang anumang iba pang mga tanong? Oo. Kaya sa pag-access elements-- kaya isa ng mga dakilang bagay tungkol sa array ay na ang mga ito ay random access, na nangangahulugan na sa iyo Hindi mo na kailangang hanapin sa bawat bloke. Kung alam mo na nais kung ano ang sa bloke ng dalawa, Maaari mo lang sabihin, ninyo ako i-block ang dalawa. At iyon ang dahilan kung bakit ang mga mga indeks ng mga kaya mahalaga, at iyon ang kung paano namin aktwal na ma-access ang mga ito. Kaya sa kasong ito, bilang nakita natin dati kapag kami ay nagtatalaga ng mga halaga, sa isa bago, nagkaroon kami ng pangalan at ang index gusto naming i-access, i-right? Kaya sa parehong paraan, na ang lahat ng namin gawin upang aktwal na hilahin na ang data. Mayroon kaming ang pangalan at kami Mayroon index na gusto naming. Kaya sa kasong ito, ang para sa loop down na dito sa ibaba, sinuman malaman kung ano ang ginagawa nito, kung ano ang ito i-print? Mmhmm? Mismong. Kaya oo, ito ay lamang iterating sa pamamagitan ng. i ay katumbas ng zero-- maaari naming maglakad sa pamamagitan ng code na mabilis lang. i ay katumbas ng zero, i Mababa sa tatlong sa puntong ito, tama? Kaya na sumusuri out. At sabihin namin, OK, i-print f anumang ay nasa temperatura i. i ay zero dito mismo kapag muna namin umulit, kaya tayo pupunta sa unang puwesto, at sabihin namin, OK, 65 ay ang bilang gusto naming upang i-print out. Kaya ito ay i-print ang 65 at pagkatapos ay gawin ang isang bagong linya. ay i-update, kaya mga Kopya 87. -A-update itong muli, at makikita ito i-print 30. Ang bawat tao'y cool? Kahanga-hanga. Lahat ng karapatan. Kaya narito ang uri ng isa bagay na sinasabi ko kung gaano Maaari mong subaybayan marka ng isang tao at bakit gagamitin mo ang unang paraan ng Sinisimulan ito sa halip na ang pangalawang paraan. At ito lamang ang napupunta sa pamamagitan ng. At mapansin mayroon kaming isang sukat ng klase ng 30. At kami Sinisimulan ito array ng ints na ng laki 30. At pagkatapos kami ay iterating sa pamamagitan ng at nagpapaumanhin kami tanungin ang user sa pag-input mga marka para sa bawat isa sa mga at pagkatapos ay nagtatalaga ito sa isang tukoy na lugar sa memory sa isang lugar sa na array. Cool? Ay na magkaroon ng kahulugan sa lahat? Mmhmm? Kaya hashtag tukuyin ang laki ng klase 30 ay isang preprocessor directive, na nangangahulugan lamang gets-- ito mayroon itong gawin tulad ng proseso ng kino-compile. Maaari mong isipin na ito bilang isang global na variable. Ang paraan ginagawa namin ito ay typically-- pinapayagan nito ang iyong code na mas madaling nagbago. Kaya sabihin nating na ang aming mga laki ng klase biglang pupunta 30-15, kung hindi ako ay natukoy ito sa ganitong paraan, nais ko kailangang pumunta sa pamamagitan ng aking buong programa at palitan ang bawat pagkakataon ng 30-15. Ngunit may ito, nakakatanggap ako na baguhin ang isa lugar, at lahat ng iba pa ang mga pagbabago. Kung gusto mo mang gawin isang hash tukuyin sa isang kaso kung saan mo pagpapanatiling naka-track ng ilan itakda ang bilang ng mga puntos para sa isang klase o gumagamit ka ng numero na gagamitin, tulad ng, sa buong isang napaka-haba ng programa, ito ay mas mahusay na upang tukuyin na sa simula upang kung sakaling nagbago ito, makakakuha ka ng na baguhin ang isa lugar sa halip na 100. Oo? MAG-AARAL: Sa pagitan ng paggawa na at lang deklarasyon [hindi marinig] sa paglipas ng sa itaas. Allison BUCHHOLTZ-AU: Kaya May gagawin sa efficient-- ito ay uri ng sa labas ng saklaw ng kung ano ang maaari naming masaklawan sa seksyong ito. Ito ay upang makagawa ng higit pa na may kahusayan at kung paano mga bagay talaga gumagana sa proseso ng kino-compile. Kung nais mong talaga alam tungkol dito, Ikinagagalak magpadala sa iyo ng ko isang email na may mga mapagkukunan tungkol dito. Hash tukuyin ay may gawi na maging ginustong para sa mga bagay. At tulad ng sa iyo Code higit pa, mo uri ng malaman ang nuances kung kailan dapat kang gumamit ng global kumpara sa hash tukuyin. Ngunit sa ngayon, hindi mo talaga magkaroon mag-alala tungkol dito ay na ang maikling sagot. Ang bawat tao'y may mahusay na? At din, kung nais mong gumamit ng hash tukuyin, talaga mahalaga sa mapansin na ang pangalan ay dapat na sa lahat ng mga cap. Hindi namin lamang ang paggawa Class SIZE upang maging kapansin-pansing. Dapat talaga ito sa lahat ng mga cap. Ayos. Ano pa ba? Humihingi kami ng magandang? Kaibig-ibig. Maligayang pagdating. OK, kaya gusto kitang guys tingnan sa ito at tingnan kung maaari mong mahanap ang bug. Bibigyan kita ng isang pahiwatig. Ito ay isang lugar sa na for-loop. Mmhmm? MAG-AARAL: Dapat ay mas maliit o katumbas sa 2. Allison: Kaya ito ay maaaring mas mababa sa o katumbas ng 2, o maaaring ito ay mas mababa sa 3. At ano ang dahilan para sa na? MAG-AARAL: Ang [hindi marinig], 0, 1, 2. Allison: Eksaktong. Kaya sa isang hanay ng mga laki n, namin lamang magkaroon ng mga indeks ng n minus 1. Ayos. At pagkatapos ay maaari naming makakuha ng talagang baliw at kumuha ng multi-dimensional array. Isa sa mga problema kapag kinuha ko ito sa aking taon Kinakailangan multi-dimensional array, at sa tingin ko ang isa sa mga ito ay maaaring mangailangan ito sa taong ito, kaya maging komportable. I-wrap ang iyong ulo sa paligid nito ngayon. Ito ay bumalik sa sumaging lagi sa alaala iyo, ngunit sa isang cool na paraan. Kaya ikaw talaga sa tingin lang ng multi-dimensional array bilang array ng array. Kaya maaari mong uri ng tingin ng tuktok Ang hilera bilang unang tipak ng memorya. At ang isang ito ay ang pangalawang tipak ng memorya, at ang huling hilera ay ang ikatlong tipak ng memorya. At sa loob iyon, mayroong isang array. Ngunit siyempre, ito ay madali upang ilarawan tulad nito. Kaya initialize mo ito sa parehong paraan. Ito ay isang character Ang lupon ng tatlong sa pamamagitan ng tatlong. Kaya mayroon kang tatlong mga hilera at tatlong hanay. Kami ay kumakatawan ito sa ganitong paraan. At gusto mo itong ma-access ang parehong paraan, ang hanay ng hilera. At kaya 1,1 tulad ng nakikita namin dito. Magtalaga kami ng zero, zero up doon. 2,0 at 0,2. Kaya nais-access mo lamang them-- kung sinuman ay kailanman nagawa linear algebra, sa parehong paraan na-access mo ang isang elemento sa isang Matrice, ito ay ang parehong mga ideya dito. Kaya maaari mo itong nauugnay pabalik sa matematika. Hindi mo kailangang mag-alala masyadong magkano ang tungkol sa ngayon. Ito ay mahusay na magkaroon ng pagkakalantad, upang malaman na maaari mo itong gawin. Maaari kang lumikha ng ilang mga basag ang pula number-- maaari kang lumikha ng nakatutuwang array ay lahat ng pupuntahan ko sasabihin. [Hindi marinig] Ito ay nakakakuha ng kaunti mabaliw, ngunit ito ay talagang cool. Kahanga-hanga. At pagkatapos, kaya kami ay may isang halimbawa dito. Kinakalkula ito ng haba ng string. Kaya alam kung gaano karaming mga tao na ang mga string na ginagamit mo lamang array ng mga character? OK, oo. Kaya maaaring sa tingin mo guys na mayroon kang hindi gamit na array bago, ngunit anumang oras gamitin mo getstring sa CSView library, ikaw ay talaga lang na nagtatanong para sa isang array ng mga character. At ka namin pangangalaga ng lahat ng paglalaan na sa back-end para sa iyo. Ngunit kung ikaw ay gumagamit ng array mula noong nagsimula kang. Ikaw lamang ay hindi ito pang malaman. At sa tuwing mayroon kang isang character array o isang array na nag-iimbak ng isang string, ang huling bagay ay palaging kung ano ang na tinatawag na null Terminator, na ay ito dito mismo. At iyon ay sa dulo ng ang bawat salita na iyong pag-iimbak. Kaya kung gusto naming malaman ang haba ng isang string, maaari naming sabihin, well, alam mo na, ang mga nilalaman ng na-block ay hindi kapantay sa aming mga null Terminator. Iyon ay nangangahulugan na mayroong ilang ng character doon na namin ang aktwal na nagmamalasakit sa na bahagi ng salita. Dagdagan mo ang iyong haba. At pagkatapos ay kapag namin talagang makapunta sa sa dulo ng salita, magkakaroon ito wakasan at makikita ito bumalik sa aming mga haba para sa amin. Mmhmm? MAG-AARAL: Sinusuportahan ba ng espasyo mabibilang na ang null Terminator? Allison: Kaya isang puwang ay hindi isang null Terminator. Kaya kung mayroon kang multiple-- ng isang puwang ay talagang isang tukoy na halaga na ASCII. MAG-AARAL: Ano ang tandang katumbas muli? Allison: Kaya, ito ay kung ano ang sumangguni ka sa. Kung sakaling narinig mo ako sa mga oras ng opisina, Palagi akong tawagan ito, tulad ng, putok ay katumbas ng. Kaya putok ay hindi. Kaya ito ay hindi katumbas. Kaya kung sinusubukan mong makita kung ang isang bagay ay hindi totoo, Alam mo rin itong gawin, bang anumang ang variable, at kung ito ay hindi totoo, ito ay sinusuri sa totoo at mo ang magagawa ng magagandang bagay sa iyon. Higit pa sa na sa ibang pagkakataon. Ayos. Ang lahat ng magandang doon? Kahanga-hanga. Kaya ngayon ay oras na iyong guys 'upang magtrabaho, dahil ako ng pakikipag-usap. Kaya gusto ko sa iyo upang lumikha lamang ng isang array may integer isa, dalawa, at tatlo, at pagkatapos na sila naka-print out. Hindi mo na kailangang gawin, gaya ng, pangunahing, blah, blah, blah, kahit ano. Gusto ko lang sa iyo na simulan ang ang array at pagkatapos ay lumikha isang para sa loop upang i-print ang mga ito out-- o habang loop, na nakasalalay sa iyo. Kukunin ko na lang magbibigay sa iyo ng ilang minuto upang gumana sa na. Pupunta ako sa pamamahinga ang aking boses. Kung mayroon kang anumang mga katanungan, Ikinagagalak kong darating sa paligid at makipag-usap sa iyo guys. Huwag mag-atubiling makipag-usap sa isa't isa. Kumuha ng higit pang kendi. Sa katunayan, idedetalye ko lamang maglakad sa paligid na may kendi. Paano iyan? Huwag mo gusto ang anumang? Sinumang iba pa sa kuwartong ito gusto kendi? Maaari ka ring kumuha ng higit pa sa isa, guys. Kumuha ng isang maliit na bilang kung gusto mo. Mayo pati na rin. Lahat ng iba pa magandang? OK. Gayundin, pupunta ako upang lumikha ng isang hindi nakikilalang Google Form, at guys maaari lamang isumite feedback pagkatapos ng bawat seksyon kung mayroong isang bagay na nais mong mapabuti sa o isang bagay na gusto mong tapos. Kung Isa akong maliit na masyadong masigla para sa iyo, maaari kong tono ito pababa. Kukunin ko lumikha na at ipadala na sa iyo ang lahat pagkatapos. Lahat ng karapatan. Kaya magsimula ng maliit na ipaalam. Paano namin simulan ang aming mga array? Ano ang uri ng aming array? Isang int, i-right? OK, kaya kung ano ang gusto mo upang tawagan ang iyong array? Int array, cool. Ang lahat ng mga karapatan, sa gayon mayroon kaming int int array katumbas, at ano ang mayroon kami pagkatapos na? MAG-AARAL: [hindi marinig] mga braket. Allison: brace. At pagkatapos ay sa loob ng brace? Isang kuwit dalawang kuwit tatlo. Ayos. Kaya na ang lahat ng karapatan. Kaya ngayon ay may namin ang aming para sa loop. Kaya sa unang bahagi ng aming para sa loop, ano ang mayroon kaming? MAG-AARAL: i ay katumbas ng 0? Allison: Kaya int i katumbas ng 0, at pagkatapos ay kung ano ang ating kalagayan? Ano ang i pagpunta sa mas mababa kaysa? Mas mababa sa tatlo, at kung paano namin i-update namin i? i plus plus, ina-update ito sa pamamagitan ng isa. At pagkatapos kami ay pagpunta sa may ilang printf ng integer, at ano ang huling na bahagi na talaga pagpunta sa sabihin kung ano ang dapat na pini-print namin? Ito ay magiging ang pangalan ng array, na kung saan ay int array, tama? At kung ano ang nasa bracket ng int array? i. [? Kaya ako?] Na tinatawag na aking Halimbawa, ngunit may kang pumunta. Hindi na masama. Ang bawat tao'y magandang? Ayos. Kaya tapos na kami sa array. Binabati kita. Pinamamahalaang ka na umulit sa lahat the-- yes? MAG-AARAL: [hindi marinig] Allison: Oo. MAG-AARAL: Mayroon akong tanong. Ay dapat mong i-indent ang brace? Allison: Kaya dapat line up ang brace may para sa loop, at pagkatapos ang lahat ng bagay sa loob ng brace ay dapat na naka-indent. MAG-AARAL: OK, dapat ang para sa loop ay naka-indent? Allison: Ang para sa loop ay hindi kailangang naka-indent sa puntong ito. Kung ikaw ay sa pangunahing, kung namin talaga nagkaroon dito ng isang pangunahing pag-andar, ito ay naka-indent mula sa pangunahing. Ngunit sa kasong ito, ito ay multa. Oo, pinag-uusapan. MAG-AARAL: Kailangan mong magkaroon ng ang mga bracket pagkatapos halimbawa? Allison: Oo, kung ikaw ay Sinisimulan ito na paraan. Kaya tandaan, ito ay ang pangalawang paraan ng Sinisimulan ang isang array kung saan Mayroon namin ang brace at pagkatapos ay ang aming aktwal na data pinaghihiwalay ng mga kuwit sa loob. MAG-AARAL: Akala ko mayroong bracket halimbawa iyon. Allison: Hindi, ang mga ito ay brace. Sila brace. Kung naka-Sinisimulan ito ang pangalawang paraan, brace. Kung kami ay upang sabihin, int example-- kung Nais ka lamang namin ang isang walang laman na hanay para sa ints, magiging int Halimbawa bracket tatlo. Ang mga bracket ay kumakatawan sa laki. Kapag mayroon kang brace, ito ang aktwal na data naglalagay ka ng sa ito sa ganitong paraan. Maaari kaming mag-scroll pabalik talagang mabilis. Kaya sa isang ito, ito lamang ang aming paunang array, pagsisimula. At dito, kami ay isa-isa nagtatalaga ng mga spot sa kanila, kaya ito ay kumakatawan sa index ng aming mga array, na ang dahilan kung bakit mayroon kaming mga bracket. Ngunit dito, kung napansin mo, hindi namin Umalis aming mga bracket walang sukat, at initialize namin ito sa aktwal na data ng lahat-ng-sa-isa na may brace. MAG-AARAL: Kaya bakit hindi mayroon kami bracket sa halimbawang ito? Allison: Kaya, kung saan bahagi? MAG-AARAL: Gusto hindi namin sabihin nating, int Halimbawa bracket ay katumbas ng brace [hindi marinig] bracket halimbawa. Allison: Oh, paumanhin. Tama ka. Kaming may mga bracket. Paumanhin guys, ang aking masama. Oo, dapat kang magkaroon ng bracket pagkatapos halimbawa. Ikaw ay walang pasubali karapatan. MAG-AARAL: [hindi marinig] hindi ginagawa ito. Allison: Hindi, mayroon kang magkaroon ng bracket, dahil kung hindi man ito Hindi pagpunta na idedeklara isang array. MAG-AARAL: [hindi marinig]. Paumanhin tungkol doon. Allison: Paumanhin, kailangan mong bracket pagkatapos halimbawa. Typo. Magandang catch, gold star para sa iyo. Gayundin, kung ikaw ay humihiling ng isang katanungan, kung mo guys nais sabihin lang sa akin ang iyong pangalan, Gusto kong iyon. Gusto ko iyan magagawang Alam lahat ng iyong mga pangalan. Hindi ako pupunta sa malamig tumawag sa iyo, ako talaga nais lamang na malaman ang iyong pangalan. Kaya mangyaring talagang sabihin sa akin ang iyong pangalan. Leah: Leah. Allison: Leah. OK, kaya functions-- alam ko sa maikling usapan nila tungkol sa panahon ng panayam. Kaya function ay uri ng lamang tulad ng mga ito maliit na bagay na kagat-laki kung saan pumasa ka sa input, isang bagay mahiwagang mangyayari, at makakuha ka output. Ayos. Kaya na aktwal mong ginamit ng marami sa mga ito nagagawa. Kumuha ng int, kumuha ng string, i-print f. Ito ang lahat ng mga function kung saan tawagan ka lamang sa kanila, mayroong maraming mga mahiwagang mga bagay nagaganap sa background hindi mo na kinakailangang makita, at kang makakuha ng kung ano ang gusto mo. O hindi bababa sa kang makakuha ng kung ano ang inaasahan mo gusto. At isa lamang ang punto ng pag-andar, at isa sa mga pangunahing tema ng CS, ay upang buksan ang iyong code sa pamahalaang piraso. Kapag sinimulan mo ang pagsusulat mga talagang mahaba ang mga programa, o sa scratch kapag nagkaroon ka ng ito enggrandeng ideya para sa isang laro, kailangan mo upang magawang masira ito pababa sa, tulad ng, OK, paano ako magsisimula? Ano ang mga maliit na piraso na kailangan ko? Oh, kailangan ko upang hilingin sa user para sa isang bagay. Ngayon ay kailangan kong i-print ang isang bagay. Oh, kailangan ko upang makalkula ang halaga na ito. At pag-aaral kung paano masira up ang iyong code at ang malaking problema mo mayroon sa mga maliliit na piraso at lumilikha ng mga pag-andar ay talagang isa sa mga malaki cornerstones ng CS. Kaya maaari mong isipin ang isang function tulad ng tulad ng isang itim na kahon, isang mahiwagang itim na kahon, na maglagay ka ng mga bagay sa at kang makakuha ng ilang output. At ang natitira sa programa Hindi kailangang kinakailangang alam kung ano ang nangyayari sa loob ng itim na kahon. Ang lahat ng mga ito na pinahahalagahan ng tungkol sa kung ano napupunta sa at kung ano ay out. Ayos. Kaya bakit function? Organization-- ng sinabi ko, kapag handa ka pagharap sa napakalaking bases code, kung paano mo ayusin ang iyong mga code ay mas madali kung gumamit ka ng mga pag-andar. Dahil magagawa mong maging, tulad ng, OK ito, ay kung ano ang ginagawa ang function na ito at narito ang kung ano ang ginagawa ng isa pa. At madali mong makita kung paano ang lahat ng mga ito magkasya sama-sama. Kaya hatiin ang mga ito sa lahat ng ang mga pamahalaang subparts. Kaya simplification-- ako sigurado ka guys Nakita ang lahat ng ito, tulad ng sinabi ko, sa scratch. Mayroon kang ito enggrandeng ideya, at ikaw ay tulad ng, kung paano gumagana ang lahat ng ito gumagana? Ngunit kung paparating ka ito unti-unti, sabihin mo, OK, paano ko gumawa ng isa engkanto lumutang sa screen? Iyon Medyo mas madali. Kaya mabuting paggamit ng function na ginagawang ang iyong code mas madaling basahin. Ginagawang mas madali upang i-debug na bilang makakuha ka sa iyong mamaya mga hanay ng problema, na iyong pupuntahan talaga Gusto upang magawa. At ang mga ito ay din mas madali upang magdisenyo at magpatupad. Maaari mong Code up ng isang maliit na function na medyo mabilis at tiyakin na ito ay gumagana kumpara sa sinusubukan upang likhain ang buong haba programa at pagkatapos ay uri ng pumunta sa pamamagitan ng at makita kung ano ang gumagana at ano ang hindi. At pagkatapos ay reusability. Kaya kailangan mo na lang pag-andar na nakasulat isang beses, at pagkatapos ay maaari mong gamitin ang mga ito nang maraming beses hangga't maaari. Kaya, tulad ng, eco-friendly sa isang katuturan. Kung nagkaroon ka ng mga bagay tulad ng naka-print na f, kung saan mo Nagkaroon upang isulat ang magic na napupunta sa likod-print f bawat solong oras na gusto mo upang i-print ang isang bagay, mo ay magiging kaakit-akit na may sakit at pagod ng mga ito sa katapusan. Isa sa mga bagay na ikaw ay matuto sa CS klase sa ibang pagkakataon, o isa sa mga pinakamahusay na piraso ng payo na nakukuha ko ay, kung ikaw ay pagkopya at pag-paste code, dapat marahil ito ay isang function. Kung mayroon kang eksaktong parehong mga linya sa lahat sa iyong buong code, kung isinasali mo ang mga ito, ang iyong code gagawin marahil maging, tulad ng, limang beses mas maikli at maging mas madaling basahin. At sa halip na sinusubukang upang i-troubleshoot lahat ng mga iba't-ibang mga lugar kung saan bagay maaaring magkamali, mayroon kang isang function na na makakakuha ka ng upang i-troubleshoot. At nangangako ako, ng maraming ito Maaaring mukhang ngayon uri ng abstract, ngunit habang ikaw ay sa ibang pagkakataon at problema sa ibang pagkakataon Nagtatakda, Makikita ito gumawa ng maraming higit pang mga kahulugan at talagang mabubo bahay. Mayroon bang anumang mga katanungan tungkol sa mga pag-andar sa ngayon? Bakit ginagamit namin ang mga ito? Alam ko hindi namin nakuha sa kutuhin magaspang pa. Kaya pagtukoy sa isang function-- tulad ng array, kailangan namin ng ilang uri-uriin of-- ito lamang ng pangkalahatang output. Kaya ito ay isang function na lamang ng pagpunta sa Cube ilang mga input. At sa susunod na pahina, talaga, mayroon kaming lahat ng mga kahanga-hangang maliit na bagay dito. Kaya, maaari lahat basahin na, sa labas ng pag-usisa? Alam ko ang mga lilang at itim ay maaaring maging isang maliit na mahirap. Ngunit malaking bagay na know-- kaya ang unang isa dito mismo ay ang aming uri ng binalik. Kaya ito ay pakikipag-usap tungkol sa output ng function na ito kapag, sa kasong ito, naming ilagay sa ilang mga numero, kung ano ang hindi namin pagkuha ay ang bilang nakakubo. Kaya dapat itong maging isang int sa kasong ito. Siguro magiging isang double o ibang bagay sa ibang pagkakataon, ngunit sa kasong ito, ito ay isang int. Sa c, palagi kailangan ng isang uri ng return. Ito ay isang int. Makikita ito ay isang float. Makikita ito ay isang double. Ngunit mayroon kang tukuyin kung ano function na ito ay pagpunta upang bumalik. Kung hindi man ito ay sumigaw sa iyo, at hindi ito ay sumulat ng libro. Makikita mo Malulungkot, at magpapadala ako maging malungkot. At ito ay hindi lamang mabuting. OK. At pagkatapos ay may namin ang aming pangalan ng function. At tulad ng maaari mong makita dito, na may c may ito napaka pare-pareho tularan. Ano ang iyong uri, ano ang pangalan, at pagkatapos ay ilang iba pang mga bagay sa dulo. Kaya mayroon namin ang aming mga uri ng return, aming pangalan ng function, at pagkatapos ay mayroon kaming header sa ang aming listahan ng parameter. Kaya sa listahan ng parameter ay, kung ano ang function na ito ng pagpunta sa tumagal in? Isang listahan ng parameter ay lamang ng isang kasingkahulugan para sa, ano ang aming input? At sa parehong paraan na aming Mayroon upang tukuyin ang aming mga at bigyan ito ng isang pagbalik -type, sa bawat isa sa aming mga input Kailangang magkaroon ng isang uri na nauugnay dito. Upang malaman namin kung ano ang aming mga Maaari talagang gumagana sa. Kaya sa kasong ito, mayroon kaming ilang mga input int. Kaya muli, ito ay magiging uri at kung ano ang iyong pagtawag dito. At pagkatapos, tulad ng nakikita mo dito, mayroon kaming aming katawan. Kaya mayroon kaming ilang mga int output, na lamang ang aming mga oras mismo ng pag-input mismo beses, na cube lamang ito. At pagkatapos ay bumalik namin na output. Kaya bilang na iyong nakikita dito, mayroon kaming isang int beses sa isang int beses sa isang int, kaya nagbalik ito sa isang int, na Na-ipinahayag doon. Kaya lahat ay cohesive. Lahat ay masaya. Ang iyong pag-andar tatakbo. At ito ay isa lamang sa pangkalahatang bagay. Kaya palagi kang mayroong uri ng return, pangalan, at ang iyong listahan ng parameter. Ang bawat bagay sa iyong listahan parameter, o input, Kailangang magkaroon ng isang uri na nauugnay dito. At pagkatapos ay mayroon kang ang iyong katawan dito sa anumang ang gusto mong gawin sa iyong input. At pagkatapos ay malinaw naman sa iyo Gusto upang magbalik ng bagay. Minsan ay magbabalik lamang ang mga pag-andar. Hindi sila aktwal na bumalik isang bagay na para sa iyo upang gamitin. Ngunit mayroon kang upang bumalik sa ilang mga paraan. At kapag nagsasagawa ka ng ang iyong sariling mga pag-andar, maaari naming makuha sa na ang isang maliit na mas malalim. Personal, kung nais mong, may mga marami ng iba't ibang mga bagay na maaari mong gawin doon. Ang bawat tao'y magandang? Anumang bagay sa listahan na ito na sa akin na gusto mong upang pumunta sa ibabaw, na hindi mo naintindihan? Ang bawat tao'y Magandang doon? Ayos. Kahanga-hanga. OK, kaya namin ang paglalagay ng lahat ng sama-sama na ito ngayon. Kaya mayroon kaming ilang mga input int kubo, kaya ito ay isang kumpletong programa dito. Hanggang ngayon, na hindi ko na uri ng na-nagbibigay sa iyo guys mga snippet na maaari ay pagpunta sa loob ng program. Kami lang na pagtingin sa mga pag-andar. Ngunit narito ang isang buong programa. Kaya kung gaano karaming mo matandaan ang salita prototype mula sa aralin? Ayos. Mayroon kaming isa. Ano ang inyong pangalan? Steph: Steph. Allison: Steph? OK, kahanga-hangang. Kaya, huwag mo matandaan kung ano ang isang prototype ay? MAG-AARAL: sabihin mo [hindi marinig] bago mo aktwal na haharapin ang mga ito. Allison: Huwag mo matandaan kung bakit? MAG-AARAL: Hindi. Allison: OK. Gold bituin. Kaya oo, isang prototype mayroon kami sa simula pa, dahil kung hindi, ang aming tagatala ay pagpunta sa sumigaw sa amin. Ito ay pagpunta sa sabihin, OK, kung ano ito kubo function na? Tulad ng, mo literal na mayroon Sinabi sa akin wala tungkol dito. Ito ay tulad ng kapag maglakad papunta sa isang silid-aralan, at may isang taong Parang, mayroong isang pagsusulit ngayon. At ikaw ay tulad, mo hindi kailanman sinabi sa akin tungkol sa. Hindi ako masaya sa amin. Ang prototype ay isa tulad ng ang iyong syllabus sinasabi, hanapin. Malaman. May pupuntahan maging isang pagsusulit sa araw na ito. Huwag taong kakatuwa out kapag nakakuha ka dito. Ka ng pagpunta sa maging fine. Kaya ang lahat ng mga prototype ay ang sabihin sa pangunahing, pupuntahan ko gamitin ang function na ito. Nangangako ako ako pagtukoy ito sa ibang pagkakataon. Huwag taong kakatuwa out sa akin. Mag-compile lang at gawin kung ano ang sinasabi ko sa inyo sa. Kaya mayroon namin ang prototype doon upang gumawa lamang ng aming compiler masaya. At ito ay isa lamang pangako na na tinukoy mo ang function na ito sa ibang pagkakataon at ikaw ay hindi lamang pagtawag ang mga random na bagay na ito Hindi alam kung ano ang iyong pagpunta sa ginagawa. Kaya sa kasong ito, ay may pangunahing dito namin. Initialize kami ng ilang mga integer x. Iyon ang dalawa. Kami ay pagpunta sa i-print kung ano ang x ay. Kami ay pagpunta sa Cube x. Tulad ng nakikita mo, mayroon kaming aming function na pagpapahayag down na dito na namin usapan ang tungkol sa nakaraan. Ito Cube x, at pagkatapos ay, kung namin tandaan, ang kubo function na talaga Ibinabalik ng isang integer sa amin, na kung saan ay naka-imbak sa x muli upang maaari naming i-print out walong, o kubo x ngayon. Ay na magkaroon ng kahulugan sa lahat? Humihingi kami ng magandang? Lahat ng karapatan. Kahanga-hanga. Lahat ng karapatan. Paano marami sa inyo guys tandaan na ito kaya ito ay isa lamang ang iyong stack at ang iyong kimpal, lamang ng visualization ng kung paano memorya ay naka-imbak dito. Kaya gusto lamang naming gawin Tiyakin na nauunawaan mo kung paano ang mga ito ay kinakatawan sa memory. Kung kumuha ka ng mga klase tulad ng CS61 at bagay-bagay sa ibang pagkakataon, makakakuha ka upang matuto ito sa ngayon higit pa malalalim na, at ito ay talagang cool. Masidhing kong irekomenda ito. Ngunit sa ngayon, Bibigyan kita ng kang malawak na pangkalahatang-ideya kaya hindi mo na kailangang mag malaman ang kutuhin magaspang. Kaya sa itaas lamang ng isang segment ng teksto na naglalaman ng aktwal na mga zero at mga, ang binary para dito. At ito ay ginagamit para sa pag-iimbak mga pangkalahatang variable kung mayroon kang anumang. Habang ginagalaw mo pababa, namin mayroon, tulad ng nakikita mo rito, initialize data, uninitialized data, at pagkatapos ay kimpal. Kaya hindi namin talagang makipag-usap tungkol sa kimpal ngayon. Makikita namin ito sa ibang pagkakataon. Sa ngayon, lang ako pagpunta sa iwagayway ang aking mga kamay at maging tulad ng, hindi mo na kailangang malaman tungkol sa ngayon. Ngunit kami ay makipag-usap ng kaunti bit tungkol sa stack. Kaya ang stack ay where-- mayroon kami ng pag-zoom in. Ito ay talagang kung paano sa programa Tiningnan lang namin sa nangyayari sa memory. Kaya kung ano ang mangyayari ay, ang bawat oras tinatawag naming isang function, makuha namin kung ano ang tinatawag na stack frame, na kung saan ay isa sa mga ito. Kaya mga parameter ng pangunahing iyon. Kaya mga ang mga bagay na namin ang pumasa sa pangunahing. Kaya ang mga ito dito mismo sa ibaba, dahil iyon ang unang bagay na tinatawag naming. At pagkatapos makuha namin sa main ni lokal, at kapag sinabi naming, ibig sabihin namin ang mga lokal na variable na naka-imbak sa loob ng pangunahing. Kaya lokal dito ay magiging, tulad ng, x ay katumbas ng dalawa sa kasong ito. Dahil na-localize sa pangunahing. Tandaan ang lahat ng tao saklaw, pagpunta sa paglipas na sa aralin? OK. Kaya, lamang ang mga variable na ay nasimulan sa loob ng pangunahing. Kaya na ang dahilan kung bakit mayroon kaming pangunahing [? vocals. ?] At pagkatapos ay sa loob ng pangunahing, tinatawag naming kubo. Mag-right? Kaya makuha namin ng isa pang frame may mga parameter ng kubo ni. Kaya sa kasong ito, kubo ni mga parameter na ngayon ang x na ipinasa namin sa, ang dalawang na namin ang pumasa sa. At pagkatapos lokal kubo, na kung saan ang aktwal na cubing mangyayari. At pagkatapos nito ay nagbalik. Kaya kung ano ang mangyayari ay ang mga aktwal na ginagawa kubo kung ano ang dapat gawin, nagbabalik ito. Kapag ito ay nagbabalik, frame na ito ay umalis, at ibinalik pababa nito sa pangunahing. At pagkatapos ay sa loob ng pangunahing, namin aktwal na maaaring i-print ito. Kaya kapag bumabalik ka ng isang bagay, kapag ang iyong function na ay nagbabalik, ito ay gaya ng pagpasa sa mga halaga iyon na ang frame sa ibaba nito at pagkatapos ay umaalis. At mga bagay na kailangang isagawa sa pagkakasunud-sunod. At kapag nakarating ka na sa mas malaking mga programa, Maaari kaming magsagawa ng mas malamig at mas komplikado diagram. Ngunit sa ngayon, ito ay lamang ng isang pangkalahatang pangkalahatang-ideya kaya mayroon kang uri ng isang pag-unawa sa kung ano ang ang mangyayari kapag naka-pagtawag ng isang function at kung paano na aktwal na hitsura sa memory. Cool? Ang bawat tao'y magandang? Kahanga-hanga. Kaya ito ay isa na lamang sinusubukan mong magpalit ng mga bagay. Tulad ng nakikita natin dito, mayroon kaming ang aming mga prototype upang ang aming mga compiler ay hindi sumigaw sa amin. Mayroon kaming ilang mga pangunahing, at kami Gusto upang lumipat x at y. Hindi nila ginawa ito demo sa pang aralin, ang mga ito? Ang mga ito ay hindi? OK. Kaya kami ay pagpunta sa pumunta sa ibabaw ito napaka maikling. Makakakuha ka ng sa halimbawang ito nang higit pa malalalim na, sa palagay ko, sa linggong ito. At pagkatapos ay sa susunod na linggo ng aming makakaya talaga sumisid sa kung bakit ito ay hindi gumagana. Kaya mayroon kaming ito walang silbi magpalitan ng pag-andar here--. Kaya walang bisa ay nangangahulugan lamang na walang ibinalik. At mayroon kaming magpalitan int isang int at b. At mayroon kaming ilang mga pansamantalang variable na iyon ay isang. isang nakakakuha itinalaga sa b, at pagkatapos ay b ay makakakuha ng nakatalaga sa temp upang ang isang at b ni halaga ay lumipat ngayon. Ngunit, isang lagay ng lupa iuwi sa ibang bagay, ito ay hindi gumagana. At bahagi nito talaga ay ang gagawin sa ang katunayan na ang isang at b dito, ang mga taong na makakuha ipinasa sa dito, ay aktwal na kopya ng x at y. Kaya kapag aktwal na nagbabalik ang pag-andar, ito Lilipat ang mga kopya ngunit hindi ang aktwal na x at y ni. Kaya isang paraan upang isipin ang tungkol dito ay magpanggap that-- mga ito ay swap. OK? Kaya sa pangunahing, mayroon kaming x at y nasimulan. Ngunit kapag aktwal na namin umahon sa mga frame sa swap, kami ay pagpasa sa mga halaga sa paglipas ng dito, at sila ay nasimulan. At nakakaapekto lamang sila nakatira dito mismo. Kaya isang at b nakatira dito. At sila makakuha swapped. Ngunit kapag bumalik namin, hindi namin gumawa ng anumang bagay na may isang at b. isang at b leave sa aming mga function. At kaya x at y mananatiling pareho. Makakakuha ka ng higit pa sa kung paano aayusin iyon at kung paano namin aktwal na haharapin ang mga iyon sa ibang pagkakataon. Ngunit ito lamang ay isang bagay na sa uri ng tandaan. Gamitin ito para sa hinaharap. Huwag mag-alala kung na hindi gumawa lahat ng mga kahulugan sa mundo. Ang mga ito ay mga kopya ay ang pinakamalaking bagay. Kung gumagamit ka ng pagpunta sa tumagal ng kahit ano layo mula iyon, na ipinasa sa mga kopya. Kaya mananatiling pareho ang mga orihinal. Ang bawat tao'y magandang? Ayos. Kaya command-line argumento. Ako ba na sa simula mo guys lahat Nagkaroon ang mga mahusay na, tulad ng, int pangunahing voids. At ikaw ay tulad, OK cool. Hindi ko talagang mahalaga. Ito ay kung ano ang kailangan kong isulat. Ngunit sa iyong bagong programa, lalo na sa mga ito pset, at bakit may tisa sa ground? Gamit ang iyong susunod na pset, ikaw ay pagpunta sa dapat makita ito. Int pangunahing, int ARG c, string arc v, bracket. Kaya, mula sa kung ano ang namin lamang natutunan ngayon, kung ano ang Sa palagay namin na pangalawang parameter o ang pangalawang elemento ay dito? Ito ay isang array. Anong uri ng array? String array, oo. Ayos. Kaya na kung paano ka ng pagpunta na nagpapahayag mga ngayon. Sinuman tandaan ang kung ano ang mga panindigan? Walang? Hmm? MAG-AARAL: ARG c. Allison: Kaya ARG c Pinapanatili ng counter. Ito ay isang int. Ito ay isang numero, i-right? Kaya kung ano ang tingin mo ang numerong iyon ay sa? Oo. Kaya ARG c ay ang bilang ng mga string na bumubuo sa linya ng command. Kaya kung kami ay upang do-- talaga, may mga halimbawa pagkatapos na ito, kaya hindi ako makakakuha ng mas maaga sa kanilang sarili ko. Ito ay isang bilang ng mga string na bumubuo lamang ang iyong linya ng command. Kaya kapag ginawa mo, tulad ng, tuldok iwa Mario, na isang string na ginagawang up ito. Sa piraso na ito, aktwal kang maging nagpapakain bagay sa command line, bilang ako sigurado ka guys kung sino na basahin ang spec ng lagari. Kaya sa mga kasong iyon, maaaring ikaw ay may dalawa o tatlong mga argumento. Ito ay magiging isang kapaki-pakinabang na bagay upang gamitin. At pagkatapos ay ARG v, tulad ng sinabi namin, lamang ang isang string ng array. Kaya na aktwal na nag-iimbak kung ano -input mo sa linya ng command. Kaya mayroon kaming mga ito. Mayroon kang ilang mga tuldok slash kopyahin infile outfile. Kaya, kung ARG c ay ang bilang ng mga string na aming pagpasa sa command linya, kung ano ang aming ARG c sa kasong ito? Tatlong. Mismong. Kaya kung ano ang ARG v ng zero? Kaya kung ano ang unang bagay na inimbak namin? Dot iwa kopya, eksakto. At pagkatapos ay ang pangalawang magiging infile. Ang ikatlong ay magiging outfile. Kaya kung ano ang tungkol sa ARG v tatlong? Ito ay null, dahil iyon Sa dulo ng aming array, tama? Ayos. At pagkatapos ay kung ano ang tungkol sa isa pang-anim? Ito ay uri ng isang kahanga-hangang gawa tanong. Ish. Alam namin kung ano ito? Ito ay hindi natukoy. Wala kaming ideya kung ano ang maaaring maging na. Ito ay anumang ay tama pagkatapos ng array sa memorya, at wala kaming bakas kung ano na. At ito ay mapanganib sa pindutin ang mga bagay, dahil para sa lahat ng alam mo na, ito ang ilang bahagi ng memorya na hindi dapat pag-access sa o walang bisa. At ito ay maaaring gawin na nakatutuwang bagay. Ito ay tinatawag na over-i-index ang iyong mga nakatali sa iyong array. Huwag pumunta sa labas ng hangganan ng iyong array, o hindi magandang bagay ang maaaring mangyari. Bumalik ka at, tulad ng, ang mga batas ng pisika na-nawasak o isang bagay. Ayos. Ay na magkaroon ng kahulugan sa lahat? Huwag masyadong masama. Kaya ngayon, lahat ng tao ay paboritong bahagi, pset pagsusuri. Ayos! OK. Kaya para sa mga mo na hindi basahin ang mga pset spec, kayo ay ang paggawa ng ilang talaga magagandang bagay sa Cryptography. Na iyong pupuntahan upang lumikha ng isang Ceasar Cipher at Vigenere Cipher. Dapat mong basahin ang siguradong spec upang makita kung paano mga gawa. At kung nagkakaroon ka ng anumang problema tungkol sa ano ang dapat na aktwal na ito ay ang paggawa, mangyaring makipag-usap sa akin, -email sa akin o text sa akin. Ako paligid. Kaya may tatlong pangunahing bagay dito na namin nais na makipag-usap about-- uri lamang ng isang extension ng panayam. Ang mga bagay na maaaring hindi mo alam tungkol, kapaki-pakinabang na mga pahiwatig at mga tool. Kaya kami ay pagpunta sa gawin ang isang mabilis na review ng mga ASCII, dahil na magiging sobrang mahalaga para sa Vigenere ng Cipher. Kami ay pagpunta sa conversion ng command line input, na ay magiging kapaki-pakinabang para sa Caesar Cipher. At pagkatapos ay modulo. Ayos. Kaya, ASCII mapa character sa numero. Ito ay isang mahusay na chart. Dapat na may ito -bookmark sa isang lugar. Ay gusto mo ito para sa ang iyong unang kalagitnaan ng term na ito. Ako ay medyo sigurado lahat ay mayroong ito tsart sa kanilang mga mid-terminong ginamit sa sheet. Kaya matuto ito. Pag-ibig ito. Panatilihin itong madaling gamitin. Makikita itong maging kapaki-pakinabang. At lahat ng ito ay ay isang pag-encode na mapa pang-abakada, numero, at iba pang mga character sa numero para sa aming mga computer. Dahil siyempre, sa pagtatapos, ang lahat iniimbak namin Mawawala upang makakuha ng na-convert na pababa sa zeroes at na, kaya kailangan namin ng ilang paraan upang kumatawan sa teksto at mga character na tayong lahat nakasanayan mong nakikita bilang isang uri ng numero. Kaya bilang makita namin dito, mayroon kaming uppercase A, na kung saan ay doon. Ito ay 65. At lowercase na A ay 97. Kaya maaari mong malaman out-- bilang mas maaga sinabi ko, kung nagkaroon ka ng hanay ng mga maramihang mga string, kung ano ang bawat isa sa kanila May null Terminator. Ito ay maging isang espasyo. Space ay may sarili nitong special-- Nakalimutan ko kung saan ito dito. Ah. 32 ay ang espasyo. Kaya lahat ng bagay mapa dito. Kaya mayroon kaming ASCII matematika. Tip-- Pro sa Vigenere ni, maaari mong matukso -convert ang iyong mga numero sa mga integer, ngunit ito ay aktwal na mas mahusay na kasanayan upang magawang gamitin ang mga character tulad nito kapag aktwal na pagpapatakbo mga ito. Kaya kung nais mong gamitin ang numero, magagawa mo na. Ngunit isang mas mahusay na paraan, o isang paraan na kami ay may posibilidad na gusto mo guys na gawin ito, ay ang paraan kung saan ikaw ay talaga ng pagbabawas character. Kaya gusto ko guys sa iyo uri ng malaman ang mga out. Bakit hindi mo subukan ang bawat isa sa iba pang? Kaya gawin ang una, ang ikatlong isa, at ang isang ika-limang. Dahil gusto ko upang matiyak na namin makipag-usap tungkol sa lahat ng bagay na kailangan namin upang makipag-usap tungkol sa. Lamang ako ng pagpunta sa sabihin, ang isa sa mga mahalagang bagay na to-- oh maghintay, ka guys ay hindi nakita ang isang ito. OK upang gawin ang unang tatlong. Ni gawin natin iyon. Dahil mayroon kaming makipag-usap tungkol sa modulo. Alam ko. Matematika ay mahirap. Maaari kang gumamit ng calculator. Ito ay ang OK. O hilahin up ng isang talahanayan na ASCII, dahil marahil ka ng pagpunta sa nais na. Ayos. Kaya ako ay mabilis na lakad mo guys sa pamamagitan ng mga ito. Kaya mga tao ang mga talahanayan ASCII na nakuha up? Ano ang aming numeric number para sa maliliit na A? MAG-AARAL: Pitong. Allison: Kaya maliliit na A ay 97 at uppercase na A ay 65. Kaya 97 minus 65? Madla: 32? Allison: 62, oo. Kaya sa kasong ito, kung ano ang Gusto ito i-print? Na una? Kung mayroon kaming porsiyento d, kung ano ang nais ipahiwatig iyon? MAG-AARAL: Ang isang numero. Allison: namin ang pag-print ang isang aktwal na numero. Kaya namin ang aktwal na pagpunta -print ang 32 dito. At kung ito ay porsiyento c, 32 ay magbibigay sa amin ng puwang. Kaya pag-unawa na mga character na maaaring naka-print parehong bilang ng mga numero at bilang ang aktwal na mga character ay talagang mahalaga, at pagbabayad -pansin ang aktwal na mga uri na ginagawa namin dito. Ayos. Kaya para sa bawat iba pang isa sa mga ito, kung ano ang pagpunta namin na pini-print? MAG-AARAL: Ang isang character. Allison: Isang character. Ayos. Kaya kung nais malaman, mo guys Pwedeng mag-ehersisyo ang mga out sa iyong sariling. Kung nagkakaroon ka ng problema, mag-email sa akin. Ngunit ang pangalawang isa habilin -print ang isang maliit na mga b. Ay i-print ang mga third isa ng uppercase B. Ang ika-apat na isa ay mag-print out ng uppercase C, at ang huli ay magiging isang maliit na mga A. At ang huling one-- talaga kami ng pagpunta upang makakuha ng sa kung ano na mabaliw porsiyento -sign kahit na ang ibig sabihin sa loob ng ilang mga slide. Kaya subukan ang mga ito sa iyong sariling. Kung mayroon kang problema, mangyaring makipag-usap sa akin. Kung ikaw ay karaniwang sa Adams D hall, makikita mo marahil ako sa paligid. Kaya, atoi. Paano marami sa inyo na nakita ito -andar o narinig ng ito sa lahat? Sinuman? Ayos. Kaya kung ano ang aktwal na ito ay nakatayo sa para ay ASCII na integer. Kaya ano ang maaari mong gawin ay, sa Caesar, para sa mga taong basahin ang spec, ka ng pagpunta sa gawin tuldok slash Caesar pagkatapos mong isulat ang iyong programa, at pagkatapos na iyong pupuntahan -input ng ilang numero na iyong Gusto upang i-encode ang iyong lihim na mensahe sa. Subalit, kung tandaan namin, lahat ng aming mga input ay naka-imbak bilang mga string. Mag-right? Mayroon kaming isang ARG v array na ang lahat ng uri ng string. Kaya kung mong subukan lamang sa hilahin ng isa na, ito ay isipin na ang isa o anumang bilang na ginamit mo ay talagang isang character. Kaya ka pagpunta upang makakuha ng ang ilang mga nakatutuwang mga resulta. Kaya kung talagang nais na i ito sa isang integer na maaari mong gamitin upang manipulahin iyong salita o ang iyong mensahe, makikita mo nais na gumamit ng atoi. atoi lamang-convert ang iyong mga string sa isang int. Kaya kung kami ay may isang string ng mga 12, kung tawagin namin atoi sa 12, o anumang pag-input iyon ay, ito ay aktwal na bumalik sa iyo ang integer. Hindi ang karakter o ang string 12. Aling, kapag sinimulan mo ang upang idagdag na sa mga numero, ay ibang-iba, dahil ang string 12 ay ang ilang mga nakatutuwang numero sa ASCII, ngunit ang integer 12 ay talagang 12, na kung saan ay kung ano ang gusto mo. Kaya nais mong tiyakin na gumamit ng atoi. Ka ng pagpunta sa nais na ito sa Caesar, dahil hindi mo Kailangan ang int ibinigay ng mga gumagamit sa linya ng command. Ngunit kapag inilagay nila ito sa command linya, naka-imbak ito bilang isang string upang magsimula sa. Ay na magkaroon ng kahulugan? Ikaw ay hindi kinakailangan Kailangan ito para sa Vigenere. Sa Vigenere, tulad ng sinabi ko bago, dapat mong subukan at gamitin ang ASCII matematika na mukhang mas katulad ito, kung saan ikaw ay talagang gamit ang karakter na aming ibinigay sa iyo. Ayos. Ang bawat tao'y may magandang? Kahanga-hanga. Kaya modulo. Kaya kung ano kung bibigyan ka ang malaking bilang para sa Caesar? Mayroon kang ideyang ito na kung ikaw ay nasa Z at ikaw ay bibigyan ng isang numero ng dalawang, ay nangangahulugan na ang need-- mo Z nagiging ang pangalawang sulat pagkatapos mismo, tama? Kaya kailangan mo upang kahit papaano ay balutin sa paligid, at modulo ay ang paraan upang gawin iyon. Kaya lahat ng ginagawa nito ay ito Nagbibigay sa iyo ang natitira ng dibisyon ng unang numero sa pamamagitan ng ikalawang. At mayroon kaming ilang mga halimbawa upang gumawa na ng kaunti pa kongkreto. Ngunit talaga, ginagamit mo modulo kapag gustong gumawa ng isang bagay sa paligid ng pambalot. Kaya kung gusto mo lamang ang mga numero ng isa sa pamamagitan ng walong, maaari mong gamitin ang modulo sa anumang ibang numero, at ito ay palaging magbalik ng numero mula sa zero sa walong. Kaya ilang examples-- kung mayroon kaming 55 modulo 10, Binibigyan ka nito lamang ang natitira sa 55 na hinati sa 10, na kung saan ay magiging 5. At pagkatapos ng tatlong modulo limang, sinuman hulaan kung ano na ang magiging? Tatlong. Kaya kung mayroon kang isang mas maliit na bilang bago ang modulo, hindi ito maaaring pumunta sa pantay-pantay. Ito ay zero. Kaya nagbabalik lamang nito ang numero mismo. Kaya walong modulo walong magiging? MAG-AARAL: Zero. Allison: Zero. Dahil dito napupunta sa pantay-pantay. 16 modulo 15? Madla: Isa. Allison: Cool. At pagkatapos ay ang huling isa lamang sa ipakita you-- maaaring nag-iisip, OK, kung ano ang pagkakasunud-sunod ng mga pagpapatakbo dito? Gawin unang hinati namin? Gawin unang modulo namin? Kaya modulo hold ang parehong karapatan sa pangunguna bilang division o pagpaparami, at ang kaliwang nag-uugnay. Kaya sa parehong paraan. Gusto mong palaging gawin panaklong, pagkatapos ay pagpaparami, division, at modulo sa pagkakasunud-sunod mula kaliwa papuntang kanan. Kaya karaniwang panuntunan. Ilagay lang ito sa parehong kategorya bilang division at pagpaparami. Kaya sa kasong ito, kami ay May 1 plus 2 ay nagbibigay sa amin 3. -Multiply namin na sa pamamagitan ng 2, kaya nakukuha namin 6. Modulo namin na sa pamamagitan ng 2, na kung saan ay nagbibigay sa amin? MAG-AARAL: 0. Allison: 0. At pagkatapos ay idagdag namin 2, kaya kami makakuha ng 2 sa huling kaso. Kaya modulo-- siguradong ka ng pagpunta sa maisip ng mga paraan upang isama na kapag naka-wrapping sa paligid ng alpabeto. Kung ikaw ay nasa Z at kailangan mong ilipat ang ipasa tatlong mga puwang upang makapunta sa C, may na buong konsepto ng wrapping sa paligid. Kaya mag-iiwan ko ito sa ka guys upang malaman kung paano eksaktong na iyong pupuntahan ay gumagamit nito. Ngunit talagang isang kapaki-pakinabang na tool para sa iyong pset sa linggong ito. Talagang gusto ko ito. Ito ay isa sa aking mga paboritong psets. Pagkatapos pagkatapos mong gawin ito, kung mayroon kang mga kaibigan, Maaari mo, tulad ng, magpadala ng bawat iba pang mga lihim mga mensahe at tiyakin na ito ay gumagana. Dahil ito ay i-decrypt ito o anumang. Maraming masaya. At iyon ay ang dulo ng seksyon. Tapos ko nang maaga. Mayroon akong pa rin ng 15 minuto sa mo guys, kaya kung mayroong anumang bagay na gusto mong balikan karagdagang, Gusto ko ay magiging masaya na gawin iyon. Ang anumang iba pang mga tanong sa ang iyong pset para sa mga mo na nagsimula o basahin ang spec. Anumang bagay na nai-usapan natin ang tungkol sa nakaraang oras at 15 minuto na nais mong akin sa uri ng pagsasaayos, nais kong maging masaya. O maaari naming tawagan ito tabla, at maaari mong lahat umalis at kumuha ng higit pang mga kendi sa iyo habang nagpapatuloy ka. Ngunit kung mayroong anumang matagal katanungan, mangyaring ipagbigay-alam sa akin. Maaari ka ring makabuo at makipag-usap sa akin pagkatapos. Nangangako ako hindi ako kumagat. Ano pa? Ang bawat tao'y Magandang? Pakiramdam ng lahat tulad ng maaari nilang pangasiwaan ang pset? Ka ng pagpunta sa maging masarap na guys. Office oras ang naroon para sa isang kadahilanan. Ayos. Oo. Well, sa kasong iyon, salamat mo ang lahat ng kaya magkano para sa darating na. Umaasa ako na makita ka sa susunod na linggo. Magkakaroon ng higit pang mga kendi. Maaaring may iba pang mga cool na bagay. At hanapin ko inaabangan ang panahon na sa pagkuha ng upang malaman ang lahat ng sa iyo sa taong ito.