1 00:00:00,000 --> 00:00:11,952 2 00:00:11,952 --> 00:00:13,800 >> David J. МАЛАН: Так что это CS50. 3 00:00:13,800 --> 00:00:18,970 И это было CS50 собственной Колтон Огден, для более о том, кто музыку можно 4 00:00:18,970 --> 00:00:22,820 скачать на soundcloud.com/cs50. 5 00:00:22,820 --> 00:00:26,690 >> Итак, сегодня мы ориентируемся тем более по искусству программирования. 6 00:00:26,690 --> 00:00:28,980 И мы берем, где мы оставили на прошлой неделе, сосредоточившись 7 00:00:28,980 --> 00:00:31,660 на пустом месте, который был в этом графический язык программирования. 8 00:00:31,660 --> 00:00:35,490 И принимать вещи вниз к более низкому уровню, используя более традиционный программирование 9 00:00:35,490 --> 00:00:38,420 язык известен как С. Но по пути, понимая, 10 00:00:38,420 --> 00:00:40,730 что те же идеи мы говорили на прошлой пятницы 11 00:00:40,730 --> 00:00:44,390 будет повторяться не только в этом на языке С, но в большинстве любой другой 12 00:00:44,390 --> 00:00:46,350 что мы смотрим на этот семестр. 13 00:00:46,350 --> 00:00:50,247 >> Так мы называли эту вещь здесь то, что последний раз? 14 00:00:50,247 --> 00:00:51,830 Это представитель заявлении. 15 00:00:51,830 --> 00:00:53,080 Таким образом, мы назвали это заявление. 16 00:00:53,080 --> 00:00:54,100 И он делает то. 17 00:00:54,100 --> 00:00:56,910 Это команда, которая компьютер или царапинам может выполнить. 18 00:00:56,910 --> 00:00:59,910 И впредь, давайте также начать называя нечто подобное функция, 19 00:00:59,910 --> 00:01:02,070 по причинам, мы скоро увидим. 20 00:01:02,070 --> 00:01:03,681 >> Между тем, мы видели такие вещи. 21 00:01:03,681 --> 00:01:05,680 И это, как правило, Известно также то, что построить? 22 00:01:05,680 --> 00:01:06,240 >> АУДИТОРИЯ: Loop. 23 00:01:06,240 --> 00:01:06,860 >> David J. МАЛАН: Так петля. 24 00:01:06,860 --> 00:01:07,943 Так довольно проста. 25 00:01:07,943 --> 00:01:09,470 Она в буквальном смысле делает то, что он говорит. 26 00:01:09,470 --> 00:01:12,210 И в пустом, если вы хотите втиснуть больше части головоломки в там, 27 00:01:12,210 --> 00:01:13,950 часть будет расти, чтобы соответствовать его. 28 00:01:13,950 --> 00:01:16,790 И мы увидим в C, что мы можем сделать то же самое. 29 00:01:16,790 --> 00:01:20,000 >> Другой тип цикла, тем не менее, в пустом может быть навсегда, 30 00:01:20,000 --> 00:01:21,820 или есть любое число других подходов. 31 00:01:21,820 --> 00:01:24,150 Но давайте более универсалом взгляд, с лицом 32 00:01:24,150 --> 00:01:27,402 что, скорее всего, хорошо знакомы, на петли в целом. 33 00:01:27,402 --> 00:01:29,110 Марк Цукерберг: Один вещь, что компьютеры 34 00:01:29,110 --> 00:01:31,860 действительно хорошо это повторяя команды. 35 00:01:31,860 --> 00:01:33,910 Как человек, вы получите очень скучно, если вас 36 00:01:33,910 --> 00:01:36,730 должен был сделать то же самое много раз подряд. 37 00:01:36,730 --> 00:01:40,530 Но компьютер может сделать то же самое миллионы или даже миллиарды раз, 38 00:01:40,530 --> 00:01:43,290 и не надоедает, и быть в состоянии отнести то, что действительно хорошо. 39 00:01:43,290 --> 00:01:45,650 >> Так, например, если хотел бы пожелать всем 40 00:01:45,650 --> 00:01:48,840 на Facebook с днем ​​рождения отправив их по электронной почте, 41 00:01:48,840 --> 00:01:51,550 это может занять мне больше века на самом деле выписать 42 00:01:51,550 --> 00:01:53,000 все эти письма на всех. 43 00:01:53,000 --> 00:01:57,780 Но с помощью нескольких строк кода, я могу есть система, отправьте письмо на всех 44 00:01:57,780 --> 00:01:59,930 на Facebook, желающих им С Днем Рождения. 45 00:01:59,930 --> 00:02:02,730 Так вот что петли и почему они ценны и то 46 00:02:02,730 --> 00:02:04,740 что компьютеры могут делать очень хорошо. 47 00:02:04,740 --> 00:02:05,630 >> David J. МАЛАН: Так что, если Вы были получатель 48 00:02:05,630 --> 00:02:07,820 некоторых из CS50 и Пространство Dropbox в последнее время, 49 00:02:07,820 --> 00:02:10,590 что на самом деле именно то, что мы сделать, используя код совсем так. 50 00:02:10,590 --> 00:02:12,600 Мы по существу имеют большой таблицы, в которую 51 00:02:12,600 --> 00:02:15,016 люди были ввода их имена и адреса электронной почты. 52 00:02:15,016 --> 00:02:18,160 И мы писали чуть-чуть кода, может перебрать эти адреса 53 00:02:18,160 --> 00:02:21,860 и выплюнул уникальные адреса в случай, если кто представил несколько раз. 54 00:02:21,860 --> 00:02:25,120 И после этого, мы отправляем Автоматизированная письмо от бота CS50 в, 55 00:02:25,120 --> 00:02:27,190 в том числе скидочный купон. 56 00:02:27,190 --> 00:02:29,290 >> Теперь мы также смотрели на это построить в прошлый раз. 57 00:02:29,290 --> 00:02:33,100 И это особенно Примером чего? 58 00:02:33,100 --> 00:02:35,050 Так что, да, это логическое выражение. 59 00:02:35,050 --> 00:02:37,050 И форма предназначена , чтобы захватить то, как хорошо. 60 00:02:37,050 --> 00:02:39,966 Все такие вопросы образуют истинным или ложным в пустом 61 00:02:39,966 --> 00:02:41,590 будет выглядеть немного-то вроде этого. 62 00:02:41,590 --> 00:02:43,200 И мы называем это логическое выражение. 63 00:02:43,200 --> 00:02:46,170 не Это действительно истинным или ложным, да или нет. 64 00:02:46,170 --> 00:02:49,150 Это способ, отвечая на вопрос. 65 00:02:49,150 --> 00:02:52,420 >> И то же можно использовать эти Boolean выражения внутри конструкций 66 00:02:52,420 --> 00:02:54,720 как это, какая из Конечно есть условия 67 00:02:54,720 --> 00:02:57,259 или филиалы, пословиц развилок. 68 00:02:57,259 --> 00:02:59,550 И они могут выглядеть не только как это, но они могут также 69 00:02:59,550 --> 00:03:02,080 уже Эльсес, связанных с ними. 70 00:03:02,080 --> 00:03:05,820 И вы можете на самом деле имеют три пути развилка или четыре вилочные 71 00:03:05,820 --> 00:03:08,340 в дороге, просто гнездования эти вещи, 72 00:03:08,340 --> 00:03:10,510 как вы увидите в пустом если вы еще этого не сделали. 73 00:03:10,510 --> 00:03:13,550 И как вы можете сделать в C, а также. 74 00:03:13,550 --> 00:03:16,810 >> Давайте еще раз универсалом смотреть на alumnist, а также, кто 75 00:03:16,810 --> 00:03:21,490 может представить другой подход к этим вещам называемых условия. 76 00:03:21,490 --> 00:03:24,060 >> Билл Гейтс: Люди делают решения каждый день. 77 00:03:24,060 --> 00:03:27,530 Например, прежде чем выйти на улицу вас отчасти есть, если заявление, которое говорит, 78 00:03:27,530 --> 00:03:31,480 если идет дождь, то я нужно получить мою куртку. 79 00:03:31,480 --> 00:03:36,820 И компьютеры удивительны, как только вы решить те виды отчетности, 80 00:03:36,820 --> 00:03:42,280 что они могут надежно выполнять те вещи, в невероятной скоростью. 81 00:03:42,280 --> 00:03:48,240 И таким образом, компьютерная программа действительно немного математики и некоторые 82 00:03:48,240 --> 00:03:53,050 если заявления где Решение получает сделано. 83 00:03:53,050 --> 00:03:55,020 >> David J. МАЛАН: Так как Вы, возможно, знаете, это было 84 00:03:55,020 --> 00:03:57,880 люди, как Билл Гейтс, Пол Аллен и другие 85 00:03:57,880 --> 00:04:00,240 что действительно стартовал так называемый персональный компьютер 86 00:04:00,240 --> 00:04:01,990 Революция несколько лет назад. 87 00:04:01,990 --> 00:04:04,140 Я думал, прежде чем мы углубимся в какой Administrivia, 88 00:04:04,140 --> 00:04:09,920 мы связаны сказку из Альбукерке, Нью-Мексико музей естественной истории 89 00:04:09,920 --> 00:04:13,650 и наука, где некоторые из Билла Гейтса ' и ранние рассказы Пола Аллена 90 00:04:13,650 --> 00:04:17,470 пересчитываются, как у нас сейчас современные ПК и компьютеров Mac и многое другое. 91 00:04:17,470 --> 00:04:22,390 Для этого, однако, мы должны двух добровольцев которые имеют очень хорошие голоса повествования 92 00:04:22,390 --> 00:04:23,735 читать сценарий вслух. 93 00:04:23,735 --> 00:04:25,530 >> Ладно, а как насчет в там. 94 00:04:25,530 --> 00:04:26,120 Поднимайтесь. 95 00:04:26,120 --> 00:04:27,770 А как насчет перед здесь. 96 00:04:27,770 --> 00:04:28,340 Идем вниз. 97 00:04:28,340 --> 00:04:29,600 Займите свои места здесь. 98 00:04:29,600 --> 00:04:32,444 Как вы, ребята придумали, пара административных объявлений. 99 00:04:32,444 --> 00:04:34,360 секционирования, процесс о выборе раздел, 100 00:04:34,360 --> 00:04:36,068 начнется в этом Среды по пятницу. 101 00:04:36,068 --> 00:04:38,400 Подробнее об этом в ближайшую Среда в лекции. 102 00:04:38,400 --> 00:04:41,770 >> Супер секции, в то время, являются то, что мы предлагаем на следующей неделе 103 00:04:41,770 --> 00:04:45,310 в результате чего весь класс предлагается принять участие в довольно больших масштабах 104 00:04:45,310 --> 00:04:47,690 секции, одна более удобным, один менее комфортно. 105 00:04:47,690 --> 00:04:51,340 И мы объявим реквизиты из этого, а также, в конце этой недели. 106 00:04:51,340 --> 00:04:53,310 >> Между тем секции, сами, начнется 107 00:04:53,310 --> 00:04:57,241 в три курса недели, нулевой индекс, что означает те пару недель 108 00:04:57,241 --> 00:04:57,740 вне. 109 00:04:57,740 --> 00:04:58,450 Так, чтобы не волноваться. 110 00:04:58,450 --> 00:05:01,014 Вы еще не пропустили ничего в этом направлении. 111 00:05:01,014 --> 00:05:03,930 Между тем в то же время, если вам есть вопросы к административной, 112 00:05:03,930 --> 00:05:08,120 напишите мне и Девон и Гейб и Роб по этому адресу здесь. 113 00:05:08,120 --> 00:05:10,320 >> Наконец, установите проблема 0, конечно, из. 114 00:05:10,320 --> 00:05:12,320 Вы, возможно, заметили его на сайте Курса. 115 00:05:12,320 --> 00:05:14,840 Следует предоставить вам все ответы на вопросы 116 00:05:14,840 --> 00:05:18,250 у вас может быть по пути для Приступая к работе с множеством проблем. 117 00:05:18,250 --> 00:05:21,430 Но если вы окажетесь нуждается в руку помощи, 118 00:05:21,430 --> 00:05:25,020 всеми средствами посещать в рабочее время, Понедельник, Вторник, Среда, Четверг 119 00:05:25,020 --> 00:05:27,290 на этой неделе в вечернее время в четырех столовых. 120 00:05:27,290 --> 00:05:31,650 Смотрите, что URL там за сведения, от того, где рабочее время должно быть. 121 00:05:31,650 --> 00:05:34,000 >> Теперь Давайте встретимся наш два гостя здесь сегодня. 122 00:05:34,000 --> 00:05:34,740 Как тебя зовут? 123 00:05:34,740 --> 00:05:35,290 >> JAY PAUL: Джей Пол. 124 00:05:35,290 --> 00:05:36,880 >> David J. МАЛАН: Джей Павел, приятно познакомиться. 125 00:05:36,880 --> 00:05:37,330 >> HIKARI: Хикари. 126 00:05:37,330 --> 00:05:37,975 >> David J. МАЛАН: Хикари? 127 00:05:37,975 --> 00:05:38,250 >> HIKARI: Хикари. 128 00:05:38,250 --> 00:05:38,810 >> David J. МАЛАН: Хикари. 129 00:05:38,810 --> 00:05:39,790 Приятно познакомиться, а также. 130 00:05:39,790 --> 00:05:42,123 Джей Пол и Хикари есть в перед ними на этих музыки 131 00:05:42,123 --> 00:05:45,100 стоит в двух сценариев, которые я печатные сегодня утром от Нью-Мексико 132 00:05:45,100 --> 00:05:46,692 Музей естественной истории и науки. 133 00:05:46,692 --> 00:05:48,400 И то, что я думал, Я бы сделал на накладные расходы 134 00:05:48,400 --> 00:05:52,830 будет сопровождать вашу декламацию сценария и этой истории 135 00:05:52,830 --> 00:05:54,700 с некоторыми визуальными образами, без неожиданностей. 136 00:05:54,700 --> 00:05:57,512 >> И то, что я сделал в заранее является prehighlight на вашем сценарии 137 00:05:57,512 --> 00:05:59,470 то, что вы должны прочитать, и то, что вы должны прочитать. 138 00:05:59,470 --> 00:06:00,920 И мы будем в основном только альтернативные пункты. 139 00:06:00,920 --> 00:06:03,211 Так что это так же, как вы, возможно, сделали на уроке английского. 140 00:06:03,211 --> 00:06:06,875 Это действительно заставить аудиторию верить в свою сказку здесь. 141 00:06:06,875 --> 00:06:07,600 Пойдем? 142 00:06:07,600 --> 00:06:13,272 Таким образом, история здесь, у нас есть BASIC, и она начинается в Кембридже. 143 00:06:13,272 --> 00:06:18,750 >> JAY PAUL: Это была зима 1974 года, в Кембридже, штат Массачусетс 144 00:06:18,750 --> 00:06:20,240 где зимы могут быть холодными. 145 00:06:20,240 --> 00:06:22,800 Бородатый, длинноволосый из колледжа имени 146 00:06:22,800 --> 00:06:27,280 Пол Аллен был drudging через Гарварде Площадь, погруженный в свои мысли. 147 00:06:27,280 --> 00:06:31,050 Его главной заботой в те дни был, как получить своего друга, Билл Гейтс, 148 00:06:31,050 --> 00:06:34,974 бросить школу и пойти в бизнес с ним. 149 00:06:34,974 --> 00:06:37,890 HIKARI: два уже ушел через ряд коммерческих предприятий 150 00:06:37,890 --> 00:06:40,850 вместе, начиная с Lakeside школа в Сиэтле, где 151 00:06:40,850 --> 00:06:45,220 они были выплачены в свободное время компьютера для проверить компьютер PDP-10 в местном времени 152 00:06:45,220 --> 00:06:46,580 обмена компанию. 153 00:06:46,580 --> 00:06:50,930 Самое последнее план был бросить школа и образуют компанию программного обеспечения. 154 00:06:50,930 --> 00:06:53,440 Аллен покинул Вашингтон Государственный университет. 155 00:06:53,440 --> 00:06:58,380 Но в последнюю минуту, Гейтс решили придерживаться Гарварде. 156 00:06:58,380 --> 00:07:02,080 >> JAY PAUL: Это день, пересекая Гарвард Площадь, Аллен заметил января, 157 00:07:02,080 --> 00:07:07,530 1975 вопрос о Popular Electronics с земли остановки заголовком, 158 00:07:07,530 --> 00:07:11,900 Первый в мире мини-компьютер Kit чтобы конкурировать коммерческие модели. 159 00:07:11,900 --> 00:07:14,430 Под таким заголовком было картина небольшую коробку 160 00:07:14,430 --> 00:07:16,160 украшены огнями и переключателей. 161 00:07:16,160 --> 00:07:19,770 Она называлась MITS Altair 8800. 162 00:07:19,770 --> 00:07:24,100 И Аллен знал, что это то, что он искал. 163 00:07:24,100 --> 00:07:26,350 >> HIKARI: Дни дискуссия. 164 00:07:26,350 --> 00:07:30,170 Аллен и Гейтс понял Значимость Альтаира. 165 00:07:30,170 --> 00:07:32,480 Они часто говорили о микропроцессорах 166 00:07:32,480 --> 00:07:35,250 и ждали, чтобы увидеть, что будет сделано с ними. 167 00:07:35,250 --> 00:07:39,770 И был комплект миникомпьютер на крышка Popular Electronics. 168 00:07:39,770 --> 00:07:42,830 Это, по-видимому не было программного обеспечения еще. 169 00:07:42,830 --> 00:07:46,830 Они воображали нацию программисты нисходят по MITS. 170 00:07:46,830 --> 00:07:49,590 И так они называли Эд Робертс, Глава компании, 171 00:07:49,590 --> 00:07:53,330 утверждая, что есть версия BASIC язык программирования почти готов 172 00:07:53,330 --> 00:07:54,710 для Altair. 173 00:07:54,710 --> 00:07:55,570 Они этого не сделали. 174 00:07:55,570 --> 00:07:58,910 И Робертс должен был знать, что они не сделали. 175 00:07:58,910 --> 00:08:03,170 Он получал 10 звонков в день от люди, которые BASIC почти готов. 176 00:08:03,170 --> 00:08:05,570 И его запас ответ был, "Первый человек 177 00:08:05,570 --> 00:08:11,090 кто появляется с работы ОСНОВНЫЕ получает контракт ". 178 00:08:11,090 --> 00:08:13,910 >> JAY PAUL: Гейтс и Аллен никогда не видел Альтаир. 179 00:08:13,910 --> 00:08:17,600 Они даже никогда не видел Intel 8080 микропроцессор 180 00:08:17,600 --> 00:08:19,060 в центре Альтаира. 181 00:08:19,060 --> 00:08:21,470 Но пару лет назад Аллен написал программу 182 00:08:21,470 --> 00:08:25,220 на ЭВМ, что эмулируемым операция предыдущей Intel 183 00:08:25,220 --> 00:08:26,217 Микропроцессор. 184 00:08:26,217 --> 00:08:28,300 И на этот раз они бы сделать то же самое. 185 00:08:28,300 --> 00:08:31,530 186 00:08:31,530 --> 00:08:34,380 >> HIKARI: С Intel 8080 руководство на его стороне, 187 00:08:34,380 --> 00:08:37,770 Аллен сел Гарвардский PDP-10 компьютер 188 00:08:37,770 --> 00:08:42,010 и написал эмулятор и программное обеспечение инструменты, необходимые, чтобы сделать программирование. 189 00:08:42,010 --> 00:08:45,820 Между тем Гейтс перестал ходить в классах и посвятил себя 190 00:08:45,820 --> 00:08:48,120 к проектированию основных, используя каждую уловку 191 00:08:48,120 --> 00:08:53,130 он знал, для получения размера внизу 4 килобайта. 192 00:08:53,130 --> 00:08:55,870 >> JAY PAUL: нет в Альбукерке, Эд Робертс получил звонок от Гейтса 193 00:08:55,870 --> 00:08:59,754 прося деталей о том, как Альтаир обрабатываются конкретные процедуры. 194 00:08:59,754 --> 00:09:01,170 Никто не никогда не задавались вопросом, что и раньше. 195 00:09:01,170 --> 00:09:02,670 И Робертс начал интересоваться. 196 00:09:02,670 --> 00:09:05,240 197 00:09:05,240 --> 00:09:07,970 >> HIKARI: С развитием инструменты и дизайн готов, 198 00:09:07,970 --> 00:09:10,780 Гейтс и Аллен написал Код на PDP-10, 199 00:09:10,780 --> 00:09:16,060 привлечение другого студента Гарварда, Монте Davidoff, писать математические процедуры. 200 00:09:16,060 --> 00:09:19,450 После заключительной ночью программирование, Аллен сел в самолет 201 00:09:19,450 --> 00:09:22,970 доставить их основных в MITS. 202 00:09:22,970 --> 00:09:25,800 Он провел самолет переждать беспокоиться. 203 00:09:25,800 --> 00:09:28,490 И еще в Кембридже Гейтс был беспокоиться. 204 00:09:28,490 --> 00:09:32,100 Они провели ряд тестов на BASIC и он работал на эмуляторе. 205 00:09:32,100 --> 00:09:35,444 Но что, если эмулятор был неправ? 206 00:09:35,444 --> 00:09:37,360 JAY PAUL: Как плоскости подошел Альбукерке, 207 00:09:37,360 --> 00:09:40,070 Аллен понял, что их BASIC, теперь аккуратно содержится 208 00:09:40,070 --> 00:09:42,460 на небольшом выпадении перфоленты, бы 209 00:09:42,460 --> 00:09:44,970 бесполезно без отдельной Программа, которая называется загрузчик, что 210 00:09:44,970 --> 00:09:47,550 скажет Альтаир хау читать бумажной ленты существо 211 00:09:47,550 --> 00:09:49,620 подается в телетайпным машины. 212 00:09:49,620 --> 00:09:52,970 Он вынул записную книжку и быстро набросал вниз программу загрузчик 213 00:09:52,970 --> 00:09:56,819 на языке ассемблера, затем вручную переведены, что в 1 и 0 214 00:09:56,819 --> 00:09:57,985 Альтаир поймет. 215 00:09:57,985 --> 00:10:00,530 216 00:10:00,530 --> 00:10:03,830 >> HIKARI: Аллен ожидал чистый, немного, высокотехнологичной компанией 217 00:10:03,830 --> 00:10:05,470 в ведении мужчин в деловых костюмах. 218 00:10:05,470 --> 00:10:09,210 Таким образом, он был удивлен, когда Робертс встретила его в аэропорту, похожий на ранчо 219 00:10:09,210 --> 00:10:10,270 рука. 220 00:10:10,270 --> 00:10:12,070 Робертс был также удивлен. 221 00:10:12,070 --> 00:10:16,340 Когда он бросил Гарвард программист в дорогом отеле, 222 00:10:16,340 --> 00:10:20,790 Аллен должен был признаться, что он не мог позволить себе в комнату. 223 00:10:20,790 --> 00:10:24,510 >> JAY PAUL: MITS, непосредственно, был расположен в пыльном торговом центре. 224 00:10:24,510 --> 00:10:27,040 Внутри на суматоху верстак был Альтаир 225 00:10:27,040 --> 00:10:30,390 загружалась с 5 килобайт память и соединены кабелем 226 00:10:30,390 --> 00:10:32,030 к телетайпу машины. 227 00:10:32,030 --> 00:10:37,200 Робертс и главный инженер, Билл Йейтс, выжидающе 228 00:10:37,200 --> 00:10:40,660 как Аллен переключается его загрузчик Программа в Altair. 229 00:10:40,660 --> 00:10:44,980 Телетайп начал урчание, как это вытащил бумажная лента через считыватель магнитной ленте. 230 00:10:44,980 --> 00:10:47,215 Потребовалось возможно 15 минут загрузить программу. 231 00:10:47,215 --> 00:10:52,110 Тогда телетайп резко напечатаны быстрое памяти, то готов быстрое, 232 00:10:52,110 --> 00:10:55,340 и Аллен начала печатать команды несколько испытаний. 233 00:10:55,340 --> 00:10:57,400 Ко всеобщему изумлению, программное обеспечение работало. 234 00:10:57,400 --> 00:10:58,525 Были ошибки, конечно. 235 00:10:58,525 --> 00:11:02,070 Но главное было это работало. 236 00:11:02,070 --> 00:11:06,570 >> HIKARI: Позже, на их пути к $ 3.00 обед в Панчо, оса полетели 237 00:11:06,570 --> 00:11:10,470 в окне пикапа грузовик и ужалил Аллен на руке. 238 00:11:10,470 --> 00:11:13,070 Но на тот момент ничего может испортить настроение. 239 00:11:13,070 --> 00:11:17,210 Альтаир теперь был свой BASIC, коммерческий продукт для дома 240 00:11:17,210 --> 00:11:23,260 компьютер, выступил Пол Аллен и Билл Гейтс, делать бизнес, как Microsoft. 241 00:11:23,260 --> 00:11:25,336 >> David J. МАЛАН: Многие благодаря нашим двум читателей. 242 00:11:25,336 --> 00:11:30,690 >> [Аплодисменты] 243 00:11:30,690 --> 00:11:32,520 >> David J. МАЛАН: Теперь у вас есть выбор, 244 00:11:32,520 --> 00:11:35,880 прежде чем уехать, из блестящие или свечение в dark-- о, 245 00:11:35,880 --> 00:11:40,810 подождите одну секунду, wait-- блестящие и светятся в темноте слона 246 00:11:40,810 --> 00:11:42,534 от CS50 собственной Cheng Gong. 247 00:11:42,534 --> 00:11:43,450 HIKARI: Ой, спасибо. 248 00:11:43,450 --> 00:11:45,324 David J. МАЛАН: Все Хорошо, спасибо вам большое. 249 00:11:45,324 --> 00:11:49,855 [Аплодисменты] 250 00:11:49,855 --> 00:11:51,105 David J. МАЛАН: Так правдивая история. 251 00:11:51,105 --> 00:11:54,380 Это говорит о том, что все эти машины и легкость, с которой мы 252 00:11:54,380 --> 00:11:56,270 использовать их прямо сейчас, и как должное, действительно 253 00:11:56,270 --> 00:12:00,070 началось здесь, всего в нескольких шагах из этого фактического театра. 254 00:12:00,070 --> 00:12:03,930 И вот сегодня, если вы не были, Это Максвелл Дворкина, компьютер 255 00:12:03,930 --> 00:12:05,810 науки здание, Также за углом. 256 00:12:05,810 --> 00:12:09,760 А на втором этаже этого Здание делает повесить три страницы 257 00:12:09,760 --> 00:12:12,740 от первоначального исходного кода, что Билл Гейтс и Пол Аллен написал. 258 00:12:12,740 --> 00:12:14,770 В самом деле, если использование увеличении в вы можете посмотреть не только 259 00:12:14,770 --> 00:12:17,350 их имена в оригинальный тип, но и 260 00:12:17,350 --> 00:12:22,100 их подписи, что они украшены Несколько лет назад, когда они в последний раз посетил. 261 00:12:22,100 --> 00:12:25,800 >> Но то, что было особенно убедительным о это то, что они намеревались сделать 262 00:12:25,800 --> 00:12:29,760 было написать программу, которая будет дать возможность другим людям писать 263 00:12:29,760 --> 00:12:30,950 их собственные программы. 264 00:12:30,950 --> 00:12:34,280 В то время все было с эта машина Альтаир сделаны MITS. 265 00:12:34,280 --> 00:12:40,020 И все что им было нужно некоторый способ что делает его легким для любителей и людей 266 00:12:40,020 --> 00:12:45,300 нравится нам в этом зале, чтобы на самом деле программа что не обязательно понимая 267 00:12:45,300 --> 00:12:49,060 Код Ассамблея, или машина Код, или не дай бог, 0 и 1. 268 00:12:49,060 --> 00:12:51,190 Мы программисты, как те, в этой комнате, мы 269 00:12:51,190 --> 00:12:54,070 хочу быть в состоянии выразить сами гораздо больше, как псевдо-код 270 00:12:54,070 --> 00:12:57,330 даже если это немного более нит разборчивы, чем мы говорили на прошлой неделе. 271 00:12:57,330 --> 00:13:00,970 Мы не хотим, чтобы написать такой код, который сделал Пол Аллен и Билл Гейтс. 272 00:13:00,970 --> 00:13:04,850 Мы, наоборот, хотим, чтобы написать код, который выглядит немного более дружественным к пользователю. 273 00:13:04,850 --> 00:13:07,150 >> Теперь это язык известен как BASIC. 274 00:13:07,150 --> 00:13:11,497 И номера строк есть то, что вам использовать просто номер строки кода 275 00:13:11,497 --> 00:13:12,330 что вы пишете. 276 00:13:12,330 --> 00:13:14,038 Мы даже не должны сделать эти дни. 277 00:13:14,038 --> 00:13:16,060 Но вы можете посмотреть здесь как PRINT "Здравствуй, мир!" 278 00:13:16,060 --> 00:13:18,660 бы действительно по-видимому, печатать только что. 279 00:13:18,660 --> 00:13:22,710 И так, что Билл и Пол сделал, дать людям возможность написать такой код 280 00:13:22,710 --> 00:13:27,240 вместо of-- если вы взгляните на информатика wall-- такой код. 281 00:13:27,240 --> 00:13:29,290 >> На самом деле, CS50 недавно имели возможность 282 00:13:29,290 --> 00:13:32,540 сесть с профессором Гарри Льюис в области компьютерных наук отдела, который 283 00:13:32,540 --> 00:13:34,640 на самом деле учили Билла Гейтс несколько лет назад, 284 00:13:34,640 --> 00:13:38,460 и стоит здесь до эти три страницы выдержек. 285 00:13:38,460 --> 00:13:39,560 Давайте взглянем. 286 00:13:39,560 --> 00:13:45,520 >> ГАРРИ Льюис: Что у вас тут список ранней части программного обеспечения 287 00:13:45,520 --> 00:13:50,240 написанная Биллом Гейтсом и Полом Аллен, основатели Microsoft. 288 00:13:50,240 --> 00:13:52,570 Таким образом, код Интересно по двум причинам. 289 00:13:52,570 --> 00:13:55,480 Прежде всего, это стало Первый продукт компании Microsoft, 290 00:13:55,480 --> 00:14:01,810 который был переводчиком для BASIC язык программирования. 291 00:14:01,810 --> 00:14:04,940 А во-вторых, это было Одним из первых попыток 292 00:14:04,940 --> 00:14:10,580 чтобы создать интерпретатор настолько обычным люди могли использовать персональные компьютеры. 293 00:14:10,580 --> 00:14:12,670 >> Так Билл Гейтс был студентов в Гарварде. 294 00:14:12,670 --> 00:14:14,820 Я начал преподавать в Гарварде в 1974 году. 295 00:14:14,820 --> 00:14:16,560 Это было сделано в 1975 году. 296 00:14:16,560 --> 00:14:20,180 Так было в начале своей карьеры и в начале моей карьеры. 297 00:14:20,180 --> 00:14:23,790 Я на самом деле учили Билла в Конечно в это время. 298 00:14:23,790 --> 00:14:27,130 Пол Аллен не был Гарвардский студент, но он 299 00:14:27,130 --> 00:14:31,020 был средней школы Одноклассник Билл Гейтс. 300 00:14:31,020 --> 00:14:33,740 Если вы приходите и смотрите на список, вы будете 301 00:14:33,740 --> 00:14:36,230 на самом деле найти третий Имя, Монте Davidoff, 302 00:14:36,230 --> 00:14:39,260 который был одноклассник Гейтса здесь, в Гарварде. 303 00:14:39,260 --> 00:14:41,340 >> Итак, вот интересный комментарий здесь. 304 00:14:41,340 --> 00:14:47,150 Он говорит: "В 4К можете удалять квадратного корня но для петли должны еще работать ". 305 00:14:47,150 --> 00:14:53,080 Итак, что это означает, что было два пути обобщить данную программу. 306 00:14:53,080 --> 00:14:57,860 Один из них был работать на версии этого компьютера Altair 307 00:14:57,860 --> 00:15:04,310 что только было 4K слова памяти, 4096 слов в памяти. 308 00:15:04,310 --> 00:15:07,050 Но большой версия была 8K. 309 00:15:07,050 --> 00:15:09,770 И что это говорит, что в версии 4K 310 00:15:09,770 --> 00:15:12,770 Вы должны были удалить некоторые Код, чтобы сделать его нужным. 311 00:15:12,770 --> 00:15:14,790 И одна из вещей, , который будет удалена 312 00:15:14,790 --> 00:15:16,290 будет квадратный корень рутина. 313 00:15:16,290 --> 00:15:20,360 Но, видимо, для петли должны еще 314 00:15:20,360 --> 00:15:26,392 работать даже тогда, когда вы собираете вниз в течение только версии 4K компьютера. 315 00:15:26,392 --> 00:15:29,350 David J. МАЛАН: Так одна из тем, как мы увидим в информатике, 316 00:15:29,350 --> 00:15:31,430 это понятие наслоение и абстракция, 317 00:15:31,430 --> 00:15:34,670 и действительно стоял на плечах из людей, которые пришли перед нами, а не 318 00:15:34,670 --> 00:15:37,890 в отличие от некоторых из Билла Гейтса и Пол Аллен повествование здесь. 319 00:15:37,890 --> 00:15:40,080 И что это означает, что сегодня мы можем принять для 320 00:15:40,080 --> 00:15:43,490 разумеющимся, что вещи на самом деле нам легче писать код. 321 00:15:43,490 --> 00:15:47,170 Действительно код, как мы уже говорили в пятницу, является более технически известный как исходный код. 322 00:15:47,170 --> 00:15:52,210 И это этот английский подобный синтаксис это больше, собственно, и более четко определены 323 00:15:52,210 --> 00:15:55,480 чем то вроде псевдо-код, для которые нет формальное определение. 324 00:15:55,480 --> 00:15:58,320 >> И сегодня то, что мы собираемся сосредоточиться на исходный код 325 00:15:58,320 --> 00:16:01,010 что выглядит так, что по общему признанию, на первый взгляд 326 00:16:01,010 --> 00:16:02,690 выглядит совершенно загадочным. 327 00:16:02,690 --> 00:16:08,540 И, честно говоря, это путь более эстетически сложнее, чем основная программа. 328 00:16:08,540 --> 00:16:13,300 Все это делает программа, напомним, что мы говорили? 329 00:16:13,300 --> 00:16:14,990 Это просто печатает "привет мир". 330 00:16:14,990 --> 00:16:19,600 И все же смотреть на все вещи, мы должны чтобы обернуть вокруг этого очень простой фразе. 331 00:16:19,600 --> 00:16:21,750 Но вскоре все эти линии и больше 332 00:16:21,750 --> 00:16:24,800 сделает гораздо лучше для вас смысл. 333 00:16:24,800 --> 00:16:26,940 >> И поток состоит в следующем. 334 00:16:26,940 --> 00:16:31,220 Что нам нужно в нашем распоряжении это взять код, как источника 335 00:16:31,220 --> 00:16:32,340 Код, который мы только что видели. 336 00:16:32,340 --> 00:16:35,060 И нам нужна новая программа запустить его через. 337 00:16:35,060 --> 00:16:39,130 Мы должны алгоритмов, которые могут конвертировать исходный код, как это, 338 00:16:39,130 --> 00:16:41,932 в объектный код, 0 и 1. 339 00:16:41,932 --> 00:16:43,890 Другими словами, то, что мы собираемся, чтобы узнать сегодня 340 00:16:43,890 --> 00:16:46,620 в том, как это сделать, написать исходный код до верхней, 341 00:16:46,620 --> 00:16:49,930 передать его в качестве вклада в специальный Программа называется компилятором, 342 00:16:49,930 --> 00:16:52,140 и мы собираемся производить объектный код. 343 00:16:52,140 --> 00:16:54,600 Какие это просто причудливый способ говорю, что мы будем принимать то 344 00:16:54,600 --> 00:16:58,350 что выглядит так, передать его в программе под названием компилятор, 345 00:16:58,350 --> 00:17:01,210 производить объектный код который выглядит следующим образом. 346 00:17:01,210 --> 00:17:04,720 >> Так что это буквально паттерны 0 и 1 347 00:17:04,720 --> 00:17:08,550 , которые понимают Компьютер Intel в эти дни, 348 00:17:08,550 --> 00:17:12,480 что если интерпретировать с помощью ЦПУ, мозги внутри компьютера, 349 00:17:12,480 --> 00:17:16,130 буквально распечатать, попросту говоря, "привет мир". 350 00:17:16,130 --> 00:17:19,670 Теперь есть способ больше 0 и 1, чем вы хотел бы надеяться, может быть необходимо для этого. 351 00:17:19,670 --> 00:17:22,520 Но это потому, что мы строим на хорошую сделку сложности 352 00:17:22,520 --> 00:17:24,270 что мы можем впредь принимать как должное. 353 00:17:24,270 --> 00:17:27,869 Другими словами, много умных людей дали нам много интересных инструментов 354 00:17:27,869 --> 00:17:32,480 и мощное программное обеспечение, с которым мы сейчас может сделать проекты самостоятельно. 355 00:17:32,480 --> 00:17:33,400 >> Так что давайте начнем. 356 00:17:33,400 --> 00:17:36,640 В то время как в прошлую пятницу, и для задачи Набор 0 на этой неделе, 357 00:17:36,640 --> 00:17:39,000 вы будете играть в Мир, который выглядит следующим образом. 358 00:17:39,000 --> 00:17:42,180 Начиная с сегодняшнего дня и для задачи Установите 1 на следующей неделе, код 359 00:17:42,180 --> 00:17:45,410 будет выглядеть немного больше загадочным, но функционально является 360 00:17:45,410 --> 00:17:46,940 будет то же самое. 361 00:17:46,940 --> 00:17:50,770 Так уведомление, верх царапинам, Дно С. Откровенно царапинам 362 00:17:50,770 --> 00:17:52,780 намного больше пользователь удобной и доступной. 363 00:17:52,780 --> 00:17:56,890 Но если сейчас вы сравните визуально сверху снизу, там вроде 12:59 364 00:17:56,890 --> 00:17:59,690 соответствие между головоломки и язык 365 00:17:59,690 --> 00:18:00,870 мы собираемся играть. 366 00:18:00,870 --> 00:18:04,420 В частности, говорят, синий паззл наверху, 367 00:18:04,420 --> 00:18:08,370 по-видимому, соответствует тому, что ключевое слово или специальная фраза на этом языке 368 00:18:08,370 --> 00:18:09,062 называется C? 369 00:18:09,062 --> 00:18:09,770 АУДИТОРИЯ: Printf. 370 00:18:09,770 --> 00:18:10,728 David J. МАЛАН: Printf. 371 00:18:10,728 --> 00:18:12,140 Это означает, что отформатированный печать. 372 00:18:12,140 --> 00:18:15,240 И это только фантазии способ сказать Printf в C 373 00:18:15,240 --> 00:18:18,615 будет заявление или функцию , которая печатает то на экран. 374 00:18:18,615 --> 00:18:19,990 Что это печатать на экране? 375 00:18:19,990 --> 00:18:23,627 Что бы вы ни сказать ему, чтобы внутри котировок, внутри скобок. 376 00:18:23,627 --> 00:18:25,460 Итак, еще раз, по общему признанию, есть много вещей, 377 00:18:25,460 --> 00:18:27,990 что вы должны иметь в виду,, скобки, кавычки, точка с запятой, 378 00:18:27,990 --> 00:18:28,656 и все это. 379 00:18:28,656 --> 00:18:30,600 Но все, что является своего рода из к делу. 380 00:18:30,600 --> 00:18:33,660 Интересно вынос сейчас является то, что скажем блок в пустом 381 00:18:33,660 --> 00:18:37,520 в значительной степени эквивалентно Е заявление на C. 382 00:18:37,520 --> 00:18:41,390 >> Между тем, желтый кусок головоломки наверху, когда зеленый флаг нажал, 383 00:18:41,390 --> 00:18:44,736 , вероятно, равна к тому, что ключевое слово здесь? 384 00:18:44,736 --> 00:18:45,360 АУДИТОРИЯ: Главная. 385 00:18:45,360 --> 00:18:46,359 David J. МАЛАН: Так главный. 386 00:18:46,359 --> 00:18:47,410 Может быть, INT, может быть, недействительными. 387 00:18:47,410 --> 00:18:51,280 Но основным видом походит важно, и это действительно так. 388 00:18:51,280 --> 00:18:54,080 Поэтому, когда зеленый флаг нажал , опять же, паззл 389 00:18:54,080 --> 00:18:56,390 что стартует Вся программа царапинам. 390 00:18:56,390 --> 00:19:02,140 Но мы собираемся сейчас начать называть что главный, эта функция известна как главная. 391 00:19:02,140 --> 00:19:06,410 >> Теперь то же время мы будем обобщить это следующим образом. 392 00:19:06,410 --> 00:19:08,780 Мы могли бы назвать сказать функцию. 393 00:19:08,780 --> 00:19:10,580 И это могло бы выглядеть специально, как это. 394 00:19:10,580 --> 00:19:11,770 Ну, насчет петель? 395 00:19:11,770 --> 00:19:16,540 Если мы хотим, чтобы начать преобразования или перевод более в пустом С, 396 00:19:16,540 --> 00:19:19,400 эта вещь здесь, по-видимому просто говорит "привет мир" навсегда. 397 00:19:19,400 --> 00:19:23,060 Так что если у вас ассоциируется это скрипты с кошкой в ​​пустом, 398 00:19:23,060 --> 00:19:26,560 это просто будет продолжать говорить в какой мультфильм пузырь, 399 00:19:26,560 --> 00:19:29,922 "Привет мир, привет мир, привет мир, "до тошноты, навсегда. 400 00:19:29,922 --> 00:19:33,130 Если мы хотим сделать нечто подобное в C, это будет выглядеть немного загадочным. 401 00:19:33,130 --> 00:19:35,463 Но мы можем достичь того же приводит, как мы будем в конечном итоге 402 00:19:35,463 --> 00:19:36,861 выяснить, с синтаксисом, как это. 403 00:19:36,861 --> 00:19:39,360 Я собираюсь снова использовать Printf, потому что в конце дня 404 00:19:39,360 --> 00:19:42,040 Я хочу напечатать "привет мир". 405 00:19:42,040 --> 00:19:45,610 И я по-видимому, с помощью Ключевое слово, которое не навсегда. 406 00:19:45,610 --> 00:19:47,320 Это вместо того, чтобы слово в то время. 407 00:19:47,320 --> 00:19:49,650 Но только семантически в Английский, в то время как вид 408 00:19:49,650 --> 00:19:52,120 предполагает некий цикл или цикл. 409 00:19:52,120 --> 00:19:55,070 >> Так что, оказывается, Ключевое слово, которое использует C. 410 00:19:55,070 --> 00:20:00,700 И в то время как верно, почему время правда фактически означать навсегда? 411 00:20:00,700 --> 00:20:04,240 Ну, в то время как, как мы будем в ближайшее время ценить все больше, 412 00:20:04,240 --> 00:20:08,140 имеет этот скобках рядом с ним где вы можете поместить логическое выражение. 413 00:20:08,140 --> 00:20:11,360 И пока что выражение истинно, этот код, 414 00:20:11,360 --> 00:20:14,750 как обозначено между этими двумя Фигурные скобки, как мы их называем, 415 00:20:14,750 --> 00:20:16,880 просто продолжать работать снова и снова. 416 00:20:16,880 --> 00:20:18,410 >> Так верно, то верно. 417 00:20:18,410 --> 00:20:20,900 Таким образом, хотя истинных средств только сделать это навсегда. 418 00:20:20,900 --> 00:20:23,480 Это почти глупо построить, чтобы выразить себя. 419 00:20:23,480 --> 00:20:26,590 Но не было никакого навсегда Ключевое слово в С. Был в то время. 420 00:20:26,590 --> 00:20:29,390 И там был очень простой Логическое выражение, как правда. 421 00:20:29,390 --> 00:20:32,210 И таким образом, это, мы увидим, достигает того же результата. 422 00:20:32,210 --> 00:20:33,890 >> Как еще вы могли бы реализовать цикл? 423 00:20:33,890 --> 00:20:36,980 Ну, в пустом Вы могли бы трудно код определенное число 424 00:20:36,980 --> 00:20:39,430 итераций в цикле здесь. 425 00:20:39,430 --> 00:20:43,210 И так, что именно то, что мы могли бы сделать в этой версии C, 426 00:20:43,210 --> 00:20:46,140 в результате чего мы имеем так называемый цикл. 427 00:20:46,140 --> 00:20:49,850 И цикл здесь собирается для перебора, несколько загадочно, 428 00:20:49,850 --> 00:20:54,100 от значения 0 на вверх , но меньшей, чем 10. 429 00:20:54,100 --> 00:20:55,955 >> Сейчас переменные в пустом месте. 430 00:20:55,955 --> 00:20:57,830 Вы, возможно, не было повод использовать это. 431 00:20:57,830 --> 00:21:02,516 Но какой в ​​этом смысл, в общем, переменной мы говорили на прошлой неделе? 432 00:21:02,516 --> 00:21:03,015 Что это? 433 00:21:03,015 --> 00:21:03,780 >> Аудитория: очки. 434 00:21:03,780 --> 00:21:05,200 >> David J. МАЛАН: Чтобы указать? 435 00:21:05,200 --> 00:21:05,700 О, указывает. 436 00:21:05,700 --> 00:21:07,620 ОК, отслеживание точек, Например, в игре. 437 00:21:07,620 --> 00:21:09,510 Или в более общем делать что с переменной? 438 00:21:09,510 --> 00:21:10,450 Что утилита из них? 439 00:21:10,450 --> 00:21:10,825 >> АУДИТОРИЯ: Память. 440 00:21:10,825 --> 00:21:11,750 >> David J. МАЛАН: Да, так памяти. 441 00:21:11,750 --> 00:21:13,000 Это для хранения то. 442 00:21:13,000 --> 00:21:17,336 И вроде глупой визуального I используется Последний раз это было, как этот стеклянный шар. 443 00:21:17,336 --> 00:21:19,710 И если бы мы хотели, чтобы сохранить то внутри переменной, 444 00:21:19,710 --> 00:21:21,918 например сейчас значение шесть, потому что 445 00:21:21,918 --> 00:21:23,450 шесть пинг-понг шары в здесь. 446 00:21:23,450 --> 00:21:26,158 Это просто своего рода хранилище контейнер, который под капотом 447 00:21:26,158 --> 00:21:30,030 реализуется с битами, 0 и 1, Однако компьютер происходит, чтобы сделать это. 448 00:21:30,030 --> 00:21:32,900 >> Таким образом, в пустом, если мы хотите иметь переменную, 449 00:21:32,900 --> 00:21:34,840 мы можем использовать оранжевый блок, как это. 450 00:21:34,840 --> 00:21:37,050 Мы назовем эту счетчик в этом конкретном случае. 451 00:21:37,050 --> 00:21:38,890 Я инициализации его в 0. 452 00:21:38,890 --> 00:21:41,080 А что это я тогда делать? 453 00:21:41,080 --> 00:21:44,780 Навсегда, говорят счетчик, который, если Вы играете с, что в пустом, 454 00:21:44,780 --> 00:21:45,780 Вы увидите только царапина. 455 00:21:45,780 --> 00:21:49,920 Кошка или что костюм вы надеваете он будет говорить количество в вопросе. 456 00:21:49,920 --> 00:21:52,840 >> Изменение счетчика на 1 как увеличивающиеся на 1. 457 00:21:52,840 --> 00:21:56,580 И так это будет рассчитывать с какого и что? 458 00:21:56,580 --> 00:21:59,114 От 0 сезам бесконечности, или до скреста перерывов, 459 00:21:59,114 --> 00:22:01,030 или до вас своего рода теряют интерес в просмотре 460 00:22:01,030 --> 00:22:02,650 как высоко он может на самом деле рассчитывать. 461 00:22:02,650 --> 00:22:04,800 >> Так как мы можем преобразовать это в C? 462 00:22:04,800 --> 00:22:06,480 Это будет выглядеть немного загадочным. 463 00:22:06,480 --> 00:22:08,896 Но опять же, если вы посмотрите на каждый этих строк индивидуально 464 00:22:08,896 --> 00:22:10,410 они вроде очереди вообще. 465 00:22:10,410 --> 00:22:13,526 Таким образом, очевидно десятичного собирается есть специальное значение в C. 466 00:22:13,526 --> 00:22:14,400 Мы увидим, что снова. 467 00:22:14,400 --> 00:22:15,810 Как в стороне это означает целое. 468 00:22:15,810 --> 00:22:16,990 Так это просто означает количество. 469 00:22:16,990 --> 00:22:18,920 Так вот тип стеклянный шар я хочу, один 470 00:22:18,920 --> 00:22:21,120 , которые могут хранить числа, не пинг-понг шары. 471 00:22:21,120 --> 00:22:25,520 И я собираюсь использовать знак равенства есть присвоить ему значение 0. 472 00:22:25,520 --> 00:22:29,440 Так вот совсем как набор счетчик в 0, но в С. 473 00:22:29,440 --> 00:22:32,840 >> Между тем, в то время как верно, что было эквивалентны, конечно, всегда, 474 00:22:32,840 --> 00:22:35,980 хотя это может показаться загадочным, а затем внутри фигурных скобок. 475 00:22:35,980 --> 00:22:39,188 И вы можете думать об этих фигурных скобках, которые вы можете набрать на клавиатуре, 476 00:22:39,188 --> 00:22:43,110 как действительно быть как кривизны в эти желтые блоки петель в пустом месте. 477 00:22:43,110 --> 00:22:45,700 Она охватывает несколько строк кода. 478 00:22:45,700 --> 00:22:48,120 >> Printf становится немного страшно, потому что я 479 00:22:48,120 --> 00:22:51,120 см не только цитирует в скобках. 480 00:22:51,120 --> 00:22:55,160 Но что же тут нового синтаксически в этом примере? 481 00:22:55,160 --> 00:22:57,300 Там в процента г. 482 00:22:57,300 --> 00:22:58,551 А потом обратный слеш н есть. 483 00:22:58,551 --> 00:23:00,883 Мы видим, что и раньше, даже хотя я не упоминал об этом. 484 00:23:00,883 --> 00:23:01,886 Тогда есть запятая. 485 00:23:01,886 --> 00:23:03,010 А тут еще счетчик. 486 00:23:03,010 --> 00:23:05,010 >> Но мы увидим только через момент, что это всего лишь 487 00:23:05,010 --> 00:23:09,080 стандартный способ сказать распечатать "Десятичное число," цитата, конец цитаты, 488 00:23:09,080 --> 00:23:10,500 некоторые десятичное число. 489 00:23:10,500 --> 00:23:13,370 Но я собираюсь рассказать вам позже что это десятичное число является. 490 00:23:13,370 --> 00:23:16,835 Так на то, что есть запятая В этой строке поговорка Printf, 491 00:23:16,835 --> 00:23:18,710 означает идти вперед и печать некоторые десятичное число. 492 00:23:18,710 --> 00:23:23,110 Да, и кстати, это число независимо от значения этой переменной. 493 00:23:23,110 --> 00:23:25,880 И так, чтобы сделать это более ясно, мы увидим пример 494 00:23:25,880 --> 00:23:30,930 вскоре с участием именно Е в контексте реального C программ. 495 00:23:30,930 --> 00:23:33,472 >> Теперь просто обернуть некоторые из этих конструкций. 496 00:23:33,472 --> 00:23:36,680 Логические выражения, вы не могли бы повод использовать их в вашей программе 497 00:23:36,680 --> 00:23:39,450 но вы могли бы очень хорошо, особенно при использовании условий. 498 00:23:39,450 --> 00:23:43,460 И вот эти два примера из Царапины значит, если х меньше у, 499 00:23:43,460 --> 00:23:48,770 или, если х меньше у и у менее чем г, как мы могли бы перевести это? 500 00:23:48,770 --> 00:23:50,810 >> Ну, в C это просто будет выглядеть вот так. 501 00:23:50,810 --> 00:23:55,300 Немного загадочные, больше скобки, некоторые странные амперсанды, но принципиально 502 00:23:55,300 --> 00:23:59,160 идеи так просто, как они в паззл мире. 503 00:23:59,160 --> 00:24:02,690 Мы просто проверка, если что меньше чем-то еще. 504 00:24:02,690 --> 00:24:03,910 >> Как насчет условий? 505 00:24:03,910 --> 00:24:09,710 В двух словах на английском языке, что делает это кусок царапинам кода у бы вы сказали? 506 00:24:09,710 --> 00:24:11,050 >> АУДИТОРИЯ: Сравнивает два числа. 507 00:24:11,050 --> 00:24:13,760 >> David J. МАЛАН: Сравнивает два цифры, и если х меньше, чем у 508 00:24:13,760 --> 00:24:14,860 он говорит, как много. 509 00:24:14,860 --> 00:24:18,080 Если х больше, чем у он говорит, как много, еще 510 00:24:18,080 --> 00:24:20,740 если х равен у он говорит, как много. 511 00:24:20,740 --> 00:24:22,180 А где же х и у взялось? 512 00:24:22,180 --> 00:24:22,680 Кто знает. 513 00:24:22,680 --> 00:24:25,380 Это кусок нуля код из контекста. 514 00:24:25,380 --> 00:24:29,050 Но то, что мы хотим сейчас сделать, это перевести это на мгновение, чтобы увидеть. 515 00:24:29,050 --> 00:24:31,660 >> Так как вы освоитесь На этой неделе в задаче Набор 516 00:24:31,660 --> 00:24:34,190 0 играть в этом мире слева, реализовать 517 00:24:34,190 --> 00:24:36,940 что идеи не меняется На этой неделе или в следующем, или за его пределами. 518 00:24:36,940 --> 00:24:38,690 Мы просто собираемся начать писать вещи 519 00:24:38,690 --> 00:24:41,240 по-другому, с нашими клавиатура вместо нашего мыши. 520 00:24:41,240 --> 00:24:44,577 >> Таким образом, если х меньше у, есть некоторые скобки там, 521 00:24:44,577 --> 00:24:47,160 то есть некоторые фигурные скобки еще раз, чтобы вид оформить его 522 00:24:47,160 --> 00:24:48,970 как желтые кусочки головоломки делать. 523 00:24:48,970 --> 00:24:53,000 И я собираюсь Е х меньше, чем у и так далее. 524 00:24:53,000 --> 00:24:56,540 >> Что приятно о С, как вы можете видеть здесь, 525 00:24:56,540 --> 00:25:00,480 является то, что вы не получите эту вложенности, гнездования, гнездится, что это обязательно 526 00:25:00,480 --> 00:25:02,220 будет толкать свой код справа. 527 00:25:02,220 --> 00:25:04,990 Вместо этого, вы можете есть все, Модельный ряд аккуратно нравится. 528 00:25:04,990 --> 00:25:08,960 Но это только эстетическая подробно мы увидим снова в ближайшее время. 529 00:25:08,960 --> 00:25:09,660 >> Хорошо. 530 00:25:09,660 --> 00:25:13,290 Так что возвращает нас к это загадочное глядя программа. 531 00:25:13,290 --> 00:25:15,180 Давайте на самом деле написать код. 532 00:25:15,180 --> 00:25:16,830 Теперь, как вы идете по поводу написания кода? 533 00:25:16,830 --> 00:25:21,310 Все эти годы, что вы владели Mac или PC, настольный компьютер или ноутбук, 534 00:25:21,310 --> 00:25:24,520 вы на самом деле имели возможность , чтобы начать писать программный код. 535 00:25:24,520 --> 00:25:27,050 Но вы, вероятно, отсутствует специальный тип программы. 536 00:25:27,050 --> 00:25:28,470 Можно, конечно, написать код. 537 00:25:28,470 --> 00:25:30,740 Но вы не можете обязательно, из коробки, 538 00:25:30,740 --> 00:25:34,210 конвертировать этот исходный код в объектный код, 0 и 1 539 00:25:34,210 --> 00:25:35,619 без чего на компьютере? 540 00:25:35,619 --> 00:25:36,410 АУДИТОРИЯ: Компилятор. 541 00:25:36,410 --> 00:25:37,630 David J. МАЛАН: Так компилятор, право. 542 00:25:37,630 --> 00:25:39,730 Теперь большинство из вас, вероятно, не владеют компилятор, 543 00:25:39,730 --> 00:25:41,259 никогда не скачал компилятор. 544 00:25:41,259 --> 00:25:44,300 Но вы увидите, вы можете скачать его как и большинство любой другой части программного обеспечения. 545 00:25:44,300 --> 00:25:47,470 В мире Mac OS, вы могли бы скачать или скачали уже 546 00:25:47,470 --> 00:25:50,437 то, что называется Xcode или GCC или Clang. 547 00:25:50,437 --> 00:25:52,270 Если вы приехали из Окна мир вы могли бы 548 00:25:52,270 --> 00:25:56,190 скачали Visual Studio, Visual Basic, среда, как, что. 549 00:25:56,190 --> 00:25:59,200 Там в десятки компиляторов в эти дни, что вы могли бы использовать. 550 00:25:59,200 --> 00:26:01,940 Но за исключением этого здесь то, что это будет боль 551 00:26:01,940 --> 00:26:04,480 и, честно говоря, технологическое кошмар для сотен 552 00:26:04,480 --> 00:26:07,680 людей с различными компьютерные конфигурации всем 553 00:26:07,680 --> 00:26:09,800 настроить свои машины в точности так же, 554 00:26:09,800 --> 00:26:11,700 так что мы все можем быть на той же странице. 555 00:26:11,700 --> 00:26:15,240 >> Итак, что мы, вместо того, чтобы, сделать в CS50 является мы вам 556 00:26:15,240 --> 00:26:18,349 стандартный среда, Linux среда это 557 00:26:18,349 --> 00:26:20,140 будет выглядеть немного как то так. 558 00:26:20,140 --> 00:26:22,980 Вы увидите больше из этого в Задача Set 1 спецификация, которая 559 00:26:22,980 --> 00:26:25,330 будет выходить в интернет в эту пятницу ночью. 560 00:26:25,330 --> 00:26:28,360 >> И что это значит является то, что вы и впредь 561 00:26:28,360 --> 00:26:32,060 собираются, чтобы иметь возможность скачать и установить программу 562 00:26:32,060 --> 00:26:33,650 называется CS50 Appliance. 563 00:26:33,650 --> 00:26:36,275 И вы собираетесь скачать и установить другую программу под названием 564 00:26:36,275 --> 00:26:40,300 гипервизор, который является просто причудливый способ достижения этой цели. 565 00:26:40,300 --> 00:26:44,600 Владеете ли вы Mac или ПК, или Linux, компьютер или компьютер Solaris, 566 00:26:44,600 --> 00:26:46,830 или что с ума операционной Система вы работаете, 567 00:26:46,830 --> 00:26:49,820 Вы собираетесь скачать программу называется гипервизор Это 568 00:26:49,820 --> 00:26:53,350 собирается запустить CS50 Appliance на компьютере 569 00:26:53,350 --> 00:26:55,430 независимо от того, что ваша операционная система. 570 00:26:55,430 --> 00:27:00,640 Гипервизор другими словами преобразует наш материал в любом языке, 571 00:27:00,640 --> 00:27:03,850 все указаниям вашего собственный компьютер понимает. 572 00:27:03,850 --> 00:27:04,962 >> Так что это наслоение. 573 00:27:04,962 --> 00:27:06,920 И опять же, это своего рода из тематики в компьютере 574 00:27:06,920 --> 00:27:08,722 наука, здание на вершине вещи. 575 00:27:08,722 --> 00:27:09,680 Вы, возможно, Windows. 576 00:27:09,680 --> 00:27:10,710 Вы, возможно, Mac OS. 577 00:27:10,710 --> 00:27:12,960 Но начиная со следующей недели вы собирается скачали 578 00:27:12,960 --> 00:27:14,980 бесплатный кусок программного обеспечения называется гипервизор. 579 00:27:14,980 --> 00:27:17,800 Вы собираетесь скачали кусок программного обеспечения называется CS50 Appliance. 580 00:27:17,800 --> 00:27:21,050 >> Это собирается запустить в гипервизора, , которая собирается работать на вашем компьютере. 581 00:27:21,050 --> 00:27:23,030 И конечный результат что все мы будем 582 00:27:23,030 --> 00:27:26,220 есть простое окно, как это на Mac или ПК 583 00:27:26,220 --> 00:27:30,160 что дает нам иллюзию все под управлением той же операционной системы, 584 00:27:30,160 --> 00:27:32,800 без любой другой Влияние на вашем компьютере. 585 00:27:32,800 --> 00:27:34,870 И вы можете полный экран это и по сути ведут себя 586 00:27:34,870 --> 00:27:37,550 как будто вы работаете операционная система называется Linux, 587 00:27:37,550 --> 00:27:40,270 что и CS50 Appliance основан на. 588 00:27:40,270 --> 00:27:42,930 >> Итак, давайте реально использовать этот Теперь, чтобы написать программу. 589 00:27:42,930 --> 00:27:45,450 Вы можете написать программу используя Microsoft Word. 590 00:27:45,450 --> 00:27:48,160 Вы можете написать программу используя TextEdit, или Блокнот, 591 00:27:48,160 --> 00:27:51,880 или WordPad, или в значительной степени любое слово Программа обработки вы всегда использовали. 592 00:27:51,880 --> 00:27:55,174 Но реальность такова, что вы не должны использовать действительно любой из этих программ. 593 00:27:55,174 --> 00:27:57,840 Вы, конечно, не следует использовать что-то вроде Microsoft Word, который 594 00:27:57,840 --> 00:28:01,120 имеет смелый облицовку и курсив, и крупные шрифты и небольшие шрифты, 595 00:28:01,120 --> 00:28:03,560 потому что компьютер не заботиться об одном из этого. 596 00:28:03,560 --> 00:28:05,600 Все, что компьютер будет заботиться о том, 597 00:28:05,600 --> 00:28:09,040 Английский как инструкции, написанные на C. 598 00:28:09,040 --> 00:28:12,050 >> Так что мы будем делать внутри из CS50 Appliance 599 00:28:12,050 --> 00:28:14,290 будет использовать программу свободно доступны, и это 600 00:28:14,290 --> 00:28:17,360 предварительно установлены в этом прибор, называемый Gedit. 601 00:28:17,360 --> 00:28:22,280 И Gedit это просто супер просто текстовый редактор, как TextEdit Mac OS в, 602 00:28:22,280 --> 00:28:26,200 как Блокнот Windows, что происходит в выглядеть немного-то вроде этого. 603 00:28:26,200 --> 00:28:28,910 >> Так давайте на самом деле не смотреть на слайды это. 604 00:28:28,910 --> 00:28:32,580 Но давайте на самом деле идти в сама среда. 605 00:28:32,580 --> 00:28:36,090 Я собираюсь идти вперед и войти, в этом другом окне, 606 00:28:36,090 --> 00:28:40,910 к моему CS50 Appliance, который я предварительно установлена ​​на моем ноутбуке здесь. 607 00:28:40,910 --> 00:28:43,771 >> Обратите внимание, что, как Windows, и Mac OS, он получил некоторые меню. 608 00:28:43,771 --> 00:28:45,520 Подобно Windows она ставит это там, а не 609 00:28:45,520 --> 00:28:47,020 из Mac OS, которая ставит его там. 610 00:28:47,020 --> 00:28:48,930 Но реальность такова, что это все виды и то же. 611 00:28:48,930 --> 00:28:50,770 И здесь целый куча программного обеспечения. 612 00:28:50,770 --> 00:28:51,770 Там в Dropbox. 613 00:28:51,770 --> 00:28:54,780 Там целая куча аксессуаров, графические программы, которые мы будем 614 00:28:54,780 --> 00:28:56,430 использовать позже в перспективе для проблемных наборов. 615 00:28:56,430 --> 00:28:59,650 Там в веб-браузер, построенный в так что это полноценный компьютер 616 00:28:59,650 --> 00:29:01,240 внутри компьютера. 617 00:29:01,240 --> 00:29:04,170 >> Но я собираюсь нажмите этот Крайняя левая белый значок здесь, 618 00:29:04,170 --> 00:29:05,890 который является иконой для Gedit. 619 00:29:05,890 --> 00:29:09,650 И он собирается открыть окно , который имеет три панели к нему, 620 00:29:09,650 --> 00:29:12,590 левый, верхний и нижний. 621 00:29:12,590 --> 00:29:16,071 >> Теперь это в этом верхнем правом одного, что Я собираюсь на самом деле написать код. 622 00:29:16,071 --> 00:29:16,820 Так давайте сделаем это ,. 623 00:29:16,820 --> 00:29:19,040 Я собираюсь пойти в Файл, Сохранить. 624 00:29:19,040 --> 00:29:22,100 И вы, возможно, никогда уже видели это специфическое окно, прежде чем. 625 00:29:22,100 --> 00:29:23,620 Но это, как Mac OS или Windows. 626 00:29:23,620 --> 00:29:25,490 Это просто окно со всеми папками 627 00:29:25,490 --> 00:29:27,290 что у меня внутри этого компьютера. 628 00:29:27,290 --> 00:29:30,320 >> И я иду, чтобы спасти файл как hello.c. 629 00:29:30,320 --> 00:29:32,690 И я пойду вперед и нажмите кнопку Сохранить. 630 00:29:32,690 --> 00:29:36,364 А теперь обратите внимание, я есть вкладка в левом верхнем углу называется hello.c. 631 00:29:36,364 --> 00:29:38,280 Так, вероятно, довольно знакомы, даже если вы не 632 00:29:38,280 --> 00:29:40,240 перед использованием данной программы. 633 00:29:40,240 --> 00:29:44,890 >> А теперь я собираюсь ввести в тех довольно загадочным последовательность команд 634 00:29:44,890 --> 00:29:46,360 что мы видели несколько минут назад. 635 00:29:46,360 --> 00:29:49,330 Включите, стандарт I / O.h. 636 00:29:49,330 --> 00:29:50,600 Еще на что в ближайшее время. 637 00:29:50,600 --> 00:29:55,670 Int основной недействительными, открытая фигурная скобка, закрыты фигурную скобку. 638 00:29:55,670 --> 00:30:01,570 А потом внутри там, я думаю, где у нас был "привет мир", точку с запятой. 639 00:30:01,570 --> 00:30:03,100 И теперь спасти. 640 00:30:03,100 --> 00:30:08,780 >> Так что это программа, написанная на C, написана, таким образом, в исходном коде. 641 00:30:08,780 --> 00:30:10,720 Но я не могу просто запустить эту программу. 642 00:30:10,720 --> 00:30:13,390 Я как бы хочу удвоить нажмите на иконку где, 643 00:30:13,390 --> 00:30:16,390 но значок не существует другой чем файл исходного кода. 644 00:30:16,390 --> 00:30:20,359 Что, опять же, это процесс теперь, Мне нужно запустить этот файл через? 645 00:30:20,359 --> 00:30:21,150 АУДИТОРИЯ: Компилятор. 646 00:30:21,150 --> 00:30:22,399 David J. МАЛАН: Так компилятор. 647 00:30:22,399 --> 00:30:24,890 Таким образом, в разных компьютерах делать это по-разному. 648 00:30:24,890 --> 00:30:27,480 Но то, что мы сделали здесь, в CS50 Appliance вот 649 00:30:27,480 --> 00:30:31,260 Представитель, как вы могли бы делать это на различных системах, 650 00:30:31,260 --> 00:30:34,036 является Я просто собираюсь выполнить команду под названием марка. 651 00:30:34,036 --> 00:30:35,660 И сделать буквально собираюсь этого делать. 652 00:30:35,660 --> 00:30:36,640 Сделай меня программа. 653 00:30:36,640 --> 00:30:39,060 >> Так что будет запустить компилятор для меня. 654 00:30:39,060 --> 00:30:42,160 И название программы Я хочу сделать это привет. 655 00:30:42,160 --> 00:30:43,510 Теперь сделать это программа. 656 00:30:43,510 --> 00:30:47,170 И сделать достаточно умный понимаю, что если я скажу, сделать привет, 657 00:30:47,170 --> 00:30:50,980 это собирается автоматически искать для файловой называется hello.c 658 00:30:50,980 --> 00:30:53,420 просто потому что это способ он настроен. 659 00:30:53,420 --> 00:31:00,300 >> Поэтому, когда я теперь попал Введите здесь, в этом с ума загадочная линия только что выполнен. 660 00:31:00,300 --> 00:31:02,720 И поверьте мне, прежде чем долго, в течение всего дня, 661 00:31:02,720 --> 00:31:05,590 вы поймете, что все из этого бреда средств. 662 00:31:05,590 --> 00:31:11,150 Но сейчас, просто знаю, что делать запуск выполнения компилятора. 663 00:31:11,150 --> 00:31:13,290 Другими словами, было установлено, компилятор на моем компьютере 664 00:31:13,290 --> 00:31:14,820 вот предварительно установлена на CS50 Appliance 665 00:31:14,820 --> 00:31:16,560 что мы будем сдавать вам в задаче 1-м сете. 666 00:31:16,560 --> 00:31:20,990 И это тогда взял hello.c как вход, и производится по-видимому, 667 00:31:20,990 --> 00:31:23,040 0 и 1 на выходе. 668 00:31:23,040 --> 00:31:29,410 >> И по умолчанию, что он делает это экономит эти 0 и 1 в файле с именем привет. 669 00:31:29,410 --> 00:31:33,180 И хотя этот синтаксис слишком мощи быть для вас в новинку, просто сказав точку 670 00:31:33,180 --> 00:31:37,110 слэш привет будет средства, которыми я запустить эту программу. 671 00:31:37,110 --> 00:31:40,360 >> Сейчас и в течение по крайней мере нескольких недель, почти все программы 672 00:31:40,360 --> 00:31:44,230 пишем собираетесь быть в черно-белые текстовые окна. 673 00:31:44,230 --> 00:31:47,006 Нет мышей, не щелчок, нет окон, ни иконы. 674 00:31:47,006 --> 00:31:49,630 Мы собираемся держать его просто и сосредоточиться на основных идей 675 00:31:49,630 --> 00:31:52,490 первоначально прежде чем мы получим в то выше уровня, например, 676 00:31:52,490 --> 00:31:56,410 как вырваться из игры, что мы говорили о в первой лекции на прошлой неделе. 677 00:31:56,410 --> 00:32:00,820 >> Поэтому, когда я ударил Введите сюда, это эквивалент в тексте только окружающей 678 00:32:00,820 --> 00:32:03,272 удвоить нажав значок под названием привет. 679 00:32:03,272 --> 00:32:05,480 Что вы ожидаете волю произойдет, когда я ударил Введите то? 680 00:32:05,480 --> 00:32:07,120 >> АУДИТОРИЯ: Это будет печатать "привет мир". 681 00:32:07,120 --> 00:32:10,000 >> David J. МАЛАН: Надеюсь он будет печатать "привет мир". 682 00:32:10,000 --> 00:32:11,370 И это действительно так и сделал. 683 00:32:11,370 --> 00:32:13,690 Теперь там было некоторое загадочный синтаксис здесь. 684 00:32:13,690 --> 00:32:15,950 Давайте назад всего за момент и посмотреть, если мы 685 00:32:15,950 --> 00:32:19,530 не может начать выведение просто мастерить, стараясь понять и не, 686 00:32:19,530 --> 00:32:21,130 относительно того, что здесь происходит. 687 00:32:21,130 --> 00:32:23,609 Что делать, если я избавиться от обратной косой п? 688 00:32:23,609 --> 00:32:25,650 Сейчас некоторые из вас, которые запрограммированы прежде, вероятно, 689 00:32:25,650 --> 00:32:27,054 мгновенно узнать, что это значит. 690 00:32:27,054 --> 00:32:29,220 Но для тех из вас, которые никогда не программировали, 691 00:32:29,220 --> 00:32:34,052 по крайней мере, думаете про себя, что происходит изменить, когда я повторно эту программу? 692 00:32:34,052 --> 00:32:37,010 Так что я собираюсь вернуться вниз к моему маленькие черные и белые окна, которые 693 00:32:37,010 --> 00:32:39,290 это окно, в котором Я могу составить этот. 694 00:32:39,290 --> 00:32:41,130 Я собираюсь перекомпилировать привет. 695 00:32:41,130 --> 00:32:43,520 Мы собираемся, чтобы увидеть то же самое загадочными последовательность команд. 696 00:32:43,520 --> 00:32:45,719 И я собираюсь сделать точечный слэш привет. 697 00:32:45,719 --> 00:32:48,260 А теперь кто, если бы Вы, кто никогда не программировали, 698 00:32:48,260 --> 00:32:49,770 что может быть в этот раз? 699 00:32:49,770 --> 00:32:50,020 Да. 700 00:32:50,020 --> 00:32:51,840 >> АУДИТОРИЯ: Это не остановит печать "привет мир". 701 00:32:51,840 --> 00:32:52,660 >> David J. МАЛАН: Это будет to-- жаль? 702 00:32:52,660 --> 00:32:54,210 >> АУДИТОРИЯ: Это не остановит его печати? 703 00:32:54,210 --> 00:32:55,810 >> David J. МАЛАН: Он не будет остановить печать "привет мир". 704 00:32:55,810 --> 00:32:56,560 Так не плохая идея. 705 00:32:56,560 --> 00:32:58,633 Другие идеи? 706 00:32:58,633 --> 00:32:59,132 Да. 707 00:32:59,132 --> 00:33:00,060 >> АУДИТОРИЯ: Сообщение об ошибке? 708 00:33:00,060 --> 00:33:01,750 >> David J. МАЛАН: Ошибка сообщение, ОК, может быть. 709 00:33:01,750 --> 00:33:02,250 Что еще? 710 00:33:02,250 --> 00:33:05,479 АУДИТОРИЯ: Это может печатать Кронштейн с запятой, а? 711 00:33:05,479 --> 00:33:08,270 David J. МАЛАН: Может печатать Кронштейн с запятой, а. 712 00:33:08,270 --> 00:33:11,950 Поэтому, возможно, что обратный слеш то некоторые вид terminous это важно. 713 00:33:11,950 --> 00:33:14,860 Любые другие мысли? 714 00:33:14,860 --> 00:33:16,412 >> Так что все хорошие идеи. 715 00:33:16,412 --> 00:33:18,370 И в самом деле, это будет чтобы быть сообщение об ошибке. 716 00:33:18,370 --> 00:33:20,400 Это, наверное, скорее всего, чтобы быть ответом в целом 717 00:33:20,400 --> 00:33:22,420 в течение следующих нескольких недель как мы учимся кодировать здесь. 718 00:33:22,420 --> 00:33:27,680 >> Но сейчас помню, что компьютеры только делать то, что вы говорите им делать. 719 00:33:27,680 --> 00:33:30,400 Многое, как смешной арахиса масло и пример желе. 720 00:33:30,400 --> 00:33:33,860 Наши человеческие компьютеры, как только предполагалось делать то, что вы сказали им делать. 721 00:33:33,860 --> 00:33:36,250 Таким образом, в этом случае, если вы не говорите компьютер 722 00:33:36,250 --> 00:33:41,190 переместить тот мигающий курсор на Следующая строка, он не собирается этого делать. 723 00:33:41,190 --> 00:33:45,390 Поэтому, когда я запустить эту программу Теперь, обратите внимание на разницу. 724 00:33:45,390 --> 00:33:46,900 >> Похоже на ошибку. 725 00:33:46,900 --> 00:33:49,190 Это эстетическое ошибка, возможно. 726 00:33:49,190 --> 00:33:53,310 Но то, что отличается об этом Выход по отношению к последней, очевидно? 727 00:33:53,310 --> 00:33:53,810 Да. 728 00:33:53,810 --> 00:33:54,920 >> АУДИТОРИЯ: Это не сделать новую линию. 729 00:33:54,920 --> 00:33:56,586 >> David J. МАЛАН: Это не сделать новую линию. 730 00:33:56,586 --> 00:33:58,740 Теперь те из вас, кто есть возможно, сделанные веб-страниц 731 00:33:58,740 --> 00:34:01,910 раньше, вы, возможно, знаете из BR теги или пункт тег, 732 00:34:01,910 --> 00:34:03,120 очень близки по духу. 733 00:34:03,120 --> 00:34:06,680 Веб-браузер не будет игнорировать вас до вы сообщите ему, что делать. 734 00:34:06,680 --> 00:34:10,020 Аналогично, это язык, как C только собираюсь делать то, что вы скажете ей сделать. 735 00:34:10,020 --> 00:34:12,730 >> Так той причине, что всех этих примерах, 736 00:34:12,730 --> 00:34:15,350 до сих пор, есть вид случайно был этот обратный слэш 737 00:34:15,350 --> 00:34:18,560 там, это средства , с помощью которого вы выражаете себя 738 00:34:18,560 --> 00:34:21,380 как символ новой строки, так сказать. 739 00:34:21,380 --> 00:34:26,219 И вы можете отчасти оценить, возможно, что это будет выглядеть отчасти глупо 740 00:34:26,219 --> 00:34:27,070 если ничего другого. 741 00:34:27,070 --> 00:34:29,150 Если бы я хотел новую линию, просто Нажатие Enter, а затем вид 742 00:34:29,150 --> 00:34:32,219 из разделки код вроде этого не должны действительно руб вам правильный путь. 743 00:34:32,219 --> 00:34:33,830 И даже если вы не волнует в данный момент, 744 00:34:33,830 --> 00:34:35,830 Вы поймете, что это не является особенно 745 00:34:35,830 --> 00:34:37,870 красивый кусок кода. 746 00:34:37,870 --> 00:34:39,969 >> И так, что мир решили лет назад 747 00:34:39,969 --> 00:34:43,420 что, когда вы хотите поставить курсор на новую строку явно, 748 00:34:43,420 --> 00:34:46,332 вы должны явно сказать Новая линия, косая черта н. 749 00:34:46,332 --> 00:34:48,040 И есть некоторые другие символы, как, что. 750 00:34:48,040 --> 00:34:50,719 Но сейчас мы просто сосредоточиться на обратной косой п. 751 00:34:50,719 --> 00:34:53,790 >> Теперь давайте сделаем программу немного более интересным. 752 00:34:53,790 --> 00:34:59,200 Я собираюсь идти вперед и на этот раз откроет новый файл. 753 00:34:59,200 --> 00:35:02,520 Я иду, чтобы спасти это как привет-1.c. 754 00:35:02,520 --> 00:35:05,540 И только для ударов, я собираюсь пойти положить его в моей папке Dropbox. 755 00:35:05,540 --> 00:35:09,030 >> Как вы увидите в CS50 документация для устройства, 756 00:35:09,030 --> 00:35:11,210 в конце этой недели для задачи Установите 1, мы будем поощрять 757 00:35:11,210 --> 00:35:13,230 использовать Dropbox или некоторые эквивалент служба, 758 00:35:13,230 --> 00:35:15,430 потому что тогда все вашего кода будет подкреплена автоматически. 759 00:35:15,430 --> 00:35:17,830 И так вот почему у меня есть пошел в эту папку здесь. 760 00:35:17,830 --> 00:35:20,230 >> А теперь я собираюсь написать немного отличается программа. 761 00:35:20,230 --> 00:35:24,740 Включите, стандарт I / O.h, тап_п недействительными. 762 00:35:24,740 --> 00:35:29,660 А потом здесь Е, привет мир, что точно так же, как и раньше. 763 00:35:29,660 --> 00:35:32,450 >> Но сейчас я хочу, чтобы напечатать то это немного отличается. 764 00:35:32,450 --> 00:35:34,800 Я хочу, чтобы распечатать, сказать, "Привет, Дэвид." 765 00:35:34,800 --> 00:35:37,590 Ладно, так что, очевидно, надо надеяться, 766 00:35:37,590 --> 00:35:40,360 быть так, что если я перекомпилировать эта программа, запустите его, 767 00:35:40,360 --> 00:35:41,840 он собирается сказать "Привет, Дэвид." 768 00:35:41,840 --> 00:35:45,160 >> Но что, если я хочу представить этот вид переменной, 769 00:35:45,160 --> 00:35:49,240 Понятие емкости, происходит для хранения D--V-я-д, а не трудно код его 770 00:35:49,240 --> 00:35:50,600 в моей программе. 771 00:35:50,600 --> 00:35:53,430 Ну что делать, если я начинаю делать что-то вроде этого? 772 00:35:53,430 --> 00:35:57,120 >> Строка с, так что это переменная. 773 00:35:57,120 --> 00:36:00,250 Если вы хотите строку, также известное, как слово или фразу. 774 00:36:00,250 --> 00:36:03,485 Последовательность символов, что мы в программировании называют строку. 775 00:36:03,485 --> 00:36:06,610 Мы только собираемся в общем вызова это с, потому что это хороший простое имя. 776 00:36:06,610 --> 00:36:08,010 Но я мог называть его иначе. 777 00:36:08,010 --> 00:36:12,920 >> Я собираюсь сказать, равных строку с цитата конец цитаты: "Давид," точка с запятой. 778 00:36:12,920 --> 00:36:18,330 А теперь я хочу, чтобы вставить D--V-я-д в то, что я печать. 779 00:36:18,330 --> 00:36:23,720 И прежде, чем мы видели тизер на экран специальный синтаксис 780 00:36:23,720 --> 00:36:26,050 что позволило нам заменой в стоимости. 781 00:36:26,050 --> 00:36:29,250 Что было особенного Символ несколько слайдов назад? 782 00:36:29,250 --> 00:36:30,040 >> Так процентов. 783 00:36:30,040 --> 00:36:33,830 В то время это было процентов д для десятичного числа. 784 00:36:33,830 --> 00:36:35,850 Это на самом деле не кажется уместным здесь. 785 00:36:35,850 --> 00:36:38,650 Оказывается есть еще один символ процентов, 786 00:36:38,650 --> 00:36:42,810 что процентов с, который стоит Для заполнителя для строки. 787 00:36:42,810 --> 00:36:49,350 >> Так что теперь, очень просто, я собирается пойти сделать привет-1, 788 00:36:49,350 --> 00:36:54,210 потому этот файл называется привет-1.c, и нажмите Ввод. 789 00:36:54,210 --> 00:36:56,230 И я облажался. 790 00:36:56,230 --> 00:36:57,394 Что происходит? 791 00:36:57,394 --> 00:37:00,560 Ну, вот, где мы должны начать понятно, что мы находимся в этой команде 792 00:37:00,560 --> 00:37:02,810 онлайновой среде, это текст только окружающей среды. 793 00:37:02,810 --> 00:37:06,114 Там нет мыши на иконки как папки прямо сейчас. 794 00:37:06,114 --> 00:37:07,280 И вспоминаю мгновение назад. 795 00:37:07,280 --> 00:37:10,740 В какой папке я говорил Я спасал свой код? 796 00:37:10,740 --> 00:37:11,657 Так папка Dropbox. 797 00:37:11,657 --> 00:37:12,989 Можно было бы назвать ничего. 798 00:37:12,989 --> 00:37:14,530 Но это, оказывается, называется Dropbox. 799 00:37:14,530 --> 00:37:18,380 Так что я так или иначе нужно дважды нажать на что папка Dropbox, чтобы получить 800 00:37:18,380 --> 00:37:21,657 в нее и получить на мой Код называется привет-1.c. 801 00:37:21,657 --> 00:37:24,490 На самом деле, позвольте мне идти вперед и минимизировать это окно на мгновение. 802 00:37:24,490 --> 00:37:27,560 Так же, как Windows, и Mac OS, есть папки в Linux. 803 00:37:27,560 --> 00:37:29,410 Есть папки в CS50 Appliance. 804 00:37:29,410 --> 00:37:32,380 Это просто сейчас мы ограничившись сами к этому текстовом режиме. 805 00:37:32,380 --> 00:37:34,700 >> Но если я дважды щелкните на Dropbox, заметите, что 806 00:37:34,700 --> 00:37:37,210 это файл, который я хочу собрать. 807 00:37:37,210 --> 00:37:41,430 Но мне это нужно черно-белый окно терминала, так сказать. 808 00:37:41,430 --> 00:37:45,750 Но мне нужно, поэтому, чтобы переместить в этой папке или каталоге. 809 00:37:45,750 --> 00:37:48,290 Так немного тайной, но Вы привыкнете к этому тоже. 810 00:37:48,290 --> 00:37:50,430 >> В мире Linux, что опять является операционная 811 00:37:50,430 --> 00:37:54,860 Система, которую мы бежим внутри CS50 Appliance, есть команда называется CD. 812 00:37:54,860 --> 00:37:58,310 А это значит, что я могу сделать компакт-диск, пространство, Dropbox. 813 00:37:58,310 --> 00:37:59,900 CD, изменить каталог. 814 00:37:59,900 --> 00:38:00,400 Право. 815 00:38:00,400 --> 00:38:02,890 Назад в день, когда люди были изобретая компьютеров и операционных 816 00:38:02,890 --> 00:38:05,806 системы, как это, они хотели введите возможно наименьшее количество нажатий клавиш. 817 00:38:05,806 --> 00:38:08,760 Так, самый простой способ сказать изменить каталог был CD. 818 00:38:08,760 --> 00:38:13,910 >> Так что, если я ударил CD, пространство Dropbox, заметить, что изменилось здесь. 819 00:38:13,910 --> 00:38:16,480 Внутри скобок прибор вид 820 00:38:16,480 --> 00:38:19,360 из посмеиваясь меня и напоминая мне, где я нахожусь. 821 00:38:19,360 --> 00:38:21,480 Так открыта папка Dropbox. 822 00:38:21,480 --> 00:38:24,950 Если я сейчас введите Ls для Список, снова лаконичным, 823 00:38:24,950 --> 00:38:27,540 потому что люди не хотят введите назад в день л-и-с-т. 824 00:38:27,540 --> 00:38:29,300 Таким образом, они вместо этого сделали это левая. 825 00:38:29,300 --> 00:38:30,110 >> Enter. 826 00:38:30,110 --> 00:38:35,740 Обратите внимание, я вижу две вещи, привет-1.c, а затем эта загадочная вещь, источник 1м. 827 00:38:35,740 --> 00:38:38,310 Вот только мой способ сказать Исходный код для недели 1 понедельник. 828 00:38:38,310 --> 00:38:42,020 Это папка я скачал из Сайт CS50, что я сделал сегодня утром 829 00:38:42,020 --> 00:38:43,990 и просто положить его в Устройство заранее. 830 00:38:43,990 --> 00:38:47,550 >> Но на текущий момент единственное, что мы волнует делает эту программу. 831 00:38:47,550 --> 00:38:50,440 Поэтому, когда я печатаю сделать привет-1, Enter. 832 00:38:50,440 --> 00:38:51,320 Черт возьми. 833 00:38:51,320 --> 00:38:53,060 Что пошло не так. 834 00:38:53,060 --> 00:38:54,580 Так что давайте дразнить это друг от друга. 835 00:38:54,580 --> 00:38:58,489 И к сожалению, это то, где вещи получить немного напряженным сначала, 836 00:38:58,489 --> 00:39:00,280 по крайней мере, если у Вас есть никогда не программировали. 837 00:39:00,280 --> 00:39:00,980 >> Боже мой. 838 00:39:00,980 --> 00:39:04,990 Я написал программу два строки и У меня есть четыре линии ошибок. 839 00:39:04,990 --> 00:39:07,180 Так что здесь происходит. 840 00:39:07,180 --> 00:39:11,370 В первую очередь всегда прокрутки назад и найти первое сообщение об ошибке, 841 00:39:11,370 --> 00:39:15,730 потому что очень часто компиляторы просто запутаться на то, что вы и я. 842 00:39:15,730 --> 00:39:17,000 Составители довольно глупым. 843 00:39:17,000 --> 00:39:18,360 Они делают только то, Вы скажите им, чтобы сделать. 844 00:39:18,360 --> 00:39:21,484 И если вы путайте их, они просто собирается вид заламывают руки 845 00:39:21,484 --> 00:39:25,010 и может быть, бросить несколько сообщений об ошибках чем на самом деле актуальна. 846 00:39:25,010 --> 00:39:26,380 >> Итак, давайте взглянем на первый. 847 00:39:26,380 --> 00:39:27,540 Супер загадочные на первый взгляд. 848 00:39:27,540 --> 00:39:31,050 Но заметьте, вот название файл, в котором я облажался по-видимому. 849 00:39:31,050 --> 00:39:36,570 Колон 5, толстой кишки 5 просто означает на линия 5 на пятом характера. 850 00:39:36,570 --> 00:39:39,760 Так пятая колонна символов, если хотите, ошибка. 851 00:39:39,760 --> 00:39:41,870 Использование необъявленный идентификатор строки. 852 00:39:41,870 --> 00:39:43,120 Вы имели в виду стандартный п? 853 00:39:43,120 --> 00:39:44,850 >> Нет, я имел в виду строку. 854 00:39:44,850 --> 00:39:47,640 А потом это отчасти копирование и вставка 855 00:39:47,640 --> 00:39:50,700 что я набрал, чтобы действительно привлечь мое внимание туда, где я облажался. 856 00:39:50,700 --> 00:39:54,260 Так почему-C, или, по крайней мере, компилятор 857 00:39:54,260 --> 00:39:56,470 не понимает слово строку. 858 00:39:56,470 --> 00:39:57,890 И это потому, что мы помирились. 859 00:39:57,890 --> 00:40:01,440 Так строка не существует в C. Что CS50 делает, 860 00:40:01,440 --> 00:40:03,380 в течение первых нескольких недель только из класса, 861 00:40:03,380 --> 00:40:05,700 будет мы предоставляем определенную подготовку колеса, так сказать. 862 00:40:05,700 --> 00:40:11,160 И мы помещаем эти дополнительные колеса внутри специального файла с именем CS50.h. 863 00:40:11,160 --> 00:40:14,970 >> Так что это вторая из двух файле имена, которые, по-видимому заканчиваются точка ч. 864 00:40:14,970 --> 00:40:16,300 Давайте назад. 865 00:40:16,300 --> 00:40:19,360 Printf это заявление или функция что, по-видимому печатает то 866 00:40:19,360 --> 00:40:20,580 к экрану. 867 00:40:20,580 --> 00:40:23,470 Но вы не видели меня реализации Printf, право. 868 00:40:23,470 --> 00:40:26,360 Кто-то лет назад реализованы Printf. 869 00:40:26,360 --> 00:40:30,420 В какой файл вы пари он или она поставить выполнение 870 00:40:30,420 --> 00:40:34,270 для Printf, код для Printf? 871 00:40:34,270 --> 00:40:36,860 >> В файле стандарт I / O.h. 872 00:40:36,860 --> 00:40:39,930 На самом деле, это, вероятно, в два файла, стандартный I / O.h, 873 00:40:39,930 --> 00:40:42,650 которая выступает за заголовок файл, и стандарт I / O.c, 874 00:40:42,650 --> 00:40:44,060 которая выступает за C исходного кода. 875 00:40:44,060 --> 00:40:48,220 Чтобы он или она несколько лет назад шлепнулся код, который они написали в этот файл 876 00:40:48,220 --> 00:40:51,240 так что люди, как мы лет спустя может включить его, 877 00:40:51,240 --> 00:40:53,040 так сказать, в наших собственных программ. 878 00:40:53,040 --> 00:40:56,320 >> И в самом деле, это то, что знак решетки следует слово включают делает. 879 00:40:56,320 --> 00:41:00,250 Похоже на локальном жестком диске, находит файл с именем стандарт I / O.h, 880 00:41:00,250 --> 00:41:03,840 а затем эффективно копии и вставляет его в моей собственной файла. 881 00:41:03,840 --> 00:41:07,210 Так что теперь моя программа знает как печатать на экране. 882 00:41:07,210 --> 00:41:11,120 >> Так по этой логике, где является строка определяется? 883 00:41:11,120 --> 00:41:12,260 >> АУДИТОРИЯ: CS50.h. 884 00:41:12,260 --> 00:41:13,290 >> David J. МАЛАН: CS50.h. 885 00:41:13,290 --> 00:41:15,540 И в самом деле, это то, что мы, основной персонал, сделали. 886 00:41:15,540 --> 00:41:19,590 Мы придумали несколько типов данных, так сказать, как струна, 887 00:41:19,590 --> 00:41:22,370 в дополнение к те, что вы получить бесплатно, как междунар. 888 00:41:22,370 --> 00:41:26,010 И мы будем видеть других как гольца для характера и еще несколько. 889 00:41:26,010 --> 00:41:30,670 Внутри CS50.h видимому, по крайней мере некоторые упоминание о строке. 890 00:41:30,670 --> 00:41:34,980 >> Так что теперь позвольте мне идти вперед и перезапустить марка привет-1. 891 00:41:34,980 --> 00:41:37,100 Я увеличения снова и скрестить пальцы. 892 00:41:37,100 --> 00:41:41,370 Теперь по совершив один изменить я установил большинство вещей. 893 00:41:41,370 --> 00:41:42,100 Но, черт побери. 894 00:41:42,100 --> 00:41:44,290 Еще процентов, чем аргументов данных. 895 00:41:44,290 --> 00:41:45,980 Что я сделал не так на этот раз? 896 00:41:45,980 --> 00:41:47,420 >> Так что это еще довольно загадочным. 897 00:41:47,420 --> 00:41:51,560 Но эта ошибка на Линия 7 и характер 21. 898 00:41:51,560 --> 00:41:53,880 Итак, давайте смотреть здесь. 899 00:41:53,880 --> 00:41:55,350 Это немного тонкие. 900 00:41:55,350 --> 00:41:59,167 Но если вы думаете о том, что фундаментальные идеи здесь, 901 00:41:59,167 --> 00:42:00,500 возможно, мы можем дразнить это друг от друга. 902 00:42:00,500 --> 00:42:02,300 >> Так Е является имя функции. 903 00:42:02,300 --> 00:42:04,960 Скобки, до сих пор, является как то, что мы ставим вокруг 904 00:42:04,960 --> 00:42:07,005 материал мы передаем в качестве вклада в функции. 905 00:42:07,005 --> 00:42:08,921 Хорошо, просто произвольное человеческое конвенции. 906 00:42:08,921 --> 00:42:09,919 Используйте скобки. 907 00:42:09,919 --> 00:42:12,460 Внутри этих скобок мы были положить двойные кавычки, 908 00:42:12,460 --> 00:42:14,810 а затем строка, как "привет мир". 909 00:42:14,810 --> 00:42:18,160 >> Но в этом предыдущем примере очень кратко сделал мы смотрим на с нуля. 910 00:42:18,160 --> 00:42:22,590 И у нас был процент д, что еще был внутри этих скобок 911 00:42:22,590 --> 00:42:23,730 что я позвал на словах? 912 00:42:23,730 --> 00:42:24,230 Да. 913 00:42:24,230 --> 00:42:28,166 >> АУДИТОРИЯ: Так что это то, что вы принимаете [Неразборчиво] изнутри [неразборчиво] 914 00:42:28,166 --> 00:42:30,200 что они [неразборчиво]? 915 00:42:30,200 --> 00:42:31,200 David J. МАЛАН: Точно. 916 00:42:31,200 --> 00:42:32,700 Таким образом, мы имели процентов д. 917 00:42:32,700 --> 00:42:36,620 Но тогда мы должны были близко цитата, запятая, счетчик. 918 00:42:36,620 --> 00:42:37,120 Право. 919 00:42:37,120 --> 00:42:40,680 Мы определили, что мы хотим сделать как заполнитель. 920 00:42:40,680 --> 00:42:44,621 Так что я собираюсь сделать здесь запятая, что ты хочешь, чтобы я положил? 921 00:42:44,621 --> 00:42:45,120 АУДИТОРИЯ: С. 922 00:42:45,120 --> 00:42:46,828 David J. МАЛАН: S, потому сек в этом случае 923 00:42:46,828 --> 00:42:48,700 это имя контейнера для хранения. 924 00:42:48,700 --> 00:42:50,180 Это имя этого стеклянный шар. 925 00:42:50,180 --> 00:42:53,610 Если раньше это было счетчика в том, что Простой пример царапинам мы смотрели на. 926 00:42:53,610 --> 00:42:56,630 Так что теперь, сделав два изменения, позвольте мне увеличить 927 00:42:56,630 --> 00:42:59,800 и попробуйте еще раз скомпилировать эту программу. 928 00:42:59,800 --> 00:43:01,596 >> Теперь я вижу, что загадочные линии. 929 00:43:01,596 --> 00:43:03,470 Но что на самом деле назвать компилятора. 930 00:43:03,470 --> 00:43:04,886 Clang это имя компилятора. 931 00:43:04,886 --> 00:43:07,100 Сделать это просто спас меня головная боль никогда 932 00:43:07,100 --> 00:43:09,830 ввода этого долго сумасшедший команду из. 933 00:43:09,830 --> 00:43:14,900 Так что теперь, если у меня точка слэш привет-1, Я должен видеть "привет, Дэвид." 934 00:43:14,900 --> 00:43:16,450 >> Довольно восторг, хотя, не так ли? 935 00:43:16,450 --> 00:43:18,158 Мы могли бы сделать это много проще 936 00:43:18,158 --> 00:43:20,940 , не говоря о переменных и CS50.h и все, что. 937 00:43:20,940 --> 00:43:23,080 Так давайте сделаем это немного более интересным. 938 00:43:23,080 --> 00:43:31,010 >> В дополнение к CS50.h, имея такие вещи, как строки 939 00:43:31,010 --> 00:43:34,550 заявил, библиотека CS50 также имеет несколько функций. 940 00:43:34,550 --> 00:43:38,520 Так что просто, как лет назад, кто-то написал Е и положил его в стандартном I / O.h 941 00:43:38,520 --> 00:43:39,530 и некоторые другие файлы. 942 00:43:39,530 --> 00:43:44,010 >> Мы, сотрудники CS50, написал функцию называется GetChar, GetDouble, GetFloat, 943 00:43:44,010 --> 00:43:47,610 GetInt, GetLongLong, GetString, и мы ставим те в файле 944 00:43:47,610 --> 00:43:49,890 называется CS50.h и CS50.c. 945 00:43:49,890 --> 00:43:51,880 И мы их внутри из CS50 Appliance. 946 00:43:51,880 --> 00:43:53,880 И люди могут также скачать их в Интернете, если они 947 00:43:53,880 --> 00:43:55,880 хочу поставить их на их собственные компьютеры, а также. 948 00:43:55,880 --> 00:44:00,880 Который должен сказать, что мы создали Функции, которые получают данные от пользователя. 949 00:44:00,880 --> 00:44:02,930 Я не знаю, что все из этих типов данных являются. 950 00:44:02,930 --> 00:44:06,490 GetInt отчасти просто, как получить целое число, так или иначе от пользователя. 951 00:44:06,490 --> 00:44:09,980 И GetString, вероятно, как Get слово или фраза от пользователя. 952 00:44:09,980 --> 00:44:11,770 >> Так давайте сосредоточимся на том, что. 953 00:44:11,770 --> 00:44:14,710 И я собираюсь вернуться в прибор, и я собираюсь идти вперед 954 00:44:14,710 --> 00:44:20,790 и сохраните этот файл как, давайте называть это привет-2.c как мой второй версии. 955 00:44:20,790 --> 00:44:23,030 И давайте сделаем пару изменений. 956 00:44:23,030 --> 00:44:25,800 >> На этот раз вместо того, чтобы жесткого кодирования Дэвид, который 957 00:44:25,800 --> 00:44:29,120 делает невероятно согласуется но в восторг программа, 958 00:44:29,120 --> 00:44:32,640 что, если я вместо делать GetString? 959 00:44:32,640 --> 00:44:35,660 Теперь обратите внимание GetString имеет открытую скобку, 960 00:44:35,660 --> 00:44:38,500 закрытая скобка, потому он не требует ввода. 961 00:44:38,500 --> 00:44:40,850 Это просто будет идти, получают строка от пользователя. 962 00:44:40,850 --> 00:44:42,460 >> А теперь несколько слов о другой синтаксис. 963 00:44:42,460 --> 00:44:45,439 Точка с запятой просто закончить строку кода. 964 00:44:45,439 --> 00:44:46,730 Вам не нужно их повсюду. 965 00:44:46,730 --> 00:44:48,896 Но это просто означает, что я сделано с этой строки кода. 966 00:44:48,896 --> 00:44:51,080 Позвольте мне перейти на другой заявление или функция. 967 00:44:51,080 --> 00:44:53,010 Строка объявляет переменную. 968 00:44:53,010 --> 00:44:55,920 Строка, как говорят дать мне миску, пожалуйста. 969 00:44:55,920 --> 00:44:57,940 И позвольте мне сказать строку в нем. 970 00:44:57,940 --> 00:44:59,430 >> А теперь знак равенства. 971 00:44:59,430 --> 00:45:03,510 Что такое знак равенства по существу, эквивалентно? 972 00:45:03,510 --> 00:45:04,500 >> АУДИТОРИЯ: Связать. 973 00:45:04,500 --> 00:45:06,190 >> David J. МАЛАН: Да, присвоения значения. 974 00:45:06,190 --> 00:45:09,872 Так что, если я, например, вызов эта функция GetString, 975 00:45:09,872 --> 00:45:12,830 и мы увидим, в момент, это собирается запрашивать у пользователя строку. 976 00:45:12,830 --> 00:45:17,810 Это как сообщили мне тогда написать D-A-V-I-D на листе бумаги. 977 00:45:17,810 --> 00:45:21,060 И когда я говорю строку с равна GetString, 978 00:45:21,060 --> 00:45:24,140 равно на самом деле не означает, равными в C программирования. 979 00:45:24,140 --> 00:45:27,880 Это означает, назначить справа стороной к левой стороне. 980 00:45:27,880 --> 00:45:29,510 >> Так я получил строку. 981 00:45:29,510 --> 00:45:32,785 И знак равенства означает поставить его в хранилище контейнер, называемый с. 982 00:45:32,785 --> 00:45:36,730 А затем передать этот прочь Е на самом деле делать свое дело. 983 00:45:36,730 --> 00:45:39,790 >> Таким образом, конечный результат, то происходит чтобы выглядеть немного иначе. 984 00:45:39,790 --> 00:45:40,840 Давайте действительно делают привет-2. 985 00:45:40,840 --> 00:45:43,940 986 00:45:43,940 --> 00:45:45,260 Либо может работать. 987 00:45:45,260 --> 00:45:46,450 Вы следуете. 988 00:45:46,450 --> 00:45:47,940 Сделать привет-2 работал. 989 00:45:47,940 --> 00:45:52,640 Dot слэш привет-2, Enter. 990 00:45:52,640 --> 00:45:54,620 >> Я, кажется, бесконечное петля или что-то. 991 00:45:54,620 --> 00:45:55,453 Ничего не происходит. 992 00:45:55,453 --> 00:45:56,134 Почему? 993 00:45:56,134 --> 00:45:57,805 >> АУДИТОРИЯ: Это делает бесконечный цикл. 994 00:45:57,805 --> 00:45:59,430 David J. МАЛАН: Это бесконечный цикл. 995 00:45:59,430 --> 00:46:02,710 Это своего рода ждет меня, чтобы фактически предоставляют его некоторых входных сигналов. 996 00:46:02,710 --> 00:46:05,800 Итак, позвольте мне идти вперед и ввести в Давиде, и нажмите Ввод. 997 00:46:05,800 --> 00:46:07,230 А теперь он говорит: "Привет, Дэвид." 998 00:46:07,230 --> 00:46:09,040 Если я запускаю ее снова. 999 00:46:09,040 --> 00:46:11,530 Давайте ввести Роба, "привет, Роб." 1000 00:46:11,530 --> 00:46:13,900 >> Теперь это худшее Пользовательский интерфейс никогда. 1001 00:46:13,900 --> 00:46:16,110 Пользователь по-видимому должны знать, что делать. 1002 00:46:16,110 --> 00:46:17,120 Но независимо от того. 1003 00:46:17,120 --> 00:46:19,570 Используя эти же здание блоки так же, как в пустом, 1004 00:46:19,570 --> 00:46:24,980 мы можем решить эту проблему и сказать, то, как ваше имя, пожалуйста, толстой кишки, 1005 00:46:24,980 --> 00:46:27,820 пространство, закрытое цитата, близко скобка, точка с запятой. 1006 00:46:27,820 --> 00:46:30,680 Итак, еще раз много глупость с синтаксисом. 1007 00:46:30,680 --> 00:46:34,040 >> Но обратите внимание, я просто добавил паззл выше этого 1008 00:46:34,040 --> 00:46:35,280 и выше этого. 1009 00:46:35,280 --> 00:46:38,870 Так что теперь, если я повторно это, привет-2, Enter. 1010 00:46:38,870 --> 00:46:41,180 Минуточку. 1011 00:46:41,180 --> 00:46:41,830 Что не так? 1012 00:46:41,830 --> 00:46:43,570 Это не ведет себя по-другому. 1013 00:46:43,570 --> 00:46:44,200 Да. 1014 00:46:44,200 --> 00:46:46,010 >> АУДИТОРИЯ: Вы не побежали сделать снова. 1015 00:46:46,010 --> 00:46:47,968 >> David J. МАЛАН: я не сделал запустить сделать снова, прямо. 1016 00:46:47,968 --> 00:46:49,430 Так я изменил свое исходный код. 1017 00:46:49,430 --> 00:46:50,638 Но, опять же, есть то, что поток. 1018 00:46:50,638 --> 00:46:54,530 Исходный код через компилятор дает Вы новый объектный код, или 0 и 1. 1019 00:46:54,530 --> 00:47:00,209 Так что мне нужно на самом деле повтор марка привет-2 Enter. 1020 00:47:00,209 --> 00:47:01,750 ОК, то, похоже, произошло. 1021 00:47:01,750 --> 00:47:04,220 Dot слэш привет-2. 1022 00:47:04,220 --> 00:47:05,390 Ваше имя пожалуйста. 1023 00:47:05,390 --> 00:47:09,990 И чтобы было ясно теперь, почему курсор на той же линии? 1024 00:47:09,990 --> 00:47:10,490 Точно. 1025 00:47:10,490 --> 00:47:13,020 Я не ставил обратный слэш н здесь в своем коде. 1026 00:47:13,020 --> 00:47:16,110 Так что теперь я могу написать что-то вроде Daven, Enter. 1027 00:47:16,110 --> 00:47:18,710 Я могу запустить его снова и введите что-то вроде Гейба, Enter, 1028 00:47:18,710 --> 00:47:22,250 и мы получаем другую программу снова и снова и снова. 1029 00:47:22,250 --> 00:47:28,940 >> Теперь, в конечном счете мы собираемся нужно использовать несколько различных возможностей. 1030 00:47:28,940 --> 00:47:32,860 Нам надо ввести в конечном счете, некоторые условия, чтобы делать вещи условно. 1031 00:47:32,860 --> 00:47:35,550 Может быть, петли, чтобы мы могли сделать вещи снова и снова. 1032 00:47:35,550 --> 00:47:38,220 >> Может быть, это было бы неплохо, если бы мы могли бы реализовать свои функции, 1033 00:47:38,220 --> 00:47:41,355 как мы могли бы реализовать самостоятельно Е или наша собственная версия GetString 1034 00:47:41,355 --> 00:47:45,870 и GetFlow, поскольку в конечном счете даже С помощью этой команды среду строки 1035 00:47:45,870 --> 00:47:49,780 мы можем сделать даже самый визуально интересным вещей. 1036 00:47:49,780 --> 00:47:51,950 >> Действительно, в заключение позвольте мне сделать это. 1037 00:47:51,950 --> 00:47:54,020 Я собираюсь идти вперед и закрыть эти окна 1038 00:47:54,020 --> 00:47:57,400 и открыть этот значок здесь, , который является просто больше 1039 00:47:57,400 --> 00:48:00,020 версия, что встроенные окно терминала. 1040 00:48:00,020 --> 00:48:02,329 Так Gedit имеет не только место для моего кода, 1041 00:48:02,329 --> 00:48:05,620 но и встроенный в окне терминала, черно-белое окно, где я могу работать 1042 00:48:05,620 --> 00:48:06,230 команд. 1043 00:48:06,230 --> 00:48:08,600 >> Я только что произошло, чтобы открыть большая версия этого. 1044 00:48:08,600 --> 00:48:11,170 И сейчас я собираюсь идти в папка, я уже 1045 00:48:11,170 --> 00:48:13,150 положить заранее на сайте Курса. 1046 00:48:13,150 --> 00:48:16,720 И я собираюсь идти вперед и открыть файл с именем thadgavin.c, 1047 00:48:16,720 --> 00:48:18,710 которая была написана кем-то другим. 1048 00:48:18,710 --> 00:48:21,220 >> И если мы посмотрим на это, это не вид кода 1049 00:48:21,220 --> 00:48:24,370 мы будем писать, так как Цель этого кода 1050 00:48:24,370 --> 00:48:28,450 было написать самых красивых ищу код, который он или она могли, 1051 00:48:28,450 --> 00:48:31,290 независимо от того, является ли или нет другой человек мог никогда 1052 00:48:31,290 --> 00:48:33,660 понять этот код. 1053 00:48:33,660 --> 00:48:37,050 >> Действительно, каждый год есть что называется затемненный конкурс C, который 1054 00:48:37,050 --> 00:48:39,570 для настоящих гиков, которые пишут Код, что никто другой не может читать, 1055 00:48:39,570 --> 00:48:42,050 но что-то делает либо действительно просто или действительно удивительно. 1056 00:48:42,050 --> 00:48:43,890 И мы думали, что заключить с этим взглядом 1057 00:48:43,890 --> 00:48:48,300 на то, что довольно удивительно Вы, возможно, видели однажды. 1058 00:48:48,300 --> 00:48:52,650 Но мы в конечном на это примечание, точка слэш, thadgavin. 1059 00:48:52,650 --> 00:48:53,860 И вот, что ждет. 1060 00:48:53,860 --> 00:48:57,140 1061 00:48:57,140 --> 00:48:58,500 >> Вот именно для CS50. 1062 00:48:58,500 --> 00:48:59,935 Мы будем видеть Вас в среду. 1063 00:48:59,935 --> 00:49:04,284 1064 00:49:04,284 --> 00:49:10,016 >> [МУЗЫКА ИГРАЕТ] 1065 00:49:10,016 --> 00:53:31,883