1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
JASON HIRSCHHORN: Bienvenido. Así que sólo unos pocos anuncios antes de empezar. Así secciones, todo el mundo debería ya han seccionado. Secciones normalmente corren de domingo a martes. Así que ustedes deben obtener sus asignaciones. Y entonces creo que la próxima semana podrás con su real TFS. Así que si usted tiene alguna pregunta, o problemas, o se olvidó de la sección. Algunas personas hacen eso. Simplemente háganos saber. Dispara a nosotros un correo electrónico a los jefes. 

Luego de horas de oficina. Empezamos horario de oficina la semana pasada. Las horas de oficina a la semana. El lunes es en Leverett 08:00-11:00. Los martes en el patio, así Cabot 8:00-11:00. Miércoles, Mather 8:30-11:30. Y Jueves Annenberg 8:00-11:00. 

Así que cero, un montón de gente no necesitan horas de oficina ayudar a los arañazos, que es completamente bien. Si lo hace, eso es absolutamente bien también. Pero en el futuro, el problema conjuntos, que reciben mucho más difícil. Así que esto va a ser su amigo. Sin duda volveré a las horas de oficina. Planea ir a las horas de oficina. Al llegar al problema establecer cuatro, cinco, seis, siete, tienes que ir a las horas de oficina. Ahí es donde una gran cantidad de la ayuda y el trabajo se hace. 

Creo que el año pasado, sólo para ejemplo, el jueves noche-- así que creo que el problema conjuntos se debieron el viernes. Así que la noche del jueves, que tendría 200, 250 estudiantes en horario de oficina. Así que sin duda hacer uso de ellas. Estos son sus mejores amigos. Al igual que aquí es donde si eres pegado en un conjunto de problemas, aquí es donde es probable que reciba ayuda. Así que las horas de oficina. Aceptar así que esos son los anuncios. Los anuncios son de hacer, así que vamos a empezar. 

Aceptar, el aparato. ¿Acaso descargar todo el mundo sin embargo, el aparato? No. Al igual que en tan así. Yo como que descargué el aparato. Justo lo que el aparato es nuevo este año, por lo que estamos probablemente va a tener algunos errores en ella. Así que por favor descargarlo tan pronto como sea posible. Así que problema estableció uno va a decir exactamente cómo descargarlo. Cómo comenzar la instalación aquí. Se va a decir cómo para descargar el aparato. 

Así que definitivamente descargar el aparato más temprano que tarde. Las instrucciones están en la especificación P conjunto. Así que si usted espera hasta el miércoles noche, y entonces usted tiene problemas, y usted nos envía un correo electrónico a la medianoche del miércoles por la noche que no se puede descargar el aparato, que es no es una razón legítima para una extensión. ¡Tienes que hacerlo ahora, y usted tendrá problemas. Traté de descargar anoche. Me encontré con un poco de problemas. Si llegas a tener problemas instalar, definitivamente golpear reintento, porque me acaba de golpear a intentar un par de veces, y finalmente funcionó, que no hace ninguna sentido, pero lo hace. Así que definitivamente vuelva a intentar, pero si tropezado con un muro de ladrillo, dispararnos un correo electrónico a la cabeza, y vamos a ser más que feliz de ayudarle a los chicos. Qué pasa? 

ESTUDIANTE: Sólo una pregunta rápida. Si comprueban estilo, hay una parte que dice que no incluimos este. JASON HIRSCHHORN: Todavía no. ESTUDIANTE: Dice ejecutarlo. ¿Cómo se ejecuta para que asegúrese de que es en su sistema? 

JASON HIRSCHHORN: Eres va a ejecutar un comando bash. Voy a ir sobre eso más adelante. Enfriar. Así que el aparato puede ser una poco intimidante, porque estás acostumbrado a tipo de que se ejecuta en la interfaz gráfica de usuario. Así arañazos era un usuario gráfica interfaz, así que lo que quiero decir con eso? Lo que quiero decir es que cuando se está programando, básicamente estás usando bloques de código. Puede ver el código y cosas por el estilo. 

El aparato, vas a estar haciendo las cosas en un entorno de línea de comandos. Y así por el resto de sus vidas de programación, usted va a estar haciendo cosas en el entorno de línea de comandos. Así que es buena para saltar a principios de y conseguir un poco de experiencia. Así que vamos a hacerlo. Así que eso es Rob. 

OK, así que vamos a saltar en la línea de comandos cosas. Así que este es el aparato. ¿Alguien puede decirme por qué utilizamos un aparato? ¿Cuál es el aparato? ¿Alguien sabe? Qué pasa? 

ESTUDIANTE: Es sólo una máquina virtual que ejecuta su máquina para que puede conseguir sobre el sistema operativo desacuerdos entre Mac y PC. JASON HIRSCHHORN: Perfecto. ESTUDIANTE: Es una plantilla universal. JASON HIRSCHHORN: Sí, es como una plantilla universal. Eso es perfecto. Así que sí, es una máquina virtual. Así que es básicamente un sistema operativo. Este es un sistema operativo. Esto es equivalente a su Mac, PC o usted, o su Linux. Este es exactamente el mismo. Y para que pueda hacer cosas similares. Si quisieras, podrías ir en línea, por ejemplo. Realmente no se puede ver, pero aquí, Google Chrome. Usted puede ir en línea si quieres. Este es un sistema operativo. Y la razón por la que hacemos esto es porque es mucho más fácil cuando estamos repartiendo instrucciones y todo. Si es sólo un entorno uniforme, es mucho más fácil para nosotros, y es mucho más fácil para usted. Usted no va a correr en que se ejecute en cualquier idiosincrasia cuando se está programando. Sabemos exactamente lo que usted va a ejecutar en. Así que el aparato está aquí. 

Así que cuando usted está comenzando programación, eres va a ir hacia abajo para la esquina izquierda. Hay una pequeña caja. Vas a hacer clic en él. Esta es la ventana de terminal. Así que aquí es donde usted va a ser una gran parte del semestre. Así que permítanme el zoom un poco. 

Aceptar, por lo que recorrer un terminal ventana es un poco diferente. En primer lugar, no hay iconos. Yo no puedo hacer clic nada. No hay nada que haga clic. Así que hay que encontrar una manera de averiguar dónde se encuentra, lo que hay aquí, y cómo moverse. 

Así que los dos comandos más útiles, probablemente, está ls-- así que ¿qué crees que ls hace? 

ESTUDIANTE: Lista. JASON HIRSCHHORN: Listas, sí. Sólo se enumeran los algoritmos dentro del directorio. Y luego cd. Así que digamos que quería cd CS50, ¿qué hizo eso? ¿Sí? 

ESTUDIANTE: Cambia el directorio. JASON HIRSCHHORN: Perfecto, sí. Sólo cambia el directorio. Así que vamos a volver. Entonces, ¿cómo vuelvo? Así que digamos que yo quería ir copia al directorio anterior. Sí, claro. 

ESTUDIANTE: Creo que escribes cd solo sin nada. JASON HIRSCHHORN: Usted puede hacer eso. Así que perfecto. Así que si escribo cd, esto es realmente me va a estallar copias de seguridad en el directorio principal. Así que ya ves esta tilde, que me va a estallar camino de regreso hasta donde la tilde es. Así que me va a estallar para arriba copia al directorio principal. Pero digamos que hice algo como esto. Digamos CS50 cd. ls nuevo. Tengo otras cosas. CD de Super sección. archivos de CD, así que voy profundo. Y luego vamos a decir que quiero basta con meter de nuevo a la cima. cd. Digamos que yo no quiero hacer eso. Digamos que yo sólo quiero hacer estallar de nuevo hasta el directorio que estaba justo encima de mí. ¿Cómo puedo hacer eso? Así que digamos que CS50 cd. supersección cd. Así que vamos que estoy aquí. Digamos que yo sólo quiero para que aparezca una sola vez. ¿Cómo puedo hacer eso? Sí, ¿qué pasa? 

ESTUDIANTE: Usted acaba de escribir cd supersección de nuevo. 

JASON HIRSCHHORN: Usted podría hacer eso. Bueno, yo estoy en supersección. 

ESTUDIANTE: Oh, el anterior. 

JASON HIRSCHHORN: Sí, por lo que podría hacer eso. Usted hace cd ~ CS50. Así que si usted mira aquí, esta es el camino correcto aquí. Ese es tu camino. Por lo que podría en serio sólo tiene que ir cd ~ / CS50. Boom, que estás ahí. ¿Cuál es una manera más fácil de hacerlo sin embargo? Eso era perfectamente correcta, pero lo que es una manera un poco más fácil para hacerlo, debido a que una gran cantidad de veces que vas estar saltando en directorios, saltar de directorios. Así que vamos a volver. supersección cd. Así que digamos que quiero volver muy rápido. Usted puede hacer algo como punto punto cd. Eso va a estallar realizar copias de seguridad muy rápido. Así supersección cd. archivos de CD. Digamos que estoy aquí. Por cierto, claro es bueno, porque mi ventana estaba un poco desordenado. Así ls, por lo que no quieren estar más aquí. cd punto punto. Llévame uno. Cd punto punto me lleva uno. Cd punto punto y volver a mi casa. 

OK, así cd, ls. Probablemente el más importante cosas, porque eres va a tener que saber dónde estás. ls va a decirte donde se encuentre, y cd es cómo vas a saltar alrededor. 

También puede hacer algunas otras cosas interesantes. Así por ejemplo, ls. ls es sólo va a mostrar los directorios en el archivo. También te va a mostrar los archivos. Pero sólo va a mostrar lo que está ahí. 

Si querías algo un poco más fresco, y usted va a hacer realidad esto en un par de semanas. ls tablero l. Que imprime un poco más de información. ¿Alguien puede adivinar en la mano izquierda lado la drwx, rwx y cosas por el estilo. ¿Alguien tiene una idea lo que esto significa? 

ESTUDIANTE: Permisos. 

