[Powered by Google Translate] [ROCK MUSIC]
[MUSIC - "Шчаслівыя разам" Чарапахі]
DAVID малая: Сёння мы пачнем наша даследаванне
Асновы інфарматыкі і наша ўвядзенне,
Зараз, у мастацтве праграмавання, якія, які
Толькі адзін прыклад.
Але ў тым жа духу вырашэння праблемы, ведаем, што
Традыцыйны Дзень Puzzle CS50 з'яўляецца заўтра.
Калі вы яшчэ не RSVPed да гэтай падзеі, вы можаце пайсці ў
cs50.net/rsvp.
Вы можаце прынесці каманды з двух, трох ці чатырох.
Вам будзе аспрэчана з праблемамі, як той, які вы бачылі
там у самым пачатку.
Усе новыя праблемы ў гэтым годзе, калі вы прынялі ўдзел у мінулым годзе, і вы
будуць мець магчымасць для таго, каб выйграць некаторыя казачныя прызы.
Сярод іх, Wii і некаторыя падарункавыя сертыфікаты і да т.п.,
Усё тое час, балты з CS50 студэнтаў і аднакласнікаў
і піцу і Facebook.
Так пра гэта заўтра, калі вы хацелі б.
>> У гэтым і складаецца CS50, для тых з вас далучыцца да нас для
першы раз.
І ведайце, што гэты курс асабліва маюць намер атрымаць
Вас праз гэты курс, каб яе канчатковая мэта, у які момант вы
будзе мець не толькі разуменне гэтых
Асновы інфарматыкі, але вы павінны будзеце
гэта вельмі практычны набор навыкаў, якія затым можна забраць у
уласны аддзел, няхай гэта будзе тэхнічных навук,
прыкладная матэматыка, натуральныя навукі, натуральныя
навука, ці таму падобнае.
Сапраўды, тое, што так выдатна аб кампутарнай навуцы гэтыя
дзён у тым, што гэта менавіта так, прыдатныя да
ўсе віды палёў.
І хоць сёння, мы будзем толькі падрапаць паверхню
вельмі традыцыйны мова праграмавання, вядомай як C, мы будзем
Замест глядзець на тое, што называецца Scratch, нешта з
якіх гэтая гісторыя печыва любоў была рэалізавана адна з вашых
папярэднікаў ў мінулыя гады, каб распавядаць гісторыі, ствараць гульні,
для стварэння інтэрактыўнага мастацтва, і фактычна пачаць, каб абгарнуць наш
розумаў вакол некаторых з фундаментальных канструкцый,
ляжаць у аснове праграм, але ў кантэксце, як вы ўбачыце, што гэта
значна менш страшна, што нашмат менш таямніцай, чым вы ўбачыце
ў хуткім часе.
І разумею, таксама, для тых з вас толькі што далучыліся да нас гэтая
семестра, фразы, па якіх мы скончылі лекцыю ў сераду,
гэта не так важна, дзе вы ў канчатковым выніку па адносінах да вашага
Аднакласнікі ў гэтым класе, але дзе вы, да канца семестра
У тыдзень 11, у канчатковым выніку ў адносінах да сябе прама ў той жа дзень.
>> Такім чынам, без далейшых цырымоній, гэта таксама варта адзначыць, што
тых, хто меней зручныя, тыя дзесьці паміж імі, з'яўляюцца
Акрамя таго, у канструкцыі гэтага, вядома, не ў любой недахоп
VIS-A-VIS тым больш зручнымі
ўступленне ў гэтым класе.
Як вы ўбачыце на працягу тыдня, каб прыбыць, у нас розныя
трэкаў для розных задні фон, часткі для тых,
менш камфортна, больш зручныя, тыя, дзесьці
паміж імі.
Як вы ўбачыце ў гэтыя выхадныя і на наступным тыдні, дзве версіі
Найбольш праблема набору ў стандартным выданні і хакерскіх так
што вы ўсё можаце самастойна абраць па шляху, з якім вы
Найбольш зручнымі.
>> Такім чынам, сёння мы паглыбімся ў гэтую праграмаванні
мову пад назвай Scratch.
Гэта графічны мова праграмавання, і ўсё ж яна мае
ж функцыі, некаторыя з моў высокага ўзроўню мы будзем
даследаваць пазней у семестр, у тым ліку і C
JavaScript і PHP.
Але гэта адбываецца, каб дазволіць нам пазбегнуць некаторых адцягваюць
на ранняй стадыі сінтаксісу, такія рэчы, як кропка з коскі, дужкі,
і іншыя таемныя дэталі, якія, на першы погляд, проста не
на ўсіх інтэлектуальна цікавая і, як правіла, атрымліваюць у
шлях ад некаторых фундаментальных разумення.
З пункту гледжання зараз структура падтрымкі наперад, зразумеў, што гэта
Інструмент, CS50 Абмеркаваць, які будзе звязаны з курсу
сайт пазней сёння, з'яўляецца інтэрнэт-форуме абмеркавання ў
якіх вы зможаце задаваць пытанні адзін аднаму і
персаналу, і гэта таксама інструмент, як мы ўбачым на наступным тыдні,
якія мы будзем выкарыстоўваць даволі integratedly ў
працоўны час, а таксама.
Сапраўды, гадзіны працы пачнуцца ў панядзелак, і, шчыра кажучы, першы
тыдзень у непрацоўны час даволі нізкі ключ.
>> Я не думаю, што вы знойдзеце драпіна усё, што даступна.
Гэта даволі відавочныя, як мы ўбачым, і так, што
мы будзем выкарыстоўваць гэта на сённяшні дзень з'яўляецца выманне некаторых з
Асноўныя ідэі, якія, затым, захоўваюцца на працягу ўсёй
Астатняя частка семестра.
Але, пачынаючы з панядзелка, ў 8:00 вечара па 11:00 вечара будзе
Прыёмныя гадзіны ў Annenberg над мозгам перапынку.
Секционирование 2 пачнецца гэтым вечарам, так што ўжо ў гэтым
выходныя, перайдзіце на cs50.net/section, і вы будзеце
быць зададзены шэраг пытанняў.
Сярод іх, як бы вы апісалі вашу
ўзровень камфорту на сённяшні дзень?
Там няма жорсткага, хуткага правілы адносна таго, хто, у якім вядро.
Гэта проста такая штука, што вы, верагодна, ведаеце, калі вы
Сярод тых, хто менш камфортна ці не.
>> І цяпер, пакрокавыя кіраўніцтва.
Спецыфікацыя праблема набору на гэтым тыдні, як стандартных,
і хакерскіх выданні, так, цяпер на cs50.net як цяпер.
І вы ўбачыце, што першы з гэтых выданняў,
Standard Edition кожны тыдзень, суправаджаюцца тое, што мы
тэлефануйце код кіраўніцтве сесіі на чале з адным з
выкладанні курсу стыпендыятаў для Вас праз, забяспечваюць
Саветы па, і вы атрымаеце ўніз, асаблівы шлях, калі гаворка ідзе
для пачатку гэтыя праблемы мностваў.
Такім чынам, з кожнай з гэтых праблемных устанаўлівае, калі вы ніколі не жадаючых
для сябе, дзе я магу пачаць, вы пачынаеце з гэтым
пакрокавыя кіраўніцтва.
І на самай справе, дазвольце мне прадставіць Zamyla Чан, гэта
выкладанне годзе чалавек, які будзе кіраваць кожным
аднаго з гэтых мінанняў.
Zamyla?
>> [Апладысменты]
ZAMYLA CHAN: О, прывітанне, усім.
Мяне клічуць Zamyla.
Я малодшы вучыўся на інжынера ў Winthrop дома.
Але я стараюся і ўсталяваць за многія камп'ютэрныя навукі курсы, як я
можа, менавіта таму я вельмі рады быць вядучым гэтага
год пакрокавыя кіраўніцтва.
Праходжання, для мяне былі неад'емнай часткай маёй CS50
вопыт.
У кіраўніцтве для кожнай р-мноства, мы пройдзем
Праблема устаноўлены разам, глядзець на праблемы, выгляд
падзяліць іх на кіраваныя укусаў.
Я дам вам парады, метады, для атрымання
да канца і прыступіць да працы.
Я спадзяюся, што ўбачу ўсіх вас на пакрокавыя кіраўніцтва.
Калі вы не можаце зрабіць гэта ў твар, то
калі ласка, мелодыю ў Інтэрнэце.
>> DAVID малая: Выдатна.
Дзякуй, Zamyla.
Так разумею, што пакрокавых кіраўніцтваў, сапраўды, у пятніцу
днём, але гэта наўмысна дызайну, так што
нават калі вы не жадаеце наведваць заняткі ў пятніцу
Днём, відэа будзе ўсё хутчэй больш
у выхадныя дні.
Так разумею, што cs50.net будзе ўсё ў Zamyla
пакрокавыя кіраўніцтва.
І што ёсць сённяшняя дата і час, 3:00 PM
Harberd Hall, 104.
І некаторыя з навучанні стыпендыятаў таксама падрыхтавалі
некаторыя заўвагі для вас завочна, каб даць вам крыху
пункту гледжання аб тым, што іх вопыт і ўступленне ў
выходзячы з CS50 быў.
Такім чынам, калі мы маглі б цьмяны святло на імгненне, я даю вам
Некаторыя з супрацоўнікаў CS50 ст.
>> JACKSON Steinkamp: Я ўзяў CS50 ў мінулым годзе, на першым курсе ў
ўпасці, і гэта абсалютна падарваў мой розум.
Я ніколі не прымаў ніякага праграмавання класаў і раней,
і ніколі не вярнуўся з любога кампутара навукі
вопыту.
І толькі я пачуў шум з нагоды класа і
вырашыў прыняць яго.
>> JULIA Мительман: Гэта было сапраўды весела, вельмі цікавым.
Я да гэтага часу, і па гэты дзень -
Я толькі нядаўна ўбачыла ў мяне ёсць дыскета, што Давід даў нам
на наш першы дзень лекцый.
Я павесіў яго на сцяну.
Гэта, напэўна, крыху тармазной, але я вісеў на маёй
сцены ў класе ў якасці напамінку аб тым, як халаднавата было.
>> TRAVIS DOWNS: Гэта так няёмка.
>> JACKSON Steinkamp: Кампутарныя навукі з'яўляецца тое, што вы
павінны паспрабаваць, нават калі вы не з тых,
традыцыйнай навукі.
Гэта ўласны вопыт, і CS50 будзе пераканацца, што вы
падтрымліваецца таксама праз яго з яго цэлая армія TFS.
>> ALI нама: Я прыняў гэта як на першым курсе, і таму я зрабіў шмат
новых сяброў.
Я таксама пазнаёміўся з гэтым усё канцэнтрацыю і
Увесь інжынернай школе, і я вельмі рэкамендую яго
і вітаць Вас на нашым CS50 сям'і.
>> Янив YACOBY: CS50 толькі навучыць вас, як выкарыстоўваць інструменты
, Якія з'яўляюцца шырока даступнымі.
Вам проста патрэбен ноўтбук, неабходна вэб-браўзэр, і вы
трэба навучыцца пісаць код, і вы сапраўды можаце пабудаваць
акуратныя рэчы.
>> KAREN XIAO: Гэта так выдатна мець магчымасць зрабіць нешта
і ёсць людзі выкарыстоўваюць яго, а людзі гэта бачаць, і гэта
Што я сапраўды люблю пра гэта.
>> Цім Маклафлін: - пачуццё агульнасці, я думаю, у гэтым
вядома, больш, чым любы іншы курс я ўзяў да гэтага часу.
Вы не проста з другога -
Вы не запаўненнем іншым патрабаванням.
Вы не проста збіраецца лекцыі і збіраецца раздзеле.
Але вы робіце тоны рэчаў, якія ўсё
праграмаванне і ўсё аб тэхналогіі, але гэта не
сапраўды адчуваю, што клас вялікую частку часу.
>> TRAVIS DOWNS: І ў першы дзень, яны раздалі торт, і
Я быў імгненна распрададзены.
>> JACOB PRITT: Бесплатные прысмакі і піцу.
>> ZAMYLA CHAN: - незалежна ад вашых інтарэсаў узроўні, я думаю,
што CS50, вы будзеце мець задавальненне, і вы будзеце інтэлектуальна
стымулюецца.
>> MARK GROZEN-Сміт: Гэта заўсёды вечарыне ў класе, і гэта
вечарынка кожную ноч працуюць над вашым р-мноства.
>> JACKSON Steinkamp: Кожны раз, калі вы скончыце праблема набору, вы
будзе адчуваць сябе, як вы скончылі праект.
>> MELISSA NIU: Гэта быў першы год, і я зрабіў пакупкі.
У мяне былі чатыры класа гатовыя, і я быў у Annenberg.
І я натрапіць на аднаго, і ён кажа, эй, я раблю пакупкі
гэтага класа называюць CS50, і вы павінны пайсці са мной.
Скончылася тым, што, што восень, а пасля гэтага класа, я
падумаў, што я збіраюся непаўналетняга ў CS.
Але вось я, праз тры гады, яшчэ вучачыся кампутара
навука і фактычна робяць гэта ў якасці асноўнай, і я любіў кожную
Момант яго.
>> ROB Боуден: я паняцця не маю.
>> ALI нама: Давайце паглядзім.
>> MELISSA NIU: Вар'яцтва.
>> Выступоўца 1: Я адчуваю, што я быў бы вельмі клішэ.
Я проста кажу, быццам бы, дзіўны.
>> Янив YACOBY: Даступнасць.
>> JACOB PRITT: Бесплатные прысмакі і піцу.
>> TRAVIS DOWNS: Не магу адмовіць класа, які раздае торт.
>> Цім Маклафлін: Энергетыка.
>> Vipul Шехават: Essential.
>> ROB Боуден: Дазвольце мне прыдумаць адказ.
Я думаю, што ёсць нешта.
О, божа.
Так, Роб мяне завуць Боуден, і гэта CS50.
>> [Апладысменты]
DAVID малая: Добра, давайце пачнем маляваць карціну
напрамкі, у якіх мы можам пайсці, і давайце пазнаёмімся
гэтая канцэпцыя вядомая як тут псевдокод.
Так псевдокоде гэта не праграмаванне
Мова сам па сабе.
У гэтым няма нічога тэхнічных сама па сабе, але гэта ўсяго толькі свайго роду
агульны спосаб выказаць сябе даволі дакладна,
алгарытмічных даволі, даволі працэдурна, але без
турбуючыся аб тым, якую мову вы выражэнні
сябе цалі
Гэта некаторыя мадэлі англійскай мовы і моў праграмавання з
якое вам пашчасціла быць знаёмым, так што мы можам пачаць
напісанне такога роду рэчы, як мы ідзем.
І на самай справе, Іосіф, я магу пазычыць вам на сцэну, каб быць
пісец тут?
Я пайшоў наперад тут загадзя і забыўся надзець
на некаторых шкарпэтак сёння, і гэта будзе сярод нашых больш
смешныя прыклады.
>> Цяпер, ты мне патрэбен тут.
Я зраблю шкарпэткі частку.
Такім чынам, у нас ёсць трохі нататніка.
Гэта літаральна TextEdit ў Mac.
Мы на самай справе не збіраўся напісаць праграму якая працуе, але
мы толькі збіраемся пачаць накідваць на аснове псевдокод
па некаторых парадаў вы дае мяне тут.
Дык вось мой кучу шкарпэтак дома.
У мяне няма шкарпэтак, калі я прачынаюся раніцай, і мы зараз
трэба напісаць праграму, алгарытм роду, з якім
каб атрымаць гэтыя шкарпэткі на нагах.
І на гэтым шляху, давайце паглядзім, калі мы спатыкнуцца, або сутыкнуцца,
некаторыя з ідэй, якія вы будзеце мець, каб пачаць
думаць аб значна больш сур'ёзна, пры праграмаванні
каб вашы праграмы не паводзяць сябе зусім па прызначэнні.
>> Так што я сяджу тут.
У мяне ёсць куча шкарпэтак.
Што першае, што разумнае чалавечае істота будзе
рабіць, калі мэтай з'яўляецца пакласці на пару шкарпэтак?
Хтосьці даў мне адзін крок, і толькі адзін крок.
Да?
Аўдыторыя: Сагніце ўніз.
DAVID малая: нагнуцца, добра.
Крок другі.
Аўдыторыя: Падніміце свой шкарпэтку.
DAVID малая: Падніміце свой шкарпэтку.
Такім чынам, невялікае двухсэнсоўнасці тут, і гэта з'яўляецца адным з першых
каменем перапоны, што мы павінны свядома
сустракаемся тут.
Гэта крыху неадназначным, так забраць свой шкарпэтку.
Добра, я вазьму гэта адно, а кампутар, разумеюць, усяго
біт, не будзе мець такога роду чалавечага інстынкту проста
выбраць бліжэйшы да вас.
Мы збіраемся мець, каб пачаць, у хуткім часе, выказваючы
сябе больш дакладна.
>> Добра, другі крок, гэта забраць вашыя шкарпэткі.
Мы возьмем яго.
Крок трэці.
У задняй часткі.
Аўдыторыя: Знайсці прыдатную пару.
DAVID малая: Знайсці прыдатную пару.
Такім чынам, гэта добра.
Я павінен быў выбраць гэты шкарпэтку.
Такім чынам, мэтай з'яўляецца знайсці падыходны насок, зараз, але тое, што
што гэта значыць?
Разумнага чалавечага істоты, як і ў сераду, калі я толькі
ведаў, як знайсці Mike Smith у тэлефоннай кнізе, толькі выгляд
пайшоў са сваім інстынктам.
Але тут, гэта відавочна, што гэта шкарпэтку тут, але кампутар
Не будзе так інстынктыўна.
Кампутар будзе мець набор бітаў, як мы
абмяркоўвацца ў сераду, і тыя
арганізавана как-то ў памяці.
Але справа ў тым, што кампутар мае толькі здольнасць
глядзець на рэчы па адной за раз, і на самай справе, нават мы
людзі - нават калі ён адчувае, як я паглядзеў уніз і раскол
Секунду праз я ведаю, дзе насок, мой мозг і вочы
Меркавана зрабіў хуткі абястлушчанае тых шкарпэтках, а затым замкнёнай
на кожнае пытанне.
>> Такім чынам, калі мы будзем усё больш мэтанакіраванымі цяпер, як кампутар,
Як мне знайсці гэтага прыдатную пару?
Ну, у нас ёсць для перабору.
Мы павінны, магчыма, цыкл па гэтай мешаніне шкарпэткі
падлогу якой я кажу нешта накшталт ДЛЯ КОЖНАГА шкарпэтку, падняць яго
ўверх, а калі ж форму і памеры, як і іншыя адзінкі, то
кропка, кропка, кропка, мы будзем працягваць гэтую гісторыю.
Такім чынам, для кожнага шкарпэткі, таму я падымаю гэты.
Я правяраю гэта роўна гэта.
Гэта не так, таму я адклаў боку.
Тады я ітэрацыі зноў.
Гэта адзін роўнымі?
Не, гэта не так, таму я адклаў яе ў бок.
Ці з'яўляецца гэта?
Няма.
Гэты?
Не, і гэтак далей.
І, нарэшце, спадзяюся, я буду сутыкнуцца з гэтай шкарпэтку тут.
Так што, калі гэта той жа формы, памеру, вазьмеце яго.
>> А цяпер, што б быць наш наступны крок тут?
Да?
Аўдыторыя: Вызначыць правае ад левага.
DAVID малая: Добра, вызначыць правую і левую, так
На шчасце, такога роду работ.
Трохі сіметрычны, ці я проста насіць іх такім чынам.
Добра, я вызначыў права.
І цяпер, перш чым мы пачнем, дазвольце мне адзначыць, што Іосіф
рабілі тут як свайго роду разбіраюцца праграміста.
Такім чынам, яшчэ раз, няма ніякіх адзін з спосабаў зрабіць гэта, але толькі за межамі
Нумарацыя радкоў, Іосіф ўжо пачалі гэта рабіць
накшталт водступу.
Сапраўды, гэта вельмі распаўсюджаная канвенцыі ў галіне праграмавання,
якім Калі вы робіце нешта итерационный, цыкл стылю, як
Мы якое разумее з ангельскай фразы "для кожнага
шкарпэтак, "канвенцыя ў псевдокоде і, як мы ўбачым,
нармальныя мовы праграмавання, гэта проста абзац.
Націсніце прабел некалькі разоў, націсніце клавішу Tab і да т.п.,
так што ўкладзеныя пад "Для кожнага шкарпэткі" з'яўляецца кавалак
Рэчы, якія вы павінны зрабіць у выніку гэтага цыклу.
Так вось усё, што перадачы семантычна.
Цяпер Між тым, "Калі гэта такі ж формы і памеру,"
Тое, што "Вазьміце яго" з водступам далейшым проста азначае, што
гэта адзіная рэч, якую вы павінны зрабіць, калі гэта ўмова,
калі гэта галіна, якая скрыжаванні дарог, на самай справе праўда.
>> Так што зараз тут, мы знаходзімся на чацвёртым этапе, вызначыць правую і левую.
Я вызначаны правы.
Дайце мне Крок пяты.
І тэхнічна, мы маглі б сапраўды назваць
для кожнай рэчы -
Вы, верагодна, варта нумараваць усе радкі, калі
мы збіраемся гэта зрабіць.
Язэп: [неразборліва]
DAVID малая: [неразборліва]?
Добра, добра, добра, мы зробім гэта ваш шлях.
Добра, так што крок пяці гадоў, як мы гэта робім правы шкарпэтку?
Як мы можам перайсці да наступнага, тут?
Да?
Аўдыторыя: Падніміце правую нагу.
DAVID малая: Падніміце правую нагу, добра.
Крок шэсць?
Хутка.
Так.
Аўдыторыя: Знайсці адкрыты канец шкарпэткі.
DAVID малая: Добра, знайсці адкрыты канец шкарпэткі.
Так добра.
Дык вось, калі шчыра, вельмі распаўсюджаны інстынкт будзе проста
пакласці на правы шкарпэтку, але гэта таксама даволі неадназначна.
Калі кампутар або чалавек дакладна ведае, што гэта значыць,
ён не будзе выконваць, што, так вось, у мяне ёсць
знойдзена адкрыццё акцыі.
Крок сем?
Аўдыторыя: націсніце пальцамі ног.
DAVID малая: Touch пальцы.
Такім чынам, зараз мы ідзем -
Добра, я збіраюся прыняць некаторыя вольнасці тут.
Дзякуй.
Крок восем?
Пакладзеце на насок.
Добра, так што цяпер я, думаю, што мы досыць блізка, каб сартаваць прыняць
гэтага дома.
Добра, так што гэта ідзе ўверх.
Я вазьму некаторыя вольнасці з тым, што гэта азначае на самай справе.
Пастаўце шкарпэтку.
Добра, зараз кроку дзевяць?
Аўдыторыя: Пакладзеце нагу.
DAVID малая: Дзякуй.
Крок дзевяць, паклаў нагу, і цяпер мы можам паўтарыць.
Такім чынам, па-відаць, зараз мы можам ісці ў крок 10 і сказаў выяўлення
пакінуў шкарпэтку, але гэта мабыць ўжо зрабілі.
>> І такім чынам, я магу сартаваць, паўторыце гэтыя крокі.
Але такога роду ўзнікае пытанне.
Да гэтага апошні раз мы хацелі паўтарыць нешта, мы
зрабіў гэта ў шмат разоў, зноў і зноў, для
Кожны цыкл, так бы мовіць.
Ці мае сэнс выкарыстоўваць цыкл для таго, каб апрацоўваць як
левы і правы шкарпэтку?
Таму што ён адчувае, як гэтыя аперацыі з'яўляюцца ў значнай ступені
ідэнтычнымі, за выключэннем таго, што адзін пачынаецца тут і адно
Тут пачынаецца?
У нас цыкл, ці ж мы проста працягваць пісаць крокаў
10, 11 і 12?
Аўдыторыя: Loop.
>> DAVID малая: Добра, так цыкле.
Я на самой справе сказаў бы проста працягваць ісці.
Дык чаму ж гэта так?
Ну, гэта на самай справе першы з нашых невідавочным
праектных рашэнняў, а на самай справе, адна з метрык, з якімі
мы пачынаем ацэньваць, для сябе і для вас,
Якасць праграмы, наколькі добра распрацаваная яна ёсць.
Вы зрабілі мінімальнае колькасць працы, неабходнай для
атрымаць працу хутчэй за ўсё, альбо ў выглядзе
Ваш час або ў тэрмінах часу працы кампутара?
Колькі аперацый робіць гэта бярэ, каб выканаць?
Так што, магчыма, гэта магчымасць для цыклу, паколькі
Як толькі я пачала капіявання і ўстаўкі, як Язэп эфектыўна
пачнуць рабіць у момант, ты накшталт марнаваць
час, і ты вядзеш сябе ў два разы выразныя.
>> Але ў той жа час, гэта сапраўды толькі два спецыяльных
выпадках, налева і направа.
І калі раней, я мог бы мець 10 або 20 або больш шкарпэткі
куча, гэта вызначана мае сэнс не ёсць 50 ліній
Код кажучы праверыць гэты шкарпэтку, потым наступны,
Затым наступны.
Вось, гэта крыху менш, відавочна, і я б прапанаваў
што мы маглі б пайсці ў любы бок.
Мы можам альбо, што цыкл, хоць ён толькі завесы
у два разы, ці мы можам проста скапіяваць і ўставіць ледзь-ледзь
Тут для таго, каб атрымаць працу.
Але гэтая праграма глючыць, так бы мовіць.
Ён можа мець некаторыя памылкі, памылкі, ці кутняй выпадках, так
кажуць, што мы сапраўды не чакалі.
Нічога пайшло не так на гэты раз, але што пайшло не так
Пры выкананні гэтай праграмы?
Аўдыторыя: Вы не маеце любыя шкарпэткі.
>> DAVID малая: Так не магло быць і шкарпэткі існуе наогул.
Так што давайце лічыць, што кут выпадак.
Такім чынам, калі мы маглі б пракруціць назад да першага кроку, так што крок адзін быў
нахіліцца, так што праверку.
Крок другі, забраць свой шкарпэтку, а затым знайсці адпаведныя шкарпэтку,
вызначыць права.
Мы, быццам бы зрабілі цэлую кучу здагадак, і гэта,
шчыра кажучы, чаму праграма часам краху.
Калі вы праграміст, зрабіў некаторыя здагадкі, як
вядома, там будзе шкарпэткі ці напэўна ёсць адбываецца
каб пакінуць памяць у кампутары, вядома, там збіраецца
быць дыскавай прасторы засталося на цвёрдым дыску -
Ну, а калі вы робіце гэтыя здагадкі, і гэта не так,
На самай справе, рэальнасць, якая ведае, што часам кампутар
збіраецеся рабіць?
А часам, калі вы атрымліваеце які верціцца шар пляжы ці
змёрзлыя вокны і да т.п., вось менавіта таму, што некаторыя
Праграміст не меркаваў, гэтыя так званыя выпадкі куце.
Што яшчэ магло пайсці не так у гэтай праграме?
Да?
>> Аўдыторыя: Вам не прыйдзецца правую нагу і левую нагу.
DAVID малая: Добра, не можа мець як правую нагу і
Левая нага, і таму гэтая праграма не можа быць універсальна
дастасавальныя.
Іншыя?
Залы: Вы маглі б узяў сірату шкарпэтку.
DAVID малая: я бы ўзяў сірату насок, так
несупадаючыя насок, які проста не мае братоў і сясцёр, таму што ў мяне
страціў яго, ён разрываецца, гэта ў мыццё яшчэ, і таму падобнае.
Так што, таксама, на самай справе не былі апрацаваны.
Да?
Залы: Вы, магчыма, ужо шкарпэткі.
DAVID малая: Я, магчыма, ужо шкарпэткі.
Я на самой справе не праверыць.
Калі ў вас няма шкарпэтак, затым зраблю
лініі адзін і два.
А гэта можа здарыцца.
Вы засынаеце з вашымі шкарпэткамі, і да таго падобнае, так
, Што таксама вельмі разумным вуглом выпадак.
А можа быць, адзін другога?
Аўдыторыя: шкарпэтку навыварат.
DAVID малая: Так шкарпэтку навыварат, так што мы зрабілі ніякай памылкі
праверкі, карацей кажучы.
Мы не правяралі, калі дзяржава свету так, як мы чакалі.
Мы не правяралі, калі мы на самай справе знайшоў тое, што мы шукаем.
>> І хоць гэта з'яўляецца свайго роду смешны прыклад
з удзелам шкарпэткі, у рэшце рэшт, гэта менавіта тое,
роду мысленне неабходна мець пры напісанні праграм,
нават у драпін, а таксама ў C, у JavaScript, у PHP,
таму што ў адваротным выпадку, вашы праграмы будуць праяўляць
эквіваленту, што кручэнне пляжны валейбол ці проста даць
недакладныя вынікі.
Так што вялікі дзякуй тут, каб нашы пісцом Джозэфа.
[Апладысменты]
>> DAVID малая: Добра, так у чым жа, у
Сапраўды, кампутарная праграма?
Ну, давайце кінем хуткі погляд на
Прадстаўнік тут.
Такім чынам, гэта праграма, напісаная на мове, званым C. З
даволі стары гэтыя дні, але многія новыя мовы будуюцца
на ім.
Сапраўды, PHP, адзін з вэб-арыентаваных моў, якія мы будзем
выкарыстоўваць бліжэй да канца семестра, сама па сабе мае тое, што называецца
перакладчык, праграма, якая напісана на C, але пра гэта
У многіх тыдняў.
Але ў гэтай праграме, а гэта што значыць напісаць
Праграма, хоць і вельмі просты.
У нас ёсць некаторыя даволі загадкавыя сінтаксісу, але вы можаце
напэўна, здагадаліся, нават калі вы ніколі не праграмавалі раней, што
гэта робіць праграма.
На самай справе, я не ведаю, што Printf ёсць, але, вядома, друкаваць
выклікае ва ўяўленні ідэю друкаваць нешта.
А так так, гэтая праграма ў канчатковым рахунку, будзе раздрукаваць
словы «Hello, World».
>> Цяпер, ці ёсць у вас Mac ці PC або Linux кампутары, шанцы
, Па меншай меры, калі вы запампавалі некаторыя свабодна
даступна праграмнае забеспячэнне, вы маглі пісаць праграмы на
свой ноўтбук на працягу досыць доўгага часу цяпер.
У Mac OS, напрыклад, ёсць такая праграма пад назвай
Тэрмінал, які пастаўляецца з Mac, якія, як правіла, у вашай
Утыліты тэчку, і яна наогул адкрываецца чорна-
белым або белыя і чорныя вокны, на якім у вас ёсць
падкажуць, на якім можна ўводзіць каманды.
Так што гэта на самай справе нагадваюць тое, што кампутары
было раней графічны карыстацкі
інтэрфейсы, GUI, прыйшлі разам.
Зараз, у Windows, у вас ёсць аналагічны механізм у выглядзе
з каманднага радка.
>> Але тое, што я збіраюся зрабіць, так гэта адкрыць, скажам,
TextEdit зноў, так жа праграмы мы выкарыстоўвалі для
псевдокоде хвіліну назад, і я збіраюся ісці наперад і
напісаць сваю першую праграму.
Ўключыць stdio.h, што б гэта ні сродкаў, Int асноўны
пустата, што б гэта ні сродкаў, а затым у сярэдзіне тут,
Е ("Hello, World."). І тады блізка цытаты,
зачыніць хлопец, кропка з коскі.
Цяпер я збіраюся ісці наперад і проста націснуць Command-S. Я збіраюся
ісці наперад і захаваць гэта як hello.c, таму канвенцыі ў
свет праграмавання C з'яўляецца імя файла з кропкай.
Я збіраюся проста пакласці ў хатні каталог Джона Гарварда,
Тут, націсніце кнопку Захаваць, і цяпер я збіраюся перайсці да гэтага
акно тэрмінала, які зноў гэта чорна-белыя радкі
дзе я магу выконваць каманды.
>> Я магу запускаць праграмы, увёўшы сваё імя, а не
падвойнаму пстрычцы значкоў ў звычайным сэнсе.
Але справа ў тым, пра C у тым, што мова, як З першага
прыходзіць у такім выглядзе, тое, што называецца зыходным кодам.
Тое, што выглядае крыху як ангельскую мову, але гэта
Вызначана менш, як англійская, чым псевдокод Язэпа
Хвіліну таму.
Гэта крыху больш складаных.
Здаецца прытрымлівацца некаторых ўзорамі або правіл.
Той факт, што ў мяне ёсць фігурныя дужкі, кропкі з коскай, двукоссі,
вуглавыя дужкі, адчувае, як кампутар прыйшоў з гэтай
роду мову.
Але калі я пайду, зараз, гэта акно тэрмінала, я магу запусціць
каманда, якая збіраецца пераўтварыць зыходны код
так званы аб'ектны код.
Гэта збіраецца канвертаваць Англійская-падобны сінтаксіс для нулёў
і тыя, тыя ж самыя віды з нулёў і адзінак, мы
гаварылі пра асяроддзе.
Зараз, я збіраюся выканаць каманду называюць Clang.
Больш падрабязна аб гэтым у бліжэйшыя тыдні, але гэта праграма з
які я магу пераўтварыць hello.c ў цэлую кучу
з нулёў і адзінак.
>> Зараз, я выканаць гэтую каманду.
Я бег Clang, а потым я сказаў сабе працаваць на гэтым файле
называецца hello.c, які я стварыў хвіліну назад, і
нішто, здаецца, здарылася.
Але на самай справе, калі б я памацаў мой хатні каталог, я хацеў бы бачыць
што гэта глупства імем a.out праграма існуе ў цяперашні час.
Гэта проста імя па змаўчанні для праграмы пры запісе ў
С. Мы можам змяніць гэта ў канчатковым выніку, але a.out з'яўляецца
Назва праграмы я проста ператвараюцца ў нулі і адзінкі.
А цяпер, што гэта нулі і адзінкі, мой Mac, у дадзеным выпадку, ці
вашага ПК з Windows, можна зразумець тыя біты, тыя,
нулёў і адзінак.
І таму, калі я ударыў Enter, я бачу "Hello, World!"
>> Але гэта трохі багі.
Я не зусім сказаць "прывітанне, свет: паветра: - jharvard". Паветра
імя майго кампутара.
Jharvard гэта імя ўліковага запісу, так што я выразна
выключыць з праграмы?
Нейкія радка.
Я не трапіў у эквіваленце Enter або зварот карэткі,
і гэта, зноў жа, сведчыць той факт, што кампутары могуць
толькі тое, што вы кажаце ім зрабіць.
І тое, што я не казаў кампутара рухацца
курсора на наступны радок -
ну, гэта, вядома, не збіраюся проста зрабіць гэта
саманадзейна для мяне.
Так што, калі я вяртаюся да маёй праграме, і я кажу \ п -
Такім чынам, \ п, як мы хутка ўбачым, гэта шлях
якія прадстаўляюць дзіўныя рэчы, як знакі новага радка, рэчы
якія маглі б быць вынікам
ўдару клавішу ўводу.
Але цяпер, проста ведаю, што ўдары Enter ключ будзе
проста зрабіць наш код выглядае дзіўным, так што свет вырашыў, вы ведаеце,
што, каб трымаць рэчы прыгажэй, каб трымаць яго ў адным радку, давайце
проста сказаць \ п ўяўляе новую лінію.
Дазвольце мне захаваеце свой файл, вярніцеся ў акно тэрмінала, і
паўторныя a.out, Enter.
Тым не менш памылкі, але навошта?
>> Аўдыторыя: [неразборліва]
DAVID малая: Так, так што мне трэба перакампіляваць.
Такім чынам, для кампіляцыі праграмы проста азначае, ператварыць яго з крыніцы
код, аб'ектны код, зыходны код нулёў і адзінак.
Цяпер, сам факт, што я ўдарыў захаваць у гэтым TextEdit не мае
, Якія датычацца тых нулёў і адзінак, таму што ў першую чаргу неабходна
Скажыце Clang эй, я змяніў гэтыя радкі кода,
зыходны код.
Вам неабходна аднавіць a.out.
Нішто, здаецца, здарылася, але ў кампутары,
у камандным радку, так што казаць, калі нічога не адбываецца,
Звычайна гэта азначае, што ўсё добра.
Калі нешта здараецца, гэта азначае,
Вы сапсавалі, наогул.
>> Такім чынам, давайце зараз пераходзім да a.out, ды і зараз, у мяне ёсць "прывітанне,
свету ".
А цяпер, што аб гэтых нулёў і адзінак?
Дзе, уласна, такія?
Ну, я не магу сапраўды проста нейкая капацца вельмі
эфектыўна.
Дазвольце мне адкрыць TextEdit.
Вось a.out.
Дазвольце мне ісці наперад і адкрыць гэта, і гэта, мабыць, тое, што мая
Праграма выглядае.
Так што я адкрыў, не hello.c, але a.out.
Але гэта на самай справе не тое, што мая праграма на самай справе.
Зразумела, што гэта свайго роду літарных знакаў.
Я не бачу ніякіх нулёў і адзінак, але гэта
a.out, таму што гэта праграма.
Нулі і адзінкі - але TextEdit, як вынікае з назвы, гэта
гэтак жа, як Нататнік на Windows, гэта проста тэкставы рэдактар, так што гэта
заблытанай ўсе гэтыя нулі і адзінкі, як
калі б яны былі, то якія?
ASCII сімвалаў.
>> Так ўспомнім ў сераду, мы проста прыйшлі да гэтага
адвольнае адлюстраванне лічбаў, або бітаў, на лісты, якія змяшчаюць
алфавіт і знакі прыпынку і да таго падобнае.
Такім чынам, TextEdit, што гэта тэкставы рэдактар ​​скажаючы
гэтыя мадэлі з нулёў і адзінак, якія павінны быць
друк словы, як "прывітанне, свет". Гэта іх адлюстравання
як ASCII, і менавіта таму ён выглядае крыху брудным.
Цяпер, ёсць некаторыя намёкі на правільнасць тут.
Звярніце ўвагу, калі я вылучыць, ёсць намёк на самай справе "прывітанне,
свету ", так што недзе ў гэтай праграме
прапанова, якое я напісаў.
Але давайце ісці наперад і цяпер бачым з іншай праграмай.
Гэта не той, які мы будзем выкарыстоўваць, што часта, але ён таксама пастаўляецца з
Mac і будзе ўнутры CS50 прыбора.
Дазвольце мне ісці наперад і адкрыць з дапамогай праграмы пад назвай XXD.
>> Назад у дзень, большасць праграм былі названы даволі загадкава:
і таму тэндэнцыя працягваецца.
Але-B азначае плюнуць гэтую праграму ў двайковым выглядзе.
Не запусціць яго.
Паказаць мне, як нулі і адзінкі, і гэта C
Праграма, якую мы толькі што напісалі.
Зараз, я, як чалавек тут, я шчыра не ведаю, што
гэтыя розныя ўзоры з нулёў і адзінак ўяўляюць.
Назад у дзень, я, з маім перфакарт і да т.п., будзе
на самай справе трэба паглядзець, што гэтыя розныя мадэлі
01111000, на самай справе ўяўляюць.
Ці яшчэ горш, я павінен быў бы зрабіць штампоўкі або стварэння
з гэтых мадэляў з нулёў і адзінак.
Але цяпер, прыняць на веру, што працэсар, Intel унутры, так
казаць, усярэдзіне ўсе нашы кампутары ў гэтыя дні, ведае,
як інтэрпрэтаваць гэтыя нулі і адзінкі.
А некаторыя нулі і адзінкі азначаюць друку.
Некаторыя нулёў і адзінак азначае прайграванне гуку.
Некаторыя нулёў і адзінак азначае прымаць карыстацкі ўвод з клавіятуры.
Там ўсе віды розных мадэляў, але мы, на шчасце,
як людзі, толькі ў агульных рысах трэба турбавацца аб праграмаванні на
гэта даволі высокім узроўні.
А ў іншых класах CS вы можаце пагрузіцца глыбей і паглядзець
на рэчы, як гэтыя нулі і адзінкі, ці яшчэ
іншага яшчэ.
>> Такім чынам, цяпер давайце пераўтворым гэта.
Давайце рухацца вельмі хутка ад C і рухацца да чаму-то
трохі больш суцяшальныя, крыху больш цікавай, у тым, што
мы можам вярнуць нашу анімацыю, гукі і да т.п.,
ясна, пазбег нас у гэтым
даволі прымітыўны інтэрфейс.
Дык гэта ж праграму ў C можа быць прадстаўлена цяпер у гэтым
Мова праграмавання называецца драпін наступным чынам.
Гэта эквівалент гэтай праграмы прывітанне свет напісаны на
гэты стыль паззл мове пад назвай Scratch.
Такім чынам, дазвольце мне ісці наперад і адкрываць гэтую праграму.
Ён зноў заклікаў да драпін.
Гэта ў вольным доступе, і гэта тое ж самае мы
пачалася сёння на.
>> Так што тут Scratch, і ён разбіваецца на некалькі
розных частак.
На самым верхнім правым куце, у нас ёсць так званыя стадыі, і
Сапраўды, там печыва
выконваецца толькі трохі назад.
І на гэтым этапе, што называецца спрайт, знакаў ці
аб'ектаў або асоб.
Гэта сапраўды не мае значэння, як вы думаеце пра іх, але яны
з'яўляюцца праграмуемымі, рухомых рэчаў, і ў гэтым выпадку, гэта
праграмы, што наш студэнт напісаў мае некалькі пернікаў
печыва, пару кругавых печыва, цэлы букет
сэрца, цэлую кучу ачкоў.
З-за гэтага, ён або яна можа запраграмаваць кожную з гэтых
асобныя знакі па асобнасці.
>> Такім чынам, што гэта значыць для праграмавання гэтых персанажаў?
Добра, дазвольце мне ісці наперад і націсніце на гэтую левай руцэ печыва
і перайдзіце да левай верхняй тут.
У верхнім левым майго экрана ў цяперашні час з'яўляецца
так званыя сцэнары вобласці.
Гэта свайго роду чысты ліст, на пачатковым этапе, на якім я магу
перацягнуць кавалачкі галаваломкі, што, шчыра кажучы, зрабіць
менавіта тое, што яны кажуць.
На самым версе гэтай чаркі кавалачкі галаваломкі з'яўляецца слова
Калі Зялёны сцяг Націснуў, і калі вы раней не заўважалі,
так, як я пачаў, што печыва песня была націску, у літаральным сэнсе,
зялёны сцяг.
Так што паззл у левым верхнім куце ёсць азначае, што пры
чалавечыя клікі зялёны сьцяг, працягнуў рабіць
Наступныя рэчы.
>> Цяпер, што ж яны печыва працягнуць рабіць?
Я сапраўды не ведаю, як інтэрпрэтаваць гэта, але
печыва па-відаць ўсталяваць яго канаўцы да нуля, то яна чакала
трох секунд, затым ён змяніў свае групы ў адну, то
пачакаў секунду, затым яна змяніла сваё
пазу назад да аднаго.
І тады гэта на самай справе выглядае крыху памылка, не павінна
павінны змяніць свой пазу зноў і зноў, калі гэта не
змяняецца ў іншым месцы, але гэта шэраг крокаў, гэта тое, што
дыктаваць паводзіны дадзенага печыва.
Так што давайце на самай справе пракруціць назад і не глядзець на тое,
гэтак складанага няма.
Дазвольце мне ісці наперад і перайдзіце ў меню Файл, Новы,
і атрымаць чыстага ліста.
>> Так што цяпер, я сапраўды ёсць пустая вобласць сцэнар, пустая сцэна,
з нашай нуля спрайт па змаўчанні, а ў левым верхнім
на экране ў мяне паддон ўсіх сваіх
даступных частак галаваломкі.
І мы не будзем прайсці праз амаль што многія з гэтых рэчаў
сёння, таму што, зноў жа, большасць з іх відавочныя, але мы будзем
паспрабаваць класіфікаваць іх і паказаць на падабенства
з гэтымі мовамі будучыні, да якога мы будзем ныраць.
А ў левым верхнім куце вось першая Калі Зялёны сцяг націску
так што дазвольце мне перацягнуць гэты тут, паменшыць трохі.
І калі я націскаю на зялёны сьцяг, нічога не адбываецца, таму што
Я не надаваў ніякага логіцы, любое заяву, так бы мовіць, у
, Што зялёны сцяг, так што дазвольце мне ісці да
Катэгорыі сюды.
Я ў цяперашні час у кантрольнай катэгорыі.
Я замест гэтага збіраецца спусціцца на катэгорыю выглядае, і
ёсць цэлая куча рэчаў, якія кажуць, што тут Скажыце,
Падумайце, змяненне колеру, Switch касцюма.
>> Так што вы можаце рабіць глупства з касцюмамі і
гукі і да таго падобнае.
Дазвольце мне ісці наперад і проста сказаць Скажыце, а зараз заўважыла, як я перацягнуць
і адмовіцца ад гэтага кавалачка, ён захоча, каб замкнуцца
ў адпаведную форму.
Таму, калі я іду наперад і адпусціў маю мыш, яны замыкаюць
разам, і зараз, калі я іду сюды і націсніце зялёны сьцяг,
Котка ж на самай справе павітацца, таму што гэта тое, што ўнутры
гэтай белай скрынцы.
Мы хутка пабачым, што гэта белае поле тое, што называецца
Аргумент, або параметр.
Гэта спосаб змены паводзін, у дадзеным выпадку,
паззл, але калі я хачу сказаць менавіта тое, што я сказаў,
да, скажам прывітанне, свет, цяпер я магу вярнуцца сюды,
Націсніце кнопку Play, і "прывітанне, свет" з'яўляецца тое, што сказаў.
>> Такім чынам, мы ў літаральным сэнсе праграмавання цяпер.
Гэта яшчэ не ўсё, што пераканаўчых праграмы, але па крайняй меры
гэта крыху больш пераканаўчым, чым тое, што выглядае, па крайняй
першы погляд, накшталт гэтага.
І мы можам вельмі хутка атрымаць ўсё больш выразным
таму што ў Scratch, як і ў іншых мовах, ёсць усе
роду заявы, а не толькі гаварыць або нешта раздрукаваць, але
Вы можаце рабіць рэчы, як чаканне, як мы толькі што бачылі
печыва, некаторы колькасць секунд.
Вы можаце гуляць гукамі ў асяроддзі нуля толькі
як вы можаце ў нармальных гукавых праграм гульня кампутара.
Вы можаце праверыць, што называецца лагічных выразаў.
Так што цяпер, давайце пачнем дадаць да нашага інструментар некаторыя тэрміны
што на самой справе ставіцца да прыкладу, што Язэп і я
Тут з шкарпэткамі.
Такім чынам, заявы проста канстатацыяй факту.
Зрабіце гэта.
Дырэктыва для спрайт, ці мне чалавека, каб зрабіць нешта.
Лагічнае выраз з'яўляецца тое, што мае значэнне,
так званага сапраўднага значэння, што гэта альбо нуль або адзін, ілжывай або
Праўда, уключаны або выключаны, няма або так.
Не мае значэння, наколькі вы думаеце пра гэта, але гэта
двайковы дзяржавы.
Як Nate абмяркоўваецца ў відэа ў сераду, два
розныя рэчы.
>> Такім чынам, у Scratch, лагічныя выразы здарыцца, каб паглядзець
як гэтыя сінія аб'екты тут, і ў гэтым выпадку пытанне
Знак азначае, што вы задаеце пытанне.
Ёсць коткі, або спрайт, датыкаючыся да мышы?
Так што гэта толькі адзін з прыкладаў драпін блока, які збіраецца
, Каб мы маглі праверыць так ці не, гэта мыш дакранаючыся
спрайт на экране?
І гэта можа быць карысна, калі вы сапраўды хочаце, каб рабіць рэчы
з дапамогай мышы.
У дадатак да лагічных выразаў, у нас ёсць рэчы
накшталт мышы, так што вы можаце выявіць, што выгляд
пытанне.
Мы можам зрабіць матэматыку, калі вы на самой справе хочаце, і ёсць
на самай справе больш пераканаўчым выкарыстоўвае для гэтага не толькі чыстым
арыфметыкі, як мы ўбачым.
Псеўда выпадковасці і робіць вашу праграму здаецца, думаюць,
або паводзіць сябе па-рознаму ў залежнасці ад некаторых, здавалася б выпадковых велічынь,
а то ў нас такія рэчы, як лагічныя выразы, як AND.
Так што калі вы сапраўды хочаце, каб праверыць два значэнні, мы ўбачым у
Драпіна, што мы сапраўды можам праверыць, калі гэта
праўдзівыя і гэта праўда.
Напрыклад, у выпадку мае шкарпэткі, я мог бы ў
самым канцы задаў пытанне, калі не шкарпэтку на правую і шкарпэтак
уключаны, кінуць паліць.
Вы ўсё зрабілі за дзень, так што было б
магчымасць для гэтага.
>> Так што давайце ісці наперад і паспрабаваць сабраць некаторыя з іх разам
і ідзём у пару прыкладаў больш
пераканаўчымі, чым гэты.
Такім чынам, дазвольце мне ісці наперад тут і адкрыць некаторыя прыклады
, Які заўсёды будзе на вэб-сайце курсу, а таксама і
адкрыць hello2.
Такім чынам, у hello2 тут, у нас ёсць праграма, якая робіць некалькі
рэчы, але гэта не робіць гэта настолькі эфектыўна, наколькі мы маглі.
Дык вось ён кажа: "прывітанне, свет" на працягу адной секунды, а затым чакае
на секунду.
А потым робіць гэта зноў, а затым робіць гэта зноў.
Так што, калі я націскаю на зялёны сьцяг, Scratch кажа: "Добры дзень, свет.
Добры дзень, свет.
Добры дзень, свет ». І гэта, відавочна, кандыдат у цяперашні час для
паляпшэнне.
>> Што такое нязначнае паляпшэнне, спадзяюся, мы можам
Цяпер зрабіць, калі да драпін падтрымлівае канцэпцыю?
Свайго роду цыкл.
Некаторыя віды паўтору, зараз, было б добра, таму дазвольце мне
на самай справе паспрабаваць.
Дазвольце мне на самой справе пайсці і перамясціць гэта.
Такім чынам, апавяшчэнне можа аддзяліць блокі так жа лёгка, як вы можаце дадаць у
прымацуеце іх.
Адпусці мяне пад кантролем, пракруціць ўніз тут, і сапраўды,
ёсць гэты кавалак галаваломкі тут, паўтор і назаўсёды і
Калі назаўсёды.
Такім чынам, ёсць шэраг спосабаў выражэння цыклічных канструкцый
У Scratch.
Той, які я, верагодна, хочаце тут не назаўсёды, таму што я толькі
хочам, каб гэта адбылося тры разы, але, верагодна, паўтарыць.
Такім чынам, дазвольце мне паўтарыць перацягнуць сюды, і перацягнуць яго, і
Цяпер замест таго каб сказаць "прывітанне, свет" тры асобных разы,
Дазвольце мне перацягнуць гэты паззл тут.
І хоць яна не ўпісваецца, праграма разумны
дастаткова, каб зразумець яно будзе расці, каб запоўніць, так што гэта
форму, што матэрыя і не абсалютны памер.
Дазвольце мне змяніць паўтораў да трох, а цяпер адпусьціў мяне
наперад і перацягнуць Пачакайце адну секунду там жа.
Гэта будзе хапаць у а, і таму цяпер я збіраюся перацягнуць
гэтыя хлопцы тут і проста выкінуць іх, таму што я
не маюць патрэбы ў іх больш.
Дазвольце мне маштаб і націсніце зялёны сцяг зараз, і мы маем
тую ж праграму, але, як я і прадказваў раней, лепш
распрацаваны, таму што вы можаце сабе ўявіць, як дрэнна гэта праграма
атрымалі б, вядома, эстэтычна, калі б вам прыйшлося
пачаць капіяванне і ўстаўка, капіяванне і ўстаўка, або
перацягваннем ж цыраваць рэчы зноў і зноў.
>> Цяпер, проста кажу рэчы на ​​экране, друк
Экран, на самай справе ўсё не так цікава, так давайце адкрыем
3. дысперсія тут.
А цяпер, як вы ўбачыце, гэта будзе хутка раздражняць -
[MEOW]
DAVID малая: - але гэта таксама міла.
[MEOW]
DAVID малая: Добра, так лепш, і мы, безумоўна, можа выкарыстоўваць гэта
жа пераход адрыў да гэтага ў цыкл
структуры, але давайце зробім яго яшчэ больш цікавым.
>> Дазвольце мне ісці наперад і адкрываць 1/4 дысперсія тут, дзе я
прымаць рэчы адзін крок наперад.
Такім чынам, у адпаведнасці з гэтым, па-дурному, хоць гэта на першы
погляд, тое, што гэтая праграма збіраецеся рабіць?
Гэта будзе мяўкаць раз.
Чаму?
Ну, адзін ёсьць, наколькі я ведаю, заўсёды менш, чым два.
Там няма паняцця выпадковасці тут.
Я літаральна жорстка адзін і два, але гэта
Напрыклад, зараз на самай справе з дапамогай лагічнага выразы.
Шмат што падабаецца, як Іосіф зрабіў у сваім псевдокоде, водступы, калі
Вы знойдзеце шкарпэткі затым выканаеце наступныя дзеянні, тут мы маем
Калі адно выраз менш, чым два, то -
а на самай справе ў нас нават ёсць трохі водступаў,
дзе фіялетавыя злёгку водступам справа -
Тады вы будзеце гуляць гук мяу.
Зараз, у гэтым выпадку, што адзін заўсёды менш, чым два, так што гэта
гэта свайго роду пустая трата стане.
Але мы зможам, як мы ўбачым, для падлучэння іншых рэчаў у
гэтыя запаўняльнікі, дзе адзін і два цяпер.
Такім чынам, давайце прасоўвацца да прыкладу пяці з гэтых некалькіх
прывітанняў і паглядзець на тое, што гэтая праграма будзе рабіць.
>> Так што цяпер, у англійскай прапанове, як робіць гэта
Праграма сябе паводзіць?
Аўдыторыя: мяўкае палову часу.
DAVID малая: палова Meow па часе, так што гэта спосаб
перадачы вельмі простая ідэя.
Хоць мы, здараецца, выкарыстоўваючы некаторыя няроўнасці тут
у некаторых нумарах, гэта сапраўды толькі камуністычнай праграмы
Дарэчы, дакладны спосаб, сказаць, калі манета ўпадзе арлом, перайдзіце
наперадзе і мяўкаць.
Ці наадварот, калі манета ўпадзе хвасты, не мяўкаць.
І ў гэтым выпадку, як мы можам выказаць гэта?
Мы выбіраем выпадковае лік ад 1 да 10, і калі гэта
лік менш 6, ісці наперад і мяўканне.
І як жа гэта сюды трапілі?
Ну зноў, заўважце, проста перацягнуўшы і
рэчы пстрычкі.
>> Такім чынам, цяпер давайце паглядзім, калі гэта выпадковасць працуе.
Дазвольце мне ісці наперад і націсніце зялёны сцяг.
[MEOW]
DAVID малая: Добра.
[MEOW]
DAVID малая: Добра.
Добра, добра, так што мы атрымалі галавы, галовы, хвасты эфектыўна.
Хвасты.
[MEOW]
DAVID малая: Heads.
[MEOW]
DAVID малая: Выдатна.
Гэта заўсёды няёмка, калі толькі статыстычна вы атрымліваеце дрэнны
бегаць, і ўсё гэта галовах, і праграма на самай справе не
працаваць як можна было б спадзявацца.
Але на гэты раз ён працаваў, і мы, здаецца, ёсць, калі б мы зрабілі
гэта бясконцую колькасць раз, 50% шанцаў.
Цяпер зноў жа, не ўсё, што цікава, толькі робячы котак
мяу, так што давайце паглядзім, калі мы не можам прасунуць гэтую крыху далей
тут, у шосты версіі.
Такім чынам, зараз у нас ёсць сапраўды раздражняе версіі -
[Мяўкаць кожныя некалькі секунд]
DAVID малая: - і гэта тое, што вядома, наогул, як
бясконцы цыкл.
>> Так бясконцы цыкл у гэтым выпадку дрэнна сябе адчувае.
Гэта вызначана збіраюся пачаць гучанне дрэннае, і яшчэ бясконцая
Завесы не заўсёды дрэнна.
Ці можаце вы ўзгадаць кантэкст, у кампутарных праграмах, дзе трэба
на самой справе хочаце бясконцы цыкл?
Да?
Аўдыторыя: Калі вы хочаце, каб праверыць стан.
DAVID малая: Добра, калі вы хочаце працягваць правяраць стан?
Як што?
Аўдыторыя: [неразборліва]
DAVID малая: Добра, добра, так што калі ў вас некалькі праграм, некаторыя
выгляд хатняй аўтаматызацыі рэч, дзе вы хочаце, каб пастаянна
Манітор нешта выпадку.
Ці з'яўляюцца святло?
Ёсць святло, таму што, можа быць, у вас ёсць таймер, і
Вы хочаце, каб сысці, вам давядзецца нешта рабіць
зноў і зноў.
І на самай справе, кажучы пра таймеры, любы з вас, хто
Гадзіннік на кампутары ці лічбавыя гадзіны, гэта
бясконцы цыкл.
Ён працягвае абнаўляць часу, таму што ён увесь час
праверка і праверка і праверка ёсць час змянілася,
і калі так, о, мой Бог.
Гадзіннік, нарэшце, змяніўся.
Ён павінен паказваць, што каштоўнасць для вас.
Такім чынам, у той час як вялікую частку часу бясконцыя цыклы з'яўляюцца памылкай,
або па крайняй меры дрэнным рашэннем дызайну, часам яны не робяць
маюць сваю каштоўнасць.
>> Ну, давайце рухацца далей тут, каб hello7.
Так што цяпер праграма будзе атрымаць крыху больш інтэрактыўным.
Дазвольце мне павялічыць тут, і зноў, гэта тое, што прыемна
Аб Scratch.
І мы будзем выкарыстоўваць гэта, каб быць ясным, Scratch, толькі сёння і ў
Праблема наступным тыдні ўстаноўлены.
Але ў панядзелак, мы пагрузіцца ў С. У гэтай праграме, гэта так,
назаўсёды, у наступным.
Калі закранаць паказальнік мышы - зараз, хто
кантэксту тут?
Ну, і заўважыў, што хто абраны тут унізе
Справа знаходзіцца кошка, спрайт адзін, так што гэтыя сцэнары, гэта
Праграма, ставіцца да яго адмыслова.
Так што, калі котка дотыку паказальніка мышы, то гэта будзе
каб гуляць у гэтую ўніз і чакаць дзве секунды, і
затым паўтарыць да млоснасці.
>> Так што давайце ісці наперад і ўдарыў гульню.
Нічога не адбываецца, але калі я хачу, каб пагладзіць
Котка зараз, я магу проста.
[MEOW]
DAVID малая: чароўныя.
[MEOW]
DAVID малая: Добра, менш раздражняе, але таксама атрымлівае сумна,
так што давайце рухацца далей і паглядзець, калі мы не можам ўводзіць
трохі больш логікі.
Гэта быў прыклад сем.
>> Тут у прыклад восем, мы збіраемся
ўвесці ELSE стане.
Так шмат, як літаральнае скрыжаванні дарог, у якіх вы можаце пайсці
налева або вы можаце ісці прама, стан, пры праграмаванні
мову, як Scratch, або, як мы ўбачым, C, можа дазволіць вам
ідуць у адным напрамку або сябрам праз IF ELSE пабудаваць.
Так што цалкам літаральна, калі дотыку паказальніка мышы, гэта
будзе гуляць нейкі гук, інакш ён будзе гуляць гэтую сябра
гук, мяўканне.
Зараз, калі вы можаце заключыць з назвы гэтыя гукі, вы можаце
напэўна, здагадаліся, што гэтая праграма прызначаецца, каб выклікаць ва ўяўленні
ідэі.
Гэтая котка мяўкае шчасліва.
[MEOW]
DAVID малая: на шчасце, але не
вельмі хацеў быць закрануты.
[Раве]
DAVID малая: Такім чынам, зараз у нас ёсць кот, які будзе крычаць на вас.
>> Добра, добра, адзін апошні прыклад з коткамі тут, і
Давайце адкрытай версіі дзевяці гэтым тут.
Такім чынам, зараз у нас ёсць наступная самым раздражняльным гукам, што я мог
знайсці, таму мы павінны маржа або марскога льва, хто збіраецца
выканайце наступныя дзеянні.
[SEAL Барка]
DAVID малая: Добра, так гэта будзе працягвацца, пакуль вы высветліць, як
гэтая праграма працуе.
Таму ў гэты раз, гэта жывёла мае два сцэнарыя, і што
Тут цікава тое, што гэтыя сцэнары збіраюцца выконваць
паралельна.
Такім чынам таму, што яны абодва пачынаюцца з адным зялёным сцягам націску
Гэта як пайсці, як гэта, і абедзве праграмы пачнецца паказ гэтага
аднойчы нават калі яны цыкл назаўжды.
Такім чынам, у верхняй сцэнар, у мяне ёсць логіка.
Якія функцыі, якія забяспечваюць там?
[SEAL Барка]
Аўдыторыя: [неразборліва]
DAVID малая: Калі гэта што?
[SEAL Барка]
Аўдыторыя: Калі прыглушаных да нуля, ён збіраецца працягваць гуляць
гучала. [SEAL Барка]
DAVID малая: Добра, добра.
Так што, калі прыглушаныя, незалежна ад гэтага, гэтая аранжавая рэч роўная нулю,
Тады гуляць гук марскога льва і думаць: "О,
прывітанне, "на працягу двух секунд.
Зараз, я не ведаю, што гэта прыглушаныя, але нуля выклікае ва ўяўленні
Ідэя ілжывай ці не.
Так што, калі прыглушаныя з'яўляецца ілжывым, так што калі не адключаны,
працягваць гуляць гук.
Добра, добра, як мы можам адключыць гэтую рэч?
>> Ну, давайце паглядзім на другі сцэнар там.
Другі сцэнар кажа усталяваны прыглушаных да нуля.
Звярніце ўвагу, што гэта таксама аранжавыя, так што драпін робіць гэта колер
блокі ў той жа адценне, калі гэта свайго роду
лагічна звязаныя паміж сабой.
Гэтак жа, як прыглушаныя папоўніць быў аранжавым, так адключаны тут
згаданыя ў аранжавым блоку.
Але гэта значэнне зменнай, так як у
Алгебра, у вас ёсць х, у і г, у праграмаванні ў вас ёсць
зменных, але яны ў цэлым -
давайце паўзу на імгненне і зразумець, як
каб спыніць гэты брэх.
Як мне гэта зрабіць?
[SEAL Барка]
DAVID малая: Добра.
Ён спыніўся. Добра.
>> Гэтак жа, як у алгебры ў вас ёсць зменныя х, у, г, а ў
праграмавання, якія маюць такія зменныя, як х, у, г, як правіла,
неадабрэннем, таму што яны зусім не выразна.
Яны не маюць ніякага сэнсавага значэння наогул, так што ў большасці
Мовы праграмавання, зменныя могуць мець поўную
Оперы імёны або слова ці фразы, як прыглушаныя, не кажучы
што яны робяць.
Такім чынам, гэта другі сцэнар таксама слухаў назаўсёды, і ён сказаў,
калі ключ, Касмічныя клавішы клавіятуры, з'яўляецца
націску знак пытання.
Так што стан з лагічнага выразы, што гэта
збіраецца адказаць на пытанне, альбо праўдзіва або ілжыва,
то ў мяне ўнутры яго, калі прастору націску клавішы
Калі прыглушаныя роўная нулю, устаноўлены прыглушаныя да аднаго, ELSE ўсталяваць прыглушаных да нуля.
Такім чынам, гэта іншае скрыжаванні дарог, і звярніце ўвагу, як я
укладзенымі два, калі ўмовы, з'яўляецца спосабам праверкі з'яўляецца
Прабел націснутай, таму што калі гэта так, я альбо хочуць ісці па гэтым
так ці так.
І як я магу інвертаваць значэнне прыглушаныя?
Я павінен праверыць гэта нуль?
Калі так, то гэта адно, другое зрабіць гэта нуль таму пераключэнне
сваіх дзвюх дзяржаў.
>> Добра, у нас ёсць тое некаторыя з гэтых фундаментальных
канструкцыямі.
У нас ёсць лагічныя выразы, і разумею, таксама, гэтыя
Не ўсё, што незнаёмыя.
На самай справе, вось хуткі скрыншот з Гарвардскага курсу CS50
гандлёвы інструмент, і любы вэб-сайт, што там ёсць сцяжкоў
і падзенне падзення, сапраўды, увесь гэты час, выкарыстоўваюць
Лагічных выразаў.
У гэтым выпадку тут, калі вы ўсталюеце сцяжок побач з
Вядома больш або роўная 4,5, або жа побач з
факультэт, вы паказваеце лагічны выраз.
Пакажыце мне курсаў, для якіх гэты выраз праўдзівае.
Ці маеце рацыю, не канфліктуе з курсаў я
прымаць, калі гэта праверылі, то так, вы хочаце праверыць
што ўмова, што вы хочаце, каб яго ігнараваць.
Такім чынам, лагічныя выразы з'яўляюцца свайго роду ўсё вакол, але калі
мы ставім іх ва ўмовы, калі ці ўмовы, калі
Эльсес, ці мы можам нават імітаваць глыбокі
узроўняў, IF ELSE IF ELSE -
так што гэта свайго роду патройны дзяржавы.
Вы можаце ісці па гэтым шляху або так ці так.
Мы можам захаваць ўкладання рэчаў, каб пайсці ў розных напрамках.
>> Так драпіна гэтыя завесы, як Forever.
Яна мае наступныя функцыі, такія як Паўтарыць 10, некаторыя
канечны лік раз.
У нас ёсць магчымасць зараз, каб усталяваць зменныя, таму ў дадзеным выпадку
Я абвясьціў, напрыклад, зменная званыя шкарпэткі.
Я ініцыялізуецца ў 0, і гэта яшчэ адзін напрамак
мы маглі б узяць тут з Іосіфам, якому, магчыма, я
проста адсочваць, колькі шкарпэтак у мяне ёсць, і спыніць
праграмы, калі значэнне гэтай зменнай роўна 2.
Гэта быў бы яшчэ адзін спосаб роду абагульнення, што
праблемы і рабіць нешта зноў і зноў.
Ну, давайце ісці наперад і цяпер ўвесці пару новых рэчаў.
Так што тыя з вас, да праграмавання вопыт будзе
Вядома, што многія мовы маюць масівы або вектары або
спісы, і сапраўды, драпіна нешта накшталт гэтага, таксама.
Такім чынам, давайце паглядзім, калі мы не можам узяць рэчы на ​​наступны ўзровень тут.
Калі ў мяне ёсць магчымасць, то зараз, з гэтымі кавалачкі галаваломкі, каб
нешта дадаць, напрыклад, слова ці ліку, зменнай, я магу
пачынаюць назапашвацца рэчы.
І гэта на самай справе вельмі дарэчы такія рэчы, як гульні,
ролевых гульняў, дзе ты накшталт хадзіць
некаторыя фантазіі свеце, збіраючы рэчы, збіраючы рэчы,
зарабляць ачкі, і таму падобнае.
Вы можаце сачыць за нейкі інвентар, і
Сапраўды, гэта тое, што адзін з нашых былых студэнтаў тут зрабілі з
тое, што называецца Fruitcraft RPG.
>> Такім чынам, дазвольце мне ісці наперад і адкрываць гэтую рэч тут, і ў
Fruitcraft, у нас ёсць гэты свет уверх на вяршыню.
Такім чынам, дазвольце мне ісці наперад і націсніце зялёны сцяг.
Звярніце ўвагу на левы верхні з'яўляецца свайго роду інвентарызацыю.
Гэта ажыццяўляецца ў драпін як тое, што мы называем масіва або
спіс, і цяпер у нас ёсць гэтая маленькая анімацыя.
Гэтак жа, як мы пачалі раней з гэтай гісторыяй кахання печыва,
і тады мы прасунуліся на котак і марскіх львоў, зараз мы можам
рэчы, якія з'яўляюцца яшчэ больш інтэрактыўным.
І гэты маленькі блакітны хлопец, я магу пачаць рухацца вакол яго
трохі тут як дома.
Так гэта выглядае, як быццам ён атрымаў выхад тут, таму я выкарыстоўваю
клавішы са стрэлкамі, уверх, уніз, налева направа.
І зараз я звонку, так няхай тое, што я трапіў сюды.
Падобна на тое, аранжавыя, і сапраўды, як толькі я дакранаюся
аранжавы, ён атрымлівае пляснуўся ў маім інвентары.
Калі я іду сюды, каб вішні, зараз у мяне ёсць сёе-тое
астатняе ў маім інвентары.
І гэта ўсё прыгожа і міла, але думаць пра тое, як цяпер, гэта
рэалізаваны.
Ну, у нас гэта паняцце спісу, і гэта відавочна
паззл, што вы толькі што сказалі, што вы хочаце дадаць да гэтага, дадайце
апельсіна, дадаць вішні.
Цяпер, тое, што гэтая маленькая сіняя хлопец робіць?
Ну, ён спрайт.
І па-відаць, аранжавы і вішні -
яны самі былі асобныя спрайт.
І, выкарыстоўваючы ўмовы ў лагічныя выразы,
Студэнт быў, верагодна, у стане выказаць Калі сіні хлопец
дакранаючыся вішні затым дадаць слова вішня яго
інвентарызацыі, а затым і схаваць вішні спрайт.
Такім чынам, пад капотам, там, верагодна, па-ранейшаму з'яўляецца вішня
спрайт там.
Мы толькі што сказалі, каб ён стаў эфектыўным нябачным.
>> Цяпер, калі я працягваць ісці сюды, мы таксама можам гэта зрабіць
праксімальных рэч, куды я магу пайсці і прачытаць знак.
Такім чынам, калі сінія хлопец дакранаючыся знак, мы можам гэта сказаць блока
гэтак жа, як коткі гаварыў з намі ў словах, прывітанне, раней, "Got
некаторыя гародніна?
Прынясіце яго да садавіны месца ". Добра, так і цяпер, па-відаць,
У мяне ёсць напрамкі.
Я магу пайсці сюды, каб плады месца, выраўнаваць сябе ў парадак
з дзвярыма.
Дык вось, я тут.
Я магу падысці да чалавека за стойкай.
Ён выяўляе, што я побач з ім, таму ён не павінен быць
зусім аднолькава кранальна, і я выйграў.
Так што ў нас ёсць Fruitcraft RPG.
>> Такім чынам, мы можам зрабіць рэчы яшчэ больш прасунуты, чым гэта.
Мы можам дадаць гукі.
Мы можам дадаць псеўда выпадковасці.
Мы можам дадаць складанасці.
Дазвольце мне ісці наперад тут, і замест таго, рабіць гэта сам,
Дазвольце мне паказаць вам адну з больш складаных уяўленняў
мы атрымалі ў мінулым годзе ад пэўных нейкі Блэйк.
Можа ў нас ёсць адзін добраахвотнік, які зручна з'яўляцца на
камера і з'яўляецца для гуляеце ў гульню?
Як наконт прама там?
Падымайся.
Добра, так што гульня, якую вы толькі што несвядома
падахвоціліся гуляць -
[Апладысменты]
DAVID малая: - гэта нешта з мінулага называецца
"Frogger". Як цябе клічуць?
RENDA: Рэндзі.
DAVID малая: Redna?
RENDA: Гэта як Брэнда з б.
DAVID малая: Добра, Рэндзі.
Давід.
Вельмі прыемна.
>> Так вось у "Frogger", і калі б мы маглі павялічыць гучнасць толькі
трохі, вы гэта маленькае
Зялёная жаба на дне.
Вы можаце выкарыстоўваць налева, направа, уверх і ўніз, і ваша мэта складаецца ў
перайсці вуліцу, перасекчы раку, і дакрануцца да лілеі
у верхняй частцы.
Aw.
Яшчэ адзін т -
паўтор, усё ў парадку?
Давайце хіт прыпынку.
Ніхто не бачыў гэтага.
[Апладысменты]
DAVID малая: Так.
Вельмі добра зроблена.
Выдатна, дзякуй.
>> Так што не было Frogger. Зараз, калі вы ведаеце, што ў Вас ёсць
атрымаў сабе ў яшчэ адзін валанцёр для розных
гульня прадстаўлены іншым студэнтам.
Вы хочаце, каб прыйсці на ўверх?
Як цябе клічуць?
RICHARD: Рычард.
DAVID малая: Рычард.
Усё ў парадку, Рычард, давай ўверх.
[Апладысменты]
DAVID малая: у вас ёсць нешта, што будзе гучаць
знаёмы ў бліжэйшы час, так што тут вашы ўказанні.
Такім чынам, у цяперашні час некаторыя кавалачкі галаваломкі збіраюцца для пракруткі уверх
з экрана, якія выглядаюць як злева
або направа уверх ці ўніз.
Вы будзеце мець, каб ўразіць стрэлкі такім чынам,
, Што адпавядае тым кавалачкі галаваломкі выстройваюцца ў чаргу з
запаўняльнікаў на вяршыні.
Таму, калі вы бачыце стрэлку налева, і ён на адной лініі з левай
стрэлку, націсніце левую стрэлку.
Вы можаце пачаць.
[MUSIC - "мацней" Kayne WEST]
DAVID малая: Усё правільна, вялікі выбух апладысментаў для Рычарда.
[Апладысменты]
DAVID малая: Вельмі добра зроблена.
Дзякуй.
[Апладысменты]
>> DAVID малая: Так весела і, па-відаць, свайго роду
жахліва, як гэта можа быць, каб ажыццявіць тое, як
здавалася б, складаныя, як гэта, разумееш, што студэнт
не ставіў перад сабой і проста напісаць гэта ўсё адразу.
Замест гэтага, вы можаце зламаць праблема, як здавалася б, складаныя
як гэта ў значна меншых кавалкаў, і гэта таксама
будзе тэмай.
Горшае, што вы можаце зрабіць у напісанні праграмы ў большасці любыя
мову, каб сесці, стаць сапраўды узбуджаны, напісаць
ўсю гэтую чортаву рэч, а потым проста спадзяюся, што гэта працуе,
раз, калі вы скончылі пісаць.
Хутчэй за ўсё, працэс праграмавання як правіла, павінны
вельмі наўмысным, вельмі итерационный, у якім вы проста
ўсталяваны вельмі маленькія крокі для сябе, маленькія кавалачкі
Вы хочаце, каб адкусіць, і так, што ў вас ёсць гэтыя разважнасці
чэкі, мала вехі вы можаце сустрэцца.
А потым пабудаваць на вяршыні тых, для стварэння больш
складаныя рэчы да гэтага часу.
>> Так, напрыклад, як мы маглі б ісці аб
ажыццяўленне такой гульні?
Ну, шчыра кажучы, я б, вядома, пачаць з толькі што
падтрымка аднаго ключа адначасова.
Давайце проста рэалізаваць падтрымку са стрэлкай налева.
Такім чынам, студэнт павінен быў нейкім чынам стварыць у Photoshop, або ў
Драпіна сябе з дапамогай маленькага графічнага рэдактара,
стрэлкай, якая выглядае як адзін у левым верхнім куце ёсць, проста
шэрыя рамкі.
Тады студэнт павінен быў высвятліць, што ж, у каардыната
пакласці яго, куды пакласці яго ў акно.
0, 0, тут, так што вы павінны высветліць колькасць
кропак, або кропак, каб кампенсаваць, што стрэлка ад
у верхняй частцы экрана.
А потым аднойчы, што знаходзіцца ў месцы, ваша праграма на самай справе не
нічога рабіць, так што вы тады патрэбны другі спрайт, для
Напрыклад зялёнай стрэлкай, які таксама паказвальнай налева, і вы
Затым неабходна, каб пачаць пісаць некалькі сцэнарыяў для гэтага.
>> А вы заўважылі, напэўна, што гэтыя рэчы сталі прыходзіць у
розных хуткасцях, а колеру былі ў розных
месцах, і гэта таму, што студэнт выкарыстаў крыху
псеўда выпадковасці.
І псеўда-выпадковасць, я проста азначае выбраць нумар
паміж чымсьці і чымсьці, таму што вы можаце
пачынаюць карце рэчаў, як калі лік ад аднаго да
пяць, ну, давайце зробім рэч зялёнага колеру.
Калі гэта паміж 6 і 10, давайце зробім паззл
замест чырвонага.
Да таго часу, пакуль у вас ёсць спосаб стварэння свайго роду
выпадковасцю, вы можаце прымаць рашэнні, грунтуючыся на тым
выпадковасць.
І я ўвесь час кажу псеўдавыпадковых таму што ёсць
маленькі брудны сакрэт.
Кампутары не могуць прыдумаць выпадковых лікаў.
Яны могуць рабіць толькі тое, што яны сказалі, таму што
яны тэхнагенных прылад.
Яны не могуць проста адгадаць лік, як мы, людзі,
адчуваю, што мы можам.
Кампутар павінен зрабіць нешта матэматычнае, абуджаючы
Ілюзія матэматычныя ліку, часам з выкарыстаннем
Бягучы дзень час як ўклад у высвятленне таго, што
Колькасць вярнуцца, але пра гэта ў іншы раз.
А цяпер проста ведаю, што мы можам стварыць псеўда выпадковасці.
>> Таму, як толькі ў мяне ёсць здольнасці да стрэлку налева, каб пачаць
з'яўляюцца ў розны час і з рознай хуткасцю, то
Я магу вярнуцца і дадаць некаторыя з іх, калі ўмовы.
Калі гэта спрайт дакранаючыся іншага, і стралкі налева
клавіша была націснутая -
так тры ўмовы ў гэтым выпадку.
Я магу выкарыстоўваць, што і блок, магчыма, у гэтым выпадку -
Тады я хачу, каб ісці наперад і павялічыць кошт.
І на вяршыні, у нас ёсць рахунак, у нас ёсць Awesome,
Крута, добра, і Бу.
Так што мабыць пяці зменных, што гэты студэнт
выкарыстоўваецца для адсочвання гэтых розных паказчыкаў.
Карацей кажучы, канчатковым вынікам з'яўляецца дзіўным.
Гэта весела, гэта цікава гуляць, гэта прыцягненне, але гэта не
дзе студэнт пачаў.
Ён або яна пачалася значна меншы набор крокаў.
>> Так што некаторыя іншыя блокі, якія мы можам
перапляценне ў гэтых праграмах?
Ну, вось гэта іншае паняцце ў большасці моў,
Драпіна сярод іх, вядомы як патокі.
Такім чынам, кампутар можа на самай справе сапраўды не зрабіць некалькі рэчаў
Час, па меншай меры, не звычайна.
Хутчэй за ўсё, кампутар звычайна мае толькі адзін працэсар, і нават
хоць кампутары супер хутка і можа, такім чынам,
стварыць ілюзію рабіць некалькі рэчаў адначасова -
правяраючы сваю пошту, атрымліваць імгненны
Паведамленне, друк дакумент -
сапраўды, кампутар проста скакаць ад друку на IMing
да электроннай пошце, таму і назад і наперад і назад так хутка, што мы
павольным кемлівыя людзі проста не разумеюць, што гэта на самай справе
запуску гэтых праграм трохі за адзін раз.
Цяпер, гэта трохі белага ляжаць у гэтыя дні, таму што, у цяперашні час,
многія нашы кампутары з'яўляюцца так званыя шмат'ядравыя, так што вы
адзін працэсар, але некалькі ядраў, якія накшталт як
наяўнасць некалькіх працэсараў.
>> І таму часам, кампутары сапраўды можа зрабіць некалькі рэчаў
у той час, але ў цэлым у рамках праграмы, праграмы
спадзявацца на гэтыя рэчы называюцца патокамі.
Такім чынам, паток накшталт мініяцюрнай праграмы, якая можа
існуюць разам з другога мініятурны праграмы і можа працаваць
Паралельна, або па крайняй меры можа працаваць у ілюзіі, што
яны працуюць адначасова.
Так драпін падтрымлівае гэтыя рэчы называюцца патокамі.
Вы можаце мець некалькі сцэнарыяў выканання адразу ж, як мы
зрабіў з марской леў, і гэта дазваляе нам на самой справе
то ёсць узаемадзеянне паміж гэтымі спрайт.
Дазвольце мне ісці наперад тут і пацягніце ўверх, скажам, патокаў і
гуляць у гэтую наступным чынам.
У нас ёсць два спрайт, кожная з якіх мы ўбачым,
мае толькі адзін сцэнар.
І вы заўважыце, як уяўляецца, некаторыя выведкі ў
Котка ў гэтым, таму што ён становіцца бліжэй -
[Раве]
DAVID малая: - і бліжэй да маленькай птушцы.
>> Такім чынам, як птушка аперацыйнай?
Што ж, давайце паглядзім на птушку ў першую чаргу.
Птушка сцэнара сказаў, калі зялёны сцяг націску, перайдзіце на х
роўная адмоўнай 115 і ў роўная 150.
Так што я проста зразумеў, выпадковае месца, дзе я хацеў
Птушка, каб пачаць, і я проста пляснуўся яго там па змаўчанні.
Тады назаўсёды, калі не дакранаючыся коткі, так што гэта іншая
выгляд цыклічнай канструкцыяй, але тая ж ідэя, зрабіць гэта зноў і
зноў і зноў.
Да таго часу, пакуль вы не дакранайцеся да котцы, перамясціць тры крокі, і
калі вы знаходзіцеся на краю, отскок, дзе гэта свайго роду
адлюстраванне ў тым сэнсе, більярд.
Дык вось, як птушка рухаецца вакол выглядзе
здавалася б, выпадкова, але гэта толькі таму, што ён адскокваючы
Сцены ў гэтым выпадку.
>> Цяпер кошка, між тым, гэта свайго роду падман.
Котка, калі зялёны сцяг націску, так, пачынаецца ў
некаторыя месцы, выпадковым месцы -
па крайняй меры часткова ў адпаведнасці з выбарам
выпадковы зялёны блок там -
, А затым назаўжды, калі дакранацца да птушкі, гуляць льва гук,
а затым спыніць сцэнар.
Так што, калі я сказаў, спыніць або да выхаду, ёсць галаваломкі
кавалак у драпін, што будзе проста забіць праграму на што
момант, таму што гэта свайго роду лагічна зрабіць.
Але з іншага боку, вось, звернеце ўвагу на тое, што адбудзецца.
Кропка ў бок птушкі і адзін крок.
Так што гэты момант да птушкі гэта свайго роду перавага коткі
ёсць у тым, што гэта саманавядзення на рухомую птушку, і мы можам
Зараз робяць гэтую праграму яшчэ больш цікавай.
Замест перамяшчэння на адзін крок за адзін раз за цыкл працэсара, на
стукнуць званком, так бы мовіць, дазвольце мне ісці наперад і
рухацца, скажам, пяць крокаў, у той час, як кошка.
Абярыце пункт Выканаць, і цяпер ён сапраўды лічыць яго хутка.
Калі мы падвоіў гэтую далей 10 крокаў, яна як бы ідзе
Права на яго.
Цяпер мы можам даць птушцы,
Магчыма, трохі пераваг.
Пойдзем да птушкі і сказаць замест перамяшчэння трох крокаў,
давайце рухацца яму 30 крокаў.
Але ён усё роўна быў злоўлены ў рэшце рэшт.
>> Дык вось, у нас ёсць дзве тэмы.
Ён складзены ў драпін з двума сцэнарамі і два
спрайт, але ідэя на іншыя мовы, што вы можаце
пісаць, па сутнасці, занадта шмат праграм, як гэта і ёсць
іх працаваць па-сапраўднаму, ці ўвогуле магчыма, паралельна.
>> Цяпер, ёсць таксама гэтая канцэпцыя ў праграмаванні вядома як
падзей, і гэта тое, што мы не ўбачым у C,
мову, вядомы як С. Мы ўбачым бліжэй да канца семестра
ў вэб-праграмаванні, калі мы ўвядзем JavaScript і
Паняцце будынак вэб-старонак, якія з'яўляюцца дынамічнымі і ўзаемадзейнічаць
з карыстальнікамі.
Такім чынам, у гэтым выпадку, у нас ёсць вельмі просты прыклад двух
спрайт, хлопчык і дзяўчынка, кожны з якіх маюць свае адпаведныя
тэмы, але чамусьці гэтыя два ўзаемадзеянне-сувязь шляхам
таго, што называецца падзеямі.
Такім чынам, дазвольце мне ісці наперад тут і павялічыць на сцэнар хлопчыка,
які выглядае наступным чынам.
Пры націску зялёны сьцяг, назаўсёды зрабіць наступнае.
Калі ключ прастору, або прабел, націску, скажам,
Марка на працягу двух секунд, гэта чыста эстэтычная на
экран, маленькі бурбалка прамовы, але затым у эфір.
>> Такім чынам, трансляцыя іншы драпін кавалак, што гэта
Прадстаўнік класа функцыянальнасць у праграмаванні
, Што дазваляе розных праграмах, розныя тэмы,
Інтэр-сувязь, каб хоць неяк адправіць
паведамленні, адно на іншае.
Пераходзячы паперку ​​ў класе з'яўляецца свайго роду нізкіх тэхналогій
эквівалентныя.
Такім чынам, трансляцыя падзеі.
Я магу адправіць гэта паведамленне, і словы падзеі
з'яўляецца цалкам адвольным.
Драпіны часам гэта падзенне падзення, так што я проста падышоў
са выпадковым словам, як падзея, таму што цяпер, што хлопчык робіць
калі я націскаю на ключ, ён перадае гэтую падзею.
І калі я зараз паглядзіце на сцэнар дзяўчыны, яе сцэнар
супер проста, таму што ўсё, што ёй трэба зрабіць, гэта не дзейнічае, калі
зялёны сьцяг кнопкі.
Яна прызначана для дзеянняў, калі яна атрымлівае цытата, канец цытаты,
"Падзея", і ў гэты момант, яна слухае, такім чынам, для
так званыя падзеі зноў і зноў.
Як толькі яна атрымлівае гэтым выпадку яна будзе крычаць
Polo працягу двух секунд.
>> І таму вы, магчыма, можа вывесці з гэтага, што менавіта
Наступны вынік будзе.
Дазвольце мне пстрыкніце зялёны сцяг.
Нічога не адбываецца, таму што мне трэба рабіць?
Аўдыторыя: Space Bar.
DAVID малая: Space Bar.
Хлопчык кажа Марка Пола кажа дзяўчына.
Але гэта не жорстка як такой.
Гэта ўзаемадзеянне-сувязь паміж скрыптоў, так што зараз мы
ёсць магчымасць зрабіць яшчэ больш складаныя праграмы, у якіх
гэтыя двое неяк паміж зносінамі.
>> Такім чынам, у якіх кірунках мы можам прыняць гэта?
Ну, у задачу мноства 0, сапраўды, мэта складаецца ў тым, каб
весела правесці час з нуля.
Для хакерам выданне, вы будзеце атрымліваць задавальненне, а не з больш
складаная версія драпін называецца BYOB, зборкі
Уласныя блокі, але ідэя тая ж.
Вы зможаце -
Так, гэта было наўмысна.
Ён прыйшоў з Берклі.
BYOB Гэта версія хакер выданне гэтага, але абодва
, Дэмаграфіі, Standard Edition і хакерскіх выданні, так
Мэта пад рукой на працягу бліжэйшага тыдня на самай справе проста нырнуць у
глыбока, каб вашыя рукі брудныя з праграмаваннем, і зрабіць
нешта цікавае, нешта зрабіць інтэрактыўным, каб
нешта мастацкае, зрабіць нешта весела на самай справе
прадэманстраваць, так што да канца тыдня, вы будзеце мець праект,
не толькі для вашага першага CS50 PSET, але вы павінны будзеце
сёе-тое, што вы можаце паказаць у Annenberg да
сяброў і нават сем'і, загрузіўшы яго на сайт Масачусецкага тэхналагічнага інстытута.
І так, як я сказаў у сераду мы чакаем, што 90% класа,
увогуле, рабіць стандартныя выдання.
Зразумейце, што ёсць таксама гэта выйсце для тых з вас, хто
у адваротным выпадку маглі знайсці сабе трохі сумна з асновамі
і сапраўды хочаце вывучыць і выпрацаваць бачанне ў вас ужо
ёсць з папярэдняга фон у гэтым больш дружалюбным
навакольнага асяроддзя.
>> Такім чынам, дазвольце мне падцягнуць яшчэ адзін прыклад, што адзін з нашых былых
Тут студэнты зрабілі і трохі распавесці нешта праз песню.
Гэта так жа, як гэта гуляе, думаю пра тое, як вы ідзяце па нагоды
рэалізацыі гэтай праграмы з дапамогай менавіта гэтых жа
будаўнічыя блокі, трохі псеўда-выпадковасць, а
Трохі знаёмую песню.
Калі б мы маглі павялічыць гучнасць ледзь-ледзь?
[MUSIC - "гэта Raining Men" Weather Girls]
>> DAVID малая: Вось менавіта для CS50.
Мы будзем бачыць Вас у панядзелак.
[Апладысменты]