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 mundo. 4 00:00:06,280 --> 00:00:07,460 Bem-vindo à secção. 5 00:00:07,460 --> 00:00:10,840 Este é CS50, a nossa própria primeira seção super. 6 00:00:10,840 --> 00:00:13,700 Como todos sabem, na próxima semana seções regulares vai começar, 7 00:00:13,700 --> 00:00:15,580 mas esta semana estamos todos juntos. 8 00:00:15,580 --> 00:00:17,730 >> Há mim mesmo. 9 00:00:17,730 --> 00:00:18,840 Meu nome é Jason. 10 00:00:18,840 --> 00:00:20,630 Eu sou um professor de Ciência da Computação. 11 00:00:20,630 --> 00:00:23,910 Temos Andi, que é a cabeça de TA CS50. 12 00:00:23,910 --> 00:00:27,630 E SCAZ, Professor Brian Scassellati, ele é um professor em Ciência da Computação. 13 00:00:27,630 --> 00:00:30,970 >> Nós somos os chefes CS50 em Yale. 14 00:00:30,970 --> 00:00:34,992 Você sempre pode enviar e-mail nos heads@cs50.yale.edu. 15 00:00:34,992 --> 00:00:35,950 Estaremos à palestras. 16 00:00:35,950 --> 00:00:37,547 Estaremos no horário de expediente. 17 00:00:37,547 --> 00:00:40,130 Se há sempre qualquer coisa que pudermos fazer por você, qualquer coisa que você precisa, 18 00:00:40,130 --> 00:00:42,610 sinta-se livre para chegar até nós. 19 00:00:42,610 --> 00:00:44,140 >> Então, o que vamos fazer hoje? 20 00:00:44,140 --> 00:00:47,790 Ou antes disso, o que é chegando esta semana? 21 00:00:47,790 --> 00:00:52,620 Assim, o horário de expediente são segunda-feira, terça-feira, Quarta-feira, e quinta-feira, de 8:00-11:00. 22 00:00:52,620 --> 00:00:54,770 Há uma programação no site. 23 00:00:54,770 --> 00:00:57,830 >> Seções, como eu mencionei, estão começando na próxima semana. 24 00:00:57,830 --> 00:01:01,390 E você vai descobrir que esta semana cronometrar sua seção é, que dia é hoje, 25 00:01:01,390 --> 00:01:03,350 e quem é o seu TA é. 26 00:01:03,350 --> 00:01:08,610 >> Problemas 1 é devido em quinta-feira em meio-dia, sexta-feira ao meio-dia com um dia de atraso. 27 00:01:08,610 --> 00:01:10,817 Sim, você tem nove dias de atraso. 28 00:01:10,817 --> 00:01:12,150 E há nove conjuntos de problemas. 29 00:01:12,150 --> 00:01:14,320 E só pode usar um dia de atraso por conjunto problema. 30 00:01:14,320 --> 00:01:17,930 Sim, com efeito, todos problema conjuntos são devidas sexta-feira ao meio-dia. 31 00:01:17,930 --> 00:01:18,550 Isso é tudo. 32 00:01:18,550 --> 00:01:20,400 Tudo o que os detalhes estão no plano de estudos. 33 00:01:20,400 --> 00:01:22,360 >> Toda sexta-feira, temos almoços. 34 00:01:22,360 --> 00:01:25,230 Nós gostamos de fazer esta grande Claro sentir um pouco menor. 35 00:01:25,230 --> 00:01:26,580 Então você é bem-vindo a RSVP. 36 00:01:26,580 --> 00:01:30,050 Almoço grátis com companheiro colegas e funcionários. 37 00:01:30,050 --> 00:01:34,120 cs50.yale.edu/rsvp. 38 00:01:34,120 --> 00:01:36,940 >> Todas estas coisas que I ter na tela, 39 00:01:36,940 --> 00:01:43,330 e mais, você pode encontrar ou cs50.yale.edu cs50.harvard.edu, se você vai para Harvard 40 00:01:43,330 --> 00:01:46,800 e estão assistindo esta online. 41 00:01:46,800 --> 00:01:50,240 >> Também sobre esses sites, lá uma tonelada de recursos para você. 42 00:01:50,240 --> 00:01:54,610 Cada palestra não só tem o vídeo da palestra, mas também observa. 43 00:01:54,610 --> 00:01:58,184 Alguém vai assistir a palestra e tomar notas para você. 44 00:01:58,184 --> 00:02:00,100 Então você pode apenas pagar atenção durante as aulas, 45 00:02:00,100 --> 00:02:03,970 ou você pode usar suas notas / nossa notas para complementar suas próprias notas. 46 00:02:03,970 --> 00:02:04,987 >> Existem lâminas em linha. 47 00:02:04,987 --> 00:02:07,320 A fonte code-- tudo David passa por cima de uma conferência, 48 00:02:07,320 --> 00:02:09,979 ou SCAZ passa por cima palestra, que código fonte está disponível on-line 49 00:02:09,979 --> 00:02:11,750 também, como como eu, mencionado vídeos. 50 00:02:11,750 --> 00:02:14,257 >> Seções, da mesma forma, tudo será filmado. 51 00:02:14,257 --> 00:02:15,840 Todas essas lâminas estarão disponíveis. 52 00:02:15,840 --> 00:02:18,190 Tudo isso vai código estar disponível para você. 53 00:02:18,190 --> 00:02:22,440 Há curtos no site onde Membros da equipe CS50 passar de cinco para 10 54 00:02:22,440 --> 00:02:24,130 minutos passando por tópicos para você. 55 00:02:24,130 --> 00:02:26,750 Algumas das pessoas que você já encontradas em conjuntos de problemas. 56 00:02:26,750 --> 00:02:30,430 >> Horário de expediente, como já referi, segundas-feiras a quinta-feira, das 8:00 às 11:00. 57 00:02:30,430 --> 00:02:32,600 Estudo CS50 é um recurso fantástico. 58 00:02:32,600 --> 00:02:37,100 Existem problemas de prática, lâminas de amostra, bugs conhecidos 59 00:02:37,100 --> 00:02:40,920 que os alunos gostam de correr para, para praticamente todos os nós tópico 60 00:02:40,920 --> 00:02:42,650 cobrirá neste curso. 61 00:02:42,650 --> 00:02:46,350 >> E, finalmente, neste slide pelo menos, Reference50 62 00:02:46,350 --> 00:02:49,690 que lhe dá informações em todas as funções C 63 00:02:49,690 --> 00:02:53,160 você poderia sempre possivelmente esperar de usar e muitos, muitos mais. 64 00:02:53,160 --> 00:02:55,690 >> Mais uma vez, que dot dot dot com a parte inferior da tela 65 00:02:55,690 --> 00:02:59,990 é indicar que há mesmo mais recursos sobre esses dois sites: 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ão, o que vamos fazer hoje? 68 00:03:05,840 --> 00:03:08,970 Bem, primeiro eu vou dar- você olhar para os recursos. 69 00:03:08,970 --> 00:03:10,010 Já fez isso. 70 00:03:10,010 --> 00:03:11,590 Olhe para nós. 71 00:03:11,590 --> 00:03:16,430 >> Agora, vamos passar por cima tipos de dados e operadores em C. 72 00:03:16,430 --> 00:03:19,990 Então Andi vai vir aqui e passar por cima de bibliotecas em C, Printf (), 73 00:03:19,990 --> 00:03:24,570 uma função com a qual você já está familiarizado ou vai se tornar rapidamente muito 74 00:03:24,570 --> 00:03:25,530 familiarizado. 75 00:03:25,530 --> 00:03:27,810 E você também vai passar por cima condicionais e loops. 76 00:03:27,810 --> 00:03:30,900 >> E, em seguida, finalmente, SCAZ vai passar por cima do ID CS50. 77 00:03:30,900 --> 00:03:34,250 Se você ainda não mergulhou já no Conjunto de Problemas 1, 78 00:03:34,250 --> 00:03:37,060 bem como a forma de utilizar o comandos do terminal e úteis 79 00:03:37,060 --> 00:03:42,280 e, em seguida, dar-lhe algumas demos e codificação prática no ID CS50. 80 00:03:42,280 --> 00:03:45,130 >> Antes de saltar para esta conteúdo deste lado, 81 00:03:45,130 --> 00:03:46,770 alguém tem alguma perguntas até agora? 82 00:03:46,770 --> 00:03:53,190 83 00:03:53,190 --> 00:03:54,030 Ótimo. 84 00:03:54,030 --> 00:03:54,950 ESTÁ BEM. 85 00:03:54,950 --> 00:03:55,810 Mudança de velocidades. 86 00:03:55,810 --> 00:03:58,760 >> [Mudança de velocidades] 87 00:03:58,760 --> 00:04:03,070 >> Isso foi me deslocando engrenagens em um carro manual. 88 00:04:03,070 --> 00:04:10,920 Assim, os tipos de dados em C, você não pode apenas ter uma variável x e que ele seja na linha 10, 89 00:04:10,920 --> 00:04:17,170 um inteiro, talvez o número 1, na linha 20, um número decimal 10,5, 90 00:04:17,170 --> 00:04:20,500 e linhas, em seguida, um casal depois, uma corda, eu amo CS50. 91 00:04:20,500 --> 00:04:25,052 >> Em C, só podem ser variáveis uma coisa, e apenas uma coisa. 92 00:04:25,052 --> 00:04:26,510 E então você tem que dar-lhes os tipos. 93 00:04:26,510 --> 00:04:28,780 E neste fórum, nós tem uma lista de tipos. 94 00:04:28,780 --> 00:04:32,000 Existem caracteres, que suporte para caracteres. 95 00:04:32,000 --> 00:04:36,850 Então essa é uma letra A, B, C, D. Isto também pode ser um espaço, 96 00:04:36,850 --> 00:04:40,290 ou que também pode ser um caractere de nova linha. 97 00:04:40,290 --> 00:04:45,030 >> Existem números inteiros, que são apenas Números de números, todo ou inteiros 98 00:04:45,030 --> 00:04:47,130 rather-- mas sem decimais. 99 00:04:47,130 --> 00:04:49,790 >> Para decimais, temos números de ponto flutuante. 100 00:04:49,790 --> 00:04:53,200 Números de ponto flutuante são números com decimais. 101 00:04:53,200 --> 00:04:58,160 >> Depois, há longos, que são inteiros essencialmente mais longas. 102 00:04:58,160 --> 00:05:01,160 Você vai notar que um longo é 8 enquanto um int é de 4. 103 00:05:01,160 --> 00:05:02,640 Eu vou chegar a isso em um segundo. 104 00:05:02,640 --> 00:05:07,390 Isso porque longs pode armazenar até mais inteiros do que um int pode armazenar. 105 00:05:07,390 --> 00:05:10,100 Duplo é um longo float. 106 00:05:10,100 --> 00:05:12,460 >> E, finalmente, temos corda, que é um tipo 107 00:05:12,460 --> 00:05:14,430 que você provavelmente já usou antes. 108 00:05:14,430 --> 00:05:21,100 Se você incluir hashtag # includeCS50.h em seu arquivo de origem, 109 00:05:21,100 --> 00:05:23,170 então você pode usar um tipo de cadeia. 110 00:05:23,170 --> 00:05:25,560 Não é realmente construído em C. 111 00:05:25,560 --> 00:05:27,760 >> Há um par de outros tipos também. 112 00:05:27,760 --> 00:05:32,900 Mas estes são os principais queridos com que você vai usar e encontrar. 113 00:05:32,900 --> 00:05:36,210 C como, mais uma vez eu mencionei, cada variable---lo 114 00:05:36,210 --> 00:05:38,620 só pode haver um tipo e apenas um tipo. 115 00:05:38,620 --> 00:05:42,890 Isso porque C é uma estaticamente linguagem digitada, em oposição 116 00:05:42,890 --> 00:05:45,780 às línguas tipagem dinâmica onde se você criar uma variável 117 00:05:45,780 --> 00:05:50,081 você pode mudar o que está armazenado em -lo como você ir em seu programa. 118 00:05:50,081 --> 00:05:52,580 Por aqui à direita lado, eu tenho os diferentes tamanhos 119 00:05:52,580 --> 00:05:57,440 um destes tipos de dados em bytes. 120 00:05:57,440 --> 00:05:59,710 Assim, um personagem é um byte. 121 00:05:59,710 --> 00:06:01,250 Isso é 8 bits. 122 00:06:01,250 --> 00:06:05,530 E isso significa, porque 8 bocados há oito 0s e 1s. 123 00:06:05,530 --> 00:06:08,280 Vimos esses demos em primeiro semana com que as lâmpadas binários. 124 00:06:08,280 --> 00:06:15,680 >> Com 8 bits ou 1 byte, nós podemos representam números de 0 a 255. 125 00:06:15,680 --> 00:06:16,180 Certo. 126 00:06:16,180 --> 00:06:18,770 Se todos os 8 bits são 0 que é 0. 127 00:06:18,770 --> 00:06:23,640 Se o primeiro bit é 1, que é o número um, e assim por diante, todo o caminho até 255. 128 00:06:23,640 --> 00:06:28,290 E é por isso que para caracteres que podem ser têm essencialmente até 255 deles, 129 00:06:28,290 --> 00:06:31,210 mas isso é muito para cobrir todos os personagens, precisamos usar. 130 00:06:31,210 --> 00:06:38,060 >> Para inteiros, você pode ter 0 e então você tem 2 à 32 menos 1. 131 00:06:38,060 --> 00:06:40,340 Esses são quantas opções você tem para inteiros. 132 00:06:40,340 --> 00:06:44,780 >> Por um longo, você tem 0 a 2 à 64 menos 1. 133 00:06:44,780 --> 00:06:48,860 Então você tem muitos, muitos, mais opções para longs. 134 00:06:48,860 --> 00:06:54,220 >> Cordas, que é um ponto de interrogação porque isso é um cliffhanger para mais tarde. 135 00:06:54,220 --> 00:06:55,000 Sim. 136 00:06:55,000 --> 00:06:56,350 Eu poderia dizer que todo mundo na borda da sede, 137 00:06:56,350 --> 00:06:57,450 como o que é que o ponto de interrogação? 138 00:06:57,450 --> 00:06:58,390 É um cliffhanger. 139 00:06:58,390 --> 00:07:02,340 Vamos, eventualmente, cobrir o tamanho cordas e falar mais sobre strings. 140 00:07:02,340 --> 00:07:04,692 Porque string é realmente uma das rodinhas 141 00:07:04,692 --> 00:07:06,400 nós colocamos nesta curso no início 142 00:07:06,400 --> 00:07:09,700 e depois decolar mais tarde no, porque strings em C 143 00:07:09,700 --> 00:07:13,320 são realmente ponteiros a arrays de caracteres. 144 00:07:13,320 --> 00:07:15,810 Mas, novamente, isso é uma Cliffhanger para mais tarde. 145 00:07:15,810 --> 00:07:18,890 Antes de passar todas as perguntas, comentários, as preocupações com este slide? 146 00:07:18,890 --> 00:07:25,800 147 00:07:25,800 --> 00:07:26,630 >> ESTÁ BEM. 148 00:07:26,630 --> 00:07:30,330 Eu devo ser um explicador fantástico. 149 00:07:30,330 --> 00:07:33,210 Além disso, quando você está programando, você está indo para usar esses operadores. 150 00:07:33,210 --> 00:07:36,730 Sinais realmente simples que podem fazer simples operações, com o qual você provavelmente está 151 00:07:36,730 --> 00:07:38,340 já muito familiar. 152 00:07:38,340 --> 00:07:42,580 >> Por exemplo, no lado direito lado, vemos adicionar. 153 00:07:42,580 --> 00:07:44,640 Para adicionar, você acabou de fazer um sinal Plus. 154 00:07:44,640 --> 00:07:46,850 E assim você pode ter duas variáveis ​​x e y. 155 00:07:46,850 --> 00:07:48,810 Você pode fazer x + y em seu código. 156 00:07:48,810 --> 00:07:52,790 Talvez você quer dizer que você a-- tem o número 7 e 3, 157 00:07:52,790 --> 00:07:55,780 você deseja armazenar que em uma variável chamada soma. 158 00:07:55,780 --> 00:08:03,010 Você pode fazer int para o tipo, o espaço soma, o nome da variável, = 7 + 3; 159 00:08:03,010 --> 00:08:05,780 >> O que seria essa loja em suma? 160 00:08:05,780 --> 00:08:07,190 Alguém? 161 00:08:07,190 --> 00:08:09,270 Se eu tivesse de sum = 7 + 3. 162 00:08:09,270 --> 00:08:10,437 O que seria armazenado em suma? 163 00:08:10,437 --> 00:08:11,520 Você pode apenas grite. 164 00:08:11,520 --> 00:08:12,120 AUDIÊNCIA: 10. 165 00:08:12,120 --> 00:08:12,995 >> JASON HIRSCHHORN: 10! 166 00:08:12,995 --> 00:08:14,870 Isto é exatamente correto. 167 00:08:14,870 --> 00:08:19,520 E na soma = 7-3, Eu só uso esse sinal traço. 168 00:08:19,520 --> 00:08:20,871 O que vai ser armazenado? 169 00:08:20,871 --> 00:08:21,370 AUDIÊNCIA: 4. 170 00:08:21,370 --> 00:08:22,203 JASON HIRSCHHORN: 4. 171 00:08:22,203 --> 00:08:25,770 Soma é provavelmente o nome errado essa variável, mas 4 seria armazenado. 172 00:08:25,770 --> 00:08:31,890 >> Para multiplicar em C, use o pequeno Caráter Star, você não usar um x. 173 00:08:31,890 --> 00:08:35,990 Para dividir, usar um Forward Não cortar o símbolo de divisão. 174 00:08:35,990 --> 00:08:39,580 E módulo, utilize o símbolo por cento. 175 00:08:39,580 --> 00:08:47,900 >> Então, digamos que eu quero ver int z = 7% 3, o que seria armazenado em Z? 176 00:08:47,900 --> 00:08:51,250 Então, isso é, essencialmente, perguntando o que é que modulo fazer? 177 00:08:51,250 --> 00:08:52,750 Alguém sabe o que modulo faz? 178 00:08:52,750 --> 00:08:53,940 Sim. 179 00:08:53,940 --> 00:08:54,870 y 4. 180 00:08:54,870 --> 00:08:56,120 COLUNA 1: É o restante. 181 00:08:56,120 --> 00:08:58,369 Jason HIRSCHHORN: É o resto quando você dividir. 182 00:08:58,369 --> 00:09:02,790 Assim 7 é dividida por 3 2 1 restante. 183 00:09:02,790 --> 00:09:04,690 Então 1 seria armazenado. 184 00:09:04,690 --> 00:09:06,970 >> Você fez a subtração, mas é assim que funciona. 185 00:09:06,970 --> 00:09:09,140 Isso é o que o operador módulo faz. 186 00:09:09,140 --> 00:09:12,360 É preciso um número divide-o por outro número e retorna para você 187 00:09:12,360 --> 00:09:14,590 o restante. 188 00:09:14,590 --> 00:09:19,770 Então, novamente, 7% 3 dá-lhe 1, porque 7 é dividida por 3 2 restante 1, 189 00:09:19,770 --> 00:09:21,650 e devolve o resto. 190 00:09:21,650 --> 00:09:24,470 >> E quanto vamos voltar a subir um passo para que sinal de divisão. 191 00:09:24,470 --> 00:09:29,194 Se eu fiz 7 / dividido por 3 faz Alguém sabe o que que gostaria de voltar? 192 00:09:29,194 --> 00:09:30,090 >> COLUNA 2: 2. 193 00:09:30,090 --> 00:09:32,240 >> JASON HIRSCHHORN: Por que dois e não 2.333? 194 00:09:32,240 --> 00:09:34,560 >> COLUNA 2: Eu acho que corta após o número inteiro. 195 00:09:34,560 --> 00:09:36,310 JASON HIRSCHHORN: Então, que é exatamente correto. 196 00:09:36,310 --> 00:09:39,880 Em C, se você fizer a divisão de dois inteiros 7 dividido por 3, 197 00:09:39,880 --> 00:09:43,430 ele recebe a resposta que neste caso 2,3333 para sempre 198 00:09:43,430 --> 00:09:47,080 e verificar que ponto decimal e corta tudo fora após o decimal 199 00:09:47,080 --> 00:09:49,240 e ele só retorna 2. 200 00:09:49,240 --> 00:09:51,120 >> Então, se eu fiz 8 dividido por três. 201 00:09:51,120 --> 00:09:54,010 Que na verdade, sabemos que para retornar 2.666, 202 00:09:54,010 --> 00:09:57,050 mas corta tudo fora em decimal, trunca-lo todo, 203 00:09:57,050 --> 00:09:58,640 e apenas retorna a vocês dois. 204 00:09:58,640 --> 00:10:02,090 Então 6 dividido por 3, 7 dividido por 3, 8 dividida por 3, 205 00:10:02,090 --> 00:10:04,840 estão todos indo para voltar para você 2. 206 00:10:04,840 --> 00:10:08,770 >> Alguém sabe ou tem um palpite, de como eu poderia realmente começar 207 00:10:08,770 --> 00:10:10,790 a resposta completa se eu quiser que decimal? 208 00:10:10,790 --> 00:10:13,120 209 00:10:13,120 --> 00:10:13,620 Sim. 210 00:10:13,620 --> 00:10:14,152 Continue. 211 00:10:14,152 --> 00:10:15,110 COLUNA 3: Usar uma bóia? 212 00:10:15,110 --> 00:10:16,942 JASON HIRSCHHORN: O que você quer dizer? 213 00:10:16,942 --> 00:10:19,786 COLUNA 3: Porque você disse que o flutuador é 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: Certo. 216 00:10:23,900 --> 00:10:26,100 Então, isso é exatamente correto. 217 00:10:26,100 --> 00:10:28,440 7 é um número inteiro. 218 00:10:28,440 --> 00:10:31,690 Mas se eu queria transformar essa em um número de ponto flutuante, 219 00:10:31,690 --> 00:10:34,674 Eu teria que guardar essa como 7.0 porque o computador 220 00:10:34,674 --> 00:10:37,090 é realmente stupid-- vimos que com a example-- PB e J 221 00:10:37,090 --> 00:10:38,930 ela só vai fazer exatamente o que você diga a ele. 222 00:10:38,930 --> 00:10:40,846 >> Então, se você escrever 7, ele acho que é um inteiro. 223 00:10:40,846 --> 00:10:43,640 Se você escrever 7.0, mesmo que Sabe aquelas coisas são equivalentes, 224 00:10:43,640 --> 00:10:45,550 que ele trata como um número de ponto flutuante. 225 00:10:45,550 --> 00:10:50,441 Então, se você fez 7,0 dividido por 3, ou dividido por 3,0, 226 00:10:50,441 --> 00:10:52,440 ele diria: OK, agora estamos lidando com carros alegóricos. 227 00:10:52,440 --> 00:10:57,514 Vou voltar para você 2.333333 para sempre. 228 00:10:57,514 --> 00:10:59,930 Mas não é realmente para sempre, porque como também vimos na palestra, 229 00:10:59,930 --> 00:11:03,350 esses números de ponto flutuante não são exatamente preciso. 230 00:11:03,350 --> 00:11:05,940 >> Então, se você quer que decimal, ou uma parte do que decimal, 231 00:11:05,940 --> 00:11:08,090 então você tem que use-- um deles tem de ser um número de ponto flutuante 232 00:11:08,090 --> 00:11:11,048 e o computador tem de entender que este é um ponto flutuante você é 233 00:11:11,048 --> 00:11:13,350 lidando com, e não um inteiro. 234 00:11:13,350 --> 00:11:16,760 Quaisquer perguntas sobre essa tabela em do lado direito, até agora? 235 00:11:16,760 --> 00:11:22,650 Ou seu lado esquerdo, o seu à esquerda, seu lado esquerdo. 236 00:11:22,650 --> 00:11:23,264 Sim. 237 00:11:23,264 --> 00:11:23,972 COLUNA 4: Certo. 238 00:11:23,972 --> 00:11:26,216 Para apenas como um regular inteiros, você faria 239 00:11:26,216 --> 00:11:30,230 write-- que você tem que escrever flutuar? 240 00:11:30,230 --> 00:11:31,920 >> JASON HIRSCHHORN: Sim lo. 241 00:11:31,920 --> 00:11:34,400 Bem, se você quer criar uma variável que é um flutuador, 242 00:11:34,400 --> 00:11:37,020 você precisa dizer flutuador z é igual a alguma coisa. 243 00:11:37,020 --> 00:11:37,640 >> COLUNA 4: OK. 244 00:11:37,640 --> 00:11:41,950 >> JASON HIRSCHHORN: Mas se eu queria fazer 7 dividido por 3 e obter esse decimal, 245 00:11:41,950 --> 00:11:48,540 Eu faria flutuar z = 7,0 / 3,0; e que me daria o ponto flutuante 246 00:11:48,540 --> 00:11:49,273 número. 247 00:11:49,273 --> 00:11:50,000 >> COLUNA 4: OK. 248 00:11:50,000 --> 00:11:56,370 >> JASON HIRSCHHORN: Se eu fiz algo como int z = 7 / por 3, 249 00:11:56,370 --> 00:12:00,856 que me daria um inteiro, porque esses são todos os inteiros. 250 00:12:00,856 --> 00:12:01,730 Isso faz sentido? 251 00:12:01,730 --> 00:12:02,320 >> COLUNA 4: Sim. 252 00:12:02,320 --> 00:12:02,950 >> JASON HIRSCHHORN: OK. 253 00:12:02,950 --> 00:12:03,450 Ótimo. 254 00:12:03,450 --> 00:12:06,030 Quaisquer outras perguntas sobre essa mesa? 255 00:12:06,030 --> 00:12:07,220 Mesmo? 256 00:12:07,220 --> 00:12:08,380 Estou tão animado. 257 00:12:08,380 --> 00:12:09,120 ESTÁ BEM. 258 00:12:09,120 --> 00:12:13,910 >> Por isso, algumas outras coisas que você vai usar, muitas vezes em condições ou loops, 259 00:12:13,910 --> 00:12:17,580 são estes tipos de operators-- estes tipos de expressões booleanas. 260 00:12:17,580 --> 00:12:23,140 E como aprendemos, == é o que você utilizar para verificar se duas coisas são iguais. 261 00:12:23,140 --> 00:12:28,170 >> Então, aqui estou verificando se x == y, vamos novamente supor que x é 7 e y é 3. 262 00:12:28,170 --> 00:12:33,220 Então, se eu escrevi 7 == 3, o que teria que voltar para mim? 263 00:12:33,220 --> 00:12:34,220 Isso é verdade ou falso? 264 00:12:34,220 --> 00:12:35,275 >> AUDIÊNCIA: False. 265 00:12:35,275 --> 00:12:36,150 JASON HIRSCHHORN: OK. 266 00:12:36,150 --> 00:12:37,370 Eu sinto que todo mundo pode receber um presente. 267 00:12:37,370 --> 00:12:39,054 Então todo mundo, o que teria que voltar? 268 00:12:39,054 --> 00:12:39,720 AUDIÊNCIA: False. 269 00:12:39,720 --> 00:12:40,130 JASON HIRSCHHORN: False. 270 00:12:40,130 --> 00:12:40,850 Ótimo. 271 00:12:40,850 --> 00:12:41,930 7 não é igual a 3. 272 00:12:41,930 --> 00:12:44,530 Então 7 == 3 retornaria false. 273 00:12:44,530 --> 00:12:50,746 Você tem um sinal não é igual, por isso, se eu verificado 7! = 3, o que teria que voltar? 274 00:12:50,746 --> 00:12:51,370 AUDIÊNCIA: 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ém foi muito enfático em a parte de trás e apreciar isso. 278 00:12:55,990 --> 00:12:59,070 Então você tem menos de operador, inferior ou igual a operador, 279 00:12:59,070 --> 00:13:01,990 maior do operador, maior que ou igual a do operador. 280 00:13:01,990 --> 00:13:03,490 >> Então, mais uma verificação de sanidade. 281 00:13:03,490 --> 00:13:05,660 Se eu tivesse 7 é maior que ou igual a 3. 282 00:13:05,660 --> 00:13:06,966 O que teria que voltar? 283 00:13:06,966 --> 00:13:07,692 >> AUDIÊNCIA: True. 284 00:13:07,692 --> 00:13:08,650 JASON HIRSCHHORN: True. 285 00:13:08,650 --> 00:13:10,050 Sim. 286 00:13:10,050 --> 00:13:13,290 Essa sala de volta, verso do quarto, fantástico. 287 00:13:13,290 --> 00:13:16,240 Você pode combiná-las expressões, se você gosta, assim, 288 00:13:16,240 --> 00:13:21,880 com um E lógico que é && Ou um OU lógico que é || 289 00:13:21,880 --> 00:13:22,800 ||. 290 00:13:22,800 --> 00:13:25,785 E então agora você pode testar dois together-- coisas é engraçado? 291 00:13:25,785 --> 00:13:28,250 Por que isso é engraçado? 292 00:13:28,250 --> 00:13:35,200 >> Então, se eu quisesse, eu posso dizer é 7 superior a 3 e 2 é inferior a 4? 293 00:13:35,200 --> 00:13:37,090 Bem, se 7 é maior de 3, isso é verdade. 294 00:13:37,090 --> 00:13:38,400 2 é inferior a 4, isso é verdade. 295 00:13:38,400 --> 00:13:41,140 Então, essa coisa toda iria retornar true. 296 00:13:41,140 --> 00:13:45,130 >> Se eu testei 7 é maior do que 3 e- Eu só estou pegando números aleatórios aqui-- 297 00:13:45,130 --> 00:13:47,340 4 é inferior a 2, bem, isso é falso. 298 00:13:47,340 --> 00:13:49,610 Assim, o verdadeiro eo falso fazer falsas. 299 00:13:49,610 --> 00:13:54,520 E você pode seguir em frente e você combinar como muitas condições, juntamente como você gostaria. 300 00:13:54,520 --> 00:14:00,000 >> Alguém tem alguma dúvida, comentários, preocupações tão longe? 301 00:14:00,000 --> 00:14:03,862 E eu vejo que alguns de vocês tirar fotos de mim na tela, que eu aprecio. 302 00:14:03,862 --> 00:14:05,070 Felizmente, ele não está snapchat. 303 00:14:05,070 --> 00:14:06,417 Esperançosamente, é para suas notas. 304 00:14:06,417 --> 00:14:08,500 Mas todos estes estão indo para estar disponível online. 305 00:14:08,500 --> 00:14:11,210 Então você não tem que tirar fotos disto. 306 00:14:11,210 --> 00:14:15,150 Como eu mencionei, tudo estará disponível on-line para você. 307 00:14:15,150 --> 00:14:15,650 ESTÁ BEM. 308 00:14:15,650 --> 00:14:17,980 Estou prestes a começar fora do palco, o mesmo acontece com qualquer um 309 00:14:17,980 --> 00:14:20,350 quero dizer nada antes que isso aconteça? 310 00:14:20,350 --> 00:14:21,080 Perguntas? 311 00:14:21,080 --> 00:14:21,680 >> [Interpondo VOZES] 312 00:14:21,680 --> 00:14:22,250 >> JASON HIRSCHHORN: Oh, pare. 313 00:14:22,250 --> 00:14:23,290 Vocês são muito agradável. 314 00:14:23,290 --> 00:14:23,790 ESTÁ BEM. 315 00:14:23,790 --> 00:14:26,520 Vou marcar para fora. 316 00:14:26,520 --> 00:14:27,240 Vamos lá. 317 00:14:27,240 --> 00:14:29,570 >> ANDI Peng: Nós vamos fazer uma mudança mic estranho agora. 318 00:14:29,570 --> 00:14:32,280 >> JASON HIRSCHHORN: Eu sou vai tirar isso. 319 00:14:32,280 --> 00:14:33,946 ANDI Peng: Agradecemos o apoio, pessoal. 320 00:14:33,946 --> 00:14:42,250 321 00:14:42,250 --> 00:14:43,180 Você pode me ouvir? 322 00:14:43,180 --> 00:14:43,930 Isso é bom? 323 00:14:43,930 --> 00:14:44,760 Perfeito. 324 00:14:44,760 --> 00:14:45,630 Bela. 325 00:14:45,630 --> 00:14:47,490 Deixe-me apenas que dobrar em. 326 00:14:47,490 --> 00:14:49,100 ESTÁ BEM. 327 00:14:49,100 --> 00:14:54,140 Então, eu estou prestes a fazer como um gigante informações despejar sobre vocês agora. 328 00:14:54,140 --> 00:14:57,370 E não se preocupe se você é qualquer não seguir cada pequena linha do que 329 00:14:57,370 --> 00:14:58,812 Estou prestes a mostrar-lhe. 330 00:14:58,812 --> 00:15:00,770 Como Jason disse, tudo é completamente em linha. 331 00:15:00,770 --> 00:15:03,780 Apenas vamos tentar introduzir todos os conceitos coberta 332 00:15:03,780 --> 00:15:05,270 em algumas destas lâminas. 333 00:15:05,270 --> 00:15:06,582 Então, basta seguir junto. 334 00:15:06,582 --> 00:15:09,540 Não se preocupe se você não entende tudo; No entanto, se em qualquer ponto 335 00:15:09,540 --> 00:15:12,820 Você se sente perdido, aumentar o seu mão, vamos parar, não se preocupe. 336 00:15:12,820 --> 00:15:15,060 Legal. 337 00:15:15,060 --> 00:15:19,270 >> Então eu acho que algo que David tem já mencionado no tipo de palestra 338 00:15:19,270 --> 00:15:23,240 e Jason tipo de alusão para hoje é que é uma biblioteca. 339 00:15:23,240 --> 00:15:27,510 Assim, na programação, nós temos essas coisas chamadas bibliotecas. 340 00:15:27,510 --> 00:15:29,690 Sempre que, essencialmente, todos eles estão é apenas um conjunto 341 00:15:29,690 --> 00:15:32,610 de funções, que é essencialmente apenas código que é 342 00:15:32,610 --> 00:15:35,070 já foi escrito por alguém que todos nós podemos 343 00:15:35,070 --> 00:15:36,410 utilizar dentro de nossos programas. 344 00:15:36,410 --> 00:15:38,790 >> Então como é que um normal, trabalho biblioteca, certo? 345 00:15:38,790 --> 00:15:40,030 Você entra pela porta da biblioteca. 346 00:15:40,030 --> 00:15:41,890 Você tem todas essas livros que você pode puxar para fora 347 00:15:41,890 --> 00:15:44,590 e você pode acessar informações dentro desses livros. 348 00:15:44,590 --> 00:15:45,840 Mesma coisa na programação. 349 00:15:45,840 --> 00:15:48,820 >> Você tem uma biblioteca que já tem foram escritos por outras pessoas. 350 00:15:48,820 --> 00:15:51,530 E a maneira que você pode, como programador ou um estudante, 351 00:15:51,530 --> 00:15:55,780 pode ter acesso a essa biblioteca é através da hashtag # include. 352 00:15:55,780 --> 00:15:59,720 >> Por exemplo, em C nós tem a mais três C-- 353 00:15:59,720 --> 00:16:03,420 comumente usado três C padrão 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ão, dentro de sua primeira problema casal define, 356 00:16:07,610 --> 00:16:10,940 esses serão os três que você está usando principalmente. 357 00:16:10,940 --> 00:16:14,610 Assim como David já explicou em conferência, 358 00:16:14,610 --> 00:16:17,460 o padrão I / O biblioteca, ou o biblioteca padrão de entrada / saída 359 00:16:17,460 --> 00:16:18,620 faz exatamente isso. 360 00:16:18,620 --> 00:16:23,530 Ele permite que você, no seu código, a entrada nada do usuário e de saída que 361 00:16:23,530 --> 00:16:25,960 para a tela, essencialmente imprimi-lo para a tela. 362 00:16:25,960 --> 00:16:29,990 >> E assim todo o tempo que você usar quaisquer funções, por exemplo, a função printf (), que 363 00:16:29,990 --> 00:16:33,319 vamos passar por cima o próximo slide, certifique-se de incluir o padrão I / O 364 00:16:33,319 --> 00:16:36,360 biblioteca, ou então você não vai ser capaz de utilizar a função printf (). 365 00:16:36,360 --> 00:16:39,110 Porque você, como o programador na verdade nunca escreveu essa função, 366 00:16:39,110 --> 00:16:41,840 você está apenas usando alguém código de outra pessoa dentro de seu próprio código. 367 00:16:41,840 --> 00:16:43,620 >> Isso faz sentido todo mundo? 368 00:16:43,620 --> 00:16:44,520 Legal. 369 00:16:44,520 --> 00:16:48,530 >> E, então, essencialmente sujem a biblioteca e o math.h string.h 370 00:16:48,530 --> 00:16:52,970 biblioteca, .h apenas significa biblioteca, outras bibliotecas que você eventualmente 371 00:16:52,970 --> 00:16:55,310 estar usando dentro de seu código. 372 00:16:55,310 --> 00:16:57,620 >> No entanto, para fins desta biblioteca, que também 373 00:16:57,620 --> 00:17:01,170 have-- deste class-- temos também o que é chamado a biblioteca CS50, 374 00:17:01,170 --> 00:17:05,270 cs50.h, onde nós, para sua leitura criaram 375 00:17:05,270 --> 00:17:07,369 muitas funções importantes e úteis. 376 00:17:07,369 --> 00:17:09,550 Assim que você como um programador pode pegar carona off 377 00:17:09,550 --> 00:17:14,470 o que nós já escrevemos, para que deste disponível função para você 378 00:17:14,470 --> 00:17:15,599 para seu uso. 379 00:17:15,599 --> 00:17:18,359 >> Eu estarei cobrindo um par de as funções de uso geral, 380 00:17:18,359 --> 00:17:20,839 mas sabemos que estas são todos googleable online. 381 00:17:20,839 --> 00:17:24,904 Sinta-se livre, puxe para cima a biblioteca e CS50 então você tem todas as funções lá. 382 00:17:24,904 --> 00:17:25,828 Sim. 383 00:17:25,828 --> 00:17:28,140 >> COLUNA 5: Então, se você não fosse utilizando o software que 384 00:17:28,140 --> 00:17:29,916 é fornecida a nós por a classe, que faz 385 00:17:29,916 --> 00:17:32,698 significa que teríamos de encontrar e baixar arquivar este cabeçalho nós mesmos e dizer- 386 00:17:32,698 --> 00:17:33,840 o computador onde ele está? 387 00:17:33,840 --> 00:17:34,320 >> ANDI Peng: Ótima pergunta. 388 00:17:34,320 --> 00:17:34,820 Exatamente. 389 00:17:34,820 --> 00:17:38,194 Então, é como se você não está fisicamente presente em uma biblioteca, 390 00:17:38,194 --> 00:17:40,360 não há nenhuma maneira de você realmente ir e acessá-lo. 391 00:17:40,360 --> 00:17:42,589 Assim, a mesma coisa com programação em C, você 392 00:17:42,589 --> 00:17:45,880 tem que ter certeza que você está usando nosso aparelho porque a biblioteca é já 393 00:17:45,880 --> 00:17:47,270 sido incorporado nele. 394 00:17:47,270 --> 00:17:50,020 E então quando você hashtag #include, a biblioteca de lá. 395 00:17:50,020 --> 00:17:50,520 Sim. 396 00:17:50,520 --> 00:17:51,920 Boa pergunta. 397 00:17:51,920 --> 00:17:53,461 Todo mundo é bom? 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 Tudo certo. 401 00:17:56,870 --> 00:17:59,330 Então, nós estamos indo bater, Essencialmente, o que é 402 00:17:59,330 --> 00:18:01,620 que a primeira função nós como programadores são 403 00:18:01,620 --> 00:18:03,900 vai estar usando dentro de nosso código. 404 00:18:03,900 --> 00:18:05,690 Esta é a chamada função printf (). 405 00:18:05,690 --> 00:18:08,450 Assim, a função printf (), como eu já disse no último slide, 406 00:18:08,450 --> 00:18:11,830 está incluído no padrão I / O, Standard input / output, biblioteca. 407 00:18:11,830 --> 00:18:16,470 >> Portanto, verifique se o que você está using-- oh, deixe-me pegar o laser pointer-- 408 00:18:16,470 --> 00:18:18,660 sempre que você estiver usando a função printf (), 409 00:18:18,660 --> 00:18:21,790 você tem que incluir o padrão I / O biblioteca ou então, quando você compilar, 410 00:18:21,790 --> 00:18:23,760 você vai obter um erro porque o computador vai ser como, 411 00:18:23,760 --> 00:18:26,140 oh, eu não sei onde printf () é, você não está me dizendo onde printf () 412 00:18:26,140 --> 00:18:26,830 é. 413 00:18:26,830 --> 00:18:30,150 Bem printf () está incluído no E / S padrão, então quando você usar printf (), 414 00:18:30,150 --> 00:18:32,960 certifique-se de que tem linha acima seu código. 415 00:18:32,960 --> 00:18:36,040 >> Assim, por exemplo, printf () aqui é uma função. 416 00:18:36,040 --> 00:18:40,260 Tudo que faz é imprimir algo dentro dos parênteses para o utilizador. 417 00:18:40,260 --> 00:18:44,840 Será que alguém gostaria de tomar uma facada em que esta linha de código à direita 418 00:18:44,840 --> 00:18:46,420 aqui vai imprimir? 419 00:18:46,420 --> 00:18:48,730 Assim, a resposta está na tela. 420 00:18:48,730 --> 00:18:50,480 Alguém? 421 00:18:50,480 --> 00:18:51,380 >> VERDI: A parte inferior. 422 00:18:51,380 --> 00:18:53,510 >> ANDI Peng: Verdi, por que você não vá em frente e dizer toda a declaração? 423 00:18:53,510 --> 00:18:55,718 >> Verdi: Olá, meu nome é Andi, e eu tenho 20 anos de idade. 424 00:18:55,718 --> 00:18:57,270 ANDI Peng: Ah, adorável. 425 00:18:57,270 --> 00:19:00,240 Assim, nesta linha que vamos imprimir, Olá, meu nome é Andi, 426 00:19:00,240 --> 00:19:04,280 e eu tenho 20 anos de idade, que é de fato uma afirmação verdadeira. 427 00:19:04,280 --> 00:19:05,090 >> Syntax. 428 00:19:05,090 --> 00:19:08,830 Então par de questões sintáticas que vocês querem ter certeza de que você sabe. 429 00:19:08,830 --> 00:19:09,360 Cotações. 430 00:19:09,360 --> 00:19:13,170 Aspas duplas contar a computador que tudo dentro 431 00:19:13,170 --> 00:19:14,850 vai ser impressa. 432 00:19:14,850 --> 00:19:16,620 >> Tudo dentro de lata ser exatamente como 433 00:19:16,620 --> 00:19:19,920 digitá-lo, exceto para vulgarmente no final, 434 00:19:19,920 --> 00:19:23,610 vamos querer incluir um hash-- oh sorry-- um traço n. 435 00:19:23,610 --> 00:19:24,640 Assim, um traço n. 436 00:19:24,640 --> 00:19:28,884 >> Alguém quer dar um palpite o que faz com que o nosso código? 437 00:19:28,884 --> 00:19:29,465 Sim. 438 00:19:29,465 --> 00:19:30,840 COLUNA 6: Coloca-lo em uma nova linha. 439 00:19:30,840 --> 00:19:31,650 ANDI Peng: Exatamente. 440 00:19:31,650 --> 00:19:34,660 Então, tudo isso faz é permitir que aconteça o que acontecer 441 00:19:34,660 --> 00:19:37,520 depois disso, após esta declaração, a ser impresso para uma nova linha. 442 00:19:37,520 --> 00:19:40,030 De modo que quando você está escrevendo seu código que você não tem coisas aleatoriamente 443 00:19:40,030 --> 00:19:41,738 acrescentos ao fim que você não quer. 444 00:19:41,738 --> 00:19:43,700 Isso tudo fica ordenadamente impressa uma linha 445 00:19:43,700 --> 00:19:46,870 e, depois, começar na linha seguinte. 446 00:19:46,870 --> 00:19:50,970 >> Alguém se lembra o que isso ponto e vírgula faz quando estamos codificação? 447 00:19:50,970 --> 00:19:54,580 448 00:19:54,580 --> 00:19:55,330 Sim. 449 00:19:55,330 --> 00:19:55,740 >> COLUNA 7: Declaração. 450 00:19:55,740 --> 00:19:56,010 >> ANDI Peng: Desculpe? 451 00:19:56,010 --> 00:19:57,100 >> COLUNA 7: Será que acabar com a declaração? 452 00:19:57,100 --> 00:19:57,766 >> ANDI Peng: Sim. 453 00:19:57,766 --> 00:20:02,670 Assim, em C, ou qualquer tipo de programação linguagem, o ponto e vírgula 454 00:20:02,670 --> 00:20:04,640 indica o final de uma linha de programação. 455 00:20:04,640 --> 00:20:09,240 Assim, por exemplo, em Inglês usamos período quer dizer, oh este é o fim de uma frase. 456 00:20:09,240 --> 00:20:12,857 Na programação, a mesma coisa, temos um ponto e vírgula a indicar o final de uma linha. 457 00:20:12,857 --> 00:20:14,690 Muitas vezes, quando você está começando a programar, 458 00:20:14,690 --> 00:20:17,150 você vai perceber que você esqueça de fazer um ponto e vírgula 459 00:20:17,150 --> 00:20:19,400 e, em seguida, tentar executar o seu O código e ele não funciona. 460 00:20:19,400 --> 00:20:21,520 E você é como, Ah, eu não sei sei por que, ele deveria estar trabalhando. 461 00:20:21,520 --> 00:20:24,394 >> As chances são que você provavelmente esqueceu de um ponto e vírgula ou um suporte ou algo 462 00:20:24,394 --> 00:20:25,020 em algum lugar. 463 00:20:25,020 --> 00:20:27,740 Então, isso é importante para se lembrar. 464 00:20:27,740 --> 00:20:29,627 Legal. 465 00:20:29,627 --> 00:20:31,960 Tudo bem, show de mãos, como muitas pessoas aqui têm sempre 466 00:20:31,960 --> 00:20:37,210 tomado AP Ciência da Computação ou programado em Java antes, nunca? 467 00:20:37,210 --> 00:20:37,710 ESTÁ BEM. 468 00:20:37,710 --> 00:20:38,210 Adorável. 469 00:20:38,210 --> 00:20:41,340 Isso não será aplicável em seguida, mas em Java, você 470 00:20:41,340 --> 00:20:44,960 tem algo chamado System.out.println que não existe em C. 471 00:20:44,960 --> 00:20:49,927 >> Assim, em C, sempre que você quer adicionar em variáveis 472 00:20:49,927 --> 00:20:51,760 em qualquer coisa que você quer para imprimir, há 473 00:20:51,760 --> 00:20:54,620 uma sintaxe específica que vamos usar. 474 00:20:54,620 --> 00:20:56,520 Isso é chamado a placeholding-- essencialmente 475 00:20:56,520 --> 00:21:01,180 somarmos espaços reservados no lugar do inteiro ou a variável 476 00:21:01,180 --> 00:21:02,580 que deseja imprimir. 477 00:21:02,580 --> 00:21:07,430 >> Então, como vocês podem ver, nós incluímos um novo cabeçalho biblioteca de arquivos aqui. 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 dessa biblioteca CS50 é uma função comum que vamos usar 480 00:21:13,160 --> 00:21:15,610 em nosso curso chamado GetInt (). 481 00:21:15,610 --> 00:21:21,830 >> Alguém quer tomar uma facada em o que GetInt () pode possivelmente estar fazendo. 482 00:21:21,830 --> 00:21:22,830 >> AUDIÊNCIA: [inaudível] 483 00:21:22,830 --> 00:21:23,550 >> ANDI Peng: Desculpe. 484 00:21:23,550 --> 00:21:24,370 Não foi possível ouvi-lo. 485 00:21:24,370 --> 00:21:25,511 Maddie, ninguém. 486 00:21:25,511 --> 00:21:27,260 MADDIE: Oh, ele solicitará você para um número inteiro. 487 00:21:27,260 --> 00:21:28,051 ANDI Peng: Exatamente. 488 00:21:28,051 --> 00:21:30,670 Então esta função, outra função que já está 489 00:21:30,670 --> 00:21:33,690 foi escrito por outra pessoa que podemos invocar agora. 490 00:21:33,690 --> 00:21:38,000 Tudo o que é pedir a você, o usuário, a entrada que você quiser que o código 491 00:21:38,000 --> 00:21:41,850 está em execução e armazena whatever-- neste caso estamos GetInt () - ing, 492 00:21:41,850 --> 00:21:44,060 então isso significa que nós somos a obtenção de um número inteiro. 493 00:21:44,060 --> 00:21:46,150 >> E nós estamos indo para armazenar que em outro inteiro 494 00:21:46,150 --> 00:21:48,900 que acabamos fez chamada idade. 495 00:21:48,900 --> 00:21:51,500 Isso faz sentido para todo mundo? 496 00:21:51,500 --> 00:21:52,190 Legal. 497 00:21:52,190 --> 00:21:56,400 >> Portanto, agora que temos armazenado este número inteiro, que temos solicitado ao usuário, 498 00:21:56,400 --> 00:22:00,010 nesta variável, nós temos criado do tipo int chamado idade, 499 00:22:00,010 --> 00:22:03,720 nós podemos ir em frente e lugar essa função no nosso printf (). 500 00:22:03,720 --> 00:22:08,970 Assim, a sintaxe geralmente para printf () é que onde quer que em seu físico real 501 00:22:08,970 --> 00:22:14,410 linha que pretende incluir esse inteiro, você faz esse símbolo ali mesmo, 502 00:22:14,410 --> 00:22:17,800 o símbolo por cento, com a tipo de variável que você quer. 503 00:22:17,800 --> 00:22:20,090 >> Portanto, neste caso, a idade é um número inteiro. 504 00:22:20,090 --> 00:22:25,030 Então você está indo para incluir % i porque é um número inteiro. 505 00:22:25,030 --> 00:22:26,860 E, depois de o seu declaração, você está indo 506 00:22:26,860 --> 00:22:30,370 fazer vírgula eo nome da variável. 507 00:22:30,370 --> 00:22:33,420 >> Então aqui, nós estamos indo para imprimir fora, Olá, meu nome é Andi, 508 00:22:33,420 --> 00:22:35,730 e eu sou anos de idade em branco. 509 00:22:35,730 --> 00:22:38,890 Hashta-- ou, sorry--, idade com qualquer entrada I. 510 00:22:38,890 --> 00:22:42,790 Então, se eu fosse para entrada 20 para o meu GetInt () aqui, 511 00:22:42,790 --> 00:22:44,500 que iria imprimir exatamente a mesma coisa. 512 00:22:44,500 --> 00:22:47,990 Mas, se eu queria algo entrada outra coisa, como talvez 40 ou 45, 513 00:22:47,990 --> 00:22:50,800 em seguida, você iria ver que refletia em conformidade, o código. 514 00:22:50,800 --> 00:22:52,886 >> Portanto, este é um exemplo de algo em que 515 00:22:52,886 --> 00:22:55,260 ele imprime e olha para você como se fosse a mesma coisa, 516 00:22:55,260 --> 00:22:57,593 mas debaixo da capa de o computador há realmente 517 00:22:57,593 --> 00:22:59,560 coisas muito diferentes acontecendo. 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 Tudo certo. 521 00:23:03,260 --> 00:23:06,940 Então, o que se queremos múltiplas variáveis? 522 00:23:06,940 --> 00:23:08,290 Bem fácil. 523 00:23:08,290 --> 00:23:09,150 Mesma coisa. 524 00:23:09,150 --> 00:23:11,930 Temos também uma nova função aqui chamado GetString (), 525 00:23:11,930 --> 00:23:15,380 Também incluídos dentro da biblioteca CS50, que tudo que faz é pedir ao utilizador 526 00:23:15,380 --> 00:23:18,120 para uma seqüência de caracteres, que é apenas um conjunto de caracteres, 527 00:23:18,120 --> 00:23:19,810 assim como uma sentença ou como um nome. 528 00:23:19,810 --> 00:23:25,470 >> Portanto, neste caso, teríamos dois espaços reservados% s para cordas e% i 529 00:23:25,470 --> 00:23:26,750 por inteiro. 530 00:23:26,750 --> 00:23:29,190 E nós estamos indo para seguir que por as duas variáveis 531 00:23:29,190 --> 00:23:32,670 que deseja incluir, na ordem que aparecem na sentença. 532 00:23:32,670 --> 00:23:35,471 Assim, por exemplo, meu nome é em branco, eu quero um nome lá, 533 00:23:35,471 --> 00:23:36,970 então eu vou ter o nome em primeiro lugar. 534 00:23:36,970 --> 00:23:39,637 E, em seguida, mais tarde, eu quero idade, quer ter segunda idade. 535 00:23:39,637 --> 00:23:42,720 E assim se eu quisesse entrada, Olá, Andi do meu nome, e eu tenho 20 anos de idade. 536 00:23:42,720 --> 00:23:46,370 Se eu introduzido Andi e 20, o exatamente a mesma coisa iria imprimir; 537 00:23:46,370 --> 00:23:51,134 no entanto, agora temos dois armazenados variáveis ​​de nome, bem como int. 538 00:23:51,134 --> 00:23:51,634 Sim. 539 00:23:51,634 --> 00:23:54,124 >> COLUNA 8: Seria capaz de executar se você alternou 540 00:23:54,124 --> 00:23:55,620 nome e idade no final do que? 541 00:23:55,620 --> 00:23:55,840 >> ANDI Peng: Sim. 542 00:23:55,840 --> 00:23:57,006 Isso é realmente boa pergunta. 543 00:23:57,006 --> 00:23:59,520 Então, longa história curta, não. 544 00:23:59,520 --> 00:24:03,070 Porque o nome e age-- tipo de variável é o nome? 545 00:24:03,070 --> 00:24:03,950 >> COLUNA 8: String. 546 00:24:03,950 --> 00:24:05,440 >> ANDI Peng: E ​​o que tipo de variável é a idade? 547 00:24:05,440 --> 00:24:06,231 >> COLUNA 8: Integer. 548 00:24:06,231 --> 00:24:10,290 ANDI Peng: Portanto, temos aqui um espaço reservado para cordas e inteiro, certo? 549 00:24:10,290 --> 00:24:13,350 Então, se você fosse para mudar estes, o computador não vai saber. 550 00:24:13,350 --> 00:24:16,250 Vai buscar por uma corda, e se você tentar dar-lhe um int, 551 00:24:16,250 --> 00:24:18,083 ele vai ser como esperar Estou confuso, você 552 00:24:18,083 --> 00:24:21,100 me disse que eu deveria ser atribuição de memória para um int. 553 00:24:21,100 --> 00:24:23,760 E aqui, quando ele espera um número inteiro 554 00:24:23,760 --> 00:24:25,640 e você dar-lhe um nome e uma corda em vez disso, 555 00:24:25,640 --> 00:24:28,931 ele também vai ser muito confuso, ele não será executado exatamente da maneira que você precisar. 556 00:24:28,931 --> 00:24:35,280 Então, aqui, nomeação e sintaxe é muito importante para a execução de código. 557 00:24:35,280 --> 00:24:37,991 Todo mundo é bom? 558 00:24:37,991 --> 00:24:38,490 Sim. 559 00:24:38,490 --> 00:24:39,476 Maddie. 560 00:24:39,476 --> 00:24:44,620 >> MADDIE: Aqui, eu sei que nós olhamos em exemplos em sala de aula, onde eles perguntam 561 00:24:44,620 --> 00:24:46,950 qual é a sua idade, o que é o seu nome. 562 00:24:46,950 --> 00:24:50,250 Aqui, isso seria ele doesn't-- se tivéssemos de executar esse código, 563 00:24:50,250 --> 00:24:51,750 que não iria pedir isso? 564 00:24:51,750 --> 00:24:54,740 Mas você teria apenas dois números de entrada e, em seguida, ele seria executado como esse? 565 00:24:54,740 --> 00:24:55,781 >> ANDI Peng: Sim, exatamente. 566 00:24:55,781 --> 00:24:58,250 Então, se você queria para que ele visor, introduza a sua idade, 567 00:24:58,250 --> 00:25:01,100 você pode simplesmente adicionar uma função printf () que diz: Por favor, indique a sua idade, 568 00:25:01,100 --> 00:25:01,600 acima dela. 569 00:25:01,600 --> 00:25:02,711 Essa é uma boa pergunta. 570 00:25:02,711 --> 00:25:03,210 Sim. 571 00:25:03,210 --> 00:25:07,964 >> COLUNA 9: Então, já seria incluído no GetInt () [inaudível]. 572 00:25:07,964 --> 00:25:09,380 ANDI Peng: Não, na verdade não é. 573 00:25:09,380 --> 00:25:11,809 Então, tudo isso faz é apenas solicita uma tela vazia 574 00:25:11,809 --> 00:25:13,100 para que o utilizador introduza alguma coisa. 575 00:25:13,100 --> 00:25:17,420 Se você quiser, se você quiser imprimir algo que informa ao usuário como, 576 00:25:17,420 --> 00:25:21,110 por favor me dê a sua idade, então você teria de printf () que a si mesmo. 577 00:25:21,110 --> 00:25:23,789 Porque todo mundo usa essa função para coisas diferentes, 578 00:25:23,789 --> 00:25:26,080 você pode estar armazenando idade, você pode estar armazenando endereço, 579 00:25:26,080 --> 00:25:28,060 você poderia armazenar números de telefone. 580 00:25:28,060 --> 00:25:31,190 E por isso é realmente até usos individuais de seus homens 581 00:25:31,190 --> 00:25:34,390 para o que você quer dizer. 582 00:25:34,390 --> 00:25:34,890 Sim. 583 00:25:34,890 --> 00:25:38,236 >> ALTO-FALANTE 10: Então, só para esclarecer, onde você inserir o nome ea idade 584 00:25:38,236 --> 00:25:43,020 de modo que ele aparece no lugar de% s? 585 00:25:43,020 --> 00:25:44,320 >> ANDI Peng: Como no usuário? 586 00:25:44,320 --> 00:25:47,165 >> ALTO-FALANTE 10: Sim, como como faço fazer ele-- onde posso colocar Andi, 587 00:25:47,165 --> 00:25:48,350 e onde posso colocar 20? 588 00:25:48,350 --> 00:25:48,640 >> ANDI Peng: Sim. 589 00:25:48,640 --> 00:25:50,250 Então, se você fosse para realmente executar este código, 590 00:25:50,250 --> 00:25:52,875 Eu não estou realmente correndo o código, este é apenas aqui agora. 591 00:25:52,875 --> 00:25:56,910 Se eu fosse para executar o código, eu o faria compilar o código, tornar o arquivo, 592 00:25:56,910 --> 00:26:00,760 executar o código, e então não haveria apenas dois espaços para que eu introduzi-lo. 593 00:26:00,760 --> 00:26:01,260 Sim. 594 00:26:01,260 --> 00:26:03,843 Vocês vão ver quando você joga ao redor com o código você mesmo. 595 00:26:03,843 --> 00:26:05,760 596 00:26:05,760 --> 00:26:09,645 >> Tudo bem que estamos indo para mover para a próxima seção do que 597 00:26:09,645 --> 00:26:11,610 nós estaremos cobrindo hoje. 598 00:26:11,610 --> 00:26:13,980 Vamos repassar o que instruções condicionais são. 599 00:26:13,980 --> 00:26:16,500 Então, se vocês lembram e lembrar da palestra, 600 00:26:16,500 --> 00:26:19,210 instruções condicionais, todos eles são são um conjunto 601 00:26:19,210 --> 00:26:24,010 de instruções para o computador nas que se uma determinada condição for verdadeira, 602 00:26:24,010 --> 00:26:27,470 você executar o código dentro dessa condição. 603 00:26:27,470 --> 00:26:30,101 >> Assim, em Scratch-- essencialmente o grande tema a partir de hoje 604 00:26:30,101 --> 00:26:32,850 é que vocês têm já tudo visto a lógica por trás de tudo 605 00:26:32,850 --> 00:26:34,020 que estamos cobrindo. 606 00:26:34,020 --> 00:26:36,190 E tudo o que estamos fazendo é traduzindo algo 607 00:26:36,190 --> 00:26:39,090 que era muito intuitivo em Zero, e disco rígido codificação-lo 608 00:26:39,090 --> 00:26:41,950 na sintaxe vamos usar para a classe que é C. 609 00:26:41,950 --> 00:26:47,550 Então, logicamente, tudo isso foi bloco é aquele pedaço de código certo lá. 610 00:26:47,550 --> 00:26:49,995 Sim. 611 00:26:49,995 --> 00:26:50,900 ESTÁ BEM. 612 00:26:50,900 --> 00:26:55,290 >> Nós também entrar em um if ... else declaração, que é apenas uma camada adicional 613 00:26:55,290 --> 00:26:59,120 de complexidade para a instrução if onde o computador tem um olhar para este 614 00:26:59,120 --> 00:27:04,260 e vê, se esta condição for verdadeira, fazer tudo o que está dentro desses dois suportes, 615 00:27:04,260 --> 00:27:08,470 else-- assim como o tipo de padrão se ele não atende o condition-- fazer isso. 616 00:27:08,470 --> 00:27:10,120 É como uma bifurcação na estrada. 617 00:27:10,120 --> 00:27:14,400 Se está chovendo lá fora, eu coloquei em uma capa de chuva, que qualquer outra coisa 618 00:27:14,400 --> 00:27:16,330 outra coisa que eu não colocar em uma capa de chuva. 619 00:27:16,330 --> 00:27:18,400 >> Será que a lógica faz sentido para todo mundo? 620 00:27:18,400 --> 00:27:21,031 Legal. 621 00:27:21,031 --> 00:27:21,530 Tudo certo. 622 00:27:21,530 --> 00:27:24,970 Assim como um exemplo duro de este que veríamos em C 623 00:27:24,970 --> 00:27:28,890 é se eu queria criar um variáveis ​​chamados horas lição de casa. 624 00:27:28,890 --> 00:27:32,050 E se é menos horas de casa de cinco anos, eu digo A vida é grande. 625 00:27:32,050 --> 00:27:33,070 É maravilhoso. 626 00:27:33,070 --> 00:27:36,450 No entanto, dizem A luta é real-- que é o que todos nós nesta segunda-feira 627 00:27:36,450 --> 00:27:39,337 tarde até Science Hill estão provavelmente fazendo certo agora-- 628 00:27:39,337 --> 00:27:40,170 AUDIÊNCIA: [rindo] 629 00:27:40,170 --> 00:27:42,510 ANDI Peng: Eles maneira que nós seria, obrigado por isso. 630 00:27:42,510 --> 00:27:46,180 A maneira que nós seria codificar isso em C é se-- vamos supor 631 00:27:46,180 --> 00:27:49,920 já temos uma variável do tipo int chamado horas de casa aqui. 632 00:27:49,920 --> 00:27:53,870 Se as horas de trabalhos de casa está a menos de cinco printf (), A vida é grande. 633 00:27:53,870 --> 00:27:57,330 Lembre-se de manter / n porque você quer uma nova linha depois. 634 00:27:57,330 --> 00:27:59,660 Impressão Else, A luta é real. 635 00:27:59,660 --> 00:28:03,720 >> Será que todo mundo entender como I transferida a partir deste bloco 636 00:28:03,720 --> 00:28:07,610 para este bloco 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 Tudo certo. 640 00:28:11,840 --> 00:28:15,930 >> Então, agora vamos dar uma olhada em várias instruções If completamente. 641 00:28:15,930 --> 00:28:18,140 Então vamos supor que o propósito deste programa 642 00:28:18,140 --> 00:28:20,870 foi que pede ao utilizador para um grau. 643 00:28:20,870 --> 00:28:24,450 Nós aviso usando GetInt () para um grau, e um valor de entrada, 644 00:28:24,450 --> 00:28:27,700 e você deseja exibir que tipo de grau que eles têm. 645 00:28:27,700 --> 00:28:30,730 >> Então, se eu fosse para projetar um programa, eu significa normalmente em todos os nossos olhos, 646 00:28:30,730 --> 00:28:35,490 90-100 é um A, é um 80-90 B, e assim por diante e assim por diante. 647 00:28:35,490 --> 00:28:39,040 O que está errado com este pedaço de código que não é 648 00:28:39,040 --> 00:28:41,393 fazendo o que eu quero que ele faça. 649 00:28:41,393 --> 00:28:41,892 Sim. 650 00:28:41,892 --> 00:28:45,100 >> ALTO-FALANTE 11: Eles têm limites mais baixos, mas eles não têm limites superiores. 651 00:28:45,100 --> 00:28:46,280 >> ANDI Peng: Exatamente. 652 00:28:46,280 --> 00:28:47,950 Será que todo mundo ouvir o que ela disse? 653 00:28:47,950 --> 00:28:50,200 Não vai ser superior limites, mas não há limites inferiores. 654 00:28:50,200 --> 00:28:52,540 Desculpe, outra maneira ao redor, limites mais baixos, não há limites superiores. 655 00:28:52,540 --> 00:28:55,090 Assim é que gostaria de tomar uma facada em dizer 656 00:28:55,090 --> 00:28:58,945 o que iria ser impresso neste tela, se eu fosse para executar este código. 657 00:28:58,945 --> 00:28:59,820 ALTO-FALANTE 11: um erro? 658 00:28:59,820 --> 00:29:01,140 ANDI Peng: um erro? 659 00:29:01,140 --> 00:29:02,740 Grande suposição, não muito bem. 660 00:29:02,740 --> 00:29:05,465 Alguém tem outra facada? 661 00:29:05,465 --> 00:29:06,640 Sim, Aaron. 662 00:29:06,640 --> 00:29:10,099 >> AARON: Se você colocar em algo maior do que 90, 663 00:29:10,099 --> 00:29:11,640 ele iria mostrar todas as notas que você tem. 664 00:29:11,640 --> 00:29:13,640 Ele iria mostrar que você tem um A, você tem um B, você tem um C. 665 00:29:13,640 --> 00:29:13,870 >> ANDI Peng: Sim. 666 00:29:13,870 --> 00:29:14,840 Isto é exatamente correto. 667 00:29:14,840 --> 00:29:17,820 Então, isso seria maravilhoso. 668 00:29:17,820 --> 00:29:21,781 No entanto, eles são mutuamente exclusivo, eu acho. 669 00:29:21,781 --> 00:29:23,280 Se eu fosse para executar esse pedaço de código. 670 00:29:23,280 --> 00:29:26,200 E então vamos apenas dizer, I introduzido o grau de 95. 671 00:29:26,200 --> 00:29:30,360 Então 95 está agora armazenado na o int chamado grau. 672 00:29:30,360 --> 00:29:33,610 >> E assim C é uma linguagem que sobe cima para baixo, 673 00:29:33,610 --> 00:29:36,000 por isso vai para sempre correr até a parte inferior. 674 00:29:36,000 --> 00:29:39,420 Então ele vai vir aqui, ler se grau é maior do que ou igual a 90, 675 00:29:39,420 --> 00:29:42,850 printf (), você tem um A. Ótimo, eu ter um 95, que é maior do que 90. 676 00:29:42,850 --> 00:29:44,866 Vai para imprimir, Eu tenho um A. Vai 677 00:29:44,866 --> 00:29:48,850 para dar uma olhada neste caso, vai dizer, a cavidade 95 é também maior do que 80, 678 00:29:48,850 --> 00:29:52,970 ele vai imprimir você também tem um got uma marca de exclamação B, e assim por diante e assim por 679 00:29:52,970 --> 00:29:53,690 diante. 680 00:29:53,690 --> 00:29:55,890 >> Assim como todos nós podemos ver, este é um erro comum 681 00:29:55,890 --> 00:30:00,760 que pode ocorrer quando estamos escrever código para olhar para fora. 682 00:30:00,760 --> 00:30:05,430 Qualquer pessoa, qualquer dúvida sobre por que isso estava acontecendo? 683 00:30:05,430 --> 00:30:05,930 Ótimo. 684 00:30:05,930 --> 00:30:08,920 685 00:30:08,920 --> 00:30:09,440 ESTÁ BEM. 686 00:30:09,440 --> 00:30:12,110 >> Então, como podemos corrigir isso, é, obviamente, a próxima questão lógica. 687 00:30:12,110 --> 00:30:16,290 Bem, nós temos estes bonito coisas chamadas se else if mais 688 00:30:16,290 --> 00:30:18,010 se else. 689 00:30:18,010 --> 00:30:22,230 Assim você pode ver, se você queria para mudar esse problema, 690 00:30:22,230 --> 00:30:25,260 você queria fazer cada um dos condições mutuamente exclusivas, 691 00:30:25,260 --> 00:30:26,860 você gostaria de acrescentar uma outra coisa ... se comunicado. 692 00:30:26,860 --> 00:30:30,068 >> E estes course-- de pensar neles como escadas, ou como degraus na ladder-- 693 00:30:30,068 --> 00:30:34,050 você pode adicionar como muitos deles, como você quer para tantas condições como você quer. 694 00:30:34,050 --> 00:30:36,790 Então, aqui, se eu introduzido grau a ser 95. 695 00:30:36,790 --> 00:30:39,479 Se a nota é maior do que 95, printf (), eu tenho um A. Grande. 696 00:30:39,479 --> 00:30:42,020 Vai ver uma coisa ... se e vai saber, Oh não, 697 00:30:42,020 --> 00:30:43,750 Eu já executou a primeira pessoa. 698 00:30:43,750 --> 00:30:47,020 Eu sabe-- ou o primeiro se-- eu sei que Eu não tenho de olhar para qualquer um destes 699 00:30:47,020 --> 00:30:48,920 porque um deles já foi verdade. 700 00:30:48,920 --> 00:30:50,410 Por isso, vai a correr a partir de cima para baixo. 701 00:30:50,410 --> 00:30:53,650 Assim que o primeiro é verdadeira, então ele vai pular sobre todo o resto 702 00:30:53,650 --> 00:30:54,675 dos mais ... ifs. 703 00:30:54,675 --> 00:30:55,550 Isso faz sentido? 704 00:30:55,550 --> 00:30:57,841 Assim, desta forma você tem diferentes níveis de verificação 705 00:30:57,841 --> 00:31:01,090 e logo que um deles é falso, o resto são também, eles não vão mesmo verificar. 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 Tudo certo. 710 00:31:08,180 --> 00:31:11,180 >> Portanto, este é um exemplo de uma diferente tipo de instrução condicional 711 00:31:11,180 --> 00:31:15,250 vemos com menos frequência, mas vamos vê-los e usá-los. 712 00:31:15,250 --> 00:31:18,120 E eles são muitas vezes mais eficiente para determinados casos. 713 00:31:18,120 --> 00:31:20,020 Então nós temos o que é chamado uma instrução switch. 714 00:31:20,020 --> 00:31:25,140 Portanto, antes de nós cobrimos o que é uma outra coisa declaração, um else if .... 715 00:31:25,140 --> 00:31:27,790 Aqui, nós temos o que são chamado declarações switch. 716 00:31:27,790 --> 00:31:31,100 >> Assim, quando usamos interruptor declarações é a chave? 717 00:31:31,100 --> 00:31:34,090 Assim, em uma instrução switch, você normalmente, tipicamente, na verdade você 718 00:31:34,090 --> 00:31:38,010 podem só inteiros de entrada para o seu variável que você está verificando. 719 00:31:38,010 --> 00:31:42,390 Então, se eu queria verificar para ver Se um determinado number-- por exemplo 720 00:31:42,390 --> 00:31:43,720 uma nota, se eu tenho um 90. 721 00:31:43,720 --> 00:31:48,190 Eu quero-o para ver se isso é um A, B, ou C. Eu poderia ter um caso aqui. 722 00:31:48,190 --> 00:31:50,840 No entanto, o caso tem para ser mais constante. 723 00:31:50,840 --> 00:31:53,170 >> Portanto, neste sentido, o interruptor declaração só pode 724 00:31:53,170 --> 00:31:55,290 vá para a igualdade de dois números. 725 00:31:55,290 --> 00:31:57,242 Ele não verifica para qualquer outra coisa. 726 00:31:57,242 --> 00:31:59,950 Então, isso é algo a ser muito cuidado de quando você está usando isso. 727 00:31:59,950 --> 00:32:04,810 Então, aqui, se eu queria verificar para ver se a minha nota de 90 é igual a 90 ou 80 728 00:32:04,810 --> 00:32:08,500 ou 70 ou 60, e em seguida, imprimir o grau correspondente, 729 00:32:08,500 --> 00:32:11,420 Eu seria capaz de escrever que em uma declaração switch. 730 00:32:11,420 --> 00:32:15,120 >> Então ele vai vir aqui, verificação é este número inteiro igual a este constante? 731 00:32:15,120 --> 00:32:17,030 Se não, ele vai pular. 732 00:32:17,030 --> 00:32:19,880 É igual a constante dois, e assim por diante e assim por diante, 733 00:32:19,880 --> 00:32:22,390 até atingir o padrão, se nenhum deles são iguais. 734 00:32:22,390 --> 00:32:24,590 Assim que um deles é definido para ser igual, 735 00:32:24,590 --> 00:32:27,040 ele vai fazer isso linha de código e pausa. 736 00:32:27,040 --> 00:32:30,990 O que significa que vai bater esse correr, quebrar, e simplesmente 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ão, nesse sentido o tipo de funções como um if else if else if. 739 00:32:37,550 --> 00:32:40,830 >> Então aqui está um concreto exemplo para vocês. 740 00:32:40,830 --> 00:32:46,140 Então vamos supor que eu queria criar uma variável chamada ano fundada. 741 00:32:46,140 --> 00:32:50,230 E eu quero pedir ao utilizador para introduzir o ano em que a escola foi fundada. 742 00:32:50,230 --> 00:32:53,300 Então, eu posso criar uma instrução switch aqui. 743 00:32:53,300 --> 00:32:56,650 E vamos apenas dizer, eu input 1636. 744 00:32:56,650 --> 00:33:01,120 >> Este código aqui vai ver interruptor ano, fundou o que equivale a 1.636. 745 00:33:01,120 --> 00:33:03,940 Vai ver o caso 1636, oh aqueles são iguais, 746 00:33:03,940 --> 00:33:06,230 printf () não Caso você seja naquela escola para o norte? 747 00:33:06,230 --> 00:33:08,770 Porque nós supor que não fazer aqui se eles vão para Harvard, 748 00:33:08,770 --> 00:33:10,380 quebrar e pular para o final. 749 00:33:10,380 --> 00:33:14,090 >> Se eu fosse a entrada de 1701, que Eu suponho que todos nós de entrada, 750 00:33:14,090 --> 00:33:17,500 seria ignorar este caso, vir até dois 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 Quebrar, pular para o final. 753 00:33:21,360 --> 00:33:25,130 Senão você provavelmente está a tomar este curso online em que case-- impressionante bem-vindo 754 00:33:25,130 --> 00:33:29,020 para Yale-- está indo para ir para o impressão padrão, Olá Internet! 755 00:33:29,020 --> 00:33:29,870 E quebrar. 756 00:33:29,870 --> 00:33:30,466 Sim. 757 00:33:30,466 --> 00:33:32,090 >> ALTO-FALANTE 12: Pode-se usar mais em vez de padrão lá? 758 00:33:32,090 --> 00:33:34,550 >> ANDI Peng: Não, porque o forma que esta função inteira 759 00:33:34,550 --> 00:33:39,170 interruptor é construído, a sintaxe você precisa usar é case default. 760 00:33:39,170 --> 00:33:42,400 É como se a pessoa se, este é um case default. Sim. 761 00:33:42,400 --> 00:33:45,650 ALTO-FALANTE 13: Você talvez já disse isso, mas você pode ter mais de dois casos? 762 00:33:45,650 --> 00:33:48,066 ANDI Peng: Sim, você poderia tem o maior número de casos, como você deseja. 763 00:33:48,066 --> 00:33:50,050 Pense nisso como apenas como adicionando em infinitamente. 764 00:33:50,050 --> 00:33:52,396 >> ALTO-FALANTE 14: Se você comutada 1701 com 1636, 765 00:33:52,396 --> 00:33:54,187 ele realmente não faz um direito diferença? 766 00:33:54,187 --> 00:33:55,770 Ele só vai estar verificando para isso. 767 00:33:55,770 --> 00:33:56,900 >> ANDI Peng: Isso é um pergunta muito boa. 768 00:33:56,900 --> 00:33:58,880 E nós vamos tocar em cima isso mais tarde, mas apenas 769 00:33:58,880 --> 00:34:01,160 sei que é a chave declaração é infinitely-- é 770 00:34:01,160 --> 00:34:03,536 mais eficiente do que a que e se else if porque opera 771 00:34:03,536 --> 00:34:06,660 utilizando um tipo diferente de função que permite que você, para, essencialmente, a apenas 772 00:34:06,660 --> 00:34:08,790 saltar directamente para o caso você precisa ser no. 773 00:34:08,790 --> 00:34:10,547 Sim. 774 00:34:10,547 --> 00:34:11,255 ALTO-FALANTE 14: Cool. 775 00:34:11,255 --> 00:34:11,754 Obrigado. 776 00:34:11,754 --> 00:34:12,526 ANDI Peng: Sim 777 00:34:12,526 --> 00:34:16,687 >> ALTO-FALANTE 14: E você não podia fazer como casos e maior que. 778 00:34:16,687 --> 00:34:17,270 ANDI Peng: Não. 779 00:34:17,270 --> 00:34:19,860 Então, isso é o que está limitando sobre a instrução switch é que você tem 780 00:34:19,860 --> 00:34:21,564 ter Constantes só, apenas números inteiros. 781 00:34:21,564 --> 00:34:22,064 Sim. 782 00:34:22,064 --> 00:34:25,179 783 00:34:25,179 --> 00:34:25,820 ESTÁ BEM. 784 00:34:25,820 --> 00:34:28,659 >> Então, isso é algo que você caras vão encontrar menos frequência de, 785 00:34:28,659 --> 00:34:32,280 mas eu só queria introduzi-lo no caso. 786 00:34:32,280 --> 00:34:36,210 Temos aqui o que é chamado um operador ternário. 787 00:34:36,210 --> 00:34:39,370 Onde essencialmente, é apenas como um if compilados em uma linha. 788 00:34:39,370 --> 00:34:42,630 Aqui, eu vou para a próxima linha, a próxima página, porque é mais fácil de ver. 789 00:34:42,630 --> 00:34:44,860 >> Então, todos nós já vimos esse direito? 790 00:34:44,860 --> 00:34:46,110 Isso é muito fácil de seguir. 791 00:34:46,110 --> 00:34:51,290 Se eu quisesse fazer uma variável chamada String com o nome s, se um certo número 792 00:34:51,290 --> 00:34:54,770 Dou-lhe está a menos de 100, I deseja atribuir baixo para a seqüência, 793 00:34:54,770 --> 00:34:57,240 outra coisa que eu quero atribuir elevada. 794 00:34:57,240 --> 00:35:01,370 >> Este aqui está fazendo exatamente a mesma coisa esses oito linhas de código estão fazendo. 795 00:35:01,370 --> 00:35:03,600 Então aqui eu quero criar uma variável string. 796 00:35:03,600 --> 00:35:08,520 E esta é a condição que eu sou a verificação, se um número é inferior a 100, 797 00:35:08,520 --> 00:35:12,750 em seguida, você atribuir o valor da baixa, outra coisa atribuir o valor de alta. 798 00:35:12,750 --> 00:35:15,802 >> Esses slides será on-line, não se preocupe se vocês não recebem esse baixo. 799 00:35:15,802 --> 00:35:18,510 Esta é apenas uma maneira mais simples, a mais forma eficiente de código escrito. 800 00:35:18,510 --> 00:35:21,290 801 00:35:21,290 --> 00:35:21,810 ESTÁ BEM. 802 00:35:21,810 --> 00:35:25,190 >> Então agora nós vamos digite o que, para a maioria das pessoas 803 00:35:25,190 --> 00:35:28,660 são como um muito, muito confuso coisa a pensar em primeiro lugar. 804 00:35:28,660 --> 00:35:30,226 A seco de al. 805 00:35:30,226 --> 00:35:32,600 Então, hoje, nós estamos indo falar cerca de três tipos de loops. 806 00:35:32,600 --> 00:35:34,890 Nós vamos começar com um tempo loop, em seguida, falar sobre um loop Do While, 807 00:35:34,890 --> 00:35:36,740 e, em seguida, falar sobre para loops. 808 00:35:36,740 --> 00:35:40,010 >> Assim, essencialmente, para a mais aprendizes visuais lá fora, 809 00:35:40,010 --> 00:35:44,410 temos, essencialmente, uma gráfica descrição do que um loop while faz. 810 00:35:44,410 --> 00:35:48,290 Assim, em uma programação, você começaria e entrar no ciclo em um determinado ponto. 811 00:35:48,290 --> 00:35:49,470 Você verifica uma condição. 812 00:35:49,470 --> 00:35:52,165 E se a condição for verdadeira, você executar o código dentro. 813 00:35:52,165 --> 00:35:53,790 E você voltar ao redor e você vá. 814 00:35:53,790 --> 00:35:57,190 Se ainda assim é verdade que você continuar correndo este código ao redor e em torno de um loop. 815 00:35:57,190 --> 00:36:00,970 >> No entanto, o que segundo a condição se torna falsa, 816 00:36:00,970 --> 00:36:02,739 você vai quebrar e acabar com o loop. 817 00:36:02,739 --> 00:36:05,030 E isso é essencialmente o sintaxe que você vai usar. 818 00:36:05,030 --> 00:36:08,250 Enquanto uma determinada condição é verdade fazer isso, se não é verdade, 819 00:36:08,250 --> 00:36:12,920 você vai pular para o final e avançar com o seu programa. 820 00:36:12,920 --> 00:36:13,690 ESTÁ BEM. 821 00:36:13,690 --> 00:36:17,250 >> Alguém tem um exemplo sobre o que pode ocorrer potencialmente 822 00:36:17,250 --> 00:36:19,160 se eu tentar executar esse pedaço de código? 823 00:36:19,160 --> 00:36:22,470 By the way, que é SCAZ SAJ--, Andi, Jason-- vamos assinar nossos e-mails, 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 ESTÁ BEM. 827 00:36:26,500 --> 00:36:29,829 >> Alguém tem um exemplo, ou ter uma idéia sobre o que isto deve imprimir? 828 00:36:29,829 --> 00:36:30,870 Tipo de uma pergunta capciosa. 829 00:36:30,870 --> 00:36:34,550 830 00:36:34,550 --> 00:36:39,380 Então, aqui, lembre-se a condição estamos verificando é ao mesmo tempo verdadeiro. 831 00:36:39,380 --> 00:36:42,840 Então, enquanto isso for verdade, é indo para imprimir, eu amo SAJ! 832 00:36:42,840 --> 00:36:48,460 Existe algum ponto em que estaríamos mudar isto para outra forma de alguma coisa? 833 00:36:48,460 --> 00:36:49,050 Sem direito? 834 00:36:49,050 --> 00:36:51,470 >> Então, aqui, temos encontrou o que é, provavelmente, 835 00:36:51,470 --> 00:36:54,310 vai ser incomodando muita seus programas, o loop infinito. 836 00:36:54,310 --> 00:36:56,268 Você vai achar que se você executar esse pedaço de código, 837 00:36:56,268 --> 00:36:58,160 ele só vai manter impressão, Eu amo SAJ! 838 00:36:58,160 --> 00:37:00,701 Enquanto nós apreciamos o apoio, nós não queremos seus computadores 839 00:37:00,701 --> 00:37:02,910 a falhar, porque você manter a impressão Eu amo SAJ! 840 00:37:02,910 --> 00:37:05,320 >> Então, por favor, por favor, evitar o ciclo infinito 841 00:37:05,320 --> 00:37:07,320 porque ele nunca vai avaliar para false 842 00:37:07,320 --> 00:37:08,780 e você nunca vai para sair do ciclo. 843 00:37:08,780 --> 00:37:10,530 E você 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 ESTÁ BEM. 846 00:37:13,694 --> 00:37:15,610 O segundo tipo de loop vamos falar hoje 847 00:37:15,610 --> 00:37:17,580 é o loop Do While, fazer enquanto loop. 848 00:37:17,580 --> 00:37:20,580 E ele é chamado um loop Do While porque você tem um fazer e quando. 849 00:37:20,580 --> 00:37:24,390 Então, isso é bastante semelhante ao de um tempo loop, mas um pouco diferente. 850 00:37:24,390 --> 00:37:27,620 Aqui, você vai fazer tudo o que está dentro deste 851 00:37:27,620 --> 00:37:29,747 enquanto uma determinada condição é verdadeira. 852 00:37:29,747 --> 00:37:32,580 Então, se eu fosse C eo computador que eu sou correndo por este pedaço de código, 853 00:37:32,580 --> 00:37:33,880 Eu dou uma olhada no topo. 854 00:37:33,880 --> 00:37:36,890 Eu ir para C, digo eu faça tal coisa. 855 00:37:36,890 --> 00:37:40,550 E então eu vá, enquanto este É verdade, eu tenho que repeti-la. 856 00:37:40,550 --> 00:37:42,750 Mas enquanto isso é falso, então eu seguir em frente 857 00:37:42,750 --> 00:37:44,700 e eu nunca voltar para esse ciclo novamente. 858 00:37:44,700 --> 00:37:48,360 >> Alguém pode tomar uma facada em que a diferença 859 00:37:48,360 --> 00:37:52,130 entre esse loop e aquele que apenas olhou para praticamente. 860 00:37:52,130 --> 00:37:52,717 Sim. 861 00:37:52,717 --> 00:37:55,050 ALTO-FALANTE 15: A condição vem depois, em vez de antes? 862 00:37:55,050 --> 00:37:55,841 ANDI Peng: Exatamente. 863 00:37:55,841 --> 00:37:57,984 Então ela disse que a condição vem depois, não antes. 864 00:37:57,984 --> 00:38:00,400 Em última análise, a diferença entre este eo loop while 865 00:38:00,400 --> 00:38:03,597 é que você está indo só para fazer tudo o que está dentro deste, independentemente da 866 00:38:03,597 --> 00:38:06,430 ou não a sua condição é verdade, e, em seguida, verificar a condição. 867 00:38:06,430 --> 00:38:08,304 Portanto, neste caso, você é always-- desta forma, 868 00:38:08,304 --> 00:38:11,240 você está sempre se certificando tudo o que está dentro é executado pelo menos 869 00:38:11,240 --> 00:38:14,230 uma vez antes de verificar para ver se você quiser que ele seja executado novamente. 870 00:38:14,230 --> 00:38:18,040 >> E aqui está um exemplo de quando iria utilizá-lo. 871 00:38:18,040 --> 00:38:22,570 Assim, por exemplo, se eu quisesse ter uma variável do tipo int chamado idade, 872 00:38:22,570 --> 00:38:25,640 e eu quero pedir- o usuário para a sua idade, 873 00:38:25,640 --> 00:38:27,910 Eu vou fazer printf () Qual a sua idade? 874 00:38:27,910 --> 00:38:30,330 idade = GetInt (), que é avisar o usuário. 875 00:38:30,330 --> 00:38:32,140 >> E algumas pessoas vão ser realmente irritante. 876 00:38:32,140 --> 00:38:34,931 E você não quer erros em seu programa de introduzir alguém como, 877 00:38:34,931 --> 00:38:36,680 oh Eu sou negativo 4 anos de idade ou qualquer outra coisa. 878 00:38:36,680 --> 00:38:39,900 No caso, se os que fazer isso, este avalia 879 00:38:39,900 --> 00:38:43,150 a verdade, o que significa que eu vou tem que manter a voltar e fazer isso. 880 00:38:43,150 --> 00:38:45,310 Então, isso vai mantê- re-solicitando que o usuário 881 00:38:45,310 --> 00:38:47,960 para dar-lhe como um verdadeiro número da idade e é 882 00:38:47,960 --> 00:38:51,930 vai manter vai voltar e refazer -lo até que eles dão-lhe uma verdadeira idade 883 00:38:51,930 --> 00:38:56,900 maior do que um, ou não zero. 884 00:38:56,900 --> 00:38:58,020 >> Então dica, dica. 885 00:38:58,020 --> 00:39:02,263 Isto será muito, muito útil para um de seus problemas PSet. 886 00:39:02,263 --> 00:39:04,155 Sim. 887 00:39:04,155 --> 00:39:05,580 >> ALTO-FALANTE 16: Whoops, desculpe. 888 00:39:05,580 --> 00:39:06,288 >> ANDI Peng: Yep. 889 00:39:06,288 --> 00:39:09,424 >> ALTO-FALANTE 16: Não existem, ser um idiota, mas-- 890 00:39:09,424 --> 00:39:10,340 ANDI Peng: Não se preocupe. 891 00:39:10,340 --> 00:39:11,990 ALTO-FALANTE 16: --are lá regras diferentes aqui, 892 00:39:11,990 --> 00:39:13,810 ou você simplesmente esquecer para colocar a citação? 893 00:39:13,810 --> 00:39:14,250 >> ANDI Peng: Oh Yeah. 894 00:39:14,250 --> 00:39:15,530 Desculpe, isso é totalmente o meu mau. 895 00:39:15,530 --> 00:39:17,100 Isso foi definitivamente suposto ser uma citação. 896 00:39:17,100 --> 00:39:17,690 Boa pegada. 897 00:39:17,690 --> 00:39:18,800 Isso não teria executado. 898 00:39:18,800 --> 00:39:22,070 899 00:39:22,070 --> 00:39:22,830 ESTÁ BEM. 900 00:39:22,830 --> 00:39:26,160 >> Assim, o último tipo de loop vamos falar sobre e, em última instância, tipo dos mais 901 00:39:26,160 --> 00:39:28,854 complexo é o loop for. 902 00:39:28,854 --> 00:39:30,770 Não se preocupe se você não fizer isso sabe o que isso significa. 903 00:39:30,770 --> 00:39:32,061 É bastante confuso no início. 904 00:39:32,061 --> 00:39:33,640 Nós vamos passar por cima de um exemplo. 905 00:39:33,640 --> 00:39:37,040 >> Tudo o que acontece em um loop é que você tem três declarações 906 00:39:37,040 --> 00:39:38,380 que você está indo para incluir. 907 00:39:38,380 --> 00:39:42,130 Assim, para uma determinada coisa, você é indo para inicializar uma variável. 908 00:39:42,130 --> 00:39:45,280 Você está indo para adicionar a condição de que este ciclo vai continuar correndo. 909 00:39:45,280 --> 00:39:47,790 E, em seguida, no final da loop, você está indo para atualizá-lo. 910 00:39:47,790 --> 00:39:50,248 Você pode atualizar a variável que você deseja acompanhar. 911 00:39:50,248 --> 00:39:52,530 Então, nós geralmente usam loops para quando nós 912 00:39:52,530 --> 00:39:55,390 deseja executar um loop para uma certa quantidade de tempos 913 00:39:55,390 --> 00:39:58,900 e já sabemos, Oh Eu quero esse loop para executar como 10 vezes, 914 00:39:58,900 --> 00:40:03,060 então você fazer-- vou passar por cima um exemplo na página seguinte. 915 00:40:03,060 --> 00:40:07,830 >> Então, aqui por exemplo, no Scratch, se você queria algo para repetir 10 vezes, 916 00:40:07,830 --> 00:40:10,790 tudo o que tinha para dizer era: Repita 10 vezes Eu amo SAJ! 917 00:40:10,790 --> 00:40:15,260 que é uma forma mais aceitável demonstração de apoio para nós 918 00:40:15,260 --> 00:40:17,120 ao invés de o ciclo infinito. 919 00:40:17,120 --> 00:40:19,920 Aqui, como você faria transição para C e gravação 920 00:40:19,920 --> 00:40:26,040 que é para int-- eu estou indo para criar ou declarar uma variável do tipo int chamado i. 921 00:40:26,040 --> 00:40:30,089 Eu estou indo para inicializar que a 0, assim i = 0; 922 00:40:30,089 --> 00:40:31,630 e esta vai ser a minha condição. 923 00:40:31,630 --> 00:40:33,860 Então eu for inferior a 10. 924 00:40:33,860 --> 00:40:36,096 E, em seguida, no end-- a última declaração que você é 925 00:40:36,096 --> 00:40:38,710 vai ter é a atualização de o que acontece com a variável i 926 00:40:38,710 --> 00:40:40,206 no final do seu ciclo for. 927 00:40:40,206 --> 00:40:42,830 Então é meio confuso, porque diferentes partes desta linha 928 00:40:42,830 --> 00:40:44,871 estão acontecendo em diferentes tipos de Loop. 929 00:40:44,871 --> 00:40:46,746 Mas eu vou passar por cima de um exemplo de pseudocódigo que 930 00:40:46,746 --> 00:40:50,360 e talvez explicar esta apenas um pouco melhor. 931 00:40:50,360 --> 00:40:51,500 >> Então aqui. 932 00:40:51,500 --> 00:40:52,929 Esse é o ciclo que acabamos de ver. 933 00:40:52,929 --> 00:40:55,470 Essencialmente no pseudocódigo, o que está acontecendo neste programa, 934 00:40:55,470 --> 00:40:57,940 é o primeiro que eu estou criando i, inicializando-lo a 0. 935 00:40:57,940 --> 00:41:00,440 Estou verificando para ver se i é inferior a 10, em cujo caso 936 00:41:00,440 --> 00:41:02,840 a primeira vez que é porque 0 é menor que 10. 937 00:41:02,840 --> 00:41:04,727 Assim, o ciclo está indo para executar. 938 00:41:04,727 --> 00:41:06,310 E então eu estou indo para imprimir esta linha. 939 00:41:06,310 --> 00:41:11,240 E, em seguida, no fim da linha, direita aqui, eu vou fazer incremento i, i ++, 940 00:41:11,240 --> 00:41:13,370 tudo o que é meio incrementá-lo por um. 941 00:41:13,370 --> 00:41:15,460 >> Então eu agora é 1. 942 00:41:15,460 --> 00:41:17,960 Porque era uma vez 0, se eu incrementá-lo é, é agora um. 943 00:41:17,960 --> 00:41:19,610 E então eu vou voltar para o início do ciclo 944 00:41:19,610 --> 00:41:20,730 e eu verificar o estado. 945 00:41:20,730 --> 00:41:22,080 É a condição ainda é verdade? 946 00:41:22,080 --> 00:41:24,030 Sim, 1 é ainda inferior a 10. 947 00:41:24,030 --> 00:41:27,370 Então ele vai para imprimir isso de novo, ir e, em seguida, incrementa i, e verifique 948 00:41:27,370 --> 00:41:29,180 a condição continuamente, de forma contínua, 949 00:41:29,180 --> 00:41:33,290 até que, eventualmente, obter para o ponto onde i é 10. 950 00:41:33,290 --> 00:41:36,300 >> Você está indo para imprimir isso 10 vezes e então eu vai equivaler a 10. 951 00:41:36,300 --> 00:41:37,800 Você está indo para verificar a condição. 952 00:41:37,800 --> 00:41:38,760 10 é inferior a 10? 953 00:41:38,760 --> 00:41:40,370 Não, isso é falso. 954 00:41:40,370 --> 00:41:43,020 Assim, este circuito não vai para correr, ele vai quebrar, 955 00:41:43,020 --> 00:41:45,040 e você está indo para continuar com o seu código. 956 00:41:45,040 --> 00:41:47,550 >> Então, como vocês podem ver, este é realmente um grande exemplo 957 00:41:47,550 --> 00:41:53,110 de um loop que você pode programar em que é executado por um determinado período de tempo. 958 00:41:53,110 --> 00:41:54,457 Cada um claro? 959 00:41:54,457 --> 00:41:54,956 Sim. 960 00:41:54,956 --> 00:41:59,060 >> ALTO-FALANTE 17: Que tal incremento exponencialmente, é que é diferente de codificação? 961 00:41:59,060 --> 00:42:02,060 >> ANDI Peng: Você can-- vamos sobre isso no próximo slide. 962 00:42:02,060 --> 00:42:03,350 Boa pergunta. 963 00:42:03,350 --> 00:42:05,910 É anyone-- antes de passar on-- qualquer pessoa em todo confuso, 964 00:42:05,910 --> 00:42:07,640 porque este é um conceito muito difícil. 965 00:42:07,640 --> 00:42:09,510 Não se preocupe, se you're-- OK. 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 >> Tudo certo. 969 00:42:13,490 --> 00:42:14,610 Apenas um slide geral. 970 00:42:14,610 --> 00:42:18,020 Este loop while está fazendo o exatamente a mesma coisa para o laço era. 971 00:42:18,020 --> 00:42:19,631 É apenas escritas de forma diferente. 972 00:42:19,631 --> 00:42:22,130 Vocês podem ler os slides em sua conveniência mais tarde. 973 00:42:22,130 --> 00:42:24,880 Mas só sei que há múltiplos maneiras de escrever a mesma coisa 974 00:42:24,880 --> 00:42:28,300 acontecer com diferentes ansas. 975 00:42:28,300 --> 00:42:28,800 ESTÁ BEM. 976 00:42:28,800 --> 00:42:32,380 >> Então, agora nós começamos na questão do que se temos um loop dentro de um loop. 977 00:42:32,380 --> 00:42:35,810 Estamos entrando em reais Inception tipo coisas aqui. 978 00:42:35,810 --> 00:42:40,640 Quando você quer fazer as coisas múltipla vezes dentro de outras coisas 979 00:42:40,640 --> 00:42:44,129 que fazer as coisas várias vezes, quer o que é chamado um laço for aninhado. 980 00:42:44,129 --> 00:42:47,420 Para aqueles de vocês que primeiro ver isso e ficar muito confuso, tudo o que estamos fazendo aqui 981 00:42:47,420 --> 00:42:50,580 está a ter um loop onde temos uma variável de linha. 982 00:42:50,580 --> 00:42:54,500 Mas dentro dela, temos também um outro loop de uma coluna variável chamada. 983 00:42:54,500 --> 00:42:58,560 E eu sugiro a todos vocês que estão confusos a primeira manter 984 00:42:58,560 --> 00:43:00,310 track-- desenhar isso, chamar a isso. 985 00:43:00,310 --> 00:43:03,000 Não tente justa razão através dele, retirá-la. 986 00:43:03,000 --> 00:43:06,630 >> Na sua cabeça, neste pedaço de papel, ou o que quer, linha de escrita, 987 00:43:06,630 --> 00:43:08,614 acompanhar o que linha é igual a. 988 00:43:08,614 --> 00:43:10,780 Escrever coluna, manter o controle da coluna que é igual a. 989 00:43:10,780 --> 00:43:13,490 E acompanhar o que é imprimindo com cada iteração. 990 00:43:13,490 --> 00:43:16,320 Cada iteração deste ciclo, toda iteração do laço maior que, 991 00:43:16,320 --> 00:43:17,820 só continuar a seguir a lógica. 992 00:43:17,820 --> 00:43:20,190 E eu garanto que você, você vai adorar o que você vê, 993 00:43:20,190 --> 00:43:24,307 porque é também muito aplicável para seus conjuntos 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 Tudo certo. 997 00:43:28,000 --> 00:43:30,723 Então, a coisa mais importante que vocês são, provavelmente, todos 998 00:43:30,723 --> 00:43:32,400 pensando agora, são seu problema Definir 1s, 999 00:43:32,400 --> 00:43:33,650 que são devidos quinta-feira / sexta-feira. 1000 00:43:33,650 --> 00:43:36,890 1001 00:43:36,890 --> 00:43:39,710 >> Em seu programa water.c, dica você vai ter 1002 00:43:39,710 --> 00:43:41,590 para solicitar ao usuário para uma entrada. 1003 00:43:41,590 --> 00:43:43,640 Dentro de seu programa mario.c você vai ter 1004 00:43:43,640 --> 00:43:46,431 para usar um laço for aninhado, que é um loop dentro de um loop for, 1005 00:43:46,431 --> 00:43:50,247 para imprimir um bloco de pirâmide, essencialmente como o que Mario tem que saltar através de. 1006 00:43:50,247 --> 00:43:53,330 E, em seguida, dentro de sua greedy-- ou talvez Tornar a mudança, se algum de vocês 1007 00:43:53,330 --> 00:43:55,740 já ouviram falar de isso-- você vai ter que ser muito 1008 00:43:55,740 --> 00:43:58,160 cuidado com valores de ponto flutuante primeiros. 1009 00:43:58,160 --> 00:44:01,860 Lembre decimais flutuantes e inteiros não são a mesma coisa. 1010 00:44:01,860 --> 00:44:03,620 Mantenha o controle de qual é qual. 1011 00:44:03,620 --> 00:44:05,953 E você está indo para usar instruções condicionais, também. 1012 00:44:05,953 --> 00:44:09,070 1013 00:44:09,070 --> 00:44:10,940 >> Tudo bem, última coisa. 1014 00:44:10,940 --> 00:44:12,770 Eu tenho um par de minutos do fim. 1015 00:44:12,770 --> 00:44:13,460 Style. 1016 00:44:13,460 --> 00:44:19,320 Então, isso é algo que não faz na verdade, a efectuar a eficiência, 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 No entanto, isso nos afeta como seus niveladoras, como seus leitores. 1019 00:44:24,380 --> 00:44:27,290 Efetua-se, se você estiver tentando encontrar um problema. 1020 00:44:27,290 --> 00:44:30,700 Ela afeta a legibilidade do código. 1021 00:44:30,700 --> 00:44:34,070 >> Então, estilo, como quando você está tentando estilizar um ensaio para Inglês, se você 1022 00:44:34,070 --> 00:44:36,070 não têm parágrafos, você tem tudo tipo 1023 00:44:36,070 --> 00:44:39,190 de misturados em uma linha, ele faz com que seja muito difícil para qualquer um 1024 00:44:39,190 --> 00:44:42,620 para ler o seu ensaio, mesmo se seus pontos são logicamente som. 1025 00:44:42,620 --> 00:44:44,390 Mesma coisa na programação. 1026 00:44:44,390 --> 00:44:47,910 Você pode ter horrivelmente obscuro código que SCAZ vai cobrir, 1027 00:44:47,910 --> 00:44:49,660 e ainda pode executar e função. 1028 00:44:49,660 --> 00:44:53,110 Mas para nós, como seus assistentes técnicos encantadores, que irão estar lendo e avaliando seus Série de Exercícios, 1029 00:44:53,110 --> 00:44:54,460 que não é muito agradável. 1030 00:44:54,460 --> 00:44:56,859 >> Então, por favor, por amor de nós e de si mesmo, 1031 00:44:56,859 --> 00:44:58,900 quando você está tentando consertar um problema no seu código, 1032 00:44:58,900 --> 00:45:00,774 e você está tentando ler o seu próprio código, faça 1033 00:45:00,774 --> 00:45:03,910 se você seguir algumas convenções que nós vamos passar por cima. 1034 00:45:03,910 --> 00:45:04,510 >> Então, em primeiro lugar. 1035 00:45:04,510 --> 00:45:07,070 Dê suas variáveis ​​nomes significativos. 1036 00:45:07,070 --> 00:45:11,450 Se você deseja armazenar um número inteiro chamado de idade, por favor, nomeie-idade. 1037 00:45:11,450 --> 00:45:12,875 Não nome dele altura. 1038 00:45:12,875 --> 00:45:14,750 Quando você está tentando armazenar uma era na altura, 1039 00:45:14,750 --> 00:45:16,722 ele faz tudo muito confuso para nós. 1040 00:45:16,722 --> 00:45:17,930 Nós não gostamos de ser confundido. 1041 00:45:17,930 --> 00:45:19,180 Você não gosta de ser confundido. 1042 00:45:19,180 --> 00:45:20,350 Ninguém gosta de ser confundido. 1043 00:45:20,350 --> 00:45:23,100 Se você estiver indo para criar algo, nomeá-la algo significativo. 1044 00:45:23,100 --> 00:45:26,440 >> No entanto, em loop, single variáveis ​​de caráter são geralmente bem. 1045 00:45:26,440 --> 00:45:31,350 E no loop for, se você quiser apenas i, e j, k, sinta-se livre para apenas fazer isso. 1046 00:45:31,350 --> 00:45:32,670 >> Consistente inicialização. 1047 00:45:32,670 --> 00:45:33,770 Então, o que isso significa? 1048 00:45:33,770 --> 00:45:37,600 Isso significa que, tecnicamente, teoricamente, você pode iniciar e criar 1049 00:45:37,600 --> 00:45:40,140 múltiplas variáveis ​​na mesma linha. 1050 00:45:40,140 --> 00:45:42,820 Assim, por exemplo, posso criar um inteiro chamado scaz_age, 1051 00:45:42,820 --> 00:45:47,110 e integer chamado andi_age = 20, e um número inteiro chamado jason_age 1052 00:45:47,110 --> 00:45:48,090 na mesma linha. 1053 00:45:48,090 --> 00:45:52,060 E eu também pode atribuir apenas um dos eles e não os outros para valores. 1054 00:45:52,060 --> 00:45:54,142 Pedimos-lhe, por favor, não faça isso. 1055 00:45:54,142 --> 00:45:57,350 Porque aqui você criou essencialmente três variáveis, mas apenas um deles 1056 00:45:57,350 --> 00:45:58,295 na verdade, tem um valor. 1057 00:45:58,295 --> 00:46:00,170 E então, quando estamos tentando ler seu código, 1058 00:46:00,170 --> 00:46:01,850 ou se você está tentando consertar um problema no seu código, 1059 00:46:01,850 --> 00:46:03,340 é muito confuso para seguir. 1060 00:46:03,340 --> 00:46:09,300 Então, só para a sua legibilidade, para nossa capacidade de leitura, não faça isso. 1061 00:46:09,300 --> 00:46:10,355 >> Chaves consistente. 1062 00:46:10,355 --> 00:46:12,980 Algumas pessoas gostam de colocar seu chaves em lugares diferentes. 1063 00:46:12,980 --> 00:46:14,100 Realmente não importa. 1064 00:46:14,100 --> 00:46:17,900 Apenas certifique-se que você é consistente em sua próprio código de onde você gostaria de colocá-los. 1065 00:46:17,900 --> 00:46:18,950 >> Espaçamento consistente. 1066 00:46:18,950 --> 00:46:22,040 Se você colocar um espaço depois de um loop for, sempre faz isso. 1067 00:46:22,040 --> 00:46:24,930 Não basta gostar tipo de fazê-lo em alguns lugares, não fazê-lo em outros. 1068 00:46:24,930 --> 00:46:26,580 Basta ser consistente. 1069 00:46:26,580 --> 00:46:29,500 >> Em segundo lugar, se alguém gostaria para ler o Guia de Estilo CS50, 1070 00:46:29,500 --> 00:46:33,230 temos oficialmente um guia de estilo que diz-lhe todas estas convenções, 1071 00:46:33,230 --> 00:46:34,890 além de mais. 1072 00:46:34,890 --> 00:46:35,530 Está online. 1073 00:46:35,530 --> 00:46:38,670 É como cs50.net/style ou algo assim. 1074 00:46:38,670 --> 00:46:40,180 Você pode google. 1075 00:46:40,180 --> 00:46:41,399 >> Consistência é a chave. 1076 00:46:41,399 --> 00:46:43,190 Então não se preocupe o que outras pessoas estão fazendo, 1077 00:46:43,190 --> 00:46:46,180 apenas certifique-se que você é consistente dentro de seu próprio código. 1078 00:46:46,180 --> 00:46:50,570 Qualquer um tem dúvidas sobre isso? 1079 00:46:50,570 --> 00:46:51,070 Sim. 1080 00:46:51,070 --> 00:46:53,370 >> ALTO-FALANTE 18: Então a coisa apropriada a ver com a inicialização é apenas 1081 00:46:53,370 --> 00:46:56,130 tê-los todos em um separado linha, é que o que você está dizendo? 1082 00:46:56,130 --> 00:46:58,850 >> ANDI Peng: Então, eu raramente isso aconteça. 1083 00:46:58,850 --> 00:47:02,230 Mas se você quiser, se você queria para ser como economia de espaço no seu código, 1084 00:47:02,230 --> 00:47:04,000 ou o que quer, você pode fazer isso. 1085 00:47:04,000 --> 00:47:07,800 Nós pedimos que você simplesmente não inicializar uma coisa e não os outros. 1086 00:47:07,800 --> 00:47:12,600 Então, se você quer fazer int scaz_age, int andi_age, int jason_age, isso é bom. 1087 00:47:12,600 --> 00:47:15,600 Só não inicializar um e não os outros é tudo. 1088 00:47:15,600 --> 00:47:18,380 1089 00:47:18,380 --> 00:47:19,904 >> Perguntas? 1090 00:47:19,904 --> 00:47:20,850 Tudo certo. 1091 00:47:20,850 --> 00:47:24,610 Vou passar a microfone, eo ponteiro laser, 1092 00:47:24,610 --> 00:47:28,862 e o bastão para SCAZ neste momento. 1093 00:47:28,862 --> 00:47:29,808 Isto é estranho. 1094 00:47:29,808 --> 00:47:32,650 1095 00:47:32,650 --> 00:47:33,200 Aqui está. 1096 00:47:33,200 --> 00:47:34,408 >> BRIAN Scassellati: Obrigado. 1097 00:47:34,408 --> 00:47:42,500 1098 00:47:42,500 --> 00:47:43,380 Como é que para o som? 1099 00:47:43,380 --> 00:47:46,420 1100 00:47:46,420 --> 00:47:47,900 O som é bom? . 1101 00:47:47,900 --> 00:47:49,220 Excelente. 1102 00:47:49,220 --> 00:47:50,350 ESTÁ BEM. 1103 00:47:50,350 --> 00:47:52,110 Então, oi a todos. 1104 00:47:52,110 --> 00:47:56,540 >> Vou tentar trabalhar com um exemplo prático com você. 1105 00:47:56,540 --> 00:48:00,850 E nós estamos indo para usar CS50 de ambiente de desenvolvimento, o que é chamado 1106 00:48:00,850 --> 00:48:03,120 o Integrated Development Environment. 1107 00:48:03,120 --> 00:48:05,145 E você já viu isso demonstrada em palestra. 1108 00:48:05,145 --> 00:48:07,520 E no Conjunto de Problemas 1, você está vai ter uma oportunidade 1109 00:48:07,520 --> 00:48:10,890 para usá-lo, e brincar com -lo, e se acostumar a ele, 1110 00:48:10,890 --> 00:48:13,640 porque nós estamos indo para usá-lo pelo resto do semestre. 1111 00:48:13,640 --> 00:48:20,350 >> Portanto, neste IDE, você tem o que parece como um navegador de arquivos muito tradicional 1112 00:48:20,350 --> 00:48:21,890 ao longo de um lado. 1113 00:48:21,890 --> 00:48:24,360 Você tem uma parte para cima topo onde você está indo 1114 00:48:24,360 --> 00:48:28,850 para ver o seu código-fonte, o seu Cfile, o código que você escreve. 1115 00:48:28,850 --> 00:48:31,880 E para baixo fundo, você vai tem uma janela de terminal 1116 00:48:31,880 --> 00:48:36,330 que você vai usar para tanto compilar seu programa 1117 00:48:36,330 --> 00:48:39,090 e para executar ou executar seu programa. 1118 00:48:39,090 --> 00:48:40,100 ESTÁ BEM. 1119 00:48:40,100 --> 00:48:46,560 >> Então, só para nos dar um pouco de fundação, em que a janela de terminal, 1120 00:48:46,560 --> 00:48:48,930 você vai ser usando um conjunto de comandos 1121 00:48:48,930 --> 00:48:53,040 que são comandos padrão em todo a maioria dos sistemas Unix ou Linux. 1122 00:48:53,040 --> 00:48:55,890 E por isso, se você já usou qualquer forma de Unix, Ubuntu, 1123 00:48:55,890 --> 00:48:59,140 ou qualquer um dos outros sabores, estes vão parecer familiares. 1124 00:48:59,140 --> 00:49:00,890 >> Se você não tiver, não se preocupe. 1125 00:49:00,890 --> 00:49:02,830 Não há nada complicado sobre eles. 1126 00:49:02,830 --> 00:49:05,330 Eles estão apenas usando um diferente sintaxe, uma nomenclatura diferente 1127 00:49:05,330 --> 00:49:07,630 convenção do que você já viu antes. 1128 00:49:07,630 --> 00:49:12,190 >> Então, para listar os arquivos dentro de um diretório particular, 1129 00:49:12,190 --> 00:49:15,310 eles vão usar um ls comando chamado, ou lista. 1130 00:49:15,310 --> 00:49:18,010 Se você quiser ver tudo com todos os detalhes, 1131 00:49:18,010 --> 00:49:21,535 você vai usar um comando argumento de linha com ls -l. 1132 00:49:21,535 --> 00:49:23,910 E isso vai lhe mostrar tudo em maior detalhe, incluindo 1133 00:49:23,910 --> 00:49:26,270 as permissões para um arquivo. 1134 00:49:26,270 --> 00:49:31,190 >> Para alterar o diretório, você vai usar o comando cd. 1135 00:49:31,190 --> 00:49:35,180 E você vai ser capaz de mudar o diretório tanto para ir para seu diretório home. 1136 00:49:35,180 --> 00:49:38,500 Isso é apenas cd tudo por em si, cd com dois 1137 00:49:38,500 --> 00:49:42,930 dots irá voltar-se uma nível para o diretório anterior. 1138 00:49:42,930 --> 00:49:46,400 E você também pode cd para um subdiretório, digitando cd 1139 00:49:46,400 --> 00:49:48,500 e o nome desse subdiretório. 1140 00:49:48,500 --> 00:49:50,540 >> Você também pode criar novos diretórios. 1141 00:49:50,540 --> 00:49:52,790 E nós estamos indo a pé através deste em apenas um minuto. 1142 00:49:52,790 --> 00:49:54,498 Mas apenas para colocar tudo na tela. 1143 00:49:54,498 --> 00:49:56,310 Para que você possa vê-los. 1144 00:49:56,310 --> 00:50:00,420 >> Você também terá a capacidade para manipular arquivos diretamente 1145 00:50:00,420 --> 00:50:02,100 a partir da linha de comando. 1146 00:50:02,100 --> 00:50:06,059 Você vai ser capaz de copiá-los, para movê-los ou removê-los, 1147 00:50:06,059 --> 00:50:07,600 isto é, efetivamente, para excluí-los. 1148 00:50:07,600 --> 00:50:10,310 1149 00:50:10,310 --> 00:50:15,350 >> O IDE CS50 lhe dá a plena poder da linha de comando argumentos. 1150 00:50:15,350 --> 00:50:20,280 E isso significa que você também pode fazer coisas muito perigosas. 1151 00:50:20,280 --> 00:50:21,560 ESTÁ BEM. 1152 00:50:21,560 --> 00:50:25,010 Por exemplo, você pode remover, ou que é de exclusão, 1153 00:50:25,010 --> 00:50:28,750 um arquivo sem pedir para uma confirmação. 1154 00:50:28,750 --> 00:50:31,820 E você pode até mesmo remover recursively-- que é 1155 00:50:31,820 --> 00:50:38,940 o traço r flag-- um todo subdiretório e todo o seu conteúdo. 1156 00:50:38,940 --> 00:50:39,660 ESTÁ BEM. 1157 00:50:39,660 --> 00:50:42,940 Eles estão listados em vermelho, porque você deve pensar "Danger" cada vez 1158 00:50:42,940 --> 00:50:45,000 você vê essas coisas. 1159 00:50:45,000 --> 00:50:45,920 ESTÁ BEM. 1160 00:50:45,920 --> 00:50:46,420 Tudo certo. 1161 00:50:46,420 --> 00:50:50,090 1162 00:50:50,090 --> 00:50:53,430 >> Agora, finalmente, as coisas que são vai ser muito valioso para você, 1163 00:50:53,430 --> 00:50:57,270 existem alguns bons truques para saber como você está navegando 1164 00:50:57,270 --> 00:50:59,190 através desta janela de terminal. 1165 00:50:59,190 --> 00:51:03,590 Primeiro, você pode limpar a tela em qualquer momento, apenas digitando em claro. 1166 00:51:03,590 --> 00:51:06,310 E você vai ver me fazer isso com bastante frequência. 1167 00:51:06,310 --> 00:51:09,990 Você também pode apenas exibir o texto de um arquivo 1168 00:51:09,990 --> 00:51:13,992 digitando mais e, em seguida, o nome do arquivo. 1169 00:51:13,992 --> 00:51:17,200 Você vai então ser capaz de rolar para trás e adiante com que apenas com a barra de espaço 1170 00:51:17,200 --> 00:51:19,010 e as setas. 1171 00:51:19,010 --> 00:51:25,450 >> Se você tem, como fizemos hoje, em palestra, um programa que está sendo executado de forma contínua 1172 00:51:25,450 --> 00:51:29,190 em loop infinito, você pode parar esse programa 1173 00:51:29,190 --> 00:51:35,160 de executar, digitando no controle, que está segurando a tecla Control-C. 1174 00:51:35,160 --> 00:51:38,360 E você pode ter que fazer isso várias vezes. 1175 00:51:38,360 --> 00:51:40,620 O computador fica muito à frente de você. 1176 00:51:40,620 --> 00:51:43,380 E às vezes você precisa dar-lhe um par de tentativas 1177 00:51:43,380 --> 00:51:46,280 antes que ela vai realmente se concretizar. 1178 00:51:46,280 --> 00:51:48,760 >> Você também será capaz de tipo através dos comandos 1179 00:51:48,760 --> 00:51:54,230 que você acabou de digitar usando a tecla para cima, tecla de seta, em seguida, a tecla de seta para baixo. 1180 00:51:54,230 --> 00:51:57,560 E o que é mais útil é, em vez de digitar nomes de arquivos longos, 1181 00:51:57,560 --> 00:52:02,209 você vai ser capaz de o Tab para uso autocomplete algumas instruções. 1182 00:52:02,209 --> 00:52:04,750 Agora vamos demonstrar todos aqueles em apenas um segundo. 1183 00:52:04,750 --> 00:52:06,780 Portanto, se você não se lembra -los, não se preocupe. 1184 00:52:06,780 --> 00:52:10,780 Estas são coisas que você vai pegar e usar à medida que avançamos. 1185 00:52:10,780 --> 00:52:11,470 ESTÁ BEM. 1186 00:52:11,470 --> 00:52:18,830 >> Assim, em C-- ao contrário de Scratch-- C é uma linguagem compilada. 1187 00:52:18,830 --> 00:52:23,210 Isso significa que nós estamos indo tomar uma fonte file-- que é o texto que você escreve, 1188 00:52:23,210 --> 00:52:26,500 os comandos que você escreve, printf () declarações, os laços, 1189 00:52:26,500 --> 00:52:32,580 else-- tudo e vamos para dar esse arquivo e entregá-la 1190 00:52:32,580 --> 00:52:34,670 para um programa chamado o compilador. 1191 00:52:34,670 --> 00:52:39,850 >> O compilador, então, tomar que o texto que você escreveu 1192 00:52:39,850 --> 00:52:43,270 e traduzi-lo em as instruções binários 1193 00:52:43,270 --> 00:52:46,010 se o seu computador é realmente vai usar. 1194 00:52:46,010 --> 00:52:49,700 Isso é chamado de objeto ou o arquivo executável. 1195 00:52:49,700 --> 00:52:55,320 Se você olhar para este arquivo, você está indo para ver o código que você escreveu. 1196 00:52:55,320 --> 00:52:59,480 Se você olhar para este arquivo, você está indo para ver uma sequência aleatória de personagens 1197 00:52:59,480 --> 00:53:01,680 que não fazem sentido algum. 1198 00:53:01,680 --> 00:53:03,250 Isso é porque este é o binário. 1199 00:53:03,250 --> 00:53:05,560 Não é feito para você estar lendo. 1200 00:53:05,560 --> 00:53:08,690 >> No entanto, qualquer hora que você quiser executar alguma coisa, o que você vai 1201 00:53:08,690 --> 00:53:13,670 estar em execução é o arquivo objeto. 1202 00:53:13,670 --> 00:53:19,110 Então, quando nós trabalhamos com estes arquivos, vamos escrever um arquivo em C. 1203 00:53:19,110 --> 00:53:23,400 Vamos então compilá-lo, usando um comando como make que irá invocar 1204 00:53:23,400 --> 00:53:27,070 o clang compilador para a linguagem C. 1205 00:53:27,070 --> 00:53:31,530 E que irá produzir um objeto arquivo, tal como um para fora, ou, neste caso, 1206 00:53:31,530 --> 00:53:36,580 o nome, o meu arquivo, que eu coloquei em. 1207 00:53:36,580 --> 00:53:37,780 Tudo certo. 1208 00:53:37,780 --> 00:53:39,790 >> Então vamos realmente tentar isso. 1209 00:53:39,790 --> 00:53:42,850 Então, eu vim com um exemplo do que eu queria tentar. 1210 00:53:42,850 --> 00:53:47,380 E uma das coisas que me fascina é a animação. 1211 00:53:47,380 --> 00:53:51,010 Então, vamos tentar fazer um pouco de animação 1212 00:53:51,010 --> 00:53:53,760 usando apenas caracteres ASCII. 1213 00:53:53,760 --> 00:53:56,470 Personagens que podem imprimir facilmente agora. 1214 00:53:56,470 --> 00:54:00,890 >> Então, aqui é a minha melhor tentativa a criar para você 1215 00:54:00,890 --> 00:54:07,005 a animação de um coelho que funciona através da grama alta. 1216 00:54:07,005 --> 00:54:07,505 Ali está ele. 1217 00:54:07,505 --> 00:54:10,150 1218 00:54:10,150 --> 00:54:10,670 ESTÁ BEM. 1219 00:54:10,670 --> 00:54:14,050 Assim, ele não está funcionando ainda, mas ele é ali de pé na grama alta. 1220 00:54:14,050 --> 00:54:17,810 >> Agora, se eu fosse um animador, na velha escola 1221 00:54:17,810 --> 00:54:20,860 versão da animação, o que eu gostaria de fazer é que eu iria produzir 1222 00:54:20,860 --> 00:54:23,640 uma imagem de este coelho na grama. 1223 00:54:23,640 --> 00:54:25,390 E então eu iria produzir outra foto-- 1224 00:54:25,390 --> 00:54:30,600 outro o que eles chamaram cell-- que tinha o coelho apenas ligeiramente movido. 1225 00:54:30,600 --> 00:54:34,870 E em seguida, um terceiro que tinha o coelho movido um pouco mais. 1226 00:54:34,870 --> 00:54:40,610 >> E eu gostaria de produzir um todo sequência destas células. 1227 00:54:40,610 --> 00:54:44,220 Alguns onde o coelho é longo para o lado esquerdo. 1228 00:54:44,220 --> 00:54:47,050 E, em seguida, move-se lentamente, uma por um em direção ao meio. 1229 00:54:47,050 --> 00:54:51,120 E, em seguida, a partir do meio para a direita. 1230 00:54:51,120 --> 00:54:55,760 E se eu fosse, então, realmente sorte, eu poderia colocá-lo em conjunto 1231 00:54:55,760 --> 00:54:57,970 e eu poderia animá-los. 1232 00:54:57,970 --> 00:55:00,370 E não é meu coelho correndo pela grama. 1233 00:55:00,370 --> 00:55:02,310 >> Essa é a minha grande PowerPoint engano para o dia. 1234 00:55:02,310 --> 00:55:02,809 ESTÁ BEM. 1235 00:55:02,809 --> 00:55:04,760 Portanto, este é tão bom quanto ele ganha. 1236 00:55:04,760 --> 00:55:05,260 ESTÁ BEM. 1237 00:55:05,260 --> 00:55:08,455 Então, aqui mais uma vez, aqui é nossa coelho correndo pela grama. 1238 00:55:08,455 --> 00:55:09,217 >> ALTO-FALANTE 19: Mais uma vez. 1239 00:55:09,217 --> 00:55:11,050 BRIAN Scassellati: One mais tempo, tudo bem. 1240 00:55:11,050 --> 00:55:11,940 Há seu coelho. 1241 00:55:11,940 --> 00:55:12,940 ESTÁ BEM. 1242 00:55:12,940 --> 00:55:15,470 >> Então, hoje o que vamos fazer é que vamos 1243 00:55:15,470 --> 00:55:21,110 para tentar automatizar o processo de de produzir estas células. 1244 00:55:21,110 --> 00:55:24,135 Nós não vamos muito chegar ao ponto de ser capaz de colocá-los todos juntos. 1245 00:55:24,135 --> 00:55:28,900 Mas, nós estamos indo para tentar automatizar o processo de gerar esta sequência. 1246 00:55:28,900 --> 00:55:32,900 >> E isso é muito do que animação hoje é como. 1247 00:55:32,900 --> 00:55:36,690 Ou seja, você não precisa fazer as coisas necessariamente desenhando tudo à mão. 1248 00:55:36,690 --> 00:55:40,610 Usamos um computador para automatizar partes desse processo. 1249 00:55:40,610 --> 00:55:41,110 ESTÁ BEM. 1250 00:55:41,110 --> 00:55:47,720 >> Então deixe-me passar agora a nossa IDE CS50. 1251 00:55:47,720 --> 00:55:54,260 E eu criei para US-- e deixá- me aproximar um pouco aqui bit-- tenho 1252 00:55:54,260 --> 00:55:58,420 criou para nós um ponto de partida. 1253 00:55:58,420 --> 00:56:03,830 >> Toda vez que pedimos-lhe para se sentar para baixo e escrever um pedaço de código, 1254 00:56:03,830 --> 00:56:09,250 o que estamos realmente pedindo para você fazer é que estamos pedindo para resolver um problema. 1255 00:56:09,250 --> 00:56:11,810 E a maneira que você deve pensar em fazer isso 1256 00:56:11,810 --> 00:56:17,900 é, iniciando com alguns simples parte dessa solução. 1257 00:56:17,900 --> 00:56:21,730 E, em seguida, construir a partir dessa parte. 1258 00:56:21,730 --> 00:56:23,400 E isso é o que vamos fazer hoje. 1259 00:56:23,400 --> 00:56:27,570 >> Então, ao invés de tentar tudo de uma vez para escrever todo o monte de código que é 1260 00:56:27,570 --> 00:56:30,770 indo para produzir aqueles 10 células animação, 1261 00:56:30,770 --> 00:56:35,506 vamos iniciar em vez disso com uma peça que funciona. 1262 00:56:35,506 --> 00:56:37,380 E então nós vamos construir um pouco em torno de que 1263 00:56:37,380 --> 00:56:39,740 e um pouco mais e um pouco mais. 1264 00:56:39,740 --> 00:56:42,550 >> Agora, a coisa boa sobre resolução de problemas desta forma 1265 00:56:42,550 --> 00:56:46,716 é que ele permitirá que você começar sempre com algo que você sabe 1266 00:56:46,716 --> 00:56:51,130 trabalha e introduzir uma mudança gradual. 1267 00:56:51,130 --> 00:56:54,090 E isso é uma ótima maneira para aprender como codificar, 1268 00:56:54,090 --> 00:56:58,590 porque cada vez que fizer uma mudança, você vê o impacto que tem. 1269 00:56:58,590 --> 00:56:59,540 ESTÁ BEM. 1270 00:56:59,540 --> 00:57:01,450 >> Então aqui está o nosso ponto de partida. 1271 00:57:01,450 --> 00:57:01,950 ESTÁ BEM. 1272 00:57:01,950 --> 00:57:08,030 Assim, no início do meu arquivo, Eu tenho de hash stdio.h #included. 1273 00:57:08,030 --> 00:57:12,560 Isso é para que eu possa obter a printf () para trabalhar. 1274 00:57:12,560 --> 00:57:15,240 >> Eu, então, eu tenho a minha função principal. 1275 00:57:15,240 --> 00:57:18,760 E isso ainda parece um pouco arcana ou obscuro para alguns de vocês. 1276 00:57:18,760 --> 00:57:20,010 Está ok. 1277 00:57:20,010 --> 00:57:23,190 Tudo o que diz é que a função principal leva 1278 00:57:23,190 --> 00:57:27,830 meios não arguments-- vazios nada em C. E 1279 00:57:27,830 --> 00:57:29,940 retornos por convenção, um inteiro. 1280 00:57:29,940 --> 00:57:33,290 Principal sempre retorna um inteiro, geralmente um código dizendo coisas 1281 00:57:33,290 --> 00:57:35,071 correu bem ou não correu bem. 1282 00:57:35,071 --> 00:57:35,570 ESTÁ BEM. 1283 00:57:35,570 --> 00:57:39,110 Mas principal tem que ter esse formar para nós agora. 1284 00:57:39,110 --> 00:57:42,080 >> Eu, em seguida, colocar em três linhas de código. 1285 00:57:42,080 --> 00:57:46,760 E junto com cada linha de código, eu coloquei um comentário. 1286 00:57:46,760 --> 00:57:51,340 Agora, uma das coisas que vamos insistir que você faz, 1287 00:57:51,340 --> 00:57:55,320 e é tão importante prática de programação, 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 anote em um Inglês comentário algo 1290 00:58:02,550 --> 00:58:06,740 que você acha que o código é suposto fazer. 1291 00:58:06,740 --> 00:58:11,360 Dessa forma, mais tarde, quando você voltar para ele, você pode olhar para ele e você pode dizer, 1292 00:58:11,360 --> 00:58:13,800 oh, eu me lembro que eu era tentando fazer com isso. 1293 00:58:13,800 --> 00:58:17,590 Ou quando um TA se senta com você tentar ajudá-lo no horário de expediente, 1294 00:58:17,590 --> 00:58:20,890 eles podem olhar para isso e ir, eu ver o que você estava tentando fazer, 1295 00:58:20,890 --> 00:58:25,630 mas em vez disso está presente o que está realmente acontecendo. 1296 00:58:25,630 --> 00:58:26,130 ESTÁ BEM. 1297 00:58:26,130 --> 00:58:30,300 >> Então eu tenho três partes para o meu código, Eu estou indo em primeiro lugar impressão 1298 00:58:30,300 --> 00:58:33,110 alguns pontos no início. 1299 00:58:33,110 --> 00:58:37,480 Vou em seguida, imprimir o meu coelho extremamente extravagante. 1300 00:58:37,480 --> 00:58:40,600 E então algum bocado de pontos no final. 1301 00:58:40,600 --> 00:58:45,220 >> E estas três declarações de impressão deve parece familiar para você neste momento. 1302 00:58:45,220 --> 00:58:47,350 Tudo o que eu estou fazendo na cada um deles é que eu sou 1303 00:58:47,350 --> 00:58:49,780 imprimir uma seqüência de caracteres. 1304 00:58:49,780 --> 00:58:51,370 Não há variáveis ​​envolvidas. 1305 00:58:51,370 --> 00:58:54,320 Tudo é apenas plana. 1306 00:58:54,320 --> 00:58:55,270 ESTÁ BEM. 1307 00:58:55,270 --> 00:59:07,340 >> Então, se eu descer agora à minha terminal-- vamos ver se eu posso pegar isso de volta out-- 1308 00:59:07,340 --> 00:59:09,370 e eu estou indo para digitar clara novamente. 1309 00:59:09,370 --> 00:59:12,507 >> ALTO-FALANTE 20: Usamos o barra dupla a comentar? 1310 00:59:12,507 --> 00:59:14,340 BRIAN Scassellati: Possa usar o sim double--. 1311 00:59:14,340 --> 00:59:16,920 Há várias maneiras de deixar comentários em C. Um 1312 00:59:16,920 --> 00:59:19,440 forma é a utilização do duas barras oblíquas. 1313 00:59:19,440 --> 00:59:24,910 A outra é a utilização de uma barra e uma estrela e feche com uma estrela e uma barra. 1314 00:59:24,910 --> 00:59:26,110 Tudo certo. 1315 00:59:26,110 --> 00:59:28,950 >> Primeiro de tudo, eu vou começar a navegar por aqui. 1316 00:59:28,950 --> 00:59:35,350 Então, se eu ir para o meu diretório home, Eu mudei diretórios lá, 1317 00:59:35,350 --> 00:59:40,230 Eu vou olhar e ver o que é nesse diretório, ls, listar. 1318 00:59:40,230 --> 00:59:43,230 Eu estou indo para ver que eu tenho tem dois subdiretórios. 1319 00:59:43,230 --> 00:59:47,910 Vamos fazer deste um pouco maior para que todos nós podemos vê-lo. 1320 00:59:47,910 --> 00:59:50,610 >> Eu posso ver que eu tenho tem dois subdiretórios. 1321 00:59:50,610 --> 00:59:53,510 Eu vou mudar o diretório para entrar na área de trabalho. 1322 00:59:53,510 --> 00:59:58,380 E eu vou apenas digitar parte dela, e depois é só apertar Tab. 1323 00:59:58,380 --> 01:00:01,520 E ele vai completar o resto para mim. 1324 01:00:01,520 --> 01:00:03,370 Chique. 1325 01:00:03,370 --> 01:00:04,960 >> Vou olhar e ver na área de trabalho. 1326 01:00:04,960 --> 01:00:08,431 E agora, eu estou trabalhando 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ão eu vou para o diretório. 1329 01:00:10,971 --> 01:00:14,770 1330 01:00:14,770 --> 01:00:15,970 E, finalmente, olhar e ver. 1331 01:00:15,970 --> 01:00:18,480 E eu tenho esse arquivo bunny.c. 1332 01:00:18,480 --> 01:00:20,980 >> Tudo bem então deixe-me esclarecer uma vez mais. 1333 01:00:20,980 --> 01:00:24,370 E eu vou agora-- novamente eu sou ainda permanecer nesse diretório 1334 01:00:24,370 --> 01:00:27,540 e isso está me dizendo que eu estou em esse diretório SuperSection. 1335 01:00:27,540 --> 01:00:30,690 Eu estou indo para ir em frente e fazer o meu coelho programa. 1336 01:00:30,690 --> 01:00:33,730 1337 01:00:33,730 --> 01:00:38,810 E esse comando, certifique-coelho, ao soar um pouco estranho, 1338 01:00:38,810 --> 01:00:42,960 também invoca o compilador clang. 1339 01:00:42,960 --> 01:00:46,470 >> E ele é produzido para me uma saída que é 1340 01:00:46,470 --> 01:00:52,130 um funny-- um executável arquivo executável chamado coelho. 1341 01:00:52,130 --> 01:00:52,700 ESTÁ BEM. 1342 01:00:52,700 --> 01:00:56,700 Eu posso então, e isso soa pior ainda, executar coelho. 1343 01:00:56,700 --> 01:00:59,360 1344 01:00:59,360 --> 01:01:00,680 ESTÁ BEM. 1345 01:01:00,680 --> 01:01:03,150 E vamos ver o que ele faz. 1346 01:01:03,150 --> 01:01:04,527 ESTÁ BEM. 1347 01:01:04,527 --> 01:01:06,360 Isso é um pouco de o que eu estava esperando. 1348 01:01:06,360 --> 01:01:11,290 Eu tenho a minha imagem do coelhinho lá, mas eu meio que queria tudo por si só. 1349 01:01:11,290 --> 01:01:13,186 O que eu perdi? 1350 01:01:13,186 --> 01:01:14,478 >> ALTO-FALANTE 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 ESTÁ BEM. 1353 01:01:16,580 --> 01:01:18,800 Então, vamos voltar aqui. 1354 01:01:18,800 --> 01:01:20,330 E eu vou sair dessa. 1355 01:01:20,330 --> 01:01:23,320 E eu vou voltar em um presente. 1356 01:01:23,320 --> 01:01:27,720 E vamos dar uma olhada agora de minha principal função aqui. 1357 01:01:27,720 --> 01:01:29,280 >> Então, o que eu devo fazer? 1358 01:01:29,280 --> 01:01:30,465 Eu quero terminar a linha. 1359 01:01:30,465 --> 01:01:34,020 1360 01:01:34,020 --> 01:01:35,800 Então, eu vou colocar em um comentário. 1361 01:01:35,800 --> 01:01:38,430 Vou colocar em um printf (). 1362 01:01:38,430 --> 01:01:41,350 E o que eu tenho que colocar em? 1363 01:01:41,350 --> 01:01:41,890 / N. 1364 01:01:41,890 --> 01:01:43,480 ESTÁ BEM. 1365 01:01:43,480 --> 01:01:46,040 O que eu tenho para acabar com ele? 1366 01:01:46,040 --> 01:01:47,100 Ponto e vírgula. 1367 01:01:47,100 --> 01:01:48,730 Tudo certo. 1368 01:01:48,730 --> 01:01:52,880 >> Agora, um dos realmente coisas importantes é ter certeza 1369 01:01:52,880 --> 01:01:56,720 cada vez que você faz uma alteração em seu código, que você salvá-lo. 1370 01:01:56,720 --> 01:02:01,380 Se não tiver guardado o seu código, você está vai notar uma pequena estrela lá em cima. 1371 01:02:01,380 --> 01:02:03,420 E que a estrela diz que você não salvou este código. 1372 01:02:03,420 --> 01:02:07,790 >> Se eu compilá-lo agora, não é vai refletir nenhuma dessas alterações, 1373 01:02:07,790 --> 01:02:11,680 porque o compilador olha para o arquivo que está no disco, não o arquivo que é 1374 01:02:11,680 --> 01:02:13,790 abrir no seu editor. 1375 01:02:13,790 --> 01:02:14,290 Tudo certo. 1376 01:02:14,290 --> 01:02:20,830 >> Então, vamos salvá-lo e depois vamos certo aqui em baixo, voltar para fora. 1377 01:02:20,830 --> 01:02:24,670 Venha até a minha terminal. 1378 01:02:24,670 --> 01:02:27,193 E vamos limpar o espaço novamente. 1379 01:02:27,193 --> 01:02:30,690 1380 01:02:30,690 --> 01:02:35,760 >> E nós podemos ir em frente e mais um tempo de fazer o nosso programa de coelho. 1381 01:02:35,760 --> 01:02:40,180 E executar o coelho. 1382 01:02:40,180 --> 01:02:42,500 Isso não quer trabalhar. 1383 01:02:42,500 --> 01:02:43,950 Barra errado. 1384 01:02:43,950 --> 01:02:52,280 Então, se você olhar para o que eu tenho, eu coloquei um / n lá, mas eu tinha a barra errado. 1385 01:02:52,280 --> 01:02:56,190 >> Tudo o que o computador faz é muito explícita. 1386 01:02:56,190 --> 01:02:57,230 ok? 1387 01:02:57,230 --> 01:03:01,250 Um pequeno erro de pontuação, e de repente você não consegue o que quer. 1388 01:03:01,250 --> 01:03:01,750 Tudo certo. 1389 01:03:01,750 --> 01:03:03,740 Então, vamos aumentar novamente para fora. 1390 01:03:03,740 --> 01:03:04,410 Vamos voltar. 1391 01:03:04,410 --> 01:03:07,930 Bem fazer essa reparação muito rápida. 1392 01:03:07,930 --> 01:03:09,270 Vamos colocar a barra à direita. 1393 01:03:09,270 --> 01:03:10,570 Nós vamos salvá-lo. 1394 01:03:10,570 --> 01:03:13,410 Vamos zoom. 1395 01:03:13,410 --> 01:03:16,730 >> Por alguma razão, isso não é ser feliz, mas vamos em frente 1396 01:03:16,730 --> 01:03:19,850 e nós vamos voltar para o terminal aqui. 1397 01:03:19,850 --> 01:03:22,940 Esclarecê-lo. 1398 01:03:22,940 --> 01:03:24,880 Nós vamos ampliar. 1399 01:03:24,880 --> 01:03:28,410 E mais uma vez, vamos fazer coelho. 1400 01:03:28,410 --> 01:03:32,360 E agora com certeza, ele funciona. 1401 01:03:32,360 --> 01:03:33,240 Hooray. 1402 01:03:33,240 --> 01:03:34,300 ESTÁ BEM. 1403 01:03:34,300 --> 01:03:39,580 >> Então, vamos tentar fazer isso um pouco mais geral. 1404 01:03:39,580 --> 01:03:46,750 Vamos ver se em vez de apenas imprimir um quadro particular, 1405 01:03:46,750 --> 01:03:49,610 vamos ver se podemos fazer isso para que possamos obter todas 10 1406 01:03:49,610 --> 01:03:52,960 desses quadros animados que queríamos ter. 1407 01:03:52,960 --> 01:03:56,550 Então, novamente, vamos dar esta um passo de cada vez. 1408 01:03:56,550 --> 01:03:59,900 >> Vamos primeiro generalizá-la, não de modo que eu faço todos os quadros, 1409 01:03:59,900 --> 01:04:03,990 mas então eu faço qualquer um quadro que eu poderia querer. 1410 01:04:03,990 --> 01:04:05,920 Então, qual é a diferença entre os quadros? 1411 01:04:05,920 --> 01:04:07,377 É o coelho o mesmo? 1412 01:04:07,377 --> 01:04:07,960 AUDIÊNCIA: Sim. 1413 01:04:07,960 --> 01:04:08,390 BRIAN Scassellati: Yeah. 1414 01:04:08,390 --> 01:04:09,370 Qual é a diferença? 1415 01:04:09,370 --> 01:04:10,246 >> AUDIÊNCIA: Posição. 1416 01:04:10,246 --> 01:04:11,870 BRIAN Scassellati: A sua posição, certo? 1417 01:04:11,870 --> 01:04:15,590 E como faço para controlar a sua posição? 1418 01:04:15,590 --> 01:04:17,340 Quantos pontos eu sou colocando no início 1419 01:04:17,340 --> 01:04:19,048 e quantos pontos eu sou colocando no final. 1420 01:04:19,048 --> 01:04:21,970 Então, eu tinha cinco anos na começando cinco e no final. 1421 01:04:21,970 --> 01:04:28,320 >> Vamos substituir aquele cinco com um loop for. 1422 01:04:28,320 --> 01:04:29,380 ESTÁ BEM. 1423 01:04:29,380 --> 01:04:32,330 E eu vou criar um para laço agora que vai dizer, 1424 01:04:32,330 --> 01:04:37,800 Eu estou indo para imprimir algum número de pontos no início. 1425 01:04:37,800 --> 01:04:39,600 Eu vou usar uma variável. 1426 01:04:39,600 --> 01:04:44,150 Vamos dizer, que tal como i o contador no meu loop. 1427 01:04:44,150 --> 01:04:47,200 E eu vou declará-la em cima. 1428 01:04:47,200 --> 01:04:49,360 >> E, em seguida, no loop for Eu preciso fazer três coisas. 1429 01:04:49,360 --> 01:04:52,340 A primeira coisa que eu preciso fazer é que eu preciso para inicializar i. 1430 01:04:52,340 --> 01:04:56,570 O que devo inicializar -lo para começar a ser? 1431 01:04:56,570 --> 01:04:57,160 0. 1432 01:04:57,160 --> 01:04:58,310 ESTÁ BEM. 1433 01:04:58,310 --> 01:05:00,950 >> Então, eu preciso dizer, o que é a condição de encerramento? 1434 01:05:00,950 --> 01:05:03,020 Quando devo parar? 1435 01:05:03,020 --> 01:05:05,983 Bem quantos pontos você deseja imprimir em um presente? 1436 01:05:05,983 --> 01:05:06,921 >> AUDIÊNCIA: Five. 1437 01:05:06,921 --> 01:05:08,170 BRIAN Scassellati: Cinco novamente? 1438 01:05:08,170 --> 01:05:10,650 Que tal vamos fazer alguma coisa diferente, fizemos cinco. 1439 01:05:10,650 --> 01:05:12,584 Vamos mostrar que é diferente. 1440 01:05:12,584 --> 01:05:13,250 ALTO-FALANTE 22: Two. 1441 01:05:13,250 --> 01:05:13,580 BRIAN Scassellati: Dois. 1442 01:05:13,580 --> 01:05:14,080 ESTÁ BEM. 1443 01:05:14,080 --> 01:05:17,760 Então, se eu quero dois pontos, o que devo colocar aqui? 1444 01:05:17,760 --> 01:05:19,140 >> AUDIÊNCIA: Três. 1445 01:05:19,140 --> 01:05:20,530 >> BRIAN Scassellati: Três. 1446 01:05:20,530 --> 01:05:21,400 ESTÁ BEM. 1447 01:05:21,400 --> 01:05:24,220 Quantas vezes é que vai passar? 1448 01:05:24,220 --> 01:05:28,469 Isso vai passar por três vezes, 0, 1 e 2, certo? 1449 01:05:28,469 --> 01:05:30,010 Tudo bem, vamos voltar para baixo para dois. 1450 01:05:30,010 --> 01:05:31,570 Agora vamos ter dois pontos. 1451 01:05:31,570 --> 01:05:35,800 E o que eu quero fazer cada vez que vou através do laço? 1452 01:05:35,800 --> 01:05:38,657 O que tem de mudar cada vez que eu passar? 1453 01:05:38,657 --> 01:05:39,850 >> ALTO-FALANTE 23: Adicionar um ponto. 1454 01:05:39,850 --> 01:05:41,020 >> BRIAN Scassellati: Eu tenho que continuar. 1455 01:05:41,020 --> 01:05:41,978 Eu estou indo para adicionar um ponto. 1456 01:05:41,978 --> 01:05:45,310 Eu estou indo para imprimir um ponto, cada vez através do loop. 1457 01:05:45,310 --> 01:05:49,990 Mas como eu manter o controle de como muitas vezes estive através do laço? 1458 01:05:49,990 --> 01:05:53,260 Estou usando o i, que variável, que contador. 1459 01:05:53,260 --> 01:05:57,110 >> Então, toda vez que passar, eu vou para incrementar o contador por um. 1460 01:05:57,110 --> 01:06:00,670 Agora, isso é o mesmo para me dizendo i = i + 1. 1461 01:06:00,670 --> 01:06:01,210 Está ok. 1462 01:06:01,210 --> 01:06:04,653 Eu poderia fazê-lo isso-- eu gosto do taquigrafia, então eu vou dizer i ++. 1463 01:06:04,653 --> 01:06:07,190 1464 01:06:07,190 --> 01:06:08,370 ESTÁ BEM. 1465 01:06:08,370 --> 01:06:10,680 >> Vamos fazer a mesma coisa aqui em baixo na parte inferior. 1466 01:06:10,680 --> 01:06:11,846 Só eu meio que fiz essa. 1467 01:06:11,846 --> 01:06:13,990 Vou deixar vocês fazer este completamente. 1468 01:06:13,990 --> 01:06:14,260 Tudo certo. 1469 01:06:14,260 --> 01:06:15,426 >> Então, o que eu deveria escrever aqui? 1470 01:06:15,426 --> 01:06:17,170 Aqui está o meu loop for. 1471 01:06:17,170 --> 01:06:23,162 Eu vou fazer um printf () e eu vou para torná-lo assim que eu só imprimir um ponto 1472 01:06:23,162 --> 01:06:25,740 em que a parte inferior. 1473 01:06:25,740 --> 01:06:27,740 >> O que devo escrever dentro deste loop for agora? 1474 01:06:27,740 --> 01:06:30,897 1475 01:06:30,897 --> 01:06:33,948 Bem, primeiro de tudo o que variáveis ​​que devo usar? 1476 01:06:33,948 --> 01:06:35,430 >> ALTO-FALANTE 24: j. 1477 01:06:35,430 --> 01:06:36,880 >> BRIAN Scassellati: eu poderia usar j. 1478 01:06:36,880 --> 01:06:38,040 Posso usar o mesmo? 1479 01:06:38,040 --> 01:06:39,961 Posso usar o i de novo? 1480 01:06:39,961 --> 01:06:40,460 Sim. 1481 01:06:40,460 --> 01:06:45,531 Isso é OK, porque o Is que eu estou usando aqui, 1482 01:06:45,531 --> 01:06:47,780 Eu não preciso de los novamente quando Eu descer a esse ponto. 1483 01:06:47,780 --> 01:06:52,240 1484 01:06:52,240 --> 01:06:53,790 >> Então o que devo inicializar a i? 1485 01:06:53,790 --> 01:06:56,675 1486 01:06:56,675 --> 01:06:57,300 ALTO-FALANTE 25: 10. 1487 01:06:57,300 --> 01:06:58,567 BRIAN Scassellati: 0. 1488 01:06:58,567 --> 01:06:59,400 O que devo verificar? 1489 01:06:59,400 --> 01:07:02,960 Quantos pontos eu preciso agora no final se eu tenho dois pontos no início? 1490 01:07:02,960 --> 01:07:05,820 1491 01:07:05,820 --> 01:07:09,165 Eu preciso de oito no final, então o que que devo verificar, i menos than-- 1492 01:07:09,165 --> 01:07:12,645 >> AUDIÊNCIA: sete, oito, nove. 1493 01:07:12,645 --> 01:07:14,020 BRIAN Scassellati: Eu ouvi sete. 1494 01:07:14,020 --> 01:07:14,810 Ouvi oito. 1495 01:07:14,810 --> 01:07:15,970 E ouvi nove. 1496 01:07:15,970 --> 01:07:16,470 ESTÁ BEM. 1497 01:07:16,470 --> 01:07:19,540 Então, nós estamos todos no direito ball-- Jason diz 10. 1498 01:07:19,540 --> 01:07:21,550 ESTÁ BEM. 1499 01:07:21,550 --> 01:07:25,920 >> Se eu precisasse de dois pontos para a primeira, como muitos fazem 1500 01:07:25,920 --> 01:07:30,170 I-- e eu preciso de oito pontos para o última um-- Eu coloquei um dois lá em cima, 1501 01:07:30,170 --> 01:07:31,743 o que devo colocar lá em baixo? 1502 01:07:31,743 --> 01:07:32,570 >> AUDIÊNCIA: Oito. 1503 01:07:32,570 --> 01:07:33,611 >> BRIAN Scassellati: Oito. 1504 01:07:33,611 --> 01:07:35,695 Porque isso vai contar de zero a sete. 1505 01:07:35,695 --> 01:07:38,490 E isso é oito vezes através do loop. 1506 01:07:38,490 --> 01:07:38,990 ESTÁ BEM. 1507 01:07:38,990 --> 01:07:41,774 E o que eu tenho que fazer no final? 1508 01:07:41,774 --> 01:07:42,670 >> AUDIÊNCIA: i ++. 1509 01:07:42,670 --> 01:07:44,400 >> BRIAN Scassellati: i ++. 1510 01:07:44,400 --> 01:07:45,440 Tudo certo. 1511 01:07:45,440 --> 01:07:48,260 Então isso é muito bom olhar lá. 1512 01:07:48,260 --> 01:07:50,620 Vamos tentar e vamos ver o que ele faz. 1513 01:07:50,620 --> 01:07:51,450 ESTÁ BEM. 1514 01:07:51,450 --> 01:07:53,770 Então, nós estamos indo para salvá-lo. 1515 01:07:53,770 --> 01:07:54,940 Agradável e salvo. 1516 01:07:54,940 --> 01:07:56,910 >> Vamos zoom out. 1517 01:07:56,910 --> 01:07:58,220 Vamos tentar aqui no terminal. 1518 01:07:58,220 --> 01:08:01,440 1519 01:08:01,440 --> 01:08:02,970 Nós vamos ampliar. 1520 01:08:02,970 --> 01:08:05,416 Oops. 1521 01:08:05,416 --> 01:08:09,990 Nós vamos, mais uma vez, fazer o nosso programa de coelho. 1522 01:08:09,990 --> 01:08:14,460 E vá em frente e executar coelho. 1523 01:08:14,460 --> 01:08:15,980 E aí está. 1524 01:08:15,980 --> 01:08:17,710 >> Portanto, não há o nosso coelho. 1525 01:08:17,710 --> 01:08:25,130 Onde tem dois pontos no início e oito pontos no final. 1526 01:08:25,130 --> 01:08:27,540 Todo mundo ainda está comigo? 1527 01:08:27,540 --> 01:08:28,770 ESTÁ BEM. 1528 01:08:28,770 --> 01:08:29,580 >> Por isso, construiu-se. 1529 01:08:29,580 --> 01:08:33,000 Nós construímos um coelho, um quadro específico. 1530 01:08:33,000 --> 01:08:36,229 Agora nós temos sido capazes de generalizar que para construir 1531 01:08:36,229 --> 01:08:38,390 mais, diferentes tipos de quadros. 1532 01:08:38,390 --> 01:08:42,399 >> Agora vamos em frente, e ter que gerar não apenas um quadro, 1533 01:08:42,399 --> 01:08:46,290 mas vamos gerar 10 molduras, onde se lentamente 1534 01:08:46,290 --> 01:08:50,569 fazer o coelho mover todos do outro lado do campo. 1535 01:08:50,569 --> 01:08:51,430 Tudo certo. 1536 01:08:51,430 --> 01:08:53,660 >> Vamos voltar. 1537 01:08:53,660 --> 01:08:54,839 E nós vamos tentar agora. 1538 01:08:54,839 --> 01:09:00,680 1539 01:09:00,680 --> 01:09:02,830 Então, o que eu realmente preciso mudar aqui? 1540 01:09:02,830 --> 01:09:06,139 1541 01:09:06,139 --> 01:09:07,180 O que eu preciso mudar? 1542 01:09:07,180 --> 01:09:10,638 >> ALTO-FALANTE 26: Você primeiro precisa alterar o número de máximo de pontos 1543 01:09:10,638 --> 01:09:11,626 no começo. 1544 01:09:11,626 --> 01:09:16,850 Porque se nós estamos fazendo 10 pontos, ele vai precisar para se escalar. 1545 01:09:16,850 --> 01:09:17,850 BRIAN Scassellati: Yeah. 1546 01:09:17,850 --> 01:09:23,760 Então agora eu tenho que tipo de hardwired fazer sempre dois pontos no início 1547 01:09:23,760 --> 01:09:27,890 e sempre fazer oito pontos no final. 1548 01:09:27,890 --> 01:09:30,660 >> Eu quero construir um outro circuito, certo? 1549 01:09:30,660 --> 01:09:33,290 Porque eu não quero construir apenas uma imagem do coelho, 1550 01:09:33,290 --> 01:09:37,140 Eu quero construir 10 imagens de coelho. 1551 01:09:37,140 --> 01:09:41,500 Então eu preciso construir um outro circuito, e como eu passar por esse loop, 1552 01:09:41,500 --> 01:09:44,660 Eu quero mudar quantas pontos I imprimir no início 1553 01:09:44,660 --> 01:09:50,529 e quantos pontos eu imprimi no final, com base no qual ciclo através do laço 1554 01:09:50,529 --> 01:09:52,270 Estou dentro. 1555 01:09:52,270 --> 01:09:52,770 Tudo certo. 1556 01:09:52,770 --> 01:09:54,430 >> Então, vamos começar um outro balcão. 1557 01:09:54,430 --> 01:09:58,142 Alguém j disse antes, por isso vamos fazer uma outra j. 1558 01:09:58,142 --> 01:10:00,100 E agora, vamos construir outro para loop. 1559 01:10:00,100 --> 01:10:02,650 1560 01:10:02,650 --> 01:10:06,200 >> O que se passa dentro desse loop? 1561 01:10:06,200 --> 01:10:09,060 Este material tem que ir dentro do loop, certo? 1562 01:10:09,060 --> 01:10:11,190 Será que o coelho tem para ir para dentro do loop? 1563 01:10:11,190 --> 01:10:13,390 Preciso de um coelho em cada um desses 10 quadros? 1564 01:10:13,390 --> 01:10:14,099 >> AUDIÊNCIA: Uh-huh. 1565 01:10:14,099 --> 01:10:15,098 BRIAN Scassellati: Yeah. 1566 01:10:15,098 --> 01:10:17,250 Eu quero um coelho em cada dos 10 quadros, certo? 1567 01:10:17,250 --> 01:10:20,531 Como sobre os pontos em Ao final, eu preciso disso? 1568 01:10:20,531 --> 01:10:21,030 ESTÁ BEM. 1569 01:10:21,030 --> 01:10:22,550 >> Então, eu estou indo para recuar todos eles. 1570 01:10:22,550 --> 01:10:25,110 Eu estou indo para destacar todos isso, e eu vou bater Tab. 1571 01:10:25,110 --> 01:10:28,590 E que vai empurrá-los todo um pouco, de modo que é fácil para mim 1572 01:10:28,590 --> 01:10:32,010 para ver o que está no circuito. 1573 01:10:32,010 --> 01:10:33,710 E então eu vou acabar com ela. 1574 01:10:33,710 --> 01:10:35,850 Digamos. 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 fazer para que você possa see-- Eu tenho o meu contador j. 1578 01:10:43,810 --> 01:10:45,630 Vou começou a 0. 1579 01:10:45,630 --> 01:10:47,829 Quantas vezes eu quero de passar por este ciclo? 1580 01:10:47,829 --> 01:10:48,620 AUDIÊNCIA: 10 vezes. 1581 01:10:48,620 --> 01:10:49,786 BRIAN Scassellati: 10 vezes. 1582 01:10:49,786 --> 01:10:51,402 Então, qual número devo colocar aqui? 1583 01:10:51,402 --> 01:10:52,880 >> AUDIÊNCIA: 9, 10. 1584 01:10:52,880 --> 01:10:55,600 >> BRIAN Scassellati: 9, 10, alguém tem que dizer 11, certo? 1585 01:10:55,600 --> 01:10:58,190 1586 01:10:58,190 --> 01:11:01,585 Eu queria dois pontos antes e colocá-i inferior a 2. 1587 01:11:01,585 --> 01:11:03,810 Eu queria oito pontos, Eu coloquei i inferior a 8. 1588 01:11:03,810 --> 01:11:06,950 Agora eu quero passar por 10 vezes, então eu coloquei j menos than-- 1589 01:11:06,950 --> 01:11:07,590 >> AUDIÊNCIA: 10. 1590 01:11:07,590 --> 01:11:08,610 >> BRIAN Scassellati: 10. 1591 01:11:08,610 --> 01:11:10,150 Aí vamos nós. 1592 01:11:10,150 --> 01:11:13,360 E o que eu faço no final para j? 1593 01:11:13,360 --> 01:11:15,310 ++, Incrementá-lo. 1594 01:11:15,310 --> 01:11:16,230 ESTÁ BEM. 1595 01:11:16,230 --> 01:11:21,500 Agora, aqui está a parte complicada, o que é vai acontecer agora, se eu faço isso? 1596 01:11:21,500 --> 01:11:24,537 Sou eu que vou imprimir 10 frames? 1597 01:11:24,537 --> 01:11:26,370 ALTO-FALANTE 27: Eu acho que todos eles vai ser o mesmo. 1598 01:11:26,370 --> 01:11:28,453 BRIAN Scassellati: Eles vão tudo ser o mesmo, certo? 1599 01:11:28,453 --> 01:11:31,750 Porque todos eles ainda estão indo para colocar dois pontos no início. 1600 01:11:31,750 --> 01:11:34,162 Mas eu não quero que todos eles têm dois pontos o início. 1601 01:11:34,162 --> 01:11:35,870 Quantos pontos eu quer no início? 1602 01:11:35,870 --> 01:11:39,097 1603 01:11:39,097 --> 01:11:40,020 >> AUDIÊNCIA: Mudando. 1604 01:11:40,020 --> 01:11:42,840 >> BRIAN Scassellati: I quer mudar, certo? 1605 01:11:42,840 --> 01:11:46,588 Então, o que eu tenho aqui que está mudando cada vez que o circuito atravessa? 1606 01:11:46,588 --> 01:11:48,242 >> AUDIÊNCIA: Número de pontos, j. 1607 01:11:48,242 --> 01:11:49,950 BRIAN Scassellati: j, o número de pontos. 1608 01:11:49,950 --> 01:11:54,782 Então, eu posso mudar isso seja j. 1609 01:11:54,782 --> 01:11:59,190 A primeira vez através do loop, o que é que vai ser? 1610 01:11:59,190 --> 01:12:01,700 O que faço para definir j a pelo primeiro? 1611 01:12:01,700 --> 01:12:02,420 >> AUDIÊNCIA: 0. 1612 01:12:02,420 --> 01:12:05,700 >> BRIAN Scassellati: Então, quantas vezes eu vou fazer isso? 1613 01:12:05,700 --> 01:12:06,750 0. 1614 01:12:06,750 --> 01:12:11,750 A segunda vez através do laço, j de vai ser um porque eu incrementá-lo. 1615 01:12:11,750 --> 01:12:14,180 Quantos pontos eu vou imprimir? 1616 01:12:14,180 --> 01:12:15,100 1. 1617 01:12:15,100 --> 01:12:19,904 A terceira iteração do loop, quantos pontos é que eu vou imprimir? 1618 01:12:19,904 --> 01:12:20,587 >> AUDIÊNCIA: Três. 1619 01:12:20,587 --> 01:12:22,170 BRIAN Scassellati: j vai ser 3. 1620 01:12:22,170 --> 01:12:24,890 Quantos pontos eu vou imprimir? 1621 01:12:24,890 --> 01:12:26,817 Oh, desculpe, j vai ser 2. 1622 01:12:26,817 --> 01:12:28,233 Quantos pontos eu vou imprimir? 1623 01:12:28,233 --> 01:12:28,980 >> AUDIÊNCIA: 2. 1624 01:12:28,980 --> 01:12:29,855 >> BRIAN Scassellati: 2. 1625 01:12:29,855 --> 01:12:32,460 OK, então eu vou continuar incrementando que à medida que avançamos. 1626 01:12:32,460 --> 01:12:33,460 Como cerca de abaixo? 1627 01:12:33,460 --> 01:12:34,310 O que se passa aqui? 1628 01:12:34,310 --> 01:12:38,080 Eu não quero sempre 8 na extremidade mais? 1629 01:12:38,080 --> 01:12:39,269 >> ALTO-FALANTE 28: 10. 1630 01:12:39,269 --> 01:12:40,685 BRIAN Scassellati: Eu quero 10 pontos? 1631 01:12:40,685 --> 01:12:43,440 1632 01:12:43,440 --> 01:12:44,620 Eu quero que ele mude também. 1633 01:12:44,620 --> 01:12:47,469 Então como é que eu quero que mudar? 1634 01:12:47,469 --> 01:12:49,167 >> AUDIÊNCIA: [inaudível]. 1635 01:12:49,167 --> 01:12:51,750 BRIAN Scassellati: Bem, se eu tem cinco pontos, no início, 1636 01:12:51,750 --> 01:12:53,293 quantos de ponto que eu recebo no final? 1637 01:12:53,293 --> 01:12:54,020 >> AUDIÊNCIA: Five. 1638 01:12:54,020 --> 01:12:55,630 >> BRIAN Scassellati: Se eu tiver seis pontos, no início, 1639 01:12:55,630 --> 01:12:56,875 quantos eu chegar no final? 1640 01:12:56,875 --> 01:12:57,500 AUDIÊNCIA: Four. 1641 01:12:57,500 --> 01:12:58,950 BRIAN Scassellati: Se eu tenho sete pontos, no início, 1642 01:12:58,950 --> 01:13:00,204 quantos eu chegar no final? 1643 01:13:00,204 --> 01:13:00,870 AUDIÊNCIA: Três. 1644 01:13:00,870 --> 01:13:03,161 BRIAN Scassellati: Se eu tenho j tem pontos no início, 1645 01:13:03,161 --> 01:13:04,790 quantos eu chegar no final? 1646 01:13:04,790 --> 01:13:07,520 10-J. 1647 01:13:07,520 --> 01:13:08,650 ESTÁ BEM. 1648 01:13:08,650 --> 01:13:10,390 Então, vamos tentar isso. 1649 01:13:10,390 --> 01:13:13,180 >> Então, eu estou indo para salvar nosso programa de coelho. 1650 01:13:13,180 --> 01:13:16,270 Mais uma vez vamos diminuir o zoom. 1651 01:13:16,270 --> 01:13:19,090 Vamos descer para o nosso terminal. 1652 01:13:19,090 --> 01:13:20,180 Nós vamos limpá-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 vamos fazer o nosso programa de coelho, novamente. 1655 01:13:26,410 --> 01:13:27,690 E nós vamos executá-lo. 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 >> Segure-se, vamos diminuir o zoom. 1659 01:13:34,580 --> 01:13:36,860 Será que eu recebo 10 quadros? 1660 01:13:36,860 --> 01:13:38,970 Bem, como muitos coelhos eu vejo lá em cima? 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 Eu tenho 10 quadros. 1663 01:13:44,820 --> 01:13:46,375 Eles são todos iguais? 1664 01:13:46,375 --> 01:13:47,000 AUDIÊNCIA: É. 1665 01:13:47,000 --> 01:13:48,740 Não. 1666 01:13:48,740 --> 01:13:50,000 >> BRIAN Scassellati: Não. 1667 01:13:50,000 --> 01:13:55,050 Que primeiro, o coelho está longe do lado esquerdo. 1668 01:13:55,050 --> 01:13:57,541 E aqui, o coelho é muito sobre a 1669 01:13:57,541 --> 01:13:58,290 ALTO-FALANTE 29: Certo. 1670 01:13:58,290 --> 01:14:00,502 BRIAN Scassellati: Então, o que eu esqueci de fazer? 1671 01:14:00,502 --> 01:14:01,750 ALTO-FALANTE 30: Iniciar uma nova linha. 1672 01:14:01,750 --> 01:14:04,041 BRIAN Scassellati: Esqueci-me para iniciar uma nova linha, novamente. 1673 01:14:04,041 --> 01:14:05,270 Mesmo erro que eu fiz antes. 1674 01:14:05,270 --> 01:14:07,120 Tudo bem, vamos corrigir isso. 1675 01:14:07,120 --> 01:14:11,690 Agora, eu ainda tenho o código lá para fazer uma nova linha. 1676 01:14:11,690 --> 01:14:13,899 Por que não deu certo? 1677 01:14:13,899 --> 01:14:15,440 ALTO-FALANTE 31: Não é dentro do loop. 1678 01:14:15,440 --> 01:14:17,710 BRIAN Scassellati: Oh, não é dentro do loop. 1679 01:14:17,710 --> 01:14:18,520 Está certo. 1680 01:14:18,520 --> 01:14:20,150 Ele está sentado fora aqui. 1681 01:14:20,150 --> 01:14:23,470 1682 01:14:23,470 --> 01:14:29,050 E o loop for é tudo que está dentro desse texto. 1683 01:14:29,050 --> 01:14:35,500 >> Então, eu estou indo para mover esta dentro do loop for. 1684 01:14:35,500 --> 01:14:39,410 E eu vou Tab na frente dele para mostrar que é no lugar certo. 1685 01:14:39,410 --> 01:14:42,020 E agora, vamos salvá-lo novamente. 1686 01:14:42,020 --> 01:14:44,350 Vamos diminuir o zoom. 1687 01:14:44,350 --> 01:14:45,770 Vamos passar para o nosso terminal. 1688 01:14:45,770 --> 01:14:48,330 1689 01:14:48,330 --> 01:14:50,360 Mais Zoom. 1690 01:14:50,360 --> 01:14:54,050 Nós vamos refazer nosso programa de coelho. 1691 01:14:54,050 --> 01:14:59,070 E agora, agora temos os nossos 10 frames. 1692 01:14:59,070 --> 01:15:00,190 >> [APLAUSO] 1693 01:15:00,190 --> 01:15:02,120 >> BRIAN Scassellati: OK. 1694 01:15:02,120 --> 01:15:04,080 Assim. 1695 01:15:04,080 --> 01:15:08,370 Aqui é o nosso aninhados para loops. 1696 01:15:08,370 --> 01:15:13,140 Fomos capazes de gerar no loop interno quantos pontos eu queria 1697 01:15:13,140 --> 01:15:15,320 para imprimir no início, no final. 1698 01:15:15,320 --> 01:15:21,570 E o circuito externo controlado quantos quadros eu estava construindo. 1699 01:15:21,570 --> 01:15:26,340 Nós começamos com um pouco núcleo do problema, 1700 01:15:26,340 --> 01:15:30,320 e nós construímos a partir desse ponto. 1701 01:15:30,320 --> 01:15:30,820 Tudo certo. 1702 01:15:30,820 --> 01:15:33,500 >> Vamos fazer mais um passo. 1703 01:15:33,500 --> 01:15:35,040 Esta pronto? 1704 01:15:35,040 --> 01:15:38,800 Há uma coisa aqui, onde nós realmente tipo de got 1705 01:15:38,800 --> 01:15:42,180 mais complexidade do que precisamos. 1706 01:15:42,180 --> 01:15:44,700 Vamos dar uma olhada. 1707 01:15:44,700 --> 01:15:52,050 Assim, em nosso programa de coelho, se eu diminuir o zoom aqui, 1708 01:15:52,050 --> 01:15:54,980 Eu realmente fazer algumas das mesmas coisa uma e outra vez. 1709 01:15:54,980 --> 01:15:59,032 O que eu faço que é uma espécie de a mesma coisa repetido duas vezes? 1710 01:15:59,032 --> 01:16:00,310 >> ALTO-FALANTE 32: Imprimir os pontos. 1711 01:16:00,310 --> 01:16:03,526 >> BRIAN Scassellati: Sim Eu imprimir esses pontos duas vezes. 1712 01:16:03,526 --> 01:16:05,710 Realmente, eu deveria ter este comentário aqui embaixo. 1713 01:16:05,710 --> 01:16:09,037 Eu imprimir alguns pontos no começando, certo aqui em cima. 1714 01:16:09,037 --> 01:16:10,620 E então eu imprimir alguns pontos no final. 1715 01:16:10,620 --> 01:16:14,694 E eu faço tipo de exatamente a mesma coisa. 1716 01:16:14,694 --> 01:16:17,110 O que nós estamos indo para começar trabalhando em nas próximas semanas 1717 01:16:17,110 --> 01:16:23,440 é ser capaz de tomar essas blocos de código que usamos uma e outra vez, 1718 01:16:23,440 --> 01:16:25,800 e por meio de um processo de chamado de abstração, 1719 01:16:25,800 --> 01:16:31,100 vamos retirá-los e escrevê-los uma vez para que possamos, em seguida, 1720 01:16:31,100 --> 01:16:35,130 reutilizá-los uma e outra vez. 1721 01:16:35,130 --> 01:16:37,210 Então, vamos tentar isso. 1722 01:16:37,210 --> 01:16:38,220 Pronto? 1723 01:16:38,220 --> 01:16:42,200 >> Nós vamos levar este bloco de código. 1724 01:16:42,200 --> 01:16:45,280 E eu vou tirá-lo de lá. 1725 01:16:45,280 --> 01:16:50,530 E eu vou define-- para baixo, na parte inferior, 1726 01:16:50,530 --> 01:16:53,130 Eu vou escrever uma nova função. 1727 01:16:53,130 --> 01:16:54,750 Ele não vai retornar nada. 1728 01:16:54,750 --> 01:16:58,550 E eu vou chamá-lo printDots. 1729 01:16:58,550 --> 01:17:01,530 >> Vai levar um argumento, um número inteiro que 1730 01:17:01,530 --> 01:17:04,920 diz howManyDots devo imprimir. 1731 01:17:04,920 --> 01:17:09,310 1732 01:17:09,310 --> 01:17:17,720 E agora em vez de imprimir j pontos, eu vou imprimir dizer howManyDots devo imprimir. 1733 01:17:17,720 --> 01:17:21,581 >> E há um pequeno problema aqui. 1734 01:17:21,581 --> 01:17:22,580 Alguém sabe o que é? 1735 01:17:22,580 --> 01:17:27,270 1736 01:17:27,270 --> 01:17:31,505 O que eu tenho que está listado aqui que não está definido? 1737 01:17:31,505 --> 01:17:34,165 1738 01:17:34,165 --> 01:17:35,090 >> AUDIÊNCIA: [inaudível] 1739 01:17:35,090 --> 01:17:37,465 >> BRIAN Scassellati: Bem como muitos pontos é definido à direita 1740 01:17:37,465 --> 01:17:40,584 aqui, mas eu estou usando essa variável i. 1741 01:17:40,584 --> 01:17:43,750 Então eu vou levar essa variável i e eu estou indo para defini-la para baixo aqui 1742 01:17:43,750 --> 01:17:44,610 ao invés. 1743 01:17:44,610 --> 01:17:49,683 >> Então, agora ele vai estadia-- oops, tem o caps lock em somehow-- eu sou 1744 01:17:49,683 --> 01:17:52,060 vai manter i para baixo aqui. 1745 01:17:52,060 --> 01:17:57,050 >> Então agora aqui está a minha pequena função ou sub-rotina, e ele diz, 1746 01:17:57,050 --> 01:18:00,640 quantos pontos é que eu vou imprimir? 1747 01:18:00,640 --> 01:18:05,300 E ele vai passar por este ciclo e imprimi-las uma e outra vez. 1748 01:18:05,300 --> 01:18:10,940 >> Posso, então, modificar meu programa aqui em cima. 1749 01:18:10,940 --> 01:18:12,540 E o que eu chamar essa função? 1750 01:18:12,540 --> 01:18:13,960 printDots. 1751 01:18:13,960 --> 01:18:17,060 Então, eu vou chamar printDots. 1752 01:18:17,060 --> 01:18:21,530 Quantos pontos eu quero imprimir pela primeira vez perante o coelho? 1753 01:18:21,530 --> 01:18:22,030 AUDIÊNCIA: j. 1754 01:18:22,030 --> 01:18:23,230 BRIAN Scassellati: j. 1755 01:18:23,230 --> 01:18:27,110 Quantos pontos eu quero imprimir no final, após o coelho? 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 há uma coisa que eu estou ausente. 1760 01:18:38,010 --> 01:18:43,740 Como você viu na palestra de hoje, vamos declarar printDots 1761 01:18:43,740 --> 01:18:52,430 -se acima para dar o protótipo. 1762 01:18:52,430 --> 01:18:56,740 1763 01:18:56,740 --> 01:18:58,220 ESTÁ BEM. 1764 01:18:58,220 --> 01:19:03,530 >> Então o que eu fiz é que eu tentei isolar a parte reutilizada de código 1765 01:19:03,530 --> 01:19:06,430 que eu fiz uma e outra vez. 1766 01:19:06,430 --> 01:19:11,120 E eu tentei puxá-lo para fora de modo que tudo isso está contido em um só lugar. 1767 01:19:11,120 --> 01:19:16,810 Dessa forma, se eu tenho um erro em algum lugar, Eu só tenho que consertá-lo em um ponto. 1768 01:19:16,810 --> 01:19:17,310 Tudo certo. 1769 01:19:17,310 --> 01:19:18,470 >> Então, vamos salvá-lo. 1770 01:19:18,470 --> 01:19:20,950 E vamos ter certeza que funciona. 1771 01:19:20,950 --> 01:19:22,050 Então, vamos sair. 1772 01:19:22,050 --> 01:19:25,200 Vamos voltar ao nosso terminal. 1773 01:19:25,200 --> 01:19:27,960 Nós vamos ampliar. 1774 01:19:27,960 --> 01:19:31,010 Nós vamos fazer esse processo de coelho. 1775 01:19:31,010 --> 01:19:32,380 >> Oh. 1776 01:19:32,380 --> 01:19:34,800 E isso está me dado um aviso. 1777 01:19:34,800 --> 01:19:37,070 O que é que está me dizendo? 1778 01:19:37,070 --> 01:19:39,870 Bem em qualquer destas vezes, você quer sempre 1779 01:19:39,870 --> 01:19:44,170 para rolar até a primeira error-- agora em um presente, eu só tenho um. 1780 01:19:44,170 --> 01:19:52,700 >> Ela me diz em bunny.c, na linha 8, coluna 9, há um problema. 1781 01:19:52,700 --> 01:19:58,650 Diz, você declarou esta i variável e você não tê-lo usado. 1782 01:19:58,650 --> 01:20:02,230 >> Agora normalmente, isso é não o pior erro. 1783 01:20:02,230 --> 01:20:04,300 Isso é fácil de corrigir. 1784 01:20:04,300 --> 01:20:07,550 E, de fato, podemos voltar no. 1785 01:20:07,550 --> 01:20:09,910 Podemos voltar ao coelho. 1786 01:20:09,910 --> 01:20:13,010 E, neste caso, todos nós tem a fazer é se livrar de mim, 1787 01:20:13,010 --> 01:20:16,630 porque não estamos usando i dentro principal anymore. 1788 01:20:16,630 --> 01:20:19,860 Nós apenas estamos usando- dentro da nossa sub-rotina. 1789 01:20:19,860 --> 01:20:22,777 >> Então, vamos guardar isso. 1790 01:20:22,777 --> 01:20:23,360 Vamos voltar. 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 Vamos mais uma vez fazer coelho. 1794 01:20:30,700 --> 01:20:33,810 1795 01:20:33,810 --> 01:20:36,530 E há de novo são os nossos 10 quadros. 1796 01:20:36,530 --> 01:20:39,450 1797 01:20:39,450 --> 01:20:41,360 ESTÁ BEM. 1798 01:20:41,360 --> 01:20:43,190 >> Toda vez que você está dado um procedure-- Sim. 1799 01:20:43,190 --> 01:20:44,690 ALTO-FALANTE 33: Tenho um-- Estou confuso. 1800 01:20:44,690 --> 01:20:45,892 Você pode voltar para 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 >> ALTO-FALANTE 33: Então, quando você escreveu o seu protótipo, o argumento que você 1804 01:20:54,367 --> 01:20:56,550 tinha-o nomeado foi chamado howMany? 1805 01:20:56,550 --> 01:20:57,540 Mas, below-- 1806 01:20:57,540 --> 01:20:57,640 >> BRIAN Scassellati: Oh yeah. 1807 01:20:57,640 --> 01:20:59,140 >> ALTO-FALANTE 33: --called-lhes algo diferente, eu não entendo. 1808 01:20:59,140 --> 01:21:00,240 >> BRIAN Scassellati: Por eles são diferentes. 1809 01:21:00,240 --> 01:21:01,780 Então essa é uma grande questão. 1810 01:21:01,780 --> 01:21:08,250 Portanto, a questão era, até aqui, eu escrevi howMany, 1811 01:21:08,250 --> 01:21:12,380 e lá embaixo, eu escrevi howManyDots. 1812 01:21:12,380 --> 01:21:15,590 >> A razão é que em seu protótipo, ele realmente não está prestando atenção 1813 01:21:15,590 --> 01:21:17,090 para os nomes que você está colocando em. 1814 01:21:17,090 --> 01:21:20,530 Tudo o que realmente se preocupa com é que é um inteiro. 1815 01:21:20,530 --> 01:21:23,080 Ele quer saber a forma do que você está colocando em. 1816 01:21:23,080 --> 01:21:31,560 >> Agora stylistically-- oops-- o que eu deveria Não, é que eu gosto de fazer essas jogo. 1817 01:21:31,560 --> 01:21:33,150 ESTÁ BEM. 1818 01:21:33,150 --> 01:21:36,430 Porque isso vai ser mantê-lo mais fácil para mim para recordar. 1819 01:21:36,430 --> 01:21:38,390 Mas esse foi o meu erro Sim. 1820 01:21:38,390 --> 01:21:47,620 >> ALTO-FALANTE 34: E assim para o protótipo a funcionar, basta 1821 01:21:47,620 --> 01:21:50,510 escrever essa linha, escrever o protótipo, 1822 01:21:50,510 --> 01:21:53,932 permite que a função que vem logo abaixo dela para ir para a final 1823 01:21:53,932 --> 01:21:55,140 e recuperar o que isso significa? 1824 01:21:55,140 --> 01:21:58,480 >> BRIAN Scassellati: O que isso significa é quando o compilador passa por, 1825 01:21:58,480 --> 01:22:01,930 que vai desde o topo da seu código para o fundo. 1826 01:22:01,930 --> 01:22:05,430 E o que este protótipo é, é que é basicamente uma promessa. 1827 01:22:05,430 --> 01:22:09,570 >> Ele diz, não vai ser uma função definida em algum lugar. 1828 01:22:09,570 --> 01:22:11,880 Vai ser chamados printDots. 1829 01:22:11,880 --> 01:22:15,110 E isso vai levar um argumento que vai ser um inteiro 1830 01:22:15,110 --> 01:22:18,590 e ele vai voltar nada, tipo void. 1831 01:22:18,590 --> 01:22:19,310 ESTÁ BEM. 1832 01:22:19,310 --> 01:22:22,950 Eu prometo a você que vai ser definido em algum lugar abaixo da estrada. 1833 01:22:22,950 --> 01:22:25,590 Mas sempre que você ver que, como você ir para baixo 1834 01:22:25,590 --> 01:22:28,710 através do resto da minha função principal, eu quero 1835 01:22:28,710 --> 01:22:33,800 você tratar isso como uma função que leva uma entrada inteiro. 1836 01:22:33,800 --> 01:22:37,970 >> E assim, quando o compilador vai para baixo por isso, ele vê essa promessa. 1837 01:22:37,970 --> 01:22:40,220 E quando ele fica para baixo, continua indo, continua indo, 1838 01:22:40,220 --> 01:22:43,060 ele encontra pela primeira vez printDots é mencionado. 1839 01:22:43,060 --> 01:22:46,910 E ele diz: Oh, você está dando me este j. j é um número inteiro. 1840 01:22:46,910 --> 01:22:49,570 >> Bem, você me prometeu que iria Ser um inteiro e isso é certo. 1841 01:22:49,570 --> 01:22:51,370 Está ok. 1842 01:22:51,370 --> 01:22:53,880 E, em seguida, finalmente, para baixo na parte inferior, 1843 01:22:53,880 --> 01:22:58,340 antes de eu chegar ao final da minha arquivo, eu fazer bom em minha promessa 1844 01:22:58,340 --> 01:22:59,896 e eu defini-lo. 1845 01:22:59,896 --> 01:23:01,868 ok? 1846 01:23:01,868 --> 01:23:06,320 >> ALTO-FALANTE 35: Então, o saves-- programa vai economizar espaços em branco 1847 01:23:06,320 --> 01:23:09,570 que ele vai voltar e enche no final? 1848 01:23:09,570 --> 01:23:12,140 >> BRIAN Scassellati: Não é sobre a alocação de memória. 1849 01:23:12,140 --> 01:23:16,800 É realmente apenas sobre o que tipo que você está esperando para ver. 1850 01:23:16,800 --> 01:23:19,340 Caso essa coisa ter um argumento ou cinco argumentos? 1851 01:23:19,340 --> 01:23:23,590 Deve tê-lo ser números inteiros que lhe é dado, ou cordas? 1852 01:23:23,590 --> 01:23:25,780 Isso é tudo que ele está olhando a fazer é verificar, 1853 01:23:25,780 --> 01:23:29,303 você está me dando o direito tipo de argumento. 1854 01:23:29,303 --> 01:23:31,560 ok? 1855 01:23:31,560 --> 01:23:32,300 Tudo certo. 1856 01:23:32,300 --> 01:23:38,570 >> Deixe-me deixá-lo com um outro pouco para olhar. 1857 01:23:38,570 --> 01:23:44,850 Arte ASCII não é o grande modelo de animação, como é hoje. 1858 01:23:44,850 --> 01:23:50,850 Mas algumas pessoas, é claro, levar as coisas e empurrá-lo para os seus extremos. 1859 01:23:50,850 --> 01:23:56,790 >> Isto é, como demonstrado David em palestra, um pedaço de código 1860 01:23:56,790 --> 01:24:02,150 que você deve, em nenhuma circunstância tentar duplicar a si mesmos. 1861 01:24:02,150 --> 01:24:05,260 Porque é terrível estilisticamente. 1862 01:24:05,260 --> 01:24:11,180 Na verdade, ele é projetado para ser o mais difícil possível para ler. 1863 01:24:11,180 --> 01:24:11,680 ESTÁ BEM. 1864 01:24:11,680 --> 01:24:16,210 >> Assim, para fazer de novo, vamos fazer zoom aqui. 1865 01:24:16,210 --> 01:24:20,120 Eu estou indo para ir agora, altere o diretório. 1866 01:24:20,120 --> 01:24:24,050 Eu estou indo para ir até um nível, de volta ao meu espaço de trabalho. 1867 01:24:24,050 --> 01:24:29,760 Vou altere o diretório para esta outro diretório que eu criei. 1868 01:24:29,760 --> 01:24:36,190 >> E este é o Internacional Ofuscado C Programação Concurso. 1869 01:24:36,190 --> 01:24:40,650 Meio ofuscado como difícil como possível compreender. 1870 01:24:40,650 --> 01:24:44,150 Então, por favor, não se assuste se você olhar para isso e ir, eu não posso ler isso. 1871 01:24:44,150 --> 01:24:46,350 Esse é o ponto dele. 1872 01:24:46,350 --> 01:24:47,700 ok? 1873 01:24:47,700 --> 01:24:52,770 >> Mas, temos esta programa maravilhoso que eu sou 1874 01:24:52,770 --> 01:24:57,180 indo olhar apenas digitando mais. 1875 01:24:57,180 --> 01:25:01,890 E vamos ver se consigo diminuir o zoom apenas um pouco, para que você possa vê-lo 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 com tipo das letras F-L-L-I-D em que. 1879 01:25:14,850 --> 01:25:16,440 >> Este é na verdade um programa. 1880 01:25:16,440 --> 01:25:20,260 Está escrito no mais obscuro maneira que os autores poderiam possivelmente 1881 01:25:20,260 --> 01:25:21,760 escreva. 1882 01:25:21,760 --> 01:25:29,210 Mas é um pequeno pedaço maravilhoso que gera um modelo de dinâmica de fluidos. 1883 01:25:29,210 --> 01:25:34,870 >> E assim vamos dar que o modelo de uma entrada que 1884 01:25:34,870 --> 01:25:42,520 olha como este, de um staired conjunto de recipientes 1885 01:25:42,520 --> 01:25:45,820 com algum líquido, alguns líquido, no topo. 1886 01:25:45,820 --> 01:25:48,790 E nós vamos ter que simular o que está acontecendo com ele. 1887 01:25:48,790 --> 01:25:52,415 >> Então, eu vou chamar essa função, endo. 1888 01:25:52,415 --> 01:25:59,000 E eu vou dar-lhe que arquivo de entrada que eu tive. 1889 01:25:59,000 --> 01:26:02,830 E não é a nossa epítome da arte ASCII. 1890 01:26:02,830 --> 01:26:08,960 Um simulador de dinâmica de fluidos completo funcionando em apenas algumas linhas de código. 1891 01:26:08,960 --> 01:26:13,750 >> Agora, o que é realmente muito surpreendente sobre este pequeno programa 1892 01:26:13,750 --> 01:26:17,280 é que eu quero parar agora, então eu vou usar o comando? 1893 01:26:17,280 --> 01:26:18,660 >> AUDIÊNCIA: Control-C. 1894 01:26:18,660 --> 01:26:20,390 >> BRIAN Scassellati: Control-C. ESTÁ BEM. 1895 01:26:20,390 --> 01:26:22,960 Então, eu vou usar Control-C. C Isso vai impedi-lo. 1896 01:26:22,960 --> 01:26:25,330 Vou limpar novamente. 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 utilizando-se como entrada. 1899 01:26:33,740 --> 01:26:36,760 1900 01:26:36,760 --> 01:26:42,700 >> E vamos ver a dinâmica de fluidos simulação do mesmo ponto de fusão. 1901 01:26:42,700 --> 01:26:43,830 ESTÁ BEM. 1902 01:26:43,830 --> 01:26:48,180 Por favor, não deixe que o programa ser a coisa que te confunde. 1903 01:26:48,180 --> 01:26:52,220 É apenas para que possamos terminar em algo legal e interessante. 1904 01:26:52,220 --> 01:26:53,930 ESTÁ BEM. 1905 01:26:53,930 --> 01:26:56,330 >> Boa sorte com seus conjuntos de problemas. 1906 01:26:56,330 --> 01:26:59,030 Nós vamos ser felizes para responder perguntas depois da aula. 1907 01:26:59,030 --> 01:27:01,180 Muito obrigado, pessoal. 1908 01:27:01,180 --> 01:27:02,793