JASON HIRSCHHORN: Sí, perfecto. Permisos. Así que vas a tener que lidiar con esto cuando lo hace la programación web más adelante. Si alguna vez has ido en línea, y usted ha hecho clic en una imagen o se hace clic en un campo, y dijo permission-- como el permiso no está permitido, o como el permiso no se concede o lo que sea, eso es porque cuando que están programando, que no han fijado estos permisos a dejar que hagas eso. Entonces, ¿dónde que viene. 

OK, así que está bien. Así que saltamos alrededor. Podemos mirar las cosas en nuestro directorio. Pero, ¿cómo hacemos para que los demás usuarios? Tengo directorios aquí. Eso es impresionante. ¿Cómo puedo hacer un nuevo directorio? Digamos que quiero hacer una nueva Directorio por ahora. Usted puede hacer algo como esto, mkdir. Así que directorio. Entonces, ¿qué es lo que quieres llamar a este directorio? ESTUDIANTE: Awesome. JASON HIRSCHHORN: Awesome. Me encanta. Haga directorio impresionante. Y ahí lo tienes. Así que tenemos una lista. Usted tiene un nuevo directorio. Y se puede decir que es un directorio en su aparato porque tiene este color, ¿no? Así que es como un azulado púrpura o lo que sea. Así que vamos a cambiar. Vamos a cambiar de directorio. Vamos a entrar en directory-- sí, ¿qué pasa? ESTUDIANTE: ¿Hay una lista de todo esto [inaudible] en línea? JASON HIRSCHHORN: Sí, voy a poner ellos hasta en-- tendremos diapositivas. Será un PDF. Vamos a poner para arriba para todo el mundo. Sí, lo siento que es una gran cantidad de comandos. si quieres que reducir la velocidad, o volver, ni nada de eso, sin duda, hágamelo saber. Es mucho para absorber de inmediato. Qué pasa? ESTUDIANTE: ¿Puedo pedir un potencialmente estúpida pregunta? JASON HIRSCHHORN: No no hay preguntas tontas. ESTUDIANTE: Hay. Un directorio es de sólo mirar en donde la información de guardarlo. 

JASON HIRSCHHORN: Sí. 

ESTUDIANTE: ¿Es que, básicamente, lo que estás haciendo? Así que cuando hacemos algo, hola mundo o lo que sea, se almacena en el directorio, sí? 

JASON HIRSCHHORN: Sí. 

ESTUDIANTE: ¿Es eso cierto para todo. Todo se almacena en el directorio. 

JASON HIRSCHHORN: Sí. Cada vez que usted lo hace, cualquiera que sea el directorio que se encuentre, que va a, básicamente, guárdelo en ese directorio. ESTUDIANTE: ¿Y cuando nos estamos llamando, estamos llamando desde el directorio. 

JASON HIRSCHHORN: Sí, así que el directorio es donde it es. Así que es algo así como si tiene una nueva carpeta en el escritorio y luego se escribe un texto archivo, ponerlo en esa carpeta, ese archivo se encuentra en esa carpeta. ¿Eso tiene sentido? 

ESTUDIANTE: Sí. 

JASON HIRSCHHORN: Sí, ¿qué pasa? 

ESTUDIANTE: ¿Puedo pedir a que sea un poco más grande? 

JASON HIRSCHHORN: Oh, sí. Lo siento. El proyector es tan malo. Tuvimos muchos problemas con esto antes. ¿Es eso mejor? ¿Eso es demasiado grande? 

ESTUDIANTE: No, no, no lo es. 

JASON HIRSCHHORN: No, no lo es. ¿Es demasiado pequeño? Qué pasa? 

ESTUDIANTE: Lo siento, lo que es el comando para limpiar? 

JASON HIRSCHHORN: Oh, claro. Si desea borrar, simplemente escribir claro. claro ingresar. En el último aparato, lo que básicamente hace, no borra su información, que sólo un poco de cambiar todo abajo una pantalla. Así que si usted ha escrito para clear-- ejemplo digamos que estoy desplazándose hacia arriba. Puedo desplazarse hacia arriba. Esto es todo lo que hice. Pero si escribo claro, y luego Me desplazo hacia arriba, aquí están mis cosas. Así que no es de borrarlos, es sólo básicamente le da un nuevo marco. 

ESTUDIANTE: ¿Cómo hacer que [Inaudible] un directorio? 

JASON HIRSCHHORN: Vamos a llegar allí. 

[Risas] Reduzca su rollo. Bien. OK, así que por lo que estamos en una directorio en este momento. Así que David, creo que en la conferencia que hizo algunas cosas interesantes. Así que vamos a escribir un programa. Así que usted puede hacer que un número de maneras diferentes. Se puede utilizar cualquier tipo de editor de texto. Puede utilizar nano, puede usar Vim, Emacs. Esos son un poco más complicado. O bien, puede usar algo en aquí eso se llama gedit. Lo siento. gedit no es feliz. Así gedit es básicamente sólo un editor de texto. Al igual que el texto de edición palabra que procesador o algo por el estilo. Así que tiene una bonita interfaz al igual que este. Así que se hace algo así. Así que en realidad te voy a dar lo nombre porque nunca lo hice. 

Entonces, ¿qué es lo que quieres nombrar a nuestro primer programa? Es sólo va a decir hola. 

ESTUDIANTE: [inaudible]. 

JASON HIRSCHHORN: te falta imaginación. Aceptar, gedit. Hola. Yo voy a hacer .txt. OK, así que aquí está. Así que vamos a escribir un programa. Así que creo que lo vio en la conferencia. Se necesita una función principal. Boop. Así que esto es sólo una función principal. Más grande? Sí, lo siento. Aceptar por lo que necesita una función principal. Creo que me estoy saltando la pistola un poco, pero nunca es malo para conseguir utilizado para este tipo de cosas. 

Así que una función principal, cada programa de C eres va a escribir para el resto de este curso tendrá una función principal. ¿Alguien sabe por qué? Qué pasa? 

ESTUDIANTE: Iniciar. 

JASON HIRSCHHORN: Exactamente, por lo que le dice a su programa de por dónde empezar. Así que si usted no tiene una función principal, y compila este y materia, que no va a saber fuera a comenzar. Principal siempre es donde comienza. Por lo que tiene una función principal y, a continuación, ¿Alguien recuerda cómo imprimir? 

ESTUDIANTE: printf. JASON HIRSCHHORN: Sí, printf. printf hola. Bien, ahora yo he puesto ustedes hasta a fallar, pero esta compilación. 

ESTUDIANTE: No. 

JASON HIRSCHHORN: ¿Por qué? Hay varias razones por qué. Claro. 

ESTUDIANTE: No tiene el estándar [inaudible]. 

JASON HIRSCHHORN: Perfecto. Entonces, ¿qué es esta llamada hasta aquí? 

ESTUDIANTE: [inaudible] 

JASON HIRSCHHORN: Es un archivo de cabecera, ¿no? Es un archivo de cabecera. Y estás en lo cierto. Ambos tienen razón. Así que para incluir eso, yo sólo hago libras incluir .h salida de la entrada estándar. ¿Estoy bien para ir ahora? ¿Sería compilar esto? 

ESTUDIANTE: No. JASON HIRSCHHORN: ¿Por qué no? ESTUDIANTE: Es un texto [inaudible]. JASON HIRSCHHORN: Sí, impresionante. Así que me hice. Así que me guardé, pero hi.txt gedit. Así que ahora si lo hago ls, aquí está. Justo aquí. Oh, no lo es en impresionante. Debo haber salido. Ah, perfecto. ¿Cómo podemos poner esto en impresionante? Así que yo no lo quiero aquí en mi casa directorio con todo lo demás. Quiero ponerlo en la carpeta. ¿Cómo puedo hacer eso? 

No es demasiado difícil. Mover. Así que ya hemos aprendido ls lista. cd para cambiar directorios. cd punto punto a golpe de directorios. Y ahora vamos a comenzará a moverse en torno a los archivos. Así que para mover sólo mover hi.txt, y Voy a ponerlo en impresionante. 

Sólo tenga cuidado. Cada vez que usted está escribiendo en el línea de comandos, todo importa. Así asuntos mayúsculas. Si hubiera hecho una minúscula, es no va a saber lo que está pasando. Así que todo importa que ser muy específico. 

Así que ejecute ls. Es ya no está aquí. Vamos a cambiar el directorio en impresionante. ls. Boom, que está ahí. Y alguien mencionó por qué esto no sería compilar. ¿Por qué no va a compilar de nuevo? ¿Sí? 

ESTUDIANTE: No está en un .c. 

JASON HIRSCHHORN: Perfecto. No es un .c, s así que ¿cómo soy yo va a cambiar el nombre a un .c? ¿Cuál es una manera fácil de hacerlo? Vamos a usar el comando que acabamos de hacer. Así que sólo vamos a mover hi.txt a hi.c. ls hi.c. Y a continuación, sólo por diversión, vamos a simplemente saltar en este real rápido. hi.c. Se dará cuenta de que es agradable y colorido. Así que estos son sólo un poco útil colores cuando se está programando. Así que la int y el vacío, esos son los tipos de datos. Vamos a repasar los de un segundo. Hi es una cadena. Pero los colores útiles. Así que si alguna vez accidentalmente elegir la extensión equivocada, usted debe tener estos colores. Qué pasa? 

ESTUDIANTE: ¿Cómo puedo copiar en un presentar [inaudible] en otro archivo? JASON HIRSCHHORN: Oh, estoy voy a mostrar que también. Entonces copia eliminar se encuentran en el muelle. Vamos a hacer esto. Asegúrese de que funciona. Hacer hola. Obras, ejecutarlo. Así ./hi impresionante. Ese es su primer programa. Quiero dejar bien más grande. Así que un muy good-- Sí, ¿qué pasa? ESTUDIANTE: ¿Por qué sería que cuando tomo gedit, que no me da otra línea para hi.txt gedit? Simplemente coloca el cursor en una línea. ESTUDIANTE: Sí. El [inaudible]. 

JASON HIRSCHHORN: Espere, así que decir que otra vez. 

