[REPRODUCCIÓN DE MÚSICA] DAVID MALAN: Muy bien. Bienvenido de nuevo. Este es CS50, y esto es Semana Uno, Continuación. Así que una de las razones por las que hemos estado pasando en torno a tecnologías como Google Glass es que vienen con algo que se conoce como una API, un Interfaz de programación de aplicaciones. Y lo que esto significa es que con la archivos de la derecha y con el derecho documentación, en realidad se puede escribir software para dispositivos incluso como estos. Y así, lo que tenemos en mente hacia semestres final es, si un proyecto que implica, por ejemplo, Google Glass podría apelar, ya veremos lo que podemos hacer en términos de enganchar para arriba con un poco de de hardware de préstamo, así como la API de acceso público, para que pueda realmente empezar a crear software que se ejecuta en el mismo Google Glass. Otro dispositivo que hemos estado jugando con los últimos tiempos que pensamos que podría ser diversión al final del semestre es esta pequeña cosa aquí. Se llama Salto de movimiento, y lo que está a punto de ver es técnicamente un anuncio para el dispositivo, pero no hablar de lo que este particular, dispositivo es capaz de hacer. Y es, también, viene con un API a través de que se puede escribir software para controlar su propia computadora de manera bastante como esta película de un minuto aquí. [REPRODUCCIÓN DE VÍDEO] [VIDEO PLAYBACK FIN] Así que ahora mismo, este dispositivo pasa a ser implementado como un pequeño USB conector que se puede conectar a su ordenador, pero no me sorprendería si en poco tiempo que tenemos este tipo de tecnologías en el siguiente lote de PCs y Macs, para que pueda, de hecho, interactuar con él de una manera así. De hecho, lo que pensé que lo haría, también, es Acerqué una pequeña demostración programa que viene con este software. Así que me he puesto el pequeño sensor frente a mi laptop. Y como se puede ver, ya se da cuenta que mi mano está ahí controlarla. Y todo esto lo hace la aplicación es maravillas pequeñas cosas como esta. Pero se puede ver que, en efecto, Tengo cinco dedos allí. Si podemos conseguir que haga en los 10, se puede imaginar un piano limpio de aplicación o similar. Así que si desea llegar después de las clases hoy y jugar con eso como así, le invitamos a. Así que más de que hacia el final de semestre. Así que un par de administrativo anuncios. Uno, hacer la sección de este viernes al mediodía en cs60.net/section. Esa es la URL del curso de inicio también. En el ínterin, sin embargo, supersections debutará este domingo. Supersections son una cosa de una sola vez, porque nos lleva un poco de tiempo para trabajar quién está en qué sección y dónde. Así que el próximo domingo, no habrá una sección para los menos cómodo, una sección para aquellos más cómoda. Y aquellos de ustedes en algún lugar entre invitamos a ir a cualquiera o ambos o ninguno. Ambos serán filmados. Van a estar en un auditorio más grande que una sección normalmente sería pulg Pero el objetivo aquí es para equiparlo con un poco de consuelo con problema establece una, con C, con el aparato CS50, este fin de semana, incluso antes de que usted descubre que su asignación de la sección oficial. Así que te encontrarás con tu TF y su menor grupo de sectionmates en aproximadamente tiempo de una semana. El horario de oficina, por su parte, han estado ocurriendo. No tomar ventaja de ellos esta noche o mañana por la noche si le gustaría. Problema establecido 0 vence el viernes. Este es un día más tarde de la regularmente programada el jueves. Pero con un problema conjunto 1, verá que incluye algunas de calentamiento ejercicios con los que tú mismo puede ampliar su Jueves plazo a viernes. Problema set 1, por su parte, hará su debut en la página web del curso próximo Viernes, si desea acurrucarse con como lo hice alguna vez tarde Viernes por la noche en su habitación. Así cs50.net/appliance es el lugar donde usted puede conseguir el aparato CS50 que comenzamos a usar el lunes. Vamos a utilizar un poco más hoy. Pero tenga la seguridad de que el problema set 1 especificación le guiará a través de precisamente los pasos que debe para conseguir que la marcha y funcionando. Así que no se preocupe por hacer que antes de Juego de parámetros 1 si usted preferiría no hacerlo. Está bien. Así que buscamos el lunes en el código fuente, pero en el contexto de un nuevo lenguaje de programación, a saber, C. Y C, a diferencia de los arañazos, no es gráfica. No es los pedazos del rompecabezas. Es más sintaxis similar al Inglés. Y hay un par de pasos involucrados en realidad, la escritura y la ejecución de un programa en C, ya que además de fuente código como este, necesita algo llamado un compilador. Y en términos simples, lo que Qué hace un compilador para nosotros? Sí. ESTUDIANTE: Convierte el código que se escribe en 0s y 1s. DAVID MALAN: Good. Por lo tanto, convierte el código que escribimos a 0s y 1s. Convierte llamado código fuente a código objeto, el último de los cuales se ve un poco de algo como esto. Y es su CPU, los cerebros dentro de su equipo, que debido a la personas que crearon esos equipos, saber cuáles son esas secuencias de 0 y 1 significa. Tal vez signifique impresión. Tal vez signifique adición. Tal vez signifique restar. Tal vez signifique que aparezca un gráfico. Hay patrones predefinidos de bits de que el mundo ha decidido media ciertas cosas. Pero en su mayor parte en este curso, vamos a trabajar en un nivel superior, y vamos a dar por sentado que existen cosas como los compiladores que pueden hacer nuestra función de código fuente en la forma en que pretendemos. Así que el programa que escribió primero la semana pasada y luego comenzó a puerto, por así hablar, C pasado Lunes, era esto. Cuando hace clic en bandera verde, saludar. Esto era, por supuesto, escrito en Scratch. Y yo decía que el equivalente programa en C se veía un poco algo como esto. Así que lo que pensé que lo haríamos en un principio, es decir, vamos a desmenuzar lo que parece, a primera vista, sin duda, la forma más justa arcana sintaxis, pero usted comenzará a notar patrones bastante rapidez. Lo que también vamos a hacer hoy es proporcionar que con un modelo mental para algunos , algunas construcciones estándar canónicas en la programación. Y luego vamos a realmente en nuestras manos sucia con algunos ejemplos también. Así que para aquellos de ustedes más cómodo, darse cuenta de que esta semana y luego la siguiente semana puede muy bien ser un poco de revisión. Pero sobre todo cuando la edición pirata del problema de conjunto 1 se apaga en el la página web del curso el viernes, yo creo usted encontrará que incluso cuando usted completa algunos espacios en blanco durante la próxima semana o dos, usted comenzará a acercarse cada vez más desafiado y encuentro nuevas y más nuevas cosas. Así que vamos burlan de este programa, aparte unas pocas líneas a la vez. En la parte superior, tenemos lo que es técnicamente se llama una directiva de preprocesador. Esto es sólo una línea de código que dice para incluir el contenido de un archivo, llamada I estándar / N, entrada estándar - o, lo siento, E / S estándar, estándar de entrada / salida,. h, dentro de de mi propio programa. En otras palabras, si yo escribí este programa con un simple editor de texto como gedit, el equivalente más simple de algo como Microsoft Word, que instrucción # include stdio.h, es sólo va a indicar al compilador, tome el contenido de ese otro archivo, stdio.h, y pegarlos aquí. Ahora, ¿por qué me importa? ¿Qué fue lo que decimos que hay dentro de este archivo llamado stdio.h, que se almacena en algún lugar de mi disco duro, o en este caso, en alguna parte del aparato CS50? Alguien lo puso allí para mí. Pero lo que está en él? Sí, por lo que es una declaración de una función llamada printf. Así printf recuerda la función que muestra las palabras y los caracteres y los números en la pantalla a mis órdenes. Pero yo no lo escribí. CS50 no lo escribió. Hace años alguien escribió, y que básicamente nos dio la receta para que en un archivo llamado stdio.h. Así que la primera línea justo me da acceso a las funciones que otra persona escribió hace años, entre que son printf. Ahora, la línea siguiente que voy a saludar a mi mano, por lo menos hasta la próxima semana. Pero por ahora, sabemos que int main (void) es esencialmente el equivalente de esta pieza del rompecabezas de color amarillo cuando bandera verde hizo clic. El mundo, hace años, decidió que si usted está escribiendo un programa en el lenguaje llamado C, se inicia su programa con una línea que se parece a eso. En casi una semana, que va a hacer sentir lo que int es, lo que es vacío. Pero por ahora, sólo pensar en ello ya que esta pieza del rompecabezas de color amarillo. Ahora siguiente, tenemos una llave seguido por otra llave de cierre, por así decirlo. Y veremos a lo largo de estos programas en C, así como JavaScript y PHP. Y estos sólo encapsulan líneas relacionadas de código. La llave de apertura en esencia dice, aquí viene algo de código. Y la llave de cierre, que es en ángulo en la otra dirección, sólo medios, eso es todo por el código correspondiente. Así que la jugosa en este primer programa es el último, printf, entre comillas, hola mundo. Y llamé a la cosa entre cita a lo que la última vez? Así que es una cadena. Y una cadena es sólo el aficionado a la tecnología plazo para una secuencia de personajes, una palabra, una frase. Incluso una sola carta podría estar entre comillas dobles. Pero es una secuencia de cero o más caracteres. Backslash-n, sin embargo, se ve un poco extraño. Pero simplemente significaba algo sencilla al ordenador. ¿Qué es la barra invertida-n? Nueva línea. Así que eso es sólo la secuencia especial de personajes que el mundo ha decidido medios poner un salto de línea justo ahí, porque el compilador conseguirá realmente confuso, por lo general, si, muy como es comprensible, pero incorrectamente, simplemente comenzar a golpear Enter para poner nuevas líneas en su código. ¡Tienes que ser un poco más explícita con barra invertida-n. Y veremos que hay algunos otros tales patrones de caracteres especiales. Por ejemplo, si desea dejar que su mente vagar a un caso de la esquina, Supongo que quería imprimir un comillas dobles en la pantalla durante la razón que sea, eso parecería ser un poco problemático, ¿no? Porque si pongo una doble cita en el medio de "hola, mundo", para lo que razón, ¿por qué tiene eso parece potencialmente problemático? Se rompe la cadena. El compilador es sólo un programa. Un programa como un compilador es sólo va leer su código de arriba a abajo, izquierda a derecha. Y si ve tres comillas dobles en lugar de dos, no va a saber si te refieres a que la cosa a la izquierda debe ser la cadena, o lo que hay que la derecha, o la cosa entera. Es ambiguo, por lo que lo que es un típico compilador no es sólo asuste, y le dará algún mensaje de error, y hacer a lidiar con el problema. Así que teniendo en cuenta que la barra invertida-n significa un nuevo line, lo que haría con sus instintos ahora comenzará a ser si querías incluir algo anómalo como una doble Interior de la cita de esta cita de otra manera- cuerda? Quote-Barra invertida doble. Y así que veremos este tipo de patrón también. Si quieres hacer algo un poco extraño, usted encontrará que la soluciones suelen seguir un patrón, y la barra invertida denota una secuencia de escape. Y sólo significa algo especial que tenemos que representar en un diferente manera. En cuanto a cómo usted representa una barra invertida, bueno, vamos a Volveré sobre este punto. Pero la respuesta, también, es en realidad un poco obvio. Así que ahora vamos a introducir alguna otra construcciones de programación que vio en Scratch. Usted probablemente ha tomado por sentado ya si ya ha buceado en problema establece 0. Pero ahora vamos a introducir la sintaxis de C para éstos de otra manera bastante intuitiva ideas, al menos algunos de ellos. Así que esta noción de una condición o una rama, mientras que antes nos representado con el código que se veía como esta a la izquierda en Scratch - si x es menor que y, entonces dígalo - en cambio ahora en C - permítanme afilar en en el caso más sencillo - estamos simplemente va a decir, si, abierto paréntesis, algo es cierto - un Expresión booleana se va a ir donde he dicho estado - paréntesis de cierre, a continuación, hacer lo que es dentro de esas llaves. Así que aquí, también, las llaves son una especie de Scratch Piezas de un rompecabezas en forma de U. Haz lo que hay dentro de estas llaves. En este caso, slash slash. Y note que este es un avance recortar, no una barra invertida. Barra inclinada, barra inclinada, para aquellos que han programado antes, sólo significa - es sólo un comentario. Un comentario no es una línea de código, per se. Es una línea de Inglés que usted, el humana, han escrito a usted para tal vez le recuerde a hacer algo, explicar a ti mismo, para explicar a los otra persona, lo que su código está haciendo. Es sólo un comentario descriptivo. Ahora, por supuesto, podemos tener una de dos vías tenedor en la carretera justo al hacer esto, un de tres vías tenedor en el camino haciendo esto, y si continúa esta patrón, usted puede tener de cuatro vías, cinco vías, seis posiciones bifurcaciones en el camino si usted necesita para manejar, de hecho, que muchas condiciones. Y luego notar el paralelismo aquí - if (condición), else if (condición), y el único que es un poco extraño es la última, que es sólo que más. Pero de nuevo, esto es idéntico, conceptualmente, a lo que hemos hecho ya, a pesar de que la sintaxis se tomar un poco acostumbrarse. Ahora, en este ejemplo, hay alguna otra sintaxis extraña. Vemos printf nuevo, paréntesis de apertura, y paréntesis de cierre. Y en el interior de haya una cadena entre comillas. Los paréntesis, en el contexto de printf, vaya a la izquierda y el derecho de qué? ¿Qué es lo que describimos el indicado cadena como más en general? Así que es un argumento. Cada vez que tenga una función, al igual que printf, y luego un paréntesis de abiertos y una cerca paren y algo dentro de que, si se trata de una cadena, o un número entero, o cualquier otra cosa, la cosa en entre los paréntesis, se llama un argumento. Y un argumento sólo influye el comportamiento de la función. En este caso, es bastante claro cómo. x