1 00:00:00,000 --> 00:00:07,700 2 00:00:07,700 --> 00:00:15,180 >> SPEAKER: ОК, така че, няма да повярвам, но миналата седмица, в понеделник, в Pierce, I 3 00:00:15,180 --> 00:00:16,090 е долу в мазето. 4 00:00:16,090 --> 00:00:17,010 Аз никога не отидете на Пиърс. 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 Оказа се по веднъж, и то е в MIT, като петнайсетминута по-късно, и лицето 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 >> OK. 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 Освен ако не сте попълване на Q водач, който е на първо място. 45 00:01:49,650 --> 00:01:50,690 >> Ръководството Q е отворен. 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 Аз не знам, ако можете да направите това, Jeff, защото сте студент и разширение. 51 00:02:07,440 --> 00:02:12,730 Но когато отидете в Q, ако не сте го и преди, когато вдигнете 52 00:02:12,730 --> 00:02:14,020 учител, който е David Malan. 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 И вие можете да вземете колкото се може повече TFS, колкото искате. 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 на Q, защото той не взема повече време от това. 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 Не мога да ви кажа - или като голям усмивка се изправи, с капитал D. Това ще 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 Finish дъвчене. 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 >> SPEAKER: Close, наистина близо. 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 >> SPEAKER: Не. 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 >> SPEAKER: 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 Тя ще разпечатате а, б, и след това сумата от а и б. 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 [? Manu? ?] 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 >> SPEAKER: Точно така, до 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 Dash нула, нула, означава, не правете всяко оптимизации, компилатор. 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 Така че ние тече ми една сума плюс две плюс три. 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 >> SPEAKER: 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 >> SPEAKER: 0 и? 179 00:07:29,210 --> 00:07:31,010 >> ПУБЛИКАТА: Negative 3. 180 00:07:31,010 --> 00:07:32,040 >> SPEAKER: Тя работи. 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 >> SPEAKER: Някакви предположения? 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 >> SPEAKER: Да. 206 00:08:33,975 --> 00:08:37,650 Така че аз пиша Int сума Int а. 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 Кой мисли, [? Manu?] Е прав? 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 OK. 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 >> SPEAKER: Не, не съм. 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 преди името на функцията Int. 234 00:09:30,160 --> 00:09:31,560 Ето, аз съм писал вътр. 235 00:09:31,560 --> 00:09:35,680 Какво мислите, че ще се случи, ако в този функция, аз не пиша ПНА, но 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 числа, и могат да бъдат Int положителен или отрицателен. 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 отрицателна 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 >> SPEAKER: Това ще го направя. 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 >> ОК, някакви идеи за това защо тя все още работи, или това, което се случва? 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 >> SPEAKER: Не. 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 >> SPEAKER: Да. 270 00:11:03,690 --> 00:11:09,690 Ако отворите Makefile точно тук, Промених оптимизацията. 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 Silence. 279 00:11:33,660 --> 00:11:34,910 OK. 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 >> Така че готино нещо за C, и сте вероятно изпитвали досега - вие 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 и така нататък, и така нататък, това е тук в езика C. 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 Така че това е нещо, което съществува в C свят, но не съществува в компютъра 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 Тъй, че съществува само в света на C. 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 >> SPEAKER: Да го направим в сек. 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 >> SPEAKER: Така че Чар е проблематично. 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 >> SPEAKER: Размер на Чар е 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 >> ПУБЛИКАТА: Char звезда. 341 00:14:00,200 --> 00:14:01,220 >> SPEAKER: Char звезда има четири байта. 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 показалеца и неподписан стойност - ние ще промените това обратно към INT, така че ние не сме 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 >> SPEAKER: Какво? 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 Кой си мисли, че ще ходи да segfault? 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 >> Но, разбира се, ще се постави в едно и две. 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 Това е вероятно по-добро предположение за нещо segfaulting. 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 >> OK, това сега е лудост. 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 >> SPEAKER: Ще индекс в б - 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 Char звезда, ние можем да дадем на всеки памет адрес, което искаме. 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 >> Тогава, вътр б казва, OK, отидете на този номер на стъпки в масива. 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 >> SPEAKER: Точно така. 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 >> SPEAKER: Да, това ще върне 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 >> SPEAKER: Точно така. 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 И това е наистина готино нещо за това, тъй като това трябва segfault. 449 00:19:21,670 --> 00:19:25,110 И би segfault ако ние Направих нещо подобно. 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 място, това няма да segfault. 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 Ние не се получи segfault. 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 всъщност няма да segfault защото тя ви позволява да извършвате тези операции. 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 Това е просто една луда част от C. Така че, имаме едно повече от тях. 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 >> SPEAKER: Но това, което е от типа C? 506 00:22:59,650 --> 00:23:00,710 Те всички имат шестнадесетични числа. 507 00:23:00,710 --> 00:23:01,960 Какъв е типът C? 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 >> SPEAKER: Право, неподписани символа. 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 Uh о. 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 >> SPEAKER: Това ще разпечатате дума. 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 >> SPEAKER: Всякакви други предположения? 542 00:24:33,240 --> 00:24:34,000 OK, разпечатате една фраза. 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 >> SPEAKER: Един писмо. 552 00:24:51,460 --> 00:24:53,260 >> ПУБЛИКАТА: Мога ли да разчитам как много [недоловим]? 553 00:24:53,260 --> 00:24:55,426 >> SPEAKER: Nine. 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 >> SPEAKER: Вероятно същото нещо като върне плюс б. 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 >> SPEAKER: Но аз всъщност ще да се изчисти за секунда. 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 >> SPEAKER: Classic. 616 00:27:12,420 --> 00:27:14,790 617 00:27:14,790 --> 00:27:15,480 Sum - 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 Един MOV - 668 00:30:14,180 --> 00:30:16,740 това m-о-о щандове за 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 Така че един MOV, една добавка, едно завръщане. 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 Wonderful малко изображение. 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 >> SPEAKER: Благодаря. 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 Но вие можете да стартирате тази Hello Kitty изображение, и тя може да 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 One - само един. 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 >> SPEAKER: Константин? 778 00:35:33,910 --> 00:35:34,990 >> ПУБЛИКАТА: Physics. 779 00:35:34,990 --> 00:35:36,720 >> SPEAKER: Уау, това беше бързо. 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 >> SPEAKER: Кърт? 784 00:35:43,924 --> 00:35:45,900 >> ПУБЛИКАТА: Econ или CS. 785 00:35:45,900 --> 00:35:46,910 >> SPEAKER: Econ или 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 >> SPEAKER: Stat? 789 00:35:48,950 --> 00:35:50,100 OK. 790 00:35:50,100 --> 00:35:51,000 Какво си ти? 791 00:35:51,000 --> 00:35:51,310 >> ПУБЛИКАТА: Me? 792 00:35:51,310 --> 00:35:51,750 >> SPEAKER: Да. 793 00:35:51,750 --> 00:35:52,190 >> ПУБЛИКАТА: Stat. 794 00:35:52,190 --> 00:35:52,520 >> SPEAKER: Stat. 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 >> ПУБЛИКАТА: Biomedical - 799 00:35:57,396 --> 00:36:00,178 >> SPEAKER: Вие сте в този раздел? 800 00:36:00,178 --> 00:36:03,040 >> Публиката: Не. 801 00:36:03,040 --> 00:36:04,530 >> SPEAKER: OK, това е Емили. 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 >> SPEAKER: Наистина ли? 807 00:36:14,870 --> 00:36:15,510 Uh о. 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 >> SPEAKER: Да, и да се върнеш. 819 00:36:42,560 --> 00:36:45,290 Jeff, не се чувствам по този начин? 820 00:36:45,290 --> 00:36:46,610 >> ПУБЛИКАТА: Аз просто мислех, че Бих направил малко. 821 00:36:46,610 --> 00:36:48,660 >> SPEAKER: Добре, чудесно. 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 >> SPEAKER: Добре, благодаря. 839 00:37:28,920 --> 00:37:30,070 OK, там е малко предисловие - 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 Или дори, че съм се колебайте да се каже, че е всички, в 17: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 За David, за неговата търпение и доверие. 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 прекарат десет часа фигуриращ най-доброто начин да се привлече указатели, или да изложи на 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, и на Hackathon, ако си там. 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 >> [APPLAUSE] 886 00:39:37,290 --> 00:39:38,540 >> SPEAKER: Мога да плача. 887 00:39:38,540 --> 00:39:40,800