ESTUDIANTE: Cuando escribo gedit, la primera vez, la primera line-- JASON HIRSCHHORN: Hasta hay en la parte superior? ESTUDIANTE: No tiene J Harvard aparato, y el cursor es sólo todo el camino a la izquierda. JASON HIRSCHHORN: Todos el camino a la izquierda? ESTUDIANTE: Sí. ¿Alguien más tiene que? 

JASON HIRSCHHORN: Oh, bueno J Harvard es igual que el nombre de usuario. Así que eso es sólo el nombre de usuario estándar. 

ESTUDIANTE: Se deja de responder. JASON HIRSCHHORN: ¡Oh, que deja de responder. OK, así que lo que tienes que hacer es usted tiene que cerrar de gedit. Tan cerca de gedit, y debe regresar. Así es gedit abierto en su aparato en este momento? Si sale fuera de él, lo que debería regresa y usted debe ser bueno para ir. Hizo que el trabajo? 

ESTUDIANTE: ¿Así que usaste el comando gedit a open-- JASON HIRSCHHORN: No, la primera comando gedit fue un error. El primer comando gedit, Yo que ver hi.txt gedit. Así que le doy un nombre, por lo que hi.txt gedit. hi.txt es el nombre del archivo. La primera fue justo un error, y luego Cerré rápidamente fuera del programa. Así que la pregunta era si lo hago gedit, no estoy va a ser capaz de realmente hacer cualquier otra cosa en mi línea de comandos hasta que cierro que gedit, así que creo que eso es lo que se toparon. Así que cierra el gedit. Se va a volver de ese programa, y ​​entonces usted ser capaz de escribir en realidad en la línea de comandos de nuevo. ¿Eso es bueno? Dope. Así que asegúrese de cerrar que si llegas a tener problemas. 

Aceptar, por lo que una muy buena pregunta un segundo atrás estaba copiando. Así que ahora he hi.c. Pero digamos que quiero cambiarlo. Yo quiero que sea un poco mejor. Quiero decir hola clase. Pero quiero mantener esta plantilla. Yo no tengo que volver a escribir todo el programa de nuevo. Quiero mantener la plantilla. ¿Cómo puedo copiar? 

Fácil. Así newhi.c hi.c cp. Ahora tengo dos. Y entonces puedo abrir newhi.c, y en vez de decir hola, Voy a decir hola clase! Así que me voy a volver. Salga a cabo. Volver a mi línea de comandos. ls hacen newhi. Ejecutarlo. Ya está. Es mejor, mucho mejor. Así que si usted desea copiar algo, fácil como eso. cp es copia. 

Así que hemos pasado más de movimiento, haciendo directorios, copia. Vamos a ver qué más debo ir? Oh, sí. Vamos a repasar esto. Así que esto era impresionante. Digamos que yo quería a-- oh espera. Voy a ir de nuevo en impresionante. 

Digamos que yo no quiero estos archivos aquí. Digamos que yo los quiero en una nueva como directorio en el directorio impresionante. Quiero empezar a organizar, así que ahora me voy tener un nuevo directorio llamado hi. Tiene todos los programas Escribo llamé hola. Entonces, ¿cómo hacemos eso? 

ESTUDIANTE: Cambiar directorio. 

JASON HIRSCHHORN: Sí. Hola. Boop. mkdir hi_dir. Se quejó porque ya tenía una alta aquí. Así que ahora tengo un directorio hi. Así que ahora quiero pasar todo, todos los programas que escribí, Quiero moverlos en el directorio hi. Simplemente limpio cosas. ¿Cómo puedo hacer eso? 

ESTUDIANTE: [inaudible]. 

JASON HIRSCHHORN: Mudanza, ¿verdad? Así que vamos a pasar. ¿Sí? 

ESTUDIANTE: ¿Cuál es la diferencia entre hola y hi.c que ya tenemos. JASON HIRSCHHORN: ¡Oh, hi.c es la real. Así que ese es el archivo que usted escribió. Así que si usted iba a abrirlo en gedit o Nano, eso es lo que estás escribiendo. Al compilar, entonces se obtiene un archivo ejecutable. Eso es alta. Así que si usted abrió hola, eso va a ser un montón de galimatías para usted. Se trata básicamente va a ser manojo de instrucciones de computadora. Qué pasa? 

ESTUDIANTE: ¿Qué significan los colores? El azul es probablemente directorio. ¿Qué es amarillo? 

JASON HIRSCHHORN: Los son los archivos ejecutables. Así que cuando me hice hi.c, que di me-- así que puedo hacerlo. Saltando la pistola. Así quitar hi sí. Así que vamos a hacer ls. No tengo hi más. Así que cuando usted hace, que es cuando se tomar el programa que escribiste y haces un archivo ejecutable. Así que hi.c-- bien, hacer hi. Creo que él se acercó en esta conferencia. 

Estos son manojo de instrucciones de compilación. Así que en lugar de tener que en realidad escribir clang con todo esto. Estos son banderas. Usted acaba de escribir hacer. Así que esto hace que los archivos ejecutables. Así que cuando usted hace ls, ahora tienes hi. Así que esto es lo que está va a funcionar realmente. Y por lo que se ejecuta al hacer ./hi, y se ejecuta el programa. Pero si trato de hacer eso con hi.c, no, no va a funcionar. Sí, ¿tiene sentido? 

ESTUDIANTE: Mm-hm. 

JASON HIRSCHHORN: Cool. Espera, yo quería decir algo más. Sólo muy rápido, en caso a alguien le interesa, cuando usted salta de un directorio, que es el punto punto. ¿Alguien tiene una idea de lo tal vez sólo el medio de puntos singulares? ESTUDIANTE: [inaudible]. JASON HIRSCHHORN: Es en realidad el directorio actual. Así que es el directorio actual. Así que estoy aquí. Estoy en impresionante. Si lo hago punto de cd, que no hace nada. Me lleva a mi directorio actual. Así que un poco redundante, pero usted tiene para hacer eso, por lo ./ su nombre del programa, con el fin de ejecutar su programa, usted tiene que hacer eso. Okay. 

ESTUDIANTE: Si usted hace punto cd punto punto, sin embargo muchos puntos será sólo llevará hasta que muchos directorios? 

JASON HIRSCHHORN: ¿Te refieres como cd punto punto punto punto? ESTUDIANTE: Sí. JASON HIRSCHHORN: No. Así que en realidad Remember me ls -l? Si hago algo más, puedo ls -a. Así que lo que esto dice es -a te muestra todo. Así que te muestra las cosas que son oculto y las cosas que no se ocultan. Así que si usted nota que cuando lo hice sólo ls, acabo de ver esas cosas, las cosas que hizo. Si lo hago -a, que va para mostrarme todo. Y por lo que el directorio actual, directorio por encima de ella. ¿Eso tiene sentido? ¿Sí? 

ESTUDIANTE: Pero esas no son en realidad en el directorio. El directorio actual no es en sí mismo, ¿por qué mostrar aquellos con puntos dentro? 

JASON HIRSCHHORN: ¿Quieres decir que es como no está en el directorio. 

ESTUDIANTE: Derecho. Así que tenemos una lista de las cosas que están en el directorio. 

JASON HIRSCHHORN: Creo que está en el directorio. Al igual que -a muestra todo, incluso si está escondido dentro del directorio. Así que creo que es sólo una ruta para el directorio actual si eso tiene sentido. Es un poco recursivo. Es como Origen. Qué pasa? 

ESTUDIANTE: ¿Así que usted ha dicho espectáculos -a [inaudible]? JASON HIRSCHHORN: -a, sí. 

ESTUDIANTE: ¿Qué hace que [inaudible]? JASON HIRSCHHORN: Bueno, por ejemplo, vamos a volver a la cima. Por lo general cosas que no debe meterse con y usted no tiene que preocuparse. Así que esto es una especie de la casa. Si lo hago -a, tengo un montón de cosas. Todas esas cosas. Y usted no tiene que meterse con cualquiera de esas cosas. Ni se te ocurra empezar a ir aquí y acaba de quitar cosas. 

[Risas] 

Sí, este era un poco más cosas cómodas, pero es bueno saber. Creo que es bueno saber. Pero si usted nunca desea escribir -a en la totalidad de este curso, olvídalo. Qué pasa? 

ESTUDIANTE: ¿Cuál es el ls -l? JASON HIRSCHHORN: Eso te muestra los permisos. Básicamente utiliza que para los permisos, por lo -l. Se muestra un poco poco más de información, pero de nuevo, esto es un poco bit cosas más cómodas. Estos son sólo los permisos. Así que los permisos de las carpetas. Así que por ejemplo, digamos que hice una carpeta, por lo que la d representa el directorio. Así que estos son los directorios. Y a continuación, leer, escribir, ejecutar. Así que estos son los permisos para Creo usuario, grupo, mundo. Totalmente ir demasiado lejos. Vas a ir en este como semanas a partir de ahora, pero para que lo sepas, esos son los permisos. Qué pasa? ESTUDIANTE: se puede resolver en lugar de acaba de saltar a la siguiente cosa, puede usted-- JASON HIRSCHHORN: Usted significa realmente eliminar? No lo sé. Yo nunca hago eso. ¿Por qué quieres hacer eso? ¿Por qué harías eso? Me gusta. Usted vive en el borde. Eres como yo no quiero nada de esto. Eso es intensa. ESTUDIANTE: [inaudible]. JASON HIRSCHHORN: Sí, podemos hacer eso. Lo sentimos, jugar con el tamaño es totalmente me volviendo loco ahora mismo. Vamos a ir para arriba. Sí, así que ahora no puedo subir más. Así que todo lo que me enseñaron que se ha ido para siempre. Gracias. Hicimos nuestros directorios. Hicimos nuestros archivos y cosas por el estilo que, por lo que todavía tienen todas esas cosas. OK, voy a ir rápido. 

