1 00:00:00,000 --> 00:00:03,290 >> [REPRODUCCIÓN DE MÚSICA] 2 00:00:03,290 --> 00:00:04,989 3 00:00:04,989 --> 00:00:06,280 JASON HIRSCHHORN: OK, todo el mundo. 4 00:00:06,280 --> 00:00:07,460 Bienvenido a la Sección. 5 00:00:07,460 --> 00:00:10,840 Esta es CS50, nuestra misma primera sección super. 6 00:00:10,840 --> 00:00:13,700 Como todos ustedes saben, la próxima semana secciones regulares comenzarán, 7 00:00:13,700 --> 00:00:15,580 pero esta semana estamos todos juntos. 8 00:00:15,580 --> 00:00:17,730 >> No es a mí mismo. 9 00:00:17,730 --> 00:00:18,840 Mi nombre es Jason. 10 00:00:18,840 --> 00:00:20,630 Soy un profesor de Ciencias de la Computación. 11 00:00:20,630 --> 00:00:23,910 Tenemos Andi, quien es la cabeza de la TA CS50. 12 00:00:23,910 --> 00:00:27,630 Y Scaz, el profesor Brian Scassellati, él es un profesor de Ciencias de la Computación. 13 00:00:27,630 --> 00:00:30,970 >> Somos los cabezas CS50 en Yale. 14 00:00:30,970 --> 00:00:34,992 Siempre se puede enviar por correo electrónico nos heads@cs50.yale.edu. 15 00:00:34,992 --> 00:00:35,950 Estaremos en conferencias. 16 00:00:35,950 --> 00:00:37,547 Estaremos en horario de oficina. 17 00:00:37,547 --> 00:00:40,130 Si alguna vez hay algo que podamos haga por ti, todo lo que necesita, 18 00:00:40,130 --> 00:00:42,610 no dude en acercarse a nosotros. 19 00:00:42,610 --> 00:00:44,140 >> Entonces, ¿qué vamos a hacer hoy? 20 00:00:44,140 --> 00:00:47,790 O antes de eso, lo que hay subiendo esta semana? 21 00:00:47,790 --> 00:00:52,620 Así horario de oficina es de lunes, martes, Miércoles y jueves, de 8:00 a 11:00. 22 00:00:52,620 --> 00:00:54,770 Hay un horario en el sitio web. 23 00:00:54,770 --> 00:00:57,830 >> Secciones, como he mencionado, están empezando la semana que viene. 24 00:00:57,830 --> 00:01:01,390 Y te darás cuenta de lo que esta semana Tiempo de su sección es, qué día es, 25 00:01:01,390 --> 00:01:03,350 y quién es su TA. 26 00:01:03,350 --> 00:01:08,610 >> Boletín de problemas 1 se debe a jueves a las mediodía, viernes al mediodía con un día de retraso. 27 00:01:08,610 --> 00:01:10,817 Sí, usted tiene nueve días de retraso. 28 00:01:10,817 --> 00:01:12,150 Y hay nueve boletines de problemas. 29 00:01:12,150 --> 00:01:14,320 Y sólo se puede utilizar uno día de retraso por juego problema. 30 00:01:14,320 --> 00:01:17,930 Sí, en efecto, todo el problema conjuntos se deben viernes al mediodía. 31 00:01:17,930 --> 00:01:18,550 Eso es todo. 32 00:01:18,550 --> 00:01:20,400 Todo lo que los detalles están en el programa de estudios. 33 00:01:20,400 --> 00:01:22,360 >> Todos los viernes, tenemos almuerzos. 34 00:01:22,360 --> 00:01:25,230 Nos gusta hacer este gran Por supuesto se siente un poco más pequeño. 35 00:01:25,230 --> 00:01:26,580 Así que le invitamos a confirmar su asistencia. 36 00:01:26,580 --> 00:01:30,050 Almuerzo libre con su compañero compañeros de clase y el personal. 37 00:01:30,050 --> 00:01:34,120 cs50.yale.edu/rsvp. 38 00:01:34,120 --> 00:01:36,940 >> Todas estas cosas que Tengo en la pantalla, 39 00:01:36,940 --> 00:01:43,330 y más, usted puede encontrar cs50.yale.edu o cs50.harvard.edu, si ir a Harvard 40 00:01:43,330 --> 00:01:46,800 y están viendo esto en línea. 41 00:01:46,800 --> 00:01:50,240 >> También en esos sitios web, hay son un montón de recursos para usted. 42 00:01:50,240 --> 00:01:54,610 Cada conferencia no sólo tiene el video de la conferencia, pero también notas. 43 00:01:54,610 --> 00:01:58,184 Alguien observará el conferencias y tomar notas para usted. 44 00:01:58,184 --> 00:02:00,100 Por lo que sólo puede pagar atención durante las clases, 45 00:02:00,100 --> 00:02:03,970 o puede usar sus notas / nuestra notas para complementar sus propias notas. 46 00:02:03,970 --> 00:02:04,987 >> Hay toboganes en línea. 47 00:02:04,987 --> 00:02:07,320 La fuente code-- todo David alto en la conferencia, 48 00:02:07,320 --> 00:02:09,979 o Scaz alto conferencia, que código fuente está disponible en línea 49 00:02:09,979 --> 00:02:11,750 así como como yo, videos mencionado. 50 00:02:11,750 --> 00:02:14,257 >> Secciones, así mismo, todos serán filmados. 51 00:02:14,257 --> 00:02:15,840 Todas esas diapositivas estará disponible. 52 00:02:15,840 --> 00:02:18,190 Todo ese código será estar disponible para usted. 53 00:02:18,190 --> 00:02:22,440 Hay pantalones cortos en la página web donde Miembros del personal CS50 pasan de cinco a 10 54 00:02:22,440 --> 00:02:24,130 minutos que pasan por temas para usted. 55 00:02:24,130 --> 00:02:26,750 Algunos de los que ya tienes encontrado en los boletines de problemas. 56 00:02:26,750 --> 00:02:30,430 >> Horas de oficina, como he mencionado, lunes a jueves, de 8:00 a 11:00. 57 00:02:30,430 --> 00:02:32,600 CS50 Estudio es un recurso fantástico. 58 00:02:32,600 --> 00:02:37,100 Hay problemas de práctica, diapositivas de muestra, errores conocidos 59 00:02:37,100 --> 00:02:40,920 que los estudiantes les gusta correr en, esencialmente para todos los temas que 60 00:02:40,920 --> 00:02:42,650 cubrirá en este curso. 61 00:02:42,650 --> 00:02:46,350 >> Y, por último, en esta diapositiva al menos, Reference50 62 00:02:46,350 --> 00:02:49,690 que le da la información en todas las funciones de C 63 00:02:49,690 --> 00:02:53,160 usted podría posiblemente esperar de usar y muchos, muchos más. 64 00:02:53,160 --> 00:02:55,690 >> Una vez más, que dot dot dot al la parte inferior de la pantalla 65 00:02:55,690 --> 00:02:59,990 es para indicar que hay incluso más recursos en esos dos sitios web: 66 00:02:59,990 --> 00:03:04,270 cs50.yale.edu, cs50.harvard.edu. 67 00:03:04,270 --> 00:03:05,840 >> Entonces, ¿qué vamos a hacer hoy? 68 00:03:05,840 --> 00:03:08,970 Bueno, primero que voy a dar nos fijamos en los recursos. 69 00:03:08,970 --> 00:03:10,010 Ya hizo que uno. 70 00:03:10,010 --> 00:03:11,590 Míranos. 71 00:03:11,590 --> 00:03:16,430 >> Ahora, vamos a ir Tipos de datos y operadores en C. 72 00:03:16,430 --> 00:03:19,990 Entonces Andi vendrá aquí y ir más bibliotecas en C, printf (), 73 00:03:19,990 --> 00:03:24,570 una función con la que ya está familiares o se convertirá rápidamente en muy 74 00:03:24,570 --> 00:03:25,530 familiar. 75 00:03:25,530 --> 00:03:27,810 Y usted también se pasa de condicionales y bucles. 76 00:03:27,810 --> 00:03:30,900 >> Y finalmente, Scaz repasará el ID CS50. 77 00:03:30,900 --> 00:03:34,250 Si usted no ha Paloma en Ya en el problema Set 1, 78 00:03:34,250 --> 00:03:37,060 así como la forma de utilizar el comandos de terminal y útiles 79 00:03:37,060 --> 00:03:42,280 y luego le dan algunos demos y la práctica de codificación en el ID CS50. 80 00:03:42,280 --> 00:03:45,130 >> Antes de saltar a esta el contenido de este lado, 81 00:03:45,130 --> 00:03:46,770 ¿Alguien tiene alguna pregunta hasta ahora? 82 00:03:46,770 --> 00:03:53,190 83 00:03:53,190 --> 00:03:54,030 Excelente. 84 00:03:54,030 --> 00:03:54,950 OK. 85 00:03:54,950 --> 00:03:55,810 Cambio de marchas. 86 00:03:55,810 --> 00:03:58,760 >> [CAMBIO DE GEARS] 87 00:03:58,760 --> 00:04:03,070 >> Ese era yo el cambio engranajes en un coche manual. 88 00:04:03,070 --> 00:04:10,920 Así que los tipos de datos en C, puede no sólo tener una variable x y tienen que estar en la línea 10, 89 00:04:10,920 --> 00:04:17,170 un entero, tal vez el número 1, en la línea 20, un número decimal 10.5, 90 00:04:17,170 --> 00:04:20,500 y las líneas a continuación, un par de más tarde una cadena, me encanta CS50. 91 00:04:20,500 --> 00:04:25,052 >> En C, las variables sólo pueden ser una cosa y sólo una cosa. 92 00:04:25,052 --> 00:04:26,510 Y lo que hay que darles tipos. 93 00:04:26,510 --> 00:04:28,780 Y en este foro, nos tener una lista de tipos. 94 00:04:28,780 --> 00:04:32,000 Hay caracteres, que representar caracteres. 95 00:04:32,000 --> 00:04:36,850 Así que eso es una letra A, B, C, D. Esto también puede ser un espacio, 96 00:04:36,850 --> 00:04:40,290 o que también se puede un carácter de nueva línea. 97 00:04:40,290 --> 00:04:45,030 >> No son números enteros, que son sólo números, toda numbers-- o números enteros 98 00:04:45,030 --> 00:04:47,130 rather-- pero sin decimales. 99 00:04:47,130 --> 00:04:49,790 >> Para decimales, tenemos números de punto flotante. 100 00:04:49,790 --> 00:04:53,200 Números de punto flotante son números con decimales. 101 00:04:53,200 --> 00:04:58,160 >> Luego están los largos, que son enteros esencialmente más largos. 102 00:04:58,160 --> 00:05:01,160 Se dará cuenta de que un largo es 8 mientras que un int es 4. 103 00:05:01,160 --> 00:05:02,640 Voy a llegar a eso en un segundo. 104 00:05:02,640 --> 00:05:07,390 Eso es porque anhela pueden almacenar hasta más enteros que un int pueden almacenar. 105 00:05:07,390 --> 00:05:10,100 Doble es un largo flotador. 106 00:05:10,100 --> 00:05:12,460 >> Y por último, tenemos cadena, que es un tipo de 107 00:05:12,460 --> 00:05:14,430 que es probable que haya usado antes. 108 00:05:14,430 --> 00:05:21,100 Si incluye hashtag # includeCS50.h en el archivo de origen, 109 00:05:21,100 --> 00:05:23,170 entonces usted puede utilizar un tipo de cadena. 110 00:05:23,170 --> 00:05:25,560 No es en realidad construida en C. 111 00:05:25,560 --> 00:05:27,760 >> Hay un par de otros tipos también. 112 00:05:27,760 --> 00:05:32,900 Pero estos son los principales con que va a utilizar y el encuentro. 113 00:05:32,900 --> 00:05:36,210 C como, otra vez he dicho, cada variable-- que 114 00:05:36,210 --> 00:05:38,620 sólo puede ser un tipo y un solo tipo. 115 00:05:38,620 --> 00:05:42,890 Eso es porque C es una forma estática lengua escrita a máquina, a diferencia 116 00:05:42,890 --> 00:05:45,780 a las lenguas escritas de forma dinámica donde si crea una variable 117 00:05:45,780 --> 00:05:50,081 usted puede cambiar lo que está almacenado en a medida que avanza en su programa. 118 00:05:50,081 --> 00:05:52,580 Por aquí en la mano derecha lado, tengo los diferentes tamaños 119 00:05:52,580 --> 00:05:57,440 de estos tipos de datos en bytes. 120 00:05:57,440 --> 00:05:59,710 Así que un carácter es 1 byte. 121 00:05:59,710 --> 00:06:01,250 Eso es de 8 bits. 122 00:06:01,250 --> 00:06:05,530 Y eso significa, porque 8 pedacitos hay ocho 0s y 1s. 123 00:06:05,530 --> 00:06:08,280 Vimos esas demostraciones en el primer semana con que las bombillas binarios. 124 00:06:08,280 --> 00:06:15,680 >> Con 8 bits o 1 byte, podemos representar los números del 0 al 255. 125 00:06:15,680 --> 00:06:16,180 Correcto. 126 00:06:16,180 --> 00:06:18,770 Si todos los 8 bits son 0 eso es 0. 127 00:06:18,770 --> 00:06:23,640 Si el primer bit es 1, que es el número uno, y así sucesivamente, todo el camino hasta 255. 128 00:06:23,640 --> 00:06:28,290 Y es por eso que para los personajes que puedas tienen esencialmente hasta 255 de ellos, 129 00:06:28,290 --> 00:06:31,210 pero eso es mucho para cubrir todos los personajes que necesitan utilizar. 130 00:06:31,210 --> 00:06:38,060 >> Para enteros, usted puede tener 0 y entonces usted tiene 2 a la 32 menos 1. 131 00:06:38,060 --> 00:06:40,340 Esos son el número de opciones usted tiene para los enteros. 132 00:06:40,340 --> 00:06:44,780 >> Durante mucho, tienes 0 a 2 a la 64 menos 1. 133 00:06:44,780 --> 00:06:48,860 Así que hay muchos, muchos, más opciones para anhela. 134 00:06:48,860 --> 00:06:54,220 >> Cuerdas, que es un signo de interrogación porque eso es un cliffhanger para más adelante. 135 00:06:54,220 --> 00:06:55,000 Sí. 136 00:06:55,000 --> 00:06:56,350 Me di cuenta de que todo el mundo es en el borde de su asiento, 137 00:06:56,350 --> 00:06:57,450 como lo que es ese signo de interrogación? 138 00:06:57,450 --> 00:06:58,390 Es un cliffhanger. 139 00:06:58,390 --> 00:07:02,340 Finalmente nos cubriremos el tamaño de cuerdas y hablan más sobre cuerdas. 140 00:07:02,340 --> 00:07:04,692 Debido a que la cadena es en realidad una de las ruedas de entrenamiento 141 00:07:04,692 --> 00:07:06,400 nos ponemos en este curso desde el inicio 142 00:07:06,400 --> 00:07:09,700 y luego sacar adelante sucesivamente, porque las cadenas en C 143 00:07:09,700 --> 00:07:13,320 en realidad son punteros a matrices de caracteres. 144 00:07:13,320 --> 00:07:15,810 Pero, de nuevo, eso es un Cliffhanger para más adelante. 145 00:07:15,810 --> 00:07:18,890 Antes de pasar a cualquier pregunta, comentarios, inquietudes acerca de esta diapositiva? 146 00:07:18,890 --> 00:07:25,800 147 00:07:25,800 --> 00:07:26,630 >> OK. 148 00:07:26,630 --> 00:07:30,330 Debo ser un explicador fantástico. 149 00:07:30,330 --> 00:07:33,210 También cuando se está programando, usted va a utilizar estos operadores. 150 00:07:33,210 --> 00:07:36,730 Realmente signos simples que pueden hacer sencilla operaciones, con el que probablemente son 151 00:07:36,730 --> 00:07:38,340 ya muy familiar. 152 00:07:38,340 --> 00:07:42,580 >> Por ejemplo, a la derecha lado, vemos añadir. 153 00:07:42,580 --> 00:07:44,640 Para agregar, que acaba de hacer un signo más. 154 00:07:44,640 --> 00:07:46,850 Y lo que podría tener de dos variables x e y. 155 00:07:46,850 --> 00:07:48,810 Usted puede hacer x + y en el código. 156 00:07:48,810 --> 00:07:52,790 Tal vez usted quiere decir que a-- tener el número 7 y 3, 157 00:07:52,790 --> 00:07:55,780 desea almacenar que en una variable llamada suma. 158 00:07:55,780 --> 00:08:03,010 Usted puede hacer int para el tipo, el espacio suma, el nombre de la variable, = 7 + 3; 159 00:08:03,010 --> 00:08:05,780 >> ¿Cómo sería esa tienda en suma? 160 00:08:05,780 --> 00:08:07,190 Cualquier persona? 161 00:08:07,190 --> 00:08:09,270 Si tuviera en suma = 7 + 3. 162 00:08:09,270 --> 00:08:10,437 Lo que se almacena en suma? 163 00:08:10,437 --> 00:08:11,520 Usted sólo puede gritar hacia fuera. 164 00:08:11,520 --> 00:08:12,120 AUDIENCIA: 10. 165 00:08:12,120 --> 00:08:12,995 >> JASON HIRSCHHORN: 10! 166 00:08:12,995 --> 00:08:14,870 Eso es exactamente correcto. 167 00:08:14,870 --> 00:08:19,520 ¿Y en suma = 7-3, Acabo de utilizar ese signo tablero. 168 00:08:19,520 --> 00:08:20,871 ¿Qué va a ser almacenado? 169 00:08:20,871 --> 00:08:21,370 AUDIENCIA: 4. 170 00:08:21,370 --> 00:08:22,203 JASON HIRSCHHORN: 4. 171 00:08:22,203 --> 00:08:25,770 Suma es probablemente el nombre equivocado para esa variable, pero 4 sería almacenado. 172 00:08:25,770 --> 00:08:31,890 >> Para multiplicar en C, utilice el pequeño Personaje estrella, no utiliza una x. 173 00:08:31,890 --> 00:08:35,990 Dividir, use un Delantero No recortar el símbolo de división. 174 00:08:35,990 --> 00:08:39,580 Y para modulo, utilice el símbolo de porcentaje. 175 00:08:39,580 --> 00:08:47,900 >> Así que digamos que quiero ver int z = 7% 3, lo que se almacena en z? 176 00:08:47,900 --> 00:08:51,250 Entonces, eso es esencialmente preguntando qué hace modulo? 177 00:08:51,250 --> 00:08:52,750 ¿Alguien sabe lo que hace de módulo? 178 00:08:52,750 --> 00:08:53,940 Sí. 179 00:08:53,940 --> 00:08:54,870 y 4. 180 00:08:54,870 --> 00:08:56,120 ALTAVOZ 1: Es el resto. 181 00:08:56,120 --> 00:08:58,369 JASON HIRSCHHORN: Es la resto cuando se divide. 182 00:08:58,369 --> 00:09:02,790 Así 7 dividido por 3 es 2 resto 1. 183 00:09:02,790 --> 00:09:04,690 Así 1 se almacenaría. 184 00:09:04,690 --> 00:09:06,970 >> Hiciste resta, pero así es como funciona. 185 00:09:06,970 --> 00:09:09,140 Eso es lo que hace el operador de módulo. 186 00:09:09,140 --> 00:09:12,360 Se necesita un número lo divide por otro número y vuelve a ti 187 00:09:12,360 --> 00:09:14,590 el resto. 188 00:09:14,590 --> 00:09:19,770 Así que de nuevo, el 7% 3 te da 1, porque 7 dividido por 3 es 2 resto 1, 189 00:09:19,770 --> 00:09:21,650 y devuelve el resto. 190 00:09:21,650 --> 00:09:24,470 >> ¿Y vamos a volver a subir un paso a la señal de división. 191 00:09:24,470 --> 00:09:29,194 Si lo hiciera 7 / dividido por 3 hace Alguien sabe lo que volvería? 192 00:09:29,194 --> 00:09:30,090 >> ALTAVOZ 2: 2. 193 00:09:30,090 --> 00:09:32,240 >> JASON HIRSCHHORN: ¿Por qué 2 y no 2.333? 194 00:09:32,240 --> 00:09:34,560 >> ALTAVOZ 2: Creo que es corta después de todo el número. 195 00:09:34,560 --> 00:09:36,310 JASON HIRSCHHORN: Así eso es exactamente correcto. 196 00:09:36,310 --> 00:09:39,880 En C, si lo hace la división de dos enteros 7 dividido por 3, 197 00:09:39,880 --> 00:09:43,430 obtiene la respuesta que en este caso, 2.3333 para siempre 198 00:09:43,430 --> 00:09:47,080 y comprueba que el punto decimal y chuletas todo después del punto decimal 199 00:09:47,080 --> 00:09:49,240 y que sólo le devuelve 2. 200 00:09:49,240 --> 00:09:51,120 >> Así que si lo hacía 8 dividido por 3. 201 00:09:51,120 --> 00:09:54,010 Que en realidad, sabemos que para volver 2.666, 202 00:09:54,010 --> 00:09:57,050 pero chuletas de todo lo que fuera en punto decimal, trunca todo, 203 00:09:57,050 --> 00:09:58,640 y simplemente devuelve a usted 2. 204 00:09:58,640 --> 00:10:02,090 Así 6 dividido por 3, 7 divididos por 3, 8 dividido por 3, 205 00:10:02,090 --> 00:10:04,840 todos vamos a volver a usted 2. 206 00:10:04,840 --> 00:10:08,770 >> ¿Alguien sabe, o tiene una conjetura, en cuanto a cómo yo podía llegar 207 00:10:08,770 --> 00:10:10,790 la respuesta completa si quiero que decimal? 208 00:10:10,790 --> 00:10:13,120 209 00:10:13,120 --> 00:10:13,620 Sí. 210 00:10:13,620 --> 00:10:14,152 Adelante. 211 00:10:14,152 --> 00:10:15,110 ALTAVOZ 3: Utilice un flotador? 212 00:10:15,110 --> 00:10:16,942 JASON HIRSCHHORN: ¿Qué quieres decir? 213 00:10:16,942 --> 00:10:19,786 ALTAVOZ 3: Porque usted dijo que el float es para los números [inaudible] 214 00:10:19,786 --> 00:10:22,900 215 00:10:22,900 --> 00:10:23,900 JASON HIRSCHHORN: Correcto. 216 00:10:23,900 --> 00:10:26,100 Entonces, eso es exactamente correcto. 217 00:10:26,100 --> 00:10:28,440 7 es un número entero. 218 00:10:28,440 --> 00:10:31,690 Pero si quería a su vez que en un número de punto flotante, 219 00:10:31,690 --> 00:10:34,674 Yo tendría que almacenar esa como 7.0 porque el equipo 220 00:10:34,674 --> 00:10:37,090 que realmente está stupid-- vimos que con el ejemplo- PB y J 221 00:10:37,090 --> 00:10:38,930 sólo hará exactamente lo que le dices. 222 00:10:38,930 --> 00:10:40,846 >> Así que si usted escribe 7, que creo que es un entero. 223 00:10:40,846 --> 00:10:43,640 Si se escribe 7.0, a pesar de que saben esas cosas son equivalentes, 224 00:10:43,640 --> 00:10:45,550 se trata de que como un número de punto flotante. 225 00:10:45,550 --> 00:10:50,441 Así que si usted lo hizo 7,0 dividida por 3 o dividido por 3,0, 226 00:10:50,441 --> 00:10:52,440 diría, OK, ahora estamos tratando con flotadores. 227 00:10:52,440 --> 00:10:57,514 Me volveré a vosotros 2.333333 siempre. 228 00:10:57,514 --> 00:10:59,930 Pero en realidad no siempre, porque como vimos también en la conferencia, 229 00:10:59,930 --> 00:11:03,350 estos números de punto flotante no son exactamente precisa. 230 00:11:03,350 --> 00:11:05,940 >> Así que si usted quiere que decimal, o una parte de ese decimal, 231 00:11:05,940 --> 00:11:08,090 entonces usted tiene que servicio- uno de ellos tiene que ser un número de punto flotante 232 00:11:08,090 --> 00:11:11,048 y el equipo tiene que entender que este es un punto flotante eres 233 00:11:11,048 --> 00:11:13,350 tratando, no es un entero. 234 00:11:13,350 --> 00:11:16,760 ¿Tiene preguntas sobre esa mesa en la derecha, hasta el momento? 235 00:11:16,760 --> 00:11:22,650 O su izquierda, su a la izquierda, a mano izquierda. 236 00:11:22,650 --> 00:11:23,264 Sí. 237 00:11:23,264 --> 00:11:23,972 ALTAVOZ 4: Derecho. 238 00:11:23,972 --> 00:11:26,216 Porque así como un regular enteros, lo haría 239 00:11:26,216 --> 00:11:30,230 write-- tendrías que escribir flotar? 240 00:11:30,230 --> 00:11:31,920 >> JASON HIRSCHHORN: Sí así. 241 00:11:31,920 --> 00:11:34,400 Bueno, si usted desea crear una variable que es un flotador, 242 00:11:34,400 --> 00:11:37,020 que necesita decir flotador z es igual a algo. 243 00:11:37,020 --> 00:11:37,640 >> ALTAVOZ 4: OK. 244 00:11:37,640 --> 00:11:41,950 >> JASON HIRSCHHORN: Pero si yo quería hacer 7 dividido por 3 y conseguir que el decimal, 245 00:11:41,950 --> 00:11:48,540 Yo haría flotador z = 7,0 / 3,0; y que me daría el punto flotante 246 00:11:48,540 --> 00:11:49,273 número. 247 00:11:49,273 --> 00:11:50,000 >> ALTAVOZ 4: OK. 248 00:11:50,000 --> 00:11:56,370 >> JASON HIRSCHHORN: Si lo hice algo así como int z = 7 / por 3, 249 00:11:56,370 --> 00:12:00,856 que me dé un número entero, porque esos son todos los enteros. 250 00:12:00,856 --> 00:12:01,730 ¿Tiene sentido? 251 00:12:01,730 --> 00:12:02,320 >> ALTAVOZ 4: Si. 252 00:12:02,320 --> 00:12:02,950 >> JASON HIRSCHHORN: OK. 253 00:12:02,950 --> 00:12:03,450 Excelente. 254 00:12:03,450 --> 00:12:06,030 ¿Alguna otra pregunta sobre esa mesa? 255 00:12:06,030 --> 00:12:07,220 De Verdad? 256 00:12:07,220 --> 00:12:08,380 Estoy tan emocionada. 257 00:12:08,380 --> 00:12:09,120 OK. 258 00:12:09,120 --> 00:12:13,910 >> Así que algunas otras cosas que va a utilizar, muchas veces en condiciones o bucles, 259 00:12:13,910 --> 00:12:17,580 son estos tipos de operators-- este tipo de expresiones booleanas. 260 00:12:17,580 --> 00:12:23,140 Y como hemos aprendido, == es lo que utilizar para comprobar si dos cosas son iguales. 261 00:12:23,140 --> 00:12:28,170 >> Así que aquí estoy comprobando si x == y, vamos a otra vez suponga que x es 7 ey es 3. 262 00:12:28,170 --> 00:12:33,220 Así que si escribía 7 == 3, lo que habría que volver a mí? 263 00:12:33,220 --> 00:12:34,220 ¿Es eso cierto o falso? 264 00:12:34,220 --> 00:12:35,275 >> AUDIENCIA: Falso. 265 00:12:35,275 --> 00:12:36,150 JASON HIRSCHHORN: OK. 266 00:12:36,150 --> 00:12:37,370 Siento que todo el mundo puede conseguir éste. 267 00:12:37,370 --> 00:12:39,054 Así que todo el mundo, lo que habría que devolver? 268 00:12:39,054 --> 00:12:39,720 AUDIENCIA: Falso. 269 00:12:39,720 --> 00:12:40,130 JASON HIRSCHHORN: Falso. 270 00:12:40,130 --> 00:12:40,850 Excelente. 271 00:12:40,850 --> 00:12:41,930 7 no es igual a 3. 272 00:12:41,930 --> 00:12:44,530 Así 7 == 3 volvería falsa. 273 00:12:44,530 --> 00:12:50,746 Usted tiene un signo no es igual, así que si yo Chequeado 7! = 3, lo que habría que devolver? 274 00:12:50,746 --> 00:12:51,370 AUDIENCIA: Verdadero. 275 00:12:51,370 --> 00:12:52,650 JASON HIRSCHHORN: Verdadero. 276 00:12:52,650 --> 00:12:53,200 Excelente. 277 00:12:53,200 --> 00:12:55,990 Alguien fue muy enfático en la parte de atrás y apreciar eso. 278 00:12:55,990 --> 00:12:59,070 Entonces usted tiene menos de operador, menos de o igual a operador, 279 00:12:59,070 --> 00:13:01,990 operador mayor que, mayor que o igual a operador. 280 00:13:01,990 --> 00:13:03,490 >> Así que uno más prueba de cordura. 281 00:13:03,490 --> 00:13:05,660 Si tuviera 7 es mayor que o igual a 3. 282 00:13:05,660 --> 00:13:06,966 Lo que habría que devolver? 283 00:13:06,966 --> 00:13:07,692 >> AUDIENCIA: Verdadero. 284 00:13:07,692 --> 00:13:08,650 JASON HIRSCHHORN: Verdadero. 285 00:13:08,650 --> 00:13:10,050 Sí. 286 00:13:10,050 --> 00:13:13,290 Eso, reverso trastienda de la habitación, fantástico. 287 00:13:13,290 --> 00:13:16,240 Puede combinar estos expresiones si se quiere, también, 288 00:13:16,240 --> 00:13:21,880 con una lógica y que está && O un OR lógico que es || 289 00:13:21,880 --> 00:13:22,800 ||. 290 00:13:22,800 --> 00:13:25,785 Y por lo que ahora se puede probar de dos cosas juntos-- es eso gracioso? 291 00:13:25,785 --> 00:13:28,250 ¿Por qué es tan gracioso? 292 00:13:28,250 --> 00:13:35,200 >> Así que si yo quería, lo que puedo decir es 7 mayor que 3 y 2 es de menos de 4? 293 00:13:35,200 --> 00:13:37,090 Bueno, si 7 es mayor de 3, eso es cierto. 294 00:13:37,090 --> 00:13:38,400 2 es inferior a 4, eso es cierto. 295 00:13:38,400 --> 00:13:41,140 Así que todo esto volvería realidad. 296 00:13:41,140 --> 00:13:45,130 >> Si he probado 7 es mayor que 3 y- Sólo estoy recogiendo números aleatorios aquí-- 297 00:13:45,130 --> 00:13:47,340 4 es menor que 2, bueno, eso es falso. 298 00:13:47,340 --> 00:13:49,610 Tan cierto y falso maquillaje falso. 299 00:13:49,610 --> 00:13:54,520 Y usted puede seguir y que se combinan como muchas condiciones juntos como desee. 300 00:13:54,520 --> 00:14:00,000 >> ¿Alguien tiene alguna pregunta, comentarios, preocupaciones hasta ahora? 301 00:14:00,000 --> 00:14:03,862 Y veo que algunos de ustedes tomar fotografías me de en la pantalla, algo que se agradece. 302 00:14:03,862 --> 00:14:05,070 Con suerte, no es SNAPCHAT. 303 00:14:05,070 --> 00:14:06,417 Con suerte, es para sus notas. 304 00:14:06,417 --> 00:14:08,500 Pero todos ellos van que estará disponible en línea. 305 00:14:08,500 --> 00:14:11,210 Así que usted no tiene que tomar fotos de esto. 306 00:14:11,210 --> 00:14:15,150 Como he mencionado, todo estará disponible en línea para usted. 307 00:14:15,150 --> 00:14:15,650 OK. 308 00:14:15,650 --> 00:14:17,980 Estoy a punto de llegar fuera del escenario, también lo hace a nadie 309 00:14:17,980 --> 00:14:20,350 quiero decir nada antes que eso suceda? 310 00:14:20,350 --> 00:14:21,080 ¿Preguntas? 311 00:14:21,080 --> 00:14:21,680 >> [Interponiendo VOCES] 312 00:14:21,680 --> 00:14:22,250 >> JASON HIRSCHHORN: Oh, detente. 313 00:14:22,250 --> 00:14:23,290 Ustedes son demasiado agradable. 314 00:14:23,290 --> 00:14:23,790 OK. 315 00:14:23,790 --> 00:14:26,520 Voy a etiquetar a cabo. 316 00:14:26,520 --> 00:14:27,240 Vamonos. 317 00:14:27,240 --> 00:14:29,570 >> ANDI Peng: Vamos hacer un cambio micrófono incómoda ahora. 318 00:14:29,570 --> 00:14:32,280 >> JASON HIRSCHHORN: Soy va a llevar esto adelante. 319 00:14:32,280 --> 00:14:33,946 ANDI Peng: Agradecemos el apoyo, chicos. 320 00:14:33,946 --> 00:14:42,250 321 00:14:42,250 --> 00:14:43,180 ¿Puedes escucharme? 322 00:14:43,180 --> 00:14:43,930 ¿Es bueno eso? 323 00:14:43,930 --> 00:14:44,760 Perfecto. 324 00:14:44,760 --> 00:14:45,630 Hermosa. 325 00:14:45,630 --> 00:14:47,490 Permítanme que meto en. 326 00:14:47,490 --> 00:14:49,100 OK. 327 00:14:49,100 --> 00:14:54,140 Por lo tanto, estoy a punto de hacer como un gigante información de volcado de ustedes en este momento. 328 00:14:54,140 --> 00:14:57,370 Y no se preocupe en absoluto si son no seguir cada pequeña línea de lo 329 00:14:57,370 --> 00:14:58,812 Estoy a punto de mostrar. 330 00:14:58,812 --> 00:15:00,770 Como dijo Jason, todo es completamente en línea. 331 00:15:00,770 --> 00:15:03,780 Así que vamos a tratar de introducir todos a los conceptos cubierto 332 00:15:03,780 --> 00:15:05,270 en algunas de estas diapositivas. 333 00:15:05,270 --> 00:15:06,582 Así que sólo tienes que seguir adelante. 334 00:15:06,582 --> 00:15:09,540 No se preocupe si usted no entiende todo; Sin embargo, si en algún momento 335 00:15:09,540 --> 00:15:12,820 te sientes perdido, levanta su mano, vamos a detener, no se preocupe. 336 00:15:12,820 --> 00:15:15,060 Guay. 337 00:15:15,060 --> 00:15:19,270 >> Así que creo que algo que David tiene Ya tipo de mencionado en la conferencia 338 00:15:19,270 --> 00:15:23,240 y Jason ha aludido tipo de al día de hoy es lo que una biblioteca es. 339 00:15:23,240 --> 00:15:27,510 Así que en la programación, tenemos estas cosas llamadas bibliotecas. 340 00:15:27,510 --> 00:15:29,690 Cuando, en esencia, todo se es sólo un conjunto 341 00:15:29,690 --> 00:15:32,610 de las funciones, es decir esencialmente sólo código que es 342 00:15:32,610 --> 00:15:35,070 ya ha sido escrito por alguien más que todos podemos 343 00:15:35,070 --> 00:15:36,410 usar dentro de nuestros programas. 344 00:15:36,410 --> 00:15:38,790 >> Entonces, ¿cómo una normal de trabajo de la biblioteca, ¿verdad? 345 00:15:38,790 --> 00:15:40,030 Usted entra a la puerta de la biblioteca. 346 00:15:40,030 --> 00:15:41,890 Usted tiene todos estos libros que usted puede sacar 347 00:15:41,890 --> 00:15:44,590 y se puede acceder a la información dentro de esos libros. 348 00:15:44,590 --> 00:15:45,840 Lo mismo en la programación. 349 00:15:45,840 --> 00:15:48,820 >> Usted tiene una biblioteca que ya tiene escrito por otras personas. 350 00:15:48,820 --> 00:15:51,530 Y la forma en que se puede, como programador o un estudiante, 351 00:15:51,530 --> 00:15:55,780 puede tener acceso a esa biblioteca es a través del hashtag # include. 352 00:15:55,780 --> 00:15:59,720 >> Por ejemplo, en C que tendrá tres C-- más 353 00:15:59,720 --> 00:16:03,420 comúnmente utilizado tres estándar C libraries-- la biblioteca de entrada / salida, 354 00:16:03,420 --> 00:16:05,540 la biblioteca de cadena, y la biblioteca de matemáticas. 355 00:16:05,540 --> 00:16:07,610 >> Así que dentro de su primera problema de pareja fija, 356 00:16:07,610 --> 00:16:10,940 esos serán los tres que usted está utilizando principalmente. 357 00:16:10,940 --> 00:16:14,610 Así como David ya explicó en conferencia, 358 00:16:14,610 --> 00:16:17,460 la E / S estándar biblioteca o la biblioteca estándar de entrada / salida 359 00:16:17,460 --> 00:16:18,620 hace exactamente eso. 360 00:16:18,620 --> 00:16:23,530 Le permite, en el código, a la entrada cualquier cosa, desde el usuario y de salida que 361 00:16:23,530 --> 00:16:25,960 a la pantalla, esencialmente la impresión a la pantalla. 362 00:16:25,960 --> 00:16:29,990 >> Y así, cada vez que utilice cualquiera de las funciones, por ejemplo, la función printf (), que 363 00:16:29,990 --> 00:16:33,319 vamos a ir en la siguiente diapositiva, asegúrese de incluir el estándar de E / S 364 00:16:33,319 --> 00:16:36,360 biblioteca o de lo contrario no va a ser capaz de utilizar la función printf (). 365 00:16:36,360 --> 00:16:39,110 Porque, como el programador En realidad nunca escribió esa función, 366 00:16:39,110 --> 00:16:41,840 usted está utilizando a alguien código de otra persona dentro de su propio código. 367 00:16:41,840 --> 00:16:43,620 >> Hace que todo el mundo tiene sentido? 368 00:16:43,620 --> 00:16:44,520 Guay. 369 00:16:44,520 --> 00:16:48,530 >> Y entonces esencialmente lleguemos a la biblioteca string.h y la math.h 370 00:16:48,530 --> 00:16:52,970 biblioteca, .h simplemente significa biblioteca, otras bibliotecas que eventualmente 371 00:16:52,970 --> 00:16:55,310 a utilizar dentro de su código. 372 00:16:55,310 --> 00:16:57,620 >> Sin embargo, para los propósitos de esta biblioteca, también 373 00:16:57,620 --> 00:17:01,170 tener-- de este class-- también tenemos lo que se llama la biblioteca CS50, 374 00:17:01,170 --> 00:17:05,270 cs50.h, en el que, por su lectura han creado 375 00:17:05,270 --> 00:17:07,369 muchas funciones importantes y útiles. 376 00:17:07,369 --> 00:17:09,550 Así que como programador puede cuestas fuera 377 00:17:09,550 --> 00:17:14,470 lo que ya hemos escrito para que de disponible esta función para usted 378 00:17:14,470 --> 00:17:15,599 para su uso. 379 00:17:15,599 --> 00:17:18,359 >> Voy a estar cubriendo un par de las funciones de uso común, 380 00:17:18,359 --> 00:17:20,839 pero saben que estos son todo Googleable línea. 381 00:17:20,839 --> 00:17:24,904 Siéntase libre, tire hacia arriba de la biblioteca y CS50 entonces usted tiene todas las funciones allí. 382 00:17:24,904 --> 00:17:25,828 Sí. 383 00:17:25,828 --> 00:17:28,140 >> ALTAVOZ 5: Así que si usted no estaba usando el software que 384 00:17:28,140 --> 00:17:29,916 se proporciona a nosotros por la clase, hace que 385 00:17:29,916 --> 00:17:32,698 significaría que tendríamos que descargar y encontrar esta cabecera presentar a nosotros mismos y decir 386 00:17:32,698 --> 00:17:33,840 el equipo en el que es? 387 00:17:33,840 --> 00:17:34,320 >> ANDI Peng: Muy buena pregunta. 388 00:17:34,320 --> 00:17:34,820 Exactamente. 389 00:17:34,820 --> 00:17:38,194 Así que es como si no estás físicamente presente en una biblioteca, 390 00:17:38,194 --> 00:17:40,360 no hay manera para que usted pueda realmente ir y acceder a ella. 391 00:17:40,360 --> 00:17:42,589 Así mismo con la programación en C, 392 00:17:42,589 --> 00:17:45,880 tiene que asegurarse de que usted está usando nuestra aparato porque la biblioteca ya está 393 00:17:45,880 --> 00:17:47,270 han incorporado en ella. 394 00:17:47,270 --> 00:17:50,020 Y luego, cuando hashtag #include, de la biblioteca allí. 395 00:17:50,020 --> 00:17:50,520 Sí. 396 00:17:50,520 --> 00:17:51,920 Buena pregunta. 397 00:17:51,920 --> 00:17:53,461 Cada uno bueno? 398 00:17:53,461 --> 00:17:53,960 Guay. 399 00:17:53,960 --> 00:17:56,371 400 00:17:56,371 --> 00:17:56,870 Correcto. 401 00:17:56,870 --> 00:17:59,330 Así que vamos a golpear, en esencia, lo que es 402 00:17:59,330 --> 00:18:01,620 la primera función que que como programadores son 403 00:18:01,620 --> 00:18:03,900 va a utilizar dentro de nuestro código. 404 00:18:03,900 --> 00:18:05,690 Esto se llama la función printf (). 405 00:18:05,690 --> 00:18:08,450 Así, la función printf (), ya que no tengo ya se ha dicho en la última diapositiva, 406 00:18:08,450 --> 00:18:11,830 está incluido en el estándar de E / S, estándar de entrada / salida, biblioteca. 407 00:18:11,830 --> 00:18:16,470 >> Así que asegúrate de lo que sea que estés using-- oh, déjame agarrar el láser pointer-- 408 00:18:16,470 --> 00:18:18,660 cada vez que usted está utilizando la función printf (), 409 00:18:18,660 --> 00:18:21,790 usted tiene que incluir el estándar de E / S biblioteca o bien, cuando se compila, 410 00:18:21,790 --> 00:18:23,760 usted va a obtener un error porque el equipo va a ser como, 411 00:18:23,760 --> 00:18:26,140 oh No sé donde printf () es, que no me estás diciendo donde printf () 412 00:18:26,140 --> 00:18:26,830 es. 413 00:18:26,830 --> 00:18:30,150 Bien printf () está incluido en el E / S estándar, por lo que cuando se utiliza printf (), 414 00:18:30,150 --> 00:18:32,960 asegúrese de tener que línea por encima de su código. 415 00:18:32,960 --> 00:18:36,040 >> Así, por ejemplo, printf () aquí es una función. 416 00:18:36,040 --> 00:18:40,260 Todo lo que hace es imprimir algo dentro de los paréntesis para el usuario. 417 00:18:40,260 --> 00:18:44,840 ¿Alguien quiere tomar una puñalada a lo que esta línea de código correcto 418 00:18:44,840 --> 00:18:46,420 aquí se va a imprimir? 419 00:18:46,420 --> 00:18:48,730 Por lo tanto, la respuesta está en la pantalla. 420 00:18:48,730 --> 00:18:50,480 Cualquier persona? 421 00:18:50,480 --> 00:18:51,380 >> VERDI: La parte inferior. 422 00:18:51,380 --> 00:18:53,510 >> ANDI Peng: Verdi, ¿por qué no te vas adelante y decir toda la declaración? 423 00:18:53,510 --> 00:18:55,718 >> VERDI: Hola, mi nombre es Andi, y tengo 20 años de edad. 424 00:18:55,718 --> 00:18:57,270 ANDI Peng: Ah, encantador. 425 00:18:57,270 --> 00:19:00,240 Así que en esta línea vamos a imprimir, Hola, mi nombre es Andi, 426 00:19:00,240 --> 00:19:04,280 y tengo 20 años de edad, que es de hecho una declaración verdadera. 427 00:19:04,280 --> 00:19:05,090 >> Sintaxis. 428 00:19:05,090 --> 00:19:08,830 Así par de cuestiones sintácticas que ustedes quiere asegurarse de que usted sabe. 429 00:19:08,830 --> 00:19:09,360 Citas. 430 00:19:09,360 --> 00:19:13,170 Las comillas dobles cuentan la equipo que todo el interior 431 00:19:13,170 --> 00:19:14,850 se va a imprimir. 432 00:19:14,850 --> 00:19:16,620 >> Todo dentro de la lata acaba de ser exactamente cómo 433 00:19:16,620 --> 00:19:19,920 escribe que, a excepción de comúnmente en el extremo, 434 00:19:19,920 --> 00:19:23,610 vamos a querer incluir un hash-- oh sorry-- un guión n. 435 00:19:23,610 --> 00:19:24,640 Así que un guión n. 436 00:19:24,640 --> 00:19:28,884 >> ¿Alguien quiere tomar una conjetura en lo que hace a nuestro código? 437 00:19:28,884 --> 00:19:29,465 Sí. 438 00:19:29,465 --> 00:19:30,840 ALTAVOZ 6: pone en una nueva línea. 439 00:19:30,840 --> 00:19:31,650 ANDI Peng: Exactamente. 440 00:19:31,650 --> 00:19:34,660 Así que todo esto hace es permitir que pase lo que pase 441 00:19:34,660 --> 00:19:37,520 después de esto, después de esta declaración, a imprimir a una nueva línea. 442 00:19:37,520 --> 00:19:40,030 Así que cuando usted está escribiendo su código que no tiene las cosas al azar 443 00:19:40,030 --> 00:19:41,738 tachuelas hasta el final que usted no quiere. 444 00:19:41,738 --> 00:19:43,700 Que todo se vuelve prolijamente impreso una línea 445 00:19:43,700 --> 00:19:46,870 y luego empezamos en la línea siguiente. 446 00:19:46,870 --> 00:19:50,970 >> ¿Alguien recuerda lo que punto y coma hace cuando estamos de codificación? 447 00:19:50,970 --> 00:19:54,580 448 00:19:54,580 --> 00:19:55,330 Sí. 449 00:19:55,330 --> 00:19:55,740 >> ALTAVOZ 7: Declaración. 450 00:19:55,740 --> 00:19:56,010 >> ANDI Peng: Lo siento? 451 00:19:56,010 --> 00:19:57,100 >> ALTAVOZ 7: ¿Termina la declaración? 452 00:19:57,100 --> 00:19:57,766 >> ANDI Peng: Sí. 453 00:19:57,766 --> 00:20:02,670 Así que en C, o cualquier programación el lenguaje, el punto y coma 454 00:20:02,670 --> 00:20:04,640 denota el final de una línea de programación. 455 00:20:04,640 --> 00:20:09,240 Así por ejemplo, en Inglés utilizamos periodo decir, oh este es el final de una frase. 456 00:20:09,240 --> 00:20:12,857 En la programación, lo mismo, tenemos una punto y coma para indicar el final de una línea. 457 00:20:12,857 --> 00:20:14,690 Muchas veces, cuando estás empezando a programar, 458 00:20:14,690 --> 00:20:17,150 usted se da cuenta olvide añadir un punto y coma 459 00:20:17,150 --> 00:20:19,400 y luego intenta ejecutar su código y no funciona. 460 00:20:19,400 --> 00:20:21,520 Y usted es como, ¡Ah, no lo sé sé por qué, que debería estar trabajando. 461 00:20:21,520 --> 00:20:24,394 >> Es probable que usted probablemente ha olvidado un punto y coma o un soporte o algo 462 00:20:24,394 --> 00:20:25,020 en alguna parte. 463 00:20:25,020 --> 00:20:27,740 Entonces, eso es importante recordar. 464 00:20:27,740 --> 00:20:29,627 Guay. 465 00:20:29,627 --> 00:20:31,960 De acuerdo, a mano alzada, cómo muchas personas aquí tienen cada vez 466 00:20:31,960 --> 00:20:37,210 tomada AP Ciencias de la Computación o programado en Java antes, alguna vez? 467 00:20:37,210 --> 00:20:37,710 OK. 468 00:20:37,710 --> 00:20:38,210 Encantador. 469 00:20:38,210 --> 00:20:41,340 Eso no será aplicable entonces, pero en Java, 470 00:20:41,340 --> 00:20:44,960 tienen algo que se llama System.out.println que no existe en C. 471 00:20:44,960 --> 00:20:49,927 >> Así que en C, siempre que que desee agregar en las variables 472 00:20:49,927 --> 00:20:51,760 en todo lo que quieras imprimir, hay 473 00:20:51,760 --> 00:20:54,620 una sintaxis específica que vamos a utilizar. 474 00:20:54,620 --> 00:20:56,520 Eso se llama la placeholding-- esencialmente 475 00:20:56,520 --> 00:21:01,180 añadimos marcadores de posición en su lugar del número entero o la variable 476 00:21:01,180 --> 00:21:02,580 que queremos imprimir. 477 00:21:02,580 --> 00:21:07,430 >> Así como ustedes pueden ver que hemos incluido una nueva cabecera biblioteca archivo aquí. 478 00:21:07,430 --> 00:21:09,130 La biblioteca CS50. 479 00:21:09,130 --> 00:21:13,160 Y contenida dentro de esa biblioteca CS50 es una función común que va a utilizar 480 00:21:13,160 --> 00:21:15,610 en nuestro curso llamado getInt (). 481 00:21:15,610 --> 00:21:21,830 >> ¿Alguien quiere tomar una puñalada en lo getInt () posiblemente puede estar haciendo. 482 00:21:21,830 --> 00:21:22,830 >> AUDIENCIA: [inaudible] 483 00:21:22,830 --> 00:21:23,550 >> ANDI Peng: Lo siento. 484 00:21:23,550 --> 00:21:24,370 No se podía oír. 485 00:21:24,370 --> 00:21:25,511 Maddie, nadie. 486 00:21:25,511 --> 00:21:27,260 MADDIE: Oh, se le solicita por un entero. 487 00:21:27,260 --> 00:21:28,051 ANDI Peng: Exactamente. 488 00:21:28,051 --> 00:21:30,670 Así esta función, otro función que ya está 489 00:21:30,670 --> 00:21:33,690 sido escrito por alguien más que podemos pedir a ahora. 490 00:21:33,690 --> 00:21:38,000 Todo lo que es es pedir al usted, el usuario, para introducir lo que quieras como el código 491 00:21:38,000 --> 00:21:41,850 ejecuta y almacena whatever-- en este caso estamos getInt () - ing, 492 00:21:41,850 --> 00:21:44,060 lo que significa que estamos la obtención de un número entero. 493 00:21:44,060 --> 00:21:46,150 >> Y vamos a almacenar que en otro número entero 494 00:21:46,150 --> 00:21:48,900 que simplemente hemos hecho llamados edad. 495 00:21:48,900 --> 00:21:51,500 Eso tiene sentido para todo el mundo? 496 00:21:51,500 --> 00:21:52,190 Guay. 497 00:21:52,190 --> 00:21:56,400 >> Así que ahora que hemos almacenado este entero, que hemos nos impulsados ​​desde el usuario, 498 00:21:56,400 --> 00:22:00,010 en esta variable, tenemos creado de tipo int llamada edad, 499 00:22:00,010 --> 00:22:03,720 podemos seguir adelante y lugar esa función en nuestra printf (). 500 00:22:03,720 --> 00:22:08,970 Así que la sintaxis general de printf () es que donde quiera en su físico real 501 00:22:08,970 --> 00:22:14,410 línea que desea incluir ese número entero, usted hace ese símbolo ahí, 502 00:22:14,410 --> 00:22:17,800 el símbolo de porcentaje, con el tipo de variable que desee. 503 00:22:17,800 --> 00:22:20,090 >> Así que en este caso la edad es un número entero. 504 00:22:20,090 --> 00:22:25,030 Así que vamos a incluir % i porque es un número entero. 505 00:22:25,030 --> 00:22:26,860 Y luego después de su declaración, vas 506 00:22:26,860 --> 00:22:30,370 hacer coma y el nombre de la variable. 507 00:22:30,370 --> 00:22:33,420 >> Así que aquí, vamos a imprimir cabo, Hola, mi nombre es Andi, 508 00:22:33,420 --> 00:22:35,730 y estoy año en blanco de edad. 509 00:22:35,730 --> 00:22:38,890 Hashta-- o, sorry--, con lo que la edad de entrada I. 510 00:22:38,890 --> 00:22:42,790 Así que si yo fuera a la entrada 20 para mi getInt () aquí, 511 00:22:42,790 --> 00:22:44,500 sería imprimir exactamente lo mismo. 512 00:22:44,500 --> 00:22:47,990 Pero, si quería algo de entrada más, como tal vez 40 o 45, 513 00:22:47,990 --> 00:22:50,800 entonces usted vería que reflejaban en consecuencia en el código. 514 00:22:50,800 --> 00:22:52,886 >> Así que este es un ejemplo de algo en el cual 515 00:22:52,886 --> 00:22:55,260 imprime y se ve a usted como si se trata de la misma cosa, 516 00:22:55,260 --> 00:22:57,593 pero por debajo de la capucha de el equipo hay realmente 517 00:22:57,593 --> 00:22:59,560 cosas muy diferentes pasando. 518 00:22:59,560 --> 00:23:00,060 Guay. 519 00:23:00,060 --> 00:23:02,760 520 00:23:02,760 --> 00:23:03,260 Correcto. 521 00:23:03,260 --> 00:23:06,940 ¿Y qué si queremos múltiples variables? 522 00:23:06,940 --> 00:23:08,290 Muy fácil. 523 00:23:08,290 --> 00:23:09,150 La misma cosa. 524 00:23:09,150 --> 00:23:11,930 También tenemos una nueva función aquí llamados GetString (), 525 00:23:11,930 --> 00:23:15,380 También se incluyen dentro de la biblioteca CS50, que lo único que hace es pedir al usuario 526 00:23:15,380 --> 00:23:18,120 para una cadena, que es sólo un conjunto de caracteres, 527 00:23:18,120 --> 00:23:19,810 así como una sentencia o como un nombre. 528 00:23:19,810 --> 00:23:25,470 >> Así que en este caso, tendríamos dos marcadores de posición% s para cuerda y% i 529 00:23:25,470 --> 00:23:26,750 por entero. 530 00:23:26,750 --> 00:23:29,190 Y vamos a seguir que por las dos variables 531 00:23:29,190 --> 00:23:32,670 que desea incluir en el orden en que aparecen en la sentencia. 532 00:23:32,670 --> 00:23:35,471 Así, por ejemplo, mi nombre es blanco, quiero un nombre allí, 533 00:23:35,471 --> 00:23:36,970 así que voy a tener el nombre primero. 534 00:23:36,970 --> 00:23:39,637 Y luego después, quiero edad, quiere tener segunda edad. 535 00:23:39,637 --> 00:23:42,720 Y así, si quería entrada, Hola, mi nombre es Andi, y tengo 20 años de edad. 536 00:23:42,720 --> 00:23:46,370 Si introduce Andi y 20, el exactamente lo mismo imprimiría; 537 00:23:46,370 --> 00:23:51,134 Sin embargo, ahora tenemos dos guardaron variables de nombre, así como int. 538 00:23:51,134 --> 00:23:51,634 Sí. 539 00:23:51,634 --> 00:23:54,124 >> ALTAVOZ 8: ¿Sería capaz de ejecutar si se cambiara 540 00:23:54,124 --> 00:23:55,620 Nombre y edad al final de eso? 541 00:23:55,620 --> 00:23:55,840 >> ANDI Peng: Sí. 542 00:23:55,840 --> 00:23:57,006 Eso es realmente buena pregunta. 543 00:23:57,006 --> 00:23:59,520 Así que cuento largo, no. 544 00:23:59,520 --> 00:24:03,070 Debido nombre y age-- lo tipo de variable es el nombre? 545 00:24:03,070 --> 00:24:03,950 >> ALTAVOZ 8: String. 546 00:24:03,950 --> 00:24:05,440 >> ANDI Peng: ¿Y qué tipo de variable es la edad? 547 00:24:05,440 --> 00:24:06,231 >> ALTAVOZ 8: Integer. 548 00:24:06,231 --> 00:24:10,290 ANDI Peng: Así que aquí tenemos un marcador de posición de cuerda y entero, ¿no? 549 00:24:10,290 --> 00:24:13,350 Así que si usted fuera a cambiar estos, el equipo no va a saber. 550 00:24:13,350 --> 00:24:16,250 Se va a comprobar si hay una cadena, y si intenta darle un int, 551 00:24:16,250 --> 00:24:18,083 que va a ser como espere Estoy confundido, que 552 00:24:18,083 --> 00:24:21,100 me dijo que debería ser asignación de memoria para un int. 553 00:24:21,100 --> 00:24:23,760 Y aquí, cuando que espera un número entero 554 00:24:23,760 --> 00:24:25,640 y le das un nombre y una cadena en lugar, 555 00:24:25,640 --> 00:24:28,931 sino que también va a ser muy confuso, no se ejecutará exactamente de la manera que lo necesite. 556 00:24:28,931 --> 00:24:35,280 Así que aquí, nombrando y la sintaxis es muy importante para el funcionamiento de código. 557 00:24:35,280 --> 00:24:37,991 Cada uno bueno? 558 00:24:37,991 --> 00:24:38,490 Sí. 559 00:24:38,490 --> 00:24:39,476 Maddie. 560 00:24:39,476 --> 00:24:44,620 >> MADDIE: Aquí, sé que hemos visto en ejemplos en clase, donde piden 561 00:24:44,620 --> 00:24:46,950 ¿cuál es tu edad, ¿cuál es su nombre. 562 00:24:46,950 --> 00:24:50,250 En este caso, sería eso que doesn't-- si fuéramos a ejecutar este código, 563 00:24:50,250 --> 00:24:51,750 no pediría eso? 564 00:24:51,750 --> 00:24:54,740 Pero lo haría sólo dos números de entrada y luego se iría así? 565 00:24:54,740 --> 00:24:55,781 >> ANDI Peng: Sí, exactamente. 566 00:24:55,781 --> 00:24:58,250 Así que si quería para que pantalla, por favor, introduzca su edad, 567 00:24:58,250 --> 00:25:01,100 usted puede agregar una función printf () que dice: Por favor introduzca su edad, 568 00:25:01,100 --> 00:25:01,600 sobre eso. 569 00:25:01,600 --> 00:25:02,711 Buena pregunta. 570 00:25:02,711 --> 00:25:03,210 Sí. 571 00:25:03,210 --> 00:25:07,964 >> ALTAVOZ 9: Entonces, ya sería incluido en getInt () [inaudible]. 572 00:25:07,964 --> 00:25:09,380 ANDI Peng: No, en realidad no lo es. 573 00:25:09,380 --> 00:25:11,809 Así que todo esto no es más que impulsa una pantalla vacía 574 00:25:11,809 --> 00:25:13,100 para que el usuario introduzca algo. 575 00:25:13,100 --> 00:25:17,420 Si usted lo quiere, si usted lo quiere para imprimir algo que le dice al usuario como, 576 00:25:17,420 --> 00:25:21,110 por favor déme su edad, entonces usted tendría que printf () que a ti mismo. 577 00:25:21,110 --> 00:25:23,789 Debido a que todo el mundo utiliza este función para diferentes cosas, 578 00:25:23,789 --> 00:25:26,080 usted podría estar almacenando la edad, usted podría estar almacenando dirección, 579 00:25:26,080 --> 00:25:28,060 usted podría estar almacenando números de teléfono. 580 00:25:28,060 --> 00:25:31,190 Y lo que es realmente hasta usos individuales de sus hombres ' 581 00:25:31,190 --> 00:25:34,390 por lo que quieres que diga. 582 00:25:34,390 --> 00:25:34,890 Sí. 583 00:25:34,890 --> 00:25:38,236 >> ALTAVOZ 10: Por lo tanto, sólo para aclarar, en donde hacer que introducir el nombre y la edad 584 00:25:38,236 --> 00:25:43,020 de manera que se muestra en lugar de% s? 585 00:25:43,020 --> 00:25:44,320 >> ANDI Peng: Al igual que en el usuario? 586 00:25:44,320 --> 00:25:47,165 >> ALTAVOZ 10: Sí, como la forma de hacer yo hacer it-- dónde pongo Andi, 587 00:25:47,165 --> 00:25:48,350 y donde puedo poner 20? 588 00:25:48,350 --> 00:25:48,640 >> ANDI Peng: Sí. 589 00:25:48,640 --> 00:25:50,250 Así que si usted fuera a realmente ejecutar este código, 590 00:25:50,250 --> 00:25:52,875 No estoy realmente ejecuta el código, esto es sólo aquí en este momento. 591 00:25:52,875 --> 00:25:56,910 Si tuviera que ejecutar el código, lo haría compilar el código, hacer que el archivo, 592 00:25:56,910 --> 00:26:00,760 ejecutar el código, y luego lo haría ser sólo dos plazas para mí a introducirla. 593 00:26:00,760 --> 00:26:01,260 Sí. 594 00:26:01,260 --> 00:26:03,843 Ustedes verán cuando juegas todo con el código usted mismo. 595 00:26:03,843 --> 00:26:05,760 596 00:26:05,760 --> 00:26:09,645 >> Muy bien vamos a mover en la siguiente sección de lo 597 00:26:09,645 --> 00:26:11,610 vamos a estar cubriendo en la actualidad. 598 00:26:11,610 --> 00:26:13,980 Vamos a repasar lo sentencias condicionales son. 599 00:26:13,980 --> 00:26:16,500 Así que si ustedes recuerden y recordar de conferencia, 600 00:26:16,500 --> 00:26:19,210 sentencias condicionales, todo lo que son son un conjunto 601 00:26:19,210 --> 00:26:24,010 de instrucciones a la computadora en que si una determinada condición es verdadera, 602 00:26:24,010 --> 00:26:27,470 ejecutar el código dentro de esa condición. 603 00:26:27,470 --> 00:26:30,101 >> Así que en esencia Scratch-- el gran tema a partir de hoy 604 00:26:30,101 --> 00:26:32,850 es que ustedes tienen ya todo visto la lógica detrás de todo 605 00:26:32,850 --> 00:26:34,020 que estamos cubriendo. 606 00:26:34,020 --> 00:26:36,190 Y todo lo que estamos haciendo es traducir algo 607 00:26:36,190 --> 00:26:39,090 eso fue muy intuitivo en Scratch, y difícil de codificación que 608 00:26:39,090 --> 00:26:41,950 en la sintaxis que va a utilizar para la clase que es C. 609 00:26:41,950 --> 00:26:47,550 Así que, lógicamente, todo este bloque era es ese pedazo de código de allí. 610 00:26:47,550 --> 00:26:49,995 Sí. 611 00:26:49,995 --> 00:26:50,900 OK. 612 00:26:50,900 --> 00:26:55,290 >> También nos metemos en un if ... else declaración que es sólo una capa añadida 613 00:26:55,290 --> 00:26:59,120 de complejidad a la sentencia if donde el equipo echa un vistazo a esta 614 00:26:59,120 --> 00:27:04,260 y ve si esta condición se cumple, hacer lo de dentro de estos dos soportes, 615 00:27:04,260 --> 00:27:08,470 else-- tan poco como el valor predeterminado si no cumple con la condición-- hacer esto. 616 00:27:08,470 --> 00:27:10,120 Es como un tenedor en la carretera. 617 00:27:10,120 --> 00:27:14,400 Si está lloviendo fuera, puse en una chaqueta de lluvia, cosa nada 618 00:27:14,400 --> 00:27:16,330 otra cosa no me puse una chaqueta de lluvia. 619 00:27:16,330 --> 00:27:18,400 >> ¿Esa lógica tiene sentido para todo el mundo? 620 00:27:18,400 --> 00:27:21,031 Guay. 621 00:27:21,031 --> 00:27:21,530 Correcto. 622 00:27:21,530 --> 00:27:24,970 Así como un duro ejemplo de esto que veríamos en C 623 00:27:24,970 --> 00:27:28,890 es si yo quería crear un denominadas horas de tarea variables. 624 00:27:28,890 --> 00:27:32,050 Y si las horas de tarea es menos de cinco, digo vida es grande. 625 00:27:32,050 --> 00:27:33,070 Es maravilloso. 626 00:27:33,070 --> 00:27:36,450 Sin embargo, dicen que la lucha es real-- que es lo que todos en este Lunes 627 00:27:36,450 --> 00:27:39,337 por la tarde hasta Science Hill son probablemente haciendo bien ahora-- 628 00:27:39,337 --> 00:27:40,170 AUDIENCIA: [risas] 629 00:27:40,170 --> 00:27:42,510 ANDI Peng: Se forma en que que, gracias por eso. 630 00:27:42,510 --> 00:27:46,180 La forma en que podríamos codificar esto en C es si: asumamos 631 00:27:46,180 --> 00:27:49,920 ya tenemos una variable de tipo int llamado horas de tarea aquí. 632 00:27:49,920 --> 00:27:53,870 Si las horas de tarea está a menos de de cinco printf (), La vida es grande. 633 00:27:53,870 --> 00:27:57,330 Recuerde mantener / n, porque quieres una nueva línea después. 634 00:27:57,330 --> 00:27:59,660 Impresión Else, La lucha es real. 635 00:27:59,660 --> 00:28:03,720 >> ¿Todo el mundo entiende cómo Me pasó de este bloque 636 00:28:03,720 --> 00:28:07,610 en este bloque de código? 637 00:28:07,610 --> 00:28:08,110 Guay. 638 00:28:08,110 --> 00:28:11,030 639 00:28:11,030 --> 00:28:11,840 Correcto. 640 00:28:11,840 --> 00:28:15,930 >> Así que ahora vamos a echar un vistazo a múltiples sentencias si en total. 641 00:28:15,930 --> 00:28:18,140 Así que vamos a asumir la propósito de este programa 642 00:28:18,140 --> 00:28:20,870 era que solicitar al usuario un grado. 643 00:28:20,870 --> 00:28:24,450 Nos pronta usando getInt () para una grado, y se introduce un valor, 644 00:28:24,450 --> 00:28:27,700 y desea mostrar qué tipo de calificación que obtuvieron. 645 00:28:27,700 --> 00:28:30,730 >> Así que si yo tuviera que diseñar un programa, significa típicamente en todos nuestros ojos, 646 00:28:30,730 --> 00:28:35,490 El 90-100 es un A, el 80-90 es una B, y así sucesivamente y así sucesivamente. 647 00:28:35,490 --> 00:28:39,040 ¿Qué problema hay con este pieza de código que no es 648 00:28:39,040 --> 00:28:41,393 haciendo lo que quiero que haga. 649 00:28:41,393 --> 00:28:41,892 Sí. 650 00:28:41,892 --> 00:28:45,100 >> ALTAVOZ 11: Tienen límites inferiores, pero que no tienen límites superiores. 651 00:28:45,100 --> 00:28:46,280 >> ANDI Peng: Exactamente. 652 00:28:46,280 --> 00:28:47,950 ¿Acaso todo el mundo escucha lo que dijo? 653 00:28:47,950 --> 00:28:50,200 No va a ser superior límites, pero no hay límites más bajos. 654 00:28:50,200 --> 00:28:52,540 Lo sentimos, revés, límites más bajos, no hay límites superiores. 655 00:28:52,540 --> 00:28:55,090 Así que le gustaría tomar una puñalada en el decir 656 00:28:55,090 --> 00:28:58,945 lo que se va a imprimir en esta pantalla si tuviera que ejecutar este código. 657 00:28:58,945 --> 00:28:59,820 ALTAVOZ 11: un error? 658 00:28:59,820 --> 00:29:01,140 ANDI Peng: un error? 659 00:29:01,140 --> 00:29:02,740 Gran conjetura, que no está bien. 660 00:29:02,740 --> 00:29:05,465 ¿Alguien tiene otra puñalada? 661 00:29:05,465 --> 00:29:06,640 Sí, Aaron. 662 00:29:06,640 --> 00:29:10,099 >> AARON: Si usted pone en algo más grande que 90, 663 00:29:10,099 --> 00:29:11,640 sería una muestra de todos los grados que tienes. 664 00:29:11,640 --> 00:29:13,640 Sería demostrar que tienes una A, tienes un B, tienes una C. 665 00:29:13,640 --> 00:29:13,870 >> ANDI Peng: Sí. 666 00:29:13,870 --> 00:29:14,840 Eso es exactamente correcto. 667 00:29:14,840 --> 00:29:17,820 Así que, eso sería maravilloso. 668 00:29:17,820 --> 00:29:21,781 Sin embargo, son mutuamente exclusivo, creo. 669 00:29:21,781 --> 00:29:23,280 Si tuviera que ejecutar este trozo de código. 670 00:29:23,280 --> 00:29:26,200 Y luego vamos a decir, yo introducido el grado del 95. 671 00:29:26,200 --> 00:29:30,360 Así que 95 ya está guardado en INT llama grado. 672 00:29:30,360 --> 00:29:33,610 >> Así C es un lenguaje que corre por arriba a abajo, 673 00:29:33,610 --> 00:29:36,000 así que va a siempre previo a fondo. 674 00:29:36,000 --> 00:29:39,420 Así que va a venir aquí, leer si grado es mayor que o igual a 90, 675 00:29:39,420 --> 00:29:42,850 printf () que obtuvo una A. Genial, tener un 95, eso es mayor que 90. 676 00:29:42,850 --> 00:29:44,866 Se va a imprimir, Tengo una A. Va 677 00:29:44,866 --> 00:29:48,850 echar un vistazo en este caso, se va dicen, bueno 95 también es mayor que 80, 678 00:29:48,850 --> 00:29:52,970 que va a imprimir también tiene un Got un signo de exclamación B, y así sucesivamente y así 679 00:29:52,970 --> 00:29:53,690 sucesivamente. 680 00:29:53,690 --> 00:29:55,890 >> Así como todos podemos ver, este es un error común 681 00:29:55,890 --> 00:30:00,760 que puede ocurrir cuando estamos escribir código a tener en cuenta. 682 00:30:00,760 --> 00:30:05,430 Cualquier persona, cualquier pregunta sobre por eso lo que estaba sucediendo? 683 00:30:05,430 --> 00:30:05,930 Excelente. 684 00:30:05,930 --> 00:30:08,920 685 00:30:08,920 --> 00:30:09,440 OK. 686 00:30:09,440 --> 00:30:12,110 >> Entonces, ¿cómo podemos solucionar este problema, es, obviamente, la siguiente pregunta lógica. 687 00:30:12,110 --> 00:30:16,290 Bueno, tenemos estos hermosos cosas llamadas si otra persona si lo demás 688 00:30:16,290 --> 00:30:18,010 si else. 689 00:30:18,010 --> 00:30:22,230 Así se puede ver, si usted quiere para cambiar ese problema, 690 00:30:22,230 --> 00:30:25,260 quería hacer cada uno de los condiciones mutuamente excluyentes, 691 00:30:25,260 --> 00:30:26,860 deberá añadir una cosa ... if. 692 00:30:26,860 --> 00:30:30,068 >> Y estos de supuesto-- pensar en ellos como escaleras, o como peldaños en la ladder-- 693 00:30:30,068 --> 00:30:34,050 puede agregar ya que muchos de éstos como usted desear para tantas condiciones como desee. 694 00:30:34,050 --> 00:30:36,790 Así que aquí, si introduce grado para ser 95. 695 00:30:36,790 --> 00:30:39,479 Si el grado es mayor que 95, printf (), tengo una A. Grande. 696 00:30:39,479 --> 00:30:42,020 Se va a ver una cosa ... si y va a conocer, ¡Oh, no, 697 00:30:42,020 --> 00:30:43,750 Yo ya ejecutó la primera persona. 698 00:30:43,750 --> 00:30:47,020 Yo sé-- o la primera si: Sé que Yo no tengo que mirar a cualquiera de estos 699 00:30:47,020 --> 00:30:48,920 porque uno de ellos ya ha sido cierto. 700 00:30:48,920 --> 00:30:50,410 Así que va a ejecutar desde arriba hacia abajo. 701 00:30:50,410 --> 00:30:53,650 Tan pronto como el primero es cierto, entonces que va a pasar por alto todo lo demás 702 00:30:53,650 --> 00:30:54,675 de los demás ... IFS. 703 00:30:54,675 --> 00:30:55,550 ¿Tiene sentido? 704 00:30:55,550 --> 00:30:57,841 Así, de esta manera usted tiene diferentes niveles de comprobación 705 00:30:57,841 --> 00:31:01,090 y tan pronto como uno de ellos es falso, el resto son también, que ni siquiera comprobar. 706 00:31:01,090 --> 00:31:03,577 707 00:31:03,577 --> 00:31:04,076 Guay. 708 00:31:04,076 --> 00:31:07,680 709 00:31:07,680 --> 00:31:08,180 Correcto. 710 00:31:08,180 --> 00:31:11,180 >> Así que este es un ejemplo de una diferente tipo de sentencia condicional 711 00:31:11,180 --> 00:31:15,250 vemos con menos frecuencia, pero vamos a ver ellos y usamos. 712 00:31:15,250 --> 00:31:18,120 Y son a menudo más eficiente para ciertos casos. 713 00:31:18,120 --> 00:31:20,020 Así que tenemos lo que se llama una sentencia switch. 714 00:31:20,020 --> 00:31:25,140 Así que antes hemos cubierto lo que es una cosa declaración, un if ... else. 715 00:31:25,140 --> 00:31:27,790 Aquí, tenemos lo que son llamada sentencias switch. 716 00:31:27,790 --> 00:31:31,100 >> Así que cuando lo usamos interruptor declaraciones es la clave? 717 00:31:31,100 --> 00:31:34,090 Así, en una sentencia switch, se por lo general, por lo general, en realidad 718 00:31:34,090 --> 00:31:38,010 Sólo puede enteros de entrada para su variable que se esté examinando. 719 00:31:38,010 --> 00:31:42,390 Así que si yo quería comprobar para ver si un determinado number-- por ejemplo 720 00:31:42,390 --> 00:31:43,720 un grado, si me dieron un 90. 721 00:31:43,720 --> 00:31:48,190 Quiero que ver si eso es una A, B, o C. Yo podría tener un caso aquí. 722 00:31:48,190 --> 00:31:50,840 Sin embargo, el caso tiene a ser otro constante. 723 00:31:50,840 --> 00:31:53,170 >> Así que en este sentido, la sentencia switch sólo puede 724 00:31:53,170 --> 00:31:55,290 comprobar la igualdad de dos números. 725 00:31:55,290 --> 00:31:57,242 No comprueba para nada más. 726 00:31:57,242 --> 00:31:59,950 Así que eso es algo que es muy cuidado de cuando usted está utilizando esto. 727 00:31:59,950 --> 00:32:04,810 Así que aquí, si quería comprobar para ver si mi calificación de 90 es igual a 90 o 80 728 00:32:04,810 --> 00:32:08,500 o 70 o 60, y luego de impresión el grado correspondiente, 729 00:32:08,500 --> 00:32:11,420 Me gustaría ser capaz de escribir que en una sentencia switch. 730 00:32:11,420 --> 00:32:15,120 >> Así que va a venir aquí, cheque es este número entero igual a esta constante? 731 00:32:15,120 --> 00:32:17,030 Si no, que va a saltar. 732 00:32:17,030 --> 00:32:19,880 Es igual a la constante dos, y así sucesivamente y así sucesivamente, 733 00:32:19,880 --> 00:32:22,390 hasta llegar a la omisión, si ninguno de ellos son iguales. 734 00:32:22,390 --> 00:32:24,590 Tan pronto como uno de ellos se establece para que sea igual, 735 00:32:24,590 --> 00:32:27,040 que va a hacer esto línea de código y descanso. 736 00:32:27,040 --> 00:32:30,990 Lo que significa que va a golpear ese correr, romper, y acaba de saltar por completo 737 00:32:30,990 --> 00:32:32,240 a la parte inferior del código. 738 00:32:32,240 --> 00:32:37,550 Así que en ese sentido el tipo de funciones como un si else if else if comunicado. 739 00:32:37,550 --> 00:32:40,830 >> Así que aquí está un hormigón ejemplo para ustedes. 740 00:32:40,830 --> 00:32:46,140 Así que vamos a suponer que yo quería crear una variable llamada años fundada. 741 00:32:46,140 --> 00:32:50,230 Y quiero pedir al usuario que introduzca el año en que su escuela fue fundada. 742 00:32:50,230 --> 00:32:53,300 Así que puede crear una sentencia switch aquí. 743 00:32:53,300 --> 00:32:56,650 Y vamos a decir, yo de entrada 1636. 744 00:32:56,650 --> 00:33:01,120 >> Este código aquí va a ver interruptor año fundó lo que equivale a 1636. 745 00:33:01,120 --> 00:33:03,940 Se va a ver el caso 1636, oh esos son iguales, 746 00:33:03,940 --> 00:33:06,230 printf () No debería estar en esa escuela en el norte? 747 00:33:06,230 --> 00:33:08,770 Porque se supone que no lo hacen ir aquí si van a Harvard, 748 00:33:08,770 --> 00:33:10,380 romper y pase a la final. 749 00:33:10,380 --> 00:33:14,090 >> Si yo fuera a la entrada de 1701, que Supongo que todos nosotros lo haría de entrada, 750 00:33:14,090 --> 00:33:17,500 sería omitir este caso, vamos a caso dos, que es de 1701, 751 00:33:17,500 --> 00:33:19,660 e imprimir Bienvenido a Yale! 752 00:33:19,660 --> 00:33:21,360 Romper, pase a la final. 753 00:33:21,360 --> 00:33:25,130 Cosa que usted probablemente está tomando este curso línea en el que caso-- impresionante bienvenida 754 00:33:25,130 --> 00:33:29,020 a Yale-- que va a ir a la impresión por defecto, Hola Internet! 755 00:33:29,020 --> 00:33:29,870 Y romper. 756 00:33:29,870 --> 00:33:30,466 Sí. 757 00:33:30,466 --> 00:33:32,090 >> ALTAVOZ 12: ¿Se puede utilizar otro en lugar de por defecto allí? 758 00:33:32,090 --> 00:33:34,550 >> ANDI Peng: No, porque el manera que toda esta función 759 00:33:34,550 --> 00:33:39,170 interruptor se construye, la sintaxis que necesitará utilizar mayúsculas caso por defecto. 760 00:33:39,170 --> 00:33:42,400 Es como el caso de los demás si, esta Es un solo caso caso por defecto. Sí. 761 00:33:42,400 --> 00:33:45,650 ALTAVOZ 13: Usted tal vez ya se dijo esto, pero puede tener más de dos casos? 762 00:33:45,650 --> 00:33:48,066 ANDI Peng: Sí, usted podría tener tantos casos como quieras. 763 00:33:48,066 --> 00:33:50,050 Piense en ello como al igual que añadiendo infinitamente sucesivamente. 764 00:33:50,050 --> 00:33:52,396 >> ALTAVOZ 14: Si conmutada 1.701 mil con 1636, 765 00:33:52,396 --> 00:33:54,187 en realidad no hacen un derecho diferencia? 766 00:33:54,187 --> 00:33:55,770 Es sólo va a ser la comprobación de ella. 767 00:33:55,770 --> 00:33:56,900 >> ANDI Peng: Esa es una muy buena pregunta. 768 00:33:56,900 --> 00:33:58,880 Y nos tocamos esto más adelante, pero sólo 769 00:33:58,880 --> 00:34:01,160 saben que es el interruptor declaración se infinitely-- es 770 00:34:01,160 --> 00:34:03,536 más eficiente de lo que y si else if porque opera 771 00:34:03,536 --> 00:34:06,660 utilizando un tipo diferente de la función que que permite, esencialmente, a poco 772 00:34:06,660 --> 00:34:08,790 saltar directamente a la caso de que necesite para estar en. 773 00:34:08,790 --> 00:34:10,547 Sí. 774 00:34:10,547 --> 00:34:11,255 ALTAVOZ 14: Cool. 775 00:34:11,255 --> 00:34:11,754 Gracias. 776 00:34:11,754 --> 00:34:12,526 ANDI Peng: Sí 777 00:34:12,526 --> 00:34:16,687 >> ALTAVOZ 14: Y no podía ver casos similares, y mayor que. 778 00:34:16,687 --> 00:34:17,270 ANDI Peng: No. 779 00:34:17,270 --> 00:34:19,860 Entonces, eso es lo que está limitando acerca de la sentencia switch es que tienes 780 00:34:19,860 --> 00:34:21,564 tener constantes sólo, sólo números enteros. 781 00:34:21,564 --> 00:34:22,064 Sí. 782 00:34:22,064 --> 00:34:25,179 783 00:34:25,179 --> 00:34:25,820 OK. 784 00:34:25,820 --> 00:34:28,659 >> Así que esto es algo que usted chicos se encontrarán con menos frecuencia de, 785 00:34:28,659 --> 00:34:32,280 pero yo sólo quería introducirlo en el caso. 786 00:34:32,280 --> 00:34:36,210 Aquí tenemos lo que es llamado un operador ternario. 787 00:34:36,210 --> 00:34:39,370 Cuando en esencia, es como un if compila en una sola línea. 788 00:34:39,370 --> 00:34:42,630 Aquí, voy a ir a la siguiente línea, el página siguiente, porque es más fácil de ver. 789 00:34:42,630 --> 00:34:44,860 >> Así que todos hemos visto este derecho? 790 00:34:44,860 --> 00:34:46,110 Esto es bastante fácil de seguir. 791 00:34:46,110 --> 00:34:51,290 Si quisiera hacer una variable llamada de cuerda llamado s, si un cierto número 792 00:34:51,290 --> 00:34:54,770 Le doy es inferior a 100, me desee asignar baja a la cadena, 793 00:34:54,770 --> 00:34:57,240 más que quiero asignar alta. 794 00:34:57,240 --> 00:35:01,370 >> Esto aquí es hacer la misma cosa exacta esos ocho líneas de código están haciendo. 795 00:35:01,370 --> 00:35:03,600 Así que aquí quiero crear una cadena variable. 796 00:35:03,600 --> 00:35:08,520 Y esta es la condición que soy comprobar, si un número es menor que 100, 797 00:35:08,520 --> 00:35:12,750 a continuación, se asigna el valor de la baja, otra cosa asignar el valor de alta. 798 00:35:12,750 --> 00:35:15,802 >> Estas diapositivas estarán en línea, no se preocupe si ustedes no lo entiendo esto. 799 00:35:15,802 --> 00:35:18,510 Esto es sólo una manera más sencilla, una más forma eficaz de escribir código. 800 00:35:18,510 --> 00:35:21,290 801 00:35:21,290 --> 00:35:21,810 OK. 802 00:35:21,810 --> 00:35:25,190 >> Así que ahora vamos a entrar en lo que, para la mayoría de la gente 803 00:35:25,190 --> 00:35:28,660 son como un muy, muy confuso cosa que pensar en un principio. 804 00:35:28,660 --> 00:35:30,226 La sección de bucle. 805 00:35:30,226 --> 00:35:32,600 Así que hoy, vamos a hablar alrededor de tres tipos de bucles. 806 00:35:32,600 --> 00:35:34,890 Vamos a comenzar con un tiempo bucle, entonces hablar de un do while, 807 00:35:34,890 --> 00:35:36,740 y luego hablar de los bucles. 808 00:35:36,740 --> 00:35:40,010 >> Así que, esencialmente, para los más estudiantes visuales por ahí, 809 00:35:40,010 --> 00:35:44,410 tenemos, en esencia, una gráfica descripción de lo que hace un bucle while. 810 00:35:44,410 --> 00:35:48,290 Así que en una programación, que comenzaría y entrar en el bucle en un momento determinado. 811 00:35:48,290 --> 00:35:49,470 Se comprueba una condición. 812 00:35:49,470 --> 00:35:52,165 Y si la condición es verdadera, se ejecuta el código dentro. 813 00:35:52,165 --> 00:35:53,790 Y usted se vuelve alrededor y comprobar. 814 00:35:53,790 --> 00:35:57,190 Si sigue siendo cierto que sigue corriendo este código vueltas y vueltas en un bucle. 815 00:35:57,190 --> 00:36:00,970 >> Sin embargo, el segundo que la condición se convierte en falsa, 816 00:36:00,970 --> 00:36:02,739 usted va a romper y poner fin al ciclo. 817 00:36:02,739 --> 00:36:05,030 Y esto es esencialmente el sintaxis que vas a usar. 818 00:36:05,030 --> 00:36:08,250 Mientras que una cierta condición es verdad a hacer esto, si no es cierto, 819 00:36:08,250 --> 00:36:12,920 que va a pasar a la final y seguir adelante con su programa. 820 00:36:12,920 --> 00:36:13,690 OK. 821 00:36:13,690 --> 00:36:17,250 >> ¿Alguien tiene un ejemplo en lo que puede potencialmente suceder 822 00:36:17,250 --> 00:36:19,160 si trato de ejecutar este trozo de código? 823 00:36:19,160 --> 00:36:22,470 Por cierto, eso es Scaz SAJ--, Andi, Jason-- vamos a firmar nuestros correos electrónicos, 824 00:36:22,470 --> 00:36:24,830 El amor, la SAJ. 825 00:36:24,830 --> 00:36:25,573 Esos somos nosotros. 826 00:36:25,573 --> 00:36:26,500 OK. 827 00:36:26,500 --> 00:36:29,829 >> Alguien tiene un ejemplo, o tienen una idea de lo que esto imprimir? 828 00:36:29,829 --> 00:36:30,870 Tipo de una pregunta con trampa. 829 00:36:30,870 --> 00:36:34,550 830 00:36:34,550 --> 00:36:39,380 Así que aquí, recordar la condición estamos comprobando es para mientras cierto. 831 00:36:39,380 --> 00:36:42,840 Así, mientras que esto es cierto, es va a imprimir, me encanta SAJ! 832 00:36:42,840 --> 00:36:48,460 ¿Hay algún punto en el que nos habíamos cambiar esto a algo de otra manera? 833 00:36:48,460 --> 00:36:49,050 No, ¿verdad? 834 00:36:49,050 --> 00:36:51,470 >> Así que aquí, tenemos encontrado lo que probablemente 835 00:36:51,470 --> 00:36:54,310 va a estar molestando mucho sus programas, el bucle infinito. 836 00:36:54,310 --> 00:36:56,268 Usted encontrará que si ejecutar este trozo de código, 837 00:36:56,268 --> 00:36:58,160 que sólo va a mantener la impresión, me encanta SAJ! 838 00:36:58,160 --> 00:37:00,701 Si bien apreciamos el apoyo, no queremos que los ordenadores 839 00:37:00,701 --> 00:37:02,910 a chocar porque mantener la impresión Me encanta SAJ! 840 00:37:02,910 --> 00:37:05,320 >> Así que por favor, por favor, evitar el bucle infinito 841 00:37:05,320 --> 00:37:07,320 porque nunca va para evaluar en false 842 00:37:07,320 --> 00:37:08,780 y nunca vas dejar el bucle. 843 00:37:08,780 --> 00:37:10,530 Y usted va a ser aspirado siempre. 844 00:37:10,530 --> 00:37:13,000 Guay. 845 00:37:13,000 --> 00:37:13,694 OK. 846 00:37:13,694 --> 00:37:15,610 El segundo tipo de bucle hablaremos de hoy 847 00:37:15,610 --> 00:37:17,580 es el do while, do while. 848 00:37:17,580 --> 00:37:20,580 Y se llama un do while porque usted tiene un do y un tiempo. 849 00:37:20,580 --> 00:37:24,390 Así que esto es bastante similar a un tiempo lazo, pero un poco diferente. 850 00:37:24,390 --> 00:37:27,620 Aquí, vamos a hacer lo de dentro de este 851 00:37:27,620 --> 00:37:29,747 mientras que una cierta condición es verdadera. 852 00:37:29,747 --> 00:37:32,580 Así que si yo fuera C y el ordenador que estoy corriendo por este pedazo de código, 853 00:37:32,580 --> 00:37:33,880 Echo un vistazo en la parte superior. 854 00:37:33,880 --> 00:37:36,890 Voy a C, digo hacer esta cosa. 855 00:37:36,890 --> 00:37:40,550 Y entonces puedo comprobar, si bien esto Es cierto, tengo que repetirlo. 856 00:37:40,550 --> 00:37:42,750 Pero mientras que esto es falso, entonces me muevo hacia adelante 857 00:37:42,750 --> 00:37:44,700 y nunca vuelvo a ese bucle de nuevo. 858 00:37:44,700 --> 00:37:48,360 >> ¿Alguien puede tomar una puñalada a lo que la diferencia 859 00:37:48,360 --> 00:37:52,130 entre este bucle y la que se limitó a era prácticamente. 860 00:37:52,130 --> 00:37:52,717 Sí. 861 00:37:52,717 --> 00:37:55,050 ALTAVOZ 15: La condición viene después y no antes? 862 00:37:55,050 --> 00:37:55,841 ANDI Peng: Exactamente. 863 00:37:55,841 --> 00:37:57,984 Así que ella dijo que la condición viene después, no antes. 864 00:37:57,984 --> 00:38:00,400 En última instancia, la diferencia entre este y el bucle while 865 00:38:00,400 --> 00:38:03,597 es que sólo vamos a hacer lo de dentro de este, independientemente de 866 00:38:03,597 --> 00:38:06,430 si su condición es verdadero y, a continuación, comprobar el estado. 867 00:38:06,430 --> 00:38:08,304 Así que en este caso, usted es always-- de esta manera, 868 00:38:08,304 --> 00:38:11,240 siempre estás asegurándose lo que hay dentro se ejecuta al menos 869 00:38:11,240 --> 00:38:14,230 una vez antes de la comprobación para ver si desea que se ejecute de nuevo. 870 00:38:14,230 --> 00:38:18,040 >> Y aquí es un ejemplo cuando queremos usarlo. 871 00:38:18,040 --> 00:38:22,570 Así por ejemplo, si yo quería tener una variable de tipo int llamada edad, 872 00:38:22,570 --> 00:38:25,640 y quiero incitar el usuario para su edad, 873 00:38:25,640 --> 00:38:27,910 Yo voy a hacer printf () ¿Cual es tu edad? 874 00:38:27,910 --> 00:38:30,330 edad = getInt (), que es preguntar al usuario. 875 00:38:30,330 --> 00:38:32,140 >> Y algunas personas va a ser muy molesto. 876 00:38:32,140 --> 00:38:34,931 Y usted no quiere errores en su programa de alguien ingresar como, 877 00:38:34,931 --> 00:38:36,680 oh Estoy negativo 4 años de edad o lo que sea. 878 00:38:36,680 --> 00:38:39,900 En cuyo caso, si hacer eso, esto se evalúa 879 00:38:39,900 --> 00:38:43,150 true, lo que significa que voy a tienes que mantener volver y hacer esto. 880 00:38:43,150 --> 00:38:45,310 Así que esto va a seguir re-preguntar al usuario 881 00:38:45,310 --> 00:38:47,960 para darte como un verdadero número de años de edad y es 882 00:38:47,960 --> 00:38:51,930 va a seguir adelante hacia atrás y rehacer hasta que te dan una verdadera edad 883 00:38:51,930 --> 00:38:56,900 mayor que uno, o no cero. 884 00:38:56,900 --> 00:38:58,020 >> Así pista, pista. 885 00:38:58,020 --> 00:39:02,263 Esto va a ser muy, muy útil para uno de sus problemas PSet. 886 00:39:02,263 --> 00:39:04,155 Sí. 887 00:39:04,155 --> 00:39:05,580 >> ALTAVOZ 16: ¡Vaya, lo siento. 888 00:39:05,580 --> 00:39:06,288 >> ANDI Peng: Sí. 889 00:39:06,288 --> 00:39:09,424 >> ALTAVOZ 16: ¿Hay, no para ser un imbécil, pero- 890 00:39:09,424 --> 00:39:10,340 ANDI Peng: No se preocupe. 891 00:39:10,340 --> 00:39:11,990 ALTAVOZ 16: --¿Hay diferentes reglas aquí, 892 00:39:11,990 --> 00:39:13,810 ¿O simplemente se olvida para poner la cita? 893 00:39:13,810 --> 00:39:14,250 >> ANDI Peng: Oh Yeah. 894 00:39:14,250 --> 00:39:15,530 Lo sentimos, pero eso es totalmente mi mal. 895 00:39:15,530 --> 00:39:17,100 Eso fue sin duda supone que es una cita. 896 00:39:17,100 --> 00:39:17,690 Buena atrapada. 897 00:39:17,690 --> 00:39:18,800 Eso no ha ejecutado. 898 00:39:18,800 --> 00:39:22,070 899 00:39:22,070 --> 00:39:22,830 OK. 900 00:39:22,830 --> 00:39:26,160 >> Así que el último tipo de bucle hablaremos sobre y, en última instancia, la clase de los más 901 00:39:26,160 --> 00:39:28,854 complejo es el bucle for. 902 00:39:28,854 --> 00:39:30,770 No se preocupe si usted no lo hace saben lo que eso significa. 903 00:39:30,770 --> 00:39:32,061 Es bastante confuso al principio. 904 00:39:32,061 --> 00:39:33,640 Vamos a repasar un ejemplo. 905 00:39:33,640 --> 00:39:37,040 >> Todo lo que sucede en un bucle for es que tiene tres estados 906 00:39:37,040 --> 00:39:38,380 que se va a incluir. 907 00:39:38,380 --> 00:39:42,130 Así que para una cosa determinada, eres va a inicializar una variable. 908 00:39:42,130 --> 00:39:45,280 Vas a agregar a la condición de que este bucle seguirá funcionando. 909 00:39:45,280 --> 00:39:47,790 Y luego, al final de la lazo, usted va a actualizarlo. 910 00:39:47,790 --> 00:39:50,248 Puede actualizar la variable que desea seguir la pista. 911 00:39:50,248 --> 00:39:52,530 Así que normalmente utilizamos para los bucles para cuando 912 00:39:52,530 --> 00:39:55,390 que desee ejecutar un bucle para un cierta cantidad de veces 913 00:39:55,390 --> 00:39:58,900 y ya sabemos, Oh quiero este bucle se ejecute como 10 veces, 914 00:39:58,900 --> 00:40:03,060 entonces usted hacer-- voy a ir más un ejemplo de la página siguiente. 915 00:40:03,060 --> 00:40:07,830 >> Así que aquí, por ejemplo, en Scratch, si quería algo que repetir 10 veces, 916 00:40:07,830 --> 00:40:10,790 todo lo que tenía que decir era, repita 10 veces I love SAJ! 917 00:40:10,790 --> 00:40:15,260 que es una más aceptable muestra de apoyo para nosotros 918 00:40:15,260 --> 00:40:17,120 en lugar de la bucle infinito. 919 00:40:17,120 --> 00:40:19,920 En este caso, la forma en que lo haría transición a C y de escritura 920 00:40:19,920 --> 00:40:26,040 es decir, para int-- Voy a crear o declarar una variable de tipo int llamado i. 921 00:40:26,040 --> 00:40:30,089 Voy a inicializar a 0, por lo que i = 0; 922 00:40:30,089 --> 00:40:31,630 y esto va a ser mi condición. 923 00:40:31,630 --> 00:40:33,860 Así que i es menor que 10. 924 00:40:33,860 --> 00:40:36,096 Y luego en el end-- la última declaración que eres 925 00:40:36,096 --> 00:40:38,710 va a tener es la actualización de lo que ocurre con la variable de i 926 00:40:38,710 --> 00:40:40,206 al final de su ciclo for. 927 00:40:40,206 --> 00:40:42,830 Así que es un poco confuso, ya que diferentes partes de esta línea 928 00:40:42,830 --> 00:40:44,871 están sucediendo en diferentes tipos de bucle. 929 00:40:44,871 --> 00:40:46,746 Pero voy a ir a través de una pseudocódigo de ejemplo que 930 00:40:46,746 --> 00:40:50,360 y tal vez explicar esta sólo un poco mejor. 931 00:40:50,360 --> 00:40:51,500 >> Así que aquí. 932 00:40:51,500 --> 00:40:52,929 Ese es el lazo que acabamos de ver. 933 00:40:52,929 --> 00:40:55,470 Esencialmente en pseudocódigo, lo que está sucediendo en este programa, 934 00:40:55,470 --> 00:40:57,940 es primero que estoy creando i, inicializar a 0. 935 00:40:57,940 --> 00:41:00,440 Estoy comprobando si i es menos de 10, en cuyo caso 936 00:41:00,440 --> 00:41:02,840 la primera vez que es porque 0 es menor que 10. 937 00:41:02,840 --> 00:41:04,727 Así, el bucle se va a ejecutar. 938 00:41:04,727 --> 00:41:06,310 Y luego voy a imprimir esta línea. 939 00:41:06,310 --> 00:41:11,240 Y luego, al final de esta línea, a la derecha aquí, yo voy a hacer la subasta i, i ++, 940 00:41:11,240 --> 00:41:13,370 todo lo que significa es incrementándolo por uno. 941 00:41:13,370 --> 00:41:15,460 >> Así que ahora es 1. 942 00:41:15,460 --> 00:41:17,960 Debido a que una vez fue 0, si incrementa es, ahora es 1. 943 00:41:17,960 --> 00:41:19,610 Y luego voy a volver al principio del bucle 944 00:41:19,610 --> 00:41:20,730 y puedo comprobar el estado. 945 00:41:20,730 --> 00:41:22,080 Es la condición sigue siendo cierto? 946 00:41:22,080 --> 00:41:24,030 Sí, 1 sigue siendo inferior a 10. 947 00:41:24,030 --> 00:41:27,370 Así que va a imprimir de nuevo, ir y luego incrementar i, y se les 948 00:41:27,370 --> 00:41:29,180 la condición de forma continua, de forma continua, 949 00:41:29,180 --> 00:41:33,290 hasta que finalmente consigue hasta el punto donde i es 10. 950 00:41:33,290 --> 00:41:36,300 >> Usted va a imprimir esto 10 veces y luego me va a ser igual a 10. 951 00:41:36,300 --> 00:41:37,800 Vas a comprobar el estado. 952 00:41:37,800 --> 00:41:38,760 Es 10 menos de 10? 953 00:41:38,760 --> 00:41:40,370 No, eso es falso. 954 00:41:40,370 --> 00:41:43,020 Por lo tanto, este bucle no va correr, se va a romper, 955 00:41:43,020 --> 00:41:45,040 y usted va a continuar con su código. 956 00:41:45,040 --> 00:41:47,550 >> Así como ustedes pueden ver, este Es realmente un gran ejemplo 957 00:41:47,550 --> 00:41:53,110 de un bucle se puede programar en ese tiene una duración de una determinada cantidad de veces. 958 00:41:53,110 --> 00:41:54,457 Todo el claro? 959 00:41:54,457 --> 00:41:54,956 Sí. 960 00:41:54,956 --> 00:41:59,060 >> ALTAVOZ 17: ¿Qué hay de la subasta exponencialmente, se diferencia de codificación? 961 00:41:59,060 --> 00:42:02,060 >> ANDI Peng: Usted can-- iremos sobre esto en la siguiente diapositiva. 962 00:42:02,060 --> 00:42:03,350 Buena pregunta. 963 00:42:03,350 --> 00:42:05,910 Es anyone-- antes de pasar en-- nadie en absoluto confusa, 964 00:42:05,910 --> 00:42:07,640 porque se trata de un concepto muy difícil. 965 00:42:07,640 --> 00:42:09,510 No se preocupe, si you're-- Aceptar. 966 00:42:09,510 --> 00:42:10,010 Guay. 967 00:42:10,010 --> 00:42:12,836 968 00:42:12,836 --> 00:42:13,490 >> Correcto. 969 00:42:13,490 --> 00:42:14,610 Sólo una diapositiva general. 970 00:42:14,610 --> 00:42:18,020 Este bucle mientras está haciendo la exactamente lo mismo el bucle for era. 971 00:42:18,020 --> 00:42:19,631 Es sólo escrito de manera diferente. 972 00:42:19,631 --> 00:42:22,130 Ustedes pueden leer detenidamente las diapositivas a su conveniencia más tarde. 973 00:42:22,130 --> 00:42:24,880 Pero sólo sé que hay múltiples maneras de escribir lo mismo 974 00:42:24,880 --> 00:42:28,300 a pasar con diferentes bucles. 975 00:42:28,300 --> 00:42:28,800 OK. 976 00:42:28,800 --> 00:42:32,380 >> Así que, ahora nos metemos en la cuestión de qué si tenemos un bucle dentro de un bucle. 977 00:42:32,380 --> 00:42:35,810 Estamos recibiendo en bienes Tipo de Inception cosas aquí. 978 00:42:35,810 --> 00:42:40,640 Cuando usted quiere hacer cosas múltiple veces dentro de otras cosas 979 00:42:40,640 --> 00:42:44,129 que hacer las cosas varias veces, querer lo que se llama un anidado de bucle. 980 00:42:44,129 --> 00:42:47,420 Para aquellos de ustedes que primero ver esto y conseguir muy confuso, todo lo que estamos haciendo aquí 981 00:42:47,420 --> 00:42:50,580 está teniendo un bucle donde tenemos una variable de fila. 982 00:42:50,580 --> 00:42:54,500 Pero dentro de ella, también tenemos otra para el bucle de una columna variable llamada. 983 00:42:54,500 --> 00:42:58,560 Y le recomiendo a todos ustedes que se confunden para mantener primero 984 00:42:58,560 --> 00:43:00,310 track-- dibujar esto, dibuje esto. 985 00:43:00,310 --> 00:43:03,000 No trate de justa razón a través de él, lo alcanzará. 986 00:43:03,000 --> 00:43:06,630 >> En tu cabeza, en este pedazo de papel, o lo que sea, la fila de escritura, 987 00:43:06,630 --> 00:43:08,614 no perder de vista lo que la fila es igual. 988 00:43:08,614 --> 00:43:10,780 Escribe la columna, hacer un seguimiento de lo que la columna es igual a. 989 00:43:10,780 --> 00:43:13,490 Y no perder de vista lo que es imprimir con cada iteración. 990 00:43:13,490 --> 00:43:16,320 Cada iteración de este bucle, cada iteración del lazo más grande que, 991 00:43:16,320 --> 00:43:17,820 sólo seguir siguiendo la lógica. 992 00:43:17,820 --> 00:43:20,190 Y te garantizo que, te encantará lo que ves, 993 00:43:20,190 --> 00:43:24,307 porque también es muy aplicable para sus boletines de problemas. 994 00:43:24,307 --> 00:43:24,806 Guay. 995 00:43:24,806 --> 00:43:27,501 996 00:43:27,501 --> 00:43:28,000 Correcto. 997 00:43:28,000 --> 00:43:30,723 Así que lo más importante que ustedes son probablemente todos 998 00:43:30,723 --> 00:43:32,400 pensando en este momento, son su problema Establezca 1s, 999 00:43:32,400 --> 00:43:33,650 que se deben Jueves / Viernes. 1000 00:43:33,650 --> 00:43:36,890 1001 00:43:36,890 --> 00:43:39,710 >> En su programa water.c, Sugerencia vas a tener 1002 00:43:39,710 --> 00:43:41,590 para pedir al usuario para una entrada. 1003 00:43:41,590 --> 00:43:43,640 Dentro de su programa de mario.c vas a tener 1004 00:43:43,640 --> 00:43:46,431 para utilizar un bucle anidado para, que es un bucle dentro de un bucle for, 1005 00:43:46,431 --> 00:43:50,247 para imprimir un bloque de pirámide, en esencia como lo que Mario tiene que saltar a través. 1006 00:43:50,247 --> 00:43:53,330 Y luego dentro de su greedy-- o tal vez Hacer realidad el cambio, si alguno de ustedes 1007 00:43:53,330 --> 00:43:55,740 alguna vez ha oído hablar de eso-- usted va a tener que ser muy 1008 00:43:55,740 --> 00:43:58,160 cuidado de los primeros valores de coma flotante. 1009 00:43:58,160 --> 00:44:01,860 Recuerde decimales flotantes y enteros no son la misma cosa. 1010 00:44:01,860 --> 00:44:03,620 Lleve un registro de cuál es cuál. 1011 00:44:03,620 --> 00:44:05,953 Y usted va a utilizar sentencias condicionales, también. 1012 00:44:05,953 --> 00:44:09,070 1013 00:44:09,070 --> 00:44:10,940 >> Muy bien, lo último. 1014 00:44:10,940 --> 00:44:12,770 Tengo un par de minutos para el final. 1015 00:44:12,770 --> 00:44:13,460 Estilo. 1016 00:44:13,460 --> 00:44:19,320 Así que esto es algo que no se hace en realidad efectuar la eficiencia, 1017 00:44:19,320 --> 00:44:21,010 o el funcionamiento real de su código. 1018 00:44:21,010 --> 00:44:24,380 Sin embargo, nos afecta como su grado, como sus lectores. 1019 00:44:24,380 --> 00:44:27,290 Afecta a ti mismo, si eres tratando de encontrar un problema. 1020 00:44:27,290 --> 00:44:30,700 Afecta la legibilidad del código. 1021 00:44:30,700 --> 00:44:34,070 >> Así estilo, como cuando usted está tratando de el estilo de un ensayo para Inglés, si usted 1022 00:44:34,070 --> 00:44:36,070 no tuvo párrafos, que tiene todo tipo 1023 00:44:36,070 --> 00:44:39,190 del involucró juntos en una línea, hace que sea muy difícil para cualquiera 1024 00:44:39,190 --> 00:44:42,620 para leer su ensayo, incluso si sus puntos son lógicamente sonido. 1025 00:44:42,620 --> 00:44:44,390 Lo mismo en la programación. 1026 00:44:44,390 --> 00:44:47,910 Usted puede tener horriblemente oscura código que Scaz cubrirá, 1027 00:44:47,910 --> 00:44:49,660 y todavía puede correr y función. 1028 00:44:49,660 --> 00:44:53,110 Pero para nosotros, como sus preciosas TA, la OMS estar leyendo y evaluando sus conjuntos de procesadores, 1029 00:44:53,110 --> 00:44:54,460 eso no es muy agradable. 1030 00:44:54,460 --> 00:44:56,859 >> Así que por favor, por el bien de nosotros y usted mismo, 1031 00:44:56,859 --> 00:44:58,900 cuando usted está tratando de arreglar un problema en su código, 1032 00:44:58,900 --> 00:45:00,774 y que está tratando de leer su propio código, que 1033 00:45:00,774 --> 00:45:03,910 asegúrese de seguir algunas convenciones que vamos a repasar. 1034 00:45:03,910 --> 00:45:04,510 >> Así que en primer lugar. 1035 00:45:04,510 --> 00:45:07,070 Dé a sus variables de nombres significativos. 1036 00:45:07,070 --> 00:45:11,450 Si desea almacenar un número entero llamada edad, por favor nombrarlo edad. 1037 00:45:11,450 --> 00:45:12,875 No nombrarlo altura. 1038 00:45:12,875 --> 00:45:14,750 Cuando usted está tratando de almacenar una edad en la altura, 1039 00:45:14,750 --> 00:45:16,722 hace que todo muy confuso para nosotros. 1040 00:45:16,722 --> 00:45:17,930 No nos gusta ser confundido. 1041 00:45:17,930 --> 00:45:19,180 ¿No le gusta ser confundido. 1042 00:45:19,180 --> 00:45:20,350 A nadie le gusta ser confundido. 1043 00:45:20,350 --> 00:45:23,100 Si usted va a crear algo, nombrarlo algo significativo. 1044 00:45:23,100 --> 00:45:26,440 >> Sin embargo, en bucle, sola las variables de carácter son generalmente muy bien. 1045 00:45:26,440 --> 00:45:31,350 Y en bucle, si quieres simplemente i, y j, k, no dude en hacer eso. 1046 00:45:31,350 --> 00:45:32,670 >> Inicialización consistente. 1047 00:45:32,670 --> 00:45:33,770 ¿Entonces que significa eso? 1048 00:45:33,770 --> 00:45:37,600 Eso significa técnicamente, teóricamente, puede iniciar y crear 1049 00:45:37,600 --> 00:45:40,140 múltiples variables en la misma línea. 1050 00:45:40,140 --> 00:45:42,820 Así, por ejemplo, puedo crear un entero llamado scaz_age, 1051 00:45:42,820 --> 00:45:47,110 y entero llamado andi_age = 20, y un entero llamado jason_age 1052 00:45:47,110 --> 00:45:48,090 en la misma línea. 1053 00:45:48,090 --> 00:45:52,060 Y también puedo asignar sólo uno de ellos y no a los otros a los valores. 1054 00:45:52,060 --> 00:45:54,142 Les pedimos que por favor no hagas eso. 1055 00:45:54,142 --> 00:45:57,350 Porque aquí se ha creado esencialmente tres variables, pero sólo uno de ellos 1056 00:45:57,350 --> 00:45:58,295 en realidad tiene un valor. 1057 00:45:58,295 --> 00:46:00,170 Y luego, cuando estamos tratando de leer su código, 1058 00:46:00,170 --> 00:46:01,850 o si usted está tratando de arreglar un problema en su código, 1059 00:46:01,850 --> 00:46:03,340 es muy confuso para seguir. 1060 00:46:03,340 --> 00:46:09,300 Así que para su legibilidad, por nuestra lectura, no hagas eso. 1061 00:46:09,300 --> 00:46:10,355 >> Llaves consistente. 1062 00:46:10,355 --> 00:46:12,980 Algunas personas les gusta poner su llaves en diferentes lugares. 1063 00:46:12,980 --> 00:46:14,100 En realidad no importa. 1064 00:46:14,100 --> 00:46:17,900 Sólo asegúrese de que usted es coherente en su propio código de dónde te gusta ponerlos. 1065 00:46:17,900 --> 00:46:18,950 >> Espaciado consistente. 1066 00:46:18,950 --> 00:46:22,040 Si pones un espacio después de un bucle, siempre hacer eso. 1067 00:46:22,040 --> 00:46:24,930 No se limite a recibir clase de hacerlo en algunos lugares, no lo hacen en otros. 1068 00:46:24,930 --> 00:46:26,580 Apenas sea consistente. 1069 00:46:26,580 --> 00:46:29,500 >> En segundo lugar, si alguien quisiera para examinar la Guía de Estilo CS50, 1070 00:46:29,500 --> 00:46:33,230 que oficialmente tenemos una guía de estilo que que todas estas convenciones dice, 1071 00:46:33,230 --> 00:46:34,890 y más. 1072 00:46:34,890 --> 00:46:35,530 Está en línea. 1073 00:46:35,530 --> 00:46:38,670 Es como cs50.net/style o algo asi. 1074 00:46:38,670 --> 00:46:40,180 Puede google. 1075 00:46:40,180 --> 00:46:41,399 >> La consistencia es la clave. 1076 00:46:41,399 --> 00:46:43,190 Así que no te lo otras personas están haciendo, 1077 00:46:43,190 --> 00:46:46,180 sólo asegúrese de que usted es consistente dentro de su propio código. 1078 00:46:46,180 --> 00:46:50,570 ¿Alguien tiene alguna pregunta acerca de eso? 1079 00:46:50,570 --> 00:46:51,070 Sí. 1080 00:46:51,070 --> 00:46:53,370 >> ALTAVOZ 18: Así que la cosa correcta que ver con la inicialización es sólo 1081 00:46:53,370 --> 00:46:56,130 todos ellos tienen en una separada línea, es que lo que estás diciendo? 1082 00:46:56,130 --> 00:46:58,850 >> ANDI Peng: Así que rara vez he suceder esto. 1083 00:46:58,850 --> 00:47:02,230 Pero si usted quiere, si querías ser como el ahorro de espacio en su código, 1084 00:47:02,230 --> 00:47:04,000 o lo que sea, usted puede hacer esto. 1085 00:47:04,000 --> 00:47:07,800 Les pedimos que simplemente no inicializar una cosa y no a los demás. 1086 00:47:07,800 --> 00:47:12,600 Así que si usted quiere hacer int scaz_age, int andi_age, int jason_age, eso está bien. 1087 00:47:12,600 --> 00:47:15,600 Eso sí, no inicializar un solo y no a los demás es todo. 1088 00:47:15,600 --> 00:47:18,380 1089 00:47:18,380 --> 00:47:19,904 >> ¿Preguntas? 1090 00:47:19,904 --> 00:47:20,850 Correcto. 1091 00:47:20,850 --> 00:47:24,610 Voy a pasar por el micrófono, y el puntero láser, 1092 00:47:24,610 --> 00:47:28,862 y el testigo a Scaz en este punto. 1093 00:47:28,862 --> 00:47:29,808 Esto es incómodo. 1094 00:47:29,808 --> 00:47:32,650 1095 00:47:32,650 --> 00:47:33,200 Aquí está. 1096 00:47:33,200 --> 00:47:34,408 >> BRIAN Scassellati: Gracias. 1097 00:47:34,408 --> 00:47:42,500 1098 00:47:42,500 --> 00:47:43,380 ¿Cómo es eso de sonido? 1099 00:47:43,380 --> 00:47:46,420 1100 00:47:46,420 --> 00:47:47,900 El sonido es bueno? . 1101 00:47:47,900 --> 00:47:49,220 Excelente. 1102 00:47:49,220 --> 00:47:50,350 OK. 1103 00:47:50,350 --> 00:47:52,110 Así, hola a todos. 1104 00:47:52,110 --> 00:47:56,540 >> Voy a tratar de trabajar a través de un ejemplo práctico con usted. 1105 00:47:56,540 --> 00:48:00,850 Y vamos a utilizar CS50 de entorno de desarrollo, lo que se llama 1106 00:48:00,850 --> 00:48:03,120 el entorno de desarrollo integrado. 1107 00:48:03,120 --> 00:48:05,145 Y ya has visto esta demostrado en la conferencia. 1108 00:48:05,145 --> 00:48:07,520 Y en el problema Set 1, eres va a tener una oportunidad 1109 00:48:07,520 --> 00:48:10,890 para usarlo, y jugar con , y acostumbrarse a ella, 1110 00:48:10,890 --> 00:48:13,640 porque vamos a utilizarlo por el resto del semestre. 1111 00:48:13,640 --> 00:48:20,350 >> Así que en este IDE, usted tiene lo que parece como un explorador de archivos muy tradicional 1112 00:48:20,350 --> 00:48:21,890 Más en un lado. 1113 00:48:21,890 --> 00:48:24,360 Usted tiene una porción de hasta superior a dónde va 1114 00:48:24,360 --> 00:48:28,850 para ver su código fuente, su CFile, el código que usted escribe. 1115 00:48:28,850 --> 00:48:31,880 Y abajo abajo, podrás tener una ventana de terminal 1116 00:48:31,880 --> 00:48:36,330 que se va a utilizar para tanto compilar su programa 1117 00:48:36,330 --> 00:48:39,090 y para ejecutar o ejecutar su programa. 1118 00:48:39,090 --> 00:48:40,100 OK. 1119 00:48:40,100 --> 00:48:46,560 >> Así que para darnos un poco de fundación, en esa ventana de terminal, 1120 00:48:46,560 --> 00:48:48,930 usted va a ser utilizando un conjunto de comandos 1121 00:48:48,930 --> 00:48:53,040 que son comandos estándar en todo la mayoría de los sistemas Unix o Linux. 1122 00:48:53,040 --> 00:48:55,890 Y por lo que si usted ha utilizado alguna vez cualquier forma de Unix, Ubuntu, 1123 00:48:55,890 --> 00:48:59,140 o cualquiera de los otros sabores, estos van a parecer familiar. 1124 00:48:59,140 --> 00:49:00,890 >> Si usted no tiene, no se preocupe. 1125 00:49:00,890 --> 00:49:02,830 No hay nada complicado sobre ellos. 1126 00:49:02,830 --> 00:49:05,330 Sólo están usando una diferente sintaxis, una denominación diferente 1127 00:49:05,330 --> 00:49:07,630 convenciones de lo que he visto antes. 1128 00:49:07,630 --> 00:49:12,190 >> Así que hacer una lista de los archivos dentro de un directorio en particular, 1129 00:49:12,190 --> 00:49:15,310 que van a utilizar un comando llama ls, o lista. 1130 00:49:15,310 --> 00:49:18,010 Si quieres ver todo con todos los detalles, 1131 00:49:18,010 --> 00:49:21,535 vamos a usar un comando argumento de la línea con ls -l. 1132 00:49:21,535 --> 00:49:23,910 Y que te muestro todo en más detalle, incluyendo 1133 00:49:23,910 --> 00:49:26,270 los permisos para un archivo. 1134 00:49:26,270 --> 00:49:31,190 >> Para cambiar de directorio, vamos a usar el comando cd. 1135 00:49:31,190 --> 00:49:35,180 Y podrás cambiar de directorio tanto para ir a su directorio personal. 1136 00:49:35,180 --> 00:49:38,500 Eso es todo por cd sí, cd con de dos 1137 00:49:38,500 --> 00:49:42,930 puntos volverán ustedes a uno nivel a su directorio anterior. 1138 00:49:42,930 --> 00:49:46,400 Y que también puedes cd a un subdirectorio tecleando cd 1139 00:49:46,400 --> 00:49:48,500 y el nombre de ese subdirectorio. 1140 00:49:48,500 --> 00:49:50,540 >> También puede crear nuevos directorios. 1141 00:49:50,540 --> 00:49:52,790 Y vamos a caminar a través de este en tan sólo unos minutos. 1142 00:49:52,790 --> 00:49:54,498 Pero sólo para poner todo en la pantalla. 1143 00:49:54,498 --> 00:49:56,310 Para que usted pueda verlos. 1144 00:49:56,310 --> 00:50:00,420 >> Usted también tiene la capacidad para manipular archivos directamente 1145 00:50:00,420 --> 00:50:02,100 desde la línea de comandos. 1146 00:50:02,100 --> 00:50:06,059 Podrás copiarlos, a moverlos, o para eliminarlos, 1147 00:50:06,059 --> 00:50:07,600 es decir, de manera efectiva, para eliminarlos. 1148 00:50:07,600 --> 00:50:10,310 1149 00:50:10,310 --> 00:50:15,350 >> El IDE CS50 le da el pleno poder de los argumentos de línea de comandos. 1150 00:50:15,350 --> 00:50:20,280 Y eso significa que también puedes hacer cosas muy peligrosas. 1151 00:50:20,280 --> 00:50:21,560 OK. 1152 00:50:21,560 --> 00:50:25,010 Por ejemplo, usted puede eliminar, o que es borrado, 1153 00:50:25,010 --> 00:50:28,750 un archivo sin preguntar para una confirmación. 1154 00:50:28,750 --> 00:50:31,820 E incluso se puede eliminar recursively-- eso es 1155 00:50:31,820 --> 00:50:38,940 el tablero r flag-- toda una subdirectorio y todo su contenido. 1156 00:50:38,940 --> 00:50:39,660 OK. 1157 00:50:39,660 --> 00:50:42,940 Están listadas en rojo porque debe pensar "Peligro" cada vez 1158 00:50:42,940 --> 00:50:45,000 ves esas cosas. 1159 00:50:45,000 --> 00:50:45,920 OK. 1160 00:50:45,920 --> 00:50:46,420 Correcto. 1161 00:50:46,420 --> 00:50:50,090 1162 00:50:50,090 --> 00:50:53,430 >> Ahora, por fin, las cosas que son va a ser muy valioso para usted, 1163 00:50:53,430 --> 00:50:57,270 hay algunos buenos trucos saber lo que estás navegando 1164 00:50:57,270 --> 00:50:59,190 a través de esta ventana de terminal. 1165 00:50:59,190 --> 00:51:03,590 En primer lugar, se puede borrar la pantalla en cualquier momento con solo teclear en claro. 1166 00:51:03,590 --> 00:51:06,310 Y vas a ver me hago muy a menudo. 1167 00:51:06,310 --> 00:51:09,990 También se puede simplemente mostrar el texto de un archivo 1168 00:51:09,990 --> 00:51:13,992 escribiendo más y luego el nombre del archivo. 1169 00:51:13,992 --> 00:51:17,200 A continuación, será capaz de desplazarse hacia atrás y sucesivamente con ese justo con la barra espaciadora 1170 00:51:17,200 --> 00:51:19,010 y las teclas de flecha. 1171 00:51:19,010 --> 00:51:25,450 >> Si usted tiene, como hemos hecho hoy en la conferencia, un programa que se ejecuta de forma continua 1172 00:51:25,450 --> 00:51:29,190 en bucle infinito, que puede detener ese programa 1173 00:51:29,190 --> 00:51:35,160 de ejecutar escribiendo en control, que es la celebración de la tecla Control-C. 1174 00:51:35,160 --> 00:51:38,360 Y es posible que tenga que hacer esto varias veces. 1175 00:51:38,360 --> 00:51:40,620 El equipo se pone muy por delante de ti. 1176 00:51:40,620 --> 00:51:43,380 Y a veces es necesario darle un par de intentos 1177 00:51:43,380 --> 00:51:46,280 antes de que en realidad vienen a través. 1178 00:51:46,280 --> 00:51:48,760 >> También será capaz de ordenar a través de los comandos 1179 00:51:48,760 --> 00:51:54,230 que acaba de escribir usando la tecla de arriba, clave flecha, y luego la tecla de flecha hacia abajo. 1180 00:51:54,230 --> 00:51:57,560 Y lo que es más útil es su lugar de escribir los nombres de archivo largos, 1181 00:51:57,560 --> 00:52:02,209 podrás a la pestaña uso autocompletar algunas instrucciones. 1182 00:52:02,209 --> 00:52:04,750 Ahora vamos a demostrar todos los que en tan sólo un segundo. 1183 00:52:04,750 --> 00:52:06,780 Así que si usted no recuerda ellos, no se preocupe. 1184 00:52:06,780 --> 00:52:10,780 Estas son cosas que usted va a recoger y utilizar a medida que avanzamos. 1185 00:52:10,780 --> 00:52:11,470 OK. 1186 00:52:11,470 --> 00:52:18,830 >> Así que en C-- diferencia de Scratch-- C es un lenguaje compilado. 1187 00:52:18,830 --> 00:52:23,210 Eso significa que vamos a tener una fuente file-- ese es el texto que se escribe, 1188 00:52:23,210 --> 00:52:26,500 los comandos que usted escribe, la printf () declaraciones, los lazos, 1189 00:52:26,500 --> 00:52:32,580 todo else-- y vamos tomar ese archivo y entregarlo fuera 1190 00:52:32,580 --> 00:52:34,670 a un programa llamado el compilador. 1191 00:52:34,670 --> 00:52:39,850 >> El compilador tomará que el texto que has escrito 1192 00:52:39,850 --> 00:52:43,270 y traducirlo en las instrucciones binarias 1193 00:52:43,270 --> 00:52:46,010 de que su equipo es en realidad va usar. 1194 00:52:46,010 --> 00:52:49,700 Eso se llama el objeto o el archivo ejecutable. 1195 00:52:49,700 --> 00:52:55,320 Si nos fijamos en este archivo, vas para ver el código que has escrito. 1196 00:52:55,320 --> 00:52:59,480 Si nos fijamos en este archivo, vas para ver una secuencia aleatoria de caracteres 1197 00:52:59,480 --> 00:53:01,680 que no tienen sentido alguno. 1198 00:53:01,680 --> 00:53:03,250 Eso es porque este es el binario. 1199 00:53:03,250 --> 00:53:05,560 No es la intención para que usted pueda estar leyendo. 1200 00:53:05,560 --> 00:53:08,690 >> Sin embargo, cada vez que quieren ejecutar algo, lo que vas 1201 00:53:08,690 --> 00:53:13,670 que se ejecuta es el archivo objeto. 1202 00:53:13,670 --> 00:53:19,110 Así que cuando trabajamos con ellos archivos, vamos a escribir un archivo en C. 1203 00:53:19,110 --> 00:53:23,400 Entonces vamos a compilarlo, utilizando un comando como marca que invocará 1204 00:53:23,400 --> 00:53:27,070 el estruendo compilador para el lenguaje C. 1205 00:53:27,070 --> 00:53:31,530 Y eso va a producir un objeto presentar, como una salida, o en este caso, 1206 00:53:31,530 --> 00:53:36,580 el nombre, mi archivo, que yo he puesto en. 1207 00:53:36,580 --> 00:53:37,780 Correcto. 1208 00:53:37,780 --> 00:53:39,790 >> Así que vamos a tratar en realidad esto. 1209 00:53:39,790 --> 00:53:42,850 Así que se me ocurrió un ejemplo de lo que quería probar. 1210 00:53:42,850 --> 00:53:47,380 Y una de las cosas que me fascina es la animación. 1211 00:53:47,380 --> 00:53:51,010 Así que vamos a tratar de hacer un poco de animación 1212 00:53:51,010 --> 00:53:53,760 utilizando sólo caracteres ASCII. 1213 00:53:53,760 --> 00:53:56,470 Caracteres que se pueden imprimir fácilmente ahora. 1214 00:53:56,470 --> 00:54:00,890 >> Así que aquí es mi mejor intento a crear para usted 1215 00:54:00,890 --> 00:54:07,005 la animación de un conejito corriendo a través de la hierba alta. 1216 00:54:07,005 --> 00:54:07,505 Ahí está. 1217 00:54:07,505 --> 00:54:10,150 1218 00:54:10,150 --> 00:54:10,670 OK. 1219 00:54:10,670 --> 00:54:14,050 Así que no está funcionando todavía, pero es de pie en la hierba alta. 1220 00:54:14,050 --> 00:54:17,810 >> Ahora bien, si yo fuera un animador, en la vieja escuela 1221 00:54:17,810 --> 00:54:20,860 versión de la animación, lo que haría es yo produzco 1222 00:54:20,860 --> 00:54:23,640 una imagen de este conejito en la hierba. 1223 00:54:23,640 --> 00:54:25,390 Y entonces me gustaría producir otra foto-- 1224 00:54:25,390 --> 00:54:30,600 otra lo que llamaron cell-- que había movido el conejo sólo ligeramente. 1225 00:54:30,600 --> 00:54:34,870 Y luego un tercero que tenía el conejito se acercó un poco más lejos. 1226 00:54:34,870 --> 00:54:40,610 >> Y me gustaría producir un todo secuencia de estas células. 1227 00:54:40,610 --> 00:54:44,220 Algunos, donde el conejo ha terminado en el lado izquierdo. 1228 00:54:44,220 --> 00:54:47,050 Y luego se mueve lentamente, uno por uno hacia el medio. 1229 00:54:47,050 --> 00:54:51,120 Y a continuación, desde la mitad más a la derecha. 1230 00:54:51,120 --> 00:54:55,760 Y si yo fuera entonces, realmente suerte, pude armarlo 1231 00:54:55,760 --> 00:54:57,970 y podría animarlos. 1232 00:54:57,970 --> 00:55:00,370 Y ahí está mi conejito corriendo a través de la hierba. 1233 00:55:00,370 --> 00:55:02,310 >> Esa es mi gran PowerPoint truco para el día. 1234 00:55:02,310 --> 00:55:02,809 OK. 1235 00:55:02,809 --> 00:55:04,760 Así que esto es tan bueno como se pone. 1236 00:55:04,760 --> 00:55:05,260 OK. 1237 00:55:05,260 --> 00:55:08,455 Así pues, aquí una vez más, aquí está nuestra conejito corriendo por la hierba. 1238 00:55:08,455 --> 00:55:09,217 >> ALTAVOZ 19: Una vez más. 1239 00:55:09,217 --> 00:55:11,050 BRIAN Scassellati: Uno más tiempo, de acuerdo. 1240 00:55:11,050 --> 00:55:11,940 Ahí está su conejito. 1241 00:55:11,940 --> 00:55:12,940 OK. 1242 00:55:12,940 --> 00:55:15,470 >> Así que hoy lo que vamos que hacer es que vamos 1243 00:55:15,470 --> 00:55:21,110 para tratar de automatizar el proceso de de producir estas células. 1244 00:55:21,110 --> 00:55:24,135 No vamos bastante llegar al punto de ser capaz de poner a todos juntos. 1245 00:55:24,135 --> 00:55:28,900 Pero, vamos a tratar de automatizar el proceso de generación de esta secuencia. 1246 00:55:28,900 --> 00:55:32,900 >> Y esto es mucho de lo que animación de hoy es como. 1247 00:55:32,900 --> 00:55:36,690 Es decir, usted no hace las cosas necesariamente dibujando todo a mano. 1248 00:55:36,690 --> 00:55:40,610 Nosotros usamos una computadora para automatizar partes de ese proceso. 1249 00:55:40,610 --> 00:55:41,110 OK. 1250 00:55:41,110 --> 00:55:47,720 >> Así que permítanme conmutar ahora a nuestro IDE CS50. 1251 00:55:47,720 --> 00:55:54,260 Y he creado para nosotros-- y dejar Me zoom en un poquito bit-- tengo 1252 00:55:54,260 --> 00:55:58,420 creado para nosotros un punto de partida. 1253 00:55:58,420 --> 00:56:03,830 >> Cada vez que les pedimos que sentarse y escribir una pieza de código, 1254 00:56:03,830 --> 00:56:09,250 lo que realmente estamos pidiendo que hagas es que estamos pidiendo para resolver un problema. 1255 00:56:09,250 --> 00:56:11,810 Y la forma en que usted debe pensar en hacer que 1256 00:56:11,810 --> 00:56:17,900 es comenzando con algunos simple parte de esa solución. 1257 00:56:17,900 --> 00:56:21,730 Y luego construir a partir de esa parte. 1258 00:56:21,730 --> 00:56:23,400 Y eso es lo que vamos a hacer hoy. 1259 00:56:23,400 --> 00:56:27,570 >> Así que en lugar de tratar a la vez que escribir todo el montón de código que es 1260 00:56:27,570 --> 00:56:30,770 va a producir los 10 células de animación, 1261 00:56:30,770 --> 00:56:35,506 vamos a empezar lugar con una pieza que funciona. 1262 00:56:35,506 --> 00:56:37,380 Y luego vamos a construir un poco en torno a ese 1263 00:56:37,380 --> 00:56:39,740 y un poco más y un poco más. 1264 00:56:39,740 --> 00:56:42,550 >> Ahora lo bueno de solución de los problemas de esta manera 1265 00:56:42,550 --> 00:56:46,716 es que le permitirá empezar siempre con algo que usted sabe 1266 00:56:46,716 --> 00:56:51,130 obras e introducir un cambio gradual. 1267 00:56:51,130 --> 00:56:54,090 Y eso es una gran manera para aprender a codificar, 1268 00:56:54,090 --> 00:56:58,590 ya que cada vez que realice una cambio, nos vemos el impacto que tiene. 1269 00:56:58,590 --> 00:56:59,540 OK. 1270 00:56:59,540 --> 00:57:01,450 >> Así que aquí está nuestro punto de partida. 1271 00:57:01,450 --> 00:57:01,950 OK. 1272 00:57:01,950 --> 00:57:08,030 Así que al principio de mi archivo, Tengo stdio.h #include hash. 1273 00:57:08,030 --> 00:57:12,560 Eso es lo que puedo conseguir el printf () para trabajar. 1274 00:57:12,560 --> 00:57:15,240 >> Entonces tengo mi función principal. 1275 00:57:15,240 --> 00:57:18,760 Y esto todavía se ve un poco arcana u oscuro para algunos de ustedes. 1276 00:57:18,760 --> 00:57:20,010 Eso está bien. 1277 00:57:20,010 --> 00:57:23,190 Lo único que dice es que la función principal toma 1278 00:57:23,190 --> 00:57:27,830 medios sin arguments-- void nada en C. Y 1279 00:57:27,830 --> 00:57:29,940 regresa por convención un entero. 1280 00:57:29,940 --> 00:57:33,290 Principal siempre devuelve un entero, por lo general un código diciendo cosas 1281 00:57:33,290 --> 00:57:35,071 ha ido bien o no fue así. 1282 00:57:35,071 --> 00:57:35,570 OK. 1283 00:57:35,570 --> 00:57:39,110 Pero principal tiene que tener que formar para nosotros en este momento. 1284 00:57:39,110 --> 00:57:42,080 >> Entonces me he puesto en tres líneas de código. 1285 00:57:42,080 --> 00:57:46,760 Y junto a cada línea de código, he puesto un comentario. 1286 00:57:46,760 --> 00:57:51,340 Ahora una de las cosas que vamos a insistir en que lo hace, 1287 00:57:51,340 --> 00:57:55,320 y es como un importante práctica de programación, 1288 00:57:55,320 --> 00:57:57,800 es para comentar siempre su código. 1289 00:57:57,800 --> 00:58:02,550 Siempre anote en un Inglés comentario algo 1290 00:58:02,550 --> 00:58:06,740 que cree que la Se supone código para hacerlo. 1291 00:58:06,740 --> 00:58:11,360 De esa manera, más adelante, cuando vuelves a él, usted puede verlo y se puede decir, 1292 00:58:11,360 --> 00:58:13,800 oh, me acuerdo de lo que era tratando de hacer con esto. 1293 00:58:13,800 --> 00:58:17,590 O cuando un TA se sienta con usted para tratar de ayudarle en horas de oficina, 1294 00:58:17,590 --> 00:58:20,890 pueden ver esto y se van, yo ver lo que estaba tratando de hacer, 1295 00:58:20,890 --> 00:58:25,630 pero en lugar de esto es lo que realmente está sucediendo. 1296 00:58:25,630 --> 00:58:26,130 OK. 1297 00:58:26,130 --> 00:58:30,300 >> Así que tengo tres partes en mi código, Voy a primer lugar de impresión 1298 00:58:30,300 --> 00:58:33,110 algunos puntos en el inicio. 1299 00:58:33,110 --> 00:58:37,480 Entonces voy a imprimir mi conejito muy elegante. 1300 00:58:37,480 --> 00:58:40,600 Y a continuación, algunos poco de puntos al final. 1301 00:58:40,600 --> 00:58:45,220 >> Y estas tres sentencias print debe familiar a usted en este momento. 1302 00:58:45,220 --> 00:58:47,350 Todo lo que estoy haciendo en la cada uno de ellos es que soy 1303 00:58:47,350 --> 00:58:49,780 imprimir una secuencia de caracteres. 1304 00:58:49,780 --> 00:58:51,370 No hay variables que intervienen. 1305 00:58:51,370 --> 00:58:54,320 Todo es simple y llanamente. 1306 00:58:54,320 --> 00:58:55,270 OK. 1307 00:58:55,270 --> 00:59:07,340 >> Así que si voy por ahora a mi terminal-- vamos a ver si puedo conseguir esta vuelta fuera-- 1308 00:59:07,340 --> 00:59:09,370 y yo voy a escribir clara de nuevo. 1309 00:59:09,370 --> 00:59:12,507 >> ALTAVOZ 20: ¿Usamos el doble barra comentar? 1310 00:59:12,507 --> 00:59:14,340 BRIAN Scassellati: ¿Puede utilizar el sí double--. 1311 00:59:14,340 --> 00:59:16,920 Hay múltiples formas de dejar comentarios en C. Uno 1312 00:59:16,920 --> 00:59:19,440 forma es utilizar la doble barra. 1313 00:59:19,440 --> 00:59:24,910 La otra es utilizar una barra y una estrella y luego cerrar con una estrella y una barra. 1314 00:59:24,910 --> 00:59:26,110 Correcto. 1315 00:59:26,110 --> 00:59:28,950 >> En primer lugar, voy a empezar a navegar por aquí. 1316 00:59:28,950 --> 00:59:35,350 Así que si me voy a mi directorio personal, He cambiado directorios allí, 1317 00:59:35,350 --> 00:59:40,230 Voy a mirar y ver lo que hay en ese directorio, ls, listar a cabo. 1318 00:59:40,230 --> 00:59:43,230 Voy a ver que tengo tiene dos subdirectorios. 1319 00:59:43,230 --> 00:59:47,910 Vamos a hacer de este un poco más grande aquí para que todos podamos verlo. 1320 00:59:47,910 --> 00:59:50,610 >> Veo que tengo tiene dos subdirectorios. 1321 00:59:50,610 --> 00:59:53,510 Voy a cambiar de directorio para entrar en área de trabajo. 1322 00:59:53,510 --> 00:59:58,380 Y yo voy a escribir sólo por parte de ella, y luego simplemente pulse Tab. 1323 00:59:58,380 --> 01:00:01,520 Y que va a completar el resto para mí. 1324 01:00:01,520 --> 01:00:03,370 Lujoso. 1325 01:00:03,370 --> 01:00:04,960 >> Voy a mirar y veo en área de trabajo. 1326 01:00:04,960 --> 01:00:08,431 Y ahora mismo, estoy trabajando en la supersección 1327 01:00:08,431 --> 01:00:09,680 que estamos enseñando ahora. 1328 01:00:09,680 --> 01:00:10,971 Así que voy a entrar en ese directorio. 1329 01:00:10,971 --> 01:00:14,770 1330 01:00:14,770 --> 01:00:15,970 Y, por último, mirar y ver. 1331 01:00:15,970 --> 01:00:18,480 Y tengo ese archivo bunny.c. 1332 01:00:18,480 --> 01:00:20,980 >> Está bien así que me deja claro una vez más. 1333 01:00:20,980 --> 01:00:24,370 Y yo voy a ahora-- nuevo Estoy aún permaneciendo en ese directorio 1334 01:00:24,370 --> 01:00:27,540 y me dice que estoy en ese directorio supersección. 1335 01:00:27,540 --> 01:00:30,690 Voy a seguir adelante y hacer mi conejito programa. 1336 01:00:30,690 --> 01:00:33,730 1337 01:00:33,730 --> 01:00:38,810 Y ese comando, haga conejito, mientras que suena un poco raro, 1338 01:00:38,810 --> 01:00:42,960 También invoca el compilador sonido metálico. 1339 01:00:42,960 --> 01:00:46,470 >> Y ha producido para me una salida que es 1340 01:00:46,470 --> 01:00:52,130 un funny-- un ejecutable archivo ejecutable llamado conejito. 1341 01:00:52,130 --> 01:00:52,700 OK. 1342 01:00:52,700 --> 01:00:56,700 Puedo entonces, y esto suena peor aún, ejecutar conejito. 1343 01:00:56,700 --> 01:00:59,360 1344 01:00:59,360 --> 01:01:00,680 OK. 1345 01:01:00,680 --> 01:01:03,150 Y vamos a ver lo que hace. 1346 01:01:03,150 --> 01:01:04,527 OK. 1347 01:01:04,527 --> 01:01:06,360 Eso es un poco de lo que me esperaba. 1348 01:01:06,360 --> 01:01:11,290 Tengo mi imagen del conejito de ahí, pero yo como que quería todo por sí mismo. 1349 01:01:11,290 --> 01:01:13,186 ¿Qué me perdí? 1350 01:01:13,186 --> 01:01:14,478 >> ALTAVOZ 21: Raya vertical l ó n slash. 1351 01:01:14,478 --> 01:01:15,602 BRIAN Scassellati: N Slash. 1352 01:01:15,602 --> 01:01:16,580 OK. 1353 01:01:16,580 --> 01:01:18,800 Así que vamos a volver aquí. 1354 01:01:18,800 --> 01:01:20,330 Y voy a salir de eso. 1355 01:01:20,330 --> 01:01:23,320 Y voy a ir de nuevo en éste. 1356 01:01:23,320 --> 01:01:27,720 Y vamos a echar un vistazo ahora desde mi función principal aquí. 1357 01:01:27,720 --> 01:01:29,280 >> ¿Entonces, qué debería hacer? 1358 01:01:29,280 --> 01:01:30,465 Quiero terminar la línea. 1359 01:01:30,465 --> 01:01:34,020 1360 01:01:34,020 --> 01:01:35,800 Así que voy a poner en un comentario. 1361 01:01:35,800 --> 01:01:38,430 Voy a poner en un printf (). 1362 01:01:38,430 --> 01:01:41,350 Y ¿qué es lo que tengo que poner? 1363 01:01:41,350 --> 01:01:41,890 / n. 1364 01:01:41,890 --> 01:01:43,480 OK. 1365 01:01:43,480 --> 01:01:46,040 ¿Qué tengo que terminar con? 1366 01:01:46,040 --> 01:01:47,100 Punto y coma. 1367 01:01:47,100 --> 01:01:48,730 Correcto. 1368 01:01:48,730 --> 01:01:52,880 >> Ahora, uno de los de verdad cosas importantes es asegurarse de 1369 01:01:52,880 --> 01:01:56,720 cada vez que haga un cambio en el código, que lo guarde. 1370 01:01:56,720 --> 01:02:01,380 Si no ha guardado el código, que eres va a notar una pequeña estrella allá arriba. 1371 01:02:01,380 --> 01:02:03,420 Y esa estrella que dice no han ahorrado este código. 1372 01:02:03,420 --> 01:02:07,790 >> Si compilo ahora mismo, no es va a reflejar cualquiera de esos cambios, 1373 01:02:07,790 --> 01:02:11,680 porque el compilador analiza el archivo eso es en el disco, no el archivo que es 1374 01:02:11,680 --> 01:02:13,790 abrirá en su editor. 1375 01:02:13,790 --> 01:02:14,290 Correcto. 1376 01:02:14,290 --> 01:02:20,830 >> Así que vamos a guardarlo y luego vamos a ir justo aquí abajo, volver a salir. 1377 01:02:20,830 --> 01:02:24,670 Ven a mi terminal. 1378 01:02:24,670 --> 01:02:27,193 Y vamos a aclarar el espacio de nuevo. 1379 01:02:27,193 --> 01:02:30,690 1380 01:02:30,690 --> 01:02:35,760 >> Y podemos seguir adelante y una más tiempo a que nuestro programa de conejito. 1381 01:02:35,760 --> 01:02:40,180 Y ejecutar el conejito. 1382 01:02:40,180 --> 01:02:42,500 Eso no funcionó tampoco. 1383 01:02:42,500 --> 01:02:43,950 Slash incorrecto. 1384 01:02:43,950 --> 01:02:52,280 Así que si nos fijamos en lo que tengo, me pongo un / n en allí, pero tuve la barra mal. 1385 01:02:52,280 --> 01:02:56,190 >> Todo lo que el equipo hace es muy explícito. 1386 01:02:56,190 --> 01:02:57,230 ¿De acuerdo? 1387 01:02:57,230 --> 01:03:01,250 Un pequeño error de puntuacion, y de repente usted no consigue lo que quiere. 1388 01:03:01,250 --> 01:03:01,750 Correcto. 1389 01:03:01,750 --> 01:03:03,740 Así que vamos a acercar a salir de nuevo. 1390 01:03:03,740 --> 01:03:04,410 Volveremos. 1391 01:03:04,410 --> 01:03:07,930 Bien hacer que la reparación muy rápido. 1392 01:03:07,930 --> 01:03:09,270 Vamos a poner la barra derecha. 1393 01:03:09,270 --> 01:03:10,570 Vamos a salvarla. 1394 01:03:10,570 --> 01:03:13,410 Tendremos amplía la imagen. 1395 01:03:13,410 --> 01:03:16,730 >> Por alguna razón, eso no es ser feliz, pero vamos a seguir adelante 1396 01:03:16,730 --> 01:03:19,850 y vamos a volver a la terminal de aquí. 1397 01:03:19,850 --> 01:03:22,940 Aclararlo. 1398 01:03:22,940 --> 01:03:24,880 Nos acercamos. 1399 01:03:24,880 --> 01:03:28,410 Y una vez más, vamos a hacer conejito. 1400 01:03:28,410 --> 01:03:32,360 Y ahora, efectivamente, funciona. 1401 01:03:32,360 --> 01:03:33,240 Hooray. 1402 01:03:33,240 --> 01:03:34,300 OK. 1403 01:03:34,300 --> 01:03:39,580 >> Así que vamos a tratar de hacer de este un poco más general. 1404 01:03:39,580 --> 01:03:46,750 Vamos a ver si en vez de sólo imprimir un fotograma concreto, 1405 01:03:46,750 --> 01:03:49,610 vamos a ver si podemos hacer que esta para que podamos obtener todos 10 1406 01:03:49,610 --> 01:03:52,960 de esos marcos animados que queríamos tener. 1407 01:03:52,960 --> 01:03:56,550 Así que de nuevo, vamos a tomar un paso a la vez. 1408 01:03:56,550 --> 01:03:59,900 >> Primero vamos a generalizar, no por lo que hago todos los marcos, 1409 01:03:59,900 --> 01:04:03,990 pero también lo hago cualquiera marco que puede ser que quiera. 1410 01:04:03,990 --> 01:04:05,920 Entonces, ¿cuál es la diferencia entre los marcos? 1411 01:04:05,920 --> 01:04:07,377 ¿Es el conejo de la misma? 1412 01:04:07,377 --> 01:04:07,960 AUDIENCIA: Sí. 1413 01:04:07,960 --> 01:04:08,390 BRIAN Scassellati: Sí. 1414 01:04:08,390 --> 01:04:09,370 ¿Cual es la diferencia? 1415 01:04:09,370 --> 01:04:10,246 >> AUDIENCIA: Posición. 1416 01:04:10,246 --> 01:04:11,870 BRIAN Scassellati: Su posición, ¿no? 1417 01:04:11,870 --> 01:04:15,590 Y ¿Cómo puedo controlar su posición? 1418 01:04:15,590 --> 01:04:17,340 ¿Cuántos puntos estoy poniendo al principio 1419 01:04:17,340 --> 01:04:19,048 y el número de puntos que soy poniendo al final. 1420 01:04:19,048 --> 01:04:21,970 Así que tuve cinco en el principio y al final de cinco. 1421 01:04:21,970 --> 01:04:28,320 >> Vamos a sustituir a la cinco con un bucle for. 1422 01:04:28,320 --> 01:04:29,380 OK. 1423 01:04:29,380 --> 01:04:32,330 Y yo voy a crear una para lazo, ahora que va a decir, 1424 01:04:32,330 --> 01:04:37,800 Voy a imprimir un número de puntos al principio. 1425 01:04:37,800 --> 01:04:39,600 Voy a utilizar una variable. 1426 01:04:39,600 --> 01:04:44,150 Digamos, ¿qué tal i como el contador en mi lazo. 1427 01:04:44,150 --> 01:04:47,200 Y yo voy a declararlo encima de la tapa. 1428 01:04:47,200 --> 01:04:49,360 >> Y luego, en el bucle for Tengo que hacer tres cosas. 1429 01:04:49,360 --> 01:04:52,340 Lo primero que tengo que hacer es lo que necesito para inicializar i. 1430 01:04:52,340 --> 01:04:56,570 ¿Qué debo inicializar que comience a ser? 1431 01:04:56,570 --> 01:04:57,160 0. 1432 01:04:57,160 --> 01:04:58,310 OK. 1433 01:04:58,310 --> 01:05:00,950 >> Entonces tengo que decir, lo que es la condición de terminación? 1434 01:05:00,950 --> 01:05:03,020 ¿Cuándo debo parar? 1435 01:05:03,020 --> 01:05:05,983 Bueno cuántos puntos tiene usted que desee imprimir en este caso? 1436 01:05:05,983 --> 01:05:06,921 >> AUDIENCIA: Cinco. 1437 01:05:06,921 --> 01:05:08,170 BRIAN Scassellati: Cinco de nuevo? 1438 01:05:08,170 --> 01:05:10,650 ¿Qué tal vamos a hacer algo diferente, hicimos cinco. 1439 01:05:10,650 --> 01:05:12,584 Vamos a mostrar que es diferente. 1440 01:05:12,584 --> 01:05:13,250 ALTAVOZ 22: Dos. 1441 01:05:13,250 --> 01:05:13,580 BRIAN Scassellati: Dos. 1442 01:05:13,580 --> 01:05:14,080 OK. 1443 01:05:14,080 --> 01:05:17,760 Así que si quiero dos puntos, ¿qué debo poner aquí? 1444 01:05:17,760 --> 01:05:19,140 >> AUDIENCIA: Tres. 1445 01:05:19,140 --> 01:05:20,530 >> BRIAN Scassellati: Tres. 1446 01:05:20,530 --> 01:05:21,400 OK. 1447 01:05:21,400 --> 01:05:24,220 ¿Cuántas veces es que va a pasar? 1448 01:05:24,220 --> 01:05:28,469 Eso va a pasar por tres veces, 0, 1 y 2, derecha? 1449 01:05:28,469 --> 01:05:30,010 Muy bien, volvamos a dos. 1450 01:05:30,010 --> 01:05:31,570 Ahora vamos a llegar dos puntos. 1451 01:05:31,570 --> 01:05:35,800 ¿Y qué es lo que quiero hacer cada vez que voy por el lazo? 1452 01:05:35,800 --> 01:05:38,657 Lo que tiene que cambiar cada vez que voy a través de? 1453 01:05:38,657 --> 01:05:39,850 >> ALTAVOZ 23: Añadir un punto. 1454 01:05:39,850 --> 01:05:41,020 >> BRIAN Scassellati: Tengo que seguir adelante. 1455 01:05:41,020 --> 01:05:41,978 Voy a añadir un punto. 1456 01:05:41,978 --> 01:05:45,310 Voy a imprimir un punto, cada vez que a través del bucle. 1457 01:05:45,310 --> 01:05:49,990 Pero ¿cómo voy hacer el seguimiento de cómo muchas veces he estado a través del bucle? 1458 01:05:49,990 --> 01:05:53,260 Estoy usando i, que variables, ese contador. 1459 01:05:53,260 --> 01:05:57,110 >> Así que a través de todo el tiempo, me voy para incrementar el contador en uno. 1460 01:05:57,110 --> 01:06:00,670 Ahora, eso es lo mismo para mí como diciendo i = i + 1. 1461 01:06:00,670 --> 01:06:01,210 Eso está bien. 1462 01:06:01,210 --> 01:06:04,653 Podría hacerlo que-- Me gusta el taquigrafía, así que voy a decir i ++. 1463 01:06:04,653 --> 01:06:07,190 1464 01:06:07,190 --> 01:06:08,370 OK. 1465 01:06:08,370 --> 01:06:10,680 >> Vamos a hacer lo mismo aquí abajo en la parte inferior. 1466 01:06:10,680 --> 01:06:11,846 Sólo Yo como que hice eso. 1467 01:06:11,846 --> 01:06:13,990 Voy a dejar que ustedes hacer éste por completo. 1468 01:06:13,990 --> 01:06:14,260 Correcto. 1469 01:06:14,260 --> 01:06:15,426 >> Entonces, ¿qué debo escribir aquí? 1470 01:06:15,426 --> 01:06:17,170 Aquí está mi bucle for. 1471 01:06:17,170 --> 01:06:23,162 Yo voy a hacer un printf () y me voy para hacerlo de modo que sólo se imprime un punto 1472 01:06:23,162 --> 01:06:25,740 en esa parte inferior. 1473 01:06:25,740 --> 01:06:27,740 >> ¿Qué debo escribir dentro de este bucle for ahora? 1474 01:06:27,740 --> 01:06:30,897 1475 01:06:30,897 --> 01:06:33,948 Bueno, en primer lugar lo que variables que debo utilizar? 1476 01:06:33,948 --> 01:06:35,430 >> ALTAVOZ 24: j. 1477 01:06:35,430 --> 01:06:36,880 >> BRIAN Scassellati: Me vendría bien j. 1478 01:06:36,880 --> 01:06:38,040 ¿Puedo utilizar el mismo? 1479 01:06:38,040 --> 01:06:39,961 ¿Puedo usar i de nuevo? 1480 01:06:39,961 --> 01:06:40,460 Sí. 1481 01:06:40,460 --> 01:06:45,531 Eso está bien, porque el Is que estoy usando aquí, 1482 01:06:45,531 --> 01:06:47,780 Yo no los necesito de nuevo cuando Me pongo a este punto. 1483 01:06:47,780 --> 01:06:52,240 1484 01:06:52,240 --> 01:06:53,790 >> Entonces, ¿qué debería inicializar i para? 1485 01:06:53,790 --> 01:06:56,675 1486 01:06:56,675 --> 01:06:57,300 ALTAVOZ 25: 10. 1487 01:06:57,300 --> 01:06:58,567 BRIAN Scassellati: 0. 1488 01:06:58,567 --> 01:06:59,400 ¿Qué debo comprobar? 1489 01:06:59,400 --> 01:07:02,960 ¿Cuántos puntos ¿necesito ahora al final si yo tengo dos puntos al principio? 1490 01:07:02,960 --> 01:07:05,820 1491 01:07:05,820 --> 01:07:09,165 Necesito de ocho al final, así que lo que debería comprobar, i inferior a: 1492 01:07:09,165 --> 01:07:12,645 >> AUDIENCIA: Siete, ocho, nueve. 1493 01:07:12,645 --> 01:07:14,020 BRIAN Scassellati: Escuché siete. 1494 01:07:14,020 --> 01:07:14,810 Oí ocho. 1495 01:07:14,810 --> 01:07:15,970 Y oí nueve. 1496 01:07:15,970 --> 01:07:16,470 OK. 1497 01:07:16,470 --> 01:07:19,540 Así que todos estamos en el derecho ball-- Jason dice 10. 1498 01:07:19,540 --> 01:07:21,550 OK. 1499 01:07:21,550 --> 01:07:25,920 >> Si necesitaba dos puntos para el primero, cuántos hacer 1500 01:07:25,920 --> 01:07:30,170 Yo-- y necesito ocho puntos para el última uno-- puse dos arriba, 1501 01:07:30,170 --> 01:07:31,743 ¿qué debo poner abajo? 1502 01:07:31,743 --> 01:07:32,570 >> AUDIENCIA: Ocho. 1503 01:07:32,570 --> 01:07:33,611 >> BRIAN Scassellati: Ocho. 1504 01:07:33,611 --> 01:07:35,695 Debido a que va a contar de cero a siete. 1505 01:07:35,695 --> 01:07:38,490 Y eso es ocho veces a través del bucle. 1506 01:07:38,490 --> 01:07:38,990 OK. 1507 01:07:38,990 --> 01:07:41,774 Y ¿qué es lo que tengo que hacer al final? 1508 01:07:41,774 --> 01:07:42,670 >> AUDIENCIA: i ++. 1509 01:07:42,670 --> 01:07:44,400 >> BRIAN Scassellati: i ++. 1510 01:07:44,400 --> 01:07:45,440 Correcto. 1511 01:07:45,440 --> 01:07:48,260 Así que eso está bastante bien allí. 1512 01:07:48,260 --> 01:07:50,620 Vamos a intentarlo y vamos a ver lo que hace. 1513 01:07:50,620 --> 01:07:51,450 OK. 1514 01:07:51,450 --> 01:07:53,770 Así que vamos a guardarlo. 1515 01:07:53,770 --> 01:07:54,940 Niza y salvos. 1516 01:07:54,940 --> 01:07:56,910 >> Nos acercamos a salir. 1517 01:07:56,910 --> 01:07:58,220 Vamos a tratar aquí en la terminal. 1518 01:07:58,220 --> 01:08:01,440 1519 01:08:01,440 --> 01:08:02,970 Nos acercamos. 1520 01:08:02,970 --> 01:08:05,416 Vaya. 1521 01:08:05,416 --> 01:08:09,990 Nos va a hacer, una vez más, hacer nuestro programa de conejito. 1522 01:08:09,990 --> 01:08:14,460 Y seguir adelante y ejecutar conejito. 1523 01:08:14,460 --> 01:08:15,980 Y ahí está. 1524 01:08:15,980 --> 01:08:17,710 >> Así que nuestro conejito. 1525 01:08:17,710 --> 01:08:25,130 Cuando tiene dos puntos en el inicio y ocho puntos al final. 1526 01:08:25,130 --> 01:08:27,540 Todo el mundo sigue conmigo? 1527 01:08:27,540 --> 01:08:28,770 OK. 1528 01:08:28,770 --> 01:08:29,580 >> Así que hemos construido para arriba. 1529 01:08:29,580 --> 01:08:33,000 Construimos un solo conejito, un cuadro en particular. 1530 01:08:33,000 --> 01:08:36,229 Ahora que hemos sido capaces de generalizar que para construir 1531 01:08:36,229 --> 01:08:38,390 más, diferentes tipos de marcos. 1532 01:08:38,390 --> 01:08:42,399 >> Ahora vamos a seguir adelante, y tienen que genera no sólo un marco, 1533 01:08:42,399 --> 01:08:46,290 pero vamos a generar 10 marcos, donde poco a poco 1534 01:08:46,290 --> 01:08:50,569 hacen que el conejito se mueve todo el camino a través del campo. 1535 01:08:50,569 --> 01:08:51,430 Correcto. 1536 01:08:51,430 --> 01:08:53,660 >> Volvamos. 1537 01:08:53,660 --> 01:08:54,839 Y vamos a tratar ahora. 1538 01:08:54,839 --> 01:09:00,680 1539 01:09:00,680 --> 01:09:02,830 Entonces, ¿qué es lo que realmente necesito cambiar aquí? 1540 01:09:02,830 --> 01:09:06,139 1541 01:09:06,139 --> 01:09:07,180 ¿Qué tengo que cambiar? 1542 01:09:07,180 --> 01:09:10,638 >> ALTAVOZ 26: Primero tiene que cambiar el número máximo de puntos 1543 01:09:10,638 --> 01:09:11,626 al principio. 1544 01:09:11,626 --> 01:09:16,850 Porque si estamos haciendo 10 puntos, que va a necesitar hasta escalar. 1545 01:09:16,850 --> 01:09:17,850 BRIAN Scassellati: Sí. 1546 01:09:17,850 --> 01:09:23,760 Así que ahora tengo que tipo de cableado hacer siempre dos puntos al comienzo 1547 01:09:23,760 --> 01:09:27,890 y siempre hacer ocho puntos al final. 1548 01:09:27,890 --> 01:09:30,660 >> Quiero construir otro bucle, ¿verdad? 1549 01:09:30,660 --> 01:09:33,290 Porque no quiero construir una sola imagen del conejito, 1550 01:09:33,290 --> 01:09:37,140 Quiero construir 10 fotos de conejo. 1551 01:09:37,140 --> 01:09:41,500 Así que necesito para construir otro bucle, y como voy a través de ese lazo, 1552 01:09:41,500 --> 01:09:44,660 Quiero cambiar el número de puntos que se imprimen al principio 1553 01:09:44,660 --> 01:09:50,529 y cuántos puntos puedo imprimir al final, basado en qué ciclo a través del bucle 1554 01:09:50,529 --> 01:09:52,270 Estoy dentro. 1555 01:09:52,270 --> 01:09:52,770 Correcto. 1556 01:09:52,770 --> 01:09:54,430 >> Así que vamos a otro contador. 1557 01:09:54,430 --> 01:09:58,142 Alguien dijo antes de j, así que vamos a hacer otra j. 1558 01:09:58,142 --> 01:10:00,100 Y ahora, vamos a construir otro bucle for. 1559 01:10:00,100 --> 01:10:02,650 1560 01:10:02,650 --> 01:10:06,200 >> Lo que va dentro de ese bucle? 1561 01:10:06,200 --> 01:10:09,060 Este material tiene que ir dentro del bucle, ¿verdad? 1562 01:10:09,060 --> 01:10:11,190 ¿El conejito tiene ir dentro del bucle? 1563 01:10:11,190 --> 01:10:13,390 ¿Necesito un conejito en cada uno de los 10 cuadros? 1564 01:10:13,390 --> 01:10:14,099 >> AUDIENCIA: Uh-huh. 1565 01:10:14,099 --> 01:10:15,098 BRIAN Scassellati: Sí. 1566 01:10:15,098 --> 01:10:17,250 Quiero un conejo en cada de los 10 cuadros, ¿verdad? 1567 01:10:17,250 --> 01:10:20,531 ¿Qué hay de los puntos de Al final, qué necesito eso? 1568 01:10:20,531 --> 01:10:21,030 OK. 1569 01:10:21,030 --> 01:10:22,550 >> Así que voy a sangrar todos ellos. 1570 01:10:22,550 --> 01:10:25,110 Voy a destacar todos esto, y voy a golpear Tab. 1571 01:10:25,110 --> 01:10:28,590 Y eso va a empujar todo un poco, por lo que es fácil para mí 1572 01:10:28,590 --> 01:10:32,010 a ver lo que hay en el circuito. 1573 01:10:32,010 --> 01:10:33,710 Y luego voy a terminar la misma. 1574 01:10:33,710 --> 01:10:35,850 Digamos que. 1575 01:10:35,850 --> 01:10:36,430 ¿De acuerdo? 1576 01:10:36,430 --> 01:10:39,230 >> Ahora, en este bucle que Estoy building-- gritos, 1577 01:10:39,230 --> 01:10:43,810 hacer que por lo que puede ver-- Tengo mi contador j. 1578 01:10:43,810 --> 01:10:45,630 Voy empecé a 0. 1579 01:10:45,630 --> 01:10:47,829 ¿Cuántas veces lo que quiero ir a través de este circuito? 1580 01:10:47,829 --> 01:10:48,620 AUDIENCIA: 10 veces. 1581 01:10:48,620 --> 01:10:49,786 BRIAN Scassellati: 10 veces. 1582 01:10:49,786 --> 01:10:51,402 Entonces, ¿qué número debo poner aquí? 1583 01:10:51,402 --> 01:10:52,880 >> AUDIENCIA: 9, 10. 1584 01:10:52,880 --> 01:10:55,600 >> BRIAN Scassellati: 9, 10, alguien tiene que decir 11, ¿no? 1585 01:10:55,600 --> 01:10:58,190 1586 01:10:58,190 --> 01:11:01,585 Quería dos puntos antes y poner i menos de 2. 1587 01:11:01,585 --> 01:11:03,810 Quería ocho puntos, Puse i menos de 8. 1588 01:11:03,810 --> 01:11:06,950 Ahora quiero ir a través de 10 veces, así que pusieron j inferior a: 1589 01:11:06,950 --> 01:11:07,590 >> AUDIENCIA: 10. 1590 01:11:07,590 --> 01:11:08,610 >> BRIAN Scassellati: 10. 1591 01:11:08,610 --> 01:11:10,150 Allá vamos. 1592 01:11:10,150 --> 01:11:13,360 Y ¿qué debo hacer al final de j? 1593 01:11:13,360 --> 01:11:15,310 ++, Incrementarlo. 1594 01:11:15,310 --> 01:11:16,230 OK. 1595 01:11:16,230 --> 01:11:21,500 Ahora, aquí está la parte difícil, lo que es va a pasar ahora si hago esto? 1596 01:11:21,500 --> 01:11:24,537 ¿Voy a imprimir 10 cuadros? 1597 01:11:24,537 --> 01:11:26,370 ALTAVOZ 27: Creo todos ellos van a ser los mismos. 1598 01:11:26,370 --> 01:11:28,453 BRIAN Scassellati: Ellos todo sea lo mismo, ¿no? 1599 01:11:28,453 --> 01:11:31,750 Debido a que todos ellos están todavía va poner dos puntos al principio. 1600 01:11:31,750 --> 01:11:34,162 Pero no quiero que todos ellos tener dos puntos al principio. 1601 01:11:34,162 --> 01:11:35,870 ¿Cuántos puntos hacer yo quiere al principio? 1602 01:11:35,870 --> 01:11:39,097 1603 01:11:39,097 --> 01:11:40,020 >> AUDIENCIA: Cambio. 1604 01:11:40,020 --> 01:11:42,840 >> BRIAN Scassellati: I queremos que cambie, ¿verdad? 1605 01:11:42,840 --> 01:11:46,588 Entonces, ¿qué tengo yo aquí que está cambiando cada vez que el bucle pasa por? 1606 01:11:46,588 --> 01:11:48,242 >> AUDIENCIA: Número de puntos, j. 1607 01:11:48,242 --> 01:11:49,950 BRIAN Scassellati: j, el número de puntos. 1608 01:11:49,950 --> 01:11:54,782 Así que puedo cambiar esto a ser j. 1609 01:11:54,782 --> 01:11:59,190 La primera vez a través de la lazo, ¿qué es eso va a ser? 1610 01:11:59,190 --> 01:12:01,700 ¿Qué puedo configurar j para en un principio? 1611 01:12:01,700 --> 01:12:02,420 >> AUDIENCIA: 0. 1612 01:12:02,420 --> 01:12:05,700 >> BRIAN Scassellati: Entonces, ¿cuántos veces voy a hacer esto? 1613 01:12:05,700 --> 01:12:06,750 0. 1614 01:12:06,750 --> 01:12:11,750 La segunda vez a través del bucle, j de va a ser 1 porque incrementarlo. 1615 01:12:11,750 --> 01:12:14,180 ¿Cuántos puntos voy a imprimir? 1616 01:12:14,180 --> 01:12:15,100 1. 1617 01:12:15,100 --> 01:12:19,904 La tercera vez a través del bucle, cuántos puntos voy a imprimir? 1618 01:12:19,904 --> 01:12:20,587 >> AUDIENCIA: Tres. 1619 01:12:20,587 --> 01:12:22,170 BRIAN Scassellati: j va a ser 3. 1620 01:12:22,170 --> 01:12:24,890 ¿Cuántos puntos voy a imprimir? 1621 01:12:24,890 --> 01:12:26,817 Oh, lo siento, j Va a ser 2. 1622 01:12:26,817 --> 01:12:28,233 ¿Cuántos puntos voy a imprimir? 1623 01:12:28,233 --> 01:12:28,980 >> AUDIENCIA: 2. 1624 01:12:28,980 --> 01:12:29,855 >> BRIAN Scassellati: 2. 1625 01:12:29,855 --> 01:12:32,460 OK, así que voy a seguir incremento que a medida que avanzamos. 1626 01:12:32,460 --> 01:12:33,460 ¿Qué hay de abajo? 1627 01:12:33,460 --> 01:12:34,310 ¿Qué pasa aquí? 1628 01:12:34,310 --> 01:12:38,080 No quiero 8 siempre en el extremo más? 1629 01:12:38,080 --> 01:12:39,269 >> ALTAVOZ 28: 10. 1630 01:12:39,269 --> 01:12:40,685 BRIAN Scassellati: Quiero 10 puntos? 1631 01:12:40,685 --> 01:12:43,440 1632 01:12:43,440 --> 01:12:44,620 Quiero que cambie, también. 1633 01:12:44,620 --> 01:12:47,469 Entonces, ¿qué quiero que cambie? 1634 01:12:47,469 --> 01:12:49,167 >> AUDIENCIA: [inaudible]. 1635 01:12:49,167 --> 01:12:51,750 BRIAN Scassellati: Bueno, si yo tener cinco puntos al principio, 1636 01:12:51,750 --> 01:12:53,293 cuántos de punto puedo llegar al final? 1637 01:12:53,293 --> 01:12:54,020 >> AUDIENCIA: Cinco. 1638 01:12:54,020 --> 01:12:55,630 >> BRIAN Scassellati: Si tengo seis puntos al principio, 1639 01:12:55,630 --> 01:12:56,875 cuántos puedo llegar al final? 1640 01:12:56,875 --> 01:12:57,500 AUDIENCIA: Cuatro. 1641 01:12:57,500 --> 01:12:58,950 BRIAN Scassellati: Si tengo siete puntos al principio, 1642 01:12:58,950 --> 01:13:00,204 cuántos puedo llegar al final? 1643 01:13:00,204 --> 01:13:00,870 AUDIENCIA: Tres. 1644 01:13:00,870 --> 01:13:03,161 BRIAN Scassellati: Si tengo j conseguido puntos en el comienzo, 1645 01:13:03,161 --> 01:13:04,790 cuántos puedo llegar al final? 1646 01:13:04,790 --> 01:13:07,520 10-j. 1647 01:13:07,520 --> 01:13:08,650 OK. 1648 01:13:08,650 --> 01:13:10,390 Así que vamos a tratar de eso. 1649 01:13:10,390 --> 01:13:13,180 >> Así que me voy a salvar a nuestro programa de conejito. 1650 01:13:13,180 --> 01:13:16,270 Una vez más vamos a alejar. 1651 01:13:16,270 --> 01:13:19,090 Iremos a nuestro terminal. 1652 01:13:19,090 --> 01:13:20,180 Vamos a aclararlo. 1653 01:13:20,180 --> 01:13:23,410 Y hacer un zoom. 1654 01:13:23,410 --> 01:13:26,410 Haremos nuestro programa conejito, nuevo. 1655 01:13:26,410 --> 01:13:27,690 Y vamos a ejecutarlo. 1656 01:13:27,690 --> 01:13:30,462 1657 01:13:30,462 --> 01:13:32,090 UH oh. 1658 01:13:32,090 --> 01:13:34,580 >> Espera, vamos a alejar. 1659 01:13:34,580 --> 01:13:36,860 ¿Obtuve 10 cuadros? 1660 01:13:36,860 --> 01:13:38,970 Bueno, cuántos conejitos qué veo ahí arriba? 1661 01:13:38,970 --> 01:13:43,330 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. 1662 01:13:43,330 --> 01:13:44,820 Tengo 10 fotogramas. 1663 01:13:44,820 --> 01:13:46,375 ¿Son todos iguales? 1664 01:13:46,375 --> 01:13:47,000 AUDIENCIA: Sí. 1665 01:13:47,000 --> 01:13:48,740 No. 1666 01:13:48,740 --> 01:13:50,000 >> BRIAN Scassellati: No. 1667 01:13:50,000 --> 01:13:55,050 Esa primera, la conejito está lejos de la izquierda. 1668 01:13:55,050 --> 01:13:57,541 Y aquí, el conejo es el momento en el 1669 01:13:57,541 --> 01:13:58,290 ALTAVOZ 29: Derecho. 1670 01:13:58,290 --> 01:14:00,502 BRIAN Scassellati: Así, lo que me olvidé de hacer? 1671 01:14:00,502 --> 01:14:01,750 ALTAVOZ 30: Iniciar una nueva línea. 1672 01:14:01,750 --> 01:14:04,041 BRIAN Scassellati: Olvidé para iniciar una nueva línea, de nuevo. 1673 01:14:04,041 --> 01:14:05,270 Lo mismo error que hice antes. 1674 01:14:05,270 --> 01:14:07,120 Muy bien, vamos a arreglar eso. 1675 01:14:07,120 --> 01:14:11,690 Ahora, todavía tengo el código en allí para hacer una nueva línea. 1676 01:14:11,690 --> 01:14:13,899 ¿Por qué no funciona? 1677 01:14:13,899 --> 01:14:15,440 ALTAVOZ 31: No es dentro del bucle. 1678 01:14:15,440 --> 01:14:17,710 BRIAN Scassellati: Oh, no es dentro del bucle. 1679 01:14:17,710 --> 01:14:18,520 Eso es correcto. 1680 01:14:18,520 --> 01:14:20,150 Está sentado fuera de aquí. 1681 01:14:20,150 --> 01:14:23,470 1682 01:14:23,470 --> 01:14:29,050 Y el bucle for es todo eso es dentro de ese texto. 1683 01:14:29,050 --> 01:14:35,500 >> Así que me voy a mover esto dentro del bucle for. 1684 01:14:35,500 --> 01:14:39,410 Y voy a Tab frente a muestran que está en el lugar correcto. 1685 01:14:39,410 --> 01:14:42,020 Y ahora, vamos a guardar de nuevo. 1686 01:14:42,020 --> 01:14:44,350 Vamos a alejar. 1687 01:14:44,350 --> 01:14:45,770 Vamos a cambiar a nuestro terminal. 1688 01:14:45,770 --> 01:14:48,330 1689 01:14:48,330 --> 01:14:50,360 Acercar. 1690 01:14:50,360 --> 01:14:54,050 Vamos a rehacer nuestro programa de conejito. 1691 01:14:54,050 --> 01:14:59,070 Y ahora, ahora tenemos nuestros 10 fotogramas. 1692 01:14:59,070 --> 01:15:00,190 >> [Aplausos] 1693 01:15:00,190 --> 01:15:02,120 >> BRIAN Scassellati: OK. 1694 01:15:02,120 --> 01:15:04,080 So. 1695 01:15:04,080 --> 01:15:08,370 Aquí está nuestra anidado para los bucles. 1696 01:15:08,370 --> 01:15:13,140 Hemos sido capaces de generar en el bucle interno cuántos puntos que quería 1697 01:15:13,140 --> 01:15:15,320 imprimir al comienzo, al final. 1698 01:15:15,320 --> 01:15:21,570 Y el bucle exterior controlado el número de fotogramas que estaba construyendo. 1699 01:15:21,570 --> 01:15:26,340 Empezamos con un pequeño kernel del problema, 1700 01:15:26,340 --> 01:15:30,320 y construimos a partir de ese punto. 1701 01:15:30,320 --> 01:15:30,820 Correcto. 1702 01:15:30,820 --> 01:15:33,500 >> Vamos a hacer un paso más. 1703 01:15:33,500 --> 01:15:35,040 ¿Estás listo? 1704 01:15:35,040 --> 01:15:38,800 Hay una cosa aquí donde hemos realidad un poco conseguimos 1705 01:15:38,800 --> 01:15:42,180 mayor complejidad de lo que necesitamos. 1706 01:15:42,180 --> 01:15:44,700 Echemos un vistazo. 1707 01:15:44,700 --> 01:15:52,050 Así que en nuestro programa de conejito, si Alejar aquí, 1708 01:15:52,050 --> 01:15:54,980 De hecho, me hago parte de la misma cosa una y otra vez. 1709 01:15:54,980 --> 01:15:59,032 ¿Qué debo hacer eso es una especie de lo mismo repite dos veces? 1710 01:15:59,032 --> 01:16:00,310 >> ALTAVOZ 32: Imprimir los puntos. 1711 01:16:00,310 --> 01:16:03,526 >> BRIAN Scassellati: Sí Imprimo esos puntos dos veces. 1712 01:16:03,526 --> 01:16:05,710 En realidad, yo debería tener este comentario aquí. 1713 01:16:05,710 --> 01:16:09,037 Imprimo algunos puntos en el comenzando, hasta aquí. 1714 01:16:09,037 --> 01:16:10,620 Y luego imprimo algunos puntos al final. 1715 01:16:10,620 --> 01:16:14,694 Y lo hago tipo de exactamente la misma cosa. 1716 01:16:14,694 --> 01:16:17,110 Lo que vamos a empezar trabajando en las próximas semanas 1717 01:16:17,110 --> 01:16:23,440 es ser capaz de tomar esos bloques de código que usamos una y otra vez, 1718 01:16:23,440 --> 01:16:25,800 y mediante un proceso llamada abstracción, 1719 01:16:25,800 --> 01:16:31,100 vamos a sacarlos y escribirlas una vez para que podamos entonces 1720 01:16:31,100 --> 01:16:35,130 reutilizar una y otra vez. 1721 01:16:35,130 --> 01:16:37,210 Así que vamos a intentar eso. 1722 01:16:37,210 --> 01:16:38,220 Listo? 1723 01:16:38,220 --> 01:16:42,200 >> Vamos a tomar este bloque de código. 1724 01:16:42,200 --> 01:16:45,280 Y yo voy a sacarlo de allí. 1725 01:16:45,280 --> 01:16:50,530 Y yo voy a define-- hacia abajo en la parte inferior, 1726 01:16:50,530 --> 01:16:53,130 Voy a escribir una nueva función. 1727 01:16:53,130 --> 01:16:54,750 No va a devolver nada. 1728 01:16:54,750 --> 01:16:58,550 Y yo voy a llamarlo printDots. 1729 01:16:58,550 --> 01:17:01,530 >> Se va a tomar uno argumento, un entero que 1730 01:17:01,530 --> 01:17:04,920 dice howManyDots debo imprimir. 1731 01:17:04,920 --> 01:17:09,310 1732 01:17:09,310 --> 01:17:17,720 Y ahora en lugar de imprimir j puntos, voy a imprimir decirle howManyDots debo imprimir. 1733 01:17:17,720 --> 01:17:21,581 >> Y hay un pequeño problema aquí. 1734 01:17:21,581 --> 01:17:22,580 ¿Alguien sabe lo que es? 1735 01:17:22,580 --> 01:17:27,270 1736 01:17:27,270 --> 01:17:31,505 ¿Qué tengo que aparece en la lista aquí eso no está definido? 1737 01:17:31,505 --> 01:17:34,165 1738 01:17:34,165 --> 01:17:35,090 >> AUDIENCIA: [inaudible] 1739 01:17:35,090 --> 01:17:37,465 >> BRIAN Scassellati: Bueno, ¿cómo muchos puntos se define hasta 1740 01:17:37,465 --> 01:17:40,584 aquí, pero estoy usando esa variable i. 1741 01:17:40,584 --> 01:17:43,750 Así que me voy a tomar esa variable i y yo voy a definirla en aquí 1742 01:17:43,750 --> 01:17:44,610 en su lugar. 1743 01:17:44,610 --> 01:17:49,683 >> Así que ahora que va a estancia-- perdón, consiguió el bloqueo de mayúsculas en somehow-- estoy 1744 01:17:49,683 --> 01:17:52,060 va a seguir i en aquí. 1745 01:17:52,060 --> 01:17:57,050 >> Así que ahora aquí está mi pequeña función o sub-rutina, y dice, 1746 01:17:57,050 --> 01:18:00,640 cuántos puntos voy a imprimir? 1747 01:18:00,640 --> 01:18:05,300 Y que va a ir a través de este lazo y imprimir una y otra vez. 1748 01:18:05,300 --> 01:18:10,940 >> Entonces puedo modificar mi programa aquí. 1749 01:18:10,940 --> 01:18:12,540 Y ¿qué me llamo esa función? 1750 01:18:12,540 --> 01:18:13,960 printDots. 1751 01:18:13,960 --> 01:18:17,060 Así que voy a llamar printDots. 1752 01:18:17,060 --> 01:18:21,530 ¿Cuántos puntos es lo que quiero para imprimir primera vez ante el conejo? 1753 01:18:21,530 --> 01:18:22,030 AUDIENCIA: j. 1754 01:18:22,030 --> 01:18:23,230 BRIAN Scassellati: j. 1755 01:18:23,230 --> 01:18:27,110 ¿Cuántos puntos es lo que quiero para imprimir al final, después de que el conejo? 1756 01:18:27,110 --> 01:18:30,610 1757 01:18:30,610 --> 01:18:31,110 10-j. 1758 01:18:31,110 --> 01:18:35,020 1759 01:18:35,020 --> 01:18:38,010 >> Y hay una cosa que me falta. 1760 01:18:38,010 --> 01:18:43,740 Como se vio en la conferencia de hoy, vamos a declarar printDots 1761 01:18:43,740 --> 01:18:52,430 hasta antes para dar el prototipo. 1762 01:18:52,430 --> 01:18:56,740 1763 01:18:56,740 --> 01:18:58,220 OK. 1764 01:18:58,220 --> 01:19:03,530 >> Así que lo que he hecho es que he intentado aislar esa parte de código reutilizado 1765 01:19:03,530 --> 01:19:06,430 que he hecho una y otra vez. 1766 01:19:06,430 --> 01:19:11,120 Y he tratado de sacarlo de manera que todo eso está contenido en un solo lugar. 1767 01:19:11,120 --> 01:19:16,810 De esa manera, si tengo un error en alguna parte, Sólo tengo que arreglarlo en un solo lugar. 1768 01:19:16,810 --> 01:19:17,310 Correcto. 1769 01:19:17,310 --> 01:19:18,470 >> Así que vamos a guardarlo. 1770 01:19:18,470 --> 01:19:20,950 Y vamos a asegurarnos de que funciona. 1771 01:19:20,950 --> 01:19:22,050 Así que vamos a salir. 1772 01:19:22,050 --> 01:19:25,200 Vamos a ir de nuevo a nuestra terminal. 1773 01:19:25,200 --> 01:19:27,960 Nos acercamos. 1774 01:19:27,960 --> 01:19:31,010 Vamos a hacer ese proceso conejito. 1775 01:19:31,010 --> 01:19:32,380 >> Oh. 1776 01:19:32,380 --> 01:19:34,800 Y me ha dado una advertencia. 1777 01:19:34,800 --> 01:19:37,070 ¿Qué es lo que me dice? 1778 01:19:37,070 --> 01:19:39,870 Bien en cualquiera de estas veces, siempre quieren 1779 01:19:39,870 --> 01:19:44,170 para desplazarse hasta el primer error-- Ahora en este caso, sólo tengo una. 1780 01:19:44,170 --> 01:19:52,700 >> Me dice en bunny.c, en la línea 8, la columna 9, hay un problema. 1781 01:19:52,700 --> 01:19:58,650 Se dice, que ha declarado este i variable y usted no lo ha usado. 1782 01:19:58,650 --> 01:20:02,230 >> Ahora, normalmente, eso es no es el peor error. 1783 01:20:02,230 --> 01:20:04,300 Esa es una tarea fácil de arreglar. 1784 01:20:04,300 --> 01:20:07,550 Y de hecho, podemos volver atrás en el. 1785 01:20:07,550 --> 01:20:09,910 Podemos volver a Bunny. 1786 01:20:09,910 --> 01:20:13,010 Y en este caso, todo lo que tienen que hacer es deshacerse de i, 1787 01:20:13,010 --> 01:20:16,630 porque no estamos usando i dentro de principal más. 1788 01:20:16,630 --> 01:20:19,860 Estamos usándolo dentro de nuestra sub-rutina. 1789 01:20:19,860 --> 01:20:22,777 >> Así que vamos a guardar eso. 1790 01:20:22,777 --> 01:20:23,360 Volveremos. 1791 01:20:23,360 --> 01:20:26,760 1792 01:20:26,760 --> 01:20:28,630 Y hacer un zoom. 1793 01:20:28,630 --> 01:20:30,700 Vamos una vez más hacemos conejito. 1794 01:20:30,700 --> 01:20:33,810 1795 01:20:33,810 --> 01:20:36,530 Y allí están nuestros 10 fotogramas. 1796 01:20:36,530 --> 01:20:39,450 1797 01:20:39,450 --> 01:20:41,360 OK. 1798 01:20:41,360 --> 01:20:43,190 >> Cada vez que le den un procedure-- Sí. 1799 01:20:43,190 --> 01:20:44,690 ALTAVOZ 33: Tengo una-- Estoy confundido. 1800 01:20:44,690 --> 01:20:45,892 ¿Se puede volver al código? 1801 01:20:45,892 --> 01:20:46,850 BRIAN Scassellati: Sí. 1802 01:20:46,850 --> 01:20:50,730 1803 01:20:50,730 --> 01:20:54,367 >> ALTAVOZ 33: Así que, cuando escribiste su prototipo, el argumento de que 1804 01:20:54,367 --> 01:20:56,550 si hubiera llamado fue llamado howMany? 1805 01:20:56,550 --> 01:20:57,540 Pero, below-- 1806 01:20:57,540 --> 01:20:57,640 >> BRIAN Scassellati: Ah, sí. 1807 01:20:57,640 --> 01:20:59,140 >> ALTAVOZ 33: ellas --denominado algo diferente, yo no lo entiendo. 1808 01:20:59,140 --> 01:21:00,240 >> BRIAN Scassellati: ¿Por qué son diferentes. 1809 01:21:00,240 --> 01:21:01,780 Así que esa es una gran pregunta. 1810 01:21:01,780 --> 01:21:08,250 Así que la pregunta era, hasta aquí, escribí howMany, 1811 01:21:08,250 --> 01:21:12,380 y abajo, escribí howManyDots. 1812 01:21:12,380 --> 01:21:15,590 >> La razón es que en su prototipo, en realidad no está prestando atención 1813 01:21:15,590 --> 01:21:17,090 a los nombres que usted está poniendo en. 1814 01:21:17,090 --> 01:21:20,530 Todo lo que realmente le importa es que es un entero. 1815 01:21:20,530 --> 01:21:23,080 Se quiere saber la forma de lo que usted está poniendo en. 1816 01:21:23,080 --> 01:21:31,560 >> Ahora stylistically-- oops-- lo que debería No, es que me gusta hacer estos partido. 1817 01:21:31,560 --> 01:21:33,150 OK. 1818 01:21:33,150 --> 01:21:36,430 Debido a que va a ser mantenerlo más fácil para mí recordar. 1819 01:21:36,430 --> 01:21:38,390 Pero eso fue mi error Sí. 1820 01:21:38,390 --> 01:21:47,620 >> ALTAVOZ 34: Y así para el prototipo funcione, simplemente 1821 01:21:47,620 --> 01:21:50,510 escribiendo esa línea, escribir el prototipo, 1822 01:21:50,510 --> 01:21:53,932 permite que la función que viene justo debajo de él para ir a la final 1823 01:21:53,932 --> 01:21:55,140 y recuperar lo que eso significa? 1824 01:21:55,140 --> 01:21:58,480 >> BRIAN Scassellati: Lo que significa es cuando el compilador pasa por, 1825 01:21:58,480 --> 01:22:01,930 que va desde la parte superior de el código para la parte inferior. 1826 01:22:01,930 --> 01:22:05,430 Y lo que este prototipo es, es que es básicamente una promesa. 1827 01:22:05,430 --> 01:22:09,570 >> Dice que va a ser una función definida en alguna parte. 1828 01:22:09,570 --> 01:22:11,880 Va a ser llamados printDots. 1829 01:22:11,880 --> 01:22:15,110 Y va a tomar un argumento eso va a ser un número entero 1830 01:22:15,110 --> 01:22:18,590 y que va a regresar nada, nula tipo. 1831 01:22:18,590 --> 01:22:19,310 OK. 1832 01:22:19,310 --> 01:22:22,950 Les prometo que va a ser definido algún lugar del camino. 1833 01:22:22,950 --> 01:22:25,590 Pero cada vez que ver que, a medida que avanza hacia abajo 1834 01:22:25,590 --> 01:22:28,710 por el resto de mi función principal, que quiero 1835 01:22:28,710 --> 01:22:33,800 que trates de que en función que toma una entrada entero. 1836 01:22:33,800 --> 01:22:37,970 >> Y así, cuando el compilador se cae a través de este, se ve esa promesa. 1837 01:22:37,970 --> 01:22:40,220 Y cuando se pone abajo, sigue adelante, sigue adelante, 1838 01:22:40,220 --> 01:22:43,060 que encuentra la primera vez se menciona printDots. 1839 01:22:43,060 --> 01:22:46,910 Y dice, Oh, usted está dando mí este j. j es un número entero. 1840 01:22:46,910 --> 01:22:49,570 >> Bueno me prometió que haría ser un entero y eso es correcto. 1841 01:22:49,570 --> 01:22:51,370 Eso está bien. 1842 01:22:51,370 --> 01:22:53,880 Y, finalmente, hacia abajo en la parte inferior, 1843 01:22:53,880 --> 01:22:58,340 antes de llegar a la final de mi archivo, hago mi promesa 1844 01:22:58,340 --> 01:22:59,896 y yo lo defino. 1845 01:22:59,896 --> 01:23:01,868 ¿De acuerdo? 1846 01:23:01,868 --> 01:23:06,320 >> ALTAVOZ 35: Por lo tanto, la saves-- programa guardará los espacios en blanco 1847 01:23:06,320 --> 01:23:09,570 que va y llena al final? 1848 01:23:09,570 --> 01:23:12,140 >> BRIAN Scassellati: No es acerca de la asignación de memoria. 1849 01:23:12,140 --> 01:23:16,800 En realidad es sólo de lo Tipo estás esperando ver. 1850 01:23:16,800 --> 01:23:19,340 En caso de que esta cosa tiene uno argumento, o cinco argumentos? 1851 01:23:19,340 --> 01:23:23,590 En caso de tener que ser números enteros que se le da, o cadenas? 1852 01:23:23,590 --> 01:23:25,780 Eso es todo lo que está buscando que hacer es comprobar, 1853 01:23:25,780 --> 01:23:29,303 me estás dando la tipo de argumento. 1854 01:23:29,303 --> 01:23:31,560 ¿De acuerdo? 1855 01:23:31,560 --> 01:23:32,300 Correcto. 1856 01:23:32,300 --> 01:23:38,570 >> Déjame que te dejo con otro poco para mirar. 1857 01:23:38,570 --> 01:23:44,850 Arte ASCII no es el gran modelo de la animación como lo es hoy. 1858 01:23:44,850 --> 01:23:50,850 Pero algunas personas, por supuesto, tomar las cosas y empujan a sus extremos. 1859 01:23:50,850 --> 01:23:56,790 >> Esto es, como David demostró en la conferencia, una pieza de código 1860 01:23:56,790 --> 01:24:02,150 que usted debe en ningún caso tratar de duplicar ustedes mismos. 1861 01:24:02,150 --> 01:24:05,260 Debido a que es terrible estilísticamente. 1862 01:24:05,260 --> 01:24:11,180 De hecho, está diseñado para ser tan más difícil posible de leer. 1863 01:24:11,180 --> 01:24:11,680 OK. 1864 01:24:11,680 --> 01:24:16,210 >> Así que, para hacer de nuevo, vamos a acercar aquí. 1865 01:24:16,210 --> 01:24:20,120 Voy a ir ahora, cambio de directorio. 1866 01:24:20,120 --> 01:24:24,050 Voy a subir un nivel, de nuevo a mi espacio de trabajo. 1867 01:24:24,050 --> 01:24:29,760 Voy a continuación, cambiar de directorio en este otro directorio que he creado. 1868 01:24:29,760 --> 01:24:36,190 >> Y esta es la Internacional Ofuscado C Programming Contest. 1869 01:24:36,190 --> 01:24:40,650 Medios ofuscado como duro como sea posible de entender. 1870 01:24:40,650 --> 01:24:44,150 Así que por favor, no te asustes si te fijas en esto y va, no puedo leer eso. 1871 01:24:44,150 --> 01:24:46,350 Ese es el punto de la misma. 1872 01:24:46,350 --> 01:24:47,700 ¿De acuerdo? 1873 01:24:47,700 --> 01:24:52,770 >> Pero, tenemos esta maravilloso programa que estoy 1874 01:24:52,770 --> 01:24:57,180 va a mirar con solo teclear más. 1875 01:24:57,180 --> 01:25:01,890 Y vamos a ver si puedo alejar sólo un poco, así que usted puede verlo 1876 01:25:01,890 --> 01:25:03,940 >> Y este es el programa. 1877 01:25:03,940 --> 01:25:08,080 Se llama endo.c. 1878 01:25:08,080 --> 01:25:14,850 Y parece que este cubo con tipo de las letras F-L-U-I-D en el mismo. 1879 01:25:14,850 --> 01:25:16,440 >> Esto es en realidad un programa. 1880 01:25:16,440 --> 01:25:20,260 Está escrito en el más oscuro de manera que los autores pudieran posiblemente 1881 01:25:20,260 --> 01:25:21,760 Escribelo. 1882 01:25:21,760 --> 01:25:29,210 Pero es un pequeño pedazo maravilloso que genera un modelo de dinámica de fluidos. 1883 01:25:29,210 --> 01:25:34,870 >> Y así nos vamos a dar ese modelo de una entrada que 1884 01:25:34,870 --> 01:25:42,520 se parece a esto, de un staired conjunto de contenedores 1885 01:25:42,520 --> 01:25:45,820 con un poco de líquido, algunos líquido, en la parte superior. 1886 01:25:45,820 --> 01:25:48,790 Y vamos a tener que simular lo que está sucediendo a él. 1887 01:25:48,790 --> 01:25:52,415 >> Así que voy a llamar a esa función, endo. 1888 01:25:52,415 --> 01:25:59,000 Y voy a darle ese archivo de entrada que he tenido. 1889 01:25:59,000 --> 01:26:02,830 Y no es nuestra epítome del arte ASCII. 1890 01:26:02,830 --> 01:26:08,960 Un simulador de dinámica de fluidos completa funcionando en unas pocas líneas de código. 1891 01:26:08,960 --> 01:26:13,750 >> Ahora, ¿qué es realmente muy sorprendente de este pequeño programa 1892 01:26:13,750 --> 01:26:17,280 es que me quiero parar ahora, así que voy a utilizar lo mando? 1893 01:26:17,280 --> 01:26:18,660 >> AUDIENCIA: Control-C. 1894 01:26:18,660 --> 01:26:20,390 >> BRIAN Scassellati: Control-C. OK. 1895 01:26:20,390 --> 01:26:22,960 Así que voy a utilizar Control-C. C Que va a detenerlo. 1896 01:26:22,960 --> 01:26:25,330 Voy a borrar de nuevo. 1897 01:26:25,330 --> 01:26:31,210 Y ahora voy a invocar la programa, ejecutar el programa, 1898 01:26:31,210 --> 01:26:33,740 utilizando como entrada. 1899 01:26:33,740 --> 01:26:36,760 1900 01:26:36,760 --> 01:26:42,700 >> Y vamos a ver la dinámica de fluidos simulación de que se derrita. 1901 01:26:42,700 --> 01:26:43,830 OK. 1902 01:26:43,830 --> 01:26:48,180 Por favor, no deje que el programa ser lo que te confunde. 1903 01:26:48,180 --> 01:26:52,220 Es sólo para que podamos terminar en algo fresco e interesante. 1904 01:26:52,220 --> 01:26:53,930 OK. 1905 01:26:53,930 --> 01:26:56,330 >> Buena suerte con sus conjuntos de problemas. 1906 01:26:56,330 --> 01:26:59,030 Estaremos encantados de responder preguntas después de clase. 1907 01:26:59,030 --> 01:27:01,180 Gracias mucho, chicos. 1908 01:27:01,180 --> 01:27:02,793