1 00:00:00,000 --> 00:00:01,500 >> [MÚSICA DE XOGO] 2 00:00:01,500 --> 00:00:11,000 3 00:00:11,000 --> 00:00:16,110 >> DAVID Malan: Todo ben esta é CS50 e este é o final dunha semana. 4 00:00:16,110 --> 00:00:20,760 Entón, gustaríame presentar a miña ex orientando, Andel Duff, que non só fai 5 00:00:20,760 --> 00:00:25,460 iPhone 5 está, así como este púlpito, el tamén fai coches. 6 00:00:25,460 --> 00:00:27,927 7 00:00:27,927 --> 00:00:29,510 ANSEL DUFF: Como vai, persoal? 8 00:00:29,510 --> 00:00:31,980 Eu só quero dicirlle algo pouco sobre Formula SAE, da cal eu 9 00:00:31,980 --> 00:00:32,604 son o capitán. 10 00:00:32,604 --> 00:00:33,437 É un equipo do MIT. 11 00:00:33,437 --> 00:00:35,520 Eu só quero che dicir vostedes un pouco sobre iso 12 00:00:35,520 --> 00:00:37,520 e esperamos xerar algún interese. 13 00:00:37,520 --> 00:00:41,590 >> Entón deixe-me pasar por un algunhas cousas sobre o noso equipo. 14 00:00:41,590 --> 00:00:43,640 Entón, nós estamos totalmente funcionamento do estudante, na que todos 15 00:00:43,640 --> 00:00:47,300 do deseño membros, simular proba, e fabricante dun subsistema 16 00:00:47,300 --> 00:00:48,090 do coche. 17 00:00:48,090 --> 00:00:51,240 Temos a nosa propia taller mecánico e garaxes, e N52-- ou moito, 18 00:00:51,240 --> 00:00:54,140 N51-- que é o mesmo edificio como o Museo da Ciencia MIT. 19 00:00:54,140 --> 00:00:55,990 E nós somos o pobo que dirixir o coche. 20 00:00:55,990 --> 00:00:58,340 Hai unha competición nacional ó final do verán, 21 00:00:58,340 --> 00:01:01,215 e despois hai menor tiroteo competicións ao longo do ano. 22 00:01:01,215 --> 00:01:04,400 E, entón, facer o adestramento de condutor días para recibir novos membros familiarizado. 23 00:01:04,400 --> 00:01:08,280 >> Os nosos días son de construción en Sábados once horas - oito horas. 24 00:01:08,280 --> 00:01:11,060 O xantar ea cea están coidando de, a partir do Bertucci e Beantown 25 00:01:11,060 --> 00:01:12,130 respectivamente. 26 00:01:12,130 --> 00:01:15,260 Temos unha reunión semanal e seminario, que é un curso de créditos. 27 00:01:15,260 --> 00:01:18,560 Que é novo dende semestre, e tamén será ao seguinte semestre, 28 00:01:18,560 --> 00:01:19,940 así pode cruzarse reg por iso. 29 00:01:19,940 --> 00:01:22,960 E despois temos o deseño, tenda, e días de CAD durante a semana, 30 00:01:22,960 --> 00:01:26,870 Considerando que os membros de forma autónoma Pezas CAD, da orde etcétera. 31 00:01:26,870 --> 00:01:29,200 >> Así, para eléctrica Enxeñaría en equipo 32 00:01:29,200 --> 00:01:31,110 temos o noso motor, sistema de alta tensión, 33 00:01:31,110 --> 00:01:33,390 que é executado nunha nominal 300 voltios, que inclúe 34 00:01:33,390 --> 00:01:35,360 motores, reguladores de motor, e baterías. 35 00:01:35,360 --> 00:01:37,235 Entón, temos un baixo sistema de tensión, o cal é executado 36 00:01:37,235 --> 00:01:40,180 a 12 voltios, que inclúe controis, PODE nós, o cerebro 37 00:01:40,180 --> 00:01:41,570 caixa, e no panel de control. 38 00:01:41,570 --> 00:01:43,890 No que se CS vai, o que facemos ten mantemento do sitio web 39 00:01:43,890 --> 00:01:47,940 que necesitamos facer para eventos, a adhesión cambios, novas imaxes e material de PR. 40 00:01:47,940 --> 00:01:51,540 E despois temos o código que controla a coche para o noso control de tracción, lanzamento 41 00:01:51,540 --> 00:01:55,750 control, control panel, vetorização de torque, e sistemas de freada regenerativa, que 42 00:01:55,750 --> 00:01:59,170 realizar normalmente en MATLAB, Simulink e LabVIEW. 43 00:01:59,170 --> 00:02:00,910 >> Diga-lle un pouco sobre o coche. 44 00:02:00,910 --> 00:02:02,470 Polo tanto, é de preto de 500 quilos. 45 00:02:02,470 --> 00:02:04,285 É regras limitados a 85 quilowatts. 46 00:02:04,285 --> 00:02:08,310 Ten 2 EMRAX 207 motores na atrás, un para cada roda traseira. 47 00:02:08,310 --> 00:02:11,880 Ten baterías custom-built desde células A123 bolsa prismáticos, 48 00:02:11,880 --> 00:02:14,780 nun total de 300 voltios e 5,6 quilowatts-hora. 49 00:02:14,780 --> 00:02:17,950 E é de accionamento directo con unha relación 2,64-1 unidade. 50 00:02:17,950 --> 00:02:20,970 Aquí están algunhas fotos que tomou del en competición. 51 00:02:20,970 --> 00:02:25,820 Aquí está o cono de volta, nariz, e aquí están os motores, 52 00:02:25,820 --> 00:02:29,682 os grandes discos negros debaixo da mens et manus. 53 00:02:29,682 --> 00:02:32,140 Aquí está unha foto que eu puxei fóra do noso sistema de competición. 54 00:02:32,140 --> 00:02:35,389 E esta é só a comparación do noso coche para un par de coches dispoñibles no mercado, 55 00:02:35,389 --> 00:02:38,380 como a KTM XBOW, Ariel Atom, e Caterha M 7-280. 56 00:02:38,380 --> 00:02:42,110 Se está familiarizado co prezo, poder tirar peso, dólares por cabalos de potencia, 57 00:02:42,110 --> 00:02:44,930 dólares por par, eo noso coche sopra-los todos para fóra da auga. 58 00:02:44,930 --> 00:02:47,520 Se ten algunha dúbida, anota esta dirección de correo electrónico. 59 00:02:47,520 --> 00:02:50,800 Tire nos un correo a fsae@mit.edu. 60 00:02:50,800 --> 00:02:53,350 >> Estamos felices en falar calquera cousa que quere. 61 00:02:53,350 --> 00:02:55,600 Estudantes de Harvard son do tipo da minoría no equipo. 62 00:02:55,600 --> 00:02:58,350 Se ten algunha dúbida sobre que faga disparar un correo electrónico, 63 00:02:58,350 --> 00:03:00,810 feliz de falar, e eu vou a cabeza de volta a David. 64 00:03:00,810 --> 00:03:01,550 Grazas. 65 00:03:01,550 --> 00:03:02,466 Eu aprecio iso, persoal. 66 00:03:02,466 --> 00:03:03,615 [Aplausos] 67 00:03:03,615 --> 00:03:07,080 68 00:03:07,080 --> 00:03:10,980 >> DAVID Malan: Ansel pasou o verán traballar coa xente aquí no campus en CS50 69 00:03:10,980 --> 00:03:11,480 este verán. 70 00:03:11,480 --> 00:03:13,505 E, ademais de traballar en cousas como as lámpadas de binarios, 71 00:03:13,505 --> 00:03:16,090 en realidade realmente abriu nosa eyes-- ea miña en particular-- 72 00:03:16,090 --> 00:03:20,535 para o que realmente a intersección de non de hardware e software pode ser. 73 00:03:20,535 --> 00:03:23,410 En realidade, unha morea de cousas que só excursionou-lo a través de, en última análise 74 00:03:23,410 --> 00:03:26,030 creado en software, e logo, en definitiva, fabricado 75 00:03:26,030 --> 00:03:27,299 no mundo real en hardware. 76 00:03:27,299 --> 00:03:29,590 Entón, se vostede está interesado en explotar aquel cruce, 77 00:03:29,590 --> 00:03:31,430 quizais levar ata ese grupo. 78 00:03:31,430 --> 00:03:34,140 >> Agora, con todo, aqueles de vostedes que son fans de tecnoloxía, 79 00:03:34,140 --> 00:03:36,140 e os produtos de Apple en especial saber que hai 80 00:03:36,140 --> 00:03:37,860 eran unha parella de anuncios onte. 81 00:03:37,860 --> 00:03:39,776 Pero pensamos en mostrar vostede que saíu 82 00:03:39,776 --> 00:03:43,590 uns días antes de que pode non ter visto. 83 00:03:43,590 --> 00:03:46,150 >> Jørgen EGHAMMER: Vostede sabe, xa nalgún tempo algo 84 00:03:46,150 --> 00:03:49,540 vén que cambia o xeito no que vivimos. 85 00:03:49,540 --> 00:03:53,479 Un dispositivo tan sinxelo e intuitivo usalo se sente case familiar. 86 00:03:53,479 --> 00:03:59,710 87 00:03:59,710 --> 00:04:04,138 Presentando 2015 Catálogo IKEA. 88 00:04:04,138 --> 00:04:10,420 Non é un libro dixital ou un e-book, é un libro-book. 89 00:04:10,420 --> 00:04:14,440 >> O primeiro a notar é ningunha cables, nin mesmo un cable de alimentación. 90 00:04:14,440 --> 00:04:18,519 O Catálogo IKEA 2015 vén completamente cargada, 91 00:04:18,519 --> 00:04:20,550 ea duración da batería é eterna. 92 00:04:20,550 --> 00:04:27,300 A interface é de 7,5 por 8 polgadas, pero pode expandirse a 15 por 8 polgadas. 93 00:04:27,300 --> 00:04:32,410 A navegación é baseada en toque táctil tecnoloxía que realmente pode sentir. 94 00:04:32,410 --> 00:04:37,120 >> Contido vén preinstalado vía 328 páxinas en alta definición 95 00:04:37,120 --> 00:04:40,180 de inspirar ideas de decoración para casa. 96 00:04:40,180 --> 00:04:43,740 Para comezar a navegar, basta tocar e arrastrar. 97 00:04:43,740 --> 00:04:50,870 Dereita a esquerda para mover á fronte, esquerda a dereita para moverse para tras. 98 00:04:50,870 --> 00:04:52,770 >> Teña en conta outra cousa? 99 00:04:52,770 --> 00:04:53,780 Está seguro. 100 00:04:53,780 --> 00:04:55,190 Sen lag. 101 00:04:55,190 --> 00:04:58,400 Cada páxina cristalina cargas instantaneamente, 102 00:04:58,400 --> 00:05:00,586 non importa o quão rápido rolar. 103 00:05:00,586 --> 00:05:03,710 Se quere ter unha visión xeral, só Manteña-o na palma da súa man, 104 00:05:03,710 --> 00:05:06,816 e usando só o polgar, Velocidade navegar polo contido. 105 00:05:06,816 --> 00:05:10,930 >> Se atopa algo que quere gardar para máis tarde, pode simplemente marcar. 106 00:05:10,930 --> 00:05:17,620 E mesmo se pecha a aplicación, pode facilmente atopar o marcador novo. 107 00:05:17,620 --> 00:05:18,490 Incrible. 108 00:05:18,490 --> 00:05:20,434 >> [Risas] 109 00:05:20,434 --> 00:05:21,406 [Aplausos] 110 00:05:21,406 --> 00:05:26,760 111 00:05:26,760 --> 00:05:29,870 Entón, iso nos leva a a fin de semana un. 112 00:05:29,870 --> 00:05:31,760 Algúns anuncios agora. 113 00:05:31,760 --> 00:05:33,440 Así, o corte está en progreso. 114 00:05:33,440 --> 00:05:36,860 Ir a este URL aquí nalgún momento entre hoxe e venres ao mediodía 115 00:05:36,860 --> 00:05:39,960 realmente especificar se está entre aqueles menos cómodo, máis 116 00:05:39,960 --> 00:05:41,690 cómodo, ou algures no medio. 117 00:05:41,690 --> 00:05:44,511 >> Este é normalmente un deses cousas que só tipo de saber. 118 00:05:44,511 --> 00:05:47,510 E, de feito, aqueles que son menos cómodo probablemente sabe que logo, 119 00:05:47,510 --> 00:05:49,634 aqueles de vostedes que son máis cómodo saber que logo, 120 00:05:49,634 --> 00:05:54,960 e, de novo, se non está seguro de que daqueles baldes caer está 121 00:05:54,960 --> 00:05:56,210 probablemente nalgún lugar no medio. 122 00:05:56,210 --> 00:05:59,810 Pero a certeza de que pode cambiar despois de algunhas semanas de ser necesario. 123 00:05:59,810 --> 00:06:02,620 >> Mentres tanto, para a próxima semana non comezarmos seccións por si só, 124 00:06:02,620 --> 00:06:04,760 pero seccións super, que están abertas a todos os alumnos. 125 00:06:04,760 --> 00:06:08,220 O próximo domingo nun local para ser anunciado na páxina web do curso 126 00:06:08,220 --> 00:06:10,190 teremos un para os menos cómodos, 127 00:06:10,190 --> 00:06:12,470 , Así como a unha os máis cómodo. 128 00:06:12,470 --> 00:06:15,460 E aqueles nalgún lugar entre pode escoller cal dos dous, 129 00:06:15,460 --> 00:06:17,360 ou ambos, se o desexa, para sentir-in on. 130 00:06:17,360 --> 00:06:19,630 E o foco dos será, en definitiva en C, 131 00:06:19,630 --> 00:06:22,440 que nós imos seguir a nosa conversa de hoxe. 132 00:06:22,440 --> 00:06:25,070 >> Problema definir 0, con todo, é espero que nas súas mans. 133 00:06:25,070 --> 00:06:27,500 Oficialmente debido mañá, Xoves, ao mediodía. 134 00:06:27,500 --> 00:06:29,490 A menos que gañar cartos con un dos seus cinco días de atraso, 135 00:06:29,490 --> 00:06:31,780 que traería ata o venres ao mediodía. 136 00:06:31,780 --> 00:06:34,420 Conxunto de problemas 1 mentres se publicado na páxina web do curso. 137 00:06:34,420 --> 00:06:37,381 E esta será a nosa primeira incursión como unha clase en C. 138 00:06:37,381 --> 00:06:40,630 E ese conxunto de problemas de especificación pode oriente-lo por medio dun monte de a mecánica do que 139 00:06:40,630 --> 00:06:43,960 Comezamos a falar sobre o luns, e imos seguir a falar hoxe. 140 00:06:43,960 --> 00:06:46,770 C, Linux, o CS50 aparello, todo isto 141 00:06:46,770 --> 00:06:48,990 esperan por ti na especificación. 142 00:06:48,990 --> 00:06:52,840 >> Horario de atención mentres están en marcha, na comedor de graduación. 143 00:06:52,840 --> 00:06:56,240 Enfrontamento esta URL aquí para ver o axenda para esta noite e mañá, 144 00:06:56,240 --> 00:06:57,930 Se desexa participar. 145 00:06:57,930 --> 00:07:01,920 Preguntas Non obstante, para que teñen a oportunidade de facer preguntas 146 00:07:01,920 --> 00:07:05,860 de forma asíncrono, 24/7, entende que é non limitando a seccións e oficina 147 00:07:05,860 --> 00:07:09,530 horas, senón esta ferramenta aquí, CS50 Discutir ese URL 148 00:07:09,530 --> 00:07:12,150 será o de curso en liña software BBS, a través do cal 149 00:07:12,150 --> 00:07:15,030 pode facer preguntas de compañeiros e tamén persoal. 150 00:07:15,030 --> 00:07:18,492 Polo tanto, teña presente que o recurso tamén. 151 00:07:18,492 --> 00:07:20,200 Mentres tanto, unha tradición comeza este venres. 152 00:07:20,200 --> 00:07:23,200 Como ten que ter hano descifrar desde video teaser do mércores pasado, 153 00:07:23,200 --> 00:07:25,510 temos unha tradición máis toda venres durante o mandato 154 00:07:25,510 --> 00:07:28,750 de levar preto de 50 alumnos e funcionarios dun restaurante local chamado 155 00:07:28,750 --> 00:07:31,510 Lume e xeo, na que estamos tipicamente acompañado por algúns ex-alumnos 156 00:07:31,510 --> 00:07:33,850 ou amigos da industria xeralmente para aspirar 157 00:07:33,850 --> 00:07:35,780 para facer unha gran clase sentir pequeno. 158 00:07:35,780 --> 00:07:37,560 Polo tanto, é un xantar completo casual. 159 00:07:37,560 --> 00:07:40,160 Un grupo de nós, o equipo especialmente, xogará cadeiras musicais 160 00:07:40,160 --> 00:07:43,360 e falar cos alumnos sobre 50, a vida fóra de 50, 161 00:07:43,360 --> 00:07:46,510 vida no futuro, o mundo real, Estou falando sobre as oportunidades de emprego 162 00:07:46,510 --> 00:07:47,680 cos amigos na industria. 163 00:07:47,680 --> 00:07:51,110 >> Entón, se quere unirse a nós este venres, a cabeza a este URL aquí. 164 00:07:51,110 --> 00:07:54,180 O espazo é limitado, pero imos facelo recorrentemente ao longo prazo. 165 00:07:54,180 --> 00:07:57,380 Xefe alí para cs50.harvard.edu/rsvp. 166 00:07:57,380 --> 00:07:59,380 E se non entrar en esta vez, non se preocupe. 167 00:07:59,380 --> 00:08:02,390 Imos facelo de novo en Nas próximas semanas tamén. 168 00:08:02,390 --> 00:08:05,434 >> Polo tanto, esta é a imaxe pintamos a semana pasada, 169 00:08:05,434 --> 00:08:07,350 e xa debería ser meter na ata agora. 170 00:08:07,350 --> 00:08:10,360 Pero imos tentar conectar iso agora para o que imos facer hoxe 171 00:08:10,360 --> 00:08:11,440 e de aí en diante. 172 00:08:11,440 --> 00:08:14,760 Podo ter un voluntario? 173 00:08:14,760 --> 00:08:16,000 Todo ben, ou varios. 174 00:08:16,000 --> 00:08:18,460 E aquí na final, coa camisa azul. 175 00:08:18,460 --> 00:08:20,329 Imos cara arriba, que o seu nome? 176 00:08:20,329 --> 00:08:20,870 Alana: Alana. 177 00:08:20,870 --> 00:08:21,661 DAVID Malan: Alana. 178 00:08:21,661 --> 00:08:25,100 Entón Alana, por só un moment-- bo coñecer você-- 179 00:08:25,100 --> 00:08:28,260 vai desempeñar o papel desta función aquí. 180 00:08:28,260 --> 00:08:31,290 O bloque vermello temos chamado, ata o momento, unha función. 181 00:08:31,290 --> 00:08:34,830 Entón o que eu estou indo a ir fronte aquí e ofrecer Alana 182 00:08:34,830 --> 00:08:38,380 é un pouco tag nome, para facer claro que o papel que está xogando. 183 00:08:38,380 --> 00:08:39,753 >> Entón ten que ser o bloque digamos. 184 00:08:39,753 --> 00:08:41,419 Se quere ir adiante e poñer isto no. 185 00:08:41,419 --> 00:08:43,169 E nós imos manter esta super sinxelo. 186 00:08:43,169 --> 00:08:46,180 Se o obxectivo en cuestión é simplemente agora a aplicar con Alana, 187 00:08:46,180 --> 00:08:49,710 este chamado dicir bloque, aquí está como vai funcionar. 188 00:08:49,710 --> 00:08:52,574 Eu have-- imos chamalo un argumento ou parámetro, 189 00:08:52,574 --> 00:08:54,240 é realmente só unha folla de papel en branco. 190 00:08:54,240 --> 00:08:57,239 E é branco ao tipo de ser unha reminiscencia da caixa branca na que 191 00:08:57,239 --> 00:08:58,080 pode escribir palabras. 192 00:08:58,080 --> 00:09:00,660 >> Mentres tanto, eu estou indo a ir aquí. 193 00:09:00,660 --> 00:09:06,560 Eu estou indo a ir adiante e escribir H-E G L-O - comas mundo. 194 00:09:06,560 --> 00:09:09,972 E agora eu, como di o programador, non realmente sabe dicir algo. 195 00:09:09,972 --> 00:09:12,180 Podo chegar coas palabras, pero eu non necesariamente 196 00:09:12,180 --> 00:09:15,220 sei como me expresar verbalmente ou na pantalla. 197 00:09:15,220 --> 00:09:17,280 E así que eu vou que facer é levar esta peza 198 00:09:17,280 --> 00:09:21,157 de funcións, cuxa input-- ou argumento, como imos chamalo, 199 00:09:21,157 --> 00:09:23,990 Eu teño escrito sobre este anaco de paper-- e eu estou indo a terceirizar. 200 00:09:23,990 --> 00:09:26,831 >> E, de feito ese é o papel que funciona dunha linguaxe de programación 201 00:09:26,831 --> 00:09:27,330 pode xogar. 202 00:09:27,330 --> 00:09:29,246 Algo parecido coa palabra bloque pode ser terceirizado 203 00:09:29,246 --> 00:09:32,074 para alguén que realmente sabe o que ela ou el está falando. 204 00:09:32,074 --> 00:09:33,990 Entón, se vai pasar por riba aquí só por un momento, 205 00:09:33,990 --> 00:09:40,092 Vou pasar esta entrada Alana, e pedir que di iso de entrada. 206 00:09:40,092 --> 00:09:41,202 >> Alana: Ola, mundo. 207 00:09:41,202 --> 00:09:42,160 DAVID Malan: É iso. 208 00:09:42,160 --> 00:09:43,326 Así que hai unha función. 209 00:09:43,326 --> 00:09:46,556 Agora podemos toma-lo un pouco máis, podemos dar un paso adiante aquí. 210 00:09:46,556 --> 00:09:48,180 Por iso era claramente por baixo do esperado. 211 00:09:48,180 --> 00:09:51,670 Entón, imos agora converter isto en algo un pouco máis sofisticado. 212 00:09:51,670 --> 00:09:53,630 >> Entón, iso, por suposto, é a nosa versión C. 213 00:09:53,630 --> 00:09:56,760 Polo tanto, agora se quere ter que un fóra, que etiqueta nome fóra, 214 00:09:56,760 --> 00:09:58,530 e imos ter que poñer nun novo nome. 215 00:09:58,530 --> 00:10:00,850 Pero, fundamentalmente, está interpretando o mesmo papel, 216 00:10:00,850 --> 00:10:03,400 iso só acontece a chamarse printf agora. 217 00:10:03,400 --> 00:10:06,930 >> O artigo é, por suposto, vai probablemente ser-- 218 00:10:06,930 --> 00:10:09,317 tal como se underwhelming-- será o seguinte. 219 00:10:09,317 --> 00:10:10,650 Agora é o printf función. 220 00:10:10,650 --> 00:10:13,300 Eu son o chamador ou a programador, que quere 221 00:10:13,300 --> 00:10:15,745 ir sobre os ombreiros de persoas no pasado como, 222 00:10:15,745 --> 00:10:18,670 que xa descubrín como para realmente escribir algo. 223 00:10:18,670 --> 00:10:20,650 E así, neste momento, no canto de dicir que imos 224 00:10:20,650 --> 00:10:22,255 realmente usar nosa pantalla aquí. 225 00:10:22,255 --> 00:10:24,130 Entón, se quere intensificar aquí, eu vou 226 00:10:24,130 --> 00:10:27,196 para pasar de novo esta como entrada para o meu amigo printf. 227 00:10:27,196 --> 00:10:29,320 Se puidese ir adiante e imprimir iso na pantalla, 228 00:10:29,320 --> 00:10:31,611 simplemente debuxando co dedo sobre a pantalla negra. 229 00:10:31,611 --> 00:10:43,680 230 00:10:43,680 --> 00:10:44,180 Excelente. 231 00:10:44,180 --> 00:10:47,350 Todo ben, entón unha morea de suspense para como que ía xogar fora. 232 00:10:47,350 --> 00:10:51,390 >> Entón agora imos levar as cousas ata un entalhe final, se puidésemos, como segue. 233 00:10:51,390 --> 00:10:53,980 Polo tanto, este é un programa C como se dixo a última vez. 234 00:10:53,980 --> 00:10:57,460 E iso só fai o que fixo, imprime en pantalla, Ola, mundo. 235 00:10:57,460 --> 00:11:00,290 Aínda que non haxa claramente un monte material de distracción alí enriba. 236 00:11:00,290 --> 00:11:03,630 Pero imos levar as cousas por riba de un entalhe e introducir esta versión, que recordan 237 00:11:03,630 --> 00:11:06,160 foi a terceira versión acabamos coa última vez. 238 00:11:06,160 --> 00:11:09,120 >> E agora non hai claridade dous usos de printf. 239 00:11:09,120 --> 00:11:12,280 Hai dúas chamadas a Alana neste caso para printf, 240 00:11:12,280 --> 00:11:14,740 pero hai tamén unha chamada a outra función. 241 00:11:14,740 --> 00:11:17,150 Que a función claramente? 242 00:11:17,150 --> 00:11:17,650 GetString. 243 00:11:17,650 --> 00:11:18,980 >> Podemos conseguir un voluntario? 244 00:11:18,980 --> 00:11:20,980 OK, imos cara arriba. 245 00:11:20,980 --> 00:11:21,805 Cal é o seu nome? 246 00:11:21,805 --> 00:11:22,990 >> JAVIER: Javier. 247 00:11:22,990 --> 00:11:24,750 >> DAVID Malan: Javier, imos alí cara arriba. 248 00:11:24,750 --> 00:11:27,270 Así, o papel de Javier é en este anaco de papel. 249 00:11:27,270 --> 00:11:28,860 O que eu vou chamar xenericamente s. 250 00:11:28,860 --> 00:11:32,250 Agora, esta é unha variable, é do tipo cadea, como se desprende 251 00:11:32,250 --> 00:11:34,290 polo que a segunda liña do medio aí. 252 00:11:34,290 --> 00:11:36,540 E gustaríame que para ir buscar-me unha corda. 253 00:11:36,540 --> 00:11:40,120 Especificamente cabeza para abaixo para orquesta sección e obter-me o nome de alguén, 254 00:11:40,120 --> 00:11:43,142 e volver cunha variable que contén ese valor. 255 00:11:43,142 --> 00:11:44,225 Pode ser quen ti queiras. 256 00:11:44,225 --> 00:11:47,590 257 00:11:47,590 --> 00:11:48,520 >> Aquí imos nós. 258 00:11:48,520 --> 00:11:53,620 259 00:11:53,620 --> 00:11:55,960 Todo ben, Javier é escribindo o nome. 260 00:11:55,960 --> 00:12:02,210 261 00:12:02,210 --> 00:12:03,280 Todo correcto. 262 00:12:03,280 --> 00:12:05,740 Todos podemos probablemente imaxinar como iso vai xogar fóra. 263 00:12:05,740 --> 00:12:07,489 Nós quizais estea belaboring o punto de que 264 00:12:07,489 --> 00:12:10,320 unha función está facendo, pero aínda así moitas grazas. 265 00:12:10,320 --> 00:12:13,890 >> Entón Javier volveu esta cadea aquí, o que, non podo ver, 266 00:12:13,890 --> 00:12:15,800 Jonathan é a cadea que obtivemos. 267 00:12:15,800 --> 00:12:18,330 Entón, agora que eu estou indo realmente para facilitar a Alana aínda 268 00:12:18,330 --> 00:12:20,150 é algo un pouco diferente. 269 00:12:20,150 --> 00:12:23,800 Porque nesta versión do programa, en primeiro lugar, hai o seu nome. 270 00:12:23,800 --> 00:12:26,160 Así, o primeiro argumento Eu teño proporcionar Alana 271 00:12:26,160 --> 00:12:33,030 con será literalmente o seu nome. 272 00:12:33,030 --> 00:12:35,280 Todo ben, tan sinxelo coma iso Eu ía entregar iso a ti. 273 00:12:35,280 --> 00:12:36,730 E mentres eu escriba o preto argumento, se 274 00:12:36,730 --> 00:12:39,230 quere ir adiante e escribir este na tarxeta, imos adiante 275 00:12:39,230 --> 00:12:42,659 e facer o último exemplo aquí para facer limpar o que está en definitiva, ten que pasar. 276 00:12:42,659 --> 00:12:44,450 Entón diga o seu nome, gravala-lo cara arriba 277 00:12:44,450 --> 00:12:47,220 se non lle importa, só para que temos espazo para unha segunda liña. 278 00:12:47,220 --> 00:12:52,890 Porque a última cousa que eu vou agora fornecer-lle non unha, 279 00:12:52,890 --> 00:12:57,220 pero dous anacos de papel. 280 00:12:57,220 --> 00:12:58,074 >> Todo correcto. 281 00:12:58,074 --> 00:13:01,920 H-L-L-L-S comas e, a continuación, unha liña en branco. 282 00:13:01,920 --> 00:13:04,780 Entón o que eu estou a piques de entregar Alana agora é algo un pouco diferente. 283 00:13:04,780 --> 00:13:08,600 Non só ela está a recibir este, onde encher o baleiro representa 284 00:13:08,600 --> 00:13:12,050 que percent-- cal foi o espazo reservado estamos a usar? 285 00:13:12,050 --> 00:13:13,890 Si, entón por cento s. 286 00:13:13,890 --> 00:13:16,530 Mentres tanto, eu vou pasar ela nun segundo argumento, que 287 00:13:16,530 --> 00:13:19,290 é precisamente o que Javier recuperado dende Jonathan. 288 00:13:19,290 --> 00:13:20,534 >> Entón deixe-me dar-lle os dous. 289 00:13:20,534 --> 00:13:22,575 Se desexa, vai adiante e imprimir o efecto. 290 00:13:22,575 --> 00:13:25,660 291 00:13:25,660 --> 00:13:28,130 O que está pasando en definitiva, agora é, Alana novo 292 00:13:28,130 --> 00:13:29,410 está facendo o papel de printf. 293 00:13:29,410 --> 00:13:32,160 Javier estaba xogando o papel GetString. 294 00:13:32,160 --> 00:13:34,700 Entón esa será a súa lembranza. 295 00:13:34,700 --> 00:13:39,910 E, finalmente, o que está a suceder, a pesar de este hello-- si ir adiante e vírgula. 296 00:13:39,910 --> 00:13:41,410 Alana: Recibín este aínda ou non? 297 00:13:41,410 --> 00:13:43,451 DAVID Malan: Si, recibiu os dous á vez. 298 00:13:43,451 --> 00:13:45,740 Así, a idea é que agora pode pasar páxina 299 00:13:45,740 --> 00:13:50,000 para xestionar a segunda destas dúas entradas. 300 00:13:50,000 --> 00:13:53,280 Polo tanto, esta é só a martelar a apuntan que, aínda Alana executado 301 00:13:53,280 --> 00:13:55,830 esta liña verde aquí, e entón Javier fixo iso para nós 302 00:13:55,830 --> 00:13:57,820 e volver para me algo imos chamarlle s, pero foi realmente 303 00:13:57,820 --> 00:13:59,520 só aquel anaco de papel do seu propio. 304 00:13:59,520 --> 00:14:02,320 E agora Alana fixo esta terceira liña. 305 00:14:02,320 --> 00:14:06,010 >> E a pesar de todo isto parece tan incrible enigmática quizais 306 00:14:06,010 --> 00:14:08,870 a primeira vista, é realmente É tan sinxelo coma iso. 307 00:14:08,870 --> 00:14:11,390 Pasando entradas ao redor, obter resultados, tanto 308 00:14:11,390 --> 00:14:14,560 sendo entregado físicamente atrás algo, ou ver un efecto colateral deste xeito. 309 00:14:14,560 --> 00:14:17,170 Algo visual escrito na pantalla. 310 00:14:17,170 --> 00:14:19,990 Entón, imos adiante e gracias Alana e Javier, 311 00:14:19,990 --> 00:14:25,012 que estaba aquí debaixo, para unirse a nós aquí enriba. 312 00:14:25,012 --> 00:14:25,934 >> [Aplausos] 313 00:14:25,934 --> 00:14:29,360 314 00:14:29,360 --> 00:14:33,480 >> Entón agora imos tomar como certo o quão simple todo isto podería ser. 315 00:14:33,480 --> 00:14:36,775 E imos seguir a verdade facer algo no código actual. 316 00:14:36,775 --> 00:14:40,620 Entón, na pantalla aquí está un screenshot do así chamado aparello CS50. 317 00:14:40,620 --> 00:14:43,980 E se tivese que no, como un 02:00 do mércores pola tarde, 318 00:14:43,980 --> 00:14:46,602 explicar a algún amigo CS50 que o aparello é, 319 00:14:46,602 --> 00:14:48,185 como definiría nunha frase? 320 00:14:48,185 --> 00:14:52,160 321 00:14:52,160 --> 00:14:53,240 Calquera frase? 322 00:14:53,240 --> 00:14:54,876 Si? 323 00:14:54,876 --> 00:14:57,334 ALUMNO: É como un programa que fai que o ordenador de todos 324 00:14:57,334 --> 00:14:58,460 executar co mesmo sistema. 325 00:14:58,460 --> 00:14:59,210 DAVID Malan: Good! 326 00:14:59,210 --> 00:15:02,810 É un programa que permite que todo o mundo ordenador para realizar co mesmo sistema. 327 00:15:02,810 --> 00:15:04,920 É unha especie de seu propio exemplar dunha operación 328 00:15:04,920 --> 00:15:07,540 sistema que pasa a chamarse Ubuntu Linux. 329 00:15:07,540 --> 00:15:11,070 E é executado de forma eficaz dentro un diálogo no seu propio Mac ou PC, 330 00:15:11,070 --> 00:15:15,080 para que este camiño certo para fóra da porta Na 1 ª semana, todo aquí na clase 331 00:15:15,080 --> 00:15:17,590 ten acceso ás mesmas ferramentas, a mesma configuración, 332 00:15:17,590 --> 00:15:21,250 e non hai ningunha curva de aprendizaxe específica a un Mac ou PC en particular. 333 00:15:21,250 --> 00:15:25,620 >> Agora abrimos, dentro do CS50 aparello o luns, aquí neste programa. 334 00:15:25,620 --> 00:15:27,040 Acontece a chamarse Gedit. 335 00:15:27,040 --> 00:15:29,050 Pero iso é realmente só un editor gráfico. 336 00:15:29,050 --> 00:15:33,170 É algo así como o bloque de notas ou texto Editar en Windows ou Mac OS, respectivamente. 337 00:15:33,170 --> 00:15:36,720 E eu propuxen que houbo realmente tres pezas importantes para esta pantalla. 338 00:15:36,720 --> 00:15:39,560 A parte superior é onde ía escribir o seu código. 339 00:15:39,560 --> 00:15:44,080 E é aí onde pasamos gran parte do noso tres exemplos na clase de luns. 340 00:15:44,080 --> 00:15:47,650 O fondo chamamos o que, este diálogo negro, non? 341 00:15:47,650 --> 00:15:48,640 >> ALUMNO: Compiler? 342 00:15:48,640 --> 00:15:51,500 >> DAVID Malan: Compiler nós acceder por medio desta xanela. 343 00:15:51,500 --> 00:15:53,040 Pero en xeral. 344 00:15:53,040 --> 00:15:54,540 Si, era só unha fiestra de terminal. 345 00:15:54,540 --> 00:15:57,780 Este é un termo antigo que era só describe esencialmente un chiscar 346 00:15:57,780 --> 00:16:01,910 rápida, que anos adoitaba ser en un deses grandes monitores CRT estilo. 347 00:16:01,910 --> 00:16:04,300 Pero hoxe en día é unha especie de virtual no software. 348 00:16:04,300 --> 00:16:06,710 E as fiestras de terminal permitiranos introducir comandos. 349 00:16:06,710 --> 00:16:11,750 É unha especie de versión simplificada da interface de usuario ou interface de usuario. 350 00:16:11,750 --> 00:16:14,060 Non é unha gráfica UI ou GUI, 351 00:16:14,060 --> 00:16:17,250 é unha interface baseada en texto ou unha interface de liña de comandos. 352 00:16:17,250 --> 00:16:20,770 >> E de feito é aí que, en última instancia Eu era capaz de escribir un código. 353 00:16:20,770 --> 00:16:24,200 Xa que eu escribira algún código, porén, lembro que eu usei este comando. 354 00:16:24,200 --> 00:16:26,210 E, como o nome tipo de indica, esta 355 00:16:26,210 --> 00:16:29,860 me permite facer unha programa chamado Ola. 356 00:16:29,860 --> 00:16:33,400 Pero o que realmente está facendo? 357 00:16:33,400 --> 00:16:36,180 Ben make estaba tomando meu entrada, o meu código fonte, 358 00:16:36,180 --> 00:16:39,380 e convertela-lo para o que, en definitiva ,? 359 00:16:39,380 --> 00:16:40,060 >> Código obxecto. 360 00:16:40,060 --> 00:16:42,790 E código obxecto é só unha fantasía forma de dicir ceros e uns. 361 00:16:42,790 --> 00:16:46,420 E, a continuación, xa que eu quería para realizar este código obxecto, 362 00:16:46,420 --> 00:16:50,940 Unha vez eu quería pasar como entrada os ceros e uns no meu ordenador de 363 00:16:50,940 --> 00:16:54,430 cerebro, o chamado CPU ou a unidade de procesamento central 364 00:16:54,430 --> 00:16:55,730 Eu tiña que executar o programa. 365 00:16:55,730 --> 00:16:59,042 Pero non foi un simple o luns como só un dobre clic algún icona. 366 00:16:59,042 --> 00:17:01,375 Que en vez que eu teño que facer, a fin de realizar un programa? 367 00:17:01,375 --> 00:17:04,130 368 00:17:04,130 --> 00:17:07,890 >> Que foi segundo mando? 369 00:17:07,890 --> 00:17:09,619 Estou escoitando un pouco de barras? 370 00:17:09,619 --> 00:17:10,544 Si, si? 371 00:17:10,544 --> 00:17:12,474 >> ALUMNO: Dot corte e o nome do programa. 372 00:17:12,474 --> 00:17:13,349 DAVID Malan: Exactamente. 373 00:17:13,349 --> 00:17:15,030 Dot barra eo nome do programa. 374 00:17:15,030 --> 00:17:16,210 Agora o que significa isto? 375 00:17:16,210 --> 00:17:19,470 Ben dot é só un xeito misterioso de dicir directorio actual. 376 00:17:19,470 --> 00:17:23,440 Sexa cal sexa o cartafol que está é como referencia, é representado como punto. 377 00:17:23,440 --> 00:17:26,680 A barra é só o que xa viu en Mac OS e Windows hai anos, 378 00:17:26,680 --> 00:17:30,329 é un separador entre un directorio ou cartafol eo resto dalgún nome. 379 00:17:30,329 --> 00:17:32,620 En Windows isto ocorre para ir cara atrás, en Linux e Mac 380 00:17:32,620 --> 00:17:34,210 OS pasa a ir á fronte. 381 00:17:34,210 --> 00:17:37,560 Pero é só a ficha, polo que é só un detalle sintático desinteressante. 382 00:17:37,560 --> 00:17:40,440 >> A parte suculenta do curso é o nome do programa, Ola. 383 00:17:40,440 --> 00:17:42,650 E iso é o que fan creou para nós. 384 00:17:42,650 --> 00:17:44,910 Reproducirase o arquivo para nós. 385 00:17:44,910 --> 00:17:46,700 Pero como chegamos a ese punto? 386 00:17:46,700 --> 00:17:48,870 Imos agora pedirlle ao pregunta, o que foi realmente 387 00:17:48,870 --> 00:17:52,470 pasando aquí, polo menos con relación a algunha desta sintaxe? 388 00:17:52,470 --> 00:17:57,000 >> Así, nunha frase máis ou menos, como é que imos explicar afastado 389 00:17:57,000 --> 00:17:59,020 Nesta primeira liña que se destacadas en verde? 390 00:17:59,020 --> 00:18:02,998 Que foi que a primeira liña facendo, no que se refire ao meu programa? 391 00:18:02,998 --> 00:18:03,974 Si? 392 00:18:03,974 --> 00:18:05,067 >> Estudante: [inaudível]. 393 00:18:05,067 --> 00:18:06,150 DAVID Malan: Diga iso de novo? 394 00:18:06,150 --> 00:18:08,734 ALUMNO: Ata e descargar funcións pasadas [inaudível]. 395 00:18:08,734 --> 00:18:09,483 DAVID Malan: Good. 396 00:18:09,483 --> 00:18:11,900 Ata, eu non vou dicir descargar, pero digamos 397 00:18:11,900 --> 00:18:15,500 incluíndo funcións que a xente ter escrito no pasado. 398 00:18:15,500 --> 00:18:18,260 E esas funcións son aplicadas nalgún lugar no meu ordenador. 399 00:18:18,260 --> 00:18:20,470 Alguén escribiu un ficheiro anos, e ese arquivo 400 00:18:20,470 --> 00:18:23,490 está nalgún lugar dentro do CS50 aparello, ou no meu disco duro 401 00:18:23,490 --> 00:18:24,480 de modo máis xeral. 402 00:18:24,480 --> 00:18:27,810 E así, esta liña é esencialmente dicindo: ir atopar o ficheiro, E / S estándar dot 403 00:18:27,810 --> 00:18:31,740 h, e copiar e pegar o seu contido aquí na parte superior do meu arquivo 404 00:18:31,740 --> 00:18:33,860 para que eu non teño que facelo manualmente min. 405 00:18:33,860 --> 00:18:40,970 >> E entre as pezas máis suculentas dentro que ficheiro que dicía ser o que función? 406 00:18:40,970 --> 00:18:45,740 Cara a unha función que nós dixemos foi declarado ou mencionado en E / S estándar dot h 407 00:18:45,740 --> 00:18:47,120 probablemente? 408 00:18:47,120 --> 00:18:47,900 Printf, non? 409 00:18:47,900 --> 00:18:50,797 Non escribimos sobre printf Luns, el só existiu. 410 00:18:50,797 --> 00:18:52,880 Moi parecido Alana acabou encima do escenario e ela só 411 00:18:52,880 --> 00:18:55,540 existía e sabía como deseñar algo na pantalla, 412 00:18:55,540 --> 00:18:58,660 de xeito que printf existir durante moitos anos. 413 00:18:58,660 --> 00:19:00,240 E así é como acceder a ela. 414 00:19:00,240 --> 00:19:03,280 Agora, se imos pasar aquí, principal era que análogo 415 00:19:03,280 --> 00:19:06,620 dixo á peza de puzzle chamado cando premendo bandeira verde 416 00:19:06,620 --> 00:19:07,620 no mundo do scratch. 417 00:19:07,620 --> 00:19:10,130 É só unha especie de nome estándar que os seres humanos 418 00:19:10,130 --> 00:19:13,340 Decidiu representaría o estándar punto de entrada para un programa. 419 00:19:13,340 --> 00:19:16,540 O anaco de código de programación que se executa por primeira vez. 420 00:19:16,540 --> 00:19:19,700 >> Mentres tanto, estas claves son como o tipo de formato curvo 421 00:19:19,700 --> 00:19:21,410 de moitas destas pezas rabuñar amarelas. 422 00:19:21,410 --> 00:19:24,860 Eles tipo de encapsulado un conxunto banda de instrucións xuntos. 423 00:19:24,860 --> 00:19:28,350 Por iso, só unha especie de conexión entre as algunhas funcións relacionadas. 424 00:19:28,350 --> 00:19:33,750 printf, por suposto, é unha función que imprime en pantalla, como acabamos de facer. 425 00:19:33,750 --> 00:19:35,190 >> E eses parénteses? 426 00:19:35,190 --> 00:19:38,770 Como define-- Aínda que teña nunca programou antes, pero só con base 427 00:19:38,770 --> 00:19:41,320 agora un aumento espero que a intuición, o que 428 00:19:41,320 --> 00:19:43,290 son os parénteses facendo por nós aquí? 429 00:19:43,290 --> 00:19:45,450 Ou o que están arredor? 430 00:19:45,450 --> 00:19:46,360 Si? 431 00:19:46,360 --> 00:19:49,360 >> ALUMNO: Están dicindo que vai imprimir con printf. 432 00:19:49,360 --> 00:19:52,401 >> DAVID Malan: Si, están dicindo que vai imprimir con printf. 433 00:19:52,401 --> 00:19:56,260 Ou, máis xeralmente, son arredor das entradas para a función. 434 00:19:56,260 --> 00:19:58,530 Entón, ten case pode pensar destes parénteses 435 00:19:58,530 --> 00:20:01,620 como o metal clip nesta portapapeis. 436 00:20:01,620 --> 00:20:05,940 É o que está seguro, é o que se será usado para proporcionar argumentos 437 00:20:05,940 --> 00:20:08,500 para a función, no que Neste caso chámase printf. 438 00:20:08,500 --> 00:20:12,390 >> Así, en xeral, case calquera xa que chamar a unha función, 439 00:20:12,390 --> 00:20:14,280 veremos un par de parénteses. 440 00:20:14,280 --> 00:20:17,000 Quizais con algo nel, como agora, quizais nada nel. 441 00:20:17,000 --> 00:20:19,770 Pero é aí que colocaría as entradas ou os chamados argumentos 442 00:20:19,770 --> 00:20:20,680 a unha función. 443 00:20:20,680 --> 00:20:22,470 >> Aquí está un tal argumento. 444 00:20:22,470 --> 00:20:24,467 Eu destacou todo entre as comiñas, 445 00:20:24,467 --> 00:20:26,300 pois verifícase se neste linguaxe chamada 446 00:20:26,300 --> 00:20:29,950 C, cando pretender representar unha string-- que é unha palabra ou unha frase 447 00:20:29,950 --> 00:20:33,470 ou un paragraph-- ten que cerca-la con comiñas dobres. 448 00:20:33,470 --> 00:20:35,420 Non citas simple, comiñas dobres. 449 00:20:35,420 --> 00:20:37,460 E iso é o que eu fixen aquí. 450 00:20:37,460 --> 00:20:39,900 >> Mentres tanto, hai un mal cheiroso símbolo ao fin alí. 451 00:20:39,900 --> 00:20:41,600 A barra invertida n. 452 00:20:41,600 --> 00:20:43,460 O que nós dicimos que representou? 453 00:20:43,460 --> 00:20:44,093 Si? 454 00:20:44,093 --> 00:20:44,980 >> ALUMNO: A nova liña. 455 00:20:44,980 --> 00:20:45,896 >> DAVID Malan: Nova liña. 456 00:20:45,896 --> 00:20:47,910 Certo, non xeralmente prema Intro cando 457 00:20:47,910 --> 00:20:50,430 quere que o programa para cuspir unha nova liña. 458 00:20:50,430 --> 00:20:54,210 Pola contra vostede diga a el explicitamente con esta peza reconhecidamente arcano 459 00:20:54,210 --> 00:20:58,770 de sintaxe, barra invertida n, que quere unha nova liña para ir alí. 460 00:20:58,770 --> 00:20:59,810 Finalmente, o punto e coma. 461 00:20:59,810 --> 00:21:01,560 Nós realmente non falar moito sobre iso, 462 00:21:01,560 --> 00:21:04,893 e, de lonxe, esta será a ruína dalgúns da súa existencia para o primeiro problema 463 00:21:04,893 --> 00:21:07,990 definido, cando só non entendeu esqueciches algo tan estúpido 464 00:21:07,990 --> 00:21:08,614 como un punto e coma. 465 00:21:08,614 --> 00:21:11,600 E xeralmente colocándose a non vai resolver este problema. 466 00:21:11,600 --> 00:21:13,511 Pero o que está facendo para nós, diría? 467 00:21:13,511 --> 00:21:15,670 >> Estudante: [inaudível]. 468 00:21:15,670 --> 00:21:17,484 >> DAVID Malan: Sentímolo? 469 00:21:17,484 --> 00:21:18,532 >> Estudante: [inaudível]. 470 00:21:18,532 --> 00:21:19,990 DAVID Malan: Finalizando un comunicado. 471 00:21:19,990 --> 00:21:22,770 É máis ou menos como o período en o fin dunha frase Inglés, 472 00:21:22,770 --> 00:21:25,790 Considerando que, neste idioma C está rematando un comunicado. 473 00:21:25,790 --> 00:21:29,250 Unha instrución de programación código que só quere dicir, 474 00:21:29,250 --> 00:21:30,500 Estou satisfeito con iso. 475 00:21:30,500 --> 00:21:32,240 Agora conta que é o único aquí. 476 00:21:32,240 --> 00:21:34,614 Entón non quere entrar en o costume de poñer puntos e comas 477 00:21:34,614 --> 00:21:36,190 despois de cada paréntese pechada. 478 00:21:36,190 --> 00:21:38,610 Por exemplo non hai ningún xunto a anular, e nós imos 479 00:21:38,610 --> 00:21:40,430 volver no futuro para o medio baleiro. 480 00:21:40,430 --> 00:21:44,080 Pero neste caso o printf é unha función, é unha declaración de que está a ser usado, 481 00:21:44,080 --> 00:21:47,420 e por iso queremos ter que terminal ao final do mesmo. 482 00:21:47,420 --> 00:21:50,980 >> E eu estou intencionalmente pegando no C. E francamente unha morea de linguaxes como C, C ++ 483 00:21:50,980 --> 00:21:55,000 Java, JavaScript, e calquera número de outras linguas ten unha morea delas 484 00:21:55,000 --> 00:21:56,730 tipo de detalles sintácticos. 485 00:21:56,730 --> 00:22:00,120 Isto, por suposto, se é novo para programación realmente te enganar. 486 00:22:00,120 --> 00:22:02,307 E vai, marcar meu palabras, algúns de vostedes van 487 00:22:02,307 --> 00:22:04,140 ter esa experiencia en horario de oficina ou tarde 488 00:22:04,140 --> 00:22:07,554 Noite traballar nalgún p-set, onde seu programa maldita só non compila, 489 00:22:07,554 --> 00:22:09,470 el non é executado, ten ningunha idea o que está mal, 490 00:22:09,470 --> 00:22:11,513 parece completamente loxicamente correcta para ti. 491 00:22:11,513 --> 00:22:13,596 E é porque se esqueceu algo como bater 492 00:22:13,596 --> 00:22:15,250 un punto e coma ao final da liña de algúns. 493 00:22:15,250 --> 00:22:17,590 >> Pero estes son os tipos de cousas que se Vai aprender inmediatamente para ver. 494 00:22:17,590 --> 00:22:20,048 E, de feito estas son as cousas que e TF da do CA ten 495 00:22:20,048 --> 00:22:23,210 foi unha especie de adestramento para ver moito máis rápido do que. 496 00:22:23,210 --> 00:22:26,610 E así, esta é só a dicir, como mergullo no conxunto de problemas 1, especialmente, 497 00:22:26,610 --> 00:22:28,217 non se sente frustrado por iso. 498 00:22:28,217 --> 00:22:30,050 Así que tipo de aclimatar ao mundo, ten 499 00:22:30,050 --> 00:22:35,130 comezar a ver cousas que non pode ver a primeira vista, esta primeira semana. 500 00:22:35,130 --> 00:22:37,440 >> Así, o código fonte é algo parecido. 501 00:22:37,440 --> 00:22:40,370 Queremos pasalo a o chamado compilador. 502 00:22:40,370 --> 00:22:42,850 E iso compilador como dixemos ofrece saída 503 00:22:42,850 --> 00:22:45,660 coñecido como código obxecto, o chamado ceros e uns. 504 00:22:45,660 --> 00:22:47,747 Pero a partir de aí, o que iso nos dá? 505 00:22:47,747 --> 00:22:49,080 Ben, iso dános estes patróns. 506 00:22:49,080 --> 00:22:52,020 E unha vez máis o seu ordenador, o Intel inside, 507 00:22:52,020 --> 00:22:54,350 entende estes patróns de ceros e uns. 508 00:22:54,350 --> 00:22:57,300 E ás veces o estándar representa un número decimal real 509 00:22:57,300 --> 00:22:59,770 como vimos a semana pasada, por veces, representa unha carta 510 00:22:59,770 --> 00:23:02,730 como vimos a semana pasada, por veces, representa unha instrución, 511 00:23:02,730 --> 00:23:05,460 como imprimir algo en pantalla. 512 00:23:05,460 --> 00:23:08,782 >> Entón printf para instance-- pero si, deixe-me volver atrás. 513 00:23:08,782 --> 00:23:11,240 Temos que chegou a tomar para concedida que estes ceros e uns son 514 00:23:11,240 --> 00:23:14,200 producido por esta orde make. 515 00:23:14,200 --> 00:23:16,050 Pero make non é un compilador. 516 00:23:16,050 --> 00:23:19,370 Facer non é a cousa no medio que está producindo os ceros e uns. 517 00:23:19,370 --> 00:23:23,780 Prefire facer é só un moi cómodo programa chamado cuxo propósito na vida 518 00:23:23,780 --> 00:23:27,267 é, esencialmente, para descubrir como compilar o seu programa. 519 00:23:27,267 --> 00:23:29,350 E nós usalo nestas primeiras semanas, porque só 520 00:23:29,350 --> 00:23:30,910 nos salva unha morea de problemas. 521 00:23:30,910 --> 00:23:34,080 >> Pero o que facer é realmente facendo cando compilar Ola, 522 00:23:34,080 --> 00:23:36,690 é, como se dixo a última vez, é mirando no seu disco duro 523 00:23:36,690 --> 00:23:40,620 ou no cartafol actual, para ficheiro chamado que, ao parecer? 524 00:23:40,620 --> 00:23:41,815 Hello.c, non? 525 00:23:41,815 --> 00:23:43,190 Isto é só unha especie de convención. 526 00:23:43,190 --> 00:23:45,620 É arbitrario, pero esa é a forma como as cousas son. 527 00:23:45,620 --> 00:23:48,620 Fai, se acaba de indicar o nome dun programa que aínda non existe, 528 00:23:48,620 --> 00:23:52,200 que vai mirar para o código fonte nun ficheiro, por defecto significa ola.c. 529 00:23:52,200 --> 00:23:53,530 E se atopar, xenial. 530 00:23:53,530 --> 00:23:56,650 Vai converter esta fonte código en código obxecto para ti. 531 00:23:56,650 --> 00:23:59,670 >> Pero cada vez que eu prema Intro tras executar o make Ola, 532 00:23:59,670 --> 00:24:03,560 Vostede recorda de ver unha última vez moi longo e secuencia enigmática 533 00:24:03,560 --> 00:24:06,430 doutras letras brancas e caracteres na pantalla? 534 00:24:06,430 --> 00:24:11,220 Ben, iso foi a orde real, o compilador real, que estaba a ser executado. 535 00:24:11,220 --> 00:24:15,500 Así, o compilador real, imos utilizar a maioría dos do semestre é algo chamado clang. 536 00:24:15,500 --> 00:24:19,280 Algúns de vostedes poden usar Visual Studio antes, ou GCC, 537 00:24:19,280 --> 00:24:21,340 ou calquera número de outros compiladores. 538 00:24:21,340 --> 00:24:22,620 Usaremos clang. 539 00:24:22,620 --> 00:24:26,950 >> E clang permítenos realmente converter que o código fonte do código obxecto. 540 00:24:26,950 --> 00:24:29,430 O que isto realmente significa na práctica? 541 00:24:29,430 --> 00:24:33,390 Ben, deixe-me entrar nun dos miñas carpetas de última hora. 542 00:24:33,390 --> 00:24:35,760 Dentro do aparello CS50. 543 00:24:35,760 --> 00:24:42,080 E deixe-me ir adiante e crear esta mesmo arquivo, inclúen estándar I / O punto h. 544 00:24:42,080 --> 00:24:42,875 Void main Int. 545 00:24:42,875 --> 00:24:46,000 E nós imos voltar no futuro como ao que int medios e que significa baleiro. 546 00:24:46,000 --> 00:24:49,130 Pero, por agora, imos facer Ola barra invertida mundo n, 547 00:24:49,130 --> 00:24:50,500 Así como fixemos no taboleiro. 548 00:24:50,500 --> 00:24:53,930 >> Déixeme gardar este ficheiro chamado ola.c. 549 00:24:53,930 --> 00:24:58,280 E agora, se eu queira compilar este Eu could-- me deixe zoom prazo em-- 550 00:24:58,280 --> 00:25:00,450 Ola facer entrar. 551 00:25:00,450 --> 00:25:02,645 E esta foi de novo esta liña moi enigmática. 552 00:25:02,645 --> 00:25:05,120 Pero agora, polo menos, unha palabra probablemente salta en ti. 553 00:25:05,120 --> 00:25:07,087 Clang é nesta liña que vimos antes. 554 00:25:07,087 --> 00:25:10,420 Agora hai unha morea de outras cousas francamente que imos trasfega as mans no para hoxe. 555 00:25:10,420 --> 00:25:14,020 Pero hai algúns subconxuntos, algúns personaxes aquí 556 00:25:14,020 --> 00:25:14,907 que son de interese. 557 00:25:14,907 --> 00:25:16,490 Pero eu estou indo a ir adiante e facelo. 558 00:25:16,490 --> 00:25:18,281 Eu estou indo a primeira carreira Ola, só para probar 559 00:25:18,281 --> 00:25:20,320 que este está a funcionar como era luns. 560 00:25:20,320 --> 00:25:22,330 Pero agora eu vou eliminar o programa. 561 00:25:22,330 --> 00:25:25,870 E así como tivemos estes nomes curtos última vez, 562 00:25:25,870 --> 00:25:29,787 a orde para a eliminación algo é rm, eliminar entrar. 563 00:25:29,787 --> 00:25:31,870 Está indo a obter un cuestións moi enigmática. 564 00:25:31,870 --> 00:25:35,210 Difícil de crer que se pode facer mesmo esta pregunta difícil de entender. 565 00:25:35,210 --> 00:25:38,100 Pero eliminar Ola ficheiro regular só medios quere borrar Ola. 566 00:25:38,100 --> 00:25:42,650 >> E podo ir adiante e escriba y para si, Intro, e agora ela se foi. 567 00:25:42,650 --> 00:25:45,130 O que isto significa agora, se eu borrar miña pantalla, 568 00:25:45,130 --> 00:25:47,301 é que, en vez de que fai vostede hello-- 569 00:25:47,301 --> 00:25:48,800 Sabe, eu estou quedando bo niso. 570 00:25:48,800 --> 00:25:50,690 Eu estou indo a executar o compilador min. 571 00:25:50,690 --> 00:25:53,330 Eu non teño un programa para descubrir o que o meu ficheiro chámase. 572 00:25:53,330 --> 00:25:55,370 Escribín ola.c, I sabe o que se chama, 573 00:25:55,370 --> 00:25:57,640 Estou claramente capaz de escribir isto. 574 00:25:57,640 --> 00:26:02,620 Entón, eu estou indo para adiante e non clang ola.c Intro. 575 00:26:02,620 --> 00:26:03,264 >> Parece funcionar. 576 00:26:03,264 --> 00:26:05,930 E non hai ningunha saída adicional, porque clang é o compilador. 577 00:26:05,930 --> 00:26:08,590 É o que está convertendo a código fonte para ceros e uns. 578 00:26:08,590 --> 00:26:12,870 Entón, se eu fago agora dot reducir Ola Intro, hm. 579 00:26:12,870 --> 00:26:14,630 Nova mensaxe de erro hoxe. 580 00:26:14,630 --> 00:26:17,610 Entón bash é só o nome do palpebrar ventá que estamos a usar. 581 00:26:17,610 --> 00:26:20,360 Isto é unha simplificación groseira, pero de momento isto é todo o que é, 582 00:26:20,360 --> 00:26:21,401 é o poder piscando. 583 00:26:21,401 --> 00:26:22,880 E é por iso que está berrando coa xente. 584 00:26:22,880 --> 00:26:25,690 >> Ningún ficheiro ou directorio é un pouco máis simple. 585 00:26:25,690 --> 00:26:28,190 Pero, certamente, eu fixen este código obxecto. 586 00:26:28,190 --> 00:26:30,930 Pero o problema é que, se eu escribir o comando 587 00:26:30,930 --> 00:26:34,650 para consultar o contido deste directorio, que é o que? 588 00:26:34,650 --> 00:26:36,210 ls para lista. 589 00:26:36,210 --> 00:26:39,332 Hai unha morea de cousas aquí, algúns dos cales viñeron co aparello, 590 00:26:39,332 --> 00:26:42,040 como a miña carpeta Desktop, Descargar cartafol, cartafol Dropbox, e todos 591 00:26:42,040 --> 00:26:42,850 estas cousas. 592 00:26:42,850 --> 00:26:45,410 Pero o que é interesante é ola.c, que 593 00:26:45,410 --> 00:26:47,286 Eu creei un momento atrás, con gedit. 594 00:26:47,286 --> 00:26:49,160 E o que é o máis estraño mirando nome aquí, 595 00:26:49,160 --> 00:26:53,110 quizais que non fixo vexa última hora en todo? 596 00:26:53,110 --> 00:26:54,710 >> a.out, non? 597 00:26:54,710 --> 00:26:56,920 Entón, de volta ao día, el se decidiu que só cando 598 00:26:56,920 --> 00:26:58,760 vostede compilar un programa , Por primeira vez, 599 00:26:58,760 --> 00:27:02,360 e non especificar o nome dun ficheiro, imos chamalo a. 600 00:27:02,360 --> 00:27:05,800 E a.out significa só que esta foi a saída do compilador. 601 00:27:05,800 --> 00:27:07,790 Polo tanto, é un nome horrible para un programa. 602 00:27:07,790 --> 00:27:12,820 Pero por esa lóxica, punto para cortar directorio actual, cortar a.out, 603 00:27:12,820 --> 00:27:16,102 debe dicir que hai, de feito, Ola meu programa mundial. 604 00:27:16,102 --> 00:27:17,560 Agora un pouco quentar exercicio tamén. 605 00:27:17,560 --> 00:27:20,420 Se eu queira cambiar o nome desta arquivo, acontece que 606 00:27:20,420 --> 00:27:23,000 mover un ficheiro dun nome a outro. 607 00:27:23,000 --> 00:27:28,750 A.out Entón mv, e entón eu pode chamalo Ola Intro. 608 00:27:28,750 --> 00:27:30,940 Polo tanto, este é un comando Linux. 609 00:27:30,940 --> 00:27:34,370 DOS tiña iso hai uns anos, O Windows ten unha fiestra de terminal 610 00:27:34,370 --> 00:27:36,460 dalgún tipo que parece así, Linux e Mac 611 00:27:36,460 --> 00:27:38,140 ordenadores teñen este poder piscando. 612 00:27:38,140 --> 00:27:41,490 Aínda que a maioría de nós probablemente raramente, ou nunca, usalo. 613 00:27:41,490 --> 00:27:44,590 >> Pero o que eu teño feito é realizar un programa, cuxo nome é mv, 614 00:27:44,590 --> 00:27:47,900 e eu teño sempre que dous argumentos, por así dicir. 615 00:27:47,900 --> 00:27:48,630 Dúas entradas. 616 00:27:48,630 --> 00:27:50,260 a.out é o nome orixinal. 617 00:27:50,260 --> 00:27:51,630 Ola é o novo nome. 618 00:27:51,630 --> 00:27:55,670 Entón, se eu agora facer corte de punto Ola, Intro, o que hai. 619 00:27:55,670 --> 00:28:00,770 E se eu fai dot a.out barra, o que espera que eu debería ver? 620 00:28:00,770 --> 00:28:02,250 >> Bash, non existe tal ficheiro ou directorio. 621 00:28:02,250 --> 00:28:03,350 Porque eu só renomeou. 622 00:28:03,350 --> 00:28:04,975 Entón, iso leva un pouco de tempo para se acostumar. 623 00:28:04,975 --> 00:28:06,977 Pero o conxunto de problemas 1 especificación será verdadeiramente 624 00:28:06,977 --> 00:28:08,810 soster a súa man algunhas desas minuciosa. 625 00:28:08,810 --> 00:28:11,050 Porque este é un completo distracción intelectual 626 00:28:11,050 --> 00:28:12,966 do máis interesante ideas en man, que 627 00:28:12,966 --> 00:28:15,310 é, en realidade, creando algo fóra do código. 628 00:28:15,310 --> 00:28:18,830 Pero imos facer unha modificación agora a este programa. 629 00:28:18,830 --> 00:28:23,150 >> Lembre que a última vez que fixen algo así, printf, diga o seu nome. 630 00:28:23,150 --> 00:28:25,790 E, de feito nós só fixo iso na pantalla grande por alí. 631 00:28:25,790 --> 00:28:30,640 E entón eu fixen cadea s queda GetString paréntese aberta, preto paréntese. 632 00:28:30,640 --> 00:28:33,430 E paren só taquigrafia notación de corchetes. 633 00:28:33,430 --> 00:28:36,460 Entón non GetString tomar calquera argumentos? 634 00:28:36,460 --> 00:28:38,440 Non hai entradas Non, pero precisa dos parénteses, 635 00:28:38,440 --> 00:28:41,830 porque iso é o que demarca a convocatoria dunha función. 636 00:28:41,830 --> 00:28:46,440 >> Entón, eu estou indo a ir adiante e tratar de realizar o compilador sobre este programa agora. 637 00:28:46,440 --> 00:28:50,774 Clang ola.c porque eu non cambiou o seu nome para o momento. 638 00:28:50,774 --> 00:28:51,940 E eu teño unha morea de erros. 639 00:28:51,940 --> 00:28:53,570 Imos reducir aquí. 640 00:28:53,570 --> 00:28:55,420 Se eu rolar para arriba de novo, como dixen a última vez, 641 00:28:55,420 --> 00:28:58,420 ao primeiro, mesmo erro que eu teño a última vez. 642 00:28:58,420 --> 00:29:04,210 Na liña 6 do ola.c eu tiven unha secuencia de identificador non declarado, 643 00:29:04,210 --> 00:29:05,590 quero dicir estándar en? 644 00:29:05,590 --> 00:29:06,750 Non. 645 00:29:06,750 --> 00:29:10,050 Porque o erro xa fixen nesta programa, se recorda a última vez? 646 00:29:10,050 --> 00:29:13,219 647 00:29:13,219 --> 00:29:15,010 Si, necesitamos da chamado Rodas pequenas 648 00:29:15,010 --> 00:29:16,510 que nós imos usar só por algunhas semanas. 649 00:29:16,510 --> 00:29:19,480 Pero eu teño especificar que tamén, nalgún lugar dentro do aparello, 650 00:29:19,480 --> 00:29:22,720 é un arquivo que escribimos só uns anos. 651 00:29:22,720 --> 00:29:26,500 Dentro dos cales son funcións como ao parecer GetString. 652 00:29:26,500 --> 00:29:35,160 Polo tanto, agora se eu volver aquí, aumentar o zoom, e re-executar clang ola.c. 653 00:29:35,160 --> 00:29:36,500 Droga, outro erro. 654 00:29:36,500 --> 00:29:38,590 Pero nós non vimos que antes. 655 00:29:38,590 --> 00:29:41,900 >> Esa é un pouco máis esotérico para descubrir. 656 00:29:41,900 --> 00:29:46,910 Pero esta é deliberadamente na pantalla, porque quería contar esta historia. 657 00:29:46,910 --> 00:29:51,280 Cando compila ola.c, así como a imaxe de antes suxerido, 658 00:29:51,280 --> 00:29:54,650 está convertendo só que código fonte para ceros e uns. 659 00:29:54,650 --> 00:30:00,340 Agora o equipo CS50 fai uns anos escribiu CS50.h, e un arquivo correspondente, 660 00:30:00,340 --> 00:30:01,640 CS50.c. 661 00:30:01,640 --> 00:30:04,490 E nós, hai uns anos, compilou os ficheiros 662 00:30:04,490 --> 00:30:07,290 nun arquivo que pasa para ser chamado CS50.o. 663 00:30:07,290 --> 00:30:09,180 >> Ou pode ser renomeado unha algunhas cousas diferentes. 664 00:30:09,180 --> 00:30:11,054 Pero iso é un xeito sinxelo de pensar sobre iso. 665 00:30:11,054 --> 00:30:14,960 Entón, nós compilamos CS50 da biblioteca en ceros e uns. 666 00:30:14,960 --> 00:30:20,340 Pero en ningún lugar que eu especificada que quero xuntar os ceros 667 00:30:20,340 --> 00:30:24,030 e aqueles para a miña Ola mundo programa cos ceros e uns 668 00:30:24,030 --> 00:30:29,760 que o persoal CS50 creei hai uns anos atrás nun programa completo. 669 00:30:29,760 --> 00:30:34,100 Todo o que eu especificar por escrito ola.c clang é compilar ola.c. 670 00:30:34,100 --> 00:30:38,380 >> Non contei para clang enlace nos ceros e uns 671 00:30:38,380 --> 00:30:41,650 que o persoal CS50 creado para ti hai algún tempo. 672 00:30:41,650 --> 00:30:48,280 Por iso é fácil de resolver, trazo l para enlace, CS50. 673 00:30:48,280 --> 00:30:52,600 E nós imos volver ver esta en pouco tempo unha e outra vez. 674 00:30:52,600 --> 00:30:54,420 Pero teña en conta o momento non houbo queixas. 675 00:30:54,420 --> 00:30:59,770 Polo tanto, agora se eu corro barra dot Ola, agora está a traballar. 676 00:30:59,770 --> 00:31:03,840 A pesar de que é un pouco erro sempre que eu só recriou o ficheiro? 677 00:31:03,840 --> 00:31:05,880 a.out. 678 00:31:05,880 --> 00:31:07,930 >> Entón deixe-me recuar por un momento. 679 00:31:07,930 --> 00:31:10,900 O programa que acaba de compilar ten as tres liñas de código. 680 00:31:10,900 --> 00:31:14,710 Cando eu execute Ola mundo, Ola un momento atrás, eu non vin o seu nome. 681 00:31:14,710 --> 00:31:17,080 E iso é porque eu execute o versión antiga do programa. 682 00:31:17,080 --> 00:31:22,700 Pero se eu, de feito, realizar dot a.out barra Entre, diga o seu nome, Rob, Ola, 683 00:31:22,700 --> 00:31:23,370 mundo. 684 00:31:23,370 --> 00:31:23,870 Hm. 685 00:31:23,870 --> 00:31:26,110 Isto é un tipo de erro. 686 00:31:26,110 --> 00:31:28,560 Probablemente quería dicir Rob, non? 687 00:31:28,560 --> 00:31:30,997 Entón, cal é a corrección aquí no código. 688 00:31:30,997 --> 00:31:31,872 Estudante: [inaudível]. 689 00:31:31,872 --> 00:31:38,415 690 00:31:38,415 --> 00:31:39,290 DAVID Malan: Exactamente. 691 00:31:39,290 --> 00:31:43,160 Entón eu só teño que facer esta emenda definitiva por iso que eu estou pasando nun espazo reservado, 692 00:31:43,160 --> 00:31:45,690 como un encher o baleiro, como fixemos hai pouco. 693 00:31:45,690 --> 00:31:47,870 Pero por cento s é agora que encher o baleiro. 694 00:31:47,870 --> 00:31:52,100 Entón finalmente imos revelar unha última detalle para que non hai máxica. 695 00:31:52,100 --> 00:31:54,090 Eu estou indo a ir adiante e se librar de hellow. 696 00:31:54,090 --> 00:31:56,070 Eu estou indo a ir adiante e se librar de a.out. 697 00:31:56,070 --> 00:31:58,410 Entón agora eu teño ningún programa, só o meu código fonte. 698 00:31:58,410 --> 00:32:01,100 E eu estou indo a executar un algo máis de mando, clang 699 00:32:01,100 --> 00:32:05,650 trazo o Ola ola.c trazo LCS50. 700 00:32:05,650 --> 00:32:08,700 >> Agora iso está empezando a sorte de ir por un oído e sae polo outro, quizais. 701 00:32:08,700 --> 00:32:10,366 Pero só desmembrar o que este fai. 702 00:32:10,366 --> 00:32:14,910 Clang é o compilador, LCS50 trazo deliberadamente ao final 703 00:32:14,910 --> 00:32:18,330 fai o que nunha frase? 704 00:32:18,330 --> 00:32:19,607 Ligazóns á biblioteca CS50. 705 00:32:19,607 --> 00:32:21,440 Agarra os ceros e aqueles que o equipo fixo 706 00:32:21,440 --> 00:32:23,310 e abarrota los no meu propio programa. 707 00:32:23,310 --> 00:32:27,040 Así, a última cuestión en apreciado é, o que é o trazo Ola probablemente 708 00:32:27,040 --> 00:32:30,530 facendo, mesmo se nunca ver esta sintaxe antes? 709 00:32:30,530 --> 00:32:34,920 >> Producir un programa que é non nomeou o a.out estándar. 710 00:32:34,920 --> 00:32:37,330 Pola contra, se chama Ola. 711 00:32:37,330 --> 00:32:39,460 Polo tanto, agora non hai a.out. 712 00:32:39,460 --> 00:32:42,660 Non hai tal ficheiro ou directorio, porque eu dixen explicitamente 713 00:32:42,660 --> 00:32:46,720 chamar este programa Ola, de xeito que Agora podo escribir un nome como este 714 00:32:46,720 --> 00:32:47,790 e telo comportarse. 715 00:32:47,790 --> 00:32:50,180 >> Agora, a verdade, neno é que desinteressante para ter 716 00:32:50,180 --> 00:32:52,170 para lembrar de todos os que minuciosa pouco, non? 717 00:32:52,170 --> 00:32:54,180 Entón, imos adiante e librarse Ola de novo. 718 00:32:54,180 --> 00:32:57,880 E imos agora volver a un mundo en que simplemente dicir Ola facer. 719 00:32:57,880 --> 00:33:00,410 Pero esa é a maxia que facer está facendo por ti, 720 00:33:00,410 --> 00:33:02,320 que é o aburrimento que que está facendo para ti. 721 00:33:02,320 --> 00:33:04,630 E, como os nosos programas e problemas se fan máis complexos, 722 00:33:04,630 --> 00:33:06,142 facer vai realmente ser o seu amigo. 723 00:33:06,142 --> 00:33:07,850 ¿Por que non moito tempo a partir de agora imos 724 00:33:07,850 --> 00:33:11,150 ter programas que están escritos non cun ficheiro, pero varios ficheiros, 725 00:33:11,150 --> 00:33:16,310 e facer pode automatizar o proceso de compilando todo isto para nós xuntos. 726 00:33:16,310 --> 00:33:20,620 >> Entón agora imprimir. 727 00:33:20,620 --> 00:33:24,960 printf está dentro deste arquivo, estándar I / O punto h, que xa vimos antes, 728 00:33:24,960 --> 00:33:26,980 pero hai máis para printf do que iso. 729 00:33:26,980 --> 00:33:30,482 Non hai barra invertida n, pero hai tamén unha morea de outras secuencias de escape. 730 00:33:30,482 --> 00:33:32,940 E secuencia de escape é só un xeito elegante de dicir algo 731 00:33:32,940 --> 00:33:35,990 que comeza con unha barra invertida, non unha barra, unha barra invertida 732 00:33:35,990 --> 00:33:37,920 e fai algo especial. 733 00:33:37,920 --> 00:33:43,770 E non vou me debruzouse sobre a maioría destes, pero por que hai barra invertida comiñas dobres, 734 00:33:43,770 --> 00:33:44,830 Que pensas? 735 00:33:44,830 --> 00:33:48,010 Por que hai esa secuencia estraña de caracteres, comiñas dobres barra invertida, 736 00:33:48,010 --> 00:33:50,505 por que pode que pode ser útil? 737 00:33:50,505 --> 00:33:51,380 Estudante: [inaudível]. 738 00:33:51,380 --> 00:33:56,594 739 00:33:56,594 --> 00:33:57,760 DAVID Malan: Exactamente, non? 740 00:33:57,760 --> 00:34:01,830 Debería de volta para o noso programa Ola Mundo que vimos algunhas veces agora, 741 00:34:01,830 --> 00:34:05,880 cada vez que vimos que Ola mundo programa tivemos comiñas dentro 742 00:34:05,880 --> 00:34:08,210 de que é Ola comas barra invertida mundo n. 743 00:34:08,210 --> 00:34:10,070 Pero pensar a si mesmo, E se realmente 744 00:34:10,070 --> 00:34:12,520 quería imprimir unha comiñas? 745 00:34:12,520 --> 00:34:16,100 O seu primeiro instinto pode ser, eu non sei sabe por que eu podería querer fazer-- aquí, 746 00:34:16,100 --> 00:34:18,780 que pode ser un pouco pasivo agresivo, Ola amigo. 747 00:34:18,780 --> 00:34:21,350 Podemos querer facer algo así. 748 00:34:21,350 --> 00:34:25,230 >> Pero por que isto agora é problemático? 749 00:34:25,230 --> 00:34:28,730 Ignorando as comiñas curvas de lado que keynote fixo por nós automaticamente. 750 00:34:28,730 --> 00:34:29,730 Por iso é problemático? 751 00:34:29,730 --> 00:34:36,719 752 00:34:36,719 --> 00:34:37,270 >> Exactamente. 753 00:34:37,270 --> 00:34:39,022 Porque temos como 4 comiñas. 754 00:34:39,022 --> 00:34:41,230 Ben, o primeiro probablemente continúa coa segunda, 755 00:34:41,230 --> 00:34:43,271 e quizais a unha cuarta continúa coa terceira, 756 00:34:43,271 --> 00:34:46,170 ou, quero dicir que eu non estou seguro, nin é o ordenador vai ser. 757 00:34:46,170 --> 00:34:48,352 Ordenadores de novo, compiladores unha vez máis, son moi idiota. 758 00:34:48,352 --> 00:34:50,060 Eles só vou facer o que ti dicirlles o que facer. 759 00:34:50,060 --> 00:34:54,270 E se non é inequívoco que probablemente vai publicar un erro. 760 00:34:54,270 --> 00:34:57,700 >> Se non é inequívoca canto á forma de facer unha manteiga de cacahuete e marmelada bocadillos 761 00:34:57,700 --> 00:34:59,510 cousas estrañas poderían chegar. 762 00:34:59,510 --> 00:35:00,580 É a mesma idea. 763 00:35:00,580 --> 00:35:03,100 Agora só tes que dicir que hai algunhas outras secuencias de escape, 764 00:35:03,100 --> 00:35:04,820 pero nós imos chegar a aqueles antes de tempo. 765 00:35:04,820 --> 00:35:07,410 En esencia, estas fuga secuencias representan algo 766 00:35:07,410 --> 00:35:10,480 que pode non ser capaz moi facilmente no teclado, 767 00:35:10,480 --> 00:35:12,010 sen confundir o ordenador. 768 00:35:12,010 --> 00:35:15,733 >> Agora, con todo, temos espazos reservados no printf. 769 00:35:15,733 --> 00:35:19,630 Por cento d, que tamén pode ser escrito en case todos os casos por cento i, 770 00:35:19,630 --> 00:35:21,610 é un espazo reservado para o tipo de datos? 771 00:35:21,610 --> 00:35:23,920 Que tipo de valor? 772 00:35:23,920 --> 00:35:24,920 Un número decimal. 773 00:35:24,920 --> 00:35:27,234 Entón, en realidade nós imos comezar usando por cento i porque é 774 00:35:27,234 --> 00:35:28,650 algo máis simple, como un número enteiro. 775 00:35:28,650 --> 00:35:29,550 I por cento. 776 00:35:29,550 --> 00:35:31,320 Un enteiro que pasa a ser decimal. 777 00:35:31,320 --> 00:35:35,690 >> Porcentaxe s xa dixen foi un espazo reservado para a cadea. 778 00:35:35,690 --> 00:35:38,630 Que é só unha palabra, unha frase, un parágrafo, un ensaio, calquera que sexa. 779 00:35:38,630 --> 00:35:40,830 É unha secuencia de personaxes de algún tempo. 780 00:35:40,830 --> 00:35:42,820 E veremos pronto algúns destes outros. 781 00:35:42,820 --> 00:35:45,950 Pero por cento c é a única personaxe. 782 00:35:45,950 --> 00:35:48,500 Porcentaxe f é a un número de punto flotante, 783 00:35:48,500 --> 00:35:50,860 como un número real que ten un punto decimal no mesmo, que 784 00:35:50,860 --> 00:35:52,550 está claro que non un enteiro. 785 00:35:52,550 --> 00:35:54,670 E non hai un todo chea de outras persoas tamén. 786 00:35:54,670 --> 00:35:56,990 >> Mentres tanto, na C, e en moitas linguas, 787 00:35:56,990 --> 00:35:58,650 temos diferentes tipos de datos. 788 00:35:58,650 --> 00:36:00,650 Diferentes tipos de cuncas de vidro se quere. 789 00:36:00,650 --> 00:36:03,830 A copa que eu usei última vez foi para as pelotas de ping-pong, 790 00:36:03,830 --> 00:36:06,990 pero tamén podemos almacenar diferente valores como caracteres e cadeas 791 00:36:06,990 --> 00:36:10,820 e enteiros nun recipiente, como unha variable, e C ten estes. 792 00:36:10,820 --> 00:36:14,020 Char é o tipo de datos, o tipo de variable, 793 00:36:14,020 --> 00:36:15,700 no que pode almacenar un carácter. 794 00:36:15,700 --> 00:36:19,560 Float é un tipo de variable en que pode almacenar un número real. 795 00:36:19,560 --> 00:36:21,220 >> Int é, por suposto, para un int. 796 00:36:21,220 --> 00:36:23,760 E, no canto ridiculamente nomeado un longo 797 00:36:23,760 --> 00:36:26,830 é o lugar onde podes almacenar esencialmente un número moi longo, mesmo con 798 00:36:26,830 --> 00:36:29,930 máis díxitos, a continuación, unha típico tenda pode int. 799 00:36:29,930 --> 00:36:32,420 Pero imos voltar a iso en pouco tempo. 800 00:36:32,420 --> 00:36:35,520 >> En CS50 dot h mentres tanto o outro ficheiro de cabeceira 801 00:36:35,520 --> 00:36:37,630 que vimos unha parella veces en uso, hai 802 00:36:37,630 --> 00:36:41,350 outros dous tipos de datos que non existen en C normalmente. 803 00:36:41,350 --> 00:36:45,000 Un deles é de cordas, e imos ver o unhas semanas que liñas realmente 804 00:36:45,000 --> 00:36:46,610 están debaixo do capó. 805 00:36:46,610 --> 00:36:47,950 E é bool. 806 00:36:47,950 --> 00:36:51,650 E un bool é unha variable que só pode asumir certos valores. 807 00:36:51,650 --> 00:36:54,370 E só con base na última semana explicación do scratch, 808 00:36:54,370 --> 00:36:56,680 e, máis recentemente, C, o que imaxinar 809 00:36:56,680 --> 00:37:01,770 son os dous valores posibles para algún recipiente que é do tipo bool? 810 00:37:01,770 --> 00:37:02,860 >> Si e non. 811 00:37:02,860 --> 00:37:03,870 Un e cero. 812 00:37:03,870 --> 00:37:04,502 Certo ou falso. 813 00:37:04,502 --> 00:37:07,460 E, de feito, é o último que tende ser convencional nunha programación 814 00:37:07,460 --> 00:37:10,030 linguaxe, dicindo algo como verdadeiro ou falso. 815 00:37:10,030 --> 00:37:13,160 >> Mentres tanto, a biblioteca CS50 vén con unha morea de funcionalidade 816 00:37:13,160 --> 00:37:16,640 que o persoal escribiu para ti, ademais de só recibindo unha cadea. 817 00:37:16,640 --> 00:37:20,910 Nós escribir en funcións de avance que pode obter un número enteiro a partir do usuario, 818 00:37:20,910 --> 00:37:22,990 obter un único personaxe, obter unha boia, que 819 00:37:22,990 --> 00:37:25,160 é só un número con coma decimal. 820 00:37:25,160 --> 00:37:28,290 Obter un longo tempo, realmente gran valor para o usuario. 821 00:37:28,290 --> 00:37:30,930 Por iso, só vin iso en acción en forma de GetString. 822 00:37:30,930 --> 00:37:33,230 Pero a través destas funcións en breve será capaz de escribir 823 00:37:33,230 --> 00:37:36,070 programas que reciben a entrada do usuario. 824 00:37:36,070 --> 00:37:39,230 >> Mentres tanto considero este programa, e considerar 825 00:37:39,230 --> 00:37:42,600 como podemos agora comezar a engadir a con novas construcións. 826 00:37:42,600 --> 00:37:44,530 Un rápido tour rápido e despois imos ver 827 00:37:44,530 --> 00:37:47,340 nalgún escribir algún programas manualmente nós mesmos. 828 00:37:47,340 --> 00:37:49,700 A partir deste momento, se quere aplicar unha condición, 829 00:37:49,700 --> 00:37:52,790 non vai mirar como un bo anaco de puzzle bonito. 830 00:37:52,790 --> 00:37:54,460 Vai parecer un pouco máis misteriosa. 831 00:37:54,460 --> 00:37:57,620 Pero esta é a canónica estrutura dunha condición en C. 832 00:37:57,620 --> 00:38:00,380 >> A palabra se, dous parénteses, no interior dos cales 833 00:38:00,380 --> 00:38:02,590 será algún tipo de expresión booleana. 834 00:38:02,590 --> 00:38:04,999 Agora a barra barra no medio, é dicir 835 00:38:04,999 --> 00:38:07,290 no momento máis ou menos como espazo reservado código pseudocódigo. 836 00:38:07,290 --> 00:38:11,576 Pero, máis propiamente, calquera liña de código en C que comeza con slash slash 837 00:38:11,576 --> 00:38:12,850 é un comentario. 838 00:38:12,850 --> 00:38:15,920 >> É como unha nota que se pode poñer nun ensaio, impreso en papel. 839 00:38:15,920 --> 00:38:17,290 É unha nota a si mesmo. 840 00:38:17,290 --> 00:38:20,100 Non ten ningún funcional impacto sobre o programa. 841 00:38:20,100 --> 00:38:23,580 É unha especie de recordatorio, é a súa propia documentación sobre o que está pasando. 842 00:38:23,580 --> 00:38:25,720 Entón faga iso no momento é unha especie de espazo reservado 843 00:38:25,720 --> 00:38:27,560 para o que está dentro desas claves 844 00:38:27,560 --> 00:38:29,810 finalmente, vai facer algo. 845 00:38:29,810 --> 00:38:35,160 >> Mentres tanto, ten dous garfos na estrada, outra se construír como este. 846 00:38:35,160 --> 00:38:37,024 Pode, se, elseif, else. 847 00:38:37,024 --> 00:38:39,690 Agora é importante ter en conta, sobre todo se ten sido buscando por aí 848 00:38:39,690 --> 00:38:42,480 recursos en liña para fóra da curiosidade, ou se incorporarse 849 00:38:42,480 --> 00:38:44,575 un do curso de libros recomendados sobre C, 850 00:38:44,575 --> 00:38:48,430 vai ver que os seres humanos teñen moitas de diferentes preferencias de como 851 00:38:48,430 --> 00:38:50,510 de expresarse en código. 852 00:38:50,510 --> 00:38:53,800 Algunhas persoas quere poñer o claves como eu fixen aquí. 853 00:38:53,800 --> 00:38:57,760 Algunhas persoas quere poñer o rizado tirantes, por exemplo, aquí enriba. 854 00:38:57,760 --> 00:39:01,700 >> Algunhas persoas quere poñer a elses aquí enriba e logo, este aquí. 855 00:39:01,700 --> 00:39:05,120 Non hai ningún número de formas de escribir código, e ningún deles 856 00:39:05,120 --> 00:39:06,566 ten razón per se. 857 00:39:06,566 --> 00:39:08,440 Aínda hai algúns que son moi mal. 858 00:39:08,440 --> 00:39:11,315 Pero hai no-- se este é en definitiva, un debate moi relixioso. 859 00:39:11,315 --> 00:39:13,940 De feito, un dos máis irritantes cousas sobre ciencia da computación 860 00:39:13,940 --> 00:39:16,310 é como opinativo científicos da computación pode ser. 861 00:39:16,310 --> 00:39:19,880 E vai atopar ao longo do tempo que mesmo a desenvolver preferencias persoais 862 00:39:19,880 --> 00:39:22,130 sobre o xeito no que o código debe ollar. 863 00:39:22,130 --> 00:39:27,162 >> Non só se comportan, e non só crear unha saída, pero como se debe ollar esteticamente. 864 00:39:27,162 --> 00:39:30,120 Entón, o que imos facer é oriente-lo ao longo o camiño para, polo menos por agora, 865 00:39:30,120 --> 00:39:34,825 CS50 un estilo estándar que polo menos mantén as cousas uniforme e fácil de ler. 866 00:39:34,825 --> 00:39:37,330 Pero máis sobre os distincións antes de tempo. 867 00:39:37,330 --> 00:39:41,830 >> Unha expresión booleana en C, se quería dicir se esa condición sexa verdadeira 868 00:39:41,830 --> 00:39:44,650 e esta é outra condición certo, non escribir a palabra 869 00:39:44,650 --> 00:39:46,610 e, como faría en inglés. 870 00:39:46,610 --> 00:39:50,580 Vostede si usar e comercial e comercial, por razóns que vou volver. 871 00:39:50,580 --> 00:39:54,520 Se quere dicir ou usa dous barras verticais, que nun teclado americano 872 00:39:54,520 --> 00:39:57,650 adoita enriba do Enter seguinte clave para a barra invertida. 873 00:39:57,650 --> 00:40:03,080 E iso só quere dicir que se esta condición este ou outra condición é verdadeira facelo. 874 00:40:03,080 --> 00:40:05,210 >> Mentres tanto hai esa cousa tola, que 875 00:40:05,210 --> 00:40:07,760 vai ter ocasión usar de cando en vez. 876 00:40:07,760 --> 00:40:10,390 Pero é só unha alternativa forma de expresarse. 877 00:40:10,390 --> 00:40:12,400 Este, por agora, imos estipular, é só 878 00:40:12,400 --> 00:40:16,880 outra forma divertida de expresar se, elseif, elseif, elseif, elseif. 879 00:40:16,880 --> 00:40:19,720 É só formato en termos de casos, onde literalmente 880 00:40:19,720 --> 00:40:23,420 enumerar os valores que pode querer comprobar. 881 00:40:23,420 --> 00:40:24,410 >> Mentres tanto lazos. 882 00:40:24,410 --> 00:40:26,842 Vimos unha comparación de Acoitelado cun lazo. 883 00:40:26,842 --> 00:40:29,550 E eu vou acenar a man en o que cada unha desas cousas significa. 884 00:40:29,550 --> 00:40:33,520 Pero teña en conta que un loop será moi moitas veces comezan coa palabra chave para. 885 00:40:33,520 --> 00:40:36,350 Ou será que vai comezar coa palabra clave cando. 886 00:40:36,350 --> 00:40:41,360 Ou será que vai comezar coa palabra clave facer, e rematan coa palabra chave á vez. 887 00:40:41,360 --> 00:40:43,920 >> Pero o que estamos a piques de ver é as cousas máis como este. 888 00:40:43,920 --> 00:40:47,950 Aquí está, en xeral, en C, como pode declarar unha variable e darlle un valor. 889 00:40:47,950 --> 00:40:50,610 En C non basta, como en perigo, só 890 00:40:50,610 --> 00:40:52,810 dicir-me dar unha variable chamada algo. 891 00:40:52,810 --> 00:40:55,960 Ten que dicir C, e dicir seu compilador, máis en concreto, 892 00:40:55,960 --> 00:40:58,680 que tipo de valor que quero poñer na tixela de vidro. 893 00:40:58,680 --> 00:40:59,610 >> É un enteiro? 894 00:40:59,610 --> 00:41:02,210 Se é así, ten que literalmente dicir int e despois 895 00:41:02,210 --> 00:41:04,220 nome da variable, logo, un punto e coma. 896 00:41:04,220 --> 00:41:08,050 Se en vez quería corda e chamado É como eu fixen o meu código aquí hoxe, 897 00:41:08,050 --> 00:41:10,920 diría comas cadea s. 898 00:41:10,920 --> 00:41:14,200 Xa que quere darlle un valor entón podes usar o signo igual, 899 00:41:14,200 --> 00:41:16,211 tamén coñecida como a operador de asignación. 900 00:41:16,211 --> 00:41:17,960 E entenda como cada destas liñas de código 901 00:41:17,960 --> 00:41:20,650 ten o punto e coma ao final do mesmo. 902 00:41:20,650 --> 00:41:22,550 >> Pero, francamente, iso só parece un pouco feo. 903 00:41:22,550 --> 00:41:26,580 Por que eu non podo dicir ao ordenador, dar me unha variable e inicializa-lo a cero. 904 00:41:26,580 --> 00:41:28,380 Ou sexa, dáme un recipiente de vidro baleiro. 905 00:41:28,380 --> 00:41:28,980 Mentres se poida. 906 00:41:28,980 --> 00:41:32,250 E así unha das xuízo chama vostede Ten que facer durante o tempo estilística 907 00:41:32,250 --> 00:41:36,290 é, escribe o teu código coma este, é vostede tipo de limpa-lo e impresionar 908 00:41:36,290 --> 00:41:39,040 persoas por escribir dúas liñas como só un. 909 00:41:39,040 --> 00:41:41,830 E isto sería considerado en xeral, unha forma máis elegante 910 00:41:41,830 --> 00:41:43,870 de escribir o seu código estilisticamente. 911 00:41:43,870 --> 00:41:45,200 >> Funcións estamos naturalmente visto. 912 00:41:45,200 --> 00:41:46,340 Eles van ter este formato. 913 00:41:46,340 --> 00:41:48,881 O nome dunha función, algúns parénteses, e despois pode que algúns 914 00:41:48,881 --> 00:41:49,910 cousas dentro. 915 00:41:49,910 --> 00:41:52,540 Ou pode ver os usos de múltiples funcións lado 916 00:41:52,540 --> 00:41:55,980 a banda, como algo parecido a isto. 917 00:41:55,980 --> 00:41:59,390 Agora como unha tanxente, fai esa broma agora ten sentido? 918 00:41:59,390 --> 00:42:03,566 919 00:42:03,566 --> 00:42:04,960 >> [Risas] 920 00:42:04,960 --> 00:42:09,360 Iso non significa que é divertido, pero non, se cadra, facer un pouco máis de sentido. 921 00:42:09,360 --> 00:42:12,140 Entón agora imos entrar na Aparello CS50 por un momento. 922 00:42:12,140 --> 00:42:14,640 E déixeme abrir unha provocación aquí. 923 00:42:14,640 --> 00:42:17,470 >> E, de feito unha das razóns para a introdución de catálogo IKEA 924 00:42:17,470 --> 00:42:20,080 e chiscando a imaxe do iPhone un pouco atrás 925 00:42:20,080 --> 00:42:24,700 era, en realidade, o lazo en conxunto feito de que só uns anos, en 2007, 926 00:42:24,700 --> 00:42:26,540 este anaco de código foi liberada, o que foi 927 00:42:26,540 --> 00:42:29,820 un dos primeiros implementación dunha parte do programa 928 00:42:29,820 --> 00:42:31,494 que fai o que se chama jailbreaking. 929 00:42:31,494 --> 00:42:34,410 Para quen non coñece, o jailbreak algo así como un teléfono ou un iPhone 930 00:42:34,410 --> 00:42:37,680 significa, esencialmente, figurando como facer as cousas 931 00:42:37,680 --> 00:42:39,864 que a empresa quen fixo iso non tiña a intención. 932 00:42:39,864 --> 00:42:42,780 Como quere instalar determinado software que non está na tenda de aplicacións, 933 00:42:42,780 --> 00:42:45,405 jailbreaking o teléfono que fai cousas como esta e moito máis. 934 00:42:45,405 --> 00:42:47,447 Pero o que era diversión en 2007-- e houbo 935 00:42:47,447 --> 00:42:49,780 decenas de versións distintas estas cousas, desde entón, 936 00:42:49,780 --> 00:42:53,540 en todo tipo de languages-- é que este programa aquí, chamado iUnlock, 937 00:42:53,540 --> 00:42:57,036 foi realmente escrito en C. E así eu tirado para arriba o código fonte para iso, 938 00:42:57,036 --> 00:42:59,910 só para o tipo de mostrar algúns dos as semellanzas coas construcións 939 00:42:59,910 --> 00:43:01,450 estamos discutindo ata agora. 940 00:43:01,450 --> 00:43:05,150 Agora hai moito máis complexidade aquí do que xa vimos en clase. 941 00:43:05,150 --> 00:43:07,160 Déixeme ir cara arriba un pouco aquí. 942 00:43:07,160 --> 00:43:11,520 >> Pero teña en conta así these-- notamos algúns coisas-- pero observar estas liñas aquí, 943 00:43:11,520 --> 00:43:14,090 incluíndo o estándar I / O punto h. 944 00:43:14,090 --> 00:43:17,660 E tudo-- liña 24, por favor-- notar E / S estándar 945 00:43:17,660 --> 00:43:21,380 dot h e unha morea de outros arquivos que aparentemente outros 946 00:43:21,380 --> 00:43:22,160 ter escrito. 947 00:43:22,160 --> 00:43:24,850 E, se desprazar para abaixo esta, pouco arbitraria, 948 00:43:24,850 --> 00:43:27,910 Repare que eu non sei como escribir todo isto aínda me necesariamente, 949 00:43:27,910 --> 00:43:28,880 pero non hai que. 950 00:43:28,880 --> 00:43:30,400 Entón, ao parecer, iso ten unha filial. 951 00:43:30,400 --> 00:43:33,210 >> E se eu rolar para abaixo un pouco aínda hai outro caso. 952 00:43:33,210 --> 00:43:38,210 Se eu rolar para arriba, eu creo que arredor da liña 100 que vin a. 953 00:43:38,210 --> 00:43:40,020 Entón, eu non estou moi seguro como funciona aínda, 954 00:43:40,020 --> 00:43:43,180 pero iso é un loop que vai déixeme iterado un determinado número de veces. 955 00:43:43,180 --> 00:43:45,230 E se eu percorrer todo o camiño para o fondo 956 00:43:45,230 --> 00:43:51,020 Vexo que hai unha funcionar aquí chamado 957 00:43:51,020 --> 00:43:54,570 principal, e algúns créditos adicionais para o seu pracer da lectura. 958 00:43:54,570 --> 00:43:57,830 >> Polo tanto, esta é só a dizer-- e poremos esta liña entre a fonte do curso 959 00:43:57,830 --> 00:44:01,480 código hoje-- que mesmo algúns destes dispositivos que nós tomamos para concedida, 960 00:44:01,480 --> 00:44:05,130 ao final do día aínda está usando estas construcións básicas que nós 961 00:44:05,130 --> 00:44:07,430 xa foi introducindo ata agora. 962 00:44:07,430 --> 00:44:08,620 Isto é suficiente daquel. 963 00:44:08,620 --> 00:44:11,480 Todo ben, entón agora imos realmente construír algo. 964 00:44:11,480 --> 00:44:15,640 >> Imos aló algo como ola.c, e abrir isto, 965 00:44:15,640 --> 00:44:17,170 imos escribir este programa aquí. 966 00:44:17,170 --> 00:44:19,850 Eu estou indo a ir adiante e escribir un programa chamado adder.c, 967 00:44:19,850 --> 00:44:23,310 cuxo propósito na vida vai ser como a miña primeira calculadora super sinxelo 968 00:44:23,310 --> 00:44:24,840 que engade un par de números. 969 00:44:24,840 --> 00:44:27,050 Non porque é un disco problema, senón porque 970 00:44:27,050 --> 00:44:29,390 permíteme agora amarre xuntos algunhas cousas. 971 00:44:29,390 --> 00:44:33,100 Entón, eu estou indo a ir adiante e inclúen E / S estándar dot h e CS50 punto h. 972 00:44:33,100 --> 00:44:34,670 Vou dicir void main int. 973 00:44:34,670 --> 00:44:36,545 E de novo no futuro imos volver a el 974 00:44:36,545 --> 00:44:38,560 en neste contexto e medio baleiros. 975 00:44:38,560 --> 00:44:43,340 >> E agora eu vou dicir unha cousa como printf, dáme un enteiro. 976 00:44:43,340 --> 00:44:47,610 E agora na miña segunda liña, como fago para expresar tal 977 00:44:47,610 --> 00:44:50,980 que quero declarar unha variable que vai gardar un int? 978 00:44:50,980 --> 00:44:55,470 Literalmente, o que eu escriba, se eu queira crear unha variable que almacena un int 979 00:44:55,470 --> 00:44:58,270 que diría? 980 00:44:58,270 --> 00:44:59,650 int a igual getInt. 981 00:44:59,650 --> 00:45:00,485 Por suposto, así que funciona. 982 00:45:00,485 --> 00:45:02,360 E só para consistencia co código que 983 00:45:02,360 --> 00:45:04,485 ver en liña, deixe-me cambiar isto para x, só porque x 984 00:45:04,485 --> 00:45:06,830 é un nome común variable de usar, polo menos en álxebra. 985 00:45:06,830 --> 00:45:08,720 Agora, deixe-me ir adiante e facer printf novo. 986 00:45:08,720 --> 00:45:10,692 Dáme outro enteiro. 987 00:45:10,692 --> 00:45:12,900 E agora eu vou tipo de aprender con esta configuración, 988 00:45:12,900 --> 00:45:14,490 Vou dicir int y comeza a getInt. 989 00:45:14,490 --> 00:45:16,340 >> E nós non usei GetInt antes, pero só 990 00:45:16,340 --> 00:45:19,860 como GetString vai e colle unha corda, como Javier fixo do público, 991 00:45:19,860 --> 00:45:22,780 semellante fai GetInt comezar a palpebrar o poder. 992 00:45:22,780 --> 00:45:26,750 E efectivamente espera para o usuario para darlle un número enteiro, escribindo-o 993 00:45:26,750 --> 00:45:27,900 e premer Intro. 994 00:45:27,900 --> 00:45:30,850 Agora por fin vou facer esta, a suma printf de-- 995 00:45:30,850 --> 00:45:36,080 e me deixe agora-- fantasía i por cento e cento i está presente 996 00:45:36,080 --> 00:45:39,270 i Punto de Exclamación barra invertida n. 997 00:45:39,270 --> 00:45:42,750 E o que pensas que eu vou poñer agora como as entradas adicionais 998 00:45:42,750 --> 00:45:44,620 para printf? 999 00:45:44,620 --> 00:45:47,380 >> Non quero dicir literalmente entre comiñas x. 1000 00:45:47,380 --> 00:45:52,210 Quero clase en xe entón, e agora imos comezar a fantasía 1001 00:45:52,210 --> 00:45:54,420 e imos supor podemos facer o que queiramos. 1002 00:45:54,420 --> 00:45:56,330 O que quere dicir a continuación? 1003 00:45:56,330 --> 00:45:57,070 x máis y. 1004 00:45:57,070 --> 00:45:58,520 E, de feito, que vai funcionar. 1005 00:45:58,520 --> 00:46:01,760 É minimamente linguaxes de programación facer entender a aritmética básica, 1006 00:46:01,760 --> 00:46:03,500 e por iso debe de feito funcionan. 1007 00:46:03,500 --> 00:46:06,730 >> Entón deixe-me ir adiante e fan víbora na miña fiestra branco e negro 1008 00:46:06,730 --> 00:46:08,090 aquí en baixo, Intro. 1009 00:46:08,090 --> 00:46:10,830 Liña críptica pero ningún erro mensaxe, entón iso é bo. 1010 00:46:10,830 --> 00:46:14,410 Dot cortar víbora, me dea un número enteiro, 1. 1011 00:46:14,410 --> 00:46:16,230 Dáme outro enteiro, 2. 1012 00:46:16,230 --> 00:46:18,770 A suma de 1 e 2 é 3. 1013 00:46:18,770 --> 00:46:21,730 >> Todo ben, entón unha ben sinxela programa, pero o que está feito? 1014 00:46:21,730 --> 00:46:25,680 El me permitiu usar unha función chamar aquí, chamar outra función aquí, 1015 00:46:25,680 --> 00:46:29,260 dúas chamadas a GetInt, un terceira chamada a printf, 1016 00:46:29,260 --> 00:46:30,720 e logo usar estes espazos reservados. 1017 00:46:30,720 --> 00:46:33,160 Polo tanto, é un pouco máis sofisticado do que a última vez. 1018 00:46:33,160 --> 00:46:35,260 Pero e se eu queira estar un pouco máis extravagante? 1019 00:46:35,260 --> 00:46:38,900 >> Deixe-me ir adiante e facelo agora. 1020 00:46:38,900 --> 00:46:42,890 Deixe-me ir adiante e crear un novo ficheiro chamado condicións cero. 1021 00:46:42,890 --> 00:46:44,890 E eu estou indo a gardar moito tempo para as clases de amor 1022 00:46:44,890 --> 00:46:48,260 e basta pegar no que código como un punto de partida. 1023 00:46:48,260 --> 00:46:51,510 E agora eu só vou poñer algo novo aquí no medio. 1024 00:46:51,510 --> 00:46:55,889 Entón printf Gustaríame un número enteiro por favor. 1025 00:46:55,889 --> 00:46:58,180 E todo este código está dispoñible na páxina web do curso, 1026 00:46:58,180 --> 00:47:00,556 non precisa escriba-lo todo para fóra na aula, se o prefire non. 1027 00:47:00,556 --> 00:47:02,638 int, e agora eu vou utilizar, no canto de x e y, 1028 00:47:02,638 --> 00:47:05,270 Vou usar n, que é probablemente o nome máis común 1029 00:47:05,270 --> 00:47:09,220 a un número enteiro de un programa de ordenador. 1030 00:47:09,220 --> 00:47:12,060 E agora quero facer un pouco xuízo aquí. 1031 00:47:12,060 --> 00:47:15,460 Vou ver se n é maior que 0, entón 1032 00:47:15,460 --> 00:47:23,670 Vou dicir berros printf--, printf-- escolleu un número positivo, 1033 00:47:23,670 --> 00:47:25,370 punto de exclamación barra invertida n. 1034 00:47:25,370 --> 00:47:26,460 Peche esa. 1035 00:47:26,460 --> 00:47:33,150 Máis eu vou imprimir printf escolleu un número negativo. 1036 00:47:33,150 --> 00:47:35,377 >> Agora, antes de berrar comigo, imos realizar este programa. 1037 00:47:35,377 --> 00:47:36,210 Deixe-me ir para abaixo aquí. 1038 00:47:36,210 --> 00:47:40,730 E como fago para compilar un programa chamado condicións trazo 0? 1039 00:47:40,730 --> 00:47:42,300 Fai condicións trazo 0. 1040 00:47:42,300 --> 00:47:45,560 Tipo de un nome estúpido, mas-- caramba. 1041 00:47:45,560 --> 00:47:47,560 OK, bo momento de ensino. 1042 00:47:47,560 --> 00:47:48,410 Por que que romper? 1043 00:47:48,410 --> 00:47:51,360 1044 00:47:51,360 --> 00:47:54,710 >> O que eu accidentalmente chamar este ficheiro? 1045 00:47:54,710 --> 00:47:56,876 Pode tipo de inferir a partir da guía aquí. 1046 00:47:56,876 --> 00:47:58,750 Polo tanto, non é malo que eu Fíxoo porque esta 1047 00:47:58,750 --> 00:48:00,208 ocorrerá quizais para algúns de vós. 1048 00:48:00,208 --> 00:48:03,880 Entón eu chamei meu accidentalmente 0 código fonte condición. 1049 00:48:03,880 --> 00:48:09,950 Pero o meu código fonte por convención debe estar nun ficheiro chamado condición 0 trazo c, 1050 00:48:09,950 --> 00:48:11,720 é dicir alí o punto c. 1051 00:48:11,720 --> 00:48:12,610 >> Entón deixe-me corrixir isto. 1052 00:48:12,610 --> 00:48:16,880 Así como o Microsoft Word que podo ir para arriba para Gardar como e facer condición 0 punto c. 1053 00:48:16,880 --> 00:48:20,100 Agora é só para ser ordenado eu son indo para adiante e retire 1054 00:48:20,100 --> 00:48:23,020 condición 0, o que foi a miña versión antiga. 1055 00:48:23,020 --> 00:48:26,550 E agora imos facer facer condición 0, Intro. 1056 00:48:26,550 --> 00:48:27,870 OK, parece bo. 1057 00:48:27,870 --> 00:48:29,510 >> Condición 0, Intro. 1058 00:48:29,510 --> 00:48:33,530 Gustaríame un número enteiro, por favor, 50, escolleu un número positivo. 1059 00:48:33,530 --> 00:48:35,390 Agora, que tal negativa de 50? 1060 00:48:35,390 --> 00:48:37,660 Escolleu un número negativo. 1061 00:48:37,660 --> 00:48:39,605 Que tal momento, 0. 1062 00:48:39,605 --> 00:48:42,250 1063 00:48:42,250 --> 00:48:45,350 Seguro que 0 non é negativo. 1064 00:48:45,350 --> 00:48:47,780 >> Polo tanto, este é un tipo de erro lóxico. 1065 00:48:47,780 --> 00:48:50,680 Como fago para corrixir isto? 1066 00:48:50,680 --> 00:48:57,260 Else se n é menor que 0, faino, senón podemos ter unha de tres vías filial aquí, 1067 00:48:57,260 --> 00:49:01,740 printf escolleu 0. 1068 00:49:01,740 --> 00:49:06,150 Polo tanto, agora se eu executar novamente este programa, despois de compilalo lo 1069 00:49:06,150 --> 00:49:10,790 novo co make, e agora realizar de novo condición 0, o que eu vou ver aquí 1070 00:49:10,790 --> 00:49:14,570 é 0 dáme esa saída. 1071 00:49:14,570 --> 00:49:16,280 Entón onde estamos indo con iso? 1072 00:49:16,280 --> 00:49:18,930 >> Ben, é moi doado perder de vista do bosque para as árbores. 1073 00:49:18,930 --> 00:49:23,590 E así nos permiten concluír con este vídeo de 2 minutos e media 1074 00:49:23,590 --> 00:49:25,710 en definitiva, que é un pouco dun anuncio de Google, 1075 00:49:25,710 --> 00:49:28,850 pero que en realidade é a proba que mesmo utilizando estes construción básico 1076 00:49:28,850 --> 00:49:33,020 bloques que poden finalmente facer unha vez temos un pouco de programación 1077 00:49:33,020 --> 00:49:34,463 ilustrado baixo nosos cinta. 1078 00:49:34,463 --> 00:49:35,150 >> [MÚSICA DE XOGO] 1079 00:49:35,150 --> 00:49:38,370 1080 00:49:38,370 --> 00:49:40,540 >> SAROO Brierley (narración): Foi hai 26 anos, 1081 00:49:40,540 --> 00:49:42,470 e eu estaba a piques de completar 5. 1082 00:49:42,470 --> 00:49:45,465 Chegamos á estación de tren e embarcamos noso tren xuntos. 1083 00:49:45,465 --> 00:49:48,010 Meu irmán acaba de dicir que eu vou estar aquí, e eu vou volver. 1084 00:49:48,010 --> 00:49:51,140 E eu penso, ben, vostede sabe, Podería moi ben só ir durmir 1085 00:49:51,140 --> 00:49:52,690 e el só me vai espertar. 1086 00:49:52,690 --> 00:49:55,145 E cando eu acordo á seguinte día, o conxunto de coche 1087 00:49:55,145 --> 00:49:59,125 estaba baleiro nun tren desgovernado, unha pantasma tren me levar Non sei onde. 1088 00:49:59,125 --> 00:50:01,980 1089 00:50:01,980 --> 00:50:06,280 >> Eu fun adoptado para a Australia, para unha familia australiana. 1090 00:50:06,280 --> 00:50:09,710 E a nai tiña decorado miña sala co mapa da India, 1091 00:50:09,710 --> 00:50:11,950 que puxo ao lado de miña cama. 1092 00:50:11,950 --> 00:50:15,830 Eu acordo todas as mañás vendo este mapa, e, polo tanto, 1093 00:50:15,830 --> 00:50:18,530 que tipo de mantidas as memorias vivas. 1094 00:50:18,530 --> 00:50:20,530 As persoas dicían: es intentando atopar unha agulla 1095 00:50:20,530 --> 00:50:23,560 nun palheiro, Saroo nunca vai atopalo. 1096 00:50:23,560 --> 00:50:28,540 >> Eu brillou dos lugares que eu adoitaba ir, os flashes da miña familia 1097 00:50:28,540 --> 00:50:29,890 afronta. 1098 00:50:29,890 --> 00:50:34,060 Había a imaxe da miña nai, sentir-se coas pernas cruzadas, 1099 00:50:34,060 --> 00:50:35,740 só observándose a chorar. 1100 00:50:35,740 --> 00:50:38,160 A vida é tan difícil. 1101 00:50:38,160 --> 00:50:41,237 Ese era o meu tesouro. 1102 00:50:41,237 --> 00:50:44,320 E eu estaba mirando para Google Map e entender que non é o Google Earth tamén. 1103 00:50:44,320 --> 00:50:48,140 Nun mundo onde podes aumentar o zoom, Eu comecei a ter todos eses pensamentos 1104 00:50:48,140 --> 00:50:51,500 e as posibilidades que isto podería facer por min. 1105 00:50:51,500 --> 00:50:54,890 Eu dixen a min mesmo, xa sabe, ten ten todas aquelas memorias fotográficas 1106 00:50:54,890 --> 00:50:58,590 e marcos de onde é, e Vostede sabe o que a cidade se parece. 1107 00:50:58,590 --> 00:51:03,060 Esta podería ser unha aplicación que pode usar para atopar o seu camiño de volta. 1108 00:51:03,060 --> 00:51:06,720 >> Eu penso, ben, eu vou poñer unha punto na estación de tren de Calcuta, 1109 00:51:06,720 --> 00:51:10,890 e unha liña de raio, xa sabe, que debe estar a buscar en torno a esta área. 1110 00:51:10,890 --> 00:51:13,750 Eu medio que me deparei estes carrís do tren. 1111 00:51:13,750 --> 00:51:18,160 E eu comecei a seguila, e Cheguei a unha estación de tren que 1112 00:51:18,160 --> 00:51:22,228 reflectía a mesma imaxe que estaba en miñas memorias. 1113 00:51:22,228 --> 00:51:23,707 Todo combinado. 1114 00:51:23,707 --> 00:51:27,950 Eu só penso que si, eu sei para onde estou indo. 1115 00:51:27,950 --> 00:51:30,116 Eu só vou deixar o mapa que teño na miña cabeza 1116 00:51:30,116 --> 00:51:33,080 guía-me e levarme de volta a miña cidade natal. 1117 00:51:33,080 --> 00:51:36,420 >> Cheguei á porta do a casa en que eu nacín. 1118 00:51:36,420 --> 00:51:39,140 E andaba preto de 15 metros en torno ao canto, 1119 00:51:39,140 --> 00:51:42,980 había tres mulleres en pé fóra, adxacentes uns ós outros. 1120 00:51:42,980 --> 00:51:47,830 E o do medio deu un paso adiante, e Eu só penso, esta é a súa nai. 1121 00:51:47,830 --> 00:51:53,450 Ela veu para adiante, ela me abrazou, e estabamos alí por preto de cinco minutos. 1122 00:51:53,450 --> 00:51:56,530 1123 00:51:56,530 --> 00:51:59,000 >> Ela colleu a miña man e ela me levou para a casa 1124 00:51:59,000 --> 00:52:02,450 e colleu o teléfono, onde tocou a miña irmá e meu irmán 1125 00:52:02,450 --> 00:52:05,600 dicir que, vostede sabe, teu irmán ten só 1126 00:52:05,600 --> 00:52:09,340 de súpeto apareceu como unha pantasma. 1127 00:52:09,340 --> 00:52:12,440 E entón a familia estaba reunida de novo. 1128 00:52:12,440 --> 00:52:15,110 Todo é todo de bo, Eu axudei a miña nai para fóra, 1129 00:52:15,110 --> 00:52:17,110 ela non ten que ser escravizado. 1130 00:52:17,110 --> 00:52:19,555 Pode vivir o resto da súa vida en paz. 1131 00:52:19,555 --> 00:52:23,460 >> Foi unha agulla nun palheiro, pero a agulla estaba alí. 1132 00:52:23,460 --> 00:52:24,400 Todo está alí. 1133 00:52:24,400 --> 00:52:28,260 Todo o que temos no mundo é, ao toque dun botón. 1134 00:52:28,260 --> 00:52:32,010 Pero tes que ter a vontade ea a determinación de querer. 1135 00:52:32,010 --> 00:52:32,950 >> [MÚSICA DE XOGO] 1136 00:52:32,950 --> 00:52:36,420 1137 00:52:36,420 --> 00:52:38,170 DAVID Malan: Marabillosas declaración doce 1138 00:52:38,170 --> 00:52:40,540 só o que pode agora facer coa tecnoloxía. 1139 00:52:40,540 --> 00:52:43,390 Imos velo a próxima semana. 1140 00:52:43,390 --> 00:52:44,374