Así que muy rápido. Así que digamos que estoy en impresionante. Digamos que quería mover todo para el nuevo directorio porque yo sólo quiero organizar, ¿verdad? Entonces, ¿cómo iba a hacer eso. Mover. Vamos a usar movimiento otra vez. Así que mover hi.c. Y lo que puede hacer es de empezar a enumerar las cosas, y la última cosa que la lista es por dónde se va a mover. Así que mover hi.c, hi newhi newhi.c, hi_dir. Y por lo que se trasladó todo en la última cosa que usted menciona. Así que a continuación, cambiar de directorio, hi_dir ls. Todo está ahí. Así que es agradable y más organizado. 

Bien, digamos que me gusta hola mi programa inicial. Quiero deshacerme de ella. ¿Cómo me deshago de ella? Qué pasa? 

ESTUDIANTE: [inaudible]. JASON HIRSCHHORN: Digamos que yo sólo querer quitar el programa, por lo que sólo hola. No, tienes razón. Así que es rm, pero lo hace rm hola. Se va a dar una pequeña advertencia. Se va a decir ¿estás seguro de que quiero borrar esto, y sí lo hago. Si usted no desea se le pregunte como que porque usted no tiene tiempo para advertencias, retire -f. Esta es otra bandera. Es como el -l. Es como la -a. Estos son sólo indicadores que usted está dando a estos comandos. Así quitar -f. f -f significa fuerza. Así que fuerce. No quiero que se le pregunte. Así quitar -f. Vamos a hacer hi.c. Sólo se deshizo de ella. No me lo dijo. 

Pero digamos que en lugar de eso estoy hecho con este directorio. Quiero deshacerme de directorio. Así que me quito hi_dir. No, eso no funciona. No, por lo que no va a dejar me quito un directorio. ¿Alguien tiene una idea? 

ESTUDIANTE: ¿Es quitar dir? JASON HIRSCHHORN: Así que eliminar de esta manera? 

ESTUDIANTE: No. Sólo el [inaudible]. JASON HIRSCHHORN: No, en este momento no hay hi. Sólo hay hi_dir. Así que este es el directorio. Así que en realidad lo que quiere hacer es-- oh, ¿tienes una idea? Veo como un medio lado. 

ESTUDIANTE: [inaudible]. JASON HIRSCHHORN: OK. 

ESTUDIANTE: [inaudible]. 

JASON HIRSCHHORN: OK. Así que si quiero quitar un directorio, quitar -r. Eso es recursivo. Así que quitar ese directorio recursivo. Así que quiero que te vayas a ese directorio, eliminar todo en el directorio, y luego deshacerse de la guía. Y luego voy a f así, porque yo no quiero que me pregunte con advertencias después de que se elimina cada archivo. Así quitar hi_dir -rf. Boom, que se ha ido. Sólo tenga cuidado de donde se utiliza que. Voy a usarlo aquí también. -rf impresionante. Se ha ido. Tenga cuidado en el que utiliza que. Si utiliza que aquí y escribir algo de esta manera, no se te ocurra hacer eso. Eso va a borrar todo en su aparato sin avisarle. Y lo he hecho. Problema de clasificación establece a las 4:00 AM, estaba tratando de eliminar los directorios establecidos de problemas, y yo hice esto. Y yo estaba como, oh mi dios. No hacer-- intenté cancelarla. Puedes cancelar. Comando C sólo cancela todo, pero ya he eliminado como el 75%. Así que me arruiné. Y la gente hace eso. Todo el mundo lo hace. No hacer esto, sin embargo este semestre. Es una mierda. Estoy nervioso tener aquí. Voy a eliminarlo. 

[Risas] ¿Te imaginas? Aceptar, preguntas. ¿Sí? 

ESTUDIANTE: Así que si hacemos todo que estás haciendo aquí, es esto lo mismo como se acaba de entrar en realidad Guardar archivo como [inaudible]. JASON HIRSCHHORN: ¡Oh, te refieres a través de gedit. ESTUDIANTE: Sí. JASON HIRSCHHORN: Sí lo es. gedit es útil. Así gedit es muy útil. En esta clase, se puede hacer una muchas cosas a través de gedit. Puede guardar. Usted puede cambiar el nombre. Puede mover archivos y cosas por el estilo, pero sólo con la verdad cuando vas a 50-- así usted está en 50-- 51, si vas en 61, esto va a ser su vida. Esta es la línea de comandos. Aquí es donde usted va a programar para el resto de su vida, así que sin duda utilizar gedit si quieres. Sin duda una buena manera de empezar. Para el primer problema se pone, definitivamente utilizar, pero de vez en cuando tratar de conseguir más acostumbrado más cómodo con argumentos de línea de comandos. Pero se puede, sin duda. Qué pasa? 

ESTUDIANTE: Así que cuando queremos eliminar uno de los archivos que hemos hecho, hay dos maneras. [Inaudible]. ¿Hay alguna manera cuando estás la eliminación de un directorio para pedir pronta para que no terminan de borrarlos? JASON HIRSCHHORN: rm -r. Así que no lo fuerce. Así rm -r. Se va a ir a través de forma recursiva, borrar todo, le pedirá después de todo, lo que te volverá loco. Al igual que yo hago casi exclusivamente rm -rf rm -f y, justo constantemente. Yo soy como yo no tengo tiempo. Soy un hombre muy ocupado. Muy bien, ¿qué pasa? Sí. 

ESTUDIANTE: ¿Hay un deshacer, o un cubo de la basura, ni nada de eso? JASON HIRSCHHORN: No. [Risas] Pudiera volver atrás y obtener mi aparato que acaba de eliminar, no. No, no, no. Si lo hace rm, que debe desaparecer. Qué pasa? 

ESTUDIANTE: ¿Así que usted puede [Inaudible] juntos. JASON HIRSCHHORN: Sí, así como así. Así, por ejemplo, que viste la rm -rf. Digamos que quiero hacer -la ls, que me muestra todo, incluso oculto cosas con sus permisos. 

ESTUDIANTE: ¿Así que entonces R, la -r bandera, si no tenemos que, no podemos eliminar un directorio, ¿no? 

JASON HIRSCHHORN: Derecho. 

ESTUDIANTE: ¿Así que dice que queremos hacer algo con el directorio? ¿Es eso lo que quiere decir? 

JASON HIRSCHHORN: -r significa de forma recursiva. Así que un directorio se va a tener archivos en ella, ¿verdad? Entonces, ¿qué quieres hacer usted es quiero entrar en ese directorio, borrar todo, todo el archivos en ese directorio, a continuación, salir y borrar el directorio actual. Así que la -r significa recursivo, hacerlo todo de forma recursiva si eso tiene sentido. Sí. 

ESTUDIANTE: ¿Así que los directorios tienen [Inaudible] y simplemente eliminarlo. ¿O still-- 

JASON HIRSCHHORN: Vamos a intentar. Así mkdir vacía. Retire vacía. No. 

ESTUDIANTE: No, por lo que aún necesita el-- 

JASON HIRSCHHORN: Sí, siempre. Así -r, rf, vacío. Impresionante. Más preguntas? Creo que es su accidente curso sobre cosas de línea de comandos. Cualquier pregunta, porque vamos a saltar por encima de los tipos de datos, y los bucles, y todas esas cosas? Qué pasa? 

ESTUDIANTE: No tengo CS50 mostrando como uno de mis directorios. ¿Eso es normal? 

JASON HIRSCHHORN: Oh, sí. Eso es mío. Sí, eso es donde mi soluciones a tus cosas es. 

[Risas] 

Así que sí, eso es absolutamente normal. Creo que probablemente sólo tiene estos cuatro. Creo que podría ser normal. Sí. Aceptar, alguna pregunta más? Sé que fue super rápido. Qué pasa? 

ESTUDIANTE: Yo vi el color verde azul. Qué es eso? 

JASON HIRSCHHORN: Eso significa directorio. ESTUDIANTE: ¿Y este azul? 

JASON HIRSCHHORN: ¡Oh, te refieres a este verde azul? 

ESTUDIANTE: No. 

JASON HIRSCHHORN: Esta verde azul? 

ESTUDIANTE: No. Cuando listed-- JASON HIRSCHHORN: Oh. Como este? 

ESTUDIANTE: Sí, los iconos. 

JASON HIRSCHHORN: Oh, esto. No lo sé. Qué significa eso? Por lo tanto, parece ser apuntando a un directorio. 

ESTUDIANTE: Casi parece un alias. 

JASON HIRSCHHORN: Podría ser. Usted no necesita saber eso. Más preguntas? Impresionante. Si usted tiene alguna pregunta, Sé que era mucho. Mucha de esta información estará en línea. Lo pondré en línea para ustedes. Sección B estará en línea también. O si usted tiene preguntas, acaba de llegar y me pregunta. Aquí tienes. Así que ahora Sharon y Hannah repasará algunos de la lógica de conjunto de problemas uno. 

SHARON: ¡Oh mi dios. Trastornos. 

HANNAH: Mientras tanto, yo soy Hanna. Esta es Sharon. Los dos estamos CS50 TFS, y vamos a darle una pequeña introducción en un par importante cosas para establecer un problema. Todo, desde los tipos de datos a los condicionales a los bucles. Bucles en general. 

SHARON: Y al final, nos se echa un vistazo a P establece una, y lo que tienes que saber para que. Así que vamos a empezar con los tipos de datos. Ustedes deberían estar familiarizados con la los que se destacan en azul. Así que podemos comenzar con enteros. enteros son números enteros, por lo que uno, dos, tres, cuatro. flotadores, flotando puntos. Al igual que los números enteros con decimales, así que 5,2 o incluso 5,0. Chars son personajes como A, B, C. Y una cadena, todos ustedes saben. Como CS50 o hola y el mundo. 

Bool es un booleano, por lo que tenemos verdadero y lo falso como nuestro Boole. Así que si algo calcula a verdad- 5 es igual a 5, que calcula en true, y si tenemos 5 es igual a 4, eso es falsa, por lo que calcula en false. Y aquí tenemos el asociado tamaño de todos estos tipos de datos. Y usted tendrá que saber esto para sus pruebas, por lo que este podría ser útil recordamos, pero vamos a publicar estos. En realidad ya están publicados. Así que usted debe estar familiarizado con los resaltados en azul. 

