ZAMYLA Чан: Гэй, усё. Сардэчна запрашаем у профіль. Сёння як раз усё будзе віктарына агляд для віктарыны ў сераду. Спадзяюся, усе памятаюць, што у іх ёсць віктарына на сераду. І калі вы не зрабілі, а, Цяпер вы нагадалі. Так асяроддзі пераканайцеся, што вы паказаць для класа і іншых памяшканняў у якасці неабходна. Вы, хлопцы, будзе дзіўным. Гэта будзе выдатна. І я буду рабіць усё, што ад мяне залежыць, каб дапамагчы падрыхтаваць вас сёння для вашага віктарыны Цяпер. А таксама ў выпадку, калі вы не ведаеце, ёсць вядома шырокі сесія водгук сёння ў 07:00 Паўночна-заходнія лабараторыі пакой B103. Вы можаце ўбачыць мяне зноў на біс, як Я буду весці частка гэтага агляду сесіі Таксама. Так што, калі вы не можаце атрымаць дастаткова мяне Зараз, вы можаце прыйсці зноў сёння ўвечары. Добра, так пра ўсё па парадку. Проста некаторыя парады віктарыны перш чым мы на самай справе пагрузіцца ў водгуках. Так як з любой экзамен, практыка безумоўна, дапаможа вам. Ёсць экзамены з мінулага шэсць ці сем гадоў там, так што вельмі шмат практыкі Матэрыял для вас, хлопцы, каб мець. І на самай справе, сёння гэта сапраўды проста будзе ісці на працягу любых тэмах што вы, хлопцы, ёсць пытанні па а як працуе праз праблемы практыкі ад віктарыне нулявы. Так што я буду кінуць нуля віктарыны з мінулага года тут, і мы можам працаваць праз якіх-небудзь праблем што вы, хлопцы, хацелі б. Так практыкуе. Вы збіраецеся пачаць рабіць гэта сёння. Код на паперы. Так што так, калі ўсё можа на самай справе выйсці папера, што будзе выдатна, таму што ты не будзе мець кампутар на Экзамен і выпісваючы код уручную часта нашмат складаней чым вы маглі б чакаць. Вы прывыклі да проста бачачы яго і увёўшы яго, і ў вас ёсць свой кампілятар для дапамагчы вам, калі ў вас ёсць памылкі, але вы не атрымаеце, што на экзамене. Так што гэта сапраўды важна, каб на самой справе зможа выпісаць код, і што цягліцавая памяць рабіць гэта ўручную сапраўды дапаможа вам. Так мы атрымліваем трохі блізка. Гэта панядзелак. Ваш экзамен у сераду. Але калі ў вас ёсць час, вызначана ўзяць адзін экзаменаў з мінулага года або год да пад абмежаванні часу гадзіны паўтара. Проста выбіць гадзіну і палова часу, і сядзець сабе ўніз, і проста працаваць праз праблемы як калі б вы былі на самай справе прымаць яго, таму што адзін з самых вялікіх рэчаў, якія мы чуем аб віктарыны з'яўляецца тое, што яны вельмі доўга. Гэта шмат матэрыялу. Ёсць шмат пытанняў, і большасць людзей не могуць скончыць. Я ведаю, што я зусім не скончыў мае віктарыны, калі я ўзяў клас. На гэтай ноце, як менш зручны раздзел, зразумець, што гэты курс прызначаны для задавальнення людзей усіх узроўняў. Уся прычына ў нас вы падзяляеце менш камфортна, дзе-то паміж, і больш зручным з'яўляецца выгляд зрабіць яго больш справядлівым. І калі вы менш камфортна, гэта Не трэба па сабе, каб атрымаць усе. Як калі б вы атрымліваць усё, вы б, верагодна, быць у больш зручным раздзеле. Так, відавочна, не біць сябе да занадта складана, калі вы не можаце скончыць іспыт. Паверце мне, я гэтага не рабіў. Я да гэтага часу канцэнтратар. Я да гэтага часу дапамагае весці курс. Усё будзе добра. Добра. І, нарэшце, паспаць. Відавочна, што з любой экзамен мы заўсёды гаворым, гэта. Завучванне ноч перш і не атрымоўваць любы сон робіць не-- можа быць, калі што працуе на вас, пайсці на гэта. Але для пераважнай большасці людзі, спаць некаторы час, дазваляючы ваш мозг адпачыць і аднавіцца да прыходу ў да іспыту сапраўды дапаможа вам. Таксама там будзе амаль безумоўна, будзе цукеркі на экзамене, так што вы павінны з нецярпеннем чакаць. Вы, хлопцы, збіраецеся рабіць вялікі. Гэта будзе добра. І цяпер на працягу наступнага гадзіны паўтары I паспрабую і падрыхтоўчымі вам як лепш, як я магу. Таму ў мяне ёсць слайды з асноўным усе раздзелы да гэтага часу. Я не збіраюся ісці праз усе з іх, таму што гэта не магчыма на працягу гадзіны-паўтара, а як працуе праз праблемы практыкі. Такім чынам, замест мяне ёсць спіс тэм. Усе гэтыя рэчы, што мы маглі віктарыны вы на. Калі ёсць што-небудзь што сапраўды выскоквае што вы хочаце перайсці, што вас хочаце, каб я на працягу канцэптуальна, Я магу паспрабаваць даць Вы Агляд там. Ці, калі вы хочаце, каб перайсці прама ў да рабіць практыцы праблемы разам, мы можам зрабіць гэта. Гэта да вас, хлопцы. Ёсць не так шмат з вас. Так што гэта ўсё, што вы, хлопцы, падабаецца рабіць. Я хачу быць самым карысна да вас, хлопцы. Таму я дам вам проста паглядзець. АЎДЫТОРЫЯ: адно графік, які мы трымаем кажучы пра стэку і кучы. Проста ўся ідэя што і што гэта значыць. ZAMYLA Чан: Так, добра. Гэта цалкам на канец, так што дазвольце мне прагорткі. АЎДЫТОРЫЯ: Мы не павінны зрабіце гэта зараз, але што заўгодна. ZAMYLA Чан: Быў там anything-- гэты. Ці з'яўляецца гэты выгляд невыразнай для людзей? АЎДЫТОРЫЯ: Так, я другі, што. І мы можам таксама зрабіць перапаўненне буфера? ZAMYLA Чан: Перапаўненне буфера? Добра. Так перапаўненне буфера даволі Лёгка проста пагаварыць. Гэта ў асноўным буферы вы думаеце пра некаторыя масіў памяці, што ў вас ёсць, ці не так? Мы звычайна кажам пра Перапаўненне буфера пры Вы не правяраючы, колькі карыстальнік ўводзіць у, ці не так? І ідэя ў тым, з дапамогай перапаўнення буфера з'яўляецца яны ставяць у далёка занадта шмат дадзеных для прасторы што вы вылучылі для іх, ці не так? Так што, калі ты кажаш, даць мне некаторыя паведамленні, мы пры ўмове, што яны збіраюцца, каб даць нам разумнае паведамленне даўжыня. Можа быць, пару радкоў, яшчэ шмат чаго. Такім чынам, мы не правяраем. Замест гэтага яны кормяць нас у Уся кніга гэта паведамленне, і ён перацякае колькасць прастору, што мы выдзелена для гэтага. І тое, што адбываецца гэта можа перапісаць месцы, якія ён не павінен. Так што я ведаю, прафесар Malan сказаў што-то аб перапаўнення буфера. Дык вось, калі ўваходны воля карыстальнік некаторыя велізарная колькасць дадзеных у надзеі што ён перапісвае мінулае канец вашай буфер і замяняе something-- Цікава Я ў нас ёсць гэтыя слайды ў тут. Я не думаю, што ў нас ёсць гэтыя слайды ў тут. Але ў асноўным ён перапісвае некаторая частка памяці што дазваляе яму доступ для часткі вашага кампутара што вы не захацелі як правіла, маюць доступ да. Найбуйнейшая рэч з Перапаўненне буфера гэта проста каб зразумець, што гэта адбываецца, калі вы не праверка, колькі ваш Карыстальнік ставіць ст. Калі вы не выгляд абароны супраць гэтага. І ў самім простым рэч, гэта проста ваш карыстальнік ўводу велізарная колькасць дадзеных у спробе перапісаць некаторую бяспеку частка вашай памяці. Гэта ўсё, што ёсць. Так што гэта тут, стэк і куча. У асноўным усё гэта проста прадстаўленне памяці і дзе захоўваюцца рэчы. Гэта сапраўды свайго роду усё, што вам трэба ведаць. Самыя вялікія рэчы, якія Вы павінны ведаць, з'яўляюцца that-- дазвольце мне бачыць, калі ёсць better-- тут. Так што гэта стэк тут. Так стэк мае дачыненне да усе вашыя функцыі што вы тэлефануеце ў любы час. І, што важна памятаць, сыходзяць на мінулым тыдні з Таноса з'яўляецца тое, што вы на самой справе не маюць Неабходна кантроль над ім. Усё залежыць ад таго, калі пэўная Функцыі выконваюцца. І калі яны выконваюцца, яны ёсць тое, што называюць кадры стэка што ідуць сюды. Так што ўсё быццам адбываецца без якога-небудзь рэальнага ўкладу вас. Вы пішаце праграму, і вы дайце яму папрацаваць, і стэк выгляд займае клапаціцца пра сябе, як гэта павінна. Так, калі ў асноўным вы тэлефануеце куб, што будзе прыняты тут. Гэта створым рамку. Але няма нічога, што вы відавочна рабіць стварыць што кадр стэка, акрамя напісаць функцыю з самага пачатку, у парадку? Што-то пад ваш кантроль куча з Таноса. Таму, калі вы Таноса-то, Вы прымаеце памяці з кучы. І што гэта памяць, што вам ёсць, з-за адсутнасці лепшага слова, Відавочны кантроль над, таму што памятаю з Таноса гэта ў асноўным там пакуль вы не сказаць інакш. Для тых з вас, хто назіраў падзел на мінулым тыдні, гэта там, пакуль вы ня скажаце яму сысці. Гэта будзе там, калі у адваротным выпадку сказаў няма. Так куча ўсяго-то Вы можаце думаць, як памяць што ў вас ёсць кантроль над. І гэта проста два розных вялікія рэчы. Акрамя гэтага, вы не павінны мець занадта турбавацца аб стэку і кучы пытанні ці, як правіла, больш за ўсё калі ў вас ёсць лакальныя параметры або функцыя ці будзе у стэку або кучы. Відавочна, што ў гэтым выпадку было б стэк. Калі вы mallocing тое, дзе, што прыходзіць? Куча. Калі вы паглядзіце на практыцы віктарыны, тых, як правіла, тып пытанняў што яны маюць. Вам не прыйдзецца турбавацца занадта шмат пра гэта. Вы атрымліваеце ў больш відавочным выглядзе аб стэку і кучы пазней або да іншых класаў CS. Так што проста выгляд Агульная ідэя, што гэта будзе добра, які я толькі збольшага перайшлі. Любыя іншыя тэмы? Так? АЎДЫТОРЫЯ: Ці можаце вы перайсці паказальнікі зноў вельмі хутка? ZAMYLA Чан: Паказальнікі? Вы хочаце, каб канцэптуальная агляд паказальнікаў ці вы прытрымліваецеся з паказальнікамі? АЎДЫТОРЫЯ: Накшталт як сінтаксісу. ZAMYLA Чан: Сінтаксіс? Так. ОК, мы атрымліваем там. Так, так што гэта проста нейкая што-то калі ў вас ёсць рэкурсіўных функцыю, кожны раз, што рэкурсіўная функцыя з'яўляецца называецца, ён проста дадае іншы фрэйм ​​стэка. Даволі шмат прыкладаў пра тое, як вы на самой справе не кантраляваць кадры на свой стэк. ОК, паказальнікі. Добра, так што стварэнне паказальнікаў. Памятаеце, што гэта проста набярыце зорку. Таму, што б тып дадзеных, якія Вы збіраецеся быць паказваючы. Дык гэта будзе паказальнік на міжнар. Гэта было б паказальнікам на знак. Гэта было б паказальнікам на паплавок. Так што гэта ў асноўным што б там ні Вы хочаце, каб ён, паказваючы на, зорка, як вы заяўляеце, паказальнік, ОК? Але тады, відавочна, становіцца трохі складана, калі ў вас ёсць паказальнік ці ў вас ёсць зоркі б там ні было. Так вялікая розніца калі вы declaring-- так што мы павінны some-- так гэта займае некаторы Int зорку. Так што гэта нейкі паказальнік заклікае х да міжнар, ці не так? Так што памятаеце, што гэта робіць гэта выклікае сістэмны х. І гэта будзе ёсць адрас, ці не так? Так што давайце проста сказаць, што гэта наш адрас. Паказальнікі захоўвання адрасоў. Так што гэта кажа, што ў гэтым размяшчэнне, мы захоўваем у Int. Так што іншы шлях, мы можам думаць аб у тым, што гэта які-INT. Мы на самай справе не прызначаны яго што-небудзь яшчэ, але гэта проста інтэрвал. Такім чынам, мы можам зрабіць, гэта калі мы зоркі х роўны 5, гэта становіцца 5, ОК? Гэта кажа ісці да таго, што х з'яўляецца паказваючы на, так што ісці па гэтым адрасе і зрабіць яго роўным 5. Так мы прысвойваем 5 на гэты адрас, ці не так? І тады, калі вы зробіце гэта, гэта дае нам адрас. Гэта адрас аператара. Так што гэта адрас х? Мы не ведаем. Мы не прызначылі яму адрас. Мы маглі б сказаць, што гэта some-- зараз мы далі гэта адрас, так што адрас 4. І на самай справе, калі мы ідзем праз што-то як гэта, накшталт таго, што мы зрабілі. Так працуе праз here-- я знайсці гэта дапамагае, калі вы выцягнуць паказальнікі. Калі вы знаходзіцеся на сваім экзамене, я вельмі рэкамендую малюнак скрынкі. Такім чынам, гэта першы, INT х роўная 5. Гэта проста азначае, у нас ёсць некаторыя размясціць у памяці, якая 5, ці не так? І наш стол тут кажа нам што гэта па адрасе 0x04. І тады мы ствараем некаторую паказальнік. Так давайце разбярэм гэта ўніз па адным. Такім чынам, гэта стварае некаторыя скрынка з міжнар, ці не так? Гэта будзе трымаць некаторыя адрас з яго. Так што гэта нейкі паказальнік. І гэта мел сапраўды мала. Такім чынам, мы маем некаторую паказальнік тут. І наш стол кажа нам што гэта адрас 0x08. Прахладны. І мы прысвойваем гэта па адрасе х. Памятаеце, паказальнікі захоўвання адрасоў, ОК? Так што, калі мы хочам правесці х, у нас ёсць выкарыстоўваць аператар адрас, які з'яўляецца Ампэрсанд, каб атрымаць адрас х, якія ў дадзеным выпадку, 0x04. І потым, калі ў нас ёсць некаторыя INT копія, гэта проста стварае некаторую іншую скрынку, што праводзіць INT назвай копію. І калі мы прызначым яго this-- так што гэта на яе спасылацца. Так ён кажа, ісці да таго, што адрас паказальніка трымае. Паказальнік мае гэты адрас, такім чынам, мы пайшлі б сюды, і мы кажам, добра, што ў ім? Гэта 5. Так копія становіцца 5. Зрабіць сэнс? Што рабіць, калі я спрабаваў прысвоіць гэта проста паказальнік. Што робіць паказальнік фактычна роўныя? Гэта будзе проста ўсё Паказальнік змяшчае, ці не так? І тады тое, што, калі б я гэта зрабіў? Што б скапіяваць быць цяпер? АЎДЫТОРЫЯ: 0x08. ZAMYLA Чан: Так, Адрас нашага паказальніка. Любая частка, што, што патрэбы быць зноў растлумачыць? Прахладны. Існуе, безумоўна, вельмі весела праблема на віктарыны аднаго што мы можам над гэтым дае больш практыкі. Хлопцы з мінулага тыдня можа сказаць вам, што не так ужо дрэнна. Мы прайшлі праз увесь Графік, і кожны зрабіў выдатны. ОК, так што гэта агляд сінтаксісу паказальнікаў. Найбуйнейшая рэч разумення таго, як для іх стварэння, рабіць спасылкі, і адрас, ОК? Прахладны. Любыя іншыя тэмы да мы апускаемся ў жыццё. Акрамя таго, калі мы збіраемся праз праблемы практыкі і ёсць што-то вы хочаце перападрыхтоўка на, мы можам зрабіць гэта. Ці ёсць у вас што-то? АЎДЫТОРЫЯ: Структуры і сувязныя спісы. ZAMYLA Чан: Структуры і сувязныя спісы, ОК. Так Структуры. Мы на самай справе збіраюцца над гэтым сёння ўвечары таксама. ОК, так Структуры. Структуры ў асноўным проста спосаб для вас, каб правесці мае некалькі значэнняў розных тыпаў. Так з масівам мы звужаныя да аднаго тыпу дадзеных. Наш масіў альбо павінен быць проста лічбы, ці проста сімвалы, або проста быць паплаўкі. Але, можа быць, вам трэба змяшчае больш, чым гэта. Можа быць, вам трэба hold-- калі Вы кажаце пра студэнта, Вы будзеце мець свой дом, сваіх Ідэнтыфікацыйны нумар, іх узрост, дзе яны жывуць, ці не так? І ўсе тыя розныя віды тыпаў. Такім чынам, вы не можаце захаваць тыя, усё ў масіве. Так што вы можаце зрабіць, гэта вы можа стварыць-структуру, якая Вы можаце думаць, як ваш асабісты тып дадзеных. Такім чынам, замест таго, каб проста маючы цэлымі і замест таго, каб проста маюць паплаўкоў, Вы можаце ёсць студэнт тыпу, што мае ўсе гэтыя палі ў ім. Так, як мы ініцыялізацыі нашы Структуры is-- фактычна так што мой ліст страшна, мы збіраюцца пераходзіць на друку. Ву. Такім чынам, калі мы хочам стварыць struct-- Я проста хачу з ім тут. Не звяртайце ўвагі на галоўнай ўсе якія мы будзем выкарыстоўваць пазней. Так, як вы хочаце, каб зрабіць гэта з ЬурейеЕ структуры. І давайце проста называць гэты студэнт таму што тое, што я выкарыстаў. Такім чынам, ЬурейеЕ азначае, што вы вызначэнне новага тыпу, ОК? Ёсць нюансы ў, калі вы робіце проста структура ў параўнанні з ЬурейеЕ структуры. Для ўсіх намераў і Мэты, вы, хлопцы, проста буду лічыць, што яны прыкладна такі ж, і проста выкарыстоўваць ЬурейеЕ структуры ў цяперашні час. Гэта будзе стаць нашмат больш, відавочна, у вашым Наступны P ўсталяваць, што гэтыя адрозненні, але я не думаю, што вам трэба турбавацца аб тым, што прама цяпер. Я б хутчэй вы ведаю, як яго стварыць, доступ да яго, і прызначыць [? Значэнне. ?] Новы тып структуры, і мы называем яго вучань. Такім чынам, пасля мы скончым стварэнне гэтага, для ўсіх намераў і мэтаў, Вы будзеце мець тып, званы студэнт. І вы можаце думаць пра гэта проста як выгляд як INT, або паплавок, або знак. Гэта проста яшчэ адзін тып, ОК? Так што ў гэтым адным, што мы маем? У нас ёсць, можа быць, імя. Таму, магчыма, мы хочам назву ланцуга. І ў нас ёсць, можа быць, на Int Вось ID. І ў нас ёсць яшчэ адзін у вось нумар тэлефона. І мы some-- паглядзім. Што яшчэ мы маглі б мець? Мы будзем мець некаторую радок у яго доме. Усе рэчы, якія студэнт. Такім чынам, гэта стварае-структуру цяпер. Так як мы маглі б стварыць студэнту? Калі ў нас ёсць некаторыя зменныя, якія ёсць будзем казаць аб Walker тут, так мы have-- мы проста буду называць гэтую хадок. Ён мае патрэбу ў тып. Які ваш тып? АЎДЫТОРЫЯ: Студэнт. ZAMYLA Чан: Студэнт. Так што гэта проста стварае аб'ект Вы можаце думаць пра тое, што ёсць усе гэтыя рэчы. Вы толькі што стварылі студэнта хадок. Так што цяпер мы павінны быць у стане прызначыць ўсё гэта, ці не так? Дык хто-небудзь памятае, як мы атрымліваем доступ у структуры? АЎДЫТОРЫЯ: Перыяд. ZAMYLA Чан: Перыяд Роўна. Так што, калі мы хацелі, каб прызначыць яго імя, мы маглі б зрабіць гэта. Відавочна, што гэта будзе be-- гэтую частку тут будзе быць у межах асноўнай, так на самай справе, дазвольце мне зрабіць гэта. Абвясьцеце гэта вышэй асноўнай, так што мы можам выкарыстоўваць яго ў асноўны. Так што цяпер я хачу, каб гэта зрабіць, ID, і мы будзем проста рабіць нейкія там, і тады мы будзем прызначаць дом. Бам. Прахладны. Так што цяпер мы павінны калі-небудзь спатрэбіцца, каб доступ што-небудзь пазьней on-- магчыма we-- калі мы калі-небудзь спатрэбіцца, каб атрымаць доступ нічога, давайце проста рабіць інтэрвал капіявання ID. І я хачу, каб скапіяваць ID Уокера ў гэтым. Як я мог гэта зрабіць? Вы павінны атрымаць доступ у хадункі пабудуем для [? пайсці на гэта?] [? E?]. І сапраўды гэтак жа, што мы прызначаны яго тут, як можа мы да яго доступ, калі мы хочам даць гэта значэнне ў нечым іншым? АЎДЫТОРЫЯ: Walker.id. ZAMYLA Чан: Так, сапраўды. Так што ў значнай ступені ўсё Вы павінны ведаць, для структур. Вам проста трэба думаць аб ім як іншай зменнай. У асноўным стварыць свой уласны тып зменнай, ОК? Вы можаце выкарыстоўваць яго, каб абвясціць зменныя ў любым выпадку. Тут хадок яшчэ пераменная. У яго ёсць толькі студэнт тыпу зараз замест з тыпу Int, або тыпу радкі, або тыпу сімвал. Калі б не было просты спосаб казаць аб структур, літаральна толькі што стварыць свой уласны тып дадзеных што дазваляе групаваць Усе гэтыя розныя выгляд дадзеных разам. Ці значыць гэта, мае сэнс? Добра. Гэта і доступ да з кропкамі. У значнай ступені ўсё, што вам трэба. Добра, дзе ж мой PowerPoint ісці? Вось яно. Ну гэта дзіўна. Ага. Добра, прахалодна. Любыя іншыя рэчы, ці мы хачу, каб накіравацца ў прытрымліваецеся? Практыка? Добра. Дзіўны. Я збіраюся выйсці ў гэтым. Калі ў любы момант падчас практыцы пытанні, Я шчаслівы, каб абнавіць і прайсці рэчаў. Таму ў мяне ёсць віктарына нуля тут. Калі вы, хлопцы, жадаеце, каб выцягнуць гэта на вашым кампутары, сапраўды гэтак жа як узяць пяць хвілін, каб прагледзець. Можа быць, выбраць некаторую вяршыню пытанні вы хочаце перайсці. Калі вы, хлопцы, не магу вырашыць, мы проста павольна пачаць працаваць праз іх, але я ўпэўнены, што там будзе нейкі пытанні, якія вы асабліва хочуць пагаварыць і ёсць мне працаваць праз з усімі вамі. Так проста ісці наперад і заняць пяць хвілін. Пракрутка. І гэта віктарына з 2013. АЎДЫТОРЫЯ: Нуль? ZAMYLA Чан: Так, віктарына нуля. Мы не робім віктарыну адзін матэрыял. Мы зробім гэта на працягу пары тыдняў. Акрамя таго, для тых з вас, хто прыйшла позна, у нас ёсць цукеркі, так што вы, хлопцы, жадаеце цукерку? АЎДЫТОРЫЯ: Вядома. ZAMYLA Чан: Я проста збіраецца абыйсці. Гэй, калі вы, хлопцы, атрымаеце тут рана, вы атрымаеце больш цукерак. Добра. Бэн, ты хочаш цукерку? Вы хочаце, каб некаторыя з іх? Там таксама Snickers калі хто-небудзь хоча Snickers. Я пакіну іх тут і тут. Не саромейцеся. Хочаце больш? АЎДЫТОРЫЯ: Усё гатова. Дзякуй. ZAMYLA Чан: А ў мяне быў добры мала куча там у пачатку. Вы, хлопцы, каб прайсці тэст і Я атрымліваю мець віктарыны класіфікацыі партыю. Гэта хаос. 900 экзаменаў. Гэта будзе так весела. Будзе выдатна. Я ўпэўнены, што гэта адна найбуйнейшага штата склейвання начэй у годзе. Хто-небудзь рабіў тэст, нулявую ад у мінулым годзе яшчэ з цікаўнасці? АЎДЫТОРЫЯ: Часткі яго. ZAMYLA Чан: Часткі яго, ОК. Ці было ў вас пытанні па любой з іх? Аўдыторыя: Я ўжо пайшоў у працоўныя гадзіны. Дзякуй, хоць. ZAMYLA Чан: Ну, мы спадзяемся, гэта ўсё ж такі выгляд карыснымі. Калі вы ідзяце ў гадзіны працы для гэтага? АЎДЫТОРЫЯ: Мой TF быў ім у другой палове дня. ZAMYLA Чан: Так. Хто твой TF? АЎДЫТОРЫЯ: Фрэд [? Wujaya?]. ZAMYLA Чан: Ёсць так шмат ТФ. Так шмат. Добра. Хто-небудзь ёсць, каб пачаць што я магу запісаць, што мы хочам працаваць? Я мяркую, паказальнікі адзін з табліцай. Пайсці на гэта. АЎДЫТОРЫЯ: Можа быць, перамыкач адзін. ZAMYLA Чан: Так лік 12? Я мяркую, што лік 8 і 9, верагодна, Онов людзі хочуць перайсці. АЎДЫТОРЫЯ: А 10 і 11. ZAMYLA Чан: А вы, хлопцы, ведаеце, Вы атрымліваеце адну старонку нот, ці не так? АЎДЫТОРЫЯ: Так, так што ж мы дазволілі надзець што. ZAMYLA Чан: Вы дазволілі пакласці ўсё, што заўгодна. І гэта можа быць надрукаваны. Наколькі я памятаю, нашы былі набраныя. АЎДЫТОРЫЯ: Вы можаце зрабіць таму і абодва бакі? ZAMYLA Чан: Так, абодва бакі. Так што-то накшталт кучы і [? Задні канец?] Куча, ваш ход раз. Карыснае. Можа быць, дробязі каля паказальнікі, каб нагадаць вам. Сінтаксіс для рэчаў. Толькі што, як шкілет Праграма можа быць супер карысна. Я ведаю, што я заўсёды забыўся, што менавіта Я павінен быў напісаць для INT магістралі, таму што я заўсёды проста скапіяваць устаўкі з майго папярэдняга набору P ці гэта ўжо ёсць, так што Я ніколі не пісаў яго, так што наяўнасць, што можа быць супер карысна. Такім чынам, чаму ж не мы пачаць з нумарам 8 тады? Добра. Добра. Так лічаць праграму ніжэй. Так, відавочна, калі мы бачым, паказальнікі, гэта, верагодна, добрая ідэя, каб пачаць маляваць, ці не так? Я хачу ведаць, дзе ўсе мае вялікія кавалкі мелу пайшоў. Гэта выгляд раздражняе. Такім чынам, мы маем тут некаторыя функцыі падпампоўкі што збіраецца ўзяць у двух паказальнікаў. Такім чынам, у гэтым выпадку, яны павінны быць на самай справе пераключэння рэчы ў параўнанні з нашай першапачатковай свопу Функцыя, якая толькі ўзяла ў копіях. Так што гэта будзе рабіць is-- давайце пачнем з галоўнага, таму што там 1. Такім чынам, мы маем некаторую Int х 1. У нас ёсць у што, роўнае 2. А то ў нас некаторыя своп што збіраецца ўзяць тых. І давайце паглядзім, што ў нас тут. І ў нашым table-- аб хлопчык. Як я буду гэта рабіць? Я збіраюся зрабіць свой стол тут. Ледзь робячы яго там. Ледзь яго падрыхтоўкі. 1, 2, 3, 4, 5, 6, 7. І яны даюць нам, што 1 = 1, і 2 студзеня. Прахладны. Дзіўны. Так 3. І ёсць [? 1.?] Добра. А потым адрас х з'яўляецца 0x123. І ў ёсць Ox127. Прахладны. Добра. Я хачу, каб вы, хлопцы, працаваць над гэтым усяго за like-- працы на ім з людзьмі вакол вас. Шкада, што я сказаў, што у той час як я быў наладзе. Праца на ім. Паспрабуйце і працаваць на яго самі на працягу пары хвілін, і тады я буду працаваць над гэтым з вамі. Таму што толькі так вы сапраўды збіраецеся вучыцца гэта рабіць гэта самастойна. Не турбуйцеся. Ўдачы. Добра, чаму б нам не павольна пачаць працаваць праз гэта. Такім чынам, кожны атрымлівае пасля лініі адзін, х = 1. Пасля другой лініі, х і у роўна 1 і 2, ці не так? Прахладны. Так лінія тры, дзе рэчы самае цікавае, вядома. Так што мы зрабілі тут будзе цяпер мы памяняліся месцамі. Мы кажам, што х і ў маюць тыя пункты, ці ў іх ёсць адрас хну, ці не так? Такім чынам, у дадзеным выпадку, тры, якая кошт? быў прыняты ў, было дадзена значэнне па адрасе х, ці не так? АЎДЫТОРЫЯ: 1? ZAMYLA Чан: Так мы дадаем яго да х? Што адрас Х? АЎДЫТОРЫЯ: 0x123. ZAMYLA Чан: Цалкам дакладна. Але тое, што гэта на самай справе паказваючы? Калі б мы былі разыменовать, якое значэнне будзе ён дае нам. АЎДЫТОРЫЯ: 1. ZAMYLA Чан: Было б даць нам 1, таму што мы кажам, гэта пайсці на гэта адрас, скажыце нам, што гэта значэнне. Так што будзе б? АЎДЫТОРЫЯ: 0x127. ZAMYLA Чан: Цалкам дакладна. Так што гэта адрас у. І тады тое, што [? разыменовать? ?] АЎДЫТОРЫЯ: 2. ZAMYLA Чан: ОК, так што зараз чатыры. Мы сказалі гэта equal-- добра цяпер мы зроблена інтэрвал тэмпературы роўная зорцы. Дык якія змены? Там толькі адна рэч, што змены тут. Што гэта? АЎДЫТОРЫЯ: Temp. ZAMYLA Чан: тэмп. Такім чынам, мы можам перапісаць ўсіх з іх. Добрая стратэгія для іх проста высветліць якія змены, таму што часцей за ўсё ёсць толькі адна рэч, якая збіраецца мяняць у любы момант, ОК? Так мы прызначылі тэмп. Цяпер наша наступная кропка, пяць, мы зрабілі зорка роўна зорка б. Так, якія змены цяпер? АЎДЫТОРЫЯ: Зорка. ZAMYLA Чан: Зорка, так ўсё астатняе застаецца нязменным. А што значыць зорка роўна? АЎДЫТОРЫЯ: 2. ZAMYLA Чан: 2. Выдатны. Дзіўны. ОК, а затым цяпер у нас ёсць пачаць б роўная тэмпературы. Таму адзіны змена рэч зорка б. Усё астатняе застаецца нязменным. І тое, што зорка б роўна цяпер? І вы завяршылі табліцу. Таму што цяпер у канцы, калі мы кажам, х і у, мы ведаем, што ў гэтым point-- мы ведаем, што, калі мы змяніліся зоркі 2, што гэта зрабіў ён сказаў ОК, на адрас 0x123 тут, змяніць яго. Зараз гэта было 2. І тады ў гэтай кропцы, мы сказалі ОК, перайдзіце на галоўную б. Так што па адрасе, 0x127 і зрабіць яго 1. Так што цяпер у самым канцы, калі мы на самай справе вярнуцца да асноўнай, мы на самай справе ёсць, што х роўна 2 і Y роўны 1. Усё добра з гэтым? Добра, прахалодна. Нумар 9. Вы, хлопцы, працаваць над гэтым. Я збіраюся стварыць савет такім чынам, мы можам зрабіць праз яго. Гэта будзе выбух. Вялікія табліцы могуць быць сапраўды страшна, я ведаю. Але калі вы проста ўзяць іх па адным радку Час, яны атрымліваюць нашмат менш страшна. Добра. Такім чынам, вы ведаеце, што гэта будзе мець перажыў галоўны першае, ці не так? Ініцыялізуе х і ў і затым спрабуе памяняць іх месцамі. Такім чынам, нават своп вышэй, рэальны спосаб яе ідзе ў тым, што мы збіраемся праз галоўны, а потым тэлефануе да памяняць, усё ў парадку? Дык гэта ўсё ведаюць. Дык які з іх вам Хлопцы хочуць пачаць? Хто-небудзь сапраўды ўпэўнены, аб адным з іх? Ці нават часткова ўпэўненыя? Чаму б нам не пачаць з х? Што мы думаем х? АЎДЫТОРЫЯ: 1. ZAMYLA Чан: 1. Такім чынам, чаму гэта 2. І гэта таму, што вялікае адрозненне тут з'яўляецца тое, што мы толькі праходзячы копіі ў, ці не так? Мы не праходзячы па спасылцы. Такім чынам, нават у канцы гэтая праграма х і ў засталіся такімі ж, таму што яны проста капіюе ў функцыі падпампоўкі. Яны на самай справе не змяніць, ці не так? Так што пра а, бы, і тэмп? АЎДЫТОРЫЯ: гэта б. ZAMYLA Чан: гэта б. Такім чынам, у гэтым выпадку, было х, які роўны 1, ці не так? Дык вось, давайце ісці праз яго. Так у пачатку, а і б з'яўляюцца 1 і 2 і нявызначаным. Так, першапачаткова тэмпература становіцца прызначаны, так Тэмп 1. роўны У, таму мы атрымліваем 2, і б роўная тэмпературы. Цяпер мы атрымліваем 1. АЎДЫТОРЫЯ: У папярэднім адной ім памяняліся Ампэрсанд х і Ампэрсанд у. Што менавіта гэта азначае? ZAMYLA Чан: Такім чынам, што азначае, што вы перадаеце па спасылцы. Значыць, вы на самой справе якая праходзіць у адрасах, дзе х і ў захоўваюцца. АЎДЫТОРЫЯ: Але вы не перапампоўкі адрас. ZAMYLA Чан: Ты не перапампоўкі адрасы. Вы перапампоўкі што ў іх. Як тое, што па гэтым адрасе, і вось чаму гэта працуе. Versus ў гэтай праграме тое, што вы робіце, вы ствараеце копіі. Так у вас ёсць х і у, якія існуюць як сваіх уласных зменных тут. Але затым, калі вы праходзіце іх у своп, гэта як быццам вы ствараеце гэта зусім іншы набор. Так вы ніколі не фактычна кранальныя х і у. АЎДЫТОРЫЯ: Калі Ампэрсанд х, пра што ідзе адрас х, што б зняцца х? ZAMYLA Чан: Ampersand х гэта тое, што ў адрас х, то star-- добра, У гэтым выпадку, х не з'яўляецца паказальнікам. АЎДЫТОРЫЯ: О, добра. Такім чынам, вы толькі зрабіць гэта таму што гэта не паказальнік. ZAMYLA Чан: справа. Гэта можна зрабіць толькі зорку тое, што гэта паказальнік. Можа быць, вы маглі б зрабіць гэта, каб рэчы, якія ня, але кампіляцыі, што вам зрабіць вар'яцкія рэчы, што адбудзецца. І я дакладна не упэўнены, што будзе. Вы заўсёды можаце ўзяць адрас што-тое, але вы не можаце разыменовать тое, што гэта не паказальнік. Калі гэта мае сэнс, гэта добры адрозненне мець. Так што не так ужо дрэнна, ці не так? Сталы, спадзяюся, атрымліваць трохі менш страшным. Добра. Ах, пацешныя тыя. Так што цяпер, напісаўшы уласны код. Так што я збіраюся паведаміць вам, хлопцы, працаваць на гэта на працягу прыкладна чатырох хвілін, і тады можна будзе казаць аб падыходах да яго. Не саромейцеся гаварыць з людзьмі вакол вас. Акрамя таго, гэта цікава. Гэта як усіх дзяўчат Раздзел прама цяпер. Даволі цікава. Для Чанг выключэннем. Але Чан не з'яўляецца часткай падзелу. Дзіўны. Ідэальны. Таму я дам вам пару саветаў. У выпадку, калі ў вас ёсць больш аднаго знака, дзе ў вас ёсць што-то яшчэ як 123 або 1000 што-тое, Вы павінны быць у стане завесы і пераўтварыць з дапамогай кожнага з іх. Такім чынам, ёсць пара спосабы вы маглі б зрабіць, што, але вы, безумоўна, будзе мець для завесы дзе-то там у цыкле праз іх, які накшталт як паддаўкі с, нават калі вы называеце STRLEN, які накшталт як пра можа быць, вы хочаце выкарыстоўваць даўжыню радкі ў некаторым родзе. Добра. Дык што ж вы, хлопцы, думаю, можа быць адзін з першых рэчаў, якія мы хочам зрабіць? Там у пару выпадкаў тут мы павінны ўлічваць, праўда? Альбо ў нас ёсць што-небудзь нуль. Што ў нас ёсць? Выпадкі. Null. У нас ёсць справа, што ў яго ёсць нешта іншае, чым 09, ці не так? Так скажам, у яго ёсць лісты. Ці мы маем справу, сапраўдны. Тры выпадкі, каб думаць. Дык які з іх вы думаеце можа быць самы просты, каб клапаціцца ў першую чаргу? АЎДЫТОРЫЯ: Null. ZAMYLA Чан: Справа ў тым, нулявая. Так што мы будзем рабіць там? АЎДЫТОРЫЯ: [неразборліва]. ZAMYLA Чан: Так. І тое, што я хачу зрабіць? АЎДЫТОРЫЯ: Вярнуцца 0. ZAMYLA Чан: Цалкам дакладна. Дзіўны. Добра. Так што зараз выпадак, што ў яго ёсць лісты і так, што яна дзейнічае. Мы можам на самай справе клапаціцца гэта на працягу аднаго цыклу, ОК? Так адзін з спосабаў зрабіць it-- што можа быць просты спосаб праверыць, калі яна дзейнічае. Мы павінны былі б прайсці кожная літара і рабіць тое, што? АЎДЫТОРЫЯ: Праверце, калі гэта in-- ZAMYLA Чан: Так, вы можаце праверыць калі гэта ад 0 да 9, ці не так? І тады ў выпадку што гэта справядліва, мы будзе ў канчатковым выніку перабору наша радок у любым выпадку, ці не так? Дык чаму б нам не паспрабаваць і аб'яднаць іх у адзін. Мы збіраемся паўтараць праз па-за радкі, і, як мы зрабіць гэта, мы збіраемся спачатку зрабіць праверку, каб убачыць, калі гэты ліст або калі гэты сімвал з'яўляецца дапушчальным. Калі гэта так, мы збіраемся выканаць Аперацыя, што нам трэба, каб пераўтварыць яго. У адваротным выпадку яна верне 0, ці не так? Таму, перш чым мы гэта зробім, мы верагодна, хочаце, каб некаторыя зменную што мы можам вярнуцца ў канцы што будзе наша фактычнае значэнне. Такім чынам, мы збіраемся, каб ініцыялізаваць некаторы значэнне роўным 0. І гэта, як мы пачнем. Так што я збіраюся пазбавіцца ад гэтага. Так як мы збіраемся перабору гэтага радка. АЎДЫТОРЫЯ: Для контуру. ZAMYLA Чан: для завесы. Так што наша для? Аўдыторыя: Я 0. ZAMYLA Чан: Мм-хм. І тое, што мы не паўтараючы, пакуль? АЎДЫТОРЫЯ: даўжыня вул з с. ZAMYLA Чан: Добра, зараз памятаю ёсць лепшы шлях. [Неразборліва]. АЎДЫТОРЫЯ: Так, мы можам зрабіць н роўная. ZAMYLA Чан: Цалкам дакладна. Аўдыторыя: Я менш п. ZAMYLA Чан: А чаму мы хацелі б зрабіць? Вы памятаеце прычыну? АЎДЫТОРЫЯ: Мы павінны пералічыць яго. ZAMYLA Чан: Becasue Такім чынам, вы толькі для разліку STRLEN раз. Калі вы робіце я менш StrLen с, што азначае, што ён пералічвае Даўжыня кожны раз запуску для завесы, які не з'яўляецца велізарная кошт энергіі, але гэта лепшая практыка, каб паспрабаваць рабіць рэчы, як, што, як толькі. Калі магчыма, у вас ёсць вар'яты радок што мяняецца на кожнай ітэрацыі. Але калі гэта застаюцца на тым жа, захаваць яго. Добра. І тады я плюс плюс. Дзіўны. Мы знаходзімся на шляху. АЎДЫТОРЫЯ: Сапраўды хутка. Па-першае, так скажам, мы проста зрабіў я менш STRLEN з х, яны сартавання намі на дызайн наогул ці проста правільнасці? Яны не. Мы сартавання ад правільнасці для віктарыны, наколькі я ведаю. Я не магу зрабіць поўны на гарантыя, але па большай частцы, Пераважная большасць з'яўляецца карэктнасць, таму што Вы знаходзіцеся пад вялікім часовых абмежаванняў. Дызайн, як правіла, азначае, ў вас ёсць час, каб падумаць аб элегантнасці вашай сітуацыі. Такім чынам, мы ітэрацыі. Так што мы павінны альбо праверыць, см, калі гэты персанаж дзейнічае або калі мы можам выканаць нашы нармальны [? у I?] функцыя. Мы можам турбавацца аб тым, што гэта значыць у секунду. Дык чаму б нам не take-- калі хто можа думаць пра спосаб праверкі на см, калі гэта справядліва. Мы ведаем, што гэта збіраецца быць некаторыя, калі стан, ці не так? І памятайце, што гэта у ASCII, так як можа мы бачым, калі гэта не 0,1, 2, 3, 4, 5, 6, 7, 8, або 9. АЎДЫТОРЫЯ: Калі альфа. ZAMYLA Чан: Так што, калі альфа будзе толькі дайце нам ведаць, калі гэты ліст. І калі яны даюць нам сімвал, гэта яшчэ не зусім збіраюся праверыць. Так што, калі вы цягнеце свой ASCII стол, мы ведаем, што ад 0 да 9 знаходзяцца ў адным сегменце. Скажы мне лічбы, што яны адпавядаюць, калі гэта магчыма. АЎДЫТОРЫЯ: 40. ZAMYLA Чан: Так дыяпазон як 40-- АЎДЫТОРЫЯ: Можа быць. Ад 48 да 57. Я не ўпэўнены. ZAMYLA Чан: ад 40 да 57? АЎДЫТОРЫЯ: 48, я думаю. ZAMYLA Чан: ад 48 да 57. Такім чынам, мы ведаем, што тыя, ASCII symbols-- калі значэнне не ASCII паміж 48 і 57, гэта не справядліва, ці не так? Так можа мы выкарыстоўваем, што ў наша перавага, магчыма? Як мы збіраемся, каб атрымаць гэты ліст, перш за ўсё? Як мы доступе гэта гэты персанаж? АЎДЫТОРЫЯ: з кранштэйнам я. ZAMYLA Чан: Мм-хм. Таму што мы можам думаць аб Радкі як масівы, памятаеце. Такім чынам, што ж мы хочам сказаць? Мы хочам сказаць, калі гэта is-- Я дам вам падказку. Гэта менш, чым. Што вы думаеце яго павінна быць менш, чым? АЎДЫТОРЫЯ: 57? ZAMYLA Чан: 47, ці не так? Але гэта таксама азначае, што, як вы 0 ў адным [? спіцы?], таму што гэта характар ​​0. Акрамя таго, можна паставіць 47. Маючы табліцу ASCII, як Вы бачыце, гэта проста нешта Вы павінны мець на сваім віктарыны ліста. Такім чынам, калі гэта мае месца, калі гэта менш 0-- не абавязкова і. Гэта толькі альбо будзе менш або больш, чым 9. Так можа вы запаўняеце гэты апошні для мяне? Так ці з моманты я ёсць што, Рэя? АЎДЫТОРЫЯ: Больш чым 9. ZAMYLA Чан: Там. Ці робіць гэта сэнс усё, як мы дабраліся там? Гэтыя праблемы, яны як раз вас ўбачыць рашэння, гэта, як пра, ОК. І менавіта таму практыка дапаможа вам. Такім чынам, мы вяртаемся 0. Выдатны. Добра. У адваротным выпадку тое, што мы хочам зрабіць? Гэта цікавая частка дзе гэта крыху больш як матэматыка супраць CS, на мой погляд. Хто-небудзь ёсць ідэя пра тое, як мы маглі б гэта зрабіць? Так галоўнае разумеюць гэта першы сімвал мы бярэм будзе вышэйшы ордэн лічба, ці не так? Так што, калі мы глядзім на пераўтварэнні 123, у першы раз мы ітэрацыі гэта будзе адзін, але мы павінны што на 100 да канца, ці не так? Так адна рэч, вы можаце зрабіць тое, што з кожнай наступнай лічбай вы бераце, вы памнажаеце сваю каштоўнасць на 10, так што да таго часу, вы дойдзе да канца, усё было ссунутыя ўверх, ці не так? Так упершыню запускаецца гэта, у вас ёсць 1 у якасці значэння. У другі раз вы запусціце яе, вы памножыць сваю каштоўнасць на 10. Ён будзе абнаўляць яго так, што цяпер 10, і вы дадаеце на наступнае значэнне. І тады вы памножце гэта на 10 і дадаць на наступнае значэнне. І менавіта таму яны кажуць, што гэта нашмат больш паходзіць тэставання матэматыка Алгарытм супраць CS, але я адцягнуўся. Я не пішу віктарыны. Так што, адно мы можам зрабіць, гэта мы кажуць раз кошт роўная 10. Дык гэта будзе перамяшчацца Ваш лічба адзін раз кожны раз. А потым мы проста хочам дадаць. Мы хочам дадаць у тое, што мы толькі што атрымалі, ці не так? Так як жа мы на самай справе пераўтварыць наш ASCII сімвалаў у колькасці што яна ўяўляе? Такім чынам, мы ведаем, што 0 роўны 47, ці не так? Так што, калі 0 47, што б мы павінны зрабіць да яго на самай справе зрабіць гэта будзе інтэрвал ад 0? АЎДЫТОРЫЯ: Гэта 48. ZAMYLA Чан: 48? Прабачце. Мы б адняць 48, ці не так? Памятаеце ASCII матэматыку? Мы можам ставіцца да іх толькі як звычайныя колькасці. Калі вы ставіцеся да іх, як нумары, яны становяцца лічбы эфектыўна. Так што, калі ў нас ёсць х I, які Давайце казаць у гэтым выпадку роўная 0. Так з моманты я ў гэтым выпадку будзе ASCII-- ASCII інтэрвал для яго было б 47. Такім чынам, мы маглі subtract-- або 48. Вы можаце зрабіць гэта, з'яўляецца адным з спосабаў. Хто-небудзь ведае лепш Так мы маглі б зрабіць 48? Мы толькі што сказалі 0 is-- ісці ў ASCII вы маглі б зрабіць цытату 0. Гэтак жа гэта збольшага робіць сэнс, як гэта працуе? АЎДЫТОРЫЯ: На дадзены момант, з'яўляецца значэнне 0 таму што нават калі памножыць яго на 10, Вы пачынаеце з нуля, так яна павінна быць уключана? ZAMYLA Чан: Так што ў гэтым выпадку, вы хочаце памножыць яго, перш чым дадаць, таму што ў гэтым выпадку, так, гэта было б яшчэ be-- мой паказальнік адсутнічае. Значэнне ў гэтым выпадку, першы раз мы запусцілі яго будзе роўная нулю. Такім чынам, вы проста дадаючы на гэтай першай лічбы. Важна тое, што ў наступны раз Вы ітэрацыі, вы хочаце, каб перамясціць яго ўверх перш чым дадаць наступную лічбу на. Хіба што растлумачыць для вас? Добра. Часам вы збіраецеся атрымаць непрадказальны больш Mathy рэчы. Калі ў вас большасць гэта, вы ўсё яшчэ збіраецеся у get-- вы збіраецеся рабіць вельмі добра. Частковае крэдыт з'яўляецца вельмі Вялікая рэч аб CS50 віктарыны. Так што пішыце, што вы ведаеце. Калі вы атрымалі ўсё, , Акрамя гэтага падзелу вы яшчэ збіраецеся рабіць сапраўды добра праблема. Таму што вы паказваеце, ОК, я амаль ведаю. Я ведаю, што мне трэба для перабору. Я ведаю, што мне трэба, каб праверыць. Я проста не зусім атрымаць як пераўтварыць яго. Вы збіраецеся быць у парадку. Так, вы збіраецеся страціць пару ачкоў, але вы ўсё яшчэ збіраецеся атрымаць Вялікая колькасць балаў за тое як, што, калі вы адсутнічае гэтыя два радкі. Я б, як добра, гэтага чалавека ведае, што яны робяць. Матэматыка цяжка. Так што я б сказаў, што ты будзеш у парадку. Такім чынам, вы, хлопцы, гатовыя да паспрабуйце STRLEN з паказальнікамі зараз што вы, хлопцы, паказальнік майстра? Таму я дам вам, хлопцы, працаваць на што за няшмат. Калі камусьці патрэбен асвяжыць. Такім чынам, вы хочаце выкарыстоўваць паказальнік арыфметыка, а затым, калі з пустой, ваша рэалізацыя павінна вяртаць 0. Такія рэчы, як гэта, якія робяць вас сапраўды шчаслівы проста патэлефануеце STRLEN у канцы дня. Я думаю, што гэта можна было б быць крыху лягчэй, чым папярэдні, які гэта добра. Я дам вам, хлопцы яшчэ хвіліну, і тады мы будзем працаваць праз яго. І тады мы атрымліваем, каб перайсці да перамыкачоў. ОК, гатовыя хлопцы? Можа быць, трохі. Так што я даў вам вашыя два варыянты, ці не так? Альбо праверыць нуль і вяртаць 0, калі гэта, ці на самай справе вылічыць даўжыню. Так што хто хоча напісаць праверыць нуль? Пайсці на гэта. АЎДЫТОРЫЯ: Калі круглыя ​​дужкі з роўная роўная нулявы вяртанне 0. ZAMYLA Чан: Выдатны. Я люблю, калі напалову вашу праблему проста праверка на нуль. Я ведаю, з вы, хлопцы, у мінулым тыдні я быў як чэк на нуль літаральна кожны раз. ОК, so-- АЎДЫТОРЫЯ: Калі вяртанне 0 толькі адна лінія, мы да гэтага часу маюць патрэбу ў фігурную дужку? ZAMYLA Чан: Вы не тэхнічна трэба іх да таго часу, вы паслядоўныя. Гэта добрая практыка проста каб увайсці ў звычку выкарыстання фігурных дужак, але тэхнічна няма. Вы не маеце патрэбу ў іх для адной лініі. Мы проста, як правіла, рэкамендуюць яго для людзей, якія пачынаюць праграмы. Так што цяпер, магчыма, мы хочам зрабіць тут? Так што цяпер мы ведаем, што наша радок сапраўдная. Мы хочам, каб вылічыць даўжыню. Што, верагодна, першым што мы хочам зрабіць? АЎДЫТОРЫЯ: Стварыць INT гэта даўжыня. ZAMYLA Чан: Цалкам дакладна. АЎДЫТОРЫЯ: І мы хочам, каб усталяваць яго на? ZAMYLA Чан: 0. Ідэальны. Добра. Цяпер тое, што хочаце рабіць? Гэта сапраўды вялікая яго частка. Пайсці на гэта. АЎДЫТОРЫЯ: Такім чынам, вы, верагодна, зрабіць цыкл. А потым так пры выкліку сек ты атрымліваць адрас першай рэчы, Вы б пачаць з я роўная 0. І затым, пакуль х плюс я не зваротны слэш 0. ZAMYLA Чан: Нулявая тэрмінатар. АЎДЫТОРЫЯ: Нулявая тэрмінатар. Затым дадайце адзін да даўжыні. ZAMYLA Чан: Так. ОК, так што давайце ператварыць што ў вельмі канкрэтнай кода. Але гэта выдатная ідэя. Гэта менавіта тое, што мы робім. Мы збіраемся быць ітэрацыя праз з паказальнікам. Так што мы хочам зрабіць, гэта замест Int тут, таму што мы не спасылаючыся на яго. Мы спасылкай на старце Радок, што пачаць быць некаторыя адрас, ці не так? Такім чынам, мы хочам паказальнік. Такім чынам, мы будзем мець некаторы сЬаг зорку, таму што гэта адпавядае нашым з, ці не так? Так што гэта нейкі момант мы ініцыялізацыі ў пачатку радка, ОК? Так што давайце проста называць гэта я. Калі гэта пачатак радка, што ён будзе прызначаны? Ня 0. Мы хочам, каб гэта было пачаць нашага радка. Што ўяўляе сабой пачатак наша радок, якая была дадзена нам? АЎДЫТОРЫЯ: Проста с. ZAMYLA Чан: с. Такім чынам, гэта стварае некаторыя новыя паказальнік, які ўяўляе сабой пачатак нашай радкі, ОК? Іншы спосаб думаць пра гэта як вось наш масіў. Гэта наша радок, с. Так скажам, гэта Першая кропка, і гэта 0x4. 04. Гэта наша з, які трымае гэты адрас. І мы толькі што стварылі яшчэ адзін пад назвай я што толькі ставіцца да таго ж. Такім чынам, яны абодва проста паказваючы да пачатку нашага радка. Гэта проста графічнае ўяўленне. Так што цяпер, што мы хочам, каб зрабіць гэта мы хочам перабраць наша ўмова для ітэрацыі праз нашу радок. Цяпер за пакупкамі. Атрымаў у краму, хлопцы. Хіба мы хочам, каб пастаянна абнаўляць, пакуль мы дасягнем нулявы тэрмінатар, ці не так? Так што, магчыма, гэта выглядае? Хочам Ці мы I, ці мы хочам зоркі, я ў чым пытанне? З'яўляецца нулявая тэрмінатар адрас або што-то знаходзіцца па адрасе? Размешчаны па адрасе, ці не так? Так што мы павінны разыменовать усё, што тут, таму што гэта толькі некаторыя адрасы. Каб сапраўды атрымаць да пачатку мы павінны разыменовать гэта так што мы на самай справе атрымаць тое, што ў гэтым першым месцы. Так што калі мы робім зоркі, я, што ня хочам, каб яна роўная? АЎДЫТОРЫЯ: Вярнуцца слэш? ZAMYLA Чан: Там. Ці мае гэта сэнс для ўсіх? Нам трэба ісці ў нашу радок і пераканайцеся, што гэта не канец. І тады мы можам проста абнавіць, як гэта. Нармальны абнаўленне. Так што, пакуль яны MET, што мы павінны зрабіць? АЎДЫТОРЫЯ: Даўжыня плюс плюс. ZAMYLA Чан: Мм-хм. А потым, пасля цыкл спыняе, што мы хочам, каб вярнуцца? АЎДЫТОРЫЯ: Даўжыня? ZAMYLA Чан: Даўжыня. Там вы ідзяце. Відавочна мяса гэтым з'яўляецца разуменне гэтага цыкл. Ці ўсё атрымаць, як гэта працавала? Я шчаслівы ісці па ёй яшчэ раз. АЎДЫТОРЫЯ: Другі частка, так зоркі я там, вось адрас first-- ZAMYLA Чан: Гэта не адрас. Гэта тое, што ў. АЎДЫТОРЫЯ: Гэта на самай справе там. ZAMYLA Чан: Гэта што на самой справе там. Так што гэта saying-- хай мне зрабіць гэта лепш. Так што гэта 0x04, і я проста хачу, сказаць, што я збіраюся зрабіць гэта маё імя. Добра. Так, я ведаю, што ёсць віктарына агляду сёння. Шмат віктарыны агляду. Так скажам, гэты радок маё імя, Элісан. Маленькі брудны, але яна ёсць. І з ўяўляе месцазнаходжанне ад таго, дзе пачынаецца радок, так што я збіраюся зрабіць гэта real-- гэта адрас, дзе пачынаецца радок, ці не так? Так, што мы робім тут мы хочам выкарыстоўваць паказальнікі для перабору. Так мы ствараем некаторую паказальнік, I, што таксама роўны пачатку радка. І ў кожнай кропцы, мы хочам, каб Мы працягваем ісці па масіве тут, пакуль мы не патрапілі ў нулявы тэрмінатар. Такім чынам, мы заўсёды хочам, каб праверыць тое, што на кожным з гэтых адрасоў. Такім чынам, мы разыменовать я, так што Упершыню мы робім гэта мы сказаць, у парадку, што па адрасе 0x04? Гэта. Добра, што мы добрыя. Прырост даўжыні. Пераходзіце да наступнага. Так i-- памятаю павелічэнне паказальнікі па памер усе яны, паказваючы на. Такім чынам, у гэтым выпадку, так як гэта сімвал, ён будзе абнаўляць па адным. Так што цяпер мы будзем глядзець на 5, што азначае, што адбываецца тут. Так ён кажа ОК, перайдзіце на 0x05. Што там? Гэта л. І гэта будзе працягваць рабіць гэта пакуль не дасягне гэтага. І гэта кажа ОК, што ў усе адрасы гэта? Нулявая тэрмінатар, ОК. Выхад. І проста вярнуць даўжыню. Таму што вам трэба, што на самой справе ў што адрас, а не сам адрас. Ёсць вельмі мала месцаў, дзе Вы на самой справе патрэбен адрас. Большая частка часу, калі Вы карыстаецеся і гэта калі вы спачатку прысваенне паказальнік ці калі вы перадаеце яе ў іншай функцыі. ОК, усё там добра? Накшталт? Добра. Так што, падобна, мы маю атрымалі каля 12 хвілін да канца, таму мы пойдзем на можа быць, наша апошняя праблема, а там любая паняцці, якія прыдумалі у той жа час мы можам хутка перайсці, што. Так пераключэння перадач будзе апошнім Праблема тут, пераключыцца заявы. Так што ваша праца заключаецца ў перапісаць гэта так, што ён паводзіць сябе так жа але не выкарыстоўваць камутатары. Крэйдавыя рукі. Таму любыя пытанні аб гэтым з месца ў кар'ер? Ніхто? Добра. Усе разумеюць гэта, што калі справа не мае нічога пасля яго, гэта азначае, што ён павінен прытрымлівацца наступны крок? Так выпадку 1 і 2 у гэтым выпадку зрабіць тую ж самую рэч. Часам кропка блытаніны. Добра. Каго-небудзь ёсць ідэі? Так? АЎДЫТОРЫЯ: Такім чынам, вы можаце проста зрабіць, калі заявы. ZAMYLA Чан: Мм-хм. Так што наш першы? АЎДЫТОРЫЯ: Калі п роўна роўны 1, і 2 лініі для або п роўных роўны 2, а затым раздрукаваць малая. І тады вы можаце зрабіць яшчэ, калі? Ці можа вы проста зрабіць, калі? ZAMYLA Чан: Вы можаце зрабіць яшчэ, калі? АЎДЫТОРЫЯ: Ці будзе гэта важна, калі вы зрабілі, калі? ZAMYLA Чан: Дык гэта робіць. Ці мае anyone-- так, вы атрымаеце той жа вынік калі вы выкарыстоўваеце толькі ўмоўнага ладу ў параўнанні калі вы карыстаецеся альбо яшчэ ўмоўнага ладу. Можа вы, хлопцы, думаеце пра прычыну чаму вы, магчыма, захочаце выкарыстоўваць ELSE калі супраць шмат IFS? Павінен з эфектыўнасцю. Так? АЎДЫТОРЫЯ: Было б праверыць усе ўмоўнага ладу кожны раз. ZAMYLA Чан: Так што нават калі ён ударыў гэты першы, яна будзе ісці на праверку праз адзін. Такім чынам, вы хочаце выкарыстоўваць If Else ўмоўнага ладу ў выпадках дзе толькі адзін з іх калі-небудзь скарыстаць. Так ўзаемнае выключэнне тое, што мы, як правіла, кажуць. Калі ў вас ёсць куча IFS, гэта азначае, што, можа быць, больш, чым адзін з іх пытанні і, можа быць, больш, чым адзін з іх можа быць праўдай. І вы хочаце іх абодвух выканаць, калі гэта праўда. Калі вы хочаце толькі аднаго з іх, каб працаваць у гэтых узаемавыключальных выпадкаў, Вы хочаце выкарыстоўваць яшчэ, калі, таму што Усё гэта мае дачыненне да эфектыўнасці. Ваш код проста лепш распрацаваны калі ён прытрымліваецца гэтай практыкі. Так што ў гэтым выпадку мы будзем мець яшчэ калі. І гэта было б? АЎДЫТОРЫЯ: п роўная роўная 3. ZAMYLA Чан: Выдатна. Раздрукаваць сярэдняга. А потым у наш апошні так, што мы маем? Інакш альбо калі? АЎДЫТОРЫЯ: астатняе. ZAMYLA Чан: Ці ёсць у нас want-- Вы хочаце яшчэ калі, таму што мы маем канкрэтныя выпадкі. Гэта не від ўлову ўсіх. Калі ў вас ёсць па змаўчанні ў switch-- Памятаецца, у камутатарах вы можаце мець справу, і тады ў вас ёсць па змаўчанні. Калі ў вас ёсць па змаўчанні, гэта свайго роду Вашай-то заявы там. Але калі ў яго ёсць толькі выпадкі, што азначае, што вы павінны праверыць, каб пераканацца, што гэта кожны з іх. Такім чынам, у дадзеным выпадку, гэта будзе 4 або 5. Мы хочам, каб друк прэч. Гэта вялікая. І там вы ідзяце. І што б ваша праграма. Такім чынам, у гэтым выпадку, калі мы быў па змаўчанні тое, што ў нас будзе альбо яшчэ ў усё, што хацеў, каб мы зрабілі. Так што гэта добрая адрозненне ведаць, разумець. Хіба што дапамагчы з перамыкачамі для вас? Ідэальны. Добра. У нас ёсць каля васьмі хвілін у запасе. Ці ёсць у вас, хлопцы, любы іншыя паняцці высокага ўзроўню? Пытанні ў цэлым? Так? Аўдыторыя: Я быў Пытанне аб адным з іх што было пра выпадковая Лік генератар на віктарыне нулявы. ZAMYLA Чан: О, гэта адзін. Гэта адзін яшчэ адзін, дзе гэта больш матэматыка than-- так. Рашэнне that-- нават я, калі Я бачу гэта, я, як тое, што гэта. АЎДЫТОРЫЯ: Гэта быў нумар 7. ZAMYLA Чан: Гэта дзіўна, на мой погляд. Таму ў асноўным вы хочаце выкарыстоўваць drand48, які дасць вам некаторыя лік паміж 0 і 1. І вы хочаце, каб выкарыстоўваць яго так што вы нейкім чынам атрымаць a-- і гэта значна больш сур'ёзная праблема, матэматыцы для мяне, чым я думаю, праблема CS. Такім чынам, што вы робіце it-- і часам гэта будзе проста, як, што. Зноў жа, гэтыя выпадкі, калі гэта збольшага з як напісаць тое, што вы можа і частковае крэдыт. Так што, калі мы хочам вяртання, мы ведаем, што мы збіраецеся выкарыстоўваць drand48 у нейкай меры, ці не так? Дык чаму б нам проста не запісаць, што ўніз. Мы выкарыстоўваем яго ў некаторым родзе. Такім чынам, што ў іх ёсць Вы, хлопцы, выкарыстоўваць гэта як гэта, якое я паспрабую растлумачыць. Таму ў асноўным тое, што адбываецца тут гэта таму, што гэта паміж 0 і 1, што вы робіце гэта вы множання по-- гэта вельмі матэматычны пытанне. Проста поўная адмова, гэта цалкам матэматычны пытанне. Што вы робіце, з 0 і 1, і вы хачу, каб гэта было ў межах гэты дыяпазон, вы на самой справе высветліць, наколькі вялікі дыяпазон, а затым Вы ў асноўным маштаб яго, што і гэта робіць. б мінус дае гэты дыяпазон, Розніца паміж гэтымі лічбамі. Вы можаце памножыць паміж 0 і 1, а затым дадаўшы толькі азначае, што ваш маштабаванне да такім чынам, што гэта паміж А і В, якія я сапраўды не люблю гэтую праблему. Як я ўжо сказаў, гэты тэст прызначаны для ахопу людзі, якія менш зручныя, дзесьці пасярэдзіне, і больш камфортна. Так што, калі яны зрабілі гэта так, што гэта было што-то што ўсіх у менш зручнае месца атрымаў бы, мы павінны былі б занадта шмат людзі забіўшы ўдасканальвае, і тым больш камфортна будзе сумна. Такім чынам, яны заўсёды маюць гэтыя выгляд галаваломку пытанні што маюцца на ўвазе, каб быць крыху больш складана што спатрэбіцца некаторы творчае мысленне. Калі вы бачыце іх, не надта тупік. Я вызначана сказаў бы сальта праз віктарыны першы. Вырашэння праблем што вы ведаеце, вы можаце, таму што ёсць не выкарыстоўваюцца затрымацца на праблемы, калі ёсць тры ці чатыры ці пяць на старонцы пасля гэтага вы можаце лёгка зрабіць. Зала: А чаму менавіта вы памножыць яго на дыяпазоне? ZAMYLA Чан: Вы памножыць дыяпазон, Вы знаю-- гэта як, колькі пасля ты хочаш? Такім чынам, вы можаце думаць, таму што гэта вяртае лік паміж 0 і 1, Вы можаце думаць пра гэта як працэнт. Так што гэта ў асноўным кажуць, калі ў нас ёсць наш нумар радка тут, тут, і б тут. Ты як, колькі міма гэта? Гэта ўсё, што мы робім. Такім чынам, вы толькі што прасілі Працэнт гэтым дыяпазоне, які з'яўляецца тое, што ён дае табе. І тады вы ў асноўным толькі маштаб яго, дадаўшы. Гэта тізер матэматыка мозг. Калі якая-небудзь апошняя хвіліна савет, я сказаў бы сальта праз пытанні, высветліць, якія з іх вы ведаю, што, як, о, я атрымаў гэта. Амаль напэўна яны збіраюцца быць пытанні, якія вы не будзеце ведаць, або што вы збіраецеся ёсць час для, так ударыў вашыя моцныя, добра? Вы, хлопцы, збіраецеся вялікі. Ёсць шмат пытанні па прычыне, так што ў вас ёсць час, каб выгляд маюць магчымасць прадэманстраваць, што Вы сапраўды добра. Так што гэта нармальна, калі вы не добра ўсё. Гуляць у вашых моцных бакоў. Так? АЎДЫТОРЫЯ: Дык гэта збіраецца вярнуць што-тое, што гэта усечаны? Так, гэта будзе, таму што drand вяртаецца паміж 0 і 1. Гэта будзе вяртаць Int, таму што гэта будзе абрэзаць калі мы дадаем або памножыць на яго. Прахладны. Любыя гарачыя пытанні? Вы, хлопцы, збіраецеся рабіць вялікі. Вы збіраецеся быць казачным. І нават калі не, то будзе быць цукеркі тут на наступным тыдні. І я буду любіць цябе. Я люблю вас, хлопцы, незалежна. Добра, усе, ўдачы. Маюць вялікае час. Вы збіраецеся быць у парадку. І ведаеце што? На працягу двух дзён ён збіраецца не будзе, у той час як I ёсць два прамежкавых выбарах у чацвер, так па меншай меры, вы, хлопцы, будзе зроблена. Добра, я буду бачыць вас, хлопцы на наступным тыдні.