1 00:00:00,000 --> 00:00:05,830 2 00:00:05,830 --> 00:00:08,650 >> JASON HIRSCHHORN: Bienvenido a Sección CS50, todo el mundo. 3 00:00:08,650 --> 00:00:11,430 Mi nombre es Jason Hirschhorn. 4 00:00:11,430 --> 00:00:15,850 Soy una gran cantidad de suyo TFS, pero una gran cantidad de personas se espera que se unirán a nosotros 5 00:00:15,850 --> 00:00:20,420 , estudiantes o alumnos de extensión en línea tratando de mirar a través de la sección si 6 00:00:20,420 --> 00:00:22,830 perdido su sección de esa semana o simplemente ponerse al día si querían 7 00:00:22,830 --> 00:00:24,510 revisar algunos materiales. 8 00:00:24,510 --> 00:00:30,060 >> Así que de acuerdo con el plan de estudios, que todo de que ha leído, ¿correcto? 9 00:00:30,060 --> 00:00:31,390 Veo un montón de movimientos de cabeza. 10 00:00:31,390 --> 00:00:34,220 Secciones le proporcionan oportunidades para explorar de el curso 11 00:00:34,220 --> 00:00:37,420 material en un ambiente más íntimo, así como sumergirse en 12 00:00:37,420 --> 00:00:38,810 actividades prácticas. 13 00:00:38,810 --> 00:00:41,230 >> Así que eso es básicamente lo que estamos va a hacer todas las semanas. 14 00:00:41,230 --> 00:00:45,090 Vamos a ir a través de lo que tenemos decidido a ser el más importante 15 00:00:45,090 --> 00:00:49,170 temas tratados en la conferencia, y los que probablemente también más útil y 16 00:00:49,170 --> 00:00:52,780 más probable que van a plantear en los boletines de problemas y en pruebas, y en su codificación 17 00:00:52,780 --> 00:00:53,970 vida fuera del CS50. 18 00:00:53,970 --> 00:00:57,260 Así que vamos a entrar en esos temas, discutirlos, ir sobre ellos, 19 00:00:57,260 --> 00:01:00,660 responder a cualquier pregunta que ustedes tienen, y a continuación, vamos a hacer un montón de 20 00:01:00,660 --> 00:01:02,250 practicar problemas en la codificación. 21 00:01:02,250 --> 00:01:04,239 >> Todos ustedes trajeron ordenadores portátiles, lo cual es fantástico. 22 00:01:04,239 --> 00:01:05,710 Esta es una clase de ciencias de la computación. 23 00:01:05,710 --> 00:01:10,070 Sin embargo, muchos de los ejercicios que hacemos, usted no necesitará sus ordenadores portátiles para. 24 00:01:10,070 --> 00:01:11,720 Puede hacerlo en una hoja de papel. 25 00:01:11,720 --> 00:01:13,580 Así es como se va a hacerlas en los concursos. 26 00:01:13,580 --> 00:01:16,450 Y, de hecho, eso es una gran manera de Realmente sabes que cómo hacerlo 27 00:01:16,450 --> 00:01:19,720 algo si no tienes Check 50 a confiar en O Hacer que confiar, contando 28 00:01:19,720 --> 00:01:20,620 usted hizo ningún error. 29 00:01:20,620 --> 00:01:25,670 >> Así que le invitamos a código en el electrodoméstico o run.cs50.net, que es 30 00:01:25,670 --> 00:01:29,770 otra herramienta que te permite codificar en línea, pero también recomendaría, si 31 00:01:29,770 --> 00:01:32,280 usted no ha probado, mediante una hoja de de papel y tratar estas prácticas 32 00:01:32,280 --> 00:01:33,640 problemas en una hoja de papel. 33 00:01:33,640 --> 00:01:35,330 Porque de nuevo, eso es en última instancia, lo que va a ser 34 00:01:35,330 --> 00:01:37,430 a instancia de las pruebas. 35 00:01:37,430 --> 00:01:44,080 >> Así que vamos a empezar con nuestra orden del día de hoy. 36 00:01:44,080 --> 00:01:47,710 Vamos a repasar algunas normas para nuestra sección, a continuación, vamos a bucear 37 00:01:47,710 --> 00:01:51,180 en matrices, funciones, y la línea de comandos argumentos, que es lo que ustedes 38 00:01:51,180 --> 00:01:56,200 han cubierto esta semana pasada en la conferencia y luego el lunes, y lo que va a cubrir 39 00:01:56,200 --> 00:01:57,330 más de mañana. 40 00:01:57,330 --> 00:01:59,060 Y, por último, vamos hablar de PSet2. 41 00:01:59,060 --> 00:02:03,640 Si pudiera conseguir una votación a mano alzada si no han mirado el problema de establecer dos 42 00:02:03,640 --> 00:02:04,890 especificación. 43 00:02:04,890 --> 00:02:07,060 44 00:02:07,060 --> 00:02:08,120 Vamos a decir todos. 45 00:02:08,120 --> 00:02:09,419 Fantástico. 46 00:02:09,419 --> 00:02:12,070 >> Hablaremos de los boletines de problemas en un poco, pero si usted lee el conjunto de problemas 47 00:02:12,070 --> 00:02:14,340 especificación, eso es todo lo que tiene que hacer. 48 00:02:14,340 --> 00:02:18,370 Si has leído antes de venir a clase y la sección del martes, se quiere 49 00:02:18,370 --> 00:02:19,220 ser una gran posición. 50 00:02:19,220 --> 00:02:21,680 Podemos pasar por el conjunto de problemas, que es lo que vamos 51 00:02:21,680 --> 00:02:22,090 a hacer al final. 52 00:02:22,090 --> 00:02:23,500 Vamos a ir a través de la lógica, asegúrese 53 00:02:23,500 --> 00:02:24,710 todo el mundo está en la misma página. 54 00:02:24,710 --> 00:02:28,650 >> Yo quiero que seas capaz de dejar Martes sentirse muy cómodo con lo que 55 00:02:28,650 --> 00:02:31,560 que tenga que hacer para el grupo problema de esta semana, y si no lo hace, lo haré con alegría 56 00:02:31,560 --> 00:02:33,050 quedarse después y trabajar con usted. 57 00:02:33,050 --> 00:02:36,850 Pero eso es una cosa que tienes que hago, pero creo que sería muy inteligente, 58 00:02:36,850 --> 00:02:40,500 sólo para leer el conjunto de problemas especificación de la clase el martes, 59 00:02:40,500 --> 00:02:42,640 que suena como un gran cantidad de chicos hizo. 60 00:02:42,640 --> 00:02:45,810 >> Voy a empezar con una agenda cada clase para que sepa a dónde vamos. 61 00:02:45,810 --> 00:02:49,520 Esto también es útil para observar a la gente en línea, porque cada sección 62 00:02:49,520 --> 00:02:53,540 es un código de color, así que si quieres venir espalda y simplemente ver 10 minutos en lugar 63 00:02:53,540 --> 00:02:56,950 que todo el tramo de 90 minutos, se sólo puede ir a la sección de código de color 64 00:02:56,950 --> 00:02:57,890 y mirar esa parte. 65 00:02:57,890 --> 00:03:01,510 Así que he tratado de romper para arriba en buen módulos que le permitirán - 66 00:03:01,510 --> 00:03:03,960 si desea volver y revisar, u otros estudiantes que son sólo 67 00:03:03,960 --> 00:03:05,350 viendo una sección para revisar - 68 00:03:05,350 --> 00:03:08,130 para encontrar la cosa específica que prestar atención a 69 00:03:08,130 --> 00:03:10,480 y aprender más acerca de. 70 00:03:10,480 --> 00:03:11,390 Sweet. 71 00:03:11,390 --> 00:03:12,180 >> Normas. 72 00:03:12,180 --> 00:03:13,680 Soy un líder de FOP en el campus. 73 00:03:13,680 --> 00:03:14,900 No sé si alguien lo hizo FOP. 74 00:03:14,900 --> 00:03:16,280 ¿Alguien do FOP? 75 00:03:16,280 --> 00:03:17,100 A una persona le hizo FOP. 76 00:03:17,100 --> 00:03:18,430 Dos personas hicieron FOP. 77 00:03:18,430 --> 00:03:19,250 Impresionante. 78 00:03:19,250 --> 00:03:22,360 Así FOP es el primer año al aire libre Programa de Orientación. 79 00:03:22,360 --> 00:03:27,240 Tomamos estudiantes de primer año en el bosque y hacer las experiencias más mágicas de 80 00:03:27,240 --> 00:03:28,830 sus vidas, ¿correcto? 81 00:03:28,830 --> 00:03:29,220 Sí. 82 00:03:29,220 --> 00:03:30,080 Suena bastante bien. 83 00:03:30,080 --> 00:03:36,360 >> Así que sólo quería empezar nuestra primera sección discutiendo algunas normas 84 00:03:36,360 --> 00:03:38,860 para la clase y nuestra relación porque creo 85 00:03:38,860 --> 00:03:40,010 que son muy importantes. 86 00:03:40,010 --> 00:03:43,630 Primero y ante todo, como aquellos que son mi sección han recibido y 87 00:03:43,630 --> 00:03:47,150 se ha discutido en la que correo electrónico, me encanta esto. 88 00:03:47,150 --> 00:03:48,130 Esta es mi parte favorita del año. 89 00:03:48,130 --> 00:03:49,100 He estado tan emocionada. 90 00:03:49,100 --> 00:03:50,040 He estado aquí durante horas de hoy. 91 00:03:50,040 --> 00:03:54,560 No he salido de este edificio, excepto para ir a comer porque me encanta la sección CS50, I 92 00:03:54,560 --> 00:03:58,620 enseñanza de amor, me encanta trabajar con ustedes. 93 00:03:58,620 --> 00:04:02,000 >> Uno de mis mayores prioridades, si no es mi prioridad número uno, no sólo para 94 00:04:02,000 --> 00:04:05,130 esta clase, pero incluyendo mi otro clases y actividades extracurriculares, es 95 00:04:05,130 --> 00:04:09,350 apoyar a ustedes, y ayudar a ustedes, y todo lo posible para asegurarse de que usted 96 00:04:09,350 --> 00:04:13,780 los chicos tienen un maravilloso, divertido, productivo, atractiva, apasionante 97 00:04:13,780 --> 00:04:15,250 experiencia en esta clase. 98 00:04:15,250 --> 00:04:16,190 Eso es lo que estoy comprometido a. 99 00:04:16,190 --> 00:04:17,959 Es por eso que me encanta hacer esto. 100 00:04:17,959 --> 00:04:20,190 Esa es mi prioridad número uno, el apoyo a ustedes. 101 00:04:20,190 --> 00:04:25,110 Si usted tiene alguna pregunta acerca de la conferencia, el conjunto de problemas, sección, 102 00:04:25,110 --> 00:04:28,830 vida, incluso si usted quiere hablar acerca de vida, no dude en acercarse. 103 00:04:28,830 --> 00:04:31,210 >> Tienes mi número de teléfono celular, tienes mi correo electrónico 104 00:04:31,210 --> 00:04:32,910 dirección, tienes mi Gchat. 105 00:04:32,910 --> 00:04:37,540 Puede ponerse en contacto conmigo en cualquier o todos los los cada vez, pero probablemente no va a conseguir 106 00:04:37,540 --> 00:04:38,720 una respuesta cada vez. 107 00:04:38,720 --> 00:04:41,020 Trato y vuelva dentro de 24 horas. 108 00:04:41,020 --> 00:04:44,760 A menudo será dentro de 20 minutos o 24 minutos. 109 00:04:44,760 --> 00:04:46,110 Debería haber dicho que para que sea paralela. 110 00:04:46,110 --> 00:04:48,840 Pero usted conseguirá una respuesta con bastante rapidez. 111 00:04:48,840 --> 00:04:54,220 >> Si me TEXTO una hora antes de la del conjunto de problemas debido, voy a calmar usted 112 00:04:54,220 --> 00:04:57,660 hacia abajo y hacer ejercicios de respiración profunda con usted, pero si usted no ha comenzado, 113 00:04:57,660 --> 00:05:00,270 usted probablemente no va a terminar, y Realmente no puedo ayudarle hacia fuera allí 114 00:05:00,270 --> 00:05:01,710 a pesar de que voy a intentar mi mejor esfuerzo. 115 00:05:01,710 --> 00:05:03,920 Así que voy a hacer todo lo Lo que pueda para ayudarte. 116 00:05:03,920 --> 00:05:07,980 Por favor, siéntase libre para llegar si que se encuentra en la sección de nuevo, en horas de oficina 117 00:05:07,980 --> 00:05:09,150 si me ves, o incluso fuera. 118 00:05:09,150 --> 00:05:11,800 Estoy feliz de hacer una cita para reunirse y trabajar a través de problemas 119 00:05:11,800 --> 00:05:14,410 con o repasar el material. 120 00:05:14,410 --> 00:05:15,990 Así que ese es el número uno, el apoyo. 121 00:05:15,990 --> 00:05:17,940 Voy a hacer todo lo que pueda para apoyarle. 122 00:05:17,940 --> 00:05:21,520 >> Número dos, reunidos en el centro. 123 00:05:21,520 --> 00:05:24,760 Por mucho que me gustaría ser, estoy no es omnipotente o todopoderoso o 124 00:05:24,760 --> 00:05:28,410 que todo lo sabe, así que no sé todo el tiempo si lo que estoy haciendo es poniendo 125 00:05:28,410 --> 00:05:33,410 en todo, si la forma en que estoy enseñando el tema le ayuda a aprender, o si 126 00:05:33,410 --> 00:05:36,120 se confunden en un tema, pero no que levante la mano o me preguntan 127 00:05:36,120 --> 00:05:37,390 o bien, enviando un correo electrónico. 128 00:05:37,390 --> 00:05:42,150 O incluso si, de nuevo, está confundido sobre algo en el conjunto de problemas. 129 00:05:42,150 --> 00:05:44,240 Si no se llega a mí, Yo no puedo saber a ciencia cierta. 130 00:05:44,240 --> 00:05:46,950 Voy a hacer mi mejor esfuerzo para el check in en chicos, asegúrese de que todo es 131 00:05:46,950 --> 00:05:51,170 va bien, tratar de enseñar las cosas de una manera que será propicio para la mayor parte de 132 00:05:51,170 --> 00:05:54,910 sus estilos de aprendizaje, pero si hay ¿Puedo hacer algo, hágamelo saber. 133 00:05:54,910 --> 00:05:58,520 >> En ese sentido, si quieres un poco de ayuda con el conjunto de problemas, estoy más 134 00:05:58,520 --> 00:05:59,700 que feliz de ayudarle a con fijó el problema. 135 00:05:59,700 --> 00:06:02,300 Vamos a hacer un montón de que hacia el segundo 136 00:06:02,300 --> 00:06:03,460 medio de esta sección. 137 00:06:03,460 --> 00:06:06,040 Pero si usted no ha leído los boletines de problemas atrás y no han visto la caminata 138 00:06:06,040 --> 00:06:09,310 a través y no han visto los cortos y esperando que te enseñe 139 00:06:09,310 --> 00:06:13,260 todo lo que se ha grabado en vídeo en línea o que usted puede encontrar en CS50 140 00:06:13,260 --> 00:06:16,720 estudiar, eso no es realmente justo para mí oa sus otros compañeros. 141 00:06:16,720 --> 00:06:20,440 142 00:06:20,440 --> 00:06:25,730 >> Así que por favor, estoy más que feliz de ayudar ustedes, pero ustedes llegaron a reunirse conmigo en 143 00:06:25,730 --> 00:06:27,230 el medio. 144 00:06:27,230 --> 00:06:30,100 Tenemos un montón de recursos para Está disponible en CS50. 145 00:06:30,100 --> 00:06:31,230 He mencionado algunas de ellas. 146 00:06:31,230 --> 00:06:32,960 Por favor tome ventaja de ellos. 147 00:06:32,960 --> 00:06:35,140 Si usted está confundido, estoy más que feliz que le ayude a explicar en 148 00:06:35,140 --> 00:06:39,290 de otra manera, pero no es justo si los estudiantes se muestran en horario de oficina, 149 00:06:39,290 --> 00:06:42,530 no han empezado nada, y es La noche del jueves y que están esperando 150 00:06:42,530 --> 00:06:45,880 la TF a caminar a través de todos y cada uno cosa para el problema planteado por 151 00:06:45,880 --> 00:06:47,140 al mediodía del día siguiente. 152 00:06:47,140 --> 00:06:48,300 Tiene sentido? 153 00:06:48,300 --> 00:06:50,890 Una vez más, por favor encontrarse en el medio. 154 00:06:50,890 --> 00:06:53,230 >> Y, por último, las altas expectativas. 155 00:06:53,230 --> 00:06:58,010 Yo voy a estar con ley de todos los que son en mi sección, o anotando su 156 00:06:58,010 --> 00:06:59,020 boletines de problemas. 157 00:06:59,020 --> 00:07:01,240 No ha vuelto un problema establecer cero o uno aún. 158 00:07:01,240 --> 00:07:02,250 Lo sentimos por eso. 159 00:07:02,250 --> 00:07:04,970 Nos tomó un tiempo para finalmente conformarse secciones, y ahora 160 00:07:04,970 --> 00:07:05,560 podemos empezar de calificaciones. 161 00:07:05,560 --> 00:07:09,560 >> Los traeré de nuevo a usted tan pronto como sea posible. 162 00:07:09,560 --> 00:07:11,890 Esos son algunos de mis asesorados por ahí. 163 00:07:11,890 --> 00:07:14,150 Los traeré de nuevo a usted tan pronto como sea posible. 164 00:07:14,150 --> 00:07:18,046 Y para el problema de establecer dos, estaremos en Programamos y empezaremos conseguirlos 165 00:07:18,046 --> 00:07:20,440 a usted muy rápidamente después de encender pulg 166 00:07:20,440 --> 00:07:24,130 >> Al llegar a su problema de un retroceso, que obtendrán puntajes, como ustedes saben desde 167 00:07:24,130 --> 00:07:28,150 leer el plan de estudios - la corrección, diseño, el alcance y las puntuaciones de estilo. 168 00:07:28,150 --> 00:07:29,760 También obtendrá los comentarios. 169 00:07:29,760 --> 00:07:32,160 Los comentarios son más importantes que las puntuaciones. 170 00:07:32,160 --> 00:07:33,780 Creo que es seguro decir que. 171 00:07:33,780 --> 00:07:37,930 >> Las puntuaciones son sólo un número de uno a cinco. 172 00:07:37,930 --> 00:07:38,930 Es difícil de leer en ellos. 173 00:07:38,930 --> 00:07:40,720 Es difícil mejorar la de aquellos. 174 00:07:40,720 --> 00:07:44,460 Pero los comentarios señalarán específica cosas que hiciste bien o áreas 175 00:07:44,460 --> 00:07:48,360 usted puede mejorar y te dan algunos ideas para el futuro o alternativa 176 00:07:48,360 --> 00:07:49,160 formas de hacer las cosas. 177 00:07:49,160 --> 00:07:52,270 >> Así que por favor, por favor, lea a través de los comentarios. 178 00:07:52,270 --> 00:07:54,190 Puse un montón de tiempo en esos comentarios. 179 00:07:54,190 --> 00:07:57,190 Por favor, lea a través de ellos y hacer no sólo desplazarse hacia abajo a la parte inferior de la 180 00:07:57,190 --> 00:08:01,890 PDF, busca tu puntuación, o visite el sitio y encontrar su puntuación y, a continuación, pasar por alto 181 00:08:01,890 --> 00:08:02,800 los comentarios. 182 00:08:02,800 --> 00:08:03,910 Así no es como eres va a mejorar. 183 00:08:03,910 --> 00:08:06,550 Así no es como se va a aumentar sus puntajes en última instancia, sólo 184 00:08:06,550 --> 00:08:07,340 mirando las puntuaciones. 185 00:08:07,340 --> 00:08:08,760 Por favor mira los comentarios. 186 00:08:08,760 --> 00:08:13,240 >> Y a lo largo de la línea de altas expectativas, de nuevo, como he dicho, 187 00:08:13,240 --> 00:08:14,260 se puede marcar uno al cinco. 188 00:08:14,260 --> 00:08:17,120 Dos, tres, y cuatro patas son el gran mayoría de las puntuaciones 189 00:08:17,120 --> 00:08:17,940 vas a estar recibiendo. 190 00:08:17,940 --> 00:08:20,180 Unos y cinco son a la vez muy raro. 191 00:08:20,180 --> 00:08:21,720 Siempre hay cosas que podemos hacerlo mejor. 192 00:08:21,720 --> 00:08:23,490 Cada vez que firmo el código de un programa, no hay siempre algo que 193 00:08:23,490 --> 00:08:24,800 podría haber hecho mejor. 194 00:08:24,800 --> 00:08:28,740 >> Así que en lugar de decir que te dan un cinco todo el tiempo en todo, y lo hizo 195 00:08:28,740 --> 00:08:31,960 todo perfecto, no creo que ninguna de nosotros realmente creer que nosotros - o 196 00:08:31,960 --> 00:08:34,830 con suerte, no hacemos todo lo perfeccionar todo el tiempo. 197 00:08:34,830 --> 00:08:37,010 Así que no se preocupe si usted no obtuvo un cinco. 198 00:08:37,010 --> 00:08:40,470 Un niño de cinco no se asigna a una A, un niño de cuatro no se asigna a una B, una de tres hace 199 00:08:40,470 --> 00:08:42,950 no se asigne a un C. Eso no es cómo funcionan las puntuaciones. 200 00:08:42,950 --> 00:08:48,140 >> Al igual que David ha dicho muchas veces, en del semestre final todas sus cuentas y 201 00:08:48,140 --> 00:08:53,390 aportaciones de mí, tu TF, se unen y determinar una calificación final para usted. 202 00:08:53,390 --> 00:08:56,760 Pero, de nuevo, no es cinco, Una, cuatro, B, etcétera. 203 00:08:56,760 --> 00:09:01,150 Así que voy a tener altas expectativas para ustedes. 204 00:09:01,150 --> 00:09:03,670 Voy a esperar un buen problema conjuntos y voy a dar 205 00:09:03,670 --> 00:09:05,010 retroalimentación como tal. 206 00:09:05,010 --> 00:09:07,430 Y no va a significar que eres va a obtener una calificación peor. 207 00:09:07,430 --> 00:09:09,760 Usted se califican en términos de su progreso respecto a la semana 208 00:09:09,760 --> 00:09:11,260 cero al final del curso. 209 00:09:11,260 --> 00:09:17,190 >> Y, por último, en términos de alta las expectativas de la clase, me encanta cuando 210 00:09:17,190 --> 00:09:18,460 personas participan. 211 00:09:18,460 --> 00:09:23,180 Entiendo que algunas personas se sienten más o participar menos cómodo. 212 00:09:23,180 --> 00:09:26,050 Otras personas están participando no por levantar la mano y 213 00:09:26,050 --> 00:09:27,320 hablando todo el tiempo. 214 00:09:27,320 --> 00:09:30,570 Pero en esta clase vamos a ser haciendo un montón de pequeños problemas, muchos 215 00:09:30,570 --> 00:09:33,770 de mini preguntas, y algo más problemas de codificación más grandes. 216 00:09:33,770 --> 00:09:36,760 Así que sin duda trabajar estos ejercicios fuera cuando las hacemos en el ordenador o en 217 00:09:36,760 --> 00:09:37,900 una hoja de papel. 218 00:09:37,900 --> 00:09:40,933 >> Pero también te voy a dar un poco de tiempo antes de Alguien alguna vez tiene que responder a algunas 219 00:09:40,933 --> 00:09:42,220 de las preguntas que le pido. 220 00:09:42,220 --> 00:09:44,930 Así que porque yo te daré un tiempo para pensar en ello, porque vamos 221 00:09:44,930 --> 00:09:49,380 hacer las cosas de socios a veces, Voy a esperar a todo el mundo 222 00:09:49,380 --> 00:09:52,150 a comprometerse un poco. 223 00:09:52,150 --> 00:09:56,030 Y a falta de un término mejor, hay probablemente será la llamada fría, que 224 00:09:56,030 --> 00:09:59,045 es donde todo el mundo tendrá la oportunidad de para pensar la respuesta, y luego 225 00:09:59,045 --> 00:10:01,150 Voy a llamar a usted, y luego que va a decir la respuesta. 226 00:10:01,150 --> 00:10:05,200 >> No te preocupes ni te asustes por eso. 227 00:10:05,200 --> 00:10:08,610 Lo he hecho en el pasado y que he encontrado que es mucho más éxito, 228 00:10:08,610 --> 00:10:11,810 investigación educativa también ha de leer en él para determinar si era o no un 229 00:10:11,810 --> 00:10:12,640 buena táctica. 230 00:10:12,640 --> 00:10:15,790 Es muy útil, especialmente si usted dar a los estudiantes tiempo para pensar acerca de la 231 00:10:15,790 --> 00:10:20,070 respuestas y no les haga sólo vienen y decir que la derecha del palo. 232 00:10:20,070 --> 00:10:22,620 Pero si usted no se siente cómodo contestar, yo también soy muy bueno en 233 00:10:22,620 --> 00:10:25,370 sintiendo que fuera, y no vamos a se pone en el lugar, sobre todo en 234 00:10:25,370 --> 00:10:28,240 la cámara, a pesar de que ninguno de usted está en la cámara en estos momentos. 235 00:10:28,240 --> 00:10:32,250 >> Así que esas son las normas que tengo. 236 00:10:32,250 --> 00:10:34,670 Una cosa más en la línea de conocer en el medio. 237 00:10:34,670 --> 00:10:36,490 Voy a dar a ustedes una gran cantidad de comentarios. 238 00:10:36,490 --> 00:10:38,310 Por favor, dame retroalimentación. 239 00:10:38,310 --> 00:10:46,190 Hay un sitio web, sayat.me/cs50. 240 00:10:46,190 --> 00:10:48,380 Así que es una retroalimentación honesta. 241 00:10:48,380 --> 00:10:50,730 Si usted quiere dar durante la sección, Recibo un correo electrónico cada vez que sucede. 242 00:10:50,730 --> 00:10:53,820 Vamos a tomar un descanso en un poco, así que voy a mirar a través de las votaciones a continuación. 243 00:10:53,820 --> 00:10:55,970 Si alguna vez tiene algún comentario, por favor, dar a mí allí. 244 00:10:55,970 --> 00:11:01,380 >> Si usted me da retroalimentación sobre la Q, que es maravilloso, pero esa es la guía 245 00:11:01,380 --> 00:11:02,570 que lo haga al final. 246 00:11:02,570 --> 00:11:05,690 Pero eso será al final del semestre para No voy a ser capaz de tomar nada de eso 247 00:11:05,690 --> 00:11:08,620 retroalimentación y convertirla en la enseñanza ustedes mejor. 248 00:11:08,620 --> 00:11:11,020 Así que por favor, si usted tiene cualquier retroalimentación, dámelo. 249 00:11:11,020 --> 00:11:12,010 Me encanta la retroalimentación. 250 00:11:12,010 --> 00:11:14,490 Volver a la FOP, se obtiene retroalimentación todo el tiempo. 251 00:11:14,490 --> 00:11:18,610 >> Usted me puede dar ventajas, las cosas buenas, deltas, cosas que puedo mejorar. 252 00:11:18,610 --> 00:11:20,600 Usted puede hacer comentarios sobre mi ropa. 253 00:11:20,600 --> 00:11:24,170 Eso no va a ser tan útil, pero usted es la bienvenida a comentar sobre cualquiera y 254 00:11:24,170 --> 00:11:24,570 todo. 255 00:11:24,570 --> 00:11:26,280 Por favor, por favor déme la retroalimentación. 256 00:11:26,280 --> 00:11:28,740 Lo valoro mucho y significa mucho para mí. 257 00:11:28,740 --> 00:11:31,760 258 00:11:31,760 --> 00:11:33,280 >> Una norma más, diversión. 259 00:11:33,280 --> 00:11:34,530 Vamos a tener un montón de diversión. 260 00:11:34,530 --> 00:11:36,930 Esperemos que en este curso, se le tener un montón de diversión. 261 00:11:36,930 --> 00:11:38,780 Vamos a tener dulces en sección. 262 00:11:38,780 --> 00:11:40,040 Tendremos música. 263 00:11:40,040 --> 00:11:45,510 Estaremos con suerte conocerse otro algo así, así que quiero 264 00:11:45,510 --> 00:11:47,690 que esto sea una experiencia divertida y atractiva. 265 00:11:47,690 --> 00:11:50,890 >> Sé que algunos de ustedes han dormido en las conferencias que tuvieron el día de hoy, 266 00:11:50,890 --> 00:11:53,750 así que espero que no lo hará ser el caso ahora. 267 00:11:53,750 --> 00:11:55,960 Y si es el caso ahora, sólo no roncar porque eso podría 268 00:11:55,960 --> 00:11:57,580 ser captado por la cámara. 269 00:11:57,580 --> 00:11:58,770 Sweet. 270 00:11:58,770 --> 00:12:04,020 Todas las preguntas, comentarios o inquietudes antes de pasar sobre cualquier cosa que hayamos 271 00:12:04,020 --> 00:12:05,270 hablado? 272 00:12:05,270 --> 00:12:08,620 273 00:12:08,620 --> 00:12:11,350 Grande. 274 00:12:11,350 --> 00:12:14,830 >> Así que vamos a ir en matrices primera. 275 00:12:14,830 --> 00:12:17,140 Esta es la forma de hacer un arreglo. 276 00:12:17,140 --> 00:12:18,410 Hemos visto esto antes. 277 00:12:18,410 --> 00:12:21,830 Usted tiene un tipo de datos, usted tiene un nombre, y entonces usted tiene un tamaño. 278 00:12:21,830 --> 00:12:24,430 Justo aquí, puedo crear dos matrices. 279 00:12:24,430 --> 00:12:30,360 La primera es una serie de caracteres, y cuenta con 26 espacios. 280 00:12:30,360 --> 00:12:33,790 La segunda es una serie de partituras, y tiene tres 281 00:12:33,790 --> 00:12:35,390 espacios de tres números enteros. 282 00:12:35,390 --> 00:12:35,827 ¿Sí? 283 00:12:35,827 --> 00:12:38,200 >> ESTUDIANTE: ¿Son todas estas diapositivas en algún lugar disponible para nosotros? 284 00:12:38,200 --> 00:12:38,850 >> JASON HIRSCHHORN: Muy buena pregunta. 285 00:12:38,850 --> 00:12:40,650 La pregunta era, ¿son todos estas diapositivas disponibles? 286 00:12:40,650 --> 00:12:40,920 Sí. 287 00:12:40,920 --> 00:12:43,420 Todas estas diapositivas estarán disponibles, y en el futuro, voy a enviarlas por correo electrónico a 288 00:12:43,420 --> 00:12:44,640 que antes de la sección. 289 00:12:44,640 --> 00:12:47,340 Pero hoy en día, porque esta es la primera semana, tuvimos un comienzo tardío. 290 00:12:47,340 --> 00:12:49,675 Así que por lo general, obtendrá estas diapositivas, pero estarán disponibles en línea y 291 00:12:49,675 --> 00:12:52,420 Voy a enviarlas por correo electrónico a usted justo después de la clase. 292 00:12:52,420 --> 00:12:54,140 ¿Alguna otra pregunta? 293 00:12:54,140 --> 00:13:01,330 >> Así que de nuevo, las matrices son cajas, por falta de una palabra mejor, que mantienen múltiples 294 00:13:01,330 --> 00:13:06,420 elementos de un tipo de datos, y que son uno junto al otro en la memoria. 295 00:13:06,420 --> 00:13:11,370 Y así, una vez más, se trata de cómo se puede hacer dos tipos de matrices. 296 00:13:11,370 --> 00:13:15,090 >> Así que después de que haya hecho su matriz con esa primera línea - partituras int, soporte 297 00:13:15,090 --> 00:13:17,430 tres, corchete de cierre - que quiere que lo inicie. 298 00:13:17,430 --> 00:13:19,050 ¿Quieres poner algunos valores en ese país. 299 00:13:19,050 --> 00:13:24,660 Y esta es la forma de poner algunos valores en allí, sólo elegir el indice y 300 00:13:24,660 --> 00:13:25,670 escribir el número. 301 00:13:25,670 --> 00:13:27,130 Vamos a dibujar esto en la pizarra. 302 00:13:27,130 --> 00:13:28,270 ¿Todos pueden ver? 303 00:13:28,270 --> 00:13:29,030 Todo el mundo puede ver. 304 00:13:29,030 --> 00:13:30,790 Sweet. 305 00:13:30,790 --> 00:13:36,550 >> Así que va a ser mi matriz llamada Scores. 306 00:13:36,550 --> 00:13:37,730 Como se puede ver, es de tamaño tres. 307 00:13:37,730 --> 00:13:39,210 Hay tres cajas en ese país. 308 00:13:39,210 --> 00:13:43,120 Cada uno puede adaptarse a lo tipo de tipo de datos? 309 00:13:43,120 --> 00:13:43,790 >> ESTUDIANTE: Integer. 310 00:13:43,790 --> 00:13:45,250 >> JASON HIRSCHHORN: Un entero en éste. 311 00:13:45,250 --> 00:13:48,790 Escribimos int puntuaciones, y la primera palabra es el tipo de datos que va a 312 00:13:48,790 --> 00:13:50,910 ir en los cuadros en la matriz. 313 00:13:50,910 --> 00:13:52,160 Así que puedo encajar tres. 314 00:13:52,160 --> 00:13:54,880 315 00:13:54,880 --> 00:13:57,000 ¿Por qué tengo cero hasta hay en el tablero? 316 00:13:57,000 --> 00:13:59,240 ¿Por qué dice cero la puntuación es igual a 1? 317 00:13:59,240 --> 00:14:02,090 318 00:14:02,090 --> 00:14:03,180 Me recuerdas a tu nombre. 319 00:14:03,180 --> 00:14:03,470 >> ESTUDIANTE: Kurt. 320 00:14:03,470 --> 00:14:04,070 >> JASON HIRSCHHORN: Kurt. 321 00:14:04,070 --> 00:14:04,480 >> ESTUDIANTE: Sí. 322 00:14:04,480 --> 00:14:04,920 >> JASON HIRSCHHORN: ¿Por qué? 323 00:14:04,920 --> 00:14:07,230 >> ESTUDIANTE: Debido a que el primer índice es cero, empezamos a contar desde cero. 324 00:14:07,230 --> 00:14:08,480 >> JASON HIRSCHHORN: Así que empezamos a contar desde cero. 325 00:14:08,480 --> 00:14:09,580 Eso es exactamente correcto. 326 00:14:09,580 --> 00:14:12,340 Esta es la parte confusa y se disparará que, sobre todo cuando estás 327 00:14:12,340 --> 00:14:14,900 tratando de recorrer arrays, que vamos a hacer en un rato. 328 00:14:14,900 --> 00:14:15,980 Empezamos a contar desde cero. 329 00:14:15,980 --> 00:14:19,170 Así que si quiero hacer referencia a la primera cuadro, no es una caja. 330 00:14:19,170 --> 00:14:22,290 Por desgracia, es cuadro de cero. 331 00:14:22,290 --> 00:14:26,460 El segundo es un cuadro de uno, y en este caso, la tercera es la caja dos. 332 00:14:26,460 --> 00:14:28,700 >> ¿Qué pasa con la caja tres? 333 00:14:28,700 --> 00:14:30,670 ¿Dónde está la caja de tres? 334 00:14:30,670 --> 00:14:34,750 O si lo que quiero hacer cuentas, soporte tres, corchete de cierre, ¿qué es eso? 335 00:14:34,750 --> 00:14:37,650 336 00:14:37,650 --> 00:14:39,760 Así que usted dijo que el carácter nulo. 337 00:14:39,760 --> 00:14:41,600 ¿Alguna otra idea? 338 00:14:41,600 --> 00:14:44,590 ¿Qué es el grupo de puntuación de tres bracket? 339 00:14:44,590 --> 00:14:48,045 >> ESTUDIANTE: En realidad no existe porque sólo se definió como puntuaciones, 340 00:14:48,045 --> 00:14:49,370 soporte de tres. 341 00:14:49,370 --> 00:14:51,400 >> JASON HIRSCHHORN: Así que usted dice que en realidad no existe. 342 00:14:51,400 --> 00:14:54,230 En algunos casos, cuando estamos tratando con cadenas, por lo general vamos a poner un nulo 343 00:14:54,230 --> 00:14:54,790 carácter al final. 344 00:14:54,790 --> 00:14:56,100 Vamos a llegar a eso en un segundo. 345 00:14:56,100 --> 00:15:01,020 Pero en este caso, hay hay una tercera caja aquí. 346 00:15:01,020 --> 00:15:06,390 Así que la última caja en cualquier matriz es de tamaño menos 1. 347 00:15:06,390 --> 00:15:11,310 Así que si tenemos una matriz de tamaño n, la primera casilla está en cero, el último es 348 00:15:11,310 --> 00:15:12,700 a n menos 1. 349 00:15:12,700 --> 00:15:14,970 Y en este caso, no existe. 350 00:15:14,970 --> 00:15:17,970 Hay algo aquí en la memoria, pero no es la nuestra. 351 00:15:17,970 --> 00:15:18,460 No somos dueños de ella. 352 00:15:18,460 --> 00:15:19,570 Nosotros no pedimos. 353 00:15:19,570 --> 00:15:22,606 Así que si intentamos acceder a ella, lo que vamos a Aún un poco, probablemente vamos a 354 00:15:22,606 --> 00:15:24,970 meterse en problemas. 355 00:15:24,970 --> 00:15:29,180 >> En este caso, estoy inicializar mi matriz con tres variables. 356 00:15:29,180 --> 00:15:36,195 Estamos poniendo un uno en la caja cero, dos en una caja, y tres en la caja dos. 357 00:15:36,195 --> 00:15:39,280 ¿Alguien tiene alguna pregunta sobre la inicialización de una matriz? 358 00:15:39,280 --> 00:15:44,540 359 00:15:44,540 --> 00:15:46,970 >> Así que nos fuimos en este momento. 360 00:15:46,970 --> 00:15:52,725 Partituras, soporte de tres, corchete de cierre, eso no existe. 361 00:15:52,725 --> 00:15:58,130 Estamos cero indexadas en ciencias de la computación, así que empezamos a contar desde cero. 362 00:15:58,130 --> 00:16:01,860 La última caja disponible para nosotros, es el tercer cuadro, pero se llama la caja 363 00:16:01,860 --> 00:16:03,110 número dos. 364 00:16:03,110 --> 00:16:05,790 365 00:16:05,790 --> 00:16:09,710 >> Más abajo, esto es una alternativa manera de inicializar matrices. 366 00:16:09,710 --> 00:16:13,410 Así que en lugar de crear la matriz en una line, rellenando el primer cuadro, luego 367 00:16:13,410 --> 00:16:17,070 el segundo cuadro, el tercer cuadro, usted puede hacerlo todo en una sola línea. 368 00:16:17,070 --> 00:16:19,040 Así, en esa línea, ambas matrices. 369 00:16:19,040 --> 00:16:23,460 Esto crea el mismo array exacta como lo que hemos creado aquí, pero 370 00:16:23,460 --> 00:16:24,710 sólo lo hace en una sola línea. 371 00:16:24,710 --> 00:16:29,740 372 00:16:29,740 --> 00:16:31,360 >> Ahora hemos creado nuestra matriz. 373 00:16:31,360 --> 00:16:34,100 Por lo general, una vez que se crea una matriz, querer hacer algo con él, ya sea 374 00:16:34,100 --> 00:16:38,430 eso es llenarlo o conseguir cosas fuera de él e imprimirlos en la pantalla. 375 00:16:38,430 --> 00:16:42,270 En este caso, vamos a través de nuestro array puntajes, que hemos inicializado en 376 00:16:42,270 --> 00:16:44,740 la primera línea aquí en gris. 377 00:16:44,740 --> 00:16:49,600 Y luego, en la segunda línea, se inicia iteración a través de la matriz. 378 00:16:49,600 --> 00:16:52,640 ¿Alguien tiene alguna pregunta acerca de la estructura de un bucle? 379 00:16:52,640 --> 00:16:55,250 380 00:16:55,250 --> 00:16:56,400 >> Así que este es el bucle for. 381 00:16:56,400 --> 00:16:59,530 Tenemos nuestra condición inicial y, a continuación, nuestra condición final, y luego 382 00:16:59,530 --> 00:17:01,160 iteración, i, cada bucle. 383 00:17:01,160 --> 00:17:05,579 Y en las llaves de este para bucle, ¿qué pasa si yo fuera a ejecutar 384 00:17:05,579 --> 00:17:06,290 este programa? 385 00:17:06,290 --> 00:17:10,410 ¿Alguien puede decirme lo que nos darían? 386 00:17:10,410 --> 00:17:11,589 [? Matu? ?] 387 00:17:11,589 --> 00:17:13,819 >> MATU: Imprimir todas las puntuaciones en cada línea. 388 00:17:13,819 --> 00:17:14,900 Sería imprimir cada puntuación en una línea separada. 389 00:17:14,900 --> 00:17:16,300 >> JASON HIRSCHHORN: ¿Qué es exactamente tendría que imprimir? 390 00:17:16,300 --> 00:17:19,790 >> ESTUDIANTE: Se imprimirá una, luego dos, luego tres. 391 00:17:19,790 --> 00:17:20,235 >> JASON HIRSCHHORN: Exactamente. 392 00:17:20,235 --> 00:17:23,490 Sería imprimir uno, luego dos, luego tres, cada uno en líneas separadas, porque 393 00:17:23,490 --> 00:17:27,810 vamos a través de la matriz y se le ver que el segundo, el printf 394 00:17:27,810 --> 00:17:29,275 declaración, los resultados i. 395 00:17:29,275 --> 00:17:32,880 Así que en la primera ronda a través de nuestro de bucle, i es igual a cero, lo que significa que estamos 396 00:17:32,880 --> 00:17:34,640 obtener el valor en cero puntos - 397 00:17:34,640 --> 00:17:36,900 que, si nos remontamos a nuestro diagrama, es uno - 398 00:17:36,900 --> 00:17:38,630 y rellenando - 399 00:17:38,630 --> 00:17:39,700 oh, que dice c. 400 00:17:39,700 --> 00:17:41,680 Eso debería ser% d. 401 00:17:41,680 --> 00:17:43,970 Voy a arreglar esto en un momento cuando Yo la mano que a ustedes. 402 00:17:43,970 --> 00:17:48,670 Pero estamos presentando un número entero por lo que debería ser% d aquí, no% c. 403 00:17:48,670 --> 00:17:50,340 ¿Qué es% c para? 404 00:17:50,340 --> 00:17:50,790 >> ESTUDIANTE: Carácter. 405 00:17:50,790 --> 00:17:52,680 >> JASON HIRSCHHORN: Carácter, exactamente. 406 00:17:52,680 --> 00:17:53,690 ¿Cuál es el otro? 407 00:17:53,690 --> 00:17:56,260 Si no quieres hacer% d para una entero, ¿qué más se puede hacer? 408 00:17:56,260 --> 00:17:57,000 >> ESTUDIANTE: i. 409 00:17:57,000 --> 00:17:59,180 >> JASON HIRSCHHORN:% i, exactamente. 410 00:17:59,180 --> 00:18:01,660 Así que cualquier pregunta acerca de la iteración a través de la matriz? 411 00:18:01,660 --> 00:18:05,500 412 00:18:05,500 --> 00:18:07,800 Entonces, ¿qué pasa si hacemos esto? 413 00:18:07,800 --> 00:18:10,290 En lugar de hacer i es menor que tres, nosotros i es menor 414 00:18:10,290 --> 00:18:11,390 que o igual a tres. 415 00:18:11,390 --> 00:18:13,420 ¿Qué sucede cuando ejecutamos este código? 416 00:18:13,420 --> 00:18:17,510 417 00:18:17,510 --> 00:18:18,940 Sí, Annie? 418 00:18:18,940 --> 00:18:22,030 >> ESTUDIANTE: Ellos van a imprimir cosas raras en la cuarta línea. 419 00:18:22,030 --> 00:18:23,850 >> JASON HIRSCHHORN: Así que usted ha dicho, es que va a imprimir cosas raras en la 420 00:18:23,850 --> 00:18:24,390 cuarta línea? 421 00:18:24,390 --> 00:18:25,750 ¿Alguien tiene una respuesta a su pregunta? 422 00:18:25,750 --> 00:18:28,940 423 00:18:28,940 --> 00:18:33,160 Así que lo más probable es que cuando llegamos a la - 424 00:18:33,160 --> 00:18:36,700 por lo que en la cuarta ronda a través de nuestro de lazo, al igual que usted pensó, Annie, 425 00:18:36,700 --> 00:18:39,430 que va a ser puntajes soporte tres, lo que que ya hemos descubierto qué no 426 00:18:39,430 --> 00:18:41,990 Existimos, y vamos a tratar y de acceso que, imprimirlo 427 00:18:41,990 --> 00:18:43,350 cabo, lo utilizan de alguna manera. 428 00:18:43,350 --> 00:18:46,060 Así que el equipo probablemente se enoje con nosotros. 429 00:18:46,060 --> 00:18:46,760 Tienes toda la razón. 430 00:18:46,760 --> 00:18:48,830 >> Puede salir del programa en conjunto. 431 00:18:48,830 --> 00:18:52,222 Puede imprimir algo realmente extraño. 432 00:18:52,222 --> 00:18:53,420 No se puede decir con seguridad. 433 00:18:53,420 --> 00:18:56,210 Lo más probable es que probablemente va a enojar a usted y apenas salga de inmediato. 434 00:18:56,210 --> 00:19:00,100 >> Pero esto es un error común que tendrá donde estás justo al lado de uno a 435 00:19:00,100 --> 00:19:05,110 Al final, y esto es un error que se que la peste a través de su codificación. 436 00:19:05,110 --> 00:19:09,350 437 00:19:09,350 --> 00:19:14,150 Una forma que me gusta hacer es sólo en una pizarra, ir a través de cada iteración 438 00:19:14,150 --> 00:19:18,190 del lazo en la mano o en el papel para ver ¿Qué está pasando, y entonces usted 439 00:19:18,190 --> 00:19:20,440 generalmente se dan cuenta, oh, espera, que no debería han ido a menos de o 440 00:19:20,440 --> 00:19:20,870 igual a tres. 441 00:19:20,870 --> 00:19:24,730 Debería haber dejado a los dos, que es qué sucede si su condición es menos 442 00:19:24,730 --> 00:19:26,206 de tres. 443 00:19:26,206 --> 00:19:29,120 Cualquier pregunta hasta ahora? 444 00:19:29,120 --> 00:19:31,010 Sweet. 445 00:19:31,010 --> 00:19:33,360 >> Así que todos ustedes tienen sus computadoras abierta. 446 00:19:33,360 --> 00:19:36,760 Vamos a darle dos y cincuenta y ocho minutos para escribir un programa que 447 00:19:36,760 --> 00:19:40,460 crea una matriz con los enteros uno a través de cinco y luego imprime cada 448 00:19:40,460 --> 00:19:41,720 entero en una nueva línea. 449 00:19:41,720 --> 00:19:44,330 450 00:19:44,330 --> 00:19:46,000 Y si usted tiene alguna pregunta, levanten la mano. 451 00:19:46,000 --> 00:19:48,140 Estoy feliz de conseguir. 452 00:19:48,140 --> 00:19:50,630 Como he dicho, vamos a tomar tres minutos para escribir esto. 453 00:19:50,630 --> 00:20:41,300 454 00:20:41,300 --> 00:20:45,110 ¿Están todos bien si voy a un nueva ventana y cerrar esta? 455 00:20:45,110 --> 00:22:13,420 456 00:22:13,420 --> 00:22:15,520 >> Lo siento si no has tenido la oportunidad de hasta el final, pero vamos a hacerlo 457 00:22:15,520 --> 00:22:17,310 juntos ahora mismo. 458 00:22:17,310 --> 00:22:23,640 Así que en la pantalla, tengo # include cs50.h, # include stdio.h. 459 00:22:23,640 --> 00:22:26,090 ¿Puede alguien decirme qué esas dos líneas hacen? 460 00:22:26,090 --> 00:22:32,250 461 00:22:32,250 --> 00:22:33,155 Michael? 462 00:22:33,155 --> 00:22:40,030 >> ESTUDIANTE: Incluyen las bibliotecas que CS50 hizo y que Steve tiene 463 00:22:40,030 --> 00:22:44,210 salvo para su uso a hacer su vida más fácil. 464 00:22:44,210 --> 00:22:46,820 >> JASON HIRSCHHORN: Así que usted ha dicho que incluir las bibliotecas, que CS50 465 00:22:46,820 --> 00:22:51,230 hecho, cs50.h, y uno que es solo estándar, viene con 466 00:22:51,230 --> 00:22:53,510 el paquete C, stdio.h. 467 00:22:53,510 --> 00:22:54,890 ¿Cómo que incluye las bibliotecas, sin embargo? 468 00:22:54,890 --> 00:22:55,770 ¿Se puede ser un poco más específico? 469 00:22:55,770 --> 00:23:01,180 >> ESTUDIANTE: Hace que sea, para que pueda utilizar ciertas palabras de código para tener una 470 00:23:01,180 --> 00:23:05,710 función ocurra sin tener que ir y hacer que la función c ti mismo. 471 00:23:05,710 --> 00:23:08,730 >> JASON HIRSCHHORN: ¿Puede usted darme un ejemplo? 472 00:23:08,730 --> 00:23:11,160 >> ESTUDIANTE: Al igual que printf es uno que puede utilizar. 473 00:23:11,160 --> 00:23:11,860 >> JASON HIRSCHHORN: Printf. 474 00:23:11,860 --> 00:23:14,680 Así que usted dijo printf es uno de los funciones en las que en lugar de tener que 475 00:23:14,680 --> 00:23:19,840 printf escribir por su cuenta, printf es incluidos realmente en stdio.h, por lo que 476 00:23:19,840 --> 00:23:22,010 sólo puede utilizarlo y asumir que va a trabajar. 477 00:23:22,010 --> 00:23:28,270 En stdio.h, si usted abrió ese archivo, habría que incluir cómo printf 478 00:23:28,270 --> 00:23:31,620 obras, todo el código para printf? 479 00:23:31,620 --> 00:23:33,105 ¿Por qué sacudes la cabeza? 480 00:23:33,105 --> 00:23:35,710 >> ESTUDIANTE: Debido a que el archivo de cabecera sólo incluye la declaración de la función. 481 00:23:35,710 --> 00:23:36,400 >> JASON HIRSCHHORN: Exactamente. 482 00:23:36,400 --> 00:23:39,680 El archivo de cabecera sólo incluye la declaración de la función. 483 00:23:39,680 --> 00:23:42,950 Así que, básicamente, al compilar este, Hit Count Marca, que lo haremos en un 484 00:23:42,950 --> 00:23:48,070 segundo, el compilador sabe que si utiliza printf, existe printf. 485 00:23:48,070 --> 00:23:49,370 Esto va a ser definido en alguna parte. 486 00:23:49,370 --> 00:23:51,200 No es un problema para usted usarlo. 487 00:23:51,200 --> 00:23:55,490 Y luego, más adelante, que va a incluir la unos y ceros que contienen en realidad 488 00:23:55,490 --> 00:23:58,360 aplicación de printf y fusionarlas con su código. 489 00:23:58,360 --> 00:24:01,935 ¿Cómo hacer que asegurarse que incluye las unos y ceros para, por ejemplo, reciben cuerda? 490 00:24:01,935 --> 00:24:05,670 491 00:24:05,670 --> 00:24:07,210 >> ESTUDIANTE: Obtener cadena está en cs50.h. 492 00:24:07,210 --> 00:24:07,830 >> JASON HIRSCHHORN: Así es. 493 00:24:07,830 --> 00:24:11,110 Así que dice Obtener existe cadena, la declaración de la función. 494 00:24:11,110 --> 00:24:15,410 Pero entonces los unos y ceros, el binario archivo que incluye la realidad 495 00:24:15,410 --> 00:24:17,370 implementación de cadena get? 496 00:24:17,370 --> 00:24:19,310 ¿Cómo se asegura de que va con su programa? 497 00:24:19,310 --> 00:24:23,220 >> ESTUDIANTE: Pase el enlazador en el argumento de línea de comandos. 498 00:24:23,220 --> 00:24:25,430 >> JASON HIRSCHHORN: Pase el enlazador en el argumento de la línea de comandos. 499 00:24:25,430 --> 00:24:26,700 ¿Cómo se hace eso? 500 00:24:26,700 --> 00:24:29,730 >> ESTUDIANTE: Es la línea-l en el sonido metálico 501 00:24:29,730 --> 00:24:30,480 >> JASON HIRSCHHORN: Exactamente. 502 00:24:30,480 --> 00:24:32,900 Usted dice-l CS50, ¿verdad? 503 00:24:32,900 --> 00:24:34,940 Eso incluye a los unos y ceros. 504 00:24:34,940 --> 00:24:36,460 >> ESTUDIANTE: Pero Marca hace que para usted, ¿verdad? 505 00:24:36,460 --> 00:24:37,010 >> JASON HIRSCHHORN: Exactamente. 506 00:24:37,010 --> 00:24:40,390 Hacer lo hace por usted, pero con el tiempo, que no acabaréis de Marca, o 507 00:24:40,390 --> 00:24:43,220 usted tendrá que hacer una Marca por su cuenta, así que es un 508 00:24:43,220 --> 00:24:43,940 buena cosa para recordar. 509 00:24:43,940 --> 00:24:47,350 Si se va a usar una de estas otras bibliotecas, no sólo tiene usted 510 00:24:47,350 --> 00:24:49,490 escribir # include y a continuación, la biblioteca. 511 00:24:49,490 --> 00:24:51,420 También es necesario vincularlo pulg 512 00:24:51,420 --> 00:24:54,480 Y esas dos cosas son diferentes. -L CS50 es diferente 513 00:24:54,480 --> 00:24:59,260 que # include cs50.h. 514 00:24:59,260 --> 00:25:02,870 >> Luego tenemos las principales llaves void int, y ahora vamos a código 515 00:25:02,870 --> 00:25:03,590 interior principal. 516 00:25:03,590 --> 00:25:07,090 La primera línea que tengo aquí es un comentario que dice, crear una matriz 517 00:25:07,090 --> 00:25:08,820 con ints uno al cinco. 518 00:25:08,820 --> 00:25:12,600 ¿Qué es una buena palabra para describir lo que tienen en estos momentos en la pantalla, sólo 519 00:25:12,600 --> 00:25:14,170 comentarios dentro principal? 520 00:25:14,170 --> 00:25:15,722 ¿Cómo se llama eso? 521 00:25:15,722 --> 00:25:16,820 >> ESTUDIANTE: Pseudocódigo. 522 00:25:16,820 --> 00:25:17,840 >> JASON HIRSCHHORN: Pseudocódigo. 523 00:25:17,840 --> 00:25:18,420 Gracias, Jeffrey. 524 00:25:18,420 --> 00:25:19,540 Eso es exactamente correcto. 525 00:25:19,540 --> 00:25:20,005 Pseudocódigo. 526 00:25:20,005 --> 00:25:22,854 ¿Han visto pseudocódigo antes? 527 00:25:22,854 --> 00:25:28,340 Levante su mano si usted ha utilizado pseudocódigo antes un problema de un conjunto. 528 00:25:28,340 --> 00:25:29,400 Alrededor de la mitad de ustedes. 529 00:25:29,400 --> 00:25:32,700 >> Yo recomendaría el uso de pseudocódigo para descomponer los problemas en 530 00:25:32,700 --> 00:25:35,210 más pequeño, más fácil de morder pedazos. 531 00:25:35,210 --> 00:25:38,630 También, si lo hace el pseudocódigo, se ya que sus comentarios en gran medida 532 00:25:38,630 --> 00:25:40,760 incorporado, por lo que no tiene que volver atrás y tratar de averiguar 533 00:25:40,760 --> 00:25:42,450 lo que estabas haciendo. 534 00:25:42,450 --> 00:25:44,730 Entonces, ¿puede alguien darme esta primera línea para crear una matriz con ints uno 535 00:25:44,730 --> 00:25:45,980 a través de cinco? 536 00:25:45,980 --> 00:25:48,700 537 00:25:48,700 --> 00:25:49,130 Usted? 538 00:25:49,130 --> 00:25:53,350 >> ESTUDIANTE: Int y entonces usted puede llamar cualquiera que sea el número y, a continuación, plaza 539 00:25:53,350 --> 00:25:54,830 soporte de cinco. 540 00:25:54,830 --> 00:25:57,820 >> JASON HIRSCHHORN: Números Así int, corchete cinco. 541 00:25:57,820 --> 00:25:59,160 >> ESTUDIANTE: igual, y a continuación entre llaves. 542 00:25:59,160 --> 00:26:00,830 >> JASON HIRSCHHORN: igual, llaves. 543 00:26:00,830 --> 00:26:01,830 >> ESTUDIANTE: Uno, dos, tres, cuatro. 544 00:26:01,830 --> 00:26:05,566 >> JASON HIRSCHHORN: Uno, dos, tres, cuatro, cinco. 545 00:26:05,566 --> 00:26:07,390 >> Estudiante: ¿Y entonces llaves y luego por punto y coma. 546 00:26:07,390 --> 00:26:09,240 >> JASON HIRSCHHORN: Y rizado aparatos ortopédicos y coma. 547 00:26:09,240 --> 00:26:10,330 Excelente. 548 00:26:10,330 --> 00:26:12,210 Imprima cada int en una nueva línea. 549 00:26:12,210 --> 00:26:17,140 ¿Puede alguien más aportar alguna yo ese código, por favor? 550 00:26:17,140 --> 00:26:17,530 [? Matu? ?] 551 00:26:17,530 --> 00:26:18,560 Adelante. 552 00:26:18,560 --> 00:26:20,440 >> ESTUDIANTE: Para ( 553 00:26:20,440 --> 00:26:21,750 >> JASON HIRSCHHORN: Para ( 554 00:26:21,750 --> 00:26:23,740 >> ESTUDIANTE: int i = 0 555 00:26:23,740 --> 00:26:26,070 >> JASON HIRSCHHORN: int i = 0 556 00:26:26,070 --> 00:26:28,190 >> ESTUDIANTE: Punto y coma i menos de cinco. 557 00:26:28,190 --> 00:26:31,680 >> JASON HIRSCHHORN: Punto y coma, i de menos de 5. 558 00:26:31,680 --> 00:26:33,600 >> ESTUDIANTE: Punto y coma, i + +. 559 00:26:33,600 --> 00:26:35,140 >> JASON HIRSCHHORN: Punto y coma, i + +. 560 00:26:35,140 --> 00:26:37,720 >> ESTUDIANTES: paréntesis cerrados, a continuación, llave abierta. 561 00:26:37,720 --> 00:26:39,410 >> Paréntesis cerrado: JASON HIRSCHHORN y dos llaves. 562 00:26:39,410 --> 00:26:40,510 Entre las llaves? 563 00:26:40,510 --> 00:26:47,640 >> ESTUDIANTE: ¿Y entonces printf "% d / n" 564 00:26:47,640 --> 00:26:48,695 >> JASON HIRSCHHORN: Lo sentimos, espera. 565 00:26:48,695 --> 00:26:52,330 Printf "% d / n, cerrado cotización. 566 00:26:52,330 --> 00:26:55,980 >> ESTUDIANTE: ¿Y luego cita cerrada, coma, conteo, soporte i. 567 00:26:55,980 --> 00:26:58,350 >> JASON HIRSCHHORN: Coma, contar, soporte i. 568 00:26:58,350 --> 00:26:59,970 >> ESTUDIANTE: Lo sentimos, números de ménsula. 569 00:26:59,970 --> 00:27:01,416 >> JASON HIRSCHHORN: Números, soporte i. 570 00:27:01,416 --> 00:27:03,200 >> ESTUDIANTE: Lo siento. 571 00:27:03,200 --> 00:27:04,750 Y luego cerró paréntesis, punto y coma. 572 00:27:04,750 --> 00:27:07,156 >> JASON HIRSCHHORN: Cerrado paréntesis, punto y coma. 573 00:27:07,156 --> 00:27:08,680 Voy a guardar eso. 574 00:27:08,680 --> 00:27:12,670 Vamos a hacer el recuento. 575 00:27:12,670 --> 00:27:14,742 ¿Y cómo puedo ejecutar contar? 576 00:27:14,742 --> 00:27:16,470 >> ESTUDIANTE: Barra inversa. 577 00:27:16,470 --> 00:27:17,180 >> ESTUDIANTE: Dot barra inclinada - 578 00:27:17,180 --> 00:27:18,050 >> JASON HIRSCHHORN:. / Cuenta, exactamente. 579 00:27:18,050 --> 00:27:19,380 Gracias. . / Cont. 580 00:27:19,380 --> 00:27:21,060 Uno, dos, tres, cuatro, cinco en líneas nuevas. 581 00:27:21,060 --> 00:27:22,110 Parece que funcionó. 582 00:27:22,110 --> 00:27:23,200 Sí, Noah? 583 00:27:23,200 --> 00:27:26,660 >> ESTUDIANTE: También puede hacer menor o igual a cuatro, al igual que i es menor que 584 00:27:26,660 --> 00:27:27,630 o igual a cuatro? 585 00:27:27,630 --> 00:27:31,190 ¿Hay alguna ventaja de hacer menos de cinco, o simplemente una forma diferente de 586 00:27:31,190 --> 00:27:31,610 escribirlo? 587 00:27:31,610 --> 00:27:35,280 >> JASON HIRSCHHORN: Así que la pregunta que es podría haber hecho i es menor o 588 00:27:35,280 --> 00:27:37,450 igual a cuatro en lugar de i es menor que cinco. 589 00:27:37,450 --> 00:27:38,935 Ojalá que han trabajado el mismo? 590 00:27:38,935 --> 00:27:39,760 >> ESTUDIANTE: Lo que debería. 591 00:27:39,760 --> 00:27:39,860 >> JASON HIRSCHHORN: Si. 592 00:27:39,860 --> 00:27:41,660 Es totalmente tendría el trabajo de la misma. 593 00:27:41,660 --> 00:27:44,780 Estilísticamente, es generalmente menor que, y verás en un segundo cuando 594 00:27:44,780 --> 00:27:48,160 hacemos cadenas, podemos usar algo llamados strlen, que usted ha visto 595 00:27:48,160 --> 00:27:50,380 antes, para obtener la longitud de la cadena. 596 00:27:50,380 --> 00:27:54,090 Y no se puede hacer menos que o igual strlen. 597 00:27:54,090 --> 00:27:56,500 Usted podría hacer menor o menos uno strlen iguales. 598 00:27:56,500 --> 00:27:59,260 Así que es sólo más agradable hacer menos que strlen. 599 00:27:59,260 --> 00:28:00,240 ¿Sí? 600 00:28:00,240 --> 00:28:03,270 >> ESTUDIANTE: ¿Y en las pruebas reales, hacer tenemos que proporcionar comentarios sobre nuestro 601 00:28:03,270 --> 00:28:04,620 codificar también? 602 00:28:04,620 --> 00:28:06,130 >> JASON HIRSCHHORN: La pregunta estuvo en pruebas, ¿te 603 00:28:06,130 --> 00:28:07,760 que proporcionar comentarios? 604 00:28:07,760 --> 00:28:12,050 Así que vamos a hablar más sobre concursos cuando que surgen, pero en general, una buena 605 00:28:12,050 --> 00:28:14,530 regla de oro es siempre que esté escribir código, formular observaciones. 606 00:28:14,530 --> 00:28:18,130 Si recibe un código incorrecto pero el comentar la derecha, podría obtener alguna 607 00:28:18,130 --> 00:28:22,280 de crédito, tanto de mí si yo estaba calificando que en un conjunto de problemas o en un concurso. 608 00:28:22,280 --> 00:28:24,660 Así que los comentarios son siempre buena para ofrecer. 609 00:28:24,660 --> 00:28:25,040 Sweet. 610 00:28:25,040 --> 00:28:25,460 Conde. 611 00:28:25,460 --> 00:28:26,720 Excelente trabajo. 612 00:28:26,720 --> 00:28:28,570 Vamos a pasar. 613 00:28:28,570 --> 00:28:29,920 >> Cuerdas. 614 00:28:29,920 --> 00:28:30,630 Cuerdas. 615 00:28:30,630 --> 00:28:31,730 Hemos visto esto antes en conferencia. 616 00:28:31,730 --> 00:28:33,390 Esto me dejó alucinado cuando me primero descubierto esto. 617 00:28:33,390 --> 00:28:37,240 Probablemente no echaba de nadie importa aquí, pero eso está bien. 618 00:28:37,240 --> 00:28:41,260 >> Las cadenas son arreglos de caracteres, y terminan con, como usted ha dicho antes, 619 00:28:41,260 --> 00:28:45,710 el terminador nulo, lo que es este / 0 carácter. 620 00:28:45,710 --> 00:28:47,740 Si vamos a dibujar una cadena en la bordo, vamos a dibujar por aquí. 621 00:28:47,740 --> 00:28:53,080 622 00:28:53,080 --> 00:28:56,420 ¿Cuánto tiempo es esta cadena? 623 00:28:56,420 --> 00:28:56,680 Lo siento. 624 00:28:56,680 --> 00:28:57,660 ¿Por cuánto tiempo es esta cadena? 625 00:28:57,660 --> 00:28:57,910 >> ESTUDIANTE: [inaudible]. 626 00:28:57,910 --> 00:28:59,010 >> JASON HIRSCHHORN: ¿Cuatro? 627 00:28:59,010 --> 00:28:59,880 ¿Por qué cuatro? 628 00:28:59,880 --> 00:29:02,240 >> ESTUDIANTE: Debido a que el quinto puesto es para el carácter nulo. 629 00:29:02,240 --> 00:29:04,070 >> JASON HIRSCHHORN: Así que el quinto puesto es para el carácter nulo. 630 00:29:04,070 --> 00:29:07,130 Así que si yo fuera a correr en strlen esto, me daría cuatro. 631 00:29:07,130 --> 00:29:07,850 Correcta. 632 00:29:07,850 --> 00:29:11,640 Y la matriz, sin embargo, si tuviera que inicializar la matriz, cuántos espacios 633 00:29:11,640 --> 00:29:13,444 tendría que pedir? 634 00:29:13,444 --> 00:29:13,821 >> ESTUDIANTE: Cinco. 635 00:29:13,821 --> 00:29:14,200 >> JASON HIRSCHHORN: Cinco. 636 00:29:14,200 --> 00:29:17,650 Tendría que pedir cinco, pero no puedo sólo poner cuatro personajes aquí 637 00:29:17,650 --> 00:29:19,750 porque tengo que poner ese nula terminador en el extremo. 638 00:29:19,750 --> 00:29:25,260 Así que vamos a escribir en "ohai" y poner el terminador nulo al final. 639 00:29:25,260 --> 00:29:31,820 640 00:29:31,820 --> 00:29:34,940 Vamos a decir esto es una cadena s es igual a esta. 641 00:29:34,940 --> 00:29:36,610 ¿Qué es s abrazadera cero? 642 00:29:36,610 --> 00:29:40,210 643 00:29:40,210 --> 00:29:41,550 s soporte de cero, Annie? 644 00:29:41,550 --> 00:29:41,950 >> ESTUDIANTE: O. 645 00:29:41,950 --> 00:29:45,400 >> JASON HIRSCHHORN: O, exactamente. s soporte de uno? 646 00:29:45,400 --> 00:29:48,200 s soporte de cinco? 647 00:29:48,200 --> 00:29:52,670 648 00:29:52,670 --> 00:29:53,955 s soporte de cinco? 649 00:29:53,955 --> 00:29:54,740 >> ESTUDIANTE: No existe. 650 00:29:54,740 --> 00:29:55,040 >> JASON HIRSCHHORN: No existe. 651 00:29:55,040 --> 00:29:57,050 Exactamente derecha. 652 00:29:57,050 --> 00:29:57,940 Genial. 653 00:29:57,940 --> 00:30:03,120 ¿Una pregunta sobre la comprensión cadenas como arrays de caracteres? 654 00:30:03,120 --> 00:30:03,870 Bien, entonces. 655 00:30:03,870 --> 00:30:05,440 Uno de los programas más para ustedes. 656 00:30:05,440 --> 00:30:09,190 Escriba un programa que pide al usuario una cadena y luego imprime cada 657 00:30:09,190 --> 00:30:11,880 personaje en una nueva línea. 658 00:30:11,880 --> 00:30:14,160 Así que vamos a tomar tres minutos para escribir este programa, y ​​luego vamos a codificarlo 659 00:30:14,160 --> 00:30:15,410 como un grupo. 660 00:30:15,410 --> 00:31:04,730 661 00:31:04,730 --> 00:31:04,830 >> Lo siento. 662 00:31:04,830 --> 00:31:06,470 ¿Tuvo que ver esto? 663 00:31:06,470 --> 00:31:07,410 >> ESTUDIANTE: No. 664 00:31:07,410 --> 00:31:08,660 >> JASON HIRSCHHORN: OK. 665 00:31:08,660 --> 00:31:36,390 666 00:31:36,390 --> 00:31:40,605 Tomemos un minuto más que codificar esto, o al menos empezar a trabajar en ella. 667 00:31:40,605 --> 00:32:13,900 668 00:32:13,900 --> 00:32:17,020 >> Así que usted puede seguir trabajando, pero voy a empezar a ir a través de él. 669 00:32:17,020 --> 00:32:22,560 Así como antes, tengo en la pantalla # Include cs50.h, # include stdio.h. 670 00:32:22,560 --> 00:32:24,020 int void main. 671 00:32:24,020 --> 00:32:28,880 Dentro de las llaves de principales, no tengo dos comentarios, pseudocódigo. 672 00:32:28,880 --> 00:32:30,980 Una de ellas es pedir una cadena del usuario. 673 00:32:30,980 --> 00:32:33,900 La segunda es imprimir cada personaje en una nueva línea. 674 00:32:33,900 --> 00:32:39,780 Así que Anna, ¿puedes darme pido para una cadena del usuario? 675 00:32:39,780 --> 00:32:41,970 >> ESTUDIANTE: Printf. 676 00:32:41,970 --> 00:32:42,720 >> JASON HIRSCHHORN: Printf? 677 00:32:42,720 --> 00:32:45,050 >> ESTUDIANTE: Sí. 678 00:32:45,050 --> 00:32:46,165 ( 679 00:32:46,165 --> 00:32:47,610 >> JASON HIRSCHHORN: ( 680 00:32:47,610 --> 00:32:49,300 >> ESTUDIANTE: "dame una cadena. 681 00:32:49,300 --> 00:32:52,380 >> JASON HIRSCHHORN: "dar Hazme un str - ups - 682 00:32:52,380 --> 00:32:53,710 cadena. 683 00:32:53,710 --> 00:32:59,980 >> ESTUDIANTE: / n ") y coma. 684 00:32:59,980 --> 00:33:02,300 >> JASON HIRSCHHORN: Poner fin a la cadena, cierres de paréntesis, punto y coma. 685 00:33:02,300 --> 00:33:03,550 >> ESTUDIANTE: Sí. 686 00:33:03,550 --> 00:33:09,080 Y luego la siguiente línea, cuerda s = get string. 687 00:33:09,080 --> 00:33:11,240 >> JASON HIRSCHHORN: String s = get string. 688 00:33:11,240 --> 00:33:11,665 >> ESTUDIANTE: Sí. 689 00:33:11,665 --> 00:33:13,080 Y entonces () 690 00:33:13,080 --> 00:33:14,365 >> JASON HIRSCHHORN: () 691 00:33:14,365 --> 00:33:14,720 >> ESTUDIANTE: Punto y coma. 692 00:33:14,720 --> 00:33:15,540 >> JASON HIRSCHHORN: Punto y coma. 693 00:33:15,540 --> 00:33:16,890 Fantástico. 694 00:33:16,890 --> 00:33:19,000 Así que me voy a poner una cadena y Voy a guardarlo en qué? 695 00:33:19,000 --> 00:33:21,830 ¿Cuál es la variable llamada que ha creado? 696 00:33:21,830 --> 00:33:23,290 >> ESTUDIANTE: String s. 697 00:33:23,290 --> 00:33:24,580 >> JASON HIRSCHHORN: La variable se llama s. 698 00:33:24,580 --> 00:33:25,700 Es de tipo cadena. 699 00:33:25,700 --> 00:33:27,200 Exactamente. 700 00:33:27,200 --> 00:33:30,080 Lo siguiente que queremos es imprimir cada personaje en una nueva línea. 701 00:33:30,080 --> 00:33:31,710 ¿Quién me puede dar ese código? 702 00:33:31,710 --> 00:33:32,110 [Inaudible]? 703 00:33:32,110 --> 00:33:33,000 ¿Se puede dar a mí? 704 00:33:33,000 --> 00:33:33,580 >> ESTUDIANTE: Seguro. 705 00:33:33,580 --> 00:33:35,420 >> JASON HIRSCHHORN: Hagámoslo. 706 00:33:35,420 --> 00:33:36,080 Y lo siento. 707 00:33:36,080 --> 00:33:38,896 No me gusta repetir lo que usted dice porque usted está haciendo bien, pero yo 708 00:33:38,896 --> 00:33:42,100 tener que repetir de modo que cuando se transcribir esto, pueden obtener todos los 709 00:33:42,100 --> 00:33:44,870 el texto sobre las transcripciones. 710 00:33:44,870 --> 00:33:47,180 Así que usted puede seguir hablando. 711 00:33:47,180 --> 00:33:48,590 Por desgracia, no tengo decir que sobre ti. 712 00:33:48,590 --> 00:33:49,510 Lo siento, pero - 713 00:33:49,510 --> 00:33:50,610 >> ESTUDIANTE: Eso está bien. 714 00:33:50,610 --> 00:33:53,010 Para int i = 0 715 00:33:53,010 --> 00:33:54,170 >> JASON HIRSCHHORN: Para int i = 0 716 00:33:54,170 --> 00:33:56,740 >> ESTUDIANTE: Yo menos de - 717 00:33:56,740 --> 00:33:58,206 >> JASON HIRSCHHORN: Punto y coma. 718 00:33:58,206 --> 00:34:00,650 >> ESTUDIANTE: Antes de esto, podemos poner un variables para que pueda obtener la longitud del nombre int? 719 00:34:00,650 --> 00:34:01,870 >> JASON HIRSCHHORN: Oh, no lo sabes quiere poner el punto y coma? 720 00:34:01,870 --> 00:34:02,310 Aceptar. 721 00:34:02,310 --> 00:34:05,120 Entonces, ¿qué es lo que quieres hacer después de cero? 722 00:34:05,120 --> 00:34:09,340 >> ESTUDIANTE: Quiero conseguir la longitud de la cadena de s y 723 00:34:09,340 --> 00:34:10,410 establecer que a una variable? 724 00:34:10,410 --> 00:34:11,760 >> JASON HIRSCHHORN: OK, así que ¿cómo lo hago? 725 00:34:11,760 --> 00:34:17,636 >> ESTUDIANTE: ¿Así que haces int longitud = 726 00:34:17,636 --> 00:34:20,010 >> JASON HIRSCHHORN: int longitud = 727 00:34:20,010 --> 00:34:22,230 >> ESTUDIANTE: S-T-R-L-E-N. 728 00:34:22,230 --> 00:34:24,260 >> JASON HIRSCHHORN: S-T-R-L-E-N - 729 00:34:24,260 --> 00:34:25,380 >> ESTUDIANTE: Por s. 730 00:34:25,380 --> 00:34:25,790 Soportes. 731 00:34:25,790 --> 00:34:27,920 >> JASON HIRSCHHORN: (s). 732 00:34:27,920 --> 00:34:33,040 >> ESTUDIANTE: ¿Y entonces yo creo que hay que poner un punto y coma entre los dos ints. 733 00:34:33,040 --> 00:34:34,590 >> JASON HIRSCHHORN: Un punto y coma después de cero? 734 00:34:34,590 --> 00:34:35,260 >> ESTUDIANTE: Sí. 735 00:34:35,260 --> 00:34:40,670 A continuación, poner un punto y coma después de eso, y usted dice, i menos de longitud. 736 00:34:40,670 --> 00:34:43,250 i menos de longitud, que es la variable. 737 00:34:43,250 --> 00:34:44,590 >> ESTUDIANTE: ¿Y entonces por punto y coma. 738 00:34:44,590 --> 00:34:45,790 >> JASON HIRSCHHORN: Punto y coma. 739 00:34:45,790 --> 00:34:46,290 >> ESTUDIANTE: i + +. 740 00:34:46,290 --> 00:34:46,909 >> JASON HIRSCHHORN: i + +. 741 00:34:46,909 --> 00:34:47,530 Ahí está nuestro bucle for. 742 00:34:47,530 --> 00:34:48,860 Aceptar, dentro del bucle. 743 00:34:48,860 --> 00:34:51,670 >> ESTUDIANTE: ¿Y luego hacer printf. 744 00:34:51,670 --> 00:34:53,340 >> JASON HIRSCHHORN: Printf. 745 00:34:53,340 --> 00:34:53,889 >> ESTUDIANTE: Soportes. 746 00:34:53,889 --> 00:34:55,130 >> JASON HIRSCHHORN: Los paréntesis, comillas. 747 00:34:55,130 --> 00:34:59,930 >> ESTUDIANTE: Los paréntesis, citas,% c / n. 748 00:34:59,930 --> 00:35:00,760 >> JASON HIRSCHHORN:% c, OK. 749 00:35:00,760 --> 00:35:01,670 >> ESTUDIANTE: / n. 750 00:35:01,670 --> 00:35:03,470 >> JASON HIRSCHHORN: / n. 751 00:35:03,470 --> 00:35:04,410 >> ESTUDIANTE: cotizaciones cerrado. 752 00:35:04,410 --> 00:35:05,270 >> JASON HIRSCHHORN: cotizaciones Cerrado. 753 00:35:05,270 --> 00:35:05,810 >> ESTUDIANTE: por comas. 754 00:35:05,810 --> 00:35:06,860 >> JASON HIRSCHHORN: Comma. 755 00:35:06,860 --> 00:35:07,800 >> ESTUDIANTE: S. 756 00:35:07,800 --> 00:35:08,070 >> JASON HIRSCHHORN: S. 757 00:35:08,070 --> 00:35:08,690 >> ESTUDIANTE: Bracket i. 758 00:35:08,690 --> 00:35:10,230 >> JASON HIRSCHHORN: Bracket i. 759 00:35:10,230 --> 00:35:11,520 >> ESTUDIANTE: ¿Y entonces cerró paréntesis. 760 00:35:11,520 --> 00:35:12,540 >> JASON HIRSCHHORN: paréntesis cerrado. 761 00:35:12,540 --> 00:35:13,660 >> ESTUDIANTE: ¿Y entonces por punto y coma. 762 00:35:13,660 --> 00:35:13,770 >> JASON HIRSCHHORN: Punto y coma. 763 00:35:13,770 --> 00:35:14,380 Fantástico. 764 00:35:14,380 --> 00:35:16,890 Así que vamos a guardar esto. 765 00:35:16,890 --> 00:35:19,770 Hacer hechizo. 766 00:35:19,770 --> 00:35:20,040 Oh boy. 767 00:35:20,040 --> 00:35:22,275 Tengo un par de errores. 768 00:35:22,275 --> 00:35:33,120 Primer error en la línea 11, que dice, espera expresión, y está dando 769 00:35:33,120 --> 00:35:36,910 me un error que el segundo int, ahí está el error. 770 00:35:36,910 --> 00:35:38,430 Hay algunos errores por ahí. 771 00:35:38,430 --> 00:35:41,060 ¿Alguien sabe qué error que es eso? 772 00:35:41,060 --> 00:35:41,640 Kurt? 773 00:35:41,640 --> 00:35:44,108 >> ESTUDIANTE: Creo que se supone que ser una coma, no un punto y coma. 774 00:35:44,108 --> 00:35:46,010 >> JASON HIRSCHHORN: OK, una coma en lugar de un punto y coma. 775 00:35:46,010 --> 00:35:47,340 Así es que todos tenemos que arreglar? 776 00:35:47,340 --> 00:35:47,655 >> ESTUDIANTE: No. 777 00:35:47,655 --> 00:35:48,930 >> JASON HIRSCHHORN: ¿Qué más Por qué tenemos que arreglar? 778 00:35:48,930 --> 00:35:50,920 >> ESTUDIANTE: Tenemos que incluir string.h. 779 00:35:50,920 --> 00:35:51,680 >> JASON HIRSCHHORN: Incluir string.h. 780 00:35:51,680 --> 00:35:53,730 ¿Dónde tengo que incluir eso? 781 00:35:53,730 --> 00:35:57,085 >> ESTUDIANTE: El mismo lugar que está incluida las otras cosas, a la derecha 782 00:35:57,085 --> 00:35:59,560 después de incluir stdio.h. 783 00:35:59,560 --> 00:36:01,610 >> JASON HIRSCHHORN: Vamos a ver si esto funciona primero porque en general, me gusta 784 00:36:01,610 --> 00:36:06,360 para arreglar una cosa primero, y luego ejecute y, a continuación, ver los errores que tenemos. 785 00:36:06,360 --> 00:36:11,620 Así que vamos a limpiar el terminal con el control de n, vamos a hacerlo crea hechizo. 786 00:36:11,620 --> 00:36:15,190 787 00:36:15,190 --> 00:36:18,770 Así que otro error en la línea 11. 788 00:36:18,770 --> 00:36:20,540 Punto y coma esperado. 789 00:36:20,540 --> 00:36:22,640 Y todavía estoy recibiendo errores en esta línea. 790 00:36:22,640 --> 00:36:25,270 Así que no me ha dado un error que dice que no entiende lo que strlen es decir, 791 00:36:25,270 --> 00:36:28,980 pero me da error en esta line, así que lo que los demás están equivocados? 792 00:36:28,980 --> 00:36:29,690 Mark? 793 00:36:29,690 --> 00:36:30,940 Marcus. 794 00:36:30,940 --> 00:36:32,570 >> ESTUDIANTE: ¿Usted tiene que quitar la segunda declaración int? 795 00:36:32,570 --> 00:36:34,990 >> JASON HIRSCHHORN: Retire la segunda int. 796 00:36:34,990 --> 00:36:35,710 Vamos a probar esto. 797 00:36:35,710 --> 00:36:37,600 Ahora limpiar el terminal. 798 00:36:37,600 --> 00:36:40,130 Hacer hechizo. 799 00:36:40,130 --> 00:36:40,490 Error. 800 00:36:40,490 --> 00:36:42,890 Implícitamente se declara la biblioteca función strlen. 801 00:36:42,890 --> 00:36:44,270 Así que ahora sí vemos que el error. 802 00:36:44,270 --> 00:36:45,760 ¿Qué necesitamos para incluir? 803 00:36:45,760 --> 00:36:46,660 >> ESTUDIANTE: string.h. 804 00:36:46,660 --> 00:36:51,880 >> JASON HIRSCHHORN: Incluya string.h, Haremos # incluimos string.h en la parte superior 805 00:36:51,880 --> 00:36:52,920 de la pantalla. 806 00:36:52,920 --> 00:36:55,450 Vamos a guardar, hacer hechizos. 807 00:36:55,450 --> 00:36:56,970 Ahora compilado. 808 00:36:56,970 --> 00:37:01,970 Así que de nuevo, las cosas que necesitaban para recordar la línea 12 en nuestro bucle for cuando 809 00:37:01,970 --> 00:37:08,010 estamos configurarlo, int i = 0, = longitud strlen (s). 810 00:37:08,010 --> 00:37:09,350 >> Esta es una estrategia fantástica. 811 00:37:09,350 --> 00:37:12,590 El estilo de este es grande, la diseño de este es muy grande. 812 00:37:12,590 --> 00:37:15,620 Podemos ir a esas razones más tarde, pero de esta forma sólo tendrá que llamar 813 00:37:15,620 --> 00:37:19,040 strlen vez en lugar de todos y cada uno vez que se ejecuta a través del lazo. 814 00:37:19,040 --> 00:37:22,255 Sin embargo, es necesario utilizar una coma allí y que no es necesario volver int. 815 00:37:22,255 --> 00:37:24,180 Si usted está declarando tanto los variables juntas, que 816 00:37:24,180 --> 00:37:26,850 no es necesario volver int. 817 00:37:26,850 --> 00:37:29,820 Y entonces, si usted va a utilizar strlen, que es otra biblioteca 818 00:37:29,820 --> 00:37:33,560 funcionar no incluido en stdio.h o cs50.h, hacer 819 00:37:33,560 --> 00:37:35,310 Asegúrese de incluir string.h. 820 00:37:35,310 --> 00:37:35,900 Kurt? 821 00:37:35,900 --> 00:37:39,085 >> ESTUDIANTE: Entonces si no es necesario decir qué tipo de extensión es, hace que 822 00:37:39,085 --> 00:37:40,290 significa que tiene que ser un int? 823 00:37:40,290 --> 00:37:41,930 No se podía tener dos diferentes tipos ahí? 824 00:37:41,930 --> 00:37:43,290 >> JASON HIRSCHHORN: por lo que podría tener dos tipos diferentes. 825 00:37:43,290 --> 00:37:45,730 La longitud es un int aquí, sin embargo. 826 00:37:45,730 --> 00:37:48,590 La longitud es un int porque es comas y, a continuación lo mismo. 827 00:37:48,590 --> 00:37:50,460 >> ESTUDIANTE: ¿Así que se supone que se va al ser la misma que la primera? 828 00:37:50,460 --> 00:37:52,423 >> JASON HIRSCHHORN: Exactamente. 829 00:37:52,423 --> 00:37:54,970 No vamos a hacer esto ahora, pero usted puede incluir dos variables en la 830 00:37:54,970 --> 00:37:57,080 misma línea utilizando un tipo de datos. 831 00:37:57,080 --> 00:38:01,415 Así int x, y crearía dos variables. 832 00:38:01,415 --> 00:38:05,830 833 00:38:05,830 --> 00:38:10,770 Así int x, y, si hacemos eso, se da me una variable no utilizada x e y porque 834 00:38:10,770 --> 00:38:12,020 nosotros no usamos. 835 00:38:12,020 --> 00:38:17,950 836 00:38:17,950 --> 00:38:21,650 Así que poner vacío antes es sólo un truco de lujo si no se utiliza 837 00:38:21,650 --> 00:38:22,810 algo, para usarlo. 838 00:38:22,810 --> 00:38:26,300 Pero como ves, creo xey en la misma línea con una coma. 839 00:38:26,300 --> 00:38:28,450 Se trata de crear dos enteros allí mismo. 840 00:38:28,450 --> 00:38:31,560 Así que sí, totalmente posible crear dos cosas en la misma línea 841 00:38:31,560 --> 00:38:33,720 separados por una coma. 842 00:38:33,720 --> 00:38:35,470 Vamos a deshacernos de ellos, sin embargo. 843 00:38:35,470 --> 00:38:36,370 >> Así que no hay hechizo. 844 00:38:36,370 --> 00:38:39,200 Gracias chicos por la codificación por nosotros. 845 00:38:39,200 --> 00:38:43,040 Vamos a hacerlo una vez más, ejecutarlo. 846 00:38:43,040 --> 00:38:44,580 Dame una cadena. 847 00:38:44,580 --> 00:38:45,580 [Inaudible], que hizo la mayor parte. 848 00:38:45,580 --> 00:38:47,910 ¿Cuál es la secuencia? 849 00:38:47,910 --> 00:38:48,250 >> ESTUDIANTE: Hola. 850 00:38:48,250 --> 00:38:50,110 >> JASON HIRSCHHORN: Hola. 851 00:38:50,110 --> 00:38:52,810 H-E-L-L-O, cada personaje en una línea. 852 00:38:52,810 --> 00:38:53,700 Se ve muy bien. 853 00:38:53,700 --> 00:38:54,750 Vamos a correr de nuevo. 854 00:38:54,750 --> 00:38:56,050 Siempre va a comprobar para casos de esquina. 855 00:38:56,050 --> 00:38:57,750 ¿Qué es un buen caso para comprobar la esquina? 856 00:38:57,750 --> 00:39:00,250 857 00:39:00,250 --> 00:39:00,890 >> ESTUDIANTE: Un número? 858 00:39:00,890 --> 00:39:02,240 >> JASON HIRSCHHORN: Varios. 859 00:39:02,240 --> 00:39:06,580 Así que voy a poner en el 1, y imprime 1. 860 00:39:06,580 --> 00:39:08,970 No es pedir cartas, por lo que parece que los números funcionen. 861 00:39:08,970 --> 00:39:09,890 Buen caso esquina para comprobar. 862 00:39:09,890 --> 00:39:11,740 ¿Cuál es otra buena esquina caso comprobar? 863 00:39:11,740 --> 00:39:12,420 >> ESTUDIANTE: Una cadena en blanco. 864 00:39:12,420 --> 00:39:12,910 >> JASON HIRSCHHORN: Hm? 865 00:39:12,910 --> 00:39:13,880 >> ESTUDIANTE: Al igual que una cadena vacía. 866 00:39:13,880 --> 00:39:14,400 >> JASON HIRSCHHORN: Cadena vacía. 867 00:39:14,400 --> 00:39:16,730 Así que no ponen en nada. 868 00:39:16,730 --> 00:39:18,660 Y lo que se imprime? 869 00:39:18,660 --> 00:39:19,090 >> ESTUDIANTE: Nada. 870 00:39:19,090 --> 00:39:19,870 >> JASON HIRSCHHORN: Nada. 871 00:39:19,870 --> 00:39:20,555 Parece que funciona. 872 00:39:20,555 --> 00:39:23,790 Usted podría tratar más casos de esquina, pero en general números, una de datos diferente es 873 00:39:23,790 --> 00:39:26,160 genial para probar, así no es nada. 874 00:39:26,160 --> 00:39:29,180 Nada, cero, los negativos son siempre grandes cosas para tratar de cosas que usted 875 00:39:29,180 --> 00:39:33,140 debe probar, cosas sin duda vamos a probar y verificar las 50 pondrá a prueba para. 876 00:39:33,140 --> 00:39:34,720 ¿Una pregunta sobre spell.c? 877 00:39:34,720 --> 00:39:37,752 878 00:39:37,752 --> 00:39:39,310 >> OK, vamos a volver la cabeza. 879 00:39:39,310 --> 00:39:42,420 Tengo un programa más para ustedes para escribir. 880 00:39:42,420 --> 00:39:44,700 Se llama students.c. 881 00:39:44,700 --> 00:39:49,020 Este es un programa que pide al usuario cinco nombres, entonces elige al azar 882 00:39:49,020 --> 00:39:51,600 e imprime uno de los nombres. 883 00:39:51,600 --> 00:39:54,840 Este programa es un poco más complicado que los dos últimos que escribió, 884 00:39:54,840 --> 00:39:58,080 así que ¿por qué no nos tomamos cinco minutos para codificar en forma individual, y luego vamos a 885 00:39:58,080 --> 00:40:00,130 codificar como un grupo. 886 00:40:00,130 --> 00:40:03,795 >> Este programa también implica algunas cosas puede que no haya visto antes, así que si 887 00:40:03,795 --> 00:40:06,390 usted tiene una pregunta sobre cómo hacer Hago eso, levanten la mano. 888 00:40:06,390 --> 00:40:08,530 Voy a venir una y señalarles en la dirección correcta. 889 00:40:08,530 --> 00:40:10,820 Pero también estamos haciendo porque este será una buena manera de introducir algunos 890 00:40:10,820 --> 00:40:12,070 temas que son difíciles. 891 00:40:12,070 --> 00:44:14,600 892 00:44:14,600 --> 00:44:15,560 >> Así funciona, ¿verdad? 893 00:44:15,560 --> 00:44:17,580 >> ESTUDIANTE: Sí. 894 00:44:17,580 --> 00:44:19,180 >> JASON HIRSCHHORN: Cada vez que usted da vuelta en un conjunto de problemas, hay muchas maneras de hacer 895 00:44:19,180 --> 00:44:20,790 , pero algunos son más elegante que otros. 896 00:44:20,790 --> 00:44:29,000 897 00:44:29,000 --> 00:44:31,110 Vamos a bucear pulg 898 00:44:31,110 --> 00:44:32,880 # Include cs50.h. 899 00:44:32,880 --> 00:44:34,250 # Include stdio.h. 900 00:44:34,250 --> 00:44:37,240 void main int, las llaves. 901 00:44:37,240 --> 00:44:39,430 Dentro de las llaves, Tengo dos comentarios. 902 00:44:39,430 --> 00:44:41,500 El primero es, solicitar al usuario durante cinco nombres. 903 00:44:41,500 --> 00:44:46,580 La segunda es, elegir al azar e imprimir uno de los nombres. 904 00:44:46,580 --> 00:44:50,250 Así que vamos a hacer el primero, preguntar el usuario durante cinco nombres. 905 00:44:50,250 --> 00:44:53,730 ¿Quién le ha pedido al usuario durante cinco nombres y me puede decir cómo hacerlo? 906 00:44:53,730 --> 00:44:56,760 907 00:44:56,760 --> 00:44:58,570 Sólo dos personas hicieron la primera parte. 908 00:44:58,570 --> 00:45:00,150 Tres personas que hicieron la primera parte. 909 00:45:00,150 --> 00:45:00,670 Cuatro, cinco. 910 00:45:00,670 --> 00:45:03,140 Tom, ¿cómo lo haces? 911 00:45:03,140 --> 00:45:09,940 >> ESTUDIANTE: Usted se declare una cadena y luego el nombre, el soporte de cinco. 912 00:45:09,940 --> 00:45:12,070 >> JASON HIRSCHHORN: String Nombre Bracket cinco. 913 00:45:12,070 --> 00:45:15,350 Entonces, ¿qué está haciendo esta línea, nombre de la cadena del soporte cinco? 914 00:45:15,350 --> 00:45:17,800 >> ESTUDIANTE: ¿Le declarar una matriz de cadenas. 915 00:45:17,800 --> 00:45:19,000 >> JASON HIRSCHHORN: Este es una matriz de cadenas. 916 00:45:19,000 --> 00:45:21,590 ¿Cuántas cadenas van para encajar aquí? 917 00:45:21,590 --> 00:45:22,010 >> ESTUDIANTE: Cinco. 918 00:45:22,010 --> 00:45:22,320 >> JASON HIRSCHHORN: Cinco. 919 00:45:22,320 --> 00:45:22,660 Excelente. 920 00:45:22,660 --> 00:45:26,360 Vamos a llamarlo nombres porque vamos a obtener múltiples. 921 00:45:26,360 --> 00:45:27,790 Aceptar, a continuación? 922 00:45:27,790 --> 00:45:29,270 >> ESTUDIANTE: ¿Y entonces usted tienen un ciclo for - 923 00:45:29,270 --> 00:45:30,060 >> JASON HIRSCHHORN: bucle For. 924 00:45:30,060 --> 00:45:33,035 >> ESTUDIANTE: - para i = 0. 925 00:45:33,035 --> 00:45:37,040 >> JASON HIRSCHHORN: for (int i = 0. 926 00:45:37,040 --> 00:45:38,270 >> ESTUDIANTE: Punto y coma. 927 00:45:38,270 --> 00:45:38,880 >> JASON HIRSCHHORN: Punto y coma. 928 00:45:38,880 --> 00:45:39,790 >> ESTUDIANTE: Yo menos de cinco. 929 00:45:39,790 --> 00:45:41,310 >> JASON HIRSCHHORN: I inferior a cinco. 930 00:45:41,310 --> 00:45:42,230 >> ESTUDIANTE: Punto y coma. 931 00:45:42,230 --> 00:45:42,560 >> JASON HIRSCHHORN: Punto y coma. 932 00:45:42,560 --> 00:45:43,380 >> ESTUDIANTE: i + +. 933 00:45:43,380 --> 00:45:46,050 >> JASON HIRSCHHORN: i + +. 934 00:45:46,050 --> 00:45:47,100 >> ESTUDIANTE: ¿Y entonces cerró paréntesis. 935 00:45:47,100 --> 00:45:48,600 >> Paréntesis cerrados,: JASON HIRSCHHORN y luego algunas llaves. 936 00:45:48,600 --> 00:45:50,050 Dentro de las llaves? 937 00:45:50,050 --> 00:45:51,423 >> ESTUDIANTE: ¿Y entonces printf. 938 00:45:51,423 --> 00:45:52,535 >> JASON HIRSCHHORN: Printf. 939 00:45:52,535 --> 00:45:56,200 >> ESTUDIANTE: Abrir paréntesis, nombre% d. 940 00:45:56,200 --> 00:45:57,090 >> JASON HIRSCHHORN: ¿Lo sientes? 941 00:45:57,090 --> 00:45:57,660 >> ESTUDIANTE: Nombre. 942 00:45:57,660 --> 00:45:58,200 >> JASON HIRSCHHORN: Nombre. 943 00:45:58,200 --> 00:46:01,700 >> ESTUDIANTE: ¿Y entonces el espacio, y luego% d. 944 00:46:01,700 --> 00:46:02,950 >> JASON HIRSCHHORN: Nombre, espacio,% d. 945 00:46:02,950 --> 00:46:05,630 946 00:46:05,630 --> 00:46:10,820 >> ESTUDIANTE: ¿Y entonces / n, y después cerrar. 947 00:46:10,820 --> 00:46:15,070 >> JASON HIRSCHHORN: Así nombre, espacio, % D / n, paréntesis cerrado. 948 00:46:15,070 --> 00:46:17,730 >> ESTUDIANTE: Coma, i + 1. 949 00:46:17,730 --> 00:46:19,390 Lo siento. 950 00:46:19,390 --> 00:46:21,040 Presupuesto cerrado, y entonces coma, i +1. 951 00:46:21,040 --> 00:46:24,400 >> JASON HIRSCHHORN: Cerrado cita, coma, i 1. 952 00:46:24,400 --> 00:46:25,850 >> ESTUDIANTE: Sí. 953 00:46:25,850 --> 00:46:27,650 Y luego la siguiente línea - 954 00:46:27,650 --> 00:46:29,400 >> JASON HIRSCHHORN: i + 1. 955 00:46:29,400 --> 00:46:31,600 >> ESTUDIANTE: Sí. 956 00:46:31,600 --> 00:46:36,440 Y luego la siguiente diapositiva Se nombres ménsula. 957 00:46:36,440 --> 00:46:39,000 >> JASON HIRSCHHORN: Next line Se nombres ménsula. 958 00:46:39,000 --> 00:46:41,360 >> ESTUDIANTE: = consiguen cadena. 959 00:46:41,360 --> 00:46:43,460 >> JASON HIRSCHHORN: = Get - 960 00:46:43,460 --> 00:46:44,510 capital de G-E-T - 961 00:46:44,510 --> 00:46:45,530 cadena. 962 00:46:45,530 --> 00:46:47,800 Uy, lo siento. 963 00:46:47,800 --> 00:46:49,050 >> ESTUDIANTE: Abierto, cerrado paréntesis y luego - 964 00:46:49,050 --> 00:46:50,940 >> JASON HIRSCHHORN: Abierto, cerrado paren. 965 00:46:50,940 --> 00:46:51,030 >> ESTUDIANTE: Punto y coma. 966 00:46:51,030 --> 00:46:52,500 >> JASON HIRSCHHORN: Punto y coma. 967 00:46:52,500 --> 00:46:57,545 Aceptar, por lo que se inicializa la matriz de cadenas, nombres, y luego ir a través de un 968 00:46:57,545 --> 00:47:02,720 para el lazo, y cinco veces imprimir algunas pedirá al usuario y luego almacenar 969 00:47:02,720 --> 00:47:03,360 cinco cuerdas. 970 00:47:03,360 --> 00:47:08,090 ¿Alguien tiene alguna ajustes a esto? 971 00:47:08,090 --> 00:47:10,030 Tom, creo que todo el mundo está de acuerdo con usted. 972 00:47:10,030 --> 00:47:10,880 Se ve muy bien. 973 00:47:10,880 --> 00:47:11,660 Aceptar. 974 00:47:11,660 --> 00:47:14,830 ¿Por qué hiciste i 1, sin embargo? 975 00:47:14,830 --> 00:47:18,000 >> ESTUDIANTE: Quiero decir, no tengo ser, pero i 1 para que sea 976 00:47:18,000 --> 00:47:19,700 nombrar uno por nombrar cinco. 977 00:47:19,700 --> 00:47:21,930 De lo contrario, sería nombre cero para nombrar cuatro. 978 00:47:21,930 --> 00:47:24,400 >> JASON HIRSCHHORN: ¿Así que hizo i +1 porque de lo contrario tendría que 979 00:47:24,400 --> 00:47:27,060 imprimir cero a cuatro, porque así es como piensan los ordenadores, pero los seres humanos 980 00:47:27,060 --> 00:47:28,530 realmente no leer así. 981 00:47:28,530 --> 00:47:30,190 Esa es otra cosa te vas a encontrar. 982 00:47:30,190 --> 00:47:33,210 A veces, al imprimir algo para el usuario, usted querrá que sea un 983 00:47:33,210 --> 00:47:35,733 poco más bonito, y haciendo i +1 en este caso es un 984 00:47:35,733 --> 00:47:37,430 manera para que sea más bonita. 985 00:47:37,430 --> 00:47:41,380 >> También veo a cinco veces, el nombre de cadena es cinco, i es menor que cinco. 986 00:47:41,380 --> 00:47:42,430 Yo sé de dónde sacó los cinco. 987 00:47:42,430 --> 00:47:44,890 Lo tienes de decirme que cinco nombres. 988 00:47:44,890 --> 00:47:49,000 Pero si queremos hacer que el código de un poco más robusto, una cosa que 989 00:47:49,000 --> 00:47:53,110 podría hacer es aquí, en las afueras de int, podríamos hacer algo como esto, 990 00:47:53,110 --> 00:47:57,070 # Define, y que se podía hacer NOMBRES 5. 991 00:47:57,070 --> 00:48:01,580 992 00:48:01,580 --> 00:48:05,390 >> Así que, básicamente, en la medida que escribo de capital N, el capital A, M mayúscula, mayúscula, 993 00:48:05,390 --> 00:48:08,890 de capital S, esa cadena, se reemplazará que con 5 en el código. 994 00:48:08,890 --> 00:48:11,530 995 00:48:11,530 --> 00:48:13,445 ¿O vamos a llamarlo - vamos a llamarlo NÚMERO. 996 00:48:13,445 --> 00:48:17,190 Así que estoy definiendo todas las tapas NÚMERO sea 5. 997 00:48:17,190 --> 00:48:22,830 >> Así que ahora siempre tengo el número 5, que puede reemplazarlo con todo NÚMERO tapas. 998 00:48:22,830 --> 00:48:26,880 Y ahora, si quiero cambiar el número de nombres, todo lo que necesito hacer es 999 00:48:26,880 --> 00:48:31,350 esta línea, la línea de cuatro, en el que tengo # Define el número 5, que cambiar a 10, 1000 00:48:31,350 --> 00:48:34,340 o cambiarlo a 4. 1001 00:48:34,340 --> 00:48:37,400 Cuando el código se hace más largo, usted no está va a recordar todos los lugares que 1002 00:48:37,400 --> 00:48:41,630 poner la cantidad de nombres que querías, y en Para que usted no pasa una, esto es 1003 00:48:41,630 --> 00:48:45,490 una buena manera de hacerlo, para encontrar algo encima de la tapa y luego sólo tiene que utilizar esa frase 1004 00:48:45,490 --> 00:48:46,400 en todas partes en todo el código. 1005 00:48:46,400 --> 00:48:46,780 Marcus? 1006 00:48:46,780 --> 00:48:49,780 >> ESTUDIANTE: ¿Eso es estilísticamente prefiere de definir globalmente un 1007 00:48:49,780 --> 00:48:51,270 n constante? 1008 00:48:51,270 --> 00:48:53,760 >> JASON HIRSCHHORN: Así es que estilísticamente preferidas que a nivel mundial 1009 00:48:53,760 --> 00:48:54,980 definir una constante n? 1010 00:48:54,980 --> 00:48:59,036 Así que estás diciendo que pudiste hacer, int number = 5? 1011 00:48:59,036 --> 00:49:01,300 >> ESTUDIANTE: ¿Tienen las consonantes en C o no? 1012 00:49:01,300 --> 00:49:02,720 >> JASON HIRSCHHORN: O const - a partes iguales. 1013 00:49:02,720 --> 00:49:04,275 ¿Estás diciendo que sólo una variable global? 1014 00:49:04,275 --> 00:49:04,990 >> ESTUDIANTE: Sí. 1015 00:49:04,990 --> 00:49:08,670 >> JASON HIRSCHHORN: Así estilísticamente, no hay necesariamente un derecho 1016 00:49:08,670 --> 00:49:12,050 respuesta, pero ambas cosas son mejores que simplemente lanzando estos aleatoria 1017 00:49:12,050 --> 00:49:12,960 los números a través de su código. 1018 00:49:12,960 --> 00:49:14,650 Los llamamos números mágicos. 1019 00:49:14,650 --> 00:49:16,450 Cuando miro a su código o cuando nadie está leyendo a través de él, se 1020 00:49:16,450 --> 00:49:18,790 no quieren sólo estos números aleatorios que no tienen sentido. 1021 00:49:18,790 --> 00:49:22,420 Incluso el número 26, que generalmente es el número de letras en el alfabeto, 1022 00:49:22,420 --> 00:49:28,870 es mejor definir ALFABETO encima de la tapa y guardar el número 26 en esa cadena, 1023 00:49:28,870 --> 00:49:29,550 si eso tiene sentido. 1024 00:49:29,550 --> 00:49:33,210 >> O sobre el problema de establecer uno, en lugar de - de nuevo, no hablamos de esto en 1025 00:49:33,210 --> 00:49:37,020 el tiempo, pero en lugar de simplemente tirar en un 25 por todas partes o un 10, usted puede 1026 00:49:37,020 --> 00:49:41,860 guardar el número 25 como cuarto o 10 como DIME, y eso hace que sea más fácil para los 1027 00:49:41,860 --> 00:49:44,140 quien está leyendo a través de su código de entender por qué eligió ese número. 1028 00:49:44,140 --> 00:49:46,540 Y también para que, si alguna vez quieres actualizar el código, que hace que sea un poco 1029 00:49:46,540 --> 00:49:47,290 más robusto. 1030 00:49:47,290 --> 00:49:48,070 ¿Sí? 1031 00:49:48,070 --> 00:49:50,830 >> ESTUDIANTE: ¿Este código también va que esté disponible para nosotros después? 1032 00:49:50,830 --> 00:49:52,453 >> JASON HIRSCHHORN: Todos estos códigos que hemos escrito juntos somos 1033 00:49:52,453 --> 00:49:54,620 va a ser enviado por correo electrónico chicos y disponible. 1034 00:49:54,620 --> 00:49:55,740 Sí. 1035 00:49:55,740 --> 00:49:58,040 Así que pide al usuario durante cinco nombres. 1036 00:49:58,040 --> 00:50:00,280 Elige al azar y de impresión uno de los nombres. 1037 00:50:00,280 --> 00:50:00,940 ¿Quién hizo esta línea? 1038 00:50:00,940 --> 00:50:02,230 Esta es la línea más difícil aquí. 1039 00:50:02,230 --> 00:50:02,450 Lo siento, Tom. 1040 00:50:02,450 --> 00:50:05,510 Has hecho un buen trabajo, pero esto es un poco más complicado. 1041 00:50:05,510 --> 00:50:06,600 Marcus, adelante. 1042 00:50:06,600 --> 00:50:10,180 >> ESTUDIANTE: Bueno en primer lugar, usted va a que incluir stdlib.h y time.h. 1043 00:50:10,180 --> 00:50:13,200 >> JASON HIRSCHHORN: Así que estás diciendo en la parte superior, incluye dos bibliotecas más. 1044 00:50:13,200 --> 00:50:18,830 ¿Quieres que me incluyo S-T-D-L-YO-B punto H, de la biblioteca estándar, y qué 1045 00:50:18,830 --> 00:50:19,760 era el otro? 1046 00:50:19,760 --> 00:50:21,010 >> ESTUDIANTE: Time.h. 1047 00:50:21,010 --> 00:50:25,130 1048 00:50:25,130 --> 00:50:27,840 >> JASON HIRSCHHORN: # include time.h. 1049 00:50:27,840 --> 00:50:29,470 Así que estos son dos bibliotecas más. 1050 00:50:29,470 --> 00:50:31,790 Supongo que ahora vamos a estar usando funciones que se incluyen en estos 1051 00:50:31,790 --> 00:50:34,240 dos, por lo que usted necesita incluirlos? 1052 00:50:34,240 --> 00:50:36,980 >> ESTUDIANTE: Entonces, primero eres va a querer escribir srand. 1053 00:50:36,980 --> 00:50:38,770 >> JASON HIRSCHHORN: Srand. 1054 00:50:38,770 --> 00:50:42,070 >> ESTUDIANTE: (time (0) 1055 00:50:42,070 --> 00:50:42,700 >> JASON HIRSCHHORN: Lo siento. 1056 00:50:42,700 --> 00:50:45,580 Srand (time ( 1057 00:50:45,580 --> 00:50:46,890 >> ESTUDIANTE: 0. 1058 00:50:46,890 --> 00:50:47,230 >> JASON HIRSCHHORN: 0. 1059 00:50:47,230 --> 00:50:49,990 >> ESTUDIANTE:)), punto y coma. 1060 00:50:49,990 --> 00:50:51,320 >> JASON HIRSCHHORN: Otro paren cerrado? 1061 00:50:51,320 --> 00:50:51,650 Punto y coma. 1062 00:50:51,650 --> 00:50:53,610 Voy simplemente reemplazar el cero con NULL. 1063 00:50:53,610 --> 00:50:55,980 Te va a hacer de la misma cosa, pero en general, verás NULL, que 1064 00:50:55,980 --> 00:50:57,720 vamos a hablar de esto línea en un segundo. 1065 00:50:57,720 --> 00:50:58,580 >> ESTUDIANTE: Estilísticamente mejor? 1066 00:50:58,580 --> 00:51:02,240 >> JASON Hirschhorn: Generalmente, las personas derecho NULL, pero lo mismo. 1067 00:51:02,240 --> 00:51:05,010 >> ESTUDIANTE: ¿Y entonces int nombre. 1068 00:51:05,010 --> 00:51:06,490 >> JASON HIRSCHHORN: Nombre Int.. 1069 00:51:06,490 --> 00:51:07,280 >> ESTUDIANTE: = 1070 00:51:07,280 --> 00:51:07,780 >> JASON HIRSCHHORN: = 1071 00:51:07,780 --> 00:51:08,580 >> ESTUDIANTE: Rand. 1072 00:51:08,580 --> 00:51:09,340 >> JASON HIRSCHHORN: Rand. 1073 00:51:09,340 --> 00:51:10,420 >> ESTUDIANTE: () 1074 00:51:10,420 --> 00:51:11,500 >> JASON HIRSCHHORN: () 1075 00:51:11,500 --> 00:51:12,850 >> ESTUDIANTE: número de módulo. 1076 00:51:12,850 --> 00:51:14,310 >> JASON HIRSCHHORN: ¿Qué hay de módulo? 1077 00:51:14,310 --> 00:51:14,970 El personaje? 1078 00:51:14,970 --> 00:51:16,000 El carácter de porcentaje? 1079 00:51:16,000 --> 00:51:17,790 >> ESTUDIANTE: carácter de porcentaje. 1080 00:51:17,790 --> 00:51:19,521 NÚMERO Modulo que ha definido arriba. 1081 00:51:19,521 --> 00:51:22,030 >> JASON HIRSCHHORN: NÚMERO Modulo. 1082 00:51:22,030 --> 00:51:24,052 >> ESTUDIANTE: ¿Y entonces por punto y coma. 1083 00:51:24,052 --> 00:51:24,660 >> JASON HIRSCHHORN: Punto y coma. 1084 00:51:24,660 --> 00:51:27,820 >> ESTUDIANTE: ¿Y entonces nueva línea, printf. 1085 00:51:27,820 --> 00:51:28,460 >> JASON HIRSCHHORN: Printf. 1086 00:51:28,460 --> 00:51:29,730 >> ESTUDIANTE: ( 1087 00:51:29,730 --> 00:51:30,620 >> JASON HIRSCHHORN: ( 1088 00:51:30,620 --> 00:51:31,650 >> ESTUDIANTE: " 1089 00:51:31,650 --> 00:51:32,630 >> JASON HIRSCHHORN: " 1090 00:51:32,630 --> 00:51:35,320 >> ESTUDIANTE:% s / n 1091 00:51:35,320 --> 00:51:37,220 >> JASON HIRSCHHORN:% s / n 1092 00:51:37,220 --> 00:51:38,420 >> ESTUDIANTE: " 1093 00:51:38,420 --> 00:51:40,640 >> JASON HIRSCHHORN:% s / n " 1094 00:51:40,640 --> 00:51:43,540 >> ESTUDIANTE: Coma, nombres de espacios. 1095 00:51:43,540 --> 00:51:44,350 >> JASON HIRSCHHORN: Space - 1096 00:51:44,350 --> 00:51:46,300 >> ESTUDIANTE: Oh, supongo, lo que qué nos llamamos aquí? 1097 00:51:46,300 --> 00:51:48,640 >> JASON HIRSCHHORN: Nosotros lo llamó nombres. 1098 00:51:48,640 --> 00:51:52,360 >> ESTUDIANTE: Soporte Open, nombre. 1099 00:51:52,360 --> 00:51:55,090 >> JASON HIRSCHHORN: Soporte Open, nombre. 1100 00:51:55,090 --> 00:51:55,850 >> ESTUDIANTE: Soporte Cerrado. 1101 00:51:55,850 --> 00:51:56,490 >> JASON HIRSCHHORN: Soporte Cerrado. 1102 00:51:56,490 --> 00:51:57,460 >> ESTUDIANTE:) 1103 00:51:57,460 --> 00:51:58,800 >> JASON HIRSCHHORN:) 1104 00:51:58,800 --> 00:51:59,440 >> ESTUDIANTE: Punto y coma. 1105 00:51:59,440 --> 00:52:00,410 >> JASON HIRSCHHORN: Punto y coma. 1106 00:52:00,410 --> 00:52:01,500 OK, vamos a ahorrar. 1107 00:52:01,500 --> 00:52:04,410 Hagamos de este código. 1108 00:52:04,410 --> 00:52:06,365 Estudiantes. 1109 00:52:06,365 --> 00:52:07,100 Vamos a ejecutar este código. 1110 00:52:07,100 --> 00:52:08,480 Estudiantes. 1111 00:52:08,480 --> 00:52:11,630 No. / Estudiante. . / Estudiantes. 1112 00:52:11,630 --> 00:52:12,870 Nombre uno. 1113 00:52:12,870 --> 00:52:15,490 Vamos a decir David. 1114 00:52:15,490 --> 00:52:18,070 Nombra dos, RJ. 1115 00:52:18,070 --> 00:52:20,561 Nombra tres, Rob. 1116 00:52:20,561 --> 00:52:22,490 Nombra cuatro, Lucas. 1117 00:52:22,490 --> 00:52:26,060 Nombra cinco, Joseph. 1118 00:52:26,060 --> 00:52:28,850 Y luego imprime Joseph nuevo. 1119 00:52:28,850 --> 00:52:31,730 >> Así que déjame correr de nuevo. 1120 00:52:31,730 --> 00:52:32,460 Déjame hacer los mismos nombres. 1121 00:52:32,460 --> 00:52:39,760 David, RJ, Rob, Lucas, José. 1122 00:52:39,760 --> 00:52:41,070 Y me dio a David este momento. 1123 00:52:41,070 --> 00:52:43,030 Así que hice lo mismo, pero se lo di me una cosa diferente, y eso es 1124 00:52:43,030 --> 00:52:45,410 porque, por supuesto, que estamos pidiendo para un nombre aleatorio. 1125 00:52:45,410 --> 00:52:50,950 Así que creo que, sobre la base de encima errante alrededor de la sala, que la mayoría de la gente 1126 00:52:50,950 --> 00:52:55,960 probablemente tiene la primera parte de la derecha, la creación de la matriz y luego conseguir 1127 00:52:55,960 --> 00:52:56,430 todos los nombres. 1128 00:52:56,430 --> 00:52:59,320 Estoy hablando de las líneas 10 a la 16. 1129 00:52:59,320 --> 00:53:02,150 Pero las líneas 18 a 21 son, probablemente, algunas cosas que no ha visto antes, 1130 00:53:02,150 --> 00:53:03,750 así que vamos a ir a través de ellos. 1131 00:53:03,750 --> 00:53:10,390 >> Esta línea, srand tiempo NULL es esencialmente - 1132 00:53:10,390 --> 00:53:14,300 lo siento, vamos a saltar hacia abajo una línea, rand (). 1133 00:53:14,300 --> 00:53:17,320 Eso te da un número al azar, un entero aleatorio. 1134 00:53:17,320 --> 00:53:19,630 Y si se golpea hombre rand, que muchos de ustedes lo hizo - 1135 00:53:19,630 --> 00:53:21,530 M-A-N espacio R-A-N-D - 1136 00:53:21,530 --> 00:53:25,910 en la terminal de esta manera, M-A-N espacio R-A-N-D, pulse Enter. 1137 00:53:25,910 --> 00:53:30,490 Se podría llegar a la manual y sería capaz de leer que el rand 1138 00:53:30,490 --> 00:53:34,260 salidas de comando num bytes pseudoaleatorios después de la siembra el número aleatorio 1139 00:53:34,260 --> 00:53:35,510 generador una vez. 1140 00:53:35,510 --> 00:53:38,450 1141 00:53:38,450 --> 00:53:39,700 >> Así que esa es una descripción. 1142 00:53:39,700 --> 00:53:43,860 1143 00:53:43,860 --> 00:53:46,800 Eso es lo que Rand no, da que un número aleatorio cuando 1144 00:53:46,800 --> 00:53:48,610 se llama a esa función. 1145 00:53:48,610 --> 00:53:53,140 Por desgracia, en realidad no es aleatoria porque si usted acaba de llamar al azar 1146 00:53:53,140 --> 00:53:55,970 sin conseguir que parte de la semilla, algunos punto de partida, siempre elegirá 1147 00:53:55,970 --> 00:53:59,100 la misma y que utiliza una fórmula para determinar la siguiente. 1148 00:53:59,100 --> 00:54:01,730 Así que si usted llama rand, sólo va a le dará lo mismo. 1149 00:54:01,730 --> 00:54:02,610 Será muy predecible. 1150 00:54:02,610 --> 00:54:03,790 En realidad no será al azar. 1151 00:54:03,790 --> 00:54:09,610 >> Así que lo que tenemos que hacer, por Marcus instrucciones a mí, eran rand semilla 1152 00:54:09,610 --> 00:54:13,810 con otra cosa, que es lo que la función srand hace. 1153 00:54:13,810 --> 00:54:18,055 Es semillas rand con algo un poco más aleatoria de la misma cosa, y 1154 00:54:18,055 --> 00:54:23,360 él está sembrando con NULL tiempo, lo que es decir, sólo por convención, la corriente 1155 00:54:23,360 --> 00:54:24,650 tiempo en segundos. 1156 00:54:24,650 --> 00:54:29,790 >> Así que usted está asumiendo que todo el mundo no es va a ejecutar el código en la exacta 1157 00:54:29,790 --> 00:54:33,620 mismo segundo, por lo que es una apuesta segura que NULL vez va a ser diferente 1158 00:54:33,620 --> 00:54:35,250 cada vez que se ejecuta este código. 1159 00:54:35,250 --> 00:54:39,020 Caja fuerte apuesta que así, srand sembrará rand con algo diferente cada 1160 00:54:39,020 --> 00:54:39,990 vez. 1161 00:54:39,990 --> 00:54:44,110 Así que, por convención, cuando hacemos que desee un de números aleatorios, escribimos esta línea, 1162 00:54:44,110 --> 00:54:50,540 srand NULL tiempo, para darnos una gran semilla aleatoria más, y luego se corre 1163 00:54:50,540 --> 00:54:52,080 rand, lo que nos da un número aleatorio. 1164 00:54:52,080 --> 00:54:52,840 ¿Sí? 1165 00:54:52,840 --> 00:54:54,140 >> ESTUDIANTE: ¿Se puede decir lo que quiere decir con semilla? 1166 00:54:54,140 --> 00:54:55,630 >> JASON HIRSCHHORN: Simiente como en - 1167 00:54:55,630 --> 00:54:58,730 así rand va a recoger un número y que va a utilizar algún 1168 00:54:58,730 --> 00:55:00,060 fórmula para llegar allí. 1169 00:55:00,060 --> 00:55:03,250 Así que va a empezar con algo y luego convertirlo en algo basado 1170 00:55:03,250 --> 00:55:03,890 fuera de esa fórmula. 1171 00:55:03,890 --> 00:55:06,090 Si siempre le dan la misma cosa, que siempre va a convertir en el 1172 00:55:06,090 --> 00:55:06,790 lo mismo. 1173 00:55:06,790 --> 00:55:08,450 Así que lo primero que darle es la semilla. 1174 00:55:08,450 --> 00:55:10,880 ¿Así que quieres darle algo diferente para comenzar con, y por lo 1175 00:55:10,880 --> 00:55:12,610 lo convertirá en algo diferente. 1176 00:55:12,610 --> 00:55:15,840 >> Y, por último, la línea 20, este% se llama la 1177 00:55:15,840 --> 00:55:17,470 módulo, y que es confuso. 1178 00:55:17,470 --> 00:55:19,850 Eso es algo que es un poco diferente aquí que en realidad no 1179 00:55:19,850 --> 00:55:22,240 tener en bienes matemáticas vida. 1180 00:55:22,240 --> 00:55:27,430 Pero, en esencia, cuando se toma un gigante número y se divide en C, lo que 1181 00:55:27,430 --> 00:55:29,482 que ocurre con el resto? 1182 00:55:29,482 --> 00:55:30,510 >> ESTUDIANTE: No se trunca. 1183 00:55:30,510 --> 00:55:31,220 >> JASON HIRSCHHORN: Se queda truncada. 1184 00:55:31,220 --> 00:55:35,200 Así que 20 dividido por 3 es qué? 1185 00:55:35,200 --> 00:55:37,950 ¿Qué quiere decir volver a usted, 20 dividido por 3. 1186 00:55:37,950 --> 00:55:39,260 Lo sentimos, 10 dividido por 3. 1187 00:55:39,260 --> 00:55:41,062 ¿Qué quiere regresar a ustedes? 1188 00:55:41,062 --> 00:55:41,540 >> ESTUDIANTE: [inaudible]. 1189 00:55:41,540 --> 00:55:45,170 >> JASON HIRSCHHORN: 10 dividido por 3 sólo devuelve 3, no 3 resto 1. 1190 00:55:45,170 --> 00:55:51,490 Entonces, ¿qué 10 módulo 3 vuelve es sólo el resto, 1. 1191 00:55:51,490 --> 00:55:54,020 Así que si usted quería saber lo que 10 dividido por 3 en realidad era, que le 1192 00:55:54,020 --> 00:55:58,950 do 10 dividido por 3, se obtendría el 3, y luego que harías 10 módulo 3, y 1193 00:55:58,950 --> 00:55:59,860 usted conseguiría un 1. 1194 00:55:59,860 --> 00:56:04,630 Así que te darías cuenta de que 10 dividido por 3 es 3, el resto 1. 1195 00:56:04,630 --> 00:56:07,990 >> Y en esta línea, rand podría ser cualquier número entero, esencialmente. 1196 00:56:07,990 --> 00:56:12,660 Así módulo está diciendo, dividirlo por número, que es en este caso 5. 1197 00:56:12,660 --> 00:56:16,420 Y si alguna vez divide por un número, el número entero siempre tiene que ser inferior a 1198 00:56:16,420 --> 00:56:17,590 ese número. 1199 00:56:17,590 --> 00:56:22,200 Así que si estás dividiendo por un número de 5, el resto es siempre va a ser 1200 00:56:22,200 --> 00:56:23,396 cero a cuatro. 1201 00:56:23,396 --> 00:56:25,520 Así es como funciona la matemática. 1202 00:56:25,520 --> 00:56:29,700 >> Así, un gran número moduloed por una más pequeña número siempre devolverá 1203 00:56:29,700 --> 00:56:33,530 resto y siempre volver algún número que es menor que el número que 1204 00:56:33,530 --> 00:56:34,693 dividido por. 1205 00:56:34,693 --> 00:56:37,920 ¿Alguien tiene alguna pregunta acerca de módulo, ya que le será muy, 1206 00:56:37,920 --> 00:56:41,450 muy práctico, así que quiero asegurarme todo el mundo lo entiende? 1207 00:56:41,450 --> 00:56:43,710 Genial. 1208 00:56:43,710 --> 00:56:46,000 Y vimos que este programa funcionó. 1209 00:56:46,000 --> 00:56:50,280 Aceptar, sigamos. 1210 00:56:50,280 --> 00:56:52,970 >> Así que la próxima, vamos a entrar en funciones, y vamos a ir 1211 00:56:52,970 --> 00:56:55,580 por el resto de esta materia bastante rápidamente porque quiero llegar a 1212 00:56:55,580 --> 00:56:57,150 argumentos de la línea de comandos. 1213 00:56:57,150 --> 00:57:00,330 Así funciones son esencialmente, Como hemos visto, las cajas negras. 1214 00:57:00,330 --> 00:57:04,290 Ellos toman las cosas en los llamados parámetros, hacen algo a ellos, ya sea 1215 00:57:04,290 --> 00:57:06,990 cambiarlas o crear algunos efectos secundarios, y, por último, se escupen 1216 00:57:06,990 --> 00:57:09,530 algo fuera, que es el valor de retorno. 1217 00:57:09,530 --> 00:57:12,495 ¿Puede alguien darme una razón qué usaríamos funciones? 1218 00:57:12,495 --> 00:57:15,870 1219 00:57:15,870 --> 00:57:16,360 ¿Alguien? 1220 00:57:16,360 --> 00:57:19,360 Una razón por la que usaríamos funciones? 1221 00:57:19,360 --> 00:57:21,280 ¿Alguien? 1222 00:57:21,280 --> 00:57:22,700 Vi a dos manos. 1223 00:57:22,700 --> 00:57:23,590 ¿Cuál es una buena razón? 1224 00:57:23,590 --> 00:57:24,930 Marcus? 1225 00:57:24,930 --> 00:57:27,730 >> ESTUDIANTE: Si tiene que llamar a la misma trozo de código varias veces. 1226 00:57:27,730 --> 00:57:29,150 >> JASON HIRSCHHORN: OK, si necesita para llamar a la misma parte de 1227 00:57:29,150 --> 00:57:30,040 codificar varias veces. 1228 00:57:30,040 --> 00:57:32,470 Jeff, ¿tuvo una razón diferente? 1229 00:57:32,470 --> 00:57:34,230 >> ESTUDIANTE: Sólo para que puede codificar menos. 1230 00:57:34,230 --> 00:57:35,070 >> JASON HIRSCHHORN: Puede codificar menos. 1231 00:57:35,070 --> 00:57:35,320 Derecha. 1232 00:57:35,320 --> 00:57:38,720 Si quieres hacer algo mucho - 1233 00:57:38,720 --> 00:57:41,720 en el código anterior, que podría tener cadena get escrito cinco veces, pero una 1234 00:57:41,720 --> 00:57:44,620 para el lazo hace que se vea más bonito y más usted tiene que escribir menos código. 1235 00:57:44,620 --> 00:57:45,760 Las funciones son una idea similar. 1236 00:57:45,760 --> 00:57:48,720 Si yo quiero hacer lo mismo mucho, moverlo a una función y llamar a ese 1237 00:57:48,720 --> 00:57:49,610 funcionar cada vez. 1238 00:57:49,610 --> 00:57:51,190 Eso hará que la cosa para usted. 1239 00:57:51,190 --> 00:57:53,740 Esa es una gran razón para utilizar las funciones. 1240 00:57:53,740 --> 00:57:54,870 >> Así la anatomía de una función. 1241 00:57:54,870 --> 00:57:56,670 Una función, generalmente, tener este aspecto. 1242 00:57:56,670 --> 00:57:59,280 Va a empezar con el tipo de cambio, entonces obtendrá el nombre. 1243 00:57:59,280 --> 00:58:02,935 Tomará los argumentos, de lo contrario conocido como los parámetros, y en el interior 1244 00:58:02,935 --> 00:58:05,290 esas llaves, se le escribir el código. 1245 00:58:05,290 --> 00:58:07,150 >> Hemos visto una función mucho. 1246 00:58:07,150 --> 00:58:09,160 Eso es principal. 1247 00:58:09,160 --> 00:58:13,820 Aquí está principal superpuesta a que la anatomía que tenía antes. 1248 00:58:13,820 --> 00:58:15,525 ¿Qué int aquí significa? 1249 00:58:15,525 --> 00:58:18,534 1250 00:58:18,534 --> 00:58:19,450 ¿Qué significa int? 1251 00:58:19,450 --> 00:58:21,026 Cuando escribo int main (void). 1252 00:58:21,026 --> 00:58:21,740 >> ESTUDIANTE: Tipo de cambio? 1253 00:58:21,740 --> 00:58:22,350 >> JASON HIRSCHHORN: ¿Lo sientes? 1254 00:58:22,350 --> 00:58:23,170 >> ESTUDIANTE: El tipo de retorno. 1255 00:58:23,170 --> 00:58:24,820 >> JASON HIRSCHHORN: Int es el Tipo de retorno, exactamente correcto. 1256 00:58:24,820 --> 00:58:25,870 Principal devuelve un int. 1257 00:58:25,870 --> 00:58:28,678 ¿Cuál es principal? 1258 00:58:28,678 --> 00:58:29,510 >> ESTUDIANTE: Nombre de la función. 1259 00:58:29,510 --> 00:58:30,800 >> JASON HIRSCHHORN: Main es la el nombre de la función. 1260 00:58:30,800 --> 00:58:31,510 Exactamente derecha. 1261 00:58:31,510 --> 00:58:31,840 Y anular? 1262 00:58:31,840 --> 00:58:33,190 ¿Qué es el vacío dentro de los paréntesis? 1263 00:58:33,190 --> 00:58:36,650 1264 00:58:36,650 --> 00:58:42,030 >> ESTUDIANTE: No se necesita cualquier valor externo. 1265 00:58:42,030 --> 00:58:42,930 >> JASON HIRSCHHORN: Así vacío - 1266 00:58:42,930 --> 00:58:43,240 derecha. 1267 00:58:43,240 --> 00:58:45,940 Dentro de los paréntesis, ponemos el parámetros o los argumentos de los 1268 00:58:45,940 --> 00:58:48,480 función toma, lo que pasa dentro del cuadro negro. 1269 00:58:48,480 --> 00:58:50,760 Cuando se escribe sin efecto, usted está diciendo esto no quita nada pulg 1270 00:58:50,760 --> 00:58:53,802 Void main Así int significa principales no dar nada pulg 1271 00:58:53,802 --> 00:58:56,950 >> Dentro de las llaves, tenemos algunas código, y luego vemos al final 1272 00:58:56,950 --> 00:58:57,640 devolver cero. 1273 00:58:57,640 --> 00:59:01,220 ¿Qué quiere devolver cero significa eso? 1274 00:59:01,220 --> 00:59:02,470 Bueno, hemos hablado de tipo de retorno. 1275 00:59:02,470 --> 00:59:03,780 Principal tiene que devolver un int. 1276 00:59:03,780 --> 00:59:04,960 Eso es lo que hace esta línea. 1277 00:59:04,960 --> 00:59:07,330 Devuelve un entero, cero. 1278 00:59:07,330 --> 00:59:13,600 >> Por supuesto, no hemos visto que una gran cantidad debido a que en la programación que hacemos con 1279 00:59:13,600 --> 00:59:16,070 las máquinas que hacemos y los compiladores que usamos hoy en día, 1280 00:59:16,070 --> 00:59:16,990 no necesitan esa línea. 1281 00:59:16,990 --> 00:59:20,070 Principal es lo suficientemente especial que sabe cuando se llega al final del principal, justo 1282 00:59:20,070 --> 00:59:22,060 devolver cero si todo ha ido bien. 1283 00:59:22,060 --> 00:59:25,560 De hecho, si algo no va bien, principal a menudo devolver un diferente 1284 00:59:25,560 --> 00:59:28,500 número que significa que algo que salió mal con su programa. 1285 00:59:28,500 --> 00:59:32,470 >> Así que en general, cuando vea el código, no escriben volver a cero, pero es bueno 1286 00:59:32,470 --> 00:59:34,770 saber que está sucediendo detrás de la escenas, porque cada vez que escribes 1287 00:59:34,770 --> 00:59:36,370 otro tipo de función, usted va a necesitar 1288 00:59:36,370 --> 00:59:37,400 incluir una línea de retorno. 1289 00:59:37,400 --> 00:59:39,710 Si usted está diciendo que voy a devolver un int, hay que 1290 00:59:39,710 --> 00:59:41,250 escribir regresar algo. 1291 00:59:41,250 --> 00:59:45,160 Si usted dice sin efecto hasta aquí en el comenzando, void main vacío, para 1292 00:59:45,160 --> 00:59:48,670 ejemplo, entonces no está devolviendo nada - vacío significa nada - 1293 00:59:48,670 --> 00:59:50,320 por lo que no es necesario que la línea de retorno. 1294 00:59:50,320 --> 00:59:53,610 Pero alguna vez escribir algo que no es efecto por el tipo de retorno, necesita 1295 00:59:53,610 --> 00:59:55,950 una línea que dice volver y usted que poner algo allí 1296 00:59:55,950 --> 00:59:57,650 que coincide con el tipo. 1297 00:59:57,650 --> 00:59:58,900 ¿Una pregunta sobre eso? 1298 00:59:58,900 --> 01:00:03,110 1299 01:00:03,110 --> 01:00:04,680 Sweet. 1300 01:00:04,680 --> 01:00:05,930 >> Ámbito de aplicación. 1301 01:00:05,930 --> 01:00:07,360 Esto es algo que hemos tocado también. 1302 01:00:07,360 --> 01:00:10,720 Todas las variables, como se sabe, tiene una cierto alcance, y eso es básicamente 1303 01:00:10,720 --> 01:00:14,160 hablando de que la variable pueden o no ser referenciado. 1304 01:00:14,160 --> 01:00:16,310 Y me gusta decir lo que pasa entre llaves estancias 1305 01:00:16,310 --> 01:00:18,000 dentro de las llaves. 1306 01:00:18,000 --> 01:00:21,490 Así por ejemplo, si nos fijamos en el código, estamos definiendo una variable global 1307 01:00:21,490 --> 01:00:24,510 fuera del principal, int a, aquí en la parte superior. 1308 01:00:24,510 --> 01:00:27,380 Estamos llamando a otro int a principal dentro. 1309 01:00:27,380 --> 01:00:29,760 Tenemos algunos apoyos más rizado, y estamos llamando a otro int a. 1310 01:00:29,760 --> 01:00:31,690 >> Tenemos tres A en el código. 1311 01:00:31,690 --> 01:00:32,550 Estos no son la misma cosa. 1312 01:00:32,550 --> 01:00:34,880 He creado tres variables distintas. 1313 01:00:34,880 --> 01:00:39,370 Entonces dentro de estas rizado interior llaves, digo a = 4. 1314 01:00:39,370 --> 01:00:44,130 Que una es que hablando, la primero, el segundo, 1315 01:00:44,130 --> 01:00:47,045 o el tercero? 1316 01:00:47,045 --> 01:00:47,920 >> ESTUDIANTE: El tercero. 1317 01:00:47,920 --> 01:00:49,320 >> JASON HIRSCHHORN: Está hablando sobre la tercera. 1318 01:00:49,320 --> 01:00:52,850 Todos aquellos de una realidad puede ser hablado en este particular, 1319 01:00:52,850 --> 01:00:58,660 ejemplo, porque su alcance todo va en estas llaves más íntimos. 1320 01:00:58,660 --> 01:01:02,360 Sin embargo, al llamar a las cosas de la misma nombre, hay algo llamado la clandestinidad. 1321 01:01:02,360 --> 01:01:09,670 Así que sólo se ocupan de o arreglar o usar el más variable reciente, o el uno 1322 01:01:09,670 --> 01:01:11,090 más cercano a usted. 1323 01:01:11,090 --> 01:01:14,760 Así que aquí dentro, esta es la más cercana de un tercero a esa línea, a = 4, por lo que 1324 01:01:14,760 --> 01:01:16,550 afecta a la tercera uno. 1325 01:01:16,550 --> 01:01:19,890 Y la última línea, a = 2, que es un que hablar de la primera, segunda, 1326 01:01:19,890 --> 01:01:20,805 o un tercero? 1327 01:01:20,805 --> 01:01:22,530 >> ESTUDIANTE: Segundo. 1328 01:01:22,530 --> 01:01:24,430 >> JASON HIRSCHHORN: Está hablando sobre el segundo a. 1329 01:01:24,430 --> 01:01:27,970 Por supuesto, la tercera una es más cercana a en el código, pero el tercero un 1330 01:01:27,970 --> 01:01:30,200 no existe fuera esas llaves. 1331 01:01:30,200 --> 01:01:32,650 Una vez que llegue a ese rizado cerrado corsé, es como se ha ido, 1332 01:01:32,650 --> 01:01:33,570 esencialmente. 1333 01:01:33,570 --> 01:01:36,150 Así que los dos únicos que le queda son los primero dos, y por supuesto, ahora 1334 01:01:36,150 --> 01:01:37,960 que es más cercana a la segunda. 1335 01:01:37,960 --> 01:01:39,410 >> Así que eso es una buena cosa para recordar acerca de su alcance. 1336 01:01:39,410 --> 01:01:42,900 Por ejemplo, estoy seguro que le ha surgido esto en un bucle do while. 1337 01:01:42,900 --> 01:01:46,680 Si inicializa la variable dentro el bucle do while y luego intenta 1338 01:01:46,680 --> 01:01:50,360 acceder a él fuera, probablemente ¿Tienes algo de advertencia como, esto 1339 01:01:50,360 --> 01:01:51,680 no existe variable. 1340 01:01:51,680 --> 01:01:54,370 Esto se debe a la idea de su alcance, que sólo existen las cosas 1341 01:01:54,370 --> 01:01:55,320 dentro de esas llaves. 1342 01:01:55,320 --> 01:01:59,320 Las llaves son como un abrazo gigante que usted está dando a su código, es otra 1343 01:01:59,320 --> 01:02:01,380 manera de pensar en ello. 1344 01:02:01,380 --> 01:02:05,280 >> Así que esta es otra función, algo para ustedes en el código, hellofunction.c. 1345 01:02:05,280 --> 01:02:08,240 Vamos a pasar que, por ahora, pero esto es algo que me animo a 1346 01:02:08,240 --> 01:02:09,740 practicar por su cuenta. 1347 01:02:09,740 --> 01:02:12,510 Escriba un programa en el que las llamadas principales otra función que imprime un 1348 01:02:12,510 --> 01:02:13,750 saludo para el usuario. 1349 01:02:13,750 --> 01:02:17,750 Se trata de tomar en esencia hola mundo y la abstracción que printf en 1350 01:02:17,750 --> 01:02:18,680 otra función. 1351 01:02:18,680 --> 01:02:22,360 Pero no vamos a hacer eso ahora porque no tenemos tanto tiempo 1352 01:02:22,360 --> 01:02:23,350 izquierda como me hubiera gustado. 1353 01:02:23,350 --> 01:02:26,250 >> Así declaración de la función. 1354 01:02:26,250 --> 01:02:28,080 Hemos visto esto antes también. 1355 01:02:28,080 --> 01:02:31,180 Si desea escribir otra función, es necesario dejar que la computadora sabe y 1356 01:02:31,180 --> 01:02:32,600 principal sabe que existe. 1357 01:02:32,600 --> 01:02:37,140 Así que lo que hacemos es por encima de principal, se escribe el tipo de cambio, el nombre, y el 1358 01:02:37,140 --> 01:02:42,970 parámetros y, a continuación, por debajo de principal, aquí abajo, en realidad nos copiamos esa línea 1359 01:02:42,970 --> 01:02:45,080 y luego escribir el código real. 1360 01:02:45,080 --> 01:02:50,990 Así de esta manera, si se llama a la función en principal en la parte superior, el principal sabe que 1361 01:02:50,990 --> 01:02:54,650 hola existe, por ejemplo, si yo fuera llamar hola, y luego se ve a 1362 01:02:54,650 --> 01:02:56,710 la implementación de abajo. 1363 01:02:56,710 --> 01:02:59,680 ¿Qué sucede si no se incluye este línea encima de la tapa, anulará hola (void)? 1364 01:02:59,680 --> 01:03:03,820 1365 01:03:03,820 --> 01:03:06,560 >> Si no incluyo esta línea y las llamadas principales hola, soy 1366 01:03:06,560 --> 01:03:07,640 va a conseguir un error. 1367 01:03:07,640 --> 01:03:10,090 Voy a conseguir un error porque el compilador no sabe 1368 01:03:10,090 --> 01:03:13,070 que existe esta cosa. 1369 01:03:13,070 --> 01:03:16,680 Esto es similar a la razón por la que no # include cs50.h. 1370 01:03:16,680 --> 01:03:21,390 Lo que esencialmente cs50.h está haciendo está poniendo cuerdas llegar hasta allí. 1371 01:03:21,390 --> 01:03:23,120 Es poner get int allí. 1372 01:03:23,120 --> 01:03:26,570 Es poner todos aquellos función prototipos antes de principal, de modo que cuando 1373 01:03:26,570 --> 01:03:29,900 usted los llama en principal, principal sabe que estas cosas existen. 1374 01:03:29,900 --> 01:03:31,630 Eso es lo que esos archivos. H hacen. 1375 01:03:31,630 --> 01:03:33,850 Y por lo que si usted va a hacer su propio función, tienes que asegurarse de 1376 01:03:33,850 --> 01:03:36,690 pones ese prototipo hasta allí. 1377 01:03:36,690 --> 01:03:38,380 ¿Una pregunta sobre esto hasta ahora? 1378 01:03:38,380 --> 01:03:41,630 1379 01:03:41,630 --> 01:03:42,490 >> Argumentos de la línea de comandos. 1380 01:03:42,490 --> 01:03:44,780 Esto es lo que vamos a terminar , y luego esperamos verte 1381 01:03:44,780 --> 01:03:46,180 apretar en algún conjunto de procesadores. 1382 01:03:46,180 --> 01:03:48,700 No sé si vamos a ser capaces de exprimir en que por falta de tiempo, pero 1383 01:03:48,700 --> 01:03:51,560 con ustedes que están aquí, y si usted chicos quieren decir que después de un rato, nos 1384 01:03:51,560 --> 01:03:54,290 puede ir fuera. 1385 01:03:54,290 --> 01:03:56,020 Pero vamos a terminar con argumentos de la línea de comandos 1386 01:03:56,020 --> 01:03:58,510 durante los últimos 15 minutos. 1387 01:03:58,510 --> 01:03:59,930 Despertamos, Michael? 1388 01:03:59,930 --> 01:04:01,180 Estás despierto? 1389 01:04:01,180 --> 01:04:01,660 Bueno. 1390 01:04:01,660 --> 01:04:03,760 No sé si usted duerme con los ojos cerrados. 1391 01:04:03,760 --> 01:04:05,800 Sería difícil. 1392 01:04:05,800 --> 01:04:07,180 >> Argumentos de la línea de comandos. 1393 01:04:07,180 --> 01:04:10,430 Son una forma de pasar información en un programa. 1394 01:04:10,430 --> 01:04:12,780 Con el tiempo, que encontraremos otros. 1395 01:04:12,780 --> 01:04:15,600 Pero, en esencia, que vamos a dejar de escribir int main (void) si queremos 1396 01:04:15,600 --> 01:04:16,720 tomar algunos argumentos de la línea de comandos. 1397 01:04:16,720 --> 01:04:19,850 Vamos a escribir esta cosa llamada int main (int argc, 1398 01:04:19,850 --> 01:04:22,430 argv cadena, entre paréntesis. 1399 01:04:22,430 --> 01:04:23,710 Eso es confuso. 1400 01:04:23,710 --> 01:04:26,070 Eso es un montón de cartas que no están en Inglés humano, por lo que vamos a 1401 01:04:26,070 --> 01:04:27,680 desempaquetar los archivos en estos momentos. 1402 01:04:27,680 --> 01:04:30,450 >> Argc significa recuento de argumentos - 1403 01:04:30,450 --> 01:04:32,600 y otra vez, todo esto se estará disponible en línea - 1404 01:04:32,600 --> 01:04:34,280 y ese es el número de argumentos. 1405 01:04:34,280 --> 01:04:37,940 Argv es sinónimo de argumento de vectores y esos son los mismos argumentos. 1406 01:04:37,940 --> 01:04:38,830 Es una matriz de cadenas. 1407 01:04:38,830 --> 01:04:40,880 De hecho, hemos visto una gran variedad de las cuerdas antes de hoy. 1408 01:04:40,880 --> 01:04:44,390 Hemos creado una en el último programa codificamos. 1409 01:04:44,390 --> 01:04:45,720 >> Así que aquí está un ejemplo. 1410 01:04:45,720 --> 01:04:50,230 Escribo. / Sección CS50 ohai en mi línea de comandos. 1411 01:04:50,230 --> 01:04:54,090 Argc en este caso es igual a 3. 1412 01:04:54,090 --> 01:05:01,170 Argv soporte 0 es ohai, soporte argv 1 se CS50, argv soporte 2 es la sección. 1413 01:05:01,170 --> 01:05:05,160 Una vez más, argc es el número de argumentos, y para tropezar un poco 1414 01:05:05,160 --> 01:05:08,710 poco, siempre contamos el nombre de la actuar como el primer argumento. 1415 01:05:08,710 --> 01:05:12,350 Así pues, en este caso, hay tres argumentos, el nombre de la función 1416 01:05:12,350 --> 01:05:14,590 y luego los dos que he escrito pulg 1417 01:05:14,590 --> 01:05:18,900 >> A continuación, vamos a salvar a los mismos argumentos argv. 1418 01:05:18,900 --> 01:05:22,690 Y de nuevo, tal y como vimos antes, lo hicimos esto en el último programa que codifica. 1419 01:05:22,690 --> 01:05:27,110 Puede moverse a través de la matriz de argv y obtener esas cadenas. 1420 01:05:27,110 --> 01:05:28,830 Eso es básicamente lo que hicimos en Al final de nuestro último programa. 1421 01:05:28,830 --> 01:05:33,190 Elegimos un nombre al azar y luego fuimos a soporte de nombres de lo que sea y impresa 1422 01:05:33,190 --> 01:05:34,580 la cadena ubicado allí. 1423 01:05:34,580 --> 01:05:39,870 1424 01:05:39,870 --> 01:05:43,670 >> En la parte superior de apenas el uno array, porque propias cadenas son arrays, como 1425 01:05:43,670 --> 01:05:46,320 hablado, puede tener matrices de matrices, que es 1426 01:05:46,320 --> 01:05:48,530 esencialmente lo que es argv. 1427 01:05:48,530 --> 01:05:51,370 Una manera de pensar este es filas y columnas. 1428 01:05:51,370 --> 01:05:54,750 Puedo dibujar eso en este momento. 1429 01:05:54,750 --> 01:05:57,370 Así argv - 1430 01:05:57,370 --> 01:05:58,630 eso no es borrado. 1431 01:05:58,630 --> 01:05:59,880 Vamos a dibujar bajo ohai. 1432 01:05:59,880 --> 01:06:09,320 1433 01:06:09,320 --> 01:06:12,490 >> Así que si yo escribí en la sección CS50 ohai, Voy a truncar 1434 01:06:12,490 --> 01:06:14,520 sección para este ejemplo. 1435 01:06:14,520 --> 01:06:29,026 Pero, en esencia, mi multidimensional array, CS50 ohai, 1436 01:06:29,026 --> 01:06:32,200 vamos a hacer secta. 1437 01:06:32,200 --> 01:06:34,610 Así que aquí, puedo acceder - 1438 01:06:34,610 --> 01:06:40,930 1439 01:06:40,930 --> 01:06:45,710 si me doy argv un número - 1440 01:06:45,710 --> 01:06:46,390 esto está mal. 1441 01:06:46,390 --> 01:06:49,020 ¿Qué hay de malo en este diagrama? 1442 01:06:49,020 --> 01:06:49,690 >> ESTUDIANTE: Comienza en cero. 1443 01:06:49,690 --> 01:06:50,350 >> JASON HIRSCHHORN: debe comenzar con cero. 1444 01:06:50,350 --> 01:06:52,940 Probablemente debería también girar, pero ya que yo ya he dibujado en, estoy 1445 01:06:52,940 --> 01:06:54,120 va a dejarlo ahí por ahora. 1446 01:06:54,120 --> 01:06:55,160 Pero comienza en cero. 1447 01:06:55,160 --> 01:06:56,410 Eso es correcto. 1448 01:06:56,410 --> 01:06:58,980 1449 01:06:58,980 --> 01:07:00,120 Lo siento si esto es pequeño. 1450 01:07:00,120 --> 01:07:01,370 Pueden ustedes especie de ver? 1451 01:07:01,370 --> 01:07:03,620 1452 01:07:03,620 --> 01:07:06,670 Así que si lo hago argv 0, voy a obtener todos ohai. 1453 01:07:06,670 --> 01:07:08,555 Si lo hago argv 1, voy a conseguir todos CS50. 1454 01:07:08,555 --> 01:07:10,720 Si lo hago argv 2, voy a conseguir todos los sect. 1455 01:07:10,720 --> 01:07:13,370 >> Pero ahora, como hemos dicho, las cadenas son propias matrices. 1456 01:07:13,370 --> 01:07:19,740 Así que lo que puedo hacer es que puedo tratar esta como una matriz multidimensional, y yo 1457 01:07:19,740 --> 01:07:24,190 puede hacer algo en la línea de argv 0, 0, que me da igual el 1458 01:07:24,190 --> 01:07:25,400 carácter 0. 1459 01:07:25,400 --> 01:07:28,760 Argv 0, 1, que me da igual h. 1460 01:07:28,760 --> 01:07:33,960 Argv 1, 3, que me da igual 0 este aquí en CS50. 1461 01:07:33,960 --> 01:07:37,690 >> Así que debido a las propias cadenas son arreglos, estamos poniendo 1462 01:07:37,690 --> 01:07:38,540 que en otro array. 1463 01:07:38,540 --> 01:07:42,850 Ahora tenemos matriz de matrices, y puede indexar en nuestra primera matriz y 1464 01:07:42,850 --> 01:07:44,840 entonces índice en nuestra segunda matriz. 1465 01:07:44,840 --> 01:07:48,650 Y como era de esperar, lo hacemos con solo colocar los dos - 1466 01:07:48,650 --> 01:07:51,760 hacemos los corchetes sólo justo al lado de uno al otro. 1467 01:07:51,760 --> 01:07:58,930 Así, en este ejemplo, argv 1 es CS50 y argv 1, 2, como hemos dicho, es sólo 5. 1468 01:07:58,930 --> 01:08:02,120 ¿Alguien tiene alguna pregunta acerca de matrices multidimensionales? 1469 01:08:02,120 --> 01:08:05,090 1470 01:08:05,090 --> 01:08:06,380 Ustedes están haciendo genial. 1471 01:08:06,380 --> 01:08:07,750 Sweet. 1472 01:08:07,750 --> 01:08:11,980 >> Así que tenemos otro programa aquí, y esta es la última cosa que estamos 1473 01:08:11,980 --> 01:08:13,690 va a hacer ahora mismo. 1474 01:08:13,690 --> 01:08:18,160 Así que quiero que escribas un programa que toma el nombre completo de un usuario, dos y sólo 1475 01:08:18,160 --> 01:08:21,649 dos argumentos de línea de comandos y, por último, imprimir un saludo a la 1476 01:08:21,649 --> 01:08:24,180 usuario que incluya su nombre de pila. 1477 01:08:24,180 --> 01:08:27,800 Entonces, ¿por qué no te tomas tres o cuatro minutos para hacer esto, y luego vamos a ir 1478 01:08:27,800 --> 01:08:29,870 sobre ella como un grupo, y entonces nosotros terminaremos? 1479 01:08:29,870 --> 01:09:44,189 1480 01:09:44,189 --> 01:09:48,084 >> Y de nuevo, aquí, cuando nosotros decimos tomar un el nombre completo del usuario y por la descripción 1481 01:09:48,084 --> 01:09:54,473 de este problema, que debería ser de comandos argumentos de la línea, no usar cuerdas get. 1482 01:09:54,473 --> 01:09:55,450 Sí, Marcus? 1483 01:09:55,450 --> 01:09:58,260 >> ESTUDIANTE: dos comandos Así que cuando dices argumentos de la línea, es que, además de 1484 01:09:58,260 --> 01:10:00,000 . el / run, o - 1485 01:10:00,000 --> 01:10:02,980 >> JASON HIRSCHHORN: Buena pregunta. 1486 01:10:02,980 --> 01:10:05,995 Hacer, incluyendo el. / Run, tres argumentos de la línea de comandos. 1487 01:10:05,995 --> 01:10:08,550 1488 01:10:08,550 --> 01:10:11,320 O como el. / Personalizado, en este caso, porque esa es la 1489 01:10:11,320 --> 01:10:12,360 nombre de este archivo. 1490 01:10:12,360 --> 01:10:13,300 Así argc sería tres. 1491 01:10:13,300 --> 01:10:19,480 Pero quiero sólo dos argumentos dado al programa. 1492 01:10:19,480 --> 01:10:20,400 Debo precisar que. 1493 01:10:20,400 --> 01:10:23,380 Voy a hacer que el cambio antes de publicar ellos y enviarlos a ustedes. 1494 01:10:23,380 --> 01:10:32,747 1495 01:10:32,747 --> 01:10:34,740 >> ESTUDIANTE: ¿Qué pasa si usted tener un segundo nombre? 1496 01:10:34,740 --> 01:10:36,800 >> JASON HIRSCHHORN: Si usted tiene un medio nombre, estás fuera de suerte. 1497 01:10:36,800 --> 01:10:38,050 Lo siento. 1498 01:10:38,050 --> 01:10:40,320 1499 01:10:40,320 --> 01:10:43,744 O si sólo vas por Shakira, también estás de suerte. 1500 01:10:43,744 --> 01:10:55,672 1501 01:10:55,672 --> 01:10:56,425 ¿Sí? 1502 01:10:56,425 --> 01:11:00,760 >> ESTUDIANTE: Entonces, cuando la gente no tiene cs50.h, Cómo definen argv 1503 01:11:00,760 --> 01:11:03,450 argv estrellas como char? 1504 01:11:03,450 --> 01:11:05,160 ¿O es que todavía se llama argv cuerda? 1505 01:11:05,160 --> 01:11:07,430 >> JASON HIRSCHHORN: Si. 1506 01:11:07,430 --> 01:11:10,480 Así cadena, de nuevo, la máscara sobre lo exactamente que está sucediendo allí. 1507 01:11:10,480 --> 01:11:14,040 Eso va a ser desempaquetado puede que el miércoles, pero pronto. 1508 01:11:14,040 --> 01:11:16,380 Es como las ruedas de entrenamiento. 1509 01:11:16,380 --> 01:11:18,370 Porque en esencia, es la misma cosa. 1510 01:11:18,370 --> 01:11:37,040 1511 01:11:37,040 --> 01:11:42,560 >> Así que echemos un minuto más para el programa esto, y luego vamos a ir sobre 1512 01:11:42,560 --> 01:11:45,130 como un grupo y, a continuación, como he dicho, envuelve para arriba. 1513 01:11:45,130 --> 01:11:47,770 Y creo que son todavía dulces extra, por lo que ustedes deben tomar con suerte 1514 01:11:47,770 --> 01:11:49,790 eso, o por favor tome eso. 1515 01:11:49,790 --> 01:12:20,380 1516 01:12:20,380 --> 01:12:22,560 >> Lo siento si usted todavía está escribiendo, pero quiero bucear y nos 1517 01:12:22,560 --> 01:12:24,010 puede terminar juntos. 1518 01:12:24,010 --> 01:12:30,470 Así que he escrito en, # include cs50.h, # include stdio.h. 1519 01:12:30,470 --> 01:12:33,970 int main (void), corchete, rizado corsé, interior de tres líneas de 1520 01:12:33,970 --> 01:12:38,760 pseudocódigo, toma el nombre completo de un usuario, dos y sólo dos de línea de comandos 1521 01:12:38,760 --> 01:12:42,670 argumentos, imprime un saludo a la usuario que incluya su nombre de pila. 1522 01:12:42,670 --> 01:12:45,810 >> Así que la primera uno, tomar el nombre completo de un usuario. 1523 01:12:45,810 --> 01:12:47,290 ¿Quién puede ayudarme a tomar el nombre completo de un usuario? 1524 01:12:47,290 --> 01:12:50,882 1525 01:12:50,882 --> 01:12:52,780 ¿Cómo puedo hacer esa parte? 1526 01:12:52,780 --> 01:12:57,685 1527 01:12:57,685 --> 01:12:59,500 ¿Sabía que ustedes hacen esa primera parte? 1528 01:12:59,500 --> 01:13:02,587 1529 01:13:02,587 --> 01:13:03,894 Toma el nombre completo de un usuario. 1530 01:13:03,894 --> 01:13:05,860 Pues bien, para que una línea de comandos argumento, ¿qué debo escribir? 1531 01:13:05,860 --> 01:13:09,624 ¿Qué debo cambiar en mi declaración de la función? 1532 01:13:09,624 --> 01:13:11,140 >> ESTUDIANTE: Usted no quiere que sea anulada más. 1533 01:13:11,140 --> 01:13:11,410 >> JASON HIRSCHHORN: Exactamente. 1534 01:13:11,410 --> 01:13:12,385 Yo no quiero que sea anulada. 1535 01:13:12,385 --> 01:13:13,630 ¿Qué es lo que quiero que sea? 1536 01:13:13,630 --> 01:13:14,650 >> ESTUDIANTE: Int argc. 1537 01:13:14,650 --> 01:13:15,720 >> JASON HIRSCHHORN: Int argc. 1538 01:13:15,720 --> 01:13:17,430 >> ESTUDIANTE: argv String. 1539 01:13:17,430 --> 01:13:19,055 >> JASON HIRSCHHORN: argv String. 1540 01:13:19,055 --> 01:13:19,705 >> ESTUDIANTE: Bracket, soporte. 1541 01:13:19,705 --> 01:13:20,070 >> JASON HIRSCHHORN: Bracket, soporte. 1542 01:13:20,070 --> 01:13:21,780 Eso es exactamente correcto, y eso es realmente la forma en que voy a conseguir 1543 01:13:21,780 --> 01:13:22,820 el nombre completo de un usuario. 1544 01:13:22,820 --> 01:13:24,070 Van a ponerlo ahí. 1545 01:13:24,070 --> 01:13:27,720 1546 01:13:27,720 --> 01:13:28,780 Así que uno está hecho. 1547 01:13:28,780 --> 01:13:30,780 Así que ahora quiero dos y sólo dos argumentos de la línea de comandos. 1548 01:13:30,780 --> 01:13:35,065 Así que Noé, lo que es una manera de que pueda comprobar el número de comandos 1549 01:13:35,065 --> 01:13:36,315 argumentos de la línea que tienen? 1550 01:13:36,315 --> 01:13:39,676 1551 01:13:39,676 --> 01:13:40,725 >> ESTUDIANTE: Usted hace una sentencia if. 1552 01:13:40,725 --> 01:13:42,270 >> JASON HIRSCHHORN: Si declaración, exactamente. 1553 01:13:42,270 --> 01:13:44,830 ¿Qué quiero como la condición? 1554 01:13:44,830 --> 01:13:48,370 >> ESTUDIANTE: Si argc mayor que 3. 1555 01:13:48,370 --> 01:13:52,485 >> JASON HIRSCHHORN: Si argc es mayor que 3. 1556 01:13:52,485 --> 01:13:58,430 Si argc mayor que 3, ¿qué hago? 1557 01:13:58,430 --> 01:13:59,400 >> ESTUDIANTE: Vuelta 1. 1558 01:13:59,400 --> 01:14:01,856 >> JASON HIRSCHHORN: Vuelta 1. 1559 01:14:01,856 --> 01:14:04,050 ¿Será que asegurarme que tengo dos y sólo dos? 1560 01:14:04,050 --> 01:14:07,280 1561 01:14:07,280 --> 01:14:07,820 >> ESTUDIANTE: No. 1562 01:14:07,820 --> 01:14:13,110 Si argc es mayor que 3 y menos de 2. 1563 01:14:13,110 --> 01:14:17,770 >> JASON HIRSCHHORN: Si argc es mayor de 3 y argc es menor que 2. 1564 01:14:17,770 --> 01:14:21,540 ¿Cuál es una manera de que puedo escribir esto en tan sólo una línea, o sin el uso que 1565 01:14:21,540 --> 01:14:23,890 y el operador booleano? 1566 01:14:23,890 --> 01:14:25,942 >> ESTUDIANTE: No es igual a 2. 1567 01:14:25,942 --> 01:14:28,790 >> JASON HIRSCHHORN: Si argc no es igual a 2. 1568 01:14:28,790 --> 01:14:29,260 Exactamente. 1569 01:14:29,260 --> 01:14:34,890 Así que si argc no es igual a 2, que me va a dar a este programa, 1570 01:14:34,890 --> 01:14:37,250 personalizado, cuando lo ejecuto, y eso me dará el número de 1571 01:14:37,250 --> 01:14:38,740 argumentos de la línea de comandos? 1572 01:14:38,740 --> 01:14:42,110 ¿Cuántas voy a comprobar? 1573 01:14:42,110 --> 01:14:42,370 >> Lo siento. 1574 01:14:42,370 --> 01:14:43,400 Déjeme reformular eso. 1575 01:14:43,400 --> 01:14:46,620 Si argc = 2, ¿cuántas cosas hizo el usuario escribe en la línea? 1576 01:14:46,620 --> 01:14:47,500 >> ESTUDIANTE: Primero. 1577 01:14:47,500 --> 01:14:49,120 >> JASON HIRSCHHORN: Sólo uno. 1578 01:14:49,120 --> 01:14:50,430 Así que antes, tenías razón, Noah. 1579 01:14:50,430 --> 01:14:52,192 ¿Qué es lo que realmente necesito poner allí? 1580 01:14:52,192 --> 01:14:53,640 >> ESTUDIANTE: Eso es igual a 3. 1581 01:14:53,640 --> 01:14:55,970 >> JASON HIRSCHHORN: Argc no es igual 3. 1582 01:14:55,970 --> 01:15:00,250 Quiero ser igual a 3 porque quiero personalizada además de los otros dos. 1583 01:15:00,250 --> 01:15:02,560 Así que si argc no es igual a 3, devuelve 1. 1584 01:15:02,560 --> 01:15:04,475 ¿Por qué dijiste return 1? 1585 01:15:04,475 --> 01:15:06,180 >> ESTUDIANTE: Debido a que significa que está mal. 1586 01:15:06,180 --> 01:15:08,420 >> JASON HIRSCHHORN: Eso quiere decir que está mal, ¿Y qué se va a hacer? 1587 01:15:08,420 --> 01:15:10,360 >> ESTUDIANTE: Vuelva a preguntar al usuario. 1588 01:15:10,360 --> 01:15:11,940 >> JASON HIRSCHHORN: Se va a dejar de fumar el programa, por lo que tendrá que ejecutar 1589 01:15:11,940 --> 01:15:14,520 de nuevo, pero no tenemos nada aquí para pedir por ellos de nuevo. 1590 01:15:14,520 --> 01:15:14,840 Yo no pedí eso. 1591 01:15:14,840 --> 01:15:15,990 Así que eso es exactamente correcto. 1592 01:15:15,990 --> 01:15:17,680 Regresar 1 sólo se cierra el programa. 1593 01:15:17,680 --> 01:15:18,520 Grande. 1594 01:15:18,520 --> 01:15:21,600 >> E imprimir un saludo para el usuario que incluye su nombre de pila. 1595 01:15:21,600 --> 01:15:24,010 ¿Cómo puedo hacer eso? 1596 01:15:24,010 --> 01:15:25,990 Anna? 1597 01:15:25,990 --> 01:15:26,580 >> ESTUDIANTE: Printf. 1598 01:15:26,580 --> 01:15:27,785 >> JASON HIRSCHHORN: Printf. 1599 01:15:27,785 --> 01:15:28,640 >> ESTUDIANTE: (" 1600 01:15:28,640 --> 01:15:30,460 >> JASON HIRSCHHORN: ( 1601 01:15:30,460 --> 01:15:31,600 >> ESTUDIANTE: "hola 1602 01:15:31,600 --> 01:15:33,210 >> JASON HIRSCHHORN: "hola 1603 01:15:33,210 --> 01:15:34,800 >> ESTUDIANTE:% s 1604 01:15:34,800 --> 01:15:37,230 >> JASON HIRSCHHORN:% s 1605 01:15:37,230 --> 01:15:38,840 >> ESTUDIANTE: / n 1606 01:15:38,840 --> 01:15:41,030 >> JASON HIRSCHHORN: / n 1607 01:15:41,030 --> 01:15:43,120 >> ESTUDIANTE: ", 1608 01:15:43,120 --> 01:15:45,130 >> JASON HIRSCHHORN: ", 1609 01:15:45,130 --> 01:15:46,620 >> ESTUDIANTE: argv 1610 01:15:46,620 --> 01:15:47,080 >> JASON HIRSCHHORN: ¿Lo sientes? 1611 01:15:47,080 --> 01:15:47,750 >> ESTUDIANTE: argv 1612 01:15:47,750 --> 01:15:48,840 >> JASON HIRSCHHORN: argv 1613 01:15:48,840 --> 01:15:50,190 >> ESTUDIANTE: Corchetes: 1. 1614 01:15:50,190 --> 01:15:51,230 >> JASON HIRSCHHORN: Los corchetes? 1615 01:15:51,230 --> 01:15:51,870 >> ESTUDIANTE: 1. 1616 01:15:51,870 --> 01:15:54,050 >> JASON HIRSCHHORN: 1. 1617 01:15:54,050 --> 01:15:55,850 >> ESTUDIANTE: Y) y coma. 1618 01:15:55,850 --> 01:15:58,290 >> JASON HIRSCHHORN:) punto y coma. 1619 01:15:58,290 --> 01:16:00,250 Corramos esto. 1620 01:16:00,250 --> 01:16:03,730 Hacer personalizado. 1621 01:16:03,730 --> 01:16:06,392 . / Personalizada. 1622 01:16:06,392 --> 01:16:07,420 Se acaba de dejar. 1623 01:16:07,420 --> 01:16:10,390 ¿Por qué dejar de fumar? 1624 01:16:10,390 --> 01:16:11,310 >> ESTUDIANTE: Usted no puso ningún argumento. 1625 01:16:11,310 --> 01:16:12,560 >> JASON HIRSCHHORN: No lo hice poner ningún argumento pulg 1626 01:16:12,560 --> 01:16:16,360 1627 01:16:16,360 --> 01:16:16,920 Se ve muy bien. 1628 01:16:16,920 --> 01:16:18,130 Ustedes lo clavó. 1629 01:16:18,130 --> 01:16:22,420 Así que de nuevo, usted entró en argv y usted comprobado en el argc comenzando. 1630 01:16:22,420 --> 01:16:24,390 Esos son dos importantes cosas que recordar. 1631 01:16:24,390 --> 01:16:29,250 Así que en nuestros dos últimos minutos antes de que dejar, no vamos a llegar al conjunto de procesadores de dos, pero 1632 01:16:29,250 --> 01:16:33,585 como he dicho, si quiere quedarse después durante 10 minutos, me gustaría que feliz de ir 1633 01:16:33,585 --> 01:16:35,710 de nuevo con ustedes la lógica para estos conjuntos de problemas. 1634 01:16:35,710 --> 01:16:37,930 Teníamos mucho que cubrir hoy así que no llegué a ellos. 1635 01:16:37,930 --> 01:16:39,820 En general, me gusta incluir que en el extremo. 1636 01:16:39,820 --> 01:16:42,150 Así que si quieres quedarte, quedarse por 10 minutos. 1637 01:16:42,150 --> 01:16:42,990 Haremos eso. 1638 01:16:42,990 --> 01:16:46,250 >> Entonces, como dije al principio, pset cero y uno, conseguiremos que 1639 01:16:46,250 --> 01:16:48,040 retroalimentación con usted lo pronto como sea posible. 1640 01:16:48,040 --> 01:16:51,260 El objetivo es conseguir un conjunto de procesadores de retroalimentación, la parte de comentarios, 1641 01:16:51,260 --> 01:16:52,850 antes pset dos es debido. 1642 01:16:52,850 --> 01:16:56,730 Así que si usted hizo algunos errores o estilísticamente, las cosas podrían ser mejores, 1643 01:16:56,730 --> 01:17:01,330 usted tiene esa información para que no va a hacer las mismas cosas en el conjunto de procesadores de dos. 1644 01:17:01,330 --> 01:17:06,140 Y luego, en el futuro, usted conseguirá todo de su regeneración pset y comentarios 1645 01:17:06,140 --> 01:17:08,190 de vuelta antes de la próxima es debido. 1646 01:17:08,190 --> 01:17:12,695 >> Por último, si podía poner en otro enchufe para la retroalimentación. 1647 01:17:12,695 --> 01:17:13,935 Esta es su primera sección. 1648 01:17:13,935 --> 01:17:15,920 Fue mi primera sección la enseñanza de este año. 1649 01:17:15,920 --> 01:17:16,930 Ir allí. 1650 01:17:16,930 --> 01:17:19,800 Escribe cosas, buenas y malas, y voy a usarlo para hacer 1651 01:17:19,800 --> 01:17:21,320 sección mejor la próxima vez. 1652 01:17:21,320 --> 01:17:24,870 Y por último, de nuevo, si es necesario nada, que me haga saber. 1653 01:17:24,870 --> 01:17:26,410 Estoy más que feliz de ayudar a ustedes. 1654 01:17:26,410 --> 01:17:28,420 Si lo que desea es caramelo, me tendrá dulces extra. 1655 01:17:28,420 --> 01:17:29,800 Estoy feliz de llevarlo a usted. 1656 01:17:29,800 --> 01:17:31,190 >> Este va a ser un curso increíble. 1657 01:17:31,190 --> 01:17:34,900 Este es uno de, si no es mi favorito Por supuesto, yo he tomado en toda mi vida, 1658 01:17:34,900 --> 01:17:37,220 y yo espero que sea que maravilloso para ti. 1659 01:17:37,220 --> 01:17:40,090 Así que lo que quiero hacer todo en mi poder para hacerlo que impresionante para usted. 1660 01:17:40,090 --> 01:17:46,590 Voy a enviar un correo electrónico si usted está en mi sección o Noah, y 1661 01:17:46,590 --> 01:17:50,310 va a tratar de programar con cada uno de ustedes un tiempo para comprobar en el 1662 01:17:50,310 --> 01:17:53,820 próximo par de semanas para que pueda obtener un sentido de lo que su fondo es CS, 1663 01:17:53,820 --> 01:17:58,170 y también me ayudará a adaptar para presentarlas secciones para satisfacer mejor sus necesidades. 1664 01:17:58,170 --> 01:17:59,740 Así que eso es lo que tengo alineados. 1665 01:17:59,740 --> 01:18:02,260 Una vez más, nos vemos fuera si quieres estar allí. 1666 01:18:02,260 --> 01:18:03,700 Esto fue dos semanas sección. 1667 01:18:03,700 --> 01:18:04,950 Gracias chicos tanto. 1668 01:18:04,950 --> 01:18:09,067