JASON HIRSCHHORN: real rápida, en caso de que querer saber la diferencia entre un char y una cadena. Así que cuando usted está escribiendo cosas, cada vez que tenga algo así como "hola" que va a ser una cadena. Así que si hay dos cotizaciones, que es una cadena. Pero si yo fuera a una "h" así, eso es una cadena. Pero si sólo tengo una cita, eso es un char. Y ¿cuál es el diferencia que usted puede ser que pida. Bueno, la diferencia es este es un byte de memoria. Esto es 4 bytes de memoria. 

SHARON: flotar? Describir de nuevo? Bueno, es algo así como un número que tiene un punto decimal con ella, así que 5,2 o incluso 5,0 es un flotador frente a sólo 5 es un int. ESTUDIANTE: [inaudible]. 

SHARON: ¡Oh, que puede tener muchos puntos decimales, por lo 5,675-3,1415. ¿Sí? 

ESTUDIANTE: ¿Necesitamos saber todos los tamaños para esto? SHARON: Sí. ESTUDIANTE: [inaudible]. 

SHARON: Usted no se preocupe por los blancos por el momento. 

HANNAH: Las notas son publicado en CS50.net/sections. ESTUDIANTE: Sólo por curiosidad, ¿hay una utilidad para conocer el tamaño de los archivos que usted está llamar por lo que debemos saberlo? 

SHARON: Así que estos son los tipos de datos, pero sí. Así que en este caso, ¿cuál sería ocupan más memoria o más espacio? 

JASON HIRSCHHORN: Así para un ejemplo concreto, Creo que en conjunto problema cuatro o cinco, estamos te va a dar un montón de los datos, y que, básicamente, que atravesar esos datos. Así que es útil saber que si tiene tantos números enteros, eso va a ser lo. Así que digamos que te di diez enteros, ¿cuál es el tamaño de ese? ESTUDIANTE: 40. JASON HIRSCHHORN: 40 bytes, a la derecha. Así que usted puede ser que necesite para saber que Bien, tengo que saltar 40 bytes. Así que digamos que en cambio es de 40 caracteres, entonces-- digamos que te di 10 caracteres, entonces usted sabe, está bien, yo sólo que tenga que saltar 10 bytes. Así que es muy útil para conocer la tamaño de los tipos de datos reales, Porque muchas veces podrás estar saltando alrededor de los datos, por lo que necesita saber qué tan lejos para saltar. 

ESTUDIANTE: ¿Cuál es la diferencia entre las cotizaciones y una cita? 

JASON HIRSCHHORN: OK, dos citas es una cadena. Una cita es un char. 

ESTUDIANTE: Como operacionalmente, ¿cuál es la diferencia? Ambos dicen hola. JASON HIRSCHHORN: Oh, lo siento. Esto es sólo h. Lo sentimos, esto no está claro. 

ESTUDIANTE: ¿Así que la parte superior uno-- JASON HIRSCHHORN: Este es una cadena, sí. Así que se trata de dos personajes, ¿no? String, hola. Pero digamos que acabo tenido un solo carácter, si pongo dos comillas sólo h, que es una cadena. Esta es una cadena h. ¿Eso tiene sentido? Así que este es de cuatro bytes. Pero digamos que me deshice de que un sólo poner uno. Una cotización. Esto es ahora un char, un char h. Así exactamente lo mismo, diferente tipo de datos. Esta es sólo una de bytes, mientras la cadena era de cuatro bytes. Sí. ESTUDIANTE: Así que si usted intentaba para almacenar una palabra como David, que se quiere utilizar una cadena porque independientemente de la duración de la cadena es, sólo tendrá cuatro bytes a menos que sea un largo tiempo o una de matrimonio, en el que caso-- por lo que si se extiende más allá de los cuatro personajes, a continuación, desea hacerlo en cadena. ¿Es esa la lógica general detrás. JASON HIRSCHHORN: Si se extiende más allá de un carácter, que es una cadena. 

ESTUDIANTE: Así que no hay [inaudible] para almacenar una de cuatro letras palabra como cuatro individuo o tres letras palabra como tres caracteres individuales porque eso sólo habrá tres bytes, en oposición a la cadena de tres partes. JASON HIRSCHHORN: Usted podría hacer eso. Usted podría hacer eso, pero no lo hago creo que eso es realmente vale la pena, porque sólo se está ahorrando un byte. ¿Sabes lo que estoy diciendo? En el gran esquema de las cosas, eso no importa realmente. Pero por ejemplo, printf, si imprime f y usted tener tres caracteres que se pueden imprimir que fuera-- digamos que C-A-T, usted puede imprimir gato sólo por haciendo una Char Char uno uno char, o se puede imprimir cadena gato. Es exactamente lo mismo. Por lo que podría hacerlo de esa manera, pero- 

ESTUDIANTE: No va para ahorrarle mucho. 

JASON HIRSCHHORN: Sí. El dolor de cabeza que sería inducir no vale la pena. ¿Sí? 

ESTUDIANTE: Por ejemplo, tuviste la h con una frente a dos, las comillas simples o dobles. ¿Por qué quieres ahorrar una sola letra, como una cadena. ¿Qué propósito tiene que siempre sirven? JASON HIRSCHHORN: No sé. Quiero decir, lo que realmente depende del programa. Por ejemplo, creo que más adelante te metes en cosas de línea de comandos. Así, por ejemplo, en vez de mí usted pidiendo una lástima integer--, puedo hablar por usted? HANNAH: Sí. 

JASON HIRSCHHORN: Así Por ejemplo, en vez de pedirme algo con final get, que Creo que podría haber visto una conferencia, podría haber una línea de comandos. Basta con escribir en la línea de comandos. Sería como - / hello4 o algo, o helloh h, lo que sea. Usted lo hace en la línea de comandos en lugar de ser preguntado por ello, que la línea de comandos es siempre una cadena, si se trata de un cuatro o un h, que siempre es una cadena. Así que eso es un ejemplo de cuando te pueden tener una carta singular o un singular número representa como una cadena. SHARON: De acuerdo. Y entonces aquí hay algunos operadores básicos. Esperemos que usted está familiarizado con la primera cuatro acabamos en general. Así que hay sumar, restar, multiplicar y dividir, y asegúrese de usar las pulsaciones de teclas correctas. 

Y luego también Ha modulo, que algunos de que podría no ser muy familiarizado. Y lo que hace es que en módulo si tomamos este ejemplo 4% 2, que toma el resto de lo que hace en la división. Así que 4 dividido por 2 es 2, y no hay ningún resto. 4 dividir por 3 es 1 y 1/3, y así resto 1. Así se calcula a uno. Y luego 4% 5 es la fracción 4/5, y el resto es 4. ¿Eso tiene sentido? Aceptar, fresco. Y seguimos PEMDAS aquí también. 

Así que algunas expresiones booleanas. Así que ustedes han visto es igual a los iguales para comparar, por ejemplo, dos números. Así que si es igual a 5 es igual a 5, que calcula el valor true. Asegúrese de que tiene sólo un signo de igual. Para no iguales, es golpear o de exclamación. 

HANNAH: Dos signos de igual cuando haces la igualdad. 

SHARON: Oh, sí. Asegúrese de que usted no lo hace tener un signo de igual. Y luego para no iguales, que es igual a la explosión. Y entonces usted puede mirar a través de para menor que, mayor que. Y luego tenemos lógica y y lógica o aquí. Y lo que hace es, si Te acuerdas de los arañazos cuando tuviste ese bloque Dicho esto y, a continuación, podría encajar dos piezas diferentes allí, eso es lo que esta y lo hace. Y asegúrese de hacer dos símbolos de unión. Y esta clave se puede encontrar hacia el derecha, justo debajo de su botón Eliminar. Pregunta? 

ESTUDIANTE: ¿Cuál fue el [inaudible]? 

SHARON: OK, así que si vas a hacer solamente uno, usted está comparando bits. Así que si te acuerdas de lo que los bits son, son de 0 y 1 de, y así eso es la comparación de otra cosa. Así que nos vamos a centrar en esto por ahora. 

JASON HIRSCHHORN: Así que uno es igual a es como asignación, ¿verdad? Así como int x es igual a 4. ¿Estás diciendo que la variable x es igual a 4. Así que es igual a 1 es la asignación, pero los ands y las tuberías o los bares, al igual que Sharon dijo, son los operadores bit a bit. Usted no tiene que preocuparse por eso. 

ESTUDIANTE: ¿Cuándo se utiliza lógica y y lógico o nuevo? Me olvidé cuando haces eso. 

HANNAH: Claro, por lo que si alguna vez quieres para comprobar si dos cosas son ciertas, por ejemplo, digamos que quiero comprobar que es un número entre 5 y 15, Yo diría que asegúrese de que el número es mayor que 5. Así que digamos que si x es mayor de 5 y menos de 15. Así que con el fin de que todo declaración para evaluar a verdadero, que necesita tanto de la clase de sub declaraciones para evaluar el verdadero. Con o sólo necesita uno de los dos o ambos. ESTUDIANTE: Genial, gracias. 

SHARON: Y también en Scratch, yo soy seguro que en muchos de sus proyectos si usted tenía de tocar el borde o si tocar otro elemento sprite luego rebotar o algo así. HANNAH: Muy bien, así que ¿por qué tenemos se preocupan por todos estos booleanos? Tenemos estas estructuras que hemos visto en Rasca llamada condicionales. Y condicionales son nada del formar si alguna condición o algún Boolean Es cierto, y luego hacer el código entre estas llaves. Así que usted puede ver a la derecha aquí es el bloque de notas. Usted tiene esto si entonces, y nada que entra en esa pequeña forma que parece esto-- i no saben lo que se llamar eso-- eso va a ser el de Boole o condición. 

Así que de nuevo, un booleano o condición es nada que, o bien evaluar a verdadero o falso. Y de nuevo, usted puede combinar Booleanos. Usted puede tener, de nuevo, x es mayor a 5 y X es menor que 15. O usted puede apenas tener uno de esos x es menor que 5. 

