1 00:00:00,000 --> 00:00:01,500 >> [REPRODUCCIÓN DE MÚSICA] 2 00:00:01,500 --> 00:00:11,000 3 00:00:11,000 --> 00:00:16,110 >> DAVID MALAN: Bueno este es CS50 y este es el final de la primera semana. 4 00:00:16,110 --> 00:00:20,760 Así que me gustaría presentarles a mi ex aconsejado, Andel Duff, que no sólo hace 5 00:00:20,760 --> 00:00:25,460 iPhone 5 se encuentra, así como este atril, también hace que los automóviles. 6 00:00:25,460 --> 00:00:27,927 7 00:00:27,927 --> 00:00:29,510 ANSEL DUFF: ¿Cómo te va, todo el mundo? 8 00:00:29,510 --> 00:00:31,980 Sólo quiero contarles un poco poco acerca de la Fórmula SAE, de la que yo 9 00:00:31,980 --> 00:00:32,604 soy el capitán. 10 00:00:32,604 --> 00:00:33,437 Es un equipo del MIT. 11 00:00:33,437 --> 00:00:35,520 Sólo quiero decirte chicos un poco sobre ella 12 00:00:35,520 --> 00:00:37,520 y espero generar algo de interés. 13 00:00:37,520 --> 00:00:41,590 >> Así que déjenme hablarles a través de un par de cosas acerca de nuestro equipo. 14 00:00:41,590 --> 00:00:43,640 Así que estamos completamente funcionamiento del estudiante, en el que todo 15 00:00:43,640 --> 00:00:47,300 el diseño de los miembros, simular prueba, y el fabricante de un subsistema 16 00:00:47,300 --> 00:00:48,090 del coche. 17 00:00:48,090 --> 00:00:51,240 Tenemos nuestro propio taller de mecánica y garajes, y N52-- o lo siento, 18 00:00:51,240 --> 00:00:54,140 N51-- que es el mismo edificio como el Museo de la Ciencia MIT. 19 00:00:54,140 --> 00:00:55,990 Y nosotros somos el pueblo que conducen el coche. 20 00:00:55,990 --> 00:00:58,340 Hay un concurso nacional en el comienzo del verano, 21 00:00:58,340 --> 00:01:01,215 y luego están los más pequeños tiroteo competiciones durante todo el año. 22 00:01:01,215 --> 00:01:04,400 Y luego que hacemos de formación de conductores días para conseguir nuevos miembros familiarizados. 23 00:01:04,400 --> 00:01:08,280 >> Nuestros días están en construcción Sábados 11 a.m.-8 p.m.. 24 00:01:08,280 --> 00:01:11,060 El almuerzo y la cena están cuidando de, a partir de Bertucci y Beantown 25 00:01:11,060 --> 00:01:12,130 respectivamente. 26 00:01:12,130 --> 00:01:15,260 Tenemos una reunión semanal y seminario, que es para el crédito del curso. 27 00:01:15,260 --> 00:01:18,560 ¿Qué hay de nuevo a partir de este semestre, y también será para el próximo semestre, 28 00:01:18,560 --> 00:01:19,940 para que pueda cruzar-reg para eso. 29 00:01:19,940 --> 00:01:22,960 Y luego tenemos el diseño, tienda, y CAD días durante la semana, 30 00:01:22,960 --> 00:01:26,870 mientras que los miembros lo hará de forma independiente Partes de CAD, la orden común, etcétera. 31 00:01:26,870 --> 00:01:29,200 >> Así que para eléctrica ingeniería en el equipo 32 00:01:29,200 --> 00:01:31,110 tenemos nuestra tracción, sistema de alta tensión, 33 00:01:31,110 --> 00:01:33,390 que funciona a un nominal 300 voltios, que incluye 34 00:01:33,390 --> 00:01:35,360 motores, reguladores de motor, y los paquetes de baterías. 35 00:01:35,360 --> 00:01:37,235 Entonces tenemos un bajo sistema de tensión, que se ejecuta 36 00:01:37,235 --> 00:01:40,180 a 12 voltios, que incluye controles, PUEDEN linfáticos, el cerebro 37 00:01:40,180 --> 00:01:41,570 caja, y el tablero de instrumentos. 38 00:01:41,570 --> 00:01:43,890 En la medida de CS va, lo hacemos tener mantenimiento del sitio web 39 00:01:43,890 --> 00:01:47,940 que necesita hacer para eventos, membresía cambios, nuevas imágenes y material de PR. 40 00:01:47,940 --> 00:01:51,540 Y luego tenemos el código que controla el coche para nuestro control de tracción, lanzamiento 41 00:01:51,540 --> 00:01:55,750 control, control de instrumentos, vectorización del par, y sistemas de frenado regenerativo, que 42 00:01:55,750 --> 00:01:59,170 funcionar normalmente en MATLAB, Simulink y LabView. 43 00:01:59,170 --> 00:02:00,910 >> Te diré un poco sobre el coche. 44 00:02:00,910 --> 00:02:02,470 Así que es alrededor de 500 libras. 45 00:02:02,470 --> 00:02:04,285 Es normas limitadas a 85 kilovatios. 46 00:02:04,285 --> 00:02:08,310 Tiene 2 EMRAX 207 motores en el espalda, uno para cada rueda trasera. 47 00:02:08,310 --> 00:02:11,880 Cuenta con paquetes de baterías personalizadas a partir de células de la bolsa A123 prismáticas, 48 00:02:11,880 --> 00:02:14,780 un total de 300 voltios y 5.6 kilovatios hora. 49 00:02:14,780 --> 00:02:17,950 Y es de accionamiento directo con una proporción de 2,64 a 1 unidad. 50 00:02:17,950 --> 00:02:20,970 Estas son algunas fotos que tomó de él en la competencia. 51 00:02:20,970 --> 00:02:25,820 Aquí está el cono posterior, la nariz, y aquí están los motores, 52 00:02:25,820 --> 00:02:29,682 esos grandes discos negros debajo del mens et manus. 53 00:02:29,682 --> 00:02:32,140 He aquí una diapositiva que saqué fuera de nuestro esquema de competencia. 54 00:02:32,140 --> 00:02:35,389 Y esto es sólo comparando nuestro coche a un par de coches disponibles en el mercado, 55 00:02:35,389 --> 00:02:38,380 como la KTM XBOW, Ariel Atom, y Caterha M 7-280. 56 00:02:38,380 --> 00:02:42,110 Si está familiarizado con el precio, el poder tirar de peso, dólares por caballo de fuerza, 57 00:02:42,110 --> 00:02:44,930 dólares por par, y nuestro coche todos ellos sopla fuera del agua. 58 00:02:44,930 --> 00:02:47,520 Si usted tiene alguna pregunta, anote esta dirección de correo electrónico. 59 00:02:47,520 --> 00:02:50,800 Envíanos un correo electrónico a fsae@mit.edu. 60 00:02:50,800 --> 00:02:53,350 >> Estamos felices de hablar sobre algo que te gustaría. 61 00:02:53,350 --> 00:02:55,600 Los estudiantes de Harvard son amables de la minoría en el equipo. 62 00:02:55,600 --> 00:02:58,350 Si usted tiene alguna pregunta sobre que por favor, envíanos un correo electrónico, 63 00:02:58,350 --> 00:03:00,810 feliz de hablar, y yo voy para regresar a David. 64 00:03:00,810 --> 00:03:01,550 Gracias. 65 00:03:01,550 --> 00:03:02,466 Te lo agradezco, chicos. 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 pasó el verano trabaja con nosotros aquí en el campus en CS50 69 00:03:10,980 --> 00:03:11,480 este verano. 70 00:03:11,480 --> 00:03:13,505 Y además de trabajar en cosas como las bombillas binarios, 71 00:03:13,505 --> 00:03:16,090 que realmente me abrió nuestra ojos-- y la mía en particular: 72 00:03:16,090 --> 00:03:20,535 a lo que realmente la intersección de no de hardware y software puede ser. 73 00:03:20,535 --> 00:03:23,410 De hecho muchas de las cosas que acaba de realizó una gira a través de está última instancia 74 00:03:23,410 --> 00:03:26,030 creado por primera vez en el software, y a continuación, en última instancia, fabricado 75 00:03:26,030 --> 00:03:27,299 en el mundo real en el hardware. 76 00:03:27,299 --> 00:03:29,590 Así que si usted está interesado en explorando esa intersección, 77 00:03:29,590 --> 00:03:31,430 quizás tomar hasta ese grupo. 78 00:03:31,430 --> 00:03:34,140 >> Ahora mientras tanto, aquellos de ustedes que son fanáticos de la tecnología, 79 00:03:34,140 --> 00:03:36,140 y los productos de Apple en particular, saber que hay 80 00:03:36,140 --> 00:03:37,860 había un par de anuncios de ayer. 81 00:03:37,860 --> 00:03:39,776 Pero nosotros pensamos que lo mostramos que uno que salió 82 00:03:39,776 --> 00:03:43,590 unos pocos días antes de que es posible que no haya visto. 83 00:03:43,590 --> 00:03:46,150 >> JORGEN EGHAMMER: Usted sabe, una vez en un tiempo algo 84 00:03:46,150 --> 00:03:49,540 viene que cambia la forma en que vivimos. 85 00:03:49,540 --> 00:03:53,479 Un dispositivo de manera sencilla e intuitiva utilizando se siente casi familiar. 86 00:03:53,479 --> 00:03:59,710 87 00:03:59,710 --> 00:04:04,138 Presentación de 2,015 catálogo IKEA. 88 00:04:04,138 --> 00:04:10,420 No es un libro digital o un libro electrónico, que es un libro de libro. 89 00:04:10,420 --> 00:04:14,440 >> La primera cosa a tener en cuenta es no cables, ni siquiera un cable de alimentación. 90 00:04:14,440 --> 00:04:18,519 El catálogo IKEA 2015 viene totalmente cargada, 91 00:04:18,519 --> 00:04:20,550 y la duración de la batería es eterna. 92 00:04:20,550 --> 00:04:27,300 La interfaz es de 7,5 por 8 pulgadas, pero se puede ampliar a 15 por 8 pulgadas. 93 00:04:27,300 --> 00:04:32,410 La navegación se basa en contacto táctil tecnología que en realidad se puede sentir. 94 00:04:32,410 --> 00:04:37,120 >> Contenido viene pre-instalado a través de 328 páginas de alta definición 95 00:04:37,120 --> 00:04:40,180 de inspirar las ideas de decoración del hogar. 96 00:04:40,180 --> 00:04:43,740 Para comenzar a navegar, simplemente toque y arrastre. 97 00:04:43,740 --> 00:04:50,870 De derecha a izquierda para seguir adelante, izquierda a derecha para mover hacia atrás. 98 00:04:50,870 --> 00:04:52,770 >> Note algo más? 99 00:04:52,770 --> 00:04:53,780 Eso es correcto. 100 00:04:53,780 --> 00:04:55,190 No lag. 101 00:04:55,190 --> 00:04:58,400 Cada página cristalinas cargas instantáneamente, 102 00:04:58,400 --> 00:05:00,586 no importa lo rápido que se desplaza. 103 00:05:00,586 --> 00:05:03,710 Si desea obtener una vista general, simplemente sostenerlo en la palma de tu mano, 104 00:05:03,710 --> 00:05:06,816 y usando sólo el pulgar, Velocidad explorar el contenido. 105 00:05:06,816 --> 00:05:10,930 >> Si usted encuentra algo que desea guardar para más adelante, usted simplemente puede crear un marcador. 106 00:05:10,930 --> 00:05:17,620 E incluso si se cierra la aplicación, usted puede encontrar fácilmente el marcador de nuevo. 107 00:05:17,620 --> 00:05:18,490 Increíble. 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 Así que eso nos lleva a Al final de la primera semana. 112 00:05:29,870 --> 00:05:31,760 Algunos anuncios ahora. 113 00:05:31,760 --> 00:05:33,440 Así seccionamiento está ahora en progreso. 114 00:05:33,440 --> 00:05:36,860 Vaya a esta URL aquí alguna vez entre hoy y el viernes al mediodía 115 00:05:36,860 --> 00:05:39,960 especificar en realidad si usted es entre los menos cómodos, más 116 00:05:39,960 --> 00:05:41,690 cómodo, o en algún punto intermedio. 117 00:05:41,690 --> 00:05:44,511 >> Esto es típicamente uno de los cosas que sólo tipo de conocimientos. 118 00:05:44,511 --> 00:05:47,510 Y, de hecho, aquellos de ustedes que son menos cómoda probablemente saber tanto, 119 00:05:47,510 --> 00:05:49,634 aquellos de ustedes que son más cómodo saben tanto, 120 00:05:49,634 --> 00:05:54,960 y otra vez si usted no está muy seguro de que de esos cubos caes en que estés 121 00:05:54,960 --> 00:05:56,210 probablemente en algún lugar en el medio. 122 00:05:56,210 --> 00:05:59,810 Pero tenga la seguridad de que puede cambiar después de un par de semanas si es necesario. 123 00:05:59,810 --> 00:06:02,620 >> Mientras tanto, para la semana que viene no empezamos secciones per se, 124 00:06:02,620 --> 00:06:04,760 pero súper secciones, que están abiertos a todos los estudiantes. 125 00:06:04,760 --> 00:06:08,220 Este próximo domingo en una ubicación para se anunciará en el sitio web del curso 126 00:06:08,220 --> 00:06:10,190 tendremos una para los menos cómodos, 127 00:06:10,190 --> 00:06:12,470 así como uno de los más cómodos. 128 00:06:12,470 --> 00:06:15,460 Y los que en algún punto intermedio puede elegir cuál de los dos, 129 00:06:15,460 --> 00:06:17,360 o ambas, si lo desea, para sentarse en el. 130 00:06:17,360 --> 00:06:19,630 Y el enfoque de los será en última instancia de C, 131 00:06:19,630 --> 00:06:22,440 que vamos a seguir nuestro conversación de hoy. 132 00:06:22,440 --> 00:06:25,070 >> Boletín de problemas 0 mientras tanto es con suerte en tus manos. 133 00:06:25,070 --> 00:06:27,500 Oficialmente para mañana, Jueves, al mediodía. 134 00:06:27,500 --> 00:06:29,490 A menos que usted cobre en uno de los 5 días de retraso, 135 00:06:29,490 --> 00:06:31,780 que lo llevaría hasta el viernes al mediodía. 136 00:06:31,780 --> 00:06:34,420 Boletín de problemas 1 por su parte será publicado en la página web del curso. 137 00:06:34,420 --> 00:06:37,381 Y esta será nuestra primera incursión como una clase en C. 138 00:06:37,381 --> 00:06:40,630 Y ese conjunto de problemas espec le guiará a a través de una gran cantidad de la mecánica de lo 139 00:06:40,630 --> 00:06:43,960 Empezamos a hablar el lunes, y vamos a seguir hablando hoy. 140 00:06:43,960 --> 00:06:46,770 C, Linux, el CS50 aparato, todo eso 141 00:06:46,770 --> 00:06:48,990 le esperan en la especificación. 142 00:06:48,990 --> 00:06:52,840 >> El horario de atención por su parte están en curso, en el comedor universitario. 143 00:06:52,840 --> 00:06:56,240 Dirígete a esta URL aquí para ver el programar para esta noche y mañana, 144 00:06:56,240 --> 00:06:57,930 si usted desea participar. 145 00:06:57,930 --> 00:07:01,920 Preguntas Mientras tanto, para que tener oportunidades de hacer preguntas 146 00:07:01,920 --> 00:07:05,860 asíncrona, 24/7, se dan cuenta de que estás no limitado a las secciones y oficinas 147 00:07:05,860 --> 00:07:09,530 horas, sino más bien esta herramienta aquí, CS50 Discutir en ese URL 148 00:07:09,530 --> 00:07:12,150 estará en línea del curso software de tablón de anuncios, a través del cual 149 00:07:12,150 --> 00:07:15,030 usted puede hacer preguntas a compañeros de clase y también personal. 150 00:07:15,030 --> 00:07:18,492 Así que tenga en cuenta que los recursos también. 151 00:07:18,492 --> 00:07:20,200 Mientras tanto, una tradición comienza este viernes. 152 00:07:20,200 --> 00:07:23,200 Como usted pudo haber vislumbrado desde video teaser del miércoles pasado, 153 00:07:23,200 --> 00:07:25,510 tenemos una tradición más todos los viernes durante el mandato 154 00:07:25,510 --> 00:07:28,750 de tomar unos 50 estudiantes y personal a un restaurante local llamado 155 00:07:28,750 --> 00:07:31,510 Fuego y Hielo, en la que estamos normalmente acompañado por algunos ex alumnos 156 00:07:31,510 --> 00:07:33,850 o amigos de la industria a general aspirar 157 00:07:33,850 --> 00:07:35,780 para hacer una clase grande se sienta más pequeño. 158 00:07:35,780 --> 00:07:37,560 Así que es un almuerzo completamente informal. 159 00:07:37,560 --> 00:07:40,160 Un grupo de nosotros, el personal especialmente, jugará las sillas musicales 160 00:07:40,160 --> 00:07:43,360 y charlar con los estudiantes sobre 50, la vida fuera de 50, 161 00:07:43,360 --> 00:07:46,510 vida en el futuro, el mundo real, Estoy hablando de las oportunidades de empleo 162 00:07:46,510 --> 00:07:47,680 con sus amigos en la industria. 163 00:07:47,680 --> 00:07:51,110 >> Así que si usted desea unirse a nosotros este viernes, la cabeza a esta URL aquí. 164 00:07:51,110 --> 00:07:54,180 El espacio es limitado, pero vamos a hacer esto recurrentemente a lo largo del plazo. 165 00:07:54,180 --> 00:07:57,380 Dirígete allí para cs50.harvard.edu/rsvp. 166 00:07:57,380 --> 00:07:59,380 Y si usted no recibe en esta vez, no se preocupe. 167 00:07:59,380 --> 00:08:02,390 Vamos a hacerlo de nuevo en las próximas semanas también. 168 00:08:02,390 --> 00:08:05,434 >> Así que esta es la foto pintamos la semana pasada, 169 00:08:05,434 --> 00:08:07,350 y de lo que has estado incursionando en hasta ahora. 170 00:08:07,350 --> 00:08:10,360 Pero vamos a tratar de conectar esta ahora a lo que vamos a hacer hoy 171 00:08:10,360 --> 00:08:11,440 y en adelante. 172 00:08:11,440 --> 00:08:14,760 ¿Podría tener un voluntario? 173 00:08:14,760 --> 00:08:16,000 Muy bien, o varios. 174 00:08:16,000 --> 00:08:18,460 ¿Y aquí en el final, de la camisa azul. 175 00:08:18,460 --> 00:08:20,329 Vamos para arriba, ¿cuál es tu nombre? 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 Así Alana, por sólo un moment-- Encantado de conocerte usted-- 179 00:08:25,100 --> 00:08:28,260 se va a jugar el papel de esta función aquí. 180 00:08:28,260 --> 00:08:31,290 El bloque de color púrpura que hemos llamada hasta ahora una función. 181 00:08:31,290 --> 00:08:34,830 Así que lo que voy a ir por delante aquí y ofrecer Alana 182 00:08:34,830 --> 00:08:38,380 es un poco de etiqueta con su nombre, para hacer claro el papel que está jugando. 183 00:08:38,380 --> 00:08:39,753 >> Así es que debe ser el bloque digamos. 184 00:08:39,753 --> 00:08:41,419 Si desea seguir adelante y poner eso en. 185 00:08:41,419 --> 00:08:43,169 Y vamos a mantener esta super simple. 186 00:08:43,169 --> 00:08:46,180 Si el objetivo a la mano es simplemente ahora a poner en práctica con Alana, 187 00:08:46,180 --> 00:08:49,710 este llamado bloque decir, así es como va a funcionar. 188 00:08:49,710 --> 00:08:52,574 Yo tienen-- llamémoslo un argumento o parámetro, 189 00:08:52,574 --> 00:08:54,240 no deja de ser una hoja de papel en blanco. 190 00:08:54,240 --> 00:08:57,239 Y es blanco de clase de ser una reminiscencia de la caja blanca en la que usted 191 00:08:57,239 --> 00:08:58,080 puede escribir palabras. 192 00:08:58,080 --> 00:09:00,660 >> Mientras tanto, yo voy a ir aquí. 193 00:09:00,660 --> 00:09:06,560 Voy a seguir adelante y escribir H-E-L-L-O coma mundo. 194 00:09:06,560 --> 00:09:09,972 Y ahora, como decir el programador, no lo hago realmente saben cómo decir algo. 195 00:09:09,972 --> 00:09:12,180 Se me ocurre con las palabras, pero no es así necesariamente 196 00:09:12,180 --> 00:09:15,220 saber cómo expresarme verbalmente o en la pantalla. 197 00:09:15,220 --> 00:09:17,280 Y así lo que voy que hacer es tomar esta pieza 198 00:09:17,280 --> 00:09:21,157 de funcionalidad, cuya Entrada-- o argumento, como lo llamaremos, 199 00:09:21,157 --> 00:09:23,990 He escrito en este pedazo de paper-- y yo voy a subcontratar. 200 00:09:23,990 --> 00:09:26,831 >> Y de hecho ese es el papel que funciones en un lenguaje de programación 201 00:09:26,831 --> 00:09:27,330 puede jugar. 202 00:09:27,330 --> 00:09:29,246 Algo así como el ejemplo bloque puede ser subcontratado 203 00:09:29,246 --> 00:09:32,074 a alguien que realmente sabe lo que él o ella está hablando. 204 00:09:32,074 --> 00:09:33,990 Así que si vas a pasar por encima aquí por un momento, 205 00:09:33,990 --> 00:09:40,092 Voy a pasar a esta entrada para Alana, y pida que le diga esta entrada. 206 00:09:40,092 --> 00:09:41,202 >> ALANA: Hola, mundo. 207 00:09:41,202 --> 00:09:42,160 DAVID MALAN: Eso es todo. 208 00:09:42,160 --> 00:09:43,326 Así que hay una función. 209 00:09:43,326 --> 00:09:46,556 Ahora podemos ir un poco más, podemos dar un paso adelante aquí. 210 00:09:46,556 --> 00:09:48,180 Porque eso fue claramente decepcionante. 211 00:09:48,180 --> 00:09:51,670 Así que ahora vamos a convertir esto en algo un poco más sofisticado. 212 00:09:51,670 --> 00:09:53,630 >> Así que esto, por supuesto, es nuestra versión C. 213 00:09:53,630 --> 00:09:56,760 Así que ahora si usted quiere tomar ese uno fuera, que etiqueta con su nombre fuera, 214 00:09:56,760 --> 00:09:58,530 y vamos a tener que poner un nuevo nombre. 215 00:09:58,530 --> 00:10:00,850 Pero fundamentalmente eres jugando el mismo papel, 216 00:10:00,850 --> 00:10:03,400 da la casualidad de que llamarse printf ahora. 217 00:10:03,400 --> 00:10:06,930 >> La historia es, por supuesto, va a ser-- probablemente 218 00:10:06,930 --> 00:10:09,317 tal como es underwhelming-- va a ser lo siguiente. 219 00:10:09,317 --> 00:10:10,650 Usted es ahora el printf función. 220 00:10:10,650 --> 00:10:13,300 Yo soy la persona que llama, o el programador, que quiere 221 00:10:13,300 --> 00:10:15,745 de pie sobre los hombros de personas en el pasado como tú, 222 00:10:15,745 --> 00:10:18,670 que ya han descubierto la manera para realmente escribir algo. 223 00:10:18,670 --> 00:10:20,650 Y así que esta vez, en lugar de decir que vamos a 224 00:10:20,650 --> 00:10:22,255 utilizar realmente nuestra pantalla aquí. 225 00:10:22,255 --> 00:10:24,130 Así que si desea dar un paso por aquí, voy 226 00:10:24,130 --> 00:10:27,196 para pasar de nuevo esto como de entrada a mi amigo printf. 227 00:10:27,196 --> 00:10:29,320 Si usted puede seguir adelante y imprimir que en la pantalla, 228 00:10:29,320 --> 00:10:31,611 simplemente dibujando con su el dedo en la pantalla en negro. 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 Muy bien, así que un montón de suspenso para cómo iba a jugar fuera. 232 00:10:47,350 --> 00:10:51,390 >> Así que ahora vamos a tomar las cosas un muesca final, si pudiéramos, de la siguiente manera. 233 00:10:51,390 --> 00:10:53,980 Así que este es un programa C como dijimos la última vez. 234 00:10:53,980 --> 00:10:57,460 Y esto sólo hace lo que hizo, que imprime a la pantalla, hola, mundo. 235 00:10:57,460 --> 00:11:00,290 Aunque claramente hay mucho de cosas distraen hasta allí. 236 00:11:00,290 --> 00:11:03,630 Pero vamos a tomar las cosas a un nivel superior y introducir esta versión, que recuerdan 237 00:11:03,630 --> 00:11:06,160 Fue la tercera versión que terminamos con la última vez. 238 00:11:06,160 --> 00:11:09,120 >> Y ahora hay claramente dos usos de printf. 239 00:11:09,120 --> 00:11:12,280 Hay 2 llamadas a Alana en este caso para printf, 240 00:11:12,280 --> 00:11:14,740 pero también hay una llamada a otra función. 241 00:11:14,740 --> 00:11:17,150 ¿Cuál es esa función con claridad? 242 00:11:17,150 --> 00:11:17,650 GetString. 243 00:11:17,650 --> 00:11:18,980 >> ¿Podemos conseguir un voluntario más? 244 00:11:18,980 --> 00:11:20,980 Bien, vamos para arriba. 245 00:11:20,980 --> 00:11:21,805 Cuál es tu nombre? 246 00:11:21,805 --> 00:11:22,990 >> JAVIER: Javier. 247 00:11:22,990 --> 00:11:24,750 >> DAVID MALAN: Javier, vamos arriba. 248 00:11:24,750 --> 00:11:27,270 Así que el papel de Javier está en este pedazo de papel. 249 00:11:27,270 --> 00:11:28,860 ¿Qué voy a llamar genéricamente s. 250 00:11:28,860 --> 00:11:32,250 Ahora bien, esta es una variable, es de tipo cadena, como se implica 251 00:11:32,250 --> 00:11:34,290 por esa segunda línea en el medio allí. 252 00:11:34,290 --> 00:11:36,540 Y me gustaría que vayas a buscarme una cadena. 253 00:11:36,540 --> 00:11:40,120 Específicamente bajar a la orquesta sección y me conseguir el nombre de alguien, 254 00:11:40,120 --> 00:11:43,142 y volver con una variable que contiene ese valor. 255 00:11:43,142 --> 00:11:44,225 Puede ser cualquiera que desee. 256 00:11:44,225 --> 00:11:47,590 257 00:11:47,590 --> 00:11:48,520 >> Aquí vamos. 258 00:11:48,520 --> 00:11:53,620 259 00:11:53,620 --> 00:11:55,960 Muy bien, Javier es anotando el nombre. 260 00:11:55,960 --> 00:12:02,210 261 00:12:02,210 --> 00:12:03,280 Bien. 262 00:12:03,280 --> 00:12:05,740 Todos podemos adivinar cómo esto va a jugar fuera. 263 00:12:05,740 --> 00:12:07,489 Quizás Estamos belaboring el punto de lo 264 00:12:07,489 --> 00:12:10,320 una función está haciendo, pero no obstante, muchas gracias. 265 00:12:10,320 --> 00:12:13,890 >> Así Javier ha vuelto esta cadena aquí, lo cual, no puede ver bien, 266 00:12:13,890 --> 00:12:15,800 Jonathan es la cadena que nos hemos metido. 267 00:12:15,800 --> 00:12:18,330 Así que ahora lo que estoy realmente va para proporcionar a Alana aunque 268 00:12:18,330 --> 00:12:20,150 es algo un poco diferente. 269 00:12:20,150 --> 00:12:23,800 Debido a que en esta versión de la programa, primero hay diga su nombre. 270 00:12:23,800 --> 00:12:26,160 Así que el primer argumento Necesito proporcionar Alana 271 00:12:26,160 --> 00:12:33,030 con que va a ser literalmente, diga su nombre. 272 00:12:33,030 --> 00:12:35,280 Muy bien, así de simple Me gustaría entregar esto a usted. 273 00:12:35,280 --> 00:12:36,730 Y mientras escribo el siguiente argumento, si 274 00:12:36,730 --> 00:12:39,230 quieren seguir adelante y escribir este en el tablero, vamos a seguir adelante 275 00:12:39,230 --> 00:12:42,659 y hacer el último ejemplo aquí para hacer aclarar lo que en última instancia tiene que suceder. 276 00:12:42,659 --> 00:12:44,450 Así que diga su nombre, escribirlo hacia la parte superior 277 00:12:44,450 --> 00:12:47,220 si no te importa, sólo para que tenemos espacio para una segunda línea. 278 00:12:47,220 --> 00:12:52,890 Porque lo último que voy ahora le proporcionará no es uno, 279 00:12:52,890 --> 00:12:57,220 sino dos pedazos de papel. 280 00:12:57,220 --> 00:12:58,074 >> Bien. 281 00:12:58,074 --> 00:13:01,920 H-E-L-L-O coma y luego una línea en blanco. 282 00:13:01,920 --> 00:13:04,780 Así que lo que estoy a punto de entregar Alana ahora es algo un poco diferente. 283 00:13:04,780 --> 00:13:08,600 No sólo es conseguir esto, donde llenar el espacio en blanco representa 284 00:13:08,600 --> 00:13:12,050 que ciento-- cuál era el marcador de posición que hemos estado usando? 285 00:13:12,050 --> 00:13:13,890 Sí, ¿y ciento s. 286 00:13:13,890 --> 00:13:16,530 Mientras tanto, yo voy a pasar ella en un segundo argumento, que 287 00:13:16,530 --> 00:13:19,290 es precisamente lo que Javier recuperado de Jonathan. 288 00:13:19,290 --> 00:13:20,534 >> Así que te voy a dar estos dos. 289 00:13:20,534 --> 00:13:22,575 Si desea, adelante e imprimir ese efecto. 290 00:13:22,575 --> 00:13:25,660 291 00:13:25,660 --> 00:13:28,130 ¿Qué está sucediendo en última instancia, ahora es, Alana de nuevo 292 00:13:28,130 --> 00:13:29,410 está jugando el papel de printf. 293 00:13:29,410 --> 00:13:32,160 Javier estaba jugando el papel de GetString. 294 00:13:32,160 --> 00:13:34,700 Así que será su recuerdo. 295 00:13:34,700 --> 00:13:39,910 Y en última instancia, lo que está sucediendo, a pesar de este hello-- sip seguir adelante y coma. 296 00:13:39,910 --> 00:13:41,410 ALANA: ¿Recibí este todavía o no? 297 00:13:41,410 --> 00:13:43,451 DAVID MALAN: Sí, usted ambos recibida en una vez. 298 00:13:43,451 --> 00:13:45,740 Así que la idea es que usted ahora puede voltear la página 299 00:13:45,740 --> 00:13:50,000 para manejar el segundo de esas dos entradas. 300 00:13:50,000 --> 00:13:53,280 Así que esto es sólo para recalcar la señalar que, mientras que Alana ejecutado 301 00:13:53,280 --> 00:13:55,830 esta línea verde aquí, y luego Javier hizo esto para nosotros 302 00:13:55,830 --> 00:13:57,820 y volver a mí algo llamaremos s, pero fue realmente 303 00:13:57,820 --> 00:13:59,520 sólo ese pedazo de papel de su propio. 304 00:13:59,520 --> 00:14:02,320 Y ahora Alana ha hecho esta tercera línea. 305 00:14:02,320 --> 00:14:06,010 >> Y a pesar de todo esto se ve tan increíblemente críptica quizás 306 00:14:06,010 --> 00:14:08,870 a primera vista, lo que realmente es tan simple como eso. 307 00:14:08,870 --> 00:14:11,390 Pasando entradas alrededor, conseguir salidas, ya sea 308 00:14:11,390 --> 00:14:14,560 ser entregado físicamente volver algo, o ver un efecto secundario de esta manera. 309 00:14:14,560 --> 00:14:17,170 Algo visualmente escrito en la pantalla. 310 00:14:17,170 --> 00:14:19,990 Así que vamos a seguir adelante y gracias Alana y Javier, 311 00:14:19,990 --> 00:14:25,012 que estaba aquí abajo, para acompañarnos hasta aquí. 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 >> Así que ahora vamos a tomar por sentado lo sencillo todo eso podría ser. 315 00:14:33,480 --> 00:14:36,775 Y vamos a proceder a la realidad hacer algo en código real. 316 00:14:36,775 --> 00:14:40,620 Así que en la pantalla aquí es una captura de pantalla de la llamada aparato CS50. 317 00:14:40,620 --> 00:14:43,980 Y si tuvieras que en, como 14:00 el miércoles por la tarde, 318 00:14:43,980 --> 00:14:46,602 explicar a algún amigo lo que el aparato es CS50, 319 00:14:46,602 --> 00:14:48,185 ¿cómo definiría en una frase? 320 00:14:48,185 --> 00:14:52,160 321 00:14:52,160 --> 00:14:53,240 Cualquier sola frase? 322 00:14:53,240 --> 00:14:54,876 ¿Sí? 323 00:14:54,876 --> 00:14:57,334 ESTUDIANTE: Es como un programa eso hace que el equipo de todos 324 00:14:57,334 --> 00:14:58,460 correr con el mismo sistema. 325 00:14:58,460 --> 00:14:59,210 DAVID MALAN: Good! 326 00:14:59,210 --> 00:15:02,810 Es un programa que permite a cada uno de equipo funcione con el mismo sistema. 327 00:15:02,810 --> 00:15:04,920 Es una especie de su propio copia de un operativo 328 00:15:04,920 --> 00:15:07,540 sistema que pasa a ser llamado Ubuntu Linux. 329 00:15:07,540 --> 00:15:11,070 Y funciona de manera efectiva dentro de una ventana en su propio Mac o PC, 330 00:15:11,070 --> 00:15:15,080 para que de esta manera a la derecha de la puerta en la semana 1, todo el mundo aquí en la clase 331 00:15:15,080 --> 00:15:17,590 tiene acceso a las mismas herramientas, la misma configuración, 332 00:15:17,590 --> 00:15:21,250 y no hay curva de aprendizaje específica a un Mac o un PC en particular. 333 00:15:21,250 --> 00:15:25,620 >> Ahora hemos abierto, en el interior de la CS50 aparato el lunes, este programa aquí. 334 00:15:25,620 --> 00:15:27,040 Le pasa a llamarse gedit. 335 00:15:27,040 --> 00:15:29,050 Pero eso es realmente sólo un editor gráfico. 336 00:15:29,050 --> 00:15:33,170 Es algo así como el Bloc de notas o texto Editar en Windows o Mac OS, respectivamente. 337 00:15:33,170 --> 00:15:36,720 Y me propuse que no eran realmente tres partes importantes a esta pantalla. 338 00:15:36,720 --> 00:15:39,560 La parte superior es donde se escribiría el código. 339 00:15:39,560 --> 00:15:44,080 Y ahí es donde pasamos gran parte de nuestro tres ejemplos en la conferencia del lunes. 340 00:15:44,080 --> 00:15:47,650 La parte inferior nos llama lo que, esta ventana negro, sí? 341 00:15:47,650 --> 00:15:48,640 >> ESTUDIANTE: Compilador? 342 00:15:48,640 --> 00:15:51,500 >> DAVID MALAN: Compilador que visitada a través de esa ventana. 343 00:15:51,500 --> 00:15:53,040 Pero de manera más general. 344 00:15:53,040 --> 00:15:54,540 Sí, era sólo una ventana de terminal. 345 00:15:54,540 --> 00:15:57,780 Este es un viejo término edad que acaba de describe esencialmente un parpadeo 346 00:15:57,780 --> 00:16:01,910 rápida, que hace años solía ser el uno de esos grandes monitores CRT estilo. 347 00:16:01,910 --> 00:16:04,300 Pero hoy en día es una especie de virtual en software. 348 00:16:04,300 --> 00:16:06,710 Y las ventanas de terminal Vamos a nosotros escribimos los comandos. 349 00:16:06,710 --> 00:16:11,750 Es una especie de versión simplificada de la interfaz de usuario o interfaz de usuario. 350 00:16:11,750 --> 00:16:14,060 No es una gráfica interfaz de usuario o GUI, 351 00:16:14,060 --> 00:16:17,250 que es una interfaz basada en texto o una interfaz de línea de comandos. 352 00:16:17,250 --> 00:16:20,770 >> Y en efecto, que es donde en última instancia, Yo era capaz de escribir algo de código. 353 00:16:20,770 --> 00:16:24,200 Una vez que había escrito algo de código, sin embargo, Recuerdo que utilicé este comando. 354 00:16:24,200 --> 00:16:26,210 Y como el nombre tipo de indica, este 355 00:16:26,210 --> 00:16:29,860 me permite hacer una programa llamado Hola. 356 00:16:29,860 --> 00:16:33,400 Pero, ¿qué fue lo que realmente hace? 357 00:16:33,400 --> 00:16:36,180 Bueno maquillaje estaba tomando mi de entrada, el código fuente, 358 00:16:36,180 --> 00:16:39,380 y convertirlo a lo que, en última instancia? 359 00:16:39,380 --> 00:16:40,060 >> El código objeto. 360 00:16:40,060 --> 00:16:42,790 Y el código objeto es sólo una fantasía manera de decir ceros y unos. 361 00:16:42,790 --> 00:16:46,420 Y entonces una vez que quería para ejecutar ese código objeto, 362 00:16:46,420 --> 00:16:50,940 una vez que quería pasar como entrada los ceros y unos en mi equipo de 363 00:16:50,940 --> 00:16:54,430 cerebro, la denominada CPU o unidad central de procesamiento, 364 00:16:54,430 --> 00:16:55,730 Tuve que correr el programa. 365 00:16:55,730 --> 00:16:59,042 Pero no era bastante sencillo el lunes tan sólo hacer doble clic en algún icono. 366 00:16:59,042 --> 00:17:01,375 Lo que en cambio tuve que hacer para ejecutar un programa? 367 00:17:01,375 --> 00:17:04,130 368 00:17:04,130 --> 00:17:07,890 >> ¿Cuál fue ese segundo mandato? 369 00:17:07,890 --> 00:17:09,619 Estoy escuchando un poco de barras? 370 00:17:09,619 --> 00:17:10,544 Sí, sí? 371 00:17:10,544 --> 00:17:12,474 >> ESTUDIANTE: Dot tala y el nombre del programa. 372 00:17:12,474 --> 00:17:13,349 DAVID MALAN: Exactamente. 373 00:17:13,349 --> 00:17:15,030 Dot tala y el nombre del programa. 374 00:17:15,030 --> 00:17:16,210 Ahora ¿qué significa esto? 375 00:17:16,210 --> 00:17:19,470 Bien punto es sólo una forma arcana de decir directorio actual. 376 00:17:19,470 --> 00:17:23,440 Cualquiera que sea la carpeta se encuentra en es como referencia, se representa como punto. 377 00:17:23,440 --> 00:17:26,680 La barra es justo lo que usted ha visto en Mac OS y Windows durante años, 378 00:17:26,680 --> 00:17:30,329 es un separador entre un directorio o la carpeta y el resto de algún nombre. 379 00:17:30,329 --> 00:17:32,620 En Windows que sucede a ir hacia atrás, en Linux y Mac 380 00:17:32,620 --> 00:17:34,210 OS pasa a ir hacia delante. 381 00:17:34,210 --> 00:17:37,560 Pero es sólo el separador, por lo que es sólo un detalle sintáctico poco interesante. 382 00:17:37,560 --> 00:17:40,440 >> La parte jugosa del curso es el nombre del programa, Hola. 383 00:17:40,440 --> 00:17:42,650 Y eso es lo que hacen que creó para nosotros. 384 00:17:42,650 --> 00:17:44,910 Se emite ese archivo para nosotros. 385 00:17:44,910 --> 00:17:46,700 Pero ¿cómo hemos llegado a ese punto? 386 00:17:46,700 --> 00:17:48,870 Ahora vamos a pedir a la pregunta, lo que era realmente 387 00:17:48,870 --> 00:17:52,470 pasando aquí, por lo menos con lo que respecta a algunos de esta sintaxis? 388 00:17:52,470 --> 00:17:57,000 >> Así que en una frase más o menos, ¿cómo explicamos distancia 389 00:17:57,000 --> 00:17:59,020 esta primera línea que es resaltado en verde? 390 00:17:59,020 --> 00:18:02,998 ¿Cuál fue esa primera línea haciendo, con respecto a mi programa? 391 00:18:02,998 --> 00:18:03,974 ¿Sí? 392 00:18:03,974 --> 00:18:05,067 >> ESTUDIANTE: [inaudible]. 393 00:18:05,067 --> 00:18:06,150 DAVID MALAN: Dilo otra vez? 394 00:18:06,150 --> 00:18:08,734 ESTUDIANTE: Inclusión y descargar funciones anteriores [inaudible]. 395 00:18:08,734 --> 00:18:09,483 DAVID MALAN: Good. 396 00:18:09,483 --> 00:18:11,900 Incluyendo, no voy a decir la descarga, pero digamos 397 00:18:11,900 --> 00:18:15,500 incluyendo las funciones que las personas han escrito en el pasado. 398 00:18:15,500 --> 00:18:18,260 Y esas funciones se implementan en algún lugar de mi ordenador. 399 00:18:18,260 --> 00:18:20,470 Alguien escribió un archivo Hace años, y ese archivo 400 00:18:20,470 --> 00:18:23,490 es en algún lugar dentro de la CS50 aparato, o en mi disco duro 401 00:18:23,490 --> 00:18:24,480 de manera más general. 402 00:18:24,480 --> 00:18:27,810 Y lo que esta línea está diciendo esencialmente, ir a buscar ese archivo, punto E / S estándar 403 00:18:27,810 --> 00:18:31,740 h, y copiar y pegar su contenido aquí mismo en la parte superior de mi archivo 404 00:18:31,740 --> 00:18:33,860 de modo que yo no tengo que hacerlo manualmente a mí mismo. 405 00:18:33,860 --> 00:18:40,970 >> Y entre las piezas más jugosas en el interior de ese archivo reclamamos era qué función? 406 00:18:40,970 --> 00:18:45,740 ¿Qué función dijimos fue declarado o mencionada en E / S estándar dot h 407 00:18:45,740 --> 00:18:47,120 más probable? 408 00:18:47,120 --> 00:18:47,900 Printf, ¿verdad? 409 00:18:47,900 --> 00:18:50,797 No escribimos printf en Lunes, apenas existía. 410 00:18:50,797 --> 00:18:52,880 Al igual que Alana acaba de llegar en el escenario y ella sólo 411 00:18:52,880 --> 00:18:55,540 existido y sabía cómo dibujar algo en la pantalla, 412 00:18:55,540 --> 00:18:58,660 así no existir printf durante muchos años. 413 00:18:58,660 --> 00:19:00,240 Y lo que esta es la forma en que accedemos. 414 00:19:00,240 --> 00:19:03,280 Ahora bien, si nos movemos de aquí, principal era que análoga 415 00:19:03,280 --> 00:19:06,620 dijo a la pieza del rompecabezas se llama cuando la bandera verde hace clic 416 00:19:06,620 --> 00:19:07,620 en el mundo de los arañazos. 417 00:19:07,620 --> 00:19:10,130 Es sólo una especie de nombre predeterminado que los humanos 418 00:19:10,130 --> 00:19:13,340 decidido que representaría la punto de entrada por defecto a un programa. 419 00:19:13,340 --> 00:19:16,540 El trozo de código de programación que es ejecutado primero. 420 00:19:16,540 --> 00:19:19,700 >> Mientras tanto estas llaves son algo así como la forma curvada 421 00:19:19,700 --> 00:19:21,410 de muchas de esas piezas de arañazos amarillas. 422 00:19:21,410 --> 00:19:24,860 Ellos encapsulan tipo de conjunto manojo de instrucciones juntos. 423 00:19:24,860 --> 00:19:28,350 Por lo tanto, sólo un poco de une parte de la funcionalidad relacionada. 424 00:19:28,350 --> 00:19:33,750 printf por supuesto es una función que imprime la pantalla, como lo acabamos de hacer. 425 00:19:33,750 --> 00:19:35,190 >> ¿Qué pasa con estos paréntesis? 426 00:19:35,190 --> 00:19:38,770 ¿Cómo define-- incluso si no tienes Nunca programada antes, pero sólo sobre la base 427 00:19:38,770 --> 00:19:41,320 ahora en una creciente esperemos que la intuición, lo que 428 00:19:41,320 --> 00:19:43,290 están entre paréntesis haciendo para nosotros aquí? 429 00:19:43,290 --> 00:19:45,450 O ¿qué están rodeando? 430 00:19:45,450 --> 00:19:46,360 ¿Sí? 431 00:19:46,360 --> 00:19:49,360 >> ESTUDIANTE: Están diciendo lo usted va a imprimir con printf. 432 00:19:49,360 --> 00:19:52,401 >> DAVID MALAN: Sí, ellos están diciendo lo que usted va a imprimir con printf. 433 00:19:52,401 --> 00:19:56,260 O más en general, son que rodea a las entradas de la función. 434 00:19:56,260 --> 00:19:58,530 Así que casi se puede pensar de esos paréntesis 435 00:19:58,530 --> 00:20:01,620 como siendo como el metal clip en este portapapeles. 436 00:20:01,620 --> 00:20:05,940 Es lo que está sosteniendo, es lo que hay va a ser utilizado para proporcionar argumentos 437 00:20:05,940 --> 00:20:08,500 en la función, que en este caso se llama printf. 438 00:20:08,500 --> 00:20:12,390 >> Así, en general, casi cualquier vez que llamamos a una función, 439 00:20:12,390 --> 00:20:14,280 vamos a ver un par de paréntesis. 440 00:20:14,280 --> 00:20:17,000 Tal vez con algo en él, como ahora, tal vez nada en él. 441 00:20:17,000 --> 00:20:19,770 Pero eso es donde pondrías las entradas o los llamados argumentos 442 00:20:19,770 --> 00:20:20,680 a una función. 443 00:20:20,680 --> 00:20:22,470 >> Aquí está uno de esos argumentos. 444 00:20:22,470 --> 00:20:24,467 He resaltado todo entre las comillas, 445 00:20:24,467 --> 00:20:26,300 porque resulta que en esta lengua llamada 446 00:20:26,300 --> 00:20:29,950 C, cuando se quiere representar una string-- que es una palabra o una frase 447 00:20:29,950 --> 00:20:33,470 o incluso un paragraph-- tienes que rodearla con comillas dobles. 448 00:20:33,470 --> 00:20:35,420 No cotizaciones simples, comillas dobles. 449 00:20:35,420 --> 00:20:37,460 Y eso es exactamente lo que he hecho aquí. 450 00:20:37,460 --> 00:20:39,900 >> Mientras tanto hay un cobarde símbolo hacia el final allí. 451 00:20:39,900 --> 00:20:41,600 La barra invertida n. 452 00:20:41,600 --> 00:20:43,460 ¿Qué dijimos que representaba? 453 00:20:43,460 --> 00:20:44,093 ¿Sí? 454 00:20:44,093 --> 00:20:44,980 >> ESTUDIANTE: Una nueva línea. 455 00:20:44,980 --> 00:20:45,896 >> DAVID MALAN: Nueva línea. 456 00:20:45,896 --> 00:20:47,910 Cierto, no lo hace generalmente presione Enter cuando 457 00:20:47,910 --> 00:20:50,430 desea que el programa escupir una nueva línea. 458 00:20:50,430 --> 00:20:54,210 Más bien lo dices explícitamente con esta pieza es cierto arcano 459 00:20:54,210 --> 00:20:58,770 de la sintaxis, la barra invertida n, que quieres una nueva línea para ir allí. 460 00:20:58,770 --> 00:20:59,810 Por último, el punto y coma. 461 00:20:59,810 --> 00:21:01,560 Nosotros realmente no hablamos demasiado sobre esto, 462 00:21:01,560 --> 00:21:04,893 y hasta ahora, este va a ser la ruina de algunos de su existencia por el primer problema 463 00:21:04,893 --> 00:21:07,990 establecer, cuando simplemente no se dio cuenta se le ha olvidado algo tan estúpido 464 00:21:07,990 --> 00:21:08,614 como un punto y coma. 465 00:21:08,614 --> 00:21:11,600 Y, en general puesta habrá arreglar ese problema. 466 00:21:11,600 --> 00:21:13,511 Pero, ¿qué es lo que hace para nosotros, qué le dirías? 467 00:21:13,511 --> 00:21:15,670 >> ESTUDIANTE: [inaudible]. 468 00:21:15,670 --> 00:21:17,484 >> DAVID MALAN: Lo siento? 469 00:21:17,484 --> 00:21:18,532 >> ESTUDIANTE: [inaudible]. 470 00:21:18,532 --> 00:21:19,990 DAVID MALAN: Terminando un comunicado. 471 00:21:19,990 --> 00:21:22,770 Es algo así como el período en el final de una frase Inglés, 472 00:21:22,770 --> 00:21:25,790 mientras que en esta lengua C está terminando un comunicado. 473 00:21:25,790 --> 00:21:29,250 Una instrucción de programación código que lo que desea es decir, 474 00:21:29,250 --> 00:21:30,500 Ya he terminado con esto. 475 00:21:30,500 --> 00:21:32,240 Ahora note que es el único aquí. 476 00:21:32,240 --> 00:21:34,614 Así que usted no desea conseguir en la costumbre de poner punto y coma 477 00:21:34,614 --> 00:21:36,190 después de cada cierre de paréntesis. 478 00:21:36,190 --> 00:21:38,610 Por ejemplo no hay ninguno junto al vacío, y vamos a 479 00:21:38,610 --> 00:21:40,430 volver en el futuro a lo que significa vacío. 480 00:21:40,430 --> 00:21:44,080 Pero en este caso su printf es una función, o una declaración de que se utilice, 481 00:21:44,080 --> 00:21:47,420 y así queremos tener que terminal al final de la misma. 482 00:21:47,420 --> 00:21:50,980 >> Y estoy intencionalmente metiendo con C. Y francamente un montón de lenguajes como C, C ++, 483 00:21:50,980 --> 00:21:55,000 Java, JavaScript, y cualquier número de otros idiomas tienen una gran cantidad de estos 484 00:21:55,000 --> 00:21:56,730 tipo de datos sintácticos. 485 00:21:56,730 --> 00:22:00,120 Eso ciertamente si usted es nuevo en programación puede realmente tropezar. 486 00:22:00,120 --> 00:22:02,307 Y usted, marque mi Es decir, algunos de ustedes 487 00:22:02,307 --> 00:22:04,140 tener esta experiencia en horario de oficina o tarde 488 00:22:04,140 --> 00:22:07,554 en la noche trabajando en algunas p-set, donde tu maldito programa simplemente no compila, 489 00:22:07,554 --> 00:22:09,470 no funcionar, usted tiene ni idea de lo que está mal, 490 00:22:09,470 --> 00:22:11,513 parece completamente lógicamente correcto para usted. 491 00:22:11,513 --> 00:22:13,596 Y es porque se le olvidó algo así como golpear 492 00:22:13,596 --> 00:22:15,250 un punto y coma al final de alguna línea. 493 00:22:15,250 --> 00:22:17,590 >> Pero estos son los tipos de cosas que usted es va a aprender de inmediato para ver. 494 00:22:17,590 --> 00:22:20,048 Y de hecho estas son las cosas que y de la CA TF tienen 495 00:22:20,048 --> 00:22:23,210 sido una especie de formación para ver mucho más rápido que tú. 496 00:22:23,210 --> 00:22:26,610 Y por lo que este es sólo para decir, a medida que sumérgete en un problema conjunto 1, especialmente, 497 00:22:26,610 --> 00:22:28,217 no se sienten frustrados por estas cosas. 498 00:22:28,217 --> 00:22:30,050 Una vez que una especie de aclimatarse al mundo, que 499 00:22:30,050 --> 00:22:35,130 comenzar a ver cosas que no se pueden ver a primera vista esta primera semana. 500 00:22:35,130 --> 00:22:37,440 >> Así que el código fuente es algo así. 501 00:22:37,440 --> 00:22:40,370 Queremos pasarlo a el llamado compilador. 502 00:22:40,370 --> 00:22:42,850 Y eso compilador como dijimos proporciona una salida 503 00:22:42,850 --> 00:22:45,660 conocido como código objeto, el llamada ceros y unos. 504 00:22:45,660 --> 00:22:47,747 Pero a partir de ahí, lo que nos da eso? 505 00:22:47,747 --> 00:22:49,080 Bueno, nos da estos patrones. 506 00:22:49,080 --> 00:22:52,020 Y de nuevo el equipo, su Intel inside, 507 00:22:52,020 --> 00:22:54,350 entiende estos patrones de ceros y unos. 508 00:22:54,350 --> 00:22:57,300 Y a veces el patrón representa un número decimal real 509 00:22:57,300 --> 00:22:59,770 como vimos la semana pasada, a veces representa una carta 510 00:22:59,770 --> 00:23:02,730 como vimos la semana pasada, a veces que representa una instrucción, 511 00:23:02,730 --> 00:23:05,460 como imprimir algo en la pantalla. 512 00:23:05,460 --> 00:23:08,782 >> Así printf para instance-- sino más bien, déjame rebobinar. 513 00:23:08,782 --> 00:23:11,240 Hemos estado tomando por sentado que esos ceros y unos son 514 00:23:11,240 --> 00:23:14,200 producida por este comando make. 515 00:23:14,200 --> 00:23:16,050 Pero maquillaje no es un compilador. 516 00:23:16,050 --> 00:23:19,370 Hacer no es la cosa en el medio que está produciendo los ceros y unos. 517 00:23:19,370 --> 00:23:23,780 Más bien que es sólo un muy convenientemente programa denominado cuyo propósito en la vida 518 00:23:23,780 --> 00:23:27,267 es esencialmente de averiguar cómo compilar el programa. 519 00:23:27,267 --> 00:23:29,350 Y lo usamos en estos primera semana, ya que sólo 520 00:23:29,350 --> 00:23:30,910 nos ahorra un montón de problemas. 521 00:23:30,910 --> 00:23:34,080 >> Pero lo que es realmente haciendo al compilar hola, 522 00:23:34,080 --> 00:23:36,690 es, como hemos dicho la última vez, es busca en el disco duro 523 00:23:36,690 --> 00:23:40,620 o en la carpeta actual, por archivo llamado lo que, al parecer? 524 00:23:40,620 --> 00:23:41,815 Hola.c, ¿verdad? 525 00:23:41,815 --> 00:23:43,190 Eso es sólo una especie de convención. 526 00:23:43,190 --> 00:23:45,620 Es arbitraria, pero eso es como son las cosas. 527 00:23:45,620 --> 00:23:48,620 Hacer, si sólo se especifica el nombre de un programa que todavía no existe, 528 00:23:48,620 --> 00:23:52,200 que va a buscar el código fuente en un archivo, por defecto significa hello.c. 529 00:23:52,200 --> 00:23:53,530 Y si lo encuentra, muy bien. 530 00:23:53,530 --> 00:23:56,650 Se va a convertir esa fuente código en el código objeto para usted. 531 00:23:56,650 --> 00:23:59,670 >> Pero cada vez que me he golpeado Enter después de ejecutar make hola, 532 00:23:59,670 --> 00:24:03,560 ¿Recuerda haber visto por última vez un bastante largo y la secuencia críptica 533 00:24:03,560 --> 00:24:06,430 de otras letras blancas y personajes en la pantalla? 534 00:24:06,430 --> 00:24:11,220 Bueno, eso fue la orden real, el compilador real, que se estaba ejecutando. 535 00:24:11,220 --> 00:24:15,500 Así el compilador real usaremos la mayor parte de el semestre es algo que se llama sonido metálico. 536 00:24:15,500 --> 00:24:19,280 Algunos de ustedes se han utilizado Antes de Visual Studio, o GCC, 537 00:24:19,280 --> 00:24:21,340 o cualquier número de otros compiladores. 538 00:24:21,340 --> 00:24:22,620 Usaremos sonido metálico. 539 00:24:22,620 --> 00:24:26,950 >> Y clang nos permite convertir en realidad que el código fuente a código objeto. 540 00:24:26,950 --> 00:24:29,430 ¿Qué significa esto en realidad significa en la práctica? 541 00:24:29,430 --> 00:24:33,390 Bueno déjame ir en uno de mis carpetas desde la última vez. 542 00:24:33,390 --> 00:24:35,760 En el interior del aparato CS50. 543 00:24:35,760 --> 00:24:42,080 Y déjame seguir adelante y crear este mismo archivo, incluye E / S estándar dot h. 544 00:24:42,080 --> 00:24:42,875 Void main int. 545 00:24:42,875 --> 00:24:46,000 Y vamos a volver en el futuro como a lo que int medios y lo que significa vacío. 546 00:24:46,000 --> 00:24:49,130 Pero por ahora vamos a hacerlo hola barra invertida mundo n, 547 00:24:49,130 --> 00:24:50,500 Al igual que hicimos en el tablero. 548 00:24:50,500 --> 00:24:53,930 >> Déjame guardar este archivo llamado hello.c. 549 00:24:53,930 --> 00:24:58,280 Y ahora si quiero compilar este Yo could-- déjame el zoom plazo en-- 550 00:24:58,280 --> 00:25:00,450 hacer hola entrar. 551 00:25:00,450 --> 00:25:02,645 Y esto fue de nuevo esa línea muy críptica. 552 00:25:02,645 --> 00:25:05,120 Pero ahora al menos una palabra probablemente salta a la vista. 553 00:25:05,120 --> 00:25:07,087 Clang es que la línea que vimos antes. 554 00:25:07,087 --> 00:25:10,420 Ahora hay un montón de otras cosas con franqueza que vamos a agitamos nuestras manos a hoy. 555 00:25:10,420 --> 00:25:14,020 Pero hay un par de subconjuntos, unos personajes que aparecen aquí 556 00:25:14,020 --> 00:25:14,907 que son de interés. 557 00:25:14,907 --> 00:25:16,490 Pero yo voy a seguir adelante y hacer esto. 558 00:25:16,490 --> 00:25:18,281 Voy a la primera carrera hola, sólo para demostrar 559 00:25:18,281 --> 00:25:20,320 que esto está funcionando, ya que era lunes. 560 00:25:20,320 --> 00:25:22,330 Pero ahora voy a borrar el programa. 561 00:25:22,330 --> 00:25:25,870 Y al igual que hemos tenido estos nombres cortos última vez, 562 00:25:25,870 --> 00:25:29,787 el comando para eliminar algo es rm, eliminar, escriba. 563 00:25:29,787 --> 00:25:31,870 Vas a conseguir un poco de preguntas bastante crípticos. 564 00:25:31,870 --> 00:25:35,210 Es difícil de creer que usted puede hacer incluso esta pregunta difícil de entender. 565 00:25:35,210 --> 00:25:38,100 Pero quitar hola fichero regular sólo medios hacen que desea eliminar hola. 566 00:25:38,100 --> 00:25:42,650 >> Y puedo seguir adelante y escribir y para sí, Enter, y ahora se ha ido. 567 00:25:42,650 --> 00:25:45,130 ¿Qué quiere decir esto ahora, si me aclaro la pantalla, 568 00:25:45,130 --> 00:25:47,301 es que en lugar de El hacer hello-- usted 569 00:25:47,301 --> 00:25:48,800 sé qué, me estoy volviendo bueno en esto. 570 00:25:48,800 --> 00:25:50,690 Voy a ejecutar el compilador mí mismo. 571 00:25:50,690 --> 00:25:53,330 No necesito un programa para averiguar lo que mi archivo se llama. 572 00:25:53,330 --> 00:25:55,370 Escribí hello.c, I sé cómo se llama, 573 00:25:55,370 --> 00:25:57,640 Estoy claramente capaz de escribir eso. 574 00:25:57,640 --> 00:26:02,620 Así que voy a seguir adelante y no clang hola.c Intro. 575 00:26:02,620 --> 00:26:03,264 >> Parece que funciona. 576 00:26:03,264 --> 00:26:05,930 Y no hay salida adicional, porque clang es el compilador. 577 00:26:05,930 --> 00:26:08,590 Es lo que la conversión de la código fuente de ceros y unos. 578 00:26:08,590 --> 00:26:12,870 Así que si ahora lo hago punto slash hola Enter, hm. 579 00:26:12,870 --> 00:26:14,630 Nuevo mensaje de error en la actualidad. 580 00:26:14,630 --> 00:26:17,610 Así que bash es sólo el nombre de la parpadeo rápido que estamos usando. 581 00:26:17,610 --> 00:26:20,360 Eso es una simplificación excesiva, pero por ahora eso es todo lo que es, 582 00:26:20,360 --> 00:26:21,401 es el símbolo de parpadear. 583 00:26:21,401 --> 00:26:22,880 Y es por eso que está gritando en nosotros. 584 00:26:22,880 --> 00:26:25,690 >> No existe el fichero o directorio está un poco más sencillo. 585 00:26:25,690 --> 00:26:28,190 Pero seguramente hice ese código objeto. 586 00:26:28,190 --> 00:26:30,930 Pero el problema es, que si escribo el comando 587 00:26:30,930 --> 00:26:34,650 para listar el contenido de este directorio, que es lo que? 588 00:26:34,650 --> 00:26:36,210 ls para la lista. 589 00:26:36,210 --> 00:26:39,332 Hay un montón de cosas aquí, algunos de los cuales llegaron con el aparato, 590 00:26:39,332 --> 00:26:42,040 como mi carpeta Escritorio, Descargas carpeta, carpeta de Dropbox, y todos 591 00:26:42,040 --> 00:26:42,850 esas cosas. 592 00:26:42,850 --> 00:26:45,410 Pero lo que es interesante es hello.c, que 593 00:26:45,410 --> 00:26:47,286 He creado hace un momento con gedit. 594 00:26:47,286 --> 00:26:49,160 Y lo que es más raro el mirando nombre aquí, 595 00:26:49,160 --> 00:26:53,110 tal vez eso no lo hicimos véase el último momento a todos? 596 00:26:53,110 --> 00:26:54,710 >> a.out, ¿verdad? 597 00:26:54,710 --> 00:26:56,920 Así que de vuelta en el día, se acaba de decidir que cuando 598 00:26:56,920 --> 00:26:58,760 compila un programa por primera vez, 599 00:26:58,760 --> 00:27:02,360 y no se especifica el nombre de un archivo, vamos a llamarlo a. 600 00:27:02,360 --> 00:27:05,800 Y a.out sólo significa esto fue la salida del compilador. 601 00:27:05,800 --> 00:27:07,790 Así que es un nombre horrible para un programa. 602 00:27:07,790 --> 00:27:12,820 Pero por esa lógica, punto slash para directorio actual, slash a.out, 603 00:27:12,820 --> 00:27:16,102 debe significar que hay, de hecho, hola mi programa mundial. 604 00:27:16,102 --> 00:27:17,560 Ahora un poco de calentamiento de ejercicio, también. 605 00:27:17,560 --> 00:27:20,420 Si quiero cambiar el nombre de esta archivo, resulta que 606 00:27:20,420 --> 00:27:23,000 mover un archivo de un nombre a otro. 607 00:27:23,000 --> 00:27:28,750 A.out Así mv, y luego me puede llamarlo hola Intro. 608 00:27:28,750 --> 00:27:30,940 Así que este es un comando de Linux. 609 00:27:30,940 --> 00:27:34,370 DOS tenía esto hace años, Windows cuenta con una ventana de terminal 610 00:27:34,370 --> 00:27:36,460 de algún tipo que se ve así, Linux y Mac 611 00:27:36,460 --> 00:27:38,140 computadoras tienen esta pronta a parpadear. 612 00:27:38,140 --> 00:27:41,490 A pesar de que la mayoría de nosotros probablemente rara vez, o nunca, lo utilizan. 613 00:27:41,490 --> 00:27:44,590 >> Pero lo que he hecho se ejecuta un programa, cuyo nombre es mv, 614 00:27:44,590 --> 00:27:47,900 y yo he proporcionado con dos argumentos, por así decirlo. 615 00:27:47,900 --> 00:27:48,630 Dos entradas. 616 00:27:48,630 --> 00:27:50,260 a.out es el nombre original. 617 00:27:50,260 --> 00:27:51,630 Hola es el nuevo nombre. 618 00:27:51,630 --> 00:27:55,670 Así que si ahora lo hago slash dot hola, Intro, lo que existe. 619 00:27:55,670 --> 00:28:00,770 Y si lo hago a.out slash dot, ¿qué esperas que debo ver? 620 00:28:00,770 --> 00:28:02,250 >> Bash, no existe el fichero o directorio. 621 00:28:02,250 --> 00:28:03,350 Porque acabo le cambió el nombre. 622 00:28:03,350 --> 00:28:04,975 Así que esto toma un poco de tiempo para acostumbrarse. 623 00:28:04,975 --> 00:28:06,977 Pero el problema conjunto 1 especificación será verdaderamente 624 00:28:06,977 --> 00:28:08,810 tomar tu mano a través de algo de esto minutae. 625 00:28:08,810 --> 00:28:11,050 Debido a que este es un completo distracción intelectual 626 00:28:11,050 --> 00:28:12,966 desde el más interesante ideas en la mano, que 627 00:28:12,966 --> 00:28:15,310 es en realidad la creación de algo de código. 628 00:28:15,310 --> 00:28:18,830 Pero vamos a hacer una modificación ahora con este programa. 629 00:28:18,830 --> 00:28:23,150 >> Recordemos que la última vez que hice algo así, printf diga su nombre. 630 00:28:23,150 --> 00:28:25,790 Y de hecho que acabamos de hacer este en la pantalla grande por allá. 631 00:28:25,790 --> 00:28:30,640 Y luego hice cadena s consigue GetString paren abiertos, cerca paren. 632 00:28:30,640 --> 00:28:33,430 Y paren sólo taquigrafía notación para paréntesis. 633 00:28:33,430 --> 00:28:36,460 Entonces, ¿GetString toma ningún argumento? 634 00:28:36,460 --> 00:28:38,440 No hay entradas que no, pero que necesidades de los paréntesis, 635 00:28:38,440 --> 00:28:41,830 porque eso es lo que demarca la convocatoria de una función. 636 00:28:41,830 --> 00:28:46,440 >> Así que voy a seguir adelante y tratar de ejecutar el compilador en este programa ahora. 637 00:28:46,440 --> 00:28:50,774 Clang hello.c, porque no cambió su nombre por el momento. 638 00:28:50,774 --> 00:28:51,940 Y tengo un montón de errores. 639 00:28:51,940 --> 00:28:53,570 Vamos a alejar aquí. 640 00:28:53,570 --> 00:28:55,420 Si me desplazo de nuevo, como dije la última vez, 641 00:28:55,420 --> 00:28:58,420 a la primera, el mismo error que me dieron la última vez. 642 00:28:58,420 --> 00:29:04,210 En la línea 6 de hello.c tuve una cadena de identificador no declarado, 643 00:29:04,210 --> 00:29:05,590 Qué quise decir estándar en? 644 00:29:05,590 --> 00:29:06,750 No lo hice. 645 00:29:06,750 --> 00:29:10,050 Porque lo que error que he hecho en este programa, si usted recuerda de la última vez? 646 00:29:10,050 --> 00:29:13,219 647 00:29:13,219 --> 00:29:15,010 Sí, necesitamos la llamada ruedas de entrenamiento 648 00:29:15,010 --> 00:29:16,510 que sólo tendremos que utilizamos durante unas semanas. 649 00:29:16,510 --> 00:29:19,480 Pero tengo que especificar que también, en algún lugar dentro del aparato, 650 00:29:19,480 --> 00:29:22,720 es un archivo que escribimos hace sólo unos años. 651 00:29:22,720 --> 00:29:26,500 En el interior de las cuales son funciones como aparentemente GetString. 652 00:29:26,500 --> 00:29:35,160 Así que ahora si vuelvo por aquí, zoom y re-ejecutar clang hello.c. 653 00:29:35,160 --> 00:29:36,500 Maldita sea, otro error. 654 00:29:36,500 --> 00:29:38,590 Pero no hemos visto esto antes. 655 00:29:38,590 --> 00:29:41,900 >> Éste es un poco más esotérica de averiguar. 656 00:29:41,900 --> 00:29:46,910 Pero esto es deliberadamente en la pantalla, porque queríamos contar esta historia. 657 00:29:46,910 --> 00:29:51,280 Al compilar hello.c, al igual que la imagen de delante sugirió, 658 00:29:51,280 --> 00:29:54,650 sólo estás convirtiendo esa código fuente de ceros y unos. 659 00:29:54,650 --> 00:30:00,340 Ahora el personal CS50 hace unos años escribió CS50.h, y un archivo correspondiente, 660 00:30:00,340 --> 00:30:01,640 CS50.c. 661 00:30:01,640 --> 00:30:04,490 Y nosotros, hace unos años, compilado esos archivos 662 00:30:04,490 --> 00:30:07,290 en un archivo que ocurre ser llamado CS50.o. 663 00:30:07,290 --> 00:30:09,180 >> O puede cambiar el nombre de un algunas cosas diferentes. 664 00:30:09,180 --> 00:30:11,054 Pero eso es una manera sencilla de pensar en ello. 665 00:30:11,054 --> 00:30:14,960 Así que hemos recopilado de CS50 biblioteca en ceros y unos. 666 00:30:14,960 --> 00:30:20,340 Pero en ninguna parte he especificado que quiero combinar mis ceros 667 00:30:20,340 --> 00:30:24,030 y los de mi mundo hola programa con los ceros y unos 668 00:30:24,030 --> 00:30:29,760 que el personal CS50 creado unos pocos años hace en un programa completo. 669 00:30:29,760 --> 00:30:34,100 Todo lo que he especificado por escrito hola.c sonido metálico es compilar hello.c. 670 00:30:34,100 --> 00:30:38,380 >> Yo no he dicho sonido metálico a eslabón de los ceros y unos 671 00:30:38,380 --> 00:30:41,650 que el personal CS50 creado para usted hace algún tiempo. 672 00:30:41,650 --> 00:30:48,280 Así que es una solución fácil, lanzarse l para el enlace, CS50. 673 00:30:48,280 --> 00:30:52,600 Y otra vez a ver este en poco tiempo una y otra vez. 674 00:30:52,600 --> 00:30:54,420 Pero note ahora no había ninguna queja. 675 00:30:54,420 --> 00:30:59,770 Así que ahora si se me acaban slash dot hola, ahora que está funcionando. 676 00:30:59,770 --> 00:31:03,840 Aunque eso es un poco engañoso ya que acabo recreado lo archivo? 677 00:31:03,840 --> 00:31:05,880 a.out. 678 00:31:05,880 --> 00:31:07,930 >> Así que permítanme rebobinar por un momento. 679 00:31:07,930 --> 00:31:10,900 El programa que acaba de compilar tiene las tres líneas de código. 680 00:31:10,900 --> 00:31:14,710 Cuando me encontré hola mundo, hola un momento hace, no vi diga su nombre. 681 00:31:14,710 --> 00:31:17,080 Y eso es porque me encontré con la versión anterior del programa. 682 00:31:17,080 --> 00:31:22,700 Pero si yo en verdad corro a.out slash dot Escriba, diga su nombre, Rob, hola, 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 Eso es algo de un insecto. 686 00:31:26,110 --> 00:31:28,560 Probablemente quería decir Rob, ¿verdad? 687 00:31:28,560 --> 00:31:30,997 Así que ¿cuál es la solución aquí en código. 688 00:31:30,997 --> 00:31:31,872 ESTUDIANTE: [inaudible]. 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 Así que sólo tengo que hacer ese truco final, por lo que estoy pasando en un marcador de posición, 692 00:31:43,160 --> 00:31:45,690 como un relleno en el espacio en blanco, como lo hicimos hace un momento. 693 00:31:45,690 --> 00:31:47,870 Pero por ciento s es ahora que llenan el espacio en blanco. 694 00:31:47,870 --> 00:31:52,100 Así que, por último, vamos a revelar una última detalle para que no hay magia. 695 00:31:52,100 --> 00:31:54,090 Voy a seguir adelante y deshacerse de hellow. 696 00:31:54,090 --> 00:31:56,070 Voy a seguir adelante y deshacerse de a.out. 697 00:31:56,070 --> 00:31:58,410 Así que ahora tengo ningún programa, sólo mi código fuente. 698 00:31:58,410 --> 00:32:01,100 Y yo voy a correr un comando ligeramente más largo, clang 699 00:32:01,100 --> 00:32:05,650 lanzarse o hola LCS50 tablero hello.c. 700 00:32:05,650 --> 00:32:08,700 >> Ahora esto está empezando a especie de ir por un oído y sale por el otro, tal vez. 701 00:32:08,700 --> 00:32:10,366 Pero justo desmenuzar lo que esto está haciendo. 702 00:32:10,366 --> 00:32:14,910 Clang es el compilador, LCS50 guión deliberadamente al final 703 00:32:14,910 --> 00:32:18,330 hace qué en una frase? 704 00:32:18,330 --> 00:32:19,607 Enlaces a la biblioteca CS50. 705 00:32:19,607 --> 00:32:21,440 Agarra los ceros y los que el personal se 706 00:32:21,440 --> 00:32:23,310 y les abarrota en mi propio programa. 707 00:32:23,310 --> 00:32:27,040 Así que la última cuestión que nos ocupa es, lo que es rociada o hola probablemente 708 00:32:27,040 --> 00:32:30,530 hacer, incluso si usted nunca ha visto esta sintaxis antes? 709 00:32:30,530 --> 00:32:34,920 >> Emisión de un programa que es que no se llame la a.out por defecto. 710 00:32:34,920 --> 00:32:37,330 Más bien se ha nombrado hola. 711 00:32:37,330 --> 00:32:39,460 Así que ahora no hay a.out. 712 00:32:39,460 --> 00:32:42,660 El fichero o directorio no existe, porque dije explícitamente 713 00:32:42,660 --> 00:32:46,720 llamar a este programa hola, por lo que Ahora puedo escribir un nombre como ese 714 00:32:46,720 --> 00:32:47,790 y tiene que comportarse. 715 00:32:47,790 --> 00:32:50,180 >> Ahora, francamente, chico es que poco interesante tener 716 00:32:50,180 --> 00:32:52,170 recordar todo eso pequeña minucia, ¿verdad? 717 00:32:52,170 --> 00:32:54,180 Así que vamos a seguir adelante y deshacerse de hola de nuevo. 718 00:32:54,180 --> 00:32:57,880 Y ahora vamos a volver a un mundo en el que basta decir hola hacen. 719 00:32:57,880 --> 00:33:00,410 Pero esa es la magia que que está haciendo por ti, 720 00:33:00,410 --> 00:33:02,320 ese es el tedio que que está haciendo por usted. 721 00:33:02,320 --> 00:33:04,630 Y como nuestros programas y problemas se vuelven más complejos, 722 00:33:04,630 --> 00:33:06,142 que será verdaderamente su amigo. 723 00:33:06,142 --> 00:33:07,850 Debido a que no es demasiado largo a partir de ahora vamos 724 00:33:07,850 --> 00:33:11,150 contar con programas que se escriben no con un archivo, pero varios archivos, 725 00:33:11,150 --> 00:33:16,310 y hacer que automatizará el proceso de compilar todo eso para nosotros juntos. 726 00:33:16,310 --> 00:33:20,620 >> Así que ahora imprimir. 727 00:33:20,620 --> 00:33:24,960 printf está dentro de este archivo, estándar I / O de punto h, que hemos visto antes, 728 00:33:24,960 --> 00:33:26,980 pero hay más a printf que eso. 729 00:33:26,980 --> 00:33:30,482 Hay barra invertida n, pero también hay un montón de otras secuencias de escape. 730 00:33:30,482 --> 00:33:32,940 Y secuencia de escape es sólo un forma elegante de decir algo 731 00:33:32,940 --> 00:33:35,990 que comienza con una barra invertida, no una barra, una barra invertida, 732 00:33:35,990 --> 00:33:37,920 y lo hace algo especial. 733 00:33:37,920 --> 00:33:43,770 Y no vamos a detenernos en la mayoría de ellos, pero ¿por qué hay barra invertida doble cita, 734 00:33:43,770 --> 00:33:44,830 Qué te parece? 735 00:33:44,830 --> 00:33:48,010 ¿Por qué existe esta secuencia extraña de caracteres, las comillas dobles barra invertida, 736 00:33:48,010 --> 00:33:50,505 ¿Por qué podría ser eso útil? 737 00:33:50,505 --> 00:33:51,380 ESTUDIANTE: [inaudible]. 738 00:33:51,380 --> 00:33:56,594 739 00:33:56,594 --> 00:33:57,760 DAVID MALAN: Exactamente, ¿verdad? 740 00:33:57,760 --> 00:34:01,830 Piense de nuevo a nuestro programa hola mundo que hemos visto unas cuantas veces ya, 741 00:34:01,830 --> 00:34:05,880 cada vez que he visto ese mundo hola programa hemos tenido comillas dobles dentro 742 00:34:05,880 --> 00:34:08,210 de los cuales es hola coma barra invertida n mundial. 743 00:34:08,210 --> 00:34:10,070 Pero piensa a sí mismo, ¿qué pasa si en realidad 744 00:34:10,070 --> 00:34:12,520 querido imprimir una comilla? 745 00:34:12,520 --> 00:34:16,100 Su primer instinto podría ser, no lo sé saber por qué yo podría querer hacer-- aquí, 746 00:34:16,100 --> 00:34:18,780 podemos ser un poco pasiva , hola amigo agresiva. 747 00:34:18,780 --> 00:34:21,350 Podríamos querer hacer algo así. 748 00:34:21,350 --> 00:34:25,230 >> Pero ¿por qué es esto ahora problemático? 749 00:34:25,230 --> 00:34:28,730 Haciendo caso omiso de las comillas tipográficas de lado que keynote hizo por nosotros automáticamente. 750 00:34:28,730 --> 00:34:29,730 ¿Por qué es esto un problema? 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 tenemos como 4 comillas. 754 00:34:39,022 --> 00:34:41,230 Bueno, la primera de ellas, probablemente, va con el segundo, 755 00:34:41,230 --> 00:34:43,271 y tal vez el cuarto va con la tercera, 756 00:34:43,271 --> 00:34:46,170 o, quiero decir que no estoy seguro, ni es el equipo que va a ser. 757 00:34:46,170 --> 00:34:48,352 Computadoras de nuevo, compiladores una vez más, son bastante tonto. 758 00:34:48,352 --> 00:34:50,060 Ellos sólo hacen lo usted les dice que hacer. 759 00:34:50,060 --> 00:34:54,270 Y si usted no es inequívoca que son probablemente va a lanzar un error. 760 00:34:54,270 --> 00:34:57,700 >> Si usted no es inequívoca en cuanto a cómo hacer una mantequilla de maní y jalea 761 00:34:57,700 --> 00:34:59,510 cosas extrañas podrían llegar. 762 00:34:59,510 --> 00:35:00,580 Es la misma idea. 763 00:35:00,580 --> 00:35:03,100 Ahora basta con decir que hay algunas otras secuencias de escape, 764 00:35:03,100 --> 00:35:04,820 pero vamos a llegar a aquellos en poco tiempo. 765 00:35:04,820 --> 00:35:07,410 Se trata fundamentalmente de escape secuencias representan algo 766 00:35:07,410 --> 00:35:10,480 que es posible que no pueda con demasiada facilidad en el teclado, 767 00:35:10,480 --> 00:35:12,010 sin confundir al equipo. 768 00:35:12,010 --> 00:35:15,733 >> Ahora mientras tanto tenemos marcadores de posición en printf. 769 00:35:15,733 --> 00:35:19,630 Porcentaje d, que también se puede escribir en casi todos los casos como ciento i, 770 00:35:19,630 --> 00:35:21,610 es un marcador de posición para el tipo de datos? 771 00:35:21,610 --> 00:35:23,920 ¿Qué 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 Así que en realidad vamos a empezar usando ciento i porque es 774 00:35:27,234 --> 00:35:28,650 un poco más simple, como un número entero. 775 00:35:28,650 --> 00:35:29,550 I por ciento. 776 00:35:29,550 --> 00:35:31,320 Un entero que pasa a ser decimal. 777 00:35:31,320 --> 00:35:35,690 >> Porcentaje s ya dijimos era un marcador de posición para una cadena. 778 00:35:35,690 --> 00:35:38,630 Que es sólo una palabra, una frase, un párrafo, un ensayo, lo que sea. 779 00:35:38,630 --> 00:35:40,830 Es una secuencia de personajes de cierta extensión. 780 00:35:40,830 --> 00:35:42,820 Y veremos en poco tiempo algunos de estos otros. 781 00:35:42,820 --> 00:35:45,950 Pero por ciento c es para un solo personaje. 782 00:35:45,950 --> 00:35:48,500 Porcentaje f es para un número de punto flotante, 783 00:35:48,500 --> 00:35:50,860 como un número real que tiene un punto decimal en el mismo, que 784 00:35:50,860 --> 00:35:52,550 es claro que no un entero. 785 00:35:52,550 --> 00:35:54,670 Y hay un conjunto montón de otros también. 786 00:35:54,670 --> 00:35:56,990 >> Mientras tanto, en C, y en una gran cantidad de idiomas, 787 00:35:56,990 --> 00:35:58,650 tenemos diferentes tipos de datos. 788 00:35:58,650 --> 00:36:00,650 Los diferentes tipos de cuencos de cristal si se quiere. 789 00:36:00,650 --> 00:36:03,830 El recipiente que utiliza la última vez fue por pelotas de ping pong, 790 00:36:03,830 --> 00:36:06,990 pero también podemos almacenar diferentes valores como caracteres y cadenas 791 00:36:06,990 --> 00:36:10,820 y números enteros en un recipiente, como una variable, y C tiene estos. 792 00:36:10,820 --> 00:36:14,020 Char es el tipo de datos, el tipo de variable, 793 00:36:14,020 --> 00:36:15,700 en la que puede almacenar un carácter. 794 00:36:15,700 --> 00:36:19,560 Float es un tipo de variable en que puede almacenar un número real. 795 00:36:19,560 --> 00:36:21,220 >> Int es por supuesto para un int. 796 00:36:21,220 --> 00:36:23,760 Y en lugar ridículamente llamado un largo tiempo 797 00:36:23,760 --> 00:36:26,830 es donde se puede almacenar en esencia un número muy largo, incluso con 798 00:36:26,830 --> 00:36:29,930 más dígitos y luego una típica tienda de fuerza int. 799 00:36:29,930 --> 00:36:32,420 Pero vamos a volver a que en poco tiempo. 800 00:36:32,420 --> 00:36:35,520 >> En CS50 punto h mientras tanto el otro fichero de cabecera 801 00:36:35,520 --> 00:36:37,630 que hemos visto un par veces en uso, hay 802 00:36:37,630 --> 00:36:41,350 otros dos tipos de datos que no existen en C normalmente. 803 00:36:41,350 --> 00:36:45,000 Uno de ellos es la cadena, y ya veremos en unas semanas realmente qué cadenas 804 00:36:45,000 --> 00:36:46,610 están por debajo de la capucha. 805 00:36:46,610 --> 00:36:47,950 Y uno es bool. 806 00:36:47,950 --> 00:36:51,650 Y un bool es una variable que sólo puede tener en determinados valores. 807 00:36:51,650 --> 00:36:54,370 Y justo basado en la semana de la última explicación de Scratch, 808 00:36:54,370 --> 00:36:56,680 y más recientemente C, ¿qué haría usted adivinar 809 00:36:56,680 --> 00:37:01,770 son los dos valores posibles para algún contenedor que es de tipo bool? 810 00:37:01,770 --> 00:37:02,860 >> Sí y no. 811 00:37:02,860 --> 00:37:03,870 Uno y cero. 812 00:37:03,870 --> 00:37:04,502 Verdadero o falso. 813 00:37:04,502 --> 00:37:07,460 Y de hecho es la última que tiende ser convencional en una programación 814 00:37:07,460 --> 00:37:10,030 lenguaje, diciendo algo como verdadero o falso. 815 00:37:10,030 --> 00:37:13,160 >> Mientras tanto la biblioteca CS50 viene con un montón de funcionalidad 816 00:37:13,160 --> 00:37:16,640 que el personal escribió para ti, además de sólo conseguir una cadena. 817 00:37:16,640 --> 00:37:20,910 Escribimos en funciones avanzadas que puede conseguir un número entero de usuario, 818 00:37:20,910 --> 00:37:22,990 obtener un solo carácter, conseguir un flotador, que 819 00:37:22,990 --> 00:37:25,160 es sólo un número con punto decimal. 820 00:37:25,160 --> 00:37:28,290 Obtener un largo tiempo, una realidad gran valor desde el usuario. 821 00:37:28,290 --> 00:37:30,930 Así que sólo hemos visto esto en acción en forma de GetString. 822 00:37:30,930 --> 00:37:33,230 Pero a través de estas funciones pronto será capaz de escribir 823 00:37:33,230 --> 00:37:36,070 programas que reciben la entrada del usuario. 824 00:37:36,070 --> 00:37:39,230 >> Mientras tanto considerar este programa, y ​​considerar 825 00:37:39,230 --> 00:37:42,600 la forma en que ahora podríamos empezar a sumar a la misma con nuevas construcciones. 826 00:37:42,600 --> 00:37:44,530 Un viaje relámpago rápida y luego veremos 827 00:37:44,530 --> 00:37:47,340 en algún escrito algunos programas manualmente nosotros mismos. 828 00:37:47,340 --> 00:37:49,700 A partir de ahora, si queremos aplicar una condición, 829 00:37:49,700 --> 00:37:52,790 no va a parecer una pequeña y adorable pieza de puzzle bastante. 830 00:37:52,790 --> 00:37:54,460 Se va a mirar un poco más arcano. 831 00:37:54,460 --> 00:37:57,620 Pero esta es la canónica estructura de una condición en C. 832 00:37:57,620 --> 00:38:00,380 >> La palabra si, dos paréntesis, dentro de la cual 833 00:38:00,380 --> 00:38:02,590 va a haber algún tipo de la expresión booleana. 834 00:38:02,590 --> 00:38:04,999 Ahora el slash slash en el medio, esto es 835 00:38:04,999 --> 00:38:07,290 en este momento algo así como código de marcador de posición pseudocódigo. 836 00:38:07,290 --> 00:38:11,576 Pero más bien, ninguna línea de código en C que comienza con slash slash 837 00:38:11,576 --> 00:38:12,850 es un comentario. 838 00:38:12,850 --> 00:38:15,920 >> Es como una nota adhesiva que te pueden poner en un ensayo, impreso en papel. 839 00:38:15,920 --> 00:38:17,290 Es una nota para usted mismo. 840 00:38:17,290 --> 00:38:20,100 No tiene funcional impacto en el programa. 841 00:38:20,100 --> 00:38:23,580 Es una especie de recordatorio, es su propia documentación en cuanto a lo que está pasando. 842 00:38:23,580 --> 00:38:25,720 Así que hacer esto en este momento es una especie de marcador de posición 843 00:38:25,720 --> 00:38:27,560 para lo que hay dentro de esas llaves 844 00:38:27,560 --> 00:38:29,810 finalmente se va a hacer algo. 845 00:38:29,810 --> 00:38:35,160 >> Mientras tanto usted tiene dos bifurcaciones en el carretera, un if-else construir así. 846 00:38:35,160 --> 00:38:37,024 Usted puede si, elseif, else. 847 00:38:37,024 --> 00:38:39,690 Ahora vale la pena señalar, especialmente si usted ha estado alrededor de google 848 00:38:39,690 --> 00:38:42,480 en línea para los recursos de cada curiosidad, o si usted toma 849 00:38:42,480 --> 00:38:44,575 uno de el curso de Libros recomendados sobre C, 850 00:38:44,575 --> 00:38:48,430 usted verá que los seres humanos tienen un montón de diferentes preferencias sobre cómo 851 00:38:48,430 --> 00:38:50,510 para expresarse en el código. 852 00:38:50,510 --> 00:38:53,800 Algunas personas les gusta poner la llaves como lo he hecho aquí. 853 00:38:53,800 --> 00:38:57,760 Algunas personas les gusta poner el rizado apoyos por ejemplo hasta aquí. 854 00:38:57,760 --> 00:39:01,700 >> Algunas personas les gusta poner la vigilara aquí y luego esto aquí. 855 00:39:01,700 --> 00:39:05,120 Hay un número de maneras de código de escritura, y ninguno de ellos 856 00:39:05,120 --> 00:39:06,566 tienen razón per se. 857 00:39:06,566 --> 00:39:08,440 Aunque hay unos cuantos que son bastante mal. 858 00:39:08,440 --> 00:39:11,315 Pero hay no-- si esto es en última instancia, un debate muy religiosa. 859 00:39:11,315 --> 00:39:13,940 De hecho, uno de los más molestos cosas de la informática 860 00:39:13,940 --> 00:39:16,310 es como obstinado los informáticos pueden ser. 861 00:39:16,310 --> 00:39:19,880 Y usted encontrará con el tiempo que incluso a desarrollar preferencias personales 862 00:39:19,880 --> 00:39:22,130 en cuanto a cómo el código debe mirar. 863 00:39:22,130 --> 00:39:27,162 >> No sólo se comportan, no sólo crear una salida, pero la forma en que debe ser estéticamente. 864 00:39:27,162 --> 00:39:30,120 Así que lo que vamos a hacer es que te guiará a lo largo el camino hacia, al menos por ahora, 865 00:39:30,120 --> 00:39:34,825 un estilo CS50 estándar que al menos mantiene las cosas uniforme y fácil de leer. 866 00:39:34,825 --> 00:39:37,330 Pero más en los distinciones dentro de poco. 867 00:39:37,330 --> 00:39:41,830 >> Una expresión booleana en C, si querido decir si esta condición es verdadera 868 00:39:41,830 --> 00:39:44,650 y esto es otra condición cierto, no se escribe la palabra 869 00:39:44,650 --> 00:39:46,610 y, como lo haría en Inglés. 870 00:39:46,610 --> 00:39:50,580 En su lugar, utiliza ampersand ampersand, por razones que volveremos a. 871 00:39:50,580 --> 00:39:54,520 Si quieres decir o utiliza dos barras verticales, que en un teclado de EE.UU. 872 00:39:54,520 --> 00:39:57,650 generalmente por encima de la Intro siguiente tecla a la barra invertida. 873 00:39:57,650 --> 00:40:03,080 Y esto quiere decir simplemente si esta condición o esta otra condición es verdadera hacerlo. 874 00:40:03,080 --> 00:40:05,210 >> Mientras tanto hay esta Lo más loco, que 875 00:40:05,210 --> 00:40:07,760 tendrás ocasión para usar de vez en cuando. 876 00:40:07,760 --> 00:40:10,390 Pero es sólo una alternativa manera de expresarse. 877 00:40:10,390 --> 00:40:12,400 Esto, por ahora, vamos a estipula, es sólo 878 00:40:12,400 --> 00:40:16,880 otra manera cobarde de expresar si, elseif, elseif, elseif, elseif. 879 00:40:16,880 --> 00:40:19,720 Es sólo el formato en términos de los casos, en las que, literalmente, 880 00:40:19,720 --> 00:40:23,420 enumerar los valores que es posible que desee comprobar. 881 00:40:23,420 --> 00:40:24,410 >> Mientras tanto bucles. 882 00:40:24,410 --> 00:40:26,842 Vimos una comparación de Raspe con un bucle. 883 00:40:26,842 --> 00:40:29,550 Y yo voy a agitar la mano en lo que cada una de estas cosas significa. 884 00:40:29,550 --> 00:40:33,520 Pero note que un bucle muy menudo comienzan con la palabra clave para. 885 00:40:33,520 --> 00:40:36,350 O se iniciará con la palabra clave tiempo. 886 00:40:36,350 --> 00:40:41,360 O se iniciará con la palabra clave hacer, y terminar con la palabra clave cuando. 887 00:40:41,360 --> 00:40:43,920 >> Pero lo que estamos a punto de ver es lo más les gusta esto. 888 00:40:43,920 --> 00:40:47,950 Aquí está, en general, en C, ¿cómo te pueden declarar una variable y darle un valor. 889 00:40:47,950 --> 00:40:50,610 En C no es suficiente, como en Scratch, que acaba de 890 00:40:50,610 --> 00:40:52,810 decir dame una variable llamada algo. 891 00:40:52,810 --> 00:40:55,960 Tienes que decirle a C, y dices su compilador, más específicamente, 892 00:40:55,960 --> 00:40:58,680 qué tipo de valor le quiere poner en el recipiente de vidrio. 893 00:40:58,680 --> 00:40:59,610 >> ¿Es un número entero? 894 00:40:59,610 --> 00:41:02,210 Si es así, usted tiene que decir, literalmente, int y luego 895 00:41:02,210 --> 00:41:04,220 el nombre de la variable, a continuación, un punto y coma. 896 00:41:04,220 --> 00:41:08,050 Si en vez querías cuerda y llamaste que s como hice mi código aquí hoy, 897 00:41:08,050 --> 00:41:10,920 usted diría coma cadena s. 898 00:41:10,920 --> 00:41:14,200 Una vez que usted quiere darle un valor a continuación, puede utilizar el signo igual, 899 00:41:14,200 --> 00:41:16,211 también conocida como la operador de asignación. 900 00:41:16,211 --> 00:41:17,960 Y note cómo cada de estas líneas de código 901 00:41:17,960 --> 00:41:20,650 tiene el punto y coma al final de la misma. 902 00:41:20,650 --> 00:41:22,550 >> Pero, francamente, esto sólo parece un poco feo. 903 00:41:22,550 --> 00:41:26,580 ¿Por qué no puedo decir a la computadora, dar me una variable e inicializar a cero. 904 00:41:26,580 --> 00:41:28,380 Es decir, me da un tazón de vidrio vacía. 905 00:41:28,380 --> 00:41:28,980 Mientras que usted puede. 906 00:41:28,980 --> 00:41:32,250 Y así uno de la sentencia te llama voy tener que hacer con el tiempo estilísticamente 907 00:41:32,250 --> 00:41:36,290 Es decir, se escribe el código de este tipo, o Qué tipo de limpiarlo e impresionar 908 00:41:36,290 --> 00:41:39,040 la gente por escribir dos líneas como uno solo. 909 00:41:39,040 --> 00:41:41,830 Y esto sería considerado generalmente una forma más elegante 910 00:41:41,830 --> 00:41:43,870 de escribir su código estilísticamente. 911 00:41:43,870 --> 00:41:45,200 >> Funciones estamos por supuesto visto. 912 00:41:45,200 --> 00:41:46,340 Ellos van a tener este formato. 913 00:41:46,340 --> 00:41:48,881 El nombre de una función, algunos paréntesis, y luego tal vez algunos 914 00:41:48,881 --> 00:41:49,910 lo que hay dentro. 915 00:41:49,910 --> 00:41:52,540 O es posible que vea los usos de lado múltiples funciones 916 00:41:52,540 --> 00:41:55,980 al lado del otro, como si algo como esto. 917 00:41:55,980 --> 00:41:59,390 Ahora, como una tangente, lo hace esta broma ahora tienen 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 Esto no quiere decir que es divertido, pero es no tal vez hacer un poco más de sentido. 921 00:42:09,360 --> 00:42:12,140 Así que ahora vamos a entrar en el Aparato CS50 por un momento. 922 00:42:12,140 --> 00:42:14,640 Y déjame abro teaser aquí. 923 00:42:14,640 --> 00:42:17,470 >> Y, de hecho una de las razones para introducir Catálogo IKEA 924 00:42:17,470 --> 00:42:20,080 y el parpadeo de la imagen del iPhone hace un poco 925 00:42:20,080 --> 00:42:24,700 era atar juntos realmente en la hecho de que hace apenas unos años, en 2007, 926 00:42:24,700 --> 00:42:26,540 esta pieza de código era en libertad, que fue 927 00:42:26,540 --> 00:42:29,820 uno de la primera aplicación de una pieza de software 928 00:42:29,820 --> 00:42:31,494 que hace lo que se llama jailbreaking. 929 00:42:31,494 --> 00:42:34,410 Para aquellos no familiarizados, jailbreaking algo así como un teléfono o un iPhone 930 00:42:34,410 --> 00:42:37,680 significa esencialmente averiguar encontrar la manera de hacer las cosas 931 00:42:37,680 --> 00:42:39,864 con lo que la empresa que lo hizo no tenía la intención. 932 00:42:39,864 --> 00:42:42,780 Al igual que usted desea instalar cierta software que no está en la tienda de aplicaciones, 933 00:42:42,780 --> 00:42:45,405 jailbreaking su teléfono que hacer las cosas de esa manera y más. 934 00:42:45,405 --> 00:42:47,447 Pero lo que fue muy divertido en 2007-- y ha habido 935 00:42:47,447 --> 00:42:49,780 docenas de diferentes versiones de estas cosas desde entonces, 936 00:42:49,780 --> 00:42:53,540 en todo tipo de Las Lenguas es que este programa aquí, llamado iUnlock, 937 00:42:53,540 --> 00:42:57,036 en realidad fue escrito en C. Y así me levantado el código fuente de este, 938 00:42:57,036 --> 00:42:59,910 sólo para mostrar amable de su parte de las similitudes con los constructos 939 00:42:59,910 --> 00:43:01,450 que hemos estado discutiendo hasta ahora. 940 00:43:01,450 --> 00:43:05,150 Ahora hay mucho más complejidad aquí lo que hemos visto ya en clase. 941 00:43:05,150 --> 00:43:07,160 Permítanme desplazarse hacia arriba un poco aquí. 942 00:43:07,160 --> 00:43:11,520 >> Pero notamos estos-- así nos damos cuenta de algunos cosas-- notar estas líneas aquí, 943 00:43:11,520 --> 00:43:14,090 incluyendo E / S estándar dot h. 944 00:43:14,090 --> 00:43:17,660 Y todos-- línea 24, favor-- cuenta de E / S estándar 945 00:43:17,660 --> 00:43:21,380 dot h y un montón de otra Los archivos que al parecer otras personas 946 00:43:21,380 --> 00:43:22,160 han escrito. 947 00:43:22,160 --> 00:43:24,850 Y si nos desplazamos a través de esto, poco arbitrariamente, 948 00:43:24,850 --> 00:43:27,910 Aviso que no sé cómo escribir todo esto a mí mismo necesariamente, sin embargo, 949 00:43:27,910 --> 00:43:28,880 pero no si. 950 00:43:28,880 --> 00:43:30,400 Así que al parecer esto tiene una rama. 951 00:43:30,400 --> 00:43:33,210 >> Y si me desplazo un poco además hay otro caso. 952 00:43:33,210 --> 00:43:38,210 Si me desplazo, creo alrededor de la línea 100 que vi por. 953 00:43:38,210 --> 00:43:40,020 Así que no estoy muy seguro cómo funciona esto, sin embargo, 954 00:43:40,020 --> 00:43:43,180 pero esto es un bucle que va a déjame iterar un número de veces. 955 00:43:43,180 --> 00:43:45,230 Y si me desplazo todos la forma de la parte inferior 956 00:43:45,230 --> 00:43:51,020 Veo que hay una funcionar aquí llamado 957 00:43:51,020 --> 00:43:54,570 principal, y algunos créditos adicionales para su placer de la lectura. 958 00:43:54,570 --> 00:43:57,830 >> Así que esto sólo se decir-- y pondremos esta línea entre la fuente del curso 959 00:43:57,830 --> 00:44:01,480 código hoy-- que incluso algunos de estos dispositivos que damos por sentado, 960 00:44:01,480 --> 00:44:05,130 al final del día que sigues utilizando estas construcciones básicas que hemos 961 00:44:05,130 --> 00:44:07,430 introducir sido ya hasta ahora. 962 00:44:07,430 --> 00:44:08,620 Ya basta de eso. 963 00:44:08,620 --> 00:44:11,480 Muy bien, así que ahora vamos a realmente construir algo. 964 00:44:11,480 --> 00:44:15,640 >> Vamos a ir más allá de algo así como hello.c, y abrir este, 965 00:44:15,640 --> 00:44:17,170 vamos a escribir este programa aquí. 966 00:44:17,170 --> 00:44:19,850 Voy a seguir adelante y escribir un programa llamado adder.c, 967 00:44:19,850 --> 00:44:23,310 cuyo propósito en la vida va a ser como mi primera calculadora super simple 968 00:44:23,310 --> 00:44:24,840 que sólo se suma un par de números. 969 00:44:24,840 --> 00:44:27,050 No por eso es un disco problema, sino porque 970 00:44:27,050 --> 00:44:29,390 me permite ahora ato juntos un par de cosas. 971 00:44:29,390 --> 00:44:33,100 Así que voy a seguir adelante e incluir E / S estándar dot h y CS50 punto h. 972 00:44:33,100 --> 00:44:34,670 Voy a decir void main int. 973 00:44:34,670 --> 00:44:36,545 Y de nuevo en el futuro vamos a volver a ella 974 00:44:36,545 --> 00:44:38,560 en este contexto y medios vacíos. 975 00:44:38,560 --> 00:44:43,340 >> Y ahora voy a decir algo como printf, dame un entero. 976 00:44:43,340 --> 00:44:47,610 Y ahora en mi segunda línea, ¿cómo me expreso tal 977 00:44:47,610 --> 00:44:50,980 que quiero declarar una variable eso va a almacenar un int? 978 00:44:50,980 --> 00:44:55,470 Literalmente lo que puedo escribir si quiero crear una variable que almacena un int 979 00:44:55,470 --> 00:44:58,270 Qué le dirías? 980 00:44:58,270 --> 00:44:59,650 int a igual getint. 981 00:44:59,650 --> 00:45:00,485 Claro, por lo que funciona. 982 00:45:00,485 --> 00:45:02,360 Y sólo por la coherencia con el código que 983 00:45:02,360 --> 00:45:04,485 ver en línea, me cambio de dejar que esto a x, sólo porque x 984 00:45:04,485 --> 00:45:06,830 es un nombre de variable común utilizar, al menos en álgebra. 985 00:45:06,830 --> 00:45:08,720 Ahora voy a seguir adelante y hacer printf nuevo. 986 00:45:08,720 --> 00:45:10,692 Dame otro entero. 987 00:45:10,692 --> 00:45:12,900 Y ahora me voy a clase de aprender de ese patrón, 988 00:45:12,900 --> 00:45:14,490 Voy a decir int y llega a getInt. 989 00:45:14,490 --> 00:45:16,340 >> Y nosotros no hemos usado GetInt antes, pero sólo 990 00:45:16,340 --> 00:45:19,860 como GetString va y se pone una cadena, como Javier hizo de la audiencia, 991 00:45:19,860 --> 00:45:22,780 de manera similar hace getInt comenzará a parpadear el símbolo. 992 00:45:22,780 --> 00:45:26,750 Y eficaz de espera para el usuario para darle un entero, escribiéndola en 993 00:45:26,750 --> 00:45:27,900 y oprimir la tecla Enter. 994 00:45:27,900 --> 00:45:30,850 Ahora, por último que voy a hacer esto, la suma printf de-- 995 00:45:30,850 --> 00:45:36,080 y déjame ahora-- lujo i ciento y el porcentaje de I está presente 996 00:45:36,080 --> 00:45:39,270 i exclamación punto barra invertida n. 997 00:45:39,270 --> 00:45:42,750 ¿Y qué crees que me voy a poner en ahora como las entradas adicionales 998 00:45:42,750 --> 00:45:44,620 a printf? 999 00:45:44,620 --> 00:45:47,380 >> No quiero decir literalmente citar x fin de la cita. 1000 00:45:47,380 --> 00:45:52,210 Quiero clase en x y entonces, y ahora vamos a obtener de fantasía 1001 00:45:52,210 --> 00:45:54,420 y vamos a suponer podemos hacer lo que queremos. 1002 00:45:54,420 --> 00:45:56,330 Lo que quiero decir a continuación? 1003 00:45:56,330 --> 00:45:57,070 x más y. 1004 00:45:57,070 --> 00:45:58,520 Y de hecho que va a funcionar. 1005 00:45:58,520 --> 00:46:01,760 Ha programación mínimamente idiomas hacer entender la aritmética básica, 1006 00:46:01,760 --> 00:46:03,500 y por lo que este debe de hecho el trabajo. 1007 00:46:03,500 --> 00:46:06,730 >> Así que déjame ir adelante y hacerlo hacer víbora en mi ventana en blanco y negro 1008 00:46:06,730 --> 00:46:08,090 aquí abajo, Enter. 1009 00:46:08,090 --> 00:46:10,830 Línea de Cryptic pero ningún error mensaje, por lo que es bueno. 1010 00:46:10,830 --> 00:46:14,410 Dot slash víbora, dame un entero, 1. 1011 00:46:14,410 --> 00:46:16,230 Dame otro número entero, 2. 1012 00:46:16,230 --> 00:46:18,770 La suma de 1 y 2 es 3. 1013 00:46:18,770 --> 00:46:21,730 >> Muy bien, así que una bastante trivial programa, pero ¿qué se hace? 1014 00:46:21,730 --> 00:46:25,680 Se me permitió utilizar una función llamar aquí, llamar a otra función aquí, 1015 00:46:25,680 --> 00:46:29,260 dos llamadas a getInt, un tercera llamada a printf, 1016 00:46:29,260 --> 00:46:30,720 y luego el uso de estos marcadores de posición. 1017 00:46:30,720 --> 00:46:33,160 Así que es un poco más sofisticada que la última vez. 1018 00:46:33,160 --> 00:46:35,260 Pero lo que si quiero conseguir un poco más de lujo? 1019 00:46:35,260 --> 00:46:38,900 >> Déjame ir por delante y ahora hago esto. 1020 00:46:38,900 --> 00:46:42,890 Déjenme seguir adelante y crear un nuevo archivo llamado condiciones cero. 1021 00:46:42,890 --> 00:46:44,890 Y me voy a guardar algún tiempo para las clases aras 1022 00:46:44,890 --> 00:46:48,260 y simplemente pegar en esa código como un punto de partida. 1023 00:46:48,260 --> 00:46:51,510 Y ahora sólo voy a poner algo nuevo aquí en el centro. 1024 00:46:51,510 --> 00:46:55,889 Así printf me gustaría un entero por favor. 1025 00:46:55,889 --> 00:46:58,180 Y todo el código está disponible en la página web del curso, 1026 00:46:58,180 --> 00:47:00,556 usted no tiene que escribir todo hacia fuera en clase si usted preferiría no hacerlo. 1027 00:47:00,556 --> 00:47:02,638 int, y ahora voy a utilizar, en lugar de x e y, 1028 00:47:02,638 --> 00:47:05,270 Voy a utilizar n, que es probablemente el nombre más común 1029 00:47:05,270 --> 00:47:09,220 para un número entero en un programa de ordenador. 1030 00:47:09,220 --> 00:47:12,060 Y ahora quiero hacer una poco juicio aquí. 1031 00:47:12,060 --> 00:47:15,460 Voy a ver si n es mayor que 0, entonces 1032 00:47:15,460 --> 00:47:23,670 Voy a decir whoops printf--, printf-- que eligió un número positivo, 1033 00:47:23,670 --> 00:47:25,370 exclamación punto barra invertida n. 1034 00:47:25,370 --> 00:47:26,460 Cierra esa. 1035 00:47:26,460 --> 00:47:33,150 Else Voy a imprimir printf que eligió un número negativo. 1036 00:47:33,150 --> 00:47:35,377 >> Ahora antes de que me gritas, vamos a ejecutar este programa. 1037 00:47:35,377 --> 00:47:36,210 Déjame ir por aquí. 1038 00:47:36,210 --> 00:47:40,730 ¿Y cómo puedo compilar un programa llamado condiciones tablero 0? 1039 00:47:40,730 --> 00:47:42,300 Haga condiciones tablero 0. 1040 00:47:42,300 --> 00:47:45,560 Tipo de un nombre estúpido, pero-- maldita sea. 1041 00:47:45,560 --> 00:47:47,560 Bueno, bueno momento de enseñanza. 1042 00:47:47,560 --> 00:47:48,410 ¿Por qué estalló? 1043 00:47:48,410 --> 00:47:51,360 1044 00:47:51,360 --> 00:47:54,710 >> ¿Qué hice accidentalmente llamo este archivo? 1045 00:47:54,710 --> 00:47:56,876 Puede tipo de inferir desde la ficha hasta aquí. 1046 00:47:56,876 --> 00:47:58,750 Así que no es malo que hizo esto, porque esto 1047 00:47:58,750 --> 00:48:00,208 que va a pasar tal vez para algunos de ustedes. 1048 00:48:00,208 --> 00:48:03,880 Así que puse el nombre de mi accidente fuente de código de condición 0. 1049 00:48:03,880 --> 00:48:09,950 Pero mi código fuente por convención debe estar en un archivo llamado condición 0 tablero c, 1050 00:48:09,950 --> 00:48:11,720 o lo que sea punto c. 1051 00:48:11,720 --> 00:48:12,610 >> Así que déjame arreglar esto. 1052 00:48:12,610 --> 00:48:16,880 Al igual que Microsoft Word puedo subir a Guardar como y haga condición 0 puntos c. 1053 00:48:16,880 --> 00:48:20,100 Ahora acaba de ser ordenada estoy va a seguir adelante y eliminar 1054 00:48:20,100 --> 00:48:23,020 condición 0, que era mi vieja versión. 1055 00:48:23,020 --> 00:48:26,550 Y ahora vamos a hacer hacer condición 0, Intro. 1056 00:48:26,550 --> 00:48:27,870 Bien, parece buena. 1057 00:48:27,870 --> 00:48:29,510 >> Condición 0, Intro. 1058 00:48:29,510 --> 00:48:33,530 Me gustaría un entero favor, 50, que eligió un número positivo. 1059 00:48:33,530 --> 00:48:35,390 Ahora ¿qué hay de negativo 50? 1060 00:48:35,390 --> 00:48:37,660 Usted escogió un número negativo. 1061 00:48:37,660 --> 00:48:39,605 ¿Y ahora, 0. 1062 00:48:39,605 --> 00:48:42,250 1063 00:48:42,250 --> 00:48:45,350 Bastante seguro 0 no es negativo. 1064 00:48:45,350 --> 00:48:47,780 >> Así que esto es una especie de error lógico. 1065 00:48:47,780 --> 00:48:50,680 ¿Cómo puedo solucionar esto? 1066 00:48:50,680 --> 00:48:57,260 Porque si n es menor que 0, hacer esto, lo demás podemos tener una sucursal a tres bandas, 1067 00:48:57,260 --> 00:49:01,740 printf usted escogió 0. 1068 00:49:01,740 --> 00:49:06,150 Así que ahora si me vuelva a ejecutar este programa, después de la compilación 1069 00:49:06,150 --> 00:49:10,790 de nuevo con la marca, y ahora volver a ejecutar condición 0, lo voy a ver aquí 1070 00:49:10,790 --> 00:49:14,570 es 0 me da esa salida. 1071 00:49:14,570 --> 00:49:16,280 Entonces, ¿dónde vamos con esto? 1072 00:49:16,280 --> 00:49:18,930 >> Bueno, es muy fácil perder de vista del bosque por los árboles. 1073 00:49:18,930 --> 00:49:23,590 Y así nos permiten concluir con este video de 2 minutos y medio 1074 00:49:23,590 --> 00:49:25,710 que en última instancia es un poco de un anuncio de Google, 1075 00:49:25,710 --> 00:49:28,850 pero que realmente es testimonio de lo que incluso utilizando estos edificios básica 1076 00:49:28,850 --> 00:49:33,020 bloques que en última instancia, podemos hacer una vez tenemos un poco de programación 1077 00:49:33,020 --> 00:49:34,463 espabilados en nuestro haber. 1078 00:49:34,463 --> 00:49:35,150 >> [REPRODUCCIÓN DE MÚSICA] 1079 00:49:35,150 --> 00:49:38,370 1080 00:49:38,370 --> 00:49:40,540 >> Saroo BRIERLEY (Voz): Fue hace 26 años, 1081 00:49:40,540 --> 00:49:42,470 y yo estaba a punto de cumplir 5. 1082 00:49:42,470 --> 00:49:45,465 Llegamos a la estación de tren y abordamos nuestro tren juntos. 1083 00:49:45,465 --> 00:49:48,010 Mi hermano acaba de decir voy a quedo aquí, y voy a volver. 1084 00:49:48,010 --> 00:49:51,140 Y pensé, bueno ya sabes, Puede ser que también acaba de ir a dormir 1085 00:49:51,140 --> 00:49:52,690 y él sólo me despertará. 1086 00:49:52,690 --> 00:49:55,145 Y cuando me desperté la siguiente día, el conjunto de carro 1087 00:49:55,145 --> 00:49:59,125 estaba vacía en un tren fuera de control, un fantasma tren me tomando no sé dónde. 1088 00:49:59,125 --> 00:50:01,980 1089 00:50:01,980 --> 00:50:06,280 >> Yo fui adoptado a Australia, a una familia australiana. 1090 00:50:06,280 --> 00:50:09,710 Y mamá había decorado mi habitación con el mapa de la India, 1091 00:50:09,710 --> 00:50:11,950 que se puso al lado de mi cama. 1092 00:50:11,950 --> 00:50:15,830 Me despertaba cada mañana ver ese mapa, y por lo tanto 1093 00:50:15,830 --> 00:50:18,530 que tipo de mantiene vivo el recuerdo. 1094 00:50:18,530 --> 00:50:20,530 La gente decía, eres tratando de encontrar una aguja 1095 00:50:20,530 --> 00:50:23,560 en un pajar, Saroo nunca lo encontrará. 1096 00:50:23,560 --> 00:50:28,540 >> Me he flasheado de los lugares que me solía ir, los destellos de mi familia 1097 00:50:28,540 --> 00:50:29,890 enfrenta. 1098 00:50:29,890 --> 00:50:34,060 Allí estaba la imagen de mi madre, sentarse con las piernas cruzadas, 1099 00:50:34,060 --> 00:50:35,740 sólo viendo llorar. 1100 00:50:35,740 --> 00:50:38,160 La vida es tan difícil. 1101 00:50:38,160 --> 00:50:41,237 Ese era mi tesoro. 1102 00:50:41,237 --> 00:50:44,320 Y yo estaba buscando en Google Map y dado cuenta de que hay Google Earth también. 1103 00:50:44,320 --> 00:50:48,140 En un mundo donde se puede hacer zoom en, Empecé a tener todos estos pensamientos 1104 00:50:48,140 --> 00:50:51,500 y qué posibilidades que esto podría hacer por mí. 1105 00:50:51,500 --> 00:50:54,890 Me dije a mí mismo, ya sabes, no tienes tengo todos esos recuerdos fotográficos 1106 00:50:54,890 --> 00:50:58,590 y puntos de referencia de donde usted está, y usted sabe lo que la ciudad se parece. 1107 00:50:58,590 --> 00:51:03,060 Esto podría ser una aplicación que que puede utilizar para encontrar el camino de vuelta. 1108 00:51:03,060 --> 00:51:06,720 >> Pensé, bueno voy a poner una punto en la estación de tren de Calcuta, 1109 00:51:06,720 --> 00:51:10,890 y una línea de radio, ya sabes, que debe buscar en esta zona. 1110 00:51:10,890 --> 00:51:13,750 En cierto modo me encontré con estas vías del tren. 1111 00:51:13,750 --> 00:51:18,160 Y empecé a seguir, y Llegué a una estación de tren que 1112 00:51:18,160 --> 00:51:22,228 refleja la misma imagen lo que estaba en mis recuerdos. 1113 00:51:22,228 --> 00:51:23,707 Todo igualado. 1114 00:51:23,707 --> 00:51:27,950 Sólo pensé que sí, me saber a dónde voy. 1115 00:51:27,950 --> 00:51:30,116 Sólo voy a dejar que el mapa que tengo en mi cabeza 1116 00:51:30,116 --> 00:51:33,080 me llevan y me lleve de regreso a mi ciudad natal. 1117 00:51:33,080 --> 00:51:36,420 >> Llegué a la puerta de la casa en que nací. 1118 00:51:36,420 --> 00:51:39,140 Y caminamos por unos 15 metros alrededor de la esquina, 1119 00:51:39,140 --> 00:51:42,980 había tres señoras de pie exterior, junto a la otra. 1120 00:51:42,980 --> 00:51:47,830 Y el del medio dio un paso adelante, y Sólo pensé, esta es tu madre. 1121 00:51:47,830 --> 00:51:53,450 Ella se acercó, me abrazó, y estábamos allí durante unos cinco minutos. 1122 00:51:53,450 --> 00:51:56,530 1123 00:51:56,530 --> 00:51:59,000 >> Ella me agarró la mano y ella me llevó a la casa 1124 00:51:59,000 --> 00:52:02,450 y se puso al teléfono, donde ella sonó mi hermana y mi hermano 1125 00:52:02,450 --> 00:52:05,600 para decir que, ya sabes, tu hermano tiene sólo 1126 00:52:05,600 --> 00:52:09,340 de repente apareció como un fantasma. 1127 00:52:09,340 --> 00:52:12,440 Y luego la familia se reunió de nuevo. 1128 00:52:12,440 --> 00:52:15,110 Todo está bien, Ayudé a mi madre, 1129 00:52:15,110 --> 00:52:17,110 no tiene que ser trabajar como esclavos. 1130 00:52:17,110 --> 00:52:19,555 Ella puede vivir el resto de su vida en paz. 1131 00:52:19,555 --> 00:52:23,460 >> Era una aguja en un pajar, pero la aguja estaba allí. 1132 00:52:23,460 --> 00:52:24,400 Todo está ahí. 1133 00:52:24,400 --> 00:52:28,260 Todo lo que tenemos en el mundo que está en el toque de un botón. 1134 00:52:28,260 --> 00:52:32,010 Pero usted tiene que tener la voluntad y la la determinación de quererlo. 1135 00:52:32,010 --> 00:52:32,950 >> [REPRODUCCIÓN DE MÚSICA] 1136 00:52:32,950 --> 00:52:36,420 1137 00:52:36,420 --> 00:52:38,170 DAVID MALAN: Maravillosamente dulce testimonial 1138 00:52:38,170 --> 00:52:40,540 sólo lo que pueda ahora ver con la tecnología. 1139 00:52:40,540 --> 00:52:43,390 Nos vemos la semana que viene. 1140 00:52:43,390 --> 00:52:44,374