>> СПІКЕР: Я [нерозбірливо].
І я старший у Леверетт будинок.
Я вивчаю інформатику, і я TF для CS50.
Як новачок, я навіть не було ноутбука або смартфона.
У мене не було ніяких знань в програмуванні.
CS50 був самим незабутнім, звичайно, що Я взяв у Гарварді тому що це було
боротьба, але це був дійсно весело боротьба в той же час.
І я зробив багато дивних, постійні друзі, і я дізнався багато дійсно
застосовних навичок.
Я так радий, що я не дозволяв моїм відсутність фону бути виправданням для мене
Не приймайте CS50.
Я [нерозбірливо].
Я старший у Леверетт Будинок, клас 2014 року.
І я взяв CS50.
>> DAVID мала: Так що це CS50.
Це кінець тижня нулю.
І згадати, де ми почали в останній раз, був з цими лампами, які були
настільки популярні, що ми пішли і купив ще трохи сьогодні.
Так що я думаю, це буде свою справу в цьому році -
настільні лампи, якщо ви вийти на сцену, принаймні, поки ми не закінчаться.
>> Але ми використовували ці Нагадаємо, ввести основи представлення даних.
Нам потрібно спосіб почати представляють інформації всередині комп'ютера.
І найпростіший спосіб зробити це було з одним інгредієнтом, електрику.
І найпростіше, що ви можете зробити з електрика включити його і його.
Нехай потік електронів чи ні.
І, використовуючи ці два основні стани, від і далі, або помилковою і істинної, або нульовий і
Один з них, ми почали розуміти, що ми могли б побудувати вище, в даному випадку, з легкими
цибулини, кілька номерів, ніж тільки нулем і одиницею.
Ми нарахували досягати семи, Наприклад, минулого разу.
Але все, що нам потрібно зробити, це продовжувати кидати все більше і більше лампочок в той
проблеми і, насправді, ми можемо представити будь-яке число, яке ми
могли можливо хотіти.
>> Ну, ми перейшли швидко, то на Середа на цей байтовий добровольців.
8 біт те, що ми зазвичай називаємо байт, Так от у нас було вісім добровольців
У середу, які колективно були представляє вісім бітів.
І коли їх руки пішли , Вони були один.
І коли їх руки були вниз, були нулю.
І у нас були ці люди вийти на сцену, чому?
Те, що ми в змозі зробити з ця послідовність бітів?
>> Для створення алфавіту.
Ми були в змозі побудувати на вершині, що попередня урок і насправді
почати робити більш цікаві інформацію, яка, принаймні, більш
знайомі нам люди.
І це буде повторюваним темою протягом 50, а й комп'ютер
науки в цілому, ця ідея шарів, де, врешті
день, якщо ви дійсно почали Основи з комп'ютером, так,
це нулів та одиниць.
А під що це тільки електрика.
Але ми дуже швидко починають приймати ці подробиці низького рівня як належне
і починають шар поверх минулому працював зробили так що, в кінцевому рахунку, по
кінці семестру і, насправді, в більш загальному вигляді комп'ютерних вчених
і програмісти, може зробити деякі дійсно потужні речі, посилюючи роботу
що ми самі зробили, а також стоячи на плечі інших.
>> Тепер ми швидко перейшли в середу тільки від необхідності
представляють інформацію про бажаючих щось зробити з ним.
Отже, що ми визначаємо як алгоритм?
Послідовності інструкцій.
Так що це ряд інструкцій, кількість кроків, які ви, людина, або
комп'ютер, більш типово буде виконати одну за одною, щоб
для досягнення деяких цілей.
І у нас було кілька цілей в минулий раз, одне з яких було розраховувати
людей у ​​кімнаті.
І ще один з таких прикладів, щоб знайти Майк Сміт у телефонній книзі.
>> Таким чином, ви можете згадати, що я розірвав телефону Книга в половині в цьому напрямку до
знайти Майк Сміт.
Мета цього візуального було продемонструвати, знову ж таки, що ми були
буквально розриває цю проблему половина, навпіл, навпіл, і дуже
швидко переходячи від як 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 за своєю природою, як це комп'ютер
налаштований.
>> Так що я йду вперед і натисніть Enter.
Я бачу деякі загадкові продукції, але це стане занадто
знайомі незабаром.
Це сталося для запуску компілятора, більш про це в момент, званий 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 мала: Для цієї демонстрації, ми збираємося потрібно один доброволець.
Хочете давай вниз?
Як тебе звуть?
Рухаємося далі.