1 00:00:00,000 --> 00:00:03,290 >> [Música tocando] 2 00:00:03,290 --> 00:00:04,989 3 00:00:04,989 --> 00:00:06,280 JASON Hirschhorn: OK, todo o mundo. 4 00:00:06,280 --> 00:00:07,460 Benvido á sección. 5 00:00:07,460 --> 00:00:10,840 Este é CS50, a nosa propia primeira sección super. 6 00:00:10,840 --> 00:00:13,700 Como todos saben, a próxima semana seccións regulares vai comezar, 7 00:00:13,700 --> 00:00:15,580 pero esta semana estamos todos xuntos. 8 00:00:15,580 --> 00:00:17,730 >> Hai min mesmo. 9 00:00:17,730 --> 00:00:18,840 O meu nome é Jason. 10 00:00:18,840 --> 00:00:20,630 Eu son un profesor de Ciencia da Computación. 11 00:00:20,630 --> 00:00:23,910 Temos Andi, que é a cabeza de TA CS50. 12 00:00:23,910 --> 00:00:27,630 E SCAZ, Profesor Brian Scassellati, el é un profesor en Ciencia da Computación. 13 00:00:27,630 --> 00:00:30,970 >> Somos os xefes CS50 en Yale. 14 00:00:30,970 --> 00:00:34,992 Sempre pode enviar correo-e nos heads@cs50.yale.edu. 15 00:00:34,992 --> 00:00:35,950 Estaremos á conferencias. 16 00:00:35,950 --> 00:00:37,547 Estaremos no horario de oficina. 17 00:00:37,547 --> 00:00:40,130 Se sempre hai algo que podemos facer por ti, calquera cousa que precisa, 18 00:00:40,130 --> 00:00:42,610 Sinto-se libre para chegar ata nós. 19 00:00:42,610 --> 00:00:44,140 >> Entón, o que imos facer hoxe? 20 00:00:44,140 --> 00:00:47,790 Ou antes diso, o que é chegando esta semana? 21 00:00:47,790 --> 00:00:52,620 Así, o horario de oficina son luns, martes, Mércores e xoves, de 8: 00-11: 00. 22 00:00:52,620 --> 00:00:54,770 Hai unha programación na páxina web. 23 00:00:54,770 --> 00:00:57,830 >> Seccións, como mencionei, empezan a próxima semana. 24 00:00:57,830 --> 00:01:01,390 E vai descubrir que esta semana cronometrar súa sección é, que día é hoxe, 25 00:01:01,390 --> 00:01:03,350 e quen é o seu TA é. 26 00:01:03,350 --> 00:01:08,610 >> Problemas 1 é debido en xoves mediodía, venres ao mediodía cun día de atraso. 27 00:01:08,610 --> 00:01:10,817 Si, ten nove días de atraso. 28 00:01:10,817 --> 00:01:12,150 E hai nove conxuntos de problemas. 29 00:01:12,150 --> 00:01:14,320 E só pode usar un día de atraso por conxunto problema. 30 00:01:14,320 --> 00:01:17,930 Si, efectivamente, todo problema conxuntos son debidas venres ao mediodía. 31 00:01:17,930 --> 00:01:18,550 Iso é todo. 32 00:01:18,550 --> 00:01:20,400 Todo o que os detalles están no plan de estudos. 33 00:01:20,400 --> 00:01:22,360 >> Toda venres, temos xantar. 34 00:01:22,360 --> 00:01:25,230 Nós gústanos de facer esta grande Claro sentir un pouco menor. 35 00:01:25,230 --> 00:01:26,580 Entón é así a benvida a RSVP. 36 00:01:26,580 --> 00:01:30,050 Xantar gratis con compañeiro compañeiros e funcionarios. 37 00:01:30,050 --> 00:01:34,120 cs50.yale.edu/rsvp. 38 00:01:34,120 --> 00:01:36,940 >> Todas estas cousas que I ter na pantalla, 39 00:01:36,940 --> 00:01:43,330 e máis, pode atopar ou cs50.yale.edu cs50.harvard.edu, se vai para Harvard 40 00:01:43,330 --> 00:01:46,800 e están a asistir esta liña. 41 00:01:46,800 --> 00:01:50,240 >> Tamén sobre estes sitios, alí unha tonelada de recursos para ti. 42 00:01:50,240 --> 00:01:54,610 Cada charla non só ten o video da charla, pero tamén observa. 43 00:01:54,610 --> 00:01:58,184 Alguén vai ver charla e tomar notas para ti. 44 00:01:58,184 --> 00:02:00,100 Entón podes só pagar atención durante as clases, 45 00:02:00,100 --> 00:02:03,970 ou pode empregar as súas notas / nosa notas para complementar as súas propias notas. 46 00:02:03,970 --> 00:02:04,987 >> Existen láminas en liña. 47 00:02:04,987 --> 00:02:07,320 A fonte code-- todo David pasa por encima dunha conferencia, 48 00:02:07,320 --> 00:02:09,979 ou SCAZ pasa por riba charla, que código fonte está dispoñible en liña 49 00:02:09,979 --> 00:02:11,750 tamén, como como eu, mencionado vídeos. 50 00:02:11,750 --> 00:02:14,257 >> Seccións, do mesmo xeito, todo será filmado. 51 00:02:14,257 --> 00:02:15,840 Todas estas láminas están dispoñibles. 52 00:02:15,840 --> 00:02:18,190 Todo iso vai código estar dispoñible para ti. 53 00:02:18,190 --> 00:02:22,440 Hai curtos na web onde Membros do equipo CS50 pasar de cinco a 10 54 00:02:22,440 --> 00:02:24,130 minutos pasando por temas para ti. 55 00:02:24,130 --> 00:02:26,750 Algunhas das persoas que xa atopar en conxuntos de problemas. 56 00:02:26,750 --> 00:02:30,430 >> Horario de oficina, como xa referín, luns a xoves de 8:00 a 11:00. 57 00:02:30,430 --> 00:02:32,600 Estudo CS50 é un recurso fantástico. 58 00:02:32,600 --> 00:02:37,100 Existen problemas de práctica, láminas de mostra, erros coñecidos 59 00:02:37,100 --> 00:02:40,920 que os alumnos quere executar para, para practicamente todos os nós tema 60 00:02:40,920 --> 00:02:42,650 cubrirá neste curso. 61 00:02:42,650 --> 00:02:46,350 >> E, finalmente, neste foto polo menos, Reference50 62 00:02:46,350 --> 00:02:49,690 que lle dá información en todas as funcións C 63 00:02:49,690 --> 00:02:53,160 podería sempre posiblemente esperar de usar e moitos, moitos máis. 64 00:02:53,160 --> 00:02:55,690 >> Unha vez máis, que dot dot dot com a parte inferior da pantalla 65 00:02:55,690 --> 00:02:59,990 é indicar que hai mesmo máis recursos sobre estes dous sitios: 66 00:02:59,990 --> 00:03:04,270 cs50.yale.edu, cs50.harvard.edu. 67 00:03:04,270 --> 00:03:05,840 >> Entón, o que imos facer hoxe? 68 00:03:05,840 --> 00:03:08,970 Ben, primeiro eu vou dar- ollar os recursos. 69 00:03:08,970 --> 00:03:10,010 Xa o fixo. 70 00:03:10,010 --> 00:03:11,590 Olle para nós. 71 00:03:11,590 --> 00:03:16,430 >> Agora, imos pasar por riba tipos de datos e operadores en C. 72 00:03:16,430 --> 00:03:19,990 Entón Andi vai vir aquí e pasar por riba de bibliotecas en C, printf (), 73 00:03:19,990 --> 00:03:24,570 unha función coa que xa está familiarizado ou vai facer rapidamente moi 74 00:03:24,570 --> 00:03:25,530 familiarizado. 75 00:03:25,530 --> 00:03:27,810 E tamén vai pasar por riba condicionais e loops. 76 00:03:27,810 --> 00:03:30,900 >> E, a continuación, finalmente, SCAZ vai pasar por riba do ID CS50. 77 00:03:30,900 --> 00:03:34,250 Se aínda non dicir xa no Conxunto de problemas 1, 78 00:03:34,250 --> 00:03:37,060 así como a forma de usar o comandos da terminal e útiles 79 00:03:37,060 --> 00:03:42,280 e, a continuación, darlle algunhas demos e codificación práctica no ID CS50. 80 00:03:42,280 --> 00:03:45,130 >> Antes de ir a esta contido deste lado, 81 00:03:45,130 --> 00:03:46,770 alguén ten algunha preguntas ata agora? 82 00:03:46,770 --> 00:03:53,190 83 00:03:53,190 --> 00:03:54,030 Gran. 84 00:03:54,030 --> 00:03:54,950 Aceptar. 85 00:03:54,950 --> 00:03:55,810 Cambio de velocidades. 86 00:03:55,810 --> 00:03:58,760 >> [Cambio de velocidades] 87 00:03:58,760 --> 00:04:03,070 >> Isto foi me desprazando engrenaxes nun coche manual. 88 00:04:03,070 --> 00:04:10,920 Así, os tipos de datos en C, non pode só ter unha variable x e que sexa na liña 10, 89 00:04:10,920 --> 00:04:17,170 un enteiro, quizais o número 1, na liña 20, un número decimal 10,5, 90 00:04:17,170 --> 00:04:20,500 e liñas, a continuación, unha parella despois, unha corda, eu amo CS50. 91 00:04:20,500 --> 00:04:25,052 >> En C, só poden ser variables unha cousa, e só unha cousa. 92 00:04:25,052 --> 00:04:26,510 E entón tes que darlles tipo. 93 00:04:26,510 --> 00:04:28,780 E neste foro, nós Ten unha lista de tipos. 94 00:04:28,780 --> 00:04:32,000 Existen caracteres, que soporte para caracteres. 95 00:04:32,000 --> 00:04:36,850 Entón esta é unha letra A, B, C, D. Isto tamén pode ser un espazo, 96 00:04:36,850 --> 00:04:40,290 ou que tamén se pode un carácter de nova liña. 97 00:04:40,290 --> 00:04:45,030 >> Existen números enteiros, que son só Números de números, todo ou enteiros 98 00:04:45,030 --> 00:04:47,130 rather-- pero sen decimais. 99 00:04:47,130 --> 00:04:49,790 >> Para decimais, temos números de punto flotante. 100 00:04:49,790 --> 00:04:53,200 Números de punto flotante son números con decimais. 101 00:04:53,200 --> 00:04:58,160 >> Despois, hai longos, que son enteiros esencialmente máis longas. 102 00:04:58,160 --> 00:05:01,160 Vai notar que un longo é 8 mentres un int é de 4. 103 00:05:01,160 --> 00:05:02,640 Eu vou chegar a iso nun segundo. 104 00:05:02,640 --> 00:05:07,390 Porque longs pode almacenar ata máis enteiros que un int pode almacenar. 105 00:05:07,390 --> 00:05:10,100 Dobre é un longo float. 106 00:05:10,100 --> 00:05:12,460 >> E, finalmente, temos corda, que é un tipo 107 00:05:12,460 --> 00:05:14,430 que probablemente xa usou antes. 108 00:05:14,430 --> 00:05:21,100 Se incluír hashtag # IncludeCS50.h no seu ficheiro de orixe, 109 00:05:21,100 --> 00:05:23,170 entón podes usar un tipo de cadea. 110 00:05:23,170 --> 00:05:25,560 Non é realmente construído en C. 111 00:05:25,560 --> 00:05:27,760 >> Hai un par de outros tipos tamén. 112 00:05:27,760 --> 00:05:32,900 Pero estes son os principais queridos con que vai empregar e atopar. 113 00:05:32,900 --> 00:05:36,210 C como, unha vez máis mencionei, cada variable --- lo 114 00:05:36,210 --> 00:05:38,620 só pode haber un tipo e só un tipo. 115 00:05:38,620 --> 00:05:42,890 Porque C é unha estaticamente linguaxe introducida, en oposición 116 00:05:42,890 --> 00:05:45,780 ás linguas tipagem dinámica onde se crear unha variable 117 00:05:45,780 --> 00:05:50,081 pode cambiar o que está almacenado Lo como ir no seu programa. 118 00:05:50,081 --> 00:05:52,580 Por aquí á dereita lado, eu teño os diferentes tamaños 119 00:05:52,580 --> 00:05:57,440 un destes tipos de datos en bytes. 120 00:05:57,440 --> 00:05:59,710 Así, un personaxe é un byte. 121 00:05:59,710 --> 00:06:01,250 Isto é 8 bits. 122 00:06:01,250 --> 00:06:05,530 E isto significa, porque 8 bocados hai oito 0s e 1s. 123 00:06:05,530 --> 00:06:08,280 Vimos estes demos en primeiro semana que as lámpadas binarios. 124 00:06:08,280 --> 00:06:15,680 >> Con 8 bits ou 1 byte, podemos representan números de 0 a 255. 125 00:06:15,680 --> 00:06:16,180 Dereita. 126 00:06:16,180 --> 00:06:18,770 Todos os 8 bits son 0 que é 0. 127 00:06:18,770 --> 00:06:23,640 O primeiro bit é 1, que é o número un, e así por diante, todo o camiño ata 255. 128 00:06:23,640 --> 00:06:28,290 E é por iso que a caracteres que poden ser teñen esencialmente ata 255 deles, 129 00:06:28,290 --> 00:06:31,210 pero iso é moito para cubrir todos os personaxes, necesitamos empregar. 130 00:06:31,210 --> 00:06:38,060 >> Para enteiros, pode que 0 e entón tes 2 á 32 menos 1. 131 00:06:38,060 --> 00:06:40,340 Estes son cantas opcións ten para enteiros. 132 00:06:40,340 --> 00:06:44,780 >> Por un longo, ten 0 a 2 a 64 menos 1. 133 00:06:44,780 --> 00:06:48,860 Entón tes moitos, moitos, máis opcións para longs. 134 00:06:48,860 --> 00:06:54,220 >> Cordas, que é un punto de interrogación porque iso é un cliffhanger para máis tarde. 135 00:06:54,220 --> 00:06:55,000 Si. 136 00:06:55,000 --> 00:06:56,350 Podería dicir que todo o mundo no bordo da sede, 137 00:06:56,350 --> 00:06:57,450 como o que é que o punto de interrogación? 138 00:06:57,450 --> 00:06:58,390 É un cliffhanger. 139 00:06:58,390 --> 00:07:02,340 Imos, finalmente, cubrir o tamaño cordas e falar máis sobre cadeas. 140 00:07:02,340 --> 00:07:04,692 Porque cadea é realmente unha das Rodas pequenas 141 00:07:04,692 --> 00:07:06,400 poñemos nesta curso no inicio 142 00:07:06,400 --> 00:07:09,700 e despois despegar despois no, porque cadeas en C 143 00:07:09,700 --> 00:07:13,320 son realmente punteiros a arrays de caracteres. 144 00:07:13,320 --> 00:07:15,810 Pero, de novo, iso é unha Cliffhanger para máis tarde. 145 00:07:15,810 --> 00:07:18,890 Antes de pasar todas as preguntas, comentarios, os problemas con este slide? 146 00:07:18,890 --> 00:07:25,800 147 00:07:25,800 --> 00:07:26,630 >> Aceptar. 148 00:07:26,630 --> 00:07:30,330 Debo ser un explicador fantástico. 149 00:07:30,330 --> 00:07:33,210 Ademais, cando está programando, está indo a usar estes operadores. 150 00:07:33,210 --> 00:07:36,730 Sinais realmente simple que poden facer simple operacións, co que probablemente está 151 00:07:36,730 --> 00:07:38,340 xa moi familiar. 152 00:07:38,340 --> 00:07:42,580 >> Por exemplo, na parte dereita banda, vemos engadir. 153 00:07:42,580 --> 00:07:44,640 Para engadir, que acaba de facer un sinal Plus. 154 00:07:44,640 --> 00:07:46,850 E así pode que dúas variables x e y. 155 00:07:46,850 --> 00:07:48,810 Podes facer x + y no seu código. 156 00:07:48,810 --> 00:07:52,790 Que quere dicir que a-- ten o número 7 e 3, 157 00:07:52,790 --> 00:07:55,780 quere almacenar que nunha variable chamada suma. 158 00:07:55,780 --> 00:08:03,010 Podes facer int para o tipo, o espazo suma, o nome da variable, = 7 + 3; 159 00:08:03,010 --> 00:08:05,780 >> O que sería esa tenda en suma? 160 00:08:05,780 --> 00:08:07,190 Anyone? 161 00:08:07,190 --> 00:08:09,270 Se eu tivese que sum = 7 + 3. 162 00:08:09,270 --> 00:08:10,437 O que sería almacenado en suma? 163 00:08:10,437 --> 00:08:11,520 Pode só grite. 164 00:08:11,520 --> 00:08:12,120 Audiencia: 10. 165 00:08:12,120 --> 00:08:12,995 >> JASON Hirschhorn: 10! 166 00:08:12,995 --> 00:08:14,870 Isto é exactamente correcto. 167 00:08:14,870 --> 00:08:19,520 E na suma = 7-3, Eu só uso ese sinal trazo. 168 00:08:19,520 --> 00:08:20,871 O que vai ser almacenado? 169 00:08:20,871 --> 00:08:21,370 Audiencia: 4. 170 00:08:21,370 --> 00:08:22,203 JASON Hirschhorn: 4. 171 00:08:22,203 --> 00:08:25,770 Suma é probablemente o nome incorrecto esa variable, pero 4 sería almacenado. 172 00:08:25,770 --> 00:08:31,890 >> Para multiplicar en C, use o pequeno Carácter Star, non usar un x. 173 00:08:31,890 --> 00:08:35,990 Para dividir, usar un Forward Non cortar o símbolo de división. 174 00:08:35,990 --> 00:08:39,580 E módulo, use o símbolo por cento. 175 00:08:39,580 --> 00:08:47,900 >> Entón, digamos que quero ver int z = 7% 3, o que sería almacenado Z? 176 00:08:47,900 --> 00:08:51,250 Entón, iso é, esencialmente, pregunta o que é que modulo facer? 177 00:08:51,250 --> 00:08:52,750 Alguén sabe o que modulo fai? 178 00:08:52,750 --> 00:08:53,940 Si. 179 00:08:53,940 --> 00:08:54,870 y 4. 180 00:08:54,870 --> 00:08:56,120 COLUMNA 1: É o resto. 181 00:08:56,120 --> 00:08:58,369 Jason Hirschhorn: É o resto cando dividir. 182 00:08:58,369 --> 00:09:02,790 Así 7 divídese por 3 2 1 restante. 183 00:09:02,790 --> 00:09:04,690 Entón 1 sería almacenado. 184 00:09:04,690 --> 00:09:06,970 >> Fixo a resta, pero é así que funciona. 185 00:09:06,970 --> 00:09:09,140 Iso é o que o operador módulo fai. 186 00:09:09,140 --> 00:09:12,360 É preciso un número divídese o por outro número e devolve para ti 187 00:09:12,360 --> 00:09:14,590 o restante. 188 00:09:14,590 --> 00:09:19,770 Entón, de novo, 7% 3 dálle 1, porque 7 divídese por 3 2 resto 1, 189 00:09:19,770 --> 00:09:21,650 e devolve o resto. 190 00:09:21,650 --> 00:09:24,470 >> E canto imos voltar a subir un paso para que sinal de división. 191 00:09:24,470 --> 00:09:29,194 Se eu fixen 7 / dividido por 3 fai Alguén sabe o que que quere volver? 192 00:09:29,194 --> 00:09:30,090 >> COLUMNA 2: 2. 193 00:09:30,090 --> 00:09:32,240 >> JASON Hirschhorn: Por que dous e non 2.333? 194 00:09:32,240 --> 00:09:34,560 >> COLUMNA 2: Eu creo que corta despois o número enteiro. 195 00:09:34,560 --> 00:09:36,310 JASON Hirschhorn: Entón, que é correcto. 196 00:09:36,310 --> 00:09:39,880 En C, se fai a división de dous enteiros 7 dividido por 3, 197 00:09:39,880 --> 00:09:43,430 recibe a resposta que neste caso 2,3333 para sempre 198 00:09:43,430 --> 00:09:47,080 e comprobar que punto decimal e corta todo fora despois do decimal 199 00:09:47,080 --> 00:09:49,240 e el só retorna 2. 200 00:09:49,240 --> 00:09:51,120 >> Entón, se eu fixen 8 dividido por tres. 201 00:09:51,120 --> 00:09:54,010 Que en realidade, sabemos que para volver 2.666, 202 00:09:54,010 --> 00:09:57,050 pero corta todo fóra decimal, trunca-lo todo, 203 00:09:57,050 --> 00:09:58,640 e só regresa a vostedes dous. 204 00:09:58,640 --> 00:10:02,090 Entón 6 dividido por 3, 7 dividido por 3, 8 dividida por 3, 205 00:10:02,090 --> 00:10:04,840 están todos indo a voltar a vostede 2. 206 00:10:04,840 --> 00:10:08,770 >> Alguén sabe ou ten un palpite, de como eu podería realmente comezar 207 00:10:08,770 --> 00:10:10,790 a resposta completa se eu queira que decimal? 208 00:10:10,790 --> 00:10:13,120 209 00:10:13,120 --> 00:10:13,620 Si. 210 00:10:13,620 --> 00:10:14,152 Vai adiante. 211 00:10:14,152 --> 00:10:15,110 COLUMNA 3: Usar unha boia? 212 00:10:15,110 --> 00:10:16,942 JASON Hirschhorn: O que quere dicir? 213 00:10:16,942 --> 00:10:19,786 COLUMNA 3: Porque dixo que o flotador, para os números [inaudível] 214 00:10:19,786 --> 00:10:22,900 215 00:10:22,900 --> 00:10:23,900 JASON Hirschhorn: Correcto. 216 00:10:23,900 --> 00:10:26,100 Entón, iso é correcto. 217 00:10:26,100 --> 00:10:28,440 7 é un número enteiro. 218 00:10:28,440 --> 00:10:31,690 Pero se eu quería transformar esa nun número de punto flotante, 219 00:10:31,690 --> 00:10:34,674 Eu tería que gardar esta como 7.0 porque o ordenador 220 00:10:34,674 --> 00:10:37,090 é realmente stupid-- vimos que coa example-- PB e J 221 00:10:37,090 --> 00:10:38,930 ela só vai facer exactamente o que diga a el. 222 00:10:38,930 --> 00:10:40,846 >> Entón, se escribir 7, el creo que é un enteiro. 223 00:10:40,846 --> 00:10:43,640 Se escribir 7.0, aínda que Sabe esas cousas son equivalentes, 224 00:10:43,640 --> 00:10:45,550 que trata como un número de punto flotante. 225 00:10:45,550 --> 00:10:50,441 Entón, se fixo 7,0 dividido por 3, ou dividido por 3,0, 226 00:10:50,441 --> 00:10:52,440 el diría: OK, agora estamos lidando con coches alegóricos. 227 00:10:52,440 --> 00:10:57,514 Vou volver a vostede 2.333333 para sempre. 228 00:10:57,514 --> 00:10:59,930 Pero non é realmente para sempre, porque como tamén vimos na charla, 229 00:10:59,930 --> 00:11:03,350 eses números de punto flotante non son exactamente preciso. 230 00:11:03,350 --> 00:11:05,940 >> Entón, se quere que decimal, ou unha parte do que decimal, 231 00:11:05,940 --> 00:11:08,090 entón ten que use-- un deles ten que ser un número de coma flotante 232 00:11:08,090 --> 00:11:11,048 eo ordenador debe entender que este é un punto flotante é 233 00:11:11,048 --> 00:11:13,350 lidando con, e non un enteiro. 234 00:11:13,350 --> 00:11:16,760 Calquera preguntas sobre esa táboa en á dereita, ata agora? 235 00:11:16,760 --> 00:11:22,650 Ou o seu lado esquerdo, a súa á esquerda, o seu lado esquerdo. 236 00:11:22,650 --> 00:11:23,264 Si. 237 00:11:23,264 --> 00:11:23,972 COLUMNA 4: Correcto. 238 00:11:23,972 --> 00:11:26,216 Para só como un estándar enteiros, faría 239 00:11:26,216 --> 00:11:30,230 write-- que ten que escribir flotar? 240 00:11:30,230 --> 00:11:31,920 >> JASON Hirschhorn: Si lo. 241 00:11:31,920 --> 00:11:34,400 Ben, se quere crear unha variable que é un flotador, 242 00:11:34,400 --> 00:11:37,020 precisa dicir flotador z é igual a algo. 243 00:11:37,020 --> 00:11:37,640 >> COLUMNA 4: Aceptar. 244 00:11:37,640 --> 00:11:41,950 >> JASON Hirschhorn: Pero se eu quería facer 7 dividido por 3 e obter ese decimal, 245 00:11:41,950 --> 00:11:48,540 Eu faría flotar z = 7,0 / 3,0; e que me daría o punto flotante 246 00:11:48,540 --> 00:11:49,273 número. 247 00:11:49,273 --> 00:11:50,000 >> COLUMNA 4: Aceptar. 248 00:11:50,000 --> 00:11:56,370 >> JASON Hirschhorn: Se eu fixen algo así como int z = 7 / por 3, 249 00:11:56,370 --> 00:12:00,856 que me daría un enteiro, porque eses son todos os enteiros. 250 00:12:00,856 --> 00:12:01,730 Isto ten sentido? 251 00:12:01,730 --> 00:12:02,320 >> COLUMNA 4: Si. 252 00:12:02,320 --> 00:12:02,950 >> JASON Hirschhorn: Aceptar. 253 00:12:02,950 --> 00:12:03,450 Gran. 254 00:12:03,450 --> 00:12:06,030 Calquera outras preguntas sobre esa mesa? 255 00:12:06,030 --> 00:12:07,220 Realmente? 256 00:12:07,220 --> 00:12:08,380 Estou tan animado. 257 00:12:08,380 --> 00:12:09,120 Aceptar. 258 00:12:09,120 --> 00:12:13,910 >> Por iso, algunhas outras cousas que vai usar, moitas veces en condicións ou loops, 259 00:12:13,910 --> 00:12:17,580 son estes tipos de operators-- este tipo de expresións booleanas. 260 00:12:17,580 --> 00:12:23,140 E como aprendemos, == é o que utilizar para comprobar que dúas cousas son iguais. 261 00:12:23,140 --> 00:12:28,170 >> Entón, aquí estou comprobando se x == y, imos novo supoñer que x é 7 e y é 3. 262 00:12:28,170 --> 00:12:33,220 Entón, se eu escribín 7 == 3, o que tería que volver para min? 263 00:12:33,220 --> 00:12:34,220 Isto é certo ou falso? 264 00:12:34,220 --> 00:12:35,275 >> Audiencia: False. 265 00:12:35,275 --> 00:12:36,150 JASON Hirschhorn: Aceptar. 266 00:12:36,150 --> 00:12:37,370 Eu sinto que todo o mundo pode recibir un regalo. 267 00:12:37,370 --> 00:12:39,054 Entón todo o mundo, o que tería que volver? 268 00:12:39,054 --> 00:12:39,720 Audiencia: False. 269 00:12:39,720 --> 00:12:40,130 JASON Hirschhorn: False. 270 00:12:40,130 --> 00:12:40,850 Gran. 271 00:12:40,850 --> 00:12:41,930 7 non é igual a 3. 272 00:12:41,930 --> 00:12:44,530 Entón 7 == 3 retornaría false. 273 00:12:44,530 --> 00:12:50,746 Ten un sinal non é igual, polo que, se eu Comprobarase 7! = 3, o que tería que volver? 274 00:12:50,746 --> 00:12:51,370 Audiencia: True. 275 00:12:51,370 --> 00:12:52,650 JASON Hirschhorn: True. 276 00:12:52,650 --> 00:12:53,200 Excelente. 277 00:12:53,200 --> 00:12:55,990 Alguén foi moi enfático en a parte de atrás e gozar iso. 278 00:12:55,990 --> 00:12:59,070 Entón tes menos de operador, inferior ou igual a operadora, 279 00:12:59,070 --> 00:13:01,990 maior operador, maior que ou igual a do operador. 280 00:13:01,990 --> 00:13:03,490 >> Entón, unha comprobación de sanidade. 281 00:13:03,490 --> 00:13:05,660 Se eu tivese 7 é maior que ou igual a 3. 282 00:13:05,660 --> 00:13:06,966 Que tería que volver? 283 00:13:06,966 --> 00:13:07,692 >> Audiencia: True. 284 00:13:07,692 --> 00:13:08,650 JASON Hirschhorn: True. 285 00:13:08,650 --> 00:13:10,050 Si. 286 00:13:10,050 --> 00:13:13,290 Esa sala de volta, verso do cuarto, fantástico. 287 00:13:13,290 --> 00:13:16,240 Pode combina-las expresións, se lle gusta, así, 288 00:13:16,240 --> 00:13:21,880 cun Correo lóxico que é && Ou un ou lóxico que é || 289 00:13:21,880 --> 00:13:22,800 ||. 290 00:13:22,800 --> 00:13:25,785 E entón agora pode probar dous together-- cousas é divertido? 291 00:13:25,785 --> 00:13:28,250 Por que iso é divertido? 292 00:13:28,250 --> 00:13:35,200 >> Entón, se eu quixese, podo dicir é 7 máis de 3 e 2 é inferior a 4? 293 00:13:35,200 --> 00:13:37,090 Ben, se 7 é maior de 3, iso é certo. 294 00:13:37,090 --> 00:13:38,400 2 sexa inferior a 4, iso é certo. 295 00:13:38,400 --> 00:13:41,140 Entón, esa cousa toda vai voltar true. 296 00:13:41,140 --> 00:13:45,130 >> Se eu proba 7 é maior que 3 e- Eu só estou pegando números aleatorios aqui-- 297 00:13:45,130 --> 00:13:47,340 4 sexa inferior a 2, ben, iso é falso. 298 00:13:47,340 --> 00:13:49,610 Así, o certo eo falso facer falsas. 299 00:13:49,610 --> 00:13:54,520 E pode seguir adiante e combinar como moitas condicións, xunto como lle gustaría. 300 00:13:54,520 --> 00:14:00,000 >> Alguén ten algunha dúbida, comentarios, preocupacións tan lonxe? 301 00:14:00,000 --> 00:14:03,862 E vexo que algúns de vós facer fotos de min na pantalla, que eu aprecio. 302 00:14:03,862 --> 00:14:05,070 Afortunadamente, non está snapchat. 303 00:14:05,070 --> 00:14:06,417 Esperanza, é para as súas notas. 304 00:14:06,417 --> 00:14:08,500 Pero todos estes van para estar dispoñible en liña. 305 00:14:08,500 --> 00:14:11,210 Entón non ten que facer fotos disto. 306 00:14:11,210 --> 00:14:15,150 Como mencionei, todo estará dispoñible en liña para ti. 307 00:14:15,150 --> 00:14:15,650 Aceptar. 308 00:14:15,650 --> 00:14:17,980 Estou a piques de comezar fóra do escenario, o mesmo acontece con calquera 309 00:14:17,980 --> 00:14:20,350 quero dicir nada antes de que isto ocorre? 310 00:14:20,350 --> 00:14:21,080 Preguntas? 311 00:14:21,080 --> 00:14:21,680 >> [Interpoñendo voces] 312 00:14:21,680 --> 00:14:22,250 >> JASON Hirschhorn: Oh, pare. 313 00:14:22,250 --> 00:14:23,290 Vostedes son moi agradable. 314 00:14:23,290 --> 00:14:23,790 Aceptar. 315 00:14:23,790 --> 00:14:26,520 Vou marcar para fóra. 316 00:14:26,520 --> 00:14:27,240 Imos. 317 00:14:27,240 --> 00:14:29,570 >> ANDI Pengo: Nós imos facer un cambio Mic estraño agora. 318 00:14:29,570 --> 00:14:32,280 >> JASON Hirschhorn: Eu son vai sacar iso. 319 00:14:32,280 --> 00:14:33,946 ANDI Pengo: Grazas polo apoio, persoal. 320 00:14:33,946 --> 00:14:42,250 321 00:14:42,250 --> 00:14:43,180 Podes escoitarme? 322 00:14:43,180 --> 00:14:43,930 Isto é bo? 323 00:14:43,930 --> 00:14:44,760 Perfecto. 324 00:14:44,760 --> 00:14:45,630 Fermoso. 325 00:14:45,630 --> 00:14:47,490 Déixeme só que dobrar en. 326 00:14:47,490 --> 00:14:49,100 Aceptar. 327 00:14:49,100 --> 00:14:54,140 Entón, eu estou a piques de facer como un xigante información botan sobre vós agora. 328 00:14:54,140 --> 00:14:57,370 E non se preocupe se vostede é calquera non seguir cada pequena liña que 329 00:14:57,370 --> 00:14:58,812 Estou a piques de amosar-lle. 330 00:14:58,812 --> 00:15:00,770 Como Jason dixo, todo é totalmente en liña. 331 00:15:00,770 --> 00:15:03,780 Só imos tratar introducir todos os conceptos cuberta 332 00:15:03,780 --> 00:15:05,270 nalgunhas destas láminas. 333 00:15:05,270 --> 00:15:06,582 Entón, só tes que seguir xunto. 334 00:15:06,582 --> 00:15:09,540 Non te preocupes se non entende todo; Con todo, en calquera punto 335 00:15:09,540 --> 00:15:12,820 Se sente perdido, aumentar o seu man, imos parar, non se preocupe. 336 00:15:12,820 --> 00:15:15,060 Legal. 337 00:15:15,060 --> 00:15:19,270 >> Entón eu creo que algo que David ten xa mencionado no tipo de charla 338 00:15:19,270 --> 00:15:23,240 e Jason tipo de alusión para hoxe é que é unha biblioteca. 339 00:15:23,240 --> 00:15:27,510 Así, na programación, temos isto chamadas bibliotecas. 340 00:15:27,510 --> 00:15:29,690 Sempre que, esencialmente, todo están é só un conxunto 341 00:15:29,690 --> 00:15:32,610 de funcións, que é esencialmente só código que é 342 00:15:32,610 --> 00:15:35,070 xa foi escrito por alguén que todos podemos 343 00:15:35,070 --> 00:15:36,410 utilizar dentro dos nosos programas. 344 00:15:36,410 --> 00:15:38,790 >> Entón como é que un normal, traballo biblioteca, non? 345 00:15:38,790 --> 00:15:40,030 Entra pola porta da biblioteca. 346 00:15:40,030 --> 00:15:41,890 Ten todas esas libros que podes tirar para fóra 347 00:15:41,890 --> 00:15:44,590 e pode acceder a información dentro destes libros. 348 00:15:44,590 --> 00:15:45,840 Mesmo na programación. 349 00:15:45,840 --> 00:15:48,820 >> Ten unha biblioteca que xa ten foron escritos por outras persoas. 350 00:15:48,820 --> 00:15:51,530 E o xeito que pode, como programador ou un estudante, 351 00:15:51,530 --> 00:15:55,780 pode ter acceso a esa biblioteca é a través da hashtag # include. 352 00:15:55,780 --> 00:15:59,720 >> Por exemplo, en C nós ten a tres C-- 353 00:15:59,720 --> 00:16:03,420 comunmente usado tres C estándar libraries-- a biblioteca de entrada / saída, 354 00:16:03,420 --> 00:16:05,540 a biblioteca de corda, ea biblioteca matemática. 355 00:16:05,540 --> 00:16:07,610 >> Entón, dentro da súa primeira problema parella define, 356 00:16:07,610 --> 00:16:10,940 estes serán os tres que está a usar principalmente. 357 00:16:10,940 --> 00:16:14,610 Así como David xa explicou en conferencia, 358 00:16:14,610 --> 00:16:17,460 o estándar E / biblioteca, ou o biblioteca estándar de entrada / saída 359 00:16:17,460 --> 00:16:18,620 fai exactamente iso. 360 00:16:18,620 --> 00:16:23,530 Permite que, no seu código, a entrada nada do usuario e de saída que 361 00:16:23,530 --> 00:16:25,960 para a pantalla, esencialmente imprimir lo para a pantalla. 362 00:16:25,960 --> 00:16:29,990 >> E así todo o tempo que usar calquera funcións, por exemplo, a función printf (), que 363 00:16:29,990 --> 00:16:33,319 imos pasar por riba o seguinte foto, asegúrese de incluír o estándar E / 364 00:16:33,319 --> 00:16:36,360 biblioteca, ou non vai poder usar a función printf (). 365 00:16:36,360 --> 00:16:39,110 Porque, como o programador en realidade nunca escribiu esa función, 366 00:16:39,110 --> 00:16:41,840 só está a usar alguén código de outra persoa dentro do seu propio código. 367 00:16:41,840 --> 00:16:43,620 >> Isto ten sentido todo o mundo? 368 00:16:43,620 --> 00:16:44,520 Legal. 369 00:16:44,520 --> 00:16:48,530 >> E, entón, esencialmente sujem a biblioteca eo math.h string.h 370 00:16:48,530 --> 00:16:52,970 biblioteca, .h só significa biblioteca, outras bibliotecas que finalmente 371 00:16:52,970 --> 00:16:55,310 estar usando dentro do seu código. 372 00:16:55,310 --> 00:16:57,620 >> Con todo, para fins desta biblioteca, que tamén 373 00:16:57,620 --> 00:17:01,170 have-- deste class-- temos tamén o que se chama a biblioteca CS50, 374 00:17:01,170 --> 00:17:05,270 cs50.h, onde nós, para súa lectura crearon 375 00:17:05,270 --> 00:17:07,369 moitas funcións importantes e útiles. 376 00:17:07,369 --> 00:17:09,550 Así que como un programador pode incorporarse carona off 377 00:17:09,550 --> 00:17:14,470 o que nós xa escribimos, para que deste dispoñible función para ti 378 00:17:14,470 --> 00:17:15,599 para o seu uso. 379 00:17:15,599 --> 00:17:18,359 >> Eu estarei cubrindo un par de as funcións de uso xeral, 380 00:17:18,359 --> 00:17:20,839 pero sabemos que estas son todos googleable liña. 381 00:17:20,839 --> 00:17:24,904 Sinto-se libre, puxe para arriba a biblioteca e CS50 entón tes todas as funcións alí. 382 00:17:24,904 --> 00:17:25,828 Si. 383 00:17:25,828 --> 00:17:28,140 >> COLUMNA 5: Entón, se non fose utilizando o software que 384 00:17:28,140 --> 00:17:29,916 é proporcionada a nós por a clase, que fai 385 00:17:29,916 --> 00:17:32,698 significa que teriamos que atopar e descargar arquivar este cabeceira nós mesmos e dizer- 386 00:17:32,698 --> 00:17:33,840 o ordenador onde está? 387 00:17:33,840 --> 00:17:34,320 >> ANDI Pengo: Excelente pregunta. 388 00:17:34,320 --> 00:17:34,820 Exactamente. 389 00:17:34,820 --> 00:17:38,194 Entón, é como se non está fisicamente presente nunha biblioteca, 390 00:17:38,194 --> 00:17:40,360 non hai ningunha forma de ti realmente ir e acceder a ela. 391 00:17:40,360 --> 00:17:42,589 Así, o mesmo con programación en C, que 392 00:17:42,589 --> 00:17:45,880 ten que ter seguro que está a usar o noso aparello porque a biblioteca é xa 393 00:17:45,880 --> 00:17:47,270 foi incorporado nel. 394 00:17:47,270 --> 00:17:50,020 E entón cando hashtag #include, a biblioteca de alí. 395 00:17:50,020 --> 00:17:50,520 Si. 396 00:17:50,520 --> 00:17:51,920 Boa pregunta. 397 00:17:51,920 --> 00:17:53,461 Todo o mundo é bo? 398 00:17:53,461 --> 00:17:53,960 Legal. 399 00:17:53,960 --> 00:17:56,371 400 00:17:56,371 --> 00:17:56,870 Todo ben. 401 00:17:56,870 --> 00:17:59,330 Entón, nós estamos indo bater, Esencialmente, o que é 402 00:17:59,330 --> 00:18:01,620 que a primeira función nós como programadores son 403 00:18:01,620 --> 00:18:03,900 vai estar usando dentro do noso código. 404 00:18:03,900 --> 00:18:05,690 Esta é a chamada función printf (). 405 00:18:05,690 --> 00:18:08,450 Así, a función printf (), como eu xa dixen no último foto, 406 00:18:08,450 --> 00:18:11,830 está incluído no estándar I / O, Standard input / output, biblioteca. 407 00:18:11,830 --> 00:18:16,470 >> Polo tanto, asegúrese de que o que está using-- Oh, déixeme coller o láser pointer-- 408 00:18:16,470 --> 00:18:18,660 sempre que está a usar a función printf (), 409 00:18:18,660 --> 00:18:21,790 ten que incluír o estándar E / biblioteca ou ben, cando compilar, 410 00:18:21,790 --> 00:18:23,760 vai obter un erro porque o ordenador será como, 411 00:18:23,760 --> 00:18:26,140 Oh, eu non sei onde printf () é, non está me dicindo onde printf () 412 00:18:26,140 --> 00:18:26,830 é. 413 00:18:26,830 --> 00:18:30,150 Ben printf () está incluído no E / S estándar, entón cando usa printf (), 414 00:18:30,150 --> 00:18:32,960 asegúrese de que ten liña anterior seu código. 415 00:18:32,960 --> 00:18:36,040 >> Así, por exemplo, printf () aquí é unha función. 416 00:18:36,040 --> 00:18:40,260 Todo o que fai é imprimir algo dentro dos parénteses para o usuario. 417 00:18:40,260 --> 00:18:44,840 Será que alguén quere tomar unha facada en que esta liña de código á dereita 418 00:18:44,840 --> 00:18:46,420 aquí vai imprimir? 419 00:18:46,420 --> 00:18:48,730 Así, a resposta está na pantalla. 420 00:18:48,730 --> 00:18:50,480 Anyone? 421 00:18:50,480 --> 00:18:51,380 >> VERDI: A parte inferior. 422 00:18:51,380 --> 00:18:53,510 >> ANDI Pengo: Verdi, por que non vaia adiante e dicir toda a declaración? 423 00:18:53,510 --> 00:18:55,718 >> Verdi: Ola, meu nome é Andi, e eu teño 20 anos de idade. 424 00:18:55,718 --> 00:18:57,270 ANDI Pengo: Ah, encantador. 425 00:18:57,270 --> 00:19:00,240 Así, nesta liña que imos imprimir, Ola, meu nome é Andi, 426 00:19:00,240 --> 00:19:04,280 e eu teño 20 anos de idade, que é de feito unha afirmación verdadeira. 427 00:19:04,280 --> 00:19:05,090 >> Syntax. 428 00:19:05,090 --> 00:19:08,830 Entón par de cuestións sintácticas que vós queredes estar seguro de que vostede sabe. 429 00:19:08,830 --> 00:19:09,360 Presupostos. 430 00:19:09,360 --> 00:19:13,170 Comiñas dobres contar a ordenador que todo dentro 431 00:19:13,170 --> 00:19:14,850 será impresa. 432 00:19:14,850 --> 00:19:16,620 >> Todo dentro de lata ser exactamente como 433 00:19:16,620 --> 00:19:19,920 escriba-lo, excepto para vulgarmente ao final, 434 00:19:19,920 --> 00:19:23,610 imos querer incluír un hash-- oh sorry-- un trazo n. 435 00:19:23,610 --> 00:19:24,640 Así, un trazo n. 436 00:19:24,640 --> 00:19:28,884 >> Alguén quere dar un palpite o que fai que o noso código? 437 00:19:28,884 --> 00:19:29,465 Si. 438 00:19:29,465 --> 00:19:30,840 COLUMNA 6 Pon-lo nunha nova liña. 439 00:19:30,840 --> 00:19:31,650 ANDI Pengo: Exactamente. 440 00:19:31,650 --> 00:19:34,660 Entón, todo isto fai é permitir que pase o que pase 441 00:19:34,660 --> 00:19:37,520 despois diso, tras esta declaración, a ser impreso para unha nova liña. 442 00:19:37,520 --> 00:19:40,030 De xeito que cando está escribindo o seu código que non ten cousas aleatoriamente 443 00:19:40,030 --> 00:19:41,738 recrecidos despois que non quere. 444 00:19:41,738 --> 00:19:43,700 Isto todo queda ordenadamente impresa unha liña 445 00:19:43,700 --> 00:19:46,870 e, despois, comezar na liña seguinte. 446 00:19:46,870 --> 00:19:50,970 >> Alguén se lembra o que iso punto e coma fai cando estamos codificación? 447 00:19:50,970 --> 00:19:54,580 448 00:19:54,580 --> 00:19:55,330 Si. 449 00:19:55,330 --> 00:19:55,740 >> COLUMNA 7: Declaración. 450 00:19:55,740 --> 00:19:56,010 >> ANDI Pengo: Sentímolo? 451 00:19:56,010 --> 00:19:57,100 >> COLUMNA 7: Será que acabar coa declaración? 452 00:19:57,100 --> 00:19:57,766 >> ANDI Pengo: Si. 453 00:19:57,766 --> 00:20:02,670 Así, en C, ou calquera tipo de programación linguaxe, o punto e coma 454 00:20:02,670 --> 00:20:04,640 indica o final dunha liña de programación. 455 00:20:04,640 --> 00:20:09,240 Así, por exemplo, en inglés usan período quere dicir, oh que é o fin dunha frase. 456 00:20:09,240 --> 00:20:12,857 Na programación, o mesmo, temos un punto e coma a indicar o final dunha liña. 457 00:20:12,857 --> 00:20:14,690 Moitas veces, cando está comezando a programar, 458 00:20:14,690 --> 00:20:17,150 notarás que esqueza facer un punto e coma 459 00:20:17,150 --> 00:20:19,400 e, a continuación, tentar realizar o seu O código e non funciona. 460 00:20:19,400 --> 00:20:21,520 E é como, Ah, eu non sei sei por que, el debería estar traballando. 461 00:20:21,520 --> 00:20:24,394 >> As posibilidades son que probablemente esqueceu dun punto e coma ou un soporte ou algo 462 00:20:24,394 --> 00:20:25,020 en algún lugar. 463 00:20:25,020 --> 00:20:27,740 Entón, iso é importante para lembrar. 464 00:20:27,740 --> 00:20:29,627 Legal. 465 00:20:29,627 --> 00:20:31,960 Todo ben, concerto de mans, como moitas persoas aquí teñen sempre 466 00:20:31,960 --> 00:20:37,210 tomado AP Ciencia da Computación ou programado en Java antes, nunca? 467 00:20:37,210 --> 00:20:37,710 Aceptar. 468 00:20:37,710 --> 00:20:38,210 Encantador. 469 00:20:38,210 --> 00:20:41,340 Isto non será aplicable a continuación, pero en Java, vostede 470 00:20:41,340 --> 00:20:44,960 ten algo chamado System.out.println que non existe en C. 471 00:20:44,960 --> 00:20:49,927 >> Así, en C, sempre que quere engadir variables 472 00:20:49,927 --> 00:20:51,760 en calquera cousa que quere para imprimir, hai 473 00:20:51,760 --> 00:20:54,620 unha sintaxe específica que imos empregar. 474 00:20:54,620 --> 00:20:56,520 Iso é chamado a placeholding-- esencialmente 475 00:20:56,520 --> 00:21:01,180 sumarmos espazos reservados no lugar do enteiro ou a variable 476 00:21:01,180 --> 00:21:02,580 que desexa imprimir. 477 00:21:02,580 --> 00:21:07,430 >> Entón, como podedes ver, nós incluímos un novo cabeceira biblioteca de arquivos aquí. 478 00:21:07,430 --> 00:21:09,130 A biblioteca de CS50. 479 00:21:09,130 --> 00:21:13,160 E contido dentro desa biblioteca CS50 é unha función común que imos usar 480 00:21:13,160 --> 00:21:15,610 no noso curso chamado GetInt (). 481 00:21:15,610 --> 00:21:21,830 >> Alguén quere tomar unha facada en o que GetInt () pode posiblemente estar facendo. 482 00:21:21,830 --> 00:21:22,830 >> Audiencia: [inaudível] 483 00:21:22,830 --> 00:21:23,550 >> ANDI Pengo: Sentímolo. 484 00:21:23,550 --> 00:21:24,370 Non se puido escoitalo. 485 00:21:24,370 --> 00:21:25,511 Maddie, ninguén. 486 00:21:25,511 --> 00:21:27,260 Maddie: Oh, el solicitará vostede para un número enteiro. 487 00:21:27,260 --> 00:21:28,051 ANDI Pengo: Exactamente. 488 00:21:28,051 --> 00:21:30,670 Entón esta función, outra función que xa está 489 00:21:30,670 --> 00:21:33,690 foi escrito por alguén máis que podemos invocar agora. 490 00:21:33,690 --> 00:21:38,000 Todo o que é pedir a vostede, o usuario, a entrada que quere que o código 491 00:21:38,000 --> 00:21:41,850 está en execución e almacena whatever-- neste caso estamos GetInt () - ing, 492 00:21:41,850 --> 00:21:44,060 entón iso significa que somos a obtención dun número enteiro. 493 00:21:44,060 --> 00:21:46,150 >> E nós estamos indo para almacenar que noutro enteiro 494 00:21:46,150 --> 00:21:48,900 que acabamos fixo chamada idade. 495 00:21:48,900 --> 00:21:51,500 Isto ten sentido para todos? 496 00:21:51,500 --> 00:21:52,190 Legal. 497 00:21:52,190 --> 00:21:56,400 >> Polo tanto, agora que temos gardado este número enteiro, que temos solicitado ao usuario, 498 00:21:56,400 --> 00:22:00,010 nesta variable, temos creado do tipo int chamado idade, 499 00:22:00,010 --> 00:22:03,720 podemos ir adiante e lugar esa función no noso printf (). 500 00:22:03,720 --> 00:22:08,970 Así, a sintaxe xeralmente para printf () é que onde queira que no seu físico real 501 00:22:08,970 --> 00:22:14,410 liña que pretende incluír ese enteiro, fai ese símbolo alí mesmo, 502 00:22:14,410 --> 00:22:17,800 o símbolo por cento, coa tipo de variable que quere. 503 00:22:17,800 --> 00:22:20,090 >> Polo tanto, neste caso, a idade é un número enteiro. 504 00:22:20,090 --> 00:22:25,030 Entón está indo a incluír % I porque é un número enteiro. 505 00:22:25,030 --> 00:22:26,860 E, despois de que o seu declaración, está indo 506 00:22:26,860 --> 00:22:30,370 facer coma eo nome da variable. 507 00:22:30,370 --> 00:22:33,420 >> Entón aquí, nós estamos indo a imprimir fóra, Ola, meu nome é Andi, 508 00:22:33,420 --> 00:22:35,730 e eu son anos de idade en branco. 509 00:22:35,730 --> 00:22:38,890 Hashta-- ou, sorry--, idade con calquera entrada I. 510 00:22:38,890 --> 00:22:42,790 Entón, se eu fose para entrada 20 para o meu GetInt () aquí, 511 00:22:42,790 --> 00:22:44,500 que ía imprimir exactamente o mesmo. 512 00:22:44,500 --> 00:22:47,990 Pero, se eu quería algo entrada outra cousa, como quizais 40 ou 45, 513 00:22:47,990 --> 00:22:50,800 a continuación, que ía ver que reflectía de conformidade, o código. 514 00:22:50,800 --> 00:22:52,886 >> Polo tanto, este é un exemplo algo no que 515 00:22:52,886 --> 00:22:55,260 el imprime e mira para vostede como se fose o mesmo, 516 00:22:55,260 --> 00:22:57,593 pero debaixo da capa de o ordenador hai realmente 517 00:22:57,593 --> 00:22:59,560 cousas moi diferentes suceder. 518 00:22:59,560 --> 00:23:00,060 Legal. 519 00:23:00,060 --> 00:23:02,760 520 00:23:02,760 --> 00:23:03,260 Todo ben. 521 00:23:03,260 --> 00:23:06,940 Entón, o que si queremos múltiples variables? 522 00:23:06,940 --> 00:23:08,290 Moi fácil. 523 00:23:08,290 --> 00:23:09,150 Mesmo. 524 00:23:09,150 --> 00:23:11,930 Temos tamén unha nova función aquí chamado GetString (), 525 00:23:11,930 --> 00:23:15,380 Tamén incluídos dentro da biblioteca CS50, que todo o que fai é pedir ao usuario 526 00:23:15,380 --> 00:23:18,120 para unha secuencia de caracteres, que é só un conxunto de caracteres, 527 00:23:18,120 --> 00:23:19,810 así como unha sentenza ou como un nome. 528 00:23:19,810 --> 00:23:25,470 >> Polo tanto, neste caso, teriamos dous espazos reservados% s para cordas e% i 529 00:23:25,470 --> 00:23:26,750 por enteiro. 530 00:23:26,750 --> 00:23:29,190 E nós estamos indo a seguir que por as dúas variables 531 00:23:29,190 --> 00:23:32,670 que quere incluir na orde que aparecen na sentenza. 532 00:23:32,670 --> 00:23:35,471 Así, por exemplo, o meu nome é en branco, quero un nome alí, 533 00:23:35,471 --> 00:23:36,970 entón eu vou ter o nome en primeiro lugar. 534 00:23:36,970 --> 00:23:39,637 E, a continuación, máis tarde, quero idade, quere ter segunda idade. 535 00:23:39,637 --> 00:23:42,720 E así se eu quixese entrada, Ola, Andi do meu nome, e eu teño 20 anos de idade. 536 00:23:42,720 --> 00:23:46,370 Se eu introducido Andi e 20, o exactamente o mesmo iría imprimir; 537 00:23:46,370 --> 00:23:51,134 con todo, agora temos dous almacenados variables de nome, así como int. 538 00:23:51,134 --> 00:23:51,634 Si. 539 00:23:51,634 --> 00:23:54,124 >> COLUMNA 8: Sería capaz de realizar se alternou 540 00:23:54,124 --> 00:23:55,620 nome e idade a finais do que? 541 00:23:55,620 --> 00:23:55,840 >> ANDI Pengo: Si. 542 00:23:55,840 --> 00:23:57,006 Isto é realmente boa pregunta. 543 00:23:57,006 --> 00:23:59,520 Entón, longa historia curta, non. 544 00:23:59,520 --> 00:24:03,070 Porque o nome e age-- tipo de variable é o nome? 545 00:24:03,070 --> 00:24:03,950 >> COLUMNA 8: cadea. 546 00:24:03,950 --> 00:24:05,440 >> ANDI Pengo: E o que tipo de variable é a idade? 547 00:24:05,440 --> 00:24:06,231 >> COLUMNA 8: Enteiros. 548 00:24:06,231 --> 00:24:10,290 ANDI Pengo: Polo tanto, temos aquí un marcador de posición para cordas e enteiro, non? 549 00:24:10,290 --> 00:24:13,350 Entón, se fose para cambiar estes, o ordenador non vai saber. 550 00:24:13,350 --> 00:24:16,250 Vai buscar por unha corda, e se tentar darlle un int, 551 00:24:16,250 --> 00:24:18,083 que vai ser como esperar Estou confuso, ten 552 00:24:18,083 --> 00:24:21,100 me dixo que eu debería ser asignación de memoria para un int. 553 00:24:21,100 --> 00:24:23,760 E aquí, cando espera un enteiro 554 00:24:23,760 --> 00:24:25,640 e darlle un nome e unha corda no seu lugar, 555 00:24:25,640 --> 00:24:28,931 el tamén vai ser moi confuso, el non se levará a cabo precisamente da forma que necesites. 556 00:24:28,931 --> 00:24:35,280 Entón, aquí, nomeamento e sintaxe é moi importante para a execución de código. 557 00:24:35,280 --> 00:24:37,991 Todo o mundo é bo? 558 00:24:37,991 --> 00:24:38,490 Si. 559 00:24:38,490 --> 00:24:39,476 Maddie. 560 00:24:39,476 --> 00:24:44,620 >> Maddie: Aquí, sei que nós miramos en exemplos en clase, onde preguntan 561 00:24:44,620 --> 00:24:46,950 cal é a súa idade, o que é o seu nome. 562 00:24:46,950 --> 00:24:50,250 Aquí, iso sería el doesn't-- se tivésemos de realizar ese código, 563 00:24:50,250 --> 00:24:51,750 que non ía pedir isto? 564 00:24:51,750 --> 00:24:54,740 Pero que tería só dous números de entrada e, a continuación, el sería executado como este? 565 00:24:54,740 --> 00:24:55,781 >> ANDI Pengo: Si, exactamente. 566 00:24:55,781 --> 00:24:58,250 Entón, se quería para que pantalla, insira a súa idade, 567 00:24:58,250 --> 00:25:01,100 pode simplemente engadir unha función printf () que di: Introduza a súa idade, 568 00:25:01,100 --> 00:25:01,600 enriba dela. 569 00:25:01,600 --> 00:25:02,711 Esta é unha boa pregunta. 570 00:25:02,711 --> 00:25:03,210 Si. 571 00:25:03,210 --> 00:25:07,964 >> COLUMNA 9: Entón, xa sería incluído no GetInt () [inaudível]. 572 00:25:07,964 --> 00:25:09,380 ANDI Pengo: Non, en realidade non é. 573 00:25:09,380 --> 00:25:11,809 Entón, todo isto fai é só solicita unha pantalla en branco 574 00:25:11,809 --> 00:25:13,100 para que o usuario introduza algo. 575 00:25:13,100 --> 00:25:17,420 Se quere, se quere imprimir algo que informa ao usuario como, 576 00:25:17,420 --> 00:25:21,110 por favor me dea a súa idade, entón tería que printf () que a si mesmo. 577 00:25:21,110 --> 00:25:23,789 Porque todo o mundo usa esa función para cousas distintas, 578 00:25:23,789 --> 00:25:26,080 pode estar almacenando idade, pode estar almacenando enderezo, 579 00:25:26,080 --> 00:25:28,060 podería almacenar números de teléfono. 580 00:25:28,060 --> 00:25:31,190 E por iso é realmente ata usos individuais dos seus homes 581 00:25:31,190 --> 00:25:34,390 para o que quere dicir. 582 00:25:34,390 --> 00:25:34,890 Si. 583 00:25:34,890 --> 00:25:38,236 >> Altofalante 10: Entón, só para aclarar, onde introduza o nome ea idade 584 00:25:38,236 --> 00:25:43,020 de xeito que aparece no lugar de% s? 585 00:25:43,020 --> 00:25:44,320 >> ANDI Pengo: Como no usuario? 586 00:25:44,320 --> 00:25:47,165 >> Altofalante 10: Si, como como fago facer ele-- onde podo poñer Andi, 587 00:25:47,165 --> 00:25:48,350 e onde podo poñer 20? 588 00:25:48,350 --> 00:25:48,640 >> ANDI Pengo: Si. 589 00:25:48,640 --> 00:25:50,250 Entón, se fose para realmente realizar este código, 590 00:25:50,250 --> 00:25:52,875 Non estou realmente correndo o código, este é só aquí agora. 591 00:25:52,875 --> 00:25:56,910 Se eu fose para executar o código, eu o faría compilar o código, facer o ficheiro, 592 00:25:56,910 --> 00:26:00,760 executar o código, e entón non habería só dous espazos para que eu introducir-lo. 593 00:26:00,760 --> 00:26:01,260 Si. 594 00:26:01,260 --> 00:26:03,843 Vostedes van ver cando xoga arredor co código vostede mesmo. 595 00:26:03,843 --> 00:26:05,760 596 00:26:05,760 --> 00:26:09,645 >> Todo ben que estamos indo a ir á seguinte sección que 597 00:26:09,645 --> 00:26:11,610 estaremos cubrindo hoxe. 598 00:26:11,610 --> 00:26:13,980 Imos repasar o que instrucións condicionais son. 599 00:26:13,980 --> 00:26:16,500 Entón, se vostedes lembran e lembrar da charla, 600 00:26:16,500 --> 00:26:19,210 instrucións condicionais, todos eles son son un conxunto 601 00:26:19,210 --> 00:26:24,010 de instrucións para o ordenador nas que se unha determinada condición é certa, 602 00:26:24,010 --> 00:26:27,470 executar o código dentro desa condición. 603 00:26:27,470 --> 00:26:30,101 >> Así, en Scratch-- esencialmente o gran tema a partir de hoxe 604 00:26:30,101 --> 00:26:32,850 é que vostedes teñen xa todo visto a lóxica por tras de todo 605 00:26:32,850 --> 00:26:34,020 que estamos cubrindo. 606 00:26:34,020 --> 00:26:36,190 E todo o que estamos facendo é traducindo algo 607 00:26:36,190 --> 00:26:39,090 que era moi intuitiva en Cero, e disco duro codificación lo 608 00:26:39,090 --> 00:26:41,950 na sintaxe usaremos para a clase que é C. 609 00:26:41,950 --> 00:26:47,550 Entón, loxicamente, todo isto foi bloque é aquel anaco de código seguro alí. 610 00:26:47,550 --> 00:26:49,995 Si. 611 00:26:49,995 --> 00:26:50,900 Aceptar. 612 00:26:50,900 --> 00:26:55,290 >> Tamén entrar nun if ... else declaración, que é só unha capa adicional 613 00:26:55,290 --> 00:26:59,120 de complexidade para a instrución if onde o ordenador ten unha mirada a este 614 00:26:59,120 --> 00:27:04,260 e ve, se esta condición sexa verdadeira, facer todo o que está dentro destes dous soportes, 615 00:27:04,260 --> 00:27:08,470 else-- así como o tipo de patrón se el non atende o condition-- facelo. 616 00:27:08,470 --> 00:27:10,120 É como unha bifurcación na estrada. 617 00:27:10,120 --> 00:27:14,400 Se está chovendo alí fóra, eu coloque nunha capa de choiva, que calquera outra cousa 618 00:27:14,400 --> 00:27:16,330 outra cousa que eu non poñer en unha capa de choiva. 619 00:27:16,330 --> 00:27:18,400 >> Será que a lóxica ten sentido para todos? 620 00:27:18,400 --> 00:27:21,031 Legal. 621 00:27:21,031 --> 00:27:21,530 Todo ben. 622 00:27:21,530 --> 00:27:24,970 Así como un exemplo duro de este que veriamos en C 623 00:27:24,970 --> 00:27:28,890 é se eu quería crear un variables chamados horas lección de casa. 624 00:27:28,890 --> 00:27:32,050 E se é menos horas de casa de cinco anos, digo A vida é grande. 625 00:27:32,050 --> 00:27:33,070 É marabilloso. 626 00:27:33,070 --> 00:27:36,450 Con todo, din A loita é real-- que é o que todos o luns 627 00:27:36,450 --> 00:27:39,337 tarde ata Science Hill están probablemente facendo certo agora-- 628 00:27:39,337 --> 00:27:40,170 Audiencia: [rindo] 629 00:27:40,170 --> 00:27:42,510 ANDI Pengo: Eles xeito que sería, grazas por iso. 630 00:27:42,510 --> 00:27:46,180 O xeito que sería codificar iso en C é se-- imos supor 631 00:27:46,180 --> 00:27:49,920 xa temos unha variable de tipo int chamado horas de casa aquí. 632 00:27:49,920 --> 00:27:53,870 As horas de traballos de casa está a menos de cinco printf (), A vida é grande. 633 00:27:53,870 --> 00:27:57,330 Teña en conta que de manter / n porque quere unha nova liña despois. 634 00:27:57,330 --> 00:27:59,660 Impresión Else, A loita é real. 635 00:27:59,660 --> 00:28:03,720 >> Será que todo o mundo entender como I trasladada dende bloque 636 00:28:03,720 --> 00:28:07,610 para este bloque de código? 637 00:28:07,610 --> 00:28:08,110 Legal. 638 00:28:08,110 --> 00:28:11,030 639 00:28:11,030 --> 00:28:11,840 Todo ben. 640 00:28:11,840 --> 00:28:15,930 >> Entón, agora imos dar un ollo a varias instrucións If completamente. 641 00:28:15,930 --> 00:28:18,140 Entón imos supor que o propósito deste programa 642 00:28:18,140 --> 00:28:20,870 foi que pide ao usuario a un grao. 643 00:28:20,870 --> 00:28:24,450 Nós aviso usando GetInt () para un grao, e un valor de entrada, 644 00:28:24,450 --> 00:28:27,700 e quere amosar que tipo de grao que teñen. 645 00:28:27,700 --> 00:28:30,730 >> Entón, se eu fose para proxectar un programa, eu significa normalmente en todos os nosos ollos, 646 00:28:30,730 --> 00:28:35,490 90-100 é un A, é un 80-90 B, e así por diante e así por diante. 647 00:28:35,490 --> 00:28:39,040 O que está mal con este peza de código que non é 648 00:28:39,040 --> 00:28:41,393 facendo o que quero que faga. 649 00:28:41,393 --> 00:28:41,892 Si. 650 00:28:41,892 --> 00:28:45,100 >> Altofalante 11: Teñen límites máis baixos, pero eles non teñen límites superiores. 651 00:28:45,100 --> 00:28:46,280 >> ANDI Pengo: Exactamente. 652 00:28:46,280 --> 00:28:47,950 Será que todo o mundo escoitar o que dixo? 653 00:28:47,950 --> 00:28:50,200 Non vai ser superior límites, pero non hai límites inferiores. 654 00:28:50,200 --> 00:28:52,540 Sentímolo, outra forma arredor, límites máis baixos, non hai límites superiores. 655 00:28:52,540 --> 00:28:55,090 Así é que quere tomar unha facada en dicir 656 00:28:55,090 --> 00:28:58,945 o que ía ser impreso neste pantalla, se eu fose para executar este código. 657 00:28:58,945 --> 00:28:59,820 Altofalante 11: un erro? 658 00:28:59,820 --> 00:29:01,140 ANDI Pengo: un erro? 659 00:29:01,140 --> 00:29:02,740 Gran suposición, non moi ben. 660 00:29:02,740 --> 00:29:05,465 Alguén ten outra facada? 661 00:29:05,465 --> 00:29:06,640 Si, Aaron. 662 00:29:06,640 --> 00:29:10,099 >> AARON: Se pór en algo maior que 90, 663 00:29:10,099 --> 00:29:11,640 ía amosar todas as notas que ten. 664 00:29:11,640 --> 00:29:13,640 Ía amosar que ten unha A, ten un B, ten un C. 665 00:29:13,640 --> 00:29:13,870 >> ANDI Pengo: Si. 666 00:29:13,870 --> 00:29:14,840 Isto é exactamente correcto. 667 00:29:14,840 --> 00:29:17,820 Entón, iso sería marabilloso. 668 00:29:17,820 --> 00:29:21,781 Con todo, son mutuamente exclusivo, eu creo. 669 00:29:21,781 --> 00:29:23,280 Se eu fose para executar este anaco de código. 670 00:29:23,280 --> 00:29:26,200 E entón imos só dicir, I introducido o grao de 95. 671 00:29:26,200 --> 00:29:30,360 Entón 95 está almacenado na o int chamado grao. 672 00:29:30,360 --> 00:29:33,610 >> E así C é unha linguaxe que sobe arriba abaixo, 673 00:29:33,610 --> 00:29:36,000 polo que vai para sempre correr ata a parte inferior. 674 00:29:36,000 --> 00:29:39,420 Entón vai vir aquí, ler se grao é maior que ou igual a 90, 675 00:29:39,420 --> 00:29:42,850 printf (), ten un A. Gran, eu ter un 95, que é maior que 90. 676 00:29:42,850 --> 00:29:44,866 Vai imprimir, Eu teño un A. Vai 677 00:29:44,866 --> 00:29:48,850 para dar un ollo neste caso vai dicir, a cavidade 95 é tamén maior que 80, 678 00:29:48,850 --> 00:29:52,970 vai imprimir tamén ten un got unha marca de exclamación B, e así por diante e así por 679 00:29:52,970 --> 00:29:53,690 diante. 680 00:29:53,690 --> 00:29:55,890 >> Así como todos podemos ver, este é un erro común 681 00:29:55,890 --> 00:30:00,760 que pode ocorrer cando estamos escribir código para mirar para fóra. 682 00:30:00,760 --> 00:30:05,430 Calquera persoa, calquera dúbida sobre por que isto estaba pasando? 683 00:30:05,430 --> 00:30:05,930 Gran. 684 00:30:05,930 --> 00:30:08,920 685 00:30:08,920 --> 00:30:09,440 Aceptar. 686 00:30:09,440 --> 00:30:12,110 >> Entón, como podemos solucionar isto, é, obviamente, a seguinte pregunta lóxica. 687 00:30:12,110 --> 00:30:16,290 Ben, temos estes bonito cousas chamadas se else if máis 688 00:30:16,290 --> 00:30:18,010 se else. 689 00:30:18,010 --> 00:30:22,230 Así pode ver, se quería para cambiar este problema, 690 00:30:22,230 --> 00:30:25,260 quería facer cada un dos condicións mutuamente exclusivas, 691 00:30:25,260 --> 00:30:26,860 desexa engadir outra cousa ... se comunicado. 692 00:30:26,860 --> 00:30:30,068 >> E estes course-- de pensar neles como escaleiras, ou como chanzos na ladder-- 693 00:30:30,068 --> 00:30:34,050 pode engadir como moitos deles, como tanto para tantas condicións como quere. 694 00:30:34,050 --> 00:30:36,790 Entón, aquí, se eu introducido grao sendo 95. 695 00:30:36,790 --> 00:30:39,479 Se a nota é maior que 95, printf (), eu teño un A. Grande. 696 00:30:39,479 --> 00:30:42,020 Vai ver unha cousa ... se e vai saber, Oh non, 697 00:30:42,020 --> 00:30:43,750 Eu xa executou a primeira persoa. 698 00:30:43,750 --> 00:30:47,020 Eu sabe-- ou o primeiro se-- sei que Non teño que mirar para calquera destes 699 00:30:47,020 --> 00:30:48,920 porque un deles xa foi feito. 700 00:30:48,920 --> 00:30:50,410 Por iso, vai a funcionar dende arriba cara abaixo. 701 00:30:50,410 --> 00:30:53,650 Así que o primeiro é certa, entón vai saltar sobre todo o demais 702 00:30:53,650 --> 00:30:54,675 dos máis ... IFS. 703 00:30:54,675 --> 00:30:55,550 Isto ten sentido? 704 00:30:55,550 --> 00:30:57,841 Así, deste xeito ten diferentes niveis de verificación 705 00:30:57,841 --> 00:31:01,090 e logo que un deles é falso, o resto son tamén, eles non van mesmo comprobar. 706 00:31:01,090 --> 00:31:03,577 707 00:31:03,577 --> 00:31:04,076 Legal. 708 00:31:04,076 --> 00:31:07,680 709 00:31:07,680 --> 00:31:08,180 Todo ben. 710 00:31:08,180 --> 00:31:11,180 >> Polo tanto, este é un exemplo dunha diferente tipo de instrución condicional 711 00:31:11,180 --> 00:31:15,250 vemos con menos frecuencia, pero imos velos e usalos. 712 00:31:15,250 --> 00:31:18,120 E son moitas veces máis eficiente para determinados casos. 713 00:31:18,120 --> 00:31:20,020 Entón temos o que se chama unha instrución switch. 714 00:31:20,020 --> 00:31:25,140 Polo tanto, antes de nós Cubrimos o que é outra cousa declaración, un else if .... 715 00:31:25,140 --> 00:31:27,790 Aquí, temos o que son chamado declaracións switch. 716 00:31:27,790 --> 00:31:31,100 >> Así, cando usamos chave declaracións é a clave? 717 00:31:31,100 --> 00:31:34,090 Así, nunha instrución switch, vostede normalmente, tipicamente, en realidade 718 00:31:34,090 --> 00:31:38,010 poden só enteiros de entrada para o seu variable que está comprobando. 719 00:31:38,010 --> 00:31:42,390 Entón, se eu quería comprobar a ver Un determinado number-- por exemplo 720 00:31:42,390 --> 00:31:43,720 unha nota, se eu teño un 90. 721 00:31:43,720 --> 00:31:48,190 Quero-o para ver se isto é un A, B, ou C. Eu podería ter un caso aquí. 722 00:31:48,190 --> 00:31:50,840 Con todo, o caso ten para ser máis constante. 723 00:31:50,840 --> 00:31:53,170 >> Polo tanto, neste sentido, o interruptor declaración poderá 724 00:31:53,170 --> 00:31:55,290 vaia á igualdade de dous números. 725 00:31:55,290 --> 00:31:57,242 Non parece para nada. 726 00:31:57,242 --> 00:31:59,950 Entón, iso é algo a ser moi coidado de cando está a usar iso. 727 00:31:59,950 --> 00:32:04,810 Entón, aquí, se eu quería comprobar a ver a miña nota de 90 é igual a 90 ou 80 728 00:32:04,810 --> 00:32:08,500 ou 70 ou 60, e logo imprimir o grao correspondente, 729 00:32:08,500 --> 00:32:11,420 Eu sería capaz de escribir que nunha declaración switch. 730 00:32:11,420 --> 00:32:15,120 >> Entón vai vir aquí, comprobación é este número enteiro igual a este constante? 731 00:32:15,120 --> 00:32:17,030 Se non, que vai saltar. 732 00:32:17,030 --> 00:32:19,880 É igual a constante dous, e así por diante e así por diante, 733 00:32:19,880 --> 00:32:22,390 ata acadar o nivel, se ningún deles son iguais. 734 00:32:22,390 --> 00:32:24,590 Así que un deles é establecido para ser igual, 735 00:32:24,590 --> 00:32:27,040 vai facelo liña de código e descanso. 736 00:32:27,040 --> 00:32:30,990 O que significa que vai bater ese correr, romper, e ignorar completamente 737 00:32:30,990 --> 00:32:32,240 para a parte inferior do código. 738 00:32:32,240 --> 00:32:37,550 Entón, nese sentido o tipo de funcións como un if else if else if. 739 00:32:37,550 --> 00:32:40,830 >> Entón aquí está o formigón exemplo para vós. 740 00:32:40,830 --> 00:32:46,140 Entón imos supor que eu quería crear unha variable chamada ano fundada. 741 00:32:46,140 --> 00:32:50,230 E quero pedir ao usuario para introducir o ano en que a escola foi fundada. 742 00:32:50,230 --> 00:32:53,300 Entón, podo crear unha instrución switch aquí. 743 00:32:53,300 --> 00:32:56,650 E imos só dicir, eu input 1636. 744 00:32:56,650 --> 00:33:01,120 >> Este código aquí vai ver chave ano, fundou o que equivale a 1.636. 745 00:33:01,120 --> 00:33:03,940 Vai ver o caso 1636, oh aqueles son iguais, 746 00:33:03,940 --> 00:33:06,230 printf () non caso de que sexa naquela escola ao norte? 747 00:33:06,230 --> 00:33:08,770 Porque supoñer que non facer aquí se van a Harvard, 748 00:33:08,770 --> 00:33:10,380 romper e saltar para o final. 749 00:33:10,380 --> 00:33:14,090 >> Se eu fose a entrada de 1701, que Supoño que todos de entrada, 750 00:33:14,090 --> 00:33:17,500 sería ignorar este caso, chegar ata dous caso que é 1701, 751 00:33:17,500 --> 00:33:19,660 e imprimir Welcome to Yale! 752 00:33:19,660 --> 00:33:21,360 Romper, saltar para o final. 753 00:33:21,360 --> 00:33:25,130 Senón probablemente está a tomar este curso liña que case-- impresionante benvido 754 00:33:25,130 --> 00:33:29,020 para Yale-- está indo a ir a impresión estándar, Ola Internet! 755 00:33:29,020 --> 00:33:29,870 E romper. 756 00:33:29,870 --> 00:33:30,466 Si. 757 00:33:30,466 --> 00:33:32,090 >> Altofalante 12: Pódese usar máis en vez de patrón alí? 758 00:33:32,090 --> 00:33:34,550 >> ANDI Pengo: Non, porque o forma que esta función enteira 759 00:33:34,550 --> 00:33:39,170 interruptor está construído, a sintaxe vostede Debe usar é case default. 760 00:33:39,170 --> 00:33:42,400 É como se a persoa que, este é un case default. Si. 761 00:33:42,400 --> 00:33:45,650 Altofalante 13: Ti quizais xa dixo iso, pero pode ter máis de dous casos? 762 00:33:45,650 --> 00:33:48,066 ANDI Pengo: Si, podería ten o maior número de casos, como quere. 763 00:33:48,066 --> 00:33:50,050 Pense nisso como só como engadindo a infinitamente. 764 00:33:50,050 --> 00:33:52,396 >> Altofalante 14: Se conmutada 1701 con 1636, 765 00:33:52,396 --> 00:33:54,187 realmente non fai un dereito diferenza? 766 00:33:54,187 --> 00:33:55,770 El só vai estar comprobando para iso. 767 00:33:55,770 --> 00:33:56,900 >> ANDI Pengo: Isto é un pregunta moi boa. 768 00:33:56,900 --> 00:33:58,880 E nós imos tocar enriba iso máis tarde, pero só 769 00:33:58,880 --> 00:34:01,160 sei que é a clave declaración é infinitely-- é 770 00:34:01,160 --> 00:34:03,536 máis eficiente que a que e else if porque opera 771 00:34:03,536 --> 00:34:06,660 utilizando un tipo de función que permite que, para, esencialmente, a só 772 00:34:06,660 --> 00:34:08,790 ir directamente ao caso ten que ser no. 773 00:34:08,790 --> 00:34:10,547 Si. 774 00:34:10,547 --> 00:34:11,255 Altofalante 14: Cool. 775 00:34:11,255 --> 00:34:11,754 Grazas. 776 00:34:11,754 --> 00:34:12,526 ANDI Pengo: Si 777 00:34:12,526 --> 00:34:16,687 >> Altofalante 14: E non podía facer como casos e maior que. 778 00:34:16,687 --> 00:34:17,270 ANDI Pengo: Non. 779 00:34:17,270 --> 00:34:19,860 Entón, iso é o que está limitando sobre a instrución switch é que ten 780 00:34:19,860 --> 00:34:21,564 ter Constantes só, só números enteiros. 781 00:34:21,564 --> 00:34:22,064 Si. 782 00:34:22,064 --> 00:34:25,179 783 00:34:25,179 --> 00:34:25,820 Aceptar. 784 00:34:25,820 --> 00:34:28,659 >> Entón, iso é algo que caras van atopar menos frecuencia de, 785 00:34:28,659 --> 00:34:32,280 pero eu só quería introducir-lo no caso. 786 00:34:32,280 --> 00:34:36,210 Temos aquí o que é chamado un operador ternário. 787 00:34:36,210 --> 00:34:39,370 Onde esencialmente, é só como un if compilados nunha liña. 788 00:34:39,370 --> 00:34:42,630 Aquí, eu vou á seguinte liña, a páxina seguinte, porque é máis fácil de ver. 789 00:34:42,630 --> 00:34:44,860 >> Entón, todos nós xa vimos ese dereito? 790 00:34:44,860 --> 00:34:46,110 Isto é moi doado de seguir. 791 00:34:46,110 --> 00:34:51,290 Se eu quixese facer unha variable chamada Cadea co nome s, se un número 792 00:34:51,290 --> 00:34:54,770 Doulle está a menos de 100, I quere asignar baixo a secuencia, 793 00:34:54,770 --> 00:34:57,240 outra cousa que quero atribuír elevada. 794 00:34:57,240 --> 00:35:01,370 >> Este aquí está facendo exactamente o mesmo oito liñas de código están facendo. 795 00:35:01,370 --> 00:35:03,600 Entón aquí quero crear unha variable cadea. 796 00:35:03,600 --> 00:35:08,520 E esta é a condición que eu son verificar si un número é inferior a 100, 797 00:35:08,520 --> 00:35:12,750 a continuación, asignar o valor da baixa, outra cousa asignar o valor de alta. 798 00:35:12,750 --> 00:35:15,802 >> Estes diapositivas será en liña, non se preocupe se vós non reciben ese abaixo. 799 00:35:15,802 --> 00:35:18,510 Esta é só unha forma máis simple, a máis forma eficiente de código escrito. 800 00:35:18,510 --> 00:35:21,290 801 00:35:21,290 --> 00:35:21,810 Aceptar. 802 00:35:21,810 --> 00:35:25,190 >> Entón agora imos escriba o que, para a maioría da xente 803 00:35:25,190 --> 00:35:28,660 son como un moi, moi confuso cousa a pensar en primeiro lugar. 804 00:35:28,660 --> 00:35:30,226 A seca de al. 805 00:35:30,226 --> 00:35:32,600 Entón, hoxe, imos falar preto de tres tipos de loops. 806 00:35:32,600 --> 00:35:34,890 Nós imos comezar con un tempo loop, a continuación, falar sobre un loop Do While, 807 00:35:34,890 --> 00:35:36,740 e, a continuación, falar sobre a loops. 808 00:35:36,740 --> 00:35:40,010 >> Así, esencialmente, á máis aprendices visuais aí 809 00:35:40,010 --> 00:35:44,410 temos, esencialmente, unha gráfica descrición do que un loop while fai. 810 00:35:44,410 --> 00:35:48,290 Así, nunha programación, vostede comezaría e entrar no ciclo nun determinado punto. 811 00:35:48,290 --> 00:35:49,470 Vostede verifica unha condición. 812 00:35:49,470 --> 00:35:52,165 E se a condición é certa, executar o código dentro. 813 00:35:52,165 --> 00:35:53,790 E volver arredor e vaia. 814 00:35:53,790 --> 00:35:57,190 Se aínda así é certo que continuar executando este código ao redor e ao redor dun loop. 815 00:35:57,190 --> 00:36:00,970 >> Con todo, o que segundo a condición se fai falsa, 816 00:36:00,970 --> 00:36:02,739 vai romper e acabar co loop. 817 00:36:02,739 --> 00:36:05,030 E iso é esencialmente o sintaxe que vai empregar. 818 00:36:05,030 --> 00:36:08,250 Mentres unha determinada condición é verdade iso, se non é certo, 819 00:36:08,250 --> 00:36:12,920 vai saltar para o final e avanzar co seu programa. 820 00:36:12,920 --> 00:36:13,690 Aceptar. 821 00:36:13,690 --> 00:36:17,250 >> Alguén ten un exemplo sobre o que pode ocorrer potencialmente 822 00:36:17,250 --> 00:36:19,160 se eu tentar realizar ese anaco de código? 823 00:36:19,160 --> 00:36:22,470 By the way, que é SCAZ SAJ--, Andi, Jason-- imos asinar nosos correos electrónicos, 824 00:36:22,470 --> 00:36:24,830 Amor, SAJ. 825 00:36:24,830 --> 00:36:25,573 Somos nós. 826 00:36:25,573 --> 00:36:26,500 Aceptar. 827 00:36:26,500 --> 00:36:29,829 >> Alguén ten un exemplo, ou ter unha idea sobre o que isto debe imprimir? 828 00:36:29,829 --> 00:36:30,870 Tipo de unha pregunta capciosa. 829 00:36:30,870 --> 00:36:34,550 830 00:36:34,550 --> 00:36:39,380 Entón, aquí, lembre-se a condición estamos comprobando é á vez certo. 831 00:36:39,380 --> 00:36:42,840 Entón, mentres iso é verdade, é indo para imprimir, eu amo SAJ! 832 00:36:42,840 --> 00:36:48,460 Existe un punto en que estariamos cambiar isto para outra forma de algo? 833 00:36:48,460 --> 00:36:49,050 Non, non? 834 00:36:49,050 --> 00:36:51,470 >> Entón, aquí temos atopou o que é, probablemente, 835 00:36:51,470 --> 00:36:54,310 será incomodando moita seus programas, o loop infinito. 836 00:36:54,310 --> 00:36:56,268 Vai considerar que se realizar ese anaco de código, 837 00:36:56,268 --> 00:36:58,160 el só vai manter impresión, Eu amo SAJ! 838 00:36:58,160 --> 00:37:00,701 Mentres nós Apreciamos o apoio, nós non queremos seus ordenadores 839 00:37:00,701 --> 00:37:02,910 fallando, porque manter a impresión Encántame SAJ! 840 00:37:02,910 --> 00:37:05,320 >> Entón, por favor, por favor, evitar o ciclo infinito 841 00:37:05,320 --> 00:37:07,320 porque non vai avaliar a false 842 00:37:07,320 --> 00:37:08,780 e nunca vai para saír do ciclo. 843 00:37:08,780 --> 00:37:10,530 E está indo ser sugado para sempre. 844 00:37:10,530 --> 00:37:13,000 Legal. 845 00:37:13,000 --> 00:37:13,694 Aceptar. 846 00:37:13,694 --> 00:37:15,610 O segundo tipo de loop imos falar hoxe 847 00:37:15,610 --> 00:37:17,580 é o loop Do While, facer mentres loop. 848 00:37:17,580 --> 00:37:20,580 E é chamado un loop Do While porque ten un facer e cando. 849 00:37:20,580 --> 00:37:24,390 Entón, iso é moi semellante ao dun tempo loop, pero un pouco diferente. 850 00:37:24,390 --> 00:37:27,620 Aquí, vai facer todo o que está dentro deste 851 00:37:27,620 --> 00:37:29,747 mentres unha determinada condición é verdadeira. 852 00:37:29,747 --> 00:37:32,580 Entón, se eu fose C eo ordenador que eu son correndo por este anaco de código, 853 00:37:32,580 --> 00:37:33,880 Eu dou un ollo na parte superior. 854 00:37:33,880 --> 00:37:36,890 Eu ir C, digo eu faga tal cousa. 855 00:37:36,890 --> 00:37:40,550 E entón eu vaia, mentres este Certo, eu teño que repetila. 856 00:37:40,550 --> 00:37:42,750 Pero mentres tanto é falso, entón eu seguir adiante 857 00:37:42,750 --> 00:37:44,700 e eu nunca volver a este ciclo de novo. 858 00:37:44,700 --> 00:37:48,360 >> Alguén pode tomar unha facada en que a diferenza 859 00:37:48,360 --> 00:37:52,130 entre este bucle e aquel que só mirou para practicamente. 860 00:37:52,130 --> 00:37:52,717 Si. 861 00:37:52,717 --> 00:37:55,050 Altofalante 15: A condición vén despois, no canto de antes? 862 00:37:55,050 --> 00:37:55,841 ANDI Pengo: Exactamente. 863 00:37:55,841 --> 00:37:57,984 Entón ela dixo que a condición vén despois, non antes. 864 00:37:57,984 --> 00:38:00,400 En último caso, a diferenza entre este eo loop while 865 00:38:00,400 --> 00:38:03,597 é que está indo só para facer todo o que está dentro deste, con independencia da 866 00:38:03,597 --> 00:38:06,430 ou non a súa condición é realidade, e, a continuación, comprobar a condición. 867 00:38:06,430 --> 00:38:08,304 Polo tanto, neste caso, é always-- deste xeito, 868 00:38:08,304 --> 00:38:11,240 está sempre se asegurarse todo o que está dentro é executado polo menos 869 00:38:11,240 --> 00:38:14,230 unha vez antes de comprobar a ver se quere que sexa executado de novo. 870 00:38:14,230 --> 00:38:18,040 >> E aquí está un exemplo de cando ía empregar. 871 00:38:18,040 --> 00:38:22,570 Así, por exemplo, se eu quixese ter unha variable de tipo int chamado idade, 872 00:38:22,570 --> 00:38:25,640 e quero pedir- o usuario para a súa idade, 873 00:38:25,640 --> 00:38:27,910 Vou facer printf () Cantos anos tes? 874 00:38:27,910 --> 00:38:30,330 idade = GetInt (), que é avisar o usuario. 875 00:38:30,330 --> 00:38:32,140 >> E algunhas persoas van ser realmente irritante. 876 00:38:32,140 --> 00:38:34,931 E non quere erros no seu programa de introducir alguén como, 877 00:38:34,931 --> 00:38:36,680 oh Eu son negativo 4 anos de idade ou calquera outra cousa. 878 00:38:36,680 --> 00:38:39,900 No caso, se os que facelo, este avalía 879 00:38:39,900 --> 00:38:43,150 a verdade, o que significa que eu vou ten que manter a volver e facelo. 880 00:38:43,150 --> 00:38:45,310 Entón, iso vai mantê- re-solicitando que o usuario 881 00:38:45,310 --> 00:38:47,960 para darlle como un verdadeiro número de idade e é 882 00:38:47,960 --> 00:38:51,930 manterá vai volver e refacer Lo ata que eles dan-lle unha certa idade 883 00:38:51,930 --> 00:38:56,900 maior que un, ou non cero. 884 00:38:56,900 --> 00:38:58,020 >> Entón información, información. 885 00:38:58,020 --> 00:39:02,263 Isto será moi, moi útil para un dos seus problemas PSet. 886 00:39:02,263 --> 00:39:04,155 Si. 887 00:39:04,155 --> 00:39:05,580 >> Altofalante 16: Whoops, desculpe. 888 00:39:05,580 --> 00:39:06,288 >> ANDI Pengo: Yep. 889 00:39:06,288 --> 00:39:09,424 >> Altofalante 16: Non hai, ser un idiota, mas-- 890 00:39:09,424 --> 00:39:10,340 ANDI Pengo: Non se preocupe. 891 00:39:10,340 --> 00:39:11,990 Altofalante 16: --are alí regras diferentes aquí, 892 00:39:11,990 --> 00:39:13,810 ou simplemente esquecer para poñer a cita? 893 00:39:13,810 --> 00:39:14,250 >> ANDI Pengo: Oh Yeah. 894 00:39:14,250 --> 00:39:15,530 Sentímolo, iso é totalmente o meu mal. 895 00:39:15,530 --> 00:39:17,100 Isto foi definitivamente quere que sexa unha cita. 896 00:39:17,100 --> 00:39:17,690 Boa captura. 897 00:39:17,690 --> 00:39:18,800 Isto non tería executado. 898 00:39:18,800 --> 00:39:22,070 899 00:39:22,070 --> 00:39:22,830 Aceptar. 900 00:39:22,830 --> 00:39:26,160 >> Así, o último tipo de bucle imos falar sobre e, en última instancia, tipo dos máis 901 00:39:26,160 --> 00:39:28,854 complexo é o loop for. 902 00:39:28,854 --> 00:39:30,770 Non te preocupes se non fai iso sabe o que iso significa. 903 00:39:30,770 --> 00:39:32,061 É bastante confuso no inicio. 904 00:39:32,061 --> 00:39:33,640 Nós imos pasar por riba de un exemplo. 905 00:39:33,640 --> 00:39:37,040 >> Todo o que acontece nun loop é que ten tres declaracións 906 00:39:37,040 --> 00:39:38,380 que está indo a incluír. 907 00:39:38,380 --> 00:39:42,130 Así, para unha determinada cousa, é indo para iniciar unha variable. 908 00:39:42,130 --> 00:39:45,280 Vas para engadir a condición de que este ciclo vai continuar executando. 909 00:39:45,280 --> 00:39:47,790 E, a continuación, ao final da loop, está indo para actualiza-lo. 910 00:39:47,790 --> 00:39:50,248 Pode actualizar a variable que quere seguir. 911 00:39:50,248 --> 00:39:52,530 Entón, nós xeralmente usan loops para cando 912 00:39:52,530 --> 00:39:55,390 quere facer un loop para unha certa cantidade de tempo 913 00:39:55,390 --> 00:39:58,900 e xa sabemos, Oh Eu quero ese loop para realizar como 10 veces, 914 00:39:58,900 --> 00:40:03,060 entón fazer-- vou pasar por riba un exemplo na páxina seguinte. 915 00:40:03,060 --> 00:40:07,830 >> Entón, aquí por exemplo, no scratch, se quería algo para repetir 10 veces, 916 00:40:07,830 --> 00:40:10,790 todo o que tiña que dicir era: Repita 10 veces Encántame SAJ! 917 00:40:10,790 --> 00:40:15,260 que é unha forma máis aceptable demostración de apoio para nós 918 00:40:15,260 --> 00:40:17,120 en vez de o ciclo infinito. 919 00:40:17,120 --> 00:40:19,920 Aquí, como faría transición C e gravación 920 00:40:19,920 --> 00:40:26,040 que é para int-- eu estou indo a crear ou declarar unha variable de tipo int chamado i. 921 00:40:26,040 --> 00:40:30,089 Eu estou indo a iniciar que a 0, así i = 0; 922 00:40:30,089 --> 00:40:31,630 e esta será a miña condición. 923 00:40:31,630 --> 00:40:33,860 Entón eu sexa inferior a 10. 924 00:40:33,860 --> 00:40:36,096 E, a continuación, no end-- a última declaración que é 925 00:40:36,096 --> 00:40:38,710 vai ter é a actualización de o que pasa coa variable i 926 00:40:38,710 --> 00:40:40,206 ao final do seu ciclo for. 927 00:40:40,206 --> 00:40:42,830 Entón é medio confuso, porque diferentes partes desta liña 928 00:40:42,830 --> 00:40:44,871 están a suceder en diferentes tipos de loop. 929 00:40:44,871 --> 00:40:46,746 Pero eu vou pasar por riba de un exemplo pseudocódigo que 930 00:40:46,746 --> 00:40:50,360 e quizais explicar esta só un pouco mellor. 931 00:40:50,360 --> 00:40:51,500 >> Entón aquí. 932 00:40:51,500 --> 00:40:52,929 Ese é o ciclo que acabamos de ver. 933 00:40:52,929 --> 00:40:55,470 Esencialmente no pseudocódigo, o que está pasando neste programa, 934 00:40:55,470 --> 00:40:57,940 é o primeiro que eu estou creando i, inicializar-lo a 0. 935 00:40:57,940 --> 00:41:00,440 Estou comprobando a ver se i é inferior a 10, en cuxo caso 936 00:41:00,440 --> 00:41:02,840 a primeira vez que se porque 0 é menor que 10. 937 00:41:02,840 --> 00:41:04,727 Así, o ciclo vai a realizar. 938 00:41:04,727 --> 00:41:06,310 E entón eu estou indo a imprimir esta liña. 939 00:41:06,310 --> 00:41:11,240 E, a continuación, ao final da liña, dereita aquí, eu vou facer incremento i, i ++, 940 00:41:11,240 --> 00:41:13,370 todo o que é medio incrementa-lo por un. 941 00:41:13,370 --> 00:41:15,460 >> Entón eu agora é 1. 942 00:41:15,460 --> 00:41:17,960 Porque era unha vez 0, se eu incrementa-lo é, é agora un. 943 00:41:17,960 --> 00:41:19,610 E entón eu vou volver para o inicio do ciclo 944 00:41:19,610 --> 00:41:20,730 e eu comprobar o estado. 945 00:41:20,730 --> 00:41:22,080 É a condición aínda é verdade? 946 00:41:22,080 --> 00:41:24,030 Si, 1 é aínda inferior a 10. 947 00:41:24,030 --> 00:41:27,370 Entón vai para imprimir iso de novo, ir e, a continuación, incrementa i, e comproba 948 00:41:27,370 --> 00:41:29,180 a condición continuamente, de forma continua, 949 00:41:29,180 --> 00:41:33,290 ata que, finalmente, obter ao punto onde i é 10. 950 00:41:33,290 --> 00:41:36,300 >> Vas para imprimir iso 10 veces e entón eu vai equivaler a 10. 951 00:41:36,300 --> 00:41:37,800 Vas para comprobar a condición. 952 00:41:37,800 --> 00:41:38,760 10 é inferior a 10? 953 00:41:38,760 --> 00:41:40,370 Non, iso é falso. 954 00:41:40,370 --> 00:41:43,020 Así, este circuíto non vai para correr, vai romper, 955 00:41:43,020 --> 00:41:45,040 e está indo a continuar co seu código. 956 00:41:45,040 --> 00:41:47,550 >> Entón, como podedes ver, este é realmente un gran exemplo 957 00:41:47,550 --> 00:41:53,110 dun loop que podes programar en que é executado por un determinado período de tempo. 958 00:41:53,110 --> 00:41:54,457 Cada un claro? 959 00:41:54,457 --> 00:41:54,956 Si. 960 00:41:54,956 --> 00:41:59,060 >> Altofalante 17: Que tal incremento exponencialmente, é que é diferente de codificación? 961 00:41:59,060 --> 00:42:02,060 >> ANDI Pengo: Vostede can-- imos sobre iso no seguinte diapositiva. 962 00:42:02,060 --> 00:42:03,350 Boa pregunta. 963 00:42:03,350 --> 00:42:05,910 É anyone-- antes de pasar on-- calquera persoa en todo confuso, 964 00:42:05,910 --> 00:42:07,640 porque este é un concepto moi difícil. 965 00:42:07,640 --> 00:42:09,510 Non te preocupes, se you're-- Aceptar. 966 00:42:09,510 --> 00:42:10,010 Legal. 967 00:42:10,010 --> 00:42:12,836 968 00:42:12,836 --> 00:42:13,490 >> Todo ben. 969 00:42:13,490 --> 00:42:14,610 Só unha foto xeral. 970 00:42:14,610 --> 00:42:18,020 Este bucle while está facendo o exactamente o mesmo para o lazo era. 971 00:42:18,020 --> 00:42:19,631 É só escritas de forma diferente. 972 00:42:19,631 --> 00:42:22,130 Podedes ler os diapositivas na súa conveniencia máis tarde. 973 00:42:22,130 --> 00:42:24,880 Pero só sei que hai múltiples formas de escribir o mesmo 974 00:42:24,880 --> 00:42:28,300 pasar con diferentes ansas. 975 00:42:28,300 --> 00:42:28,800 Aceptar. 976 00:42:28,800 --> 00:42:32,380 >> Entón, agora comezan na cuestión do que se temos un loop dentro dun loop. 977 00:42:32,380 --> 00:42:35,810 Estamos entrando reais Inception tipo cousas aquí. 978 00:42:35,810 --> 00:42:40,640 Cando quere facer as cousas múltiple veces dentro doutras cousas 979 00:42:40,640 --> 00:42:44,129 que facer as cousas varias veces, quere o que se chama un lazo é aninhado. 980 00:42:44,129 --> 00:42:47,420 Para aqueles de vostedes que primeiro ver iso e ser moi confuso, todo o que estamos facendo aquí 981 00:42:47,420 --> 00:42:50,580 está a ter un loop onde temos unha variable de liña. 982 00:42:50,580 --> 00:42:54,500 Pero dentro dela, temos tamén outro loop dunha columna variable chamada. 983 00:42:54,500 --> 00:42:58,560 E eu suxiro a todos vostedes que están confusos a primeira manter 984 00:42:58,560 --> 00:43:00,310 track-- deseñar tanto, chamar a iso. 985 00:43:00,310 --> 00:43:03,000 Non tente xusta razón a través del, sacala. 986 00:43:03,000 --> 00:43:06,630 >> Na súa cabeza, neste anaco de papel, ou o que quere, liña de escritura, 987 00:43:06,630 --> 00:43:08,614 seguir o que liña é igual a. 988 00:43:08,614 --> 00:43:10,780 Escribir columna, manter o control da columna que é igual a. 989 00:43:10,780 --> 00:43:13,490 E seguir o que é imprimindo con cada iteración. 990 00:43:13,490 --> 00:43:16,320 Cada iteración deste ciclo, toda iteración do lazo grande que, 991 00:43:16,320 --> 00:43:17,820 só seguir a seguir a lóxica. 992 00:43:17,820 --> 00:43:20,190 E eu asegura que, vai adorar o que ve, 993 00:43:20,190 --> 00:43:24,307 porque é tamén moi aplicable para os seus conxuntos de problemas. 994 00:43:24,307 --> 00:43:24,806 Legal. 995 00:43:24,806 --> 00:43:27,501 996 00:43:27,501 --> 00:43:28,000 Todo ben. 997 00:43:28,000 --> 00:43:30,723 Entón, a cousa máis importante que vostedes son, probablemente, todos 998 00:43:30,723 --> 00:43:32,400 pensando agora, son o seu problema Establecer 1s, 999 00:43:32,400 --> 00:43:33,650 que son debidos xoves / venres. 1000 00:43:33,650 --> 00:43:36,890 1001 00:43:36,890 --> 00:43:39,710 >> No seu programa water.c, Consello terá 1002 00:43:39,710 --> 00:43:41,590 para solicitar ao usuario a unha entrada. 1003 00:43:41,590 --> 00:43:43,640 Dentro do seu programa mario.c terá 1004 00:43:43,640 --> 00:43:46,431 para usar un lazo é aninhado, que é un loop dentro dun loop for, 1005 00:43:46,431 --> 00:43:50,247 para imprimir un bloque de pirámide, esencialmente como o que Mario ten que ir a través de. 1006 00:43:50,247 --> 00:43:53,330 E, a continuación, dentro da súa greedy-- ou que Facer o cambio, se algún de vós 1007 00:43:53,330 --> 00:43:55,740 xa oíron falar de isso-- vai ter que ser moi 1008 00:43:55,740 --> 00:43:58,160 coidado con valores de punto flotante primeiros. 1009 00:43:58,160 --> 00:44:01,860 Lembre decimais flotantes e enteiros non son a mesma cousa. 1010 00:44:01,860 --> 00:44:03,620 Manteña o control de cal é cal. 1011 00:44:03,620 --> 00:44:05,953 E está indo a usar instrucións condicionais, tamén. 1012 00:44:05,953 --> 00:44:09,070 1013 00:44:09,070 --> 00:44:10,940 >> Todo ben, último. 1014 00:44:10,940 --> 00:44:12,770 Eu teño un par de minutos do final. 1015 00:44:12,770 --> 00:44:13,460 Style. 1016 00:44:13,460 --> 00:44:19,320 Entón, iso é algo que non fai de feito, a efectuar a eficiencia, 1017 00:44:19,320 --> 00:44:21,010 ou o funcionamento real do seu código. 1018 00:44:21,010 --> 00:44:24,380 Con todo, iso nos afecta como seus niveladoras, como os seus lectores. 1019 00:44:24,380 --> 00:44:27,290 Efectúa a, se está intentando atopar un problema. 1020 00:44:27,290 --> 00:44:30,700 Ela afecta a lexibilidade do código. 1021 00:44:30,700 --> 00:44:34,070 >> Entón, estilo, como cando estás estilizar un ensaio para Inglés, se 1022 00:44:34,070 --> 00:44:36,070 non teñen parágrafos, tes todo tipo 1023 00:44:36,070 --> 00:44:39,190 de mesturados nunha liña, el fai que sexa moi difícil para calquera 1024 00:44:39,190 --> 00:44:42,620 para ler o seu ensaio, aínda que seus puntos son loxicamente son. 1025 00:44:42,620 --> 00:44:44,390 Mesmo na programación. 1026 00:44:44,390 --> 00:44:47,910 Pode que horrible escuro código que SCAZ vai cubrir, 1027 00:44:47,910 --> 00:44:49,660 e aínda pode realizar e función. 1028 00:44:49,660 --> 00:44:53,110 Pero para nós, como os seus asistentes técnicos encanto, que han estar lendo e avaliando os seus Serie de exercicios, 1029 00:44:53,110 --> 00:44:54,460 que non é moi agradable. 1030 00:44:54,460 --> 00:44:56,859 >> Entón, por favor, por amor de nós e de si mesmo, 1031 00:44:56,859 --> 00:44:58,900 cando estás fixar un problema no seu código, 1032 00:44:58,900 --> 00:45:00,774 e estás ler o seu propio código, faga 1033 00:45:00,774 --> 00:45:03,910 se seguir algunhas convencións que nós imos pasar por riba. 1034 00:45:03,910 --> 00:45:04,510 >> Entón, en primeiro lugar. 1035 00:45:04,510 --> 00:45:07,070 Dea súas variables nomes significativos. 1036 00:45:07,070 --> 00:45:11,450 Se desexa almacenar un número enteiro chamado de idade, por favor, nomee idade. 1037 00:45:11,450 --> 00:45:12,875 Non nome altura. 1038 00:45:12,875 --> 00:45:14,750 Cando estás a almacenar unha era na altura, 1039 00:45:14,750 --> 00:45:16,722 fai todo moi confuso para nós. 1040 00:45:16,722 --> 00:45:17,930 Nós non nos gusta de ser confundido. 1041 00:45:17,930 --> 00:45:19,180 Non lle gusta ser confundido. 1042 00:45:19,180 --> 00:45:20,350 A ninguén lle gusta ser confundido. 1043 00:45:20,350 --> 00:45:23,100 Se indo para crear algo, nomea-la algo significativo. 1044 00:45:23,100 --> 00:45:26,440 >> Con todo, en loop, sinxelo variables de carácter son xeralmente ben. 1045 00:45:26,440 --> 00:45:31,350 E no loop for, se quere só i, e j, k, Sinto-se libre para só facelo. 1046 00:45:31,350 --> 00:45:32,670 >> Consistente arranque. 1047 00:45:32,670 --> 00:45:33,770 Entón, o que significa isto? 1048 00:45:33,770 --> 00:45:37,600 Isto significa que, tecnicamente, en teoría, pode iniciar e crear 1049 00:45:37,600 --> 00:45:40,140 múltiples variables na mesma liña. 1050 00:45:40,140 --> 00:45:42,820 Así, por exemplo, podo crear un enteiro chamado scaz_age, 1051 00:45:42,820 --> 00:45:47,110 e integer chamado andi_age = 20, e un enteiro chamado jason_age 1052 00:45:47,110 --> 00:45:48,090 na mesma liña. 1053 00:45:48,090 --> 00:45:52,060 E eu tamén pode asignar só un dos eles e non os outros para valores. 1054 00:45:52,060 --> 00:45:54,142 Pedímoslle, por favor, non fagas iso. 1055 00:45:54,142 --> 00:45:57,350 Porque aquí creou esencialmente tres variables, pero só un deles 1056 00:45:57,350 --> 00:45:58,295 de feito, ten un valor. 1057 00:45:58,295 --> 00:46:00,170 E entón, cando estamos intentando ler o seu código, 1058 00:46:00,170 --> 00:46:01,850 ou se estás fixar un problema no seu código, 1059 00:46:01,850 --> 00:46:03,340 é moi confuso para seguir. 1060 00:46:03,340 --> 00:46:09,300 Entón, só para a súa lexibilidade, para nosa capacidade de lectura, non fagas iso. 1061 00:46:09,300 --> 00:46:10,355 >> Claves consistente. 1062 00:46:10,355 --> 00:46:12,980 Algunhas persoas quere poñer o seu claves en lugares diferentes. 1063 00:46:12,980 --> 00:46:14,100 Realmente non importa. 1064 00:46:14,100 --> 00:46:17,900 Só asegúrese de que vostede é consistente na súa propio código de onde desexa poñelos. 1065 00:46:17,900 --> 00:46:18,950 >> Espazamento consistente. 1066 00:46:18,950 --> 00:46:22,040 Se pór un espazo despois dun loop for, sempre fai iso. 1067 00:46:22,040 --> 00:46:24,930 Non basta gusta tipo de facelo en Nalgúns lugares, non facelo noutros. 1068 00:46:24,930 --> 00:46:26,580 Só ten que ser consistente. 1069 00:46:26,580 --> 00:46:29,500 >> En segundo lugar, se alguén quere para ler a Guía de Estilo CS50, 1070 00:46:29,500 --> 00:46:33,230 temos oficialmente unha guía de estilo que dille todas estas convencións, 1071 00:46:33,230 --> 00:46:34,890 ademais de máis. 1072 00:46:34,890 --> 00:46:35,530 É en liña. 1073 00:46:35,530 --> 00:46:38,670 É como cs50.net/style ou algo así. 1074 00:46:38,670 --> 00:46:40,180 Pode google. 1075 00:46:40,180 --> 00:46:41,399 >> Consistencia é a clave. 1076 00:46:41,399 --> 00:46:43,190 Non te preocupes que outros están facendo, 1077 00:46:43,190 --> 00:46:46,180 só asegúrese de que vostede é consistente dentro do seu propio código. 1078 00:46:46,180 --> 00:46:50,570 Calquera ten dúbidas sobre iso? 1079 00:46:50,570 --> 00:46:51,070 Si. 1080 00:46:51,070 --> 00:46:53,370 >> Altofalante 18: Entón a cousa axeitada que ver coa arranque é só 1081 00:46:53,370 --> 00:46:56,130 te-los todos nun separado liña, é que o que está dicindo? 1082 00:46:56,130 --> 00:46:58,850 >> ANDI Pengo: Entón, eu raramente isto ocorre. 1083 00:46:58,850 --> 00:47:02,230 Pero se quere, se quería para ser como economía de espazo no seu código, 1084 00:47:02,230 --> 00:47:04,000 ou o que quere, pode facer iso. 1085 00:47:04,000 --> 00:47:07,800 Nós pedimos que simplemente non iniciar unha cousa e non os outros. 1086 00:47:07,800 --> 00:47:12,600 Entón, se quere facer int scaz_age, int andi_age, int jason_age, iso é bo. 1087 00:47:12,600 --> 00:47:15,600 Só non arrincar un e non os outros é todo. 1088 00:47:15,600 --> 00:47:18,380 1089 00:47:18,380 --> 00:47:19,904 >> Preguntas? 1090 00:47:19,904 --> 00:47:20,850 Todo ben. 1091 00:47:20,850 --> 00:47:24,610 Vou pasar a micrófono, eo punteiro láser, 1092 00:47:24,610 --> 00:47:28,862 eo bastón para SCAZ neste momento. 1093 00:47:28,862 --> 00:47:29,808 Isto é raro. 1094 00:47:29,808 --> 00:47:32,650 1095 00:47:32,650 --> 00:47:33,200 Aquí está. 1096 00:47:33,200 --> 00:47:34,408 >> BRIAN Scassellati: Grazas. 1097 00:47:34,408 --> 00:47:42,500 1098 00:47:42,500 --> 00:47:43,380 Como é que para o son? 1099 00:47:43,380 --> 00:47:46,420 1100 00:47:46,420 --> 00:47:47,900 O son é bo? . 1101 00:47:47,900 --> 00:47:49,220 Excelente. 1102 00:47:49,220 --> 00:47:50,350 Aceptar. 1103 00:47:50,350 --> 00:47:52,110 Entón, ola a todos. 1104 00:47:52,110 --> 00:47:56,540 >> Vou tentar traballar con un exemplo práctico con vostede. 1105 00:47:56,540 --> 00:48:00,850 E nós estamos indo a usar CS50 de ambiente de desenvolvemento, o que se chama 1106 00:48:00,850 --> 00:48:03,120 o Integrated Development Environment. 1107 00:48:03,120 --> 00:48:05,145 E xa viu iso demostrada en charla. 1108 00:48:05,145 --> 00:48:07,520 E no Conxunto de problemas 1, está terá unha oportunidade 1109 00:48:07,520 --> 00:48:10,890 para usalo, e xogar con Lo, e afacerse a el, 1110 00:48:10,890 --> 00:48:13,640 porque nós estamos indo a usalo polo resto do semestre. 1111 00:48:13,640 --> 00:48:20,350 >> Polo tanto, neste IDE, ten o que parece como un navegador de arquivos moi tradicional 1112 00:48:20,350 --> 00:48:21,890 ao longo dun lado. 1113 00:48:21,890 --> 00:48:24,360 Ten unha parte superior arriba onde está indo 1114 00:48:24,360 --> 00:48:28,850 para ver o código fonte, o seu Cfile, o código que escribe. 1115 00:48:28,850 --> 00:48:31,880 E abaixo fondo, vai ten unha fiestra de terminal 1116 00:48:31,880 --> 00:48:36,330 que vai empregar para tanto compilar o seu programa 1117 00:48:36,330 --> 00:48:39,090 e para realizar ou realizar o seu programa. 1118 00:48:39,090 --> 00:48:40,100 Aceptar. 1119 00:48:40,100 --> 00:48:46,560 >> Entón, só para dar un pouco de fundación, en que a fiestra de terminal, 1120 00:48:46,560 --> 00:48:48,930 vai ser usando un conxunto de comandos 1121 00:48:48,930 --> 00:48:53,040 que son comandos estándar en todo a maioría dos sistemas Unix ou Linux. 1122 00:48:53,040 --> 00:48:55,890 E por iso, se xa usou calquera forma de Unix, Ubuntu, 1123 00:48:55,890 --> 00:48:59,140 ou calquera dos outros sabores, estes van parecer familiares. 1124 00:48:59,140 --> 00:49:00,890 >> Se non ten, non se preocupe. 1125 00:49:00,890 --> 00:49:02,830 Non hai nada complicado sobre eles. 1126 00:49:02,830 --> 00:49:05,330 Están só usando un diferente sintaxe, unha nomenclatura diferente 1127 00:49:05,330 --> 00:49:07,630 convención do que xa viu antes. 1128 00:49:07,630 --> 00:49:12,190 >> Entón, para incluír os arquivos dentro dun directorio concreto 1129 00:49:12,190 --> 00:49:15,310 eles van usar un ls comando chamado, ou lista. 1130 00:49:15,310 --> 00:49:18,010 Se queres ver todo con todos os detalles, 1131 00:49:18,010 --> 00:49:21,535 vai usar un mando argumento de liña con ls -l. 1132 00:49:21,535 --> 00:49:23,910 E iso vai lle amosar todo en maior detalle, incluíndo 1133 00:49:23,910 --> 00:49:26,270 os permisos a un arquivo. 1134 00:49:26,270 --> 00:49:31,190 >> Para cambiar o directorio, vai empregar o comando cd. 1135 00:49:31,190 --> 00:49:35,180 E vai ser capaz de cambiar o directorio tanto para ir para o seu directorio persoal. 1136 00:49:35,180 --> 00:49:38,500 Isto é só cd todo por en si, cd con dous 1137 00:49:38,500 --> 00:49:42,930 dots voltará a ser unha nivel ao directorio anterior. 1138 00:49:42,930 --> 00:49:46,400 E tamén pode cd para un subdirectorio, escribindo cd 1139 00:49:46,400 --> 00:49:48,500 eo nome deste subdirectorio. 1140 00:49:48,500 --> 00:49:50,540 >> Tamén pode crear novos directorios. 1141 00:49:50,540 --> 00:49:52,790 E nós estamos indo a pé a través deste en só un minuto. 1142 00:49:52,790 --> 00:49:54,498 Pero só para poñer todo na pantalla. 1143 00:49:54,498 --> 00:49:56,310 Para que poida velos. 1144 00:49:56,310 --> 00:50:00,420 >> Tamén terá a capacidade para manipular arquivos directamente 1145 00:50:00,420 --> 00:50:02,100 desde a liña de comandos. 1146 00:50:02,100 --> 00:50:06,059 Vai ser capaz de copia-los, para mover los ou eliminar-los, 1147 00:50:06,059 --> 00:50:07,600 é dicir, efectivamente, para borralos. 1148 00:50:07,600 --> 00:50:10,310 1149 00:50:10,310 --> 00:50:15,350 >> O IDE CS50 lle dá a plena poder da liña de comandos argumentos. 1150 00:50:15,350 --> 00:50:20,280 E isto significa que tamén pode facer cousas moi perigosas. 1151 00:50:20,280 --> 00:50:21,560 Aceptar. 1152 00:50:21,560 --> 00:50:25,010 Por exemplo, pode eliminar, ou que é de exclusión, 1153 00:50:25,010 --> 00:50:28,750 un ficheiro sen pedir para unha confirmación. 1154 00:50:28,750 --> 00:50:31,820 E pode incluso eliminar recursively-- que é 1155 00:50:31,820 --> 00:50:38,940 o trazo r flag-- un todo subdirectorio e todo o seu contido. 1156 00:50:38,940 --> 00:50:39,660 Aceptar. 1157 00:50:39,660 --> 00:50:42,940 Eles están listados en vermello, porque que pensar "Danger" cada vez 1158 00:50:42,940 --> 00:50:45,000 ve esas cousas. 1159 00:50:45,000 --> 00:50:45,920 Aceptar. 1160 00:50:45,920 --> 00:50:46,420 Todo ben. 1161 00:50:46,420 --> 00:50:50,090 1162 00:50:50,090 --> 00:50:53,430 >> Agora, por fin, as cousas que son vai ser moi valioso para ti, 1163 00:50:53,430 --> 00:50:57,270 existen algúns bos trucos para saber como está navegando 1164 00:50:57,270 --> 00:50:59,190 a través desta xanela de terminal. 1165 00:50:59,190 --> 00:51:03,590 En primeiro lugar, pode limpar a pantalla en calquera momento, só escribindo en claro. 1166 00:51:03,590 --> 00:51:06,310 E vai ver me facelo con bastante frecuencia. 1167 00:51:06,310 --> 00:51:09,990 Tamén pode só amosar o texto dun ficheiro 1168 00:51:09,990 --> 00:51:13,992 escribindo máis e, a continuación, o nome do ficheiro. 1169 00:51:13,992 --> 00:51:17,200 Vai entón ser capaz de rodar cara atrás e adiante que só coa barra de espazo 1170 00:51:17,200 --> 00:51:19,010 e as frechas. 1171 00:51:19,010 --> 00:51:25,450 >> Se ten, como fixemos onte en conferencia, un programa que está a ser executado de forma continua 1172 00:51:25,450 --> 00:51:29,190 en loop infinito, vostede pode deixar este programa 1173 00:51:29,190 --> 00:51:35,160 de realizar, escribindo no control, que está seguro a tecla Control-C. 1174 00:51:35,160 --> 00:51:38,360 E pode ter que facer iso varias veces. 1175 00:51:38,360 --> 00:51:40,620 O ordenador está moi por diante de ti. 1176 00:51:40,620 --> 00:51:43,380 E ás veces precisa darlle un par de intentos 1177 00:51:43,380 --> 00:51:46,280 antes de que vai realmente se concretar. 1178 00:51:46,280 --> 00:51:48,760 >> Tamén será capaz de tipo través dos comandos 1179 00:51:48,760 --> 00:51:54,230 que acaba de escribir usando a tecla para arriba, tecla de frecha, a continuación, a tecla de frecha cara a abaixo. 1180 00:51:54,230 --> 00:51:57,560 E o que é máis útil é, en vez de escribir nomes de ficheiros longos, 1181 00:51:57,560 --> 00:52:02,209 vai ser capaz de o Tab para uso autocomplete algunhas instrucións. 1182 00:52:02,209 --> 00:52:04,750 Agora imos demostrar todos aqueles en só un segundo. 1183 00:52:04,750 --> 00:52:06,780 Polo tanto, se non se lembra Los, non se preocupe. 1184 00:52:06,780 --> 00:52:10,780 Estas son cousas que vai incorporarse e utilizar a medida que avanzamos. 1185 00:52:10,780 --> 00:52:11,470 Aceptar. 1186 00:52:11,470 --> 00:52:18,830 >> Así, en C-- a diferenza Scratch-- C é unha linguaxe compilada. 1187 00:52:18,830 --> 00:52:23,210 Isto significa que nós estamos indo tomar unha fonte file-- que é o texto que escribe, 1188 00:52:23,210 --> 00:52:26,500 os comandos que escribe, printf () declaracións, os lazos, 1189 00:52:26,500 --> 00:52:32,580 else-- todo e imos para dar o ficheiro e entrega-la 1190 00:52:32,580 --> 00:52:34,670 para un programa chamado o compilador. 1191 00:52:34,670 --> 00:52:39,850 >> O compilador, entón, tomar que o texto que escribiu 1192 00:52:39,850 --> 00:52:43,270 e traducir-lo en as instrucións binarios 1193 00:52:43,270 --> 00:52:46,010 se o seu ordenador é realmente vai usar. 1194 00:52:46,010 --> 00:52:49,700 Iso é chamado de obxecto ou o ficheiro executable. 1195 00:52:49,700 --> 00:52:55,320 Se ollar para este ficheiro, está indo para ver o código que escribiu. 1196 00:52:55,320 --> 00:52:59,480 Se ollar para este ficheiro, está indo para ver unha secuencia aleatoria de personaxes 1197 00:52:59,480 --> 00:53:01,680 que non teñen sentido algún. 1198 00:53:01,680 --> 00:53:03,250 Isto é porque este é o binario. 1199 00:53:03,250 --> 00:53:05,560 Non está feito para ti estar lendo. 1200 00:53:05,560 --> 00:53:08,690 >> Con todo, calquera hora que quere realizar algo, o que vai 1201 00:53:08,690 --> 00:53:13,670 estar en execución é o arquivo obxecto. 1202 00:53:13,670 --> 00:53:19,110 Entón, cando traballamos con estes arquivos, imos escribir un arquivo en C. 1203 00:53:19,110 --> 00:53:23,400 Imos entón recompila-lo, usando un mando como make que invocar 1204 00:53:23,400 --> 00:53:27,070 o clang compilador para a linguaxe C. 1205 00:53:27,070 --> 00:53:31,530 E que xerará un obxecto ficheiro, como un para fóra, ou, neste caso, 1206 00:53:31,530 --> 00:53:36,580 o nome, o meu arquivo, que engada en. 1207 00:53:36,580 --> 00:53:37,780 Todo ben. 1208 00:53:37,780 --> 00:53:39,790 >> Entón imos realmente tentar iso. 1209 00:53:39,790 --> 00:53:42,850 Entón, eu vin cun exemplo do que eu quería probar. 1210 00:53:42,850 --> 00:53:47,380 E unha das cousas que me fascina é a animación. 1211 00:53:47,380 --> 00:53:51,010 Entón, imos tentar facer un pouco de animación 1212 00:53:51,010 --> 00:53:53,760 usando só caracteres ASCII. 1213 00:53:53,760 --> 00:53:56,470 Personaxes que poden imprimir facilmente agora. 1214 00:53:56,470 --> 00:54:00,890 >> Entón, aquí é a miña mellor intento a crear para ti 1215 00:54:00,890 --> 00:54:07,005 a animación dun coello que funciona a través da herba alta. 1216 00:54:07,005 --> 00:54:07,505 Alí está el. 1217 00:54:07,505 --> 00:54:10,150 1218 00:54:10,150 --> 00:54:10,670 Aceptar. 1219 00:54:10,670 --> 00:54:14,050 Así, non funciona aínda, pero é alí de pé na herba alta. 1220 00:54:14,050 --> 00:54:17,810 >> Agora, se eu fose un animador, na vella escola 1221 00:54:17,810 --> 00:54:20,860 versión da animación, o que eu quere facer é que eu ía producir 1222 00:54:20,860 --> 00:54:23,640 unha imaxe de este coello na herba. 1223 00:54:23,640 --> 00:54:25,390 E entón eu ía producir outro picture-- 1224 00:54:25,390 --> 00:54:30,600 outro o que eles chamaron cell-- que tiña o coello só lixeiramente movido. 1225 00:54:30,600 --> 00:54:34,870 E a continuación, un terceiro que o coello movido un pouco máis. 1226 00:54:34,870 --> 00:54:40,610 >> E gustaríame producir un todo Tras estas células. 1227 00:54:40,610 --> 00:54:44,220 Algúns onde o coello é longo cara á esquerda. 1228 00:54:44,220 --> 00:54:47,050 E, a continuación, móvese lentamente, unha por un cara ao medio. 1229 00:54:47,050 --> 00:54:51,120 E, a continuación, a partir do medio cara á dereita. 1230 00:54:51,120 --> 00:54:55,760 E se eu fose, entón, realmente sorte, eu podería poñelas en conxunto 1231 00:54:55,760 --> 00:54:57,970 e eu podería animar a eles. 1232 00:54:57,970 --> 00:55:00,370 E non é o meu coello correndo pola herba. 1233 00:55:00,370 --> 00:55:02,310 >> Esa é a miña gran PowerPoint erro ao día. 1234 00:55:02,310 --> 00:55:02,809 Aceptar. 1235 00:55:02,809 --> 00:55:04,760 Polo tanto, este é tan bo que el gaña. 1236 00:55:04,760 --> 00:55:05,260 Aceptar. 1237 00:55:05,260 --> 00:55:08,455 Entón, aquí unha vez máis, aquí é a nosa coello correndo pola herba. 1238 00:55:08,455 --> 00:55:09,217 >> Altofalante 19: Máis unha vez. 1239 00:55:09,217 --> 00:55:11,050 BRIAN Scassellati: One máis tempo, todo ben. 1240 00:55:11,050 --> 00:55:11,940 Hai seu coello. 1241 00:55:11,940 --> 00:55:12,940 Aceptar. 1242 00:55:12,940 --> 00:55:15,470 >> Entón, hoxe o que imos facer é que imos 1243 00:55:15,470 --> 00:55:21,110 para tratar de automatizar o proceso de de producir estas células. 1244 00:55:21,110 --> 00:55:24,135 Non imos moi chegar ao punto de poder poñelos todos xuntos. 1245 00:55:24,135 --> 00:55:28,900 Pero nós estamos indo a tentar automatizar o proceso de xerar esta secuencia. 1246 00:55:28,900 --> 00:55:32,900 >> E iso é moito do que animación hoxe é como. 1247 00:55:32,900 --> 00:55:36,690 É dicir, non facer as cousas necesariamente deseñando todo á man. 1248 00:55:36,690 --> 00:55:40,610 Usan un ordenador para automatizar partes dese proceso. 1249 00:55:40,610 --> 00:55:41,110 Aceptar. 1250 00:55:41,110 --> 00:55:47,720 >> Entón deixe-me pasar agora a nosa IDE CS50. 1251 00:55:47,720 --> 00:55:54,260 E eu creei para US-- e deixá- me achegar un pouco aquí bit-- teño 1252 00:55:54,260 --> 00:55:58,420 creou para nós un punto de partida. 1253 00:55:58,420 --> 00:56:03,830 >> Cada vez que pedimos-lle para se sentir abaixo e escribir unha peza de código, 1254 00:56:03,830 --> 00:56:09,250 o que estamos realmente pedindo para facer é que estamos pedindo para resolver un problema. 1255 00:56:09,250 --> 00:56:11,810 E a forma que ten que pensar en facelo 1256 00:56:11,810 --> 00:56:17,900 é, iniciando con algúns simple parte desa solución. 1257 00:56:17,900 --> 00:56:21,730 E, a continuación, construír a partir desa parte. 1258 00:56:21,730 --> 00:56:23,400 E iso é o que imos facer hoxe. 1259 00:56:23,400 --> 00:56:27,570 >> Entón, en vez de tratar de todo dunha vez para escribir todo o monte de código que é 1260 00:56:27,570 --> 00:56:30,770 indo para producir os 10 células animación, 1261 00:56:30,770 --> 00:56:35,506 imos comezar no seu lugar cunha peza que funciona. 1262 00:56:35,506 --> 00:56:37,380 E entón nós imos construír un pouco en torno a que 1263 00:56:37,380 --> 00:56:39,740 e un pouco máis e un pouco máis. 1264 00:56:39,740 --> 00:56:42,550 >> Agora, a cousa boa sobre resolución de problemas deste xeito 1265 00:56:42,550 --> 00:56:46,716 é que permitirá que comezar sempre con algo que sabe 1266 00:56:46,716 --> 00:56:51,130 traballa e introducir un cambio gradual. 1267 00:56:51,130 --> 00:56:54,090 E iso é unha boa forma para aprender a codificar, 1268 00:56:54,090 --> 00:56:58,590 xa que cada vez que fai unha cambio, ve o impacto que ten. 1269 00:56:58,590 --> 00:56:59,540 Aceptar. 1270 00:56:59,540 --> 00:57:01,450 >> Entón aquí está o noso punto de partida. 1271 00:57:01,450 --> 00:57:01,950 Aceptar. 1272 00:57:01,950 --> 00:57:08,030 Así, a principios do meu arquivo, Teño de hash stdio.h #included. 1273 00:57:08,030 --> 00:57:12,560 Isto é para que eu poida obter a printf () para traballar. 1274 00:57:12,560 --> 00:57:15,240 >> Eu, entón, eu teño a miña función principal. 1275 00:57:15,240 --> 00:57:18,760 E iso aínda parece un pouco arcana ou escuro para algúns de vós. 1276 00:57:18,760 --> 00:57:20,010 Está ben. 1277 00:57:20,010 --> 00:57:23,190 Todo o que di é que a función principal leva 1278 00:57:23,190 --> 00:57:27,830 medios non arguments-- baleiros nada en C. E 1279 00:57:27,830 --> 00:57:29,940 retorno por convención, un enteiro. 1280 00:57:29,940 --> 00:57:33,290 Principal sempre retorna un enteiro, xeralmente un código dicindo cousas 1281 00:57:33,290 --> 00:57:35,071 foi ben ou non foi ben. 1282 00:57:35,071 --> 00:57:35,570 Aceptar. 1283 00:57:35,570 --> 00:57:39,110 Pero principal ten que ter ese formar a nós agora. 1284 00:57:39,110 --> 00:57:42,080 >> Eu, a continuación, poñer en tres liñas de código. 1285 00:57:42,080 --> 00:57:46,760 E xunto con cada liña de código, engada un comentario. 1286 00:57:46,760 --> 00:57:51,340 Agora, unha das cousas que imos insistir que fai, 1287 00:57:51,340 --> 00:57:55,320 e é tan importante práctica de programación, 1288 00:57:55,320 --> 00:57:57,800 é sempre a comentar o seu código. 1289 00:57:57,800 --> 00:58:02,550 Sempre anota nun Inglés comentario algo 1290 00:58:02,550 --> 00:58:06,740 Que pensas que o código se quere facer. 1291 00:58:06,740 --> 00:58:11,360 Desta forma, máis tarde, cando atrás para el, pode ollar para el e pode dicir, 1292 00:58:11,360 --> 00:58:13,800 Oh, eu recordo que era tentando facer iso. 1293 00:58:13,800 --> 00:58:17,590 Ou cando un TA senta contigo tentar axudar no horario de oficina, 1294 00:58:17,590 --> 00:58:20,890 poden ollar para iso e ir, eu ver o que estaba tentando facer, 1295 00:58:20,890 --> 00:58:25,630 pero no seu lugar está presente o que está realmente a suceder. 1296 00:58:25,630 --> 00:58:26,130 Aceptar. 1297 00:58:26,130 --> 00:58:30,300 >> Entón eu teño tres partes para o meu código, Vou en primeiro lugar impresión 1298 00:58:30,300 --> 00:58:33,110 nalgúns puntos no inicio. 1299 00:58:33,110 --> 00:58:37,480 Vou a continuación, imprimir o meu coello moi extravagante. 1300 00:58:37,480 --> 00:58:40,600 E entón algún anaco de puntos ao final. 1301 00:58:40,600 --> 00:58:45,220 >> E estas tres declaracións de impresión debe parece familiar para vostede neste momento. 1302 00:58:45,220 --> 00:58:47,350 Todo o que eu estou facendo na cada un deles é que eu son 1303 00:58:47,350 --> 00:58:49,780 imprimir unha secuencia de caracteres. 1304 00:58:49,780 --> 00:58:51,370 Non hai variables implicadas. 1305 00:58:51,370 --> 00:58:54,320 Todo é só plana. 1306 00:58:54,320 --> 00:58:55,270 Aceptar. 1307 00:58:55,270 --> 00:59:07,340 >> Entón, se eu baixar agora á miña terminal-- imos ver se podo pegar isto de volta out-- 1308 00:59:07,340 --> 00:59:09,370 e eu estou indo a escribir clara novo. 1309 00:59:09,370 --> 00:59:12,507 >> Altofalante 20: Usan o barra dobre en comentar? 1310 00:59:12,507 --> 00:59:14,340 BRIAN Scassellati: Poida usar o si double--. 1311 00:59:14,340 --> 00:59:16,920 Hai varias formas de deixar comentarios en C. Un 1312 00:59:16,920 --> 00:59:19,440 forma é a utilización do dúas barras oblicuas. 1313 00:59:19,440 --> 00:59:24,910 A outra é a utilización dunha barra e unha estrela e pecha cunha estrela e unha barra. 1314 00:59:24,910 --> 00:59:26,110 Todo ben. 1315 00:59:26,110 --> 00:59:28,950 >> Primeiro de todo, eu vou comezar a navegar por aquí. 1316 00:59:28,950 --> 00:59:35,350 Entón, se eu ir ao meu directorio home, Eu mudei directorios alí, 1317 00:59:35,350 --> 00:59:40,230 Vou mirar e ver o que é nese directorio, ls, listar. 1318 00:59:40,230 --> 00:59:43,230 Eu estou indo a ver que eu teño ten dous subdirectorios. 1319 00:59:43,230 --> 00:59:47,910 Imos facer deste un pouco maior para que todos podemos velo. 1320 00:59:47,910 --> 00:59:50,610 >> Podo ver que eu teño ten dous subdirectorios. 1321 00:59:50,610 --> 00:59:53,510 Vou cambiar o directorio para entrar na área de traballo. 1322 00:59:53,510 --> 00:59:58,380 E eu vou só escribir parte dela, e despois é só usar Tab. 1323 00:59:58,380 --> 01:00:01,520 E vai completar o resto para min. 1324 01:00:01,520 --> 01:00:03,370 Extravagante. 1325 01:00:03,370 --> 01:00:04,960 >> Vou mirar e ver no escritorio. 1326 01:00:04,960 --> 01:00:08,431 E agora, eu estou a traballar na SuperSection 1327 01:00:08,431 --> 01:00:09,680 que estamos ensinando agora. 1328 01:00:09,680 --> 01:00:10,971 Entón eu vou para o directorio. 1329 01:00:10,971 --> 01:00:14,770 1330 01:00:14,770 --> 01:00:15,970 E, finalmente, ollar e ver. 1331 01:00:15,970 --> 01:00:18,480 E eu teño o ficheiro bunny.c. 1332 01:00:18,480 --> 01:00:20,980 >> Todo ben entón déixeme aclarar unha vez máis. 1333 01:00:20,980 --> 01:00:24,370 E eu vou agora-- novo eu son aínda permanecer nese directorio 1334 01:00:24,370 --> 01:00:27,540 e iso está me dicindo que eu estou en ese directorio SuperSection. 1335 01:00:27,540 --> 01:00:30,690 Eu estou indo a ir adiante e facer o meu coello programa. 1336 01:00:30,690 --> 01:00:33,730 1337 01:00:33,730 --> 01:00:38,810 E ese mando, asegúrese coello, ao soar un pouco raro, 1338 01:00:38,810 --> 01:00:42,960 tamén invoca o compilador clang. 1339 01:00:42,960 --> 01:00:46,470 >> E se produce a me unha saída que é 1340 01:00:46,470 --> 01:00:52,130 un funny-- executábel arquivo executable chamado coello. 1341 01:00:52,130 --> 01:00:52,700 Aceptar. 1342 01:00:52,700 --> 01:00:56,700 Podo entón, e iso soa peor aínda, realizar coello. 1343 01:00:56,700 --> 01:00:59,360 1344 01:00:59,360 --> 01:01:00,680 Aceptar. 1345 01:01:00,680 --> 01:01:03,150 E imos ver o que fai. 1346 01:01:03,150 --> 01:01:04,527 Aceptar. 1347 01:01:04,527 --> 01:01:06,360 Isto é un pouco de o que eu estaba esperando. 1348 01:01:06,360 --> 01:01:11,290 Eu teño a miña imaxe do coelliño alí, pero eu medio que quería todo por si só. 1349 01:01:11,290 --> 01:01:13,186 O que eu perda? 1350 01:01:13,186 --> 01:01:14,478 >> Altofalante 21: Corte l ou barra n. 1351 01:01:14,478 --> 01:01:15,602 BRIAN Scassellati: o Slash n. 1352 01:01:15,602 --> 01:01:16,580 Aceptar. 1353 01:01:16,580 --> 01:01:18,800 Entón, imos voltar aquí. 1354 01:01:18,800 --> 01:01:20,330 E eu vou saír desta. 1355 01:01:20,330 --> 01:01:23,320 E eu vou volver en un regalo. 1356 01:01:23,320 --> 01:01:27,720 E imos dar un ollo agora da miña principal función aquí. 1357 01:01:27,720 --> 01:01:29,280 >> Entón o que debo facer? 1358 01:01:29,280 --> 01:01:30,465 Quero rematar a liña. 1359 01:01:30,465 --> 01:01:34,020 1360 01:01:34,020 --> 01:01:35,800 Entón, eu vou poñer nun comentario. 1361 01:01:35,800 --> 01:01:38,430 Vou poñer nun printf (). 1362 01:01:38,430 --> 01:01:41,350 E o que eu teño que poñer en? 1363 01:01:41,350 --> 01:01:41,890 / N. 1364 01:01:41,890 --> 01:01:43,480 Aceptar. 1365 01:01:43,480 --> 01:01:46,040 O que eu teño para acabar con el? 1366 01:01:46,040 --> 01:01:47,100 Punto e coma. 1367 01:01:47,100 --> 01:01:48,730 Todo ben. 1368 01:01:48,730 --> 01:01:52,880 >> Agora, un dos de verdade cousas importantes é que seguro 1369 01:01:52,880 --> 01:01:56,720 cada vez que fai un cambio no seu código, que salvalo. 1370 01:01:56,720 --> 01:02:01,380 Se non está gardado o código, está Vai notar unha pequena estrela alí enriba. 1371 01:02:01,380 --> 01:02:03,420 E que a estrela di que non salvou este código. 1372 01:02:03,420 --> 01:02:07,790 >> Se eu recompila-lo agora, non é vai reflectir ningunha destas alteracións, 1373 01:02:07,790 --> 01:02:11,680 porque o compilador mira para o ficheiro que está no disco, non o ficheiro que é 1374 01:02:11,680 --> 01:02:13,790 abrir no seu editor. 1375 01:02:13,790 --> 01:02:14,290 Todo ben. 1376 01:02:14,290 --> 01:02:20,830 >> Entón, imos garda-lo e despois imos seguro aquí abaixo, volver para fóra. 1377 01:02:20,830 --> 01:02:24,670 Veña ata a miña terminal. 1378 01:02:24,670 --> 01:02:27,193 E imos limpar o espazo de novo. 1379 01:02:27,193 --> 01:02:30,690 1380 01:02:30,690 --> 01:02:35,760 >> E podemos ir adiante e outro tempo de facer o noso programa de coello. 1381 01:02:35,760 --> 01:02:40,180 E executar o coello. 1382 01:02:40,180 --> 01:02:42,500 Isto non quere traballar. 1383 01:02:42,500 --> 01:02:43,950 Barra mal. 1384 01:02:43,950 --> 01:02:52,280 Entón, se ollar para o que eu teño, eu coloque un / N alí, pero eu tiña a barra mal. 1385 01:02:52,280 --> 01:02:56,190 >> Todo o que o ordenador fai é moi explícita. 1386 01:02:56,190 --> 01:02:57,230 OK? 1387 01:02:57,230 --> 01:03:01,250 Un pequeno erro de puntuación, e de súpeto non consegue o que quere. 1388 01:03:01,250 --> 01:03:01,750 Todo ben. 1389 01:03:01,750 --> 01:03:03,740 Entón, imos aumentar de novo para fóra. 1390 01:03:03,740 --> 01:03:04,410 Imos volver. 1391 01:03:04,410 --> 01:03:07,930 Ben facer esa reparación moi rápida. 1392 01:03:07,930 --> 01:03:09,270 Imos poñer a barra da dereita. 1393 01:03:09,270 --> 01:03:10,570 Nós imos salvalo. 1394 01:03:10,570 --> 01:03:13,410 Imos zoom. 1395 01:03:13,410 --> 01:03:16,730 >> Por algunha razón, isto non é ser feliz, pero imos adiante 1396 01:03:16,730 --> 01:03:19,850 e nós imos voltar para o terminal aquí. 1397 01:03:19,850 --> 01:03:22,940 Esclarece-lo. 1398 01:03:22,940 --> 01:03:24,880 Nós imos ampliar. 1399 01:03:24,880 --> 01:03:28,410 E unha vez máis, imos facer coello. 1400 01:03:28,410 --> 01:03:32,360 E agora con certeza, funciona. 1401 01:03:32,360 --> 01:03:33,240 Hooray. 1402 01:03:33,240 --> 01:03:34,300 Aceptar. 1403 01:03:34,300 --> 01:03:39,580 >> Entón, imos tentar facelo un pouco máis xeral. 1404 01:03:39,580 --> 01:03:46,750 A ver se no canto de só imprimir un cadro particular, 1405 01:03:46,750 --> 01:03:49,610 imos ver se podemos facelo para que poidamos obter toda 10 1406 01:03:49,610 --> 01:03:52,960 destes cadros animados que queriamos ter. 1407 01:03:52,960 --> 01:03:56,550 Entón, de novo, imos dar esta un paso á vez. 1408 01:03:56,550 --> 01:03:59,900 >> Imos primeiro xeneraliza-la, non de xeito que fago todo cadros, 1409 01:03:59,900 --> 01:04:03,990 pero entón eu fago calquera cadro que eu podería querer. 1410 01:04:03,990 --> 01:04:05,920 Entón, cal é a diferenza entre os cadros? 1411 01:04:05,920 --> 01:04:07,377 É o coello o mesmo? 1412 01:04:07,377 --> 01:04:07,960 Audiencia: Si. 1413 01:04:07,960 --> 01:04:08,390 BRIAN Scassellati: Yeah. 1414 01:04:08,390 --> 01:04:09,370 Cal é a diferencia? 1415 01:04:09,370 --> 01:04:10,246 >> Audiencia: Posición. 1416 01:04:10,246 --> 01:04:11,870 BRIAN Scassellati: A súa posición, non? 1417 01:04:11,870 --> 01:04:15,590 E como fago para controlar a súa posición? 1418 01:04:15,590 --> 01:04:17,340 Cantos puntos son poñendo a principios 1419 01:04:17,340 --> 01:04:19,048 e cantos puntos son poñendo ao final. 1420 01:04:19,048 --> 01:04:21,970 Entón, eu tiña cinco anos na comezando cinco e ao final. 1421 01:04:21,970 --> 01:04:28,320 >> Imos substituír aquel cinco cun loop for. 1422 01:04:28,320 --> 01:04:29,380 Aceptar. 1423 01:04:29,380 --> 01:04:32,330 E eu vou crear un para lazo agora que vai dicir, 1424 01:04:32,330 --> 01:04:37,800 Eu estou indo a imprimir un número de puntos no inicio. 1425 01:04:37,800 --> 01:04:39,600 Vou usar unha variable. 1426 01:04:39,600 --> 01:04:44,150 Imos dicir, que tal como i o contador no meu loop. 1427 01:04:44,150 --> 01:04:47,200 E eu vou declaralo la enriba. 1428 01:04:47,200 --> 01:04:49,360 >> E, a continuación, no loop for Eu teño que facer tres cousas. 1429 01:04:49,360 --> 01:04:52,340 O primeiro que eu teño que facer é que eu teño para iniciar i. 1430 01:04:52,340 --> 01:04:56,570 ¿Que debería arrincar Lo para comezar a ser? 1431 01:04:56,570 --> 01:04:57,160 0. 1432 01:04:57,160 --> 01:04:58,310 Aceptar. 1433 01:04:58,310 --> 01:05:00,950 >> Entón, eu teño que dicir, o que é a condición de clausura? 1434 01:05:00,950 --> 01:05:03,020 Cando debo deixar? 1435 01:05:03,020 --> 01:05:05,983 Ben cantos puntos quere imprimir en un regalo? 1436 01:05:05,983 --> 01:05:06,921 >> Audiencia: Five. 1437 01:05:06,921 --> 01:05:08,170 BRIAN Scassellati: Cinco novo? 1438 01:05:08,170 --> 01:05:10,650 Que tal imos facer algo diferente, fixemos cinco. 1439 01:05:10,650 --> 01:05:12,584 Imos amosar que é diferente. 1440 01:05:12,584 --> 01:05:13,250 Altofalante 22: Two. 1441 01:05:13,250 --> 01:05:13,580 BRIAN Scassellati: Dous. 1442 01:05:13,580 --> 01:05:14,080 Aceptar. 1443 01:05:14,080 --> 01:05:17,760 Entón, se eu quero dous puntos, o que debo poñer aquí? 1444 01:05:17,760 --> 01:05:19,140 >> Audiencia: Tres. 1445 01:05:19,140 --> 01:05:20,530 >> BRIAN Scassellati: Tres. 1446 01:05:20,530 --> 01:05:21,400 Aceptar. 1447 01:05:21,400 --> 01:05:24,220 Cantas veces é que vai pasar? 1448 01:05:24,220 --> 01:05:28,469 Isto vai pasar por tres veces, 0, 1 e 2, non? 1449 01:05:28,469 --> 01:05:30,010 Todo ben, imos volver para abaixo para dous. 1450 01:05:30,010 --> 01:05:31,570 Agora imos ter dous puntos. 1451 01:05:31,570 --> 01:05:35,800 E o que quero facer cada xa que vou a través do lazo? 1452 01:05:35,800 --> 01:05:38,657 O que ten que cambiar cada vez que eu pasar? 1453 01:05:38,657 --> 01:05:39,850 >> Altofalante 23: Engadir un punto. 1454 01:05:39,850 --> 01:05:41,020 >> BRIAN Scassellati: Teño que seguir. 1455 01:05:41,020 --> 01:05:41,978 Eu estou indo a engadir un punto. 1456 01:05:41,978 --> 01:05:45,310 Eu estou indo a imprimir un punto, cada vez a través do loop. 1457 01:05:45,310 --> 01:05:49,990 Pero como eu manter o control de como moitas veces estiven a través do lazo? 1458 01:05:49,990 --> 01:05:53,260 Está a usar o i, que variable, que contador. 1459 01:05:53,260 --> 01:05:57,110 >> Entón, cada vez que pasar, eu vou para incrementar o contador por un. 1460 01:05:57,110 --> 01:06:00,670 Agora, iso é o mesmo para me dicindo i = i + 1. 1461 01:06:00,670 --> 01:06:01,210 Está ben. 1462 01:06:01,210 --> 01:06:04,653 Podería facelo isso-- me gusta do taquigrafia, entón eu vou dicir i ++. 1463 01:06:04,653 --> 01:06:07,190 1464 01:06:07,190 --> 01:06:08,370 Aceptar. 1465 01:06:08,370 --> 01:06:10,680 >> Imos facer o mesmo aquí abaixo na parte inferior. 1466 01:06:10,680 --> 01:06:11,846 Só eu medio que fixen esta. 1467 01:06:11,846 --> 01:06:13,990 Vou deixar vostedes facer este completamente. 1468 01:06:13,990 --> 01:06:14,260 Todo ben. 1469 01:06:14,260 --> 01:06:15,426 >> Entón, o que eu debería escribir aquí? 1470 01:06:15,426 --> 01:06:17,170 Aquí está o meu loop for. 1471 01:06:17,170 --> 01:06:23,162 Vou facer un printf () e eu vou para facelo así que eu só imprimir un punto 1472 01:06:23,162 --> 01:06:25,740 en que a parte inferior. 1473 01:06:25,740 --> 01:06:27,740 >> ¿Que debería escribir dentro deste loop for agora? 1474 01:06:27,740 --> 01:06:30,897 1475 01:06:30,897 --> 01:06:33,948 Ben, primeiro de todo o que variables que debo empregar? 1476 01:06:33,948 --> 01:06:35,430 >> Altofalante 24: j. 1477 01:06:35,430 --> 01:06:36,880 >> BRIAN Scassellati: eu podería usar j. 1478 01:06:36,880 --> 01:06:38,040 Podo utilizar o mesmo? 1479 01:06:38,040 --> 01:06:39,961 Podo utilizar o i de novo? 1480 01:06:39,961 --> 01:06:40,460 Si. 1481 01:06:40,460 --> 01:06:45,531 Iso é OK, xa que o Is que está a usar aquí, 1482 01:06:45,531 --> 01:06:47,780 Eu non teño los de novo cando Eu baixar a ese punto. 1483 01:06:47,780 --> 01:06:52,240 1484 01:06:52,240 --> 01:06:53,790 >> Entón o que debo arrincar i? 1485 01:06:53,790 --> 01:06:56,675 1486 01:06:56,675 --> 01:06:57,300 Altofalante 25: 10. 1487 01:06:57,300 --> 01:06:58,567 BRIAN Scassellati: 0. 1488 01:06:58,567 --> 01:06:59,400 ¿Que debería comprobar? 1489 01:06:59,400 --> 01:07:02,960 Cantos puntos necesito agora a finais se eu teño dous puntos no inicio? 1490 01:07:02,960 --> 01:07:05,820 1491 01:07:05,820 --> 01:07:09,165 Necesito oito ao final, entón o que que debo comprobar, i menos than-- 1492 01:07:09,165 --> 01:07:12,645 >> Audiencia: sete, oito, nove. 1493 01:07:12,645 --> 01:07:14,020 BRIAN Scassellati: Eu oín sete. 1494 01:07:14,020 --> 01:07:14,810 Oín oito. 1495 01:07:14,810 --> 01:07:15,970 E oín nove. 1496 01:07:15,970 --> 01:07:16,470 Aceptar. 1497 01:07:16,470 --> 01:07:19,540 Entón, nós estamos todos no dereito ball-- Jason di 10. 1498 01:07:19,540 --> 01:07:21,550 Aceptar. 1499 01:07:21,550 --> 01:07:25,920 >> Se eu precisase de dous puntos para a primeira, como moitos fan 1500 01:07:25,920 --> 01:07:30,170 I-- e eu teño oito puntos ao última um-- Engada un dous alí enriba, 1501 01:07:30,170 --> 01:07:31,743 o que debo poñer alí abaixo? 1502 01:07:31,743 --> 01:07:32,570 >> Audiencia: Oito. 1503 01:07:32,570 --> 01:07:33,611 >> BRIAN Scassellati: Oito. 1504 01:07:33,611 --> 01:07:35,695 Porque iso vai contar de cero a sete. 1505 01:07:35,695 --> 01:07:38,490 E iso é oito veces a través do loop. 1506 01:07:38,490 --> 01:07:38,990 Aceptar. 1507 01:07:38,990 --> 01:07:41,774 E o que eu teño que facer a finais? 1508 01:07:41,774 --> 01:07:42,670 >> Audiencia: i ++. 1509 01:07:42,670 --> 01:07:44,400 >> BRIAN Scassellati: i ++. 1510 01:07:44,400 --> 01:07:45,440 Todo ben. 1511 01:07:45,440 --> 01:07:48,260 Entón iso é moi bo ollar alí. 1512 01:07:48,260 --> 01:07:50,620 Imos tentar e imos ver o que fai. 1513 01:07:50,620 --> 01:07:51,450 Aceptar. 1514 01:07:51,450 --> 01:07:53,770 Entón, nós estamos indo a salvalo. 1515 01:07:53,770 --> 01:07:54,940 Agradable e salvo. 1516 01:07:54,940 --> 01:07:56,910 >> Imos zoom out. 1517 01:07:56,910 --> 01:07:58,220 Imos tentar aquí no terminal. 1518 01:07:58,220 --> 01:08:01,440 1519 01:08:01,440 --> 01:08:02,970 Nós imos ampliar. 1520 01:08:02,970 --> 01:08:05,416 Oops. 1521 01:08:05,416 --> 01:08:09,990 Nós imos, unha vez máis, facer o noso programa de coello. 1522 01:08:09,990 --> 01:08:14,460 E vai adiante e executar coello. 1523 01:08:14,460 --> 01:08:15,980 E aí está. 1524 01:08:15,980 --> 01:08:17,710 >> Polo tanto, non hai o noso coello. 1525 01:08:17,710 --> 01:08:25,130 Onde ten dous puntos no inicio e oito puntos ao final. 1526 01:08:25,130 --> 01:08:27,540 Todo o mundo aínda está comigo? 1527 01:08:27,540 --> 01:08:28,770 Aceptar. 1528 01:08:28,770 --> 01:08:29,580 >> Por iso, construíu-se. 1529 01:08:29,580 --> 01:08:33,000 Nós construímos un coello, un cadro específico. 1530 01:08:33,000 --> 01:08:36,229 Agora temos sido capaces de xeneralizar que para construír 1531 01:08:36,229 --> 01:08:38,390 máis, diferentes tipos de cadros. 1532 01:08:38,390 --> 01:08:42,399 >> Agora imos adiante e ter que xerar non só un cadro, 1533 01:08:42,399 --> 01:08:46,290 pero imos xerar 10 molduras, onde lentamente 1534 01:08:46,290 --> 01:08:50,569 facer o coello mover todos do outro lado do campo. 1535 01:08:50,569 --> 01:08:51,430 Todo ben. 1536 01:08:51,430 --> 01:08:53,660 >> Imos volver. 1537 01:08:53,660 --> 01:08:54,839 E nós imos tratar agora. 1538 01:08:54,839 --> 01:09:00,680 1539 01:09:00,680 --> 01:09:02,830 Entón, o que eu realmente teño cambiar aquí? 1540 01:09:02,830 --> 01:09:06,139 1541 01:09:06,139 --> 01:09:07,180 O que eu teño cambiar? 1542 01:09:07,180 --> 01:09:10,638 >> Altofalante 26: Vostede primeiro que cambiar o número de máximo de puntos 1543 01:09:10,638 --> 01:09:11,626 no inicio. 1544 01:09:11,626 --> 01:09:16,850 Porque se nós estamos facendo 10 puntos, vai ter para escalar. 1545 01:09:16,850 --> 01:09:17,850 BRIAN Scassellati: Yeah. 1546 01:09:17,850 --> 01:09:23,760 Entón agora eu teño que tipo de Hardwired facer sempre dous puntos no inicio 1547 01:09:23,760 --> 01:09:27,890 e sempre facer oito puntos ao final. 1548 01:09:27,890 --> 01:09:30,660 >> Quero construír outro circuíto, non? 1549 01:09:30,660 --> 01:09:33,290 Porque eu non quero construír unha imaxe do coello, 1550 01:09:33,290 --> 01:09:37,140 Quero construír 10 imaxes de coello. 1551 01:09:37,140 --> 01:09:41,500 Entón eu teño construír outro circuíto, e como eu pasar por ese loop, 1552 01:09:41,500 --> 01:09:44,660 Quero cambiar cantas puntos I imprimir a principios 1553 01:09:44,660 --> 01:09:50,529 e cantos puntos eu imprimir ao final, con base no que ciclo a través do lazo 1554 01:09:50,529 --> 01:09:52,270 Estou dentro. 1555 01:09:52,270 --> 01:09:52,770 Todo ben. 1556 01:09:52,770 --> 01:09:54,430 >> Entón, imos comezar outro balcón. 1557 01:09:54,430 --> 01:09:58,142 Alguén j dixo antes, así que imos facer outra j. 1558 01:09:58,142 --> 01:10:00,100 E agora, imos construír outro para loop. 1559 01:10:00,100 --> 01:10:02,650 1560 01:10:02,650 --> 01:10:06,200 >> O que pasa dentro dese loop? 1561 01:10:06,200 --> 01:10:09,060 Este material ten que ir dentro do loop, non? 1562 01:10:09,060 --> 01:10:11,190 Será que o coello ten para ir a dentro do loop? 1563 01:10:11,190 --> 01:10:13,390 Teño un coello en cada un destes 10 cadros? 1564 01:10:13,390 --> 01:10:14,099 >> Audiencia: Uh-huh. 1565 01:10:14,099 --> 01:10:15,098 BRIAN Scassellati: Yeah. 1566 01:10:15,098 --> 01:10:17,250 Quero un coello en cada dos 10 cadros, non? 1567 01:10:17,250 --> 01:10:20,531 Como sobre os puntos en Ao final, eu teño diso? 1568 01:10:20,531 --> 01:10:21,030 Aceptar. 1569 01:10:21,030 --> 01:10:22,550 >> Entón, eu estou indo a recuar todos eles. 1570 01:10:22,550 --> 01:10:25,110 Eu estou indo a destacar todos iso, e eu vou bater Tab. 1571 01:10:25,110 --> 01:10:28,590 E que vai empurralo los todo un pouco, de xeito que é doado para min 1572 01:10:28,590 --> 01:10:32,010 para ver o que está no circuíto. 1573 01:10:32,010 --> 01:10:33,710 E entón eu vou acabar con ela. 1574 01:10:33,710 --> 01:10:35,850 Imos dicir. 1575 01:10:35,850 --> 01:10:36,430 OK? 1576 01:10:36,430 --> 01:10:39,230 >> Agora, neste loop que Estou building-- whoops, 1577 01:10:39,230 --> 01:10:43,810 Que facer para que poida see-- Eu teño o meu contador j. 1578 01:10:43,810 --> 01:10:45,630 Vou comezou a 0. 1579 01:10:45,630 --> 01:10:47,829 Cantas veces quero de pasar por este ciclo? 1580 01:10:47,829 --> 01:10:48,620 Audiencia: 10 veces. 1581 01:10:48,620 --> 01:10:49,786 BRIAN Scassellati: 10 veces. 1582 01:10:49,786 --> 01:10:51,402 Entón, cal número debo poñer aquí? 1583 01:10:51,402 --> 01:10:52,880 >> Audiencia: 9, 10. 1584 01:10:52,880 --> 01:10:55,600 >> BRIAN Scassellati: 9, 10, alguén ten que dicir 11, non? 1585 01:10:55,600 --> 01:10:58,190 1586 01:10:58,190 --> 01:11:01,585 Quería dous puntos antes e poñer-i inferior a 2. 1587 01:11:01,585 --> 01:11:03,810 Quería oito puntos, Engada i inferior a 8. 1588 01:11:03,810 --> 01:11:06,950 Agora quero pasar por 10 veces, entón eu coloque j menos than-- 1589 01:11:06,950 --> 01:11:07,590 >> Audiencia: 10. 1590 01:11:07,590 --> 01:11:08,610 >> BRIAN Scassellati: 10. 1591 01:11:08,610 --> 01:11:10,150 Alí imos nós. 1592 01:11:10,150 --> 01:11:13,360 E o que fago ao final para j? 1593 01:11:13,360 --> 01:11:15,310 ++, Incrementa-lo. 1594 01:11:15,310 --> 01:11:16,230 Aceptar. 1595 01:11:16,230 --> 01:11:21,500 Agora, aquí está a parte complicada, o que é vai pasar agora, se fago iso? 1596 01:11:21,500 --> 01:11:24,537 Son eu que vou imprimir 10 frames? 1597 01:11:24,537 --> 01:11:26,370 Altofalante 27: Eu creo que todos eles será o mesmo. 1598 01:11:26,370 --> 01:11:28,453 BRIAN Scassellati: Eles van todo ser o mesmo, non? 1599 01:11:28,453 --> 01:11:31,750 Porque todos eles aínda están indo para poñer dous puntos no inicio. 1600 01:11:31,750 --> 01:11:34,162 Pero eu non quero que todos eles teñen dous puntos o principio. 1601 01:11:34,162 --> 01:11:35,870 Cantos puntos eu quere no inicio? 1602 01:11:35,870 --> 01:11:39,097 1603 01:11:39,097 --> 01:11:40,020 >> Audiencia: Cambiando. 1604 01:11:40,020 --> 01:11:42,840 >> BRIAN Scassellati: I quere cambiar, non? 1605 01:11:42,840 --> 01:11:46,588 Entón, o que eu teño aquí que está cambiando cada vez que o circuíto atravesa? 1606 01:11:46,588 --> 01:11:48,242 >> Audiencia: Número de puntos, j. 1607 01:11:48,242 --> 01:11:49,950 BRIAN Scassellati: j, o número de puntos. 1608 01:11:49,950 --> 01:11:54,782 Entón, podo cambiar isto sexa j. 1609 01:11:54,782 --> 01:11:59,190 A primeira vez a través do loop, que é o que vai ser? 1610 01:11:59,190 --> 01:12:01,700 O que fago para definir j a polo primeiro? 1611 01:12:01,700 --> 01:12:02,420 >> Audiencia: 0. 1612 01:12:02,420 --> 01:12:05,700 >> BRIAN Scassellati: Entón, cantas veces eu vou facer iso? 1613 01:12:05,700 --> 01:12:06,750 0. 1614 01:12:06,750 --> 01:12:11,750 A segunda vez a través do lazo, j de vai ser un porque incrementa-lo. 1615 01:12:11,750 --> 01:12:14,180 Cantos puntos vou imprimir? 1616 01:12:14,180 --> 01:12:15,100 1. 1617 01:12:15,100 --> 01:12:19,904 A terceira iteración do bucle, Cantos puntos é que eu vou imprimir? 1618 01:12:19,904 --> 01:12:20,587 >> Audiencia: Tres. 1619 01:12:20,587 --> 01:12:22,170 BRIAN Scassellati: j será 3. 1620 01:12:22,170 --> 01:12:24,890 Cantos puntos vou imprimir? 1621 01:12:24,890 --> 01:12:26,817 Oh, desculpe, j será 2. 1622 01:12:26,817 --> 01:12:28,233 Cantos puntos vou imprimir? 1623 01:12:28,233 --> 01:12:28,980 >> Audiencia: 2. 1624 01:12:28,980 --> 01:12:29,855 >> BRIAN Scassellati: 2. 1625 01:12:29,855 --> 01:12:32,460 OK, entón eu vou seguir incrementando que a medida que avanzamos. 1626 01:12:32,460 --> 01:12:33,460 Como case abaixo? 1627 01:12:33,460 --> 01:12:34,310 O que pasa aquí? 1628 01:12:34,310 --> 01:12:38,080 Non quero sempre 8 no extremo máis? 1629 01:12:38,080 --> 01:12:39,269 >> Altofalante 28: 10. 1630 01:12:39,269 --> 01:12:40,685 BRIAN Scassellati: Quero 10 puntos? 1631 01:12:40,685 --> 01:12:43,440 1632 01:12:43,440 --> 01:12:44,620 Quero que cambie tamén. 1633 01:12:44,620 --> 01:12:47,469 Entón como é que eu quero que cambiar? 1634 01:12:47,469 --> 01:12:49,167 >> Audiencia: [inaudível]. 1635 01:12:49,167 --> 01:12:51,750 BRIAN Scassellati: Ben, se eu ten cinco puntos, en principio, 1636 01:12:51,750 --> 01:12:53,293 cantos de punto que eu recibín a finais? 1637 01:12:53,293 --> 01:12:54,020 >> Audiencia: Five. 1638 01:12:54,020 --> 01:12:55,630 >> BRIAN Scassellati: Se eu tivera seis puntos, en principio, 1639 01:12:55,630 --> 01:12:56,875 cantos chegar ao final? 1640 01:12:56,875 --> 01:12:57,500 Audiencia: Four. 1641 01:12:57,500 --> 01:12:58,950 BRIAN Scassellati: Se eu teño sete puntos, en principio, 1642 01:12:58,950 --> 01:13:00,204 cantos chegar ao final? 1643 01:13:00,204 --> 01:13:00,870 Audiencia: Tres. 1644 01:13:00,870 --> 01:13:03,161 BRIAN Scassellati: Se eu teño j ten puntos en principio, 1645 01:13:03,161 --> 01:13:04,790 cantos chegar ao final? 1646 01:13:04,790 --> 01:13:07,520 10-J. 1647 01:13:07,520 --> 01:13:08,650 Aceptar. 1648 01:13:08,650 --> 01:13:10,390 Entón, imos tentar iso. 1649 01:13:10,390 --> 01:13:13,180 >> Entón, eu estou indo a salvar o noso programa de coello. 1650 01:13:13,180 --> 01:13:16,270 Unha vez máis imos reducir. 1651 01:13:16,270 --> 01:13:19,090 Imos descender para o noso terminal. 1652 01:13:19,090 --> 01:13:20,180 Nós imos limpa-la. 1653 01:13:20,180 --> 01:13:23,410 E aumentar o zoom. 1654 01:13:23,410 --> 01:13:26,410 Nós imos facer o noso programa de coello, de novo. 1655 01:13:26,410 --> 01:13:27,690 E nós imos executalo. 1656 01:13:27,690 --> 01:13:30,462 1657 01:13:30,462 --> 01:13:32,090 Uh-oh. 1658 01:13:32,090 --> 01:13:34,580 >> Manteña-se, imos reducir. 1659 01:13:34,580 --> 01:13:36,860 Será que eu recibín 10 cadros? 1660 01:13:36,860 --> 01:13:38,970 Ben, como moitos coellos vexo alí enriba? 1661 01:13:38,970 --> 01:13:43,330 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. 1662 01:13:43,330 --> 01:13:44,820 Teño 10 cadros. 1663 01:13:44,820 --> 01:13:46,375 Son todos iguais? 1664 01:13:46,375 --> 01:13:47,000 Audiencia: É. 1665 01:13:47,000 --> 01:13:48,740 Non. 1666 01:13:48,740 --> 01:13:50,000 >> BRIAN Scassellati: Non. 1667 01:13:50,000 --> 01:13:55,050 Que primeiro, o coello está lonxe do lado esquerdo. 1668 01:13:55,050 --> 01:13:57,541 E aquí, o coello é moito sobre a 1669 01:13:57,541 --> 01:13:58,290 Altofalante 29: Correcto. 1670 01:13:58,290 --> 01:14:00,502 BRIAN Scassellati: Entón, o que eu esquezo de facer? 1671 01:14:00,502 --> 01:14:01,750 Altofalante 30: Comezar unha nova liña. 1672 01:14:01,750 --> 01:14:04,041 BRIAN Scassellati: Esquecín o meu para iniciar unha nova liña, de novo. 1673 01:14:04,041 --> 01:14:05,270 Mesmo erro que eu fixen antes. 1674 01:14:05,270 --> 01:14:07,120 Todo ben, imos corrixir isto. 1675 01:14:07,120 --> 01:14:11,690 Agora, eu teño o código alí para facer unha nova liña. 1676 01:14:11,690 --> 01:14:13,899 Por que non deu correcto? 1677 01:14:13,899 --> 01:14:15,440 Altofalante 31: Non é dentro do loop. 1678 01:14:15,440 --> 01:14:17,710 BRIAN Scassellati: Oh, non é dentro do loop. 1679 01:14:17,710 --> 01:14:18,520 Iso é certo. 1680 01:14:18,520 --> 01:14:20,150 Está sentado fóra aquí. 1681 01:14:20,150 --> 01:14:23,470 1682 01:14:23,470 --> 01:14:29,050 E o loop for é todo que está dentro dese texto. 1683 01:14:29,050 --> 01:14:35,500 >> Entón, eu estou indo a ir esta dentro do loop for. 1684 01:14:35,500 --> 01:14:39,410 E eu vou Tab diante del para amosar que é o lugar seguro. 1685 01:14:39,410 --> 01:14:42,020 E agora, imos garda-lo de novo. 1686 01:14:42,020 --> 01:14:44,350 Imos reducir. 1687 01:14:44,350 --> 01:14:45,770 Imos pasar ao noso terminal. 1688 01:14:45,770 --> 01:14:48,330 1689 01:14:48,330 --> 01:14:50,360 Zoom. 1690 01:14:50,360 --> 01:14:54,050 Nós imos refacer noso programa de coello. 1691 01:14:54,050 --> 01:14:59,070 E agora, agora temos os nosos 10 marcos. 1692 01:14:59,070 --> 01:15:00,190 >> [Aplauso] 1693 01:15:00,190 --> 01:15:02,120 >> BRIAN Scassellati: Aceptar. 1694 01:15:02,120 --> 01:15:04,080 So. 1695 01:15:04,080 --> 01:15:08,370 Aquí é o noso aniñados para loops. 1696 01:15:08,370 --> 01:15:13,140 Fomos capaces de xerar o loop interno cantos puntos quería 1697 01:15:13,140 --> 01:15:15,320 para imprimir en principio, ao final. 1698 01:15:15,320 --> 01:15:21,570 E o circuíto externo controlado cantos cadros estaba construíndo. 1699 01:15:21,570 --> 01:15:26,340 Comezamos cun pouco núcleo do problema, 1700 01:15:26,340 --> 01:15:30,320 e nós construímos a partir dese punto. 1701 01:15:30,320 --> 01:15:30,820 Todo ben. 1702 01:15:30,820 --> 01:15:33,500 >> Imos facer un paso. 1703 01:15:33,500 --> 01:15:35,040 Está preparado? 1704 01:15:35,040 --> 01:15:38,800 Hai unha cousa aquí, onde realmente tipo de got 1705 01:15:38,800 --> 01:15:42,180 máis complexidade do que necesitamos. 1706 01:15:42,180 --> 01:15:44,700 Imos dar un ollo. 1707 01:15:44,700 --> 01:15:52,050 Así, no noso programa de coello, se eu reducir aquí, 1708 01:15:52,050 --> 01:15:54,980 Realmente facer algunhas das mesmas cousa unha e outra vez. 1709 01:15:54,980 --> 01:15:59,032 O que fago que é unha especie de o mesmo repetido dúas veces? 1710 01:15:59,032 --> 01:16:00,310 >> Altofalante 32: Imprimir os puntos. 1711 01:16:00,310 --> 01:16:03,526 >> BRIAN Scassellati: Si Eu imprimir eses puntos dúas veces. 1712 01:16:03,526 --> 01:16:05,710 Realmente, eu debería ter este comentario aquí debaixo. 1713 01:16:05,710 --> 01:16:09,037 Eu imprimir algúns puntos no comezando, non aquí enriba. 1714 01:16:09,037 --> 01:16:10,620 E entón eu imprimir algúns puntos ao final. 1715 01:16:10,620 --> 01:16:14,694 E fago tipo de exactamente o mesmo. 1716 01:16:14,694 --> 01:16:17,110 O que nós estamos indo para comezar traballando nas próximas semanas 1717 01:16:17,110 --> 01:16:23,440 é ser capaz de tomar esas bloques de código que usan unha e outra vez, 1718 01:16:23,440 --> 01:16:25,800 e por medio dun proceso de chamado de abstracción, 1719 01:16:25,800 --> 01:16:31,100 imos retirala los e gravala-los xa para que poidamos, a continuación, 1720 01:16:31,100 --> 01:16:35,130 reutiliza-los unha e outra vez. 1721 01:16:35,130 --> 01:16:37,210 Entón, imos tentar iso. 1722 01:16:37,210 --> 01:16:38,220 Listo? 1723 01:16:38,220 --> 01:16:42,200 >> Nós imos levar este bloque de código. 1724 01:16:42,200 --> 01:16:45,280 E eu vou tiralo de alí. 1725 01:16:45,280 --> 01:16:50,530 E eu vou define-- abaixo, no fondo, 1726 01:16:50,530 --> 01:16:53,130 Vou escribir unha nova función. 1727 01:16:53,130 --> 01:16:54,750 Non vai voltar nada. 1728 01:16:54,750 --> 01:16:58,550 E eu vou chamalo printDots. 1729 01:16:58,550 --> 01:17:01,530 >> Vai levar un argumento, un número enteiro que 1730 01:17:01,530 --> 01:17:04,920 di howManyDots debo imprimir. 1731 01:17:04,920 --> 01:17:09,310 1732 01:17:09,310 --> 01:17:17,720 E agora en vez de imprimir j puntos, eu vou imprimir dicir howManyDots debo imprimir. 1733 01:17:17,720 --> 01:17:21,581 >> E hai un pequeno problema aquí. 1734 01:17:21,581 --> 01:17:22,580 Alguén sabe o que é? 1735 01:17:22,580 --> 01:17:27,270 1736 01:17:27,270 --> 01:17:31,505 O que eu teño que está listado aquí que non está definido? 1737 01:17:31,505 --> 01:17:34,165 1738 01:17:34,165 --> 01:17:35,090 >> Audiencia: [inaudível] 1739 01:17:35,090 --> 01:17:37,465 >> BRIAN Scassellati: Así como moitos puntos defínese á dereita 1740 01:17:37,465 --> 01:17:40,584 aquí, pero eu estou usando esa variable i. 1741 01:17:40,584 --> 01:17:43,750 Entón eu vou levar esa variable i e eu estou indo a define-la para abaixo aquí 1742 01:17:43,750 --> 01:17:44,610 no seu lugar. 1743 01:17:44,610 --> 01:17:49,683 >> Entón, agora que vai estadia-- oops, ten o bloqueo de maiúsculas en somehow-- son 1744 01:17:49,683 --> 01:17:52,060 manterá i abaixo aquí. 1745 01:17:52,060 --> 01:17:57,050 >> Entón agora aquí está a miña pequena función ou sub-rotina, e el di, 1746 01:17:57,050 --> 01:18:00,640 Cantos puntos é que eu vou imprimir? 1747 01:18:00,640 --> 01:18:05,300 E que vai pasar por este ciclo e imprimir-las unha e outra vez. 1748 01:18:05,300 --> 01:18:10,940 >> Podo, entón, modificar o meu programa aquí enriba. 1749 01:18:10,940 --> 01:18:12,540 E o que eu chamar esa función? 1750 01:18:12,540 --> 01:18:13,960 printDots. 1751 01:18:13,960 --> 01:18:17,060 Entón, eu vou chamar printDots. 1752 01:18:17,060 --> 01:18:21,530 Cantos puntos quero imprimir por primeira vez ante o coello? 1753 01:18:21,530 --> 01:18:22,030 Audiencia: j. 1754 01:18:22,030 --> 01:18:23,230 BRIAN Scassellati: j. 1755 01:18:23,230 --> 01:18:27,110 Cantos puntos quero imprimir ao final, despois do coello? 1756 01:18:27,110 --> 01:18:30,610 1757 01:18:30,610 --> 01:18:31,110 10-J. 1758 01:18:31,110 --> 01:18:35,020 1759 01:18:35,020 --> 01:18:38,010 >> E hai unha cousa que eu estou ausente. 1760 01:18:38,010 --> 01:18:43,740 Como viu na charla de hoxe, imos declarar printDots 1761 01:18:43,740 --> 01:18:52,430 Se anteriormente para dar o prototipo. 1762 01:18:52,430 --> 01:18:56,740 1763 01:18:56,740 --> 01:18:58,220 Aceptar. 1764 01:18:58,220 --> 01:19:03,530 >> Entón o que eu fixen é que eu tente illar a parte reutilizada de código 1765 01:19:03,530 --> 01:19:06,430 que eu fixen unha e outra vez. 1766 01:19:06,430 --> 01:19:11,120 E eu tente puxa-lo para fóra para que todo isto está contido nun só lugar. 1767 01:19:11,120 --> 01:19:16,810 Desta forma, se eu teño un erro en algún lugar, Eu só teño que reparalos lo nun punto. 1768 01:19:16,810 --> 01:19:17,310 Todo ben. 1769 01:19:17,310 --> 01:19:18,470 >> Entón, imos salvalo. 1770 01:19:18,470 --> 01:19:20,950 E imos estar seguro que funciona. 1771 01:19:20,950 --> 01:19:22,050 Entón, imos saír. 1772 01:19:22,050 --> 01:19:25,200 Imos volver ao noso terminal. 1773 01:19:25,200 --> 01:19:27,960 Nós imos ampliar. 1774 01:19:27,960 --> 01:19:31,010 Nós imos facer ese proceso de coello. 1775 01:19:31,010 --> 01:19:32,380 >> Oh. 1776 01:19:32,380 --> 01:19:34,800 E iso está me deu unha advertencia. 1777 01:19:34,800 --> 01:19:37,070 Que está me dicindo? 1778 01:19:37,070 --> 01:19:39,870 Ben en calquera destas veces, quere sempre 1779 01:19:39,870 --> 01:19:44,170 para rolar ata a primeira error-- agora nun presente, eu só teño un. 1780 01:19:44,170 --> 01:19:52,700 >> Ela me di en bunny.c, na liña 8, columna 9, hai un problema. 1781 01:19:52,700 --> 01:19:58,650 Di, declarou esta i variable e non telo usado. 1782 01:19:58,650 --> 01:20:02,230 >> Agora normalmente, isto é non o peor erro. 1783 01:20:02,230 --> 01:20:04,300 Iso é doado de corrixir. 1784 01:20:04,300 --> 01:20:07,550 E, de feito, podemos volver o. 1785 01:20:07,550 --> 01:20:09,910 Podemos volver ao coello. 1786 01:20:09,910 --> 01:20:13,010 E neste caso, todos ten que facer é se librar de min, 1787 01:20:13,010 --> 01:20:16,630 porque non estamos usando i dentro principal anymore. 1788 01:20:16,630 --> 01:20:19,860 Nós só estamos usando- dentro da nosa sub-rotina. 1789 01:20:19,860 --> 01:20:22,777 >> Entón, imos gardar iso. 1790 01:20:22,777 --> 01:20:23,360 Imos volver. 1791 01:20:23,360 --> 01:20:26,760 1792 01:20:26,760 --> 01:20:28,630 E aumentar o zoom. 1793 01:20:28,630 --> 01:20:30,700 Imos unha vez facer coello. 1794 01:20:30,700 --> 01:20:33,810 1795 01:20:33,810 --> 01:20:36,530 E hai de novo son os nosos 10 cadros. 1796 01:20:36,530 --> 01:20:39,450 1797 01:20:39,450 --> 01:20:41,360 Aceptar. 1798 01:20:41,360 --> 01:20:43,190 >> Cada vez que está dado un procedure-- Si. 1799 01:20:43,190 --> 01:20:44,690 Altofalante 33: Teño um-- Estou confuso. 1800 01:20:44,690 --> 01:20:45,892 Pode volver o código? 1801 01:20:45,892 --> 01:20:46,850 BRIAN Scassellati: Yep. 1802 01:20:46,850 --> 01:20:50,730 1803 01:20:50,730 --> 01:20:54,367 >> Altofalante 33: Entón, cando escribiu o seu prototipo, o argumento que 1804 01:20:54,367 --> 01:20:56,550 tíñase o nomeado foi chamado howMany? 1805 01:20:56,550 --> 01:20:57,540 Pero below-- 1806 01:20:57,540 --> 01:20:57,640 >> BRIAN Scassellati: Oh yeah. 1807 01:20:57,640 --> 01:20:59,140 >> Altofalante 33: --called-lles algo diferente, eu non entendo. 1808 01:20:59,140 --> 01:21:00,240 >> BRIAN Scassellati: Por son diferentes. 1809 01:21:00,240 --> 01:21:01,780 Entón esta é unha grande importancia. 1810 01:21:01,780 --> 01:21:08,250 Polo tanto, a cuestión era, ata aquí, escribín howMany, 1811 01:21:08,250 --> 01:21:12,380 e alí embaixo, escribín howManyDots. 1812 01:21:12,380 --> 01:21:15,590 >> A razón é que no seu prototipo, realmente non está prestando atención 1813 01:21:15,590 --> 01:21:17,090 para os nomes que está poñendo en. 1814 01:21:17,090 --> 01:21:20,530 Todo o que realmente se preocupa é que é un enteiro. 1815 01:21:20,530 --> 01:21:23,080 Quere saber a forma que está poñendo en. 1816 01:21:23,080 --> 01:21:31,560 >> Agora stylistically-- oops-- o que eu debería Non, é que me gusta de facer esas xogo. 1817 01:21:31,560 --> 01:21:33,150 Aceptar. 1818 01:21:33,150 --> 01:21:36,430 Porque iso vai ser perder lo máis fácil para min para recordar. 1819 01:21:36,430 --> 01:21:38,390 Pero ese foi o meu erro Si. 1820 01:21:38,390 --> 01:21:47,620 >> Altofalante 34: E así para o prototipo a funcionar, só 1821 01:21:47,620 --> 01:21:50,510 escribir esta liña, escribir o prototipo, 1822 01:21:50,510 --> 01:21:53,932 permite que a función que vén debaixo dela para ir á final 1823 01:21:53,932 --> 01:21:55,140 e recuperar o que significa isto? 1824 01:21:55,140 --> 01:21:58,480 >> BRIAN Scassellati: O que isto significa é cando o compilador pasa por, 1825 01:21:58,480 --> 01:22:01,930 que vai desde o principio da seu código para o fondo. 1826 01:22:01,930 --> 01:22:05,430 E o que este prototipo é, é que é basicamente unha promesa. 1827 01:22:05,430 --> 01:22:09,570 >> El di, non vai ser unha función definida en algún lugar. 1828 01:22:09,570 --> 01:22:11,880 Vai ser chamados printDots. 1829 01:22:11,880 --> 01:22:15,110 E iso vai levar un argumento que vai ser un enteiro 1830 01:22:15,110 --> 01:22:18,590 e vai volver nada, tipo void. 1831 01:22:18,590 --> 01:22:19,310 Aceptar. 1832 01:22:19,310 --> 01:22:22,950 Eu prometer a vostede que vai ser definido nalgún lugar debaixo da estrada. 1833 01:22:22,950 --> 01:22:25,590 Pero sempre que ves que, como ir para abaixo 1834 01:22:25,590 --> 01:22:28,710 a través do resto da miña función principal, quero 1835 01:22:28,710 --> 01:22:33,800 tratar isto como unha función que leva unha entrada enteiro. 1836 01:22:33,800 --> 01:22:37,970 >> E así, cando o compilador vai para abaixo por iso, el ve esa promesa. 1837 01:22:37,970 --> 01:22:40,220 E cando está abaixo, segue indo, segue indo, 1838 01:22:40,220 --> 01:22:43,060 atopa por primeira vez printDots é mencionado. 1839 01:22:43,060 --> 01:22:46,910 E el di: Oh, está dando me este j. j é un número enteiro. 1840 01:22:46,910 --> 01:22:49,570 >> Ben, que me prometeu que ía Ser un enteiro e iso é certo. 1841 01:22:49,570 --> 01:22:51,370 Está ben. 1842 01:22:51,370 --> 01:22:53,880 E, a continuación, finalmente, para abaixo no fondo, 1843 01:22:53,880 --> 01:22:58,340 antes de chegar ao final da miña arquivo, eu facer bo na miña promesa 1844 01:22:58,340 --> 01:22:59,896 e eu define-lo. 1845 01:22:59,896 --> 01:23:01,868 OK? 1846 01:23:01,868 --> 01:23:06,320 >> Altofalante 35: Entón, o saves-- programa vai aforrar espazo en branco 1847 01:23:06,320 --> 01:23:09,570 que vai volver e enche a finais? 1848 01:23:09,570 --> 01:23:12,140 >> BRIAN Scassellati: non sobre a distribución de memoria. 1849 01:23:12,140 --> 01:23:16,800 É realmente só sobre o que tipo que está esperando para ver. 1850 01:23:16,800 --> 01:23:19,340 Caso esa cousa ter un argumento ou cinco argumentos? 1851 01:23:19,340 --> 01:23:23,590 Debe telo ser números enteiros que lle é dado, ou cordas? 1852 01:23:23,590 --> 01:23:25,780 Isto é todo o que está mirando que facer é comprobar, 1853 01:23:25,780 --> 01:23:29,303 está me dando o dereito tipo de argumento. 1854 01:23:29,303 --> 01:23:31,560 OK? 1855 01:23:31,560 --> 01:23:32,300 Todo ben. 1856 01:23:32,300 --> 01:23:38,570 >> Déixeme deixar con outro pouco para ollar. 1857 01:23:38,570 --> 01:23:44,850 Arte ASCII non é o gran modelo de animación, como é hoxe. 1858 01:23:44,850 --> 01:23:50,850 Pero algunhas persoas, por suposto, levar as cousas e empurra-lo para os seus extremos. 1859 01:23:50,850 --> 01:23:56,790 >> É dicir, como demostrado David en charla, unha peza de código 1860 01:23:56,790 --> 01:24:02,150 que ten que, en ningún caso tentar duplicar a si mesmos. 1861 01:24:02,150 --> 01:24:05,260 Porque é terrible estilisticamente. 1862 01:24:05,260 --> 01:24:11,180 En realidade, está deseñado para ser o máis difícil posible para ler. 1863 01:24:11,180 --> 01:24:11,680 Aceptar. 1864 01:24:11,680 --> 01:24:16,210 >> Así, para facer de novo, imos facer zoom aquí. 1865 01:24:16,210 --> 01:24:20,120 Eu estou indo a ir agora, cambie o directorio. 1866 01:24:20,120 --> 01:24:24,050 Eu estou indo a ir a un nivel, de volta ao meu espazo de traballo. 1867 01:24:24,050 --> 01:24:29,760 Vou cambie o directorio para esta outro directorio que eu creei. 1868 01:24:29,760 --> 01:24:36,190 >> E este é o Internacional Ofuscado C Programación Concurso. 1869 01:24:36,190 --> 01:24:40,650 Medio ofuscado como difícil como posible comprender. 1870 01:24:40,650 --> 01:24:44,150 Entón, por favor, non se asuste se ollar para iso e ir, eu non podo ler isto. 1871 01:24:44,150 --> 01:24:46,350 Ese é o punto del. 1872 01:24:46,350 --> 01:24:47,700 OK? 1873 01:24:47,700 --> 01:24:52,770 >> Pero temos esta programa marabilloso que eu son 1874 01:24:52,770 --> 01:24:57,180 indo ollar só escribindo máis. 1875 01:24:57,180 --> 01:25:01,890 E imos ver se podo reducir só un pouco, para que poida velo 1876 01:25:01,890 --> 01:25:03,940 >> E este é o programa. 1877 01:25:03,940 --> 01:25:08,080 É nomeado endo.c. 1878 01:25:08,080 --> 01:25:14,850 E parece que este balde con tipo de fonte F-L-L-I-D en que. 1879 01:25:14,850 --> 01:25:16,440 >> Este é de feito un programa. 1880 01:25:16,440 --> 01:25:20,260 Está escrito no máis escuro xeito que os autores poderían posiblemente 1881 01:25:20,260 --> 01:25:21,760 escribilo. 1882 01:25:21,760 --> 01:25:29,210 Pero é un pequeno anaco marabilloso que xera un modelo de dinámica de fluídos. 1883 01:25:29,210 --> 01:25:34,870 >> E así imos dar que o modelo dunha entrada que 1884 01:25:34,870 --> 01:25:42,520 mira como este, dun staired conxunto de recipientes 1885 01:25:42,520 --> 01:25:45,820 con algún líquido, algúns líquido, na parte superior. 1886 01:25:45,820 --> 01:25:48,790 E nós imos ter que simular o que está a suceder con el. 1887 01:25:48,790 --> 01:25:52,415 >> Entón, eu vou chamar esa función, endo. 1888 01:25:52,415 --> 01:25:59,000 E eu vou dar-lle que ficheiro de entrada que eu tiven. 1889 01:25:59,000 --> 01:26:02,830 E non é a nosa epítome da arte ASCII. 1890 01:26:02,830 --> 01:26:08,960 Un simulador de dinámica de fluídos completo funcionando en só algunhas liñas de código. 1891 01:26:08,960 --> 01:26:13,750 >> Agora, o que é realmente moi sorprendente sobre este programiña 1892 01:26:13,750 --> 01:26:17,280 é que quero deixar agora, entón eu vou usar o comando? 1893 01:26:17,280 --> 01:26:18,660 >> Audiencia: Control-C. 1894 01:26:18,660 --> 01:26:20,390 >> BRIAN Scassellati: Control-C. Aceptar. 1895 01:26:20,390 --> 01:26:22,960 Entón, eu vou usar Control-C. C Isto vai impedilo. 1896 01:26:22,960 --> 01:26:25,330 Vou limpar novo. 1897 01:26:25,330 --> 01:26:31,210 E agora eu vou chamar o programa, executar o programa, 1898 01:26:31,210 --> 01:26:33,740 utiliza como entrada. 1899 01:26:33,740 --> 01:26:36,760 1900 01:26:36,760 --> 01:26:42,700 >> E veremos a dinámica de fluídos simulación do mesmo punto de fusión. 1901 01:26:42,700 --> 01:26:43,830 Aceptar. 1902 01:26:43,830 --> 01:26:48,180 Por favor, non deixe que o programa ser a cousa que che confunde. 1903 01:26:48,180 --> 01:26:52,220 É só para que poidamos rematar en algo legal e interesante. 1904 01:26:52,220 --> 01:26:53,930 Aceptar. 1905 01:26:53,930 --> 01:26:56,330 >> Boa sorte cos seus conxuntos de problemas. 1906 01:26:56,330 --> 01:26:59,030 Nós imos ser felices para responder preguntas despois da clase. 1907 01:26:59,030 --> 01:27:01,180 Moitas grazas, persoal. 1908 01:27:01,180 --> 01:27:02,793