Aceptar, por lo que en C Es a la izquierda. Es sólo la palabra clave si. Entre paréntesis, la condición o el operador booleano. Y a continuación, el código entre esas dos llaves sólo se ejecutará, sólo se ejecutará si dicha condición o que booleana es verdadera. ¿Eso tiene sentido? Impresionante. Okay. Y entonces, como usted puede han visto en Scratch, también podemos añadir en un otra cosa, que es básicamente nada entre el llaves bajo otro sólo se ejecutará si la condición es falsa. Tiene sentido? Cualquier pregunta sobre estos dos? Impresionante. 

Enfriar. Así que aquí está un ejemplo rápido. Digamos que queremos determinar, basándose en el tiempo, si debemos decir buenas mañana o bien por la noche. Voy a decir si es antes de las 12:00 del mediodía, vamos a dar los buenos días, de lo contrario nos vamos para decir buenas noches. Y cuando le dije que de lo contrario, eso es equivalente en C a esta persona. Así que vamos a comprobar si el hora militar es inferior a 12:00, dar los buenos días. Decir lo contrario buena tarde. 

ESTUDIANTE: Así que en realidad ponía esa entrada por hora militar con la cadena GET. HANNAH: Derecho. Hizo algún otro lugar que habíamos hecho tiene que proporcionar esa información. Aquí mismo no tiene ningún valor. Nunca llegó a declarar que. Supongo que en algún lugar por encima de este programa me declaró la vez, o se le preguntó la hora, o-- cualquier otra cosa con este ejemplo? Impresionante. 

Bien, ahora tenemos además para así de simple si el formato lo demás, tenemos otras dos estructuras diferentes. Así que primero tenemos el interruptor declaración, y aquí está la forma general de una sentencia switch. Usted tiene la palabra clave cambiar la misma manera que usted tiene la palabra clave si. Y entonces una entrada, en este caso n. Así que esta sólo puede trabajar con números enteros. Así que la entrada tiene n a ser un número entero, ¿de acuerdo? Y vamos a siga uno de estos casos dependiendo de lo que el valor de n es. 

Así que en este caso, primero comparar n es igual a una constante, si lo es, hacer todo lo tipo de sangría por aquí. Puedo señalar que porque soy demasiado corto. Si no es igual a una constante y es en cambio constante igual a dos, vamos a seguir ese segundo bloque, y podemos hacer esto por las veces como queremos, y luego de que por defecto es si que no coincide con ninguno de los casos anteriores, ejecutar ese código. Cualquier pregunta aquí? Éste es un poco más complicado. ¿Sí? 

ESTUDIANTE: Rotura a entender de qué? 

HANNAH: Claro, por lo que una vez que entremos ese bloque, si nos encontramos con, digamos, nuestra n es de hecho igual a una constante, entramos en ese bloque tras los dos puntos. Nosotros hacemos lo que está en esa línea de comentarios, y luego partimos, lo que significa que salgamos de esta sentencia switch completo. ESTUDIANTE: OK. 

HANNAH: Mm-hm? 

ESTUDIANTE: ¿Es la sangría necesaria, o qué necesitas [inaudible]? HANNAH: Claro. Así que, como siempre, la sangría no es estrictamente necesario. El equipo no se importa si sangría. Nosotros, como personas que son la lectura de su código, hacer atención. Así que es mucho más fácil mirar hacia arriba en la pantalla y veo, oh, yo sé exactamente lo que sucede cuando n es igual a uno constante. Si tuviera guiones al azar, yo no sería capaz de decir tan fácilmente. ¿Sí? 

ESTUDIANTE: Así que si quería un usuario elija una de las opciones que tenemos en la lista, lo haría utilizamos, supongo, [inaudible], pero obtener un número entero de ellos y poner eso en n? HANNAH: Exactamente. Así que digamos que queríamos para comprobar qué número entero. Dijimos oh, introduzca un entero entre 0 y 5, digamos. Podríamos pedir que n, pedir ese valor, y luego tener cada uno de esos casos. Y de nuevo, esto es algo que podría muy fácil ver con si las declaraciones, ¿verdad? Podríamos tener si es igual a la sentencia uno, si es igual al caso dos, si es igual al caso tres, así sucesivamente y así sucesivamente. Esto es un poco más rápido y un poco más limpio. Es una especie de sólo una estructura agradable ahora. ESTUDIANTE: Más rápidamente que en la escritura? ¿O que se ejecute el ordenador un poco más rápido? 

HANNAH: Se corre un poco más rápido. ¿Sí? 

ESTUDIANTE: ¿Así que el doble guión se acaba de comentar o-- 

HANNAH: Oh, lo siento mucho. No me di señalarlo. Bien, si usted tiene que //, es un comentario. Sólo // es un comentario. Así que cada vez que el ordenador ve que, va para decir bien, todo lo que sigue esto, yo sólo voy a ignorar. Voy a fingir que nunca escribió eso. 

ESTUDIANTE: ¿Así que esto [inaudible]. 

HANNAH: Esto no hace absolutamente nada. Pero si he escrito algo así como en la primer comentario que escribí en lugar de printf decir felicitaciones que ha entrado una constante, que sería algo. ¿Sí? 

ESTUDIANTE: ¿Así que en la vida real, la caso sería simplemente ser un número y luego [inaudible] sería otro número entero. 

HANNAH: Exactamente. 

ESTUDIANTE: ¿Y qué necesitan los puntos suspensivos? 

HANNAH: Lo siento? 

ESTUDIANTE: ¿Es necesario que? 

HANNAH: Oh, no. Lo siento. Eso fue sólo para indicar que pueda continuar por la mayor cantidad de casos como desee. Vamos a hacer un ejemplo concreto que podría hacer las cosas un poco más claras. OK, así que digamos que yo digo, Bueno, dame un entero n que representa un número de clase, específicamente una clase de ciencias de la computación número. Así que si me das 50, Yo voy a decir muy bien. CS50 es una introducción a la informática la ciencia, y luego me voy a romper. Así que eso significa que saltar de esta declaración toda interruptor, por lo que ahora he terminado de ejecutar el código, ¿de acuerdo? 

Si usted me dio en lugar de 51 años, que había imprimir la segunda declaración. Y entonces, si usted me dio un poco de número que no era 50 o 51, Voy a decir que lo siento, estoy no está familiarizado con esa clase. ¿Sí? 

ESTUDIANTE: Usted no tiene descanso. 

HANNAH: Lo siento, no tengo descanso? 

ESTUDIANTE: ¿Qué pasa si. 

HANNAH: Oh, ¿y si usted no tiene descanso? Excelente pregunta. Así que lo que sucedería es que usted quería entrar, y que le echa soy yo igual a 50? Y digamos, sí, eras igual a 50, que le imprime el comunicado. Y entonces sería continuar con la ejecución, por lo que diría que soy igual a 51? Y va a ir y ponerse en marcha a través de todos los casos de esa manera? ¿Sí? 

ESTUDIANTE: ¿Es la línea predeterminada análogo a decir otra cosa? HANNAH: Exactamente. Muy buena. Es como el tipo de captura todo. 

ESTUDIANTE: Así que si usted no tuvo descanso y luego una de las declaraciones de casos era verdad, y entonces dicho incremento n por 1, entonces sería automáticamente hacer la siguiente. Sería comprobar caso 51, y a continuación, mostrar que tan bien? HANNAH: Sí, creo que eso funcionaría. Por lo que podría causar problemas de tipo, por lo que un descanso es una buena cosa a tener. ¿Sí? ESTUDIANTE: Sin descanso tendría que hacer el defecto? HANNAH: Esa es una buena pregunta. JASON HIRSCHHORN: Creo que sólo se ejecuta. Así que si usted no tiene por lo break-- digamos que hice 50 y comprobé 50, y sería imprimir eso. Imprima CS50 como introducción con la informática. Usted no tiene descanso, debe ir y seguir adelante hasta que se realiza un descanso. Así que si no hay rotura, que va a seguir adelante. Se va a imprimir todo lo demás. 

HANNAH: Así que supongo que lo haría ser incluidos por defecto. 

JASON HIRSCHHORN: Sí. 

HANNAH: Buena pregunta. ¿Sí? ESTUDIANTE: ¿Es caso considera una función? HANNAH: Lo siento? ESTUDIANTE: ¿Es caso considera una función? HANNAH: ¿Es caso considerado una función. Yo dudaría en decir eso. 

JASON HIRSCHHORN: Así que normalmente cuando ves funciones van a estar entre llaves. Así, por ejemplo, cuando se mira en su código, por ejemplo, principal. Fue principales paren abiertas, entonces vacío, cerca paren. Functions-- que son, básicamente, siempre verás paréntesis. Así caso si el caso no tener ningún paréntesis, esa es tu idea de que eso no es una función. Pero no lo es. ¿Sí? 

ESTUDIANTE: ¿Así que entonces hace que hacer cambiar de una función? 

HANNAH: ¿Eso marcas cambiar una función. 

ESTUDIANTE: En el sentido que se pone algo en, que le da uno de los casos. JASON HIRSCHHORN: I no diría que es una función. No todo lo que con parens es una función. Quiero decir que es una pista que es una función. Yo no diría que es un interruptor función porque no es realmente devolver nada. Te metes en que más. 

HANNAH: Sí, sólo pensar en ello como una estructura if. ESTUDIANTE: ¿Puede usted nido esto en una estructura if? HANNAH: Sí, usted nido casi cualquier cosa. 

ESTUDIANTE: Barry dijo que las cotizaciones son algo así como lo mismo que los demás. Así que usted puede reemplazar las comillas con los demás? 

HANNAH: No en este particular, estructura porque el interruptor declaración está esperando la palabra de forma predeterminada. El equipo sabe que por defecto significa algo especial, que significa la captura de todo. ¿Algo más sobre esto. Tenemos uno más para pasar. ¿Sí? 

