СПІКЕР: Я [неразборліва]. І я старэйшы ў Левереттом дом. Я вывучаю інфарматыку, і я TF для CS50. Як пачатковец, я нават не было ноўтбука або смартфона. У мяне не было ніякіх ведаў у праграмаванні. CS50 быў самым запамінальным, вядома, што Я ўзяў у Гарвардзе таму што гэта было барацьба, але гэта быў сапраўды весела барацьба ў той жа час. І я зрабіў шмат дзіўных, пастаянныя сябры, і я даведаўся шмат сапраўды прыдатныя навыкаў. Я так рады, што я не дазваляў маім адсутнасць фону быць апраўданнем для мяне Не прымайце CS50. Я [неразборліва]. Я старэйшы ў Левереттом Дом, клас 2014 года. І я ўзяў CS50. DAVID малая: Так што гэта CS50. Гэта канец тыдня нуля. І ўспомніць, дзе мы пачалі ў апошні раз, быў з гэтымі лямпамі, якія былі настолькі папулярныя, што мы пайшлі і купіў яшчэ трохі сёння. Так што я думаю, гэта будзе сваю справу ў гэтым годзе - настольныя лямпы, калі вы выйсці на сцэну, па меншай меры, пакуль мы не скончацца. Але мы выкарыстоўвалі гэтыя Нагадаем, увесці асновы прадстаўлення дадзеных. Нам трэба спосаб пачаць прадстаўляюць інфармацыі ўнутры кампутара. І самы просты спосаб зрабіць гэта было з адным інгрэдыентам, электрычнасць. І самае простае, што вы можаце зрабіць з электрычнасць ўключыць яго і яго. Хай паток электронаў ці не. І, выкарыстоўваючы гэтыя два асноўных стану, ад і далей, ці ілжывай і праўдзівай, або нулявы і Адзін з іх, мы пачалі разумець, што мы маглі б пабудаваць вышэй, у дадзеным выпадку, з лёгкімі цыбуліны, некалькі нумароў, чым толькі нулём і адзінкай. Мы налічылі дасягаць сямі, Напрыклад, у мінулы раз. Але ўсё, што нам трэба зрабіць, гэта працягваць кідаць усё больш і больш лямпачак у той праблемы і, на самай справе, мы можам прадставіць любы лік, якое мы маглі магчыма хацець. Ну, мы перайшлі хутка, то на Серада на гэты байтавая добраахвотнікаў. 8 біт тое, што мы звычайна называем байт, Так вось у нас было восем добраахвотнікаў У сераду, якія калектыўна былі прадстаўляе восем бітаў. І калі іх рукі пайшлі , Яны былі адзін. І калі іх рукі былі ўніз, былі нуля. І ў нас былі гэтыя людзі выйсці на сцэну, чаму? Тое, што мы ў стане зрабіць з гэтая паслядоўнасць бітаў? Для стварэння алфавіту. Мы былі ў стане пабудаваць на вяршыні, што папярэдняя ўрок і на самай справе пачаць рабіць больш цікавыя інфармацыю, якая, па меншай меры, больш знаёмыя нам людзі. І гэта будзе паўтаральным тэмай на працягу 50, але і кампутар навукі ў цэлым, гэтая ідэя слаёў, дзе, у канцы дзень, калі вы сапраўды пачалі Асновы з кампутарам, так, гэта нулёў і адзінак. А пад што гэта толькі электрычнасць. Але мы вельмі хутка пачынаюць прымаць гэтыя падрабязнасці нізкага ўзроўню як належнае і пачынаюць пласт па-над мінулым працаваў зрабілі так што, у канчатковым рахунку, па канцы семестра і, на самай справе, ў больш агульным выглядзе кампутарных навукоўцаў і праграмісты, можа зрабіць некаторыя сапраўды магутныя рэчы, узмацняючы працу што мы самі зрабілі, а таксама стоячы на ​​плечы іншых. Зараз мы хутка перайшлі ў сераду толькі ад неабходнасці прадстаўляюць iнфармацыю аб жадаючых нешта зрабіць з ім. Такім чынам, што мы вызначаем як алгарытм? Паслядоўнасці інструкцый. Так што гэта шэраг інструкцый, колькасць крокаў, якія вы, чалавек, або кампутар, больш тыпова будзе выканаць адну за іншы, каб для дасягнення некаторых мэтаў. І ў нас было некалькі мэтаў у мінулы раз, адно з якіх было разлічваць людзей у пакоі. І яшчэ адзін з такіх прыкладаў, каб знайсці Майк Сміт у тэлефоннай кнізе. Такім чынам, вы можаце ўспомніць, што я разарваў тэлефоне Кніга ў палове ў гэтым кірунку да знайсці Майк Сміт. Мэта гэтага візуальнага было прадэманстраваць, зноў жа, што мы былі літаральна разрывае гэтую праблему палова, напалам, напалам, і вельмі хутка пераходзячы ад як 1000 старонак толькі адной старонцы. Тыя з вас, хто прапусціў гэта на Асяроддзе, я думаў, што мы прайграваць некаторыя кадры, што вы прапусцілі. Давайце зірнем. [Прайграванне відэа] -Там мы ідзем. 1500 старонак, добрыя чыстыя лініі, законных слязу. [КАНЕЦ ВИДЕОВОСПРОИЗВЕДЕНИЕ] DAVID малая: Так, каб была серада. Мы пераходу, хоць, у сераду зараз да жадання ўяўляюць алгарытмы у некаторых некалькі стандартным спосабам, а не толькі апісваючы іх вусна, але спрабуе выказаць іх у пісьмовым выглядзе або на экране кампутара, каб мы маглі пачынаюць паляпшаць і змяняць іх, і, у рэшце рэшт, на самай справе прааналізаваць, наколькі правільна ці як хутка яны былі. Такім чынам, мы ўвялі гэта паняцце псевдокода, які, па З пункту гледжання непрафесіяналы, гэта што? ОК, слова. Давайце трохі глыбей, чым гэта. Англійская, вядома, усяго толькі да якой мэтай? Словы, з якімі для стварэння або для прадстаўлення алгарытмаў. Так што няма ні адной мовы, вядомага як псевдокод ў свеце. Гэта проста, што вы, па-ангельску, ці Незалежна ад вашых размоўная мова, выкарыстоўвайце свайго роду збеглага абазначэння перадаць Ідэя вельмі коратка. Але мы ўбачым, што, вядома, з Англійская псевдокод, і аказваецца, большасці моў праграмавання сябе з'яўляюцца вытворнымі ад ангельскага сам, мы ўбачым, што ёсць некаторыя стандартныя спосабы прадстаўлення і псевдокод Таксама праграмнага кода. Такім чынам, як вы пачынаеце бачыць нават самыя простыя Прыклады сёння, рэалізаваць гэтыя гэтыя характарыстыкі, будуць паўтарацца на наступным тыдні. Так псевдокод быў свайго роду мовы нагадваюць мовы праграмавання. І першы прыклад мы бачылі візуальна запісана быў гэтым. Гэта было толькі тры крокі праграмы мэтай якой было падлічыць колькасць людзей у пакоі ў інтэрнаце для , Што відэа на сераду. Але было некалькі цікавых аспектаў гэтай найпростай праграмы. І гэта будзе паўтараюцца тэмы. Так што для тых, хто не знаёмы з гэта, адзін, мы ўвялі зменную. І, напэўна, усё ў гэтым пакоі знаёмыя з зменнай у кантэксце алгебры. Але тут, у праграмаванні, зменныя якія, адзін, можа быць называюць усё, што заўгодна. Мы выкарыстоўвалі N як лічыльнік. Але мы маглі б выкарыстоўваць слова лічыльнік, або, Як вы ўбачыце, большасць любую фразу, якая вы маглі б так доўга, як гэта апісальны, але гэта сапраўды толькі кантэйнер для захоўвання. Гэта кавалак памяці, некаторы колькасць біт, і гэта залежыць ад кампутара, як колькасць біт, што складнікаў гэтай зменнай. Але мы можам паставіць значэнні ў ім. Да гэтага часу мы толькі пакласці лікаў. Але мы можам паставіць канкрэтныя словы. Мы можам пакласці пунктах. Мы можам змясціць выявы - нічога, на самой справе, мы можам ўявіць з нулёў і адзінак, то можна пакласці ў гэта паняцце больш высокага ўзроўню зменнай. Так даволі прама наперад там. І гэта адна лінія. Але мы вельмі хутка перайшлі ад адной лініі на самай справе рабіць нешта з гэтай зменнай. А ў трэцяй лініі, мы абнавілі N. Мы павялічваецца Н. І мы маглі б напісаць гэтую любой колькасцю спосабаў. Але, мабыць, найбольш відавочным з'яўляецца толькі, каб сказаць, усталяваць Н роўным усё, што N плюс 1. Так, каб быў наш крок. У той жа час, было пятлю. А гэта таксама, верагодна, даволі інтуітыўна. Пятлю як раз тое, у праграме што адбываецца зноў і зноў, некаторыя выгляд цыклу. І гэта ключавая фраза тут, для кожнага, з'яўляецца самай справе вельмі часта на працягу большай моў праграмавання, у тым ліку тыя, якія мы ўбачым у курсе. У любы час вы бачыце слова, ён звычайна перадае ідэю, што завесы, то цыклічныя, , Што павінна адбыцца. Але варта заўважыць, адна іншыя сінтаксічныя падрабязна. Той факт, што трэцяя радок ёсць фактычна парэзаныя стукнуўшыся прабел некалькі разоў не выпадкова. Таму што чалавечая Канвенцыі такая, што, калі вы робіце нешта зноў і зноў жа, у цыкле, як пачалося на другой лініі, вы робіце водступ усё, што належала у гэтым цыкле проста даць зразумець, што гэта трэцяя лінія, а не, напрыклад, лінію чатыры ці пяць, калі б былі ліній ці пяць, якія з'яўляюцца частка гэтага цыклу. Так што гэта простае водступ перадае, што асноўная ідэя. Такім чынам, мы ўжылі гэты алгарытм, Зараз, каб некалькі прыкладаў. І гэта таксама, просты прыклад у рэальным свеце. Але гэта будзе прадстаўнік як бы вы ісці аб тэставанні валодаць больш складаных праграм. Вы паспрабуйце некалькі сцэнарыяў, некаторыя Прадстаўнікі ўваходу, і паглядзець, калі вы атрымаць жаданых вынікаў. Так што гэты прыклад было два чалавекі седзячы ў пакоі ў інтэрнаце. На левай ў тым, што тое ж самае псевдокода. А гэта здымак экрана вельмі апошнім этапе прымяненне гэтага Алгарытм для тых уваходаў, дзе ёсць Было два чалавекі ў пакоі, і, Нагадаем, як мы робім крок праз лініі аднаго, і два і тры і два і тры, і зроблена - Да канца гэтага алгарытму, мы павінны былі сапраўды лічыў два хлопца, якія ў пакоі. Тады мы паспрабавалі іншы прыклад. І мы сказалі, што калі ёсць нуля людзей у пакоі? Гэты код ўсё яшчэ правільная? І сапраўды гэта было. Проста так здарылася, што дзве лініі і, такім чынам, тры лініі або не збіраецца выконваць. Яны не адбудзецца на ўсіх , Таму што яны проста не ўжываецца, калі ёсць нулявы людзей у пакоі. Але не мае вялікага значэння. Першы радок ініцыялізуецца N нуля, так нават калі толькі адзін радок гэтага праграма фактычна заканчвае тым, што карысна, яна па-ранейшаму дае правільны адказ, а паказвае аранжавы нуля ў ніжняй часткі. Але потым мы вырашылі, што было выгляду дурны алгарытму. Гэта было даволі павольным. Вядома, я магу зрабіць два, чатыры, шэсць, восем, дзесяць, калі падлік людзей у пакоі. Такім чынам, мы мянялі алгарытм, псевдокод, калі не сказаць, у цяперашні час у другім радку, для кожнай пары людзей у пакоі, перайсці да, у адпаведнасці тры, прырост У па два на кожнай ітэрацыі. Так, што б працаваў тут гэтая пара чалавек ў нумары. Але тады, калі вы пачынаеце думаць аб гэта, і гэта не зойме шмат часу, каб разумеюць, пачакай хвілінку гэта зламаецца, ён распадаецца на тое, што просты выпадак? Калі ёсць тры чалавекі ў пакоі або, ў цэлым, калі ёсць няцотная колькасць людзей у пакоя, у тым ліку адзін. Мы будзе не хапаць гэтага чалавека тут, таму што няма такіх пар. Такім чынам, мы хутка разгледжаны замест ўвядзення, якія дадатковыя праграмныя канструкцыі да псеўда-код. Так стане, мы называлі , Або галінкі. І гэта прызначаецца, каб перадаць, візуальна, Ідэя галінкі, развілкі дарог , Дзе Вы можаце зрабіць гэта Ці, можа быць, нешта яшчэ. І сапраўды, мы вырашаем гэтую праблему, Даданне графікаў 4, кажучы, на самай справе, па меншай У самым канцы, калі адзін чалавек застаецца, а затым пайсці далей і лічыць іх асаблівымі. Так што вы як бы прыватны выпадак іх, так казаць, так што зараз мы справімся і нават колькасць людзей і няцотных колькасцю людзей. У цяперашні час існуе любую колькасць спосабаў мы маглі б выказаў гэта. І, шчыра кажучы, я, магчыма, быў яшчэ больш прыдзірлівая гніда, калі ён прыехаў у мой выбар Англійская мова для псевдокода. Але па крайняй меры духу Ідэя перадаецца. Калі вы перадалі гэты код сябру хто не ў CS, ці ніколі не прымаў CS, напэўна яны маглі высветліць, дадзены тры чалавекі ў пакоі, як лічыць тых людзей, заснаваных з прыведзенымі інструкцыямі. І гэта ўсё, на самай справе мы хочам дасягнуць з псевдокоде, так ці інакш стандартызацыя, як мы збіраемся пра прадстаўляюць ідэі, каб мы маглі пачынаюць рабіць больш складаныя рэч яшчэ. Так, якое вядзе нас то сёння, фактычнага кода. Мы пачынаем сёння праграму, хоць і ў сяброўскай абстаноўцы. І тады мы пераходзім вельмі хутка больш тайны сінтаксіс, але той, які Вы ўбачыце прынцыпова такі ж, як ідэі ўбачыць праяўляецца з гэта іншую мову сёння. Гэта проста будзе глядзець крыху па-іншаму. Таму замест таго, проста патэлефануеце гэты код, я збіраецца быць трохі больш дакладным і сказаць: з гэтага часу, пры напісанні праграмы, вы пішаце зыходны код. Гэта накшталт як псевдокод. Але мы ўбачым, што гэта не Сартаваць сыпкіх калі справа даходзіць да выбару слоў якія вы выкарыстоўваеце. Пры праграмаванні на мове, у вас ёсць выкарыстоўваць словы, фразы, сінтаксіс, што іншыя людзі вырашылі ўяўляюць менавіта на гэтай мове. Так pseudocodes залежыць ад вас. Фактычнага мовы праграмавання, такіх як З, а ў канчатковым выніку мы будзем бачыць, стандартызаваных іншымі людзьмі. Так як жа нам ісці аб напісанні некаторыя зыходны код? Ну, я пайду наперад і рабіць гэта. Я збіраюся ісці наперад і адкрыць вокны тут. Больш падрабязна пра гэта на наступным тыдні. Але гэта прылада пад назвай CS50 прыбора. Я бягу частку праграмнага забеспячэння на маім Mac, хоць вы можаце зрабіць тое ж самае на кампутары вокны, што дае мне ілюзію ўстаноўлена іншая аперацыйная сістэма зусім мае рацыю Тут у акне на маім Mac. Я толькі поўны скрынінг гэта так, Вы ня рэальна ўбачыць Mac OS прама цяпер. Гэта аперацыйная сістэма называецца Linux. Гэта вельмі папулярна. Гэта вельмі хутка. Гэта вельмі свабодна, які зрабіў гэта вельмі пераканаўчымі, асабліва ў камерцыйным свеце. І яшчэ на што да канца семестра, калі мы выкарыстоўваем Linux зусім няшмат для вэб-праграмавання і правядзенне фактычныя сайтаў і праектаў. Так што цяпер, проста ведаю, што гэта рабочы стол , Што азначала глядзець цьмяна знаёмыя Вокны і Mac OS. У яго ёсць толькі некалькі розных імёнаў і абразкі для рэчаў. Але гэта так званы CS50 Прылада, віртуальную машыну, якая, пачынаючы з наступнага тыдня, вы, хлопцы, выконваюцца ўнутры акно уласны Mac або ПК. На сённяшні дзень, я збіраюся адкрыць найпростых праграм. Яна называецца Gedit. І гэта толькі графічны рэдактар. Гэта накшталт як Microsoft Словы, але прасцей. Гэта накшталт як тэкст Рэдагаваць або нататнік. Гэта проста вельмі простая праграма, з якія, каб напісаць словы на экране. Гэта менавіта так, што адбываецца, што калі я захаваю Файлы, якія я ствараю, калі гэтая праграма У адмысловае пашырэнне, як. C, замест з. DOC, або. XLS, ці што Вы знаёмыя з, я магу рэальна ствараць праграмы, выкарыстоўваючы нават гэта простае тэкставага рэдактара. Такім чынам, дазвольце мне зрабіць гэта. Дазвольце мне ісці наперад і захаваць гэты файл спачатку як hello.c. І зноў жа, гэта карыстацкі інтэрфейс якія сталі звыклымі для вас хутка. Але цяпер, я проста увёўшы У імя файла. Я іду, каб выратаваць яго ў мой Джон Гарвардскі хатнім каталогу. І зараз у мяне ёсць гэтая ўкладка, якая паказвае Я сапраўды рэдагавання файл з імем hello.c. Так што нічога яшчэ занадта цікава. І цяпер ён збіраецца атрымаць даволі загадкавым. Я збіраюся павялічыць малюнак, проста так што гэта больш прыкметнымі. І я збіраюся пачаць набор ўключае stdio.h, тап_п, пустата, якая адкрывае фігурнай дужкі, адзін, два, тры, чатыры прасторы водступ, друк F, для друку нешта адфарматаваных, у двукоссі, "Hello, World" зваротную касую рысу, N, блізкіх цытаты, закрытая дужка, кропка з коскі, увядзіце Backspace, Backspace, Backspace, Backspace, закрытай фігурнай дужкі - Я запраграмаваў. Добра, так што гэта супер проста Праграма, сапраўды, праграма, якая любому пачынаецца праграмаванне с. І ўсё гэта робіць, на ўсю яе складанасць, будзе надрукаваць, на экране, што вы думаеце? Прывітанне свет. Але гэта не з'яўляецца дастатковай справядлівай напісаць праграму. Так што гэта код. Гэта зыходны код у мову, званы ст. Яна захоўваецца ў цяперашні час у файл з імем hello.c. Цяпер паглядзім на ніжнюю частцы экрана тут. Больш падрабязна пра гэта, зноў жа, у тыдня. Але гэта тое, што мы будзем называць акно тэрмінала. Гэта перарывісты, чорны і белыя радкі. Гэта свайго роду стары інтэрфейс школу кампутар, як правіла, не выкарыстоўваць мыш або іншае графічных элементаў. Ён проста выкарыстоўвае вашу клавіятуру. І я магу ўводзіць каманды ў Гэта мігценне радка. І для мэт сённяшняй, я проста збіраецца увядзіце наступную - зрабіць прывітанне. І гэтая праграма, зрабіць, гэта проста праграма, якая, у рэальным свеце гэтыя дзён, мы б двойчы пстрыкніце на. Але ў гэтым інтэрфейсе на сённяшні дзень, мы збіраецца ўвесці яго імя па гэтага запрашэння. прывітанне зрабіць літаральна збіраецца зрабі мяне праграма пад назвай Hello. І ён збіраецца зрабіць гэта, гледзячы для файла, проста змаўчанні называецца hello.c. Гэта будзе меркаваць Я хачу праграму C па сваёй прыродзе, як гэта кампутар настроены. Так што я іду наперад і націсніце ўвод. Я бачу некаторыя загадкавыя прадукцыі, але гэта стане занадта знаёмыя ў хуткім часе. Гэта адбылося для запуску кампілятара, больш пра гэта ў момант, званы Clang. Але цяпер, у мяне проста яшчэ адзін міргаць падкажа. І я магу цяпер ісці наперад і ўвядзіце кропку слэшам, нецікавым прычынах мы будзем пераход на наступны тыдзень - прывітанне. Так што ўсе гэтыя намаганні да гэтага часу толькі напісаць найпростых праграм, якія як толькі я ўдарыў Enter, робіць гэта. Так я напісаў сваю першую праграму. Так што я наўмысна паджартоўваючы у гэта вельмі простая праграма па некалькіх прычынах. Адзін з іх, гэта цяжка, каб быць усхваляваным аб узяцці класа, калі гэта канец гульні. Але больш за тое, ёсць Шмат адцягваюць тут. Першы раз, калі вы навучыцеся праграмай, тых з вас, менш зручна, і Нават я, яшчэ ў той дзень, калі я ўпершыню бачыў нешта падобнае - вы можаце выгляду з малюнка, усё ў парадку, гэта знаходзіцца ў друку прывітанне свет. Але ёсць так, адцягненне. Там так шмат сінтаксісу на экране што ён атрымлівае на шляху вельмі проста, у адваротным выпадку проста, ідэі. Такім чынам, што мы збіраемся зрабіць сёння мы збіраецца адкласці ў бок і прыйсці C Вярнуцца да, што ў панядзелак. І мы збіраемся выкарыстоўваць графічную мова праграмавання нуля. Гэта мова праграмавання, што я згадваецца ў сераду, што адбываецца , Каб дазволіць нам зрабіць тое ж самае роду рэчы але заплюшчваюць вочы, на сённяшні дзень, у фігурныя дужкі, дужкі, кропка з коскі, і ўсе гэтыя дурныя адцягваюць фактараў, якія перашкаджаюць, у У першы дзень, некаторыя асноўныя, даволі цікавыя ідэі. Так што ў гэтым напрамку, я пайду Вярнуцца да маім працоўным стале сюды і пазнаёміць вас з альтэрнатывай, што Праграма, якая будзе выглядаць сёе-тое святло гэтага. Вось як мы збіраемся рэалізаваць, што Сёння ж праграме - два галаваломкі часткі, якія, калі блакаваны націснулі на яе, скажа свеце, прывітанне свет. Так што давайце самай справе туды. Так што я збіраюся ісці наперад і адкрыць Вэб-сайт вядомага як scratch.mit.edu. І гэта прывядзе мяне да гэтага сайта тут. Загадзя, я ўвайшоў у гэтую сайт і першыя праблемы, што , Вы пройдзеце праз некаторыя з гэтых крокаў. Я збіраюся ісці наперад і націсніце на маім драпін тэчкі тут. І гэта адбываецца, каб паказаць мне некаторыя праекты, якія я фактычна стварыў загадзя. І аказваецца, што гэтая графічная Мова праграмавання не толькі збіраецца , Каб паведаміць нам праграмы шляхам перацягвання і перацягвання гэтых кавалачкаў галаваломкі, вы нават не трэба спецыяльнае праграмнае забеспячэнне. Гэта ўсё убудаваныя ў браўзэр так, што вы можаце зрабіць гэта, у тэорыі, на Вашы кампутары прама цяпер, як некаторыя з вас цалкам можа быць, нават без праграмнае забеспячэнне, як CS50 прыбора, які прыйдзе на наступным тыдні. Так што я збіраюся ісці да верхняга кута тут і націсніце Стварыць. І ў момант, калі я іду, каб атрымаць пусты экран, праз які я магу пачаць праграм у гэтай графічнай асяроддзя праграмавання. Але на гэты раз ён збіраецца быць шмат, Значна прасцей зрабіць гэта на самай справе. І ўжо літаральна праз хвіліну, калі Wi-Fi супрацоўнічае, мы цяпер маем гэтым экране. Так хутка слоўную экскурсію, але я адважуся сказаць, вядома, калі вы апускаецеся ў Першы набор праблемы, вы будзеце знайсці гэта ўсё вельмі даступна і інтуітыўна зразумелыя. Але давайце намаляваць разумовую карціну на імгненне. Так пад гэтым запрашэння, які абвяшчае Захаваць змены, вы зараз ўбачыце нуля. Гэта спрайт. Гэта характар. І ён жыве на тым, што мы будзем называць этапам, гэта вялікі белы прастакутнік на якім ён можа рухацца уверх, уніз, налева, праве, і, на самай справе, іншыя тыпы дзеянняў. Між тым, у сярэдзіне гэтага карыстальніка інтэрфейс, у нас ёсць цэлая куча галаваломкі. І вы ўбачыце, што яны кажуць такія рэчы, як рухацца 10 крокаў, павярнуўся на 15 градусаў, кропкі ў вызначаным кірунку. Але ёсць катэгорыі Блокі тут таксама. Так што калі я іду да сваёй знешнасці, вы ўбачыце, што ёсць іншыя часткі галаваломкі, якія мабыць скажу, каб гэта CIT павітацца, думаць, каб паказаць сябе, схавацца. Калі я спускаюся да гукаў, аказваецца ёсць спосабы гульні гучыць як Мяу , Каб спыніць усе гукі, гуляць барабан. Такім чынам, карацей кажучы, ёсць цэлы куча кавалачкі галаваломкі, якія дазваляюць распавесці гэтую котку, або любую колькасць іншыя сімвалы, што рабіць. Але, каб усё гэта здарылася вы трэба для пачатку праграмавання. І гэта вялікая белая скрынка, або шэрая скрынка, на правага боку, гэта дзе Я збіраюся на самай справе і перацягнуць адкінуць гэтыя кавалачкі галаваломкі. Гэта мой пусты тэкст вокны эквіваленце. Так што я збіраюся ісці наперад і націсніце Упраўлення пасярэдзіне. Ці, хутчэй, дазвольце мне пачаць У рамках падзеі. Пад Bench Events, вы заўважыце, Некалькі рэчаў, якія наўмысна выгнуты ў верхняй такім чынам, каб яны, верагодна, не блакавацца на верхняя частка галаваломкі. І гэта таму, што яны Демарк пачатку праграмы, пачатак сцэнар, так бы мовіць. Так што калі я іду наперад і перацягнуць, калі зялёная сцяг націску сюды, а потым я хачу гэтую котку сказаць што-то на першы погляд. Так што я збіраюся ісці пад панэль выглядае. І я збіраюся ісці наперад і захапіць павітацца блок, і супраціў, і зніжэнне, і адпусціць, каб яно самастойна счапляецца там. І звярніце ўвагу на тое магу пстрыкніце па тэксце. І я магу змяніць гэта, каб быць больш канкрэтнае, напрыклад, скажам, прывітанне свет. І зараз у нас ёсць праграма, якую я сцвярджаць, эквівалентна, што значна больш таемныя праграму я рэалізаваў C у хвіліну таму. Калі я іду зараз да левай баку, заўважыце, што вялікі знак прыпынку і вялікі зялёны сцяг. Дазвольце мне павелічэння для яснасці. І калі я цяпер гэтага націсніце зялёны сцяг, вы можаце здагадацца, што гэта першы Праграма ў цяперашні час збіраецца рабіць. Так там таксама мы праграмуем, але Мы на самай справе не загразнуць у некаторых з гэтых сінтаксічных, драбнюткіх дэталяў. Але давайце паспрабуем нешта крыху больш цікавым. Адпусціце мяне ў мой драпін тэчкі тут. А на самай справе, дазвольце мне таму дазвольце мне адкрыць Асобная праграма тут на працягу ўсяго момант Разгарнуць гэтым акне адкрытым файле і я збіраюся ісці ў сённяшняй зыходны каталог. Як заўсёды, вы знойдзеце, сёння, і далей, што ўсе прыклады сённяшняга даступныя ўнутры Вядома аўтара. І я збіраюся ісці наперад і выбраць тут уверх трохі нешта іншае. Гэты тут, для якога Я патрэбен добраахвотнік. Хто хацеў бы настольную лямпу на сённяшні дзень? Добра, як пра кагосьці мала - Вы на канцы? Ідзем ўніз. Зараз, вы хацелі б прыняць удзел, або проста сказаць пачаць з настольнай лямпай? Ванэсы: [неразборліва]. DAVID малая: OK. Выдатна, што вы называеце? Ванеса? Давіда. Вельмі прыемна. Так давай і Ванеса збіраюцца ўзяць пад кантроль маё Клавіятура на імгненне. І тое, што я зрабіў тут, толькі для Часу Дзеля, як я зразумеў, Wi-Fi быў трохі павольным, драпіны, асяроддзе праграмавання, якая мы выкарыстання, таксама могуць быць загружаны і працаваць на вашым лакальным кампутары. Так што я зрабіў да пачатку лекцыі, у выпадку, бывае, я запампаваў Усе файлы мы збіраемся гуляць з так што яны могуць працаваць трохі больш хутка прама тут, на маім ноўтбуку. Дык вось чаму цяпер я бачу Mac канкрэтнага інтэрфейсу. Так што я збіраюся ісці наперад і адкрыць гэты. Я збіраюся ісці наперад і цяпер поўны экран акно. І, як вы ўбачыце, мы можам вельмі хутка, як гэта зрабіў студэнт, адзін з Вашы папярэднікі, ідуць ад прывітанне свет у значна значна больш пераканаўчай прыкладання. Дык вось інструкцыі. О, і ў нас ёсць яшчэ адна рэч. Я думаў, што гэта будзе цікава, так як, Як правіла, мы будзем здымацца камеры такім чынам. Я думаў, што будзе весела, калі, Ванэса, мы маглі бачыць свет праз вашы вочы. Так вось у нас ёсць некаторыя Google шкла. [Здзіўлены GASPS] DAVID малая: Мы будзем даваць ад настольных лямпаў сёння. [Смяецца] Такім чынам, дазвольце мне Cue гэта. Добра, дакрануцца да гэтага. ОК, Шкло, запісаць у відэа. Добра, Ванеса? Зараз, як у баку, што не мае нічога рабіць з нуля, калі вы паглядзіце трохі ўверх і направа, вы ўбачыце, літаральны шкло, і вы павінны ўбачыць трохі прамавугольнае акно. Вы павінны ўбачыць усё сваімі аднакласнікамі здымаюць прама цяпер? Да. Ванэса: Так. DAVID малая: OK. Так што гэта нармальна. Мы выпусцім гэтыя кадры пазней. На дадзены момант, звярніце вашу ўвагу на экран тут. І тое, што ваш папярэднік зрабіў гэта паставіць некаторыя інструкцыі на экране толькі з дапамогай праграмы малявання. Такім чынам, вы збіраецеся, у адзін момант, націсніце прабел, каб пачаць. І тады некаторыя кавалачкі галаваломкі збіраюцца пачаць рух уверх па экране. А вы хочаце патрапіць клавішы са стрэлкамі, проста Як і ў рэальным DDR, у адпаведнасці з рэчамі выстройваюцца ў чаргу з тымі стрэлкамі. Ванэсы: OK. DAVID малая: Вы гуляеце гэта раней. Ванэса: Так. DAVID малая: Добра, Ванэса, ісці наперад і адабраць яе. [MUSIC - KAYNE Захад "мацней"] [Апладысменты] DAVID малая: Такім чынам, давайце зрабіць крок ад гэтага. Такім чынам, ясна, што гэта канец гульні. У канцы гульні ня прывітанне свет. Але вы не павінны абавязкова зрабіць рэчы, якія настолькі інтэрактыўным. Вы таксама можаце зрабіць анімацыю. Так, напрыклад, яшчэ адзін з вашых пераемнікі зрабілі гэтую праграму тут, якая распавядае гісторыю больш яна рэалізаваная ў гульні. Такім чынам, дазвольце мне ісці наперад і адкрываць тут Праграма ў нашым жа каталогу крыніца з сённяшняга дня. Гэта адзін званок, і пачнем с, гісторыя кахання печыва. І не рабіць гэта занадта навукова, але, як вы глядзіце гэта, думаю, каб сябе, якія з тых простых канцэпцыі праграмавання мы казалі пра гэтага часу - зменных, і петлі, і ўмовы, твой папярэднік, верагодна, выкарыстоўваць толькі для рэалізацыі некаторых візуалізацыі. Вы бачыце тут. Таму я даю вам гісторыю кахання печыва. [MUSIC - GREEN DAY, "свята"] [CRASH] [MUSIC - чарапахі, "Шчаслівыя разам"] DAVID малая: Добра, так што, у нас была гісторыя кахання печыва. Але і там - [Апладысменты] DAVID малая: Добра, нават там, думаць, як тыя пайшлі ад сэрца дна да верхняй частцы экрана, там было на самай справе трохі выпадковасці адбываецца. І сапраўды, мы ўбачым, што нават у Найпростая з асяроддзяў, як Драпіны, як і ў C, вы можаце стварыць выпадковых лікаў, ці ілюзія выпадковых лікаў, так што гульня трохі больш цікава, чым гэта можа калі б вы былі абсалютна жорстка ўсё. У руху, якое вы бачыце, ёсць Ёсць нейкі рэакцыі ў адказ. Як толькі пернік чалавек датыкаецца пернікі жанчына, яна Здаецца адысці. І так, на самай справе, вы можаце ажыццяўляць у Большасць моў праграмавання, паняцце падзей, пры гэтым калі дакранацца рукой З іншага боку, якія могуць выклікаць некаторыя з зыходнага кода для фактычнае выкананне. Вы можаце слухаць для такіх рэчы на ​​экране. Так што давайце зробім кароткі агляд, то, некаторыя з структурных элементаў можна выкарыстоўваць для дасягнення некаторых з гэтых мэтаў. Такім чынам, вось што мы будзем у далейшым патэлефануеце заяве. Заява здараецца, фіялетавы Драпіны, трохі нешта накшталт гэтага, але гэта адвольна. Заява гэта проста кавалак галаваломкі ці, ў цэлым, інструкцыі, якія паведамляе кампутара, каб зрабіць нешта, з заявай. Такім чынам, вось просты прыклад. Скажы прывітанне свет. Яшчэ адзін можна пачакаць адну секунду. Так што гэта паззл, які падтрымліваецца У драпін, мы дамо вашу знакаў паўзу для некаторых колькасць секунд. Гэта таксама з'яўляецца ўсяго толькі канстатацыя. Тут у наступным, у нас ёсць іншы, больш цікавым, гульня мяу гук, і невялікі стрэлкай азначае, што ў драпіны, гэта выпадальнага меню. Такім чынам, вы можаце імпартаваць гукі. Вы можаце запісваць гук і рабіць іншыя цікавыя рэчы ў добрым стане. І гэта, таксама, хоць, у канцы у дзень, гэта проста канстатацыя. Але цяпер давайце пазнаёмімся больш Цікавы твор, што вядома як Лагічны выраз. B Capital, названы ў гонар Хлопец па імені Bool. І лагічны выраз гэта проста кавалачак пазла, ці, больш агульна, частка інфармацыі, якая альбо сапраўдным, альбо памылковае - адзінка або нуль, так ці не. Так што гэта проста адна з тых дзве супрацьлегласці. Так што адна з такіх лагічны выраз у Свет драпін выглядае наступным чынам сіні кавалак галаваломкі. І ён задае пытанне, мыш ўніз, і якія могуць быць, Вядома, сапраўдным або ілжывым. Так з гэтым у паззл нуля, Ну, вы зможаце выявіць, калі ламаць галаву, калі мыш, на самай справе, будучы скаванага чалавека ўзаемадзейнічаюць з вашай праграмай. Гэта адна крыху больш абстрактным, але гэтыя два белых скрынках як раз для лікаў. Так што вы можаце рабіць рэчы, як гэта лік менш, чым іншыя? І калі так, то будзе паводзіць сябе драпін ў адну бок або іншую. Гэта адна крыху больш графічных. Гэта калі спрайт, калі котка, для Напрыклад, на самай справе датычацца паказальніка мышы. Так што, калі маленькая галава стрэлка вагаецца на котку, то гэта паззл будзе ацэньваць да ісціны. Гэта будзе праўда, у гэтым выпадку, калі вы выкарыстоўваць гэта лагічны выраз, як мы будзем гл ў адзін момант, у галіне, вы можаце альбо гэта зрабіць, ці вы можаце зрабіць гэта, гэтак жа, як у нас было ўмова, што праверыў, ёсць яшчэ адзін апошні чалавек у пакоі? Калі гэта так, дадайце адзін. У адваротным выпадку, не хвалюйцеся далей. Так лагічны выраз таксама можа быць і-ED або разам ці-ED разам. Такім чынам, вы можаце камбінаваць лагічныя выразы і сказаць, што і гэта павінна быць дакладна і для Усё гэта, каб быць праўдай. А вось яшчэ прыклад рэальнага свету. Калі вы выкарыстоўвалі CS50 Курсы рабіць вядома Пакупкі, гэтыя сцяжкі там, дзе, калі вы пераканайцеся, што сцяжок на курсы, якія скажуць: так, Толькі пакажыце мне курсаў, для якіх значэнне Q складае 4,5 або вышэй. Калі вы зніміце яго, не, не трэба турбавацца пра гэта. Ці аналагічна, справа, Ня Канфлікт з курсамі, што я бяру, гэта альбо сапраўдным, альбо памылковае. Гэта проста лагічнае выраз. Так што ўвесь гэты час, калі вы выкарыстоўвалі сайты з сцяжкамі, ты проста пераключэнне эквівалент лагічнае выразы і выключаецца. Такім чынам, у якой форме вы карыстаецеся гэтым? Ну, у драпіны, мы ўбачым у момант то ёсць умовы, якія выглядаць наступным чынам. І гэта збольшага таму, што вялікая разумным як у псевдокоде, мы водступам Сартаваць П-вобразных частак галаваломкі, сярэдні што ўсё, што ўнутры, што і з'яўляецца будзе выконваць або няма, у залежнасці ад таго, дзе яно ёсць. Так што, калі лагічны выраз, то усё, што знаходзіцца ўнутры будуць выкананы. Між тым, ёсць, калі / інакш блок. Таму калі вы хочаце філіял, які ідзе гэтым так ці інакш, драпін, што дае нам. І па гэтай логіцы, у цяперашні час, нягледзячы на ​​тое, што паззл відавочна занадта малы ўціснуць нешта яшчэ ўнутры яго, частак галаваломкі драпін, яны толькі будзе расці. Калі вы перацягнуць на нешта, ён проста будзе расці, каб адпавядаць ўсе, што тым, што ты спрабуеш зрабіць. Так што мы можам узяць дзве гэтыя рэчы, і зрабіць тры відэльцы шлях у дарозе, таму што вы альбо робіце гэта, ці гэта, ці гэта іншая рэч толькі шляхам укладання іх такім чынам. Вядома, калі вы робіце гэта занадта шмат, гэта пачынае станавіцца пачварным. Але ў гэты момант, вы на самой справе , Верагодна, не вельмі добра праграмавання. І так што будзе паўтаральных Тэма таксама, што з моды. Наколькі добра ты на самай справе фарматаваць Ваш код? Ці як добра вы канструяваць свой код? Але пра гэта ў будучыні. І зараз у нас ёсць цыклы. Там добрая бясконцы цыкл у драпін што літаральна азначае, што - рабіць усё, што знаходзіцца ўнутры гэтага зноў, і зноў і зноў. Вы можаце быць больш канкрэтным і сказаць: зрабіць наступную рэч 10 разоў. Вы можаце таксама выкарыстоўваць зменныя. Вы можаце прыдумаць любое назву на што кропелька ўніз і сказаць, дайце мне пераменная N і ўсталюйце яна роўная некаторага значэння. І тады вы можаце мець функцыі. Але больш на тых, хто ў адну хвіліну. Дазвольце мне вярнуцца да маёй Драпіны інтэрфейс. І дазвольце мне ісці наперад на гэты раз. І давайце ісці наперад і адкрываць, скажам так, напрыклад, з - гэта крыху больш цікавым. Дазвольце мне ісці наперад, і, уласна, дазвольце мне зрабіць гэта сам. Мне не трэба, каб адкрыць гэта. Пусціце мяне да File, New. Я збіраюся пайсці на падзеі. Я збіраюся ісці, калі зялёны сьцяг націснутая, і я збіраюся ісці на гук. І я збіраюся перацягнуць гэтую паззл, гуляць гук мяу. Гэта зашчапкі разам. І цяпер, калі я націскаю на зялёны сьцяг - [MEOW SOUND] DAVID малая: цудоўная. Такім чынам, зараз давайце зробім нешта крыху больш лагічна проста каб паказаць, што мы можам, на дадзены момант. Я іду, каб адлучыць гэта ад гэтага хлопца. Я збіраюся пайсці да пульта. І я збіраюся захапіць стане. Так што калі што-то тады. Дык вось, як гэта выглядае там. Так што мне трэба лагічны выраз. І дазвольце мне пайсці далей і сказаць, адпусціць мяне ў аператары. Я збіраюся зрабіць нешта крыху Mathy, проста дзеля задавальнення. Я збіраюся пайсці сюды і сказаць, што калі нешта менш нешта яшчэ, ісці наперад і рабіць нешта. Так што цяпер, вы ведаеце, што, выпадковы блок. Так што звярніце ўвагу, як, калі б я гэтага навядзіце курсор на рэч тут, што будуць хапаць ў там. Так што цяпер, заўважце, я пачынаю рабіць тое, што ўжо больш лагічна цікава. Калі выпадковы лік паміж 1 і 10 менш, чым, скажам, шэсць. Калі я выберу шэсць, што істотна сродак, выканайце наступныя дзеянні з 50% верагоднасці. Гэта як манетку. Зараз, я магу зрабіць што-то ўмоўна. А то нешта я збіраюся зрабіць, гэта гуляць гук. Так што цяпер, калі я націскаю на экране сцяг, гэта як падкідванне манеты. [MEOW SOUND] DAVID малая: Гэта было кіраўнікоў і яшчэ шмат чаго ёсць. Давайце зробім гэта зноў. [MEOW SOUND] DAVID малая: кіраўнікі зноў. [MEOW SOUND] DAVID малая: кіраўнікі зноў. Уф, добра. Хвасты той час. Так што 50% часу, калі мы зробім гэта бясконца доўгай, то мы атрымаем 50% мяўкае і 50% маўчанне. Так што, толькі асноўны будынак блок, які дазваляе нам зрабіць гэта. Але гэта накшталт стомнай, што ў мяне ёсць трымаць націску гэтай кнопкі. Так што давайце проста перацягнуць і кінуць ўсё тыя ж. Калі вы цягнулі іх да сярэдзіны, яны проста выдаліць сябе. Дазвольце мне падысці да кантролю. Пусціце мяне да вечна. І на гэты раз, я збіраюся зрабіць minorly нешта раздражняе. [Смяецца] DAVID малая: і я пайду, наперад і рабіць кантроль. Пачакайце адну секунду, проста так, гэта не занадта рашоткі. [MEOW SOUND] DAVID малая: Гэта не натуральна. ОК. [MEOW SOUND] DAVID малая: І звярніце ўвагу, што, прыемна каля нуля, для тых з вас, хто мець папярэдняе праграмаванне вопыту, вы ня трэба для запуску і прыпынку. Вам не трэба для кампіляцыі. Вы проста змяніць яго, і праграма будзе дынамічна адаптавацца. Такім чынам, гэта становіцца крыху цікавей. Але давайце зробім яшчэ адзін крок наперад. Дазвольце мне ісці наперад і атрымаць пазбавіцца ад гэтай праграмы. [MEOW SOUND] DAVID малая: Гэта тое, што мы будзем называюць памылкай у добрым стане. Ён не павінен працягваць рабіць гэты гук. Такім чынам, мы мы раскажам яму спыніцца. Добра, так што цяпер я буду ўдавацца ў - Я дам ведаць MIT. Мы пойдзем сюды, каб назаўжды. І цяпер, я хачу зрабіць што-то зноў і зноў. Я збіраюся ісці ў кіраванне. І давайце паглядзім, што я збіраюся перацягнуць Калі мой стан там. Так што цяпер заўважаюць логікі. Калі зялёны сцяжок пстрычкай зрабіць нешта назаўжды, але рабіць гэта толькі нешта, калі гэта іншая рэч, гэта праўда. Я збіраюся ісці, давайце сказаць, зандзіравання. І я збіраюся ісці наперад і выбіраць кранальна і адпусціце яго там. Гэта лагічны выраз. І вось, звярніце ўвагу, у гэтую кроплю меню, ёсць некаторыя наканаваныя значэння. Таму я магу сказаць, вы дакранаючыся краю экрана? Ці вы дотыку паказальніка мышы, стрэлка на экране? Так што я збіраюся зрабіць гэта. І калі так, то я пайду наперад і гуляць гук мяу. Так што цяпер я часткова ёсць пачатак гульні - Чароўная гульня. [MEOW SOUND] DAVID малая: Добра, чароўныя, багі гульні. Дазвольце мне чакаць, скажам, адну секунду там. Зараз гуляць зноў, націснуўшы зялёны сцяг. [MEOW SOUND] DAVID малая: Так што зараз гэта як гладзіць котку. [MEOW SOUND] DAVID малая: Добра, зараз гэта адна я зрабіў загадзя. Вельмі позна, гэта становіцца збольшага Лёгка рабіць глупстваў. Такім чынам, дазвольце мне ўвайсці тут. Скажам, гэта было Pet Cat. Давайце зараз адкрыць Ня Pet Cat. Цяпер, калі мы будзем гуляць гэтую, Вы можаце выказаць здагадку, калі вы гледзячы на ​​экран - [MEOW SOUND] DAVID малая: Цяпер, калі я пагладзіць котку [Роў LION'S] DAVID малая: Так на самай справе не пагладзіць котку ў гэтым выпадку. Так што зараз мы проста маем прыклад Філіял, што адбываецца ў двух напрамках. Цяпер дазвольце мне ісці наперад і адкрыць яшчэ тут. Гэты, акрамя таго, сярод нашых крыніц Файлы кода на працягу дня. Такім чынам, дазвольце мне вярнуцца ў мой крыніца каталог і ўдавацца, давайце абярэм гэты хлопец тут і бачыць што па-іншаму. Нічога сабе, усё ў парадку, так што цяпер яна становіцца трохі больш складанай. І перш, чым мы бачым, што гэты хлопец робіць, давайце паспрабуем зрабіць выснову, з праграмы на правай баку. І цяпер ясна нуля дазваляе нам ёсць некалькі сцэнарыяў, некалькі праграмы, звязаныя з у адным шпрыцы, з адным характарам, і, мабыць, яны абодва збіраемся запусціць у нагу. Паколькі абедзве гэтыя праграмы пачынаецца з тым, калі зялёны сцяг клікаў, гэта намякаючы на ​​больш прасунутыя тэмы, з некаторыя з якіх вы можаце быць знаёмыя, на патокі або шматструменнасць. Аказваецца, карацей кажучы, кампутары сёння можа істотна зрабіць некалькі рэчы адразу. Ці ж яны могуць зрабіць адну рэч за адзін раз так хутка, што вы нават не заўважыце, што гэта на самай справе робяць адно рэч за адзін раз. Але цяпер, давайце выкажам здагадку, што абодва гэтыя праграмы будзе выконваць у той жа час. І заўважце, у іх абодвух ёсць назаўжды галаваломкі. Так што яны абодва збіраюцца працягваць працаваць пакуль я не патрапіў у чырвоны знак прыпынку. Так што ж яны збіраюцца рабіць? На левым баку, я па-відаць аб'яву зменнай называецца адключаны. Так што я не называю гэта нешта накшталт сумна, як Н. Я назваў яго прыглушаныя гэтым час, каб перадаць сэнс. Я паставіў яго роўным нулю. Давайце думаць пра гэта як ілжывыя або Давайце думаць пра гэта як ілжывыя. Зараз, назаўжды зрабіць наступнае. Калі прабел на клавіятуры будзе націснутая, а затым, калі прыглушаны роўны нулю, затым змяніць прыглушаных на роўную аднаму. Інакш пакласці прыглушаных да нуля. Так лагічна, хоць гэта ўжо зусім куча кавалачкі галаваломкі гэта проста кажу, што, калі я ударыў прабел, Што я павінен зрабіць, каб зменнай называецца прыглушаныя? Змена яго ад адзінкі да нуля, або нуля да адзінкі. Вось і ўсё. Так што гэта як павярнуць выключальнік святла або выключыць і памятаючы, з зменнай, то я зрабіў гэта. Між тым, на правым баку, у З пункту гледжання непрафесіяналы, якая мэта Сцэнар справа? Студэнт: Для прайгравання гуку марскі леў. DAVID малая: Для прайгравання гуку Sea Lion, калі ён не адключаны, па прырода гэтай зменнай. Такім чынам, мы дзелімся дзяржава, так бы мовіць, абмену інфармацыяй паміж гэтымі двума скрыпты, таму што, заўважыць тут, мы назаўсёды, выканаўшы наступныя дзеянні. Калі прыглушаныя роўная нуля, так што калі гэта не адключаны - Калі прыглушаныя ілжыва, то гуляць гэты гук Sea Lion. І думаеце пра сябе: Прывітанне, прывітанне, прывітанне, для двух секунд, пачакайце некалькі секунд, а затым праверце яшчэ раз. Так што калі мы цяпер пойдзем сюды налева, туды, дзе гэты хлопец, і трапіў у зялёны сцяг, [SEA LION SOUND] DAVID малая: У які момант гэтым атрымаць сапраўды раздражняе? Таму што гэта будзе проста працягвацца вечна. Так што часам, бясконцыя цыклы, так бы мовіць, з'яўляюцца наўмыснымі. Але ў гэтым выпадку, як толькі я Націсніце прабел, ён спыняецца. Цяпер праграма не паліць. Ён па-ранейшаму працуе ў гэтыя завесы. Але калі я атрымаю прабел зноў - [SEA LION SOUND] DAVID малая: Ён збіраецца забраць , Дзе ён спыніўся. Так што ёсць толькі адзін шлях для нас зрабіць что-то зноў і зноў, але, што час, толькі ўмоўна. Ну, пакуль мы ў гэтым ключы вядзення рэчы зноў і зноў, дазвольце мне перайсці ў іншы такі прыклад. Гэта той, які мы будзем называць лічыць авечак. І звярніце ўвагу, што гэты хлопец робіць. Гэта на самай справе трохі больш як псевдокод мы гулялі з па Асяроддзе, у якой ён устанаўлівае некаторыя лічыльнік, думаць пра гэта, як н раз, каб нуля, ён заўсёды выконвае наступныя дзеянні. Ён кажа, што значэнне лічыльніка для аднаго Па-другое, чакае другога, а затым змяняе значэнне лічыльніка на адзінку. І ў гэтым кантэксце, што толькі значыць, павялічвае яго. Такім чынам, ён дадае да яго адзінку. Так што гэта ў літаральным сэнсе - гэта не зусім тое, што мы думаем як лічыць авечак. Гэта авечак рабіць падлік, назаўсёды, з нуля. Так што мы можам зрабіць тое ж самае ёсць, лагічна. Але цяпер давайце паспрабуем прыбраць некаторыя з гэтых рэчаў. Дазвольце мне ісці наперад цяпер у простае прыклад, калі наша котка проста будзе кашляць. Добра, так што тут у нас ёсць кашаль 0 - Кампутар навукоўцы пачынаюць лічачы ад 0. Так што гэтая котка проста будзе кашляць тры разы. І вось як я рэалізаваў гэта. Калі зялёны сцяг націснутая, кашаль, чакаць, кашаль, пачакай, кашаль, пачакай. І я зрабіў гэта проста перацягваючы і падзенне частак галаваломкі. Ці, калі вы пачынаеце важдацца з нуля, вы ўбачыце, вы можаце на самой справе дубляваць кавалкі так, што вы можаце зрабіць рэчы больш хутка, без перацягвання і зніжаецца да млоснасці. Але мы не на лепшым шляху тут. Таму што як я магу прымусіць яго кашляць ў чацвёрты раз? Ну, я мог сартаваць спусціцца тут. Я мог паўтарыць, а затым ўстаўце гэты там. Як мне прымусіць яго кашляць ў пяты раз? Ну, скапіруйце і ўстаўце зноў. Ці Drag & Drop зноў. І вельмі хутка, гэтая праграма пачынае каб атрымаць сапраўды, сапраўды залішнім, вельмі доўга, але на самой справе нецікава. Але ёсць спосаб, каб ачысціць гэта. Што відавочным чынам каб ачысціць гэта? Добра, такім чынам, мы маглі фактычна сапраўды пайсці , І, калі вы патрапілі ў прасторы бар, мець яго кашляць. Але калі я проста хачу зрабіць што-то гэта зноў і зноў нагадаць, што ў нас ёсць некаторыя кіраўнікі канструкцыі. Дазвольце мне перамясціць гэта з Шлях, пад кантролем. Дазвольце мне зрабіць паўтор, скажам, тры разы. А цяпер дазвольце мне выкрасці гэтыя кавалачкі галаваломкі. Дазвольце мне прывязаць гэта тут. Дазвольце мне кінуць гэта далёка цэлым. І зараз, у мяне ёсць лепшая распрацаванай праграме. Чаму? Калі я хачу змяніць колькасць разоў гэтая котка кашляе, усё, што трэба зрабіць, гэта змяніць адну зменную, або адно значэнне, а ад трох, да чатырох, або пяць ці шэсць. Ці я мог бы зрабіць што-то ўмоўна, нават з прасторай бар, калі б захацеў. Такім чынам, гэта агульны прынцып. Як толькі вы пачынаеце капіявання і ўстаўкі кода, будзь то ў нуля, або ў C, вы робіце нешта няправільна, хутчэй за ўсё. Або па крайняй меры, як толькі вы перавысілі некаторых разумныя колькасці копій і пасты, вы, верагодна, робіце нешта няправільна. Але вы ведаеце што? Я не вельмі люблю гэта. Гэта не самы чысты дызайн. Я хацеў было паззл называецца кашляю, таму што тады я б не стаў павінны рэалізаваць гэта сам, па-старому, па то, кажуць, і чакаць - Што рабіць, калі яны былі проста кавалак галаваломкі кашаль. Ну, я магу на самой справе зрабіць гэта. Адпусціце мяне ў больш блокаў, націсніце Зрабіць Блок, і цяпер я атрымліваю гэтую вокны тут. Я буду называць гэтую рэч кашаль. Я збіраюся ісці наперад і націсніце кнопку ОК. А цяпер апавяшчэнне, я атрымліваю новую адпраўную кавалак, які выгнутая ў верхняй частцы. І тое, што я збіраюся рабіць з гэтым, я збіраецца проста выкрасці гэтыя блокі. Я збіраюся іх тут. І цяпер, з гэтых трох частак, у мяне рэалізавана тое, што я буду называць функцыі або працэдуры, ці некаторыя з Вы маглі б ведаць яго ў якасці метаду. Нязначныя адрозненні паміж словамі. Але цяпер, давайце проста называюць гэтую функцыю. Гэта проста новая частка галаваломкі. Цяпер яна рэалізавана наступным чынам. Але заўважце, што драпін даў нам фізічнае ўяўленне, што ўвесь блакаваць тут. Так што цяпер, я магу проста перацягнуць сюды, кажуць, паўтарыце тры разы, а тое, што адбудзецца цяпер, калі я гуляю гэты сцэнар, толькі адна праграма працуе адначасова. Там толькі адзін, калі зялёны сцяг націснуў. Але, што фіялетавы блок пад назвай кашаль эфектыўна казаць нуля, кожны раз, калі вы бачыце, што паззл, на самай справе выканання гэтых крокаў, якія я вырабляў рэалізацыю ўручную. Так што гэта збольшага ахайна. Але цяпер, выкажам здагадку, што я вырашыў, я не хочам, каб гэтая котка проста кашляць. Я хачу, каб ён мог чхнуць, а таксама. Ну, як мы маглі б ісці аб рэалізацыі чхаць? Ну я мог бы ў значнай ступені зрабіць тое ж самае. Я мог бы зрабіць яшчэ адзін блок. Я мог бы назваць гэтую чханні, націсніце кнопку ОК. Затым тут я мог фактычна былі, дазвольце мне дубляваць гэты - і там, дзе вы павінны адчуваць сябе Вы, верагодна, не рабіць нешта ў лепшы спосаб. Я мог бы сказаць нешта накшталт: Achoo, на працягу адной секунды. Пачакайце адну секунду. Цяпер у мяне ёсць новы блок пад назвай чхання. І сапраўды, гэта так. Але гэта таксама павінны пачаць адчуваць сябе - можа быць, ня першы тыдзень класа, але на другім - проста трохі залішнім. Відавочна, ёсць некаторыя залішняе. Такім чынам, дазвольце мне прапанаваць, замест гэтага, што мы ўдакладніць гэта вызначэнне наступным чынам. Адпусці мяне да майго меню Файл. Я не збіраюся, каб захаваць гэтую версію. Я збіраюся пайсці ў адну з мае гатовыя файлы тут. І я збіраюся ісці наперад і адкрыць кашаль 2. Ой, што было 2 кашаль. Дазвольце мне ісці наперад і адкрываць кашаль 3, якіх гэта зыходны каталог. Кашаль 3 і заўважыць - О, я сказаў гісторыя ў няправільным парадку. Дазвольце мне акрыяць ад гэтай гісторыі. Гісторыя, якую я хацела сказаць Канцы з кашлем 4 - там гэта. Так што, калі я, замест гэтага, вызначыць больш паззл называецца вызначыць, скажам, слова п раз. Чханне проста, па-відаць, У нуля, Achoo. Такім чынам, мы выказваем яго як слова, проста таму што гэта абмежаванне праграмы. І кашаль [кашаль], але кашаль, З-О-U-G-H. Дык вось ўсяго два іншымі словамі рабіць, па сутнасці, тое ж самае. Так што я магу рэальна зрабіць Новы блок, як гэта. Я не выкарыстоўваў гэтую опцыю меню раней. Але калі вы пяройдзеце Зрабіць Блок, Вы можаце выбраць некалькі варыянтаў. І вы можаце сказаць, што гэта на самай справе блок займае некаторы уваходаў, у адваротным выпадку Вядома якасці аргументаў або параметраў, так што вы можаце змяніць паводзіны Ваш блок. Так што я зрабіў крыху раней было Я назваў гэты блок сказаць. І тады я сказаў, яна займае уваходнай радка. А цяпер звярніце ўвагу, па змаўчанні, ён кажа радок 1. Радок гэта проста слова, або Фраза, для нашых мэтаў. Але я проста хачу паставіць некаторыя замяшчаюць тэкст там, як і ў вэб-сайт, калі вы бачыце імя карыстальніка або пароль, а затым ён знікае, калі вы пачынаеце друкаваць. Вось і ўсё, што ёсць. А цяпер я збіраюся дадаць нумар ўваходу. І я буду называць гэта N - але гэта даволі адвольна. А потым проста пазнаку, проста каб пераканацца, гэтага блока крыху больш упэўненасці тлумачальныя - раз, гэта тое, што я толькі што зрабіў. І канчатковым вынікам з'яўляецца тое, што я атрымліваю блок, які выглядае наступным чынам. А цяпер звярніце ўвагу, я выкарыстоўваю Паўтарыце блока. Але замест жорсткага кадавання тры, я перацягвання N ў там, таму я можа параметризуют функцыі. Я магу зрабіць гэтую функцыю зрабіць што-то рознае колькасць разоў на аснове гэта значэнне. І звярніце ўвагу, скажам, гэта тое, што я зрабіў Пры гэтым, калі я перацягнуць слова, я не магу сказаць, жорстка словам, але ўсё, перадаецца на працягу адной секунды. Між тым, як я паўторна рэалізаваць кашляць? Я замест гэтага вызначыць, як кашаль кажучы кашаль N раз. Карацей кажучы, я іду праз гэтую хутка, але асноўная ідэя ў тым, як толькі як вы пачынаеце бачыць у вашай праграме што, пачакай хвілінку, я зрабіў зусім, як гэта раней, я магу вынесці за дужкі некаторыя агульныя функцыянальнасць? Ці магу я раскладацца, што я раблю у некаторыя асноўныя ідэі? Гэта тое, што мы робім тут. І я гэтыя рэчы складзеныя, візуальна, -над адзін аднаго , Таму што гэта сведчыць, што ідэя пачынаючы з двайковай, збіраецца ASCII, робіць графічныя праграмы, накшталт напластаванні ўсё больш складаных ідэй -над адзін аднаго. Тая ж самая ідэя тут. Я пачаў з нуля, ўкараненне кашаль, потым зразумеў, кашаль на самай справе проста кажа што-то. Такім чынам, дазвольце мне замест рэалізацыі Паняцце кажа што-то. І ў дадатак да ўсяго, я магу ажыццяўляць Achoo ці кашаль? І мы маглі б зрабіць больш такіх яшчэ варыянты. Так што з гэтай асноўнай прынцып, мы можам пачаць рабіць ўсё больш складаных праграм. Дазвольце мне адкрыць гэты. Мы можам на самай справе ёсць некалькі спрайтов ўзаемадзейнічаюць на экране адначасова. Калі я іду ў мой зыходны каталог і захапіць адзін званыя тэмы, нагадаем, што паток проста сапраўды здольнасць з двух сцэнарыяў запускацца сумесна баку адначасова. Звярніце ўвагу, зараз, ёсць і птушкі і спрайт котка спрайтов, абодва з якіх маюць уласныя сцэнары. Так паведамлення, калі я націскаю Котка, я атрымліваю гэтыя сцэнары. Калі я пстрыкаю па птушцы, Я атрымліваю гэтыя скрыпты. Такім чынам, кожны з гэтых хлопцаў ёсць сваіх уласных праграм. Калі я цяпер націсніце зялёны сцяг, звярніце ўвагу што тое, што гэтая праграма робіць гэта ёсць котка, неверагодна Павольна, Чэйз птушкі. Але кошка мае тое перавага, што запраграмаваны такім чынам што незалежна ад таго, дзе птушка ёсць, кот ідзе да яго. Мы можам гуляць у гэтую гульню нашмат хутчэй. Так што, калі я знаходжуся на котку, заўважылі, што я выкарыстоўваючы, скажам, перамясціць адзін крокаў. Давайце яму рухацца ў пяць крокаў час, так што пяць кропак адначасова. Дазвольце мне пстрыкніце Прайграванне. [Роў LION'S] DAVID малая: Добра, зараз мы можам сапраўды даць котцы перавага. 10 крокаў за адзін раз. [Роў LION'S] DAVID малая: Ну, добра, вельмі хутка, яна атрымлівае невялікую перавагу для коткі. Але я махаю рукой некаторыя дэталі. Аднак прычына, па якой гэты шлях пачынаючы трохі кожны раз розны з'яўляецца тое, што я раблю трохі выпадковасці. Я на самой справе паказваючы ката ў іншым кірунку ў залежнасці ад месца я хочаце яго пачаць, так што кожны раз, гульні, або анімацыю, крыху па-іншаму. Зараз, дазвольце мне прадставіць аднаго Тут іншая канструкцыя. Таму ў дадзеным выпадку, у нас была функцый. Там жа будзе паззл вядомы як масіў ці спіс, , Якая дазваляе захоўваць некалькі Значэнні ўнутры зменнай. Мы бачылі, тэмы, і цяпер ёсць падзеі. Дык вось падзеі з дапамогай гэтыя два хлопцы тут. І калі я адкрываю файл з імем падзеі прыклады з сённяшняй, мы будзем гл. праграму, якая выглядае трохі як гэта. А цяпер звярніце ўвагу гэтага хлопца - так заўважыце, што я сіні Маппет націску - ён толькі робіць наступнае. Ён не ёсць адзін з тых зялёныя часткі галаваломкі сцяга. У яго ёсць, калі я атрымліваю падзея - таму некаторыя адвольныя слова. Я толькі што ўвялі мерапрыемства там - ён збіраецца сказаць, Polo, працягу двух секунд. Так што тыя з вас, хто знаёмы з гэтай гульнёй можа ведаць дзе гэта адбываецца. Калі б я цяпер глядзіце на сайце Маппет, яго праграма робіць гэта. Forever, калі бар клавіятуры прасторы падаўлены, ён збіраецца сказаць, Марка, на працягу двух секунд на экране. Але ён таксама збіраецца выкарыстоўваць гэтую аматар блакаваць вядомыя як трансляцыя. Ён будзе транслявацца цытатай канец цытаты, "падзея". Між тым, сіняга чалавека, нагадаем, з'яўляецца для праслухоўвання ў двукоссі, "падзея". Так ці інакш, у цяперашні час, мы можам мець два спрайт ўзаемадзейнічаюць. І калі мы дабяромся да вэб-праграмаванне, пазней у той жа тэрмін, як і гэта будзе выгадна мець свой сайт зрабіць нешта ў адказ, для Напрыклад, пры націску на клавіятуры. Такім чынам, дазвольце мне ісці наперад і націсніце прабел. Аранжавы хлопец кажа Марка. Сіні хлопец кажа Пола. Калі я зраблю гэта зноў аранжавы хлопец кажа: Марка, сіні Хлопец кажа пола. Такім чынам, давайце зробім яшчэ адзін крок наперад. На гэты раз, мы пойдзем, напэўна, яшчэ некалькі хвілін тут. Ці ёсць у нас - настольная лямпа, давай ўніз. Вы маеце рацыю на канцы. Добра, вы можаце не толькі прыдумаць. У нас ёсць настольныя лямпы для ўсіх. Пойдзем. Я не ведаю, калі мы зможам захаваць гэта смешна кляп да ўвесь семестр, аднак. Добра, давай ўніз. А тым часам, у нас ёсць Наступныя прыклады, каб падцягнуць, проста каб паскорыць рэчы цяпер такое, што мы ёсць праява ад іншага Папярэднік ваш дапамогай ж асноўныя будаўнічыя блокі. Як цябе завуць? Джон: Джон. DAVID малая: Джон. Прыемна, што ты. І? SETZ: Setz. DAVID малая: Setz, прыемна мне, што ты. Джон, калі вы хацелі б прыехаць у першую чаргу, гэта старая Школа гульню пад назвай Frogger. Вы карыстаецеся клавіятуру для гэтага таксама. І мэта данесці вуліцы і вады. [FROGGER МУЗЫКА І гук прайграваецца] DAVID ня малая: Мне вельмі шкада, няма настольная лямпа для вас сёння. Добра, Setz, ці не так хацелася падымайся? Добра, давайце зробім гэта зноў. SETZ: Ці павінен я выкарыстоўваць стрэлкі? DAVID малая: Проста клавішы са стрэлкамі. Уверх, уніз, налева, направа. [FROGGER МУЗЫКА І гук прайграваецца] DAVID малая: Мы будзем называць іх заахвочвальныя прызы сёння, Затым, вельмі добра зроблена. Тут для вас абодвух, Джон і Setz. Віншую, усё ў парадку. Такім чынам, яшчэ раз, так як гэтая гульня гуляе, думаць пра тое, што адбываецца? Адзін з іх, ёсць ясна шмат руху. Але мы бачылі, як з коткай і птушкі, напрыклад, як вы можаце зрабіць ілюзію руху, проста перамясціўшы некаторыя колькасць пікселяў зноў і зноў. І калі ў вас ёсць блок назаўжды, вы маглі б гэтыя аўтамабілі робяць гэта назаўжды. У нас ёсць магчымасць ёсць некаторыя выпадковасці. Так што гэтая гульня не павінна быць сапраўды гэтак жа кожны раз. Тыя часопісы, тыя аўтамабілі, можа пачацца ў невялікай розніцай у часе такім чынам, каб Гульня сама па сабе больш цікавае з кожнай гульні. А між тым, мы бачылі магчымасць слухаць прабелу. Але ясна, што ў драпін, ці не так таксама праслухоўванне уверх, уніз, налева, направа, і сапраўды любую клавішу на клавіятуры. І вы можаце таксама зрабіць некаторыя іншыя рэчы. Дазвольце мне ісці наперад і вярнуцца ў вэб-версіі. Адпусціце мяне ў нашу калекцыю Прыкладаў тут. А пад Мая студыя, відэа, якое , Па сутнасці, у тэчку на scratch.mit.edu. У нас ёсць вэб-версіі Усе гэтыя праекты. І давайце паглядзім, калі я магу атрымаць мае Кампутар супрацоўнічаць тут. Гэта піша адзін з нашых сяброў у Масачусецкім тэхналагічным інстытуце, званы Перамясціць матылькі. І як толькі гэта адкрывае, гэта на самай справе збіраецца выкарыстоўваць больш майго кампутара абсталявання. Драпіны, здараецца быць рэалізаваны са выбліскам. Ўспышка можа пагаварыць з вэб-камеры, Калі ў Вас ёсць. Так што калі я іду наперад і на поўны экран гэтай тут, націсніце, зялёны сцяг, паведамлення што бяспека Flash-паведамленне кажуць, вы хочаце дазваляюць выкарыстоўваць вэб-камеру? Звычайна, Вы павінны верагодна, сказаць Забараніць. Але ў гэтым выпадку, мы будзем казаць дазволіць. Тады я збіраюся расказаць Chrome каб гэта таксама. І цяпер, праз хвіліну, вы бачыце мяне, так-так, мяне. І калі мая рука ідзе ўверх - Я павінен не паварушыць галаву ў той жа час. Там таксама адлюстраванне на экране. Давай, там мы ідзем - вы можаце перамясціць яго на экране, паколькі ёсць таксама кавалачкі галаваломкі - О, вы ведаю што гэта такое, гэта таму, што вы таксама ўбачыць на экране праектара ззаду мяне. Так што ў нас ёсць трохі бясконцага рэч адбываецца. Добра, я буду гуляць тут. Там мы ідзем. Так ёсць і паззл, што кажа, калі вы бачыце рух пад адна з спрайтов, вы можаце мець яго пайсці уверх, уніз, налева, направа ці таму падобнае. Таму ў нас ёсць трохі віртуальнай рэальнасці тут адбываецца гэтак жа, усё ў межах межы майго браўзэра, проста Тут з дапамогай маёй вэб-камеры. Так што тут на гарызонце. Першы набор праблема, як вы ўбачыце, або вэб-сайт будзе выходзіць у інтэрнэт пазней сёння ўвечары ў cs50.net, даволі многае будзе адкрытай. І рэалізацыі праекта драпін прадстаўляць цікавасць для вас, гульні, ўзаемадзеяння, нешта мастацкае, і выклік сабе, каб выкарыстоўваць любую колькасць гэтыя кавалачкі галаваломкі. І гэта можа быць альбо інтэрактыўнага такім чынам. Ці гэта можа быць нешта больш свядома зрабіў, каб распавесці гісторыю. І сапраўды, вось дзе мы скончым з Сёння, калі апошні прыклад. Адпусціце мяне ў Драпіны на мясцовым узроўні. Дазвольце мне ісці наперад і адкрыць гэта, і гуляць адна апошняя праграма, напісаная адным вашых папярэднікаў, а менавіта што тут. Добра, павялічыць гучнасць для гэтага. [Музыка Прайграванне] Апавядальнік: На наступным CS50, Дэвід запрашае добраахвотнікаў на сцэне. DAVID малая: Для гэтай дэманстрацыі, мы збіраемся трэба адзін добраахвотнік. Хочаце давай ўніз? Як цябе завуць? Рухаемся далей.