ZAMYLA Chan: Uy, lahat. Maligayang pagdating sa na seksyon. Ngayon ay lamang ng pagpunta sa maging ang lahat ng mga pagsusulit suriin para sa iyong mga pagsusulit sa Miyerkules. Umaasa ako sa lahat Naaalala na mayroon sila ng isang pagsusulit sa Miyerkules. At kung hindi mo ginawa, mahusay, ngayon na-mapaalalahanan. Kaya Miyerkules tiyakin na lumabas para sa klase o iba pang mga kaluwagan bilang kinakailangan. Ikaw guys ay magiging kahanga-hanga. Ito ay magiging mahusay. At ako pagpunta sa gawin ang lahat ng magagawa ko upang makatulong na maghanda sa iyo ngayon para sa iyong pagsusulit ngayon. At din kung sakaling hindi mo alam, mayroong isang kurso session malawak na pagsusuri ngayon sa 07:00 sa Northwest labs room B103. Maaari mong makita muli sa akin para sa isang sumasayaw at iba pa bilang Ako ay humantong bahagi ng pagsusuri na session din. Kaya kung hindi ka maaaring makakuha ng sapat na ng akin ngayon, maaari mong dumating muli ngayong gabi. Ang lahat ng mga karapatan, kaya unang unang bagay. Ilang mga tip lamang pagsusulit bago namin talaga makisalamuha sa mga review. Kaya tulad sa anumang mga pagsusulit, pagsasanay ay tiyak tumulong sa iyo. Mayroong mga pagsusulit mula sa nakalipas na anim o pitong taon sa doon, kaya na ng maraming kasanayan materyal para sa iyo guys na magkaroon. At sa katotohanan, ngayon ay talagang lamang pagpunta sa ma-pagpunta sa anumang paksa na guys mayroong mga tanong sa pati na rin bilang gumagana sa pamamagitan ng mga problema sa pagsasanay mula sa pagsusulit zero. Kaya makikita ko magtapon up pagsusulit zero mula sa nakaraang taon sa dito, at maaari naming gumana sa pamamagitan ng anumang mga problema na guys nais na. Kaya pagsasanay. Na iyong pupuntahan upang simulan ang paggawa na ngayon. Code sa papel. Kaya oo, kung lahat ng tao maaaring aktwal na makakuha ng out papel, na makikita maging mahusay, dahil hindi ka pagpunta sa magkaroon ng iyong computer sa pagsusulit at pagsusulat ang code sa pamamagitan ng kamay ay madalas na mas mas mahirap kaysa sa maaaring asahan. Sanay ka lang na makita ito at i-type ito, at mayroon kang ang iyong mga compiler sa tumulong sa iyo kapag mayroon kang mga error, ngunit hindi mo makuha na sa pagsusulit. Kaya ito ay talagang mahalaga sa aktwal magagawang isulat ang code, at na kalamnan memorya ng paggawa ito sa pamamagitan ng kamay ay talagang makakatulong sa iyo. Kaya naming ka ng isang maliit na malapit. Ito ay Lunes. Ang iyong pagsusulit ay sa Miyerkules. Ngunit kung mayroon kang panahon, Talagang kumuha ng isang mga eksaminasyon mula sa huling taon o ang taon bago sa ilalim ng hadlang ng oras ng isang oras at kalahati. Magpatumba lang ng isang oras at kalahati ng oras, at umupo ang iyong sarili pababa, at gagana lamang sa pamamagitan ng mga problema bilang kung ikaw ay talagang pagkuha ito, dahil ang isa sa mga pinakamalaking bagay na narinig namin tungkol sa ang mga pagsusulit ay na sila ay napaka-haba. Ito ay may maraming mga materyales. May ng maraming mga katanungan, at karamihan ng mga tao ay hindi maaaring matapos. Alam ko na ganap kong hindi tapusin ang aking mga pagsusulit noong kinuha ko ang mga klase. Sa na tala, bilang isang mas kumportableng seksyon, maunawaan na ang kursong ito ay sinadya upang magsilbi para sa mga tao ng lahat ng antas. Ang buong dahilan na mayroon kami sa iyo hatiin mas kumportable, sa isang lugar sa pagitan ng, at mas kumportable ay upang uri ng gawin itong mas patas. At kung ikaw ay mas kumportable, ito ay hindi kailangan per se upang makakuha ng lahat ng bagay. Tulad ng kung ikaw ay pagkuha ng ang lahat ng bagay, gagawin mo marahil nasa mas kumportable na seksyon. Kaya malinaw naman ay hindi matalo up sarili masyadong matigas kung hindi mo maaaring tapusin ang pagsusulit. Dalhin ito mula sa akin, hindi ko gawin ito. Ako pa rin ng isang concentrator. Ako pagtulong pa rin turuan ang kurso. Magagawa mong multa. Lahat ng karapatan. At bilang wakas, makakuha ng ilang pagtulog. Malinaw sa anumang pagsusulit palagi naming sabihin na ito. Kraming ang gabi bago at hindi nakakakuha ng anumang mga pag-sleep ang not-- siguro kung na gumagana para sa iyo, pumunta para dito. Ngunit para sa karamihan ng tao, sa pagkuha ng ilang mga pagtulog, pagpapaalam sa iyong utak pahinga at bawiin bago pagdating sa para sa pagsusulit ay talagang makakatulong sa iyo. Gayundin habilin mayroong halos tiyak na kendi sa pagsusulit, kaya mayroon kang upang tumingin inaabangan ang panahon na. Ikaw guys ay pagpunta sa gawin mahusay. Ito ay magiging masarap. At ngayon sa susunod na oras at kalahati ko Susubukan at Prep mo bilang pinakamahusay na makakaya ko. Kaya ba akong magkaroon ng mga slide mula sa isa lamang lahat ng mga seksyon ng hanggang sa ngayon. Hindi ako pupunta upang pumunta sa pamamagitan ng ang lahat ng ito dahil iyon ay hindi naaakma sa isang oras at kalahati pati na rin bilang gumagana sa pamamagitan ng mga problema sa pagsasanay. Kaya sa halip mayroon akong isang listahan ng mga paksa. Ito ang lahat ng mga bagay na maaaring namin ang pagsusulit sa iyo sa. Kung mayroong anumang bagay na talagang jumps out na gusto mong balikan, na nais sa akin upang pumunta sa paglipas ng conceptually, Maaari ko bang subukan at bigyan ang sa iyo ng isang pangkalahatang-ideya doon. O kung nais mong lumipat sa sa kanan paggawa ng mga problema sa pagsasanay magkasama, maaari naming gawin iyon. Ito ay nasa sa iyo na guys. May mga hindi na marami sa inyo. Kaya ang anumang mo guys nais gawin. Gusto kong maging ang pinaka kapaki-pakinabang patungo sa iyo guys. Kaya Ipapaalam ko titingnan mo lamang. Madla: Ang isang bagay ay ang tsart na panatilihin namin sinasabi tungkol sa mga stack at ang kimpal. Lamang ang buong ideya sa likod na iyon at ano ang ibig sabihin iyon. ZAMYLA Chan: Oo, ang OK. Ito ay ang lahat ng mga paraan sa pagtatapos, kaya hayaan mo akong mag-scroll sa. Madla: Hindi namin kailangang gawin ito ngayon, ngunit ang kahit anong. ZAMYLA Chan: Mayroon bang anything-- ang isang ito. Ay ang ganitong uri ng fuzzy para sa mga tao? Madla: Oo, ako pangalawang iyon. At maaari rin naming huwag buffer overflow? ZAMYLA Chan: Buffer overflow? OK. Kaya buffer overflow ay medyo madaling makipag-usap lamang tungkol. Ito ay isa lamang buffers sa tingin mo tungkol sa ilang memory array na mayroon ka, i-right? Karaniwan naming makipag-usap tungkol sa buffer overflow kapag hindi ka naka-check kung magkano ang user ay paglalagay sa, i-right? At ang ideya pagiging may buffer overflow ay ang mga ito ay paglalagay sa malayo masyadong maraming data para sa espasyo na iyong inilaan para sa kanila, tama? Kaya kung sinabi mo, ibigay sa akin ang ilang mensahe, kami ay sa pag-aakala na sila ay pagpunta upang bigyan amin ng makatwirang mensahe sa haba. Siguro ng ilang mga linya, watnat. Kaya hindi namin suriin. Sa halip feed sila sa amin sa isang buong libro na ang isang mensahe, at ito overflows ang halaga ng puwang na iyon na inilalaan namin para dito. At ano ang mangyayari ay maaaring patungan mga lugar na ito ay hindi dapat. Kaya alam ko sinabi Propesor Malan isang bagay tungkol sa pag-atake ng buffer overflow. Kaya na kung saan ang user na kalooban ng pag-input ang ilang mga napakalaking dami ng data sa pag-asa na overwrites siya nakaraan sa dulo ng iyong buffer at pumapalit something-- Siguro Mayroon kaming kong mga slide in dito. Hindi sa tingin ko mayroon kaming mga slide in dito. Ngunit talaga siya overwrites ang ilang mga bahagi ng memorya na nagbibigay-daan sa kanya pag-access sa mga bahagi ng iyong computer na gagawin mo ay hindi normal na magkaroon ng access sa. Pinakamalaki bagay sa buffer overflow lamang maunawaan na ito ang mangyayari kapag hindi ka -check kung magkano ang iyong gumagamit ay paglalagay sa. Kapag ikaw ay hindi uri ng pagbabantay laban sa mga iyon. At sa pinakasimpleng nito bagay, ito lamang ang iyong mga user inputting isang napakalaking halaga ng data sa pagtatangkang patungan ng ilang seguridad bahagi ng iyong memorya. Iyon ang lahat ng ito ay. Kaya ito dito, stack at kimpal. Talaga ang lahat ng ito ay ay lamang isang representasyon ng memory at kung saan ang mga bagay ay naka-imbak. Iyon ay talagang uri ng ang lahat ng kailangan mong malaman. Ang pinakamalaking bagay na kailangan mong malaman ang mga that-- hayaan mo akong makita kung mayroong isang better-- dito. Kaya ito ay ang stack dito. Kaya stack ay gagawin sa lahat ng iyong mga pag-andar na kayo ay tumatawag sa anumang naibigay na oras. At kung ano ang mahalaga na tandaan pagpunta off ng nakaraang linggo na may malloc ay na hindi mo talaga magkaroon kinakailangang kontrol sa ito. Ito lahat ay depende sa kapag ang ilang mga mga function ay-e-execute. At kapag ang mga ito ay isinasagawa, ang mga ito may kung ano ang tinatawag na stack frame na pumunta dito. Kaya ito ang lahat ng uri ng mangyayari nang walang anumang tunay na input mula sa iyo. Isulat mo ang iyong mga programa, at hayaan ito tatakbo, at ng stack uri ng tumatagal pakialam ng sarili nito bilang na kailangan nito upang. Kaya kung sa pangunahing ka sa pagtawag kubo, na maipapasa up dito. Ito lumikha ng isang frame. Ngunit walang kung tahasan mong gawin ang upang likhain ang stack frame maliban sa isulat ang function na magsimula sa, OK? Ano ang uri ng sa ilalim ng iyong control ay ang kimpal na may malloc. Kaya kahit kailan mo malloc isang bagay, ikaw ay pagkuha ng memorya mula sa kimpal. At na memorya na mayroon, para sa kakulangan ng isang mas mahusay na salita, tahasang kontrol sa, dahil tandaan na may malloc ito ay isa lamang doon hanggang sa sabihin sa iyo kung hindi man. Para sa mga ng sa iyo kung sino napanood seksyon noong nakaraang linggo, ito ay mayroong hanggang sa sabihin mo ito upang pumunta ang layo. Ito ay magiging doon maliban kung kung hindi man ay sinabi hindi. Kaya ang kimpal ay isang bagay lamang maaari mong isipin bilang memory na mayroon kang kontrol sa. At ang mga lamang ang dalawang magkaibang mga malaking bagay. Iba pang mga kaysa doon, hindi mo kailangang mag-alala masyadong maraming tungkol sa stack at kimpal tanong o karaniwang higit pa lamang kung mayroon kang mga lokal na mga parameter o isang function magiging sa stack o ang kimpal. Malinaw sa kasong ito magiging ng stack. Kung naka-mallocing isang bagay, kung saan ay na nagmumula? Ang kimpal. Kung tumingin ka sa pagsasanay ng mga pagsusulit, mga sa pangkalahatan ay ang uri ng mga katanungan na mayroon sila. Hindi mo kailangang mag-alala masyadong maraming tungkol dito. Makakakuha ka ng higit pa sa tahasang tungkol sa stack at kimpal sa ibang pagkakataon o sa iba pang mga CS klase. Kaya lamang nagkakaroon uri ng isang pangkalahatang ideya ng kung ano ito ay Magiging mabuti, na aking lamang uri ng nagpunta sa paglipas. Ang anumang iba pang mga paksa? Oo? Madla: Maaari kang pumunta sa paglipas ng Mga Pointer muli talagang mabilis? ZAMYLA Chan: Mga Pointer? Huwag mo nais haka-haka pangkalahatang-ideya ng mga payo o huwag mong pagsasanay na may mga payo? Madla: Uri ng tulad ng syntax. ZAMYLA Chan: syntax Ang? Oo. OK, namin nakukuha doon. Oo, kaya ito ay lamang uri ng isang bagay kapag mayroon kang isang recursive function, sa bawat oras na recursive function ay na tinatawag, nagdadagdag lang ito sa iba pang mga stack frame. Halos isang halimbawa ng kung paano hindi mo talaga may kontrol sa mga frame sa iyong stack. OK, mga payo. Ang lahat ng mga karapatan, sa gayon paglikha ng mga payo. Tandaan, ito ay i-type lamang ang bituin. Kaya kahit anong uri ng data na na iyong pupuntahan ay tumuturo sa. Kaya ito ay magiging isang pointer sa isang int. Ito ay magiging isang pointer sa isang pansamantalang trabaho. Ito ay magiging isang pointer sa isang float. Kaya ito ay isa lamang ang anumang gusto mo ito na tumuturo sa, star ay kung paano mo ipinapahayag ang pointer, OK? Ngunit pagkatapos ay malinaw naman nakakakuha ng kaunti nakakalito kapag mayroon kang pointer o mayroon kang lagyan ng star ang anumang. Kaya ang malaking pagkakaiba ay kapag tapos ka declaring-- kaya mayroon kaming some-- kaya ito ay tumatagal ng ilang int bituin. Kaya ito ay ang ilang mga pointer tawag x papunta sa isang int, i-right? Kaya tandaan kung ano ang ginagawa ay ang tinatawag ng sistema x. At ito ay pagpunta sa May ilang mga address, i-right? Kaya sabihin nating lamang ito ay ang aming address. Mga Pointer matagal address. Kaya kung ano ang sinasabi ay sa ito lokasyon, pag-iimbak kami ng isang int. Kaya isa pang paraan na maaari naming isipin ito ay na ito ay ang ilan int. Hindi pa kami talaga nakatalaga ito sa kahit ano pa, ngunit ito lamang ay isang int. Kaya maaari naming gawin ay kung namin lagyan ng star ang x ay katumbas ng 5, ito ay magiging 5, OK? Ang sabi ni pumunta sa anumang x ay tumuturo sa, upang pumunta sa address na ito at gawin itong patas sa 5. Kaya magtalaga namin 5 sa address na ito, i-right? At pagkatapos ay kung gagawin mo ito, ito ay nagbibigay sa amin ang address ng. Ito ang address ng operator. Kaya kung ano ay ang address ng x? Hindi namin alam. Hindi pa namin na nakatalaga ito sa isang address. Maaari naming sabihin ito ay some-- na kami ngayong ibinigay isang address ito, kaya ang address ay 4. At talagang kung pumunta namin sa pamamagitan ng isang bagay tulad nito, uri ng kung ano ang ginawa namin. Kaya nagtatrabaho sa pamamagitan ng here-- ko mahanap nakakatulong ito kung gumuhit ka na pointer. Kung ikaw ay nasa iyong pagsusulit, ako lubos na inirerekomenda ang pagguhit ng mga kahon. Kaya ito una, int x ay katumbas ng 5. Ito lamang ay nangangahulugan na mayroon kaming ilang mga ilagay sa memory na 5, tama? At ang aming talahanayan dito ay nagsasabi sa amin na ito sa address na 0x04. At pagkatapos ay lumikha kami ng ilang pointer. Kaya sabihin masira ito down na paisa-isa. Kaya lumilikha ito ng ilang kahon papunta sa isang int, i-right? Ito ay pagpunta upang i-hold ang ilang mga address ng isang ito. Kaya ito ay ang ilang mga pointer. At ito tisa ay talagang maliit. Kaya mayroon kaming ilang mga pointer dito. At Sinasabi sa amin ng aming mga talahanayan na address ay 0x08. Ayos. At kami ay nagtatalaga ito sa address ng x. Tandaan, ang mga payo matagal address, OK? Kaya kung gusto naming upang i-hold x, mayroon kaming gamitin ang address operator, na ay ang ampersand, upang makuha ang address ng x, na sa kasong ito, 0x04. At pagkatapos ay kung kami ay ilang int kopya, ito lamang lumilikha ng ilang iba pang mga kahon na pagpipigil sa isang int tinatawag na kopya. At kung italaga namin ito sa this-- kaya ito ay tumutukoy dito. Kaya sinasabi nito pumunta sa kahit anong address pointer hold. Pointer hold address na ito, kaya nais naming pumunta sa paglipas dito, at sabihin namin, OK, kung ano ang sa dito? Ito ay 5. Kaya kopya ay magiging 5. Magkaroon ng kahulugan? Paano kung Sinubukan kong upang magtalaga ito sa pointer lamang. Ano ang pointer ng aktwal na katumbas? Ito ay maging anumang pointer ay naglalaman ng, tama? At pagkatapos ay kung ano kung ginawa ko ito? Ano ang gusto Kopyahin maging ngayon? Madla: 0x08. ZAMYLA Chan: Oo, ang address ng aming pointer. Ang anumang bahagi ng na iyon pangangailangan upang muling ipinaliwanag? Ayos. Mayroon talagang isang napaka masaya problema sa pagsusulit isa na maaari kaming mahigit na ay nagbibigay sa iyo ng higit pang mga kasanayan. Ang guys mula noong nakaraang linggo maaari sabihin mo ay hindi na masama. Nakakuha kami sa pamamagitan ng isang buong chart, at ang lahat ng ginawa mahusay. OK, kaya na pangkalahatang-ideya ng syntax ng mga payo. Pinakamalaki bagay ay unawa kung paano likhain ang mga ito, gawin ang tumutukoy, at address ng, OK? Ayos. Ang anumang iba pang mga paksa bago namin sumisid sa kasanayan. Gayundin kung kami ay pagpunta sa pamamagitan ng ang mga problema na kasanayan at mayroong isang bagay na gusto mo ng refresher, maaari naming gawin na masyadong. Mayroon ka bang isang bagay? Madla: Structs at naka-link na listahan. ZAMYLA Chan: Structs at naka-link listahan, OK. Kaya structs. Talagang Kami ay pagpunta sa ibabaw ito ngayong gabi masyadong. OK, kaya structs. Structs ay isa lamang lamang ng isang paraan para sa iyo upang i-hold maramihang mga halaga ng iba't ibang mga uri. Kaya sa isang array kami ay constricted sa isang uri ng data. Ang aming array alinman ay dapat na numero lamang, o maging karakter lamang, o maging sa kamay lamang. Pero siguro kailangan mong naglalaman ng higit sa na. Siguro kailangan mong hold-- kung kausap mo tungkol sa isang mag-aaral, ka ng pagpunta sa kanilang mga bahay, ang kanilang Numero ng ID, ang kanilang edad, kung saan sila nakatira, tama? At sa lahat ng mga ay iba't ibang uri ng mga uri. Kaya hindi ka maaaring mag-imbak mga lahat sa isang array. Kaya ano ang maaari mong gawin ay sa iyo Maaari lumikha ng isang struct, na maaari mong isipin bilang iyong sariling personal na uri ng data. Kaya sa halip ng pagkakaroon lamang ints at sa halip ng pagkakaroon lamang sa kamay, maaari kang magkaroon ng isang uri ng mag-aaral na mayroon ng lahat ng mga patlang na ito sa loob nito. Kaya ang paraan ng pagsisimula ng namin aming structs is-- talaga dahil aking pagsulat ay kahila-hilakbot, namin ay pagpunta sa lumipat sa pagta-type. Mang-akit. OK, kaya kung gusto naming lumikha ng isang struct-- Lamang ako ng pagpunta sa ito pababa dito. Balewalain ang sa pangunahing anumang na gagamitin namin mamaya. Kaya sa paraan na nais mong gawin ito ay may typedef struct. At tumawag na lang ang mag-aaral na ito ipaalam dahil iyon ang kung ano ang gamit ko. OK, kaya typedef ibig sabihin ikaw ay pagtukoy sa isang bagong uri, OK? May mga nuances sa kapag gumawa ka isang struct lamang kumpara sa isang typedef struct. Para sa lahat ng mga layunin at mga layunin, mo guys lamang pagpunta sa ipinapalagay na ang mga ito humigit-kumulang sa parehong at lamang gamitin typedef struct sa ngayon. Makikita itong maging paraan nang higit pa maliwanag sa iyong sa tabi P-set kung ano ang mga pagkakaibang ito, ngunit Hindi sa tingin ko kailangan mong mag-alala tungkol sa na ngayon. Gagawin ko mas gugustuhin mong malaman kung paano lumikha ng isa, -access ito, at magtalaga [? halaga. ?] Ang isang bagong uri ng struct, at tumatawag namin ito mag-aaral. Kaya pagkatapos naming tapos ka na sa paglikha ng mga ito, para sa lahat ng mga layunin at mga layunin, magkakaroon ka ng isang uri ng tinatawag na mag-aaral. At maaari mong isipin na ito tulad ng isang uri tulad ng isang int, o isang float, o isang pansamantalang trabaho. Ito ay isa lamang uri, OK? Kaya sa isang ito, ano ang mayroon kaming? Mayroon kaming siguro ng pangalan. Kaya marahil gusto namin ng pangalan ng string. At mayroon kaming siguro isang int na ng ID. At mayroon kaming isa sa na numero ng telepono. At some-- namin tingnan natin. Ano pa ang maaari naming magkaroon? Magkakaroon kami ng ilang mga string sa kanyang bahay. Ang lahat ng mga bagay na ang isang mag-aaral ay. Kaya ito ay lumilikha ng isang struct ngayon. Kaya kung paano maaari naming lumikha ng isang mag-aaral? Kung mayroon kami ng ilang mga variable na pagpunta sa makipag-usap tungkol sa Walker dito, kaya have-- namin kami lang pagpunta sa tumawag ito panlakad. Kailangan siya ng isang uri. Ano ang iyong uri? Madla: Mag-aaral. ZAMYLA Chan: Mag-aaral. Kaya ito ay lumilikha lamang ng isang bagay na maaari mong isipin na may lahat ng mga bagay na ito. Nalikha mo lamang ng isang panlakad mag-aaral. Kaya ngayon ay kailangan naming magagawang upang italaga ang lahat ng mga ito, tama? Kaya ang sinuman tandaan kung paano -access namin sa loob ng isang struct? Madla: Panahon. ZAMYLA Chan: Panahon Mismong. Kaya kung gusto naming magtalaga sa kanya ng isang pangalan, maaari naming gawin iyon. Malinaw na gagawin na ito be-- bahaging ito dito ay nasa loob ng pangunahing, kaya talagang ipaalam sa akin gawin ito. Ipinahahayag nito sa itaas ng pangunahing kaya maaari itong naming gamitin sa loob ng pangunahing. Kaya ngayon ay nais ko itong gawin ID, at kami lang gumawa ng ilang doon, at pagkatapos ay namin magtalaga ng bahay. Daya. Ayos. Kaya ngayon dapat naming kailanman kailangan mong i-access anumang bagay sa ibang pagkakataon on-- siguro we-- kung sakaling kailangan namin upang ma-access ang anumang bagay, gawin na lamang sa isang int kopya ng ID ipaalam. At gusto ko upang kopyahin ID ng Walker ay sa ito. Paano ko maaaring gawin ito? Kailangan mong i-access sa loob ng panlakad struct upang [? pumunta sa na?] [? E?]. At sa parehong paraan na aming nakatalaga ito up dito, kung paano maaari naming i-access ito kung kailan namin nais na magbigay ng halagang iyon ng iba pang bagay? Madla: Walker.id. ZAMYLA Chan: Oo, eksakto. Kaya na halos lahat kailangan mong malaman para sa structs. Kailangan mo lang mag-isip ng ang mga ito bilang isa pang variable. Isa lamang lumikha ng iyong sariling uri ng variable, OK? Gamitin mo ito na idedeklara variable sa anumang paraan. Narito panlakad ay isang variable pa rin. Ito lamang ay sa halip na ngayon ng isang uri ng mag-aaral ng isang uri int, o isang uri ng string, o isang uri ng pansamantalang trabaho. Kung nagkaroon ng isang madaling paraan upang makipag-usap tungkol sa structs ito, ay literal lamang lumikha ng iyong sariling uri ng data na nagbibigay-daan sa pangkat lahat ng mga iba't-ibang uri ng data nang sama-sama. Sinusuportahan ba na saysay? OK. Iyon at pag-access sa tuldok. Halos lahat ng kailangan mo. OK, kung saan ang aking PowerPoint pumunta? Narito ito ay. Well ito ay kakaiba. Aha. OK, cool. Anumang iba pang mga bagay o ginagawa namin Gusto upang magtungo sa pagsasanay? Pagsasanay? OK. Kahanga-hanga. Pupunta ako upang lumabas na ito. Kung sa anumang punto sa panahon ng mga tanong na kasanayan, Ikinagagalak kong magbagong-tatag at pumunta sa pamamagitan ng mga bagay. Kaya Mayroon akong pagsusulit ZERO up dito. Kung nais mong guys upang hilahin ito hanggang sa iyong computer, i lamang tumagal ng limang minuto upang mag-browse sa pamamagitan ng. Siguro pumili ng ilang tuktok mga tanong na gusto mong balikan. Kung hindi mo guys maaaring magpasya, kami ay lamang mabagal magsisimulang gumana sa pamamagitan ng mga ito, ngunit ako sigurado doon ay magiging ilang mga tanong na ikaw ay partikular na sabik na makipag-usap tungkol sa at may sa akin gumagana sa pamamagitan ng sa iyo lahat. Kaya pumunta lamang magpatuloy at tumagal ng limang minuto. Mag-scroll sa. At ito ang pagsusulit mula 2013. Madla: Zero? ZAMYLA Chan: Oo, quiz zero. Hindi namin ginagawa pagsusulit sa isang bagay. Gagawin namin ang na sa loob ng ilang linggo. Gayundin para sa mga mo na ay dumating sa huli, mayroon kaming kendi, kaya gagawin mo guys nais kendi? Madla: Oo naman. ZAMYLA Chan: lang ako pagpunta sa pumasa sa paligid. Uy, kung ikaw guys makarating dito maagang, makakakuha ka ng higit pang mga kendi. Iyon ay pinong. Ben, ang gusto mong kendi? Gusto mong ang ilan sa mga ito? Mayroong paggalikgik kung din sinuman ay nais paggalikgik. Makikita ko bang iwan ang mga ito dito at dito. Huwag mag-atubiling. Huwag mo nais ito? Madla: Lahat ng set. Salamat sa inyo. ZAMYLA Chan: At nagkaroon ako ng magandang maliit na tumpok doon sa simula. Ikaw guys makakuha upang kumuha ng pagsusulit at Nakukuha ko upang magkaroon ng isang pagsusulit grading party. Ito ay ganap na kaguluhan. 900 pagsusulit. Ito ay magiging kaya magkano masaya. Magiging mahusay. Ako ay medyo sigurado na isa sa mga pinakamalaking bonding staff gabi ng taon. Ay sinuman tapos na pagsusulit zero mula sa pa noong nakaraang taon out ng pag-usisa? Madla: Mga Bahagi ng ito. ZAMYLA Chan: Mga Bahagi ng ito, OK. Nagkaroon ka ba tanong sa anuman sa mga ito? Madla: ko na napunta sa mga oras ng opisina. Salamat kahit na sa iyo. ZAMYLA Chan: Well, sana pa rin ito uri ng mga kapaki-pakinabang. Kapag pumunta ka sa oras ng opisina para sa iyon? Madla: My tf nagkaroon sila ito hapon. ZAMYLA Chan: Oh. Sino ang inyong tf? Madla: Fred [? Wujaya?]. ZAMYLA Chan: Maraming TFs. Kaya maraming. Lahat ng karapatan. Sinuman ay may anumang upang simulan na maaari kong -lista na gusto naming upang gumana sa? Ipinapalagay ko ang mga payo isa sa mga mesa. Pumunta para dito. Madla: Siguro ang paglipat isa. ZAMYLA Chan: Kaya bilang 12? Ipinapalagay ko bilang 8 at 9 ay marahil mga taong nais upang pumunta sa paglipas. Madla: At 10 at 11. Alam mo At guys: ZAMYLA Chan makakakuha ka ng isang pahina ng mga tala, tama? Madla: Oo, kaya kung ano ang mga namin pinapayagan ilagay sa iyon. ZAMYLA Chan: ka pinahihintulutang upang ilagay ang anumang nais mo. At ito ay maaaring nai-type. Bilang malayo bilang natatandaan ko, atin ay na-type. Madla: Maaari mong gawin bumalik at sa magkabilang panig? ZAMYLA Chan: Oo, sa magkabilang panig. Kaya ang isang bagay tulad ng kimpal at [? bumalik dulo?] kimpal, ang pagpapatakbo ng iyong ulit. Kapaki-pakinabang. Siguro maliit na bagay tungkol sa mga payo upang ipaalala sa iyo. Syntax para sa mga bagay. Ang pagkakaroon ng tulad ng isang balangkas ay maaaring maging napaka-kapaki-pakinabang na programa. Alam ko na lagi kong nakalimutan kung ano mismo ang Ako ay dapat na magsulat para sa int pangunahing, dahil palagi kong kopyahin lamang -paste mula sa aking mga nakaraang hanay ng P o ito pa doon, kaya Hindi ko kailanman talagang isinulat ito, nang sa gayon ay maging kapaki-pakinabang super pagkakaroon iyon. OK, kaya bakit hindi namin magsimula sa numero 8 pagkatapos? Lahat ng karapatan. OK. Kaya isaalang-alang ang programa sa ibaba. Kaya malinaw naman kapag nakita namin mga payo, ito ay marahil isang magandang ideya upang simulan ang pagguhit, tama? Gusto kong malaman kung saan ang lahat ng aking malaking piraso ng tisa nagpunta. Ito ay uri ng nakakainis. Kaya mayroon kaming dito ilang mga pag-andar swap na pupuntahan tumagal sa dalawang mga payo. Kaya sa kasong ito, ang mga ito Dapat talagang maging paglipat mga bagay kumpara sa aming orihinal na swap function na tatagal lamang sa mga kopya. Kaya kung ano ang pagpunta sa gawin is-- simulan na may pangunahing ipaalam, dahil iyon kung saan ang 1 ay. Kaya mayroon kaming ilang mga int x 1. Mayroon kaming ilang mga y na katumbas ng 2. At pagkatapos ay mayroon kaming ilang mga swap na pupuntahan tumagal iyon. At tingnan kung ano ang mayroon kami dito ipaalam. At sa aming table-- oh batang lalaki. Paano ako pagpunta sa gawin ito? Pupunta ako sa gumuhit ng aking talahanayan sa paglipas dito. Halos ginagawang doon. Bahagya na ginagawa itong. 1, 2, 3, 4, 5, 6, 7. At bigyan sila sa amin na 1 ay 1, at 1 2. Ayos. Kahanga-hanga. Kaya 3. At mayroong [? isang 1.?] Lahat ng karapatan. At pagkatapos ay address ng x ay 0x123. At y ay Ox127. Ayos. Lahat ng karapatan. Gusto kong magtrabaho sa iyo guys sa para lamang like-- trabaho dito sa mga tao sa paligid mo. Nais kong sinabi na habang ako ay pag-set up. Magtrabaho dito. Subukan at gumagana sa ito sa pamamagitan ng inyong sarili para sa ilang minuto, at pagkatapos ay ako ay gumagana sa ito sa iyo. Dahil ang tanging paraan kung ikaw talaga pagpunta sa matuto ay sa pamamagitan ng paggawa nito ang iyong sarili. Huwag mag-alala. Good luck. OK, bakit hindi namin mabagal magsisimulang gumana sa pamamagitan ng ito. Kaya lahat ng tao ay nakakakuha pagkatapos ng linya ng isa, x ay 1. Pagkatapos ng dalawang linya, x at y ay 1 at 2, i-right? Ayos. Kaya tatlong linya ay kung saan bagay makakuha ng mga kagiliw-giliw na siyempre. Kaya kung ano ang iyong ginawa namin dito ngayon kami swapped. Sabihin namin na x at y may mga puntos na iyon, o ang mga ito ay ang address ng x at y, tama? Kaya sa kasong ito, tatlo, ano ang halaga ng isang? isang ay ipinasa sa, Nabigyan ang halaga ng address ng x, tama? Madla: 1? ZAMYLA Chan: Kaya magdagdag namin ito sa x? Ano ang address ng x? Madla: 0x123. ZAMYLA Chan: Eksaktong. Ngunit kung ano ay isang aktwal na tumuturo sa? Kung kami ay sa dereference ng, kung ano ang halaga nito ay magbibigay sa amin. Madla: 1. ZAMYLA Chan: gagawin Ito bigyan kami ng 1, dahil kung ano ang sinasabi namin ay pumunta sa address, sabihin sa amin kung ano ang halaga ay. Kaya kung ano ay b? Madla: 0x127. ZAMYLA Chan: Eksaktong. Kaya ito ang address ng y. At pagkatapos ay kung ano ang [? dereference? ?] Madla: 2. ZAMYLA Chan: OK, kaya ngayon apat. Sinabi kami ng isang ay equal-- na rin ngayon hindi namin tapos int temp ay katumbas ng bituin ng isang. Kaya kung ano ang mga pagbabago? Mayroon lamang isang bagay na ang mga pagbabago dito. Ano ito? Madla: Temp. ZAMYLA Chan: temp Ang. Upang maaari naming muling isulat ang lahat ng mga ito. Ang isang mahusay na diskarte para sa mga ay lamang ang pag-uunawa kung ano ang mga pagbabago, dahil ang pinakamadalas mayroon lamang isang bagay na pagpunta sa baguhin sa anumang naibigay na punto, OK? Kaya nagtakda kami temp. Ngayon ang aming susunod na punto, limang, namin ginawa star ang isang katumbas ng star b. Kaya kung ano ang mga pagbabago ngayon? Madla: Lagyan ng star ang isang. ZAMYLA Chan: Lagyan ng star ang isang, upang lahat ng iba pa ay mananatiling pareho. At ano ang lagyan ng star ang isang katumbas? Madla: 2. ZAMYLA Chan: 2. Kaibig-ibig. Kahanga-hanga. OK, at pagkatapos ay mayroon na ngayong namin simulan b ay katumbas ng temp. Kaya ang tanging pagbabago bagay ay bituin b. Lahat ng iba pa ay mananatiling pareho. At ano ang star b katumbas ngayon? At natapos ang table. Dahil ngayon sa dulo, kung sabihin namin x at y, alam namin na sa ito point-- alam namin na kapag namin Binago ang lagyan ng star ang isang 2, kung ano na ang ginawa ay sinabi ito OK, sa tugunan ang 0x123 dito, baguhin ito. Ngayon ito ay 2. At pagkatapos ay sa puntong ito, namin sinabi OK, pumunta sa lagyan ng star b. Kaya pumunta sa address na ito sa 0x127 at gawin itong isang 1. Kaya ngayon sa pinakadulo nagtatapos kapag talaga namin bumalik para sa pangunahing, talaga kami na x ay katumbas ng 2 at y ay katumbas ng 1. Ang bawat tao'y may mahusay na? OK, cool. Bilang 9. Ikaw guys gumagana sa ito. Pupunta ako sa set up ng isang board upang maaari naming gumuhit sa pamamagitan nito. Makikita ito ay isang sabog. Ang malaking mga talahanayan ay maaaring maging talagang nakakatakot, alam ko. Ngunit kung magdadala sa kanila ka lamang sa isang hilera sa isang oras, kumuha sila mas nakakatakot ng maraming. Lahat ng karapatan. Kaya sa iyo na ito ay magkakaroon ng Sumailalim pangunahing unang, tama? Initializes x at y at pagkatapos ay sumusubok na magpalit ang mga ito. Kaya kahit magpalitan ay sa itaas, tunay na paraan ito Pupunta ay na kami ng pagpunta sa pamamagitan ng mga pangunahing, at pagkatapos ito ay pagtawag hanggang sa magpalit, ang lahat ng karapatan? Kaya alam ng lahat ng tao na iyon. Kaya kung alin ang gagawin mo Gusto guys na magsimula sa? Ay sinuman talagang sigurado tungkol sa isa sa mga ito? O kahit na bahagyang ba? Bakit hindi simulan namin sa x? Ano sa tingin namin ay x? Madla: 1. ZAMYLA Chan: 1. Kaya pagkatapos ay kung bakit ay 2. At iyon ay dahil sa malaking pagkakaiba dito ay na lang kami pagpasa ng mga kopya sa, i-right? Hindi namin ang pagpasa sa pamamagitan ng reference. Kaya kahit sa dulo ng ang x programa at y na nanatili sa parehong, dahil ang mga ito ang mga kopya lamang sa swap function. Sila ay hindi talagang baguhin, i-right? Kaya kung ano ang tungkol sa a, b, at temp? Madla: ang ay b. ZAMYLA Chan: isang ay b. Kaya sa kasong ito, ang isang noon ay x, na kung saan ay 1, ang tama? Kaya dito, ni maglakad sa pamamagitan nito ipaalam. Kaya sa simula, ang isang at b ang 1 at 2 at hindi tinukoy. Kaya orihinal na temp ay makakakuha ng nakatalaga sa isang, kaya temp ay 1. ng ay katumbas sa b, Kaya makuha namin 2, at b ay katumbas ng temp. Ngayon makuha namin 1. Madla: Sa mga nakaraang isa ito swapped ampersand x at ampersand y. Ano ang mga eksaktong ibig sabihin na? ZAMYLA Chan: Kaya nangangahulugan na na naka pagpasa sa pamamagitan ng reference. Kaya nangangahulugan na ikaw talaga pagpasa sa mga address kung saan x at y ay naka-imbak. Madla: Ngunit ikaw ay hindi pagpapalit ng address. ZAMYLA Chan: Ikaw ay hindi pagpapalit ng address. Ka pagpapalit kung ano ang sa loob ng mga ito. Tulad ng kung ano ang address na iyon, at iyon ang dahilan kung bakit ito gumagana. Kumpara sa programa dito kung ano ginagawa mo ay lumilikha ka ng kopya. Kaya mayroon kang x at y na umiiral bilang kanilang sariling mga variable dito. Ngunit kapag kayo na ipasa ang ang mga ito sa swap, ito ay parang lumilikha ka ang buong iba pang mga hanay. Kaya ikaw ay hindi talaga makabagbag-damdamin x at y. Madla: Kung ampersand x ay kung ano ang sa ang address ng x, kung ano ang lagyan ng star ang x maging? ZAMYLA Chan: Ampersand x ay kung ano ang ang address ng x, pagkatapos ay star-- na rin, sa kasong ito, x ay hindi isang pointer. Madla: Oh, OK. Kaya gawin mo lang ito dahil ito ay hindi isang pointer. ZAMYLA Chan: I-right. Maaari mo lamang gawin bituin ng isang bagay na ang isang pointer. Siguro maaari mong gawin ito sa mga bagay na Hindi, ngunit na ang mag-compile gawin na nakatutuwang bagay ang mangyayari. At hindi ako nang eksakto sigurado kung ano ang mangyayari. Maaari mong palaging gumawa ng mga address ng isang bagay, ngunit hindi mo magagawa dereference isang bagay na hindi isang pointer. Kung na saysay, na isang mahusay na pagkakaiba na magkaroon. Kaya hindi masyadong masama, tama? Ang mga talahanayan ay sana pagkuha ng bahagyang mas mababa nakakatakot. Lahat ng karapatan. Ah, ang saya bago. Kaya ngayon, sumusulat ng iyong sariling code. Kaya ako pupunta upang ipaalam sa iyo guys gumagana sa ito para sa halos apat na minuto, at pagkatapos ay maaari naming makipag-usap tungkol sa mga paraan upang lapitan ito. Huwag mag-atubiling makipag-usap sa mga tao sa paligid mo. Gayundin ito ay kawili-wili. Ito ay tulad ng lahat ng batang babae seksyon ngayon. Medyo kapana-panabik. Maliban sa Chang. Ngunit Chang ay hindi tunay na bahagi ng seksyon. Kahanga-hanga. Perpekto. Kaya ako ay magbibigay sa iyo ng ilang mga pahiwatig. Sa kaso kung saan mayroon kang higit sa isang character, kung saan mayroon kang ibang bagay tulad ng 123 o 1000 mga bagay, kailangan mong ma-loop sa pamamagitan ng at i-convert ang bawat isa sa mga iyon. Kaya mayroong ilang mga paraan na maaari mong gawin iyon, ngunit tiyak ka ng pagpunta sa may isang para sa loop sa isang lugar doon sa loop sa pamamagitan ng mga ito, na uri ng tulad ng giveaway na may kahit na tawagan strlen, na kung saan ay uri ng bang oh marahil nais mong gamitin ang haba ng string sa ilang mga paraan. Lahat ng karapatan. Kaya ano ang gagawin mo guys sa tingin ay maaaring maging isa sa mga unang bagay na gusto naming gawin? Mayroong ilang mga kaso in dito kailangan naming account para sa, i-right? Alinman sa mayroon kaming isang bagay na walang halaga. Ano ang mayroon kami? Cases. Null. Mayroon kaming kaso na ito ay may bagay maliban sa 09, tama? Kaya sabihin nating mayroon itong mga titik. O mayroon kaming mga kaso na wasto. Tatlong mga kaso na maiisip. Kaya kung alin sa tingin ninyo ay maaaring maging ang pinakamadaling isa upang alagaan muna? Madla: Walang bisa. ZAMYLA Chan: kaso ay walang bisa. Kaya kung ano ang ginagawa namin doon? Madla: [hindi marinig]. ZAMYLA Chan: Oo. At ano ang gusto kong gawin? Madla: Bumalik 0. ZAMYLA Chan: Eksaktong. Kahanga-hanga. OK. Kaya ngayon case na ito ay may mga titik at ang kaso na ito ay wasto. Maaari talagang kami na ang bahala ng ito sa loob ng isang loop, OK? Kaya isang paraan upang gawin it-- kung ano ang maaaring maging isang simpleng paraan upang masuri kung ito ay wasto. Nais namin na kailangang pumunta sa pamamagitan ng bawat titik at gawin kung ano? Madla: Tingnan kung in-- ZAMYLA Chan: I-right, maaari mong tingnan kung ito ay sa pagitan ng 0 at 9, tama? At pagkatapos ay sa kaso na ito ay wasto, kami ay pagpunta sa mga end up iterating sa pamamagitan ng ang aming mga string pa rin, tama? Kaya bakit hindi namin subukan at pagsamahin ang mga ito sa isa. Kami ay pagpunta upang umulit sa pamamagitan ng ang string, at bilang namin gawin iyon, kami ay pagpunta sa unang gawin ang isang tseke upang makita kung sulat na o kung na character ay wasto. Kung ito ay, kami ay pagpunta sa gawin ang mga operasyon na kailangan namin upang i-convert ito. Kung hindi man ito ay bumalik 0, tama? Kaya bago namin gawin iyon, namin Marahil ay nais ng ilang mga variable maaari naming ibalik sa dulo na magiging aming mga aktwal na halaga. Kaya kami ay pagpunta sa initialize ang ilang mga halaga sa 0. At ito lamang ay kung paano namin magsimula. Kaya pupuntahan ko mapupuksa ang ito. Kaya kung paano kami makapupunta sa umulit sa pamamagitan ng ang string na ito. Madla: Para sa loop. ZAMYLA Chan: A para sa loop. Kaya kung ano ang aming para sa? Madla: i ay 0. ZAMYLA Chan: MM-Hm. At ano ang mga iterating namin hanggang? Madla: ang haba ng STR s. ZAMYLA Chan: OK, tandaan na ngayon mayroong isang mas mahusay na paraan. [Hindi marinig]. Madla: Oo, maaari naming gawin n ay katumbas ng. ZAMYLA Chan: Eksaktong. Madla: i ay mas mababa sa n. ZAMYLA Chan: At bakit Gusto gusto naming gawin iyon? Tandaan mo ba ang dahilan? Madla: Mayroon kaming upang muling kalkulahin ito. ZAMYLA Chan: Becasue ganitong paraan mo mayroon lamang upang makalkula ang strlen-sabay. Kung gagawin mo i ay mas mababa sa strlen s, na ang ibig sabihin nito recalculates ang haba bawat oras patakbuhin mo ang para sa loop, na kung saan ay hindi isang malaking gastos ng enerhiya, ngunit ito ay mas mahusay na kasanayan upang subukan at gumawa ng mga bagay tulad na isang beses. Maliban siguro mayroon kang isang nakatutuwang string na pagbabago sa bawat pag-ulit. Ngunit kung ito ay naglalagi sa parehong, i-save ito. Lahat ng karapatan. At pagkatapos ay i plus plus. Kahanga-hanga. Kami ay sa aming mga paraan. Madla: Talagang mabilis. Una, kaya hayaan sabihin ng namin lamang ginawa i mas mababa sa strlen ng s, sila grading sa amin sa disenyo sa lahat o kawastuhan lamang? Hindi ito. Kami ay grading sa kawastuhan para sa mga pagsusulit Sa pagkaalam ko. Hindi ako makagawa ng isang kumpletong sa garantiya, ngunit para sa pinaka-bahagi, karamihan ay kawastuhan, dahil ikaw ay sa ilalim ng maraming oras hadlang. Karaniwan itong nangangahulugan Disenyo mayroon kang oras na mag-isip tungkol sa kagandahan ng iyong sitwasyon. OK, kaya kami ay iterating sa pamamagitan ng. Kaya kailangan naming alinman suriin upang makita kung ito ng character ay may-bisa o kung maaari kaming magsagawa ng aming normal [? isang upang i?] function. Maaari kaming mag-alala tungkol sa kung ano na sa isang segundo. Kaya bakit hindi namin take-- kung maaari sa tingin sinuman tungkol sa isang paraan upang suriin upang makita kung ito ay may-bisa. Alam namin na ito ay magiging ilang kung kondisyon, tama? At tandaan na ito ay sa ASCII, kaya kung paano maaari nakikita namin kung wala 0,1, 2, 3, 4, 5, 6, 7, 8, o 9. Madla: Kung alpha. ZAMYLA Chan: Kaya kung alpha gagawin ipaalam lamang sa amin kung ito ay isang liham. At kung bibigyan nila kami ng isang simbolo, ito ay hindi pa pa rin ng pagpunta sa check. Kaya kung makuha ang iyong ASCII talahanayan, alam namin na 0 hanggang 9 ay nasa isang segment. Sabihin mo sa akin ang mga numero na sila tumutugma sa kung maaari. Madla: 40. ZAMYLA Chan: Kaya ang hanay ay tulad 40-- Madla: Baka. 48-57. Hindi ako sigurado. ZAMYLA Chan: 40-57? Madla: 48, sa tingin ko. ZAMYLA Chan: 48-57. Kaya alam namin na ang mga ASCII symbols-- kung ang halaga ASCII ay hindi sa pagitan ng 48 at 57, ito ay hindi wasto, tama? Kaya maaari naming gamitin iyon upang aming kalamangan posibleng? Paano kami makapupunta upang makakuha ng ang titik, unang-off? Paano kami sa pag-access ito ang katangian? Madla: mga bracket i. ZAMYLA Chan: MM-Hm. Dahil maaari naming isipin mga string bilang array, alalahanin. Kaya kung ano ang nais naming sabihin? Gusto naming sabihin kung ito is-- Bibigyan kita ng isang pahiwatig. Ito ay isang mas mababa. Ano sa tingin mo ito Kailangang mas mababa kaysa? Madla: 57? ZAMYLA Chan: 47, tama? Ngunit ito rin ay kumakatawan na bilang ka ng 0 sa iisang [? spokes?], dahil iyon ang character na 0. Maaari mo ring ilagay 47. Ang pagkakaroon ng talahanayan ASCII, pati na nakikita, ay isang bagay lamang dapat mayroon ka sa iyong pagsusulit sheet. Kaya kung ito ang kaso, kung ito ay isang mas mababa sa 0-- hindi kinakailangang at. Lamang ito ay alinman sa pagpunta sa maging mas mababa o mas mataas kaysa 9. Kaya mo maaaring punan ang huling para sa akin? Kaya o s ng i ay kung ano ang, Rhea? Madla: Mas mataas sa 9. ZAMYLA Chan: Mayroon. Ay na magkaroon ng kahulugan sa sa lahat, kung paano namin nakuha doon? Ang mga problemang ito, ang mga ito ay tulad ng isang beses sa iyo tingnan ang mga solusyon na ito, tulad ng oh, OK. At ito ang dahilan kung bakit pagsasanay ay makakatulong sa iyo. OK, kaya bumalik kami 0. Kaibig-ibig. Lahat ng karapatan. Kung hindi ano ang gusto naming gawin? Ito ang mga kawili-wiling bahagi kung saan ito ay isang kaunti pa tulad ng math kumpara sa CS sa aking opinyon. Sinuman mayroon ba ng ideya ng kung paano namin maaaring gawin ito? Kaya ang mahalagang bagay sa Napagtanto ay ang unang character kami ay paglalaan ay magiging ang pinakamataas na pagkakasunud-sunod digit, i-right? Kaya kung naghahanap kami sa pag-convert 123, sa unang pagkakataon umulit namin ay magiging 1, ngunit kailangan namin na maging 100 sa katapusan, tama? Kaya isang bagay na maaari mong gawin ay ang sa bawat kasunod na digit kumuha ka, i-multiply ang iyong mga halaga sa pamamagitan ng 10, nang sa gayon ay sa pamamagitan ng mga oras na maabot mo ang katapusan, ang lahat ng bagay ay Nilipat paitaas, tama? Kaya ang unang pagkakataon na patakbuhin mo ang ito, mayroon kang 1 bilang iyong halaga. Pangalawang beses mong patakbuhin ito, mo -multiply ang iyong halaga sa pamamagitan ng 10. Maa-update ito ito upang maging ngayon 10, at idinagdag mo sa iyong susunod na halaga. At pagkatapos mong i-multiply na sa pamamagitan ng 10 at idagdag ito sa iyong susunod na halaga. At ito ang dahilan kung bakit sinasabi nila ito ay mas tulad ng pagsubok algorithm ng math kumpara CS, ngunit lumihis sa pinag-uusapan ko. Hindi ko isulat ang mga pagsusulit. Kaya isang bagay na maaari naming gawin ay namin sabihin beses na halaga ay katumbas ng 10. Kaya ito ay pagpunta sa shift ang iyong digit na beses sa bawat oras. At pagkatapos ay nais lang naming idagdag. Gusto naming idagdag sa kung ano ang Nalaman lamang namin, tama? Kaya paano namin aktwal na-convert ang aming ASCII na character sa numero ng na kumakatawan ito? Kaya alam namin na 0 ay katumbas ng 47, tama? Kaya kung 0 ang 47, kung ano ang Gusto dapat nating gawin dito upang aktwal na gawin itong maging isang int ng 0? Madla: Ito ay 48. ZAMYLA Chan: 48? Sorry. Gusto naming ibawas 48, tama? Tandaan ASCII matematika? Maaari naming ituring ang mga ito lamang tulad ng normal na numero. Kung ituturing mo ang mga ito tulad ng mga numero, maging sila ng mga numero mabisa. Kaya kung mayroon kaming s ng i, na sabihin sabihin sa kasong ito ay katumbas ng 0. Kaya s ng i sa kasong ito magiging ASCII-- ang ASCII int para dito ay magiging 47. Kaya maaari naming subtract-- o 48. Maaari mong gawin iyon, ay isang paraan. Sinuman Alam ba ng mas mahusay na paraan maaari naming gawin 48? Sinabi lang namin 0 is-- pumunta sa ang mga ASCII na maaari mong gawin quote 0. Kaya ang ginagawa nito uri ng gumawa -unawa kung paano ito gumagana? Madla: Sa puntong ito, ay ang halaga ng 0 dahil kahit na-multiply mo ito sa pamamagitan ng 10, ikaw ay nagsisimula out na may mga zero, kaya dapat itong lumipat? ZAMYLA Chan: Kaya sa kasong ito, mo nais na i-multiply ito bago ka magdagdag, dahil sa kasong ito, oo, gagawin ito be-- pa rin ang aking pointer ay nawawala. Ang halaga sa kasong ito, ang unang na patakbuhin namin ito ay zero. Kaya ka lamang ng pagdaragdag sa na unang digit. Kung ano ang mahalaga ay ang susunod na panahon umulit ka, nais mong ilipat up ito bago mo idagdag ang iyong susunod digit sa. Ba na linawin para sa iyo? OK. Minsan na iyong pupuntahan makakuha ng kakaiba higit pang mga bagay mathy. Kung nagkaroon ka ng karamihan ng ito, ka pa rin ng pagpunta sa get-- ka ng pagpunta sa gawin nang mahusay. Bahagyang credit ay isang napaka sisikat sa CS50 mga pagsusulit. Kaya isulat kung ano ang iyong alam. Kung nakuha mo ang lahat maliban para dito, handa ka pagpunta pa rin gawin Talagang mahusay ang problema. Dahil ipinapakita, OK, halos kong malaman. Alam ko na kailangan ko upang umulit sa pamamagitan ng. Alam ko kung ano ang kailangan ko upang suriin para sa. Ko lang gawin hindi masyadong makakuha ng kung paano i-convert ito. Ka ng pagpunta sa maging OK. Oo, na iyong pupuntahan mawalan ng ilang mga puntos, ngunit na iyong pupuntahan pa rin upang makakuha ng isang mahusay na bilang ng mga puntos para sa isang bagay tulad na kung ikaw ay Nawawala ang dalawang linya. Gusto ko maging parang OK, ang taong ito nakakaalam kung ano ang ginagawa nila. Matematika ay mahirap. Kaya Gusto ko sabihin na gusto mong maging pinong. OK, kaya ka guys handa na subukan strlen na may mga payo ngayon na iyong guys ay pointer Masters? Kaya makikita ipaalam ko sa inyo guys gumagana sa na para sa ilang sandali. Kung nangangailangan ng refresher sinuman. Kaya nais mong gamitin ang pointer palatuusan, at pagkatapos ay kung s ay walang bisa, ang iyong pagpapatupad ay dapat na bumalik 0. Mga bagay na tulad nito na gumawa ka Talagang masaya na tumawag lamang strlen sa pagtatapos ng araw. Sa palagay ko ay maaaring maging isang maliit na isang ito mas madali kaysa sa huling isa, na ay mabuti. Bibigyan kita ng guys isa pang minuto, at pagkatapos ay makikipagtulungan kami sa pamamagitan nito. At pagkatapos makuha namin upang pumunta sa switch. OK, handa guys? Siguro kaunti. Kaya Ibinigay ko sa iyo ang iyong dalawang mga pagpipilian, i-right? Alinman sa check para sa null at bumalik 0 kung ito ay, o talagang kino-compute ang haba. Kaya ng gustong magsulat ng check para sa null? Pumunta para dito. Madla: Kung panaklong s ay katumbas katumbas null return 0. ZAMYLA Chan: kaibig-ibig. Gustung-gusto ko kapag ang kalahati ng iyong problema ay lamang ng pagtingin para sa null. Alam ko sa iyo guys huling linggo ako ay tulad ng check para sa null Literal na bawat oras. OK, so-- Madla: Kung return 0 ay lamang ng isang linya, kailangan pa rin namin ang kulot bracket? ZAMYLA Chan: Ikaw ay hindi technically kailangan ang mga ito hangga't ikaw ay pare-pareho. Ito ay mahusay na kasanayan lamang upang makakuha ng sa ugali ng paggamit ng kulot tirante, ngunit technically hindi. Hindi mo na kailangan ang mga ito para sa isang linya. Malamang lamang naming inirerekumenda ito para sa mga taong nagsisimula sa programa. Kaya ngayon kung ano ang maaaring gusto naming gawin dito? Kaya ngayon alam namin na ang aming mga string ay may-bisa. Gusto naming patuloy na tayahin ang haba. Ano marahil ang unang bagay na gusto naming gawin? Madla: Lumikha ng isang int iyon ang haba. ZAMYLA Chan: Eksaktong. Madla: At gusto naming itakda ito sa? ZAMYLA Chan: 0. Perpekto. Lahat ng karapatan. Ngayon kung ano ang gustong gawin? Ito ay talagang sa karamihan ng ito. Pumunta para dito. Madla: Kaya malamang na gumawa ng isang para sa loop. At pagkatapos ay dahil kapag tumawag ka s ikaw ay pagkuha ng address ng unang bagay, Gusto mo magsimula sa i katumbas ng 0. At pagkatapos ay hangga't x plus i ay hindi bumalik iwa 0. ZAMYLA Chan: Ang null Terminator. Madla: Ang null Terminator. Pagkatapos ay idagdag mo ang isa sa haba. ZAMYLA Chan: Oo. OK, hinahayaan ka upang i-na sa napaka-kongkreto code. Ngunit iyon ay ang perpektong ideya. Iyon ang eksaktong kung ano ang ginagawa namin. Kami ay pagpunta sa maging iterating sa pamamagitan ng pointer. Kaya kung ano ang gusto naming gawin ay sa halip na isang int dito, dahil kami hindi nagre-refer sa isang ito. Kami ay nagre-refer sa simula ng isang string, na simulan ang pagiging ilang mga address, tama? Kaya gusto namin ang isang pointer. Kaya kami ay pagpunta sa may ilang mga char bituin, sapagkat ito ay tumutugon sa aming s, tama? Kaya ito ay ang ilang mga punto namin Sinisimulan sa simula ng string, OK? Kaya ipaalam tawagan ng lang ito i. Kung ito ay ang simula ng string, kung ano ang ito pagpunta sa italaga sa? Hindi 0. Gusto naming ito upang maging ang simulan sa aming mga string. Ano ay kumakatawan sa simula ng ang aming mga string na ibinigay sa atin? Madla: lamang s. ZAMYLA Chan: s. Kaya ito ay lumilikha ng ilang mga bagong pointer na kumakatawan sa simula ng aming string, OK? Ang isa pang paraan upang isipin na ito ay tulad ng narito ang aming array. Iyon ang aming mga string, s. Kaya sabihin nating ito ang unang lugar, at ito ay 0x4. 04. Ito ang aming mga, na hold address na iyon. At nilikha lang namin ng isa pa na tinatawag na i na lang ay tumutukoy sa parehong bagay. Kaya sila parehong lamang ng pagturo sa simula ng aming mga string. Ito ay lamang ng isang graphic na representasyon. Kaya ngayon kung ano ang gusto naming gawin ay gusto naming upang umulit ang aming mga kondisyon para sa iterating sa pamamagitan ng aming string. Ngayon namimili. Nakuha ko upang mamili, guys. Ay gusto naming panatilihing pag-update ng hanggang maabot namin ang null Terminator, tama? Kaya kung ano ang maaaring na ganito ang hitsura? Nais naming i, o ang gusto namin star i ay ang tanong? Ay ang null Terminator ng isang address o isang bagay na matatagpuan sa isang address? Matatagpuan sa isang address, i-right? Kaya kailangan namin dereference anumang ay dito, dahil ito ay ilan lang address. Upang talagang makakuha sa pagsisimula kailangan naming i-dereference ito upang ang aktwal na namin kung ano ang sa unang lugar. Kaya kung gagawin namin lagyan ng star ko, kung ano hindi namin nais ito sa pantay? Madla: Bumalik slash? ZAMYLA Chan: Mayroon. Ay na magkaroon ng kahulugan sa lahat? Kailangan naming pumunta sa aming string at tiyakin na ito ay hindi dulo. At pagkatapos ay maaari naming lamang i-update ang ganito. Normal na pag-update. Kaya hangga't ang mga ito ay Met, ano ang kailangan namin upang gawin? Madla: Haba ng plus plus. ZAMYLA Chan: MM-Hm. At pagkatapos ay pagkatapos ng para sa loop tinatapos, ano ang gusto naming ibalik? Madla: Haba? ZAMYLA Chan: Ang haba. Mayroon kang pumunta. Malinaw ang karne ng isang ito ay pag-unawa na ito para sa loop. Makakuha ba ang lahat ng tao kung paano na nagtrabaho? Ikinagagalak kong pumunta sa paglipas ng ito muli. Madla: Ang ikalawang bahagi, sa gayon ang star i doon, iyon ang address ng first-- ZAMYLA Chan: Hindi ito ang address. Ito ay kung ano ang sa. Madla: Iyon ang doon talaga. ZAMYLA Chan: Iyon kung ano ang aktwal na doon. Kaya ito ay saying-- ipaalam ako gumawa ng mas mahusay na ito. Kaya ito ay 0x04, at lang ako pupunta sasabihin Pupunta ako sa gumawa ito ang aking pangalan. OK. Oo, alam ko ba akong magkaroon ng pagsusulit sa pagsusuri ngayong gabi. Maraming pagsusulit sa pagsusuri. Kaya ipaalam sabihin ng ang string na ito ang aking pangalan, Allison. Little magulo, ngunit ito ay doon. At s ay kumakatawan sa lokasyon ng kung saan ang string ay nagsisimula, kaya ako pagpunta sa gawin ito real-- ito ay ang address ng isang, kung saan ang string ay nagsisimula, tama? Kaya kung ano ang ginagawa namin dito ay gusto naming gamitin ang mga payo upang umulit sa pamamagitan ng. Kaya lumikha kami ng ilang pointer, i, na rin ay katumbas ng simula ng string. At sa bawat punto, nais naming magpatuloy ng pagpunta sa pamamagitan ng array dito hanggang maabot namin ang null Terminator. Kaya gusto palagi naming suriin kung ano ang sa bawat isa sa mga address na ito. Kaya dereference namin i, upang ang unang pagkakataon na gawin namin ito namin sabihin, OK, kung ano ang sa address na 0x04? Ito ay isang a. OK, kami ay mabuti. Haba ng pagdaragdag. Ilipat sa susunod na isa. Kaya tandaan i-- payo pagtaas ng laki ng anumang mga ito ay tumuturo sa. Kaya sa kasong ito, dahil ito ay isang pansamantalang trabaho, makikita i-update ito sa pamamagitan ng isa. Kaya ngayon kami ay pagpunta sa tumingin sa 5, na nangangahulugang ito ang nangyayari sa paglipas dito. Kaya sinasabi nito ang OK, pumunta sa 0x05. Ano ang doon? Ito ay isang l. At ito ay patuloy na paggawa na hanggang umabot sa ito ang isang ito. At sinasabi nito ang OK, kung ano ang sa anumang address na ito ay? Ang null Terminator, OK. Lumabas. At bumalik lamang sa haba. Dahil kailangan mo kung ano ang aktwal na address na iyon, hindi ang address mismo. Mayroong napakakaunting mga lugar kung saan kailangan mo talaga ang address. Karamihan ng panahon kapag ginagamit mo ang at ito ay kapag ikaw ay unang nagtatalaga ng isang pointer o kapag naka-pagpasa ito sa isa pang pag-andar. OK, lahat magandang doon? Uri ng? OK. Kaya mukhang hindi namin Nakakuha tungkol sa 12 minuto ang natitira, kaya pumunta kami sa sa siguro aming huling problema, at pagkatapos ay mayroong anumang konsepto na makabuo samantala aming makakaya mabilis na pumunta sa paglipas na iyon. Kaya lumipat gears ay ang huling problema dito, lumipat pahayag. Kaya ang iyong trabaho ay upang muling isulat ito upang ito behaves ang parehong ngunit hindi gumagamit ng switch. May tsok kamay. Kaya ang anumang mga katanungan tungkol sa off ang bat? Wala? OK. Lahat ng tao na maunawaan ang mga na kung ang kaso ay walang anumang bagay matapos na ito, Nangangahulugan ito na dapat ito sundin ang mga susunod na hakbang? Kaya kaso ng 1 at 2 sa kasong ito gawin ang eksaktong parehong bagay. Minsan ang isang punto ng pagkalito. Lahat ng karapatan. Sinuman ay may anumang mga ideya? Oo? Madla: Kaya maaari mong gawin lamang kung pahayag. ZAMYLA Chan: MM-Hm. Kaya kung ano ang aming una? Madla: Kung n katumbas ay katumbas ng 1, at ang 2 linya para sa o n equals ay katumbas ng 2, pagkatapos ay i-print ang maliit. At pagkatapos ay maaari mong gawin pa kung? O kaya magagawa mo lamang ng isang kung? ZAMYLA Chan: Maaari mong gawin pa kung? Madla: Gusto ito mahalaga kung gagawin mo kung? ZAMYLA Chan: Kaya ginagawa nito. Gumagana ba anyone-- gayon, ikaw ay makakuha ng parehong output kung gumagamit ka ng ifs lamang kumpara sa kung gumamit ka ng ibang tao ifs. Maaari mo guys sa tingin ng dahilan kung bakit maaaring gusto mong gumamit ng ibang tao kung kumpara ng maraming ifs? May sa may kahusayan. Oo? Madla: Ito ay suriin lahat ng mga ifs bawat oras. ZAMYLA Chan: Kaya kahit na pindutin ito ang unang isa, ito ay pumunta sa tseke sa bawat iba pang isa. Kaya nais mong gamitin kung iba ifs sa mga kaso kung saan tanging isa sa mga ito ay kailanman mag-apply. Kaya magkaparehong pagbubukod ay kung ano ay may posibilidad namin sasabihin. Kung mayroon kang isang bungkos ng mga ifs, nangangahulugan ito na siguro ng higit sa isa sa kanila mga usapin, at marahil higit sa isa sa mga ito ay maaaring maging totoo. At gusto mong pareho sa mga ito upang maisagawa kung ang mga ito ay totoo. Kung gusto mo ang isa sa mga ito lamang upang gumana sa mga kapwa eksklusibong mga kaso, nais mong gamitin ang iba kung, dahil ang lahat ng ito ay upang gawin na may kahusayan. Ang iyong code ay lamang ng mas mahusay na dinisenyo kung ito ay sumusunod sa mga kasanayan na ito. Kaya sa kasong ito kami ay may isang tao kung. At ito ay magiging? Madla: n katumbas ay katumbas ng 3. ZAMYLA Chan: Perpekto. Medium Print. At pagkatapos ay sa aming huling kaso, ano ang mayroon kaming? Iba Pa o iba kung? Madla: Iba Pa. ZAMYLA Chan: Do want-- namin na gusto mo iba kung dahil mayroon kaming kongkreto kaso. Hindi ito uri ng isang catch ang lahat. Kung nagkaroon ka ng isang default na sa isang switch-- tandaan sa switch maaari kang magkaroon ng kaso, at pagkatapos ay mayroon kang default. Kung nagkaroon ka ng isang default, na uri sa iyong mga tao statement doon. Ngunit kung ito ay may lamang ng mga kaso, nangangahulugan iyon na kailangan mo upang suriin upang makita kung ito ay sa bawat isa sa mga iyon. Kaya sa kasong ito, gagawin nito ang 4 o 5. Gusto naming ng isang print-off. Ito ay malaki. At doon ka pumunta. At iyon ay magiging iyong programa. Kaya sa kasong ito kung namin ay nagkaroon ng isang default na may isang bagay, Gusto naming magkaroon ng isang tao sa anumang nais ito sa amin upang gawin. Kaya na ay isang mahusay na pagkakaiba malaman, upang maunawaan. Ba na tulong sa switch para sa iyo? Perpekto. Lahat ng karapatan. Mayroon kaming tungkol sa walong minuto ang natitira. Gusto mo ba guys na ang anumang iba pang mga konseptong may mataas na antas? Mga Tanong sa pangkalahatan? Oo? Madla: ako ay may isang tanong tungkol sa isa sa mga ito na noon ay tungkol sa random na numero ng generator sa pagsusulit zero. ZAMYLA Chan: Oh, na ang isa. Isa Iyon ay isa pa na kung saan ito ay mas matematika than-- yes. Ang solusyon sa that-- kahit ako kapag Makita ko ito, ako tulad ng kung ano ito. Madla: Ito ay bilang 7. ZAMYLA Chan: Ito ay kakaiba sa aking opinyon. Kaya talaga gusto mo gamitin ang drand48, na ay magbibigay sa iyo ng ilang mga numero sa pagitan ng 0 at 1. At gusto mong gamitin ito nang sa gayon na kahit papaano ay makakuha a-- at ito ay mas higit pa sa isang problema sa matematika sa akin at sa isip ko ng problema sa CS. Ang paraan na gagawin mo it-- at kung minsan ito ay lamang na tulad na. Muli, ito ang mga mga kaso kung saan ito uri tulad ng sumulat kung ano ang maaari at hindi buong credit. Kaya kung nais namin ang isang pagbabalik, Alam namin na hindi kami pagpunta sa gumagamit drand48 sa ilang mga paraan, tama? Kaya bakit hindi lista lang namin na pababa. Ginagamit namin ito sa ilang mga paraan. Ang paraan na mayroon sila mo guys gamitin ito ay tulad nito, na kung saan ay kong subukan at ipaliwanag. Kaya talaga kung ano ang mangyayari dito ay dahil sa pagitan ng 0 at 1, kung ano ang iyong ginagawa ay naka-multiply by-- ito ay napaka isang matematika katanungan. Lamang ang buong disclaimer, ito ay ganap ng matematika katanungan. Ano ang iyong ginagawa ay dahil sa 0 at 1 at mo nais ito upang maging sa loob ng hanay na ito, na aktwal mong malaman kung paano malaki ang hanay ay, at pagkatapos ay mo talaga-scale up ito, na kung saan ay kung ano ang ginagawa. b minus isang nagbibigay sa iyo ng hanay na iyon, ang pagkakaiba sa pagitan ng mga numero. Maaari mong i-multiply sa pagitan ng 0 at 1, at pagkatapos ay pagdaragdag ng isang lamang nangangahulugan na ang iyong scaling up ito upang maging sa pagitan ng isang at b, na ako ay hindi talagang gusto ang problemang ito. Tulad ng sinabi ko, ang pagsusulit ay sinadya upang mapaligiran ang mga tao na mas kumportable, sa isang lugar sa pagitan ng, at mas kumportable. Kaya kung ginawa nila ito nang sa gayon na ito ay isang bagay na lahat ng tao sa mas mababa kumportableng lugar na makakuha ng, Gusto naming malayo masyadong maraming mga tao pagmamarka perfects, at ang mas kumportable ay nababato. Upang palagi silang mayroong mga uri ng katanungan palaisipan na sinadya upang maging isang maliit na mas mahirap na tumagal ng ilang creative pag-iisip. Kapag nakita mo ang mga ito, Hindi makakuha ng masyadong stumped. Gusto ko talagang sabihin ng flip sa pamamagitan muna ang iyong pagsusulit. Harapin ang mga problema na alam mong maaari, dahil walang paggamit nagsisimula natigil sa isang problema kapag may tatlong o apat o limang sa pahina pagkatapos na madali mong gawin. Madla: Bakit eksaktong gagawin mo -multiply ito sa pamamagitan ng mga hanay? ZAMYLA Chan: multiply mo ang hanay na know-- mo ito tulad ng kung magkano pagkatapos ng ang gusto? Kaya maaari mong isipin, sapagkat ito Ibinabalik ng isang numero sa pagitan ng 0 at 1, maaari mong isipin na ito bilang isang porsyento. Kaya ito ay isa lamang na nagsasabi kung kami ay aming numero ng linya dito, ang isang ay dito, at b ay dito. Ikaw ay tulad ng kung magkano ang nakaraang isang ito? Ay lahat ng aming ginagawa. Kaya ka lang humihingi ng porsyento ng mga hanay na ito, na ay kung ano ang nagbibigay sa iyo ito. At pagkatapos mo talaga lang masukat ito up sa pamamagitan ng pagdaragdag ng. Ito ay isang matematika utak teaser. Kung nagkaroon ng anumang huling minutong payo, ako sasabihin flip sa pamamagitan ng mga katanungan, malaman kung aling mga mo malaman na tulad ng, oh Nakatanggap ako na ito. Halos tiyak sila ng pagpunta sa maging mga tanong na hindi mo alam o na kayo ay pagpunta sa magkaroon ng panahon para sa, kaya pindutin ang iyong mga lakas, OK? Ikaw guys ay pagpunta sa mahusay na. May ng maraming mga tanong para sa isang kadahilanan, nang sa gayon ay magkaroon ka ng oras upang uri ng ng pagkakataon upang ipakita kung ano ang ikaw ay talagang magandang sa. Kaya ito ay ang OK kung ikaw ay Hindi mabuti sa lahat ng bagay. I-play sa iyong mga lakas. Oo? Madla: Kaya ay ang pagpunta sa magbalik ng bagay na pinutol? Oo, ay ito, dahil drand babalik sa pagitan ng 0 at 1. Ito bumalik sa isang int, dahil ito ay pungusan kapag nagdagdag kami ng o i-multiply sa pamamagitan nito. Ayos. Ang anumang huling minutong katanungan? Ikaw guys ay pagpunta sa gawin mahusay. Ka Pupunta na maging kapani-paniwala. At kahit na hindi, ay mayroong maging candy dito sa susunod na linggo. At kukunin ko na gusto mo. Kukunin ko na gusto mo guys anuman. Ang lahat ng mga karapatan, lahat, good luck. Mayroon ka bang isang mahusay na oras. Ka ng pagpunta sa maging fine. At alam mo kung ano? Sa dalawang araw na ito ay pagpunta upang maging sa ibabaw, samantalang ako may dalawang midterms sa Huwebes, kaya hindi bababa sa iyo guys ay tapos na. Ang lahat ng mga karapatan, kukunin ko na nakikita mo guys sa susunod na linggo.