ESTUDIANTE: [inaudible]. HANNAH: Diferencia entre utilizando un punto y coma y dos puntos. Así que un punto y coma es decirle a la siempre ordenador he terminado con esta línea. Usted puede seguir adelante y ejecutarlo. Esta es una línea completa. Un colon va a, en este caso, te adentran en un bloque de concreto. Así que punto y coma son utilizar siempre para terminar líneas. Los dos puntos se utilizan para una variedad de otros casos. 

ESTUDIANTE: ¿Esto es equivalente a simplemente diciendo que si n es igual a 50, entonces bla, bla, bla. HANNAH: Mm-hm. ESTUDIANTE: Es lo mismo [inaudible]. HANNAH: Exactamente. Y dijimos que corre un poco más rápido. Si no tuviéramos el descanso, que sería como si, si, si. Si tenemos la ruptura, que es como si otra persona si otra cosa si lo demás si. Fresco? 

JASON HIRSCHHORN: Así que cuando codificación, usted puede simplemente usar si lo demás, pero creo que el año pasado en el que prueba tenían que escriban una sentencia switch, así que por si acaso. HANNAH: Pero sin duda nada malo. No esperamos que usted se preocupe cosas locas sobre rendimiento. Sólo si lo demás es totalmente bien. Estos son sólo buena cosas a tener en cuenta. 

Y aquí está nuestro último ese tipo de cae dentro de esta categoría condicional. Tenemos algo de la estado general forma?, y luego un pequeño pedazo de código que sucede si la condición es verdadera. Y luego dos puntos, un poco pedazo de código que ejecuta si la condición es falso, punto y coma. Hemos terminado con esa línea. Así que sintácticamente es un poco feo. Vamos a ir a través de un ejemplo creo que eso es más claro. Así que queremos asignar el profesor cadena a uno de estos dos valores, ya sea David Malan o no David Malan, ¿de acuerdo? Así que usted debe estar familiarizado con la cadena, profesor =. Vamos a asignar una cadena al profesor variable llamada. 

Ahora queremos comprobar un condición particular. En este caso, nuestra condición es class_num = = 50. Y ahora podría ser un buen momento para señalar cuando tenemos profesor cadena =, Que es un signo de igual. Esa es la asignación. Mientras que en class_num = = 50, que son dos signos de igual. Eso es un control de calidad. Así que vamos a decir que es el número de clase igual a 50? Si es así, asigne el profesor David Malan. Si no es así, asignar profesor a no David Malan. Cualquier pregunta allí? Una vez más, esto es sólo algo eso es bueno saberlo. Usted puede hacer esto con los demás si. Un problema buena práctica podría ser que, cuando te vas a casa, a la derecha de la misma exacta condicional en una forma más si, porque se puede hacer eso. Cualquier pregunta aquí? Muy bien, creo que estamos va a pasar a los bucles. Impresionante. 

SHARON: OK, vamos a hablar aproximadamente, mientras que los bucles. Así que primero de la izquierda que se ve aquí-- Aceptar que dice mientras, while (condición). Y entonces lo haces esto-- podemos cambiar esto? 

JASON HIRSCHHORN: Se cortó. 

SHARON: Aceptar y, a continuación, hay son también las llaves. Así que pretender que rizado llaves están allí arriba y por debajo de la hacer esto una y otra vez. Así que si la condición en aquellos paréntesis se evalúa como verdadera, entonces usted debe seguir haciendo lo que está en el bucle while. 

Así, por ejemplo, podríamos hacer un problema de la práctica. Estoy usando dos pendientes en este momento, así que digamos si estoy usando al menos un escuchar, aplaudir sus manos. Así que si vamos a ir a través de esto, estamos going-- 

[Aplausos] 

Derecha? Y yo estoy usando uno, y- en Aceptar. Sí. Yo no llevo pendientes más, así no más. Aceptar, por lo que entonces es cuando usted detenga. Y esto se podría decir que es equivalente a casi variables. Digamos que usted tiene un número variable de pendientes. Así, mientras que el número de pendientes es mayor que o igual a 1, aplaudir manos. Y luego, después de aplaudir manos, pendientes decremento. Haz como pendientes, menos 1. Así que disminuir el número de pendientes, y entonces usted va a ir a través del bucle while dos veces. 

Y si la condición es siempre cierto-- por lo que si, digamos, 2 = = 2, y 2 es siempre igual a 2, ¿verdad? Luego lo haría siempre hacer algo allí, y eso es equivalente a casi el siempre bucle que hemos tenido en los arañazos. ¿Sí? 

ESTUDIANTE: ¿Son los dos lados sólo diferentes maneras de escribir un bucle while? 

SHARON: Así que estamos enfocados en este caso primero. Y a continuación, por lo que vamos a comparar con un do while. Así que son un poco diferente. OK, así que digamos que el estado sigue siendo mientras que yo estoy usando al menos una pendiente, y yo no estoy usando cualquier pendientes en este momento. Y digamos que hacer y todavía aplaudir mientras Yo estoy usando al menos una pendiente. ¿Qué debe suceder? 

[CLAPS] 

Uh oh, chicos. Aceptar, por lo que se supone que aplaudir una vez porque en el fondo usted ir a través de la primera parte del código. Usted lo hace no importa qué, y entonces usted ve la condición, mientras que, y que vaya de nuevo en ese bucle si es verdad. ¿Eso tiene sentido? 

ESTUDIANTE: Usted siempre hacerlo la primera vez. SHARON: Siempre hacerlo de la primera vez, independientemente de si o no esa condición es verdadera o no. JASON HIRSCHHORN: Al hacer Crees que podrías usar esto? ¿Cuándo tiene sentido utilizar este? HANNAH: ¿Sí? ESTUDIANTE: [inaudible]. JASON HIRSCHHORN: Derecho. HANNAH: Muy buena. JASON HIRSCHHORN: Así cuando usted solicitar a un usuario, usted va a querer siempre para solicitar a un usuario una vez. Uno siempre va a querer para pedir al usuario una sola vez. Así que en lugar de poner en un bucle de tiempo, usted puesto en hacer mientras bucle, porque eres siempre va a hacer una vez. Si te la dan respuesta correcta, ya está. Si no lo hacen, entonces volver a impulsarlos. 

SHARON: Muy bien, para los bucles. Así que en Scratch, tuvimos bloques de repetición. Así que queríamos repetir algo, digamos, siete veces. Así que acabamos de decir repetir siete, y digo que estoy aquí para ayudarle a Blancanieves! En C, que tenemos para bucles si quieren pasar por algo un número específico de veces. Digamos que si inicializamos los enanos variables y hacer sure-- por lo que el primer bloque allí mismo antes del primer punto y coma, inicializamos nuestra variable a, y nos pusimos a 0. Y nuestra variable existe es un número entero, int. Y el nombre de la variable es enanos, y nos pusimos en enanos a 0. 

Y la segunda parte entre el dos punto y coma es nuestra condición. Y así, siempre y cuando los enanos es inferior a siete, vamos a seguir yendo a través de este bucle. Y luego la última parte es lo que hacen hacemos al final de este ciclo for? ++ enanos, y eso significa que incrementar enanos por uno cada vez. 

Entonces, ¿qué va a pasar aquí? Así que primero vamos a ir a través. Tenemos enanos como 0, y luego vamos imprimir Estoy aquí para ayudarle Blancanieves! Y entonces los enanos se van a aumentar porque dijimos enanos ++. Enanos va a ser 1. Y luego nos compare-- enanos es 1. Nos comparamos con los enanos es de menos de 7? Sí. Voy a pasar por esto otra vez. Estoy aquí para ayudarle a Blancanieves! Y entonces se convierte en enanos 2, y luego lo comparamos. Es 2 menos que 7? Sí. Vamos a seguir adelante a través. Y vamos a ir a través de estos siete veces. 

Así que al final, vamos a tener enanos = 0 impresión de que soy aquí para ayudarle a Blancanieves! enanos es igual a 1, 2, 3, 4, 5, y 6. Recuerda que en el índice 0. Así que empezamos con 0. ¿Sí? 

ESTUDIANTE: ¿Así que esto es diferente de la DO porque esto no se imprime inicialmente al principio. Por lo que podría seguir la misma cosa. ¿Podría hacer esto también con el bucle do? Al igual que el mismo proceso. La condición es enanos menos de 7 o lo que sea. Respuesta es inferior a 7. SHARON: ¿Así que podría técnicamente. Así que si nos remontamos a-- su hablar sobre el bucle while, ¿verdad? Así que el do while es ligeramente diferente porque nos garantizan, al menos, una vez que vamos a ir a través de él, así que esa es la mayor diferencia. Pero con el bucle while que pudimos decir mientras los enanos es inferior a 7, hacer esto, y luego incrementar enanos por uno. Y entonces tenemos que inicializar enanos antes de toda esta declaración que es igual a 0. Así que sí, podríamos hacer eso con eso. Mm-hm? 

ESTUDIANTE: ¿Se puede volver a [inaudible]? SHARON: Para lazo? ESTUDIANTE: Sí, así que con los enanos ++, parece que es lo que haces después que ha ejecutado algún otro medio. SHARON: Correcto. ESTUDIANTE: ¿Podría usted acaba no tiene que poner y it-- SHARON: Usted podría. ESTUDIANTE: Así es [inaudible] justo después imprimir en la siguiente línea debajo. SHARON: Sí, usted podría ponerlo allí. Pero entonces lo haría simplemente dejar que vacío. 

JASON HIRSCHHORN: Usted todavía necesitará el punto y coma sin embargo. 

SHARON: Se parece un poco incómodo, pero usted podría técnicamente hacer eso. Técnicamente. Por favor, no lo hagas. ¿Sí? 

ESTUDIANTE: ¿Hay alguna alternativas a ++? ¿Hay algo más [inaudible]? 

SHARON: Técnicamente Es enanos. Un signo igual vamos para establecerlo en enanos más 1. Así que técnicamente eso es lo que significa enanos ++. ¿Eso tiene sentido? 

