1 00:00:00,000 --> 00:00:07,700 2 00:00:07,700 --> 00:00:15,180 >> СПИКЕР: Хорошо, таким образом, вы не поверите, но на прошлой неделе, в понедельник, в Пирс, я 3 00:00:15,180 --> 00:00:16,090 был в подвале. 4 00:00:16,090 --> 00:00:17,010 Я никогда не иду в Pierce. 5 00:00:17,010 --> 00:00:20,530 И я никогда не возвращаться снова, потому что Я оставил свои вещи в покое, 6 00:00:20,530 --> 00:00:23,950 как, пять минут и кто-то украл мой компьютер и мои 7 00:00:23,950 --> 00:00:26,050 телефон из моего рюкзака. 8 00:00:26,050 --> 00:00:28,780 А это значит, я получил его назад, и затем менее через неделю 9 00:00:28,780 --> 00:00:30,220 это снова украли. 10 00:00:30,220 --> 00:00:31,570 >> А потом он получил включен - 11 00:00:31,570 --> 00:00:34,540 Find My iPhone продолжает быть бесполезным. 12 00:00:34,540 --> 00:00:37,340 Так что я и впредь поощрять Вы не использовать его. 13 00:00:37,340 --> 00:00:42,270 Оказалось на один раз, и это было в Массачусетском технологическом институте, как 15 минут спустя, и человек 14 00:00:42,270 --> 00:00:45,770 назвал это телефонный номер, который показал в моем AT & T журнала вызовов. 15 00:00:45,770 --> 00:00:48,830 >> Так что я пошел в Интернете, называется, что телефон число, и это пошло прямо в этот 16 00:00:48,830 --> 00:00:50,540 автоответчик на испанском языке. 17 00:00:50,540 --> 00:00:52,520 И я не слышал о нем с тех пор. 18 00:00:52,520 --> 00:00:54,800 Так что я должен был получить новый Компьютер и телефон. 19 00:00:54,800 --> 00:00:55,150 Я знаю. 20 00:00:55,150 --> 00:00:56,326 Да. 21 00:00:56,326 --> 00:01:00,110 Но если вы, ребята, хотите скинуться, чтобы мой компьютер фонд после этого, вот почему 22 00:01:00,110 --> 00:01:01,030 Я пригласил вас сюда. 23 00:01:01,030 --> 00:01:02,280 Шучу. 24 00:01:02,280 --> 00:01:04,239 25 00:01:04,239 --> 00:01:07,420 Но это было действительно грустно и травматический. 26 00:01:07,420 --> 00:01:10,700 >> Но это все назад сейчас, и именно поэтому р-набор 8 так долго, потому что 27 00:01:10,700 --> 00:01:12,480 У меня не было компьютера. 28 00:01:12,480 --> 00:01:13,730 И кто-то украл его. 29 00:01:13,730 --> 00:01:16,940 И я по электронной почте, с просьбой, если они оценил бы ваше п-набор 8. 30 00:01:16,940 --> 00:01:18,790 Но они сказали нет. 31 00:01:18,790 --> 00:01:20,000 И я подумала: я могу есть мой компьютер обратно? 32 00:01:20,000 --> 00:01:21,270 И они вроде, нет. 33 00:01:21,270 --> 00:01:22,130 Шучу. 34 00:01:22,130 --> 00:01:22,930 >> ОК. 35 00:01:22,930 --> 00:01:28,140 Это наш последний раздел, и у меня есть пару - у нас есть только три 36 00:01:28,140 --> 00:01:29,790 вещи на повестке дня. 37 00:01:29,790 --> 00:01:31,330 Мы собираемся поговорить немного о Q руководства. 38 00:01:31,330 --> 00:01:33,900 Тогда мы собираемся провести 15 минут на прохладном демо. 39 00:01:33,900 --> 00:01:36,890 Тогда мы собираемся все говорят до свидания друг с другом. 40 00:01:36,890 --> 00:01:41,460 Вы действительно не нужны ваши компьютеры или ручку или бумага для заметок, или 41 00:01:41,460 --> 00:01:42,410 следить вместе. 42 00:01:42,410 --> 00:01:45,620 Так что я полагаю, если у вас есть компьютер вверх, то вы находитесь на Facebook. 43 00:01:45,620 --> 00:01:46,530 Просто говорю. 44 00:01:46,530 --> 00:01:49,650 Если вы не заполнив Вопрос руководство, которое в первую очередь. 45 00:01:49,650 --> 00:01:50,690 >> Вопрос руководство открыт. 46 00:01:50,690 --> 00:01:53,520 У вас было письмо об этом. 47 00:01:53,520 --> 00:01:56,930 После того как все Q материал представляется в Конец года, я получаю все 48 00:01:56,930 --> 00:02:03,710 Q комментарии в баллов от всех кто хочет дать мне обратную связь. 49 00:02:03,710 --> 00:02:04,810 И поэтому, когда вы идете в Q - 50 00:02:04,810 --> 00:02:07,440 Я не знаю, если вы можете сделать это, Джефф, потому что ты и расширение студент. 51 00:02:07,440 --> 00:02:12,730 Но когда вы идете в Q, если у вас есть не сделали это раньше, вы выбираете ваш 52 00:02:12,730 --> 00:02:14,020 учитель, который является Дэвид Малан. 53 00:02:14,020 --> 00:02:14,970 Вы должны сделать его. 54 00:02:14,970 --> 00:02:15,690 >> И тогда вы можете выбрать TFS. 55 00:02:15,690 --> 00:02:17,750 И вы можете выбрать, как многие ТФ, как вы хотите. 56 00:02:17,750 --> 00:02:18,990 Но есть 60 из нас. 57 00:02:18,990 --> 00:02:20,350 Вы не должны выбрать всех. 58 00:02:20,350 --> 00:02:23,090 Вы можете просто забрать меня, или просто выбрать пара других людей, если вы хотите, чтобы 59 00:02:23,090 --> 00:02:24,470 дать им обратную связь, а также. 60 00:02:24,470 --> 00:02:27,595 И тогда вы получите баллы на все это различных осей, а затем вы можете оставить 61 00:02:27,595 --> 00:02:28,570 их воздействия. 62 00:02:28,570 --> 00:02:31,520 >> А потом, как через месяц, Я получу все, что обратная связь. 63 00:02:31,520 --> 00:02:34,570 И так же, как обратной связи вы были давая мне в течение семестра, я 64 00:02:34,570 --> 00:02:35,790 читать все это. 65 00:02:35,790 --> 00:02:39,620 И это действительно полезно, и это помогает мне вырасти как учитель и как 66 00:02:39,620 --> 00:02:40,680 индивидуальный. 67 00:02:40,680 --> 00:02:43,360 Так что, пожалуйста, не пожалейте времени, чтобы сделать это. 68 00:02:43,360 --> 00:02:45,020 Мы только собираемся быть здесь для, как, 30 минут. 69 00:02:45,020 --> 00:02:48,090 Так что если вы хотите, в конце этого, в занять пять минут, и просто заполнить 70 00:02:48,090 --> 00:02:49,960 Вопрос, потому что это не займет больше времени, чем это. 71 00:02:49,960 --> 00:02:53,410 Это было бы замечательно, и вы также получить свои оценки обратно быстрее, если 72 00:02:53,410 --> 00:02:54,620 Вы заполняете Q. 73 00:02:54,620 --> 00:02:56,580 >> Так что большинство из вас сделали это раньше - 74 00:02:56,580 --> 00:02:58,240 или нет, около половины из вас сделали это раньше. 75 00:02:58,240 --> 00:03:00,060 Но если вы новичок, вот что это такое. 76 00:03:00,060 --> 00:03:01,910 Это будет то же самое для всех классов. 77 00:03:01,910 --> 00:03:02,270 Сделайте это. 78 00:03:02,270 --> 00:03:02,900 Это займет пять минут. 79 00:03:02,900 --> 00:03:07,610 А кроме того, если вы делаете это немного тяжело, это не самое худшее 80 00:03:07,610 --> 00:03:10,270 в мире, потому что я, конечно, отнестись к этому серьезно. 81 00:03:10,270 --> 00:03:13,000 >> Так что, если вы выходите мне смайлик, Я ценю это. 82 00:03:13,000 --> 00:03:17,550 Но я бы также признательны, если Вы оставил меня больше смайлик. 83 00:03:17,550 --> 00:03:18,270 Но это зависит от вас. 84 00:03:18,270 --> 00:03:21,540 Я не могу сказать вам - или как большой смайлик лицу, с большой буквы Д. Это было бы 85 00:03:21,540 --> 00:03:23,060 быть еще лучше. 86 00:03:23,060 --> 00:03:27,860 >> Хорошо, это все, что я для Q. Если вы есть какие-либо вопросы, вы можете задать 87 00:03:27,860 --> 00:03:29,370 меня, но очень нуждается в пояснениях. 88 00:03:29,370 --> 00:03:31,090 Просто, пожалуйста, заполните ее. 89 00:03:31,090 --> 00:03:34,390 Я бы очень признателен, и это очень много значит для меня. 90 00:03:34,390 --> 00:03:38,910 >> ОК, это то, что мы собираемся потратить 15 минут переживает. 91 00:03:38,910 --> 00:03:39,800 Я собираюсь показать вам код. 92 00:03:39,800 --> 00:03:42,080 Я думаю, это действительно здорово, и это заставило меня больше 93 00:03:42,080 --> 00:03:43,810 возбуждается в области компьютерных наук. 94 00:03:43,810 --> 00:03:46,480 Так что я надеюсь, что это будет делать же для всех вас. 95 00:03:46,480 --> 00:03:51,760 >> Мы собираемся открыть - и все это Код я пошлю к вам позже. 96 00:03:51,760 --> 00:03:52,680 Но мы только собираемся открыть - 97 00:03:52,680 --> 00:03:54,310 Я в моем терминале - 98 00:03:54,310 --> 00:03:56,810 мы собираемся открыть эту программу называется [? MySum. ?] 99 00:03:56,810 --> 00:04:01,290 100 00:04:01,290 --> 00:04:02,540 >> Все ли могут читать это, или я должен сделать его больше? 101 00:04:02,540 --> 00:04:07,670 102 00:04:07,670 --> 00:04:13,040 Кто-нибудь может сказать мне, что этот код будет делать, когда я запускаю его, или то, что это 103 00:04:13,040 --> 00:04:14,320 Программа будет делать, когда я его запустить? 104 00:04:14,320 --> 00:04:30,710 105 00:04:30,710 --> 00:04:32,400 >> [? Ави,?] Что вы думаете он собирается делать? 106 00:04:32,400 --> 00:04:33,335 Отделка жевательной. 107 00:04:33,335 --> 00:04:35,033 Вы не должны говорить с ваш рот открытым. 108 00:04:35,033 --> 00:04:38,330 109 00:04:38,330 --> 00:04:42,860 >> АУДИТОРИЯ: Значит ли это взять кучу аргументы, найти сумму них возвращаются 110 00:04:42,860 --> 00:04:45,285 сумма, а затем распечатать его? 111 00:04:45,285 --> 00:04:53,045 Или он принимает в двух аргументов, и Затем он делает [неразборчиво]. 112 00:04:53,045 --> 00:04:56,460 А потом он печатает все, что результаты. 113 00:04:56,460 --> 00:04:58,100 >> СПИКЕР: Закрыть, очень близко. 114 00:04:58,100 --> 00:04:59,840 Кто-нибудь хочет добавить в [? что Ави?] сказал? 115 00:04:59,840 --> 00:05:04,830 116 00:05:04,830 --> 00:05:07,293 Вы должны дать эту программу любые аргументы командной строки? 117 00:05:07,293 --> 00:05:09,145 >> АУДИТОРИЯ: Нет. 118 00:05:09,145 --> 00:05:09,610 >> СПИКЕР: Нет. 119 00:05:09,610 --> 00:05:11,250 Что произойдет, если вы не дать ему любые аргументы командной строки? 120 00:05:11,250 --> 00:05:12,500 Я просто пишу точка слэш MySum. 121 00:05:12,500 --> 00:05:15,145 122 00:05:15,145 --> 00:05:16,630 >> АУДИТОРИЯ: 1 плюс 2 равно 3. 123 00:05:16,630 --> 00:05:17,250 >> СПИКЕР: 1 плюс 2 равно 3. 124 00:05:17,250 --> 00:05:18,570 И это будет печатать это. 125 00:05:18,570 --> 00:05:19,450 Вот именно. 126 00:05:19,450 --> 00:05:21,370 Вы увидите, что печать е Строка в нижней. 127 00:05:21,370 --> 00:05:23,450 Это будет распечатать A, B, и то сумма а и Ъ. 128 00:05:23,450 --> 00:05:26,360 И я думаю, вы предполагаете, что сумма работает правильно. 129 00:05:26,360 --> 00:05:28,120 Хорошо предположение. 130 00:05:28,120 --> 00:05:32,250 >> Хорошо, а что произойдет, если я дать ему то, что аргумент? 131 00:05:32,250 --> 00:05:33,010 [? Ману? ?] 132 00:05:33,010 --> 00:05:36,230 >> АУДИТОРИЯ: Это будет добавить любые Первый аргумент является б. 133 00:05:36,230 --> 00:05:37,150 Или до 2, извините. 134 00:05:37,150 --> 00:05:38,480 >> СПИКЕР: справа, до 2. 135 00:05:38,480 --> 00:05:42,470 Кто-нибудь знает, что strtol делает? 136 00:05:42,470 --> 00:05:43,960 Это в основном atoi. 137 00:05:43,960 --> 00:05:47,240 Atoi на самом деле причудливое версия - 138 00:05:47,240 --> 00:05:49,600 или более простой вариант strtol. 139 00:05:49,600 --> 00:05:51,790 Но это на самом деле использует strtol. 140 00:05:51,790 --> 00:05:54,610 141 00:05:54,610 --> 00:05:58,010 И я обнаружил, что, потому что я хотел что-то вроде atoi, а затем, когда я 142 00:05:58,010 --> 00:06:01,110 сделал atoi, я читал здесь. 143 00:06:01,110 --> 00:06:04,380 И я нашел "такое поведение такой же, как "strtol. 144 00:06:04,380 --> 00:06:06,850 Так что это в основном atoi для во всех отношениях. 145 00:06:06,850 --> 00:06:09,320 И вы видите, я даже использовать утратившим 10. 146 00:06:09,320 --> 00:06:14,390 >> Это на самом деле позволяет взять строку, и превратить его в ряде, и выберите 147 00:06:14,390 --> 00:06:15,970 какой базовый вы хотите сделать его дюйма 148 00:06:15,970 --> 00:06:17,370 Так что это основание 10 прямо здесь. 149 00:06:17,370 --> 00:06:20,455 Я мог бы сделать основание два для десятичной, основание 16 для шестнадцатеричного. 150 00:06:20,455 --> 00:06:22,090 Это очень здорово. 151 00:06:22,090 --> 00:06:25,860 Но Короче говоря, это занимает два числа и складывает их. 152 00:06:25,860 --> 00:06:29,260 >> Так что давайте запустить его. 153 00:06:29,260 --> 00:06:32,560 И вы также заметите, что некоторые вещи - 154 00:06:32,560 --> 00:06:37,830 поэтому у меня Makefile прямо здесь, и Если вы откроете, что до, некоторые вещи 155 00:06:37,830 --> 00:06:39,270 Вы заметите, различны. 156 00:06:39,270 --> 00:06:42,370 В частности, этот аргумент прямо здесь, вы, вероятно, 157 00:06:42,370 --> 00:06:43,010 не видел, что прежде. 158 00:06:43,010 --> 00:06:45,770 Как правило, мы собираем вещи с тире ноль, ноль. 159 00:06:45,770 --> 00:06:51,500 Даш ноль, ноль, значит, не делают любая оптимизация, компилятор. 160 00:06:51,500 --> 00:06:54,950 Не пытайтесь сделать что-либо полагает, или ничего сделать быстрее бегать, или получить 161 00:06:54,950 --> 00:06:56,530 избавиться от переменных, которые необходимы. 162 00:06:56,530 --> 00:06:58,080 Не оптимизировать этот код на всех, 163 00:06:58,080 --> 00:07:00,110 >> Я прошу третьего уровня оптимизация. 164 00:07:00,110 --> 00:07:02,580 Вот я и спрашиваю компилятор делать много оптимизаций. 165 00:07:02,580 --> 00:07:05,870 Вы можете изменить это в Makefile, когда у вас есть этот код, если вы хотите 166 00:07:05,870 --> 00:07:07,190 чтобы увидеть разные вещи. 167 00:07:07,190 --> 00:07:08,660 Какие мы покажем в секунду. 168 00:07:08,660 --> 00:07:12,080 Таким образом, мы запустить свой сумму 1 плюс 2 плюс 3. 169 00:07:12,080 --> 00:07:13,445 Кто-то дал мне два аргумента. 170 00:07:13,445 --> 00:07:17,221 171 00:07:17,221 --> 00:07:18,210 >> АУДИТОРИЯ: 4 и 5. 172 00:07:18,210 --> 00:07:18,966 >> СПИКЕР: 4 и 5. 173 00:07:18,966 --> 00:07:19,900 Спасибо. 174 00:07:19,900 --> 00:07:20,860 Отлично, это работает. 175 00:07:20,860 --> 00:07:25,700 Какие другие веские аргументы попробовать, чтобы убедиться, что это работает? 176 00:07:25,700 --> 00:07:27,050 Любой? 177 00:07:27,050 --> 00:07:27,430 >> АУДИТОРИЯ: 0. 178 00:07:27,430 --> 00:07:29,210 >> СПИКЕР: 0 и? 179 00:07:29,210 --> 00:07:31,010 >> АУДИТОРИЯ: Отрицательный 3. 180 00:07:31,010 --> 00:07:32,040 >> СПИКЕР: Он работает. 181 00:07:32,040 --> 00:07:33,670 Но это были хорошие выборы. 182 00:07:33,670 --> 00:07:36,600 Итак, давайте вернемся сюда. 183 00:07:36,600 --> 00:07:38,540 Это mysum.c. 184 00:07:38,540 --> 00:07:42,440 Вы заметите, есть также кое-что называется sumfunction.c. 185 00:07:42,440 --> 00:07:48,110 И это говорит, о, есть что-то определены в sumfunction.c. 186 00:07:48,110 --> 00:07:51,480 Я не включить этот файл здесь потому что я не нужно. 187 00:07:51,480 --> 00:07:54,840 Но я связать его, когда я компиляции, которые вы заметили. 188 00:07:54,840 --> 00:07:57,380 >> Давайте прокрутки вверх. 189 00:07:57,380 --> 00:08:02,880 Мы видели, когда мы составили mysum, право там, мы связаны в двоичном от 190 00:08:02,880 --> 00:08:04,130 sumfunction.o. 191 00:08:04,130 --> 00:08:05,780 192 00:08:05,780 --> 00:08:08,470 И мне не нужно файл заголовка потому что, конечно, есть 193 00:08:08,470 --> 00:08:09,240 Объявление функции. 194 00:08:09,240 --> 00:08:12,200 Столь резкое включают обычно просто ставит в объявлении функции. 195 00:08:12,200 --> 00:08:13,730 Здесь я просто положить его прямо в коде. 196 00:08:13,730 --> 00:08:16,370 И поэтому мне нужно сделать, это ссылка в бинарный файл, который я делаю. 197 00:08:16,370 --> 00:08:19,950 >> Любые предположения на то, что в sumfunction.c? 198 00:08:19,950 --> 00:08:21,950 Какой код я написал в sumfunction.c? 199 00:08:21,950 --> 00:08:25,445 200 00:08:25,445 --> 00:08:26,695 >> АУДИТОРИЯ: [неразборчиво]. 201 00:08:26,695 --> 00:08:29,460 202 00:08:29,460 --> 00:08:30,630 >> СПИКЕР: Любые предположения? 203 00:08:30,630 --> 00:08:30,940 Да? 204 00:08:30,940 --> 00:08:33,710 >> Зала: Я думаю, определяет некоторые [неразборчиво]. 205 00:08:33,710 --> 00:08:33,975 >> СПИКЕР: Да. 206 00:08:33,975 --> 00:08:37,650 Так что я на запись десятичного сумму внутр. 207 00:08:37,650 --> 00:08:41,120 Я пишу эту линию, а затем у меня открыт фигурная скобка, закрыты фигурную скобку. 208 00:08:41,120 --> 00:08:46,160 Что вы думаете я пишу в тех фигурные скобки, внутри этой функции? 209 00:08:46,160 --> 00:08:46,600 Да? 210 00:08:46,600 --> 00:08:48,150 >> АУДИТОРИЯ: Вернуться равно. 211 00:08:48,150 --> 00:08:50,010 >> Процессор: Это действительно хорошее предположение. 212 00:08:50,010 --> 00:08:51,720 Кто думает [? Ману?] Прав? 213 00:08:51,720 --> 00:08:54,122 В нем говорится, возвращают плюс б. 214 00:08:54,122 --> 00:08:55,860 Хорошо, не все. 215 00:08:55,860 --> 00:08:56,520 [? Akshar,?] 216 00:08:56,520 --> 00:08:57,390 вы тоже? 217 00:08:57,390 --> 00:09:00,430 Вы уверены? 218 00:09:00,430 --> 00:09:01,680 ОК. 219 00:09:01,680 --> 00:09:09,551 220 00:09:09,551 --> 00:09:10,050 Что? 221 00:09:10,050 --> 00:09:11,662 >> АУДИТОРИЯ: Вы четко это не так. 222 00:09:11,662 --> 00:09:13,000 >> СПИКЕР: Нет, я этого не сделал. 223 00:09:13,000 --> 00:09:13,966 Да, шучу. 224 00:09:13,966 --> 00:09:15,300 Вы правы. 225 00:09:15,300 --> 00:09:15,930 Это именно то, что он говорит. 226 00:09:15,930 --> 00:09:17,110 Это возвращает плюс б. 227 00:09:17,110 --> 00:09:18,570 Это делает много смысла. 228 00:09:18,570 --> 00:09:20,240 >> Хорошо, давайте вернемся здесь. 229 00:09:20,240 --> 00:09:21,490 Мы видим, как заголовок - 230 00:09:21,490 --> 00:09:24,540 231 00:09:24,540 --> 00:09:25,660 вот возвращаемый тип. 232 00:09:25,660 --> 00:09:29,100 Помните, что мы видели в тот день один, тип возвращаемого значения функции, но идет 233 00:09:29,100 --> 00:09:30,160 перед именем функции десятичного. 234 00:09:30,160 --> 00:09:31,560 Вот, я написал Int. 235 00:09:31,560 --> 00:09:35,680 Что вы думаете, что произойдет, если в этом Функция, я не пишу Int, но 236 00:09:35,680 --> 00:09:38,270 Я пишу без знака? 237 00:09:38,270 --> 00:09:41,050 Разница, конечно, в том, что без знака представляет только положительные 238 00:09:41,050 --> 00:09:43,620 целые числа, и внутр может быть положительным или отрицательным. 239 00:09:43,620 --> 00:09:45,450 >> Так я изменил возвращение тип этой функции. 240 00:09:45,450 --> 00:09:49,370 Этот код не совпадает с это возвращение введите здесь. 241 00:09:49,370 --> 00:09:50,925 Что вы думаете, что произойдет при компиляции? 242 00:09:50,925 --> 00:09:53,840 243 00:09:53,840 --> 00:09:56,240 Вы должны кричать на меня. 244 00:09:56,240 --> 00:09:57,700 Нет вопли. 245 00:09:57,700 --> 00:10:00,050 >> А когда я запускаю программу? 246 00:10:00,050 --> 00:10:05,810 Давайте сделаем до 0 Negative 3 или отрицательный 1. 247 00:10:05,810 --> 00:10:10,180 Он по-прежнему работает, хотя я говорю он возвращает целое число без знака. 248 00:10:10,180 --> 00:10:12,060 Очевидно, что это не возвращение Целое число без знака. 249 00:10:12,060 --> 00:10:13,520 Это возвращает целое число со знаком. 250 00:10:13,520 --> 00:10:16,130 Это возвращение негативное 1. 251 00:10:16,130 --> 00:10:17,830 ОК, это странно. 252 00:10:17,830 --> 00:10:27,030 >> Что, если я иду в здесь и делать, что? 253 00:10:27,030 --> 00:10:29,700 Так что я изменил все от внутр чтобы без знака. 254 00:10:29,700 --> 00:10:31,590 Это может занять только целые числа без знака. 255 00:10:31,590 --> 00:10:33,840 Но мы до сих пор думаю, что это работать? 256 00:10:33,840 --> 00:10:35,652 >> АУДИТОРИЯ: Да. 257 00:10:35,652 --> 00:10:37,270 >> СПИКЕР: Будет. 258 00:10:37,270 --> 00:10:39,410 Это безумие. 259 00:10:39,410 --> 00:10:43,140 И мы переходим в четко распределены целое число, мы можем передать два подписали 260 00:10:43,140 --> 00:10:46,280 целое число, он все еще работает. 261 00:10:46,280 --> 00:10:52,150 >> OK, любые идеи, почему он все еще работает, или то, что происходит? 262 00:10:52,150 --> 00:10:53,368 Да, Джефф. 263 00:10:53,368 --> 00:10:56,296 >> АУДИТОРИЯ: Это имеет какое-то отношение к с оптимизацией, что вы 264 00:10:56,296 --> 00:10:57,760 выделены. 265 00:10:57,760 --> 00:10:58,210 >> СПИКЕР: Нет. 266 00:10:58,210 --> 00:11:00,570 Мы могли бы изменить оптимизацию, это будет работать. 267 00:11:00,570 --> 00:11:02,240 Я могу сделать это для вас, но - 268 00:11:02,240 --> 00:11:02,930 >> АУДИТОРИЯ: Я возьму на слово. 269 00:11:02,930 --> 00:11:03,690 >> СПИКЕР: Да. 270 00:11:03,690 --> 00:11:09,690 Если открыть файл сборки прямо здесь, Я изменил оптимизации. 271 00:11:09,690 --> 00:11:11,570 Таким образом, вы можете сделать рывок ноль, ноль. 272 00:11:11,570 --> 00:11:12,820 Это все равно будет работать. 273 00:11:12,820 --> 00:11:16,839 274 00:11:16,839 --> 00:11:20,280 Другие мысли? 275 00:11:20,280 --> 00:11:22,600 >> Вы, ребята, все должны работать, поэтому зачем вы ожидаете его на работу? 276 00:11:22,600 --> 00:11:31,210 277 00:11:31,210 --> 00:11:32,150 Нет? 278 00:11:32,150 --> 00:11:33,660 Молчание. 279 00:11:33,660 --> 00:11:34,910 ОК. 280 00:11:34,910 --> 00:11:39,271 281 00:11:39,271 --> 00:11:41,650 Мне придется ждать семь секунд, потому что я задал вопрос. 282 00:11:41,650 --> 00:11:44,190 283 00:11:44,190 --> 00:11:48,660 >> Так здорово, что о С, и у Вас есть вероятно, испытывал прежде - вам 284 00:11:48,660 --> 00:11:50,260 не могли бы иметь, это может в первый раз. 285 00:11:50,260 --> 00:11:57,030 Но как вы все знаете, когда я пишу что-то в C, это не спасает, как 286 00:11:57,030 --> 00:11:57,760 это на компьютере. 287 00:11:57,760 --> 00:11:59,440 Это сохраняется в виде нулей и единиц. 288 00:11:59,440 --> 00:12:02,970 Это идет от C кода ассемблера. 289 00:12:02,970 --> 00:12:09,460 >> Кто-нибудь видел ассемблера и прежде, монтаж машин код? 290 00:12:09,460 --> 00:12:10,630 Мы рассмотрим в секунду. 291 00:12:10,630 --> 00:12:12,040 Это идет от C кода ассемблера. 292 00:12:12,040 --> 00:12:13,755 И вы, ребята, знаете этапы компиляции. 293 00:12:13,755 --> 00:12:17,410 Вы должны были запомнить, что для викторины одной, а затем записать его на викторине нулевой. 294 00:12:17,410 --> 00:12:18,240 Большинство людей получили это неправильно. 295 00:12:18,240 --> 00:12:19,760 Я думаю, что вы, ребята, прибил его. 296 00:12:19,760 --> 00:12:22,880 >> Но, вы, ребята, самые лучшие раздел для викторины, кстати. 297 00:12:22,880 --> 00:12:25,210 Какой удивительный. 298 00:12:25,210 --> 00:12:25,910 Это вам не повредит. 299 00:12:25,910 --> 00:12:26,900 Не беспокойся. 300 00:12:26,900 --> 00:12:28,800 Но это действительно здорово. 301 00:12:28,800 --> 00:12:29,660 Хорошая работа. 302 00:12:29,660 --> 00:12:32,870 >> И так будет продолжаться до ассемблере, и Затем она переходит к нулей и единиц. 303 00:12:32,870 --> 00:12:35,500 И те, и нули сохраняются на компьютер, и вот что сохраняется в 304 00:12:35,500 --> 00:12:38,340 a.out, или в данном случае, исполняемый файл. 305 00:12:38,340 --> 00:12:41,040 И компьютер работает единицы и нули. 306 00:12:41,040 --> 00:12:41,670 Не так ли? 307 00:12:41,670 --> 00:12:43,890 Мы узнали это раньше. 308 00:12:43,890 --> 00:12:47,490 >> Так здорово, что есть, это без знака Идея, идея типов целых чисел без знака, 309 00:12:47,490 --> 00:12:50,490 и так далее, и так далее, это здесь, в языке Си. 310 00:12:50,490 --> 00:12:51,110 Те, существует. 311 00:12:51,110 --> 00:12:53,770 Но типы не существуют в единицы и нули. 312 00:12:53,770 --> 00:12:57,110 Типы даже не реально существуют в уровень языка ассемблера. 313 00:12:57,110 --> 00:13:00,075 Так вот то, что существует в С мир, но не существует в компьютере 314 00:13:00,075 --> 00:13:01,640 Мир или процессор мир. 315 00:13:01,640 --> 00:13:04,660 Вот некоторые абстракция, что C язык включил, чтобы сделать наш 316 00:13:04,660 --> 00:13:06,240 жизнь проще. 317 00:13:06,240 --> 00:13:09,990 >> Так, в конце концов, я могу написать много разных вещей здесь, и это 318 00:13:09,990 --> 00:13:10,700 не изменить ситуацию. 319 00:13:10,700 --> 00:13:12,060 Потому, что только существует в С миру. 320 00:13:12,060 --> 00:13:14,100 Она не существует в единицы и нули мир. 321 00:13:14,100 --> 00:13:17,310 И наша программа, осуществляющем в в единицы и нули мир. 322 00:13:17,310 --> 00:13:21,170 Так что ваш ум явно не перегорел. 323 00:13:21,170 --> 00:13:22,740 Но я думаю, что это круто. 324 00:13:22,740 --> 00:13:23,530 Да, Джефф. 325 00:13:23,530 --> 00:13:27,298 >> АУДИТОРИЯ: Так что, если вместо того, чтобы делать Int, вы делаете символ. 326 00:13:27,298 --> 00:13:27,770 И вы были - 327 00:13:27,770 --> 00:13:29,311 >> СПИКЕР: Давайте сделаем это через секунду. 328 00:13:29,311 --> 00:13:32,583 >> АУДИТОРИЯ: Потому что тогда вы получите без знака происходит от негативного 128 до 329 00:13:32,583 --> 00:13:34,720 127 или от 0 до 255. 330 00:13:34,720 --> 00:13:36,760 >> СПИКЕР: Так символ проблематично. 331 00:13:36,760 --> 00:13:39,460 Кто-нибудь знает, почему символ будет проблематично, и это фактически 332 00:13:39,460 --> 00:13:42,930 изменить положение вещей в те и обнуляет мир? 333 00:13:42,930 --> 00:13:44,370 >> АУДИТОРИЯ: Из-за размера символ. 334 00:13:44,370 --> 00:13:46,200 >> СПИКЕР: Размер полукокса 1. 335 00:13:46,200 --> 00:13:48,260 Таким образом, без знака, также 4 байта. 336 00:13:48,260 --> 00:13:50,080 Так символ будет винт вещи. 337 00:13:50,080 --> 00:13:55,660 Но то, что составляет 4 байта, что по проезду связано с полукокса? 338 00:13:55,660 --> 00:13:57,820 Или, по крайней который добавляет один дополнительный - 339 00:13:57,820 --> 00:13:59,760 Вы можете поместить больше на один символ после гольца. 340 00:13:59,760 --> 00:14:00,200 >> АУДИТОРИЯ: Чар звезда. 341 00:14:00,200 --> 00:14:01,220 >> СПИКЕР: Чар звезда имеет 4 байта. 342 00:14:01,220 --> 00:14:02,490 Так что давайте делать что-то что это символ звезды. 343 00:14:02,490 --> 00:14:05,470 344 00:14:05,470 --> 00:14:07,240 >> Так что это, вероятно, работать, но мы собираюсь сделать что-то еще 345 00:14:07,240 --> 00:14:09,710 более сумасшедшим, чем это. 346 00:14:09,710 --> 00:14:10,960 На мой взгляд, более сумасшедшим. 347 00:14:10,960 --> 00:14:21,060 348 00:14:21,060 --> 00:14:24,570 >> Я теперь написал функцию, которая возвращает указатель, и он принимает 349 00:14:24,570 --> 00:14:29,480 указатель и значение без знака - мы будем изменить это назад в целое так что мы не 350 00:14:29,480 --> 00:14:31,250 делает слишком много изменений сразу. 351 00:14:31,250 --> 00:14:35,370 И это имеет массив называется, индексы в массиве и возвращает 352 00:14:35,370 --> 00:14:35,850 адрес. 353 00:14:35,850 --> 00:14:37,470 Мы видели эти операторы раньше. 354 00:14:37,470 --> 00:14:43,340 Это, как вы думаете это будет делать, в свою очередь, когда я его запускаю? 355 00:14:43,340 --> 00:14:48,280 356 00:14:48,280 --> 00:14:49,070 Что вы думаете, что это собирается делать? 357 00:14:49,070 --> 00:14:50,320 Любые предположения? 358 00:14:50,320 --> 00:14:54,220 359 00:14:54,220 --> 00:14:55,320 >> АУДИТОРИЯ: Segfault. 360 00:14:55,320 --> 00:14:55,600 >> СПИКЕР: Что? 361 00:14:55,600 --> 00:14:56,660 Segfault? 362 00:14:56,660 --> 00:14:58,520 Это хорошее предположение. 363 00:14:58,520 --> 00:14:59,430 Том говорит то же самое. 364 00:14:59,430 --> 00:15:02,240 Любые другие предположения? 365 00:15:02,240 --> 00:15:05,260 >> Кто думает, что это собирается сделать то же самое? 366 00:15:05,260 --> 00:15:06,510 Кто думает, что это собирается к выпадению? 367 00:15:06,510 --> 00:15:09,350 368 00:15:09,350 --> 00:15:10,230 Он делает то же самое. 369 00:15:10,230 --> 00:15:11,880 Извините. 370 00:15:11,880 --> 00:15:13,860 >> Но, конечно, мы вкладываем в 1 и 2. 371 00:15:13,860 --> 00:15:16,470 И те и действует, не так ли? 372 00:15:16,470 --> 00:15:19,420 Давайте посмотрим, мы можем перейти к Второе место массива. 373 00:15:19,420 --> 00:15:24,010 Но что, если мы сделали б отрицательное число? 374 00:15:24,010 --> 00:15:26,380 Вот, наверное, лучше догадка за что-то возвращает ошибку сегментации. 375 00:15:26,380 --> 00:15:30,310 376 00:15:30,310 --> 00:15:32,260 Он по-прежнему работает. 377 00:15:32,260 --> 00:15:35,020 >> ОК, это сейчас с ума. 378 00:15:35,020 --> 00:15:38,350 Это одинаково допустимым значением функции суммы. 379 00:15:38,350 --> 00:15:40,470 Это делает точно такой же вещи как обратный а и Ъ. 380 00:15:40,470 --> 00:15:44,600 Кто-нибудь может объяснить, почему это хорошая Подводя функцию, или почему это работает? 381 00:15:44,600 --> 00:15:45,850 Что здесь происходит? 382 00:15:45,850 --> 00:15:49,360 383 00:15:49,360 --> 00:15:55,750 Почему это сделать точно такой же понятия, как наш старый функции суммы? 384 00:15:55,750 --> 00:15:56,890 [? Akshar,?] 385 00:15:56,890 --> 00:15:58,155 что происходит? 386 00:15:58,155 --> 00:16:01,540 >> АУДИТОРИЯ: Потому что, когда у вас есть вот обращение к 387 00:16:01,540 --> 00:16:03,950 ячейка памяти - 388 00:16:03,950 --> 00:16:07,910 и когда вы делаете амперсанд, он идет на этот адрес памяти. 389 00:16:07,910 --> 00:16:13,610 И когда вы идете в б, ты вроде движущихся шагах от этого адреса памяти, 390 00:16:13,610 --> 00:16:15,550 вы вернулись, что. 391 00:16:15,550 --> 00:16:20,083 Так ты на самом деле, по сути, Добавление и б [неразборчиво]. 392 00:16:20,083 --> 00:16:23,300 393 00:16:23,300 --> 00:16:26,222 Где стандартные операции на этом взамен? 394 00:16:26,222 --> 00:16:27,683 Мол, куда скобки падать? 395 00:16:27,683 --> 00:16:30,610 Является ли возвращение адрес на до или после [неразборчиво]? 396 00:16:30,610 --> 00:16:32,380 >> СПИКЕР: Это будет в качестве индекса в б - 397 00:16:32,380 --> 00:16:34,430 или индекс в -, а затем возвращает адрес. 398 00:16:34,430 --> 00:16:38,800 399 00:16:38,800 --> 00:16:41,340 Итак, действительно, все понимают, что [? Akshar?] 400 00:16:41,340 --> 00:16:45,830 сказал, и объяснил, почему это работает? 401 00:16:45,830 --> 00:16:49,430 Я не сделал, первый раз, когда кто-то объяснил это мне. 402 00:16:49,430 --> 00:16:51,900 Кто-нибудь Хотели бы картину это объяснить? 403 00:16:51,900 --> 00:16:55,320 Мы собираемся нарисовать картину, с никаких маркеров, что не здорово. 404 00:16:55,320 --> 00:16:57,920 Найдено некоторые. 405 00:16:57,920 --> 00:17:03,390 >> Поэтому у нас есть массив Вот ряд коробок. 406 00:17:03,390 --> 00:17:07,160 407 00:17:07,160 --> 00:17:13,710 Первый индекс 0, индекс 1, 2, 3, 4, точка, точка, точка. 408 00:17:13,710 --> 00:17:15,609 Типичный массив. 409 00:17:15,609 --> 00:17:19,540 И в дополнение к индексы, все они имеют адреса памяти. 410 00:17:19,540 --> 00:17:30,190 Так что давайте дать этому адресу в памяти 13, 14, 15, 16, 17, и так далее. 411 00:17:30,190 --> 00:17:32,490 Все здесь до сих пор. 412 00:17:32,490 --> 00:17:35,810 >> Таким образом, это адрес. 413 00:17:35,810 --> 00:17:38,850 Имя массива, указатель там сохраняется. 414 00:17:38,850 --> 00:17:42,730 Это указатель, это область памяти, на начало массива. 415 00:17:42,730 --> 00:17:45,910 Так что, если бы это было массив, бы значение 13. 416 00:17:45,910 --> 00:17:49,110 И, конечно, мы можем дать любое значение мы хотим. 417 00:17:49,110 --> 00:17:52,450 Чар звезды, мы можем дать любой адрес памяти мы хотим. 418 00:17:52,450 --> 00:17:55,940 Мы можем дать ему 0, мы можем дать ему отрицательный 1 - отрицательная 1 не существует, 419 00:17:55,940 --> 00:17:58,820 так что, наверное проблематично, но вы видели, что он по-прежнему работал. 420 00:17:58,820 --> 00:18:03,070 Таким образом, мы можем дать любое количество мы хотим, любой адрес памяти мы хотим. 421 00:18:03,070 --> 00:18:08,720 >> Тогда, внутр б говорит, в порядке, переходите это число из шагов в массив. 422 00:18:08,720 --> 00:18:13,150 Так что, если б равна 2, и равна 13, мы по адресу памяти 13. 423 00:18:13,150 --> 00:18:17,330 И мы идем два шага в, и поэтому мы здесь. 424 00:18:17,330 --> 00:18:21,150 И амперсанд означает возвращение адрес этого месте. 425 00:18:21,150 --> 00:18:23,990 И адрес, конечно, 15. 426 00:18:23,990 --> 00:18:28,710 Итак, мы получаем 13 плюс 2, или плюс б, что на 15. 427 00:18:28,710 --> 00:18:29,590 >> Вопрос в том, хотя - 428 00:18:29,590 --> 00:18:30,250 Мне очень жаль. 429 00:18:30,250 --> 00:18:34,324 Значит ли это, прояснить вещи почему это работает? 430 00:18:34,324 --> 00:18:36,300 >> Зал: А почему она будет работать собирается - 431 00:18:36,300 --> 00:18:38,770 так что вы можете иметь массив и перейти к отрицательным индексом? 432 00:18:38,770 --> 00:18:39,050 >> СПИКЕР: Верно. 433 00:18:39,050 --> 00:18:40,870 Так мы и сделали отрицательные числа, так вот - 434 00:18:40,870 --> 00:18:42,770 Имеет ли это смысл, хотя, во-первых, [? Ави,?] 435 00:18:42,770 --> 00:18:43,120 для вас? 436 00:18:43,120 --> 00:18:48,840 >> АУДИТОРИЯ: Да я просто [Неразборчиво], но - 437 00:18:48,840 --> 00:18:50,440 >> СПИКЕР: Да, это вернется 15. 438 00:18:50,440 --> 00:18:53,523 Если было 13 лет, и б был 2, это вернется 15. 439 00:18:53,523 --> 00:18:58,160 >> АУДИТОРИЯ: Так нулевая индексация не стать проблемой, не так ли? 440 00:18:58,160 --> 00:19:00,160 Потому что вы двигаетесь от 0. 441 00:19:00,160 --> 00:19:00,470 >> СПИКЕР: Верно. 442 00:19:00,470 --> 00:19:05,000 Так вы двигаетесь - так что если б был 0, вы бы не двигаться в любом месте. 443 00:19:05,000 --> 00:19:06,330 И вы только что вернулись адрес - 444 00:19:06,330 --> 00:19:10,830 если б был 0, что по существу возвращения, что адрес. 445 00:19:10,830 --> 00:19:13,960 Переходя в сЬаг звезды а и возвращение адрес только возвращения, 446 00:19:13,960 --> 00:19:15,860 по существу. 447 00:19:15,860 --> 00:19:18,280 >> Хорошо, вопрос в том, почему отрицательные числа работает? 448 00:19:18,280 --> 00:19:21,670 И это действительно здорово, что об это, потому что это должно сегментации. 449 00:19:21,670 --> 00:19:25,110 И было бы сегментации, если мы сделал что-то вроде этого. 450 00:19:25,110 --> 00:19:28,050 451 00:19:28,050 --> 00:19:29,300 Скажем, внутр. 452 00:19:29,300 --> 00:19:34,390 453 00:19:34,390 --> 00:19:39,810 Так этот код выглядит идентично и должны вести себя одинаково. 454 00:19:39,810 --> 00:19:44,550 По сути, х является переменной мусора, и так что это должно ведут себя одинаково. 455 00:19:44,550 --> 00:19:46,370 >> Давайте сделаем это - 456 00:19:46,370 --> 00:19:47,620 упс - 457 00:19:47,620 --> 00:19:54,790 458 00:19:54,790 --> 00:19:56,040 в звезды. 459 00:19:56,040 --> 00:19:59,160 460 00:19:59,160 --> 00:20:02,733 Хорошо, мы уже начали получать ошибки здесь, потому что это уже будет сердиться 461 00:20:02,733 --> 00:20:04,610 на меня, потому что он уже знает, что будет. 462 00:20:04,610 --> 00:20:07,060 В частности, второй. 463 00:20:07,060 --> 00:20:09,800 Адрес сложены памяти связаны с локальной переменной. 464 00:20:09,800 --> 00:20:14,220 >> По сути, я не собираюсь скомпилировать это, а затем я собираюсь отменить делать 465 00:20:14,220 --> 00:20:14,920 то, что мы только что сделали. 466 00:20:14,920 --> 00:20:19,130 Но поскольку мы никогда не фактически доступа, что поставлено на память 467 00:20:19,130 --> 00:20:21,930 расположение, он не собирается к выпадению. 468 00:20:21,930 --> 00:20:26,450 Мы никогда не самом деле смотрит на то, что во втором поле или то, что в любом окне 469 00:20:26,450 --> 00:20:28,340 этого массива. 470 00:20:28,340 --> 00:20:30,980 Мы только говорю, вот адрес из вещи, которую мы ищем и 471 00:20:30,980 --> 00:20:32,410 вернуться этот адрес. 472 00:20:32,410 --> 00:20:35,700 Мы никогда не на самом деле происходит в Массив смотреть на этом месте. 473 00:20:35,700 --> 00:20:39,140 И потому, что мы никогда не прикасайтесь к памяти, мы не попасть в беду. 474 00:20:39,140 --> 00:20:40,760 Мы не получить сегментации. 475 00:20:40,760 --> 00:20:46,225 >> Если бы мы попытались, опять же, трогай это памяти, сенсорный, что было в А или В - 476 00:20:46,225 --> 00:20:49,940 или кронштейн б, и предполагая, 0 и - 477 00:20:49,940 --> 00:20:53,040 если 0, даже, это было бы довольно плохо, потому что мы не можем пойти 478 00:20:53,040 --> 00:20:54,090 вниз все пути туда. 479 00:20:54,090 --> 00:20:58,250 Если А и В были и 0, и мы попытались прикоснуться, что там было, то мы бы 480 00:20:58,250 --> 00:20:59,110 попасть в беду. 481 00:20:59,110 --> 00:21:02,160 Но если мы не трогайте то, что там, мы просто возвращаем адрес, это 482 00:21:02,160 --> 00:21:08,300 на самом деле не собирается к выпадению потому это позволяет выполнять эти операции. 483 00:21:08,300 --> 00:21:11,920 Это только злится на вас, и получает супер сердится, когда вы пытаетесь коснуться 484 00:21:11,920 --> 00:21:15,740 фактическая память и вернуть то, что это в этом месте памяти. 485 00:21:15,740 --> 00:21:17,690 >> Имеет ли это смысл? 486 00:21:17,690 --> 00:21:24,820 Это просто с ума часть С. Итак, мы имеем больше из них один. 487 00:21:24,820 --> 00:21:27,760 488 00:21:27,760 --> 00:21:29,700 >> Кто думает, что это круто? 489 00:21:29,700 --> 00:21:30,280 Все больше людей. 490 00:21:30,280 --> 00:21:31,070 Это хорошо. 491 00:21:31,070 --> 00:21:34,860 ОК, это наш последний. 492 00:21:34,860 --> 00:21:37,314 И я хотел бы, чтобы ты мне ли или вы не думаю, что это будет 493 00:21:37,314 --> 00:21:38,564 сделать точно такой же вещи. 494 00:21:38,564 --> 00:22:06,050 495 00:22:06,050 --> 00:22:07,390 >> Я это записано где-то. 496 00:22:07,390 --> 00:22:08,640 Я не запоминая их. 497 00:22:08,640 --> 00:22:33,350 498 00:22:33,350 --> 00:22:42,900 >> Давайте посмотрим, 8, б 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. 499 00:22:42,900 --> 00:22:46,670 Так что это массив, в настоящее время, не является функцией. 500 00:22:46,670 --> 00:22:49,640 И это массив, потому что у нас есть квадрат кронштейны, не фигурные скобки. 501 00:22:49,640 --> 00:22:52,360 И это массив, какой тип? 502 00:22:52,360 --> 00:22:55,540 503 00:22:55,540 --> 00:22:56,862 Любой, хм? 504 00:22:56,862 --> 00:22:57,694 >> АУДИТОРИЯ: Их шестнадцатеричные числа? 505 00:22:57,694 --> 00:22:59,650 >> СПИКЕР: Но то, что тип С? 506 00:22:59,650 --> 00:23:00,710 Все они имеют шестнадцатеричные числа. 507 00:23:00,710 --> 00:23:01,960 Что тип С? 508 00:23:01,960 --> 00:23:04,730 509 00:23:04,730 --> 00:23:05,480 Она говорит вам. 510 00:23:05,480 --> 00:23:07,350 >> АУДИТОРИЯ: Это неподписанные символы. 511 00:23:07,350 --> 00:23:09,170 >> СПИКЕР: справа, без знака символы. 512 00:23:09,170 --> 00:23:13,050 И две шестнадцатеричные числа один байт. 513 00:23:13,050 --> 00:23:18,540 Так что это 1, 2, 3, 4, 5, 6, 7, 8, 9 байт. 514 00:23:18,540 --> 00:23:21,360 Это массив из 9 байт. 515 00:23:21,360 --> 00:23:25,530 >> ОК, вы, вероятно, уже знаете, Ответ на этот вопрос. 516 00:23:25,530 --> 00:23:29,840 Но, как вы думаете будет произойдет, когда я запускаю это? 517 00:23:29,840 --> 00:23:34,110 Я говорю, опять же, в mysum.c, Я ожидаю функцию 518 00:23:34,110 --> 00:23:36,280 , которая принимает два целых числа. 519 00:23:36,280 --> 00:23:40,265 И я вместо заявив, что сумма представляет собой массив символов. 520 00:23:40,265 --> 00:23:42,780 521 00:23:42,780 --> 00:23:48,070 Что произойдет, когда Я бегу. / Mysum и сделать? 522 00:23:48,070 --> 00:23:53,230 >> Ну, во-первых, большинство из вас, вероятно, согласны, что марка - о нет, шучу. 523 00:23:53,230 --> 00:23:54,746 Что я сделал не так? 524 00:23:54,746 --> 00:23:55,996 Ой-ой. 525 00:23:55,996 --> 00:23:59,220 526 00:23:59,220 --> 00:24:01,160 Это должно быть фигурные скобки. 527 00:24:01,160 --> 00:24:02,790 Вот как вы инициализировать массив. 528 00:24:02,790 --> 00:24:04,040 Мое плохое. 529 00:24:04,040 --> 00:24:07,530 530 00:24:07,530 --> 00:24:11,670 >> Таким образом, мы уже видели до этого типов являются абстракция C-уровня, а не 531 00:24:11,670 --> 00:24:12,610 абстракция уровень компьютерной. 532 00:24:12,610 --> 00:24:16,360 Так что большинство из вас, вероятно ожидал, что это сделать, или при условии, что он будет делать. 533 00:24:16,360 --> 00:24:18,680 Но что, когда я запускаю. / Mysum? 534 00:24:18,680 --> 00:24:19,930 Что произойдет? 535 00:24:19,930 --> 00:24:21,790 536 00:24:21,790 --> 00:24:23,422 Любые предположения? 537 00:24:23,422 --> 00:24:25,270 >> АУДИТОРИЯ: Это собирается распечатать ни слова. 538 00:24:25,270 --> 00:24:26,310 >> СПИКЕР: Это собирается распечатать ни слова. 539 00:24:26,310 --> 00:24:29,335 Какое слово? 540 00:24:29,335 --> 00:24:32,200 >> АУДИТОРИЯ: [неразборчиво]. 541 00:24:32,200 --> 00:24:33,240 >> СПИКЕР: Любые другие предположения? 542 00:24:33,240 --> 00:24:34,000 ОК, распечатать фразу. 543 00:24:34,000 --> 00:24:35,130 Вы можете иметь любую фразу. 544 00:24:35,130 --> 00:24:36,240 Это будет ваша сторона. 545 00:24:36,240 --> 00:24:38,480 Любой, кто имеет другое предположение? 546 00:24:38,480 --> 00:24:39,730 Анна, что ваше предположение? 547 00:24:39,730 --> 00:24:42,675 548 00:24:42,675 --> 00:24:44,615 >> АУДИТОРИЯ: Это будет распечатать - 549 00:24:44,615 --> 00:24:47,525 550 00:24:47,525 --> 00:24:49,480 две буквы, или [неразборчиво] одна буква. 551 00:24:49,480 --> 00:24:51,460 >> СПИКЕР: Одно письмо. 552 00:24:51,460 --> 00:24:53,260 >> АУДИТОРИЯ: Могу ли я рассчитывать, как многие [неразборчиво]? 553 00:24:53,260 --> 00:24:55,426 >> СПИКЕР: Девять. 554 00:24:55,426 --> 00:24:56,640 Ну, я собираюсь запустить его. 555 00:24:56,640 --> 00:24:58,650 Он делает то же точную вещь. 556 00:24:58,650 --> 00:25:00,190 Он добавляет вместе два числа. 557 00:25:00,190 --> 00:25:02,740 Ну, давайте пройти два аргумента. 558 00:25:02,740 --> 00:25:03,710 Это не займет аргументы. 559 00:25:03,710 --> 00:25:06,080 Так что я не знаю, где она могла бы возможно, получить эти аргументы. 560 00:25:06,080 --> 00:25:07,710 Но давайте перейдем на 100 и 0. 561 00:25:07,710 --> 00:25:09,200 И это добавляет 100 и 0. 562 00:25:09,200 --> 00:25:10,220 Это безумие. 563 00:25:10,220 --> 00:25:12,280 Думаю, что да. 564 00:25:12,280 --> 00:25:14,480 >> Отрицательный 4, что тоже работает. 565 00:25:14,480 --> 00:25:15,650 Вы можете сделать все, что угодно. 566 00:25:15,650 --> 00:25:17,920 Это в равной степени действует функция сумма. 567 00:25:17,920 --> 00:25:19,640 Это функция сумма. 568 00:25:19,640 --> 00:25:21,510 Но, нет, ты хочешь сказать, что это массив байтов. 569 00:25:21,510 --> 00:25:23,570 Так что же здесь происходит? 570 00:25:23,570 --> 00:25:27,240 >> Так, опять же, давайте вернемся к этой идее что мы сказали в самом начале. 571 00:25:27,240 --> 00:25:32,050 Вы идете от кода C-уровня, до сборки язык, чтобы нулей и единиц. 572 00:25:32,050 --> 00:25:33,050 Это шестнадцатеричное. 573 00:25:33,050 --> 00:25:35,780 Но это на самом деле просто много нулей и единиц. 574 00:25:35,780 --> 00:25:39,230 Это 72 единицы и нули, не так ли? 575 00:25:39,230 --> 00:25:40,550 72 единицы и нули. 576 00:25:40,550 --> 00:25:42,160 9 байт. 577 00:25:42,160 --> 00:25:43,740 Каждый байт состоит из 8 битов. 578 00:25:43,740 --> 00:25:44,760 Каждый бит представляет собой один или ноль. 579 00:25:44,760 --> 00:25:45,920 Так 72 из них или нули. 580 00:25:45,920 --> 00:25:48,780 Я только что написал их, как это - а не писать его, как много 581 00:25:48,780 --> 00:25:49,730 единицы и нули. 582 00:25:49,730 --> 00:25:53,560 >> Но это будет идти от C-уровня язык, до сборки 583 00:25:53,560 --> 00:25:54,620 язык, к коду. 584 00:25:54,620 --> 00:25:59,020 И это будет распечатать в коде, где-то, эти 72 единицы и нули 585 00:25:59,020 --> 00:26:00,910 что я написал здесь. 586 00:26:00,910 --> 00:26:03,610 Так где-то в том, что - 587 00:26:03,610 --> 00:26:04,850 давайте здесь - 588 00:26:04,850 --> 00:26:11,240 где-то в mysum, программа, есть эти 72 единицы и нули, что я 589 00:26:11,240 --> 00:26:14,930 написано и сказано это написать. 590 00:26:14,930 --> 00:26:19,331 >> Теперь любой догадки за то, что те, 72 единицы и нули в виду? 591 00:26:19,331 --> 00:26:21,240 >> АУДИТОРИЯ: Наверное, то же понятия, как возвращать плюс б. 592 00:26:21,240 --> 00:26:22,890 >> СПИКЕР: Наверное, то же понятия, как возвращать плюс б. 593 00:26:22,890 --> 00:26:23,730 Давайте проверим это. 594 00:26:23,730 --> 00:26:25,210 Давайте понять, как я это сделал. 595 00:26:25,210 --> 00:26:31,840 >> Так что, если вы идете сюда, я вам скажу Для выполнения этой команды, objdump-S 596 00:26:31,840 --> 00:26:34,290 sumfunction.o. 597 00:26:34,290 --> 00:26:36,230 Пойдем запустить его. objdump - 598 00:26:36,230 --> 00:26:37,990 объект, самосвалы. 599 00:26:37,990 --> 00:26:39,840 В основном это может дать мне все, что я хочу видеть. 600 00:26:39,840 --> 00:26:40,840 Это может дать мне языке ассемблера. 601 00:26:40,840 --> 00:26:42,730 Он может дать мне единицы и нули. 602 00:26:42,730 --> 00:26:43,840 Она имеет массу флагов. 603 00:26:43,840 --> 00:26:45,860 Это тот, который мы собираемся использовать в настоящее время. 604 00:26:45,860 --> 00:26:46,980 Dot - 605 00:26:46,980 --> 00:26:48,810 как вы видите на слайдах - 606 00:26:48,810 --> 00:26:53,840 тире капитал S говорит, пересыпать, Исходный код - 607 00:26:53,840 --> 00:26:58,410 эта линия это от C - со сборкой Код и с нулей и единиц. 608 00:26:58,410 --> 00:27:00,350 И мы собираемся запустить это на sumfunction.o. 609 00:27:00,350 --> 00:27:01,410 Потому что это будет легче увидеть. 610 00:27:01,410 --> 00:27:02,670 Опять - хм? 611 00:27:02,670 --> 00:27:04,700 >> АУДИТОРИЯ: Вы четко это не так. 612 00:27:04,700 --> 00:27:05,930 >> СПИКЕР: Но я действительно собираюсь чтобы очистить его ни на секунду. 613 00:27:05,930 --> 00:27:09,160 Я сначала собирается открыть просто sumfuntion.o. 614 00:27:09,160 --> 00:27:11,170 >> АУДИТОРИЯ: Вы четко это так в первый раз. 615 00:27:11,170 --> 00:27:12,420 >> СПИКЕР: Классический. 616 00:27:12,420 --> 00:27:14,790 617 00:27:14,790 --> 00:27:15,480 Сумма - 618 00:27:15,480 --> 00:27:16,680 что это трудно слово, все же. 619 00:27:16,680 --> 00:27:19,050 Вы были бы удивлены. 620 00:27:19,050 --> 00:27:21,560 ОК, так что это sumfunction.o. 621 00:27:21,560 --> 00:27:24,494 622 00:27:24,494 --> 00:27:26,220 Я не мог даже сказать вам. 623 00:27:26,220 --> 00:27:30,250 Там очень много нулей, ясно много Нули, и есть некоторые другие 624 00:27:30,250 --> 00:27:31,930 вещи, которые не нули. 625 00:27:31,930 --> 00:27:33,220 Но в основном нули. 626 00:27:33,220 --> 00:27:35,120 Похоже, есть некоторые из них. 627 00:27:35,120 --> 00:27:36,810 Итак, ясно, что это трудно читать. 628 00:27:36,810 --> 00:27:39,320 Это двоичный язык. 629 00:27:39,320 --> 00:27:40,710 >> Давайте теперь открыть его - 630 00:27:40,710 --> 00:27:50,190 631 00:27:50,190 --> 00:27:52,350 что? 632 00:27:52,350 --> 00:27:53,600 Что я делаю не так? 633 00:27:53,600 --> 00:27:56,955 634 00:27:56,955 --> 00:27:58,434 Разве я буквам правильно? 635 00:27:58,434 --> 00:28:09,865 636 00:28:09,865 --> 00:28:11,120 Хорошо, это неудобно. 637 00:28:11,120 --> 00:28:37,560 638 00:28:37,560 --> 00:28:40,158 Мне нужно одну секунду, чтобы выяснить то, что я делаю неправильно. 639 00:28:40,158 --> 00:28:46,030 640 00:28:46,030 --> 00:28:49,310 Это одна ошибка. 641 00:28:49,310 --> 00:28:50,560 Это странно. 642 00:28:50,560 --> 00:28:58,080 643 00:28:58,080 --> 00:29:01,800 О, вот почему. 644 00:29:01,800 --> 00:29:09,880 >> Я собираюсь вернуться к нашему первоначальному один, поэтому мы можем посмотреть на 645 00:29:09,880 --> 00:29:10,560 объектный код этого. 646 00:29:10,560 --> 00:29:13,390 Потому что на самом деле не собирается быть что угодно, когда мы просто поставить 647 00:29:13,390 --> 00:29:14,640 единицы и нули дюйма 648 00:29:14,640 --> 00:29:29,000 649 00:29:29,000 --> 00:29:30,200 Там мы идем. 650 00:29:30,200 --> 00:29:32,425 ОК, так что каждый может увидеть это. 651 00:29:32,425 --> 00:29:38,130 Эта функция, как я уже сказал, потушить линии C - 652 00:29:38,130 --> 00:29:39,060 строк исходного кода - 653 00:29:39,060 --> 00:29:41,000 с некоторыми инструкциями по сборке. 654 00:29:41,000 --> 00:29:42,760 >> Вот наш исходный код линия. 655 00:29:42,760 --> 00:29:44,910 Вот один, вот еще. 656 00:29:44,910 --> 00:29:46,540 Вот инструкция по монтажу. 657 00:29:46,540 --> 00:29:47,820 Вот как они выглядят. 658 00:29:47,820 --> 00:29:49,010 Инструкция по монтажу - 659 00:29:49,010 --> 00:29:51,530 Вы можете узнать больше из них, если вы берете другие классы CS, но они 660 00:29:51,530 --> 00:29:53,500 как правило, это инструкция. 661 00:29:53,500 --> 00:29:57,940 А потом источником и назначения. 662 00:29:57,940 --> 00:30:02,740 >> А потом здесь является двоичный код что соответствует этой сборки 663 00:30:02,740 --> 00:30:04,940 инструкция. 664 00:30:04,940 --> 00:30:09,760 Так как вы можете видеть, эта функция сумма, в конце концов, это три 665 00:30:09,760 --> 00:30:10,950 инструкция по монтажу. 666 00:30:10,950 --> 00:30:12,870 Только три. 667 00:30:12,870 --> 00:30:14,180 Один мов - 668 00:30:14,180 --> 00:30:16,740 это м-о-V обозначает Move. 669 00:30:16,740 --> 00:30:17,780 Добавить стенды для Add. 670 00:30:17,780 --> 00:30:20,440 И г-е-т стоит за возвращение. 671 00:30:20,440 --> 00:30:22,540 Таким образом, одна мов, один добавить, один возврат. 672 00:30:22,540 --> 00:30:27,970 И это, здесь, являются нули и те, которые соответствуют этим кодом. 673 00:30:27,970 --> 00:30:31,100 >> Так эти нули и единицы, если вы знаю тех, вы можете просто положить 674 00:30:31,100 --> 00:30:32,140 те, прямо дюйма 675 00:30:32,140 --> 00:30:34,130 А потом он будет делать точно такой же вещь. 676 00:30:34,130 --> 00:30:37,260 Потому что, в конце концов, все , необходимо выполнить это длинная серия 677 00:30:37,260 --> 00:30:38,480 нулей и единиц. 678 00:30:38,480 --> 00:30:40,700 И вот что ваш код на самом деле. 679 00:30:40,700 --> 00:30:41,770 >> И причина - 680 00:30:41,770 --> 00:30:43,680 давайте посмотрим на одну вещь. 681 00:30:43,680 --> 00:30:45,440 Есть ли у меня Makefile, открытым? 682 00:30:45,440 --> 00:30:48,510 Так что, если мы вернулись в тире ноль, ноль здесь - 683 00:30:48,510 --> 00:30:52,220 684 00:30:52,220 --> 00:30:57,300 жаль, заглавная буква О, капитал о равно нулю, не равна нулю, равна нулю. 685 00:30:57,300 --> 00:31:01,810 И мы действительно делали, это было бы еще работают так же. 686 00:31:01,810 --> 00:31:05,420 Но теперь вы заметите, что есть намного больше инструкции по сборке. 687 00:31:05,420 --> 00:31:09,090 Это потому, что, опять же, я спросил компилятор не делать какой-либо оптимизации. 688 00:31:09,090 --> 00:31:12,800 >> Так что я еще мог взять все эти нулей и единиц, и бросить их в, 689 00:31:12,800 --> 00:31:13,390 и что будет работать. 690 00:31:13,390 --> 00:31:15,850 Я просто сделал то оптимизация, потому что это немного легче, то, 691 00:31:15,850 --> 00:31:17,310 написать этот массив. 692 00:31:17,310 --> 00:31:19,730 Но это будет работать так же хорошо. 693 00:31:19,730 --> 00:31:24,460 >> Хорошо, мы собираемся сделать одну заключительную вещь, потому что я думаю, это самая прохладная часть. 694 00:31:24,460 --> 00:31:27,410 Несмотря на то, все это четко уже взорван и речи. 695 00:31:27,410 --> 00:31:30,520 696 00:31:30,520 --> 00:31:31,670 Наши умы взорван. 697 00:31:31,670 --> 00:31:32,920 [Неразборчиво] 698 00:31:32,920 --> 00:31:47,580 699 00:31:47,580 --> 00:31:51,520 >> Итак, это из другого класса CS, который супер красивые, 700 00:31:51,520 --> 00:31:52,970 что я взял - 701 00:31:52,970 --> 00:31:54,140 CS61. 702 00:31:54,140 --> 00:31:55,910 Я настоятельно рекомендую вам принять его. 703 00:31:55,910 --> 00:31:58,990 Но прохладная часть об этом факте, что вещи просто нулей и единиц, 704 00:31:58,990 --> 00:32:01,270 в том, что все нулей и единиц. 705 00:32:01,270 --> 00:32:05,330 >> Таким образом, вы можете взять файл с расширением правильные нулей и единиц, которые вы хотите 706 00:32:05,330 --> 00:32:10,390 где-то в нем, и использовать эту секцию нули и единицы в зависимости сумма. 707 00:32:10,390 --> 00:32:11,480 >> Что я подразумеваю под этим? 708 00:32:11,480 --> 00:32:15,755 Я имею в виду вы можете взять файл изображения, имеет правильную серию нулей и 709 00:32:15,755 --> 00:32:17,120 те, которые печатают что-то к изображению. 710 00:32:17,120 --> 00:32:20,070 И одна программа может интерпретировать это изображение, но вы можете интерпретировать его, если 711 00:32:20,070 --> 00:32:22,040 Вы хотите, как функция суммы. 712 00:32:22,040 --> 00:32:27,010 >> Так что, если мы хотели, чтобы открыть, для Например, этот образ. 713 00:32:27,010 --> 00:32:37,440 Пойдем, Hello Kitty. 714 00:32:37,440 --> 00:32:38,810 Замечательный небольшой изображения. 715 00:32:38,810 --> 00:32:42,260 В здесь есть то, что строка из нулей и единиц. 716 00:32:42,260 --> 00:32:45,500 Эти 72 нулей и единиц существуют в этой фотографии. 717 00:32:45,500 --> 00:32:47,695 >> Так что я могу сделать, то, это написать - 718 00:32:47,695 --> 00:32:50,510 719 00:32:50,510 --> 00:32:51,760 Я должен помнить, где они находятся. 720 00:32:51,760 --> 00:32:54,550 721 00:32:54,550 --> 00:32:55,720 Я найду, что в секунду. 722 00:32:55,720 --> 00:32:57,840 Но мы делаем - 723 00:32:57,840 --> 00:32:59,440 позвольте мне узнать, где они находятся. 724 00:32:59,440 --> 00:33:00,020 Один сек. 725 00:33:00,020 --> 00:33:01,270 Давайте сделаем - 726 00:33:01,270 --> 00:33:05,800 727 00:33:05,800 --> 00:33:07,240 >> АУДИТОРИЯ: [неразборчиво]. 728 00:33:07,240 --> 00:33:08,490 >> СПИКЕР: Спасибо. 729 00:33:08,490 --> 00:33:24,240 730 00:33:24,240 --> 00:33:28,740 Так что, если мы выполняем эту программу, которая вместо читает в файле, то он идет 731 00:33:28,740 --> 00:33:33,160 этому показателю в файле. 732 00:33:33,160 --> 00:33:35,500 А потом, опять же, так же, как mysum, берет два числа. 733 00:33:35,500 --> 00:33:41,410 Мы можем добавить номера точно так же, как мы делали раньше, что идет в 734 00:33:41,410 --> 00:33:44,850 показать вам, как тот факт, что, в конце в день, все эти вещи 735 00:33:44,850 --> 00:33:45,350 нулей и единиц. 736 00:33:45,350 --> 00:33:48,170 И это просто, как вы выбираете интерпретировать их. 737 00:33:48,170 --> 00:33:50,770 >> И если вы на самом деле выглядят на этой фотографии - 738 00:33:50,770 --> 00:33:52,930 давайте увеличения немного. 739 00:33:52,930 --> 00:33:53,720 Все ли могут это увидеть? 740 00:33:53,720 --> 00:33:57,570 Вы заметите, прямо здесь, есть некоторые странные пятно. 741 00:33:57,570 --> 00:34:00,130 742 00:34:00,130 --> 00:34:02,290 Пойдем - это исходное изображение. 743 00:34:02,290 --> 00:34:04,540 Вы заметите, здесь нет никакого пятно. 744 00:34:04,540 --> 00:34:08,420 То есть код функции суммы, является то, что мало пятно прямо там. 745 00:34:08,420 --> 00:34:13,449 >> А на самом деле, опять же, если вы узнаете больше об этом, вы поймете, что это 746 00:34:13,449 --> 00:34:18,270 Hello Kitty, который имеет даже больше пятно, имеет код, который может взять на себя 747 00:34:18,270 --> 00:34:21,800 компьютер, если он не защищен соответственно. 748 00:34:21,800 --> 00:34:23,920 Таким образом, вы можете запустить этот. 749 00:34:23,920 --> 00:34:25,380 Я не собираюсь запустить его прямо сейчас. 750 00:34:25,380 --> 00:34:30,600 Но вы можете запустить этот Здравствуйте Китти изображение, и он может 751 00:34:30,600 --> 00:34:32,429 получить контроль над компьютером. 752 00:34:32,429 --> 00:34:35,159 >> Так что все для демо. 753 00:34:35,159 --> 00:34:38,560 Кто-нибудь есть какие-либо вопросы, комментарии, проблемы? 754 00:34:38,560 --> 00:34:39,515 Я думаю, что этот материал является захватывающим. 755 00:34:39,515 --> 00:34:41,500 Это вдохновило меня, чтобы узнать больше. 756 00:34:41,500 --> 00:34:44,980 Я настоятельно рекомендую, если вы заинтересованы у всех на CS, поговорить со мной. 757 00:34:44,980 --> 00:34:50,250 Даже при том, что я Общественные науки Концентратор, я CS, среднее, так 758 00:34:50,250 --> 00:34:52,340 Я до сих пор знаю немного. 759 00:34:52,340 --> 00:34:53,810 Но я, конечно, знаю, что классы, которые необходимо предпринять. 760 00:34:53,810 --> 00:34:57,940 Я думаю, что это все действительно интересно, и я призываю вас, конечно же, 761 00:34:57,940 --> 00:35:00,330 узнать больше, если вы заинтересованы. 762 00:35:00,330 --> 00:35:02,090 >> Хорошо, у меня есть одна заключительная вещь. 763 00:35:02,090 --> 00:35:05,530 764 00:35:05,530 --> 00:35:05,870 Извините. 765 00:35:05,870 --> 00:35:06,460 Есть вопросы? 766 00:35:06,460 --> 00:35:10,010 Я не остановился, чтобы подождать, если кто-нибудь какие-либо вопросы по этому поводу. 767 00:35:10,010 --> 00:35:13,220 768 00:35:13,220 --> 00:35:16,900 >> Кто-нибудь будет CS Концентратор? 769 00:35:16,900 --> 00:35:18,580 Или думать об этом? 770 00:35:18,580 --> 00:35:20,730 Раз, два, три, четыре. 771 00:35:20,730 --> 00:35:21,620 Один - только один. 772 00:35:21,620 --> 00:35:24,680 Анна является единственным рука вот поднял авторитетно. 773 00:35:24,680 --> 00:35:27,640 774 00:35:27,640 --> 00:35:29,390 ОК, это круто. 775 00:35:29,390 --> 00:35:30,110 Ассам, что вы собираетесь делать? 776 00:35:30,110 --> 00:35:33,220 >> АУДИТОРИЯ: [неразборчиво]. 777 00:35:33,220 --> 00:35:33,910 >> СПИКЕР: Константин? 778 00:35:33,910 --> 00:35:34,990 >> АУДИТОРИЯ: Физика. 779 00:35:34,990 --> 00:35:36,720 >> СПИКЕР: Вау, это было быстро. 780 00:35:36,720 --> 00:35:40,770 У вас был неудачный опыт в CS50? 781 00:35:40,770 --> 00:35:42,015 [Неразборчиво], что вы собираетесь делать? 782 00:35:42,015 --> 00:35:42,980 >> Зала: Я понятия не имею,. 783 00:35:42,980 --> 00:35:43,924 >> СПИКЕР: Курт? 784 00:35:43,924 --> 00:35:45,900 >> АУДИТОРИЯ: Экон или CS. 785 00:35:45,900 --> 00:35:46,910 >> СПИКЕР: Экон или CS. 786 00:35:46,910 --> 00:35:47,840 Том? 787 00:35:47,840 --> 00:35:48,385 >> АУДИТОРИЯ: Я делаю Stat. 788 00:35:48,385 --> 00:35:48,950 >> СПИКЕР: Стат? 789 00:35:48,950 --> 00:35:50,100 ОК. 790 00:35:50,100 --> 00:35:51,000 Кто ты? 791 00:35:51,000 --> 00:35:51,310 >> АУДИТОРИЯ: Я? 792 00:35:51,310 --> 00:35:51,750 >> СПИКЕР: Да. 793 00:35:51,750 --> 00:35:52,190 >> АУДИТОРИЯ: Стат. 794 00:35:52,190 --> 00:35:52,520 >> СПИКЕР: Стат. 795 00:35:52,520 --> 00:35:53,500 О, там вы идете. 796 00:35:53,500 --> 00:35:55,200 Том, поговорить с Олден. 797 00:35:55,200 --> 00:35:56,932 Эмили, о чем вы? 798 00:35:56,932 --> 00:35:57,396 >> АУДИТОРИЯ: Биомедицинская - 799 00:35:57,396 --> 00:36:00,178 >> СПИКЕР: Вы в этом разделе? 800 00:36:00,178 --> 00:36:03,040 >> АУДИТОРИЯ: Нет. 801 00:36:03,040 --> 00:36:04,530 >> СПИКЕР: Хорошо, это Эмили. 802 00:36:04,530 --> 00:36:05,670 Она мой друг. 803 00:36:05,670 --> 00:36:10,080 Очевидно не так хорошо о другом, , потому что она дает мне нелегко. 804 00:36:10,080 --> 00:36:13,223 Вы может быть приятнее для меня перед из всех, мой ученик - 805 00:36:13,223 --> 00:36:14,580 >> АУДИТОРИЯ: Я делаю свое Q руководство. 806 00:36:14,580 --> 00:36:14,870 >> СПИКЕР: В самом деле? 807 00:36:14,870 --> 00:36:15,510 Ой-ой. 808 00:36:15,510 --> 00:36:17,224 ОК, вы удивительно. 809 00:36:17,224 --> 00:36:19,380 Я так тебя люблю. 810 00:36:19,380 --> 00:36:20,600 О мальчик. 811 00:36:20,600 --> 00:36:28,320 >> Во всяком случае, я, вчера вечером, как и все - 812 00:36:28,320 --> 00:36:32,220 Я уверен, что все, кажется, действительно подчеркнул прямо сейчас. 813 00:36:32,220 --> 00:36:35,970 Я не знаю, являются первокурсник - являются вы, ребята, в состоянии стресса? 814 00:36:35,970 --> 00:36:36,855 Я чувствую подчеркнул. 815 00:36:36,855 --> 00:36:37,980 Это было похоже, вы идете домой на День благодарения. 816 00:36:37,980 --> 00:36:40,660 Ты как, я собираюсь делать все эти вещи. 817 00:36:40,660 --> 00:36:41,530 >> АУДИТОРИЯ: Это так отличается. 818 00:36:41,530 --> 00:36:42,560 >> СПИКЕР: Да, и вы вернетесь. 819 00:36:42,560 --> 00:36:45,290 Джефф, вы не чувствуете себя таким образом? 820 00:36:45,290 --> 00:36:46,610 >> АУДИТОРИЯ: Я просто подумал, Я бы сделал немного. 821 00:36:46,610 --> 00:36:48,660 >> СПИКЕР: ОК, отлично. 822 00:36:48,660 --> 00:36:51,650 Так что я вернусь, и у меня нет сделал ничего. 823 00:36:51,650 --> 00:36:53,260 И все это супер напряженный. 824 00:36:53,260 --> 00:36:55,640 И я понимаю, по-настоящему, то, о том, стоит меня я 825 00:36:55,640 --> 00:36:57,380 собираюсь закончить все, что имею, чтобы. 826 00:36:57,380 --> 00:37:01,750 Но вчера вечером, я не подчеркнул, Я был просто немного грустно. 827 00:37:01,750 --> 00:37:04,520 Так что я написал в своем дневнике о что мне было грустно о. 828 00:37:04,520 --> 00:37:08,020 И мне было грустно об этом разделе в этом классе подходит к концу. 829 00:37:08,020 --> 00:37:11,100 >> Так что я как раз собирался читать для вас, ребята небольшой отрывок из моего журнала, 830 00:37:11,100 --> 00:37:12,950 с прошлой ночи. 831 00:37:12,950 --> 00:37:17,400 Могу ли я получить некоторые салфетки, некоторые ткани от Тома? 832 00:37:17,400 --> 00:37:18,040 Нет, я буду плакать. 833 00:37:18,040 --> 00:37:19,720 Я не плачу. 834 00:37:19,720 --> 00:37:22,030 Не то, чтобы вы не можете плакать, Я просто не плачь. 835 00:37:22,030 --> 00:37:24,040 Я даже не знаю, если моя слеза железы работал - слезные протоки. 836 00:37:24,040 --> 00:37:25,630 Я не плакала в течение длительного времени. 837 00:37:25,630 --> 00:37:26,510 >> АУДИТОРИЯ: [неразборчиво]. 838 00:37:26,510 --> 00:37:28,920 >> СПИКЕР: Хорошо, спасибо. 839 00:37:28,920 --> 00:37:30,070 Хорошо, есть немного предисловие - 840 00:37:30,070 --> 00:37:32,480 есть некоторые другие части моего журнала вход, потому что я пытаюсь журнале каждый 841 00:37:32,480 --> 00:37:33,600 ночь, прежде чем я добрался до кровати. 842 00:37:33,600 --> 00:37:34,900 Я настоятельно рекомендую журналирования. 843 00:37:34,900 --> 00:37:38,600 Это поможет вам обработать вещи, а также быть очень ценим ваш день. 844 00:37:38,600 --> 00:37:43,063 И это делает его намного проще искать обратно на свой день и понять, что 845 00:37:43,063 --> 00:37:44,240 было много хорошего То, что произошло. 846 00:37:44,240 --> 00:37:47,240 Даже если вы чувствуете себя действительно подчеркнул ночью или очень расстроен, или 847 00:37:47,240 --> 00:37:49,022 очень грустно или устал. 848 00:37:49,022 --> 00:37:50,272 >> О, мой бог. 849 00:37:50,272 --> 00:37:52,546 850 00:37:52,546 --> 00:37:54,400 Я даже не знаю, если это написано, что хорошо, потому что я не корректировать его. 851 00:37:54,400 --> 00:37:55,780 Но мы будем читать. 852 00:37:55,780 --> 00:37:59,950 Я обычно не читаю мой журнал, это очевидно. 853 00:37:59,950 --> 00:38:03,720 >> "Завтра я буду учить моего финал CS50 часть года. 854 00:38:03,720 --> 00:38:05,860 Это безумие, как летит быстро время. 855 00:38:05,860 --> 00:38:09,900 Тем не менее, я поражен, насколько отличается мой опыт преподавания в этом году было 856 00:38:09,900 --> 00:38:11,365 чем когда я был на втором курсе. 857 00:38:11,365 --> 00:38:14,120 Для начала, я определенно знать материал лучше. 858 00:38:14,120 --> 00:38:16,820 Но не говорите свой первый когорту студентов, что. 859 00:38:16,820 --> 00:38:20,030 Более важно, однако, я понял, что радость, которая приходит от понимания 860 00:38:20,030 --> 00:38:23,160 вверх перед комнате то, что начинается как чужие, но заканчивает тем, как, в 861 00:38:23,160 --> 00:38:27,150 мере, Facebook друзья, не первый год случайностью. 862 00:38:27,150 --> 00:38:29,970 Скорее, это от знания, что, в некоторых малых образом, вы помогаете 863 00:38:29,970 --> 00:38:32,980 талантливый, вдумчивый, восхитительный, и страстные люди узнать немного больше 864 00:38:32,980 --> 00:38:34,750 о компьютерной науки. 865 00:38:34,750 --> 00:38:37,480 >> Вы сдвига, что лампочку просто немного в гнезде, так что он в состоянии 866 00:38:37,480 --> 00:38:42,120 сиять ярче, чем вас, или они, мог себе представить в начале семестра. 867 00:38:42,120 --> 00:38:45,390 Вы помогаете превратить эти хмурится потенциал роста вниз и задавать вопросы, которые 868 00:38:45,390 --> 00:38:49,240 оказывать поддержку, но все же позволяют студенты встать самостоятельно. 869 00:38:49,240 --> 00:38:52,190 >> Это, конечно, не будет преувеличением сказать, что этот раздел является моим любимым 870 00:38:52,190 --> 00:38:53,190 часть недели. 871 00:38:53,190 --> 00:38:57,930 Или даже, что я не решаюсь сказать, что это все, в 5:30 вечера каждую неделю, зная 872 00:38:57,930 --> 00:39:00,640 что это будет слишком долго пока мы не встретимся снова. 873 00:39:00,640 --> 00:39:02,740 >> Тем не менее, я невероятно благодарен каждый, кто дал мне это 874 00:39:02,740 --> 00:39:05,010 возможность отдать другим. 875 00:39:05,010 --> 00:39:07,340 Для Давида, за его терпение и доверие. 876 00:39:07,340 --> 00:39:11,040 Для кино и производства экипажа, для заставляет меня выглядеть несколько респектабельно. 877 00:39:11,040 --> 00:39:15,380 И, самое главное, чтобы мои студенты, без которых меня не было бы никаких оснований для 878 00:39:15,380 --> 00:39:17,890 проводят 10 часов, выясняя, лучший способ привлечь указатели, или выложить 879 00:39:17,890 --> 00:39:20,330 Таблица дельфинов, через JavaScript. 880 00:39:20,330 --> 00:39:22,620 Как всегда, это было благословением ". 881 00:39:22,620 --> 00:39:25,420 >> Так с этим, спасибо вам, ребята. 882 00:39:25,420 --> 00:39:29,000 Я буду видеть вас всех на CS50 ярмарке, и Хакатон, если вы там. 883 00:39:29,000 --> 00:39:32,020 И если у вас есть вопросы, я буду придерживаться не вокруг, пока нет более. 884 00:39:32,020 --> 00:39:33,760 Но я благодарю вас, ребята, за замечательный год. 885 00:39:33,760 --> 00:39:37,290 >> [Аплодисменты] 886 00:39:37,290 --> 00:39:38,540 >> СПИКЕР: я мог бы плакать. 887 00:39:38,540 --> 00:39:40,800