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