ESTUDIANTE: Sí, pero se Hay alguna alternativa? Al igual que si usted ever-- 

SHARON: Sí, usted podría hacer enanos - -. 

ESTUDIANTE: [inaudible]. 

SHARON: Sí, usted podría hacer una serie de cosas. HANNAH: Y se podría incrementar en un 2. Usted podría incrementar en un 3. Cualquier cosa que va a estar cambiando, con el tiempo hará que la condición. 

ESTUDIANTE: Así que si usted quería incrementar por 2, ¿cómo se escribe eso? 

HANNAH: Usted podría escribir dwarves-- usted podría escribir todo esto a cabo. enanos enanos = + 2. O un poco de la taquigrafía. Yo sólo voy a escribir + es igual a 2. 

ESTUDIANTE: OK, y que le escribe que justo donde enanos ++ está allí. HANNAH: Exactamente. SHARON: Correcto. Había otra pregunta? ¿Sí? 

ESTUDIANTE: [inaudible] enanos ++? SHARON: ¿Así que no-- JASON HIRSCHHORN: Sí, no es necesario allí. [Inaudible] final. Así lo hace [inaudible] queridos porque usted es tipo de división de la inicialización, condición, y el cambio. Al final, usted no lo necesita. SHARON: Observe también que no es necesario el punto y coma después de todo el todo para el bucle. 

ESTUDIANTE: ¿Cómo empezar un número inicial de negativo, por ejemplo? 

SHARON: Puede inicializar enanos igual a la negativa 2. 

ESTUDIANTE: ¿Es usted apenas Dash 2? 

SHARON: Sí, por lo que el signo negativo, guión 2. 

ESTUDIANTE: ¿Es [inaudible] para inicializar como enanos [inaudible]? 

SHARON: Sí. Así que si sólo habíamos inicializado enanos anterior, acaba de hacer punto y coma enanos int, y entonces no podemos hacer enanos que establecen igual a 0. 

ESTUDIANTE: ¿Podríamos hacerlo antes en el programa diciendo int enanos = 0, y luego sólo-- 

SHARON: Simplemente no tener-- así no habría un espacio nuevo, pero usted todavía necesita un punto y coma. Sí. Mm-hm? ESTUDIANTE: ¿Este código dice lo el valor de los enanos es después. Si le preguntas a él después de todo esto es hecho para imprimir el valor de los enanos. SHARON: Usted podría pedirle que hacer eso. ESTUDIANTE: OK. SHARON: Pero lo haría tener que pedir a hacer eso. No lo haga por usted. Tengo miedo de poner mis pendientes de nuevo. Hazlo al final para el aplauso. Es una broma. 

JASON HIRSCHHORN: Así que eso es lo mismo. Así que inicializar en la parte superior. Condiciones, impresión, el cambio. Así que este es exactamente el mismo que que si todo el mundo puede ver que. ESTUDIANTE: ¿Por qué no tiene la punto y coma en la primera línea? SHARON: ¿Dónde? ESTUDIANTE: Después de la primera línea. SHARON: Después de la 4 en los paréntesis? Porque queremos ir A través de este bucle en. Y si usted echa un vistazo a los bucles en en general, que no tienen punto y coma. No es práctico. ¿Estamos bien? Una pregunta más, dos más. ¿Sí? ESTUDIANTE: Esto podría ser un poco avanzado, pero hacer enanos tienen un diferente [inaudible] a partir de una variable [inaudible]. SHARON: Muy buena. ESTUDIANTE: [inaudible]. 

SHARON: Sí, lo es. ¿Qué? JASON HIRSCHHORN: Sí, por lo que hace. Así que normalmente el alcance de algo está en las llaves. Así alcance siempre va estar en las llaves, pero que no haría mucho sentido para el bucle for porque hemos inicializado enanos en que corchete. Así que normalmente el alcance de los enanos, que variable no se extendería más allá de eso. Este es un caso especial, aunque. Así que lo inicialice dentro de los paréntesis, y entonces usted tiene el alcance más adelante. Así caso especial. No deben tener eso, y que era-- Eso tiene sentido? 

ESTUDIANTE: No. 

JASON HIRSCHHORN: Me puede ir sobre ella. Entonces, ¿qué está usted todavía confundido acerca? 

ESTUDIANTE: Como puede usted utilizar en dwarves-- usted puede utilizar obviamente enanos [inaudible] fuera de la fórmula también? 

JASON HIRSCHHORN: No, no. Así que el alcance de la misma es sólo dentro de la llaves para el bucle for, sí. SHARON: Pero si inicializar enanos fuera del bucle, a continuación, se puede utilizar en otros lugares Hay una pregunta más? ¿No? Okay. 

Así que hablamos un poco acerca de anidación para bucles o condicionales de anidación, si las declaraciones. Así que aquí está un ejemplo de donde pudimos nido un bucle for. Digamos que estábamos imprimiendo esta tabla de x está aquí. Podríamos querer a-- primero si simplemente no miramos el código y sólo pensamos en ello, nos quiero ir a través de cada fila e imprimir cada columna, ¿verdad? ¿Eso tiene sentido? Okay. 

Así que aquí estamos pasando por cada fila para cada fila, básicamente, y hay tres filas. Y a continuación, dentro de cada fila para cada columna, y hay cuatro columnas, imprima una x. de modo. Cuando fila es 0 y la columna es 0, imprimimos esta x. Y luego seguimos adelante a través del bucle de la columna. Fila sigue siendo 0, pero la columna es uno. Y a continuación, la columna es 2, y luego la columna es 3. Y luego salimos de ese bucle porque entonces la columna ya no menos de 4. Y luego imprimimos una nueva línea, y nos vamos a la nueva línea. Y luego vamos a través de la siguiente fila y fila se incrementa, y vamos por eso otra vez. ¿Eso tiene sentido? ¿Sí? 

ESTUDIANTE: ¿Entonces para anidar [inaudible] es simplemente ponerlo en el interior del bucle for? 

SHARON: medios de anidación Así que nosotros tener un bucle for dentro de un bucle for, como Origen. 

ESTUDIANTE: Usted no necesita un rotación especial o algo? Usted acaba de pegar las cosas bien dentro de ella? SHARON: Correcto. ¿Sí? 

ESTUDIANTE: ¿Podría ser [inaudible], pero parece que hay un espacio extra entre todas las x. No sé si Eso es-- Si eso iban a hacer realidad el programa, habría que hacer algo así? 

SHARON: Por lo que no. Eso fue de pulsar ENTER. Eso fue malo por nuestra parte. Pedir disculpas. 

HANNAH: ¿Cómo cambiar esta programa si usted hizo una línea adicional? 

ESTUDIANTE: [inaudible]. SHARON: Buen trabajo. ESTUDIANTE: Usted también puede imprimir el mismo cosa por el cambio alrededor de la columna, ¿verdad? 

SHARON: Hm? 

ESTUDIANTE: ¿Entonces para imprimir su pequeño xxx, la primera línea se puede decir de impresión, y en vez de decir fila, dice la columna. 

SHARON: ¿Así que podría cambiar los nombres de las variables que hacen eso. ¿Es eso lo que estás diciendo? 

ESTUDIANTE: No, yo sólo soy diciendo que-- por lo que es filas de impresión primero y a continuación, imprimir columnas. ¿Puedes también imprimir las columnas primera y a continuación, las filas para obtener el mismo diagrama? SHARON: Usted podría, pero entonces usted tendría que tener cuidado de donde se pone la nueva línea. Y ¿cómo saltar de nuevo? JASON HIRSCHHORN: Si sólo cambiamos y los valores fueron diferentes, en lugar de tener pasajes autorizados ¿qué es? Tres por cuatro. I Usted tendría cuatro filas y tres columnas. ¿Eso tiene sentido? 

ESTUDIANTE: Sí. 

JASON HIRSCHHORN: Así sí, usted podría hacer eso. Sí, sin duda. SHARON: Pero eso sería, literalmente, sólo cambiar los nombres de las variables. Buena? Okay. De acuerdo, P de un conjunto. Aceptar, por lo que la primera parte de ella que va a hacer esto, Mario. Es una broma. Es de la misma familia. Y así, cuando nos fijamos en la anidado para bucles, haciendo que la tabla, pensar en cómo podría ser capaz de imprimir estas hashtags de esta manera. Y entonces aquí cómo lo haría usted imprimir esta aquí, este espacio abierto. 

ESTUDIANTE: [inaudible]. SHARON: Sí, usted acaba de imprimir un espacio. Aceptar, por lo que sólo pensar en eso. HANNAH: Y luego el mismo parte del conjunto de problemas es un programa que se llama greedy.c, por lo que eres va a querer pensar acerca de los condicionales y asegurarse de que usted puede hacer el cambio correcto. Y un pequeño aviso que tenemos para ti se tenga cuidado de valores de punto flotante. Si eso significa absolutamente nada para ti, que va a ser cubierto en la conferencia de esta semana y también en [inaudible] caminar a través, que ustedes van a aprender a el amor en los boletines de problemas. 

Una cosa que realmente te sugiero, especialmente con Mario.c, cuando estás haciendo el problema establecer, si te quedas atascado, empezar por hacerlo en papel. Escríbelo y realmente sentarse allí y pretende ser el ordenador, y van through-- dicen Yo fuera el ordenador, ¿cómo voy a seguir esto para bucle a través de? ¿Cómo sería mi variables en el cambio de bucle? Así lo hace en el papel hace que sea 10 veces más fácil cuando usted va a sentarse a la computadora. Así que mi pequeño tapón. 

SHARON: Y también no pensar que usted tener que codificar todo de una vez. Asegúrate de llevar un proceso iterativo. Hacer un poco pequeña, de impresión hacia fuera, ver lo que pasa. A veces es un poco de ensayo y error. Y llegado a las horas de oficina. Super divertido. JASON HIRSCHHORN: así que cualquier pregunta? Todos los chicos adecuados, que fue su primera sección. HANNAH: Gracias por venir. JASON HIRSCHHORN: Gracias por venir. SHARON: Gracias. [Aplausos]