CS50 2013 - Week 1

CS50 2013 - Week 1

>> DAVID MALAN: Este es CS50, y estoes el comienzo de la primera semana. Y lo que nosotros pensamos que lo hacemos se tire hacia atrásla cortina de un dispositivo que muchos de ustedes probablemente han caminado más allá ahoradesde 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 yhabilidad mecánica es esta gran nueva calculadora automática alLa Universidad de Harvard. Un complejo entramado de problemas en matemáticas ponena través de la máquina en forma codificada en cinta se resuelven con precisión en un minutofracción del tiempo requerido para cálculo humano. >> Diseñado para agilizar todas las formas dela investigación matemática y científica, la voluntad cerebro mecánico gigantetrabajar para los Estados Unidos Navy hasta el final de la guerra. >> [VIDEO PLAYBACK FIN] >> DAVID MALAN: Así que eso es lo que se ve enel 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 esencialmenteun muy gran calculadora. Fue sucedido por el Mark II, yes de la marca II de que en realidad obtener un poco de léxico. >> Este es el primer caso registrado dealgo que está a punto de convertirse en todo muy familiarizado con eltranscurso del semestre - a saber, un error. Así resultó que en un momento dado la MarcaAparatos 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 aerrores en programas como los insectos. Así que más en el venidero. >> Hablando de vídeo, así, si ustedhan hecho ya, saber que es CS50 obviamente filmado. Las conferencias suelen ir justo después declase en una especie de pre-lanzamiento formato sin editar, y luego un día o dosmás tarde, pusimos una resolución más alta y la versión de mayor calidad. Usted puede recordar Vanessa, que tenía ella fortuna de jugar con Google Glass, que me acordé decargar este tiempo. Así que si quieres venir después de clasey jugar, deben trabajar hoy. Y si desea ver lo que Vanessavio el otro día, lo que verás aquí - déjame subir el volumenaquí 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ónque 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 deMe puse las gafas de abajo. Así que hoy, voy a dejar a retirarse, pero graciasa Vanessa por ser tal buen deporte. >> Mientras tanto, un par de anunciosantes de que avanzamos en la actualidad. Así que uno, CS50 tiene una tradición de hacerlo 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 40de sus compañeros de clase, a mí mismo, algunos de el personal docente, y acabamos deun 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 cadaa otros, hablar de la vida después de universidad, vida de la universidad,y similares. Así que si usted desea participar en esteprimero como el almuerzo este viernes a las 13:15, la cabeza a los queURL en algún momento. >> El espacio es limitado, por lo que va a hacerorden de llegada. Pero vamos a hacer esto otra vez en un periódicobase, por lo que no se preocupe si no lo hace hacerlo en este primer lote. >> Ahora, en términos de los recursos proporcionadoscurricularly por el curso, hay una gran cantidad, y si usted no tienelevantado el sitio web del curso Ya, en particular, en las conferencias,usted encontrará que todo que hicimos la semana pasada está ahí, tantoen 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 pantallaaquí 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 aMiércoles, ya que esta característica tiene un pocos días, usted encontrará que usted puederealmente tire hacia arriba, para bien o para peor, cada palabra que yo oun voluntario en el escenario, dijo. Y más que eso. En realidad puede buscarla, puedehaga clic en cualquiera de esas frases, saltar a ese punto en el vídeo, todo haciay al final de hacer que el material de toda la más navegable. >> Pero si prefieres no siguescon tanto detalle, encontrará, por ejemplo, este pequeño menú aquí para 1.5xVelocidad, velocidad 2x o i f yo ya hablar demasiado rápido para ti, velocidad 0.75x. Entonces se dan cuenta de que todo eso esdisponibles allí para usted. >> Pero más allá de eso, para las conferencias, se dan cuentaque también hacemos estos recursos disponibles también. Diapositivas, código de ejemplo, cualquier cosa que yohacerlo en el escenario o en el avance de la clase, vamos a publicar allí, así que puedes jugara lo largo de en casa o en Sanders. Pero lo que también pensamos que haríamos estoaño por primera vez también proporcionarle tutorialesde estos ejemplos. Cada vez más, como he reflexionado sobre lavalor de las conferencias del CS50, he empezado a cuestionar lo útil que es paraustedes 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 deminutos, alguien va a distraernos, y luego se olvida de una idea clave de algunasejemplo, 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 nuestracolectivamente 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 hacerjusticia a la clase, que no podría tener tiempo para la clase, pero no es usimplemente distraernos durante, es nosotros produciremos una serie de tutoriales de estosejemplos 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 esteenlazar a tutoriales. Y el formato de estoscambiará con el tiempo. Por ahora, estamos usando un simpleLista de reproducción de YouTube. >> Pero lo que hice con nuestro equipo de produccióndespué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ónpodría ser o debería ser el uno. Así que usted encontrará, por ejemplo, de la últimasemanas, todos los ejemplos de rascar atravesamos se realizan linealmenteen que la moda. Así que no dude en participar o noparticipar en este material. Realmente un tema de este curso en particulares que es probable que haya más en la forma de recursos de los queposiblemente podría absorber más el curso de un semestre. >> Pero eso es deliberado. Se supone que es para que usted comoestudiantes 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 paramejor, estupendo. Realmente será hasta usted para elegirqué recursos funcionan mejor para usted. >> Finalmente, gracias a un alumno de laPor supuesto, también ofrecemos una canónica conjunto de notas de trazado. Así que en lugar de ¿Han cabezasen conferencias anotando cosas que surgen en la clase, nosotros, lospersonal, le dará lo que sensación son un conjunto canónico de notas aliberarte de esa distracción, por lo que si usted está aquí y comprometido, que sonverdaderamente comprometido con lo que está pasando, con tus compañeros están haciendo para arriba enetapa, con lo que hay en la pantalla, y no simplemente escribir palabra por palabralo que sucedió a haberse dicho. Así que darse cuenta de todos esos recursosestán disponibles para usted. >> Seccionamiento, en respuesta a un FAQ,comenzará este miércoles. Esencialmente esperar hasta después de la mayoríaotras clases se llevan a cabo de manera que podamos minimizar el número de cambiosque tenemos que hacer. Pero, al llegar este fin de semana, a partirDomingo, será una instancia única de lo que llamamos secciones súper. Estos serán filmados para aquellos que no pueden hacerloasistir, y esencialmente, la las cabezas de los cursos nos caminar a través de algunosde la parte C del curso, hacia un extremo del conjunto de problemas uno, el cualva a ser nuestra primera C basado establece problema. Y estos serán sólo las secciones opcionalesen previsión de lo que va a convierten en los puntos recurrentes dirigidaspor 50 además de el curso Teaching Fellows semanal. Los domingos o los lunes o martes, nostendrá 90 secciones hora en una sentido tradicional, que seráoportunidades para las manos en y más reseña íntima de lael material del curso. >> Sin más preámbulos, permítanme presentarleslas 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í, Roby Lauren y José y Lucas, todos de los cuales han estado con laPor supuesto desde hace algún tiempo. RJ es la tercera talesmiembro de nuestro equipo. No pudo estar aquí hoy, perome preguntó para mostrar una foto de él. No estoy seguro de querer esteuno, pero ahí está. >> Y permítanme que el equipo pueda decirhola y que se presenten a fin de que usted se familiariza con ellas, así como supropio compañero de la enseñanza de este plazo. >> LAUREN CARVALHO: Hi. Mi nombre es Lauren Carvalho. Soy un tutor residenteen Leverett House. También estoy muy emocionado de serTV 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 comoestás quedando atrás, no dude en llegar a cualquiera de nosotros enheads@cs50.het, o para mí, si lo quieres jugar con mi oroPerrito 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énrealizar estudios de Asia oriental. Así que si usted tiene alguna pregunta acerca deciencias 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 equipociencia en Elliott House. Por lo tanto, vamos a ver. Me verás ahí portandouno de estos enormes cámaras. Soy el fotógrafo personal residentede 50, así, y los estudiantes a menudo a veces me confundanun 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ñocabezas, 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 normaedició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 materialcon un poco más de un desafío, mientras que todavía tocar en algunosde los mismos temas. Tome un vistazo a la página web del cursopara 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 restaurantessalas en el campus. Echa un vistazo a cs50.net/ohs para la oficinahoras 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 suordenador portátil durante las vacaciones de cerebro. Trae algunos amigos y charlar con laTFS y las CA con cualquier de los cursos las preguntas que pueda tener. >> Y no puedo enfatizar lo suficiente, incluso paracero y el problema de establecer 0, no Realmente no hay pregunta tonta. No hay estudiante demasiado incómodode hacer preguntas. Por favor, siéntase libre para aprovecharde este recurso. Será allí recurrentementelo largo del semestre, como se CS50 Discuta. Esta es la discusión en línea del cursoforos en esa dirección existe. >> Lo que también vamos a hacer durante las clases estambién monitorear esto, gracias a la equipo docente del curso. Y por lo que si usted tiene una pregunta durantedar una conferencia, porque dije algo poco o nada en absoluto, por todos los medios, pidaque, en tiempo real, si usted tiene su ordenador portátil o teléfono en la página web, ynosotros 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, sihan 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 cursode 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% deel 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 aesas otras cosas, para que pueda optimizar su tiempo por todas partes. Y SAT UNSAT es un mecanismo a través del cualusted puede tomar consuelo en el hecho de que el 99% de la forma en que haysiendo bastante bueno. >> Del mismo modo, también, si usted ha llegado a laPor supuesto, sin conocimientos previos o no casi tanto de fondo como ustedpensar en sus compañeros de clase podrían tener, la verdadera o falsa, se dan cuenta que este es unoportunidad de conseguir sus manos sucias con el curso, poner los pies en laagua, 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íanunca han puesto un pie en la clase, a pesar de que he hecho, cinco semanasdespués, cambiar de opinión, que le puede también, y cambiar ao de la carta graduada de estado. >> Está bien. Así que miramos las cosas de este tipo enViernes, y vamos muy rápido para la transición a algo queparece más críptica hoy. Pero es, no obstante, lamisma idea fundamental. ¿Cuál fue el término general quese usa para describir una pieza del rompecabezas que se parecía a esto? >> Por lo tanto, un comunicado. Y usted puede llamar a esto cualquiernú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 noslugar denominado qué? Sí, por lo que una expresión booleana. Una expresión booleana es sólo algoeso es cierto o falso, y así a los arañazos los atrae con esta forma, pero tambiéncon un signo de interrogación para transmitir la idea de que la respuesta a esta preguntaes verdadero o falso, sí o no uno, 1 o 0. >> Y utilizamos estas expresiones booleanasel 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í enRasguño tiene un pequeño marcador de posición para un pieza del rompecabezas de esa forma, el propósitode los cuales es, para que pueda arrástrelo y colóquelo en la parte superior y luegodictar el programa si este Booleano expresión es verdadera, hacer este conjunto deinstrucciones, este conjunto de declaraciones, cosa hacer esto otro conjuntode instrucciones. >> Y recordar que puedanido de estas cosas. A pesar de que no hay mucho espaciovisualmente en esa pieza del rompecabezas, Scratch va a crecer y encogerse para adaptarse a lo que seapiezas de un rompecabezas que arrastrar y soltar en no por lo que realmente puede anidar esto ytener un tenedor de tres vías en la carretera. Si, else if, else. E incluso se puede ir más allá deanidación más y más, según sea necesario. >> Así que, por último, vimos como construccioneseste, conocido de otra manera como un bucle. Y esto es sólo algo que hacealgo una y otra vez y otra vez. En este caso, pasa a ser un finitonúmero de veces, pero también vio un ejemplo donde el número deveces venían de una variable, por lo que podría cambiar. Y también vimos otro bloque completodenomina bloque siempre que nos permitió bucle infinitamente largo. >> Así que otra construcción que a los arañazos2.0 tiene - y aquellos de ustedes más cómodo con el fondo anterior sonya está bien familiarizado con este construir - estas cosas que llamamos qué? Así que llamamos a estas funciones, de lo contrarioconocido 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 tengauna nueva pieza del rompecabezas que, en este caso, sería llamado tos, queaparece 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 nuevoscomportamiento, darle un nombre de función y entonces llamarlo, por así decirlo. Realmente utilizarlo en programas de una yuna y otra vez sin tener que esperar para alguien como MIT por el camino ainventar una nueva funcionalidad a partir de cero. Usted mismo puede construir estos rompecabezaspiezas a ti mismo, y luego volver a utilizarlos en sus propios programas. Y vamos a ver un ejemplo recurrentede que hoy en adelante. >> Así que hoy, hacemos la transición ahoraa algo más arcano. Pero al final del día, algomás potente y expresiva y más representante de la ruta que vamos a seren 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 sencillaprograma se puede escribir en un lenguaje llamado C. Vamos a empezar ase burlan de esto aparte de poco tiempo, y si esto realmente parece griegopara usted en este momento, confía en mí. En tan sólo una semana o el tiempo de dos, estoserá muy familiar y en realidad bastante representativa de cada vezejemplos complejos con la que puedes encontrar también sentirse más cómodo. >> Pero uno no puede ejecutar estetipo de código por lo general. Hay que convertirlo en algo quela computadora en sí entiende. Y así, para eso, necesitamos algovamos a llamar a un compilador. Un compilador es un programa que tomacódigo fuente, como usted acaba de ver, como de entrada, y produce ceros yqueridos como salida, de lo contrario conocido como código objeto. Y son esos ceros y unos quepuede tener un aspecto como este que en última instancia, se entiendenpor tu Mac o PC. >> Si alguna vez has oído hablar de la comercializaciónexpresión Intel Inside, que acaba de significa que una compañía llamadaIntel ha fabricado el cerebro de su computadora - también conocida como la CPU,unidad central de procesamiento - y eso es justo lo queentiende patrones de ceros y unos. Y así, mediante la conversión de código fuente enCódigo de objeto a través de este proceso aquí que vamos a hacer con un par de comandosen sólo un poco, usted es la creación de patrones de ceros y unosque los empleados de Intel tienen decidido que representan ciertas declaraciones. >> Ahora, yo no sé muy bien quees 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 deceros y unos que representa el print comunicado. En algún lugar en el que podría haber una diferenteconjunto de ceros y unos que representar la noción de siempre orepetir 10 veces o incluso maullido, si es en realidad un programa que puedeincluir 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 unosrepresentar un comportamiento más complejo como imprimir o decir o maullar. Y así hoy, y en gran medida en adelanteen el semestre, vamos a tomar para sentado que alguien se ha dado cuentaencontrar la manera de hacer que la cartografía. Pero, de acuerdo con esta idea decapas en la parte superior de la labor de las personas que han venido antes que nosotros, se llevará asentado el hecho de que esto está sucediendo debajo de la capucha. Pero estamos mucho más interesados ​​enconstrucción de cosas que son más interesante en la cima de todo esto. >> Y así, de hecho, el primer programa queescribió en scratch fue esta super simple uno, Hello World. Y usted puede pensar en esto como ser elprincipal del programa que gobierna Scratch comportamiento a partir del viernes pasado. >> Hoy en día, vamos a empezar a traducirPiezas del rompecabezas de Scratch en código fuente en este lenguaje llamadoC de manera que lo que parecía esto en Viernes, a partir de hoy en adelante, esAhora va a tener este aspecto. Es cierto que más críptica. Es bastante molesto y tipo de cuentaadormecedor para ver todas las citas y el punto y coma y elparéntesis y así sucesivamente. >> Pero si empiezas a hacer caso omiso de cualquier cosa queno lo entiendo, y realmente mirar en la esencia del texto en blanco sobre lapantalla, seguro que ver, como yo, "Hola, mundo". Esto se alinea con eldeclaración púrpura encima de la tapa, y resulta que la palabra clave principal se va aalinear 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, ustedver que cada uno de los caracteres blancos en la pantalla en realidadtiene un significado importante, y la mayoría de nuestros programas van amirar estructuralmente lo mismo. Así que una declaración, para ser claros, lo queparecía "decir hola mundo" en la Viernes va a empezar a buscarcomo este lunes. printf ("hola, mundo"). Y hay algo de barra invertida raron, no hay paréntesis, no hay punto y coma. >> Pero al final del día, la teclallevar hoy es que todo lo que estamos haciendo está traduciendo cosas de cuadroformar 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 enScratch, hay diferentes maneras de lograr el mismo objetivo. Igual en C. Yo no estoy mostrando el únicomanera de hacer las cosas, sino una forma de traducir esto para siemprebloquear a un bucle en C. >> Este de aquí, repetir 10 veces. Esto sí que me tipo de curva lamente 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 esun poco complejo allí con I y igual y 0, pero una vez que nos sumergimos en quehoy en adelante, te vas a ver que eso es todo, simplemente haciendo algunasaritmé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 pasadosemana 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, quela semana pasada, parecía esto. Esta semana en adelante, van aempezar a mirar un poco así. >> Y éste es en realidadun poco tranquilizador. En realidad es casi tan simplecomo los bloques verdes. Pero aquí tenemos, de nuevo, una sintaxis nuevacon 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á ennatural antes de tiempo. >> Condiciones. La semana pasada, parecía queesta en la izquierda. Esta semana, a la derecha, esva a parecer eso. Pero, de nuevo, la conclusión clave aquí es quecomo usted ve las cosas como que en la derecha, y sobre todo si es menorcómodo, es una especie de sobre su cabeza, te dan un poco abrumado queRealmente no tengo ni idea de lo que podía posiblemente llegar aque desde el principio - sin juego de palabras - sólo se da cuenta de que es realmente la mismaidea de que probablemente se sintió mucho más natural de la semana anterior. E incluso si no se ha zambullido enproblema set 0, me atrevo a decir que encontrarás que las piezas del rompecabezas son bastanteintuitiva, o al menos vuelto tan largo del tiempo. >> Así que vamos a bucear pulg Vamos a poner las manos en aquí coneste primer programa sencillo. Y simple es, por supuesto, relativa. Para ello, voy a cambiar las pantallasa ese dispositivo que se llama el Aparato CS50. El aparato CS50 es un pedazo desoftware que se ejecuta dentro de una ventana en mi Mac, y también se puede ejecutaren una ventana dentro de su PC, que me permite tener exactamente el mismoEntorno de ordenador ya que cada TF, como cada CA, ya que cada estudianteen la clase. Debido a que el aparato CS50 es literalmenteotro sistema operativo llamado Linux - específicamente Fedora Linux - y nosotros, el personal, hemos configuradoel 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 enla parte inferior, y tres, pedagógicamente, hemos simplificado la interfaz de usuario comotanto como sea posible para que cuando se arrancar por primera vez esta cosa por su cuentaMac o PC, que tienen el mismo medio ambiente como todos los demás, y ustedtener todas las herramientas que usted necesita para el curso sin tener que figuracómo instalar cada uno y todas las herramientas de forma individual. >> Así que esto parece relativamentecomo Mac OS o Windows. En la esquina inferior izquierda, queesencialmente tener un menú de inicio de tipo, o un menú Apple. Y entonces usted tiene lo que se sospechaserán sus tres iconos más comunes. Uno de ellos es Chrome. Hay un navegador dentrodel aparato. >> Dos es un programa llamado gedit, quevimos brevemente la semana pasada, que es sólo un editor gráfico. Y tres es un programa Terminal, quees una ventana en blanco y negro de antaño que nos permite escribir másarcanos comandos, pero más poderosas nuestro teclado. Así que voy a seguir adelante y hacer clic engedit, 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 simpleinterfaz de usuario con tres partes. A la izquierda, tengo un gran vacíoventana llama código fuente. Ahí es donde voy a ver un resumende cualquier código que escribo. Por el lado de la mano derecha, tengo un granficha, en la actualidad no son salvos, y eso es donde mi código va a ir. Y en el fondo, tengo una embebidoVentana de terminal, un blanco y negro indicativo en el cual puedo escribir comandos paracompilar 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 yentrar en jharvard. Así el aparato, con independencia de losu nombre es, pertenece a un tipo llamado John Harvard, que tiene una casa jharvarddirectorio 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ónde John Harvard propia. >> De antemano, yo en realidadDropbox instalado. El aparato viene con prepreparedDropbox para que si algo sale mal durante el semestre, si no tienesconfigurado el aparato con un libre Cuenta de Dropbox, todos los archivos seser copiados automáticamente para que puede recuperar muy fácilmente. Y yo voy a ir a mi Dropboxdirectorio, y ya va a ser un par de otras cosas allí. >> Pero voy a seguir adelantey vaya a Archivo, Guardar. Voy a ir a jharvard, Dropbox,y hasta aquí, me voy a dar mi programa un super simplenombrar, hello.c, a continuación, guardar. Así que tengo la misma interfaz ahora. Lo único que ha cambiadoes la parte superior pestaña hacia arriba. Así que estoy muy rápidamente va a recrearque 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, cercaparéntesis, punto y coma, y luego Ctrl S para guardar. Y fíjense en un aparte de lo que acabaaparecido aquí en la parte superior izquierda. Y esto no es útil hoy en día, peroserá útil en el tiempo. Usted acaba de ver, de nuevo, un resumen deel código que has escrito. Y porque yo escribí algo que se llamaprincipal, 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 miprimero programa escrito en una programación lenguaje llamado C. Sabemos desde el viernesque lo que esta cosa va a hacer muy sin interés cuandocorrer es sólo la pantalla - en otras palabras, la impresión, como un ordenadorcientífico diría - hola mundo en la pantalla. Así que para hacer esto, te darás cuenta de que tengobajar aquí a mi terminal ventana, y ahora tengoel símbolo parpadea. Pero esto es ahora una versión del teclado demi directorio home John Harvard. Es una forma de teclado a través del cualpara navegar por el disco duro. >> Así que no puedo realmente escribir como lo hicela 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 mensajesignifica, pero eso es porque por defecto, cuando esta ventana en blanco y negro esabierto, estoy dentro de John Harvard directorio personal. Pero ¿dónde puedo guardar ese programa? En mi carpeta de Dropbox. >> Ahora, todos nosotros hemos crecido conequipos en los que basta con hacer doble clic en el icono de una carpeta,abre, y voila. Ahí es donde el archivo llamadohola.c sería. Así que de hecho, vamos a hacer eso. >> Déjame ir por delante y minimizar gedital igual que lo haría en Windows o Mac OS. Déjame ir a la Homecarpeta 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, nostendrá que tomar un paso hacia atrás sólo para le dará algunas herramientas básicas para sucaja de herramientas con las que hacer más cosas poderosas dentro de poco. >> Así que en este indicador, que tengo que hacer laequivalente a hacer doble clic el Carpeta de Dropbox. Y para hacer eso, voy a escribir para CDcambiar de directorio, Dropbox, enter. Y ahora cuenta los paréntesis en millamado prompt dice ahora que estoy en tilde, el pequeño garabatosímbolo en la parte superior izquierda de mayoría de los teclados, / Dropbox. Esto es sólo la notación abreviada dediciendo humana, que ahora está en el interior de la carpeta de Dropbox, como siusted hubiera hecho doble clic en él. >> Así que ahora si sigo adelante y escriba makehola, 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ápidamenteel viernes, hicimos esto. . / Hola. >> Lo que estás a punto de ver es el resultadode mi marcha de este programa, o, en el Mac Términos OS y PC, si normalmente me doblohaga clic en un programa -. una aplicación programa o un archivo. exe, se abreuna ventana y se ejecuta. Typing. / Hola es como dobleclic 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 queno se siente demasiado como griego. >> Así. / Significa qué? Cualquiera que haya navegado un tecladoentorno como este, lo que es punto refiriendo? El directorio actual. >> Así que el directorio actual es sólosinó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ésrealmente ejecuta el programa. >> Si ahora escribo LS, observe que veotodo en mi carpeta de Dropbox. Conseguir Started.pdf, que Dropboxle da de forma gratuita, mis fotos directorio, un directorio público, sin guardarDocumento 1 que hice por equivocación un Hace momento, foo.c, el cual hice anteriormentehoy en día, y luego dos líneas - hola.c y hola. >> Hello.c es el programa que escribí congedit, y lo que es hola en verde? El saludo en el verde es el ejecutable. En otras palabras, cuando me encontré con este comandohace un momento - Let Me Roll atrás en el tiempo - cuando me encontré con hacer hola, eso esel paso intermedio aquí. Y tomó hola.c como entrada - Código fuente AKA - y produjo unaarchivo denominado hola como salida, que contiene todos estos ceros y unos. Y por eso, al final, no puedorealmente ejecutar un comando como. / hola. A causa de Intel Inside, mi funcionamientosistema, Linux, abre esos ceros y queridos, les da de comer a lacerebro de la computadora - la CPU - y que la CPU sabe, oh, aquí hay un patrónde ceros y unos que dicen imprimir lo siguienteen la pantalla. >> ¿Qué es lo siguiente? Entre comillas, "hola mundo". >> Muy bien, por lo que un breve resumen de algunos deestos comandos para que podamos empezar a tomar por sentado. Permítanme Pase a ladonde lo dejamos. Y te recuerdo que teníamos CDa nuestras espaldas terminar hace un momento. Estos son, me atrevo a decir, porpropósitos de hoy - tal vez esta semana - los únicos comandos quepuede 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 dosal hacer clic en una carpeta. Y en un aparte, si usted recibeperdido alguna vez en el interior de su aparato, de tal manera que Dropbox - Quiero volver a midirectorio jharvard - en caso de duda, CD, introduzca, sin otrapalabras, y sólo te cremalleras la espalda al punto de partida, quees 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íancon estos comandos, que estaban tratando de ser eficiente, y más bienescribir a máquina L-I-S-T entrar, decidido LS. Eso está bien. Suena bastante como lista. Vamos a escriba LS entrar, y quelista los archivos o carpetas en mi carpeta actual. >> mkdir, probablemente pueda adivinar. Haga directorio. Así que no te vas a algún menú archivo yelija Nueva carpeta en este entorno. Más bien, escriba el espacio de comando mkdiry 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 lever 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 algunosde estos detalles, uno, porque no todos son tan divertido para pasarentonces, sino dos, le daremos en mucho mayor detalle en cualquiera de losEl problema de curso establece, en particular las ediciones estándar, cualquiera de los pasosque es posible que tenga que escribir de manera que se obtiene más y máscómodo con estas cosas. >> Pero ahora déjame desmenuzaruna 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 Dropboxdirectorio, 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 DropboxEntro, 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 seguroque desea eliminar hola? Puede escribir y para sí, entrar,y ahora se ha ido. >> Y ahora si escribo hacer hola de nuevo, esva a recrear mi código objeto, recrear esos ceros y unos. Pero ¿cuál es el trato conesta muy largo de comandos? Bueno, vamos burlan esto aparteen poco tiempo, pero hacer - Le dije un poco de una mentira piadosa antes - no es un compilador. Hacer es un programa que automáticamentese da cuenta de cómo se lleva un compilador para usted. >> Así que el comando que realmente debería sercorriendo con el fin de convertir hola.c hola en realidad se veun poco de la misma familia. Y Dios no lo quiera, tenemos que en realidadrecuerde que escribir cada vez que toda secuencia de comandos fuera. El propósito de hacer en la vida esrecordar que el grado de complejidad de nosotros y automatizar lo que de otro modoser 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 esel nombre del compilador que estaremos el uso de este semestre. Si alguno de ustedes alguna vez han hecho iOSdesarrollo para el iPhone o el iPad, Clang es el programa que ha utilizadodentro de Xcode para hacer sus aplicaciones. Clang, sin embargo, es sólo otro programacuyo nombre se puede escribir en el comando rápido, y con la introducción de este momento,Puedo presentarme algo que es un poco representativade comandos para venir. Así que déjame hacer esto manualmente. >> Así rm hola, y ahora cuenta en caso de queYo, al igual que una comprobación de validez - . / Hola, ¿qué crees quedebe 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 pantallapara eliminar algunas distracciones. Y ahora me voy a manualmenteescriba sonido metálico-o hola hello.c. Entonces, ¿qué es eso de hacer? Exactamente lo mismo que hacen que hizo pornosotros, pero lo hice tirar algunos de las palabras superfluas. >> Clang es el programa que va atener 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 deciresta es una palabra que escriba en el símbolo del que influye de alguna manera el comportamientodel programa que se está ejecutando. Así que ¿alguien quiere adivinarlo que-o transmite? >> Salida. Es sólo alguien medios decidido-osalida de un archivo denominado hola y tomar como entrada de cualquiera que sea la última palabra sobre elprompt es, hello.c, de modo que si le pego Ingrese ahora, nada parece suceder. Y por extraño que parezca, en este mundo dela programación, si no pasa nada, eso es probablemente una buena cosaporque no hay error mensaje en la pantalla. Hola, Intro. Mi programa ya se ha ejecutado. >> Pero no puedo hacer cosas estúpidas como pequeñosesto. sonido metálico-o, hihihi, hello.c, entrar, y ahora tengo una idénticaprograma denominado hihihi. Se comporta de la misma, peroel nombre es diferente. >> Así que esto es sólo para decir que si quierespara influir en el comportamiento de un programa, que vamos a cada vez másver 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ólopalabras o pequeños pedazos de sintaxis que influir de alguna manera el comportamiento de losprogramas que se están ejecutando. >> Muy bien, eso es tal vez el másprograma aburrido que puede escribir y ver. Ahora vamos a hacer algomás interesante. Déjenme seguir adelante y crear un nuevo archivo. Voy a seguir adelante y salvar a este enDirectorio principal de John Harvard como, llamémosle custom.c, para serun pequeño programa personalizado. Me voy a acercar a mi superior delas fichas aquí y empezar de nuevo. >> Incluya stdio.h estándar. Más sobre esto en un momento. int main (void), más eneso 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 llamaDavid.C, porque no es costumbre comportamiento en absoluto. En serio, quiero un programa que pidael usuario por su nombre. >> Entonces, ¿cómo lo hago? Bueno, déjame desplazo hasta aquí. Y antes de que yo uso una declaración enScratch, antes de usar printf, también conocida como una función, déjameprimero preguntar al usuario alguna información. >> Así que para hacer esto, tengo quehacer un par de cosas. Uno, necesito un lugar para guardar el usuario denombrar después de que le he pedido o por ello. Lo constructo Qué necesito para utilizar probablementepara almacenar un valor como ese? Una variable. >> Así que a diferencia de Scratch, donde se acaba de obtener unbonita pieza de puzzle, aquí, tenemos que uso, obviamente, palabras aexpresarnos. Y de ahora en adelante, cada vez que desea unpalabra 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áscaracteres, de manera más formal. >> Y si quieres una variable como paraexiste, que tiene que decir dame una. Y la forma en la que lo haces esdecir 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ásclaramente llamarlo nombre. Dame una cadena llamado nombre. >> Pero ahora, ¿qué es la persona denombre por defecto? Bueno, si el ser humano no se escribe nadaen, obviamente, no va que no hay valor de nombre. Y resulta que en C, si usted no dauna variable de un valor, que va a tener un valor basura. Podría tener algunos ceros aleatorios yqueridos, por lo que sólo vamos a ver basura, en verdad, en la pantallasi 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 essi usted tiene un nombre de variable en la a la izquierda, usted tiene que poner en práctica lo que de alguna maneraque desee almacenar en ella a la derecha, y la sintaxis para que vaa ser como sigue. >> No hemos visto esto antes, pero tomamosen la fe por un momento que hay existe otra declaración en el mundoque voy a llamar a la función de nuevo, y esta función esllamada cadena get. Y lo hace literalmente que. De alguna manera se obtiene una secuencia de caracteresde la humana y luego hace algo con él. >> Y esto se ve comosintaxis críptica. Normalmente, si usted está utilizando el signo igual -usted está en el mundo de, digamos, álgebra, y ya está hechodiciendo x es igual a 1. Aquí no estamos diciendo quenombre es igual a conseguir cuerda. Estamos diciendo tienda en nombre de lo que esen el lado de la mano derecha de ese signo igual. El signo igual representael operador de asignación. Es la sintaxis que dice poner lo que está enel lado derecho dentro de lo que es a la izquierda. Así consigue la cadena es una nueva pieza defuncionalidad 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á pasandoa 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 deabrumador, sin duda al principio, pero resulta que todos ellos muymensajes de error crípticos son reconocidamente refiriéndose a algunos patrones quevamos 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ónidioma, 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 - ymás en la sintaxis por venir - dentro de este archivo es una definiciónde lo que se acaba de definir verbalmente como una cadena. Así que simplemente mediante la celebración de esta líneade código en mi programa, yo estoy ahora enseñanza gedit y hacer y Clangtodo lo que a su vez es una cadena. >> No sé cómo todavía. En unas pocas semanas, vamos a pelarcopias de esa capa. Pero por ahora, sabemos que esto enseñael compilador de lo que es un cadena es en realidad. >> Así que ahora quiero borrar miterminal de aquí abajo. Permítanme volver a ejecutar aduana hacer, y yoresuelto todos estos problemas. Así que esto también va aser un tema recurrente. Yo sólo escribí un programa de la línea 9, ysin 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, talesEsa pequeña desencadenantes error la confusión para el compilador, yse 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 realmentehaciendo lo consigo? No estoy haciendo en realidadnada con ella. Así que si realmente funciono personalizada de nuevo,que va a sentarse allí. ¿Qué está pasando? Mi programa parece estar atascado enqué línea, qué le dirías? >> Así que en realidad está atrapado en la línea 7. Y nosotros no hemos visto esto antes, peroen la línea 7, hay, de nuevo, esta declaración, consiga cadena. Y hace lo que dice. Se espera ahora para el ser humanopara 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 ydé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 razonarpor 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 quecambiar el código de fuente no significa que ha cambiado su código de objetopara 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 hayun par de bichos ahora. Esto sólo se ve horrible, francamente. Al igual que, como mínimo, debería tenerun 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í queque hemos visto, pero no definimos. La forma en que se obtiene un textopara pasar a la siguiente línea, usted no hace esto. Esto es confuso para el equipo. Esto se ve como dos líneas separadasde código, ninguno de los cuales es perfectamente correcto. En su lugar, tiene que ser más explícito ypor 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 esoYo no he hecho todavía? >> Así que tengo que hacer realmentealgo con nombre. Al igual que en el principio, que en realidad podríaasignar una variable como n o contrarrestar como lo hicimos el pasadosemana - 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 conseguirme más. Pero eso era una perfectamente naturalinstinto, yo diría, ¿verdad? Si la variable se denomina nombre, y yoquiero ir allí, ¿por qué no lo hago yo sólo escribirla allí? >> Bueno, por supuesto, tenemospara distinguir ahora entre lo que es una cadena? Tenga en cuenta que, entre comillasaquí, 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 interiorde una cadena, lo que va a obtener impresos? Bueno, N-A-M-E. En su lugar necesitamospara 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 quees sinónimo de cadena. Y luego, al final de mis cotizaciones de cierre,Voy a poner una coma y aprobar un segundo argumentoen esta declaración. Voy a escribir el nombre allí. >> Así que ahora cuenta de que tenemos unligeramente nueva sintaxis. Todavía tenemos dos paréntesis yde ahora en adelante, permítanme decir que las cosas entre paréntesis, representaargumentos en una función - insumos que de alguna manera vanpara influir en su comportamiento. Así que por esa lógica, el número de argumentossí 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 argumentoentre 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 hacerdesde 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 queel uso de algunas características que son dignas de mención. Uno, estoy usando CS50.h, de lo contrarioconocida como la biblioteca CS50. Y en el interior de la biblioteca CS50 sonfunciones que otras personas escribieron - a saber, el personal - para su uso, y obtenercadena 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 dematriz estándar IO? Printf. Así printf, que no se ve en ninguna parteotro en la pantalla. Debe venir con elequipo 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 volvera 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 enfocadosjusto 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 variablede tipo string. Así que se supone que debe ser para las palabras,no para los números. Como nota aparte, si yo queríaque sea un número, yo diría algo así como int. Si quería ser un punto flotantevalor, algo con un punto decimal, Yo diría que el flotador. Pero por hoy, sólo he dicho cadena. >> Y me he dado esta variableun 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 estetoma de declaraciones? Así que es simplemente tomar uno, y quees simplemente un detalle estético de mostrando algo enla pantalla para mí. ¿Cuál es esta línea 8 haciendoen términos simples? >> Se está poniendo un valor de lausuario - es decir, una cadena - y ¿qué hace con ella? Básicamente se trata de entregarlo a lachico en el lado izquierdo de la signo de igual modo que en este caso, lavariable de nombre en realidad puede almacenarlo. >> Y entonces printf es otroinstancia de una función. Y decimos que llamar a una función. Para utilizar una función esllamar a una función. Esta cosa aparentementetoma dos argumentos. Éste, coma, éste. >> Éste sí es sólo una cadenaque contiene un marcador de posición. medio% s ponen otra cadena aquí. Y así, poniendo nombre despuésla 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 unprograma 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 induciendoescribiendo 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 palabrafieles 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 deen su PC o Mac que parece haber encerrado, o que está haciendoalgo y algo, y que acaba de no puede conseguir lo que hay que dejar de fumar a menos quereiniciar 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 mismotipo de llaves. Tengo un punto y coma y paréntesis. >> Así que ahora vamos a seguir adelantey compilar esto. Hacer encargo, aduana. Así que en este punto, no es necesarioreinicie el aparato, ¿de acuerdo? Así que la lección aquí es fácil condos dedos, Control C, dejaremos de ese programa. Pero usted puede ver exactamente por qué esta cosase repite una y otra vez. >> Puedo hacer algo un pocomás complejo como un reclamo. Voy a seguir adelante ydecir lo siguiente. Para int, que es un entero, i es igualun nombre genérico que le damos a la mayoría variables en la programación cuando estássó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íaesto. % 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 cuandoEscribo un programa como este. >> Ahora vamos a hacer algo unpoco intencional. ¿Y vamos a hacer esto mientras yoes 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 puedaconteo es de 4 millones de dólares, por lo que esto va a tomar un tiempo. >> Entonces, ¿por qué no dejamos esto como nuestramelodrama, con la promesa de que en Miércoles, vamos a ver sieste programa está hecho. Dos, vamos a introducir la forma en que usted mismoescribir su propia función para que muy rápidamente, el miércoles vamos a hacer, ya quetransición desde cero en C, de inicio escribiendo cada vez más complejaprogramas que hacen mucho, mucho más que esto. Nos vemos entonces. >> [Aplausos] >> ALTAVOZ 1: En el siguiente CS50,Puzzle Day fue un éxito.

Noticias relacionadas