1 00:00:08,483 --> 00:00:11,477 [Powered by Google Translate] [ROCK MUSIC] 2 00:00:32,435 --> 00:00:35,429 [MUSIC - "Счастливы вместе" Черепахи] 3 00:01:27,330 --> 00:01:30,170 DAVID Малан: Сегодня мы начнем наше исследование 4 00:01:30,170 --> 00:01:32,710 Основы информатики и наше введение, 5 00:01:32,710 --> 00:01:35,070 Теперь, в искусстве программирования, которые, который 6 00:01:35,070 --> 00:01:36,260 Только один пример. 7 00:01:36,260 --> 00:01:39,600 Но в том же духе решения проблемы, знаем, что 8 00:01:39,600 --> 00:01:42,080 Традиционный День Puzzle CS50 является завтра. 9 00:01:42,080 --> 00:01:45,190 Если вы еще не RSVPed к этому событию, вы можете пойти в 10 00:01:45,190 --> 00:01:47,510 cs50.net/rsvp. 11 00:01:47,510 --> 00:01:50,940 Вы можете принести команды из двух, трех или четырех. 12 00:01:50,940 --> 00:01:53,080 Вам будет оспорена с проблемами, как тот, который вы видели 13 00:01:53,080 --> 00:01:54,190 там в самом начале. 14 00:01:54,190 --> 00:01:57,000 Все новые проблемы в этом году, если вы приняли участие в прошлом году, и вы 15 00:01:57,000 --> 00:01:59,680 будут иметь возможность затем, чтобы выиграть некоторые сказочные призы. 16 00:01:59,680 --> 00:02:02,750 Среди них, Wii и некоторые подарочные сертификаты и т.п., 17 00:02:02,750 --> 00:02:05,650 Все то время, болтаясь с CS50 студентов и одноклассников 18 00:02:05,650 --> 00:02:07,720 и пиццу и Facebook. 19 00:02:07,720 --> 00:02:10,430 Так об этом завтра, если вы хотели бы. 20 00:02:10,430 --> 00:02:13,330 >> В этом и состоит CS50, для тех из вас присоединиться к нам для 21 00:02:13,330 --> 00:02:14,510 первый раз. 22 00:02:14,510 --> 00:02:18,030 И знайте, что этот курс особенно намерены получить 23 00:02:18,030 --> 00:02:22,605 Вас через этот курс, чтобы ее конечная цель, в какой момент вы 24 00:02:22,605 --> 00:02:24,270 будет иметь не только понимание этих 25 00:02:24,270 --> 00:02:26,450 Основы информатики, но вы должны будете 26 00:02:26,450 --> 00:02:29,120 это очень практичный набор навыков, которые затем можно забрать в 27 00:02:29,120 --> 00:02:31,370 собственный отдел, будь то технических наук, 28 00:02:31,370 --> 00:02:33,570 прикладная математика, естественные науки, естественные 29 00:02:33,570 --> 00:02:34,780 наука, или тому подобное. 30 00:02:34,780 --> 00:02:37,030 Действительно, то, что так здорово о компьютерной науке эти 31 00:02:37,030 --> 00:02:39,900 дней в том, что это именно так, применимые к 32 00:02:39,900 --> 00:02:40,990 все виды полей. 33 00:02:40,990 --> 00:02:46,210 И хотя сегодня, мы будем только поцарапать поверхность 34 00:02:46,210 --> 00:02:49,020 очень традиционный язык программирования, известной как C, мы будем 35 00:02:49,020 --> 00:02:51,040 Вместо смотреть на то, что называется Scratch, что-то с 36 00:02:51,040 --> 00:02:53,420 которых эта история печенья любовь была реализована одна из ваших 37 00:02:53,420 --> 00:02:57,020 предшественников в прошлые годы, чтобы рассказывать истории, создавать игры, 38 00:02:57,020 --> 00:03:00,060 для создания интерактивного искусства, и фактически начать, чтобы обернуть наш 39 00:03:00,060 --> 00:03:02,240 умов вокруг некоторых из фундаментальных конструкций, 40 00:03:02,240 --> 00:03:05,390 лежат в основе программ, но в контексте, как вы увидите, что это 41 00:03:05,390 --> 00:03:09,140 гораздо менее страшно, что намного меньше тайной, чем вы увидите 42 00:03:09,140 --> 00:03:10,140 в скором времени. 43 00:03:10,140 --> 00:03:12,410 И понимаю, тоже, для тех из вас только что присоединились к нам эта 44 00:03:12,410 --> 00:03:16,170 семестра, фразы, по которым мы закончили лекцию в среду, 45 00:03:16,170 --> 00:03:20,260 это не так важно, где вы в конечном итоге по отношению к вашему 46 00:03:20,260 --> 00:03:22,950 Одноклассники в этом классе, но где вы, к концу семестра 47 00:03:22,950 --> 00:03:27,190 В неделю 11, в конечном итоге по отношению к себе прямо в тот же день. 48 00:03:27,190 --> 00:03:32,000 >> Итак, без дальнейших церемоний, это также стоит отметить, что 49 00:03:32,000 --> 00:03:34,450 тех, кто менее удобны, те где-то между ними, являются 50 00:03:34,450 --> 00:03:36,825 Кроме того, в конструкции этого, конечно, не в любой недостаток 51 00:03:36,825 --> 00:03:38,760 VIS-A-VIS тем более удобными 52 00:03:38,760 --> 00:03:39,920 вступление в этом классе. 53 00:03:39,920 --> 00:03:41,810 Как вы увидите в течение недели, чтобы прибыть, у нас разные 54 00:03:41,810 --> 00:03:44,600 треков для разных задний фон, разделы для тех, 55 00:03:44,600 --> 00:03:46,500 менее комфортно, более удобные, те, где-то 56 00:03:46,500 --> 00:03:47,250 между ними. 57 00:03:47,250 --> 00:03:49,520 Как вы увидите в эти выходные и на следующей неделе, две версии 58 00:03:49,520 --> 00:03:52,410 Наиболее проблема набора в стандартном издании и хакерских так 59 00:03:52,410 --> 00:03:55,390 что вы все можете самостоятельно выбрать по пути, с которым вы 60 00:03:55,390 --> 00:03:56,615 Наиболее удобными. 61 00:03:56,615 --> 00:03:58,770 >> Итак, сегодня мы углубимся в эту программированию 62 00:03:58,770 --> 00:04:00,060 язык под названием Scratch. 63 00:04:00,060 --> 00:04:02,250 Это графический язык программирования, и все же она имеет 64 00:04:02,250 --> 00:04:04,500 же функции, некоторые из языков высокого уровня мы будем 65 00:04:04,500 --> 00:04:07,050 исследовать позже в семестр, в том числе и C 66 00:04:07,050 --> 00:04:08,670 JavaScript и PHP. 67 00:04:08,670 --> 00:04:11,890 Но это происходит, чтобы позволить нам избежать некоторых отвлекающих 68 00:04:11,890 --> 00:04:14,890 на ранней стадии синтаксиса, такие вещи, как точка с запятой, скобки, 69 00:04:14,890 --> 00:04:17,720 и другие тайные детали, которые, на первый взгляд, просто не 70 00:04:17,720 --> 00:04:19,916 на всех интеллектуально интересная и, как правило, получают в 71 00:04:19,916 --> 00:04:22,310 путь от некоторых фундаментальных понимания. 72 00:04:22,310 --> 00:04:24,870 С точки зрения сейчас структура поддержки вперед, понял, что это 73 00:04:24,870 --> 00:04:27,570 Инструмент, CS50 Обсудить, который будет связан с курса 74 00:04:27,570 --> 00:04:30,320 сайт позже сегодня, является интернет-форуме обсуждения в 75 00:04:30,320 --> 00:04:32,480 которых вы сможете задавать вопросы друг другу и 76 00:04:32,480 --> 00:04:35,020 персонала, и это также инструмент, как мы увидим на следующей неделе, 77 00:04:35,020 --> 00:04:37,240 которые мы будем использовать довольно integratedly в 78 00:04:37,240 --> 00:04:38,780 рабочее время, а также. 79 00:04:38,780 --> 00:04:41,670 Действительно, часы работы начнутся в понедельник, и, честно говоря, первый 80 00:04:41,670 --> 00:04:43,930 неделю в нерабочее время довольно низкий ключ. 81 00:04:43,930 --> 00:04:46,820 >> Я не думаю, что вы найдете Царапины все, что доступно. 82 00:04:46,820 --> 00:04:48,930 Это довольно очевидны, как мы увидим, и так, что 83 00:04:48,930 --> 00:04:51,380 мы будем использовать это на сегодняшний день является извлечение некоторых из 84 00:04:51,380 --> 00:04:53,990 Основные идеи, которые, затем, сохраняются на протяжении всей 85 00:04:53,990 --> 00:04:54,900 Остальная часть семестра. 86 00:04:54,900 --> 00:04:57,980 Но, начиная с понедельника, в 8:00 вечера по 11:00 вечера будет 87 00:04:57,980 --> 00:05:01,530 Приемные часы в Annenberg над мозгом перерыва. 88 00:05:01,530 --> 00:05:04,490 Секционирование два начнется этим вечером, так что уже в этом 89 00:05:04,490 --> 00:05:07,260 выходные, перейдите на cs50.net/section, и вы будете 90 00:05:07,260 --> 00:05:08,530 быть задан ряд вопросов. 91 00:05:08,530 --> 00:05:10,290 Среди них, как бы вы описали вашу 92 00:05:10,290 --> 00:05:12,040 уровень комфорта на сегодняшний день? 93 00:05:12,040 --> 00:05:14,450 Там нет жесткого, быстрого правила относительно того, кто, в котором ведро. 94 00:05:14,450 --> 00:05:17,170 Это просто такая штука, что вы, вероятно, знаете, если вы 95 00:05:17,170 --> 00:05:20,280 Среди тех, кто менее комфортно или нет. 96 00:05:20,280 --> 00:05:21,350 >> И теперь, пошаговые руководства. 97 00:05:21,350 --> 00:05:24,020 Спецификация проблема набора на этой неделе, как стандартных, 98 00:05:24,020 --> 00:05:28,560 и хакерских издания, так, сейчас на cs50.net как сейчас. 99 00:05:28,560 --> 00:05:31,500 И вы увидите, что первый из этих изданий, 100 00:05:31,500 --> 00:05:33,940 Standard Edition каждую неделю, сопровождаются то, что мы 101 00:05:33,940 --> 00:05:36,550 звоните код руководстве сессии во главе с одним из 102 00:05:36,550 --> 00:05:39,100 преподавании курса стипендиатов для Вас через, обеспечивают 103 00:05:39,100 --> 00:05:42,290 Советы по, и вы получите вниз, особый путь, когда речь идет 104 00:05:42,290 --> 00:05:44,150 для начала эти проблемы множеств. 105 00:05:44,150 --> 00:05:46,790 Таким образом, с каждой из этих проблемных устанавливает, если вы никогда не желающих 106 00:05:46,790 --> 00:05:50,250 для себя, где я могу начать, вы начинаете с этим 107 00:05:50,250 --> 00:05:50,890 пошаговые руководства. 108 00:05:50,890 --> 00:05:53,450 И в самом деле, позвольте мне представить Zamyla Чан, это 109 00:05:53,450 --> 00:05:55,870 преподавание году человек, который будет руководить каждым 110 00:05:55,870 --> 00:05:56,910 одного из этих прохождений. 111 00:05:56,910 --> 00:05:57,961 Zamyla? 112 00:05:57,961 --> 00:06:03,370 >> [Аплодисменты] 113 00:06:03,370 --> 00:06:03,975 ZAMYLA CHAN: О, привет, всем. 114 00:06:03,975 --> 00:06:05,130 Меня зовут Zamyla. 115 00:06:05,130 --> 00:06:08,250 Я младший учился на инженера в Winthrop дома. 116 00:06:08,250 --> 00:06:10,890 Но я стараюсь и установить за многие компьютерные науки курсы, как я 117 00:06:10,890 --> 00:06:13,350 может, именно поэтому я очень рад быть ведущим этого 118 00:06:13,350 --> 00:06:14,590 год пошаговые руководства. 119 00:06:14,590 --> 00:06:16,950 Прохождения, для меня были неотъемлемой частью моей CS50 120 00:06:16,950 --> 00:06:17,910 опыт. 121 00:06:17,910 --> 00:06:22,710 В руководстве для каждой р-множество, мы пройдем 122 00:06:22,710 --> 00:06:25,580 Проблема установлены вместе, смотреть на проблемы, вид 123 00:06:25,580 --> 00:06:27,360 разделить их на управляемые укусов. 124 00:06:27,360 --> 00:06:28,990 Я дам вам советы, методы, для получения 125 00:06:28,990 --> 00:06:30,820 до конца и приступить к работе. 126 00:06:30,820 --> 00:06:33,510 Я надеюсь увидеть всех вас на пошаговые руководства. 127 00:06:33,510 --> 00:06:34,720 Если вы не можете сделать это в лицо, то 128 00:06:34,720 --> 00:06:36,580 пожалуйста, мелодию в Интернете. 129 00:06:36,580 --> 00:06:36,840 >> DAVID Малан: Отлично. 130 00:06:36,840 --> 00:06:37,950 Спасибо, Zamyla. 131 00:06:37,950 --> 00:06:40,870 Так понимаю, что пошаговых руководств, действительно, в пятницу 132 00:06:40,870 --> 00:06:43,110 днем, но это преднамеренно дизайна, так что 133 00:06:43,110 --> 00:06:45,750 даже если вы не хотите посещать занятия в пятницу 134 00:06:45,750 --> 00:06:48,490 Днем, видео будет все быстрее более 135 00:06:48,490 --> 00:06:48,990 в выходные дни. 136 00:06:48,990 --> 00:06:51,880 Так понимаю, что cs50.net будет все в Zamyla 137 00:06:51,880 --> 00:06:53,130 пошаговые руководства. 138 00:06:54,800 --> 00:06:56,890 И что есть сегодняшняя дата и время, 3:00 PM 139 00:06:56,890 --> 00:06:58,370 Harberd Hall, 104. 140 00:06:58,370 --> 00:07:00,080 И некоторые из обучении стипендиатов также подготовили 141 00:07:00,080 --> 00:07:03,250 некоторые замечания для вас заочно, чтобы дать вам немного 142 00:07:03,250 --> 00:07:06,760 точки зрения о том, что их опыт и вступление в 143 00:07:06,760 --> 00:07:08,990 выходя из CS50 был. 144 00:07:08,990 --> 00:07:11,250 Таким образом, если мы могли бы тусклый свет на мгновение, я даю вам 145 00:07:11,250 --> 00:07:18,100 Некоторые из сотрудников CS50 в. 146 00:07:18,100 --> 00:07:20,440 >> JACKSON Steinkamp: Я взял CS50 в прошлом году, на первом курсе в 147 00:07:20,440 --> 00:07:22,880 упасть, и это абсолютно взорвал мой ум. 148 00:07:22,880 --> 00:07:25,090 Я никогда не принимал никакого программирования классов и прежде, 149 00:07:25,090 --> 00:07:26,380 и никогда не пришел с любого компьютера науки 150 00:07:26,380 --> 00:07:27,320 опыта. 151 00:07:27,320 --> 00:07:29,240 И только я услышал шум по поводу класса и 152 00:07:29,240 --> 00:07:30,050 решил принять его. 153 00:07:30,050 --> 00:07:31,780 >> JULIA Мительман: Это было действительно весело, очень интересным. 154 00:07:31,780 --> 00:07:33,480 Я до сих пор, и по сей день - 155 00:07:33,480 --> 00:07:36,560 Я только недавно увидела у меня есть дискета, что Давид дал нам 156 00:07:36,560 --> 00:07:38,140 на наш первый день лекций. 157 00:07:38,140 --> 00:07:40,020 Я повесил его на стену. 158 00:07:40,020 --> 00:07:42,410 Это, наверное, немного тормозной, но я висел на моей 159 00:07:42,410 --> 00:07:46,930 стены в классе в качестве напоминания о том, как прохладно было. 160 00:07:46,930 --> 00:07:49,240 >> TRAVIS DOWNS: Это так неловко. 161 00:07:49,240 --> 00:07:50,770 >> JACKSON Steinkamp: Компьютерные науки является то, что вы 162 00:07:50,770 --> 00:07:52,370 должны попытаться, даже если вы не из тех, 163 00:07:52,370 --> 00:07:54,980 традиционной науки. 164 00:07:54,980 --> 00:07:58,510 Это собственный опыт, и CS50 будет убедиться, что вы 165 00:07:58,510 --> 00:08:01,520 поддерживается также через него с его целая армия TFS. 166 00:08:01,520 --> 00:08:03,700 >> ALI Нама: Я принял это как на первом курсе, и поэтому я сделал много 167 00:08:03,700 --> 00:08:04,215 новых друзей. 168 00:08:04,215 --> 00:08:07,170 Я также познакомился с этим всю концентрацию и 169 00:08:07,170 --> 00:08:10,770 Весь инженерной школе, и я очень рекомендую его 170 00:08:10,770 --> 00:08:14,360 и приветствовать Вас на нашем CS50 семьи. 171 00:08:14,360 --> 00:08:17,510 >> Янив YACOBY: CS50 только научит вас, как использовать инструменты 172 00:08:17,510 --> 00:08:19,210 , которые являются широко доступными. 173 00:08:19,210 --> 00:08:21,840 Вам просто нужен ноутбук, необходимо веб-браузер, и вы 174 00:08:21,840 --> 00:08:26,030 нужно научиться писать код, и вы действительно можете построить 175 00:08:26,030 --> 00:08:27,400 аккуратные вещи. 176 00:08:27,400 --> 00:08:31,660 >> KAREN XIAO: Это так здорово иметь возможность сделать что-то 177 00:08:31,660 --> 00:08:34,580 и есть люди используют его, а люди это видят, и это 178 00:08:34,580 --> 00:08:35,900 Что я действительно люблю об этом. 179 00:08:35,900 --> 00:08:37,429 >> Тим Маклафлин: - чувство общности, я думаю, в этом 180 00:08:37,429 --> 00:08:39,470 конечно, больше, чем любой другой курс я взял до сих пор. 181 00:08:39,470 --> 00:08:41,350 Вы не просто с другой - 182 00:08:41,350 --> 00:08:42,740 Вы не заполнением другим требованиям. 183 00:08:42,740 --> 00:08:45,310 Вы не просто собирается лекции и собирается разделе. 184 00:08:45,310 --> 00:08:49,630 Но вы делаете тонны вещей, которые все 185 00:08:49,630 --> 00:08:51,560 программирование и все о технологии, но это не 186 00:08:51,560 --> 00:08:53,090 действительно чувствую, что класс большую часть времени. 187 00:08:53,090 --> 00:08:55,012 >> TRAVIS DOWNS: И в первый день, они раздали торт, и 188 00:08:55,012 --> 00:08:56,215 Я был мгновенно распродан. 189 00:08:56,215 --> 00:08:57,822 >> JACOB PRITT: Бесплатные сладости и пиццу. 190 00:08:57,822 --> 00:08:59,820 >> ZAMYLA CHAN: - независимо от ваших интересов уровне, я думаю, 191 00:08:59,820 --> 00:09:05,170 что CS50, вы будете иметь удовольствие, и вы будете интеллектуально 192 00:09:05,170 --> 00:09:06,070 стимулируется. 193 00:09:06,070 --> 00:09:07,926 >> MARK GROZEN-СМИТ: Это всегда вечеринке в классе, и это 194 00:09:07,926 --> 00:09:09,990 вечеринка каждую ночь работают над вашим р-множество. 195 00:09:09,990 --> 00:09:11,880 >> JACKSON Steinkamp: Каждый раз, когда вы закончите проблема набора, вы 196 00:09:11,880 --> 00:09:13,710 будет чувствовать себя, как вы закончили проект. 197 00:09:13,710 --> 00:09:16,580 >> MELISSA NIU: Это был первый год, и я сделал покупки. 198 00:09:16,580 --> 00:09:19,030 У меня были четыре класса готовы, и я был в Annenberg. 199 00:09:19,030 --> 00:09:21,670 И я наткнуться на друга, и он говорит, эй, я делаю покупки 200 00:09:21,670 --> 00:09:24,330 этого класса называют CS50, и вы должны пойти со мной. 201 00:09:24,330 --> 00:09:28,150 Закончилось тем, что, что осень, а после этого класса, я 202 00:09:28,150 --> 00:09:30,510 подумал, что я собираюсь несовершеннолетнего в CS. 203 00:09:30,510 --> 00:09:33,760 Но вот я, спустя три года, еще учась компьютера 204 00:09:33,760 --> 00:09:36,680 наука и фактически делают это в качестве основной, и я любил каждую 205 00:09:36,680 --> 00:09:37,780 Момент его. 206 00:09:37,780 --> 00:09:39,030 >> ROB Боуден: я понятия не имею. 207 00:09:46,408 --> 00:09:48,060 >> ALI Нама: Давайте посмотрим. 208 00:09:48,060 --> 00:09:49,200 >> MELISSA NIU: Сумасшествие. 209 00:09:49,200 --> 00:09:50,610 >> Выступающий 1: Я чувствую, что я был бы очень клише. 210 00:09:50,610 --> 00:09:52,530 Я просто говорю, вроде бы, удивительный. 211 00:09:52,530 --> 00:09:53,540 >> Янив YACOBY: Доступность. 212 00:09:53,540 --> 00:09:55,080 >> JACOB PRITT: Бесплатные сладости и пиццу. 213 00:09:55,080 --> 00:09:57,310 >> TRAVIS DOWNS: Не могу отказать класса, который раздает торт. 214 00:09:57,310 --> 00:09:58,510 >> Тим Маклафлин: Энергетика. 215 00:09:58,510 --> 00:10:00,040 >> Vipul Шехават: Essential. 216 00:10:00,040 --> 00:10:02,636 >> ROB Боуден: Позвольте мне придумать ответ. 217 00:10:02,636 --> 00:10:04,480 Я думаю, что есть что-то. 218 00:10:04,480 --> 00:10:07,092 О, боже. 219 00:10:07,092 --> 00:10:13,370 Да, Роб меня зовут Боуден, и это CS50. 220 00:10:13,370 --> 00:10:16,340 >> [Аплодисменты] 221 00:10:20,810 --> 00:10:23,390 DAVID Малан: Ладно, давайте начнем рисовать картину 222 00:10:23,390 --> 00:10:26,230 направления, в которых мы можем пойти, и давайте познакомимся 223 00:10:26,230 --> 00:10:28,190 эта концепция известна как здесь псевдокод. 224 00:10:28,190 --> 00:10:29,560 Так псевдокоде это не программирование 225 00:10:29,560 --> 00:10:30,810 Язык сам по себе. 226 00:10:30,810 --> 00:10:33,250 В этом нет ничего технических сама по себе, но это всего лишь своего рода 227 00:10:33,250 --> 00:10:36,490 общий способ выразить себя довольно точно, 228 00:10:36,490 --> 00:10:39,730 алгоритмически довольно, довольно процедурно, но без 229 00:10:39,730 --> 00:10:42,570 беспокоясь о том, какой язык вы выражении 230 00:10:42,570 --> 00:10:43,150 себя дюйма 231 00:10:43,150 --> 00:10:46,280 Это некоторые модели английского языка и языков программирования с 232 00:10:46,280 --> 00:10:48,790 которое вам посчастливилось быть знакомым, так что мы можем начать 233 00:10:48,790 --> 00:10:50,600 написание такого рода вещи, как мы идем. 234 00:10:50,600 --> 00:10:54,450 И в самом деле, Иосиф, я могу одолжить вам на сцену, чтобы быть 235 00:10:54,450 --> 00:10:55,490 писец здесь? 236 00:10:55,490 --> 00:11:00,130 Я пошел вперед здесь заранее и забыл надеть 237 00:11:00,130 --> 00:11:02,920 на некоторых носков сегодня, и это будет среди наших более 238 00:11:02,920 --> 00:11:03,780 смешные примеры. 239 00:11:03,780 --> 00:11:04,580 >> Теперь, ты мне нужен здесь. 240 00:11:04,580 --> 00:11:05,630 Я сделаю носки часть. 241 00:11:05,630 --> 00:11:08,040 Итак, у нас есть немного блокнота. 242 00:11:08,040 --> 00:11:09,940 Это буквально TextEdit в Mac. 243 00:11:09,940 --> 00:11:12,270 Мы на самом деле не собирался написать работающую программу, но 244 00:11:12,270 --> 00:11:14,220 мы только собираемся начать набрасывать на основе псевдокод 245 00:11:14,220 --> 00:11:17,830 по некоторым советам вы предоставляете меня здесь. 246 00:11:17,830 --> 00:11:20,760 Так вот мой кучу носков дома. 247 00:11:20,760 --> 00:11:23,320 У меня нет носков, когда я просыпаюсь утром, и мы теперь 248 00:11:23,320 --> 00:11:26,280 нужно написать программу, алгоритм рода, с которым 249 00:11:26,280 --> 00:11:27,900 чтобы получить эти носки на ногах. 250 00:11:27,900 --> 00:11:30,860 И на этом пути, давайте посмотрим, если мы споткнуться, или столкнуться, 251 00:11:30,860 --> 00:11:32,860 некоторые из идей, которые вы будете иметь, чтобы начать 252 00:11:32,860 --> 00:11:35,470 думать о гораздо более серьезно, при программировании 253 00:11:35,470 --> 00:11:37,950 чтобы ваши программы не ведут себя совершенно по назначению. 254 00:11:37,950 --> 00:11:39,580 >> Так что я сижу здесь. 255 00:11:39,580 --> 00:11:41,180 У меня есть куча носков. 256 00:11:41,180 --> 00:11:43,780 Что первое, что разумное человеческое существо будет 257 00:11:43,780 --> 00:11:46,600 делать, если целью является положить на пару носков? 258 00:11:46,600 --> 00:11:49,190 Кто-то дал мне один шаг, и только один шаг. 259 00:11:49,190 --> 00:11:49,796 Да? 260 00:11:49,796 --> 00:11:50,690 АУДИТОРИЯ: Согните вниз. 261 00:11:50,690 --> 00:11:54,290 DAVID Малан: нагнуться, ладно. 262 00:11:54,290 --> 00:11:55,540 Шаг второй. 263 00:11:59,975 --> 00:12:00,645 Шаг второй. 264 00:12:00,645 --> 00:12:01,840 АУДИТОРИЯ: Поднимите свой носок. 265 00:12:01,840 --> 00:12:03,220 DAVID Малан: Поднимите свой носок. 266 00:12:03,220 --> 00:12:07,610 Итак, небольшое двусмысленности здесь, и это является одним из первых 267 00:12:07,610 --> 00:12:09,380 камнем преткновения, что мы должны сознательно 268 00:12:09,380 --> 00:12:10,290 встречаемся здесь. 269 00:12:10,290 --> 00:12:14,110 Это немного неоднозначным, так забрать свой носок. 270 00:12:14,110 --> 00:12:17,425 Хорошо, я возьму это одно, а компьютер, понимают, всего 271 00:12:17,425 --> 00:12:20,420 бит, не будет иметь такого рода человеческого инстинкта просто 272 00:12:20,420 --> 00:12:21,490 выбрать ближайший к вам. 273 00:12:21,490 --> 00:12:23,590 Мы собираемся иметь, чтобы начать, в скором времени, выражая 274 00:12:23,590 --> 00:12:24,610 себя более точно. 275 00:12:24,610 --> 00:12:26,600 >> Ладно, второй шаг, это забрать ваши носки. 276 00:12:26,600 --> 00:12:27,520 Мы возьмем его. 277 00:12:27,520 --> 00:12:28,620 Шаг третий. 278 00:12:28,620 --> 00:12:29,532 В задней части. 279 00:12:29,532 --> 00:12:30,900 АУДИТОРИЯ: Найти подходящую пару. 280 00:12:30,900 --> 00:12:32,060 DAVID Малан: Найти подходящую пару. 281 00:12:32,060 --> 00:12:34,740 Итак, это хорошо. 282 00:12:34,740 --> 00:12:35,650 Я должен был выбрать этот носок. 283 00:12:35,650 --> 00:12:39,200 Таким образом, целью является найти подходящий носок, сейчас, но то, что 284 00:12:39,200 --> 00:12:39,990 что это значит? 285 00:12:39,990 --> 00:12:42,130 Разумного человеческого существа, как и в среду, когда я только 286 00:12:42,130 --> 00:12:44,700 знал, как найти Mike Smith в телефонной книге, только вид 287 00:12:44,700 --> 00:12:45,640 пошел со своим инстинктам. 288 00:12:45,640 --> 00:12:49,220 Но здесь, это очевидно, что это носок здесь, но компьютер 289 00:12:49,220 --> 00:12:51,350 Не будет так инстинктивно. 290 00:12:51,350 --> 00:12:53,830 Компьютер будет иметь набор битов, как мы 291 00:12:53,830 --> 00:12:55,380 обсуждаться в среду, и те 292 00:12:55,380 --> 00:12:56,710 организовано как-то в памяти. 293 00:12:56,710 --> 00:13:00,400 Но дело в том, что компьютер имеет только способность 294 00:13:00,400 --> 00:13:03,390 смотреть на вещи по одной за раз, и в самом деле, даже мы 295 00:13:03,390 --> 00:13:05,980 люди - даже если он чувствует, как я посмотрел вниз и раскол 296 00:13:05,980 --> 00:13:08,900 Секунду спустя я знаю, где носок, мой мозг и глаза 297 00:13:08,900 --> 00:13:12,000 Предположительно сделал быстрый обезжиренное тех носках, а затем запертом 298 00:13:12,000 --> 00:13:13,400 на каждый вопрос. 299 00:13:13,400 --> 00:13:15,780 >> Таким образом, если мы будем все более целенаправленными теперь, как компьютер, 300 00:13:15,780 --> 00:13:17,780 Как мне найти этого подходящую пару? 301 00:13:17,780 --> 00:13:18,890 Ну, у нас есть для перебора. 302 00:13:18,890 --> 00:13:21,440 Мы должны, возможно, цикл по этой мешанине носки 303 00:13:21,440 --> 00:13:25,760 пол которой я говорю что-то вроде ДЛЯ КАЖДОГО носок, поднять его 304 00:13:25,760 --> 00:13:30,195 вверх, а если же форму и размеры, как и другие единицы, то 305 00:13:30,195 --> 00:13:32,150 точка, точка, точка, мы будем продолжать эту историю. 306 00:13:32,150 --> 00:13:34,430 Таким образом, для каждого носка, поэтому я поднимаю этот. 307 00:13:34,430 --> 00:13:36,520 Я проверяю это равно это. 308 00:13:36,520 --> 00:13:38,250 Это не так, поэтому я отложил стороны. 309 00:13:38,250 --> 00:13:39,220 Тогда я итерации снова. 310 00:13:39,220 --> 00:13:40,340 Это один равными? 311 00:13:40,340 --> 00:13:42,010 Нет, это не так, поэтому я отложил ее в сторону. 312 00:13:42,010 --> 00:13:42,710 Является ли это? 313 00:13:42,710 --> 00:13:43,200 Нет. 314 00:13:43,200 --> 00:13:43,670 Этот? 315 00:13:43,670 --> 00:13:44,520 Нет, и так далее. 316 00:13:44,520 --> 00:13:48,730 И, наконец, надеюсь, я буду столкнуться с этой носок здесь. 317 00:13:48,730 --> 00:13:51,350 Так что, если это тот же формы, размера, возьмите его. 318 00:13:51,350 --> 00:13:53,980 >> А теперь, что бы быть наш следующий шаг здесь? 319 00:13:53,980 --> 00:13:54,402 Да? 320 00:13:54,402 --> 00:13:56,090 АУДИТОРИЯ: Определить правое от левого. 321 00:13:56,090 --> 00:13:58,980 DAVID Малан: Хорошо, определить правую и левую, так 322 00:13:58,980 --> 00:14:01,870 К счастью, такого рода работ. 323 00:14:01,870 --> 00:14:04,020 Немного симметричный, или я просто носить их таким образом. 324 00:14:04,020 --> 00:14:07,020 Ладно, я определил права. 325 00:14:07,020 --> 00:14:09,980 И теперь, прежде чем мы начнем, позвольте мне отметить, что Иосиф 326 00:14:09,980 --> 00:14:12,890 делали здесь как своего рода разбираются программиста. 327 00:14:12,890 --> 00:14:15,800 Итак, еще раз, нет никаких один из способов сделать это, но только за пределами 328 00:14:15,800 --> 00:14:18,480 Нумерация строк, Иосиф уже начали это делать 329 00:14:18,480 --> 00:14:19,460 вроде отступа. 330 00:14:19,460 --> 00:14:21,950 Действительно, это очень распространенная конвенции в области программирования, 331 00:14:21,950 --> 00:14:26,110 которым Когда вы делаете что-то итерационный, цикл стиля, как 332 00:14:26,110 --> 00:14:28,480 Мы подразумевающее с английской фразы "для каждого 333 00:14:28,480 --> 00:14:31,090 носков, "конвенция в псевдокоде и, как мы увидим, 334 00:14:31,090 --> 00:14:33,410 нормальные языки программирования, это просто абзац. 335 00:14:33,410 --> 00:14:36,240 Нажмите пробел несколько раз, нажмите клавишу Tab и т.п., 336 00:14:36,240 --> 00:14:40,660 так что вложенные под "Для каждого носка" является кусок 337 00:14:40,660 --> 00:14:43,430 Вещи, которые вы должны сделать в результате этого цикла. 338 00:14:43,430 --> 00:14:45,940 Так вот все, что передачи семантически. 339 00:14:45,940 --> 00:14:48,620 Теперь Между тем, "Если это такой же формы и размера," 340 00:14:48,620 --> 00:14:51,590 То, что "Возьмите его" с отступом дальнейшем просто означает, что 341 00:14:51,590 --> 00:14:54,370 это единственная вещь, которую вы должны сделать, если это условие, 342 00:14:54,370 --> 00:14:59,770 если это отрасль, которая развилке дорог, на самом деле правда. 343 00:14:59,770 --> 00:15:02,130 >> Так что теперь здесь, мы находимся на четвертом этапе, определить правую и левую. 344 00:15:02,130 --> 00:15:03,410 Я определены права. 345 00:15:03,410 --> 00:15:05,150 Дайте мне Шаг пятый. 346 00:15:05,150 --> 00:15:07,880 И технически, мы могли бы действительно назвать 347 00:15:07,880 --> 00:15:09,510 для каждой вещи - 348 00:15:09,510 --> 00:15:11,450 Вы, вероятно, следует нумеровать все строки, если 349 00:15:11,450 --> 00:15:12,190 мы собираемся это сделать. 350 00:15:12,190 --> 00:15:14,006 Иосиф: [неразборчиво] 351 00:15:14,006 --> 00:15:14,610 DAVID Малан: [неразборчиво]? 352 00:15:14,610 --> 00:15:16,070 Ладно, хорошо, хорошо, мы сделаем это ваш путь. 353 00:15:16,070 --> 00:15:19,590 Ладно, так что шаг пяти лет, как мы это делаем правый носок? 354 00:15:19,590 --> 00:15:22,310 Как мы можем перейти к следующему, здесь? 355 00:15:22,310 --> 00:15:22,730 Да? 356 00:15:22,730 --> 00:15:24,300 АУДИТОРИЯ: Поднимите правую ногу. 357 00:15:24,300 --> 00:15:27,100 DAVID Малан: Поднимите правую ногу, ладно. 358 00:15:27,100 --> 00:15:29,330 Шаг шесть? 359 00:15:29,330 --> 00:15:30,728 Быстро. 360 00:15:30,728 --> 00:15:31,202 Да. 361 00:15:31,202 --> 00:15:33,100 АУДИТОРИЯ: Найти открытый конец носка. 362 00:15:33,100 --> 00:15:34,440 DAVID Малан: Хорошо, найти открытый конец носка. 363 00:15:34,440 --> 00:15:34,840 Так хорошо. 364 00:15:34,840 --> 00:15:37,180 Так вот, если честно, очень распространенный инстинкт будет просто 365 00:15:37,180 --> 00:15:39,880 положить на правый носок, но это тоже довольно неоднозначно. 366 00:15:39,880 --> 00:15:42,750 Если компьютер или человек точно знает, что это значит, 367 00:15:42,750 --> 00:15:45,160 он не будет выполнять, что, так вот, у меня есть 368 00:15:45,160 --> 00:15:46,520 найдено открытие акции. 369 00:15:46,520 --> 00:15:48,222 Шаг семь? 370 00:15:48,222 --> 00:15:49,700 АУДИТОРИЯ: нажмите пальцами ног. 371 00:15:49,700 --> 00:15:51,070 DAVID Малан: Touch пальцы. 372 00:15:51,070 --> 00:15:53,546 Итак, теперь мы идем - 373 00:15:53,546 --> 00:15:56,480 Ладно, я собираюсь принять некоторые вольности здесь. 374 00:15:56,480 --> 00:15:57,110 Спасибо. 375 00:15:57,110 --> 00:15:59,210 Шаг восемь? 376 00:15:59,210 --> 00:16:00,060 Положите на носок. 377 00:16:00,060 --> 00:16:02,060 Ладно, так что теперь я, думаю, что мы достаточно близко, чтобы сортировать принять 378 00:16:02,060 --> 00:16:03,480 этого дома. 379 00:16:03,480 --> 00:16:05,980 Ладно, так что это идет вверх. 380 00:16:05,980 --> 00:16:07,950 Я возьму некоторые вольности с тем, что это означает на самом деле. 381 00:16:07,950 --> 00:16:08,920 Поставьте носок. 382 00:16:08,920 --> 00:16:10,853 Ладно, теперь шагу девять? 383 00:16:10,853 --> 00:16:11,740 АУДИТОРИЯ: Положите ногу. 384 00:16:11,740 --> 00:16:12,510 DAVID Малан: Спасибо. 385 00:16:12,510 --> 00:16:15,610 Шаг девять, положил ногу, и теперь мы можем повторить. 386 00:16:15,610 --> 00:16:19,540 Таким образом, по-видимому, теперь мы можем идти в шаг 10 и сказал выявления 387 00:16:19,540 --> 00:16:21,960 оставил носок, но это видимо уже сделали. 388 00:16:21,960 --> 00:16:24,100 >> И таким образом, я могу сортировать, повторите эти шаги. 389 00:16:24,100 --> 00:16:25,260 Но такого рода возникает вопрос. 390 00:16:25,260 --> 00:16:28,100 До этого последний раз мы хотели повторить что-то, мы 391 00:16:28,100 --> 00:16:30,730 сделал это многократно, снова и снова, для 392 00:16:30,730 --> 00:16:32,660 Каждый цикл, так сказать. 393 00:16:32,660 --> 00:16:36,420 Имеет ли смысл использовать цикл для того, чтобы обрабатывать как 394 00:16:36,420 --> 00:16:38,470 левый и правый носок? 395 00:16:38,470 --> 00:16:40,460 Потому что он чувствует, как эти операции являются в значительной степени 396 00:16:40,460 --> 00:16:43,090 идентичными, за исключением того, что один начинается здесь и одно 397 00:16:43,090 --> 00:16:44,850 Здесь начинается? 398 00:16:44,850 --> 00:16:47,400 У нас цикл, или же мы просто продолжать писать шагов 399 00:16:47,400 --> 00:16:48,745 10, 11 и 12? 400 00:16:48,745 --> 00:16:50,540 АУДИТОРИЯ: Loop. 401 00:16:50,540 --> 00:16:52,240 >> DAVID Малан: Хорошо, так цикле. 402 00:16:52,240 --> 00:16:54,730 Я на самом деле сказал бы просто продолжать идти. 403 00:16:54,730 --> 00:16:55,720 Так почему же это так? 404 00:16:55,720 --> 00:16:57,940 Ну, это на самом деле первый из наших неочевидным 405 00:16:57,940 --> 00:17:01,210 проектных решений, а на самом деле, одна из метрик, с которыми 406 00:17:01,210 --> 00:17:03,990 мы начинаем оценивать, для себя и для вас, 407 00:17:03,990 --> 00:17:06,780 Качество программы, насколько хорошо разработана она есть. 408 00:17:06,780 --> 00:17:09,619 Вы сделали минимальное количество работы, необходимой для 409 00:17:09,619 --> 00:17:12,480 получить работу быстрее всего, либо в виде 410 00:17:12,480 --> 00:17:15,430 Ваше время или в терминах времени работы компьютера? 411 00:17:15,430 --> 00:17:17,589 Сколько операций делает это берет, чтобы выполнить? 412 00:17:17,589 --> 00:17:20,180 Так что, возможно, это возможность для цикла, поскольку 413 00:17:20,180 --> 00:17:22,829 Как только я начала копирования и вставки, как Иосиф эффективно 414 00:17:22,829 --> 00:17:25,010 начнут делать в момент, ты вроде тратить 415 00:17:25,010 --> 00:17:27,140 время, и ты ведешь себя вдвойне выразительны. 416 00:17:27,140 --> 00:17:30,260 >> Но в то же время, это действительно только два специальных 417 00:17:30,260 --> 00:17:31,890 случаях, влево и вправо. 418 00:17:31,890 --> 00:17:34,930 И если раньше, я мог бы иметь 10 или 20 или более носки 419 00:17:34,930 --> 00:17:37,960 куча, это определенно имеет смысл не есть 50 линий 420 00:17:37,960 --> 00:17:40,180 Код говоря проверить этот носок, потом следующий, 421 00:17:40,180 --> 00:17:41,300 Затем следующий. 422 00:17:41,300 --> 00:17:43,450 Вот, это немного меньше, очевидно, и я бы предложил 423 00:17:43,450 --> 00:17:44,390 что мы могли бы пойти в любую сторону. 424 00:17:44,390 --> 00:17:46,720 Мы можем либо, что цикл, хотя он только петли 425 00:17:46,720 --> 00:17:50,620 в два раза, или мы можем просто скопировать и вставить чуть-чуть 426 00:17:50,620 --> 00:17:53,270 Здесь для того, чтобы получить работу. 427 00:17:53,270 --> 00:17:55,210 Но эта программа глючит, так сказать. 428 00:17:55,210 --> 00:17:59,120 Он может иметь некоторые ошибки, ошибки, или угловой случаях, так 429 00:17:59,120 --> 00:18:00,860 говорят, что мы действительно не ожидали. 430 00:18:00,860 --> 00:18:03,400 Ничего пошло не так на этот раз, но что пошло не так 431 00:18:03,400 --> 00:18:06,100 При выполнении этой программы? 432 00:18:06,100 --> 00:18:07,040 АУДИТОРИЯ: Вы не имеете любые носки. 433 00:18:07,040 --> 00:18:08,980 >> DAVID Малан: Так не могло быть и носки существует вообще. 434 00:18:08,980 --> 00:18:10,380 Так что давайте считать, что угол случай. 435 00:18:10,380 --> 00:18:14,670 Таким образом, если мы могли бы прокрутить назад к первому шагу, так что шаг один был 436 00:18:14,670 --> 00:18:16,540 наклониться, так что проверку. 437 00:18:16,540 --> 00:18:21,250 Шаг второй, забрать свой носок, а затем найти соответствующие носок, 438 00:18:21,250 --> 00:18:22,420 определить права. 439 00:18:22,420 --> 00:18:25,050 Мы вроде как сделали целую кучу предположений, и это, 440 00:18:25,050 --> 00:18:27,720 честно говоря, почему программа иногда краху. 441 00:18:27,720 --> 00:18:30,240 Если вы программист, сделал некоторые предположения, как 442 00:18:30,240 --> 00:18:33,000 конечно, там будет носки или наверняка есть происходит 443 00:18:33,000 --> 00:18:35,310 чтобы оставить память в компьютере, конечно, там собирается 444 00:18:35,310 --> 00:18:37,420 быть дискового пространства осталось на жестком диске - 445 00:18:37,420 --> 00:18:39,040 Ну, а если вы делаете эти предположения, и это не так, 446 00:18:39,040 --> 00:18:41,880 В самом деле, реальность, которая знает, что иногда компьютер 447 00:18:41,880 --> 00:18:42,520 собираетесь делать? 448 00:18:42,520 --> 00:18:44,450 А иногда, когда вы получаете вращающийся шар пляже или 449 00:18:44,450 --> 00:18:47,750 замерзшие окна и т.п., вот именно потому, что некоторые 450 00:18:47,750 --> 00:18:50,980 Программист не предполагал, эти так называемые случаи углу. 451 00:18:50,980 --> 00:18:53,050 Что еще могло пойти не так в этой программе? 452 00:18:53,050 --> 00:18:53,330 Да? 453 00:18:53,330 --> 00:18:55,950 >> АУДИТОРИЯ: Вам не придется правую ногу и левую ногу. 454 00:18:55,950 --> 00:18:58,920 DAVID Малан: Ладно, не может иметь как правую ногу и 455 00:18:58,920 --> 00:19:01,940 Левая нога, и поэтому эта программа не может быть универсально 456 00:19:01,940 --> 00:19:02,590 применимы. 457 00:19:02,590 --> 00:19:03,658 Другие? 458 00:19:03,658 --> 00:19:05,650 Зала: Вы могли бы взял сироту носок. 459 00:19:05,650 --> 00:19:07,970 DAVID Малан: я бы взял сироту носок, так 460 00:19:07,970 --> 00:19:11,250 несовпадающих носок, который просто не имеет братьев и сестер, потому что у меня 461 00:19:11,250 --> 00:19:13,650 потерял его, он разрывается, это в мытье еще, и тому подобное. 462 00:19:13,650 --> 00:19:15,550 Так что, тоже, на самом деле не были обработаны. 463 00:19:15,550 --> 00:19:15,790 Да? 464 00:19:15,790 --> 00:19:17,510 Зала: Вы, возможно, уже носки. 465 00:19:17,510 --> 00:19:19,050 DAVID Малан: Я, возможно, уже носки. 466 00:19:19,050 --> 00:19:20,080 Я на самом деле не проверить. 467 00:19:20,080 --> 00:19:23,350 Если у вас нет носков, затем поступлю 468 00:19:23,350 --> 00:19:24,330 линии один и два. 469 00:19:24,330 --> 00:19:24,980 А это может случиться. 470 00:19:24,980 --> 00:19:26,880 Вы засыпаете с вашими носками, и тому подобное, так 471 00:19:26,880 --> 00:19:28,860 , что тоже очень разумным углом случай. 472 00:19:28,860 --> 00:19:29,630 А может быть, один другого? 473 00:19:29,630 --> 00:19:31,310 Аудитория: носок наизнанку. 474 00:19:31,310 --> 00:19:34,000 DAVID Малан: Так носок наизнанку, так что мы сделали никакой ошибки 475 00:19:34,000 --> 00:19:35,330 проверки, короче говоря. 476 00:19:35,330 --> 00:19:38,550 Мы не проверяли, если государство мира так, как мы ожидали. 477 00:19:38,550 --> 00:19:41,310 Мы не проверяли, если мы на самом деле нашел то, что мы ищем. 478 00:19:41,310 --> 00:19:43,310 >> И хотя это является своего рода смешной пример 479 00:19:43,310 --> 00:19:46,110 с участием носки, в конце концов, это именно то, 480 00:19:46,110 --> 00:19:48,740 рода мышление необходимо иметь при написании программ, 481 00:19:48,740 --> 00:19:51,740 даже в царапинам, а также в C, в JavaScript, в PHP, 482 00:19:51,740 --> 00:19:53,920 потому что в противном случае, ваши программы будут проявлять 483 00:19:53,920 --> 00:19:56,980 эквивалента, что вращение пляжный волейбол или просто дать 484 00:19:56,980 --> 00:19:58,210 неточные результаты. 485 00:19:58,210 --> 00:20:00,250 Так что большое спасибо здесь, чтобы наши писцом Джозефа. 486 00:20:00,250 --> 00:20:05,060 [Аплодисменты] 487 00:20:05,060 --> 00:20:06,850 >> DAVID Малан: Хорошо, так в чем же, в 488 00:20:06,850 --> 00:20:08,230 Действительно, компьютерная программа? 489 00:20:08,230 --> 00:20:09,670 Ну, давайте бросим быстрый взгляд на 490 00:20:09,670 --> 00:20:11,100 Представитель здесь. 491 00:20:11,100 --> 00:20:15,260 Итак, это программа, написанная на языке, называемом C. С 492 00:20:15,260 --> 00:20:17,830 довольно старый эти дни, но многие новые языки строятся 493 00:20:17,830 --> 00:20:18,460 на нем. 494 00:20:18,460 --> 00:20:21,180 Действительно, PHP, один из веб-ориентированных языков, которые мы будем 495 00:20:21,180 --> 00:20:24,050 использовать ближе к концу семестра, сама по себе имеет то, что называется 496 00:20:24,050 --> 00:20:27,550 переводчик, программа, которая написана на C, но об этом 497 00:20:27,550 --> 00:20:28,690 Во многих недель. 498 00:20:28,690 --> 00:20:30,840 Но в этой программе, а это что значит написать 499 00:20:30,840 --> 00:20:32,880 Программа, хотя и очень простой. 500 00:20:32,880 --> 00:20:35,540 У нас есть некоторые довольно загадочные синтаксиса, но вы можете 501 00:20:35,540 --> 00:20:38,340 наверное, догадались, даже если вы никогда не программировали раньше, что 502 00:20:38,340 --> 00:20:39,750 это делает программа. 503 00:20:39,750 --> 00:20:43,640 В самом деле, я не знаю, что Printf есть, но, конечно, печатать 504 00:20:43,640 --> 00:20:45,700 вызывает в воображении идею печатать что-то. 505 00:20:45,700 --> 00:20:48,590 А так да, эта программа в конечном счете, будет распечатать 506 00:20:48,590 --> 00:20:50,250 слова «Hello, World». 507 00:20:50,250 --> 00:20:53,390 >> Теперь, есть ли у вас Mac или PC или Linux компьютере, шансы 508 00:20:53,390 --> 00:20:55,550 , по крайней мере, если вы скачали некоторые свободно 509 00:20:55,550 --> 00:20:58,000 доступно программное обеспечение, вы могли писать программы на 510 00:20:58,000 --> 00:21:00,310 свой ноутбук в течение достаточно долгого времени теперь. 511 00:21:00,310 --> 00:21:03,040 В Mac OS, например, есть такая программа под названием 512 00:21:03,040 --> 00:21:05,340 Терминал, который поставляется с Mac, которые, как правило, в вашей 513 00:21:05,340 --> 00:21:07,550 Утилиты папку, и она вообще открывается черно- 514 00:21:07,550 --> 00:21:09,820 белом или белые и черные окна, на котором у вас есть 515 00:21:09,820 --> 00:21:11,410 подскажут, на котором можно вводить команды. 516 00:21:11,410 --> 00:21:13,060 Так что это на самом деле напоминают то, что компьютеры 517 00:21:13,060 --> 00:21:15,100 было раньше графический пользовательский 518 00:21:15,100 --> 00:21:16,710 интерфейсы, GUI, пришли вместе. 519 00:21:16,710 --> 00:21:19,200 Теперь, в Windows, у вас есть аналогичный механизм в виде 520 00:21:19,200 --> 00:21:20,130 из командной строки. 521 00:21:20,130 --> 00:21:23,430 >> Но то, что я собираюсь сделать, так это открыть, скажем, 522 00:21:23,430 --> 00:21:26,580 TextEdit снова, так же программы мы использовали для 523 00:21:26,580 --> 00:21:28,870 псевдокоде минуту назад, и я собираюсь идти вперед и 524 00:21:28,870 --> 00:21:30,080 написать свою первую программу. 525 00:21:30,080 --> 00:21:34,030 Включить stdio.h, что бы это ни средств, Int основной 526 00:21:34,030 --> 00:21:36,880 пустота, что бы это ни средств, а затем в середине здесь, 527 00:21:36,880 --> 00:21:40,560 Е ("Hello, World."). И тогда близко цитаты, 528 00:21:40,560 --> 00:21:42,340 закрыть парень, точка с запятой. 529 00:21:42,340 --> 00:21:44,460 Теперь я собираюсь идти вперед и просто нажать Command-S. Я собираюсь 530 00:21:44,460 --> 00:21:47,650 идти вперед и сохранить это как hello.c, поэтому конвенции в 531 00:21:47,650 --> 00:21:50,530 мир программирования C является имя файла с точкой. 532 00:21:50,530 --> 00:21:52,880 Я собираюсь просто положить в домашний каталог Джона Гарварда, 533 00:21:52,880 --> 00:21:56,370 Здесь, нажмите кнопку Сохранить, и теперь я собираюсь перейти к этому 534 00:21:56,370 --> 00:21:59,110 окно терминала, который снова это черно-белые строки 535 00:21:59,110 --> 00:22:00,860 где я могу выполнять команды. 536 00:22:00,860 --> 00:22:04,550 >> Я могу запускать программы, введя свое имя, а не 537 00:22:04,550 --> 00:22:06,710 двойному щелчку значков в обычном смысле. 538 00:22:06,710 --> 00:22:10,590 Но дело в том, о C в том, что язык, как С первого 539 00:22:10,590 --> 00:22:13,150 приходит в таком виде, то, что называется исходным кодом. 540 00:22:13,150 --> 00:22:15,400 То, что выглядит немного как английский язык, но это 541 00:22:15,400 --> 00:22:17,980 Определенно менее, как английский, чем псевдокод Иосифа 542 00:22:17,980 --> 00:22:18,930 Минуту назад. 543 00:22:18,930 --> 00:22:20,560 Это немного более сложных. 544 00:22:20,560 --> 00:22:22,830 Кажется следовать некоторым узорами или правил. 545 00:22:22,830 --> 00:22:25,300 Тот факт, что у меня есть фигурные скобки, точки с запятой, кавычки, 546 00:22:25,300 --> 00:22:28,240 угловые скобки, чувствует, как компьютер пришел с этой 547 00:22:28,240 --> 00:22:29,250 рода язык. 548 00:22:29,250 --> 00:22:32,010 Но если я уйду, сейчас, это окно терминала, я могу запустить 549 00:22:32,010 --> 00:22:35,250 команда, которая собирается преобразовать исходный код 550 00:22:35,250 --> 00:22:36,610 так называемый объектный код. 551 00:22:36,610 --> 00:22:39,690 Это собирается конвертировать Английский-подобный синтаксис для нулей 552 00:22:39,690 --> 00:22:41,760 и те, те же самые виды из нулей и единиц, мы 553 00:22:41,760 --> 00:22:42,820 говорили об среду. 554 00:22:42,820 --> 00:22:44,810 Теперь, я собираюсь выполнить команду называют Clang. 555 00:22:44,810 --> 00:22:47,750 Подробнее об этом в ближайшие недели, но это программа с 556 00:22:47,750 --> 00:22:52,330 который я могу преобразовать hello.c в целую кучу 557 00:22:52,330 --> 00:22:53,640 из нулей и единиц. 558 00:22:53,640 --> 00:22:54,950 >> Теперь, я выполнить эту команду. 559 00:22:54,950 --> 00:22:57,940 Я бежал Clang, а потом я сказал себе работать на этом файле 560 00:22:57,940 --> 00:23:00,630 называется hello.c, который я создал минуту назад, и 561 00:23:00,630 --> 00:23:02,090 ничто, кажется, случилось. 562 00:23:02,090 --> 00:23:05,550 Но на самом деле, если бы я пошарил мой домашний каталог, я хотел бы видеть 563 00:23:05,550 --> 00:23:09,620 что это глупо именем a.out программа существует в настоящее время. 564 00:23:09,620 --> 00:23:12,250 Это просто имя по умолчанию для программы при записи в 565 00:23:12,250 --> 00:23:15,140 С. Мы можем изменить это в конечном итоге, но a.out является 566 00:23:15,140 --> 00:23:18,340 Название программы я просто превращаются в нули и единицы. 567 00:23:18,340 --> 00:23:21,490 А теперь, что это нули и единицы, мой Mac, в данном случае, или 568 00:23:21,490 --> 00:23:24,670 вашего ПК с Windows, можно понять те биты, те, 569 00:23:24,670 --> 00:23:25,410 нулей и единиц. 570 00:23:25,410 --> 00:23:29,130 И поэтому, когда я ударил Enter, я вижу "Hello, World!" 571 00:23:29,130 --> 00:23:31,270 >> Но это немного багги. 572 00:23:31,270 --> 00:23:34,110 Я не совсем сказать "привет, мир: воздух: - jharvard". Воздух 573 00:23:34,110 --> 00:23:35,020 имя моего компьютера. 574 00:23:35,020 --> 00:23:37,730 Jharvard это имя учетной записи, так что я четко 575 00:23:37,730 --> 00:23:41,070 исключить из программы? 576 00:23:41,070 --> 00:23:42,480 Какие-то строки. 577 00:23:42,480 --> 00:23:45,150 Я не попал в эквиваленте Enter или возврат каретки, 578 00:23:45,150 --> 00:23:47,760 и это, опять же, свидетельствует тот факт, что компьютеры могут 579 00:23:47,760 --> 00:23:49,800 только то, что вы говорите им сделать. 580 00:23:49,800 --> 00:23:52,400 И то, что я не говорил компьютера двигаться 581 00:23:52,400 --> 00:23:53,860 курсора на следующую строку - 582 00:23:53,860 --> 00:23:55,200 ну, это, конечно, не собираюсь просто сделать это 583 00:23:55,200 --> 00:23:56,750 самонадеянно для меня. 584 00:23:56,750 --> 00:24:00,860 Так что, если я возвращаюсь к моей программе, и я говорю \ п - 585 00:24:00,860 --> 00:24:03,180 Таким образом, \ п, как мы скоро увидим, это путь 586 00:24:03,180 --> 00:24:06,910 представляющих странные вещи, как символы новой строки, вещи 587 00:24:06,910 --> 00:24:08,840 которые могли бы быть результатом 588 00:24:08,840 --> 00:24:09,940 удара клавишу ввода. 589 00:24:09,940 --> 00:24:11,730 Но сейчас, просто знаю, что удары Enter ключ будет 590 00:24:11,730 --> 00:24:14,170 просто сделать наш код выглядит странным, так что мир решил, вы знаете, 591 00:24:14,170 --> 00:24:16,580 что, чтобы держать вещи красивее, чтобы держать его в одной строке, давайте 592 00:24:16,580 --> 00:24:19,070 просто сказать \ п представляет новую линию. 593 00:24:19,070 --> 00:24:22,260 Позвольте мне сохраните свой файл, вернитесь в окно терминала, и 594 00:24:22,260 --> 00:24:25,290 повторные a.out, Enter. 595 00:24:25,290 --> 00:24:28,374 Тем не менее ошибки, но зачем? 596 00:24:28,374 --> 00:24:29,750 >> АУДИТОРИЯ: [неразборчиво] 597 00:24:29,750 --> 00:24:31,540 DAVID Малан: Да, так что мне нужно перекомпилировать. 598 00:24:31,540 --> 00:24:34,610 Таким образом, для компиляции программы просто означает, превратить его из источника 599 00:24:34,610 --> 00:24:37,660 код, объектный код, исходный код нулей и единиц. 600 00:24:37,660 --> 00:24:40,830 Теперь, сам факт, что я ударил сохранить в этом TextEdit не имеет 601 00:24:40,830 --> 00:24:43,450 , касающиеся тех нулей и единиц, потому что в первую очередь необходимо 602 00:24:43,450 --> 00:24:48,260 Скажите Clang эй, я изменил эти строки кода, 603 00:24:48,260 --> 00:24:49,040 исходный код. 604 00:24:49,040 --> 00:24:51,010 Вам необходимо восстановить a.out. 605 00:24:51,010 --> 00:24:52,990 Ничто, кажется, случилось, но в компьютере, 606 00:24:52,990 --> 00:24:55,820 в командной строке, так что говорить, когда ничего не происходит, 607 00:24:55,820 --> 00:24:57,510 Обычно это означает, что все хорошо. 608 00:24:57,510 --> 00:24:59,040 Когда что-то случается, это означает, 609 00:24:59,040 --> 00:25:00,420 Вы испортили, вообще. 610 00:25:00,420 --> 00:25:04,020 >> Итак, давайте теперь переходим к a.out, да и сейчас, у меня есть "привет, 611 00:25:04,020 --> 00:25:04,440 мира ". 612 00:25:04,440 --> 00:25:05,990 А теперь, что об этих нулей и единиц? 613 00:25:05,990 --> 00:25:07,520 Где, собственно, такие? 614 00:25:07,520 --> 00:25:10,710 Ну, я не могу действительно просто какая-то копаться очень 615 00:25:10,710 --> 00:25:11,210 эффективно. 616 00:25:11,210 --> 00:25:12,650 Позвольте мне открыть TextEdit. 617 00:25:12,650 --> 00:25:14,060 Вот a.out. 618 00:25:14,060 --> 00:25:17,390 Позвольте мне идти вперед и открыть это, и это, видимо, то, что моя 619 00:25:17,390 --> 00:25:19,080 Программа выглядит. 620 00:25:19,080 --> 00:25:21,570 Так что я открыл, не hello.c, но a.out. 621 00:25:21,570 --> 00:25:23,960 Но это на самом деле не то, что моя программа на самом деле. 622 00:25:23,960 --> 00:25:26,450 Понятно, что это своего рода буквенных символов. 623 00:25:26,450 --> 00:25:28,670 Я не вижу никаких нулей и единиц, но это 624 00:25:28,670 --> 00:25:30,780 a.out, потому что это программа. 625 00:25:30,780 --> 00:25:33,540 Нули и единицы - но TextEdit, как следует из названия, это 626 00:25:33,540 --> 00:25:37,130 так же, как Блокнот на Windows, это просто текстовый редактор, так что это 627 00:25:37,130 --> 00:25:39,730 запутанной все эти нули и единицы, как 628 00:25:39,730 --> 00:25:41,870 если бы они были, то какие? 629 00:25:41,870 --> 00:25:43,380 ASCII символов. 630 00:25:43,380 --> 00:25:45,020 >> Так вспомним в среду, мы просто пришли к этому 631 00:25:45,020 --> 00:25:48,740 произвольное отображение цифр, или битов, на письма, содержащие 632 00:25:48,740 --> 00:25:51,690 алфавит и знаки препинания и тому подобное. 633 00:25:51,690 --> 00:25:54,920 Таким образом, TextEdit, что это текстовый редактор искажая 634 00:25:54,920 --> 00:25:57,270 эти модели из нулей и единиц, которые должны быть 635 00:25:57,270 --> 00:25:59,990 печать слова, как "привет, мир". Это их отображения 636 00:25:59,990 --> 00:26:02,150 как ASCII, и именно поэтому он выглядит немного грязным. 637 00:26:02,150 --> 00:26:04,910 Теперь, есть некоторые намеки на правильность здесь. 638 00:26:04,910 --> 00:26:08,090 Обратите внимание, если я выделить, есть намек на самом деле "привет, 639 00:26:08,090 --> 00:26:10,810 мира ", так что где-то в этой программе 640 00:26:10,810 --> 00:26:12,120 предложение, которое я написал. 641 00:26:12,120 --> 00:26:14,610 Но давайте идти вперед и теперь видим с другой программой. 642 00:26:14,610 --> 00:26:17,420 Это не тот, который мы будем использовать, что часто, но он также поставляется с 643 00:26:17,420 --> 00:26:19,970 Mac и будет внутри CS50 прибора. 644 00:26:19,970 --> 00:26:23,940 Позвольте мне идти вперед и открыть с помощью программы под названием XXD. 645 00:26:23,940 --> 00:26:26,530 >> Назад в день, большинство программ были названы довольно загадочно: 646 00:26:26,530 --> 00:26:28,200 и поэтому тенденция продолжается. 647 00:26:28,200 --> 00:26:31,160 Но-B означает плюнуть эту программу в двоичном виде. 648 00:26:31,160 --> 00:26:32,330 Не запустить его. 649 00:26:32,330 --> 00:26:35,770 Показать мне, как нули и единицы, и это C 650 00:26:35,770 --> 00:26:37,190 Программа, которую мы только что написали. 651 00:26:37,190 --> 00:26:39,920 Теперь, я, как человек здесь, я честно не знаю, что 652 00:26:39,920 --> 00:26:42,230 эти различные узоры из нулей и единиц представляют. 653 00:26:42,230 --> 00:26:45,320 Назад в день, я, с моим перфокарт и т.п., будет 654 00:26:45,320 --> 00:26:48,080 на самом деле нужно посмотреть, что эти различные модели 655 00:26:48,080 --> 00:26:51,560 01111000, на самом деле представляют. 656 00:26:51,560 --> 00:26:54,390 Или еще хуже, я должен был бы сделать штамповки или создания 657 00:26:54,390 --> 00:26:56,130 из этих моделей из нулей и единиц. 658 00:26:56,130 --> 00:27:00,410 Но сейчас, принять на веру, что процессор, Intel внутри, так 659 00:27:00,410 --> 00:27:03,440 говорить, внутри все наши компьютеры в эти дни, знает, 660 00:27:03,440 --> 00:27:05,100 как интерпретировать эти нули и единицы. 661 00:27:05,100 --> 00:27:07,010 А некоторые нули и единицы означают печати. 662 00:27:07,010 --> 00:27:09,040 Некоторые нулей и единиц означает воспроизведение звука. 663 00:27:09,040 --> 00:27:13,630 Некоторые нулей и единиц означает принимать пользовательский ввод с клавиатуры. 664 00:27:13,630 --> 00:27:15,960 Там все виды различных моделей, но мы, к счастью, 665 00:27:15,960 --> 00:27:19,680 как люди, только в общих чертах нужно беспокоиться о программировании на 666 00:27:19,680 --> 00:27:21,270 это довольно высоком уровне. 667 00:27:21,270 --> 00:27:24,320 А в других классах CS вы можете погрузиться поглубже и посмотреть 668 00:27:24,320 --> 00:27:26,820 на вещи, как эти нули и единицы, или еще 669 00:27:26,820 --> 00:27:28,000 прочего еще. 670 00:27:28,000 --> 00:27:29,210 >> Итак, теперь давайте преобразуем это. 671 00:27:29,210 --> 00:27:32,550 Давайте двигаться очень быстро от C и двигаться к чему-то 672 00:27:32,550 --> 00:27:36,390 немного более утешительные, немного более интересной, в том, что 673 00:27:36,390 --> 00:27:39,340 мы можем вернуть нашу анимацию, звуки и т.п., 674 00:27:39,340 --> 00:27:40,940 ясно, избежал нас в этом 675 00:27:40,940 --> 00:27:42,480 довольно примитивный интерфейс. 676 00:27:42,480 --> 00:27:46,430 Так это же программу в C может быть представлена ​​сейчас в этом 677 00:27:46,430 --> 00:27:50,060 Язык программирования называется царапинам следующим образом. 678 00:27:50,060 --> 00:27:54,230 Это эквивалент этой программы привет мир написаны на 679 00:27:54,230 --> 00:27:57,370 этот стиль паззл языке под названием Scratch. 680 00:27:57,370 --> 00:28:00,600 Итак, позвольте мне идти вперед и открывать эту программу. 681 00:28:00,600 --> 00:28:01,850 Он вновь призвал к царапинам. 682 00:28:01,850 --> 00:28:03,880 Это в свободном доступе, и это то же самое мы 683 00:28:03,880 --> 00:28:05,120 началась сегодня на. 684 00:28:05,120 --> 00:28:07,790 >> Так что здесь Scratch, и он разбивается на несколько 685 00:28:07,790 --> 00:28:09,700 различных частей. 686 00:28:09,700 --> 00:28:12,690 На самом верхнем правом углу, у нас есть так называемые стадии, и 687 00:28:12,690 --> 00:28:13,670 Действительно, там печенье 688 00:28:13,670 --> 00:28:15,440 выполняется только немного назад. 689 00:28:15,440 --> 00:28:19,660 И на этом этапе, что называется спрайты, символов или 690 00:28:19,660 --> 00:28:21,030 объектов или лиц. 691 00:28:21,030 --> 00:28:23,320 Это действительно не имеет значения, как вы думаете о них, но они 692 00:28:23,320 --> 00:28:26,740 являются программируемыми, движимых вещей, и в этом случае, это 693 00:28:26,740 --> 00:28:30,730 программы, что наш студент написал имеет несколько пряников 694 00:28:30,730 --> 00:28:32,990 печенье, пару круговых печенье, целый букет 695 00:28:32,990 --> 00:28:35,430 сердца, целую кучу очков. 696 00:28:38,170 --> 00:28:42,420 Из-за этого, он или она может запрограммировать каждую из этих 697 00:28:42,420 --> 00:28:44,720 отдельные символы по отдельности. 698 00:28:44,720 --> 00:28:46,480 >> Итак, что это значит для программирования этих персонажей? 699 00:28:46,480 --> 00:28:49,440 Хорошо, позвольте мне идти вперед и нажмите на эту левой руке печенье 700 00:28:49,440 --> 00:28:51,830 и перейдите к левой верхней здесь. 701 00:28:51,830 --> 00:28:53,670 В верхнем левом моего экрана в настоящее время является 702 00:28:53,670 --> 00:28:55,280 так называемые сценарии области. 703 00:28:55,280 --> 00:28:58,790 Это своего рода чистый лист, на начальном этапе, на котором я могу 704 00:28:58,790 --> 00:29:01,540 перетащить кусочки головоломки, что, откровенно говоря, сделать 705 00:29:01,540 --> 00:29:03,020 именно то, что они говорят. 706 00:29:03,020 --> 00:29:05,820 На самом верху этой стопки кусочки головоломки является слово 707 00:29:05,820 --> 00:29:09,340 Когда Зеленый флаг Нажал, и если вы раньше не замечали, 708 00:29:09,340 --> 00:29:12,300 так, как я начал, что печенье песня была нажатия, в буквальном смысле, 709 00:29:12,300 --> 00:29:13,320 зеленый флаг. 710 00:29:13,320 --> 00:29:16,590 Так что паззл в левом верхнем углу есть означает, что при 711 00:29:16,590 --> 00:29:19,780 человеческие клики зеленый флаг, продолжил делать 712 00:29:19,780 --> 00:29:21,110 Следующие вещи. 713 00:29:21,110 --> 00:29:23,330 >> Теперь, что же они печенье продолжить делать? 714 00:29:23,330 --> 00:29:25,810 Я действительно не знаю, как интерпретировать это, но 715 00:29:25,810 --> 00:29:29,220 печенье по-видимому установить его канавке к нулю, то она ждала 716 00:29:29,220 --> 00:29:31,740 трех секунд, затем он изменил свои группы в одну, то 717 00:29:31,740 --> 00:29:33,590 подождал секунду, затем она изменила свое 718 00:29:33,590 --> 00:29:35,100 паз назад к одному. 719 00:29:35,100 --> 00:29:37,373 И тогда это на самом деле выглядит немного ошибка, не должно 720 00:29:37,373 --> 00:29:39,440 должны изменить свой паз снова и снова, если это не 721 00:29:39,440 --> 00:29:43,380 изменяется в другом месте, но это ряд шагов, это то, что 722 00:29:43,380 --> 00:29:46,800 диктовать поведение данного печенья. 723 00:29:46,800 --> 00:29:49,180 Так что давайте на самом деле прокрутить назад и не смотреть на то, 724 00:29:49,180 --> 00:29:50,430 столь сложного нет. 725 00:29:50,430 --> 00:29:52,260 Позвольте мне идти вперед и перейдите в меню Файл, Новый, 726 00:29:52,260 --> 00:29:53,560 и получить чистого листа. 727 00:29:53,560 --> 00:29:56,590 >> Так что теперь, я действительно есть пустая область сценарий, пустая сцена, 728 00:29:56,590 --> 00:29:59,380 с нашей нуля спрайтом по умолчанию, а в левом верхнем 729 00:29:59,380 --> 00:30:01,670 на экране у меня поддон всех своих 730 00:30:01,670 --> 00:30:03,400 доступных частей головоломки. 731 00:30:03,400 --> 00:30:06,300 И мы не будем пройти через почти что многие из этих вещей 732 00:30:06,300 --> 00:30:09,470 сегодня, потому что, опять же, большинство из них очевидны, но мы будем 733 00:30:09,470 --> 00:30:12,370 попытаться классифицировать их и указать на сходство 734 00:30:12,370 --> 00:30:15,380 с этими языками будущего, к которому мы будем нырять. 735 00:30:15,380 --> 00:30:19,180 А в левом верхнем углу вот первая Когда Зеленый флаг нажатия 736 00:30:19,180 --> 00:30:22,170 так что позвольте мне перетащить этот здесь, уменьшить немного. 737 00:30:22,170 --> 00:30:25,780 И если я нажимаю на зеленый флаг, ничего не происходит, потому что 738 00:30:25,780 --> 00:30:29,360 Я не придавал никакого логике, любое заявление, так сказать, в 739 00:30:29,360 --> 00:30:31,040 , что зеленый флаг, так что позвольте мне идти до 740 00:30:31,040 --> 00:30:32,500 Категории сюда. 741 00:30:32,500 --> 00:30:34,840 Я в настоящее время в контрольной категории. 742 00:30:34,840 --> 00:30:37,630 Я вместо этого собирается спуститься на категорию выглядит, и 743 00:30:37,630 --> 00:30:39,970 есть целая куча вещей, которые говорят, что здесь Скажите, 744 00:30:39,970 --> 00:30:43,110 Подумайте, изменение цвета, Switch костюма. 745 00:30:43,110 --> 00:30:44,860 >> Так что вы можете делать глупости с костюмами и 746 00:30:44,860 --> 00:30:45,870 звуки и тому подобное. 747 00:30:45,870 --> 00:30:49,970 Позвольте мне идти вперед и просто сказать Скажите, а сейчас заметила, как я перетащить 748 00:30:49,970 --> 00:30:52,940 и отказаться от этого кусочка, он захочет, чтобы запереться 749 00:30:52,940 --> 00:30:55,010 в соответствующую форму. 750 00:30:55,010 --> 00:30:58,020 Поэтому, когда я иду вперед и отпустил мою мышь, они запирают 751 00:30:58,020 --> 00:31:01,770 вместе, и теперь, если я иду сюда и нажмите зеленый флаг, 752 00:31:01,770 --> 00:31:05,910 Кошка же на самом деле поздороваться, потому что это то, что внутри 753 00:31:05,910 --> 00:31:06,980 этой белой коробке. 754 00:31:06,980 --> 00:31:08,900 Мы скоро увидим, что это белое поле то, что называется 755 00:31:08,900 --> 00:31:10,250 Аргумент, или параметр. 756 00:31:10,250 --> 00:31:12,560 Это способ изменения поведения, в данном случае, 757 00:31:12,560 --> 00:31:15,070 паззл, но если я хочу сказать именно то, что я сказал, 758 00:31:15,070 --> 00:31:18,610 до, скажем привет, мир, теперь я могу вернуться сюда, 759 00:31:18,610 --> 00:31:21,990 Нажмите кнопку Play, и "привет, мир" является то, что сказал. 760 00:31:21,990 --> 00:31:24,340 >> Таким образом, мы в буквальном смысле программирования сейчас. 761 00:31:24,340 --> 00:31:27,540 Это еще не все, что убедительных программы, но по крайней мере 762 00:31:27,540 --> 00:31:30,140 это немного более убедительным, чем то, что выглядит, по крайней 763 00:31:30,140 --> 00:31:31,300 первый взгляд, вроде этого. 764 00:31:31,300 --> 00:31:34,190 И мы можем очень быстро получить все более выразительным 765 00:31:34,190 --> 00:31:36,600 потому что в Scratch, как и в других языках, есть все 766 00:31:36,600 --> 00:31:40,010 рода заявления, а не только говорить или что-то распечатать, но 767 00:31:40,010 --> 00:31:42,650 Вы можете делать вещи, как ожидание, как мы только что видели 768 00:31:42,650 --> 00:31:44,240 печенье, некоторое количество секунд. 769 00:31:44,240 --> 00:31:46,440 Вы можете играть звуками в среде нуля только 770 00:31:46,440 --> 00:31:49,050 как вы можете в нормальных звуковых программ игра компьютера. 771 00:31:49,050 --> 00:31:52,440 Вы можете проверить, что называется логических выражений. 772 00:31:52,440 --> 00:31:55,630 Так что теперь, давайте начнем добавить к нашему инструментарий некоторые термины 773 00:31:55,630 --> 00:31:58,840 что на самом деле относится к примеру, что Иосиф и я 774 00:31:58,840 --> 00:32:00,080 Здесь с носками. 775 00:32:00,080 --> 00:32:03,040 Таким образом, заявления просто констатацией факта. 776 00:32:03,040 --> 00:32:04,160 Сделайте это. 777 00:32:04,160 --> 00:32:07,370 Директива для спрайта, или мне человека, чтобы сделать что-то. 778 00:32:07,370 --> 00:32:10,420 Логическое выражение является то, что имеет значение, 779 00:32:10,420 --> 00:32:14,580 так называемого истинного значения, что это либо нуль или один, ложной или 780 00:32:14,580 --> 00:32:17,890 Правда, включен или выключен, нет или да. 781 00:32:17,890 --> 00:32:19,730 Не имеет значения, насколько вы думаете об этом, но это 782 00:32:19,730 --> 00:32:20,700 двоичный государства. 783 00:32:20,700 --> 00:32:22,610 Как Nate обсуждается в видео в среду, два 784 00:32:22,610 --> 00:32:23,570 разные вещи. 785 00:32:23,570 --> 00:32:25,740 >> Таким образом, в Scratch, логические выражения случиться, чтобы посмотреть 786 00:32:25,740 --> 00:32:28,910 как эти синие объекты здесь, и в этом случае вопрос 787 00:32:28,910 --> 00:32:30,960 Знак означает, что вы задаете вопрос. 788 00:32:30,960 --> 00:32:34,250 Есть кошки, или спрайта, прикасаясь к мыши? 789 00:32:34,250 --> 00:32:36,580 Так что это только один из примеров царапинам блока, который собирается 790 00:32:36,580 --> 00:32:39,950 , чтобы мы могли проверить да или нет, это мышь касаясь 791 00:32:39,950 --> 00:32:40,790 спрайта на экране? 792 00:32:40,790 --> 00:32:42,840 И это может быть полезно, если вы действительно хотите, чтобы делать вещи 793 00:32:42,840 --> 00:32:43,820 с помощью мыши. 794 00:32:43,820 --> 00:32:46,470 В дополнение к логических выражений, у нас есть вещи 795 00:32:46,470 --> 00:32:49,110 вроде мыши, так что вы можете обнаружить, что вид 796 00:32:49,110 --> 00:32:50,200 вопрос. 797 00:32:50,200 --> 00:32:52,590 Мы можем сделать математику, если вы на самом деле хотите, и есть 798 00:32:52,590 --> 00:32:55,170 на самом деле более убедительным использует для этого не только чистым 799 00:32:55,170 --> 00:32:56,400 арифметики, как мы увидим. 800 00:32:56,400 --> 00:32:59,690 Псевдо случайности и делает вашу программу кажется, думают, 801 00:32:59,690 --> 00:33:03,490 или вести себя по разному в зависимости от некоторых, казалось бы случайных величин, 802 00:33:03,490 --> 00:33:06,610 а то у нас такие вещи, как логические выражения как AND. 803 00:33:06,610 --> 00:33:08,830 Так что если вы действительно хотите, чтобы проверить два значения, мы увидим в 804 00:33:08,830 --> 00:33:11,110 Царапина, что мы действительно можем проверить, если это 805 00:33:11,110 --> 00:33:13,190 истинны и это правда. 806 00:33:13,190 --> 00:33:15,300 Например, в случае мои носки, я мог бы в 807 00:33:15,300 --> 00:33:19,045 самом конце задал вопрос, если не носок на правую и носков 808 00:33:19,045 --> 00:33:20,610 включен, бросить курить. 809 00:33:20,610 --> 00:33:22,710 Вы все сделали за день, так что было бы 810 00:33:22,710 --> 00:33:24,300 возможность для этого. 811 00:33:24,300 --> 00:33:27,740 >> Так что давайте идти вперед и попробовать собрать некоторые из них вместе 812 00:33:27,740 --> 00:33:31,570 и идем в пару примеров более 813 00:33:31,570 --> 00:33:32,610 убедительными, чем этот. 814 00:33:32,610 --> 00:33:35,770 Итак, позвольте мне идти вперед здесь и открыть некоторые примеры 815 00:33:35,770 --> 00:33:38,350 , который всегда будет на веб-сайте курса, а также и 816 00:33:38,350 --> 00:33:39,870 открыть hello2. 817 00:33:39,870 --> 00:33:42,910 Таким образом, в hello2 здесь, у нас есть программа, которая делает несколько 818 00:33:42,910 --> 00:33:46,290 вещи, но это не делает это настолько эффективно, насколько мы могли. 819 00:33:46,290 --> 00:33:48,900 Так вот он говорит: "привет, мир" в течение одной секунды, а затем ждет 820 00:33:48,900 --> 00:33:49,450 на секунду. 821 00:33:49,450 --> 00:33:51,720 А потом делает это снова, а затем делает это снова. 822 00:33:51,720 --> 00:33:55,530 Так что, если я нажимаю на зеленый флаг, Scratch говорит: "Здравствуй, мир. 823 00:33:55,530 --> 00:33:57,160 Здравствуй, мир. 824 00:33:57,160 --> 00:34:00,080 Здравствуй, мир ». И это, очевидно, кандидат в настоящее время для 825 00:34:00,080 --> 00:34:00,860 улучшение. 826 00:34:00,860 --> 00:34:03,070 >> Что такое незначительное улучшение, надеюсь, мы можем 827 00:34:03,070 --> 00:34:07,610 Теперь сделать, если к царапинам поддерживает концепцию? 828 00:34:07,610 --> 00:34:08,310 Своего рода цикл. 829 00:34:08,310 --> 00:34:10,960 Некоторые виды повторения, сейчас, было бы хорошо, поэтому позвольте мне 830 00:34:10,960 --> 00:34:11,920 на самом деле попробовать. 831 00:34:11,920 --> 00:34:13,870 Позвольте мне на самом деле пойти и переместить это. 832 00:34:13,870 --> 00:34:16,449 Таким образом, уведомление может отделить блоки так же легко, как вы можете добавить в 833 00:34:16,449 --> 00:34:17,420 прикрепите их. 834 00:34:17,420 --> 00:34:20,730 Отпусти меня под контролем, прокрутите вниз здесь, и действительно, 835 00:34:20,730 --> 00:34:24,000 есть этот кусок головоломки здесь, повтор и навсегда и 836 00:34:24,000 --> 00:34:24,870 Если навсегда. 837 00:34:24,870 --> 00:34:28,500 Таким образом, есть ряд способов выражения циклических конструкций 838 00:34:28,500 --> 00:34:29,340 В Scratch. 839 00:34:29,340 --> 00:34:31,730 Тот, который я, вероятно, хотите здесь не навсегда, потому что я только 840 00:34:31,730 --> 00:34:34,639 хотим, чтобы это произошло три раза, но, вероятно, повторить. 841 00:34:34,639 --> 00:34:38,449 Итак, позвольте мне повторить перетащить сюда, и перетащите его, и 842 00:34:38,449 --> 00:34:42,530 Теперь вместо того чтобы сказать "привет, мир" три отдельных раза, 843 00:34:42,530 --> 00:34:44,230 Позвольте мне перетащить этот паззл здесь. 844 00:34:44,230 --> 00:34:46,610 И хотя она не вписывается, программа умный 845 00:34:46,610 --> 00:34:48,920 достаточно, чтобы понять оно будет расти, чтобы заполнить, так что это 846 00:34:48,920 --> 00:34:51,270 форму, что материя и не абсолютный размер. 847 00:34:51,270 --> 00:34:54,030 Позвольте мне изменить повторений до трех, а теперь отпустил меня 848 00:34:54,030 --> 00:34:56,560 вперед и перетащите Подождите одну секунду там же. 849 00:34:56,560 --> 00:34:59,220 Это будет хватать в а, и поэтому сейчас я собираюсь перетащить 850 00:34:59,220 --> 00:35:01,370 эти парни здесь и просто выбросить их, потому что я 851 00:35:01,370 --> 00:35:02,710 не нуждаются в них больше. 852 00:35:02,710 --> 00:35:05,920 Позвольте мне масштаб и нажмите зеленый флаг сейчас, и мы имеем 853 00:35:05,920 --> 00:35:09,600 ту же программу, но, как я и предсказывал ранее, лучше 854 00:35:09,600 --> 00:35:12,200 разработан, потому что вы можете себе представить, как плохо это программа 855 00:35:12,200 --> 00:35:14,410 получили бы, конечно, эстетически, если бы вам пришлось 856 00:35:14,410 --> 00:35:16,640 начать копирование и вставка, копирование и вставка, или 857 00:35:16,640 --> 00:35:20,020 перетаскиванием же штопать вещи снова и снова. 858 00:35:20,020 --> 00:35:22,260 >> Теперь, просто говорю вещи на экране, печать 859 00:35:22,260 --> 00:35:25,350 Экран, на самом деле все не так интересно, так давайте откроем 860 00:35:25,350 --> 00:35:26,580 третий дисперсия здесь. 861 00:35:26,580 --> 00:35:29,810 А теперь, как вы увидите, это будет быстро раздражать - 862 00:35:29,810 --> 00:35:30,850 [MEOW] 863 00:35:30,850 --> 00:35:31,940 DAVID Малан: - но это тоже мило. 864 00:35:31,940 --> 00:35:35,244 [MEOW] 865 00:35:35,244 --> 00:35:37,460 DAVID Малан: Хорошо, так лучше, и мы, безусловно, может использовать это 866 00:35:37,460 --> 00:35:41,060 же переход отрывов до этого в цикл 867 00:35:41,060 --> 00:35:43,520 структуры, но давайте сделаем его еще более интересным. 868 00:35:43,520 --> 00:35:47,480 >> Позвольте мне идти вперед и открывать 1/4 дисперсия здесь, где я 869 00:35:47,480 --> 00:35:50,020 принимать вещи один шаг вперед. 870 00:35:50,020 --> 00:35:54,450 Таким образом, в соответствии с этим, глупо, хотя это на первый 871 00:35:54,450 --> 00:35:58,530 взгляд, то, что эта программа собираетесь делать? 872 00:35:58,530 --> 00:35:59,790 Это будет мяукать раз. 873 00:35:59,790 --> 00:36:00,160 Почему? 874 00:36:00,160 --> 00:36:03,340 Ну, один есть, насколько я знаю, всегда меньше, чем два. 875 00:36:03,340 --> 00:36:04,890 Там нет понятия случайности здесь. 876 00:36:04,890 --> 00:36:07,240 Я буквально жестко один и два, но это 877 00:36:07,240 --> 00:36:10,370 Например, сейчас в самом деле с помощью логического выражения. 878 00:36:10,370 --> 00:36:13,650 Многое нравится, как Иосиф сделал в своем псевдокоде, отступы, если 879 00:36:13,650 --> 00:36:17,170 Вы найдете носки затем выполните следующие действия, здесь мы имеем 880 00:36:17,170 --> 00:36:19,750 Если одно выражение меньше, чем два, то - 881 00:36:19,750 --> 00:36:21,820 а на самом деле у нас даже есть немного отступов, 882 00:36:21,820 --> 00:36:24,480 где фиолетовые слегка отступом справа - 883 00:36:24,480 --> 00:36:26,600 Тогда вы будете играть звук мяу. 884 00:36:26,600 --> 00:36:30,060 Теперь, в этом случае, что один всегда меньше, чем два, так что это 885 00:36:30,060 --> 00:36:31,970 это своего рода пустая трата состоянии. 886 00:36:31,970 --> 00:36:34,890 Но мы сможем, как мы увидим, для подключения других вещей в 887 00:36:34,890 --> 00:36:37,420 эти заполнители, где один и два сейчас. 888 00:36:37,420 --> 00:36:41,340 Итак, давайте продвигаться к примеру пяти из этих нескольких 889 00:36:41,340 --> 00:36:45,850 приветствий и посмотреть на то, что эта программа будет делать. 890 00:36:45,850 --> 00:36:48,710 >> Так что теперь, в английском предложении, как делает это 891 00:36:48,710 --> 00:36:51,460 Программа себя вести? 892 00:36:51,460 --> 00:36:52,950 АУДИТОРИЯ: мяукает половину времени. 893 00:36:52,950 --> 00:36:55,380 DAVID Малан: половина Meow по времени, так что это способ 894 00:36:55,380 --> 00:36:56,700 передачи очень простая идея. 895 00:36:56,700 --> 00:36:59,400 Хотя мы, случается, используя некоторые неравенства здесь 896 00:36:59,400 --> 00:37:01,860 в некоторых номерах, это действительно только коммунистической программы 897 00:37:01,860 --> 00:37:09,490 Кстати, точный способ, сказать, если монета упадет орлом, перейдите 898 00:37:09,490 --> 00:37:10,270 впереди и мяукать. 899 00:37:10,270 --> 00:37:13,540 Или наоборот, если монета упадет хвосты, не мяукают. 900 00:37:13,540 --> 00:37:15,110 И в этом случае, как мы можем выразить это? 901 00:37:15,110 --> 00:37:17,950 Мы выбираем случайное число от 1 до 10, и если это 902 00:37:17,950 --> 00:37:21,110 число меньше 6, идти вперед и мяуканье. 903 00:37:21,110 --> 00:37:22,260 И как же это сюда попали? 904 00:37:22,260 --> 00:37:24,620 Ну опять, заметьте, просто перетащив и 905 00:37:24,620 --> 00:37:26,190 вещи щелчка. 906 00:37:26,190 --> 00:37:28,020 >> Итак, теперь давайте посмотрим, если это случайность работает. 907 00:37:28,020 --> 00:37:29,845 Позвольте мне идти вперед и нажмите зеленый флаг. 908 00:37:29,845 --> 00:37:31,120 [MEOW] 909 00:37:31,120 --> 00:37:32,000 DAVID Малан: Хорошо. 910 00:37:32,000 --> 00:37:33,430 [MEOW] 911 00:37:33,430 --> 00:37:35,260 DAVID Малан: Хорошо. 912 00:37:35,260 --> 00:37:38,510 Ладно, хорошо, так что мы получили головы, головы, хвосты эффективно. 913 00:37:38,510 --> 00:37:39,295 Хвосты. 914 00:37:39,295 --> 00:37:39,590 [MEOW] 915 00:37:39,590 --> 00:37:41,829 DAVID Малан: Heads. 916 00:37:41,829 --> 00:37:43,220 [MEOW] 917 00:37:43,220 --> 00:37:44,040 DAVID Малан: Отлично. 918 00:37:44,040 --> 00:37:46,220 Это всегда неловко, когда только статистически вы получаете плохой 919 00:37:46,220 --> 00:37:48,510 бегать, и все это головах, и программа на самом деле не 920 00:37:48,510 --> 00:37:49,230 работать как можно было бы надеяться. 921 00:37:49,230 --> 00:37:51,210 Но на этот раз он работал, и мы, кажется, есть, если бы мы сделали 922 00:37:51,210 --> 00:37:53,830 это бесконечное число раз, 50% шансов. 923 00:37:53,830 --> 00:37:56,950 Теперь опять же, не все, что интересно, только делая кошек 924 00:37:56,950 --> 00:37:59,840 мяу, так что давайте посмотрим, если мы не можем продвинуть эту немного дальше 925 00:37:59,840 --> 00:38:01,820 здесь, в шестой версии. 926 00:38:01,820 --> 00:38:05,620 Итак, теперь у нас есть действительно раздражает версии - 927 00:38:05,620 --> 00:38:08,215 [Мяукает каждые несколько секунд] 928 00:38:08,215 --> 00:38:10,640 DAVID Малан: - и это то, что известно, вообще, как 929 00:38:10,640 --> 00:38:11,670 бесконечный цикл. 930 00:38:11,670 --> 00:38:14,190 >> Так бесконечный цикл в этом случае плохо себя чувствует. 931 00:38:14,190 --> 00:38:16,970 Это определенно собираюсь начать звучание плохое, и еще бесконечное 932 00:38:16,970 --> 00:38:18,740 Петли не всегда плохо. 933 00:38:18,740 --> 00:38:20,910 Можете ли вы вспомнить контекст, в компьютерных программах, где нужно 934 00:38:20,910 --> 00:38:22,910 на самом деле хотите бесконечный цикл? 935 00:38:22,910 --> 00:38:23,691 Да? 936 00:38:23,691 --> 00:38:26,520 АУДИТОРИЯ: Если вы хотите, чтобы проверить состояние. 937 00:38:26,520 --> 00:38:28,240 DAVID Малан: Хорошо, если вы хотите продолжать проверять состояние? 938 00:38:28,240 --> 00:38:29,190 Как что? 939 00:38:29,190 --> 00:38:30,440 АУДИТОРИЯ: [неразборчиво] 940 00:38:36,060 --> 00:38:38,170 DAVID Малан: Хорошо, хорошо, так что если у вас несколько программ, некоторые 941 00:38:38,170 --> 00:38:40,440 вид домашней автоматизации вещь, где вы хотите, чтобы постоянно 942 00:38:40,440 --> 00:38:41,980 Монитор что-то случае. 943 00:38:41,980 --> 00:38:42,850 Являются ли свет? 944 00:38:42,850 --> 00:38:45,020 Есть свет, потому что, может быть, у вас есть таймер, и 945 00:38:45,020 --> 00:38:47,360 Вы хотите, чтобы уйти, вам придется что-то делать 946 00:38:47,360 --> 00:38:48,290 снова и снова. 947 00:38:48,290 --> 00:38:50,540 И в самом деле, говоря о таймеры, любой из вас, кто 948 00:38:50,540 --> 00:38:53,100 Часы на компьютере или цифровые часы, это 949 00:38:53,100 --> 00:38:54,210 бесконечный цикл. 950 00:38:54,210 --> 00:38:56,980 Он продолжает обновлять времени, потому что он постоянно 951 00:38:56,980 --> 00:38:59,750 проверка и проверка и проверка есть время изменилось, 952 00:38:59,750 --> 00:39:01,000 и если да, о, мой бог. 953 00:39:03,670 --> 00:39:04,740 Часы, наконец, изменился. 954 00:39:04,740 --> 00:39:07,020 Он должен показывать, что ценность для вас. 955 00:39:07,020 --> 00:39:10,880 Таким образом, в то время как большую часть времени бесконечные циклы являются ошибкой, 956 00:39:10,880 --> 00:39:13,950 или по крайней мере плохим решением дизайна, иногда они не делают 957 00:39:13,950 --> 00:39:14,785 имеют свою ценность. 958 00:39:14,785 --> 00:39:18,170 >> Ну, давайте двигаться дальше здесь, чтобы hello7. 959 00:39:18,170 --> 00:39:20,410 Так что теперь программа будет получить немного более интерактивным. 960 00:39:20,410 --> 00:39:23,120 Позвольте мне увеличить здесь, и снова, это то, что приятно 961 00:39:23,120 --> 00:39:23,640 О Scratch. 962 00:39:23,640 --> 00:39:26,760 И мы будем использовать это, чтобы быть ясным, Scratch, только сегодня и в 963 00:39:26,760 --> 00:39:27,780 Проблема следующей неделе установлены. 964 00:39:27,780 --> 00:39:31,920 Но в понедельник, мы погрузиться в С. В этой программе, это так, 965 00:39:31,920 --> 00:39:33,190 навсегда, в следующем. 966 00:39:33,190 --> 00:39:35,890 Если касаться указатель мыши - теперь, кто 967 00:39:35,890 --> 00:39:36,420 контекста здесь? 968 00:39:36,420 --> 00:39:39,670 Ну, и заметил, что кто выбран здесь внизу 969 00:39:39,670 --> 00:39:43,060 Справа находится кошка, спрайт один, так что эти сценарии, это 970 00:39:43,060 --> 00:39:45,720 Программа, относится к нему специально. 971 00:39:45,720 --> 00:39:48,950 Так что, если кошка прикосновения указателя мыши, то это будет 972 00:39:48,950 --> 00:39:51,350 чтобы играть в эту вниз и ждать две секунды, и 973 00:39:51,350 --> 00:39:53,030 затем повторить до тошноты. 974 00:39:53,030 --> 00:39:55,360 >> Так что давайте идти вперед и ударил игру. 975 00:39:55,360 --> 00:39:57,580 Ничего не происходит, но если я хочу, чтобы погладить 976 00:39:57,580 --> 00:39:59,310 Кошка теперь, я могу просто. 977 00:39:59,310 --> 00:40:01,130 [MEOW] 978 00:40:01,130 --> 00:40:02,244 DAVID Малан: очаровательны. 979 00:40:02,244 --> 00:40:05,956 [MEOW] 980 00:40:05,956 --> 00:40:08,750 DAVID Малан: Ладно, меньше раздражает, но также получает скучно, 981 00:40:08,750 --> 00:40:11,480 так что давайте двигаться дальше и посмотреть, если мы не можем вводить 982 00:40:11,480 --> 00:40:12,460 немного больше логики. 983 00:40:12,460 --> 00:40:14,300 Это был пример семь. 984 00:40:14,300 --> 00:40:16,090 >> Здесь в пример восемь, мы собираемся 985 00:40:16,090 --> 00:40:18,670 ввести ELSE состоянии. 986 00:40:18,670 --> 00:40:21,440 Так много, как буквальное развилке дорог, в которых вы можете пойти 987 00:40:21,440 --> 00:40:24,260 влево или вы можете идти прямо, состояние, при программировании 988 00:40:24,260 --> 00:40:28,120 язык, как Scratch, или, как мы увидим, C, может позволить вам 989 00:40:28,120 --> 00:40:32,230 идут в одном направлении или другом через IF ELSE построить. 990 00:40:32,230 --> 00:40:35,160 Так что вполне буквально, если прикосновения указателя мыши, это 991 00:40:35,160 --> 00:40:38,680 будет играть какой-то звук, иначе он будет играть эту друга 992 00:40:38,680 --> 00:40:39,800 звук, мяуканье. 993 00:40:39,800 --> 00:40:42,510 Теперь, если вы можете заключить из названия эти звуки, вы можете 994 00:40:42,510 --> 00:40:45,310 наверное, догадались, что эта программа предназначается, чтобы вызвать в воображении 995 00:40:45,310 --> 00:40:46,250 идеи. 996 00:40:46,250 --> 00:40:48,742 Эта кошка мяукает счастливо. 997 00:40:48,742 --> 00:40:49,230 [MEOW] 998 00:40:49,230 --> 00:40:51,410 DAVID Малан: к счастью, но не 999 00:40:51,410 --> 00:40:52,926 очень хотел быть затронуты. 1000 00:40:52,926 --> 00:40:54,550 [РЕВЕТ] 1001 00:40:54,550 --> 00:40:57,500 DAVID Малан: Итак, теперь у нас есть кот, который будет кричать на вас. 1002 00:40:57,500 --> 00:41:00,570 >> Ладно, хорошо, один последний пример с кошками здесь, и 1003 00:41:00,570 --> 00:41:02,920 Давайте открытой версии девяти этом здесь. 1004 00:41:02,920 --> 00:41:06,190 Итак, теперь у нас есть следующая самым раздражающим звуком, что я мог 1005 00:41:06,190 --> 00:41:11,630 найти, поэтому мы должны моржа или морского льва, кто собирается 1006 00:41:11,630 --> 00:41:13,222 выполните следующие действия. 1007 00:41:13,222 --> 00:41:20,870 [SEAL БАРК] 1008 00:41:20,870 --> 00:41:23,310 DAVID Малан: Хорошо, так это будет продолжаться, пока вы выяснить, как 1009 00:41:23,310 --> 00:41:24,640 эта программа работает. 1010 00:41:24,640 --> 00:41:28,560 Поэтому в этот раз, это животное имеет два сценария, и что 1011 00:41:28,560 --> 00:41:31,050 Здесь интересно то, что эти сценарии собираются выполнять 1012 00:41:31,050 --> 00:41:32,260 параллельно. 1013 00:41:32,260 --> 00:41:35,340 Таким образом потому, что они оба начинаются с одним зеленым флагом нажатии 1014 00:41:35,340 --> 00:41:38,080 Это как пойти, как это, и обе программы начнется показ этого 1015 00:41:38,080 --> 00:41:41,370 однажды даже если они цикл навсегда. 1016 00:41:41,370 --> 00:41:44,420 Таким образом, в верхней сценарий, у меня есть логика. 1017 00:41:44,420 --> 00:41:49,275 Какие функции, которые обеспечивают там? 1018 00:41:49,275 --> 00:41:50,740 [SEAL БАРК] 1019 00:41:50,740 --> 00:41:51,670 АУДИТОРИЯ: [неразборчиво] 1020 00:41:51,670 --> 00:41:53,295 DAVID Малан: Если это что? 1021 00:41:53,295 --> 00:41:53,760 [SEAL БАРК] 1022 00:41:53,760 --> 00:41:55,852 АУДИТОРИЯ: Если приглушенных до нуля, он собирается продолжать играть 1023 00:41:55,852 --> 00:41:58,410 звучало. [SEAL БАРК] 1024 00:41:58,410 --> 00:41:58,940 DAVID Малан: Ладно, хорошо. 1025 00:41:58,940 --> 00:42:01,960 Так что, если приглушенные, независимо от этого, эта оранжевая вещь равна нулю, 1026 00:42:01,960 --> 00:42:05,370 Тогда играть звук морского льва и думать: "О, 1027 00:42:05,370 --> 00:42:06,770 привет, "в течение двух секунд. 1028 00:42:06,770 --> 00:42:09,380 Теперь, я не знаю, что это приглушенные, но нулю вызывает в воображении 1029 00:42:09,380 --> 00:42:11,230 Идея ложной или нет. 1030 00:42:11,230 --> 00:42:14,490 Так что, если приглушенные является ложным, так что если не отключен, 1031 00:42:14,490 --> 00:42:15,660 продолжать играть звук. 1032 00:42:15,660 --> 00:42:17,350 Ладно, хорошо, как мы можем отключить эту вещь? 1033 00:42:17,350 --> 00:42:19,310 >> Ну, давайте посмотрим на второй сценарий там. 1034 00:42:19,310 --> 00:42:22,130 Второй сценарий говорит установлен приглушенных к нулю. 1035 00:42:22,130 --> 00:42:25,180 Обратите внимание, что это также оранжевые, так что царапинам делает это цвет 1036 00:42:25,180 --> 00:42:27,400 блоки в тот же оттенок, если это своего рода 1037 00:42:27,400 --> 00:42:28,850 логически связаны между собой. 1038 00:42:28,850 --> 00:42:32,850 Так же, как приглушенные пополнить был оранжевым, так отключен здесь 1039 00:42:32,850 --> 00:42:34,060 упомянутые в оранжевом блоке. 1040 00:42:34,060 --> 00:42:36,170 Но это значение переменной, так как в 1041 00:42:36,170 --> 00:42:39,170 Алгебра, у вас есть х, у и г, в программировании у вас есть 1042 00:42:39,170 --> 00:42:41,440 переменных, но они в целом - 1043 00:42:41,440 --> 00:42:42,580 давайте паузу на мгновение и понять, как 1044 00:42:42,580 --> 00:42:44,280 чтобы остановить этот лай. 1045 00:42:44,280 --> 00:42:45,480 Как мне это сделать? 1046 00:42:45,480 --> 00:42:46,480 [SEAL БАРК] 1047 00:42:46,480 --> 00:42:47,920 DAVID Малан: Хорошо. 1048 00:42:47,920 --> 00:42:49,490 Он остановился. Хорошо. 1049 00:42:49,490 --> 00:42:52,230 >> Так же, как в алгебре у вас есть переменные х, у, г, а в 1050 00:42:52,230 --> 00:42:55,260 программирования, имеющие такие переменные, как х, у, г, как правило, 1051 00:42:55,260 --> 00:42:57,330 неодобрением, потому что они совсем не выразительно. 1052 00:42:57,330 --> 00:43:00,070 Они не имеют никакого смыслового значения вообще, так что в большинстве 1053 00:43:00,070 --> 00:43:02,110 Языки программирования, переменные могут иметь полную 1054 00:43:02,110 --> 00:43:05,270 оперившийся имена или слова или фразы, как приглушенные, не говоря 1055 00:43:05,270 --> 00:43:06,030 что они делают. 1056 00:43:06,030 --> 00:43:09,380 Таким образом, это второй сценарий также слушал навсегда, и он сказал, 1057 00:43:09,380 --> 00:43:12,100 если ключ, Космические клавиши клавиатуры, является 1058 00:43:12,100 --> 00:43:13,370 нажатии знак вопроса. 1059 00:43:13,370 --> 00:43:16,300 Так что состояние с логического выражения, что это 1060 00:43:16,300 --> 00:43:19,010 собирается ответить на вопрос, либо правдиво или ложно, 1061 00:43:19,010 --> 00:43:22,880 то у меня внутри него, если пространство нажатии клавиши 1062 00:43:22,880 --> 00:43:28,020 Если приглушенные равна нулю, установлены приглушенные к одному, ELSE установить приглушенных к нулю. 1063 00:43:28,020 --> 00:43:30,510 Таким образом, это другой развилке дорог, и обратите внимание, как я 1064 00:43:30,510 --> 00:43:33,500 вложенными два, если условия, является способом проверки является 1065 00:43:33,500 --> 00:43:36,610 Пробел нажатой, потому что если это так, я либо хотят идти по этому 1066 00:43:36,610 --> 00:43:38,000 так или так. 1067 00:43:38,000 --> 00:43:40,210 И как я могу инвертировать значение приглушенные? 1068 00:43:40,210 --> 00:43:41,410 Я должен проверить это ноль? 1069 00:43:41,410 --> 00:43:45,890 Если да, то это одно, другое сделать это ноль поэтому переключение 1070 00:43:45,890 --> 00:43:47,670 своих двух государств. 1071 00:43:47,670 --> 00:43:50,030 >> Ладно, у нас есть то некоторые из этих фундаментальных 1072 00:43:50,030 --> 00:43:50,540 конструкциями. 1073 00:43:50,540 --> 00:43:52,810 У нас есть логические выражения, и понимаю, тоже, эти 1074 00:43:52,810 --> 00:43:54,050 Не все, что незнакомы. 1075 00:43:54,050 --> 00:43:56,730 В самом деле, вот быстрый скриншот из Гарвардского курса CS50 1076 00:43:56,730 --> 00:43:59,740 торговый инструмент, и любой веб-сайт, что там есть флажков 1077 00:43:59,740 --> 00:44:02,420 и падение падения, действительно, все это время, используют 1078 00:44:02,420 --> 00:44:03,430 Логических выражений. 1079 00:44:03,430 --> 00:44:05,760 В этом случае здесь, если вы установите флажок рядом с 1080 00:44:05,760 --> 00:44:08,620 Конечно больше или равна 4,5, или же рядом с 1081 00:44:08,620 --> 00:44:11,200 факультет, вы указываете логическое выражение. 1082 00:44:11,200 --> 00:44:14,780 Покажите мне курсов, для которых это выражение истинно. 1083 00:44:14,780 --> 00:44:17,080 Или правы, не конфликтует с курсов я 1084 00:44:17,080 --> 00:44:20,440 принимать, если это проверили, то да, вы хотите проверить 1085 00:44:20,440 --> 00:44:22,890 что условие, что вы хотите, чтобы его игнорировать. 1086 00:44:22,890 --> 00:44:25,170 Таким образом, логические выражения являются своего рода все вокруг, но когда 1087 00:44:25,170 --> 00:44:28,080 мы ставим их в условия, если ли условия, если 1088 00:44:28,080 --> 00:44:30,480 Эльсес, или мы можем даже имитировать глубокий 1089 00:44:30,480 --> 00:44:32,830 уровней, IF ELSE IF ELSE - 1090 00:44:32,830 --> 00:44:34,430 так что это своего рода тройной государства. 1091 00:44:34,430 --> 00:44:36,920 Вы можете идти по этому пути или так или так. 1092 00:44:36,920 --> 00:44:39,680 Мы можем сохранить вложения вещей, чтобы пойти в разных направлениях. 1093 00:44:39,680 --> 00:44:41,800 >> Так царапина эти петли, как Forever. 1094 00:44:41,800 --> 00:44:44,750 Она имеет следующие функции, такие как Повторить 10, некоторые 1095 00:44:44,750 --> 00:44:46,260 конечное число раз. 1096 00:44:46,260 --> 00:44:49,040 У нас есть возможность сейчас, чтобы установить переменные, поэтому в данном случае 1097 00:44:49,040 --> 00:44:51,810 Я объявил, например, переменная называемые носки. 1098 00:44:51,810 --> 00:44:54,340 Я инициализируется в 0, и это еще одно направление 1099 00:44:54,340 --> 00:44:56,940 мы могли бы взять здесь с Иосифом, которому, возможно, я 1100 00:44:56,940 --> 00:45:00,150 просто отслеживать, сколько носков у меня есть, и прекратить 1101 00:45:00,150 --> 00:45:03,490 программы, когда значение этой переменной равно 2. 1102 00:45:03,490 --> 00:45:05,660 Это был бы еще один способ рода обобщения, что 1103 00:45:05,660 --> 00:45:08,820 проблемы и делать что-то снова и снова. 1104 00:45:08,820 --> 00:45:12,080 Ну, давайте идти вперед и теперь ввести пару новых вещей. 1105 00:45:12,080 --> 00:45:14,100 Так что те из вас, до программирования опыт будет 1106 00:45:14,100 --> 00:45:17,120 Известно, что многие языки имеют массивы или векторы или 1107 00:45:17,120 --> 00:45:19,970 списки, и действительно, царапина что-то вроде этого, тоже. 1108 00:45:19,970 --> 00:45:22,510 Итак, давайте посмотрим, если мы не можем взять вещи на следующий уровень здесь. 1109 00:45:22,510 --> 00:45:24,920 Если у меня есть возможность, то теперь, с этими кусочки головоломки, чтобы 1110 00:45:24,920 --> 00:45:29,080 что-то добавить, например, слова или числа, переменной, я могу 1111 00:45:29,080 --> 00:45:30,550 начинают накапливаться вещи. 1112 00:45:30,550 --> 00:45:33,630 И это на самом деле очень кстати такие вещи, как игры, 1113 00:45:33,630 --> 00:45:35,810 ролевых игр, где ты вроде ходить 1114 00:45:35,810 --> 00:45:38,600 некоторые фантазии миру, собирая вещи, собирая вещи, 1115 00:45:38,600 --> 00:45:39,900 зарабатывать очки, и тому подобное. 1116 00:45:39,900 --> 00:45:42,310 Вы можете следить за какой-то инвентарь, и 1117 00:45:42,310 --> 00:45:45,180 Действительно, это то, что один из наших бывших студентов здесь сделали с 1118 00:45:45,180 --> 00:45:47,750 то, что называется Fruitcraft RPG. 1119 00:45:47,750 --> 00:45:51,820 >> Итак, позвольте мне идти вперед и открывать эту вещь здесь, и в 1120 00:45:51,820 --> 00:45:56,260 Fruitcraft, у нас есть этот мир вверх на вершину. 1121 00:45:56,260 --> 00:45:58,820 Итак, позвольте мне идти вперед и нажмите зеленый флаг. 1122 00:45:58,820 --> 00:46:01,040 Обратите внимание на левый верхний является своего рода инвентаризацию. 1123 00:46:01,040 --> 00:46:04,110 Это осуществляется в царапинам как то, что мы называем массива или 1124 00:46:04,110 --> 00:46:06,890 список, и теперь у нас есть эта маленькая анимация. 1125 00:46:06,890 --> 00:46:10,440 Так же, как мы начали раньше с этой историей любви печенье, 1126 00:46:10,440 --> 00:46:13,320 и тогда мы продвинулись на кошек и морских львов, теперь мы можем 1127 00:46:13,320 --> 00:46:15,100 вещи, которые являются еще более интерактивным. 1128 00:46:15,100 --> 00:46:18,250 И этот маленький голубой парень, я могу начать двигаться вокруг его 1129 00:46:18,250 --> 00:46:19,500 немного здесь как дома. 1130 00:46:19,500 --> 00:46:22,570 Так это выглядит, как будто он получил выход здесь, поэтому я использую 1131 00:46:22,570 --> 00:46:25,260 клавиши со стрелками, вверх, вниз, влево вправо. 1132 00:46:25,260 --> 00:46:28,370 И теперь я снаружи, так пусть то, что я попал сюда. 1133 00:46:28,370 --> 00:46:30,920 Похоже, оранжевые, и действительно, как только я прикасаюсь 1134 00:46:30,920 --> 00:46:33,110 оранжевый, он получает шлепнулся в моем инвентаре. 1135 00:46:33,110 --> 00:46:35,640 Если я иду сюда, чтобы вишни, теперь у меня есть кое-что 1136 00:46:35,640 --> 00:46:36,760 остальное в моем инвентаре. 1137 00:46:36,760 --> 00:46:39,100 И это все красиво и мило, но думать о том, как теперь, это 1138 00:46:39,100 --> 00:46:39,840 реализован. 1139 00:46:39,840 --> 00:46:42,490 Ну, у нас это понятие списка, и это очевидно 1140 00:46:42,490 --> 00:46:45,470 паззл, что вы только что сказали, что вы хотите добавить к этому, добавьте 1141 00:46:45,470 --> 00:46:46,950 апельсина, добавить вишни. 1142 00:46:46,950 --> 00:46:48,540 Теперь, то, что эта маленькая синяя парень делает? 1143 00:46:48,540 --> 00:46:49,810 Ну, он спрайта. 1144 00:46:49,810 --> 00:46:52,190 И по-видимому, оранжевый и вишни - 1145 00:46:52,190 --> 00:46:54,140 они сами были отдельные спрайты. 1146 00:46:54,140 --> 00:46:56,980 И, используя условия в логические выражения, 1147 00:46:56,980 --> 00:47:00,530 Студент был, вероятно, в состоянии выразить Если синий парень 1148 00:47:00,530 --> 00:47:04,590 касаясь вишни затем добавить слово вишня его 1149 00:47:04,590 --> 00:47:07,890 инвентаризации, а затем и скрыть вишни спрайта. 1150 00:47:07,890 --> 00:47:10,600 Таким образом, под капотом, там, вероятно, по-прежнему является вишня 1151 00:47:10,600 --> 00:47:11,350 спрайт там. 1152 00:47:11,350 --> 00:47:14,160 Мы только что сказали, чтобы он стал эффективным невидимым. 1153 00:47:14,160 --> 00:47:16,340 >> Теперь, если я продолжать идти сюда, мы также можем это сделать 1154 00:47:16,340 --> 00:47:19,150 проксимального вещь, куда я могу пойти и прочитать знак. 1155 00:47:19,150 --> 00:47:23,170 Таким образом, если синие парень касаясь знак, мы можем это сказать блока 1156 00:47:23,170 --> 00:47:26,455 так же, как кошки говорил с нами в словах, привет, ранее, "Got 1157 00:47:26,455 --> 00:47:26,880 некоторые фрукты? 1158 00:47:26,880 --> 00:47:29,290 Принесите его к фруктам место ". Ладно, так и теперь, по-видимому, 1159 00:47:29,290 --> 00:47:30,550 У меня есть направления. 1160 00:47:30,550 --> 00:47:33,050 Я могу пойти сюда, чтобы плоды место, выровнять себя в порядок 1161 00:47:33,050 --> 00:47:33,740 с дверью. 1162 00:47:33,740 --> 00:47:35,390 Так вот, я здесь. 1163 00:47:35,390 --> 00:47:38,120 Я могу подойти к человеку за стойкой. 1164 00:47:38,120 --> 00:47:40,330 Он обнаруживает, что я рядом с ним, поэтому он не должен быть 1165 00:47:40,330 --> 00:47:46,780 совсем одинаково трогательно, и я выиграл. 1166 00:47:46,780 --> 00:47:49,890 Так что у нас есть Fruitcraft RPG. 1167 00:47:49,890 --> 00:47:52,200 >> Таким образом, мы можем сделать вещи еще более продвинутый, чем это. 1168 00:47:52,200 --> 00:47:53,200 Мы можем добавить звуки. 1169 00:47:53,200 --> 00:47:54,610 Мы можем добавить псевдо случайности. 1170 00:47:54,610 --> 00:47:56,260 Мы можем добавить сложности. 1171 00:47:56,260 --> 00:47:58,490 Позвольте мне идти вперед здесь, и вместо того, делать это сам, 1172 00:47:58,490 --> 00:48:01,240 Позвольте мне показать вам одну из более сложных представлений 1173 00:48:01,240 --> 00:48:06,640 мы получили в прошлом году от определенных некий Блейк. 1174 00:48:06,640 --> 00:48:08,910 Может у нас есть один доброволец, который удобно появляться на 1175 00:48:08,910 --> 00:48:12,600 камера и является для играете в игру? 1176 00:48:12,600 --> 00:48:13,450 Как насчет прямо там? 1177 00:48:13,450 --> 00:48:15,380 Поднимайся. 1178 00:48:15,380 --> 00:48:19,680 Ладно, так что игра, которую вы только что бессознательно 1179 00:48:19,680 --> 00:48:20,780 вызвались играть - 1180 00:48:20,780 --> 00:48:25,910 [Аплодисменты] 1181 00:48:25,910 --> 00:48:28,610 DAVID Малан: - это что-то из прошлого называется 1182 00:48:28,610 --> 00:48:30,100 "Frogger". Как тебя зовут? 1183 00:48:30,100 --> 00:48:30,730 RENDA: Ренда. 1184 00:48:30,730 --> 00:48:31,050 DAVID Малан: Redna? 1185 00:48:31,050 --> 00:48:32,530 RENDA: Это как Бренда с б. 1186 00:48:32,530 --> 00:48:33,190 DAVID Малан: Хорошо, Ренда. 1187 00:48:33,190 --> 00:48:33,590 Давид. 1188 00:48:33,590 --> 00:48:34,580 Очень приятно. 1189 00:48:34,580 --> 00:48:38,690 >> Так вот в "Frogger", и если бы мы могли увеличить громкость только 1190 00:48:38,690 --> 00:48:39,780 немного, вы это маленькое 1191 00:48:39,780 --> 00:48:41,010 Зеленая лягушка на дне. 1192 00:48:41,010 --> 00:48:43,940 Вы можете использовать влево, вправо, вверх и вниз, и ваша цель состоит в 1193 00:48:43,940 --> 00:48:46,510 перейти улицу, пересечь реку, и прикоснуться к лилии 1194 00:48:46,510 --> 00:48:47,760 в верхней части. 1195 00:48:52,090 --> 00:48:53,440 Aw. 1196 00:48:53,440 --> 00:48:54,630 Еще один т - 1197 00:48:54,630 --> 00:48:56,400 повтор, все в порядке? 1198 00:48:56,400 --> 00:48:58,890 Давайте хит остановки. 1199 00:48:58,890 --> 00:49:00,140 Никто не видел этого. 1200 00:49:10,470 --> 00:49:12,930 [Аплодисменты] 1201 00:49:17,023 --> 00:49:17,850 [Аплодисменты] 1202 00:49:17,850 --> 00:49:19,341 DAVID Малан: Да. 1203 00:49:19,341 --> 00:49:20,832 Очень хорошо сделано. 1204 00:49:20,832 --> 00:49:22,082 Отлично, спасибо. 1205 00:49:27,300 --> 00:49:29,430 >> Так что не было Frogger. Теперь, когда вы знаете, что у Вас есть 1206 00:49:29,430 --> 00:49:32,170 получил себе в еще один волонтер для различных 1207 00:49:32,170 --> 00:49:34,910 игра представлен другим студентом. 1208 00:49:34,910 --> 00:49:35,560 Вы хотите, чтобы прийти на вверх? 1209 00:49:35,560 --> 00:49:36,576 Как тебя зовут? 1210 00:49:36,576 --> 00:49:37,000 RICHARD: Ричард. 1211 00:49:37,000 --> 00:49:37,420 DAVID Малан: Ричард. 1212 00:49:37,420 --> 00:49:39,732 Все в порядке, Ричард, давай вверх. 1213 00:49:39,732 --> 00:49:42,187 [Аплодисменты] 1214 00:49:45,140 --> 00:49:47,030 DAVID Малан: у вас есть что-то, что будет звучать 1215 00:49:47,030 --> 00:49:54,180 знакомый в ближайшее время, так что здесь ваши указания. 1216 00:49:54,180 --> 00:49:56,580 Таким образом, в настоящее время некоторые кусочки головоломки собираются для прокрутки вверх 1217 00:49:56,580 --> 00:49:58,150 с экрана, которые выглядят как слева 1218 00:49:58,150 --> 00:49:59,450 или вправо вверх или вниз. 1219 00:49:59,450 --> 00:50:01,230 Вы будете иметь, чтобы поразить стрелки таким образом, 1220 00:50:01,230 --> 00:50:04,540 , что соответствует тем кусочки головоломки выстраиваются в очередь с 1221 00:50:04,540 --> 00:50:05,720 заполнителей на вершине. 1222 00:50:05,720 --> 00:50:07,500 Поэтому, когда вы видите стрелку влево, и он на одной линии с левой 1223 00:50:07,500 --> 00:50:09,260 стрелку, нажмите левую стрелку. 1224 00:50:09,260 --> 00:50:10,866 Вы можете начать. 1225 00:50:10,866 --> 00:50:13,674 [MUSIC - "сильнее" Kayne WEST] 1226 00:51:21,222 --> 00:51:23,470 DAVID Малан: Все правильно, большой взрыв аплодисментов для Ричарда. 1227 00:51:23,470 --> 00:51:26,082 [Аплодисменты] 1228 00:51:32,426 --> 00:51:33,720 DAVID Малан: Очень хорошо сделано. 1229 00:51:33,720 --> 00:51:34,110 Спасибо. 1230 00:51:34,110 --> 00:51:37,104 [Аплодисменты] 1231 00:51:41,600 --> 00:51:44,330 >> DAVID Малан: Так весело и, по-видимому, своего рода 1232 00:51:44,330 --> 00:51:46,590 устрашающе, как это может быть, чтобы осуществить то, как 1233 00:51:46,590 --> 00:51:49,550 казалось бы, сложные, как это, понимаешь, что студент 1234 00:51:49,550 --> 00:51:51,450 не ставил перед собой и просто написать это все сразу. 1235 00:51:51,450 --> 00:51:54,200 Вместо этого, вы можете сломать проблема, как казалось бы, сложные 1236 00:51:54,200 --> 00:51:56,840 как это в гораздо меньших кусков, и это тоже 1237 00:51:56,840 --> 00:51:57,560 будет темой. 1238 00:51:57,560 --> 00:52:00,490 Худшее, что вы можете сделать в написании программы в большинстве любые 1239 00:52:00,490 --> 00:52:03,480 язык, чтобы сесть, стать действительно возбужден, написать 1240 00:52:03,480 --> 00:52:07,200 всю эту чертову вещь, а потом просто надеюсь, что это работает, 1241 00:52:07,200 --> 00:52:08,510 раз, когда вы закончили писать. 1242 00:52:08,510 --> 00:52:10,920 Скорее всего, процесс программирования как правило, должны 1243 00:52:10,920 --> 00:52:13,440 очень преднамеренным, очень итерационный, в котором вы просто 1244 00:52:13,440 --> 00:52:16,955 установлены очень маленькие шаги для себя, маленькие кусочки 1245 00:52:16,955 --> 00:52:20,070 Вы хотите, чтобы откусить, и так, что у вас есть эти здравомыслия 1246 00:52:20,070 --> 00:52:21,740 чеки, мало вехи вы можете встретиться. 1247 00:52:21,740 --> 00:52:24,170 А потом построить на вершине тех, для создания более 1248 00:52:24,170 --> 00:52:25,400 сложные вещи до сих пор. 1249 00:52:25,400 --> 00:52:26,820 >> Так, например, как мы могли бы идти о 1250 00:52:26,820 --> 00:52:28,380 осуществление такой игре? 1251 00:52:28,380 --> 00:52:30,160 Ну, честно говоря, я бы, конечно, начать с только что 1252 00:52:30,160 --> 00:52:32,260 поддержка одного ключа одновременно. 1253 00:52:32,260 --> 00:52:34,840 Давайте просто реализовать поддержку со стрелкой влево. 1254 00:52:34,840 --> 00:52:37,610 Таким образом, студент должен был каким-то образом создать в Photoshop, или в 1255 00:52:37,610 --> 00:52:40,340 Царапина себя с помощью маленького графического редактора, 1256 00:52:40,340 --> 00:52:42,680 стрелкой, которая выглядит как один в левом верхнем углу есть, просто 1257 00:52:42,680 --> 00:52:43,910 серые рамки. 1258 00:52:43,910 --> 00:52:46,610 Тогда студент должен был выяснить, что ж, у координата 1259 00:52:46,610 --> 00:52:48,380 положить его, куда положить его в окно. 1260 00:52:48,380 --> 00:52:50,730 0, 0, здесь, так что вы должны выяснить количество 1261 00:52:50,730 --> 00:52:53,690 пикселов, или точек, чтобы компенсировать, что стрелка от 1262 00:52:53,690 --> 00:52:54,800 в верхней части экрана. 1263 00:52:54,800 --> 00:52:57,040 А потом однажды, что находится в месте, ваша программа на самом деле не 1264 00:52:57,040 --> 00:53:00,380 ничего делать, так что вы тогда нужен второй спрайт, для 1265 00:53:00,380 --> 00:53:04,470 Например зеленой стрелкой, который также указывающей влево, и вы 1266 00:53:04,470 --> 00:53:06,710 Затем необходимо, чтобы начать писать несколько сценариев для этого. 1267 00:53:06,710 --> 00:53:09,310 >> А вы заметили, наверное, что эти вещи стали приходить в 1268 00:53:09,310 --> 00:53:11,470 разных скоростях, а цвета были в разных 1269 00:53:11,470 --> 00:53:13,750 местах, и это потому, что студент использовал немного 1270 00:53:13,750 --> 00:53:14,990 псевдо случайности. 1271 00:53:14,990 --> 00:53:17,440 И псевдо-случайность, я просто означает выбрать номер 1272 00:53:17,440 --> 00:53:20,230 между чем-то и чем-то, потому что вы можете 1273 00:53:20,230 --> 00:53:22,890 начинают карте вещей, как если число от одного до 1274 00:53:22,890 --> 00:53:24,940 пять, ну, давайте сделаем вещь зеленого цвета. 1275 00:53:24,940 --> 00:53:28,290 Если это между 6 и 10, давайте сделаем паззл 1276 00:53:28,290 --> 00:53:29,730 вместо красного. 1277 00:53:29,730 --> 00:53:31,840 До тех пор, пока у вас есть способ создания своего рода 1278 00:53:31,840 --> 00:53:34,730 случайностью, вы можете принимать решения, основываясь на том 1279 00:53:34,730 --> 00:53:35,260 случайность. 1280 00:53:35,260 --> 00:53:37,490 И я постоянно говорю псевдослучайных потому что есть 1281 00:53:37,490 --> 00:53:38,390 маленький грязный секрет. 1282 00:53:38,390 --> 00:53:41,130 Компьютеры не могут придумать случайных чисел. 1283 00:53:41,130 --> 00:53:42,800 Они могут делать только то, что они сказали, потому что 1284 00:53:42,800 --> 00:53:44,110 они техногенных устройств. 1285 00:53:44,110 --> 00:53:45,880 Они не могут просто угадать число, как мы, люди, 1286 00:53:45,880 --> 00:53:46,960 чувствую, что мы можем. 1287 00:53:46,960 --> 00:53:50,970 Компьютер должен сделать что-то математическое, пробуждая 1288 00:53:50,970 --> 00:53:53,970 Иллюзия математические числа, иногда с использованием 1289 00:53:53,970 --> 00:53:57,420 Текущий день время как вклад в выяснение того, что 1290 00:53:57,420 --> 00:53:59,570 Число вернуться, но об этом в другой раз. 1291 00:53:59,570 --> 00:54:02,060 А сейчас просто знаю, что мы можем создать псевдо случайности. 1292 00:54:02,060 --> 00:54:04,610 >> Поэтому, как только у меня есть способности к стрелку влево, чтобы начать 1293 00:54:04,610 --> 00:54:07,990 появляющиеся в разное время и с разной скоростью, то 1294 00:54:07,990 --> 00:54:10,230 Я могу вернуться и добавить некоторые из них, если условия. 1295 00:54:10,230 --> 00:54:14,950 Если это спрайт касаясь другого, и стрелки влево 1296 00:54:14,950 --> 00:54:16,330 клавиша была нажата - 1297 00:54:16,330 --> 00:54:17,900 так три условия в этом случае. 1298 00:54:17,900 --> 00:54:20,750 Я могу использовать, что и блок, возможно, в этом случае - 1299 00:54:20,750 --> 00:54:23,210 Тогда я хочу, чтобы идти вперед и увеличить счет. 1300 00:54:23,210 --> 00:54:25,130 И на вершине, у нас есть счет, у нас есть Awesome, 1301 00:54:25,130 --> 00:54:26,510 Круто, хорошо, и Бу. 1302 00:54:26,510 --> 00:54:29,810 Так что видимо пяти переменных, что этот студент 1303 00:54:29,810 --> 00:54:32,220 используется для отслеживания этих различных показателей. 1304 00:54:32,220 --> 00:54:34,180 Короче говоря, конечным результатом является удивительным. 1305 00:54:34,180 --> 00:54:37,320 Это весело, это интересно играть, это привлечение, но это не 1306 00:54:37,320 --> 00:54:38,380 где студент начал. 1307 00:54:38,380 --> 00:54:42,210 Он или она началась гораздо меньший набор шагов. 1308 00:54:42,210 --> 00:54:44,470 >> Так что некоторые другие блоки, которые мы можем 1309 00:54:44,470 --> 00:54:45,760 переплетение в этих программах? 1310 00:54:45,760 --> 00:54:48,750 Ну, вот это другое понятие в большинстве языков, 1311 00:54:48,750 --> 00:54:50,730 Царапина среди них, известный как потоки. 1312 00:54:50,730 --> 00:54:54,660 Таким образом, компьютер может на самом деле действительно не сделать несколько вещей 1313 00:54:54,660 --> 00:54:56,730 Время, по крайней мере, не обычно. 1314 00:54:56,730 --> 00:54:59,930 Скорее всего, компьютер обычно имеет только один процессор, и даже 1315 00:54:59,930 --> 00:55:02,230 хотя компьютеры супер быстро и может, таким образом, 1316 00:55:02,230 --> 00:55:04,740 создать иллюзию делать несколько вещей одновременно - 1317 00:55:04,740 --> 00:55:06,180 проверяя свою почту, получать мгновенный 1318 00:55:06,180 --> 00:55:07,770 Сообщение, печать документ - 1319 00:55:07,770 --> 00:55:11,530 действительно, компьютер просто прыгать от печати на IMing 1320 00:55:11,530 --> 00:55:15,160 к электронной почте, назад и назад и вперед и назад так быстро, что мы 1321 00:55:15,160 --> 00:55:18,170 медленным сообразительные люди просто не понимают, что это на самом деле 1322 00:55:18,170 --> 00:55:21,240 запуска этих программ немного за один раз. 1323 00:55:21,240 --> 00:55:23,960 Теперь, это немного белого лежат в эти дни, потому что, в настоящее время, 1324 00:55:23,960 --> 00:55:26,740 многие наши компьютеры являются так называемые многоядерные, так что вы 1325 00:55:26,740 --> 00:55:29,760 один процессор, но несколько ядер, которые вроде как 1326 00:55:29,760 --> 00:55:31,760 наличие нескольких процессоров. 1327 00:55:31,760 --> 00:55:35,020 >> И поэтому иногда, компьютеры действительно может сделать несколько вещей 1328 00:55:35,020 --> 00:55:38,500 в то время, но в целом в рамках программы, программы 1329 00:55:38,500 --> 00:55:40,200 полагаться на эти вещи называются потоками. 1330 00:55:40,200 --> 00:55:43,160 Таким образом, поток вроде миниатюрной программы, которая может 1331 00:55:43,160 --> 00:55:46,540 существуют наряду с другой миниатюрный программы и может работать 1332 00:55:46,540 --> 00:55:51,250 Параллельно, или по крайней мере может работать в иллюзии, что 1333 00:55:51,250 --> 00:55:52,990 они работают одновременно. 1334 00:55:52,990 --> 00:55:55,060 Так царапинам поддерживает эти вещи называются потоками. 1335 00:55:55,060 --> 00:55:57,580 Вы можете иметь несколько сценариев выполнения сразу же, как мы 1336 00:55:57,580 --> 00:56:00,220 сделал с морской лев, и это позволяет нам на самом деле 1337 00:56:00,220 --> 00:56:03,620 то есть взаимодействие между этими спрайтов. 1338 00:56:03,620 --> 00:56:09,910 Позвольте мне идти вперед здесь и потяните вверх, скажем, потоков и 1339 00:56:09,910 --> 00:56:11,870 играть в эту следующим образом. 1340 00:56:11,870 --> 00:56:13,950 У нас есть два спрайта, каждая из которых мы увидим, 1341 00:56:13,950 --> 00:56:15,720 имеет только один сценарий. 1342 00:56:15,720 --> 00:56:18,000 И вы заметите, как представляется, некоторые разведки в 1343 00:56:18,000 --> 00:56:21,335 Кошка в этом, потому что он становится ближе - 1344 00:56:21,335 --> 00:56:21,730 [РЕВЕТ] 1345 00:56:21,730 --> 00:56:24,540 DAVID Малан: - и ближе к маленькой птице. 1346 00:56:24,540 --> 00:56:26,570 >> Итак, как птица операционной? 1347 00:56:26,570 --> 00:56:28,200 Что ж, давайте посмотрим на птицу в первую очередь. 1348 00:56:28,200 --> 00:56:31,220 Птица сценария сказал, когда зеленый флаг нажатия, перейдите на х 1349 00:56:31,220 --> 00:56:34,020 равна отрицательной 115 и у равна 150. 1350 00:56:34,020 --> 00:56:37,010 Так что я просто понял, случайное место, где я хотел 1351 00:56:37,010 --> 00:56:39,580 Птица, чтобы начать, и я просто шлепнулся его там по умолчанию. 1352 00:56:39,580 --> 00:56:42,800 Тогда навсегда, если не касаясь кошки, так что это другая 1353 00:56:42,800 --> 00:56:45,080 вид циклической конструкцией, но та же идея, сделать это снова и 1354 00:56:45,080 --> 00:56:45,780 снова и снова. 1355 00:56:45,780 --> 00:56:49,410 До тех пор, пока вы не прикасайтесь к кошке, переместить три шага, и 1356 00:56:49,410 --> 00:56:51,680 если вы находитесь на краю, отскок, где это своего рода 1357 00:56:51,680 --> 00:56:53,320 отражение в том смысле, бильярд. 1358 00:56:53,320 --> 00:56:56,140 Так вот, как птица движется вокруг виде 1359 00:56:56,140 --> 00:56:58,890 казалось бы, случайно, но это только потому, что он отскакивая 1360 00:56:58,890 --> 00:57:00,170 Стены в этом случае. 1361 00:57:00,170 --> 00:57:03,170 >> Теперь кошка, между тем, это своего рода обман. 1362 00:57:03,170 --> 00:57:05,520 Кошка, когда зеленый флаг нажатия, да, начинается в 1363 00:57:05,520 --> 00:57:07,390 некоторые места, случайном месте - 1364 00:57:07,390 --> 00:57:09,590 по крайней мере частично в соответствии с выбором 1365 00:57:09,590 --> 00:57:11,430 случайный зеленый блок там - 1366 00:57:11,430 --> 00:57:14,660 , а затем навсегда, если прикасаться к птице, играть льва звук, 1367 00:57:14,660 --> 00:57:15,790 а затем остановить сценарий. 1368 00:57:15,790 --> 00:57:18,560 Так что, когда я сказал, прекратить или до выхода, есть головоломки 1369 00:57:18,560 --> 00:57:20,600 кусок в царапинам, что будет просто убить программу на что 1370 00:57:20,600 --> 00:57:22,900 момент, потому что это своего рода логически сделать. 1371 00:57:22,900 --> 00:57:25,030 Но с другой стороны, вот, обратите внимание на то, что произойдет. 1372 00:57:25,030 --> 00:57:28,470 Точка в сторону птицы и один шаг. 1373 00:57:28,470 --> 00:57:31,390 Так что этот момент к птице это своего рода преимущество кошки 1374 00:57:31,390 --> 00:57:34,640 есть в том, что это самонаведения на движущуюся птицу, и мы можем 1375 00:57:34,640 --> 00:57:37,370 Сейчас делают эту программу еще более интересной. 1376 00:57:37,370 --> 00:57:41,520 Вместо перемещения на один шаг за один раз за цикл процессора, на 1377 00:57:41,520 --> 00:57:44,280 ударить звонком, так сказать, позвольте мне идти вперед и 1378 00:57:44,280 --> 00:57:47,350 двигаться, скажем, пять шагов, в то время, как кошка. 1379 00:57:47,350 --> 00:57:51,120 Выберите пункт Выполнить, и теперь он действительно считает его быстро. 1380 00:57:51,120 --> 00:57:55,620 Если мы удвоим эту далее 10 шагов, она как бы идет 1381 00:57:55,620 --> 00:57:56,370 Право на него. 1382 00:57:56,370 --> 00:57:57,750 Теперь мы можем дать птице, 1383 00:57:57,750 --> 00:57:59,540 Возможно, немного преимуществ. 1384 00:57:59,540 --> 00:58:02,370 Пойдем к птице и сказать вместо перемещения трех шагов, 1385 00:58:02,370 --> 00:58:07,140 давайте двигаться ему 30 шагов. 1386 00:58:07,140 --> 00:58:08,700 Но он все равно был пойман в конце концов. 1387 00:58:08,700 --> 00:58:10,430 >> Так вот, у нас есть две темы. 1388 00:58:10,430 --> 00:58:13,230 Он заключен в царапинам с двумя сценариями и два 1389 00:58:13,230 --> 00:58:16,150 спрайты, но идея на другие языки, что вы можете 1390 00:58:16,150 --> 00:58:19,220 писать, по сути, слишком много программ, как это и есть 1391 00:58:19,220 --> 00:58:22,950 их работать по-настоящему, или мыслимо, параллельно. 1392 00:58:22,950 --> 00:58:25,280 >> Теперь, есть также эта концепция в программировании известно как 1393 00:58:25,280 --> 00:58:28,010 событий, и это то, что мы не увидим в C, 1394 00:58:28,010 --> 00:58:30,500 язык, известный как С. Мы увидим ближе к концу семестра 1395 00:58:30,500 --> 00:58:33,240 в веб-программировании, когда мы введем JavaScript и 1396 00:58:33,240 --> 00:58:36,970 Понятие здание веб-страниц, которые являются динамичными и взаимодействовать 1397 00:58:36,970 --> 00:58:37,710 с пользователями. 1398 00:58:37,710 --> 00:58:40,430 Таким образом, в этом случае, у нас есть очень простой пример двух 1399 00:58:40,430 --> 00:58:43,860 спрайты, мальчик и девочка, каждый из которых имеют свои соответствующие 1400 00:58:43,860 --> 00:58:48,040 темы, но почему-то эти два взаимо-связь путем 1401 00:58:48,040 --> 00:58:49,490 того, что называется событиями. 1402 00:58:49,490 --> 00:58:52,750 Итак, позвольте мне идти вперед здесь и увеличить на сценарий мальчика, 1403 00:58:52,750 --> 00:58:54,050 который выглядит следующим образом. 1404 00:58:54,050 --> 00:58:57,510 При нажатии зеленый флаг, навсегда сделать следующее. 1405 00:58:57,510 --> 00:59:01,510 Если ключ пространство, или пробел, нажатия, скажем, 1406 00:59:01,510 --> 00:59:03,900 Марко в течение двух секунд, это чисто эстетическая на 1407 00:59:03,900 --> 00:59:06,860 экран, маленький пузырек речи, но затем в эфир. 1408 00:59:06,860 --> 00:59:09,240 >> Таким образом, трансляция другой царапинам кусок, что это 1409 00:59:09,240 --> 00:59:12,050 Представитель класса функциональность в программировании 1410 00:59:12,050 --> 00:59:15,080 , что позволяет различным программам, различные темы, 1411 00:59:15,080 --> 00:59:17,120 Интер-связь, чтобы хоть как-то отправить 1412 00:59:17,120 --> 00:59:18,520 сообщения, одно на другое. 1413 00:59:18,520 --> 00:59:21,930 Переходя бумажку в классе является своего рода низких технологий 1414 00:59:21,930 --> 00:59:22,700 эквивалентны. 1415 00:59:22,700 --> 00:59:24,300 Таким образом, трансляция события. 1416 00:59:24,300 --> 00:59:26,210 Я могу отправить это сообщение, и слова события 1417 00:59:26,210 --> 00:59:27,270 является совершенно произвольным. 1418 00:59:27,270 --> 00:59:30,000 Царапины иногда это падение падения, так что я просто подошел 1419 00:59:30,000 --> 00:59:33,230 со случайным словом, как событие, потому что сейчас, что мальчик делает 1420 00:59:33,230 --> 00:59:36,600 когда я нажимаю на ключ, он передает это событие. 1421 00:59:36,600 --> 00:59:39,270 И если я теперь посмотрите на сценарий девушки, ее сценарий 1422 00:59:39,270 --> 00:59:42,690 супер просто, потому что все, что ей нужно сделать, это не действует, когда 1423 00:59:42,690 --> 00:59:44,100 зеленый флаг кнопки. 1424 00:59:44,100 --> 00:59:47,910 Она предназначена для действий, когда она получает цитата, конец цитаты, 1425 00:59:47,910 --> 00:59:51,210 "Событие", и в этот момент, она слушает, следовательно, для 1426 00:59:51,210 --> 00:59:52,960 так называемые события снова и снова. 1427 00:59:52,960 --> 00:59:55,790 Как только она получает этом случае она будет кричать 1428 00:59:55,790 --> 00:59:57,680 Polo течение двух секунд. 1429 00:59:57,680 --> 01:00:01,090 >> И поэтому вы, возможно, может вывести из этого, что именно 1430 01:00:01,090 --> 01:00:03,190 Следующий результат будет. 1431 01:00:03,190 --> 01:00:04,910 Позвольте мне щелкните зеленый флаг. 1432 01:00:04,910 --> 01:00:06,610 Ничего не происходит, потому что мне нужно делать? 1433 01:00:06,610 --> 01:00:07,310 АУДИТОРИЯ: Space Bar. 1434 01:00:07,310 --> 01:00:08,630 DAVID Малан: Space Bar. 1435 01:00:08,630 --> 01:00:11,990 Мальчик говорит Марко Поло говорит девушка. 1436 01:00:11,990 --> 01:00:13,670 Но это не жестко как таковой. 1437 01:00:13,670 --> 01:00:16,740 Это взаимо-связь между скриптов, так что теперь мы 1438 01:00:16,740 --> 01:00:19,240 есть возможность сделать еще более сложные программы, в которых 1439 01:00:19,240 --> 01:00:22,830 эти двое как-то между общением. 1440 01:00:22,830 --> 01:00:25,260 >> Итак, в каких направлениях мы можем принять это? 1441 01:00:25,260 --> 01:00:28,260 Ну, в задачу множество 0, действительно, цель состоит в том, чтобы 1442 01:00:28,260 --> 01:00:29,830 весело провести время с нуля. 1443 01:00:29,830 --> 01:00:32,440 Для хакером издание, вы будете получать удовольствие, а не с более 1444 01:00:32,440 --> 01:00:35,850 сложная версия царапинам называется BYOB, сборки 1445 01:00:35,850 --> 01:00:38,040 Собственные блоки, но идея та же. 1446 01:00:38,040 --> 01:00:38,780 Вы сможете - 1447 01:00:38,780 --> 01:00:39,710 Да, это было преднамеренно. 1448 01:00:39,710 --> 01:00:42,450 Он пришел из Беркли. 1449 01:00:42,450 --> 01:00:45,200 BYOB это версия хакер издание этого, но оба 1450 01:00:45,200 --> 01:00:48,180 , демографии, Standard Edition и хакерских издания, так 1451 01:00:48,180 --> 01:00:50,940 Цель под рукой в ​​течение ближайшей недели на самом деле просто нырнуть в 1452 01:00:50,940 --> 01:00:53,050 глубоко, чтобы ваши руки грязные с программированием, и сделать 1453 01:00:53,050 --> 01:00:55,240 что-то интересное, что-то сделать интерактивным, чтобы 1454 01:00:55,240 --> 01:00:58,020 что-то художественное, сделать что-то весело на самом деле 1455 01:00:58,020 --> 01:01:01,020 продемонстрировать, так что к концу недели, вы будете иметь проект, 1456 01:01:01,020 --> 01:01:03,770 не только для вашего первого CS50 PSET, но вы должны будете 1457 01:01:03,770 --> 01:01:05,620 кое-что, что вы можете показать в Annenberg к 1458 01:01:05,620 --> 01:01:08,830 друзей или даже семьи, загрузив его на сайт Массачусетского технологического института. 1459 01:01:08,830 --> 01:01:11,760 И так, как я сказал в среду мы ожидаем, что 90% класса, 1460 01:01:11,760 --> 01:01:13,970 в общем, делать стандартные издания. 1461 01:01:13,970 --> 01:01:16,660 Поймите, что есть также это выход для тех из вас, кто 1462 01:01:16,660 --> 01:01:18,990 в противном случае могли найти себе немного скучно с основами 1463 01:01:18,990 --> 01:01:21,650 и действительно хотите изучить и выработать видение у вас уже 1464 01:01:21,650 --> 01:01:25,380 есть с предварительного фон в этом более дружественным 1465 01:01:25,380 --> 01:01:26,240 окружающей среды. 1466 01:01:26,240 --> 01:01:29,030 >> Итак, позвольте мне подтянуть еще один пример, что один из наших бывших 1467 01:01:29,030 --> 01:01:33,830 Здесь студенты сделали и немного рассказать что-то через песню. 1468 01:01:33,830 --> 01:01:37,430 Это так же, как это играет, думаю о том, как вы идете по поводу 1469 01:01:37,430 --> 01:01:40,520 реализации этой программы с помощью именно этих же 1470 01:01:40,520 --> 01:01:44,180 строительные блоки, немного псевдо-случайность, а 1471 01:01:44,180 --> 01:01:46,010 Немного знакомую песню. 1472 01:01:46,010 --> 01:01:47,910 Если бы мы могли увеличить громкость чуть-чуть? 1473 01:01:47,910 --> 01:01:49,160 [MUSIC - "это Raining Men" Weather Girls] 1474 01:03:02,261 --> 01:03:03,930 >> DAVID Малан: Вот именно для CS50. 1475 01:03:03,930 --> 01:03:05,860 Мы будем видеть Вас в понедельник. 1476 01:03:05,860 --> 01:03:21,152 [Аплодисменты]