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