LUCAS FREITAS: OK, supongo ahora estamos en vivo. Bienvenido a CS50 supersección. Estamos menos cómodo. Mi nombre es Lucas Freitas. Soy uno CS50 Head TFS. Se trata de Lauren. LAUREN CARVALHO: Hola, soy Lauren. También estoy TF Jefe de CS50. LUCAS FREITAS: Hoy sólo vamos para dar una visión general de lo que todo lo chicos han aprendido en la semana uno, con suerte dar a ustedes un buen sentido a lo que usted debe saber para el problema de establecer una. Sólo un par de anuncios. En primer lugar, las horas de oficina. Las horas de oficina se están produciendo desde el lunes a jueves en diferentes casas en Annenberg cada día. Son un recurso muy bueno para usted chicos por venir y hacer preguntas, y hablar con TFS, e incluso el intercambio ideas con otros estudiantes. Así que asegúrese de utilizar ese recurso en su favor. La segunda cosa es la CS50 Appliance. Para el último [inaudible] ustedes no tenían que realmente tener un aparato. Acabas de hacerlo todo en su ordenador personal. Sin embargo, para este problema, que en realidad tienen tener una máquina virtual, así que Asegúrese de descargar la CS50 Appliance y configurarlo. Y la tercera cosa es que asegúrese de iniciar el conjunto de problemas ASAP sólo porque es mucho más fácil de encontrar ayudar cuando usted está en el al comienzo de la semana. Debido a que la gente tiende a esperar hasta que el último segundo para iniciar el conjunto de problemas, y luego vas a las horas de oficina, y hay un montón de gente. Donde si vas el lunes, vas para ver que se puede hablar con TFS casi toda la noche, Y van más de encantado de ayudarle. LAUREN CARVALHO: ¿Puedo dejar de por sólo un segundo? Todo el mundo ha sido capaz de descargar Appliance CS50? Han tratado a la gente? LUCAS FREITAS: Para descargar, por el manera, puede obtener instrucciones al cs50.net/appliance. LAUREN CARVALHO: Así es. Y lo hace tomar un poco de tiempo para nuestra administradores de sistemas para obtener una licencia clave, por lo que inscribirse en el primera prueba gratuita. De esa manera usted tendrá durante 30 días, y luego esperar a que su clave de licencia que debe darle que durante un año usted. LUCAS FREITAS: En primer lugar, vamos a hablar un poco sobre el CS50 Appliance. El CS50 Appliance es en realidad una virtuales máquina que se va a ejecutar en su propio ordenador, que es básicamente la ejecución de otro equipo dentro de su propio ordenador. Lo cual es muy bueno. Y en realidad se utiliza en todas partes. Las personas que a tecnología sabrían que esto se utiliza todo el tiempo. usted? Puede tener varios ordenadores en un solo dispositivo. Vamos a echar un vistazo en realidad en el aparato. Cuando usted va al aparato después de registrarse, usted va a tener que ponga su nombre y entre en Harvard por lo que podemos llegar a todos ustedes registrado. Usted va a ver, básicamente, sólo un fondos de escritorio, y luego Home y Papelera, y luego estos pequeños iconos. Estos tres iconos en realidad son los más cosas importantes que usted puede tener en su aparato. La primera es gedit, que es un texto editor, como el Bloc de notas o como cualquier tipo de editor de texto. Es algo que usamos para escribir código y luego hacer cosas con él. La segunda cosa que nos tenemos aquí es Chrome. Así que si usted necesita utilizar el Internet en el aparato, eso es lo que puede utilizar. Y la tercera cosa es el terminal, que en realidad es muy dulce. La gente por lo general son una especie de miedo de el terminal porque es este mismo aplicación antigua en la que se sólo básicamente escribir todo con su teclado. No hay una gran cantidad de interacción con el ratón. Pero en realidad el terminal hace cosas muy buenas. En primer lugar, vamos a ir a través de algunos comandos que puede utilizar en el terminal. LAUREN CARVALHO Y no dude en pasar con nosotros si tiene alguna pregunta. LUCAS FREITAS: Si. Así que el primer comando que tenemos para el terminal es ls. ls básicamente significa lista de todo, todo los archivos y todos los directores, que tengo en el lugar que estoy. Así que si lo hago ls aquí, yo voy a ver que tengo algunos directorios. Tengo el escritorio, las descargas, los registros y los vhosts. Esos son en azul, ya que son todos los directorios. Entonces usted tiene algunos otros archivos. Tiene como hola y hello.c, que son sólo archivos, y están en diferentes colores. Así que este es un comando muy importante al igual se puede ver cuáles son los archivos y directorios que usted tiene en el directorio que usted está en el terminal. Cuando vea jharvard @ aparato y entonces el pequeño símbolo de allí, el tilde, eso sólo significa que esa es la directorio que usted está en este momento. LAUREN CARVALHO: Por tanto teclear ls es casi como hacer clic en la carpeta que aparece justo ahí, en la Muestra que todos los contenidos que son dentro de esa carpeta. AUDIENCIA: ¿Hay texto después de la hola.c? LAUREN CARVALHO: Oh, no puedes ver eso, porque es azul. LUCAS FREITAS: Dice registros y con dominios virtuales. LAUREN CARVALHO: Esos son sólo otras carpetas. Lo siento, es muy difícil de ver. Tal vez si apagamos las luces? Colton, ¿quieres probar y encontrar el interruptor de la luz? Lo siento por eso. Yo no pienso en ello. LUCAS FREITAS: Pero es básicamente - sí, si pudiera - LAUREN CARVALHO: Zoom en la pantalla. LUCAS FREITAS: no lo hago tienen esa característica. LAUREN CARVALHO: [inaudible]. Aceptar. Bueno, no hay más que un montón de los recursos naturales la luz en esta habitación. LUCAS FREITAS: Vamos a suponer que hay otros dos directorios allí. LAUREN CARVALHO: Sólo tener con nosotros. Esta es la única parte que usted va a se busca en la terminal. LUCAS FREITAS: El siguiente comando es básicamente, tal vez usted quiere organizar sus archivos - por ejemplo, todos los archivos de C en una directorio, pero usted no tiene un directorio sólo para C presenta todavía. Es, básicamente, puede crear un directorio utilizando el terminal, así, que es lo mismo que hacer clic derecho y diciendo en Nueva carpeta. El comando se crea directorio, que es mkdir, por lo que, básicamente, "hacer" y "Directorio". Y entonces usted puede poner el nombre del directorio. Digamos que yo quería ser llamado, Yo no sé, digamos pset1 Doing esto, me acaba de crear un directorio. Vamos a comprobar que está allí. Así que si lo hago ls, ahora veo los registros, y entonces pset1, y luego vhosts. Así que tengo el nuevo directorio existe. Y luego, después de tener un nuevo directorio, tal vez usted quiere navegar en ella, por lo que el siguiente comando este cd, que, básicamente, sólo significa ir a un directorio específico. Así que si quiero ir a pset1, Yo sólo puedo hacer pset1 cd. LAUREN CARVALHO: cd representa el cambio directorio, [inaudible] capaz de recordar eso. LUCAS FREITAS Y ahora se ve que en lugar de sólo tener jharvard aparato, he jharvard aparato, y luego pset1, porque está mostrando conmigo donde yo estoy en este equipo. Ahora si quiero volver a la directorio que era antes de esta, me puede hacer un punto punto cd, que sólo significa ir al directorio que lo que era antes, como el padre de esta directorio, básicamente. Y ahora veo que estoy de nuevo a jharvard. La siguiente cosa que yo puedo hacerlo es rm, que es eliminar un archivo. Por ejemplo, primero vamos a hacer ls para ver lo que tengo aquí. Tengo hola y hello.c. Digamos que quiero eliminarlos. Yo puedo hacer hola rm. Se va a decir "eliminar archivo regular hola? "Y yo digo" sí. "Y ahora, si me hacer ls, veo que se trata de No hay más. Si trato de usar rm para un directorio, sin embargo, no va dejar de hacer nada. Se va a decir, oye, no se puede eliminar un directorio. Así que tenemos esta otra vienen llamado rmdir, que simplemente significa básicamente eliminar el directorio. Puedo, por ejemplo, eliminar pset1. Y si lo hago ls, no lo hago tener más. ¿Una pregunta sobre esto? No? ¿Sí? AUDIENCIA: ¿Es importante que deje un espacio después - siempre que comience a escribir algo en? LUCAS FREITAS: Si. Si lo hago como el CD y el directorio, Tengo que poner un espacio. ¿Qué espacio estás hablando? LAUREN CARVALHO: El espacio entre cd y [inaudible]. LUCAS FREITAS: Sí, usted tendrá que poner los espacios porque cd es la comando, y luego la siguiente cadena que que tipo es básicamente el directorio. Así que es como un argumento. ¿Sí? AUDIENCIA: Cuando usted enumera, todos aquellos son directorios diferentes, ¿no? LUCAS FREITAS: Sí, están en el directorio. AUDIENCIA: ¿Cuál es la diferencia entre los directorios? LUCAS FREITAS: Son simplemente diferentes carpetas. Directorio es una carpeta en su ordenador. AUDIENCIA: Abrir carpeta. LUCAS FREITAS: Sí, es sólo una carpeta abierta. LAUREN CARVALHO: Por aquí, las que están en azul son reales directorios que usted puede conseguir en y a continuación, ver un montón de cosas que son dentro de ella, lo cual es lamentable porque no se puede leer la realidad los de color azul. Y los que están en blanco son sólo archivos que están dentro del directorio actual. LUCAS FREITAS: So directorios son carpetas. Los otros son archivos. AUDIENCIA: ¿Cuál es el comando para restablecerlo o para desactivarla? LUCAS FREITAS: Para borrar? LAUREN CARVALHO: Para borrar? LUCAS FREITAS: Creo que que es "claro". Sí. Entonces sólo tiene que teclear claro si la pantalla es demasiado desordenado. ¿Alguna otra pregunta? Y aprenderás un montón de otras comandos de manera natural durante el semestre porque son muy útiles. Así que ahora vamos a hablar de la compilación. Hablamos de pseudocódigo y código fuente y el código objeto. Y hay una gran cantidad de códigos, y tal vez ustedes están confundidos acerca de eso. Vamos a hablar un poco sobre lo que que sucede cuando estás escribiendo un programa, y compilarlo, y se convierte en un archivo ejecutable. Esas son todas las palabras que ustedes probablemente ha escuchado, y tal vez usted no está muy seguro de lo que está pasando. Digamos, por ejemplo, que quiero escribir un programa que dice "hola". La lo primero que viene a tu mente es que tipo de trata de pensar en cómo eres va a hacer eso en tu mente, y seguro que está pensando en Inglés o algún otro idioma, como naturales lenguaje, probablemente. Y entonces piensas, bueno, si quiero, por ejemplo, escribir un programa que dice "hola", me gustaría empezar un programa, Voy a imprimir hola y, a continuación, lo haré salir del programa. Este es pseudocódigo. Esto es, básicamente, sólo estás tratando de llegar a una secuencia de eventos que vas a hacer para ser capaz de escribir un programa. Entonces usted tiene el código fuente, y el código fuente no tiene que estar específicamente en C. Estamos hablando sobre el código fuente en C, porque eso es la lengua que estamos aprendiendo, pero por supuesto código puede ser casi cualquier lenguaje de programación que usted tiene. Más adelante en el semestre, vas para aprender otros idiomas. Ese es también el código fuente. Por ejemplo, aquí, esta es mi fuente código, y luego estoy incluyendo un biblioteca, y entonces empiezo principal, y luego imprimo. Y Laura se va a hablar un poco poco acerca de todo esto. Así que este es el código fuente. ¿Y cuál es el código de objeto? El objeto es un montón de ceros y otros, básicamente. Lo que pasa es que inicialmente tiene pseudocódigo, que es todo en Inglés. Y quiero decir, usted lo entiende. Probablemente tus amigos entienden , y la mayoría de la gente lo haría entender la idea. Pero las computadoras son muy tonto, y no entienden Inglés, por lo que han traducir eso en algo, generalmente traducido en algunos lenguaje de programación. Y se puede pensar en una programación el lenguaje como algo así como un lenguaje que informe a su equipo cómo de hablar y de entender. Básicamente, se está escribiendo algo en un lenguaje que ambos usted y su equipo entiende. Ese es el código fuente. Forma Así que va a la fuente de pseudocódigo código, le toca a usted. Se trata básicamente de que hacer su programa. Pero el problema es que el ordenador no incluso comprender el lenguaje de programación. No entiende código fuente en absoluto. En realidad, sólo entiende ceros y unos. Así que tenemos esta cosa muy mágica llamada un compilador, que es básicamente va a poner la fuente llamada que escribió en un idioma que tanto usted y su equipo hablan, y ahora tú eres va a transformar de que en ceros y unos. Así que básicamente lo que el compilador hace es se pone el código fuente, en este caso C, que va a la transforman en ceros y los que la computadora entiende y puede hacer una archivo ejecutable fuera de él. ¿Eso tiene sentido? Usted sólo puede pensar en el compilador como una especie de traductor que esté ayudar a explicar a la computadora exactamente lo que se supone que debe hacer. Pero ¿cómo puedo compilar. Volvamos al aparato, y digamos que estoy haciendo ese programa. En primer lugar voy a crear un directorio aquí, y yo voy a llamarlo "Práctica". Ahora me voy a navegar en el directorio, por lo que la práctica cd. Ahora estoy dentro de la práctica. Ahora quiero empezar gedit, así que ¿cómo lo hago? Yo tampoco puedo hacer clic aquí, o puedo simplemente literalmente escribir "gedit", y va abrir para mí. Ahora voy a escribir mi programa, por lo que exactamente lo que escribí en la diapositiva. Estoy declarando una biblioteca. Estoy haciendo int main, nula. Y ahora que estoy haciendo printf, hola. Ahora me voy a guardar esto. Déjame ponerlo en práctica, y Voy a llamar a este hello.c. Así que ahora se transforma en gol. Si quiero compilarlo, yo en realidad puede hacerlo en dos lugares diferentes. Ya sea que puedo hacerlo en una ventana de terminal, por lo que este grande, o puede utilizar gedit que tiene en realidad una ventana de terminal aquí. Así que usted puede hacer muy bien su código, y entonces usted puede escribir simplemente lo que sea aquí, y tratar de compilarlo. Entonces, ¿cómo puedo compilar código? La forma más sencilla que tenemos es mediante el uso de hacer, que es una función que básicamente se va a compilar el código. Sólo tienes que decir hola a hacer, por lo que "Hacer" y el nombre del programa. Lo sentimos. Esto es incómodo. LAUREN CARVALHO: Puede que [inaudible]? LUCAS FREITAS: Lo siento. Yo no la salvo a ella en el directorio correcto. Ven a la práctica, y ahora guardarlo como hello.c. Lo siento. Ahora ya se ha guardado. Permítanme hacer ls y ser Seguro que está aquí. Bien, ahora que está aquí. Así que ahora si lo hago hacer hola, escupe un montón de cosas, pero entonces, sólo se da me otra línea para la terminal, que significa que se ha realizado correctamente. Así que ahora si hago un ls de nuevo, en realidad ver este archivo en verde, que es el archivo ejecutable. Y entonces, si quiero correr, todos los que Que tengo que hacer es slash dot hola. Se va a saludar aquí, por lo que es exactamente lo que estoy pidiendo que lo haga. Hay una forma más de la compilación, que está usando sonido metálico. Clang es sólo un compilador que tenemos, y es un poco más detallado de compilarlo. Pero funciona igual de bien. Así que si lo hago ruido metálico, y luego-o, y luego el nombre que quiero dar a el archivo ejecutable, por lo que vamos a decir "Hola." Y a continuación, el archivo que quiero compilar, hello.c. También va a compilar. Y usted tiene el archivo aquí, y Yo sólo puedo ejecutarlo también. Así que ambos trabajan. ¿Eso tiene sentido? ¿Alguna pregunta? AUDIENCIA: ¿Puede ampliar dentro de un rato? LUCAS FREITAS: ¿Lo sientes? AUDIENCIA: Zoom in? LAUREN CARVALHO: Creo que sólo puede ordenar más. LUCAS FREITAS: Manda a qué? LAUREN CARVALHO: Comando plus. LUCAS FREITAS: No. LAUREN CARVALHO: Oh, eso no es ir a trabajar, porque - es porque hemos creado la resolución por esto. LUCAS FREITAS: no lo hago pensamos que podemos agrandar Sí, no podemos hacer zoom. ¿Tienes otra pregunta? Lo siento. AUDIENCIA: ¿Puede repetir sonido metálico? LUCAS FREITAS: El sonido metálico? Clang es lo mismo que hacer, pero el diferencia es que primero voy para escribir sonido metálico, que es el comando, entonces yo voy a hacer -0, todos, lo cual es justo lo que vamos a aprender más tarde como una bandera. Así que creo que siempre tienes que poner-o. Y a continuación, en primer lugar, usted va a poner el nombre del archivo ejecutable, básicamente el archivo que estás va a crear. Así que puedo decir, por ejemplo, hello2 y entonces el archivo que quiero recopilar, que es el archivo c.. Así que eso es hello.c. ¿Eso tiene sentido? AUDIENCIA: Hola, ¿qué? ¿Qué es eso? LUCAS FREITAS: hello.c. Y si puedo compilar, y si Yo ls, también tengo un hello2 que acaba de compilar. Y si trato de ejecutarlo, que va a hacer exactamente lo mismo que hola, sólo imprimir hola. AUDIENCIA: ¿Cómo es que para la marca usted puede poner hola.c después? LUCAS FREITAS: En la marca, que no tienen que poner el. c. En la marca, que acaba de decir el el nombre del programa. Usted no tiene que decir. C. Pero para clang, debería hacerlo. AUDIENCIA: Con sonido metálico hace también hay que añadir la [inaudible] LAUREN CARVALHO: Si. Así que usted también tiene a la biblioteca. LUCAS FREITAS: Sí, eso es algo vamos a utilizar más adelante. Eso se llama de enlace, y creo que estamos vamos a hablar de ello más tarde. Otra pregunta? AUDIENCIA: ¿Pones un sonido metálico slash dot? LUCAS FREITAS: No. La barra de puntos es sólo para abrir el archivo ejecutable. Así clang, que acaba de escribir "clang", y entonces el si quieres abrir el archivo ejecutable que acaba compilado, entonces usted dot tala y el nombre. ¿Eso tiene sentido? AUDIENCIA: Si se va a cambiar solo [Inaudible] para hola mundo, ¿verdad tener que recompilar? LUCAS FREITAS: Si. si quiero decir, por ejemplo, "hola allí, "Sólo se puede guardar ahora, y yo sólo compilarlo de nuevo. Así que déjame hacer un make hola. Y si lo hago hola, que va a decir "hola." Tiene sentido? ¿Alguna otra pregunta? AUDIENCIA: ¿Tiene que incluir la E / S estándar para coordinar el trabajo? LUCAS FREITAS: Si. La E / S estándar es básicamente la biblioteca que tiene un aplicación de printf. Así que lo correcto en el superior incluye stdio. Eso está incluyendo una biblioteca que básicamente, tiene un montón de diferentes herramientas que se pueden utilizar. uno? De ellos es printf es una función que básicamente impresiones mensajes en la pantalla. ¿Alguna otra pregunta? No? Aceptar. Así que ahora vamos a hablar de - LAUREN CARVALHO: Vamos a ir a la guía de estilo. ¿Quieres simplemente encontrar en esta lista? LUCAS FREITAS: Así que vamos para hablar de estilo. LAUREN CARVALHO: Oh, David no terminó. Aceptar. ¿Por qué no volvemos a estilo en el final? En realidad, ha sido actualizado mientras hablamos. LUCAS FREITAS: Si. Vamos camino a David para terminar eso. LAUREN CARVALHO: Lata cambiamos realmente? Así que espero que todo el mundo ha sido disfrutando de Scratch. Por desgracia, es el momento de alejarse de esto - por desgracia es el momento de alejarse a partir de estos bloques de programación bonitas a C. Pero por suerte, todo el construcciones de programación que usted tiene estado trabajando con Scratch son directamente traducible a C, y estamos va a comenzar a aprender acerca de algunos de ellos en este momento. Primero hablemos acerca de las condiciones en expresiones booleanas. Esto se está ejecutando en la reserva energía de la batería. LUCAS FREITAS: ¿Cómo es que no funciona? Aceptar. Uno va allí, voy a conseguir el - LAUREN CARVALHO: Así que las condiciones son importantes porque nos permiten introducir la lógica en nuestros programas. He aquí un ejemplo de una condición dentro de un programa en C. Notemos cómo este - Así que este bloque condiciones aquí, esta sentencia printf no se ejecutará a menos que la condición dentro de la paréntesis, n mayor que 0, evalúa en true. Ahora, todas las condiciones dentro de f declaraciones son expresiones booleanas, lo que significa que hay son sólo dos opciones. O bien podrían evaluarse como true, o que puedan evaluar en false. Así que aquí, así que esto tiene sentido, ¿verdad? n mayor que 0, significa que es un positivo número, lo que significa que se imprimirá out "que eligió un número positivo." Hay un montón de expresiones booleanas que puede formar la condición con una declaración init. Tenemos el menor que. Esto es menos que o igual a. Esto es sólo un divertido [inaudible]. Si desea que el printf que se produzca si se trata de mayor que o igual a 0, entonces usted elegiría esto. Así que la igualdad sólo anexa derecho después de que el signo mayor que. Igual Igual, que es diferente de sólo un signo de igual, igual igual en realidad significa que todo lo que de en el lado izquierdo de esta es el mismo que lo que hay en la parte derecha de esta donde uno signo igual es lo que? Lo que es sólo un signo igual? Asignación. LUCAS FREITAS: ¿Quién dijo eso? ¿Es que los dulces? Oh, no. Lo siento. Lo siento. Ambos dan caramelos. Oh, OK! Tres personas se caramelos! LAUREN CARVALHO: Así que esta de aquí es el operador de la explosión anterior el signo igual, por lo que es no es igual a. Así que si esto estaba dentro de mi condición, el cuerpo de la afección ejecutar sólo si lo está en la izquierda no es el mismo que lo que está a la derecha. También puedo tener sólo el signo de exclamación. En realidad vamos a ver en una característica deslice cómo esto podría ser utilizado. LUCAS FREITAS: ¿Alguna pregunta? No? LAUREN CARVALHO: Podemos combinar estos Expresiones booleanas para construir más sentencias condicionales complejas. Así que aquí, si lo que haya a la izquierda lado de la doble barra o lo que está en el lado derecho de doble barra y se evalúa como verdadera, a continuación, vamos a imprimir fuera válido. Y luego aquí abajo, si lo que sea que en el lado de la mano izquierda de los dos los símbolos de unión y lo que haya en el derecho lado de los dos símbolos de unión se evalúa como verdadera, entonces vamos a imprimir fuera válido. Las dobles barras se llaman la lógica Operador O los dobles son símbolos de unión llamado el operador lógico AND. ¿Sí? AUDIENCIA: ¿Esos son sólo minúsculas l's? LAUREN CARVALHO: No. En realidad, son - usted sabe la reacción, como por encima de la tecla de retorno? ¿Ves eso? LUCAS FREITAS: En realidad es un bar. LAUREN CARVALHO: En realidad es sólo dos bares. AUDIENCIA: ¿Se puede utilizar la igual igual para las cadenas? LUCAS FREITAS: No. Vamos a aprender más tarde algo al respecto. LAUREN CARVALHO: Hay una función que se puede utilizar. Pero usted no tiene que preocuparse de que por el momento. ¿Qué pasa si le doy a este programa el número 5? ¿Qué va a imprimir? AUDIENCIA: [inaudible] válida. LAUREN CARVALHO: Válido? Sí. Yo no sé quién puso eso. [Risas] LAUREN CARVALHO: Eso es algo de miedo [inaudible]. AUDIENCIA: Así que el matrimonio y, y eso sólo significa? LAUREN CARVALHO: Si. Así que el número 5 es a la vez una mayor que 0 y menor que 100. AUDIENCIA: ¿Por qué sería una? LAUREN CARVALHO: Un signo es en realidad algo diferente, y es un operador bit a bit, que usted aprender acerca de más adelante. Pero es algo que realmente funciona con los bits de un número dado. LUCAS FREITAS: Simplemente creo que no lo hacen tener que preocuparse por ello por ahora. LAUREN CARVALHO: Creo que es probable que sea que hasta la próxima semana. LUCAS FREITAS: ¿Alguna otra pregunta? No? LAUREN CARVALHO: Así hemos visto que un se bloquea puede estar solo, pero puede También se combina con y otra cuadra. Así pues, en este caso, si n es mayor que 0, nos vamos a imprimir "Usted elegido un número positivo. "else, que significa si es 0 o si es menos de 0, que vamos a imprimir, "Usted escogió un número negativo." Lo interesante aquí es que estos son excluyentes entre sí. Nunca va a ser un caso en el que este y este puede tanto imprimir. Estoy seguro de que usted trabajó con el if / else caja en Scratch, por lo que este debe ser bastante familiar. ¿Sí? AUDIENCIA: ¿Necesitamos el espacio entre int n es igual GetInt entonces el espacio en el if? Como utilizamos una línea [inaudible] LAUREN CARVALHO: Oh, el espacio de aquí? AUDIENCIA: Al igual que eso, pero el doble de espacio. No, ir para arriba. Suba. LUCAS FREITAS: Sólo la línea? AUDIENCIA: Si. LUCAS FREITAS: Sólo la línea en blanco? AUDIENCIA: Si. LAUREN CARVALHO: Línea en blanco? No. Eso es sólo una cosa de estilo. LUCAS FREITAS: Es igual que en ocasiones que acaba de saltarse algunas líneas de lo que el código no se ve como un enorme bloque de texto. LAUREN CARVALHO: Creo que lo que pasó era que teníamos un comentario aquí, pero me lo sacó para que ustedes tendrían pensar en el código en lugar que acaba de leer mi comentario. En general, el espacio no lo hará realmente afectar a la forma en que su programa se ejecuta. Es más una cosa de estilo. Y cuando tenemos la guía de estilo actualizado y listo para funcionar a finales de supersección, hablaremos sobre eso más. Hay algo mal con este programa, ¿no? Debido a 0 no es realmente un número negativo. Así que vamos a ver si podemos arreglar eso. Usted probablemente puede imaginar con esto, dice, ¿no? Si n es mayor que 0, imprimimos, "Usted elegido un número positivo. "Entonces lo demás si n es menor que 0, "Usted escogió una número negativo. "cosa" Elegiste 0. " Ahora lo interesante es que esto podría continuar para siempre. Usted puede tener un bloque if, else si bloque, otra cosa si el bloque, más si, else if, else if, else, básicamente como el tiempo que quieras. Y cuando se construyen de esta manera, de que todo va a ser excluyentes entre sí. ¿Sí? AUDIENCIA: ¿Entonces por qué no puedes utilizar otro, si en lugar de [inaudible]? LAUREN CARVALHO: En este caso, sí que podría utilizar otro si, y sería absolutamente bien porque la condiciones sí son excluyentes entre sí. Pero si las condiciones no eran exclusivos el uno del otro, esta haría obligarlos a evaluar nunca ambos, si eso tiene sentido. AUDIENCIA: En ese caso, podríamos nido el segundo, si en el primer caso? LAUREN CARVALHO: Si - ¿qué quieres decir? AUDIENCIA: Si las dos condiciones no son mutuamente excluyentes? LAUREN CARVALHO: Si las condiciones no son mutuamente excluyentes? Pero desea que sólo uno de ellos para correr? AUDIENCIA: Usted quiere que sólo si en lugar de otro. LAUREN CARVALHO: Si. No siempre van a ser muy de maneras que usted puede hacer esto. Usted puede venderlos definitivamente nido. Y verás en un portaobjetos de futuro que usted puede tener múltiples síes, sólo uno después de otra. Pero esta es una forma de lógica organizar el flujo de su programa. LUCAS FREITAS: Y hay una más cosa, es que se le preguntará acerca de poner si y luego otro si. Eso funcionaría perfectamente, pero es mala diseño, porque, básicamente, si marque el primer caso, y te das cuenta de que el número es mayor que 0, se simplemente puede terminar el programa. Usted no tiene que comprobar si es menor que 0, ¿no? Pero si si si, se va a comprobar ambos, mientras que si lo hago, si lo demás, es decir, que va a comprobar si que es mayor que 0. Si es así, no va a ver aún en el resto de líneas de código. Así que básicamente estás comprobando como dos veces innecesariamente, así que es por eso que hacer si else if. ¿Alguna otra pregunta? AUDIENCIA: Así que la funcionalidad de la persona si es lo mismo que si era sólo si? LAUREN CARVALHO: No. Usted está en realidad va a ver en mi próxima deslizar un ejemplo en el que puede ser diferente. En este caso, es casi lo mismo. Así que aquí tenemos un ejemplo de múltiples si las declaraciones, y la funcionalidad no es la misma como si yo hubiera dicho si otra cosa, si bien, si los demás. Vamos a pensar acerca de lo que imprima si entro en el número 95 en este programa. AUDIENCIA: [inaudible] LAUREN CARVALHO: ¿Y después? AUDIENCIA: [inaudible] LAUREN CARVALHO: Si. Así que en este caso, estas condiciones son no se excluyen mutuamente el uno del otro. Y porque no hay nada que esta condición de evaluar si esta uno ya tiene, sólo están Todo va a imprimir. Así que ¿cómo podría solucionar esto? AUDIENCIA: else pasaría? LAUREN CARVALHO: Puedes usar else síes. Pude cambiar el orden de ellos, ¿verdad? Si lo hiciera éste en primer lugar? Bueno, en realidad, no. Eso no funcionaría para el 95. LUCAS FREITAS: No, sólo los demás síes. LAUREN CARVALHO: La otra persona IFS habría arreglado este. ¿Eso aclarar la confusión entre síes y demás pasaría? AUDIENCIA: Sólo quería preguntarle, si usaste else if, que dejaría? LAUREN CARVALHO: Así es. Por lo que sólo esta primera. Si entraba en el número 95, sólo que esta habría impreso, y nunca habría progresado hasta el otro. LUCAS FREITAS: Just tipo de pensar como si esto sucede, haga lo siguiente. La otra es como si no, cheque para esto y, a continuación, hacer eso. Así como todos son mutuamente exclusiva. Usted no puede conseguir en dos sobre aquellos. AUDIENCIA: ¿Se puede utilizar una lógica Y para esa situación? LAUREN CARVALHO: Si. Esa es otra manera de que pudiéramos han solucionado este problema. Estamos podríamos haber definido rangos, ¿verdad? Así que yo podría haber dicho si n es mayor de 90 y menos de - bueno, supongo que éste en realidad no importa, pero aquí me podría haber dicho si n es mayor que 80 y menor que 90. Mayor que 70, menos de 80. Eso también han trabajado. [Risas] LUCAS FREITAS: Tiene miedo. LAUREN CARVALHO: No tenga miedo. LUCAS FREITAS: No es que va a ser malo. Es sólo que es innecesariamente verbose. Al igual que en la informática, se debe ser tan simple como sea posible, siempre y cuando usted tiene la funcionalidad. ¿Quieres que el caramelo? AUDIENCIA: No lo necesito. LAUREN CARVALHO: Estás asustando todo el mundo, Lucas. LUCAS FREITAS: Lo siento. LAUREN CARVALHO: David también se menciona éstos cambian declaración en clase. Básicamente lo que está pasando es el interruptor declaración toma una variable. En este caso, nos estamos tomando un entero. Si el entero es 1, vamos a imprimir "Usted escogió un pequeño número. "Si el entero es 1," Usted escogido un número medio ". Si el entero es 3, "Usted escogió un alto número. "Y yo también tenía un caso por defecto aquí abajo, pero no lo demuestra , lo cual es una lástima. Básicamente, esto es sólo otra sintaxis. Podríamos haber implementado esta exacta lo mismo con if y else declaraciones. Pero cuando hay un montón de diferentes condiciones y un montón de diferentes variaciones sobre lo que quiere hacer por cada entrada, esta es una opción. Así que es sólo una buena sintaxis saber. ¿Sí? AUDIENCIA: ¿Por qué no hay una barra invertida n en la primera? LAUREN CARVALHO: Por ahí arriba? No hay barra invertida n hasta allí porque el GetInt - si usted intenta esto, que va a darle este mensaje. Dame un número entero entre 1 y 3. Y si pongo la reacción n, lo haría llévame a la siguiente línea, pero yo sólo querían que escriba el número entero justo después de los dos puntos. Podrías haber puesto el contragolpe n. No es una gran cosa. ¿Sí? AUDIENCIA: Para que este código, es este caso de que uno, es que debido que es el primer caso? Porque - LAUREN CARVALHO: No, no, no. Así que esto me está dar un número entero entre 1 y 3. Si n es 1, puedo imprimir esto. Si hubiera pidió cartas, podría tener dijo dame una letra de la A y C. A continuación, este sería el caso A. AUDIENCIA: [inaudible]. El caso sería simplemente [inaudible] LAUREN CARVALHO: Sí, claro. ¿Sí? AUDIENCIA: ¿Y si quería tener más de una expresión relacional? Así que en lugar de decir n es igual a 1, [inaudible] n es mayor que 1 en el primer caso? LAUREN CARVALHO: En realidad, si no lo hago definir algunos de estos casos, esto haría puede llevar hacia abajo. Así que en realidad, tal vez esto no es lo que estás pidiendo. LUCAS FREITAS: Creo que se está preguntando si el caso era n mayor que 0, caso menos de 0. LAUREN CARVALHO: Tal vez el interruptor declaración no es realmente lo que quieres utilizar en ese caso. LUCAS FREITAS: La sentencia switch es sólo por valor, por lo que usted está comprobando de el valor es como esto o aquello. Por lo que no puede en realidad poner condiciones. AUDIENCIA: ¿Qué pasa si la persona tipos de [inaudible]? LAUREN CARVALHO: Eso habría sido mi caso por defecto, que por desgracia no se puede ver. LUCAS FREITAS: [inaudible] hacerles ver. LAUREN CARVALHO: En realidad, ¿sabes qué? Vamos a ir a estudiar 50, y lo haré sólo hacer un zoom en las diapositivas en estudio 50, ya que esta es sólo una molestia. Así que déjame en realidad voy a condición. Esto es sólo va a tomar un poco de tiempo. Está bien. Así que, lo siento. Por lo menos ahora vamos a ser capaces de ver todo sin que cortar. Está bien. Así que si te ponen en un 10, tendríamos por defecto aquí a mi caso por defecto, y yo sería simplemente imprimir inválida porque les pedirá que introduzca un número entero entre 1 y 3. ¿Alguna otra pregunta? ¿Sí? AUDIENCIA: Digamos que para el caso de uno, caso tres, que usted quisiera que fuera todo el lo mismo, por lo que tomó un número eso no es un número medio. En ese caso, ¿sería redundante? ¿Podrías cambiar el texto tanto en de ellos, o habría algunos redundancia? ¿Hay alguna manera de combinar [Inaudible]? LAUREN CARVALHO: Hay maneras de combinarlos, pero creo que se puede sólo combinar los adyacentes. Así que si no define nada para el caso de dos, esto haría aplicarse a ambos casos. ¡Oh, si yo no he puesto nada por caso una, esto se aplicaría tanto a caso de que uno y dos. Si eso tiene sentido. AUDIENCIA: ¿Puede repetir eso? LUCAS FREITAS: OK. Si lo hizo, básicamente, como, usted tiene la misma cosa, pero no te pones nada aquí, que sería ya sea para caso de que uno o dos casos, a hacer esto. ¿Cierto? Y esta ruptura significa que si usted consigue en este caso, acaba de salir. Así que eso es lo que significa el freno. Así que si lo acabo de hacer esto, se mira, es caso de que uno, y usted acaba de hacer esto. Si fuera el caso de dos, también lo haría acaba de llegar aquí y hacer eso. AUDIENCIA: Pero se puede hacer? Si hay algo para caso de dos [inaudible] LAUREN CARVALHO: No creo usted puede hacer eso. Creo que no se puede saltar alrededor. ¿Puedes hacer eso, Rob? No lo creo. AUDIENCIA: Así que sólo un número puede ir después de un caso, ¿verdad? No puede haber un caso, coma, dos? LUCAS FREITAS: No, no puedes. Definitivamente, usted no puede. LAUREN CARVALHO: Es decir, el punto es Esta es una opción, y esto no podría ajuste a su caso de uso, por lo que entonces utilizaría el caso de condiciones. AUDIENCIA: Entonces, ¿por qué haces esto? El switch? LAUREN CARVALHO: Me gustaría utilizar esta si tiene muy definido - En realidad, Lucas, se está bloqueando. LUCAS FREITAS: Oh, lo siento. LAUREN CARVALHO: Si usted tiene muy comportamientos definidos que desee para todos y cada uno de entrada, esto podría ser una poco más conciso que escribir una sentencia if para cada uno. AUDIENCIA: ¿Qué hace el break significar otra vez? LAUREN CARVALHO: La ruptura significa parar. Recuerde, si no tuviera esta ruptura aquí, habríamos caído justo en el siguiente caso. LUCAS FREITAS: Descanso significa llegar salir de la sentencia switch. Porque si es 1, quiero imprimir este e irse. No quiero que comprobar nada más. AUDIENCIA: Usted no quiere para imprimir otra cosa. LUCAS FREITAS: Si. Debido a que es mutuamente excluyente. AUDIENCIA: ¿Y esto sólo procede al siguiente caso si el primer caso no es cierto? ¿O probar todos los casos al mismo tiempo? LUCAS FREITAS: No, cheques de forma secuencial. Secuencialmente, sí. Una pregunta más, entonces tenemos que movemos para que podamos cubrir todo. ¿Sí? AUDIENCIA: Así que para el caso, podría tener hecho algo además de sólo el elegido? ¿Podría darle un rango? LUCAS FREITAS: No. LAUREN CARVALHO: No creo que usted puede darle un rango. LUCAS FREITAS: No puede usted no pueden darle un rango. AUDIENCIA: El caso es específico [Inaudible]. LUCAS FREITAS: Switch es una especie de valores. Usted haciendo cosas diferentes dependiendo en un valor, un valor específico. No se puede hacer rango, no se puede hacer otra cosa. Es simplemente una herramienta más para ver. LAUREN CARVALHO: La mayoría de la gente no utiliza cambiar declaraciones muy en CS50, pero está ahí. Está bien. Así que lo siguiente que vamos a hablar acerca es el operador ternario. Este es sólo otro tipo de condicional. Básicamente lo que está pasando aquí es que estoy pidiendo un número entero, y si n es superior a 100, voy a imprimir "Alto". Si no es así, voy a imprimir "baja". Así que lo que está haciendo es que la condición se aquí mismo en los paréntesis, y usted puede clase de pensar en la pregunta como estoy preguntando si esto es cierto o no. Si es verdad, que voy a hacer esto primero cosa, y si no es cierto, yo soy vamos a hacer esta segunda cosa. ¿Una pregunta sobre la operador ternario? LUCAS FREITAS: Sólo quiero señalar de David es que cada vez que tenga una condiciones - LAUREN CARVALHO: Supongo que el David de mirando a través de la transmisión en vivo. LUCAS FREITAS: Lo está haciendo la vida corriente en estos momentos. Así que cuando usted tiene una condición, usted es supone poner llaves, al igual que tenemos en un interruptor declaración aquí. Tenemos las llaves aquí. Para cualquier condición, eres supone también poner eso. LAUREN CARVALHO: Verá esto en el libro de estilo. En realidad no tenemos la guía de estilo en estos momentos. Creo que David aún está trabajando. LUCAS FREITAS: Dijo que es sólo trabajar ahora. LAUREN CARVALHO: Oh, ¿es trabajo ahora? Aceptar. Así que al parecer este año en el estilo guiar, incluso si sólo tiene una línea, tienes que poner los llaves pulg Usted no necesariamente tiene que para el funcionalidad del programa. Y tal vez deberíamos hacer un alto después de que las condiciones y van directamente a la guía de estilo para borrar algunas de estas cosas? LUCAS FREITAS: Si. ¿Tiene una pregunta? AUDIENCIA: No, voy a esperar hasta que la guía de estilo. AUDIENCIA: ¿Podría volver para el operador ternario? LAUREN CARVALHO: ternario, sí. LUCAS FREITAS: operador ternario es básicamente una sentencia if-else, pero en lugar de tener que tener las dos líneas de comprobar si, y entonces el otra cosa, sólo hay una línea. Así que, básicamente, si quiero dar una cadena un valor de alto o bajo, y yo querer hacer un alto si n es mayor que 100 o baja si es menor, lo que puedo hacer es esto [inaudible] la cadena va a ser, y luego me pide el programa es n mayor que 100? Así que por eso tengo esta expresión en paréntesis, y luego el signo de interrogación. Yo estoy pidiendo es mayor que 100? Si es así, que va a ser alta. Si no es así, va a ser baja. Así que básicamente lo que usted piensa es que usted pide una pregunta, así que usted pone en paréntesis la condición. Luego, coloque el signo de interrogación porque usted está pidiendo él. Y si esto es cierto, que va a ser en el primer valor de [inaudible] aquí. Si no es así, voy a poner el valor que es después de los dos puntos. ¿Tiene sentido? Es también algo que es como un herramienta en C pero usted no tiene que específicamente usarlo. Pero la gente por lo general les gusta que CS ya que sólo guarda líneas. LAUREN CARVALHO: Es muy elegante. Lo hace mucho en una sola declaración. AUDIENCIA: Así que el signo de porcentaje es simplemente independencia de los resultados en la línea anterior? LAUREN CARVALHO: Oh, lo siento. Este signo de porcentaje es en realidad un marcador de posición para este s. En un comunicado printf, tienes esta string aquí, que es lo que va a imprimir, pero no se puede simplemente puso este s allí. De lo contrario sería imprimir los s literalmente. Por eso, pusimos un porcentaje aquí para mantener este lugar se celebró por cualquier viene después de la coma. Así que para una cadena, tienes ciento s. Para un entero, ciento i. Para un flotador, ciento f. Verás aquellos como nosotros ver más ejemplos. Pero tal vez debería hablar de la guía de estilo para un rato, ahora que le toca. LUCAS FREITAS: Si usted va a cs50.net/style, usted va a ver la guía de estilo. Para los conjuntos de problemas, su puntaje para la conjunto de problemas se compone de alcance, lo que básicamente significa que si usted hizo todo las partes del problema establecidos o si intentado algo. La segunda cosa es la corrección, lo que medios es su programa haciendo lo que se suponía que iba a estar haciendo, o lo hace tienen errores, o es que no hacen lo que se supone que debe hacer. La tercera cosa es el diseño, lo que significa están implementando esta bien, o está que el uso de declaraciones innecesarias? Así por ejemplo, si desea repetir un número 10 veces, estás escribiendo un bucle o simplemente estás haciendo 10 veces la misma declaración, sólo haciendo copiar y pegar. Así que el diseño es para eso. Y, por último, usted tiene estilo. El estilo es como juzgar si su código es legible y tipo de bonito. Simplemente significa básicamente es su código legible? ¿Sería alguien que estaba buscando son su código sea capaz de entender lo que que está haciendo? ¿Tiene comentarios y similares? Vamos a hablar sobre el estilo que se supone que debes usar. Lo primero es los comentarios. Los comentarios son muy importantes para su código porque a veces que estás haciendo su programa, y ​​usted sabe exactamente lo que desea hacerlo usted acaba de empezar codificación, sólo tienes que escribir un montón de C. Pero si alguien está buscando es que usted está código, no van a ser capaces de entenderlo porque no saben las cosas que están en tu cabeza, como la pesudocode, así que tal vez lo harán tener dificultades para entender lo que hace el código. Así que los comentarios son realmente útiles para explicar para alguien que está mirando su código de lo que está haciendo, y En realidad, incluso para usted, que son muy útiles. Como vas a Boletines de problemas más difíciles y duros, usted va a ver que el código obtiene más largos y, a continuación, los comentarios son realmente importante para que recuerde lo que cada parte de tu programa hace. Para poner un comentario, puede simplemente hacer una slash slash y luego escribir un comentario. Y toda la línea es parte de un comentario, y todo lo que usted escribe, no va a ser utilizado para el código. Es básicamente como el compilador va a ignorar eso. ¿Eso tiene sentido? AUDIENCIA: ¿Qué se hace de nuevo para escribir un comentario? LUCAS FREITAS: ¿Esto? El slash slash? Cada vez que escribe slash slash, cualquiera que sea está en esa línea no va para ser considerado como C. Sí? AUDIENCIA: Así que después del comentario, sólo entrar y comenzar una nueva línea? LUCAS FREITAS: Sí, exactamente. LAUREN CARVALHO: El slash slash es para los comentarios de una sola línea. LUCAS FREITAS: Por ejemplo, aquí tenemos - déjame el zoom in - por ejemplo, aquí estoy declarando un flotador, pero tal vez si usted acaba de poner este en el código, como no tienes idea lo que esto está haciendo, como en realidad alguien que está buscando en este código va a ser, al igual que, lo que el diablos está pasando? Si pones un comentario diciendo "convertir Fahrenheit a Celsius, tiene mucho más sentido. Eres, como, OK, eres hacer una conversión. ¿Eso tiene sentido? Así que es algo que ayuda a las personas listo su código y también hacer usted será capaz de organizar su código mejor. La segunda cosa es que usted puede hacer comentarios de varias líneas, por lo que tienen una comentar para un montón de líneas. En lugar de tener que poner slash slash, las observaciones de primera línea, slash slash, la segunda línea, y así sucesivamente, puede utilizar la estrella slash. La forma en que usted lo hace es que para el primera línea del comentario, usted es vamos a hacer una estrella estrellas raya vertical, así como si nada. Al igual que aquí tenemos el comienzo de un programa, por lo general pone que usted son, lo que hace este programa, y cosas por el estilo. Es algo así como un encabezado para el programa. Una vez más, no es algo que un compilador va a preocuparse, pero es importante que usted sepa lo que esta programa hace o para otras personas saber lo que está haciendo su programa. Por lo que reduce radicalmente estrella estrella, y luego el última línea que vas a hacer estrellas recortar para poder cerrar ese comentario. Así que, básicamente, para el resto de las líneas, usted puede escribir lo que sea, y esto es todo lo que va a ser ignorado. Y también, al igual que el estilo, se ve que cada una de las líneas tiene una estrella, y todos las estrellas están alineadas. Estas son cosas importantes para que su código se ve bastante. Suena bien? Ahora, condiciones. Lo que David estaba diciendo que debemos de hecho poner en las diapositivas, es que cuando usted tiene cualquier tipo de sentencias if o cualquier tipo de condiciones, usted debe utilizar llaves para demostrar que esto es lo que iba a suceder cuando se tiene la condición. Técnicamente, cuando usted tiene una condición y luego la siguiente línea es sólo uno línea, usted no tiene técnicamente para poner las llaves. Básicamente el compilador entendería de todos modos como implícita. Pero para CS50, les pedimos a ustedes para poner las llaves sólo para que su código es más organizado y más legible. Debido a que el código se hace más largo si no tienen llaves y tal. Se pone muy desordenado. LAUREN CARVALHO: Esto es exactamente lo que David acaba de señalar en mis diapositivas anteriores. Definitivamente funciona sin el rizado llaves, pero por razones de estilo vamos a pedir que usted pone los pulg Y cuando empiezas a correr style50, que es una especie de la verificación de 50 de estilo, que le recordará que debe hacerlo. LUCAS FREITAS: Y otra cosa es recuerde poner las llaves junto en cada línea. Así lo hace, por ejemplo, l's. Ir a la siguiente línea, abra el rizado corsé, luego vas a la siguiente línea. Sangría, que es cuatro espacios. Luego de escribir lo que sea, y luego otro line, y cerrar la llave de cierre. Así que asegúrese de que tanto los rizada llaves están en distintas líneas. AUDIENCIA: Así que si este código tenía como 10 síes otra cosa, esto debe ser de 10 juegos de soportes? LUCAS FREITAS: Sí, para cada uno de ellos. Sí. Así que si, de lo contrario si, y así sucesivamente. AUDIENCIA: ¿Puede usted no presione Tab para sangrar? LUCAS FREITAS: Les estamos pidiendo chicos a usar cuatro espacios. Algunos editores de texto se traducen pestaña como cuatro espacios de forma automática. gedit no lo hace, así que tienes que hacer espacio espacio espacio espacio. Esto también es algo que algunos programadores sólo las pestañas, algunos programadores sólo los cuatro espacios, y algunas otras personas incluso hacen dos o tres espacios. Es sólo que aquí estamos pidiendo ustedes que hacer cuatro espacios. AUDIENCIA: No hay casi definitivamente tiene que haber una manera para que gedit automáticamente [inaudible]. Al igual que no [inaudible] lo hace. LUCAS FREITAS: Si. Creo que se puede ir a Configuración. AUDIENCIA: Ya hace todo eso. LUCAS FREITAS: Ya hace? Aceptar. Así que asegúrese de que usted tener cuatro espacios. AUDIENCIA: ¿Tenemos que poner el rizado paréntesis en los bucles así? LUCAS FREITAS: Si. LAUREN CARVALHO: Siempre que su encapsulando un bloque de código, sólo por favor use las llaves. Y antes de pensar que sólo somos ser muy rigurosos en esto por nada bueno razón, si a ustedes no vayan a obtener pasantías tecnología en las grandes empresas, que le dará una guía de estilo, y ellos le dirán que esto es lo que su código debe ser similar. Y a pesar de que aprendas a código como esto, tal vez en su pasantía tendrás que hacer algo completamente diferente. Ellos esperan que te conformas a su estilo. LUCAS FREITAS: Y una cosa más es que ¿Notas cómo tengo como x, espacio, menos, espacio, 0? Cada vez que tenga un operador - puede ser como más, menos, los tiempos, menos, mayor, sea cual sea el operador - tienes que poner un espacio en la izquierda y el derecho del operador. LAUREN CARVALHO: Esos son denominan operandos binarios. Sólo asegúrese de que siempre el espacio cabo sus operandos binarios. LUCAS FREITAS: Este es no por un operador binario. LAUREN CARVALHO: Eso es porque toma dos. LUCAS FREITAS: Oh, sí. Aceptar, los switches. En primer lugar, hay que ver que al igual que en una sentencia if o else, usted tiene poner la llave de su propia línea y debajo de la llave de aquí. Observe que hay un espacio único tras la conexión, al igual que en if y else teníamos un solo espacio entre eso y los paréntesis. Así que hay que poner eso. Y no hay ningún espacio después de cada de los paréntesis o antes del final de los paréntesis. Así que ya ves que es todo junto, y también les gusta aquí. ¿Sí? LAUREN CARVALHO: Creo que tenemos que seguir adelante. LUCAS FREITAS: Así que esto es parte de la guía de estilo que usted tiene para el CS50. Asegúrese de ir a cs50.net/style y echar un vistazo a esto. Estos son todos muy importantes para su calificación de estilo. Permítanme volver a la declaración. LAUREN CARVALHO: Prefiero sólo tiene que utilizar style50. Sólo vamos a ir directamente a los bucles. Está bien. Así que vamos a volver a los contenidos, ahora que hemos pasado en el libro de estilo. Loops, Usted los ha visto en Scratch, y vamos a hablar de ellos en C. En un bucle, hay tres porciones a la declaración de este bucle. Usted tiene su inicialización en que establece sus variables. Tienes tu condición, que son la comprobación para ver si algo es verdadera o falsa, y si el bucle debe continuar. Y usted tiene su actualización, que es la actualización de las variables. Vamos a echar un vistazo rápido a algunos Código C de este bucle en acción. Lo que pasa es que aquí en el inicialización, estamos estableciendo i a 0. En la condición que estamos comprobando si i es menor que 10. Y en la actualización que estamos incrementando i. Entonces, ¿cuál será el resultado de este bucle? LUCAS FREITAS: En realidad, en primer lugar, ¿Sabes lo que los chicos i + + es? AUDIENCIA: Aumento en 1. LUCAS FREITAS: Aumento de 1, sí. Así que esto es lo mismo que haciendo i i + 1 es igual. Y darse cuenta de que no tenemos un espacio entre el yo y el + +. Así que sí sabemos es que ustedes lo que esto va a hacer? ¿Puede alguien decirme? Y tal vez obtener un poco de caramelo por eso? AUDIENCIA: [inaudible] LUCAS FREITAS: OK. [Inaudible] mostrar a todos más tarde [inaudible]. Sí, se va a mostrar "Este CS50 es "10 veces. LAUREN CARVALHO: Supongo que fue en el título de la diapositiva. LUCAS FREITAS: Oh, sí. [Risas] LUCAS FREITAS: Eso ayuda. LAUREN CARVALHO: Así que aquellos son para los bucles. Vamos a ver algunos ejemplos más por lazos más adelante. Pero vamos realmente a echar un vistazo a la segundo tipo de bucle te vas a encontrar en C, y se llama el bucle while. En un bucle while, que haya acaba de conseguir una condición. La condición se comprueba en el a partir, y si esa condición se evalúa como verdadera, entonces el código dentro de el cuerpo del bloque mientras se ejecutará. Y el código seguirá ejecutar, siempre y cuando que condición sigue siendo cierto. He aquí un ejemplo de un bucle while en C. Vamos a configurar la cuenta de 10 a empezar. Mientras contador es mayor que 0, vamos a seguir imprimiendo a cabo esta variable de aquí. Vamos a disminuir el recuento y a continuación, comprobar el estado de nuevo. Imprimir, decremento, cheque la condición de nuevo. Aquí tenemos un ejemplo que se refiere a su pregunta anterior. Teníamos el porcentaje s cuando éramos impresión de una cadena, y ahora que estamos imprimiendo un int, tenemos una ciento I como marcador de posición en lugar nuestro. Todas las letras debe ser bastante intuitiva, S para cadena, i para int. Así que si se ejecuta este código, debe una cuenta regresiva de 10 a 0, la impresión de cada entero. LUCAS FREITAS: Y se puede pensar en el por ciento, ya que se siente como un espacio en blanco espacio, a continuación, usted está poniendo este variable de aquí en ese espacio en blanco. Así, por ejemplo, aquí voy a tener sólo un espacio en blanco, y luego me voy a poner la contar allí mismo, el valor de la cuenta. ¿Eso tiene sentido? ¿Puedo simplemente hacer como printf y luego cita, cuente? ¿Funcionaría? AUDIENCIA: No. LUCAS FREITAS: No, porque lo hará de hecho imprimir la palabra "cuenta" en lugar de imprimir el valor. Esta es la forma de hacer que imprima los valores hacia la variable en lugar de sólo el nombre de la variable. ¿Alguna pregunta? AUDIENCIA: ¿Por qué usan para como opuesta a tiempo? LAUREN CARVALHO: Me gustaría utilizar una de bucle si sé exactamente cuántos iteraciones que quiero mi bucle se ejecute. En este caso, no tiene importancia, ya que, Quiero decir, yo sólo estaba tratando de pensar en una muy simple ejemplo para esta diapositiva. Pero digamos que usted quiere algo para seguir adelante, mientras que - LUCAS FREITAS: Por ejemplo, usted es pidiendo de entrada hasta que la persona le da la entrada derecha. Así que, como mientras que la entrada no es Aceptar, seguir preguntando por él. O como durante sus padres no se dan dinero, seguir preguntando por él. [Risas] LAUREN CARVALHO: Usted no sabe cómo muchas veces tendrás que hacerlo. LUCAS FREITAS: Porque no lo hace sé cuántas veces eso es va a seguir adelante. LAUREN CARVALHO: Pero en un bucle, usted necesita saber cómo muchas veces. ¿Sí? AUDIENCIA: Solo para aclarar, el porcentaje dice que esto es algo a punto de suceder, sobre las íes para la parte entera, y la barra invertida n - LAUREN CARVALHO: Medios? ¿Quién sabe lo que significa la barra invertida n? Nueva línea, sí. Exactamente. LUCAS FREITAS: Usted puede pensar de n como nueva línea. LAUREN CARVALHO: Nice. AUDIENCIA: ¿Qué es lo que cuenta tablero tablero [inaudible]? LUCAS FREITAS: Count minus minus es lo mismo que el plus plus, pero en vez de aumentar, está disminuyendo en 1. LAUREN CARVALHO: Cualquier más mientras que las cuestiones de bucle? No? Oh, que se suponía que han saltado que. Se trata de un bucle do while. Muy similar a un bucle while excepto en este caso, comprobamos la condición después de el código en el cuerpo de la bucle se ejecuta una vez. Así que ejecutamos el código primero no importa qué. Entonces comprobamos la condición, ejecutar de nuevo si la condición es verdadera. Usted se encontrará usando esto cuando usted está pidiendo la entrada del usuario. Debido a que siempre vas a tener que pedir una vez, y luego en función de lo la entrada del usuario es, puede que tenga que Nueva solicitud y pedir una y otra vez si la entrada no era lo que esperaba que fuera. AUDIENCIA: Así que es como una forma para que la gente llene. LAUREN CARVALHO: Sí, exactamente. Usted encontrará, creo, en su primera Juego de parámetros, usted va a tener que utilizar un bucle así hacer para cobrar entrada del usuario. AUDIENCIA: Dependiendo de la situación, sus ciclos while tenderán a funcionar con más a menudo que los bucles while, como por uno o algo así? LAUREN CARVALHO: Si es la exacta - LUCAS FREITAS: Siempre deben ejecutar el importe exacto de veces que quiere que se ejecute. Como usamos hacer mientras porque realmente quería conseguir la entrada al menos una vez. En ciclos while, a veces no quieres para ejecutarlo en absoluto si no es el caso de ejecutar. Por lo tanto, depende del diseño. Quiero decir, usted puede hacerlo ya sea para uso o mientras mientras que el tiempo que el código hace que se supone que debe hacer. LAUREN CARVALHO: Pero yo sí pensar en la respuesta a su pregunta es probablemente sí. Digamos que la condición es falsa. En un caso se correría una vez, y otro caso se correría cero veces. Así que, sí. ¿Alguna pregunta más? ¿Sí? AUDIENCIA: ¿Puede la condición de bucle es una bucle en términos de una otra variable que [inaudible]. LAUREN CARVALHO: Sí, puede ser cualquier cosa. Probablemente para los Boletines de problemas iniciales, que no tendrá que encontrar ese caso, pero Definitivamente puede ser cualquier cosa. LUCAS FREITAS: Creo que que hemos terminado aquí. LAUREN CARVALHO: ¿Estamos? No? LUCAS FREITAS: Loops? Sí. LAUREN CARVALHO: No debemos ser. Oh, hemos terminado con bucles. Aceptar. En realidad, ya hemos estado hablando de manera tanto, vamos a navegar en realidad todo a study.cs50.net/conditions. Y vas a navegar hacia abajo para el widget de problemas. Bueno, en realidad, mientras que la gente se está esta configuración, el Estudio CS50 es va a ser una herramienta que tus TFS usar para preparar secciones y que ustedes pueden usar si se olvida de secciones. Se va a contener un montón de diapositivas, algunos consejos y trucos para cada tema, y ​​algunos problemas de práctica con soluciones. ¿Por qué no todo el mundo acaba de echar un vistazo en este problema aquí. Lo siento, debí haber recordado personas para llevar las computadoras portátiles de hoy. Pero si usted no tiene un ordenador portátil, que está bien. Usted sólo puede apuntar esta abajo en una pedazo de papel o mirar por encima de el hombro de su vecino. Vamos a tratar de escribir un programa que solicita al usuario que tome una conjetura, la número medio de hijos por familia unidad en los Estados Unidos. Ese número es 2, por cierto, a medida que puede ver en estos ejemplos. Queremos imprimir el número promedio de hijos por familia en los EE.UU., entonces quiere qué? Queremos recoger la entrada desde el usuario. Y a continuación, dependiendo de lo que el usuario de entrada es, usted va a imprimir bien esto es correcto o esto es incorrecto. Y la primera cosa que usted va a ver, si hace clic en la pequeña flecha en la parte inferior del widget problema es un detectar para anotar algunos pseudocódigo. Así que no estás programando todavía. No eres más que conseguir su ideas en orden. ¿Alguien quiere ayudar a Lucas llegar a la derecha pseudocódigo para este problema? LUCAS FREITAS: ¿Qué es lo primero que probablemente deberíamos hacer aquí? ¿Qué piensan ustedes? AUDIENCIA: [inaudible] LUCAS FREITAS: Sí, está bien. Así, imprimir. Sólo di la impresión de este promedio número de personas? Aceptar. Imprimir pregunta, digamos. Después imprimo esta pregunta, ¿qué debo hacer? AUDIENCIA: Obtener el aporte. LUCAS FREITAS: Obtener entrada. ¿Algo más? AUDIENCIA: Condición. LUCAS FREITAS: Condición. LAUREN CARVALHO: ¿Qué es eso condiciones va a ser? AUDIENCIA: El número de [inaudible]. LAUREN CARVALHO: Así es. LUCAS FREITAS: Entonces, ¿qué voy para comprobar en el estado? AUDIENCIA: Si es igual a 2. LAUREN CARVALHO: Si es igual a 2. Exactamente. LUCAS FREITAS: ¿Hay algo más que deba hacer? AUDIENCIA: Count. LUCAS FREITAS: Así que si es igual a 2, vamos a decir - permítanme escribir si es igual a la entrada a 2, entonces lo que voy hacer es impresión correcto. Y luego otra cosa, voy imprimir correctos. ¿Algo más? No? LAUREN CARVALHO: Así que usted puede hacer clic en el - Por qué todos tienen esto abajo? LUCAS FREITAS: ¿Tiene sentido? Así que ahora vamos a tratar de codificar esta. LAUREN CARVALHO: Si hace clic en el pequeño flecha, que en realidad guarda su pseudocódigo, que es realmente emocionante. Y usted puede hacer en los comentarios si que quieres es simplemente para recordar lo que debe hacer. LUCAS FREITAS: Así, por ejemplo, primero Voy a imprimir la pregunta, así ¿cómo voy a hacer eso, en realidad? printf. Así printf, y la pregunta es la media número de hijos por familia en los EE.UU.. Entonces me voy a poner entrada del usuario. Entonces, ¿cómo puedo hacer eso? AUDIENCIA: Obtener Int.. LAUREN CARVALHO: GetInt. LUCAS FREITAS: OK. Así que primero declarar, ¿verdad? int, llamémosle n es igual GetInt. Y ahora la condición. Así que déjenme decirles que me voy a aquí Respuesta. Así que primero, si la entrada, que es n, es igual a a - ¿cómo voy a escribir eso? AUDIENCIA: Igualdad iguales. LUCAS FREITAS: Perfect. Entonces n. Y noto que me hago un espacio, iguales, iguales, espacio, cierto. Y ahora ¿qué debo hacer? Algo muy importante para el estilo. Las llaves. Y luego voy a imprimir. ¿Cómo se imprime? printf. AUDIENCIA: ¿Podría ser mayúscula? LUCAS FREITAS: No. Se supone que debe estar en minúsculas. Así que eso es correcto. Bastaría esto para el printf declaración, o me estoy perdiendo algo? AUDIENCIA: Nueva línea. LUCAS FREITAS: Nueva línea, sí. Y ahora más. AUDIENCIA: ¿Existe un espacio después de que el printf, o no? LAUREN CARVALHO: Deberíamos consultar la guía de estilo. AUDIENCIA: No debería ser. LUCAS FREITAS: ¿No debería ser, en Aceptar. Así que otra cosa, printf, "Eso no es correcto." LAUREN CARVALHO: Vaya, sus cotizaciones. LUCAS FREITAS: OK. ¿Algo más? ¿Te parece bien? LAUREN CARVALHO: Lo intentamos? LUCAS FREITAS: Sí, vamos a ejecutarlo. Así que es la compilación, y Parece que funciona. Vamos a tratar de dos hijos. Eso es correcto. Y ahora vamos a correr de nuevo, pero ahora en lugar de poner dos hijos, vamos a decir que me voy a poner como cinco. Eso es incorrecto. Así que parece que funciona. LAUREN CARVALHO: ¿Por qué no les muestras qué pasa si pones algo raro, como algunas letras. LUCAS FREITAS: Oh, sí. También vamos a comprobar que. ¿Qué pasa si el usuario está tratando de meterse con su programa, y ​​que sólo escribir, no sé dos. Va a decir reintento. LAUREN CARVALHO: Así GetInt les está pidiendo que vuelva a intentarlo. No teníamos que cuidar de que nosotros mismos. LUCAS FREITAS: Si. Así que a menos que realmente poner un número, que es va a seguir pidiendo que vuelva a intentarlo. AUDIENCIA: ¿Cómo se ejecuta? LUCAS FREITAS: Basta con hacer clic este botón de estrella. LAUREN CARVALHO: Usted debe subir. Ahí lo tienes. LUCAS FREITAS: La estrella botón derecho allí. ¿Sí? AUDIENCIA: ¿Se pedirá [inaudible] con números decimales también? LAUREN CARVALHO: Yo creo que sí. LUCAS FREITAS: Si es así, ¿qué? LAUREN CARVALHO: Si se escriba en un número decimal, creo que va a solicitar. LUCAS FREITAS: Veamos. LAUREN CARVALHO: Porque no es un int. LUCAS FREITAS: Si. LAUREN CARVALHO: ¿Así que no es un int, Obtenga Int. le pedirá que vuelva a intentarlo. AUDIENCIA: Entonces, ¿dónde en ese código sería el decimal que pide al de usuario que tienen que entrar un número entero específicamente? LAUREN CARVALHO: GetInt es en realidad hacer eso por nosotros. AUDIENCIA: No, quiero decir que si queríamos para acceder a [inaudible] LUCAS FREITAS: Puede decir como promedio número de niños en los EE.UU.. No se. Podemos decir, por ejemplo ", por favor de entrada un número entero ". LAUREN CARVALHO: Un número entero igual al número medio. Quiero decir, es sólo la forma en lo palabra, ¿verdad? LUCAS FREITAS: Si. Esto no es parte de la realidad de codificación. Es más bien como lo que usted va a querer escribir en su programa. AUDIENCIA: ¿Cómo nos hemos ejecutarlo si estaba realmente en gedit [inaudible]. En lugar de presionar el juego? LUCAS FREITAS: Enviaremos primero compilarlo. Podemos hacerlo haciendo maquillaje y el nombre del archivo. Y después de ejecutarlo, lo haremos slash dot y el nombre del programa. AUDIENCIA: Creo que lo que quería decir era si queríamos que el programa para responder a su, entrada inválida incorrecta, usted no debe poner en - LUCAS FREITAS: No vamos a ser capaces de hacer eso porque el código que dice reintentar proviene de Get Int que es un la función que ya se implementa para nosotros a través de la biblioteca CS50, y desde que ya ha implementado allí, puede no sólo [inaudible]. LAUREN CARVALHO: Si usted no usa GetInt, entonces usted puede hacer eso. LUCAS FREITAS: Si. Pero si usted está usando GetInt, no se puede. ¿Alguna otra pregunta? AUDIENCIA: ¿Podrías haber ido con igual GetFloat y luego ser capaz de poner en un decimal? LUCAS FREITAS: Si. AUDIENCIA: OK. A continuación, sólo puede ingresar flotar A es igual a - LAUREN CARVALHO: Si. Exactamente lo mismo, excepto una flotar en lugar de un int. LUCAS FREITAS: Sólo hay que poner aquí y luego GetFloat allí. AUDIENCIA: Como quieras ver o han visto - LAUREN CARVALHO: tenemos no llegado allí todavía. AUDIENCIA: - haciendo la desigualdad con flotadores no no [inaudible] AUDIENCIA: ¿Qué significan los puntos y comas? LAUREN CARVALHO: El punto y coma sólo significa que esta afirmación es completa, y vamos a ir a la siguiente diapositiva. AUDIENCIA: Por lo que es necesario cada vez? LAUREN CARVALHO: Si. Bueno, está bien, por lo que no fuera por estas condiciones, porque son encapsulando algo. Así que, básicamente, si algo está causando a continuación, crear una llave bloque, no ponga un punto y coma al final. LUCAS FREITAS: Pero todo demás, sí. Cuando termine de un comunicado, poner el punto y coma. Y si se le olvida un punto y coma, la compilador va a enojarse con usted, y usted va a tener para tratar de arreglarlo. LAUREN CARVALHO: Si pongo un punto y coma aquí, eso sería detener esto, y yo nunca llegar a ejecutar lo que es en el interior, por cierto. Así que es uno de esos errores comunes. AUDIENCIA: Siempre ejecución. LAUREN CARVALHO: Si. En este caso, siempre lo haría ejecutar lo que hay dentro. AUDIENCIA: Su estilo de [inaudible] fijar eso para usted, el pensamiento. LAUREN CARVALHO: Oh, eso es cierto. AUDIENCIA: [inaudible] sola Lo line [inaudible] AUDIENCIA: Sí? AUDIENCIA: ¿Se puede tener múltiples insumos en una línea? Así como se puede pedir a los usuarios imprimir dos cosas? LAUREN CARVALHO: no se utiliza - LUCAS FREITAS: No. Digamos que también quiero para obtener este número entero m. Tengo que hacerlo en una línea diferente. AUDIENCIA: Si se va a ejecutar eso, ¿cómo [inaudible]? Se imprimirá el símbolo hay [inaudible] y entonces lo que entra en uno y - LAUREN CARVALHO: Bueno, lo dirige. Quiero decir, no hay nada que nos impida simplemente ejecutarlo y ver lo que pasaría. LUCAS FREITAS: Creo que es va a se queja de nosotros porque no estamos usando - LAUREN CARVALHO: Vaya. LUCAS FREITAS: Se quejó a nosotros en este ahora porque no estamos usando este variable, pero si lo hiciera, por ejemplo, n es igual a es igual a y m es igual a es igual a, entonces, ¿qué pasar en este caso? ¿Qué iba a hacer este programa? AUDIENCIA: Me pregunto la forma en que lo haría - LAUREN CARVALHO: Ella sólo quiere saber cómo se ve como, creo, ¿no? Así que tomó uno de ellos, y luego se tomó la segunda. Creo que deberíamos seguir adelante, porque tenemos una más presentación de diapositivas que recorrer antes - Qué quieres tirar de las matemáticas? LUCAS FREITAS: Sí, las matemáticas. LAUREN CARVALHO: Dar yo tan sólo un segundo. Hay una numérica pocos diferentes variables en C. Datos Numéricos en C se pueden clasificar en diferentes tipos, y estos son los que estará ver la mayoría de las veces. Y int es un número entero. Usted no puede tener ningún decimales. En el aparato, que se necesita 32 bits para almacenar un int. Un flotador puede tener decimales. También tiene 32 bits para almacenar un flotador en el Appliance. Un doble es un número con un decimal punto que se lleva a 64 bits para almacenarlo, lo que significa que usted puede tener mayor precisión porque usted puede tener más - ¿cómo se llama eso? LUCAS FREITAS: Sí, eso es más. LAUREN CARVALHO: más lugares después del punto decimal. Y mucho, mucho es un número entero que tiene 64 bits a que dolor en el aparato. LUCAS FREITAS: Así que puede ser más grande que puede ser enteros. LAUREN CARVALHO: Lo que pasa con los datos tipos en C es que te dicen lo que tipo de datos que puede almacenar en la variable. Ellos te dicen cómo se puede utilizar esta variable en su programa. Es muy importante que acaba de realizar un seguimiento de qué tipo de datos que está usando, y si usted tiene que lanzar desde un tipo de datos a otro, asegúrese de que usted sabe exactamente lo que sucede cuando esa fundición tiene lugar. Y verás un ejemplo más adelante en estas diapositivas de un error que puede ocurrir. Echemos un vistazo a algunos de matemáticas en C y pensar con mucho cuidado, supongo, acerca de lo que está pasando cuando este matemáticas está teniendo lugar. En la primera línea, lo que es sucediendo cuando yo declaro x? AUDIENCIA: Usted está permitiendo x ser algo? LAUREN CARVALHO: Si. Bueno, realmente estoy pidiendo a la operación sistema de 32 bits de memoria, ¿verdad? ¿En qué puedo almacenar un int, y Voy a llamar a ese int x. LUCAS FREITAS: ir Básicamente en la memoria y la búsqueda de un lugar que tiene 32 bits y dicho, oye, quiero este espacio, y que va a ser llamado x. Así que no eres más que bastante hallazgo una caja en su memoria para almacenar valores para x. LAUREN CARVALHO: Y entonces puedo inicializar x, lo que significa que simplemente almacenar el valor de 2 en ese lugar, ese pedazo de la memoria, que pedimos operativo sistema para. Y hasta aquí lo que estamos haciendo es en realidad estamos declarando y inicializar y en una línea en lugar de en dos líneas como lo hicimos aquí, que también es un perfectamente bien, estamos la adición de 1 a x, y estamos almacenando que valor en y. LUCAS FREITAS: Así que básicamente lo que esto línea hace, encuentra ahora un cuadro para y, y entonces su valor, lo que usted va a poner dentro de la caja, es va a ser el valor de x más 1. Por lo que tiene esta caja para y. Se obtiene el valor de x, se ve aquí, y ver que es 2. Ponlo ahí, más 1, por lo que pone un 3 allí. ¿Eso tiene sentido? Por lo tanto y sería 2 en este caso. LAUREN CARVALHO: Muy bien, fresco. Vimos alguna adición, así que vamos a pensar ahora sobre la división en C. Aquí estoy declaración e iniciación de un flotador llamada respuesta y dividiendo 1 por 10, y entonces yo estoy imprimiendo la respuesta con dos decimales. Y tenga en cuenta que aquí, en mi declaración printf, cuando quiero imprimir algo a dos decimales,% .2 f es lo que yo quiero usar. Así que el punto 2 es sólo decir Necesito dos lugares después de la decimal imprime. Ahora, ¿qué va a pasar si ejecuto este código? ¿Alguien tiene una idea? ¿Qué haría imprimir? LUCAS FREITAS: ¿Cuáles son que esperaba conseguir. LAUREN CARVALHO: Qué hacer queremos, en primer lugar? LUCAS FREITAS: [inaudible] LAUREN CARVALHO: 0.1, sí. Pero, ¿qué va a imprimir? AUDIENCIA: [inaudible] LAUREN CARVALHO: Bueno, no, en realidad. Esto es lo que yo estaba hablando acerca de por qué que hacer un seguimiento muy cuidadoso de sus tipos de datos. Entonces, ¿qué tipo de datos es esto? Es un int, ¿verdad? No hay lugar decimal. 10 es también un int. No hay lugar decimal. Si divido un int por un int, me sale un int que no es 0.1, porque enteros no puede tener decimales, pero sólo 0. Debido a un int simplemente trunca de los decimales. LUCAS FREITAS: Así que cada vez que haces operaciones con enteros, se van a conseguir un int como la respuesta. Así que, básicamente, lo que la computadora está haciendo, es divide 1 por 10, y que llega a 0,1. Pero entonces es como, espera, esto es se supone que es un número entero, por lo que sólo ignorar el 0,1, por lo que es ahora sólo 0. LAUREN CARVALHO: Así que cuando imprimo esta fuera, me sale 0,00 en lugar de 0,10. LUCAS FREITAS: ¿Eso tiene sentido? LAUREN CARVALHO: Eso es algo de lamentable, ¿no? LUCAS FREITAS: ¿Cómo podemos solucionar este problema? LAUREN CARVALHO: Vamos a tratar de arreglar eso. He aquí un ejemplo de donde soy realmente lanzar el 1 y el 10 para los flotadores. Así que ahora, 1 ya no es un int. 1 es un flotador. Por cierto, esto es sólo la sintaxis para cuando se desea lanzar desde un tipo de datos a otro. Usted sólo puede poner el tipo de datos en paréntesis y tener que acaba de preceder el valor que se está echando. Así que aquí, estoy dividiendo un flotador por un flotador para obtener una respuesta de flotación. Y sí, esto sería en hecho de imprimir 0.10. ¿Eso tiene sentido? LUCAS FREITAS: Así que la conversión de tipos es sólo la conversión de un tipo a otro. Así que flotan 1 es en realidad 1.000. No es exactamente esto, pero es algo con decimales que en realidad es 1. ¿Eso tiene sentido? ¿Sí? AUDIENCIA: ¿Qué pasa si usted hizo respuesta flotador es igual a 1,0 dividido por 10? LAUREN CARVALHO: En realidad estás pasando ver que en la siguiente diapositiva. Eso es en realidad nuestra siguiente diapositiva. Esto es realmente un mejor que la conversión de tipos, creo. Así que estos dos son los flotadores con sólo naturaleza del hecho de que se tener cifras decimales. ¿Sí? AUDIENCIA: ¿Qué pasa si usted tenía [inaudible] dividido por 10? LAUREN CARVALHO: En realidad un flotador dividido por un entero en realidad le da un flotar, por lo que iba a funcionar bien. Espera, ¿todo el mundo entiende esto? Debido a que esta va a ser una realidad gran cosa en Pset1, en realidad. ¿Sí? AUDIENCIA: ¿Podría usted acaba rápidamente repasar la parte roja? LAUREN CARVALHO: La parte roja, sí. Lucas, ¿quieres? LUCAS FREITAS: OK. Así que recuerde que el porcentaje es un marcador de posición. Es como un espacio en blanco. Así que vamos a tratar de entender todo lo que que está pasando aquí. Por ciento significa que es un marcador de posición. Entonces usted tiene la f, lo que significa que Este marcador de posición es para un flotador. La última cosa que tenemos aquí es una 0.2, lo que significa que quiero tener dos decimales para el flotador. Si sólo tuviera% f, que se pondrán un montón de lugares decimales. Así que sólo puedo poner 0,2 o 0,1 o 0,5 o lo que sea, y que va a poner eso número de decimales. La única cosa es que si se pone como 0.100 o .1,000, no es en realidad va a poner todas esas cifras decimales debido a que no tiene suficiente memoria tener esa precisión. ¿Alguna otra pregunta? ¿Sí? AUDIENCIA: Así flotar apenas permite que vaya más allá de los números enteros? LUCAS FREITAS: Si. LAUREN CARVALHO: Bueno, un flotador justo le permite tener cifras decimales. LUCAS FREITAS: Sólo significa que usted ahora puede tener números decimales. AUDIENCIA: ¿Por qué nos ¡Utilice números enteros? LUCAS FREITAS: ¿Por qué utiliza números enteros? Tal vez si usted está contando de 0 a 10, que desea utilizar en realidad un entero. No es necesario utilizar un flotador. En algunas situaciones, no lo hace que en realidad - LAUREN CARVALHO: Tal vez usted no quieren decimales. LUCAS FREITAS: Tal vez usted no lo hace que desee utilizar un flotador. LAUREN CARVALHO: La otra cosa es, recuerde, tanto poner un flotador y un int tener 32 bits para almacenarlos, y tal vez usted no quiere perder los bits en el decimales. LUCAS FREITAS: Si. Así como, sólo pensar en esto. Usted tiene 32 bits para ambos un int y un float. Para un int, todas esas 32 bits ir a la parte entera. Si utiliza un flotador con 32 bits, que tienen parte de esta memoria utilizada para el número, para el número entero, y la otra parte se utiliza para el decimales. Así que eso significa que no se puede llegar a un gran número de carrozas, ya el flotador ya está utilizando una gran cantidad de memoria para los decimales. ¿Sí? AUDIENCIA: Esa primera respuesta, qué es exactamente lo está haciendo? ¿Está preparando el valor de float igual a ese marcador de posición para que pueda recordar que en la siguiente línea? Dice flotar respuesta. LUCAS FREITAS: Si. Por lo tanto, la respuesta de flotación significa que está recibiendo ahora un pequeño cubo en la memoria que posee un flotador, y eso va que se llamará respuesta. Así que eso es lo que hace la respuesta flotador. Y entonces usted dice que en el interior de esto, usted va a poner el resultado de esto. Así que vas a hacer 1,0 dividido por 10.0, se obtiene un 0,1, y luego se puso que dentro de la respuesta. LAUREN CARVALHO: Así que en una sola línea, estamos declaración e iniciación de este flotador llamada respuesta. LUCAS FREITAS: Curiosamente, aunque esto es sólo una línea, está haciendo múltiples operaciones. Es sólo una forma de C de arrendamiento utiliza menos código. Es la misma cosa que el ternario operador, ¿cómo usted puede hacer un [Inaudible] en una sola línea. En realidad está haciendo lo mismo que haciendo float respuesta, punto y coma, y entonces la respuesta es igual a esta, pero en lugar de obligándote a hacer dos líneas para que, es como un atajo. ¿Sí? AUDIENCIA: Así que si ejecutó esto, sería 0.10? LUCAS FREITAS: Si. ¿Sí? AUDIENCIA: es la respuesta en realidad código, o es sólo el nombre? LAUREN CARVALHO: Este es en realidad código. Esto es lo que vamos para nombrar nuestra variable. AUDIENCIA: Así que es sólo un nombre de [inaudible]. LAUREN CARVALHO: Si. Yo podría haber dicho flotador x es igual a 1,0. LUCAS FREITAS: La cosa es que el nombre de la variable es algo que usted utiliza. Es importante para usted. Para el programa en sí, lo único que lo que importa es el valor que tener en el interior de la cubeta. La razón por la que tiene las variables y nombres de las variables es para que supieras lo que usted está tratando, como qué tipo de datos que está acceder a la vez. Pero para el propio código, si llama cómo contesta o pregunta o cualquier cosa, más o menos, no importa. No importa. Mientras eres consistente en todos los ocurrencia y así se llame algo más. ¿Sí? AUDIENCIA: ¿Las variables de ir más allá de la función? Al igual que si usted fuera a crear un soporte [Inaudible], ¿podría usted acaba de [Inaudible] contestar de nuevo? LAUREN CARVALHO: No. AUDIENCIA: [inaudible] LAUREN CARVALHO: No. Eso sería fuera del ámbito de esta variable en particular. Y en realidad, eso es algo de interesante, porque cuando tenemos cosas como bucles o estos si condiciones, si se declara una variable dentro de otro juego de llaves, en realidad, sólo existe dentro de esas llaves. AUDIENCIA: Una última nota sobre los [inaudible] carrozas. ¿Por qué querrías usar enteros? Esto es más de una nota al margen de cualquier cosa, pero el equipo está significativamente mejor en el manejo ints de lo que es en flotadores de manipulación. Es como un orden de magnitud más rápido. Así que si nos manejamos sólo flota, las cosas serían mucho más lento. LAUREN CARVALHO: En realidad, no parece ser un problema con los flotadores. LUCAS FREITAS: Tipo de la razón de eso, usted puede pensar, es como en binario puede representar enteros poniendo de 0 y 1. LAUREN CARVALHO: Eso es la siguiente cosa. LUCAS FREITAS: OK. Impresionante. LAUREN CARVALHO: Just mantener ese pensamiento. LUCAS FREITAS: OK, voy a tell you later. LAUREN CARVALHO: Antes de llegar a lo que Lucas estaba diciendo, el operador precedencia. Este es el sentido común. Ustedes han hecho lo suficiente. Así que, si algo está en paréntesis, que va a pasar en primer lugar. Es la multiplicación tiene prioridad sobre la suma, resta, cosas así. Así que en realidad, solo que nadie quiere dime lo número uno en realidad evalúa como? AUDIENCIA: 27. LAUREN CARVALHO: 27? Sí. LUCAS FREITAS: Permítanme dar caramelos a la gente. LAUREN CARVALHO: Muy bien. ¿Qué pasa con el número dos? ¿Qué pasa con el número dos? AUDIENCIA: 22. LAUREN CARVALHO: 22, sí. Yo no sé quién puso eso. El número tres? AUDIENCIA: 10. LAUREN CARVALHO: 10, sí. Genial. Así módulo. Lucas, ¿quieres explicar modulo? LUCAS FREITAS: Modulo es este operador que en realidad es muy útil para una montón de problemas. Si hago 55 módulo 10, lo que hace esto digamos que quiero dividir 55 por 10. ¿Qué obtengo? Se siente como si estoy en realidad sólo haciendo la división, lo que es lo primera vez que me dieron el número entero? AUDIENCIA: 5. LUCAS FREITAS: 5. Y luego el resto es 5, ¿no? Así que es como 5 veces 10 más 5. Básicamente, lo modulo hace, se trata de dividir este número por éste, y se ve lo que es el resto de la división. LAUREN CARVALHO: Por lo que sólo devuelve el resto. Así que el número uno es lo que? 5. El número dos? AUDIENCIA: 3. LAUREN CARVALHO: 3. El número tres? 0. Y cuatro es 1. Exactamente. LUCAS FREITAS: Simple, ¿no? LAUREN CARVALHO: ¿Por qué no nos saltamos esta sólo porque realmente no tenemos tiempo, y la gente parece entender. Así que aquí está lo que fue Lucas simplemente hablando. LUCAS FREITAS: Otra razón por la que usaría enteros en lugar de carrozas es que los flotadores son muy imprecisas. Y ¿por qué son imprecisas? David dijo que para representar un número entero, por ejemplo, se utiliza 0 y de 1 de, ¿verdad? Y entonces usted lo hace básicamente el multiplicación, hacer todos los operaciones para saber qué número decimal que tiene lugar del binario. Lo que sucede ahora si intento poner decimales? En realidad, por ejemplo, si tengo el número como 3.33333? Se siente como 10 más de 3. ¿Cómo voy a almacenar toda la 3 es que tenga después de eso? Es muy difícil, ¿verdad? Usted no puede decirle a la computadora, hey, tengo un 3, y entonces lo haces siempre. En realidad, el equipo no es lo suficientemente inteligente como para eso. Así que, básicamente, todo el equipo que hace es que trata de poner tantos dígitos como se puede hasta la memoria que tiene. Así que digamos que va a decir 3.3333, y eso es todo. Así que no es capaz de expresar realmente precisamente lo que es float. LAUREN CARVALHO: Tenemos un número finito de bits, lo que significa que no cada número decimal va a ser capaz de ser representado con precisión. Y así, en este ejemplo, si estamos imprimir 0.1, ahora estamos de impresión fuera 20 lugares. LUCAS FREITAS: Igual que yo estaba diciendo ustedes, usted podría poner cualquier número. Pero si usted acaba de hacer los dos lugares, se obtendría 0.10, pero si pones 20 lugares, va a mostrar un montón de 's porque esto es lo que puede poner en la memoria, ¿no? Pero aquí, hasta el 0, y luego se acaba de poner un montón de números aleatorios. Esto es algo así como un poco de - LAUREN CARVALHO: Esto se debe a que estamos no es capaz de representar esta decimal precisamente con el número de bits que tenemos. LUCAS FREITAS: Y entonces el equipo es básicamente que le da un número de basura. Esto no es en realidad la valor del número. AUDIENCIA: Es lo más cerca que puede conseguir [inaudible] utilizando el [inaudible]. LAUREN CARVALHO: Así que la implicación de esto es que vamos a decir que en vez de siendo 0.100014, lo que sea, ¿y si era 0,0999 - bien, está bien. Vamos a suponer que la respuesta real A esto se a 0,9999999. Eso es muy cercano a 1, pero no es exactamente 1. Es 0,99999. Eso significa que si tomo que 0.999, y lo eché a un int, consigo 0. No lo entiendo 1. LUCAS FREITAS: Porque recuerda, fundición desde un flotante a int, que acaba de ignorar todos los decimales. Usted simplemente ignorarlos. No hay tal cosa como el redondeo al alza o correr hacia abajo cuando encasillado. En realidad, no es esta la función que hace redondeo, que es muy importante, pero que acaba de pensar que cuando haces encasillamiento, es sólo va a borrar todo. Así que incluso si usted tiene 0,99999, que va apenas dar 0 si encasillado [Inaudible] un entero. LAUREN CARVALHO: Así que ser muy conscientes punto de flotante en precisión, especialmente cuando se inicia utilizar flotadores en Pset1. Pero el paseo a través deberían advertirle de que también. LUCAS FREITAS: Y en realidad es muy duro, por ejemplo, si lo hiciera float respuesta 1 es igual a 1.0 sobre 10 y, a continuación, flotar respuesta 2 es igual a 10,0 superior a 100.0. Ellos son el mismo número, ¿no? 0.1, ¿no? 1 más de 10 o 10 sobre 100. Pero ahora si trato de ver la igualdad, como si la respuesta 1 es igual a contestar 2, Tal vez no es en realidad va a ser la misma cosa. Así carrozas son un poco como eso. Son como haciendo la igualdad.