[Powered by Google Translate] ZAMYLA CHAN: Добра, усё.
Сардэчна запрашаем Праходжанне 1.
Гэта пакрокавае кіраўніцтва будзе на PSET 1, які з'яўляецца C. Я спадзяюся, што вы
Усе весела правялі час са сваімі праектамі Scratch.
Так што цяпер у гэтым кіраўніцтве, мы фактычна будзе
магчымасць атрымаць у C, атрымаць у пісьмовым выглядзе некаторыя машынны код.
Так што, калі вы не былі на Пакрокавае кіраўніцтва 0, то гэтыя
пакрокавыя кіраўніцтва на самай справе - we're збіраецца ісці праз
Праблема набору, казаць праз некаторыя агульныя парады і прыёмы
, Якія можна выкарыстоўваць.
Мы будзем парушаць прызначэнне на кіраваныя укусаў, так што
вы, хлопцы, можаце пачаць і, спадзяюся,
зразумець, як гэта зрабіць.
>> Добра.
Так PSET 1.
Psets ў гэтым годзе будзе мець структуру, дзе першы -
там будзе частка пытанняў, серыя
Пытанні, якія будуць сапраўды дапамагчы вам пачаць працу з
PSET, дапаможа вам практыкаваць некаторыя метады, якія вам трэба.
І таму гэтыя пытанні, я не збіраюся ахапіць ў
пакрокавае кіраўніцтва, таму што ў вашым раздзеле, ваша прызначаны навучання
хлопец на самай справе адбываецца, каб прайсці праз гэтыя
Пытанні з вамі.
У канцы вашага падзелу, вы сыдзеце з
Адказы на гэтыя пытанні, але і з упэўненасцю, што
Вы можаце ажыццяўляць некаторыя функцыі, якія вам неабходна
для апошняй частцы PSET.
>> Pset 1 уяўляе Марыё.
І гэта пацешная праграма, у якой па сутнасці, мы
пісаць і друкаваць з паловай піраміды ў тыповай сцэны Марыё.
І тады другая частка PSET называецца прагным.
І так у прагна мы, па сутнасці дзейнічаюць як прагныя
Касір, дзе, калі хтосьці дае нам суму грошай
што мы хочам, мы вылічым мінімальная колькасць манет, якія
мы можам вярнуцца да іх, каб яшчэ даць ім гэтую суму.
>> Добра.
Такім чынам, кожны пакрокавае кіраўніцтва будзе мець панэль інструментаў.
І зноў жа, вы не можаце выкарыстоўваць усе інструменты, у гэтай
прылад ці вы маглі б выкарыстоўваць іх усе.
У любым выпадку, гэта вельмі добра ведаць, што
Вы абсталявана.
Такім чынам, мы маем CS50 Appliance, які я пакажу вам, хлопцы і
пазнаёміць вас з гэтым.
Тады ж, у агульным, добры стыль, безумоўна, адно з нашых
Найбольш важныя інструменты.
Стыль сутнасці ставіцца, як чытаецца ваш код?
Калі хтосьці ідзе і чытае ваш код, яны не маюць
Лёгка часу?
Ці могуць яны зразумець?
Гэта элегантнае?
Затым мы пагаворым аб тым, як атрымаць сапраўдны карыстацкі ўвод у
Праграма так як у абодвух Марыё і ў прагным, вы павінны будзеце
запытваць у карыстальніка увод і даць вам нейкі нумар.
Такім чынам, мы хочам пераканацца, што колькасць з'яўляецца дапушчальным.
Тады памятаеце, у Scratch, у нас былі блокаў, такіх як паўтор,
Паўтарайце, пакуль, ці пачакаць, або назаўсёды.
Такім чынам, мы збіраемся выгляду перавесці гэта ў C цяпер і
глядзець на завесах, такіх як,, у той час, і рабіць-то час.
Тады і мы таксама павінны адлюстроўваць значэння назад на
экране, будзь то ў Mario або прагным.
І такім чынам мы пагаворым аб тым, як мы друкуем рэчы з радка
цэлыя і паплаўкі.
І, нарэшце, мы пагаворым аб псевдокоде, сапраўды
Важная канцэпцыя памятаць на працягу ўсяго гэтага курса.
Што я знаходжу дапамагае мне больш за ўсё з праблемай мностваў думаць і
апісаць тое, што я хачу зрабіць, перш чым думаць пра любую C.
Але проста апісаць дзеянне.
Так псевдокоде гэта свайго роду паміж ангельскай і C, выгляд
апісваюць працэсы, не правільны сінтаксіс, але
забеспячэнне дастаткова добра структуры.
І таму мне давядзецца некаторыя прыклады псевдокод для вас, а
у гэтым кіраўніцтве.
>> Добра.
Такім чынам, што мы будзем працаваць з CS50 з'яўляецца Appliance.
Па сутнасці, гэта віртуальная машына, якая працуе выгляду
кампутар ўнутры вашага кампутара.
І гэта мае шмат пераваг.
Адно тое, што гэта зададзены з вялікай колькасцю інструментаў, якія вы будзеце
неабходна для CS50.
Як добра, што азначае, што ўсё на той жа зямлі,
Ці Mac ці PC ці іншай аперацыйнай сістэмы.
Мы ўсе можам запусціць віртуальную машыну.
І так ёсць указанні на manual.cs50.net/appliance.
І так, калі вы ідзяце да гэтай спасылцы і вынікайце інструкцыям,
Затым, спадзяюся, вы зможаце ўсталяваць прыбор.
>> Такім чынам, спачатку вам трэба ўсталяваць прыкладанне,
практычнае прымяненне, каб мець магчымасць запускаць віртуальную машыну.
І тады вы загрузіце прыбора.
Але зноў жа, ёсць указанні на
manual.cs50.net/appliance.
Так што я ўжо запампаваў мой прыбор, і я ўсталяваў
гэта ў VMware Fusion.
І таму, як толькі я запампаваў прыбор, я пайшоў у файл.
Я пайшоў адчыняць, а затым там, дзе я
захоўвацца CS50 Appliance.
А адтуль, я пабег яго тут.
Але я яго ўжо тут, так што давайце бліжэй.
>> Добра.
Такім чынам, зараз мы знаходзімся ўсярэдзіне CS50 Appliance.
Я зрабіў яго поўным экране.
Вы можаце зрабіць гэта, калі вы хочаце, ці проста мець яго ў якасці
менш акно на працоўным стале.
Тут мы маем просты працоўны стол
дома і смецце.
Але калі вы ідзяце ў меню, а затым да праграмавання, то вы ўбачыце
што ў нас ёсць тое, што называецца тэрмінал.
І вось тут мы можам перамяшчацца па нашых кампутарам.
Мы можам напісаць код.
Але на самай справе, мы будзем выкарыстоўваць праграму пад назвай Gedit, або "г
рэдагаваць, "які б ні адзін, што ёсць.
Такім чынам, мы будзем выкарыстоўваць, што, каб напісаць код.
Так што ў вас ёсць гэтыя два сродкі, якія вы будзеце выкарыстоўваць у першую чаргу
для напісання кода.
Тады, акрамя таго, гэта проста, як звычайны кампутар.
У нас ёсць браўзэр.
Мы выбралі Google Chrome.
Што я зрабіў гэта, я стварыў Dropbox, каб трымаць усе
дакументаў.
І так гэта тое, што настойліва рэкамендуецца.
Dropbox выкарыстоўвае воблачнае сінхранізацыю і так, калі -
Так, напрыклад, нешта выпадкова - будзем спадзявацца, не -
адбываецца з вашым прыборам, то гэта ўсё будзе
сінхранізаваныя на воблаку.
>> Добра.
Так што тыя прыкладанні, якія вы будзеце выкарыстоўваць у
CS50 Appliance.
Зараз, каб перамяшчацца ў камандным радку.
Тэрмінал можа фактычна дзейнічаць як свайго роду спосаб на самай справе
ўводзіць каманды ў -
падабаецца, калі вы Mac, Finder.
Ці, калі вы знаходзіцеся ў Windows, я лічу, што гэта «вывучыць маё
кампутар "ці нешта накшталт гэтага.
Такім чынам, калі мы вернемся да прылады, давайце адкрываць
вокны тэрмінала.
Так яно і ёсць гэта запрашэнне, jharvard @ прыбор.
Давайце рабіць гэта больш.
Добра.
Такім чынам, калі мы ўводзім каманду Ls, то ў якой пералічаны ўсе
Файлы ў нашым кампутары, на наш бягучы каталог.
Даведнікі такія ж, як тэчкі.
Мы выкарыстоўваем гэтыя тэрміны ўзаемазаменныя.
Добра, мы пералічылі файлаў
, Якія знаходзяцца ў гэтым каталогу.
Цяпер, калі мы хочам атрымаць доступ, скажам, наш Dropbox, то мы можам
змяніць каталогі.
Такім чынам, кампакт-дыск, а затым Dropbox.
Мы Ls зноў, і тады мы бачым спіс файлаў, якія знаходзяцца ў
гэтую тэчку.
Гэта аналагічна для мяне будзе мой дом, а затым націснуўшы
Dropbox, а затым бачачы спіс тут.
>> Добра.
Так скажам -
калі вы, хлопцы, збіраецеся зрабіць свой PSET 1, давайце зробім
Каталог называецца pset1.
Такім чынам, мы знаходзімся ў Dropbox прама цяпер, як вы можаце бачыць з гэтага
Тут падкажуць.
Так давайце зробім каталог.
Так MkDir, давайце назавем гэта pset1.
І вось цяпер, калі мы зноў Ls, то мы
бачыць, што pset1 з'яўляецца.
І таму, калі мы хочам ісці ў pset1, то мы можам зайсці ўнутр
, Што папка з камандай кампакт-дыскаў.
Добра.
Такім чынам, яшчэ раз, давайце паглядзім, калі мы -
кажу, давайце рабіць гэта па-іншаму.
Гэта аналагічна таму, проста кажу "Стварыць
Новая папка, pset1.
Але, як вы лічыце, вам будзе ўзаемадзейнічаць з
Тэрмінал шмат.
Так што часам гэта нашмат прасцей, страціў хутчэй за ўсё
працаваць у тэрмінале, каб зрабіць гэтыя віды рэчаў.
Добра.
А потым гэтыя іншыя каманды.
Там у РМ для выдалення файла.
Такім чынам, вы проста ўводзіце РМ і затым імя
файл, каб выдаліць яго.
Мы пойдзем на некаторыя прыклады гэтага пазней.
І тады ў нас ёсць тое, што завецца чалавекам каманды, якая
выхоўвае дапаможнік для тыпу функцыі.
Зноў жа, я буду выхоўваць канкрэтны прыклад, што ў далейшым.
>> Так што іншы вельмі важны інструмент, як я ўжо коратка
і раней, стыль.
Такім чынам, па сутнасці, стыль мае справу з чытэльнасці.
Ці будзе нехта яшчэ зможа чытаць, сачыць, і
разумею ваш код?
Гэта асабліва важна для вас, сябе, на самай справе.
Калі вы вырашылі застацца да канца кадавання, а потым на вас
вярнуцца і вы, як і тое, што робіць гэтую зменную значыць?
Скажам, вы працуеце на групу праекта з кімсьці, і вы
абодва павінны глядзець адзін на аднаго кода.
Гэта вельмі важна, што вы называеце зменныя правільна
і каб ён выглядаў добра, таму што робіць усё адрозненні.
Але перш за ўсё, мы знаходзімся ў курсе прама цяпер.
Такім чынам, для цікавасці CS50 і, асабліва, для
навучанне стыпендыятаў і грэйдэр, якія будуць глядзець на вашу
psets, калі ласка, калі ласка, выкарыстоўвайце правільны стыль.
А вашы хлопцы навучання будзе цалкам шчаслівая.
Такім чынам, яшчэ раз, стыль ўключае ў сябе водступы рэчы правільна,
Асабліва з дапамогай дужак і водступы тых.
Найменне зменных тое, што мае сэнс.
Цяпер мы прытрымлівацца пагаднення, калі ў вас
некалькі слоў у імя зменнай, то вы
злучыць іх з падкрэсьліваньнем, як вы бачыце ў тым, што
Напрыклад, ёсць імя.
>> І, нарэшце, тое, што завецца магіяй лікаў.
Па сутнасці, калі вы чытаеце праз код і сказаць,
ў вас ёсць пераменная -
Скажыце, у вас няма зменнай, але толькі сказаць, добра, да тых часоў,
і такіх менш за 10.
Тады ваш грэйдэр будзе ісці добра, пачакайце,
Адкуль што 10 ўзялося?
Так на самай справе растлумачыць сабе шмат пытанняў.
Каб дапамагчы вам растлумачыць сабе, гэта каментар.
Каментары, напэўна, самае галоўнае, каб уключыць у
Вашых праграм.
І гэта дапамагае вам не толькі ўласна растлумачыць -
гэта дапаможа вам выгляд растлумачыце вашыя развагі,
Вы збіраецеся разам.
І таму, калі вы зробіце гэта, зноў жа, гэта будзе нашмат прасцей
, Каб вярнуцца ў ваш код і выгляд разумею, што вы
там робіць.
Зноў жа, грэйдэр вельмі падабаюцца каментары.
Такім чынам, вы добра і каментары -
накшталт як бясплатна ачкоў.
А хто не любіць бясплатныя акуляры?
Вы таксама можаце мець шматрадковага каментары.
І таму я ўключыў свайго роду шаблонам тут.
Па сутнасці, як правіла, яны выкарыстоўваюцца ў верхняй частцы
Праграма для віду ў цэлым растлумачыць тое, што
Вашу праблему набору робіць.
Уключыце ваша імя, дату, і гэтак далей.
І так, як я сказаў у гэтай шматрадковы каментар,
manual.cs50.net/style_guide мае дадатковыя парады і правілы
стыль для завесы, і гэтак далей.
>> Добра.
Так што цяпер я распавёў вам крыху аб стылі, давайце паглядзім,
гэта ў дзеянні.
Добра.
Дык вось, Томі напісаў нам цудоўна жудасны
Прыклад стылю ў праграме.
Так што вы тут бачыце, усё ў парадку.
Гэта на самай справе ўсё ў парадку.
Вы бачыце, шматрадковага каментары.
Вы пачынаеце яго з касой рысай, а затым дзвюма зорачкамі.
Вы па-ранейшаму разам, сумясціўшы зорачкі ўздоўж лініі
, А затым скончыць з зорачкай і касой рысай.
Добра.
Так што ўсё ў парадку.
Гэта тут у парадку.
Ён у тым ліку яго бібліятэкі.
Але тут у яго ёсць каментары, якая ахоплівае некалькі радкоў.
Ёсць шмат рэчаў няправільна з гэтым.
Каментары, якая ахоплівае некалькі радкоў, прама тут ён выкарыстоўвае
Сінтаксіс толькі для аднаго каментара лініі.
Ён таксама зліццё усё ў той жа каментар.
Таму мы хочам, каб пазбегнуць гэтага.
Тады тут мы бачым, што гэтыя дужкі, напрыклад, усе
за месца.
Водступы няправільна.
Гэта сапраўды не паказаць вам, дзе нешта канчаткова
пачынаецца і сканчаецца іншая справа.
Тады, як добра, мы бачым, што ў яго ёсць пэўная пераменная = 5 тут.
Але тады гэта чатыры прыходзіць з ніадкуль, і няма ніякіх
каментары, каб сапраўды растлумачыць, адкуль што бярэцца.
>> Добра.
Такім чынам, цяпер давайце паглядзім на тое, што на самой справе сапраўды гэтак жа,
Код толькі з лепшай стылі.
Такім чынам, яшчэ раз, гэта добры прыклад стылю,
шматканальны прыклад.
А то вось гэта даволі чысты.
Мы бачым, што ён пачынае, калі заява тут, уступае ў новую
лініі, мае адкрытую фігурную дужку.
Тады ён мае водступ.
Ён трымае гэты водступ -
Ён трымае гэта ўказанне раўнамерным па ўсёй
Праграма і сапраўды паказвае, калі адзін блок кода пачынаецца, калі
адзін блок кода сканчаецца.
Гэта можа здацца трохі nitpicky з нашага боку, каб пачаць
с, але вы ўбачыце, як вы пішаце код.
Гэта вельмі карысна, каб мець магчымасць аддзяліць гэта.
І зноў жа, вашы класаў вельмі падабаецца.
Такім чынам, вы бачыце, а не проста пакласці побач у
там, ён на самай справе называецца пераменная ітэрацыі.
І вось мы на самай справе не гледзячы на ​​гэты код прама зараз
але толькі збольшага бачым прыклад
дабра супраць дрэнны стыль.
І таму, калі вы паглядзіце на іх суседнічаюць тут, вы б
вызначана аддаю перавагу чытаць адзін па правую.
>> Добра.
Такім чынам, адна апошняя рэч, перш чым мы пагрузіліся ў рэальным мяса
PSET ў тым, як скампіляваць і запусціць код.
І так па сутнасці, калі вы пішаце C, што на самой справе не
перакладаецца ў рэальны машынны код, нулі і
тыя, што машына сапраўды можа чытаць і інтэрпрэтаваць.
Такім чынам, мы-то -
Clang гэта кампілятар, які мы выкарыстоўваем для C.
Ёсць шмат кампілятараў.
Але ў CS50, мы будзем выкарыстоўваць Clang.
І так Clang ў асноўным перакладае ад З да машыны
Код для Вас.
Такім чынам, давайце паглядзім на прыклад - апусканне ў Appliance тут.
Добра.
Так што цяпер мы знаходзімся ў нашым каталогу.
Мы на самай справе не там, дзе любы код.
Так давайце зменім наш каталог Dropbox/walkthrough1, дзе
Я захоўваецца код.
Такім чынам, калі мы націскаем Ls, то мы бачым, што ў мяне ёсць
пару файлаў тут.
>> Добра.
Так што я ўжо напісаў hello.c, так што давайце кампіляцыі
а затым паглядзець, што ён робіць.
Такім чынам, асноўная каманда кампіляцыі будзе звінець, то hello.c,
па сутнасці кажучы добра, кампіляцыя hello.c для мяне.
Я націскаю Enter, здаецца, атрымаўся.
Давайце націснем Ls зноў.
Гэты файл a.out У цяперашні час паказана на малюнку.
І так a.out з'яўляецца выкананым файлам.
Так, каб запусціць яго, вы робіце. / A.out.
І вось мы бачым, што гэтая праграма па-відаць hello.c
выводзіць прывітанне пяць разоў.
Добра.
Але сказаць, што мы не хочам выкарыстаць імя a.out.
Напрыклад, мы хочам запусціць праграму прывітанне, таму што
робіць яго лягчэй для разумення.
Так скажам, ляск hello.c, а затым па сутнасці вам трэба
перайсці ў некаторыя рэчы называюцца сцягамі.
Так казаў добра, а я хачу назваць гэта нешта іншае.
Вы таксама можаце перадаць у шмат розных сцягоў,
якія вы ўбачыце.
Так што сцяг для абазначэння праграмы тое, што вы
хочуць-о.
Пасля-о, вы напішыце назва праграмы.
Давайце проста называць гэта прывітанне.
>> Такім чынам, цяпер мы бачым, што на самой справе ёсць прывітанне выкананы файл.
Такім чынам, мы можам запусціць яго, і ён робіць тое ж самае, як раней.
Так што цяпер у нас ёсць прывітанне, мы таксама можам выдаліць, для
Напрыклад, нашы a.out.
Такім чынам, RM для выдалення, a.out, тэрмінал запытае ў вас, спытаеце
для вас, каб пацвердзіць, ці сапраўды вы хочаце
выдаліць яго ці не.
Скажам, у для так.
І мы ідзем.
A.out няма.
Добра.
Але часам гэта становіцца заблытаным, каб памятаць усе
Сцягі, што мы павінны ўключыць і ўвядзіце з ляск.
І, як мы бачым, калі мы выкарыстоўваем больш складаныя праграмы, мы будзем
быць у тым ліку розных бібліятэк.
І таму нашы каманды Clang атрымаеце больш і больш.
Так, уключаных у CS50 прыбор маркі каманду.
Такім чынам, вы проста ўводзіце зрабіць прывітанне.
Ой.
Мы ўжо зрабілі гэта выкананы файл.
Такім чынам, дазвольце мне проста выдаліць яго хутка.
Цяпер увядзіце зрабіць прывітанне.
І вы бачыце, у гэтай лініі тут, што па сутнасці кажучы зрабіць
Прывітанне ўключае ў сябе ўсе гэтыя каманды, якія
ўвайсьці ў яго для вас.
>> Так, уключаных у CS50 прыбор маркі файл.
Так проста, калі ў вас ёсць файл name.c, то ўсё, што вам рабіць
зрабіць, гэта сказаць імя файла.
І тады вы будзеце мець выкананыя
файл з такім імем.
Да?
>> Выступоўца 1: Для майго кампутара, а Clang ён кажа GCC.
Гэта як -
ZAMYLA CHAN: Так.
Такім чынам, кампутар можна сказаць, GCC, у адрозненне ад Clang, таму што
GCC іншага тыпу кампілятар.
Калі вы знаходзіцеся ў CS50 Appliance, хоць, то
павінны выкарыстоўваць Clang.
Калі гэта не так, то, магчыма, прыйшоў пагаварыць са мной пасля або па пошце
Абмеркаваць на CS50 і мы можам уладзіць гэта.
>> Добра.
Так што цяпер у нас ёсць віды асноўных інструментаў ўніз, то мы
могуць пагрузіцца ў Марыё.
Добра.
Так што Марыё з'яўляецца праграмай, дзе па сутнасці, мы збіраемся быць
зрабіць наш уласны выгляд прымітыўнай версіі Mario
гульня фону.
Вы ведаеце, Марыё звычайна мае трубы і
дрэва і некаторыя блокі.
А тут яшчэ свайго роду паловы піраміды.
Так што мы проста будзем засяроджвацца на тым, што палова піраміды,
зрабіць код так, што яна выводзіць хэш для выгляду
блокаў у гэтым фармаце.
Так што ж здарыцца, карыстальнік будзе ўводзіць пэўныя
Вышыня піраміды, і тады вы будзеце друкаваць, што з
такі, што ў левым ніжнім куце хэш -
так у самым нізе прама тут - што будзе ўзгадняць
з ніжняй левай частцы тэрмінала.
Добра.
>> Такім чынам, першае, што вам трэба -
першае невялікае міні праблема, якую мы павінны вырашаць, як
Для атрымання карыстацкага ўводу.
Так што мы павінны мець справу з тым, што карыстач уводзіць, а затым
віду прадукцыі рэчы.
Такім чынам, давайце паглядзім на шукаць файл з імем apples.c, што я напісаў
, Што мае справу з ўваходамі і выхадамі.
Добра.
Так што тут, на вяршыні, я ўключыў некаторыя з бібліятэкі
што мне трэба.
Па-сапраўднаму важным тут з'яўляецца STDIO (стандартны I / O). , Якая займаецца
са стандартнымі ўваходамі і выхадамі, таму што мы збіраемся
мець справу з ўводзяцца карыстачом.
Добра.
І тады я пачынаю сваю асноўную функцыю.
І тады я пытаюся карыстальнік добра, колькі яблыкаў у вас ёсць?
Тады прама тут, што гэтая лінія робіць -
Я прысвоіць зменнай я да кошту GetInt.
>> Так GetInt гэта функцыя, якая ўключана ў STDIO.
І так па сутнасці, які будзе займацца яго для вас.
Гэта будзе запытваць у карыстальніка Int.
Усё, што яны вернуцца, то будуць прызначаныя
зменнай я.
І так, то гэта проста маленькая праграма, якая памяншае
Значэнне г на 1, а затым выводзіць новае значэнне.
Добрая рэч аб Gedit, што на самой справе ёсць міні-
Тэрмінал прама тут.
Такім чынам, замест таго, каб перамыкацца наперад і таму паміж
Gedit і тэрмінал, вы можаце на самой справе
проста запусціце яго адсюль.
Так што давайце спачатку трапіць у правільны каталог.
Так давайце зменім нашы каталогі
Dropbox/walkthrough1.
Добра.
Такім чынам, цяпер давайце зробім яблыкі, кампілюе яго для нас.
І вось цяпер давайце запусцім яблыкі.
Колькі яблыкаў у нас ёсць?
Я кажу, у мяне ёсць 3.
І ён кажа: "mwahaha Я збіраюся з'есці аднаго з іх" і кажа,
"Зараз у вас ёсць 2 яблыка".
>> Добра.
Так давайце запусцім гэта зноў.
І скажам, у мяне ёсць 1 яблык.
Цяпер у мяне 0 яблыкі.
Добра.
Такім чынам, гэтая праграма, здаецца, працуе, як чакалася.
Мы ўвесці нумар, ён памяншае яго на 1, а затым
друкуе яго зноў.
Але што, калі, напрыклад, у мяне -1 яблыкі?
Гэта не зусім мае сэнсу.
Але гэта яшчэ цэлым лікам, таму праграма прымае яго.
І так яно вяртае вам яшчэ больш адмоўнага ліку.
Дык вось адзін урок для нас, што, хоць GetInt
функцыі і іншых звязаных з імі, такія як
GetFloat або GetString -
нават калі гэтыя атрымаеце нам правільны тып дадзеных,
Напрыклад, калі я толькі што сказаў [ТИПИРОВАНИЯ]
то ён сказаў бы мне, каб паўтарыць спробу.
Такім чынам, гэта будзе мець справу з тым, што дадзеныя увядзіце свой ўваход
ёсць, але не на самай справе праверыць, добра, гэта на самай справе тыпу
значэння, што я хачу?
Тады адна частка Mario з'яўляецца тое, што карыстальнік павінен увесці
лік, якое ўяўляе вышыню паловы піраміды
што вы робіце.
І такім чынам, калі мы выклікала гэтаму карыстальніку вышыні, то
павінна быць дзве адзнакі на гэты конт.
Правільна?
У спецыфікацыю, ён кажа, што не павінна быць больш за 23
сімвалы, таму што гэта выгляд стандартнай
Вышыня тэрмінала.
Але тое, што іншыя звязаныя, магчыма, знізу, можа
Мы хочам ўключыць?
>> Калі мы на самай справе малюнак піраміды, тып мыслення назад
, Як высокая піраміда можа быць, ці можа ён калі-небудзь быць ніжэй, чым
вызначаны лік?
SPEAKER 2: Больш, чым тры.
ZAMYLA CHAN: Хм?
SPEAKER 2: Больш, чым тры.
ZAMYLA CHAN: Гэта добры пытанне.
Гэта можа быць -
мы маглі б абмежаваць яго толькі на тры ўзроўні піраміды.
Але давайце падумаем -
скажам, як адна хэш-табліцы падліку ў выглядзе піраміды таксама.
Тады што наша фактычная ніжняя мяжа можа быць?
Успамінаючы яблыкаў, мы не хочам,
адмоўная піраміда вышынёй.
Правільна?
Добра.
Такім чынам, калі вы просіце, уведзеныя карыстачом, то вам давядзецца
ўключаюць некаторыя спосаб пераканацца, што цэлы лік,
яны падаюць вам не адмоўна, таму што вы не можаце
звярнуць адмоўныя піраміды.
>> Добра.
Такім чынам, ёсць некалькі спосабаў зрабіць гэта.
Па сутнасці, як толькі вы папытаеце ўвод карыстальніка, вы хочаце, каб запатрабаваць
што яны даюць вам правільны ўваход.
Такім чынам, вы хочаце запатрабаваць, каб яны даюць вам нумар
гэта не адмоўнае, але і менш, чым 24.
Такім чынам, мы маем справу з нуля да 23 ўключна.
Добра.
Таму мы хочам пастаянна патрабаваць -
калі яны не далі нам цэлы лік, яны хочуць
бесперапынна патрабаваць няма.
Дайце мне дапушчальных ўваходных дадзеных.
Дайце мне сапраўды вышыні.
Так ўспомнім яшчэ ў Scratch, у нас былі Repeat Until блока або
Назаўжды Калі блок.
Тыя завесы, якія вельмі падобныя на той час цыкла і
рабіць падчас цыклу, які мы атрымаем у толькі ў секунду.
Такім чынам, у той час як цыкл па сутнасці, мае ўмове, што вы праверыце
гэта лагічнае значэнне, якое вы пакладзеце ўнутр там, як
блокі нуля, з кутамі.
Гэта тое, што адбываецца ўнутры дужак цыклу.
Такім чынам, вы будзеце мець нейкае ўмова там.
І, як мы толькі што гаварылі раней, што ўмова
маем справу з межы цэлага, якое было ўводзяцца.
Такім чынам, умова будзе мець нешта рабіць з ці
цэлы лік у адпаведных маштабах.
>> Дык вось, у той час як пятля.
Напрыклад, вы можаце запытаць цэлае, а затым
пастаянна правяраць у той час як гэты ўваход не з'яўляецца дапушчальным.
Напрыклад, трымаць на паўторнае падказкі, працягваюць пытацца
карыстачу для цэлага ліку.
Так што можа быць адным з спосабаў.
Іншым спосабам можа быць рабіць падчас цыклу, які з'яўляецца вельмі
падобна на нейкі час цыклу акрамя таго, што рабіць, а робіць -
Вы можаце паглядзець выгляд з дапамогай сінтаксісу -
з'яўляецца тое, што ён мае рабіць, а потым само цела цыкла ў першую чаргу.
Тады ў яго ёсць час ўмовы.
Так што ў той час як завесы -
тое, што яны карысныя для тое, што яны фактычна выконваюць
Код крайняй меры адзін раз, а затым праверыць ўмова
сустрэўся ці не.
Так што, калі вы павінны былі зрабіць зрабіць падчас цыклу, то ўнутры вашай
Заява Вы можаце запытаць цэлае, таму што вы па крайняй
хоць бы спытаць у карыстальніка адзін раз.
А потым, калі вы падкажаце ім, то можна сказаць, добра,
добра, як толькі я зрабіў гэта, гэта дзейнічае?
Калі гэта так, то вы можаце проста працягваць ісці.
Але калі гэта не так, то гэта будзе проста дзейнічаць як звычайны у той час як
цыклу, а затым працягвайце пытацца.
>> Добра.
Такім чынам, мы вярнуліся да Марыё.
Такім чынам, мы ведаем, як падкажуць для правільнага ўводу, які гэта
у правай мяжы.
Так што цяпер нам трэба зрабіць гэтую палову піраміды.
Падобна на тое, простыя тэкставыя знакі.
Так што давайце на самай справе адчыненыя -
Давайце проста адкрыць акно і сказаць: добра, добра, што калі б я быў
на самай справе збіраецца рабіць гэта ўручную, уведзены адзін сабе?
Добра.
Такім чынам, давайце паглядзім.
Скажам, напрыклад, мы хочам зрабіць піраміду гэта
выраўнаваны па левым боку, то было б проста зрабіць -
У Mario, верхні ўзровень складаецца з двух блокаў замест аднаго.
Такім чынам, мы пачынаем з двума.
Мы націсніце Enter.
Мы робім тры, потым чатыры, увядзіце, пяць.
Добра.
Так што гэта даволі проста.
За выключэннем гэтай праблемы мноства, мы хочам на самай справе для ўзгаднення з
У правай частцы нашага экрана.
Добра.
Так, як можа адзін з вас на самай справе ўвесці гэты такі, што
ён выраўнаваны па правым?
Замест таго, каб Хэш-першае, як бы вы маглі выгляду
перамясціць яго з сабой?
Выступоўца 3: Напісаць лініі?
ZAMYLA CHAN: Хм?
Выступоўца 3: Напісаць лініі?
ZAMYLA CHAN: Так.
Так.
Вы маглі б напісаць, як падкрэсліванне ці нешта накшталт
, Але мы можам толькі сказаць, выкарыстоўваць прастору.
Скажам, як у трох прасторах тут.
Тады наступная радок, ну, мы павінны былі б пакласці два прасторы.
У наступным радку мы проста паставіць адзін прабел.
І тады для нашай апошняй радкі, мы б не паставіць прабелы.
І ў нас ёсць піраміда.
>> Дык вось выгляд -
памятаеце, што такая логіка.
І паспрабаваць высветліць, свайго роду шаблон, які мы можам
Затым перавесці на C і далучыць да нейкую пятлю.
Добра.
Такім чынам, у нас ёсць вышыня восем, то наша першая радок будзе мець
двух хэшаў.
Але каб атрымаць гэтыя хэшы, вам прыйдзецца напісаць некалькі
прасторах загадзя.
Правільна?
Тое, што я зрабіў, я толькі што прайшоў.
Я дастаў яго з сябе, піраміды ў маім тэкставым рэдактары,
Піраміда вышынёй восем і затым разлічваецца, колькі
прасторах мне трэба было зрабіць.
Таму я сказаў: добра, а першы радок
будзе два хэшаў.
Але перад гэтым, я павінен увесці 7 прастор.
Наступны мае шэсць прастор, а затым
3 хэшы, і гэтак далей.
>> Тады давайце паспрабуем давесці гэта да іншага пласта
абстракцыі.
Што рабіць, калі ў нас было ў чарговы радку, колькі і якім хэшам
шмат прасторы будуць нам патрэбныя?
Хто-небудзь убачыць заканамернасць?
Такім чынам, першы радок мае два хэшаў.
Другая мае тры.
Трэці чатыры.
Так-га радка будзе мець -
Выступоўца 4: N плюс 1?
ZAMYLA CHAN: Так.
N плюс 1.
Менавіта так.
Такім чынам, мы бачым, што колькасць хэшаў будзе -
калі мы разлічваем у першым шэрагу адной, то лік
хэшы толькі будзе адным больш.
Добра.
Такім чынам, што аб колькасці прасторы?
Так давайце паспрабуем выказаць гэта ў тэрмінах вышыні.
Калі вышыня складае восем, то першы
радок складаецца з сямі прастор.
Так што выгляд адпавядае 8 мінус 1.
Правільна?
І тады другі радок будзе мець 6 прастор,
, Што на 8 мінус 2.
Такім чынам, я збіраюся пакінуць вас, каб выгляд высветліць,
шаблон для гэтага.
>> Добра.
Але ў праграмаванні, часам мы на самай справе індэкс з нуля.
Такім чынам, мы пачынацца з нуля замест аднаго.
Такім чынам, замест першага радка называюць першага радка,
мы будзем называць яго 0-м радку.
Такім чынам, у залежнасці ад спосабу, які вы хочаце, каб ажыццявіць гэта, быць
вельмі асцярожнымі вы пачынаюцца з нуля, з'яўляецеся Ці вы пачаць у
, Вашыя карціны збіраецца быць зрушаныя на адзін.
Добра.
Так што цяпер мы накшталт як высветлілі праграмы, мы
павінен сказаць, што ўсё ў парадку.
Такім чынам, для кожнага віду ўзровень па лесвіцы, я збіраюся друкаваць
вось такія і такія-то ліку прабелаў, а затым і такія
такая колькасць хэшаў.
Гэта залежыць ад ўзор, які мы стварылі раней.
Добра.
Такім чынам, адным з спосабаў перабору і выгляд збіраюся
праз пэўную колькасць рэчаў цыкл, накшталт як
Паўтарыць 10 блокаў або, як паўтор і вы ўвялі
нумар для Scratch.
Такім чынам, па сутнасці, для кожнага ўзроўню лесвіцы, мы хочам
раздрукаваць прасторы ў першую чаргу.
Затым раздрукаваць колькасць хэшаў.
А потым мы хочам ўвесці новую радок, а затым паўтарыць
зноў для наступнага блока.
Добра.
>> Такім чынам, давайце паглядзім на цыклы на секунду, каб збольшага бачыць у адзін бок
што мы маглі б прайсці зададзены лік, прайсці праз нумар
крокаў у гэтай палове піраміды.
Такім чынам, для завесы складаюцца з трох частак.
Па-першае, вы павінны ініцыялізацыі.
Так што па сутнасці устанаўлівае зменную.
Гэта збіраецца быць усталяваны ў гэты значэнне кожны раз, калі
, Што цыкл пачынаецца.
Тады вы будзеце мець стане.
Ваш цыкл будзе выконвацца толькі пры ўмове, што
ўмова праўдзіва.
І тады вы будзеце мець абнаўлення стану.
Так што мае справу з зменнымі, што вы ініцыялізаваны.
Так ці інакш прынцыпова забеспячэння, што мы можам вырвацца з
контуру, што мы не трымаем на выкананне
яна векавечна.
Таму што ў адрозненне Scratch, мы на самай справе не толькі
проста бясконцы цыкл.
У C, праграма павінна скончыць у рэшце рэшт.
Такім чынам, мы павінны пераканацца, што нейкім чынам мы гэта спыніць.
>> Добра.
Такім чынам, прыклад для цыклу, які вы можаце выкарыстоўваць для
Mario гэта.
Так што ў вас ёсць цэлае я, што вы пачынаеце з 0.
Пакуль гэта менш, чым вышыня, выкананні цела
з цыкла ўнутры тут.
Пасля гэтага цела цыклу выканаў, то вы б
я павялічыць на 1.
Тады ваша праграма будзе праверыць яшчэ раз - ну добра, добра, гэта я менш
вышыня?
Калі гэта так, то вам будзе працягвацца.
Такім чынам, вось прыклад нуля індэксацыю, дзе мы пачынаем у
нуля, і тады мы -
заўважаем, што наша ўмова менш, чым вышыня.
Так кажуць нашы вышынёй у чатыры, да прыкладу, я
будзе пачынацца з 0.
Гэта будзе 1.
Гэта будзе 2.
Гэта будзе 3.
І вось аднойчы ён абнаўляе, калі цыкл абнаўлення, я буду
быць ўстаноўлена да 4.
Але 4 не менш за 4, і так, то мы б
працягваць астатняй часткі нашага цыклу.
>> Добра.
Дык вось, пачынаючы з нуля.
Але мы маглі б таксама пачаць на адным, напрыклад.
Але паколькі мы пачынаем на адным, мы як бы павінны пайсці яшчэ аднаго
Час у канцы.
Дык вось, менавіта таму мы дадаем менш або роўна.
Такім чынам, адна з вялікіх рэчаў, якія мне падабаюцца ў кампутары
праграмавання з'яўляецца тое, што там проста так
шмат спосабаў, каб зрабіць рэчы.
Такім чынам, вы можаце выбраць, вы пачынаеце з нуля, з'яўляецеся Ці Вы
пачатак у адно.
Акрамя таго, калі вы хацелі, вы маглі б проста выкарыстоўваць
час цыклу, напрыклад.
Такім чынам, можна -
Давайце на самай справе адкрыты hello.c.
Таму ў нас ёсць цыкл тут.
Яна пачынаецца ў I = 0, <5.
У мяне ёсць каментар тут кажуць нам, што ён робіць.
Ён друкуе ў пяць разоў прывітанне дапамогай цыклу.
Але мы таксама можам зрабіць, выкарыстоўваючы час цыклу, а таксама.
>> Такім чынам, давайце паглядзім, як мы можам гэта зрабіць.
Такім чынам, калі мы збіраемся, каб імітаваць цыкл, то мы таксама хочам
імітуюць ініцыялізацыі, умовы і абнаўлення.
Такім чынам, ўмова павінна быць даволі проста, таму што ў
у той час як сінтаксіс, калі вы глядзіце на гэта, ён кажа, у той час як (ўмова).
Так што давайце проста ўваходныя ўмовы там.
я <5.
Добра.
Такім чынам, мы ведаем, што мы хочам надрукаваць да пабачэння.
Мы ведаем, што гэта цела нашага цыклу.
Але мы прапусцілі ініцыялізацыі
і абнаўлення, ці не так?
Таму што мы не можам вечна цыклу.
Ён павінен завяршыцца.
Таму давайце дадамо некаторыя віды ініцыялізацыі тут з дапамогай
той самы, які мы выкарыстоўвалі ў нашай цыклу, Int = 0.
Добра.
Такім чынам, мы пачынаем з внутр я.
Мы паўтараем гэты цыкл у той час як тых часоў, як я менш за 5.
І тады мы прапусцілі адну рэч, якая з'яўляецца абнаўленнем.
Так што абнаўленне будзе, нам трэба выкарыстоўваць, калі б мы былі па сутнасці
аднаўленне цыклу вышэй?
У нас ёсць ініцыялізацыя я роўная 0.
У нас ёсць умова я менш за 5.
А то вось абнаўленне, дакладна?
Таму мы хочам, каб скапіяваць гэта.
Мы хочам сказаць, добра, я + +.
Гэта тое ж самае, што сказаць I = I + 1.
Але так як яна выкарыстоўваецца так часта, скарачэннем таму што гэта проста
Я кажу + +.
>> Вялікі.
Добра.
Тут я на самой справе не выйсці з маёй праграмы яблыкі.
Так што я проста хачу, каб націснуць Control-C і адразу
Боты мяне з маёй праграмы, і прыносіць
мяне назад у тэрмінал.
Так што, напрыклад, калі вы сутыкнецеся з памылкай, дзе вы
забыліся абнавіць той час як цыкл такога, што было б
спыняецца, і вы ўваходзіце ў бясконцы цыкл, то вы можаце
выкарыстоўваць Control-C, каб вырвацца з гэтага.
Добра.
Такім чынам, мы знаходзімся ў патрэбным каталогу.
Так давайце зробім прывітанне.
І потым, калі мы запускаем прывітанне, мы бачым, што цыкл развітанне робіць
дакладна такая ж рэч, як наш цыкл робіць.
Так што гэта ўсяго толькі намёк.
З'яўляецеся Ці вы сябе больш камфортна з завес і для
у той час як з завес, яны могуць быць ўзаемазаменнымі.
Дык які з іх вы хочаце выкарыстоўваць для перабору -
у дадзеным выпадку -
Вышыня Марыё піраміды.
І зноў жа, гэта проста напамін, калі вы пачынаеце на нулі
для зменнай, то вы будзеце жадаць мець розны
стане, чым калі б вы пачалі ў адно.
Такім чынам, гэтая табліца проста нейкая паказвае вам напамінак.
Калі вы хочаце паўтарыць 10 разоў, напрыклад, то вы
можа або пачаць свой зменнай у нулі.
І ваш стан можа быць менш 10.
І вось такі паказвае, што матрыца.
>> Добра.
Так мы прайшлі Марыё.
Мы ўжо казалі, добра, добра, мы павінны праверыць правільнасць ўводу,
нулём і 23 ўключна.
Мы збіраемся знайсці нейкую карціну, свайго роду спосабам
выразы-га радка ці-ю радок.
І мы збіраемся вырашаць, Добра, што мы збіраемся надрукаваць гэта
шмат прасторы, гэта шмат хэшаў, новая радок.
Добра.
Такім чынам, мы маем гэта.
Такім чынам, зараз мы можам перайсці да прагным.
Прагныя гэта праграма, дзе карыстальнік дае вам суму
грашовых сродкаў, якія па сутнасці вы, як касір трэба вярнуць.
Але вы хочаце выкарыстоўваць як мала манет наколькі гэта магчыма.
І вось гэта, дзе прагны алгарытм прыходзіць, дзе
мы хочам выкарыстоўваць мінімальная колькасць манет можна
зрабіць, што колькасць змен.
>> Добра.
Так што прыклад гэтага ў вашым рашэнні можа выглядаць
нешта накшталт гэтага.
Вы запусціце. / Прагны.
Вы прапанавана кажуць добра, а колькі зменаў павінен?
Гэта значэнне будзе значэннем у далярах.
Так што гэта будзе лік з якая плавае кропкай.
Ваша праграма будзе вылічыць мінімальную суму
манеты неабходна зрабіць, у гэтым выпадку, $ 0,32.
І таму мінімальная колькасць роўна чатыром.
Таму, перш чым зразумець, што рабіць, давайце выгляд хады
праз працэс, які можа ісці аб.
Такім чынам, калі на ўваходзе 32, то па сутнасці я збіраюся выкарыстоўваць
Найменшая колькасць манет, калі я выкарыстоўваю як многія
вялікая манет наколькі гэта магчыма.
Правільна?
Такім чынам, гэта нашмат прасцей выкарыстаць адзін квартал,
супраць пяці нікель.
Так скажам, вам трэба вярнуць $ 0,32.
Ну, я магу выкарыстоўваць квартала ў гэтым?
Так, можна.
І тады вы будзеце знізілася да $ 0,07.
Давайце паглядзім, калі я магу выкарыстоўваць яшчэ чвэрць плаціць вам назад.
Ну, няма.
Я не магу падыходзіць квартал у гэтым.
Так што я збіраюся перайсці да наступнай найбуйнейшай манеты.
Ці магу я выкарыстаць ні капейкі?
$ 0,07, няма, вы не можаце выкарыстаць ні капейкі, каб заплаціць $ 0,07.
Так вы кажаце, няма.
Пераход да наступнай, якая з'яўляецца нікель.
Ці можаце вы выкарыстоўваць нікель?
Так.
Сем больш, чым $ 0,05, таму мы можам выкарыстоўваць нікель.
А то ў нас два цэнта засталося.
Ці можам мы выкарыстоўваць пені?
Так, мы можам.
Ці можам мы выкарыстоўваць іншы капейкі?
Так.
Ці можам мы выкарыстоўваць іншы капейкі?
Не, таму што цяпер у нас ёсць паспяхова
аплачваецца карыстальнікам назад.
І вось, што складае чатыры манеты выкарыстоўваліся.
>> Так што думаць пра гэты працэс, мы кожны
час прыняць рашэнне ў парадку,
Якая самая вялікая манета, якую мы можам выкарыстоўваць?
Калі мы выкарыстоўваем гэта, мы як бы захаваць для сябе нататку аб тым, колькі
больш грошай, мы павінны вярнуцца карыстальнікаў, а таксама колькі
Манеты мы выкарыстоўваем.
Добра.
Такім чынам, але зноў жа, першы крок - гэтак жа, як Mario - заключаецца ў стымуляванні
карыстачу грашовай сумы.
І таму гэтая сума будзе -
гэта будзе мець дзесятковае значэнне, таму што мы збіраемся
спытаеце ў іх даляры.
Так што тып дадзеных не будзе цэлым лікам.
Але гэта будзе -
Так, з якая плавае кропкай.
Але гэтак жа, як яблыкі, паплаўкі можа быць станоўчым або адмоўным.
Такім чынам, калі вы зарэгістраваліся для значэнняў, Вы будзеце хацець
забяспечыць, каб паплавок вашай -
карыстацкага ўводу - неадмоўнае.
Добра.
Мы маглі б мець справу з паплаўком ва ўсёй нашай праграме, якія прадстаўляюць
чвэрцяў на 0,25, дзесяць цэнтаў на 0,1 і гэтак далей.
Але я лічу, гэта нашмат лягчэй мець справу толькі ў чыстым цэнтаў.
Таксама -
і мы пагаворым аб гэтым крыху пазней -
У C, з якая плавае кропкай ёсць нешта, званае недакладнасць.
Таму, калі вы ўваходзіце ў 0,12, напрыклад, кампутар
на самай справе крамах, як 0.1111119 або
нешта накшталт гэтага.
>> Такім чынам, гэта нашмат прасцей канвертаваць у цэнты.
Так як жа нам канвертаваць даляравую кошт у цэнтах?
SPEAKER 5: Times яго на 100?
ZAMYLA CHAN: Так.
Так.
Такім чынам, мы б раз на 100.
Але адна складаная рэч аб якая плавае кропкай з'яўляецца тое, што
некаторыя недакладнасці.
Так што давайце проста паглядзім на прыклад.
Так што я збіраюся адкрыць imprecision.c.
Добра.
Гэта вельмі простая праграма.
Ён просіць паплавок, і гэта выводзіць яго назад.
Адзін добры савет у тэрмінал вы можаце проста ўвесці ясна, і
то ў вас ёсць выразны экран.
І таму вы не павінны глядзець на ўсе папярэднія выходныя або любой
памылкі або паведамленні пра памылку, нешта накшталт гэтага.
Добра.
Так давайце зробім недакладнасць.
Давайце запусцім яго.
Так што я haven't -
ў маім кодзе, я не надрукаваць любы радку ці што-небудзь падобнае.
Так што ён проста міргае курсор.
Так што гэта проста чакаў мяне, каб увесці паплаўка.
Так let's -
выпадковага паплаўка.
І вы бачыце, што ён друкуе яе назад, але мае некаторыя дадатковыя
Нумары, што мы дакладна не ўключаць.
Такім чынам, мы хочам пераканацца, што гэта не
адбываюцца ў нашай праграме.
>> Такім чынам, што мы хочам зрабіць, гэта пераканацца, што мы на самай справе
выгляд акругляецца да адпаведнага значэння.
Правільна?
І так, на шчасце, у нас ёсць функцыя, званая круглая ўключана
У Appliance.
Гэта ў матэматычную бібліятэку.
Калі вы хочаце ведаць, як выкарыстоўваць круглы, то вы фактычна выкарыстоўваеце
кіраўніцтва.
Вы можаце націснуць круглы чалавек.
Тады вось яна выхоўвае -
можа быць трохі цяжка расшыфраваць, але ў выніку
Вы атрымаеце павесіць яго.
Гэта збольшага паказвае, якія функцыі выконвае, а затым некаторыя
магчымых ужыванняў гэтага.
Такім чынам, калі вы ў рэшце рэшт атрымаеце належнае, сапраўдны ўклад
карыстальнік, то вы хочаце, каб пераўтварыць яго ў цэнтах.
Пераканайцеся, што вы круглы значэнне, так што вам пазбегнуць гэтай
якая плавае кропкай недакладнасць.
>> Добра.
Такім чынам, мы запыце карыстальніка на грашовую суму.
Цяпер тое, што мы хочам зрабіць, гэта па сутнасці праверыць, правільна?
Добра, такім чынам я магу выкарыстоўваць найбуйнейшых манеты магчыма?
Калі вы можаце, то вы яго выкарыстоўваеце.
Вы адсочваць, колькі манет вы выкарысталі да гэтага часу і
Таксама зніжаецца колькасць.
Правільна?
І тады вы будзеце правяраць.
Пасля таго як вы выгляд вычарпаныя кварталаў, вы хочаце пайсці
да наступнай магчымай рэчы.
>> Так якая структура або якія цыкле мы маглі б
хочаце выкарыстоўваць, каб пастаянна правяраць, ці можам мы па-ранейшаму выкарыстоўваць
у квартал, напрыклад?
SPEAKER 6: У той час як значэнне больш?
ZAMYLA CHAN: Так, цалкам.
Менавіта так.
Такім чынам, у той час як значэнне больш.
Такім чынам, у той час як значэнні, што мы павінны аддаць усё яшчэ
больш чым на чвэрць, у той час як мы ўсё яшчэ можам выкарыстоўваць у квартал,
выкарыстоўваць кварталаў.
Сачыце за гэтым.
А потым працягвайце ісці.
Perfect.
Добра.
О, вось я толькі што ўключаныя толькі некаторыя парады аб тым, як раздрукаваць
са значэння.
Так што ў вашым Е функцыя, мы звычайна былі проста
працы са радкамі.
Але калі вы хочаце, каб раздрукаваць Int або проста любога тыпу
лічбы, вы павінны выгляду напісаць такое месца трымальнік.
Так што, прадстаўленай адсоткаў,% D для цэлых лікаў.
Вы пішаце, што, то потым вы на самой справе -
пасля коскі -
пакласці ў якое значэнне на самай справе адбываецца там.
Права.
>> Добра.
Такім чынам, мы вызначылі, што мы хочам, каб праверыць -
адзін з спосабаў зрабіць гэта будзе пастаянна праверыць
мы ўсё яшчэ можам выкарыстоўваць памяшканне, а затым выкарыстоўваць памяшканні, захаваць
адсочваць, а затым перайсці да наступнай вялікай каштоўнасцю.
Цяпер яшчэ адзін від акуратны спосаб, якім вы маглі б зрабіць гэта
з дапамогай аператара па модулю.
Так што ў нас ужо ёсць плюс, мінус, множанне і дзяленне
даступныя для нас.
Але аператар па модулю гэта свайго роду акуратны.
Што яна робіць гэта ён на самай справе вяртае астатак
дзялення двух лікаў.
Так што, калі вы памятаеце, у дзялення ў слупок, калі Вы былі б, скажам,
зрабіць 74 падзяліць на 3, можна было б напісаць яго, пераносіць,
адымаць, а затым у канцы ліку на дне
рэшта.
Ну, што модулю гэта на самай справе проста дае вам гэта.
Такім чынам, 74 па модулю 3 дасць вам 2.
Аналагічна, 10 па модулю 2 дае вам 0, таму што няма ніякіх
рэшту пры дзяленні 10 на 2.
6 модулю 5, а 5 пераходзіць у 6 адзін раз, а затым
Ён мае 1 засталося.
Тады, калі ў вас ёсць 7 па модулю 9, а 9 больш, чым 7.
Таму ён не можа пайсці любы іншы раз.
Так што мае сэнс, што вяртаецца значэнне роўна 7.
Так што калі вы думаеце пра модулю, як ён дае вам рэшту
пасля таго, як вы дзеліце нешта, вы можаце збольшага бачыць, як вы
маглі б выкарыстоўваць яго ў прагныя, так?
Так што калі вы выгляд аб'яднаць модулю, можа быць, з падзелам
Аператар, нешта накшталт гэтага, то ў вас можа быць халаднавата
выгляд Mathy спосаб наблізіцца да пастаўленай задачы.
>> Так што цяпер мы ведаем, што існуе некалькі розных
спосабамі, якія мы маглі б гэта зрабіць - ёсць вызначана шмат
рознымі спосабамі, нават пісаць у той час як завесы.
Так што я напісаў некалькі псевдокод тут.
Яно не можа быць аднолькавым на выгляд шкілет вашага
код, які вы пішаце.
Але па сутнасці, працэс і спосаб мыслення
гэтак жа, як мы абмяркоўвалі.
Такім чынам, спачатку першы радок кажа, каб атрымаць пэўную колькасць
у далярах.
І тады няяўнай там пераўтварыць яго ў цэнтах.
Затым, калі чвэрці могуць быць выкарыстаны, мы хочам
павялічыць кошт.
А потым мы хочам паменшыць колькасць, значэнне,
мы вяртаемся назад.
Як вы бачыце тут, гэта не зусім C. Але я таксама
водступ рэчы, я паклаў умоў унутры
дужкі.
>> Такім чынам, што від прымушае мяне пачалі.
І потым, я магу проста паглядзець сінтаксіс.
Часта самая цяжкая частка сапраўды аб праблемай з'яўляецца
зразумець, што менавіта вам трэба зрабіць.
Таму, як толькі вы пішаце, што ўніз, то гэта нашмат лягчэй, то
перавесці на псевдокоде.
А потым з псевдокод, сінтаксіс прыходзіць даволі лёгка.
Такім чынам, мы бачым, у той час як памяшкання, могуць быць выкарыстаны, павялічыць колькасць,
паменшыць суму.
У той час як пятакоў можа быць выкарыстаны, то вы праводзіце так далей, і так
далей, пакуль вы вычарпалі ўсе свае грошы.
Вы раздрукаваць колькасць манет выкарыстоўваліся, якая будзе
Мінімальная сума, каб карыстач ўведзенага значэння.
І ў вас ёсць Прагны алгарытм.
А потым, як толькі вы скончыце, што вы таксама скончылі PSET 0.
>> Хто-небудзь ёсць якія-небудзь пытанні ні пра што?
Добра.
Ну, я буду прытрымлівацца вакол трохі пасля, калі ў вас ёсць
на любыя пытанні.
Гэта пакрокавае кіраўніцтва 1.
Дзякуй, што прыйшлі.