1 00:00:00,000 --> 00:00:07,700 2 00:00:07,700 --> 00:00:15,180 >> Speak: OK, entón, non vai crer, pero a semana pasada, o luns, en Pierce, eu 3 00:00:15,180 --> 00:00:16,090 estaba no soto. 4 00:00:16,090 --> 00:00:17,010 Nunca ir Pierce. 5 00:00:17,010 --> 00:00:20,530 E eu nunca vou volver de novo, xa que Deixei miñas cousas soa, 6 00:00:20,530 --> 00:00:23,950 como, cinco minutos e alguén roubou o meu ordenador e meu 7 00:00:23,950 --> 00:00:26,050 teléfono da miña mochila. 8 00:00:26,050 --> 00:00:28,780 O que significa que eu teño que volver, e logo menos dunha semana despois 9 00:00:28,780 --> 00:00:30,220 el foi roubado de novo. 10 00:00:30,220 --> 00:00:31,570 >> E entón el ficou ligado - 11 00:00:31,570 --> 00:00:34,540 Find My iPhone segue ser inútiles. 12 00:00:34,540 --> 00:00:37,340 Entón eu seguir fomentar non usalo. 13 00:00:37,340 --> 00:00:42,270 Descubriuse se nunha vez, e foi o MIT, uns 15 minutos despois, ea persoa 14 00:00:42,270 --> 00:00:45,770 chamado este número de teléfono, que mostrou no meu rexistro de chamadas AT & T. 15 00:00:45,770 --> 00:00:48,830 >> Entón eu fun en liña, chamada de que o teléfono número, e foi directo para este 16 00:00:48,830 --> 00:00:50,540 atendedor de chamadas en español. 17 00:00:50,540 --> 00:00:52,520 E eu non ter oído falar del desde entón. 18 00:00:52,520 --> 00:00:54,800 Así que tiven que comezar un novo ordenador e teléfono. 19 00:00:54,800 --> 00:00:55,150 Sei. 20 00:00:55,150 --> 00:00:56,326 É. 21 00:00:56,326 --> 00:01:00,110 Pero se vostedes queren lascas na miña fondo de ordenador, despois diso, é por iso que 22 00:01:00,110 --> 00:01:01,030 Pedinlle aquí. 23 00:01:01,030 --> 00:01:02,280 Brincadeirinha. 24 00:01:02,280 --> 00:01:04,239 25 00:01:04,239 --> 00:01:07,420 Pero iso foi moi triste e traumático. 26 00:01:07,420 --> 00:01:10,700 >> Pero é todo para atrás agora, e foi por iso o set-p 8 tardou tanto tempo, porque 27 00:01:10,700 --> 00:01:12,480 Eu non tiña un ordenador. 28 00:01:12,480 --> 00:01:13,730 E alguén roubou. 29 00:01:13,730 --> 00:01:16,940 E eu por correo electrónico, pregunta se eles sería o seu grao-p set 8. 30 00:01:16,940 --> 00:01:18,790 Pero eles dixeron que non. 31 00:01:18,790 --> 00:01:20,000 E eu era como, eu podo ter meu ordenador de volta? 32 00:01:20,000 --> 00:01:21,270 E son como, non. 33 00:01:21,270 --> 00:01:22,130 Brincadeirinha. 34 00:01:22,130 --> 00:01:22,930 >> Aceptar. 35 00:01:22,930 --> 00:01:28,140 Esta é a nosa sección final, e eu teño un par de - nós só temos tres 36 00:01:28,140 --> 00:01:29,790 cousas na axenda. 37 00:01:29,790 --> 00:01:31,330 Imos falar un pouco sobre a guía Q. 38 00:01:31,330 --> 00:01:33,900 Entón, nós imos gastar 15 minutos nunha demostración legal. 39 00:01:33,900 --> 00:01:36,890 Entón imos todos dicir despedir un ao outro. 40 00:01:36,890 --> 00:01:41,460 Realmente non precisa dos seus ordenadores ou unha pluma ou un papel para tomar notas, ou 41 00:01:41,460 --> 00:01:42,410 seguir. 42 00:01:42,410 --> 00:01:45,620 Entón eu supoño que, se ten o seu ordenador , Entón está en Facebook. 43 00:01:45,620 --> 00:01:46,530 Só ten que dicir. 44 00:01:46,530 --> 00:01:49,650 A menos que está cubrindo o Guía de Q, o cal é en primeiro lugar. 45 00:01:49,650 --> 00:01:50,690 >> A guía Q está aberta. 46 00:01:50,690 --> 00:01:53,520 Xa tivo un correo electrónico sobre iso. 47 00:01:53,520 --> 00:01:56,930 Xa que todas as cousas Q é sometida ao fin de ano, eu recibín todos os 48 00:01:56,930 --> 00:02:03,710 Comentarios Q nos correas de todos que escolle para me dar feedback. 49 00:02:03,710 --> 00:02:04,810 E así, cando vai no Q - 50 00:02:04,810 --> 00:02:07,440 Non sei se pode facer iso, Jeff, porque é estudante e extensión. 51 00:02:07,440 --> 00:02:12,730 Pero cando vai no Q, se non ten feito isto antes, escolle o seu 52 00:02:12,730 --> 00:02:14,020 profesor, que é David Malan. 53 00:02:14,020 --> 00:02:14,970 Ten que facer el. 54 00:02:14,970 --> 00:02:15,690 >> E entón pode escoller TFS. 55 00:02:15,690 --> 00:02:17,750 E pode escoller como moitos TFS como quere. 56 00:02:17,750 --> 00:02:18,990 Pero hai 60 de nós. 57 00:02:18,990 --> 00:02:20,350 Non ten que incorporarse todo o mundo. 58 00:02:20,350 --> 00:02:23,090 Pode escoller só me, ou só seleccionar un algunhas outras persoas, se queres, para 59 00:02:23,090 --> 00:02:24,470 darlles feedback tamén. 60 00:02:24,470 --> 00:02:27,595 E entón obter puntuación en todos estes diferentes eixes, e entón pode saír 61 00:02:27,595 --> 00:02:28,570 lles feedback. 62 00:02:28,570 --> 00:02:31,520 >> E entón, como un mes despois, Vou coller todo o que producto. 63 00:02:31,520 --> 00:02:34,570 E, así como o producto que estivo dándome ao longo do semestre, eu 64 00:02:34,570 --> 00:02:35,790 ler todo isto. 65 00:02:35,790 --> 00:02:39,620 E é realmente útil, e axuda me crecer como profesor e como un 66 00:02:39,620 --> 00:02:40,680 individuo. 67 00:02:40,680 --> 00:02:43,360 Entón, por favor, tome un tempo para facelo. 68 00:02:43,360 --> 00:02:45,020 Nós só imos estar aquí para, así, 30 minutos. 69 00:02:45,020 --> 00:02:48,090 Entón, se o desexa, ao final deste, para levar cinco minutos, e só tes que cubrir 70 00:02:48,090 --> 00:02:49,960 a Q, por que non hai que máis tempo do que iso. 71 00:02:49,960 --> 00:02:53,410 Iso sería marabilloso, e tamén obter as súas notas para tras máis rapidamente se 72 00:02:53,410 --> 00:02:54,620 encher o Q. 73 00:02:54,620 --> 00:02:56,580 >> Así, a maioría de vostedes teñen feito isto antes - 74 00:02:56,580 --> 00:02:58,240 ou non, aproximadamente a metade do que ter feito isto antes. 75 00:02:58,240 --> 00:03:00,060 Pero se vostede é un calouro, iso é o que é. 76 00:03:00,060 --> 00:03:01,910 Será o mesmo para todas as clases. 77 00:03:01,910 --> 00:03:02,270 Fai-o. 78 00:03:02,270 --> 00:03:02,900 Leva cinco minutos. 79 00:03:02,900 --> 00:03:07,610 Pero tamén, se o fas algo en serio, esta non é a peor cousa 80 00:03:07,610 --> 00:03:10,270 no mundo, porque eu certamente tomar en serio. 81 00:03:10,270 --> 00:03:13,000 >> Entón, se me deixar un rostro sorridente, Eu aprecio iso. 82 00:03:13,000 --> 00:03:17,550 Pero eu tamén quere recibir se deixoume máis que un rostro sorrinte. 83 00:03:17,550 --> 00:03:18,270 Pero cómpre a vostede. 84 00:03:18,270 --> 00:03:21,540 Eu non te podo dicir - ou como unha gran emoticono cara, cun capital D. Isto sería 85 00:03:21,540 --> 00:03:23,060 ser aínda mellor. 86 00:03:23,060 --> 00:03:27,860 >> OK, iso é todo que eu teño para o P. Se ten algunha dúbida, pode pedir 87 00:03:27,860 --> 00:03:29,370 me, pero bastante auto-explicativo. 88 00:03:29,370 --> 00:03:31,090 Así, por favor, enche-o. 89 00:03:31,090 --> 00:03:34,390 Eu realmente aprecio iso, e iso significa moito para min. 90 00:03:34,390 --> 00:03:38,910 >> OK, iso é o que nós imos pasar 15 minutos pasando. 91 00:03:38,910 --> 00:03:39,800 Vou amosar-lle un código. 92 00:03:39,800 --> 00:03:42,080 Eu creo que iso é moi legal, e que me deixou máis 93 00:03:42,080 --> 00:03:43,810 excitado en ciencia da computación. 94 00:03:43,810 --> 00:03:46,480 Entón eu espero que vai facer o mesmo para todos vostedes. 95 00:03:46,480 --> 00:03:51,760 >> Imos abrir - e todo iso código vou mandar para ti máis tarde. 96 00:03:51,760 --> 00:03:52,680 Pero nós só estamos indo para abrir - 97 00:03:52,680 --> 00:03:54,310 Estou no meu terminal - 98 00:03:54,310 --> 00:03:56,810 imos abrir este programa chamado [? MySum. ?] 99 00:03:56,810 --> 00:04:01,290 100 00:04:01,290 --> 00:04:02,540 >> Calquera pode ler isto, ou debo facelo máis grande? 101 00:04:02,540 --> 00:04:07,670 102 00:04:07,670 --> 00:04:13,040 Alguén me pode dicir o que este código vai facer cando executa-lo, ou o que esta 103 00:04:13,040 --> 00:04:14,320 programa fará cando executa-lo? 104 00:04:14,320 --> 00:04:30,710 105 00:04:30,710 --> 00:04:32,400 >> [? Avi,?] ¿Que pensas que vai facer? 106 00:04:32,400 --> 00:04:33,335 Completar mastigación. 107 00:04:33,335 --> 00:04:35,033 Non debe falar con boca aberta. 108 00:04:35,033 --> 00:04:38,330 109 00:04:38,330 --> 00:04:42,860 >> Audiencia: Será que tomar unha gran cantidade de argumentos, atopar suma deles retornando 110 00:04:42,860 --> 00:04:45,285 suma, a continuación, imprimir lo? 111 00:04:45,285 --> 00:04:53,045 Ou ten en dous argumentos, e logo fai [inaudível]. 112 00:04:53,045 --> 00:04:56,460 E entón ela mostra o que quere os resultados son. 113 00:04:56,460 --> 00:04:58,100 >> Speak: Close, moi preto. 114 00:04:58,100 --> 00:04:59,840 Alguén quere engadir [? Rar o que?] Dixo? 115 00:04:59,840 --> 00:05:04,830 116 00:05:04,830 --> 00:05:07,293 Debe dar a este programa calquera argumentos de liña de comandos? 117 00:05:07,293 --> 00:05:09,145 >> Audiencia: Non 118 00:05:09,145 --> 00:05:09,610 >> COLUMNA: Non 119 00:05:09,610 --> 00:05:11,250 Qué acontece se non dala calquera argumentos de liña de comandos? 120 00:05:11,250 --> 00:05:12,500 Eu só escribo dot MySum barra. 121 00:05:12,500 --> 00:05:15,145 122 00:05:15,145 --> 00:05:16,630 >> Audiencia: 1 máis 2 é igual a 3. 123 00:05:16,630 --> 00:05:17,250 >> Speak: 1 máis 2 é igual a 3. 124 00:05:17,250 --> 00:05:18,570 E vai imprimir iso. 125 00:05:18,570 --> 00:05:19,450 Isto é exactamente correcto. 126 00:05:19,450 --> 00:05:21,370 Vai ver que impresión f liña na parte inferior. 127 00:05:21,370 --> 00:05:23,450 Vai imprimir a, b, e logo a suma de a e b. 128 00:05:23,450 --> 00:05:26,360 E eu creo que asume que suma funciona correctamente. 129 00:05:26,360 --> 00:05:28,120 Boa suposición. 130 00:05:28,120 --> 00:05:32,250 >> OK, eo que acontece se eu darlle o argumento? 131 00:05:32,250 --> 00:05:33,010 [? Manu? ?] 132 00:05:33,010 --> 00:05:36,230 >> Audiencia: Vai engadir o que o primeiro argumento é o de b. 133 00:05:36,230 --> 00:05:37,150 Ou a 2, desculpe. 134 00:05:37,150 --> 00:05:38,480 >> COLUMNA: Correcto, a 2. 135 00:05:38,480 --> 00:05:42,470 Alguén sabe o que strtol fai? 136 00:05:42,470 --> 00:05:43,960 É basicamente atoi. 137 00:05:43,960 --> 00:05:47,240 Atoi é en realidade unha versión de fantasía de - 138 00:05:47,240 --> 00:05:49,600 ou unha versión máis simple do strtol. 139 00:05:49,600 --> 00:05:51,790 Pero realmente usa strtol. 140 00:05:51,790 --> 00:05:54,610 141 00:05:54,610 --> 00:05:58,010 E descubrín iso porque eu quería algo así como atoi, e entón cando eu 142 00:05:58,010 --> 00:06:01,110 se atoi, lin aquí. 143 00:06:01,110 --> 00:06:04,380 E eu atope "este comportamento é o mesmo que "strtol. 144 00:06:04,380 --> 00:06:06,850 Entón, é basicamente para atoi todos os efectos. 145 00:06:06,850 --> 00:06:09,320 E ve que eu mesmo usar nulo e 10. 146 00:06:09,320 --> 00:06:14,390 >> Isto realmente permite que leve unha corda, e transformalo en un número, e escoller 147 00:06:14,390 --> 00:06:15,970 que base quere facelo dentro 148 00:06:15,970 --> 00:06:17,370 Polo tanto, esta é a base 10 aquí. 149 00:06:17,370 --> 00:06:20,455 Eu podería ter feito base de dous para decimal, base 16 para hexadecimal. 150 00:06:20,455 --> 00:06:22,090 É moi legal. 151 00:06:22,090 --> 00:06:25,860 Pero short longo da historia, isto leva dous números e engade-los xuntos. 152 00:06:25,860 --> 00:06:29,260 >> Entón, imos executalo. 153 00:06:29,260 --> 00:06:32,560 E tamén vai notar, hai algunhas cousas - 154 00:06:32,560 --> 00:06:37,830 entón eu teño un makefile ben aquí, e Se abrir-se que, algunhas cousas 155 00:06:37,830 --> 00:06:39,270 notará son diferentes. 156 00:06:39,270 --> 00:06:42,370 En particular, este argumento aquí, probablemente 157 00:06:42,370 --> 00:06:43,010 non vin iso antes. 158 00:06:43,010 --> 00:06:45,770 Xeralmente, nós compilar as cousas con guión cero, cero. 159 00:06:45,770 --> 00:06:51,500 Trazo cero, cero, significa non facer calquera optimizacións, compilador. 160 00:06:51,500 --> 00:06:54,950 Non tente facer nada extravagante, ou facer algo funcionar máis axiña, ou obter 161 00:06:54,950 --> 00:06:56,530 librar de variables que son necesarias. 162 00:06:56,530 --> 00:06:58,080 Non optimizar este código en todo, 163 00:06:58,080 --> 00:07:00,110 >> Estou pedindo de terceiro nivel optimización. 164 00:07:00,110 --> 00:07:02,580 Entón eu estou pedindo compilador para facer unha morea de optimizacións. 165 00:07:02,580 --> 00:07:05,870 Pode cambiar isto no makefile cando tes ese código, se quere 166 00:07:05,870 --> 00:07:07,190 ver cousas diferentes. 167 00:07:07,190 --> 00:07:08,660 Que imos amosar nun segundo. 168 00:07:08,660 --> 00:07:12,080 Entón, corremos o meu suma 1 máis 2 máis 3. 169 00:07:12,080 --> 00:07:13,445 Alguén me dea dous argumentos. 170 00:07:13,445 --> 00:07:17,221 171 00:07:17,221 --> 00:07:18,210 >> Audiencias: 4 e 5. 172 00:07:18,210 --> 00:07:18,966 >> Speak: 4 e 5. 173 00:07:18,966 --> 00:07:19,900 Grazas. 174 00:07:19,900 --> 00:07:20,860 Grande, funciona. 175 00:07:20,860 --> 00:07:25,700 Cales son algúns outros bos argumentos para tratar, para asegurarse de que isto funciona? 176 00:07:25,700 --> 00:07:27,050 Calquera? 177 00:07:27,050 --> 00:07:27,430 >> Audiencia: 0. 178 00:07:27,430 --> 00:07:29,210 >> COLUMNA: 0 e? 179 00:07:29,210 --> 00:07:31,010 >> Audiencia: Negativo 3. 180 00:07:31,010 --> 00:07:32,040 >> Speak: Funciona. 181 00:07:32,040 --> 00:07:33,670 Pero aqueles eran boas opcións. 182 00:07:33,670 --> 00:07:36,600 OK, entón imos voltar aquí. 183 00:07:36,600 --> 00:07:38,540 Este é mysum.c. 184 00:07:38,540 --> 00:07:42,440 Vai notar que hai tamén algo chamado sumfunction.c. 185 00:07:42,440 --> 00:07:48,110 E iso, di, oh, hai algo definido en sumfunction.c. 186 00:07:48,110 --> 00:07:51,480 Eu non incluír este ficheiro aquí porque eu non teño. 187 00:07:51,480 --> 00:07:54,840 Pero eu vincula-lo en cando compilo, que notou. 188 00:07:54,840 --> 00:07:57,380 >> Imos ir cara arriba. 189 00:07:57,380 --> 00:08:02,880 Vimos cando compilado MySum, certo alí, nós conectado no binario de 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 E eu non teño o ficheiro de cabeceira porque, claro, hai o 193 00:08:08,470 --> 00:08:09,240 declaración da función. 194 00:08:09,240 --> 00:08:12,200 Entón pechada inclúen normalmente só pon nunha declaración de función. 195 00:08:12,200 --> 00:08:13,730 Aquí eu só colocar-lo en liña recta no código. 196 00:08:13,730 --> 00:08:16,370 E así que eu teño que facer é o elo no binario, o que fago. 197 00:08:16,370 --> 00:08:19,950 >> Algún palpite para o que é en sumfunction.c? 198 00:08:19,950 --> 00:08:21,950 O código que escribín en sumfunction.c? 199 00:08:21,950 --> 00:08:25,445 200 00:08:25,445 --> 00:08:26,695 >> Audiencia: [inaudível]. 201 00:08:26,695 --> 00:08:29,460 202 00:08:29,460 --> 00:08:30,630 >> Speak: Algún palpite? 203 00:08:30,630 --> 00:08:30,940 Si? 204 00:08:30,940 --> 00:08:33,710 >> Audiencia: penso, define algúns [inaudível]. 205 00:08:33,710 --> 00:08:33,975 >> Speaker: Si 206 00:08:33,975 --> 00:08:37,650 Entón fago gravación int suma int a. 207 00:08:37,650 --> 00:08:41,120 Escribo esta liña, e entón eu teño aberto bosquexo, pechou bosquexo. 208 00:08:41,120 --> 00:08:46,160 ¿Que pensas que eu escriba dentro aqueles chaves, dentro desa función? 209 00:08:46,160 --> 00:08:46,600 Si? 210 00:08:46,600 --> 00:08:48,150 >> Audiencia: Return é igual a un. 211 00:08:48,150 --> 00:08:50,010 >> Procesador: Isto é realmente un bo palpite. 212 00:08:50,010 --> 00:08:51,720 Quen pensa que [? Manu?] Está seguro? 213 00:08:51,720 --> 00:08:54,122 Di voltar a máis b. 214 00:08:54,122 --> 00:08:55,860 OK, non todos. 215 00:08:55,860 --> 00:08:56,520 [? Akshar,?] 216 00:08:56,520 --> 00:08:57,390 vostede tamén? 217 00:08:57,390 --> 00:09:00,430 Está seguro? 218 00:09:00,430 --> 00:09:01,680 Aceptar. 219 00:09:01,680 --> 00:09:09,551 220 00:09:09,551 --> 00:09:10,050 O que? 221 00:09:10,050 --> 00:09:11,662 >> Audiencia: Inseriu mal. 222 00:09:11,662 --> 00:09:13,000 >> COLUMNA: Non, eu non fixen. 223 00:09:13,000 --> 00:09:13,966 Si, só a xogar. 224 00:09:13,966 --> 00:09:15,300 Está certo. 225 00:09:15,300 --> 00:09:15,930 Iso é o que di. 226 00:09:15,930 --> 00:09:17,110 É volver máis b. 227 00:09:17,110 --> 00:09:18,570 Isto fai moito sentido. 228 00:09:18,570 --> 00:09:20,240 >> OK, imos voltar aquí. 229 00:09:20,240 --> 00:09:21,490 Vemos como o cabezallo - 230 00:09:21,490 --> 00:09:24,540 231 00:09:24,540 --> 00:09:25,660 ese é o tipo de retorno. 232 00:09:25,660 --> 00:09:29,100 Lembre, vimos que un día, o tipo de retorno da función, pero vai 233 00:09:29,100 --> 00:09:30,160 antes do nome da función int. 234 00:09:30,160 --> 00:09:31,560 Aquí, eu teño escrito int. 235 00:09:31,560 --> 00:09:35,680 ¿Que pensas que vai ocorrer se neste función, eu non escribir int, pero 236 00:09:35,680 --> 00:09:38,270 Eu escribo sen sinal? 237 00:09:38,270 --> 00:09:41,050 A diferenza, por suposto, que ser non asinado representa só positivo 238 00:09:41,050 --> 00:09:43,620 números enteiros, e pode ser int positivo ou negativo. 239 00:09:43,620 --> 00:09:45,450 >> Entón eu mudei o retorno tipo desta función. 240 00:09:45,450 --> 00:09:49,370 Este código non se corresponde este tipo de retorno aquí. 241 00:09:49,370 --> 00:09:50,925 ¿Que pensas que vai ocorrer cando compilar? 242 00:09:50,925 --> 00:09:53,840 243 00:09:53,840 --> 00:09:56,240 Debe berrar comigo. 244 00:09:56,240 --> 00:09:57,700 Sen berros. 245 00:09:57,700 --> 00:10:00,050 >> E cando eu executo o programa? 246 00:10:00,050 --> 00:10:05,810 Imos facer antes 0 Negative 3 ou negativo 1. 247 00:10:05,810 --> 00:10:10,180 El aínda funciona, aínda que eu digo está retornando un enteiro sen sinal. 248 00:10:10,180 --> 00:10:12,060 Claro que non está retornando un enteiro sen sinal. 249 00:10:12,060 --> 00:10:13,520 Está volvendo un enteiro asinado. 250 00:10:13,520 --> 00:10:16,130 Está volvendo negativo 1. 251 00:10:16,130 --> 00:10:17,830 OK, iso é raro. 252 00:10:17,830 --> 00:10:27,030 >> Que tal se eu entrar aquí e facelo? 253 00:10:27,030 --> 00:10:29,700 Entón eu mudei todo de int para unsigned. 254 00:10:29,700 --> 00:10:31,590 El só pode ter enteiros sen signo. 255 00:10:31,590 --> 00:10:33,840 Pero aínda creo que vai funcionar? 256 00:10:33,840 --> 00:10:35,652 >> Audiencia: si. 257 00:10:35,652 --> 00:10:37,270 >> Speak: Vai. 258 00:10:37,270 --> 00:10:39,410 Iso é loucura. 259 00:10:39,410 --> 00:10:43,140 E nós pasamos nunha asignado claramente enteiro, podemos pasar dous asinaron 260 00:10:43,140 --> 00:10:46,280 enteiro, el aínda funciona. 261 00:10:46,280 --> 00:10:52,150 >> OK, algunha idea de por que inda funciona, ou o que está a suceder? 262 00:10:52,150 --> 00:10:53,368 Si, Jeff. 263 00:10:53,368 --> 00:10:56,296 >> Audiencia: Ten algo que ver coa súa optimización que 264 00:10:56,296 --> 00:10:57,760 destaque. 265 00:10:57,760 --> 00:10:58,210 >> COLUMNA: Non 266 00:10:58,210 --> 00:11:00,570 Poderiamos cambiar a optimización, el continuaría traballando. 267 00:11:00,570 --> 00:11:02,240 Podo facelo por vostede, pero - 268 00:11:02,240 --> 00:11:02,930 >> Audiencia: Vou levar a súa palabra para ela. 269 00:11:02,930 --> 00:11:03,690 >> COLUMNA: Yeah. 270 00:11:03,690 --> 00:11:09,690 Se abrir o ficheiro de make ben aquí, Mudei a optimización. 271 00:11:09,690 --> 00:11:11,570 Así pode facer trazo cero, cero. 272 00:11:11,570 --> 00:11:12,820 El aínda vai funcionar. 273 00:11:12,820 --> 00:11:16,839 274 00:11:16,839 --> 00:11:20,280 Outros pensamentos? 275 00:11:20,280 --> 00:11:22,600 >> Vós todos deben traballar, de xeito por que espera que funcione? 276 00:11:22,600 --> 00:11:31,210 277 00:11:31,210 --> 00:11:32,150 Non? 278 00:11:32,150 --> 00:11:33,660 Silencio. 279 00:11:33,660 --> 00:11:34,910 Aceptar. 280 00:11:34,910 --> 00:11:39,271 281 00:11:39,271 --> 00:11:41,650 Teño que esperar sete segundos porque eu fixen unha pregunta. 282 00:11:41,650 --> 00:11:44,190 283 00:11:44,190 --> 00:11:48,660 >> Entón, a cousa legal sobre C, e ten probablemente probado antes - ten 284 00:11:48,660 --> 00:11:50,260 Pode non ter, isto pode a primeira vez. 285 00:11:50,260 --> 00:11:57,030 Pero, como todos saben, cando eu escriba algo en C, que non salva como 286 00:11:57,030 --> 00:11:57,760 esta no ordenador. 287 00:11:57,760 --> 00:11:59,440 É gardados como uns e ceros. 288 00:11:59,440 --> 00:12:02,970 Vai de código C para código de montaxe. 289 00:12:02,970 --> 00:12:09,460 >> Alguén viu código de montaxe antes, código de montaxe da máquina? 290 00:12:09,460 --> 00:12:10,630 Nós imos ollar para nun segundo. 291 00:12:10,630 --> 00:12:12,040 Vai de código C para código de montaxe. 292 00:12:12,040 --> 00:12:13,755 E vostedes saben as etapas de compilación. 293 00:12:13,755 --> 00:12:17,410 Vostede tiña que memorizar que, para un cuestionario, e logo, gravala-lo en proba cero. 294 00:12:17,410 --> 00:12:18,240 A maioría da xente entendeu mal. 295 00:12:18,240 --> 00:12:19,760 Eu creo que vostedes acertou en cheo. 296 00:12:19,760 --> 00:12:22,880 >> Pero vostedes son a mellor parte para probas, por certo. 297 00:12:22,880 --> 00:12:25,210 Que é incrible. 298 00:12:25,210 --> 00:12:25,910 El non vai te machucar. 299 00:12:25,910 --> 00:12:26,900 Non te preocupes. 300 00:12:26,900 --> 00:12:28,800 Pero é moi legal. 301 00:12:28,800 --> 00:12:29,660 Bo traballo. 302 00:12:29,660 --> 00:12:32,870 >> Entón, vai para a linguaxe assembly, e logo vai para uns e ceros. 303 00:12:32,870 --> 00:12:35,500 E os uns e ceros gárdanse na ordenador, e iso é o que salva en 304 00:12:35,500 --> 00:12:38,340 o a.out, ou neste caso, o ficheiro executable. 305 00:12:38,340 --> 00:12:41,040 E o ordenador executa uns e ceros. 306 00:12:41,040 --> 00:12:41,670 Non? 307 00:12:41,670 --> 00:12:43,890 Aprendemos iso antes. 308 00:12:43,890 --> 00:12:47,490 >> Entón, a cousa legal é que esta sen sinal idea, a idea de tipos de Ints non asinado, 309 00:12:47,490 --> 00:12:50,490 et cetera, et cetera, que é aquí en linguaxe C. 310 00:12:50,490 --> 00:12:51,110 Aqueles existir. 311 00:12:51,110 --> 00:12:53,770 Pero os tipos non existen no os uns e ceros. 312 00:12:53,770 --> 00:12:57,110 Tipos nin sequera existe de verdade en o nivel de linguaxe de montaxe. 313 00:12:57,110 --> 00:13:00,075 Entón, iso é algo que existe en C mundo, pero non existe no ordenador 314 00:13:00,075 --> 00:13:01,640 mundo ou o mundo do procesador. 315 00:13:01,640 --> 00:13:04,660 Iso é unha abstracción que o C lingua incluíu, para facer a nosa 316 00:13:04,660 --> 00:13:06,240 vida máis fácil. 317 00:13:06,240 --> 00:13:09,990 >> Así, ao final do día, que pode escribir moitas cousas diferentes aquí, e 318 00:13:09,990 --> 00:13:10,700 non fai a diferenza. 319 00:13:10,700 --> 00:13:12,060 Por que só hai no mundo da C. 320 00:13:12,060 --> 00:13:14,100 Non existe na uns e ceros mundo. 321 00:13:14,100 --> 00:13:17,310 E o noso programa de execución en os uns e ceros mundo. 322 00:13:17,310 --> 00:13:21,170 Entón, a súa mente claramente non explotado aínda. 323 00:13:21,170 --> 00:13:22,740 Pero eu creo que iso é legal. 324 00:13:22,740 --> 00:13:23,530 Si, Jeff. 325 00:13:23,530 --> 00:13:27,298 >> Audiencia: Entón, se en vez de facendo int, fai carbón. 326 00:13:27,298 --> 00:13:27,770 E era - 327 00:13:27,770 --> 00:13:29,311 >> Speak: Imos facelo en un segundo. 328 00:13:29,311 --> 00:13:32,583 >> Audiencia: Por entón comeza unha non asinado que vai de 128 a negativa 329 00:13:32,583 --> 00:13:34,720 127 ou 0 a 255. 330 00:13:34,720 --> 00:13:36,760 >> COLUMNA: Entón char é problemático. 331 00:13:36,760 --> 00:13:39,460 Alguén sabe por que sería de char problemático, e que sería, en realidade, 332 00:13:39,460 --> 00:13:42,930 cambiar as cousas nos máis e zera mundo? 333 00:13:42,930 --> 00:13:44,370 >> Audiencia: Debido ao tamaño do carácter. 334 00:13:44,370 --> 00:13:46,200 >> Speak: Tamaño do char é 1. 335 00:13:46,200 --> 00:13:48,260 Entón non asinado tamén é 4 bytes. 336 00:13:48,260 --> 00:13:50,080 Entón carácter ía romper as cousas. 337 00:13:50,080 --> 00:13:55,660 Pero o que é de 4 bytes que é relacionada cun char? 338 00:13:55,660 --> 00:13:57,820 Ou en que engade un adicional - 339 00:13:57,820 --> 00:13:59,760 pode pór un personaxe tras char. 340 00:13:59,760 --> 00:14:00,200 >> Audiencia: Char estrela. 341 00:14:00,200 --> 00:14:01,220 >> Speak: Char estrela ten 4 bytes. 342 00:14:01,220 --> 00:14:02,490 Entón, imos facer algo que é unha estrela de char. 343 00:14:02,490 --> 00:14:05,470 344 00:14:05,470 --> 00:14:07,240 >> Entón iso probablemente funcionaría, pero estamos vai facer algo, mesmo 345 00:14:07,240 --> 00:14:09,710 máis tolo do que iso. 346 00:14:09,710 --> 00:14:10,960 Na miña opinión, máis tolo. 347 00:14:10,960 --> 00:14:21,060 348 00:14:21,060 --> 00:14:24,570 >> Eu xa escribín unha función que retorna un punteiro, e hai que 349 00:14:24,570 --> 00:14:29,480 punteiro e un valor sen sinal - imos cambiar esta de volta a int entón non sabemos 350 00:14:29,480 --> 00:14:31,250 facer moitos cambios á vez. 351 00:14:31,250 --> 00:14:35,370 E ten unha matriz chamada, un índice para a matriz e retorna o 352 00:14:35,370 --> 00:14:35,850 enderezo. 353 00:14:35,850 --> 00:14:37,470 Vimos eses operadores antes. 354 00:14:37,470 --> 00:14:43,340 Este, o que pensas que isto vai o momento, en cambio, cando executa-lo? 355 00:14:43,340 --> 00:14:48,280 356 00:14:48,280 --> 00:14:49,070 ¿Que pensas que vai facer? 357 00:14:49,070 --> 00:14:50,320 Algún palpite? 358 00:14:50,320 --> 00:14:54,220 359 00:14:54,220 --> 00:14:55,320 >> Audiencia: Segfault. 360 00:14:55,320 --> 00:14:55,600 >> COLUMNA: O que? 361 00:14:55,600 --> 00:14:56,660 Segfault? 362 00:14:56,660 --> 00:14:58,520 Iso é un bo palpite. 363 00:14:58,520 --> 00:14:59,430 Tom di o mesmo. 364 00:14:59,430 --> 00:15:02,240 Calquera outro palpite? 365 00:15:02,240 --> 00:15:05,260 >> Quen pensa que vai facer o mesmo? 366 00:15:05,260 --> 00:15:06,510 Quen pensa que vai segfault? 367 00:15:06,510 --> 00:15:09,350 368 00:15:09,350 --> 00:15:10,230 Fai o mesmo. 369 00:15:10,230 --> 00:15:11,880 Sentímolo. 370 00:15:11,880 --> 00:15:13,860 >> Pero, por suposto, poñemos en 1 e 2. 371 00:15:13,860 --> 00:15:16,470 E estes son os dous válidos, non? 372 00:15:16,470 --> 00:15:19,420 A ver, podemos ir ao o segundo lugar dunha matriz. 373 00:15:19,420 --> 00:15:24,010 Pero o que se fixo b un número negativo? 374 00:15:24,010 --> 00:15:26,380 Isto é probablemente un palpite mellor por algo segmento estándar. 375 00:15:26,380 --> 00:15:30,310 376 00:15:30,310 --> 00:15:32,260 El aínda funciona. 377 00:15:32,260 --> 00:15:35,020 >> OK, iso agora é loucura. 378 00:15:35,020 --> 00:15:38,350 Esta é a función de suma igualmente válidos. 379 00:15:38,350 --> 00:15:40,470 Isto fai exactamente o mesmo como retorno a e b. 380 00:15:40,470 --> 00:15:44,600 Alguén pode explicar por que isto é unha boa Resumindo función, ou por que isto funciona? 381 00:15:44,600 --> 00:15:45,850 O que está pasando aquí? 382 00:15:45,850 --> 00:15:49,360 383 00:15:49,360 --> 00:15:55,750 Por que iso fai exactamente o mesmo cousa como a nosa función suma de idade? 384 00:15:55,750 --> 00:15:56,890 [? Akshar,?] 385 00:15:56,890 --> 00:15:58,155 o que está pasando? 386 00:15:58,155 --> 00:16:01,540 >> Audiencia: Porque cando tes un un que é un enderezo para 387 00:16:01,540 --> 00:16:03,950 a memoria local - 388 00:16:03,950 --> 00:16:07,910 e cando fai o comercial, é vai a este enderezo de memoria. 389 00:16:07,910 --> 00:16:13,610 E cando vai para b, vostede é do tipo pasos que o enderezo de memoria en movemento, 390 00:16:13,610 --> 00:16:15,550 está retornando iso. 391 00:16:15,550 --> 00:16:20,083 Entón é realmente, de feito, a adición dun eb [inaudível]. 392 00:16:20,083 --> 00:16:23,300 393 00:16:23,300 --> 00:16:26,222 Onde están as operacións estándar en que o retorno? 394 00:16:26,222 --> 00:16:27,683 Como, onde os parénteses caer? 395 00:16:27,683 --> 00:16:30,610 É o regreso do enderezo en un antes ou despois [inaudível]? 396 00:16:30,610 --> 00:16:32,380 >> Speak: Vai índice en b - 397 00:16:32,380 --> 00:16:34,430 ou índice nun - e, a continuación, volver o enderezo. 398 00:16:34,430 --> 00:16:38,800 399 00:16:38,800 --> 00:16:41,340 OK, entón se todo o mundo entender o que [? Akshar?] 400 00:16:41,340 --> 00:16:45,830 dixo, e explicou por que isto funciona? 401 00:16:45,830 --> 00:16:49,430 Non, a primeira vez que alguén explicou que para min. 402 00:16:49,430 --> 00:16:51,900 Será que alguén lle gusta unha foto para explicar isto? 403 00:16:51,900 --> 00:16:55,320 Imos tirar unha foto, con sen etiquetas, iso é gran. 404 00:16:55,320 --> 00:16:57,920 Atopou algún. 405 00:16:57,920 --> 00:17:03,390 >> Polo tanto, temos unha matriz que se unha serie de caixas. 406 00:17:03,390 --> 00:17:07,160 407 00:17:07,160 --> 00:17:13,710 O primeiro é un índice 0, o índice de 1, 2, 3, 4, punto, punto, punto. 408 00:17:13,710 --> 00:17:15,609 Unha matriz típica. 409 00:17:15,609 --> 00:17:19,540 E ademais de índices, todos eles teñen enderezos de memoria. 410 00:17:19,540 --> 00:17:30,190 Entón, imos dar a esta dirección de memoria 13, 14, 15, 16, 17, etcétera. 411 00:17:30,190 --> 00:17:32,490 Todo o mundo está aquí ata agora. 412 00:17:32,490 --> 00:17:35,810 >> Así, a é un enderezo. 413 00:17:35,810 --> 00:17:38,850 O nome dunha matriz, un punteiro grávase alí. 414 00:17:38,850 --> 00:17:42,730 É un punteiro, é un lugar de memoria, para o inicio da matriz. 415 00:17:42,730 --> 00:17:45,910 Polo tanto, se ese fose o array, unha sería un valor de 13. 416 00:17:45,910 --> 00:17:49,110 E, por suposto, podemos dar un valor que queremos. 417 00:17:49,110 --> 00:17:52,450 Char protagonizar un, podemos dar un calquera enderezo de memoria que queremos. 418 00:17:52,450 --> 00:17:55,940 Podemos darlle 0, podemos darlle negativo 1 - 1 negativo non existe, 419 00:17:55,940 --> 00:17:58,820 entón isto pode ser problemático, pero viu que aínda funcionaba. 420 00:17:58,820 --> 00:18:03,070 Así, podemos dar un calquera número que queremos, calquera enderezo de memoria que queremos. 421 00:18:03,070 --> 00:18:08,720 >> Entón, int b di: OK, vaia este número de pasos para a matriz. 422 00:18:08,720 --> 00:18:13,150 Polo tanto, se b é igual a 2, e un é igual a 13, estamos na dirección de memoria 13. 423 00:18:13,150 --> 00:18:17,330 E nós imos dúas etapas, e por iso que estamos aquí. 424 00:18:17,330 --> 00:18:21,150 E o comercial significa retorno o enderezo do local. 425 00:18:21,150 --> 00:18:23,990 E o enderezo é, por suposto, 15. 426 00:18:23,990 --> 00:18:28,710 Entón, temos 13 máis 2 ou A máis B, que é 15. 427 00:18:28,710 --> 00:18:29,590 >> A cuestión é, con todo - 428 00:18:29,590 --> 00:18:30,250 Sinto moito. 429 00:18:30,250 --> 00:18:34,324 Será que aclarar as cousas por que isto funciona? 430 00:18:34,324 --> 00:18:36,300 >> Audiencia: Por que ía traballar suceder - 431 00:18:36,300 --> 00:18:38,770 así pode ter unha matriz e ir a un índice negativo? 432 00:18:38,770 --> 00:18:39,050 >> COLUMNA: Certo. 433 00:18:39,050 --> 00:18:40,870 Entón fixemos números negativos, de xeito que é o - 434 00:18:40,870 --> 00:18:42,770 iso ten sentido, con todo, primeiro, [? Avi,?] 435 00:18:42,770 --> 00:18:43,120 para ti? 436 00:18:43,120 --> 00:18:48,840 >> Audiencia: Si, eu son só [Inaudível], pero - 437 00:18:48,840 --> 00:18:50,440 >> COLUMNA: Si, este retornaría 15. 438 00:18:50,440 --> 00:18:53,523 Se unha foi 13, e b é 2, isto ía voltar 15. 439 00:18:53,523 --> 00:18:58,160 >> Audiencia: Entón, a indexación cero non fai facer un problema, non? 440 00:18:58,160 --> 00:19:00,160 Porque está movendo desde 0. 441 00:19:00,160 --> 00:19:00,470 >> COLUMNA: Certo. 442 00:19:00,470 --> 00:19:05,000 Entón está en movemento - por iso, se b é 0, non vai pasar en calquera lugar. 443 00:19:05,000 --> 00:19:06,330 E só regresou a dirección - 444 00:19:06,330 --> 00:19:10,830 se b é 0, que é esencialmente volvendo o enderezo dun arquivo. 445 00:19:10,830 --> 00:19:13,960 Pasando en carácter estrela un e volvendo a enderezo dun só está retornando unha, 446 00:19:13,960 --> 00:19:15,860 esencialmente. 447 00:19:15,860 --> 00:19:18,280 >> OK, a pregunta é por que números negativos funciona? 448 00:19:18,280 --> 00:19:21,670 E iso é o moi legal sobre isto porque este debe segmento estándar. 449 00:19:21,670 --> 00:19:25,110 E sería segfault se fixo algo así. 450 00:19:25,110 --> 00:19:28,050 451 00:19:28,050 --> 00:19:29,300 Digamos, int. 452 00:19:29,300 --> 00:19:34,390 453 00:19:34,390 --> 00:19:39,810 Polo tanto, este código é o mesmo e deben comportarse de forma idéntica. 454 00:19:39,810 --> 00:19:44,550 Esencialmente, x é unha variable de lixo, e por iso debe comportarse de forma idéntica. 455 00:19:44,550 --> 00:19:46,370 >> Imos facer iso - 456 00:19:46,370 --> 00:19:47,620 oops - 457 00:19:47,620 --> 00:19:54,790 458 00:19:54,790 --> 00:19:56,040 en estrela. 459 00:19:56,040 --> 00:19:59,160 460 00:19:59,160 --> 00:20:02,733 OK, xa estamos a recibir erros aquí, porque xa vai estar con rabia 461 00:20:02,733 --> 00:20:04,610 para min, porque xa sabe o que está por vir. 462 00:20:04,610 --> 00:20:07,060 En particular, o segundo. 463 00:20:07,060 --> 00:20:09,800 Enderezo de memoria empilhados asociado cunha variable local. 464 00:20:09,800 --> 00:20:14,220 >> Esencialmente, eu non estou indo a compilar iso, e entón eu vou facer para desfacer 465 00:20:14,220 --> 00:20:14,920 o que nós fixemos. 466 00:20:14,920 --> 00:20:19,130 Senón porque nunca está realmente acceder ao que está na memoria 467 00:20:19,130 --> 00:20:21,930 situación, non vai segfault. 468 00:20:21,930 --> 00:20:26,450 Estamos en realidade nunca mirando para o que está na segunda caixa ou o que está en calquera caixa 469 00:20:26,450 --> 00:20:28,340 desta matriz. 470 00:20:28,340 --> 00:20:30,980 Estamos só dicindo, aquí vai o enderezo da que estamos a buscar e 471 00:20:30,980 --> 00:20:32,410 voltar ese enderezo. 472 00:20:32,410 --> 00:20:35,700 Estamos, de feito, nunca indo ao disposición de mirar para este lugar. 473 00:20:35,700 --> 00:20:39,140 E por que nunca tocar a memoria, non estar en apuros. 474 00:20:39,140 --> 00:20:40,760 Nós non temos un segfault. 475 00:20:40,760 --> 00:20:46,225 >> Se tentásemos, unha vez máis, toque que memoria, toque o que estaba en a ou b - 476 00:20:46,225 --> 00:20:49,940 ou b soporte, e supoñendo un é 0 e - 477 00:20:49,940 --> 00:20:53,040 se unha é 0, mesmo, que sería moi malo, porque nós non podemos ir 478 00:20:53,040 --> 00:20:54,090 abaixo todo o camiño ata alí. 479 00:20:54,090 --> 00:20:58,250 Se A e B foron ambos 0, e intentamos tocar o que estaba alí, entón nós 480 00:20:58,250 --> 00:20:59,110 estar en apuros. 481 00:20:59,110 --> 00:21:02,160 Pero, se non tocamos o que está aí, nós só volver a dirección, é 482 00:21:02,160 --> 00:21:08,300 realmente non vai segfault porque que permite realizar estas operacións. 483 00:21:08,300 --> 00:21:11,920 El só queda con rabia de ti, e queda super con rabia, cando tentar e tocar 484 00:21:11,920 --> 00:21:15,740 a memoria real e devolver o que é en que a localización de memoria. 485 00:21:15,740 --> 00:21:17,690 >> Será que isto ten sentido? 486 00:21:17,690 --> 00:21:24,820 Isto é só unha parte tola de C. Así, temos un máis destes. 487 00:21:24,820 --> 00:21:27,760 488 00:21:27,760 --> 00:21:29,700 >> Quen pensa que isto é legal? 489 00:21:29,700 --> 00:21:30,280 Máis persoas. 490 00:21:30,280 --> 00:21:31,070 Iso é bo. 491 00:21:31,070 --> 00:21:34,860 OK, este é o noso último. 492 00:21:34,860 --> 00:21:37,314 E gustaríame que me dicir se ou non pensas que iso vai 493 00:21:37,314 --> 00:21:38,564 para facer exactamente o mesmo. 494 00:21:38,564 --> 00:22:06,050 495 00:22:06,050 --> 00:22:07,390 >> Teño estes escrito en algún lugar. 496 00:22:07,390 --> 00:22:08,640 Eu non estou lembra-las. 497 00:22:08,640 --> 00:22:33,350 498 00:22:33,350 --> 00:22:42,900 >> A ver, 8, b 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. 499 00:22:42,900 --> 00:22:46,670 Polo tanto, este é un array, agora, non unha función. 500 00:22:46,670 --> 00:22:49,640 E é unha matriz porque temos cadrado corchetes, chaves non rizado. 501 00:22:49,640 --> 00:22:52,360 E é unha matriz de que tipo? 502 00:22:52,360 --> 00:22:55,540 503 00:22:55,540 --> 00:22:56,862 Calquera persoa, eh? 504 00:22:56,862 --> 00:22:57,694 >> Audiencia: Os seus números hexadecimais? 505 00:22:57,694 --> 00:22:59,650 >> Speak: Pero cal é o tipo C? 506 00:22:59,650 --> 00:23:00,710 Todos eles teñen números hexadecimais. 507 00:23:00,710 --> 00:23:01,960 Cal é o tipo C? 508 00:23:01,960 --> 00:23:04,730 509 00:23:04,730 --> 00:23:05,480 Dille. 510 00:23:05,480 --> 00:23:07,350 >> Audiencia: É caracteres non asinados. 511 00:23:07,350 --> 00:23:09,170 >> COLUMNA: Correcto, caracteres non asinados. 512 00:23:09,170 --> 00:23:13,050 E dous números hexadecimais é un byte. 513 00:23:13,050 --> 00:23:18,540 Entón, estas son 1, 2, 3, 4, 5, 6, 7, 8, 9 bytes. 514 00:23:18,540 --> 00:23:21,360 É unha matriz de 9 bytes. 515 00:23:21,360 --> 00:23:25,530 >> OK, probablemente xa sabe a resposta a esta pregunta. 516 00:23:25,530 --> 00:23:29,840 Pero, o que pensas que vai ocorrer cando executo isto? 517 00:23:29,840 --> 00:23:34,110 Digo, unha vez máis, en mysum.c, Estou esperando unha función 518 00:23:34,110 --> 00:23:36,280 que recibe dous números enteiros. 519 00:23:36,280 --> 00:23:40,265 E eu digo que en vez suma é un array de caracteres. 520 00:23:40,265 --> 00:23:42,780 521 00:23:42,780 --> 00:23:48,070 O que vai ocorrer cando Eu corro. / MySum e facer? 522 00:23:48,070 --> 00:23:53,230 >> Ben, en primeiro lugar, a maioría de vostedes probablemente de acordo en que make - Oh non, estou a xogar. 523 00:23:53,230 --> 00:23:54,746 O que eu fixen de malo? 524 00:23:54,746 --> 00:23:55,996 Uh oh. 525 00:23:55,996 --> 00:23:59,220 526 00:23:59,220 --> 00:24:01,160 Iso debe ser claves. 527 00:24:01,160 --> 00:24:02,790 É así que arrincar unha matriz. 528 00:24:02,790 --> 00:24:04,040 My bad. 529 00:24:04,040 --> 00:24:07,530 530 00:24:07,530 --> 00:24:11,670 >> Entón, nós xa vimos antes que tipo son unha abstracción de nivel C, e non un 531 00:24:11,670 --> 00:24:12,610 abstracción nivel do equipo. 532 00:24:12,610 --> 00:24:16,360 Así, a maioría de vostedes probablemente esperaba que facer, ou no caso de que ía facer. 533 00:24:16,360 --> 00:24:18,680 Pero o que, cando eu corro. / MySum? 534 00:24:18,680 --> 00:24:19,930 O que vai ocorrer? 535 00:24:19,930 --> 00:24:21,790 536 00:24:21,790 --> 00:24:23,422 Algún palpite? 537 00:24:23,422 --> 00:24:25,270 >> Audiencia: Vai imprimir unha palabra. 538 00:24:25,270 --> 00:24:26,310 >> Speak: Vai imprimir unha palabra. 539 00:24:26,310 --> 00:24:29,335 Que palabra? 540 00:24:29,335 --> 00:24:32,200 >> Audiencia: [inaudível]. 541 00:24:32,200 --> 00:24:33,240 >> Speak: Calquera outras suposicións? 542 00:24:33,240 --> 00:24:34,000 OK, imprimir unha frase. 543 00:24:34,000 --> 00:24:35,130 Pode que calquera frase. 544 00:24:35,130 --> 00:24:36,240 Este será o seu lado. 545 00:24:36,240 --> 00:24:38,480 Calquera persoa que ten un palpite diferente? 546 00:24:38,480 --> 00:24:39,730 Anna, que o seu palpite? 547 00:24:39,730 --> 00:24:42,675 548 00:24:42,675 --> 00:24:44,615 >> Audiencia: Vai imprimir - 549 00:24:44,615 --> 00:24:47,525 550 00:24:47,525 --> 00:24:49,480 dúas letras, ou [inaudível] unha letra. 551 00:24:49,480 --> 00:24:51,460 >> COLUMNA: Unha letra. 552 00:24:51,460 --> 00:24:53,260 >> Audiencia: Podo contar como moitos [inaudível]? 553 00:24:53,260 --> 00:24:55,426 >> Speak: Nine. 554 00:24:55,426 --> 00:24:56,640 Ben, eu estou indo a executalo. 555 00:24:56,640 --> 00:24:58,650 El fai exactamente o mesmo. 556 00:24:58,650 --> 00:25:00,190 El engade dous números xuntos. 557 00:25:00,190 --> 00:25:02,740 Ben, imos pasar os dous argumentos. 558 00:25:02,740 --> 00:25:03,710 Non leva argumentos. 559 00:25:03,710 --> 00:25:06,080 Entón, eu non sei onde podería posiblemente, obter estes argumentos. 560 00:25:06,080 --> 00:25:07,710 Pero imos pasar a 100 e 0. 561 00:25:07,710 --> 00:25:09,200 E engade 100 e 0. 562 00:25:09,200 --> 00:25:10,220 Iso é loucura. 563 00:25:10,220 --> 00:25:12,280 Creo que si. 564 00:25:12,280 --> 00:25:14,480 >> Negativo 4, que funciona tamén. 565 00:25:14,480 --> 00:25:15,650 Podes facer o que quere. 566 00:25:15,650 --> 00:25:17,920 Esta é unha función suma igualmente válidos. 567 00:25:17,920 --> 00:25:19,640 Esta é unha función suma. 568 00:25:19,640 --> 00:25:21,510 Pero, non, está dicindo que é unha matriz de bytes. 569 00:25:21,510 --> 00:25:23,570 Entón o que está pasando aquí? 570 00:25:23,570 --> 00:25:27,240 >> Entón, unha vez máis, imos voltar a esa idea que dixemos ao principio. 571 00:25:27,240 --> 00:25:32,050 Vai de código de nivel C, para montaxe linguaxe, a uns e ceros. 572 00:25:32,050 --> 00:25:33,050 Este é hexadecimal. 573 00:25:33,050 --> 00:25:35,780 Pero iso é realmente só unha chea de ceros e uns. 574 00:25:35,780 --> 00:25:39,230 Este é de 72 ceros e uns, non? 575 00:25:39,230 --> 00:25:40,550 72 ceros e uns. 576 00:25:40,550 --> 00:25:42,160 9 bytes. 577 00:25:42,160 --> 00:25:43,740 Cada byte ten 8 bits. 578 00:25:43,740 --> 00:25:44,760 Cada bit é un un ou un cero. 579 00:25:44,760 --> 00:25:45,920 Entón, queridos ou 72 ceros. 580 00:25:45,920 --> 00:25:48,780 Acaba de lles escrito así - en vez de escribir-lo fóra como unha morea de 581 00:25:48,780 --> 00:25:49,730 uns e ceros. 582 00:25:49,730 --> 00:25:53,560 >> Pero isto vai pasar de nivel C linguaxe, a montaxe 583 00:25:53,560 --> 00:25:54,620 linguaxe, código. 584 00:25:54,620 --> 00:25:59,020 E iso vai imprimir o código, nalgún lugar, eses 72 ceros e uns 585 00:25:59,020 --> 00:26:00,910 que escribín aquí. 586 00:26:00,910 --> 00:26:03,610 Entón, en algún lugar en que - 587 00:26:03,610 --> 00:26:04,850 imos por aquí - 588 00:26:04,850 --> 00:26:11,240 nalgún lugar MySum, o programa, non son estes 72 ceros e uns que eu 589 00:26:11,240 --> 00:26:14,930 escrito e dixo que para escribir. 590 00:26:14,930 --> 00:26:19,331 >> Agora, un palpite ao que os 72 uns e ceros significa? 591 00:26:19,331 --> 00:26:21,240 >> Audiencia: Probablemente o mesmo cousa como volver a máis b. 592 00:26:21,240 --> 00:26:22,890 >> Speak: Probablemente o mesmo cousa como volver a máis b. 593 00:26:22,890 --> 00:26:23,730 Imos comprobar iso. 594 00:26:23,730 --> 00:26:25,210 Imos descubrir como eu fixen iso. 595 00:26:25,210 --> 00:26:31,840 >> Entón, se volver aquí, eu che digo para realizar esta orde, objdump-S 596 00:26:31,840 --> 00:26:34,290 sumfunction.o. 597 00:26:34,290 --> 00:26:36,230 Imos executalo. objdump - 598 00:26:36,230 --> 00:26:37,990 obj, botan. 599 00:26:37,990 --> 00:26:39,840 Basicamente pode darme todo o que quero ver. 600 00:26:39,840 --> 00:26:40,840 Pode me dar a linguaxe assembly. 601 00:26:40,840 --> 00:26:42,730 Pode me dar os uns e ceros. 602 00:26:42,730 --> 00:26:43,840 Ten unha tonelada de bandeiras. 603 00:26:43,840 --> 00:26:45,860 Iso é o que nós imos usar de momento. 604 00:26:45,860 --> 00:26:46,980 Dot - 605 00:26:46,980 --> 00:26:48,810 como se pode ver nos diapositivas - 606 00:26:48,810 --> 00:26:53,840 capital de trazo S di: intersperse, código fonte - 607 00:26:53,840 --> 00:26:58,410 esta liña é de C - coa montaxe código e cos uns e ceros. 608 00:26:58,410 --> 00:27:00,350 E nós estamos indo a executar lo en sumfunction.o. 609 00:27:00,350 --> 00:27:01,410 Que vai ser máis fácil de ver. 610 00:27:01,410 --> 00:27:02,670 Again - hmm? 611 00:27:02,670 --> 00:27:04,700 >> Audiencia: Inseriu mal. 612 00:27:04,700 --> 00:27:05,930 >> COLUMNA: Pero eu estou indo realmente para limpa-la por un segundo. 613 00:27:05,930 --> 00:27:09,160 Vou primeiro para abrir só sumfuntion.o. 614 00:27:09,160 --> 00:27:11,170 >> Audiencia: Vostede soletrou mal na primeira vez. 615 00:27:11,170 --> 00:27:12,420 >> Speak: Classic. 616 00:27:12,420 --> 00:27:14,790 617 00:27:14,790 --> 00:27:15,480 Suma - 618 00:27:15,480 --> 00:27:16,680 que é unha palabra difícil, con todo. 619 00:27:16,680 --> 00:27:19,050 Vostede quedaría sorprendido. 620 00:27:19,050 --> 00:27:21,560 OK, entón iso é sumfunction.o. 621 00:27:21,560 --> 00:27:24,494 622 00:27:24,494 --> 00:27:26,220 Eu non podería mesmo dicir-lle. 623 00:27:26,220 --> 00:27:30,250 Hai unha morea de ceros, claramente moi de ceros, e non hai outro 624 00:27:30,250 --> 00:27:31,930 cousas que non é ceros. 625 00:27:31,930 --> 00:27:33,220 Pero a maioría ceros. 626 00:27:33,220 --> 00:27:35,120 Parece que hai algúns máis. 627 00:27:35,120 --> 00:27:36,810 Entón, claramente, iso é difícil de ler. 628 00:27:36,810 --> 00:27:39,320 Esa é a linguaxe binaria. 629 00:27:39,320 --> 00:27:40,710 >> Imos agora abrilo - 630 00:27:40,710 --> 00:27:50,190 631 00:27:50,190 --> 00:27:52,350 o que? 632 00:27:52,350 --> 00:27:53,600 O que estou facendo de malo? 633 00:27:53,600 --> 00:27:56,955 634 00:27:56,955 --> 00:27:58,434 Eu deletrear-lo correctamente? 635 00:27:58,434 --> 00:28:09,865 636 00:28:09,865 --> 00:28:11,120 OK, iso é raro. 637 00:28:11,120 --> 00:28:37,560 638 00:28:37,560 --> 00:28:40,158 Teño un segundo para descubrir o que eu estou facendo mal. 639 00:28:40,158 --> 00:28:46,030 640 00:28:46,030 --> 00:28:49,310 Isto é un erro. 641 00:28:49,310 --> 00:28:50,560 Isto é raro. 642 00:28:50,560 --> 00:28:58,080 643 00:28:58,080 --> 00:29:01,800 Ah, é por iso. 644 00:29:01,800 --> 00:29:09,880 >> Vou volver para o noso inicio un, para que poidamos mirar o 645 00:29:09,880 --> 00:29:10,560 código obxecto desta. 646 00:29:10,560 --> 00:29:13,390 Porque non é realmente vai ser calquera cousa, cando acabamos de poñer o 647 00:29:13,390 --> 00:29:14,640 uns e ceros Pol 648 00:29:14,640 --> 00:29:29,000 649 00:29:29,000 --> 00:29:30,200 Alí imos nós. 650 00:29:30,200 --> 00:29:32,425 OK, entón todo o mundo pode ver iso. 651 00:29:32,425 --> 00:29:38,130 Esta función, como dixen, pór para fóra as liñas C - 652 00:29:38,130 --> 00:29:39,060 liñas de código fonte - 653 00:29:39,060 --> 00:29:41,000 con algunhas instrucións de montaxe. 654 00:29:41,000 --> 00:29:42,760 >> Aquí é a nosa liña de código fonte. 655 00:29:42,760 --> 00:29:44,910 Aquí está un, aquí é outra. 656 00:29:44,910 --> 00:29:46,540 Aquí é a instrución de montaxe. 657 00:29:46,540 --> 00:29:47,820 Iso é o que se parecen. 658 00:29:47,820 --> 00:29:49,010 Instrucións de montaxe - 659 00:29:49,010 --> 00:29:51,530 podes aprender máis destes se tomar outras clases de CS, pero son 660 00:29:51,530 --> 00:29:53,500 xeralmente unha instrución. 661 00:29:53,500 --> 00:29:57,940 E, a continuación, unha fonte e un destino. 662 00:29:57,940 --> 00:30:02,740 >> E entón aquí é o código binario que corresponde a ese conxunto 663 00:30:02,740 --> 00:30:04,940 instrución. 664 00:30:04,940 --> 00:30:09,760 Entón, como podes ver, esta función suma, ao final do día, é de tres 665 00:30:09,760 --> 00:30:10,950 instrucións de montaxe. 666 00:30:10,950 --> 00:30:12,870 Só tres. 667 00:30:12,870 --> 00:30:14,180 Un mov - 668 00:30:14,180 --> 00:30:16,740 este m-o-v representa un Move. 669 00:30:16,740 --> 00:30:17,780 Agregar stands para Engadir. 670 00:30:17,780 --> 00:30:20,440 E r-e-t significa Return. 671 00:30:20,440 --> 00:30:22,540 Entón, un mov, un add, un retorno. 672 00:30:22,540 --> 00:30:27,970 E estes, por aquí, son os ceros e aquelas que corresponden a ese código. 673 00:30:27,970 --> 00:30:31,100 >> Polo tanto, aqueles ceros e uns, se sabe quen, pode simplemente poñer 674 00:30:31,100 --> 00:30:32,140 aqueles en liña recta dentro 675 00:30:32,140 --> 00:30:34,130 E entón el vai facer o mesmo. 676 00:30:34,130 --> 00:30:37,260 Porque, ao final do día, todos está executando unha longa serie de 677 00:30:37,260 --> 00:30:38,480 ceros e uns. 678 00:30:38,480 --> 00:30:40,700 E iso é o que o seu código é realmente. 679 00:30:40,700 --> 00:30:41,770 >> E a razón - 680 00:30:41,770 --> 00:30:43,680 imos ollar a unha cousa. 681 00:30:43,680 --> 00:30:45,440 Será que eu teño o makefile aberta? 682 00:30:45,440 --> 00:30:48,510 Entón, se nós volvemos para correr cero, cero ata aquí - 683 00:30:48,510 --> 00:30:52,220 684 00:30:52,220 --> 00:30:57,300 Sentímolo, o capital o, de capital o cero, non cero, cero. 685 00:30:57,300 --> 00:31:01,810 E nós fixemos, sería aínda funcionan do mesmo xeito. 686 00:31:01,810 --> 00:31:05,420 Pero agora entender que hai un moito máis instrucións de montaxe. 687 00:31:05,420 --> 00:31:09,090 Isto porque, unha vez máis, preguntei ao compilador non fai ningunha optimización. 688 00:31:09,090 --> 00:31:12,800 >> Entón, eu aínda podería ter todo isto ceros e uns, e xoga-los en, 689 00:31:12,800 --> 00:31:13,390 e que ía funcionar. 690 00:31:13,390 --> 00:31:15,850 Acaba de facer as optimizacións, porque é un pouco máis fácil, entón, 691 00:31:15,850 --> 00:31:17,310 para escribir esta matriz. 692 00:31:17,310 --> 00:31:19,730 Pero iso ía funcionar tan ben. 693 00:31:19,730 --> 00:31:24,460 >> OK, imos facer unha cousa final, porque eu creo que é a parte máis legal. 694 00:31:24,460 --> 00:31:27,410 Aínda que todo o mundo está claramente xa soprado e sen palabras. 695 00:31:27,410 --> 00:31:30,520 696 00:31:30,520 --> 00:31:31,670 As nosas mentes están queimados. 697 00:31:31,670 --> 00:31:32,920 [Inaudível] 698 00:31:32,920 --> 00:31:47,580 699 00:31:47,580 --> 00:31:51,520 >> Polo tanto, estes son dunha clase CS diferente, que é super interesante, 700 00:31:51,520 --> 00:31:52,970 que tomei - 701 00:31:52,970 --> 00:31:54,140 CS61. 702 00:31:54,140 --> 00:31:55,910 Eu altamente incentivos-lo a levala. 703 00:31:55,910 --> 00:31:58,990 Pero a parte legal sobre este feito, que cousas son só ceros e uns, 704 00:31:58,990 --> 00:32:01,270 son de que todo está ceros e uns. 705 00:32:01,270 --> 00:32:05,330 >> Así, pode ter un arquivo que ten o ceros correctas e que quere 706 00:32:05,330 --> 00:32:10,390 nalgún lugar nel, e usar esa sección de ceros e uns en función suma. 707 00:32:10,390 --> 00:32:11,480 >> O que quero dicir con iso? 708 00:32:11,480 --> 00:32:15,755 Quere dicir que pode ter un arquivo de imaxe que ten a serie correcta de ceros e 709 00:32:15,755 --> 00:32:17,120 queridos, que imprimen algo a unha imaxe. 710 00:32:17,120 --> 00:32:20,070 E un programa pode interpretar é unha imaxe, pero pode interpretala lo, se 711 00:32:20,070 --> 00:32:22,040 quere, como unha función suma. 712 00:32:22,040 --> 00:32:27,010 >> Entón, se nós quería abrir, por exemplo, esta foto. 713 00:32:27,010 --> 00:32:37,440 Imos, Ola Kitty. 714 00:32:37,440 --> 00:32:38,810 Imaxe algo marabilloso. 715 00:32:38,810 --> 00:32:42,260 Aquí hai esa secuencia de ceros e uns. 716 00:32:42,260 --> 00:32:45,500 Eses 72 ceros e uns Existen nesta imaxe. 717 00:32:45,500 --> 00:32:47,695 >> Entón, o que podo facer, entón, é escribir - 718 00:32:47,695 --> 00:32:50,510 719 00:32:50,510 --> 00:32:51,760 Teño que lembrar onde están. 720 00:32:51,760 --> 00:32:54,550 721 00:32:54,550 --> 00:32:55,720 Vou atopar isto en un segundo. 722 00:32:55,720 --> 00:32:57,840 Pero o que facemos - 723 00:32:57,840 --> 00:32:59,440 deixe-me saber onde están. 724 00:32:59,440 --> 00:33:00,020 Un segundo. 725 00:33:00,020 --> 00:33:01,270 Imos facer - 726 00:33:01,270 --> 00:33:05,800 727 00:33:05,800 --> 00:33:07,240 >> Audiencia: [inaudível]. 728 00:33:07,240 --> 00:33:08,490 >> Speak: Grazas. 729 00:33:08,490 --> 00:33:24,240 730 00:33:24,240 --> 00:33:28,740 Entón, se nós executarmos este programa, que en vez le un arquivo, el vai 731 00:33:28,740 --> 00:33:33,160 a este índice no ficheiro. 732 00:33:33,160 --> 00:33:35,500 E entón, unha vez máis, así como MySum, toma dous números. 733 00:33:35,500 --> 00:33:41,410 Podemos engadir números exactamente o mesmo que estabamos facendo antes, que vai a 734 00:33:41,410 --> 00:33:44,850 mostrar como o feito de que, ao final do día, todas estas cousas son 735 00:33:44,850 --> 00:33:45,350 ceros e uns. 736 00:33:45,350 --> 00:33:48,170 E é exactamente como escolle interpretala los. 737 00:33:48,170 --> 00:33:50,770 >> E se realmente ollar nesta imaxe - 738 00:33:50,770 --> 00:33:52,930 imos ampliar un pouco. 739 00:33:52,930 --> 00:33:53,720 Todos poden ver iso? 740 00:33:53,720 --> 00:33:57,570 Notará aquí, hai algunha mancha estraña. 741 00:33:57,570 --> 00:34:00,130 742 00:34:00,130 --> 00:34:02,290 Imos - esta é a imaxe orixinal. 743 00:34:02,290 --> 00:34:04,540 Notará aquí non hai ningunha Mancha. 744 00:34:04,540 --> 00:34:08,420 Este é o código para a función suma, é que pouco Mancha alí mesmo. 745 00:34:08,420 --> 00:34:13,449 >> E, de feito, unha vez máis, se aprender máis sobre iso, notarás que este 746 00:34:13,449 --> 00:34:18,270 Ola Kitty, que ten mesmo unha maior Mancha, ten un código que pode levar máis dun 747 00:34:18,270 --> 00:34:21,800 ordenador se non está protexido apropiadamente. 748 00:34:21,800 --> 00:34:23,920 Entón pode realmente realizar este. 749 00:34:23,920 --> 00:34:25,380 Eu non estou indo a executa-lo agora. 750 00:34:25,380 --> 00:34:30,600 Pero pode executar este Ola Imaxe Kitty, e pode 751 00:34:30,600 --> 00:34:32,429 asumir o seu ordenador. 752 00:34:32,429 --> 00:34:35,159 >> Entón, iso é todo para o demo. 753 00:34:35,159 --> 00:34:38,560 Alguén ten algunha dúbida, comentarios, preocupacións? 754 00:34:38,560 --> 00:34:39,515 Eu creo que este material é fascinante. 755 00:34:39,515 --> 00:34:41,500 El me inspirou a aprender máis. 756 00:34:41,500 --> 00:34:44,980 Recomendo, se vostede está interesado en todo o CS, fale comigo. 757 00:34:44,980 --> 00:34:50,250 Aínda que eu son un Estudos Sociais Concentrador, eu son un CS, secundario, de xeito 758 00:34:50,250 --> 00:34:52,340 Eu aínda sei un pouco. 759 00:34:52,340 --> 00:34:53,810 Pero eu certamente sabe o que clases que ten que tomar. 760 00:34:53,810 --> 00:34:57,940 Eu creo que é todo moi interesante, e animou-vos, seguramente, a 761 00:34:57,940 --> 00:35:00,330 aprender máis, se está interesado. 762 00:35:00,330 --> 00:35:02,090 >> OK, eu teño unha cousa final. 763 00:35:02,090 --> 00:35:05,530 764 00:35:05,530 --> 00:35:05,870 Sentímolo. 765 00:35:05,870 --> 00:35:06,460 Algunha pregunta? 766 00:35:06,460 --> 00:35:10,010 Non parei de esperar se alguén tiña algunha dúbida sobre iso. 767 00:35:10,010 --> 00:35:13,220 768 00:35:13,220 --> 00:35:16,900 >> Ten alguén será un concentrador de CS? 769 00:35:16,900 --> 00:35:18,580 Ou pensar niso? 770 00:35:18,580 --> 00:35:20,730 Un, dous, tres, catro. 771 00:35:20,730 --> 00:35:21,620 One - só un. 772 00:35:21,620 --> 00:35:24,680 Anna é a única man que é incrementar con autoridade. 773 00:35:24,680 --> 00:35:27,640 774 00:35:27,640 --> 00:35:29,390 OK, iso é legal. 775 00:35:29,390 --> 00:35:30,110 Assam, o que vai facer? 776 00:35:30,110 --> 00:35:33,220 >> Audiencia: [inaudível]. 777 00:35:33,220 --> 00:35:33,910 >> Speak: Constantino? 778 00:35:33,910 --> 00:35:34,990 >> Audiencia: Física. 779 00:35:34,990 --> 00:35:36,720 >> COLUMNA: Guau, iso foi rápido. 780 00:35:36,720 --> 00:35:40,770 Vostede tivo unha experiencia malo no CS50? 781 00:35:40,770 --> 00:35:42,015 [Inaudível], o que vai facer? 782 00:35:42,015 --> 00:35:42,980 >> Audiencia: Eu non teño idea. 783 00:35:42,980 --> 00:35:43,924 >> Speak: Curt? 784 00:35:43,924 --> 00:35:45,900 >> Audiencia: Econ ou CS. 785 00:35:45,900 --> 00:35:46,910 >> Speak: Econ ou CS. 786 00:35:46,910 --> 00:35:47,840 Tom? 787 00:35:47,840 --> 00:35:48,385 >> Audiencia: Eu estou facendo Stat. 788 00:35:48,385 --> 00:35:48,950 >> COLUMNA: Stat? 789 00:35:48,950 --> 00:35:50,100 Aceptar. 790 00:35:50,100 --> 00:35:51,000 O que é? 791 00:35:51,000 --> 00:35:51,310 >> Audiencia: Me? 792 00:35:51,310 --> 00:35:51,750 >> COLUMNA: Yeah. 793 00:35:51,750 --> 00:35:52,190 >> Audiencia: Stat. 794 00:35:52,190 --> 00:35:52,520 >> Speak: Stat. 795 00:35:52,520 --> 00:35:53,500 Oh, alí vai. 796 00:35:53,500 --> 00:35:55,200 Tom, falar con Alden. 797 00:35:55,200 --> 00:35:56,932 Emily, que é vostede? 798 00:35:56,932 --> 00:35:57,396 >> Audiencia: Biomédica - 799 00:35:57,396 --> 00:36:00,178 >> COLUMNA: Está nesta sección? 800 00:36:00,178 --> 00:36:03,040 >> Audiencia: Non 801 00:36:03,040 --> 00:36:04,530 >> Speak: OK, iso é Emily. 802 00:36:04,530 --> 00:36:05,670 Ela é a miña amiga. 803 00:36:05,670 --> 00:36:10,080 Claramente non é tan bo dun amigo, porque me dá un tempo difícil. 804 00:36:10,080 --> 00:36:13,223 Podería ser máis agradable para min diante de todos, o meu alumno - 805 00:36:13,223 --> 00:36:14,580 >> Audiencia: Eu estou facendo o seu guía Q. 806 00:36:14,580 --> 00:36:14,870 >> COLUMNA: Serio? 807 00:36:14,870 --> 00:36:15,510 Uh oh. 808 00:36:15,510 --> 00:36:17,224 OK, é incrible. 809 00:36:17,224 --> 00:36:19,380 Quérote moito. 810 00:36:19,380 --> 00:36:20,600 Oh boy. 811 00:36:20,600 --> 00:36:28,320 >> En fin, eu, onte á noite, como todo - 812 00:36:28,320 --> 00:36:32,220 Eu estou seguro que todo o mundo parece realmente tensión agora. 813 00:36:32,220 --> 00:36:35,970 Non sei, son calouros - son Vostedes sentindo a tensión? 814 00:36:35,970 --> 00:36:36,855 Estou me sentindo a tensión. 815 00:36:36,855 --> 00:36:37,980 Era coma se, vai a casa de Acción de Grazas. 816 00:36:37,980 --> 00:36:40,660 Vostede é como eu vou facer todas estas cousas. 817 00:36:40,660 --> 00:36:41,530 >> Audiencia: É tan diferente. 818 00:36:41,530 --> 00:36:42,560 >> Speak: Si, e volver. 819 00:36:42,560 --> 00:36:45,290 Jeff, non se sente así? 820 00:36:45,290 --> 00:36:46,610 >> Audiencia: Eu só penso Eu faría un pouco. 821 00:36:46,610 --> 00:36:48,660 >> Speak: OK, xenial. 822 00:36:48,660 --> 00:36:51,650 Así que volver, e eu non teño fixo nada. 823 00:36:51,650 --> 00:36:53,260 E é todo súper-estresante. 824 00:36:53,260 --> 00:36:55,640 E eu estou preocupado, xenuinamente interesado, sobre a existencia ou non estou 825 00:36:55,640 --> 00:36:57,380 vai rematar todo o que eu teño. 826 00:36:57,380 --> 00:37:01,750 Pero onte á noite, eu non estaba a tensión, Eu estaba un pouco triste. 827 00:37:01,750 --> 00:37:04,520 Entón, eu escribín no meu diario sobre o que eu estaba triste. 828 00:37:04,520 --> 00:37:08,020 E eu estaba triste con esta sección nesta clase a chegar ao final. 829 00:37:08,020 --> 00:37:11,100 >> Entón, eu só ía ler para vós un pequeno fragmento do meu diario, 830 00:37:11,100 --> 00:37:12,950 a partir de onte á noite. 831 00:37:12,950 --> 00:37:17,400 Podo incorporarse algúns servilletas, algúns tecidos de Tom? 832 00:37:17,400 --> 00:37:18,040 Non, eu vou chorar. 833 00:37:18,040 --> 00:37:19,720 Non choro. 834 00:37:19,720 --> 00:37:22,030 Non que non pode chorar, Eu só non chorar. 835 00:37:22,030 --> 00:37:24,040 Eu non sei se a miña bágoa glándulas funcionou - dutos lacrimais. 836 00:37:24,040 --> 00:37:25,630 Eu non chorei en un longo tempo. 837 00:37:25,630 --> 00:37:26,510 >> Audiencia: [inaudível]. 838 00:37:26,510 --> 00:37:28,920 >> Speak: OK, grazas. 839 00:37:28,920 --> 00:37:30,070 OK, hai un pequeno prólogo - 840 00:37:30,070 --> 00:37:32,480 hai algunhas outras partes do meu diario entrada, porque eu intento cada revista 841 00:37:32,480 --> 00:37:33,600 noite antes de chegar á cama. 842 00:37:33,600 --> 00:37:34,900 Recomendo journaling. 843 00:37:34,900 --> 00:37:38,600 El axuda a procesar as cousas, e tamén ser moi grata do seu día. 844 00:37:38,600 --> 00:37:43,063 E iso fai que sexa moito máis doado ollar de volta no seu día e entender que 845 00:37:43,063 --> 00:37:44,240 había moita cousa boa cousas que aconteceron. 846 00:37:44,240 --> 00:37:47,240 Aínda que se sinta realmente a tensión á noite ou moi triste, ou 847 00:37:47,240 --> 00:37:49,022 realmente triste ou canso. 848 00:37:49,022 --> 00:37:50,272 >> Oh, meu Deus. 849 00:37:50,272 --> 00:37:52,546 850 00:37:52,546 --> 00:37:54,400 Eu non sei se está escrito que ben, porque eu non resolve-la. 851 00:37:54,400 --> 00:37:55,780 Pero nós imos lelo. 852 00:37:55,780 --> 00:37:59,950 Non adoito ler o meu revista, obviamente. 853 00:37:59,950 --> 00:38:03,720 >> "Mañá, eu vou ensinar o meu último Sección CS50 do ano. 854 00:38:03,720 --> 00:38:05,860 É unha tolemia como o tempo voa rápido. 855 00:38:05,860 --> 00:38:09,900 Con todo, estou impresionado co quão diferente miña experiencia no ensino este ano foi 856 00:38:09,900 --> 00:38:11,365 que cando eu estaba no segundo ano. 857 00:38:11,365 --> 00:38:14,120 Para comezar, eu sempre coñecer o material mellor. 858 00:38:14,120 --> 00:38:16,820 Pero non diga a miña primeira cohorte de alumnos que. 859 00:38:16,820 --> 00:38:20,030 Máis importante, con todo, entender que a alegría que vén de pé 860 00:38:20,030 --> 00:38:23,160 diante dunha sala de o que comeza como estraños, mais acaba como, en 861 00:38:23,160 --> 00:38:27,150 menos, amigos de Facebook, é non un acaso do primeiro ano. 862 00:38:27,150 --> 00:38:29,970 Pola contra, é saber que, en dalgún xeito, está axudando 863 00:38:29,970 --> 00:38:32,980 talentosa, pensativo, agradable, e persoas apaixonadas aprender un pouco máis 864 00:38:32,980 --> 00:38:34,750 sobre ciencia da computación. 865 00:38:34,750 --> 00:38:37,480 >> Está cambiando que lámpada só unha bits no seu soquete, de xeito que sexa capaz 866 00:38:37,480 --> 00:38:42,120 a brillar máis forte do que, ou eles, podería ter imaxinado no inicio do semestre. 867 00:38:42,120 --> 00:38:45,390 Está axudando transformar as carrancas de cabeza para abaixo e facer preguntas que 868 00:38:45,390 --> 00:38:49,240 dar apoio, pero aínda permitir os alumnos a se erguer pola súa conta. 869 00:38:49,240 --> 00:38:52,190 >> Certamente non é unha esaxeración dicir que esta sección é a miña favorita 870 00:38:52,190 --> 00:38:53,190 parte da semana. 871 00:38:53,190 --> 00:38:57,930 Ou mesmo que eu dubido en dicir, iso é todos, en 5:30 cada semana, sabendo 872 00:38:57,930 --> 00:39:00,640 que vai ser un camiño moi longo ata que nos atopemos de novo. 873 00:39:00,640 --> 00:39:02,740 >> Con todo, eu son incrible grata a todos os que me deu esta 874 00:39:02,740 --> 00:39:05,010 oportunidade de dar a volta ós outros. 875 00:39:05,010 --> 00:39:07,340 Para David, pola súa paciencia e confianza. 876 00:39:07,340 --> 00:39:11,040 Para o equipo de rodaxe e produción, a facéndome mirar un pouco respectable. 877 00:39:11,040 --> 00:39:15,380 E, máis importante, aos meus alumnos, sen os cales non tería ningunha razón para 878 00:39:15,380 --> 00:39:17,890 pasar 10 horas tentando descubrir o mellor xeito de chamar a punteiros, ou establecer un 879 00:39:17,890 --> 00:39:20,330 mesa de golfiños, vía JavaScript. 880 00:39:20,330 --> 00:39:22,620 Como sempre, foi unha bendición. " 881 00:39:22,620 --> 00:39:25,420 >> Entón, con iso, gracias a vós. 882 00:39:25,420 --> 00:39:29,000 Vou ver todos vostedes na feira CS50, e a maratón hacker, se é alí. 883 00:39:29,000 --> 00:39:32,020 E se ten dúbidas, eu vou ir arredor ata que non hai máis. 884 00:39:32,020 --> 00:39:33,760 Pero gracias a vós por un ano marabilloso. 885 00:39:33,760 --> 00:39:37,290 >> [Aplausos] 886 00:39:37,290 --> 00:39:38,540 >> COLUMNA: Podería chorar. 887 00:39:38,540 --> 00:39:40,800