DAVID MALAN: Este es CS50, y esto es el comienzo de la primera semana. Y lo que nosotros pensamos que lo hacemos se tire hacia atrás la cortina de un dispositivo que muchos de ustedes probablemente han caminado más allá ahora desde hace años, pero tal vez nunca sabe lo que es. Así que este dispositivo, probablemente será familiar para la mayoría de ustedes, por ahora. [REPRODUCCIÓN DE VÍDEO] -Un triunfo de la matemática y habilidad mecánica es esta gran nueva calculadora automática al La Universidad de Harvard. Un complejo entramado de problemas en matemáticas ponen a través de la máquina en forma codificada en cinta se resuelven con precisión en un minuto fracción del tiempo requerido para cálculo humano. Diseñado para agilizar todas las formas de la investigación matemática y científica, la voluntad cerebro mecánico gigante trabajar para los Estados Unidos Navy hasta el final de la guerra. [VIDEO PLAYBACK FIN] DAVID MALAN: Así que eso es lo que se ve en el Centro de Ciencias, que es donde que la máquina se encuentra ahora. En realidad sólo se ve parte de ella. Sólo una parte se encuentra actualmente en exhibición, y eso es un dispositivo llamado la Mark I, y fue esencialmente un muy gran calculadora. Fue sucedido por el Mark II, y es de la marca II de que en realidad obtener un poco de léxico. Este es el primer caso registrado de algo que está a punto de convertirse en todo muy familiarizado con el transcurso del semestre - a saber, un error. Así resultó que en un momento dado la Marca Aparatos II no funcionaba correctamente, y una inspección más cercana, efectivamente se ha producido un error - una mariposa - que la polilla - interior. Y desde entonces, nos hemos referido a errores en programas como los insectos. Así que más en el venidero. Hablando de vídeo, así, si usted han hecho ya, saber que es CS50 obviamente filmado. Las conferencias suelen ir justo después de clase en una especie de pre-lanzamiento formato sin editar, y luego un día o dos más tarde, pusimos una resolución más alta y la versión de mayor calidad. Usted puede recordar Vanessa, que tenía el la fortuna de jugar con Google Glass, que me acordé de cargar este tiempo. Así que si quieres venir después de clase y jugar, deben trabajar hoy. Y si desea ver lo que Vanessa vio el otro día, lo que verás aquí - déjame subir el volumen aquí en mi portátil. [REPRODUCCIÓN DE VÍDEO] -Así que permítanme colas Es arriba. Está bien. Así que tocar esto. Está bien. Aceptar, Glass. Grabar un vídeo. Está bien. Vanessa? [VIDEO PLAYBACK FIN] DAVID MALAN: Muy bien, por lo que la razón que no funcionó para la mayoría de ustedes en Al final de la clase fue porque yo procedí para grabar una hora de ese apuntando imágenes de mí mismo después de Me puse las gafas de abajo. Así que hoy, voy a dejar a retirarse, pero gracias a Vanessa por ser tal buen deporte. Mientras tanto, un par de anuncios antes de que avanzamos en la actualidad. Así que uno, CS50 tiene una tradición de hacer lo que podamos para tratar de hacer un muy gran clase se sienta más pequeño. Y hacia ese fin, más todos los viernes, nos reunimos en un restaurante en la plaza, fuego y hielo, con 30 o 40 de sus compañeros de clase, a mí mismo, algunos de el personal docente, y acabamos de un almuerzo muy informal. A menudo Invita amigos de la industria, ex alumnos de la clase, los alumnos de la universidad, realmente sólo para charlar cada a otros, hablar de la vida después de universidad, vida de la universidad, y similares. Así que si usted desea participar en este primero como el almuerzo este viernes a las 13:15, la cabeza a los que URL en algún momento. El espacio es limitado, por lo que va a hacer orden de llegada. Pero vamos a hacer esto otra vez en un periódico base, por lo que no se preocupe si no lo hace hacerlo en este primer lote. Ahora, en términos de los recursos proporcionados curricularly por el curso, hay una gran cantidad, y si usted no tiene levantado el sitio web del curso Ya, en particular, en las conferencias, usted encontrará que todo que hicimos la semana pasada está ahí, tanto en vídeo y algún tipo de forma electrónica. Pero más allá de los videos, usted encontrará que ahora hay texto completo transcripciones, por ejemplo, de cada conferencia. Así que si en realidad nos volvemos a esta pantalla aquí con Vanessa, y navegar por el lado de la pantalla, usted encontrará que en realidad, no para La conferencia del viernes, pero si nos remontamos a Miércoles, ya que esta característica tiene un pocos días, usted encontrará que usted puede realmente tire hacia arriba, para bien o para peor, cada palabra que yo o un voluntario en el escenario, dijo. Y más que eso. En realidad puede buscarla, puede haga clic en cualquiera de esas frases, saltar a ese punto en el vídeo, todo hacia y al final de hacer que el material de toda la más navegable. Pero si prefieres no sigues con tanto detalle, encontrará, por ejemplo, este pequeño menú aquí para 1.5x Velocidad, velocidad 2x o i f yo ya hablar demasiado rápido para ti, velocidad 0.75x. Entonces se dan cuenta de que todo eso es disponibles allí para usted. Pero más allá de eso, para las conferencias, se dan cuenta que también hacemos estos recursos disponibles también. Diapositivas, código de ejemplo, cualquier cosa que yo hacerlo en el escenario o en el avance de la clase, vamos a publicar allí, así que puedes jugar a lo largo de en casa o en Sanders. Pero lo que también pensamos que haríamos esto año por primera vez también proporcionarle tutoriales de estos ejemplos. Cada vez más, como he reflexionado sobre la valor de las conferencias del CS50, he empezado a cuestionar lo útil que es para ustedes para sentarse allí, para mí estar aquí, y para mí hablar de ti, en particular como el material, la ejemplos, se vuelven más complejos. Porque invariablemente, después de algún número de minutos, alguien va a distraernos, y luego se olvida de una idea clave de algunas ejemplo, y entonces usted está esencialmente ido para la porción restante de la clase, que no es el mejor uso de su tiempo, o, en realidad, la nuestra colectivamente como clase. Y así, lo que pensamos que nos gustaría probar a hacer, particularmente para algunos de los más ejemplos complejas que yo no podría hacer justicia a la clase, que no podría tener tiempo para la clase, pero no es u simplemente distraernos durante, es nosotros produciremos una serie de tutoriales de estos ejemplos de modo que si usted va a, por ejemplo, la página de vídeo del viernes pasado aquí en virtud de ejemplos, verás que para el viernes, ahora hay este enlazar a tutoriales. Y el formato de estos cambiará con el tiempo. Por ahora, estamos usando un simple Lista de reproducción de YouTube. Pero lo que hice con nuestro equipo de producción después fue caminar a través de cada uno y cada uno de esos ejemplos de nuevo, esperemos señalando con mucho más claridad exactamente lo que los robos de balón podría ser o debería ser el uno. Así que usted encontrará, por ejemplo, de la última semanas, todos los ejemplos de rascar atravesamos se realizan linealmente en que la moda. Así que no dude en participar o no participar en este material. Realmente un tema de este curso en particular es que es probable que haya más en la forma de recursos de los que posiblemente podría absorber más el curso de un semestre. Pero eso es deliberado. Se supone que es para que usted como estudiantes individuales se auto-selecciona en función de su estilo de aprendizaje. Así que si las conferencias de trabajo para usted, muy bien. Si las secciones de trabajo para usted, muy bien. Si tutoriales trabajan para mejor, estupendo. Realmente será hasta usted para elegir qué recursos funcionan mejor para usted. Finalmente, gracias a un alumno de la Por supuesto, también ofrecemos una canónica conjunto de notas de trazado. Así que en lugar de ¿Han cabezas en conferencias anotando cosas que surgen en la clase, nosotros, los personal, le dará lo que sensación son un conjunto canónico de notas a liberarte de esa distracción, por lo que si usted está aquí y comprometido, que son verdaderamente comprometido con lo que está pasando, con tus compañeros están haciendo para arriba en etapa, con lo que hay en la pantalla, y no simplemente escribir palabra por palabra lo que sucedió a haberse dicho. Así que darse cuenta de todos esos recursos están disponibles para usted. Seccionamiento, en respuesta a un FAQ, comenzará este miércoles. Esencialmente esperar hasta después de la mayoría otras clases se llevan a cabo de manera que podamos minimizar el número de cambios que tenemos que hacer. Pero, al llegar este fin de semana, a partir Domingo, será una instancia única de lo que llamamos secciones súper. Estos serán filmados para aquellos que no pueden hacerlo asistir, y esencialmente, la las cabezas de los cursos nos caminar a través de algunos de la parte C del curso, hacia un extremo del conjunto de problemas uno, el cual va a ser nuestra primera C basado establece problema. Y estos serán sólo las secciones opcionales en previsión de lo que va a convierten en los puntos recurrentes dirigidas por 50 además de el curso Teaching Fellows semanal. Los domingos o los lunes o martes, nos tendrá 90 secciones hora en una sentido tradicional, que será oportunidades para las manos en y más reseña íntima de la el material del curso. Sin más preámbulos, permítanme presentarles las cabezas de los cursos, que son detrás de las escenas con mí, haciendo que todo suceda. Si los que están aquí hoy podría unirse a mí, Rob y Lauren y José y Lucas, todos de los cuales han estado con la Por supuesto desde hace algún tiempo. RJ es la tercera tales miembro de nuestro equipo. No pudo estar aquí hoy, pero me preguntó para mostrar una foto de él. No estoy seguro de querer este uno, pero ahí está. Y permítanme que el equipo pueda decir hola y que se presenten a fin de que usted se familiariza con ellas, así como su propio compañero de la enseñanza de este plazo. LAUREN CARVALHO: Hi. Mi nombre es Lauren Carvalho. Soy un tutor residente en Leverett House. También estoy muy emocionado de ser TV cabeza para CS50 este año. CS50 es una clase muy difícil, así como una clase muy grande, así que si Ante cualquier duda, si te sientes como estás quedando atrás, no dude en llegar a cualquiera de nosotros en heads@cs50.het, o para mí, si lo quieres jugar con mi oro Perrito del perro perdiguero. Aquí está Lucas. LUCAS FREITAS: Hey, chicos. Mi nombre es Lucas Freitas. Soy un joven [inaudible] la informática y la lingüística. En realidad soy de Brasil, y también realizar estudios de Asia oriental. Así que si usted tiene alguna pregunta acerca de ciencias de la computación o el idioma o nada, sólo házmelo saber. O CS50, especialmente. JOSÉ ONG: Hi. Yo soy José. Soy un estudiante del último equipo ciencia en Elliott House. Por lo tanto, vamos a ver. Me verás ahí portando uno de estos enormes cámaras. Soy el fotógrafo personal residente de 50, así, y los estudiantes a menudo a veces me confundan un turista asiático. Así que si usted me ve con una cámara, no huyas. Sólo sonreír y no seas tímido. Y espero que lo disfruten 50. Me gustó mucho cuando lo tomé, y es por eso que he estado TFing para estos tres años. ROB BOWDEN: Hi. Soy Rob. Este es mi cuarto semestre con CS50. Me acabo de graduar en mayo. Yo estaba en Kirkland. Estoy emocionado por este semestre, y espero que tú también. DAVID MALAN: Gracias al de este año cabezas, y para RJ también. Así que un par de notas finales sobre los recursos. Uno, p set 0 ya está en marcha. Éste existe sólo en la norma edición, que está destinado para el totalidad de la clase. A partir de la p conjunto 1, habrá ediciones piratas de la mayoría de los conjuntos de problemas, que, de nuevo, cubrirá el material con un poco más de un desafío, mientras que todavía tocar en algunos de los mismos temas. Tome un vistazo a la página web del curso para dicha indicación a p set 0. El horario de atención, también, comenzarán esta semana, esta noche, mañana, miércoles, y el jueves en varios restaurantes salas en el campus. Echa un vistazo a cs50.net/ohs para la oficina horas para el curso, y se dan cuenta de este habrá oportunidades muy casuales, sin duda, en el inicio de la semestre, para llegar a funcionar con su ordenador portátil durante las vacaciones de cerebro. Trae algunos amigos y charlar con la TFS y las CA con cualquier de los cursos las preguntas que pueda tener. Y no puedo enfatizar lo suficiente, incluso para cero y el problema de establecer 0, no Realmente no hay pregunta tonta. No hay estudiante demasiado incómodo de hacer preguntas. Por favor, siéntase libre para aprovechar de este recurso. Será allí recurrentemente lo largo del semestre, como se CS50 Discuta. Esta es la discusión en línea del curso foros en esa dirección existe. Lo que también vamos a hacer durante las clases es también monitorear esto, gracias a la equipo docente del curso. Y por lo que si usted tiene una pregunta durante dar una conferencia, porque dije algo poco o nada en absoluto, por todos los medios, pida que, en tiempo real, si usted tiene su ordenador portátil o teléfono en la página web, y nosotros haremos nuestro mejor esfuerzo en tiempo casi real a responder a eso. ¿Hay alguna pregunta sobre CS 50? Entonces uno últimas notas de la mía. Ese tema de SAT UNSAT. Al finalizar sus tarjetas de estudio, si han hecho ya, darse cuenta de que la visión general de SAT UNSAT, disponible para todos los estudiantes, es realmente para ayudar a tomar el borde de un curso de esta manera, por así decirlo, de modo que si usted encontrarse a altas horas de la noche, 02 a.m., 03 a.m., realmente golpearse la cabeza contra la pared donde se sabe que está el 99% de el camino hasta el final, pero tantas otras cosas que hacer, Creo que una mejor utilización, a menudo, de tiempo de los estudiantes es pasar de hecho a esas otras cosas, para que pueda optimizar su tiempo por todas partes. Y SAT UNSAT es un mecanismo a través del cual usted puede tomar consuelo en el hecho de que el 99% de la forma en que hay siendo bastante bueno. Del mismo modo, también, si usted ha llegado a la Por supuesto, sin conocimientos previos o no casi tanto de fondo como usted pensar en sus compañeros de clase podrían tener, la verdadera o falsa, se dan cuenta que este es un oportunidad de conseguir sus manos sucias con el curso, poner los pies en la agua, por así decirlo, al igual que yo mismo lo hizo hace años con pasa / no pasa. Como dije la semana pasada, tuvo este curso, como otros, no se dispone de pasa / falla en el momento, probablemente lo haría nunca han puesto un pie en la clase, a pesar de que he hecho, cinco semanas después, cambiar de opinión, que le puede también, y cambiar a o de la carta graduada de estado. Está bien. Así que miramos las cosas de este tipo en Viernes, y vamos muy rápido para la transición a algo que parece más críptica hoy. Pero es, no obstante, la misma idea fundamental. ¿Cuál fue el término general que se usa para describir una pieza del rompecabezas que se parecía a esto? Por lo tanto, un comunicado. Y usted puede llamar a esto cualquier número de cosas. Pero sólo tendremos que llamamos un comunicado, y una declaración simplemente le dice al programa - o en el caso de Scratch, el sprite - que hacer algo. Da la bienvenida en este caso. Algo como esto nos lugar denominado qué? Sí, por lo que una expresión booleana. Una expresión booleana es sólo algo eso es cierto o falso, y así a los arañazos los atrae con esta forma, pero también con un signo de interrogación para transmitir la idea de que la respuesta a esta pregunta es verdadero o falso, sí o no uno, 1 o 0. Y utilizamos estas expresiones booleanas el interior de las construcciones como éstas, que llamamos a qué? Así, la condición o de la rama. Y la condición que se ve aquí en Rasguño tiene un pequeño marcador de posición para un pieza del rompecabezas de esa forma, el propósito de los cuales es, para que pueda arrástrelo y colóquelo en la parte superior y luego dictar el programa si este Booleano expresión es verdadera, hacer este conjunto de instrucciones, este conjunto de declaraciones, cosa hacer esto otro conjunto de instrucciones. Y recordar que pueda nido de estas cosas. A pesar de que no hay mucho espacio visualmente en esa pieza del rompecabezas, Scratch va a crecer y encogerse para adaptarse a lo que sea piezas de un rompecabezas que arrastrar y soltar en no por lo que realmente puede anidar esto y tener un tenedor de tres vías en la carretera. Si, else if, else. E incluso se puede ir más allá de anidación más y más, según sea necesario. Así que, por último, vimos como construcciones este, conocido de otra manera como un bucle. Y esto es sólo algo que hace algo una y otra vez y otra vez. En este caso, pasa a ser un finito número de veces, pero también vio un ejemplo donde el número de veces venían de una variable, por lo que podría cambiar. Y también vimos otro bloque completo denomina bloque siempre que nos permitió bucle infinitamente largo. Así que otra construcción que a los arañazos 2.0 tiene - y aquellos de ustedes más cómodo con el fondo anterior son ya está bien familiarizado con este construir - estas cosas que llamamos qué? Así que llamamos a estas funciones, de lo contrario conocido como procedimientos. Hay una diferencia semántica ligero, pero nosotros los llamaremos apenas funciones. Y una función, en el caso de los arañazos, es una pieza del rompecabezas a medida que usted puede crear para que tenga una nueva pieza del rompecabezas que, en este caso, sería llamado tos, que aparece entre todos los de la otra piezas del rompecabezas disponibles en cero. A pesar de que el MIT no inventó esta pieza del rompecabezas, lo hiciste. Así que una función le permite crear nuevos comportamiento, darle un nombre de función y entonces llamarlo, por así decirlo. Realmente utilizarlo en programas de una y una y otra vez sin tener que esperar para alguien como MIT por el camino a inventar una nueva funcionalidad a partir de cero. Usted mismo puede construir estos rompecabezas piezas a ti mismo, y luego volver a utilizarlos en sus propios programas. Y vamos a ver un ejemplo recurrente de que hoy en adelante. Así que hoy, hacemos la transición ahora a algo más arcano. Pero al final del día, algo más potente y expresiva y más representante de la ruta que vamos a ser en todo el semestre a lo largo de un número de idiomas - el del código o el código fuente. Y el código fuente, resulta que, no es lo que un ordenador típicamente en realidad se ejecuta. El código fuente se ve algo como esto. Así que esto es, de nuevo, tal vez la más sencilla programa se puede escribir en un lenguaje llamado C. Vamos a empezar a se burlan de esto aparte de poco tiempo, y si esto realmente parece griego para usted en este momento, confía en mí. En tan sólo una semana o el tiempo de dos, esto será muy familiar y en realidad bastante representativa de cada vez ejemplos complejos con la que puedes encontrar también sentirse más cómodo. Pero uno no puede ejecutar este tipo de código por lo general. Hay que convertirlo en algo que la computadora en sí entiende. Y así, para eso, necesitamos algo vamos a llamar a un compilador. Un compilador es un programa que toma código fuente, como usted acaba de ver, como de entrada, y produce ceros y queridos como salida, de lo contrario conocido como código objeto. Y son esos ceros y unos que puede tener un aspecto como este que en última instancia, se entienden por tu Mac o PC. Si alguna vez has oído hablar de la comercialización expresión Intel Inside, que acaba de significa que una compañía llamada Intel ha fabricado el cerebro de su computadora - también conocida como la CPU, unidad central de procesamiento - y eso es justo lo que entiende patrones de ceros y unos. Y así, mediante la conversión de código fuente en Código de objeto a través de este proceso aquí que vamos a hacer con un par de comandos en sólo un poco, usted es la creación de patrones de ceros y unos que los empleados de Intel tienen decidido que representan ciertas declaraciones. Ahora, yo no sé muy bien que es que con sólo echar un vistazo a estos ceros y unos. La mayoría de los seres humanos en estos días no lo hacen. Pero en algún lugar hay un patrón de ceros y unos que representa el print comunicado. En algún lugar en el que podría haber una diferente conjunto de ceros y unos que representar la noción de siempre o repetir 10 veces o incluso maullido, si es en realidad un programa que puede incluir algunos sonidos. Así que en resumen, sólo los seres humanos han decidido, al igual que lo hicimos para ASCII - para las letras del alfabeto la semana pasada - los seres humanos han decidido que incluso patrones más complejos de ceros y unos representar un comportamiento más complejo como imprimir o decir o maullar. Y así hoy, y en gran medida en adelante en el semestre, vamos a tomar para sentado que alguien se ha dado cuenta encontrar la manera de hacer que la cartografía. Pero, de acuerdo con esta idea de capas en la parte superior de la labor de las personas que han venido antes que nosotros, se llevará a sentado el hecho de que esto está sucediendo debajo de la capucha. Pero estamos mucho más interesados ​​en construcción de cosas que son más interesante en la cima de todo esto. Y así, de hecho, el primer programa que escribió en scratch fue esta super simple uno, Hello World. Y usted puede pensar en esto como ser el principal del programa que gobierna Scratch comportamiento a partir del viernes pasado. Hoy en día, vamos a empezar a traducir Piezas del rompecabezas de Scratch en código fuente en este lenguaje llamado C de manera que lo que parecía esto en Viernes, a partir de hoy en adelante, es Ahora va a tener este aspecto. Es cierto que más críptica. Es bastante molesto y tipo de cuenta adormecedor para ver todas las citas y el punto y coma y el paréntesis y así sucesivamente. Pero si empiezas a hacer caso omiso de cualquier cosa que no lo entiendo, y realmente mirar en la esencia del texto en blanco sobre la pantalla, seguro que ver, como yo, "Hola, mundo". Esto se alinea con el declaración púrpura encima de la tapa, y resulta que la palabra clave principal se va a alinear conceptualmente con cuando está verde bandera clic. Así, en otras palabras, mientras que en los arañazos, implementamos este programa Hello World con esas dos piezas de un rompecabezas, en C, vamos a ponerla en práctica con estas cuatro líneas un tanto crípticos. Pero a medida que nos sumergimos más profundamente en esto, usted ver que cada uno de los caracteres blancos en la pantalla en realidad tiene un significado importante, y la mayoría de nuestros programas van a mirar estructuralmente lo mismo. Así que una declaración, para ser claros, lo que parecía "decir hola mundo" en la Viernes va a empezar a buscar como este lunes. printf ("hola, mundo"). Y hay algo de barra invertida raro n, no hay paréntesis, no hay punto y coma. Pero al final del día, la tecla llevar hoy es que todo lo que estamos haciendo está traduciendo cosas de cuadro formar a forma de texto. Así que un bucle que se veía así la semana pasada se va a mirar ahora algo como esto. Y permítanme rechazan, al igual que en Scratch, hay diferentes maneras de lograr el mismo objetivo. Igual en C. Yo no estoy mostrando el único manera de hacer las cosas, sino una forma de traducir esto para siempre bloquear a un bucle en C. Este de aquí, repetir 10 veces. Esto sí que me tipo de curva la mente la primera vez que lo veo. Pero para poner en práctica que, en adelante, vamos a utilizar un bucle, por así decirlo. Y está claro que hay un poco de sintaxis que es un poco complejo allí con I y igual y 0, pero una vez que nos sumergimos en que hoy en adelante, te vas a ver que eso es todo, simplemente haciendo algunas aritmética básica para nosotros desde 0 en un máximo de 9 o 10 en este caso. Por último, con variables, como se recordará que una variable es una pieza de almacenamiento. Bueno, lo que teníamos a la izquierda allí el pasado semana se va a ver un poco de algo como esto esta semana. Pero, de nuevo, más sobre esto más por venir. Tuvimos expresiones booleanas, que la semana pasada, parecía esto. Esta semana en adelante, van a empezar a mirar un poco así. Y éste es en realidad un poco tranquilizador. En realidad es casi tan simple como los bloques verdes. Pero aquí tenemos, de nuevo, una sintaxis nueva con los símbolos de unión, pero se puede quizás adivinar mientras que en el principio, decir A-N-D, al parecer en C, estamos va a decir ampersand ampersand. Pero todo esto se convertirá en natural antes de tiempo. Condiciones. La semana pasada, parecía que esta en la izquierda. Esta semana, a la derecha, es va a parecer eso. Pero, de nuevo, la conclusión clave aquí es que como usted ve las cosas como que en la derecha, y sobre todo si es menor cómodo, es una especie de sobre su cabeza, te dan un poco abrumado que Realmente no tengo ni idea de lo que podía posiblemente llegar a que desde el principio - sin juego de palabras - sólo se da cuenta de que es realmente la misma idea de que probablemente se sintió mucho más natural de la semana anterior. E incluso si no se ha zambullido en problema set 0, me atrevo a decir que encontrarás que las piezas del rompecabezas son bastante intuitiva, o al menos vuelto tan largo del tiempo. Así que vamos a bucear pulg Vamos a poner las manos en aquí con este primer programa sencillo. Y simple es, por supuesto, relativa. Para ello, voy a cambiar las pantallas a ese dispositivo que se llama el Aparato CS50. El aparato CS50 es un pedazo de software que se ejecuta dentro de una ventana en mi Mac, y también se puede ejecutar en una ventana dentro de su PC, que me permite tener exactamente el mismo Entorno de ordenador ya que cada TF, como cada CA, ya que cada estudiante en la clase. Debido a que el aparato CS50 es literalmente otro sistema operativo llamado Linux - específicamente Fedora Linux - y nosotros, el personal, hemos configurado el proceso de instalación de este sistema operativo de tal manera que uno, hay un pequeño logo en el CS50 medio, dos, hay un menú personalizado en la parte inferior, y tres, pedagógicamente, hemos simplificado la interfaz de usuario como tanto como sea posible para que cuando se arrancar por primera vez esta cosa por su cuenta Mac o PC, que tienen el mismo medio ambiente como todos los demás, y usted tener todas las herramientas que usted necesita para el curso sin tener que figura cómo instalar cada uno y todas las herramientas de forma individual. Así que esto parece relativamente como Mac OS o Windows. En la esquina inferior izquierda, que esencialmente tener un menú de inicio de tipo, o un menú Apple. Y entonces usted tiene lo que se sospecha serán sus tres iconos más comunes. Uno de ellos es Chrome. Hay un navegador dentro del aparato. Dos es un programa llamado gedit, que vimos brevemente la semana pasada, que es sólo un editor gráfico. Y tres es un programa Terminal, que es una ventana en blanco y negro de antaño que nos permite escribir más arcanos comandos, pero más poderosas nuestro teclado. Así que voy a seguir adelante y hacer clic en gedit, y estar seguros de que un problema set 1, que se publicará el viernes, será Puedes caminar a través de todos estos mismos pasos. Tenga en cuenta que tengo una muy simple interfaz de usuario con tres partes. A la izquierda, tengo un gran vacío ventana llama código fuente. Ahí es donde voy a ver un resumen de cualquier código que escribo. Por el lado de la mano derecha, tengo un gran ficha, en la actualidad no son salvos, y eso es donde mi código va a ir. Y en el fondo, tengo una embebido Ventana de terminal, un blanco y negro indicativo en el cual puedo escribir comandos para compilar y ejecutar mis programas - que es decir, de hacer y ejecutar mis programas. Así que empecemos simple. Déjame ir a Archivo, Guardar. Voy a seguir adelante y entrar en jharvard. Así el aparato, con independencia de lo su nombre es, pertenece a un tipo llamado John Harvard, que tiene una casa jharvard directorio dentro de los cuales la totalidad de su archivos irán. Es su propia copia de su cuenta, así que no estamos todos compartiendo el mismo disco duro. Sólo tienes la ilusión de John Harvard propia. De antemano, yo en realidad Dropbox instalado. El aparato viene con preprepared Dropbox para que si algo sale mal durante el semestre, si no tienes configurado el aparato con un libre Cuenta de Dropbox, todos los archivos se ser copiados automáticamente para que puede recuperar muy fácilmente. Y yo voy a ir a mi Dropbox directorio, y ya va a ser un par de otras cosas allí. Pero voy a seguir adelante y vaya a Archivo, Guardar. Voy a ir a jharvard, Dropbox, y hasta aquí, me voy a dar mi programa un super simple nombrar, hello.c, a continuación, guardar. Así que tengo la misma interfaz ahora. Lo único que ha cambiado es la parte superior pestaña hacia arriba. Así que estoy muy rápidamente va a recrear que el programa de la desliza hace un momento. Así que en main (void), y luego printf, "Hola, mundo", un tanto críptica barra invertida n, cerca de cotización, cerca paréntesis, punto y coma, y luego Ctrl S para guardar. Y fíjense en un aparte de lo que acaba aparecido aquí en la parte superior izquierda. Y esto no es útil hoy en día, pero será útil en el tiempo. Usted acaba de ver, de nuevo, un resumen de el código que has escrito. Y porque yo escribí algo que se llama principal, por eso principal apareció la palabra hasta allí. Pero en su mayor parte, no es necesario que en la actualidad. Muy bien, así que me dicen que esta es mi primero programa escrito en una programación lenguaje llamado C. Sabemos desde el viernes que lo que esta cosa va a hacer muy sin interés cuando correr es sólo la pantalla - en otras palabras, la impresión, como un ordenador científico diría - hola mundo en la pantalla. Así que para hacer esto, te darás cuenta de que tengo bajar aquí a mi terminal ventana, y ahora tengo el símbolo parpadea. Pero esto es ahora una versión del teclado de mi directorio home John Harvard. Es una forma de teclado a través del cual para navegar por el disco duro. Así que no puedo realmente escribir como lo hice la semana pasada hacen hola, porque es voy a decir ninguna regla para hacer diana - algo anda mal. Yo no sé muy bien lo que el mensaje significa, pero eso es porque por defecto, cuando esta ventana en blanco y negro es abierto, estoy dentro de John Harvard directorio personal. Pero ¿dónde puedo guardar ese programa? En mi carpeta de Dropbox. Ahora, todos nosotros hemos crecido con equipos en los que basta con hacer doble clic en el icono de una carpeta, abre, y voila. Ahí es donde el archivo llamado hola.c sería. Así que de hecho, vamos a hacer eso. Déjame ir por delante y minimizar gedit al igual que lo haría en Windows o Mac OS. Déjame ir a la Home carpeta en la parte superior izquierda. Nos vemos aquí un montón de carpetas. Aquí está mi carpeta de Dropbox. Las marcas de verificación significa que ha sido sincronizado. Y hay un par de cosas aquí, pero observe que hello.c es de hecho allí mismo. Y así, en Mac OS o Windows, normalmente, Me gustaría doble clic en eso, se abre en cualquier programa, y ​​estoy listo para salir. Pero ahora, al menos a partir de hoy, nos tendrá que tomar un paso hacia atrás sólo para le dará algunas herramientas básicas para su caja de herramientas con las que hacer más cosas poderosas dentro de poco. Así que en este indicador, que tengo que hacer la equivalente a hacer doble clic el Carpeta de Dropbox. Y para hacer eso, voy a escribir para CD cambiar de directorio, Dropbox, enter. Y ahora cuenta los paréntesis en mi llamado prompt dice ahora que estoy en tilde, el pequeño garabato símbolo en la parte superior izquierda de mayoría de los teclados, / Dropbox. Esto es sólo la notación abreviada de diciendo humana, que ahora está en el interior de la carpeta de Dropbox, como si usted hubiera hecho doble clic en él. Así que ahora si sigo adelante y escriba make hola, entrar, veo una muy críptico comando, pero no un mensaje de error, al parecer, y luego otro indicador que parpadea. Y si usted recuerda, siempre tan rápidamente el viernes, hicimos esto. . / Hola. Lo que estás a punto de ver es el resultado de mi marcha de este programa, o, en el Mac Términos OS y PC, si normalmente me doblo haga clic en un programa -. una aplicación programa o un archivo. exe, se abre una ventana y se ejecuta. Typing. / Hola es como doble clic en un programa para ejecutarlo, pero utilizando mi teclado. Enter, hola mundo. Y eso es todo. Así que vamos burlan de esto aparte de lo que no se siente demasiado como griego. Así. / Significa qué? Cualquiera que haya navegado un teclado entorno como este, lo que es punto refiriendo? El directorio actual. Así que el directorio actual es sólo sinónimo de una carpeta. Así diciendo slash dot, que estoy diciendo, buscar un programa que se llama hola en el directorio actual - en la carpeta actual. En otras palabras, mi carpeta de Dropbox. Y es por eso que oprimir la tecla Enter después realmente ejecuta el programa. Si ahora escribo LS, observe que veo todo en mi carpeta de Dropbox. Conseguir Started.pdf, que Dropbox le da de forma gratuita, mis fotos directorio, un directorio público, sin guardar Documento 1 que hice por equivocación un Hace momento, foo.c, el cual hice anteriormente hoy en día, y luego dos líneas - hola.c y hola. Hello.c es el programa que escribí con gedit, y lo que es hola en verde? El saludo en el verde es el ejecutable. En otras palabras, cuando me encontré con este comando hace un momento - Let Me Roll atrás en el tiempo - cuando me encontré con hacer hola, eso es el paso intermedio aquí. Y tomó hola.c como entrada - Código fuente AKA - y produjo una archivo denominado hola como salida, que contiene todos estos ceros y unos. Y por eso, al final, no puedo realmente ejecutar un comando como. / hola. A causa de Intel Inside, mi funcionamiento sistema, Linux, abre esos ceros y queridos, les da de comer a la cerebro de la computadora - la CPU - y que la CPU sabe, oh, aquí hay un patrón de ceros y unos que dicen imprimir lo siguiente en la pantalla. ¿Qué es lo siguiente? Entre comillas, "hola mundo". Muy bien, por lo que un breve resumen de algunos de estos comandos para que podamos empezar a tomar por sentado. Permítanme Pase a la donde lo dejamos. Y te recuerdo que teníamos CD a nuestras espaldas terminar hace un momento. Estos son, me atrevo a decir, por propósitos de hoy - tal vez esta semana - los únicos comandos que puede ser que necesite para escribir en el comando pedirá además de hacer. Así CD estaba de qué? Cambiar directorio. Es sólo el equivalente a dos al hacer clic en una carpeta. Y en un aparte, si usted recibe perdido alguna vez en el interior de su aparato, de tal manera que Dropbox - Quiero volver a mi directorio jharvard - en caso de duda, CD, introduzca, sin otra palabras, y sólo te cremalleras la espalda al punto de partida, que es un pequeño atajo. Muy bien, así que ahora otros comandos. LS. He escrito que hace un momento. ¿Qué crees que LS representa? Por lo tanto, la lista, ¿no? De vuelta en el día, cuando los seres humanos venían con estos comandos, que estaban tratando de ser eficiente, y más bien escribir a máquina L-I-S-T entrar, decidido LS. Eso está bien. Suena bastante como lista. Vamos a escriba LS entrar, y que lista los archivos o carpetas en mi carpeta actual. mkdir, probablemente pueda adivinar. Haga directorio. Así que no te vas a algún menú archivo y elija Nueva carpeta en este entorno. Más bien, escriba el espacio de comando mkdir y luego el nombre de la carpeta que desea crear, y les será hecho. rm, probablemente pueda adivinar. Quitar o eliminar. Así que si desea eliminar un archivo, se le ver en el problema de establecer cómo puede hacer esto. Y rmdir, quitar el directorio. Así que, de nuevo, yo me ocuparé de volar a través de algunos de estos detalles, uno, porque no todos son tan divertido para pasar entonces, sino dos, le daremos en mucho mayor detalle en cualquiera de los El problema de curso establece, en particular las ediciones estándar, cualquiera de los pasos que es posible que tenga que escribir de manera que se obtiene más y más cómodo con estas cosas. Pero ahora déjame desmenuzar una cosa más. Cuando escribimos maquillaje hola hace un momento, vimos una secuencia críptica de comandos. Vimos, de nuevo, hace hola. OK, vamos a hacer esto. Estaba a punto de cometer un error, pero [Inaudible] ahora admitir que estaba a punto de y hacerlo de forma deliberada. ¿Qué hice mal ahora? Sí, así que no estoy en el Dropbox directorio, porque hace un momento me CD con tipo y simplemente pulsa enter. Eso me has volver al punto de partida, que no es donde mi archivo es, por lo que realmente necesito hacer CD Dropbox Entro, y ahora puedo hacer rm hola introducir, retire fichero regular hola. No sé por qué es tan críptico. Eso sólo significa que está usted seguro que desea eliminar hola? Puede escribir y para sí, entrar, y ahora se ha ido. Y ahora si escribo hacer hola de nuevo, es va a recrear mi código objeto, recrear esos ceros y unos. Pero ¿cuál es el trato con esta muy largo de comandos? Bueno, vamos burlan esto aparte en poco tiempo, pero hacer - Le dije un poco de una mentira piadosa antes - no es un compilador. Hacer es un programa que automáticamente se da cuenta de cómo se lleva un compilador para usted. Así que el comando que realmente debería ser corriendo con el fin de convertir hola.c hola en realidad se ve un poco de la misma familia. Y Dios no lo quiera, tenemos que en realidad recuerde que escribir cada vez que toda secuencia de comandos fuera. El propósito de hacer en la vida es recordar que el grado de complejidad de nosotros y automatizar lo que de otro modo ser pasos muy tediosas. Pero puedo aproximar eso. Así por esta pequeña hoja de trucos aquí, puede aproximar lo que comando es haciendo por clang simplemente escribiendo, que es el nombre del compilador que estaremos el uso de este semestre. Si alguno de ustedes alguna vez han hecho iOS desarrollo para el iPhone o el iPad, Clang es el programa que ha utilizado dentro de Xcode para hacer sus aplicaciones. Clang, sin embargo, es sólo otro programa cuyo nombre se puede escribir en el comando rápido, y con la introducción de este momento, Puedo presentarme algo que es un poco representativa de comandos para venir. Así que déjame hacer esto manualmente. Así rm hola, y ahora cuenta en caso de que Yo, al igual que una comprobación de validez - . / Hola, ¿qué crees que debe ver si puedo hacer esto? Algún tipo de error. No existe el directorio de archivos. Así que uno en realidad es bastante directa. Así que ahora quiero borrar la pantalla. Control S simplemente borra la pantalla para eliminar algunas distracciones. Y ahora me voy a manualmente escriba sonido metálico-o hola hello.c. Entonces, ¿qué es eso de hacer? Exactamente lo mismo que hacen que hizo por nosotros, pero lo hice tirar algunos de las palabras superfluas. Clang es el programa que va a tener un archivo c. como entrada y producir ceros y unos como de salida. Pero-o de ahora en adelante llamará un interruptor o una bandera. Esto es sólo jerga techie para decir esta es una palabra que escriba en el símbolo del que influye de alguna manera el comportamiento del programa que se está ejecutando. Así que ¿alguien quiere adivinar lo que-o transmite? Salida. Es sólo alguien medios decidido-o salida de un archivo denominado hola y tomar como entrada de cualquiera que sea la última palabra sobre el prompt es, hello.c, de modo que si le pego Ingrese ahora, nada parece suceder. Y por extraño que parezca, en este mundo de la programación, si no pasa nada, eso es probablemente una buena cosa porque no hay error mensaje en la pantalla. Hola, Intro. Mi programa ya se ha ejecutado. Pero no puedo hacer cosas estúpidas como pequeños esto. sonido metálico-o, hihihi, hello.c, entrar, y ahora tengo una idéntica programa denominado hihihi. Se comporta de la misma, pero el nombre es diferente. Así que esto es sólo para decir que si quieres para influir en el comportamiento de un programa, que vamos a cada vez más ver cosas llamadas argumentos de la línea de comandos. Esta es una línea. Estás escribiendo comandos. Ergo, la línea de comandos. Y los argumentos de línea de comandos son sólo palabras o pequeños pedazos de sintaxis que influir de alguna manera el comportamiento de los programas que se están ejecutando. Muy bien, eso es tal vez el más programa aburrido que puede escribir y ver. Ahora vamos a hacer algo más interesante. Déjenme seguir adelante y crear un nuevo archivo. Voy a seguir adelante y salvar a este en Directorio principal de John Harvard como, llamémosle custom.c, para ser un pequeño programa personalizado. Me voy a acercar a mi superior de las fichas aquí y empezar de nuevo. Incluya stdio.h estándar. Más sobre esto en un momento. int main (void), más en eso en un momento. printf ("hola, David"). Mucho más interesante, ¿no? Así que ahora si - no a causa de mi nombre, sólo porque es diferente - hacer entrar personalizado. Personalizado, hola, David. Pero incluso eso, también, es una mentira piadosa. Este programa puede ser que también se llama David.C, porque no es costumbre comportamiento en absoluto. En serio, quiero un programa que pida el usuario por su nombre. Entonces, ¿cómo lo hago? Bueno, déjame desplazo hasta aquí. Y antes de que yo uso una declaración en Scratch, antes de usar printf, también conocida como una función, déjame primero preguntar al usuario alguna información. Así que para hacer esto, tengo que hacer un par de cosas. Uno, necesito un lugar para guardar el usuario de nombrar después de que le he pedido o por ello. Lo constructo Qué necesito para utilizar probablemente para almacenar un valor como ese? Una variable. Así que a diferencia de Scratch, donde se acaba de obtener un bonita pieza de puzzle, aquí, tenemos que uso, obviamente, palabras a expresarnos. Y de ahora en adelante, cada vez que desea un palabra o una frase, en la programación, vamos a llamar a eso una cadena. Así que una cadena es una palabra o una frase. Es una secuencia de cero o más caracteres, de manera más formal. Y si quieres una variable como para existe, que tiene que decir dame una. Y la forma en la que lo haces es decir coma cadena s, donde s puede haber todo lo que quieras. De hecho, s es un poco decepcionante. Déjame ir por delante y más claramente llamarlo nombre. Dame una cadena llamado nombre. Pero ahora, ¿qué es la persona de nombre por defecto? Bueno, si el ser humano no se escribe nada en, obviamente, no va que no hay valor de nombre. Y resulta que en C, si usted no da una variable de un valor, que va a tener un valor basura. Podría tener algunos ceros aleatorios y queridos, por lo que sólo vamos a ver basura, en verdad, en la pantalla si intenta mostrarlo. Pero puedo arreglarlo diciendo, en realidad, almacenar dentro del nombre de la siguiente valor. La forma en que almacena los valores de las variables es si usted tiene un nombre de variable en la a la izquierda, usted tiene que poner en práctica lo que de alguna manera que desee almacenar en ella a la derecha, y la sintaxis para que va a ser como sigue. No hemos visto esto antes, pero tomamos en la fe por un momento que hay existe otra declaración en el mundo que voy a llamar a la función de nuevo, y esta función es llamada cadena get. Y lo hace literalmente que. De alguna manera se obtiene una secuencia de caracteres de la humana y luego hace algo con él. Y esto se ve como sintaxis críptica. Normalmente, si usted está utilizando el signo igual - usted está en el mundo de, digamos, álgebra, y ya está hecho diciendo x es igual a 1. Aquí no estamos diciendo que nombre es igual a conseguir cuerda. Estamos diciendo tienda en nombre de lo que es en el lado de la mano derecha de ese signo igual. El signo igual representa el operador de asignación. Es la sintaxis que dice poner lo que está en el lado derecho dentro de lo que es a la izquierda. Así consigue la cadena es una nueva pieza de funcionalidad que no sólo algo - , pregunta el usuario para una cadena - sino que también lo vuelve, por así decirlo. Así que vamos a ver lo que está pasando a pasar aquí. Voy a seguir adelante ahora y alejar la imagen, y yo voy a conseguir un par de errores en mi pronta. Voy a escribir make personalizada, escriba. Wow. Un montón de errores. Muy bien, así que esto es una especie de abrumador, sin duda al principio, pero resulta que todos ellos muy mensajes de error crípticos son reconocidamente refiriéndose a algunos patrones que vamos a empezar a ver el paso del tiempo. Así que éste voy a arrancar apagado, porque es primero. El uso de cadena de identificador no declarado. Eso sólo significa que gedit o Clang, en este caso, no sabe lo que quiero decir con cadena. Y es que en C, la programación idioma, hay en realidad hay una variable de tipo string. C no sabe que existen cuerdas. Pero nosotros, el personal CS50, hacemos. Y así, antes de la clase, creado un archivo llamado CS50.h. Y dentro de este archivo - y más en la sintaxis por venir - dentro de este archivo es una definición de lo que se acaba de definir verbalmente como una cadena. Así que simplemente mediante la celebración de esta línea de código en mi programa, yo estoy ahora enseñanza gedit y hacer y Clang todo lo que a su vez es una cadena. No sé cómo todavía. En unas pocas semanas, vamos a pelar copias de esa capa. Pero por ahora, sabemos que esto enseña el compilador de lo que es un cadena es en realidad. Así que ahora quiero borrar mi terminal de aquí abajo. Permítanme volver a ejecutar aduana hacer, y yo resuelto todos estos problemas. Así que esto también va a ser un tema recurrente. Yo sólo escribí un programa de la línea 9, y sin embargo, yo tenía 18 líneas de errores. Eso es un poco intimidante. Pero se dan cuenta de que a menudo caen en cascada, tales Esa pequeña desencadenantes error la confusión para el compilador, y se ve mucho peor de lo que es. Así que ahora un observador astuto sabrá que me estoy poniendo una cadena de la usuario, pero no estoy realmente haciendo lo consigo? No estoy haciendo en realidad nada con ella. Así que si realmente funciono personalizada de nuevo, que va a sentarse allí. ¿Qué está pasando? Mi programa parece estar atascado en qué línea, qué le dirías? Así que en realidad está atrapado en la línea 7. Y nosotros no hemos visto esto antes, pero en la línea 7, hay, de nuevo, esta declaración, consiga cadena. Y hace lo que dice. Se espera ahora para el ser humano para tomar la cadena. Esto es completamente intuitivo para mí, el ser humano, porque no he sido informado lo que debe hacer. Pero déjame ir por delante en la fe y déjame pretendo ser Rob. Intro. Ese no es el programa de lo que pretendía. Así que tenemos nuestro primer blog. Pero vamos a tratar de razonar por qué este es el caso. En primer lugar, déjame arreglar este primer problema. Permítaseme añadir aquí una línea que dice: printf, ¿cuál es tu nombre? Hagamos Cierre de comillas, paréntesis de cierre. Ahora voy a volver a ejecutar el programa. Problema. No estoy viendo eso. Derecha. Yo no recompilarlo. Así que en un lenguaje como C, debido a que cambiar el código de fuente no significa que ha cambiado su código de objeto para generar nuevo código objeto, nuevos ceros y unos. Usted tiene que volver a compilar. Si yo ahora costumbre volver a correr, entrar, ah, un poco más claro. Mi nombre es Rob. Aún buggy. Y yo diría que hay un par de bichos ahora. Esto sólo se ve horrible, francamente. Al igual que, como mínimo, debería tener un espacio allí, o mover el cursor a la nueva línea. Y, de hecho, la nueva línea. Eso es algo de una frase clave aquí que que hemos visto, pero no definimos. La forma en que se obtiene un texto para pasar a la siguiente línea, usted no hace esto. Esto es confuso para el equipo. Esto se ve como dos líneas separadas de código, ninguno de los cuales es perfectamente correcto. En su lugar, tiene que ser más explícito y por ejemplo, me da una nueva línea, que nos Se representan en C con una barra invertida n. Así que hay algunos de esos personajes. Backslash n solucionará esa estética. Déjame a compilar mi programa. Permítanme volver a ejecutar mi programa. Esto se ve mejor. Es todavía muy primitivo, pero también es todavía buggy. Así que hay una - incluso si nunca has programado antes, es probable que pueda tomar una conjetura por qué este programa está siendo la adecuada. ¿Qué necesito para hacer eso Yo no he hecho todavía? Así que tengo que hacer realmente algo con nombre. Al igual que en el principio, que en realidad podría asignar una variable como n o contrarrestar como lo hicimos el pasado semana - un valor. Pero si usted no hace nada con , nada va a suceder. Muy bien, así que vamos a arreglar. Permítanme tecleo mi variable de allí, y déjame ir aquí. Déjame a compilar, permítanme volver a ejecutar, Rob. Ahora sólo soy un idiota, ¿verdad? Así que esto no es realmente conseguir me más. Pero eso era una perfectamente natural instinto, yo diría, ¿verdad? Si la variable se denomina nombre, y yo quiero ir allí, ¿por qué no lo hago yo sólo escribirla allí? Bueno, por supuesto, tenemos para distinguir ahora entre lo que es una cadena? Tenga en cuenta que, entre comillas aquí, hola nombrar? En realidad, esto en sí mismo es una cadena. Está codificado. No es de lo humano. Es de mí, el programador original, pero aún así es una cadena. Así que si usted escribe literalmente N-A-M-E en el interior de una cadena, lo que va a obtener impresos? Bueno, N-A-M-E. En su lugar necesitamos para decirle printf, no se imprimen fuera literalmente el nombre. Imprima el valor de nombre. Y para hacer eso, hacemos lo siguiente. Y esto es sólo una convención humana. Nosotros en cambio decimos% s, y que es sinónimo de cadena. Y luego, al final de mis cotizaciones de cierre, Voy a poner una coma y aprobar un segundo argumento en esta declaración. Voy a escribir el nombre allí. Así que ahora cuenta de que tenemos un ligeramente nueva sintaxis. Todavía tenemos dos paréntesis y de ahora en adelante, permítanme decir que las cosas entre paréntesis, representa argumentos en una función - insumos que de alguna manera van para influir en su comportamiento. Así que por esa lógica, el número de argumentos sí parece printf ser tomando en este momento? Así que parece estar tomando dos, y eso es de hecho implicaba por la coma aquí. Así que este es un argumento entre comillas. A pesar de que tiene una coma en ella, todo es entre comillas, lo que significa es una cadena larga. Coma, nombre de la variable. Así que ahora quiero alejar. Permítanme volver a ejecutarlo. Rob. Maldita sea, ¿qué hice mal? Muy bien, así que tienes que volver a compilar. Así que de nuevo, los errores fáciles de hacer desde el principio una y otra vez. Así que ahora a medida re-run, Rob, entrar, y listo. Ahora tenemos un programa personalizado. Así que ahora tengo un programa que el uso de algunas características que son dignas de mención. Uno, estoy usando CS50.h, de lo contrario conocida como la biblioteca CS50. Y en el interior de la biblioteca CS50 son funciones que otras personas escribieron - a saber, el personal - para su uso, y obtener cadena es uno de ellos. Dentro de la línea 2 es stdio.h, y por qué es allí? Tome una conjetura. Lo que existe en el interior de matriz estándar IO? Printf. Así printf, que no se ve en ninguna parte otro en la pantalla. Debe venir con el equipo de alguna manera. ¿De dónde viene? Está dentro de - se declaró, por así decirlo, en el interior de un archivo llamado stdio.h. Ahora, para estas cosas, vamos a volver a la larga, debido a que es un poco distraer por ahora. Esto se refiere a nuestro tipo de cambio. Esto se refiere a una discusión. Pero por hoy, estamos enfocados justo aquí en estas líneas. Así que el nombre de cadena, sólo para recapitular, ¿qué hizo esto por mí? Por lo tanto, declaró una variable de tipo string. Así que se supone que debe ser para las palabras, no para los números. Como nota aparte, si yo quería que sea un número, yo diría algo así como int. Si quería ser un punto flotante valor, algo con un punto decimal, Yo diría que el flotador. Pero por hoy, sólo he dicho cadena. Y me he dado esta variable un nombre de nombre, pero lo que pude han llamado nada. De hecho, en un principio, lo llamé S. Esto aquí es más que otra declaración. ¿Cuántos argumentos es este toma de declaraciones? Así que es simplemente tomar uno, y que es simplemente un detalle estético de mostrando algo en la pantalla para mí. ¿Cuál es esta línea 8 haciendo en términos simples? Se está poniendo un valor de la usuario - es decir, una cadena - y ¿qué hace con ella? Básicamente se trata de entregarlo a la chico en el lado izquierdo de la signo de igual modo que en este caso, la variable de nombre en realidad puede almacenarlo. Y entonces printf es otro instancia de una función. Y decimos que llamar a una función. Para utilizar una función es llamar a una función. Esta cosa aparentemente toma dos argumentos. Éste, coma, éste. Éste sí es sólo una cadena que contiene un marcador de posición. medio% s ponen otra cadena aquí. Y así, poniendo nombre después la coma, que está insertando esa cosa para mí. Así que puedo hacer otras cosas todavía. Déjame ir adelante ahora y hacer un poco de un programa una tontería, pero me deja borrar esto, y me deja crear un bucle. Mientras que es cierto. El símbolo de cierto es, obviamente, siempre va a ser verdad. Entonces, ¿qué tipo de bucle estoy induciendo escribiendo una línea como esta? Así que en un bucle infinito, ¿no? Apenas mientras que la verdadera. No hay manera de que pueda cambiar la palabra fieles a ser otra cosa, así que esto es sólo va a correr para siempre. Así que si alguna vez has tenido en realidad un programa de en su PC o Mac que parece haber encerrado, o que está haciendo algo y algo, y que acaba de no puede conseguir lo que hay que dejar de fumar a menos que reiniciar el ordenador o levante el Administrador de tareas o similares, aquí está un ejemplo. Puedo decir: "Yo soy un programa con errores." Cerrar cotización, cerca paréntesis, punto y coma. Así que de nuevo, observe los patrones. A pesar de que algunos de nuestra sintaxis es nueva, mientras que la palabra clave, la palabra clave cierta, Aviso Tengo el mismo tipo de llaves. Tengo un punto y coma y paréntesis. Así que ahora vamos a seguir adelante y compilar esto. Hacer encargo, aduana. Así que en este punto, no es necesario reinicie el aparato, ¿de acuerdo? Así que la lección aquí es fácil con dos dedos, Control C, dejaremos de ese programa. Pero usted puede ver exactamente por qué esta cosa se repite una y otra vez. Puedo hacer algo un poco más complejo como un reclamo. Voy a seguir adelante y decir lo siguiente. Para int, que es un entero, i es igual un nombre genérico que le damos a la mayoría variables en la programación cuando estás sólo contar, es igual a 0. Déjenme seguir adelante y decir mientras que i es, digamos, menos de 100, i plus plus. Vamos de nuevo a esta sintaxis, pero esto sólo significa incrementar i una y otra vez. ¿Y qué es lo que quiero hacer aquí? Printf, "Puedo contar hasta i." Este es un programa con errores. ¿Qué he hecho pretendo aquí? Porcentaje no s, pero no lo adivinaría esto. % D es un número entero decimal. Coma i. Let Me Roll back. Permítanme ahora a compilar con maquillaje. Permítanme ahora volver a ejecutar con la costumbre. Puedo contar realmente maldita rápido cuando Escribo un programa como este. Ahora vamos a hacer algo un poco intencional. ¿Y vamos a hacer esto mientras yo es mayor que o igual a 0. ¿Qué es esto va a provocar? Así que, lógicamente, esto no es tan sabio, porque ahora si me vuelva a ejecutar esto, recuento, Ahora puedo contar realmente, realmente alta. Por desgracia, casi tan alto como pueda conteo es de 4 millones de dólares, por lo que esto va a tomar un tiempo. Entonces, ¿por qué no dejamos esto como nuestra melodrama, con la promesa de que en Miércoles, vamos a ver si este programa está hecho. Dos, vamos a introducir la forma en que usted mismo escribir su propia función para que muy rápidamente, el miércoles vamos a hacer, ya que transición desde cero en C, de inicio escribiendo cada vez más compleja programas que hacen mucho, mucho más que esto. Nos vemos entonces. [Aplausos] ALTAVOZ 1: En el siguiente CS50, Puzzle Day fue un éxito.