1 00:00:00,000 --> 00:00:02,418 >> [Música tocando] 2 00:00:02,418 --> 00:00:10,542 3 00:00:10,542 --> 00:00:12,000 ALLISON Buchholtz-AU: Olá a todos. 4 00:00:12,000 --> 00:00:15,640 Bem-vindo ao seu primeiro seção oficial CS50. 5 00:00:15,640 --> 00:00:19,507 Como você pode, ver isso é seção CS50-like, apenas 6 00:00:19,507 --> 00:00:20,840 para puxar para cima a nossa agenda para hoje. 7 00:00:20,840 --> 00:00:23,990 Então, quem sou eu, como eu tenho certeza você está se perguntando. 8 00:00:23,990 --> 00:00:25,514 Eu sou o seu TF. 9 00:00:25,514 --> 00:00:27,930 Eu não sou apenas um estudante aleatório que está representando o seu TF. 10 00:00:27,930 --> 00:00:31,190 >> E eu vou passar por espécie de ter seções fluirá, 11 00:00:31,190 --> 00:00:34,900 expectativas que temos, recursos, assim por diante e assim por diante. 12 00:00:34,900 --> 00:00:39,190 Nós vamos falar sobre matrizes, ASCII funções, argumentos de linha de comando, 13 00:00:39,190 --> 00:00:42,020 e não é aqui, mas Eu também estará ajudando 14 00:00:42,020 --> 00:00:45,054 você meio que pensar sua próxima pset para esta semana. 15 00:00:45,054 --> 00:00:46,720 O que eu tenho certeza que tudo o que você irá apreciar. 16 00:00:46,720 --> 00:00:48,190 17 00:00:48,190 --> 00:00:53,390 >> Então, primeiro question-- quem sou eu, além de seu TF exuberante aqui. 18 00:00:53,390 --> 00:00:55,390 Estou Alison Buchholtz-Au. 19 00:00:55,390 --> 00:00:57,970 Este é o meu segundo ano TFing CS50. 20 00:00:57,970 --> 00:01:00,570 Eu também TF CS51 na primavera. 21 00:01:00,570 --> 00:01:03,930 Você pode ver novamente lá se você decidir tomar. 22 00:01:03,930 --> 00:01:07,370 Eu também sou um PAF, portanto, qualquer Freshmen-- e se você não é um calouro, 23 00:01:07,370 --> 00:01:09,980 este é o meu terceiro ano como um colega aconselhando. 24 00:01:09,980 --> 00:01:13,630 Eu estou muito bem versado em aconselhando-o sobre a vida e cursos 25 00:01:13,630 --> 00:01:16,549 dentro CS e não dentro de CS. 26 00:01:16,549 --> 00:01:18,090 Eu sou um Concentrador de Ciência Computador. 27 00:01:18,090 --> 00:01:20,800 Eu sou um sénior na Adams House, melhor casa. 28 00:01:20,800 --> 00:01:22,430 29 00:01:22,430 --> 00:01:26,050 E antes que eu mudei para CS minha Sophomore Spring, 30 00:01:26,050 --> 00:01:27,640 Eu estava realmente um engenheiro biomédico. 31 00:01:27,640 --> 00:01:29,020 Eu estava indo para ir para a escola Med. 32 00:01:29,020 --> 00:01:30,530 Eu estava indo para ser um cirurgião de trauma. 33 00:01:30,530 --> 00:01:33,000 E isso tem completamente mudou desde que eu tomei CS50. 34 00:01:33,000 --> 00:01:34,250 35 00:01:34,250 --> 00:01:36,310 Fiz o curso Sophomore minha queda. 36 00:01:36,310 --> 00:01:38,920 Foi a minha primeira introdução ao CS nunca. 37 00:01:38,920 --> 00:01:44,104 Eu era um dos 78% de vocês que tinha zero de experiência chegando, 38 00:01:44,104 --> 00:01:45,520 e ele mudou completamente a minha vida. 39 00:01:45,520 --> 00:01:49,820 E agora eu estou trabalhando em Microsoft, e sua adorável TF. 40 00:01:49,820 --> 00:01:53,500 E CS50 é provavelmente um das melhores experiências 41 00:01:53,500 --> 00:01:56,210 que eu tive aqui no Harvard-- tanto tomar a classe 42 00:01:56,210 --> 00:01:59,040 e ser capaz de ajudar ensinar os alunos como você. 43 00:01:59,040 --> 00:02:01,410 >> Então, eu estou realmente animado que estamos todos aqui. 44 00:02:01,410 --> 00:02:04,270 No caso de você veio em tarde, há doces, 45 00:02:04,270 --> 00:02:07,227 que você deve se sentir livre para vir pegar ou enviar 46 00:02:07,227 --> 00:02:08,560 alguém para agarrá-lo para você. 47 00:02:08,560 --> 00:02:09,399 está certo. 48 00:02:09,399 --> 00:02:10,440 Eu não quero comer isso. 49 00:02:10,440 --> 00:02:13,350 Meu quarto tem bastante chocolate, por isso vocês deveriam tentar terminar isso. 50 00:02:13,350 --> 00:02:16,730 Eu sei que existem 100 peças, mas como, 04:00 na segunda-feira, 51 00:02:16,730 --> 00:02:19,000 Acho que todo mundo poderia usar um pouco de açúcar. 52 00:02:19,000 --> 00:02:21,750 >> Então, todos vocês que são oficialmente na minha seção 53 00:02:21,750 --> 00:02:24,700 deveria ter começado um e-mail de mim com o meu número de telefone, 54 00:02:24,700 --> 00:02:29,920 e-mail address-- sinta-se livre para me adicionar Gchat, sinta-se livre para me adicionar no Facebook, 55 00:02:29,920 --> 00:02:33,360 e também para o resto de vocês, você pode enviar-me bem aqui. 56 00:02:33,360 --> 00:02:34,450 Existem dois H de. 57 00:02:34,450 --> 00:02:37,090 Todo mundo sempre faz como dois L's ou dois c. 58 00:02:37,090 --> 00:02:38,260 Dois H das no sobrenome. 59 00:02:38,260 --> 00:02:41,800 Caso contrário, ele vai saltar e Eu não estou indo para obter o seu e-mail. 60 00:02:41,800 --> 00:02:46,400 >> Portanto, sinta-se livre para me e-mail, entrar em contato comigo a qualquer momento. 61 00:02:46,400 --> 00:02:51,440 Eu não pode voltar a você dentro de 24 minutos, 62 00:02:51,440 --> 00:02:53,760 mas prometo voltar para você dentro de 24 horas. 63 00:02:53,760 --> 00:02:54,900 64 00:02:54,900 --> 00:02:58,067 Se você me chamar de meia hora antes seu pset é devido, sendo assim, 65 00:02:58,067 --> 00:02:59,650 Eu não tenho idéia do que estou fazendo Allison. 66 00:02:59,650 --> 00:03:00,160 Me ajude. 67 00:03:00,160 --> 00:03:04,049 Eu estou indo para acalmá-lo, mas no final do dia, 68 00:03:04,049 --> 00:03:07,340 se você está me chamando de meia hora antes seu pset é devido, sem nada escrito, 69 00:03:07,340 --> 00:03:11,570 Eu vou ser como, bem, talvez é hora de usar esse dia de atraso. 70 00:03:11,570 --> 00:03:15,215 Então eu vou responder a todas as suas solicitações de forma muito oportuna. 71 00:03:15,215 --> 00:03:16,482 72 00:03:16,482 --> 00:03:18,190 Meu telefone é normalmente ligado às minhas mãos. 73 00:03:18,190 --> 00:03:21,530 Eu normalmente respondem muito mais rápido do que 24 horas, 74 00:03:21,530 --> 00:03:25,650 mas só posso garantia uma resposta de 24 horas. 75 00:03:25,650 --> 00:03:26,580 >> Tudo certo. 76 00:03:26,580 --> 00:03:28,410 Então, por que estamos aqui? 77 00:03:28,410 --> 00:03:32,160 Além disso, se você tiver dúvidas em qualquer momento, por favor, deixe-me saber. 78 00:03:32,160 --> 00:03:32,780 Eu falo muito. 79 00:03:32,780 --> 00:03:35,320 Eu falo rápido, mas, por favor sinta-se livre para me interromper. 80 00:03:35,320 --> 00:03:36,980 Dá-me espaço para respirar bem. 81 00:03:36,980 --> 00:03:38,159 82 00:03:38,159 --> 00:03:40,200 Então seções são um tempo para que nós realmente apenas mergulho 83 00:03:40,200 --> 00:03:44,270 em, obter alguns hands-on experiência, a passar por temas que mencionamos 84 00:03:44,270 --> 00:03:49,760 em sala de aula ou em materiais de estudo que recomendamos que vocês online. 85 00:03:49,760 --> 00:03:52,980 E nós vamos realmente passar por alguns desses recursos em um pouco. 86 00:03:52,980 --> 00:03:54,300 87 00:03:54,300 --> 00:03:57,400 >> Por isso, algumas notas sobre o apoio seção. 88 00:03:57,400 --> 00:04:00,250 CS50-- uma das coisas que faz que uma das minhas aulas favoritas 89 00:04:00,250 --> 00:04:02,510 é a sensação de que você nunca está sozinho. 90 00:04:02,510 --> 00:04:05,430 Temos uma equipe de mais de 100 pessoas que estão aqui para ajudá-lo. 91 00:04:05,430 --> 00:04:08,080 Temos o horário de expediente De segunda a quinta-feira. 92 00:04:08,080 --> 00:04:13,230 Portanto, há muitas pessoas que amo a classe tanto quanto eu faço 93 00:04:13,230 --> 00:04:15,750 e quem são realmente aqui porque eles querem estar aqui. 94 00:04:15,750 --> 00:04:19,390 A maioria de nós são estudantes, e este é como uma quinta classe, além 95 00:04:19,390 --> 00:04:20,390 para o resto do nosso trabalho. 96 00:04:20,390 --> 00:04:22,723 >> E é um monte de trabalho, mas nós fazemos isso porque nós amamos isso, 97 00:04:22,723 --> 00:04:25,600 e que realmente gostam de ensinar-lhe e ajudar a compartilhar o nosso entusiasmo 98 00:04:25,600 --> 00:04:27,260 para este assunto e esta classe. 99 00:04:27,260 --> 00:04:28,490 Então por favor, aproveite. 100 00:04:28,490 --> 00:04:29,370 Venha conversar conosco. 101 00:04:29,370 --> 00:04:33,034 Eu ficar sozinha, quando meus alunos não falar comigo, então se você quiser, 102 00:04:33,034 --> 00:04:33,950 vir sair comigo. 103 00:04:33,950 --> 00:04:35,200 Vai ser ótimo. 104 00:04:35,200 --> 00:04:37,400 >> Assim, a secção é obviamente um de seus maiores coisas. 105 00:04:37,400 --> 00:04:41,770 Nós vamos passar por coisas que você aprendeu na aula, 106 00:04:41,770 --> 00:04:44,100 fazer alguns breves exemplos quando temos tempo, 107 00:04:44,100 --> 00:04:46,187 e, em geral de tipo ter uma idéia sobre as coisas 108 00:04:46,187 --> 00:04:48,270 você deve estar pensando sobre para definir o seu problema. 109 00:04:48,270 --> 00:04:49,540 110 00:04:49,540 --> 00:04:53,591 Shorts-- quantas pessoas realmente assisti o vídeo do seu zero 111 00:04:53,591 --> 00:04:54,090 curto? 112 00:04:54,090 --> 00:04:55,460 113 00:04:55,460 --> 00:04:57,390 Alguém me reconhecem? 114 00:04:57,390 --> 00:04:59,720 Portanto, estas são muito grandes. 115 00:04:59,720 --> 00:05:01,210 Você deve definitivamente assistir aqueles. 116 00:05:01,210 --> 00:05:02,880 Um monte de trabalho foi colocado em-los. 117 00:05:02,880 --> 00:05:06,690 E eles estão apenas pretende ser bite-size peças para você simplesmente assistir 118 00:05:06,690 --> 00:05:09,760 por três ou quatro minutos e obter um uma melhor compreensão do conceito. 119 00:05:09,760 --> 00:05:11,147 120 00:05:11,147 --> 00:05:12,980 Caminhe throughs-- como muitas pessoas já assistiram 121 00:05:12,980 --> 00:05:14,880 A caminhada de passagem para os anteriores? 122 00:05:14,880 --> 00:05:16,240 Zamyla é incrível, né? 123 00:05:16,240 --> 00:05:18,100 Tipo, eu desejo que eu era Zamyla vezes. 124 00:05:18,100 --> 00:05:19,650 125 00:05:19,650 --> 00:05:21,640 Então, definitivamente usar seus walk-through. 126 00:05:21,640 --> 00:05:25,070 Ela vai dividi-la em peças, mordida de tamanho pequeno. 127 00:05:25,070 --> 00:05:28,079 E quando você tem estes enormes especificações de seus conjuntos de problemas, 128 00:05:28,079 --> 00:05:30,870 isso vai ser muito importante para ser capaz de simplesmente encontrar um lugar 129 00:05:30,870 --> 00:05:32,600 para começar a trabalhar lentamente e através dele. 130 00:05:32,600 --> 00:05:33,610 131 00:05:33,610 --> 00:05:40,260 >> Tudo bem, nós também temos Study50, que é study50.harvard.edu, eu acredito. 132 00:05:40,260 --> 00:05:42,270 Você pode apenas Google estudar, e ele vai vir para cima. 133 00:05:42,270 --> 00:05:45,750 Esta é uma das mais melhores recursos que temos. 134 00:05:45,750 --> 00:05:49,800 É PowerPoints com notas e praticar problemas para você 135 00:05:49,800 --> 00:05:52,430 com soluções que você pode realmente caminhar. 136 00:05:52,430 --> 00:05:57,000 Então, se você quiser mais prática, mais do que nós em seções ou mais 137 00:05:57,000 --> 00:06:00,700 que seus conjuntos de problemas, este é realmente um lugar que eu encorajá-lo a ir. 138 00:06:00,700 --> 00:06:03,590 Foi construído no verão passado por alguns dos meus bons amigos. 139 00:06:03,590 --> 00:06:04,480 E é incrível. 140 00:06:04,480 --> 00:06:05,540 141 00:06:05,540 --> 00:06:08,670 De facto, muitas das lâminas que eu vou estar usando para a Secção 142 00:06:08,670 --> 00:06:10,190 virá de Study50. 143 00:06:10,190 --> 00:06:12,000 >> Então, um monte de TFs usá-lo. 144 00:06:12,000 --> 00:06:13,920 E, finalmente, como eu mencionado, o horário de expediente. 145 00:06:13,920 --> 00:06:15,836 Se você está tendo problemas com a lição de casa, você está 146 00:06:15,836 --> 00:06:18,270 tendo problemas com um conceito, venha para o horário de expediente. 147 00:06:18,270 --> 00:06:20,190 Vá no início da semana, se puder. 148 00:06:20,190 --> 00:06:23,130 Saia para o quad, porque é tipo de longe. 149 00:06:23,130 --> 00:06:24,780 Ninguém gosta de andar por aí. 150 00:06:24,780 --> 00:06:27,090 Mas é a sua vantagem, porque então você está 151 00:06:27,090 --> 00:06:29,580 vai ter todos estes TFs, [Inaudível] cercam. 152 00:06:29,580 --> 00:06:31,920 E especialmente agora, Apenas uma dica, quintas 153 00:06:31,920 --> 00:06:35,310 são muito frio agora em Mather porque seus Série de Exercícios 154 00:06:35,310 --> 00:06:36,577 são devido às quintas-feiras. 155 00:06:36,577 --> 00:06:38,410 E quer saber usar seus dias de atraso ainda. 156 00:06:38,410 --> 00:06:40,030 >> Então, se você está tendo problemas com conceitos, 157 00:06:40,030 --> 00:06:41,780 há muitas TFs que estão lá para ajudá-lo. 158 00:06:41,780 --> 00:06:43,196 Então venha para Mather na quinta-feira. 159 00:06:43,196 --> 00:06:45,280 Se você quiser me ver, Eu vou estar lá. 160 00:06:45,280 --> 00:06:48,870 Eu estou fazendo a minha própria tipicamente lição de casa, porque ninguém quer a minha ajuda. 161 00:06:48,870 --> 00:06:50,260 Então venha nos ver. 162 00:06:50,260 --> 00:06:51,460 163 00:06:51,460 --> 00:06:52,440 >> Encontre-nos no meio do caminho. 164 00:06:52,440 --> 00:06:55,400 Assim como muitas pessoas já assistiram palestra ou assisti-lo online? 165 00:06:55,400 --> 00:06:56,570 166 00:06:56,570 --> 00:06:59,140 Como muitas pessoas foram para Super seção na semana passada? 167 00:06:59,140 --> 00:07:00,171 168 00:07:00,171 --> 00:07:00,670 Legal. 169 00:07:00,670 --> 00:07:02,190 Isso é realmente um bom número. 170 00:07:02,190 --> 00:07:05,425 Quantos de vocês já leram o seu especificação para esta semana, para o seu pset? 171 00:07:05,425 --> 00:07:07,081 172 00:07:07,081 --> 00:07:08,461 Ooh, eu estou orgulhoso de vocês! 173 00:07:08,461 --> 00:07:09,335 Mais doces para vocês. 174 00:07:09,335 --> 00:07:11,070 175 00:07:11,070 --> 00:07:13,280 >> Bom, então o que queremos dizer "Encontrar-nos a meio caminho", é 176 00:07:13,280 --> 00:07:16,440 que a seção é realmente apenas Vai ser super útil para você 177 00:07:16,440 --> 00:07:19,810 se você entrar em depois de ter lido o seu especificação para o seu pset. 178 00:07:19,810 --> 00:07:23,859 Porque quando eu passar por uma visão geral de coisas que você deve estar olhando para fora, 179 00:07:23,859 --> 00:07:25,650 ele não vai fazer tanto sentido se você 180 00:07:25,650 --> 00:07:28,358 Não sei o que o seu conjunto de problemas vai ser pedindo que você faça. 181 00:07:28,358 --> 00:07:29,020 182 00:07:29,020 --> 00:07:32,590 >> Se você não vir a seção, obviamente Eu não posso ser tão útil. 183 00:07:32,590 --> 00:07:36,600 Eu não vou levá-la pessoalmente se você não vem a minha seção, agora, 184 00:07:36,600 --> 00:07:38,570 mas definitivamente você deve. 185 00:07:38,570 --> 00:07:40,090 Se não for possível, vê-los online. 186 00:07:40,090 --> 00:07:41,230 187 00:07:41,230 --> 00:07:42,519 Eles estão lá por uma razão. 188 00:07:42,519 --> 00:07:43,560 Minas vai estar lá. 189 00:07:43,560 --> 00:07:44,187 190 00:07:44,187 --> 00:07:47,270 Como você pode observar, estamos a ser gravada, por isso vai estar lá para vocês. 191 00:07:47,270 --> 00:07:49,110 192 00:07:49,110 --> 00:07:51,570 Assim, vai lectures-- que é, obviamente, 193 00:07:51,570 --> 00:07:53,790 onde você está recebendo o iniciar o seu material aqui. 194 00:07:53,790 --> 00:07:57,430 Então, com certeza vou tentar ajudá-lo tanto quanto eu puder, 195 00:07:57,430 --> 00:07:58,840 mas eu só posso conhecê-lo tão longe. 196 00:07:58,840 --> 00:08:01,220 Você tem que tipo de nos encontrar no meio do caminho. 197 00:08:01,220 --> 00:08:04,050 >> Grading-- assim, todos vocês que recebi um email de mim, 198 00:08:04,050 --> 00:08:05,445 você é minha seção oficial. 199 00:08:05,445 --> 00:08:06,470 200 00:08:06,470 --> 00:08:08,120 Estarei classificação suas Série de Exercícios. 201 00:08:08,120 --> 00:08:12,870 E eu só quero dizer, uma coisa que você deve realmente prestar atenção ao 202 00:08:12,870 --> 00:08:13,820 são os comentários. 203 00:08:13,820 --> 00:08:17,390 Os comentários são muitas vezes mais útil do que a pontuação real, damos-lhe. 204 00:08:17,390 --> 00:08:19,890 E os comentários são realmente onde eu gasto muito do meu tempo 205 00:08:19,890 --> 00:08:20,770 quando estou de classificação. 206 00:08:20,770 --> 00:08:22,700 Então, eu gostaria de receber se você lê-los. 207 00:08:22,700 --> 00:08:26,990 E eles são, na verdade, como você está indo para aprender mais sobre design e estilo 208 00:08:26,990 --> 00:08:29,860 e as coisas que são um pouco menos cortada e seca. 209 00:08:29,860 --> 00:08:31,770 >> Então, realmente prestar atenção a essas observações. 210 00:08:31,770 --> 00:08:34,720 Se você tiver dúvidas sobre eles, ou perguntas sobre a sua pontuação, 211 00:08:34,720 --> 00:08:37,620 por favor, venha falar comigo quer antes seção, 212 00:08:37,620 --> 00:08:41,039 Eu provavelmente vou ser pendurado para fora no lobby, ou depois. 213 00:08:41,039 --> 00:08:43,559 Se você deseja agendar one-on-one reuniões sobre como 214 00:08:43,559 --> 00:08:46,100 você pode ajudar a melhorar mais tarde conjuntos de problemas, é só me avisar. 215 00:08:46,100 --> 00:08:47,520 216 00:08:47,520 --> 00:08:49,750 >> E, em seguida, apenas um par de dicas para vocês. 217 00:08:49,750 --> 00:08:53,110 Então, uma das coisas mais importantes Eu sempre salientar a minha seção 218 00:08:53,110 --> 00:08:57,700 quando você está aprendendo como fazer o código é para escrever as coisas no papel primeiro. 219 00:08:57,700 --> 00:09:01,080 Se você tem um plano de jogo para onde o seu código precisa ir 220 00:09:01,080 --> 00:09:03,230 eo que ele precisa fazer e ele é discriminado 221 00:09:03,230 --> 00:09:06,000 em pequenos pedaços de pseudocódigo código que você escreveu para fora, 222 00:09:06,000 --> 00:09:09,780 você vai ser menos propensos a cometer erros de sintaxe 223 00:09:09,780 --> 00:09:12,355 ou criar um loop que se não tem uma outra coisa. 224 00:09:12,355 --> 00:09:14,064 225 00:09:14,064 --> 00:09:15,980 Se você sabe onde você está vai global, você está 226 00:09:15,980 --> 00:09:19,764 menos propensos a fazer estes minúsculos erros que, por vezes, irá levá-lo 227 00:09:19,764 --> 00:09:22,555 hora de corrigir, porque você fica tipo, onde estou faltando nessa faixa? 228 00:09:22,555 --> 00:09:23,580 229 00:09:23,580 --> 00:09:27,420 >> Na mesma nota, por favor, use Style50. 230 00:09:27,420 --> 00:09:28,820 231 00:09:28,820 --> 00:09:31,590 Especialmente quando você está indo para o horário de expediente, 232 00:09:31,590 --> 00:09:34,850 se seu código é tudo comutada para um lado, 233 00:09:34,850 --> 00:09:37,740 é política curso que podemos dizer, corrigi-lo 234 00:09:37,740 --> 00:09:41,990 de modo que parece que Style50 diz que deveria, e então nós vamos ajudá-lo. 235 00:09:41,990 --> 00:09:43,830 Por isso vai facilitar a sua vida. 236 00:09:43,830 --> 00:09:45,030 Isso vai facilitar nossas vidas. 237 00:09:45,030 --> 00:09:46,000 Todo mundo está feliz. 238 00:09:46,000 --> 00:09:47,290 Todo mundo fica melhores notas. 239 00:09:47,290 --> 00:09:48,760 Não é isso que todos nós queremos? 240 00:09:48,760 --> 00:09:50,420 241 00:09:50,420 --> 00:09:53,860 >> Então escreva as coisas no papel antes Você sempre toca seu computador. 242 00:09:53,860 --> 00:09:57,540 Falar as coisas a um nível elevado, e certificar-se de que você sabe onde você está indo. 243 00:09:57,540 --> 00:09:59,940 E se você não tiver certeza, sentar-se com alguém 244 00:09:59,940 --> 00:10:03,340 e caminhar com eles através de passo a passo o que o seu código é suposto fazer. 245 00:10:03,340 --> 00:10:07,940 E nove vezes fora de 10, você poderá como, oh, eu esqueci uma condição if 246 00:10:07,940 --> 00:10:12,420 ou eu esqueci uma vírgula aqui ou Estou atualizando esta errado variável. 247 00:10:12,420 --> 00:10:15,740 Portanto, estas são as minhas dicas para o sucesso. 248 00:10:15,740 --> 00:10:19,820 >> Então, já que cerca de metade do que você olhar como você assistiu seção super, 249 00:10:19,820 --> 00:10:24,080 Eu só vou muito brevemente passar por loops, 250 00:10:24,080 --> 00:10:26,650 que não estavam na nossa agenda original. 251 00:10:26,650 --> 00:10:28,190 Mas eles são realmente importantes. 252 00:10:28,190 --> 00:10:30,250 E assim eu vou tipo de velocidade através daqueles 253 00:10:30,250 --> 00:10:32,860 antes de entrar em nossa seção real. 254 00:10:32,860 --> 00:10:36,269 Antes de eu fazer isso, estão lá qualquer perguntas-- logisticamente, 255 00:10:36,269 --> 00:10:38,060 pessoalmente, há qualquer outra coisa que você quer 256 00:10:38,060 --> 00:10:40,990 saber sobre mim ou sobre seção ou turma em geral? 257 00:10:40,990 --> 00:10:43,195 258 00:10:43,195 --> 00:10:43,880 Tudo bem? 259 00:10:43,880 --> 00:10:45,300 OK, legal. 260 00:10:45,300 --> 00:10:46,781 261 00:10:46,781 --> 00:10:47,280 Adorável. 262 00:10:47,280 --> 00:10:50,071 >> Então loops-- vocês todos devem reconhecer essas peças a partir do zero. 263 00:10:50,071 --> 00:10:51,310 264 00:10:51,310 --> 00:10:55,220 Então loops são basicamente apenas uma maneira de fazer algo 265 00:10:55,220 --> 00:10:58,900 um certo número de vezes, alguns repetido ação com base em alguns condicional. 266 00:10:58,900 --> 00:11:00,140 267 00:11:00,140 --> 00:11:02,090 Portanto, temos três tipos diferentes. 268 00:11:02,090 --> 00:11:04,860 Temos loop for, while e do-while. 269 00:11:04,860 --> 00:11:06,430 270 00:11:06,430 --> 00:11:11,320 >> Assim, para loops-- só temos uma muito disposição geral aqui de um loop. 271 00:11:11,320 --> 00:11:16,110 E isso é ótimo para quando você sabe como muitas vezes algo precisa executar. 272 00:11:16,110 --> 00:11:17,040 273 00:11:17,040 --> 00:11:18,790 Quando falamos sobre o outros loops, você vai 274 00:11:18,790 --> 00:11:20,650 ver por que isso é uma distinção importante. 275 00:11:20,650 --> 00:11:22,530 Mas para loops são para algo set. 276 00:11:22,530 --> 00:11:24,590 Você sabe que você pode calcular o número 277 00:11:24,590 --> 00:11:29,230 ou você sabe o número de vezes que você quer este repetido no início. 278 00:11:29,230 --> 00:11:32,220 >> Então, se você vê aqui, nós ter apenas um tipo geral 279 00:11:32,220 --> 00:11:34,480 do quadro esqueleto para um loop aqui. 280 00:11:34,480 --> 00:11:38,080 Assim, para-inicialização, este é o lugar onde suas variáveis ​​são inicializados. 281 00:11:38,080 --> 00:11:41,915 Com Mario, eu tenho certeza que vocês fizeram algo como int i é igual a 0. 282 00:11:41,915 --> 00:11:42,920 283 00:11:42,920 --> 00:11:44,710 É aí que iria acontecer em azul. 284 00:11:44,710 --> 00:11:48,290 Você tem a sua condição, o que é o que é verificado a cada vez. 285 00:11:48,290 --> 00:11:52,410 Se esta condição for verdadeira, então o resto do código é executado. 286 00:11:52,410 --> 00:11:54,749 Em seguida, ele vai correr novamente-- e perguntar. 287 00:11:54,749 --> 00:11:57,290 E depois temos de atualização, onde você está atualizando sua variável. 288 00:11:57,290 --> 00:12:01,410 Então, mais uma vez, com como Mario, eu tenho certeza vocês fizeram algo como i plus plus. 289 00:12:01,410 --> 00:12:04,640 Assim, cada vez que o loop correu, eu tenho atualizado para 290 00:12:04,640 --> 00:12:09,370 que quando estávamos verificando-lo contra alguma condição, ele estava mudando. 291 00:12:09,370 --> 00:12:12,570 >> Porque se você só tem uma variável estática, 292 00:12:12,570 --> 00:12:15,567 se se executa a primeira vez, é só vai executar infinitamente. 293 00:12:15,567 --> 00:12:18,025 Então você tem que ter certeza que você atualizar sua variável corretamente. 294 00:12:18,025 --> 00:12:19,350 295 00:12:19,350 --> 00:12:23,890 E também temos apenas uma representação visual lá. 296 00:12:23,890 --> 00:12:24,930 Todo mundo bom? 297 00:12:24,930 --> 00:12:25,630 Para laçadas. 298 00:12:25,630 --> 00:12:27,540 Deveria ter visto estes em sua pset. 299 00:12:27,540 --> 00:12:28,840 Legal. 300 00:12:28,840 --> 00:12:31,870 >> Então, aqui é apenas um exemplo fácil. 301 00:12:31,870 --> 00:12:32,860 Imprimir Este é CS50! 302 00:12:32,860 --> 00:12:33,360 10 vezes. 303 00:12:33,360 --> 00:12:34,850 304 00:12:34,850 --> 00:12:37,906 E assim temos a nossa inicialização, como vemos lá, com int i 305 00:12:37,906 --> 00:12:41,280 é igual a 0, para i é menos de 10, e eu plus plus. 306 00:12:41,280 --> 00:12:43,090 307 00:12:43,090 --> 00:12:44,540 E vai imprimir que 10 vezes. 308 00:12:44,540 --> 00:12:46,230 309 00:12:46,230 --> 00:12:56,781 >> Assim, enquanto loops-- enquanto loops são grande quando você não faz, necessariamente, 310 00:12:56,781 --> 00:12:59,530 tem que saber quantas vezes é vai atualizar no começo. 311 00:12:59,530 --> 00:13:00,640 312 00:13:00,640 --> 00:13:02,580 Você apenas tem alguns condição que é verificada. 313 00:13:02,580 --> 00:13:09,550 E isso poderia ser algo como while-- vamos dar um exemplo de sua pset. 314 00:13:09,550 --> 00:13:12,540 Se Mario, você tenta entrada de um número negativo. 315 00:13:12,540 --> 00:13:13,270 Certo? 316 00:13:13,270 --> 00:13:15,460 Era para você re-solicitar o seu usuário. 317 00:13:15,460 --> 00:13:20,890 Assim, você pode dizer, bem, se as entradas de usuário algo menos do que zero, re-aviso 318 00:13:20,890 --> 00:13:21,390 -los. 319 00:13:21,390 --> 00:13:23,890 E tenho certeza de que poderia ter foi algo que alguns de vocês 320 00:13:23,890 --> 00:13:24,660 usado em seu código. 321 00:13:24,660 --> 00:13:26,270 >> Então é uma coisa simples. 322 00:13:26,270 --> 00:13:28,490 Você tem tempo, alguns condicional que está marcada 323 00:13:28,490 --> 00:13:30,460 cada vez que o código vai para executar. 324 00:13:30,460 --> 00:13:32,660 Se for avaliado como verdadeiro, nós executá-lo. 325 00:13:32,660 --> 00:13:33,820 Caso contrário, nós não. 326 00:13:33,820 --> 00:13:35,650 E o que é realmente algo importante-- I 327 00:13:35,650 --> 00:13:38,155 acho que David falou sobre em lecture-- são as chaves. 328 00:13:38,155 --> 00:13:40,760 329 00:13:40,760 --> 00:13:42,930 Qualquer que seja de dentro do chaves é o que é executado. 330 00:13:42,930 --> 00:13:45,850 Se você esquecer os suspensórios, que vai apenas 331 00:13:45,850 --> 00:13:48,800 ser a linha direta após esse tempo foi executado. 332 00:13:48,800 --> 00:13:51,040 >> Então, se você tem três coisas que são supostamente 333 00:13:51,040 --> 00:13:54,020 a acontecer quando este condição for avaliada como verdadeira, 334 00:13:54,020 --> 00:13:58,040 e você não tem essas chaves, apenas a primeira coisa que vai acontecer. 335 00:13:58,040 --> 00:14:01,510 Portanto, é muito consciente do onde você colocar suas chaves. 336 00:14:01,510 --> 00:14:04,880 Se você ficar com Style50, isso vai ajudá-lo definitivamente. 337 00:14:04,880 --> 00:14:06,220 338 00:14:06,220 --> 00:14:06,760 Legal. 339 00:14:06,760 --> 00:14:10,835 >> Portanto, esta é uma contagem regressiva de 10 a zero. 340 00:14:10,835 --> 00:14:12,380 341 00:14:12,380 --> 00:14:16,210 E como você vê aqui, nós inicializar alguns contador fora dela. 342 00:14:16,210 --> 00:14:19,250 Uma coisa que é diferente é não estamos inicializando nossa variável 343 00:14:19,250 --> 00:14:20,300 dentro do nosso loop while. 344 00:14:20,300 --> 00:14:22,150 É inicializado fora dela. 345 00:14:22,150 --> 00:14:25,480 Estamos simplesmente colocando o condição em nosso tempo. 346 00:14:25,480 --> 00:14:28,630 Portanto, neste caso, é ao mesmo tempo contagem é maior que zero. 347 00:14:28,630 --> 00:14:35,134 E nós imprimir o que a nossa contagem é, e depois que nós diminuiremos nossa variável. 348 00:14:35,134 --> 00:14:36,800 E isso é também uma outra coisa a notar. 349 00:14:36,800 --> 00:14:40,440 Nossa atualização não acontecer dentro que a primeira parte do loop while. 350 00:14:40,440 --> 00:14:44,255 Ela realmente vai acontecer dentro as chaves, o corpo de seu texto. 351 00:14:44,255 --> 00:14:46,820 352 00:14:46,820 --> 00:14:51,860 >> Portanto, enquanto loops---do-while são grandes para validação do usuário. 353 00:14:51,860 --> 00:14:54,820 Então, alguns de vocês podem ter também usou isso em seu pset. 354 00:14:54,820 --> 00:14:59,960 Você pode dizer, fazer, como, pedir ao usuário para entrada. 355 00:14:59,960 --> 00:15:04,690 E então quando, como, o entrada é menor do que algum número. 356 00:15:04,690 --> 00:15:10,700 >> Assim, para um caso explícito com Mario, ele seria fazer printf, insira um número inteiro, 357 00:15:10,700 --> 00:15:13,820 e, em seguida, algum inteiro é igual getInt. 358 00:15:13,820 --> 00:15:17,060 E então ele vai realmente executar esse código primeiro. 359 00:15:17,060 --> 00:15:19,120 Você realmente vai ter algum tipo de número inteiro. 360 00:15:19,120 --> 00:15:23,380 E então você poderia dizer que, enquanto número inteiro que é menor do que zero. 361 00:15:23,380 --> 00:15:26,120 Então, o que ele vai fazer é que é vai executar pelo menos uma vez. 362 00:15:26,120 --> 00:15:27,536 Ele vai verificar a condição. 363 00:15:27,536 --> 00:15:29,690 Se a condição é verdade, ele vai correr novamente. 364 00:15:29,690 --> 00:15:32,900 >> Então faça-while são ótimo para validação do usuário, 365 00:15:32,900 --> 00:15:36,770 porque você sabe que o código está indo para executar, pelo menos, 366 00:15:36,770 --> 00:15:39,720 uma vez, enquanto que com enquanto loops, você não está 367 00:15:39,720 --> 00:15:41,630 garantido que é indo para executar uma vez. 368 00:15:41,630 --> 00:15:45,330 Ele vai verificar a condição primeiro e depois decidir para executá-lo, 369 00:15:45,330 --> 00:15:48,350 enquanto que um do-while será executar o código em primeiro lugar 370 00:15:48,350 --> 00:15:51,110 e, em seguida, verificar para ver se você precisa repeti-lo. 371 00:15:51,110 --> 00:15:52,985 Será que essa distinção fazer sentido para todos? 372 00:15:52,985 --> 00:15:53,680 373 00:15:53,680 --> 00:15:54,180 Está bem. 374 00:15:54,180 --> 00:15:55,651 375 00:15:55,651 --> 00:15:56,150 Legal. 376 00:15:56,150 --> 00:15:57,380 377 00:15:57,380 --> 00:15:59,800 >> Portanto, neste caso, este é o tipo do que eu estava falando, 378 00:15:59,800 --> 00:16:02,210 esta re-prompts até obter um número positivo. 379 00:16:02,210 --> 00:16:05,060 Então, nós sabemos que printf "Digite um número positivo" 380 00:16:05,060 --> 00:16:08,720 e, na verdade, pedindo que entrada vai acontecer pelo menos uma vez. 381 00:16:08,720 --> 00:16:12,650 Se o usuário estiver mal e mantém digitando um número negativo, que 382 00:16:12,650 --> 00:16:14,210 sabe quantas vezes ele vai executar. 383 00:16:14,210 --> 00:16:17,500 Mas esse código é garantida para executar pelo menos uma vez. 384 00:16:17,500 --> 00:16:20,040 E é por isso que é ótimo para validar a entrada. 385 00:16:20,040 --> 00:16:22,300 E você vai usar isso um pouco. 386 00:16:22,300 --> 00:16:23,870 387 00:16:23,870 --> 00:16:25,830 >> Tudo bem, todas as perguntas até agora? 388 00:16:25,830 --> 00:16:27,080 389 00:16:27,080 --> 00:16:28,030 Estamos todos bem? 390 00:16:28,030 --> 00:16:29,513 Estou falando muito rápido? 391 00:16:29,513 --> 00:16:30,520 392 00:16:30,520 --> 00:16:31,130 Nós somos bons? 393 00:16:31,130 --> 00:16:31,630 Está bem. 394 00:16:31,630 --> 00:16:32,960 395 00:16:32,960 --> 00:16:33,800 Impressionante 396 00:16:33,800 --> 00:16:35,841 >> Então, nós estamos indo para a frente e falar sobre arrays. 397 00:16:35,841 --> 00:16:36,660 398 00:16:36,660 --> 00:16:37,600 Legal. 399 00:16:37,600 --> 00:16:40,700 Assim, as matrizes são basicamente apenas estruturas de dados 400 00:16:40,700 --> 00:16:43,260 que nos permitem armazenar coisas do mesmo tipo. 401 00:16:43,260 --> 00:16:47,920 Então, se você tiver uma matriz, que é ou só vai ter ints 402 00:16:47,920 --> 00:16:51,590 ou ele só vai ter carros alegóricos ou ele só vai ter caracteres. 403 00:16:51,590 --> 00:16:55,440 Você não vai ter um int com um char com um carro alegórico com um casal. 404 00:16:55,440 --> 00:16:56,850 Uma coisa. 405 00:16:56,850 --> 00:17:00,810 Arrays são apenas um tamanho, ou eles são apenas um tipo. 406 00:17:00,810 --> 00:17:05,679 >> Portanto, temos aqui uma matriz de tamanho três com três números inteiros na mesma. 407 00:17:05,679 --> 00:17:07,970 Eles poderiam flutua, mas estamos vai dizer que eles estão inteiros. 408 00:17:07,970 --> 00:17:09,310 409 00:17:09,310 --> 00:17:16,970 Então, uma coisa a perceber é que matrizes são um conjunto de tamanho quando você inicializar 410 00:17:16,970 --> 00:17:22,285 eles, e eles não são easily-- uma vez que todos são menos confortáveis, 411 00:17:22,285 --> 00:17:25,034 você deve apenas pensar neles como não sendo capaz de estender em tamanho. 412 00:17:25,034 --> 00:17:26,119 413 00:17:26,119 --> 00:17:28,740 No entanto grande você definir sua matriz, no início, 414 00:17:28,740 --> 00:17:31,070 que é o tamanho que vai para ficar, porque as matrizes 415 00:17:31,070 --> 00:17:33,070 são blocos contínuos de memória. 416 00:17:33,070 --> 00:17:34,007 417 00:17:34,007 --> 00:17:35,840 E quando vocês se em um pouco mais 418 00:17:35,840 --> 00:17:40,820 de como a memória é realmente dispostas em discos e na pilha ea pilha, 419 00:17:40,820 --> 00:17:42,220 ele vai fazer um pouco mais de sentido. 420 00:17:42,220 --> 00:17:48,310 >> Mas você poderia apenas pensar em como, é apenas uma linha de espaços em seu disco. 421 00:17:48,310 --> 00:17:52,540 E você não pode garantir que não há vai ser o espaço livre depois. 422 00:17:52,540 --> 00:17:55,290 Você pode inicializar uma matriz de três e, em seguida, talvez você 423 00:17:55,290 --> 00:17:59,190 inicializar um outro conjunto de cinco mais tarde, e é logo em seguida. 424 00:17:59,190 --> 00:18:04,000 Então, se você fosse para ir mancha passado três em que a primeira matriz, 425 00:18:04,000 --> 00:18:06,370 você estaria escrevendo sobre outra coisa. 426 00:18:06,370 --> 00:18:10,390 Então matrizes é-- para vocês, apenas considerá-los como um tamanho fixo. 427 00:18:10,390 --> 00:18:12,700 428 00:18:12,700 --> 00:18:16,890 >> Assim, a criação de um array-- você está indo a necessidade de fazer isso um pouco. 429 00:18:16,890 --> 00:18:18,240 430 00:18:18,240 --> 00:18:22,080 Assim, da mesma maneira que temos um estrutura geral para o nosso para loops, 431 00:18:22,080 --> 00:18:24,910 temos um bom geral estrutura para a nossa matriz. 432 00:18:24,910 --> 00:18:28,430 Porque eles são de um tipo, toda a elementos de uma matriz são de um tipo, 433 00:18:28,430 --> 00:18:30,950 você precisa para inicializar o que esse tipo é. 434 00:18:30,950 --> 00:18:33,804 >> Então, como você vê aqui, temos uma bom tipo de dados suporte pouco. 435 00:18:33,804 --> 00:18:35,970 Então, se nós estamos criando um int matriz, que irão ser int. 436 00:18:35,970 --> 00:18:38,830 Se nós estamos criando um char array, que vai ser de char. 437 00:18:38,830 --> 00:18:41,890 Se nós estamos criando uma string array, que vai ser string. 438 00:18:41,890 --> 00:18:45,140 E, em seguida, o nome da sua matriz, o que você gostaria que fosse. 439 00:18:45,140 --> 00:18:51,750 Então talvez seja os resultados dos testes ou talvez é estudantes ou talvez seja doce. 440 00:18:51,750 --> 00:18:54,440 Qualquer que você decidir o nome do seu array, que é o que vai ser. 441 00:18:54,440 --> 00:18:57,260 >> E, em seguida, entre parênteses, você vai tem o tamanho que você deseja. 442 00:18:57,260 --> 00:19:01,350 Então, nós estamos armazenando 10 alunos ou estamos armazenar 15 tipos de doces? 443 00:19:01,350 --> 00:19:03,200 444 00:19:03,200 --> 00:19:03,920 O que não. 445 00:19:03,920 --> 00:19:06,830 Assim, em nosso exemplo aqui, estamos criando um array 446 00:19:06,830 --> 00:19:10,100 de tamanho três, o que vocês veja aqui à direita. 447 00:19:10,100 --> 00:19:11,350 448 00:19:11,350 --> 00:19:15,990 E quando nós primeiro inicializar ele, tudo está definido para zero. 449 00:19:15,990 --> 00:19:18,970 Então ele só pensava de como uma lousa em branco. 450 00:19:18,970 --> 00:19:22,550 Nós temos todos esses espaços, temos tudo essas caixas poderíamos colocar nossos dados em, 451 00:19:22,550 --> 00:19:25,530 mas eles são apenas em branco por enquanto. 452 00:19:25,530 --> 00:19:28,700 >> Portanto, se queremos realmente atribuir-lhes esses valores, 453 00:19:28,700 --> 00:19:33,050 fazemo-lo como bem debaixo aqui mostra. 454 00:19:33,050 --> 00:19:39,170 Então você tem o que quer que o nome do seu matriz é e, em seguida, o índice que você deseja. 455 00:19:39,170 --> 00:19:43,070 Assim, o índice refere-se apenas, como, o slot de que estamos olhando. 456 00:19:43,070 --> 00:19:47,830 E uma coisa importante a notar é que arrays são indexados zero. 457 00:19:47,830 --> 00:19:53,160 Portanto, se queremos o primeiro espaço na memória da nossa matriz, ela vai ser zero. 458 00:19:53,160 --> 00:19:54,740 Se queremos que o segundo, que vai ser um. 459 00:19:54,740 --> 00:19:56,198 Se queremos que a terceira, vai ser dois. 460 00:19:56,198 --> 00:19:57,820 Assim por diante e assim por diante. 461 00:19:57,820 --> 00:20:02,130 >> Que é também por isso que, convencionalmente, quando fazemos para loops-- eu tenho certeza 462 00:20:02,130 --> 00:20:05,030 vocês estavam se perguntando, por que começamos a 0 contra 1? 463 00:20:05,030 --> 00:20:09,909 E isso é porque quando nós fazemos a transição em usar matrizes, ele mapeia corretamente. 464 00:20:09,909 --> 00:20:11,700 Então, se você quiser iteração em uma matriz, que 465 00:20:11,700 --> 00:20:14,830 faz muito mais sentido fazer i é igual a 0, porque nós 466 00:20:14,830 --> 00:20:17,940 sabe que corresponderá para o primeiro local de memória. 467 00:20:17,940 --> 00:20:18,990 468 00:20:18,990 --> 00:20:19,990 Todo mundo bem com isso? 469 00:20:19,990 --> 00:20:21,060 470 00:20:21,060 --> 00:20:21,560 Legal. 471 00:20:21,560 --> 00:20:26,240 >> E, em seguida, na parte inferior aqui é apenas outra maneira de inicializar uma matriz. 472 00:20:26,240 --> 00:20:29,590 Você ainda tem o seu tipo de dados eo nome, 473 00:20:29,590 --> 00:20:31,960 mas em vez de realmente colocar um tamanho de lá, 474 00:20:31,960 --> 00:20:33,830 você pode apenas fazer colchetes vazios. 475 00:20:33,830 --> 00:20:36,350 E, em seguida, com estes encaracolado cintas na parte inferior, 476 00:20:36,350 --> 00:20:40,270 você pode apenas introduzir os dados que você quer separados por vírgulas. 477 00:20:40,270 --> 00:20:43,070 E isso será automaticamente dizer, OK, eu vejo 478 00:20:43,070 --> 00:20:47,300 que você tem três coisas nestas chaves. 479 00:20:47,300 --> 00:20:51,410 Então, eu sei que eu preciso para alocar três blocos de memória e depois armazená-los. 480 00:20:51,410 --> 00:20:55,300 481 00:20:55,300 --> 00:21:01,670 >> Assim, a primeira versão que você pode usar se você está perguntando o usuário a entrada de 482 00:21:01,670 --> 00:21:04,770 valores, de modo que você pode iterar através da matriz 483 00:21:04,770 --> 00:21:07,660 e ask-- obter algum int a entrada deles. 484 00:21:07,660 --> 00:21:10,500 Se você sabe de antemão os valores, faz muito mais sentido 485 00:21:10,500 --> 00:21:12,110 utilizar a segunda forma. 486 00:21:12,110 --> 00:21:17,270 Mas na maioria dos casos, você pode não saber que esses valores vão ser. 487 00:21:17,270 --> 00:21:19,060 488 00:21:19,060 --> 00:21:19,560 Legal. 489 00:21:19,560 --> 00:21:20,393 Alguma outra pergunta? 490 00:21:20,393 --> 00:21:21,206 491 00:21:21,206 --> 00:21:21,705 Tudo bem. 492 00:21:21,705 --> 00:21:25,960 493 00:21:25,960 --> 00:21:30,370 >> Então, acessando elements-- assim um das grandes coisas sobre matrizes 494 00:21:30,370 --> 00:21:33,310 é que eles são aleatórios acesso, o que significa que você 495 00:21:33,310 --> 00:21:36,010 não tem que olhar através de cada bloco. 496 00:21:36,010 --> 00:21:38,150 Se você sabe que você quero o que é no bloco dois, 497 00:21:38,150 --> 00:21:40,820 você pode apenas dizer, dá-me bloquear dois. 498 00:21:40,820 --> 00:21:44,160 E é por isso que estes índices são tão importantes, 499 00:21:44,160 --> 00:21:46,220 e é assim que nós realmente acessá-los. 500 00:21:46,220 --> 00:21:50,660 Portanto, neste caso, como vimos antes, quando estávamos a atribuição de valores, no único 501 00:21:50,660 --> 00:21:55,360 Antes, tínhamos o nome eo índice queríamos acesso, certo? 502 00:21:55,360 --> 00:21:59,370 Assim, da mesma forma, isso é tudo que fazer para que realmente puxar para fora de dados. 503 00:21:59,370 --> 00:22:02,940 Temos o nome e nós tem o índice que queremos. 504 00:22:02,940 --> 00:22:06,710 >> Portanto, neste caso, o loop aqui em baixo, na parte inferior, qualquer um 505 00:22:06,710 --> 00:22:09,060 sabe o que está fazendo, o que seria imprimir? 506 00:22:09,060 --> 00:22:13,771 507 00:22:13,771 --> 00:22:14,270 Mmhmm? 508 00:22:14,270 --> 00:22:17,790 509 00:22:17,790 --> 00:22:18,520 Exatamente. 510 00:22:18,520 --> 00:22:20,130 Então, sim, é só iterar. 511 00:22:20,130 --> 00:22:23,410 i é igual a zero-- podemos caminhar através do código apenas rapidamente. 512 00:22:23,410 --> 00:22:26,680 i é igual a zero, i é menos de três, neste ponto, certo? 513 00:22:26,680 --> 00:22:27,780 Assim que verifica para fora. 514 00:22:27,780 --> 00:22:33,370 E nós dizemos: OK, impressão f o que está na temperatura i. 515 00:22:33,370 --> 00:22:37,990 i é zero aqui quando nós primeiro iteração, então vamos para este primeiro ponto, 516 00:22:37,990 --> 00:22:40,840 e dizemos, OK, 65 é o número que pretende imprimir. 517 00:22:40,840 --> 00:22:43,570 Então, ele vai imprimir 65 e depois fazer uma nova linha. 518 00:22:43,570 --> 00:22:46,550 i irá atualizar, por isso imprime 87. 519 00:22:46,550 --> 00:22:48,780 Ele atualiza novamente, e ele vai imprimir 30. 520 00:22:48,780 --> 00:22:49,810 521 00:22:49,810 --> 00:22:50,630 Todos legal? 522 00:22:50,630 --> 00:22:51,630 523 00:22:51,630 --> 00:22:52,130 Impressionante. 524 00:22:52,130 --> 00:22:54,340 525 00:22:54,340 --> 00:22:54,840 >> Tudo certo. 526 00:22:54,840 --> 00:22:57,710 Então aqui é uma espécie de um coisa que eu estava dizendo como 527 00:22:57,710 --> 00:23:00,020 você pode manter o controle de pontuação de alguém e por isso 528 00:23:00,020 --> 00:23:03,300 você usaria o primeiro modo de inicialização de 529 00:23:03,300 --> 00:23:04,890 em vez de que o segundo caminho. 530 00:23:04,890 --> 00:23:06,620 E isso só vai passar. 531 00:23:06,620 --> 00:23:08,945 E note que temos uma classe de tamanho 30. 532 00:23:08,945 --> 00:23:10,690 533 00:23:10,690 --> 00:23:15,770 E nós estamos inicializando esta matriz de inteiros que é de tamanho 30. 534 00:23:15,770 --> 00:23:18,070 E então nós estamos interagindo através e estamos 535 00:23:18,070 --> 00:23:20,910 pedindo ao usuário para entrada pontuações para cada um destes 536 00:23:20,910 --> 00:23:23,700 e, em seguida, atribuí-lo a um lugar específico na memória 537 00:23:23,700 --> 00:23:24,860 em algum lugar nessa matriz. 538 00:23:24,860 --> 00:23:26,700 539 00:23:26,700 --> 00:23:27,890 Legal? 540 00:23:27,890 --> 00:23:29,650 Isso faz sentido para todos? 541 00:23:29,650 --> 00:23:30,150 Mmhmm? 542 00:23:30,150 --> 00:23:32,910 543 00:23:32,910 --> 00:23:40,360 >> Então hashtag definir o tamanho da classe 30 é um pré-processador diretiva, 544 00:23:40,360 --> 00:23:43,780 que apenas significa que ele tem gets-- fazer como o processo de compilação. 545 00:23:43,780 --> 00:23:47,595 Você pode pensar nisso como uma variável global. 546 00:23:47,595 --> 00:23:49,260 547 00:23:49,260 --> 00:23:53,030 A forma como o fazemos é typically-- ele permite que seu código 548 00:23:53,030 --> 00:23:54,770 para ser mais facilmente alterado. 549 00:23:54,770 --> 00:23:59,480 Então, vamos dizer que o tamanho da classe de repente vai 30-15, 550 00:23:59,480 --> 00:24:03,930 se eu não tivesse definido desta forma, eu o faria tem que passar por todo o meu programa 551 00:24:03,930 --> 00:24:07,420 e mudar a cada instância de 30-15. 552 00:24:07,420 --> 00:24:11,590 Mas com isso, eu tenho que mudar um local, e tudo muda. 553 00:24:11,590 --> 00:24:14,930 >> Se você quiser fazer um hash definir em um caso 554 00:24:14,930 --> 00:24:19,020 onde você está mantendo o controle de alguns definir o número de contagens para uma classe 555 00:24:19,020 --> 00:24:23,250 ou você está usando um número que vai ser utilizado, tal como, 556 00:24:23,250 --> 00:24:27,740 ao longo de um longo programa, é melhor para definir que, no início 557 00:24:27,740 --> 00:24:34,440 de modo que, se alguma vez ele muda, você começa para mudar um ponto em vez de 100. 558 00:24:34,440 --> 00:24:34,940 Sim? 559 00:24:34,940 --> 00:24:39,830 >> ALUNO: entre fazer isso e apenas declarando [inaudível] lá no topo. 560 00:24:39,830 --> 00:24:42,470 >> ALLISON Buchholtz-AU: Então, tem a ver com efficient-- 561 00:24:42,470 --> 00:24:45,460 é uma espécie de fora do escopo o que podemos cobrir nesta seção. 562 00:24:45,460 --> 00:24:49,236 Tem a ver mais com a eficiência e como as coisas realmente 563 00:24:49,236 --> 00:24:50,485 trabalhar no processo de compilação. 564 00:24:50,485 --> 00:24:52,590 565 00:24:52,590 --> 00:24:55,006 Se você quiser realmente saber sobre isso, eu estou feliz em enviar-lhe 566 00:24:55,006 --> 00:24:56,450 um e-mail com os recursos sobre o assunto. 567 00:24:56,450 --> 00:24:57,810 568 00:24:57,810 --> 00:25:03,880 Hash definir tende a ser preferido para as coisas. 569 00:25:03,880 --> 00:25:06,380 E como você codificar mais, você tipo de aprender as nuances 570 00:25:06,380 --> 00:25:09,135 de quando você deve usar um mundial contra o hash definir. 571 00:25:09,135 --> 00:25:11,010 Mas, por enquanto, você realmente não tem 572 00:25:11,010 --> 00:25:13,290 se preocupar com isso é que a resposta curta. 573 00:25:13,290 --> 00:25:15,360 574 00:25:15,360 --> 00:25:16,360 Todo mundo bem com isso? 575 00:25:16,360 --> 00:25:18,151 E também, se você quiser para usar um hash definir, 576 00:25:18,151 --> 00:25:21,120 é realmente importante notar que o nome deve ser em todos os tampões. 577 00:25:21,120 --> 00:25:22,210 578 00:25:22,210 --> 00:25:24,674 Nós não estamos apenas fazendo Classe de tamanho para ser dramático. 579 00:25:24,674 --> 00:25:26,090 Ele realmente deve ser em todos os tampões. 580 00:25:26,090 --> 00:25:27,880 581 00:25:27,880 --> 00:25:28,610 Legal. 582 00:25:28,610 --> 00:25:30,130 Qualquer outra coisa lá? 583 00:25:30,130 --> 00:25:31,190 Nós somos bons? 584 00:25:31,190 --> 00:25:32,220 Adorável. 585 00:25:32,220 --> 00:25:32,720 Seja bem-vindo. 586 00:25:32,720 --> 00:25:34,240 587 00:25:34,240 --> 00:25:38,495 >> OK, então eu quero que vocês vejam para isso e ver se você pode encontrar o erro. 588 00:25:38,495 --> 00:25:45,580 589 00:25:45,580 --> 00:25:46,507 Vou te dar uma dica. 590 00:25:46,507 --> 00:25:47,840 Está em algum lugar em que loop para. 591 00:25:47,840 --> 00:25:53,070 592 00:25:53,070 --> 00:25:53,665 Mmhmm? 593 00:25:53,665 --> 00:25:55,704 >> ALUNO: Deve ser menor ou igual a 2. 594 00:25:55,704 --> 00:25:56,920 595 00:25:56,920 --> 00:26:01,094 >> ALLISON: Assim, poderia ser menor ou igual a 2, ou poderia ser inferior a 3. 596 00:26:01,094 --> 00:26:02,510 E o que é o raciocínio para isso? 597 00:26:02,510 --> 00:26:05,135 >> Estudante: O [inaudível], 0, 1, 2. 598 00:26:05,135 --> 00:26:06,080 >> ALLISON: Exatamente. 599 00:26:06,080 --> 00:26:12,180 Assim, em uma matriz de tamanho n, nós só tem índices de n menos um. 600 00:26:12,180 --> 00:26:13,700 601 00:26:13,700 --> 00:26:14,200 Legal. 602 00:26:14,200 --> 00:26:15,091 603 00:26:15,091 --> 00:26:17,840 E então podemos ficar realmente louco e obter matrizes multi-dimensionais. 604 00:26:17,840 --> 00:26:19,340 605 00:26:19,340 --> 00:26:23,960 Um dos problemas quando eu o levei na minha arrays multi-dimensionais requeridas anos, 606 00:26:23,960 --> 00:26:28,720 e eu acho que um deles pode exigir este ano, assim que seja confortável. 607 00:26:28,720 --> 00:26:30,140 Esquentar a cabeça com isso agora. 608 00:26:30,140 --> 00:26:33,087 Ele vai voltar para assombrá você, mas de uma forma legal. 609 00:26:33,087 --> 00:26:35,420 Então você pode realmente só acho de arrays multidimensionais 610 00:26:35,420 --> 00:26:36,870 como matrizes de matrizes. 611 00:26:36,870 --> 00:26:38,060 612 00:26:38,060 --> 00:26:43,809 Assim, você pode tipo de pensar neste top linha como o primeiro pedaço de memória. 613 00:26:43,809 --> 00:26:45,600 E este é o segundo pedaço de memória, 614 00:26:45,600 --> 00:26:47,570 ea última linha é o terceiro pedaço de memória. 615 00:26:47,570 --> 00:26:50,740 E dentro disso, há uma matriz. 616 00:26:50,740 --> 00:26:53,250 Mas, claro, é mais fácil para descrever como este. 617 00:26:53,250 --> 00:26:55,610 >> Então você inicializa-lo da mesma maneira. 618 00:26:55,610 --> 00:26:57,290 619 00:26:57,290 --> 00:27:01,610 Este é um personagem conselho de três por três. 620 00:27:01,610 --> 00:27:04,180 Então você tem três linhas e três colunas. 621 00:27:04,180 --> 00:27:06,760 Estamos representando desta forma. 622 00:27:06,760 --> 00:27:11,800 E você acessá-lo a mesma forma, a coluna por linha. 623 00:27:11,800 --> 00:27:14,840 E assim 1,1 como vemos aqui. 624 00:27:14,840 --> 00:27:18,730 Nós atribuímos um zero, zero, lá em cima. 625 00:27:18,730 --> 00:27:21,900 2,0 e 0,2. 626 00:27:21,900 --> 00:27:26,900 Então, você teria apenas que acessar eles-- se alguém já fez álgebra linear, 627 00:27:26,900 --> 00:27:31,580 Da mesma forma que você acessar um elemento em um matrice, é a mesma idéia aqui. 628 00:27:31,580 --> 00:27:33,030 Assim, você pode relacioná-la de volta à matemática. 629 00:27:33,030 --> 00:27:34,130 630 00:27:34,130 --> 00:27:36,380 Você não precisa se preocupar muito muito sobre isso agora. 631 00:27:36,380 --> 00:27:38,671 É bom ter uma exposição, para saber que você pode fazê-lo. 632 00:27:38,671 --> 00:27:42,700 Você pode criar alguns louco number-- que puder 633 00:27:42,700 --> 00:27:44,750 criar matrizes louco é tudo o que eu vou dizer. 634 00:27:44,750 --> 00:27:45,250 [Inaudível] 635 00:27:45,250 --> 00:27:46,585 636 00:27:46,585 --> 00:27:48,460 Ele fica um pouco louco, mas é muito legal. 637 00:27:48,460 --> 00:27:50,020 638 00:27:50,020 --> 00:27:50,670 Impressionante. 639 00:27:50,670 --> 00:27:52,550 >> E então, por isso temos um exemplo aqui. 640 00:27:52,550 --> 00:27:54,165 Ele calcula um comprimento de corda. 641 00:27:54,165 --> 00:27:55,210 642 00:27:55,210 --> 00:27:59,670 Assim como muitas pessoas sabiam que as cordas que você está usando 643 00:27:59,670 --> 00:28:01,265 são apenas conjuntos de caracteres? 644 00:28:01,265 --> 00:28:03,670 645 00:28:03,670 --> 00:28:04,655 OK, sim. 646 00:28:04,655 --> 00:28:08,000 Então vocês podem pensar que você não tem matrizes usado antes, mas a qualquer momento 647 00:28:08,000 --> 00:28:10,740 você usa getString no Biblioteca CSView, você está 648 00:28:10,740 --> 00:28:14,690 na verdade, apenas a pedir uma matriz de caracteres. 649 00:28:14,690 --> 00:28:17,450 E nós estamos cuidando de tudo que no back-end para você. 650 00:28:17,450 --> 00:28:20,184 Mas você estiver usando matrizes desde que você começou. 651 00:28:20,184 --> 00:28:21,350 Você só não sabe disso ainda. 652 00:28:21,350 --> 00:28:22,420 653 00:28:22,420 --> 00:28:28,390 >> E sempre que você tem um array de caracteres ou uma matriz que está armazenando uma string, 654 00:28:28,390 --> 00:28:32,050 a última coisa que é sempre o que é chamado um terminador nulo, o que 655 00:28:32,050 --> 00:28:33,830 é este aqui. 656 00:28:33,830 --> 00:28:37,300 E que é no final do cada palavra que você está armazenando. 657 00:28:37,300 --> 00:28:41,170 Portanto, se queremos descobrir a comprimento de uma string, podemos dizer, 658 00:28:41,170 --> 00:28:45,320 bem, você sabe, o conteúdo desse bloco 659 00:28:45,320 --> 00:28:46,867 não é igual ao nosso terminador nulo. 660 00:28:46,867 --> 00:28:49,450 Isso significa que há alguma personagem lá que nós realmente 661 00:28:49,450 --> 00:28:51,540 se preocupam com isso é parte da palavra. 662 00:28:51,540 --> 00:28:52,665 Você aumenta o seu comprimento. 663 00:28:52,665 --> 00:28:55,540 E então, quando nós realmente começar a o final da palavra, ele vai terminar 664 00:28:55,540 --> 00:28:58,790 e ele vai voltar a nossa comprimento para nós. 665 00:28:58,790 --> 00:29:00,098 Mmhmm? 666 00:29:00,098 --> 00:29:02,906 >> ALUNO: Será que o espaço contam como o terminador nulo? 667 00:29:02,906 --> 00:29:04,780 ALLISON: Então é um espaço não um terminador nulo. 668 00:29:04,780 --> 00:29:10,590 Então se você tem um espaço multiple-- é, na verdade, um valor ASCII específica. 669 00:29:10,590 --> 00:29:11,719 670 00:29:11,719 --> 00:29:13,552 Estudante: Qual é a exclamação igual de novo? 671 00:29:13,552 --> 00:29:17,080 ALLISON: Então, é isso que você se refere. 672 00:29:17,080 --> 00:29:21,220 Se você nunca me ouve em horário de expediente, Eu sempre chamá-lo, como, estrondo igual. 673 00:29:21,220 --> 00:29:23,520 Então bang não é. 674 00:29:23,520 --> 00:29:25,370 Portanto, este não é igual. 675 00:29:25,370 --> 00:29:28,480 676 00:29:28,480 --> 00:29:32,290 Então, se você está tentando ver se algo é falso, 677 00:29:32,290 --> 00:29:35,915 você sabe que sempre faz, o que quer que estrondo a variável é, e se é falsa, 678 00:29:35,915 --> 00:29:38,540 que avalia a verdade e você pode fazer coisas legais com isso. 679 00:29:38,540 --> 00:29:39,830 680 00:29:39,830 --> 00:29:40,675 Mais sobre isso mais tarde. 681 00:29:40,675 --> 00:29:42,090 682 00:29:42,090 --> 00:29:42,590 Legal. 683 00:29:42,590 --> 00:29:44,260 Tudo de bom lá? 684 00:29:44,260 --> 00:29:44,760 Impressionante. 685 00:29:44,760 --> 00:29:48,045 >> Portanto, agora é o tempo dos seus rapazes para trabalhar, já que eu tenho falado. 686 00:29:48,045 --> 00:29:49,220 687 00:29:49,220 --> 00:29:53,200 Então, eu quero que você apenas criar uma matriz com os números inteiros de um, dois e três, 688 00:29:53,200 --> 00:29:54,660 e, em seguida, tê-los impressos. 689 00:29:54,660 --> 00:29:58,050 Você não tem que fazer, como, principal, blah, blah, blah, o que for. 690 00:29:58,050 --> 00:30:00,840 Eu só quero que você inicializar a matriz e, em seguida, criar 691 00:30:00,840 --> 00:30:04,790 um loop for para imprimi-los out-- ou um loop while, até você. 692 00:30:04,790 --> 00:30:07,600 >> Eu vou dar-lhe um par minutos para trabalhar nisso. 693 00:30:07,600 --> 00:30:09,320 Vou descansar minha voz. 694 00:30:09,320 --> 00:30:13,290 Se você tiver alguma dúvida, eu estou feliz para vir ao redor e falar com vocês. 695 00:30:13,290 --> 00:30:15,290 Sinta-se livre para falar uns com os outros. 696 00:30:15,290 --> 00:30:16,125 Obtenha mais doces. 697 00:30:16,125 --> 00:30:17,181 698 00:30:17,181 --> 00:30:18,930 Na verdade, eu vou andar por aí com doces. 699 00:30:18,930 --> 00:30:19,600 Como é isso? 700 00:30:19,600 --> 00:30:22,974 701 00:30:22,974 --> 00:30:23,938 >> Você quer algum? 702 00:30:23,938 --> 00:30:34,703 703 00:30:34,703 --> 00:30:36,675 Qualquer outra pessoa nesta sala quero doces? 704 00:30:36,675 --> 00:30:47,030 705 00:30:47,030 --> 00:30:49,206 Você também pode ter mais de um, gente. 706 00:30:49,206 --> 00:30:50,330 Pegue um punhado se quiser. 707 00:30:50,330 --> 00:30:52,690 708 00:30:52,690 --> 00:30:53,190 Maio também. 709 00:30:53,190 --> 00:30:54,929 710 00:30:54,929 --> 00:30:55,720 Todos boa pessoa? 711 00:30:55,720 --> 00:30:57,561 712 00:30:57,561 --> 00:30:58,060 Está bem. 713 00:30:58,060 --> 00:31:02,750 714 00:31:02,750 --> 00:31:07,290 >> Além disso, eu estou indo para criar Google uma forma anónima, 715 00:31:07,290 --> 00:31:09,830 e vocês podem apenas enviar feedback após cada seção 716 00:31:09,830 --> 00:31:14,115 se há algo que você quer melhorar ou algo que você quer fazer. 717 00:31:14,115 --> 00:31:17,135 Se eu sou um pouco enérgico para você, eu posso falar mais baixo. 718 00:31:17,135 --> 00:31:18,510 719 00:31:18,510 --> 00:31:20,885 Eu vou criar essa e enviar que para todos vocês depois. 720 00:31:20,885 --> 00:32:39,420 721 00:32:39,420 --> 00:32:40,020 >> Tudo certo. 722 00:32:40,020 --> 00:32:41,050 Então, vamos começar pequeno. 723 00:32:41,050 --> 00:32:42,740 Como poderíamos iniciar nossa matriz? 724 00:32:42,740 --> 00:32:49,690 725 00:32:49,690 --> 00:32:51,670 Qual é o tipo de nossa matriz? 726 00:32:51,670 --> 00:32:52,410 Um int, certo? 727 00:32:52,410 --> 00:32:54,740 OK, então o que você quer para chamar a sua matriz? 728 00:32:54,740 --> 00:32:57,880 729 00:32:57,880 --> 00:32:59,230 Int matriz, legal. 730 00:32:59,230 --> 00:33:04,200 Tudo bem, então temos int int matriz é igual, eo que nós temos depois disso? 731 00:33:04,200 --> 00:33:07,009 732 00:33:07,009 --> 00:33:08,259 Estudante: [inaudível] colchetes. 733 00:33:08,259 --> 00:33:09,140 ALLISON: Cintas. 734 00:33:09,140 --> 00:33:10,330 735 00:33:10,330 --> 00:33:11,775 E então, dentro das chaves? 736 00:33:11,775 --> 00:33:14,360 737 00:33:14,360 --> 00:33:16,830 Uma vírgula dois vírgula três. 738 00:33:16,830 --> 00:33:17,330 Legal. 739 00:33:17,330 --> 00:33:18,660 Então está tudo bem. 740 00:33:18,660 --> 00:33:21,480 Portanto, agora temos nosso loop for. 741 00:33:21,480 --> 00:33:24,180 Assim, na primeira parte do nosso loop for, o que temos? 742 00:33:24,180 --> 00:33:25,796 743 00:33:25,796 --> 00:33:27,420 >> ALUNO: i é igual a 0? 744 00:33:27,420 --> 00:33:31,400 >> ALLISON: Então int i é igual a 0, e então o que é a nossa condição? 745 00:33:31,400 --> 00:33:33,750 746 00:33:33,750 --> 00:33:36,120 O que eu vai ser menos do que? 747 00:33:36,120 --> 00:33:39,510 Menos de três anos, e como nós vamos atualizar i? 748 00:33:39,510 --> 00:33:41,630 i plus plus, atualizando-o por um. 749 00:33:41,630 --> 00:33:46,150 E então nós vamos ter alguns printf do número inteiro, 750 00:33:46,150 --> 00:33:49,530 eo que é que a última parte que é realmente 751 00:33:49,530 --> 00:33:51,370 vai dizer o que deve ser a impressão? 752 00:33:51,370 --> 00:33:55,610 753 00:33:55,610 --> 00:33:59,120 Seria o nome do array, que é int array, certo? 754 00:33:59,120 --> 00:34:01,090 E o que é nos suportes de int array? 755 00:34:01,090 --> 00:34:02,540 756 00:34:02,540 --> 00:34:03,640 Eu. 757 00:34:03,640 --> 00:34:06,550 [? Então eu?] Chamou meu exemplo, mas lá vai. 758 00:34:06,550 --> 00:34:07,939 759 00:34:07,939 --> 00:34:08,480 Não é tão ruim. 760 00:34:08,480 --> 00:34:09,250 Todo mundo bom? 761 00:34:09,250 --> 00:34:10,220 762 00:34:10,220 --> 00:34:10,719 Legal. 763 00:34:10,719 --> 00:34:12,949 764 00:34:12,949 --> 00:34:14,340 >> Assim, estamos a fazer com as matrizes. 765 00:34:14,340 --> 00:34:15,190 Parabéns. 766 00:34:15,190 --> 00:34:18,274 Você conseguiu iteração através de todos as-- sim? 767 00:34:18,274 --> 00:34:19,705 >> Estudante: [inaudível] 768 00:34:19,705 --> 00:34:20,659 >> ALLISON: Sim. 769 00:34:20,659 --> 00:34:26,383 770 00:34:26,383 --> 00:34:27,798 >> ALUNO: Eu tenho uma pergunta. 771 00:34:27,798 --> 00:34:30,288 Você deveria recuar as chaves? 772 00:34:30,288 --> 00:34:34,150 >> ALLISON: Então as chaves devem alinhar com o loop for, e então tudo 773 00:34:34,150 --> 00:34:35,699 dentro das chaves deve ser recuado. 774 00:34:35,699 --> 00:34:37,824 >> ALUNO: OK, se o loop ser recuado? 775 00:34:37,824 --> 00:34:41,159 >> ALLISON: O laço não precisa de ser recuado neste ponto. 776 00:34:41,159 --> 00:34:46,750 Se você estivesse no principal, se nós realmente tinha uma função principal aqui, 777 00:34:46,750 --> 00:34:48,929 seria recuado da principal. 778 00:34:48,929 --> 00:34:52,590 Mas, neste caso, está tudo bem. 779 00:34:52,590 --> 00:34:53,354 Sim, pergunta. 780 00:34:53,354 --> 00:34:55,687 >> ALUNO: Você precisa ter os colchetes após exemplo? 781 00:34:55,687 --> 00:34:59,050 782 00:34:59,050 --> 00:35:01,260 >> ALLISON: Sim, se você estiver inicializando-lo dessa forma. 783 00:35:01,260 --> 00:35:03,430 784 00:35:03,430 --> 00:35:06,860 Então lembre-se, este é o segundo maneira de inicializar um array onde 785 00:35:06,860 --> 00:35:10,680 temos as chaves e, em seguida, o nosso real dados separados por vírgulas dentro. 786 00:35:10,680 --> 00:35:14,700 787 00:35:14,700 --> 00:35:17,281 >> ESTUDANTE: Eu pensei que havia suportes para esse exemplo. 788 00:35:17,281 --> 00:35:19,010 >> ALLISON: Não, eles são chaves. 789 00:35:19,010 --> 00:35:20,039 Eles são chaves. 790 00:35:20,039 --> 00:35:22,330 Se você está inicializando-lo que a segunda maneira, é suspensórios. 791 00:35:22,330 --> 00:35:28,780 Se fôssemos dizer, int example-- se nós só queríamos uma matriz em branco para ints, 792 00:35:28,780 --> 00:35:32,270 seria exemplo int três suportes. 793 00:35:32,270 --> 00:35:34,670 Os parênteses representam o tamanho. 794 00:35:34,670 --> 00:35:36,720 Quando você tem chaves, é os dados reais 795 00:35:36,720 --> 00:35:39,244 você está colocando nela dessa maneira. 796 00:35:39,244 --> 00:35:40,535 Podemos rolar para trás muito rápido. 797 00:35:40,535 --> 00:35:42,370 798 00:35:42,370 --> 00:35:48,010 >> Então, em um presente, esta é apenas a nossa matriz inicial, a inicialização. 799 00:35:48,010 --> 00:35:51,640 E aqui, nós somos individualmente atribuição de pontos para eles, 800 00:35:51,640 --> 00:35:56,730 de modo que este representa o índice do nosso array, que é por isso que temos suportes. 801 00:35:56,730 --> 00:36:01,630 Mas aqui, se você observar, nós temos deixou nossos suportes sem tamanho, 802 00:36:01,630 --> 00:36:05,969 e inicialize-o com o dados reais all-in-one com suspensórios. 803 00:36:05,969 --> 00:36:08,260 Estudante: Então por que não temos colchetes neste exemplo? 804 00:36:08,260 --> 00:36:11,030 ALLISON: Então, em que parte? 805 00:36:11,030 --> 00:36:14,645 Estudante: não iríamos digamos, exemplo int suportes 806 00:36:14,645 --> 00:36:19,710 é igual chaves [inaudível] colchetes, por exemplo. 807 00:36:19,710 --> 00:36:20,900 >> ALLISON: Oh, desculpe. 808 00:36:20,900 --> 00:36:21,560 Você está certo. 809 00:36:21,560 --> 00:36:22,690 Temos suportes lá. 810 00:36:22,690 --> 00:36:23,486 Sorry guys, meu mau. 811 00:36:23,486 --> 00:36:25,150 812 00:36:25,150 --> 00:36:27,560 Sim, você deve ter entre parênteses após exemplo. 813 00:36:27,560 --> 00:36:28,850 Você está absolutamente certo. 814 00:36:28,850 --> 00:36:29,750 >> Estudante: [inaudível] não fazê-lo. 815 00:36:29,750 --> 00:36:31,270 >> ALLISON: Não, você tem que ter suportes, porque caso contrário, é 816 00:36:31,270 --> 00:36:32,810 não vai declarar uma matriz. 817 00:36:32,810 --> 00:36:33,685 Estudante: [inaudível]. 818 00:36:33,685 --> 00:36:34,200 Desculpe por isso. 819 00:36:34,200 --> 00:36:36,200 >> ALLISON: Desculpe, mas você precisa entre parênteses após exemplo. 820 00:36:36,200 --> 00:36:36,620 821 00:36:36,620 --> 00:36:37,120 Typo. 822 00:36:37,120 --> 00:36:40,650 823 00:36:40,650 --> 00:36:43,160 Boa captura, estrela do ouro para você. 824 00:36:43,160 --> 00:36:47,730 Além disso, se você está fazendo uma pergunta, se vocês só iria me dizer seus nomes, 825 00:36:47,730 --> 00:36:48,570 Eu adoraria isso. 826 00:36:48,570 --> 00:36:50,630 Eu adoraria ser capaz de conhecer todos os seus nomes. 827 00:36:50,630 --> 00:36:53,187 Eu não estou indo para o frio chamá-lo, eu realmente 828 00:36:53,187 --> 00:36:54,520 quero apenas saber seus nomes. 829 00:36:54,520 --> 00:36:57,530 Então, por favor, na verdade, me diga seus nomes. 830 00:36:57,530 --> 00:36:58,426 >> LEAH: Leah. 831 00:36:58,426 --> 00:36:59,340 >> ALLISON: Leah. 832 00:36:59,340 --> 00:37:03,960 OK, então eu sei funções no passado em breve eles falaram sobre isso durante a palestra. 833 00:37:03,960 --> 00:37:07,590 Assim, as funções são uma espécie de apenas como essas coisas pequenas do tamanho da mordida 834 00:37:07,590 --> 00:37:11,525 onde você passar em insumos, algo mágico acontece, e você terá saídas. 835 00:37:11,525 --> 00:37:12,680 836 00:37:12,680 --> 00:37:13,180 Legal. 837 00:37:13,180 --> 00:37:15,013 Então você realmente usado um Muitos destes já. 838 00:37:15,013 --> 00:37:15,970 839 00:37:15,970 --> 00:37:18,840 Obter int, obter corda, impressão f. 840 00:37:18,840 --> 00:37:21,790 Estas são todas as funções onde você acabou de chamá-los, 841 00:37:21,790 --> 00:37:24,370 há muitas coisas mágicas acontecendo no fundo 842 00:37:24,370 --> 00:37:27,390 que você não necessariamente ver, e você terá o que você quer. 843 00:37:27,390 --> 00:37:30,280 Ou pelo menos você começa o que você espera que você quer. 844 00:37:30,280 --> 00:37:31,920 845 00:37:31,920 --> 00:37:35,620 >> E, basicamente, o ponto de funções, e um dos principais temas do CS, 846 00:37:35,620 --> 00:37:38,700 é quebrar o seu código em partes gerenciáveis. 847 00:37:38,700 --> 00:37:41,520 Quando você começar a escrever estes programas muito longos, 848 00:37:41,520 --> 00:37:44,970 ou em risco quando você tinha esta grande idéia para um jogo, 849 00:37:44,970 --> 00:37:48,070 você precisa ser capaz de quebrá-lo para baixo, como, OK, como faço para começar? 850 00:37:48,070 --> 00:37:50,470 Quais são as pequenas peças que eu preciso? 851 00:37:50,470 --> 00:37:53,320 Oh, eu preciso perguntar a usuário para alguma coisa. 852 00:37:53,320 --> 00:37:54,830 Agora eu preciso imprimir algo. 853 00:37:54,830 --> 00:37:56,590 Oh, eu preciso calcular esse valor. 854 00:37:56,590 --> 00:38:00,050 >> E aprender a quebrar o seu código e os grandes problemas que você 855 00:38:00,050 --> 00:38:02,740 ter para estes pequenos pedaços e criação de funções 856 00:38:02,740 --> 00:38:05,330 é, na verdade, um dos grandes pilares da CS. 857 00:38:05,330 --> 00:38:06,440 858 00:38:06,440 --> 00:38:11,740 Assim, você pode pensar em uma função tão como uma caixa preta, uma caixa preta mágica, 859 00:38:11,740 --> 00:38:15,030 que você colocar as coisas em e você terá alguma saída. 860 00:38:15,030 --> 00:38:16,290 861 00:38:16,290 --> 00:38:19,460 E o resto do programa não precisa saber necessariamente 862 00:38:19,460 --> 00:38:21,150 o que está acontecendo dentro dessa caixa preta. 863 00:38:21,150 --> 00:38:24,190 Tudo o que interessa é o que entra eo que sai. 864 00:38:24,190 --> 00:38:26,230 865 00:38:26,230 --> 00:38:26,730 Legal. 866 00:38:26,730 --> 00:38:27,820 >> Então, por que funciona? 867 00:38:27,820 --> 00:38:33,240 Organization-- como eu disse, quando você está lidar com grandes bases de código, 868 00:38:33,240 --> 00:38:37,357 como você organiza seu código será muito mais fácil se você usar funções. 869 00:38:37,357 --> 00:38:39,190 Porque você vai ser capaz ser, como, OK isso, 870 00:38:39,190 --> 00:38:41,849 é o que essa função faz e aqui está o que outro faz. 871 00:38:41,849 --> 00:38:43,890 E você pode facilmente ver como todos eles se encaixam. 872 00:38:43,890 --> 00:38:45,590 873 00:38:45,590 --> 00:38:48,210 Então, dividindo-o em tudo essas subpartes gerenciáveis. 874 00:38:48,210 --> 00:38:51,860 >> Então simplification-- eu tenho certeza que vocês todos viram isso, como eu disse, com o Scratch. 875 00:38:51,860 --> 00:38:53,230 876 00:38:53,230 --> 00:38:56,790 Você tem essa grande idéia, e você é como, como é que todo esse trabalho? 877 00:38:56,790 --> 00:38:59,710 Mas se você se aproxima dele fragmentada, você diz, OK, 878 00:38:59,710 --> 00:39:03,650 como eu faço um duende flutuam pela tela? 879 00:39:03,650 --> 00:39:04,805 Isso é um pouco mais fácil. 880 00:39:04,805 --> 00:39:06,000 881 00:39:06,000 --> 00:39:09,590 Então, bom uso da função marcas seu código muito mais fácil de ler. 882 00:39:09,590 --> 00:39:13,800 Ela torna mais fácil de depurar que como você entrar em seus conjuntos de problemas posteriores, 883 00:39:13,800 --> 00:39:15,900 você vai realmente quer ser capaz de fazer. 884 00:39:15,900 --> 00:39:17,900 E eles são também mais fácil para projetar e implementar. 885 00:39:17,900 --> 00:39:21,100 Você pode codificar-se uma pequena funcionar de modo relativamente rápido 886 00:39:21,100 --> 00:39:25,260 e ter certeza que trabalha contra a tentar para criar todo este programa de longo 887 00:39:25,260 --> 00:39:28,960 e, em seguida, tipo de percorrer e ver o que está funcionando eo que não é. 888 00:39:28,960 --> 00:39:30,300 >> E, em seguida, a capacidade de reutilização. 889 00:39:30,300 --> 00:39:33,380 Então funções só precisa para ser escritos uma vez, 890 00:39:33,380 --> 00:39:35,586 e então você pode usá-los tantas vezes quanto possível. 891 00:39:35,586 --> 00:39:37,210 Então, é, assim, em um sentido ecológico. 892 00:39:37,210 --> 00:39:39,660 893 00:39:39,660 --> 00:39:42,070 Se você tivesse coisas como impressão f, onde você 894 00:39:42,070 --> 00:39:47,420 tinha que escrever a magia que vai por trás de imprimir f cada vez 895 00:39:47,420 --> 00:39:51,040 você queria imprimir algo, você seria muito doente e cansado dele 896 00:39:51,040 --> 00:39:51,650 até ao final. 897 00:39:51,650 --> 00:39:52,660 898 00:39:52,660 --> 00:39:55,292 >> Uma das coisas que você vai aprender em aulas posteriores CS, 899 00:39:55,292 --> 00:39:57,000 ou um dos melhores conselhos que recebo 900 00:39:57,000 --> 00:40:00,870 é, se você está copiando e colando código, ele provavelmente deve ser uma função. 901 00:40:00,870 --> 00:40:01,880 902 00:40:01,880 --> 00:40:06,007 Se você tem exatamente o mesmo todas as linhas em todo o seu código, 903 00:40:06,007 --> 00:40:08,090 se você consignado-los para fora, seu código seria provavelmente 904 00:40:08,090 --> 00:40:11,860 ser, tipo, cinco vezes mais curtos e ser muito mais fácil de ler. 905 00:40:11,860 --> 00:40:15,230 E, em vez de tentar resolver todos esses lugares diferentes onde as coisas 906 00:40:15,230 --> 00:40:18,021 pode dar errado, você tem uma função que você começa a solucionar. 907 00:40:18,021 --> 00:40:19,230 908 00:40:19,230 --> 00:40:21,890 E eu prometo, um monte de presente Pode parecer tipo de abstrato agora, 909 00:40:21,890 --> 00:40:24,620 mas como você entrar mais tarde e problema mais tarde define, 910 00:40:24,620 --> 00:40:28,950 ele vai fazer muito mais sentido e realmente ser levado para casa. 911 00:40:28,950 --> 00:40:31,775 Há alguma pergunta sobre as funções até agora? 912 00:40:31,775 --> 00:40:32,650 Por que nós estamos usando-os? 913 00:40:32,650 --> 00:40:34,775 Eu sei que não tenham obtido no âmago da questão ainda. 914 00:40:34,775 --> 00:40:40,610 Assim, a definição de uma function-- tal como matrizes, precisamos de algum tipo de-- este 915 00:40:40,610 --> 00:40:41,860 é apenas a saída geral. 916 00:40:41,860 --> 00:40:45,110 Portanto, esta é uma função que é só vai cubo alguma entrada. 917 00:40:45,110 --> 00:40:50,120 E na próxima página, na verdade, temos todos esses impressionantes pequenas coisas aqui. 918 00:40:50,120 --> 00:40:52,420 Assim, todos podem ler que, por curiosidade? 919 00:40:52,420 --> 00:40:55,050 Eu sei que o roxo e preto pode ser um pouco difícil. 920 00:40:55,050 --> 00:41:00,730 >> Mas as coisas grandes para sabe-- assim a primeira um aqui é o nosso tipo de retorno. 921 00:41:00,730 --> 00:41:05,270 Portanto, este é falar sobre a saída desta função quando, neste caso, 922 00:41:05,270 --> 00:41:08,990 que colocar em algum número, o que estamos recebendo é que esse número ao cubo. 923 00:41:08,990 --> 00:41:11,090 Por isso, deve ser um int neste caso. 924 00:41:11,090 --> 00:41:14,055 Talvez seria uma dupla ou algo mais tarde, mas, neste caso, 925 00:41:14,055 --> 00:41:14,555 é um int. 926 00:41:14,555 --> 00:41:15,620 927 00:41:15,620 --> 00:41:19,440 >> Com c, você sempre precisa de um tipo de retorno. 928 00:41:19,440 --> 00:41:20,267 Vai ser um int. 929 00:41:20,267 --> 00:41:20,975 Vai ser um float. 930 00:41:20,975 --> 00:41:22,180 Vai ser um casal. 931 00:41:22,180 --> 00:41:25,370 Mas você tem que especificar o que esta função vai retornar. 932 00:41:25,370 --> 00:41:26,480 933 00:41:26,480 --> 00:41:29,170 Caso contrário, ele vai gritar com você, e que não irá compilar. 934 00:41:29,170 --> 00:41:30,462 Você vai ficar triste, e eu vou estar triste. 935 00:41:30,462 --> 00:41:31,420 E não é apenas bom. 936 00:41:31,420 --> 00:41:31,940 Está bem. 937 00:41:31,940 --> 00:41:34,290 >> E então temos o nosso nome da função. 938 00:41:34,290 --> 00:41:38,440 E como você pode ver aqui, com c há esse paradigma muito consistente. 939 00:41:38,440 --> 00:41:42,630 Qual é o seu tipo, qual é o nome, e então alguma outra coisa no final. 940 00:41:42,630 --> 00:41:45,550 Então, nós temos o nosso tipo de retorno, o nosso nome da função, e em seguida, 941 00:41:45,550 --> 00:41:49,320 temos o nosso cabeçalho com nossa lista de parâmetros. 942 00:41:49,320 --> 00:41:52,080 >> Assim, a lista de parâmetros é, o que é esta função vai levar em? 943 00:41:52,080 --> 00:41:56,360 A lista de parâmetros é simplesmente um sinônimo de, quais são as nossas entradas? 944 00:41:56,360 --> 00:42:00,230 E, do mesmo modo que nós tem que definir nossa função 945 00:42:00,230 --> 00:42:03,210 e dar-lhe um retorno digita, cada um de nossos insumos 946 00:42:03,210 --> 00:42:05,350 precisa de ter um tipo associado a ele. 947 00:42:05,350 --> 00:42:08,850 Então, nós sabemos que a nossa função pode realmente trabalhar. 948 00:42:08,850 --> 00:42:11,290 >> Portanto, neste caso, temos alguma entrada int. 949 00:42:11,290 --> 00:42:14,660 Então, novamente, ele vai ser do tipo eo que você está chamando. 950 00:42:14,660 --> 00:42:16,500 951 00:42:16,500 --> 00:42:19,040 E então, como você vê aqui, temos o nosso corpo. 952 00:42:19,040 --> 00:42:23,600 Portanto, temos alguma saída int, que é apenas a nossa própria entrada vezes 953 00:42:23,600 --> 00:42:25,810 si vezes, que apenas cubos lo. 954 00:42:25,810 --> 00:42:27,610 E então voltamos essa saída. 955 00:42:27,610 --> 00:42:32,140 >> Então, como você vê aqui, temos um int vezes um int vezes um int, 956 00:42:32,140 --> 00:42:35,420 assim ele retorna um inteiro, que foi declarada lá. 957 00:42:35,420 --> 00:42:38,240 Então, tudo é coeso. 958 00:42:38,240 --> 00:42:39,210 Tudo está feliz. 959 00:42:39,210 --> 00:42:40,250 Sua função será executada. 960 00:42:40,250 --> 00:42:41,192 961 00:42:41,192 --> 00:42:42,650 E esta é apenas a coisa geral. 962 00:42:42,650 --> 00:42:46,750 Então, sempre tem tipo de retorno, nome, e sua lista de parâmetros. 963 00:42:46,750 --> 00:42:48,830 Cada coisa em seu lista de parâmetros, ou de entrada, 964 00:42:48,830 --> 00:42:51,410 precisa de ter um tipo associado a ele. 965 00:42:51,410 --> 00:42:54,210 E então você tem o seu corpo aqui com o que 966 00:42:54,210 --> 00:42:55,590 você quer fazer com a sua entrada. 967 00:42:55,590 --> 00:42:57,390 968 00:42:57,390 --> 00:43:00,410 >> E então, obviamente, você quer retornar algo. 969 00:43:00,410 --> 00:43:02,630 Às vezes funciona só vai voltar. 970 00:43:02,630 --> 00:43:06,090 Eles realmente não voltar algo para você usar. 971 00:43:06,090 --> 00:43:08,660 Mas você tem que voltar de alguma forma. 972 00:43:08,660 --> 00:43:12,900 E quando você está fazendo suas próprias funções, 973 00:43:12,900 --> 00:43:15,430 podemos entrar nisso um pouco mais profundo. 974 00:43:15,430 --> 00:43:18,880 Pessoalmente, se você quiser, há um grande número de coisas diferentes que você pode fazer lá. 975 00:43:18,880 --> 00:43:21,350 976 00:43:21,350 --> 00:43:22,140 Todo mundo bom? 977 00:43:22,140 --> 00:43:25,900 Qualquer coisa nesta lista que você me quer para passar por cima, que você não entendeu? 978 00:43:25,900 --> 00:43:27,204 979 00:43:27,204 --> 00:43:28,120 Todo mundo é bom lá? 980 00:43:28,120 --> 00:43:29,071 981 00:43:29,071 --> 00:43:29,570 Legal. 982 00:43:29,570 --> 00:43:31,350 983 00:43:31,350 --> 00:43:32,120 Impressionante. 984 00:43:32,120 --> 00:43:34,700 >> OK, então nós estamos colocando tudo isso junto agora. 985 00:43:34,700 --> 00:43:35,720 986 00:43:35,720 --> 00:43:41,201 Portanto, temos alguma entrada int cubo, tão este é um programa completo aqui. 987 00:43:41,201 --> 00:43:42,950 Até agora, eu tenho tipo de dado você 988 00:43:42,950 --> 00:43:45,699 snippets homens que possam estar acontecendo dentro de um programa. 989 00:43:45,699 --> 00:43:47,240 Estivemos apenas olhando para as funções. 990 00:43:47,240 --> 00:43:48,448 Mas aqui está um programa inteiro. 991 00:43:48,448 --> 00:43:49,400 992 00:43:49,400 --> 00:43:53,690 Assim como muitos de vocês se lembram do protótipo palavra da palestra? 993 00:43:53,690 --> 00:43:54,750 994 00:43:54,750 --> 00:43:55,300 Legal. 995 00:43:55,300 --> 00:43:55,890 Temos um. 996 00:43:55,890 --> 00:43:57,160 997 00:43:57,160 --> 00:43:58,110 Qual o seu nome? 998 00:43:58,110 --> 00:43:58,850 >> STEPH: Steph. 999 00:43:58,850 --> 00:43:59,475 >> ALLISON: Steph? 1000 00:43:59,475 --> 00:44:01,030 OK, impressionante. 1001 00:44:01,030 --> 00:44:03,310 Então, você se lembra o que é um protótipo? 1002 00:44:03,310 --> 00:44:04,651 1003 00:44:04,651 --> 00:44:10,230 >> ALUNO: Você diz que [inaudível] antes de realmente lidar com isso. 1004 00:44:10,230 --> 00:44:11,700 >> ALLISON: Você se lembra por quê? 1005 00:44:11,700 --> 00:44:13,158 >> Estudante: Não. 1006 00:44:13,158 --> 00:44:14,620 >> ALLISON: OK. 1007 00:44:14,620 --> 00:44:16,090 Estrela do ouro. 1008 00:44:16,090 --> 00:44:19,470 Então, sim, um protótipo que temos de antemão, porque, caso contrário, 1009 00:44:19,470 --> 00:44:21,260 nosso compilador vai gritar para nós. 1010 00:44:21,260 --> 00:44:24,294 Ele vai dizer, OK, o que é essa função de cubo? 1011 00:44:24,294 --> 00:44:26,460 Tipo, você tem literalmente não me disse nada sobre isso. 1012 00:44:26,460 --> 00:44:28,110 É como quando você entrar em uma sala de aula, 1013 00:44:28,110 --> 00:44:29,320 e alguém é como, há um quiz hoje. 1014 00:44:29,320 --> 00:44:31,380 E você é como, você nunca me falou sobre isso. 1015 00:44:31,380 --> 00:44:32,930 Eu não estou feliz com a gente. 1016 00:44:32,930 --> 00:44:34,300 1017 00:44:34,300 --> 00:44:37,020 O protótipo é basicamente como seu programa dizendo, olha. 1018 00:44:37,020 --> 00:44:37,900 Cabeça para cima. 1019 00:44:37,900 --> 00:44:39,570 Não vai ser um quiz sobre o dia de hoje. 1020 00:44:39,570 --> 00:44:41,420 Não se desespere quando você chegar a ele. 1021 00:44:41,420 --> 00:44:42,690 Você vai ficar bem. 1022 00:44:42,690 --> 00:44:48,170 >> Portanto, tudo o protótipo faz é dizer principal, eu vou usar essa função. 1023 00:44:48,170 --> 00:44:51,010 Eu prometo que vou definir isso mais tarde. 1024 00:44:51,010 --> 00:44:52,260 Não se desespere para mim. 1025 00:44:52,260 --> 00:44:54,750 Apenas compilar e fazer o que eu disser para você. 1026 00:44:54,750 --> 00:44:58,880 Portanto, temos o protótipo lá apenas para fazer o nosso compilador feliz. 1027 00:44:58,880 --> 00:45:04,360 E é basicamente uma promessa que você definiu essa função mais tarde 1028 00:45:04,360 --> 00:45:07,960 e que você não está apenas chamando essa coisa aleatória que 1029 00:45:07,960 --> 00:45:10,070 não sabe o que você está vai estar fazendo. 1030 00:45:10,070 --> 00:45:11,910 >> Portanto, neste caso, temos principal aqui. 1031 00:45:11,910 --> 00:45:14,660 Nós inicializar algum inteiro x. 1032 00:45:14,660 --> 00:45:15,620 Isso é dois. 1033 00:45:15,620 --> 00:45:17,510 Nós estamos indo para imprimir o que é x. 1034 00:45:17,510 --> 00:45:18,800 Nós vamos cubo x. 1035 00:45:18,800 --> 00:45:21,520 Como você pode ver, temos a nossa declaração da função 1036 00:45:21,520 --> 00:45:23,770 aqui que nós falou anteriormente. 1037 00:45:23,770 --> 00:45:28,260 Vai cubo x, e, em seguida, se lembre-se, a função de cubo, na verdade, 1038 00:45:28,260 --> 00:45:31,340 retorna um inteiro para nós, que é armazenado 1039 00:45:31,340 --> 00:45:35,860 em x novamente para que possamos imprimir fora oito, ou cubo x agora. 1040 00:45:35,860 --> 00:45:37,170 1041 00:45:37,170 --> 00:45:38,920 Isso faz sentido para todos? 1042 00:45:38,920 --> 00:45:40,360 Nós somos bons? 1043 00:45:40,360 --> 00:45:41,160 Tudo certo. 1044 00:45:41,160 --> 00:45:41,660 Impressionante. 1045 00:45:41,660 --> 00:45:45,540 1046 00:45:45,540 --> 00:45:46,840 >> Tudo certo. 1047 00:45:46,840 --> 00:45:50,879 Quantos de vocês Lembre-se este de modo que este 1048 00:45:50,879 --> 00:45:52,670 é, basicamente, apenas o seu pilha e seu montão, 1049 00:45:52,670 --> 00:45:56,510 apenas uma visualização de como a memória é armazenada aqui. 1050 00:45:56,510 --> 00:45:58,200 1051 00:45:58,200 --> 00:46:01,400 Então, nós apenas queremos fazer Certifique-se que você entenda 1052 00:46:01,400 --> 00:46:03,680 como estas estão representados na memória. 1053 00:46:03,680 --> 00:46:07,670 Se você tomar aulas de como CS61 e outras coisas mais tarde, 1054 00:46:07,670 --> 00:46:10,570 você começa a aprender isso muito mais em profundidade, e é muito legal. 1055 00:46:10,570 --> 00:46:11,730 Eu recomendo fortemente. 1056 00:46:11,730 --> 00:46:12,740 1057 00:46:12,740 --> 00:46:14,720 Mas, por agora, eu vou dar lhe a visão ampla 1058 00:46:14,720 --> 00:46:16,950 assim você não tem que conhecer o âmago da questão. 1059 00:46:16,950 --> 00:46:20,820 >> Assim, o topo apenas um segmento de texto que contém os zeros e uns reais, 1060 00:46:20,820 --> 00:46:23,740 o binário para isso. 1061 00:46:23,740 --> 00:46:27,510 E este é usado para armazenar variáveis ​​globais, se tiver algum. 1062 00:46:27,510 --> 00:46:28,870 1063 00:46:28,870 --> 00:46:32,240 Como você se move para baixo, nós tem, como você vê aqui, 1064 00:46:32,240 --> 00:46:34,670 dados inicializados, não inicializada dados, e depois heap. 1065 00:46:34,670 --> 00:46:35,800 1066 00:46:35,800 --> 00:46:38,584 >> Então, nós realmente não falar sobre a pilha agora. 1067 00:46:38,584 --> 00:46:39,500 Nós vamos chegar a isso mais tarde. 1068 00:46:39,500 --> 00:46:40,762 1069 00:46:40,762 --> 00:46:42,970 Por agora, eu estou indo só para onda minhas mãos e ser como, 1070 00:46:42,970 --> 00:46:44,553 você não precisa saber sobre isso agora. 1071 00:46:44,553 --> 00:46:46,100 1072 00:46:46,100 --> 00:46:49,060 Mas vamos falar um pouco pouco sobre a pilha. 1073 00:46:49,060 --> 00:46:53,050 Assim, a pilha é where-- temos zoom in. 1074 00:46:53,050 --> 00:46:58,590 Isto é, na verdade, como o programa nós apenas olhou ocorre na memória. 1075 00:46:58,590 --> 00:47:01,630 >> Então o que acontece é que, cada vez que chamar uma função, 1076 00:47:01,630 --> 00:47:04,180 temos o que é chamado de uma pilha armação, que é um destes. 1077 00:47:04,180 --> 00:47:05,870 Então parâmetros de principais. 1078 00:47:05,870 --> 00:47:07,944 Então, essas são as coisas que passamos para principal. 1079 00:47:07,944 --> 00:47:11,110 Então, eles estão aqui na parte inferior, porque essa é a primeira coisa que nós chamamos. 1080 00:47:11,110 --> 00:47:13,401 E então chegamos ao principal da locals, e quando dizemos que, 1081 00:47:13,401 --> 00:47:15,970 queremos dizer as variáveis ​​locais que são armazenados dentro principal. 1082 00:47:15,970 --> 00:47:19,950 1083 00:47:19,950 --> 00:47:23,620 Então moradores aqui seria, como, x é igual a dois no caso presente. 1084 00:47:23,620 --> 00:47:26,350 Porque que está localizada a principal. 1085 00:47:26,350 --> 00:47:29,745 Será que todo mundo se lembra escopo, passando por cima que na palestra? 1086 00:47:29,745 --> 00:47:31,517 1087 00:47:31,517 --> 00:47:32,017 Está bem. 1088 00:47:32,017 --> 00:47:36,110 Assim, apenas as variáveis ​​que são inicializados dentro principal. 1089 00:47:36,110 --> 00:47:38,550 Então é por isso que temos principal [? vocals. ?] 1090 00:47:38,550 --> 00:47:40,390 >> E, em seguida, dentro de principal, que chamamos de cubo. 1091 00:47:40,390 --> 00:47:41,000 Certo? 1092 00:47:41,000 --> 00:47:44,510 Então, nós temos outro quadro com os parâmetros do cubo. 1093 00:47:44,510 --> 00:47:47,050 Portanto, neste caso, o cubo de parâmetros são agora 1094 00:47:47,050 --> 00:47:50,800 o x que passamos em, os dois que temos passado. 1095 00:47:50,800 --> 00:47:55,320 E então, os moradores do cubo, que é onde a cubagem real acontece. 1096 00:47:55,320 --> 00:47:56,450 E depois ele retorna. 1097 00:47:56,450 --> 00:48:02,120 >> Então, o que acontece é como cubo realmente faz o que é suposto fazer, ele retorna. 1098 00:48:02,120 --> 00:48:07,020 Quando ele retorna, este quadro deixa, e sua retornou até principal. 1099 00:48:07,020 --> 00:48:09,160 E, em seguida, dentro de principal, nós realmente pode imprimi-lo. 1100 00:48:09,160 --> 00:48:10,840 1101 00:48:10,840 --> 00:48:14,500 Então, quando você está retornando alguma coisa, quando a função retorna, 1102 00:48:14,500 --> 00:48:19,900 é como passar esses valores para o quadro abaixo e, em seguida, sair. 1103 00:48:19,900 --> 00:48:22,200 E as coisas têm de executar em ordem. 1104 00:48:22,200 --> 00:48:25,550 >> E quando você começa a programas maiores, podemos fazer mais frio e mais complicado 1105 00:48:25,550 --> 00:48:26,470 diagramas. 1106 00:48:26,470 --> 00:48:29,070 Mas, por agora, este é apenas uma visão geral 1107 00:48:29,070 --> 00:48:31,110 então você tem uma espécie de compreensão do que 1108 00:48:31,110 --> 00:48:35,160 acontece quando você está chamando uma função e como isso realmente parece na memória. 1109 00:48:35,160 --> 00:48:37,230 1110 00:48:37,230 --> 00:48:37,770 Legal? 1111 00:48:37,770 --> 00:48:38,353 Todo mundo bom? 1112 00:48:38,353 --> 00:48:39,920 1113 00:48:39,920 --> 00:48:40,420 Impressionante. 1114 00:48:40,420 --> 00:48:42,070 1115 00:48:42,070 --> 00:48:50,575 >> Portanto, este é aquele que é apenas tentando trocar coisas. 1116 00:48:50,575 --> 00:48:52,260 1117 00:48:52,260 --> 00:48:54,930 Como podemos ver aqui, temos nosso protótipo da função 1118 00:48:54,930 --> 00:48:56,900 para que o nosso compilador não gritar com a gente. 1119 00:48:56,900 --> 00:48:59,220 Temos alguns principal, e nós quero mudar x e y. 1120 00:48:59,220 --> 00:49:00,320 1121 00:49:00,320 --> 00:49:04,129 Eles não fizeram esta demo em palestra, no entanto, têm eles? 1122 00:49:04,129 --> 00:49:04,670 Eles não têm? 1123 00:49:04,670 --> 00:49:05,900 Está bem. 1124 00:49:05,900 --> 00:49:08,450 Então, nós estamos indo para ir sobre este, muito brevemente. 1125 00:49:08,450 --> 00:49:12,210 Você vai chegar a este exemplo mais em profundidade, penso eu, esta semana. 1126 00:49:12,210 --> 00:49:15,680 E, em seguida, na próxima semana podemos realmente mergulhar por que isso não funciona. 1127 00:49:15,680 --> 00:49:18,810 >> Então nós temos esse vazio função aqui-- swap. 1128 00:49:18,810 --> 00:49:20,720 Então vazio significa apenas que nada é retornado. 1129 00:49:20,720 --> 00:49:22,000 1130 00:49:22,000 --> 00:49:24,110 E temos de swap int a e int b. 1131 00:49:24,110 --> 00:49:27,046 E nós temos alguns temporária variável que é a. 1132 00:49:27,046 --> 00:49:30,050 um é atribuído a b, e, em seguida b é atribuído à temperatura 1133 00:49:30,050 --> 00:49:32,235 de modo que A e B do Os valores são agora comutada. 1134 00:49:32,235 --> 00:49:33,510 1135 00:49:33,510 --> 00:49:36,030 >> Mas, reviravolta na história, isso não funciona. 1136 00:49:36,030 --> 00:49:37,390 1137 00:49:37,390 --> 00:49:42,380 E parte do que realmente tem a ver com o fato de que um 1138 00:49:42,380 --> 00:49:48,800 e B aqui, os que são passadas em aqui, são na verdade cópias de x e y. 1139 00:49:48,800 --> 00:49:53,220 Então, quando a função realmente retorna, ele muda as cópias, mas não 1140 00:49:53,220 --> 00:49:55,960 o real x e y do. 1141 00:49:55,960 --> 00:50:02,370 Assim, uma maneira de pensar sobre isso é isso-- fingir estes são swap. 1142 00:50:02,370 --> 00:50:03,130 Ok? 1143 00:50:03,130 --> 00:50:05,390 Assim, em principal, temos x e y inicializado. 1144 00:50:05,390 --> 00:50:06,530 1145 00:50:06,530 --> 00:50:10,760 Mas quando nós realmente ir para cima a estes quadros com swap, 1146 00:50:10,760 --> 00:50:15,740 estamos passando os valores mais para ele, e eles estão inicializado. 1147 00:50:15,740 --> 00:50:18,570 >> E eles só vez ao vivo aqui. 1148 00:50:18,570 --> 00:50:19,796 Assim, a e b viver aqui. 1149 00:50:19,796 --> 00:50:20,670 E eles são trocados. 1150 00:50:20,670 --> 00:50:21,870 1151 00:50:21,870 --> 00:50:26,190 Mas quando voltar, nós não fazer qualquer coisa com a e b. uma 1152 00:50:26,190 --> 00:50:28,980 e b licença com a nossa função. 1153 00:50:28,980 --> 00:50:30,850 E assim x e y ficar na mesma. 1154 00:50:30,850 --> 00:50:31,960 1155 00:50:31,960 --> 00:50:39,665 Você vai ter mais em como corrigir isso e como realmente lidar com isso mais tarde. 1156 00:50:39,665 --> 00:50:40,750 1157 00:50:40,750 --> 00:50:43,740 >> Mas é apenas uma coisa ao tipo de manter em mente. 1158 00:50:43,740 --> 00:50:45,270 Use-o para o futuro. 1159 00:50:45,270 --> 00:50:48,050 Não se preocupe se isso não fazia todo o sentido do mundo. 1160 00:50:48,050 --> 00:50:49,510 1161 00:50:49,510 --> 00:50:51,440 Eles são cópias é a coisa mais importante. 1162 00:50:51,440 --> 00:50:54,580 Se você estiver indo para fazer qualquer coisa longe disso, você passou em cópias. 1163 00:50:54,580 --> 00:50:56,410 Então os originais ficar na mesma. 1164 00:50:56,410 --> 00:50:58,170 1165 00:50:58,170 --> 00:50:58,770 Todo mundo bom? 1166 00:50:58,770 --> 00:51:00,280 1167 00:51:00,280 --> 00:51:00,930 Legal. 1168 00:51:00,930 --> 00:51:02,295 >> Assim, os argumentos da linha de comando. 1169 00:51:02,295 --> 00:51:03,520 1170 00:51:03,520 --> 00:51:07,630 Tenho certeza de que no começo vocês todos tinha aquelas grandes, como, vazios principais int. 1171 00:51:07,630 --> 00:51:09,517 E você é como, fresco OK. 1172 00:51:09,517 --> 00:51:10,350 Eu realmente não me importo. 1173 00:51:10,350 --> 00:51:12,360 Este é apenas o que eu tenho que escrever. 1174 00:51:12,360 --> 00:51:16,349 Mas em seus novos programas, especialmente neste pset, 1175 00:51:16,349 --> 00:51:17,890 e porque é que há giz no chão? 1176 00:51:17,890 --> 00:51:19,640 1177 00:51:19,640 --> 00:51:22,680 >> Com a sua próxima pset, você está vai estar vendo isso. 1178 00:51:22,680 --> 00:51:26,130 Int main, int arg c, corda de arco v, entre parênteses. 1179 00:51:26,130 --> 00:51:28,770 Assim, a partir do que apenas hoje aprendi, o que 1180 00:51:28,770 --> 00:51:32,190 nós pensamos que o segundo parâmetro ou que o segundo elemento é aqui? 1181 00:51:32,190 --> 00:51:34,830 1182 00:51:34,830 --> 00:51:35,824 É uma matriz. 1183 00:51:35,824 --> 00:51:36,615 Qual o tipo de matriz? 1184 00:51:36,615 --> 00:51:38,430 1185 00:51:38,430 --> 00:51:40,690 Matriz de cadeia, sim. 1186 00:51:40,690 --> 00:51:41,980 Legal. 1187 00:51:41,980 --> 00:51:45,320 Então é assim que você vai a ser declarar estes agora. 1188 00:51:45,320 --> 00:51:48,570 >> Alguém se lembra o que estes significam? 1189 00:51:48,570 --> 00:51:52,551 1190 00:51:52,551 --> 00:51:53,050 Não? 1191 00:51:53,050 --> 00:51:54,020 1192 00:51:54,020 --> 00:51:54,520 Hmm? 1193 00:51:54,520 --> 00:51:55,640 >> ALUNO: arg c. 1194 00:51:55,640 --> 00:51:56,961 1195 00:51:56,961 --> 00:51:58,950 >> ALLISON: Então arg c mantém um contador. 1196 00:51:58,950 --> 00:51:59,450 É um int. 1197 00:51:59,450 --> 00:52:00,615 É um número, certo? 1198 00:52:00,615 --> 00:52:02,240 Então, o que você acha que o número é de? 1199 00:52:02,240 --> 00:52:08,260 1200 00:52:08,260 --> 00:52:08,760 Sim. 1201 00:52:08,760 --> 00:52:11,450 Assim arg c é o número de cordas que compõem a linha de comando. 1202 00:52:11,450 --> 00:52:12,560 1203 00:52:12,560 --> 00:52:18,499 Então, se fôssemos realmente fazer--, existem exemplos após este, 1204 00:52:18,499 --> 00:52:19,790 por isso não vou ficar à frente de mim. 1205 00:52:19,790 --> 00:52:21,299 1206 00:52:21,299 --> 00:52:23,840 É um número de cordas que apenas fazer a sua linha de comando. 1207 00:52:23,840 --> 00:52:35,080 >> Então, quando você faz, como, dot cortar Mario, isso é uma cadeia que torna-se. 1208 00:52:35,080 --> 00:52:38,520 Nesta peça, você vai realmente ser alimentando as coisas na linha de comando, 1209 00:52:38,520 --> 00:52:41,750 como eu tenho certeza que vocês que li a serra spec. 1210 00:52:41,750 --> 00:52:44,470 Assim, nesses casos, talvez você ter dois ou três argumentos. 1211 00:52:44,470 --> 00:52:45,652 1212 00:52:45,652 --> 00:52:48,360 Vai ser uma coisa útil para usar. 1213 00:52:48,360 --> 00:52:51,500 >> E então arg v, como dissemos, é apenas uma matriz de cadeia. 1214 00:52:51,500 --> 00:52:57,000 Assim que o que efectivamente armazena introduzido na linha de comando. 1215 00:52:57,000 --> 00:52:59,960 Portanto, temos estes. 1216 00:52:59,960 --> 00:53:02,850 Você tem alguma barra dot copiar outfile infile. 1217 00:53:02,850 --> 00:53:06,670 Assim, se arg c é o número de cordas que estamos passando para o comando 1218 00:53:06,670 --> 00:53:09,080 linha, que é a nossa arg c neste caso? 1219 00:53:09,080 --> 00:53:14,520 1220 00:53:14,520 --> 00:53:15,850 Três. 1221 00:53:15,850 --> 00:53:16,690 Exatamente. 1222 00:53:16,690 --> 00:53:20,086 >> Então, qual é arg v zero? 1223 00:53:20,086 --> 00:53:21,710 Então, qual é a primeira coisa que temos armazenado? 1224 00:53:21,710 --> 00:53:24,640 1225 00:53:24,640 --> 00:53:26,290 Dot cortar cópia, exatamente. 1226 00:53:26,290 --> 00:53:28,065 E, em seguida, o segundo seria infile. 1227 00:53:28,065 --> 00:53:29,290 1228 00:53:29,290 --> 00:53:30,930 A terceira seria outfile. 1229 00:53:30,930 --> 00:53:32,390 Assim que sobre arg v três? 1230 00:53:32,390 --> 00:53:35,810 1231 00:53:35,810 --> 00:53:39,370 Seria nulo, porque isso é o fim da nossa matriz, certo? 1232 00:53:39,370 --> 00:53:40,600 1233 00:53:40,600 --> 00:53:41,460 Legal. 1234 00:53:41,460 --> 00:53:44,500 >> E então o que acontece com o sexto? 1235 00:53:44,500 --> 00:53:45,900 É uma espécie de uma pergunta capciosa. 1236 00:53:45,900 --> 00:53:46,400 Ish. 1237 00:53:46,400 --> 00:53:49,027 1238 00:53:49,027 --> 00:53:49,943 Não sabemos o que é? 1239 00:53:49,943 --> 00:53:50,960 1240 00:53:50,960 --> 00:53:51,690 É indefinido. 1241 00:53:51,690 --> 00:53:53,170 Nós não temos idéia do que poderia ser. 1242 00:53:53,170 --> 00:53:57,000 É tudo o que é direito depois da matriz na memória, 1243 00:53:57,000 --> 00:54:00,220 e não temos idéia do que é isso. 1244 00:54:00,220 --> 00:54:03,500 E é perigoso tocar aqueles coisas, porque para tudo o que você sabe, 1245 00:54:03,500 --> 00:54:07,080 é uma parte da memória que você não deve ser acessar ou nulo. 1246 00:54:07,080 --> 00:54:09,000 E ele pode fazer coisas malucas. 1247 00:54:09,000 --> 00:54:11,690 Chama-se sobre-indexação seu vinculados à sua matriz. 1248 00:54:11,690 --> 00:54:14,785 Não vá para fora dos limites de sua array, ou coisas ruins podem acontecer. 1249 00:54:14,785 --> 00:54:16,274 1250 00:54:16,274 --> 00:54:18,940 Você volta e, assim, as leis da física foram destruídas 1251 00:54:18,940 --> 00:54:19,481 ou algo assim. 1252 00:54:19,481 --> 00:54:21,021 1253 00:54:21,021 --> 00:54:21,520 Legal. 1254 00:54:21,520 --> 00:54:22,895 Isso faz sentido para todos? 1255 00:54:22,895 --> 00:54:23,810 1256 00:54:23,810 --> 00:54:25,025 Não é tão ruim. 1257 00:54:25,025 --> 00:54:28,926 >> Então, agora, todo mundo é parte favorita, revisão pset. 1258 00:54:28,926 --> 00:54:29,426 Yay! 1259 00:54:29,426 --> 00:54:30,530 1260 00:54:30,530 --> 00:54:31,030 Está bem. 1261 00:54:31,030 --> 00:54:33,830 Portanto, para aqueles de vocês que não leu a especificação pset, 1262 00:54:33,830 --> 00:54:36,790 você está fazendo algum realmente coisas legais com criptografia. 1263 00:54:36,790 --> 00:54:39,360 Você vai criar uma Ceasar Cifra e uma cifra de Vigenère. 1264 00:54:39,360 --> 00:54:42,000 1265 00:54:42,000 --> 00:54:45,480 Você deve definitivamente ler o especificação para ver como funcionam. 1266 00:54:45,480 --> 00:54:49,650 E se você está tendo algum problema sobre o que ele realmente deve estar fazendo, 1267 00:54:49,650 --> 00:54:52,920 por favor, venha falar comigo, enviar e-mail me ou texto me. 1268 00:54:52,920 --> 00:54:53,420 Eu estou por perto. 1269 00:54:53,420 --> 00:54:54,780 1270 00:54:54,780 --> 00:54:57,070 >> Assim, existem três principais coisas aqui que nós 1271 00:54:57,070 --> 00:55:00,440 quero falar about-- só tipo de uma extensão da palestra. 1272 00:55:00,440 --> 00:55:03,645 Coisas que você pode não saber sobre, dicas e ferramentas úteis. 1273 00:55:03,645 --> 00:55:05,520 Então, nós vamos fazer uma revisão rápida de ASCII, 1274 00:55:05,520 --> 00:55:10,420 porque isso vai ser super importante para a cifra do Vigenere. 1275 00:55:10,420 --> 00:55:11,809 1276 00:55:11,809 --> 00:55:14,100 Nós estamos indo para a conversão de entradas de linha de comando, que 1277 00:55:14,100 --> 00:55:17,160 vai ser muito útil para Caesar Cipher. 1278 00:55:17,160 --> 00:55:18,133 E então modulo. 1279 00:55:18,133 --> 00:55:20,220 1280 00:55:20,220 --> 00:55:21,210 Legal. 1281 00:55:21,210 --> 00:55:24,005 >> Então, ASCII mapeia caracteres para números. 1282 00:55:24,005 --> 00:55:25,270 1283 00:55:25,270 --> 00:55:26,365 Este é um grande quadro. 1284 00:55:26,365 --> 00:55:28,115 Você deve ter este marcada em algum lugar. 1285 00:55:28,115 --> 00:55:29,310 1286 00:55:29,310 --> 00:55:33,250 Você vai querer isso para o primeiro a médio prazo. 1287 00:55:33,250 --> 00:55:36,320 Tenho certeza que todo mundo tem esse gráfico em sua folha de médio prazo. 1288 00:55:36,320 --> 00:55:37,810 Assim, aprendê-la. 1289 00:55:37,810 --> 00:55:38,410 Adoro. 1290 00:55:38,410 --> 00:55:39,740 Mantê-lo acessível. 1291 00:55:39,740 --> 00:55:41,210 Vai ser útil. 1292 00:55:41,210 --> 00:55:45,630 >> E tudo isso é uma codificação que mapeia alfabética, numérica, 1293 00:55:45,630 --> 00:55:47,740 e outros caracteres para números para o nosso computador. 1294 00:55:47,740 --> 00:55:49,947 Por causa do curso, na final, tudo o que armazenar 1295 00:55:49,947 --> 00:55:52,030 vai ficar convertido até zeros e uns, 1296 00:55:52,030 --> 00:55:55,200 por isso precisamos de alguma forma para representar a texto e os personagens que estamos todos 1297 00:55:55,200 --> 00:55:59,105 acostumados a ver como uma espécie de número. 1298 00:55:59,105 --> 00:56:00,370 1299 00:56:00,370 --> 00:56:05,880 >> Então, como podemos ver aqui, temos maiúsculas A, que é logo ali. 1300 00:56:05,880 --> 00:56:06,555 É 65. 1301 00:56:06,555 --> 00:56:07,570 1302 00:56:07,570 --> 00:56:09,660 E minúsculas A é 97. 1303 00:56:09,660 --> 00:56:13,170 Assim, você pode descobrir out-- como eu disse anteriormente, 1304 00:56:13,170 --> 00:56:16,532 se você tivesse variedade de múltipla cordas, o que cada um deles 1305 00:56:16,532 --> 00:56:17,490 possui um terminador nulo. 1306 00:56:17,490 --> 00:56:18,480 Seria um espaço. 1307 00:56:18,480 --> 00:56:22,581 Espaço tem a sua própria especial-- Eu esqueço onde ele está aqui. 1308 00:56:22,581 --> 00:56:23,080 Ah. 1309 00:56:23,080 --> 00:56:24,700 32 é o espaço. 1310 00:56:24,700 --> 00:56:27,090 Então, tudo é mapeado para ele. 1311 00:56:27,090 --> 00:56:28,680 1312 00:56:28,680 --> 00:56:29,740 >> Portanto, temos de matemática ASCII. 1313 00:56:29,740 --> 00:56:31,080 1314 00:56:31,080 --> 00:56:34,290 Pro tip-- em Vigenere de, você pode ser tentado 1315 00:56:34,290 --> 00:56:39,480 para converter os números para inteiros, mas é realmente melhor prática 1316 00:56:39,480 --> 00:56:43,860 para ser capaz de usar o caracteres como este 1317 00:56:43,860 --> 00:56:45,820 quando você está realmente manipulando-os. 1318 00:56:45,820 --> 00:56:48,950 Então, se você quiser usar números, você pode. 1319 00:56:48,950 --> 00:56:55,260 Mas uma melhor forma, ou uma forma que que tendem a gostar de vocês para fazê-lo, 1320 00:56:55,260 --> 00:56:57,830 É desta forma que você está na verdade, subtraindo caracteres. 1321 00:56:57,830 --> 00:56:58,840 1322 00:56:58,840 --> 00:57:02,830 >> Então, eu quero que vocês tipo de descobrir estes para fora. 1323 00:57:02,830 --> 00:57:05,070 Por que você não tentar todos os outro? 1324 00:57:05,070 --> 00:57:07,580 1325 00:57:07,580 --> 00:57:09,830 Então, fazer o primeiro, o um terceiro, quinto e um. 1326 00:57:09,830 --> 00:57:11,160 1327 00:57:11,160 --> 00:57:15,000 Porque eu quero ter certeza de que nós falamos sobre tudo o que precisamos para falar. 1328 00:57:15,000 --> 00:57:17,410 1329 00:57:17,410 --> 00:57:20,259 Eu só vou dizer, um dos coisas importantes a-- oh wait, 1330 00:57:20,259 --> 00:57:21,550 vocês não vi este. 1331 00:57:21,550 --> 00:57:23,710 OK assim que fazer os três primeiros. 1332 00:57:23,710 --> 00:57:24,430 Vamos fazer isso. 1333 00:57:24,430 --> 00:57:25,971 Porque nós temos que falar sobre modulo. 1334 00:57:25,971 --> 00:57:27,810 1335 00:57:27,810 --> 00:57:28,310 Eu sei. 1336 00:57:28,310 --> 00:57:28,851 Matemática é difícil. 1337 00:57:28,851 --> 00:57:29,870 1338 00:57:29,870 --> 00:57:30,980 Você pode usar uma calculadora. 1339 00:57:30,980 --> 00:57:31,580 Está certo. 1340 00:57:31,580 --> 00:57:37,464 1341 00:57:37,464 --> 00:57:40,380 Ou puxar uma tabela ASCII, porque você provavelmente vai querer isso. 1342 00:57:40,380 --> 00:58:03,660 1343 00:58:03,660 --> 00:58:04,820 >> Legal. 1344 00:58:04,820 --> 00:58:07,960 Então eu vou caminhar rapidamente vocês através destes. 1345 00:58:07,960 --> 00:58:11,120 Então, as pessoas têm tabelas ASCII puxado para cima? 1346 00:58:11,120 --> 00:58:15,645 Qual é a nossa numérico número de minúsculas A? 1347 00:58:15,645 --> 00:58:16,270 ALUNO: Sete. 1348 00:58:16,270 --> 00:58:19,420 1349 00:58:19,420 --> 00:58:24,550 >> ALLISON: Então minúsculas A é 97 e maiúsculas A é 65. 1350 00:58:24,550 --> 00:58:26,390 Então, 97 menos 65? 1351 00:58:26,390 --> 00:58:27,782 1352 00:58:27,782 --> 00:58:28,570 >> AUDIÊNCIA: 32? 1353 00:58:28,570 --> 00:58:33,260 1354 00:58:33,260 --> 00:58:35,630 >> ALLISON: 62, sim. 1355 00:58:35,630 --> 00:58:38,675 Portanto, neste caso, o que seria imprimir? 1356 00:58:38,675 --> 00:58:40,360 Esse primeiro? 1357 00:58:40,360 --> 00:58:43,830 Se tivermos por cento d, o que isso indica? 1358 00:58:43,830 --> 00:58:45,980 1359 00:58:45,980 --> 00:58:46,730 ESTUDANTE: Um número. 1360 00:58:46,730 --> 00:58:48,604 ALLISON: Estamos imprimindo a um número real. 1361 00:58:48,604 --> 00:58:50,770 Então, nós estamos indo realmente para imprimir 32 aqui. 1362 00:58:50,770 --> 00:58:56,360 E se isso fosse por cento c, 32 nos daria um espaço. 1363 00:58:56,360 --> 00:58:57,700 1364 00:58:57,700 --> 00:59:01,670 Assim, entendendo que caracteres podem ser impressos 1365 00:59:01,670 --> 00:59:06,140 tanto como números e conforme os personagens reais 1366 00:59:06,140 --> 00:59:11,080 é realmente importante, e pagar a atenção para os tipos reais 1367 00:59:11,080 --> 00:59:12,040 que estamos fazendo aqui. 1368 00:59:12,040 --> 00:59:14,520 1369 00:59:14,520 --> 00:59:15,020 Legal. 1370 00:59:15,020 --> 00:59:18,862 Assim, para cada um destes outros, o que é que vai ser a impressão? 1371 00:59:18,862 --> 00:59:19,825 >> ESTUDANTE: Um personagem. 1372 00:59:19,825 --> 00:59:20,830 >> ALLISON: Uma personagem. 1373 00:59:20,830 --> 00:59:21,330 Legal. 1374 00:59:21,330 --> 00:59:24,260 Então, se vocês querem saber, você pode trabalhar estes para fora em seu próprio país. 1375 00:59:24,260 --> 00:59:25,900 Se você está tendo problemas, me e-mail. 1376 00:59:25,900 --> 00:59:28,950 Mas a segunda só será imprimir uma minúscula b. 1377 00:59:28,950 --> 00:59:32,910 O terceiro irá imprimir uma maiúscula B. A quarta imprimirá 1378 00:59:32,910 --> 00:59:36,410 fora uma maiúscula C, ea última será uma minúscula A. 1379 00:59:36,410 --> 00:59:42,530 E a última um-- na verdade estamos indo para entrar o que esse louco por cento 1380 00:59:42,530 --> 00:59:45,020 sinal significa que mesmo em um par de slides. 1381 00:59:45,020 --> 00:59:46,667 Portanto, tente aqueles em seu próprio país. 1382 00:59:46,667 --> 00:59:48,500 Se você tiver problemas, por favor, venha falar comigo. 1383 00:59:48,500 --> 00:59:49,655 1384 00:59:49,655 --> 00:59:53,290 Se você é tipicamente em Adams corredor D, você provavelmente vai encontrar em torno de mim. 1385 00:59:53,290 --> 00:59:54,760 1386 00:59:54,760 --> 00:59:55,760 >> Então, atoi. 1387 00:59:55,760 --> 00:59:59,660 Quantos de vocês já viram isso função ou ouvido falar dele, afinal? 1388 00:59:59,660 --> 01:00:00,380 1389 01:00:00,380 --> 01:00:00,880 Qualquer um? 1390 01:00:00,880 --> 01:00:02,100 1391 01:00:02,100 --> 01:00:02,600 Legal. 1392 01:00:02,600 --> 01:00:06,250 Então, o que ele realmente significa para ASCII é para inteiro. 1393 01:00:06,250 --> 01:00:13,150 Então, o que você pode fazer é, com César, para quem lê a especificação, 1394 01:00:13,150 --> 01:00:16,460 você vai fazer barra ponto César Depois de escrever o seu programa, 1395 01:00:16,460 --> 01:00:18,690 e, em seguida, você vai entrada de um número que você 1396 01:00:18,690 --> 01:00:24,780 quer codificar a sua mensagem secreta com. 1397 01:00:24,780 --> 01:00:30,700 >> Mas, se nos lembrarmos, toda a nossa insumos são armazenados como strings. 1398 01:00:30,700 --> 01:00:31,390 Certo? 1399 01:00:31,390 --> 01:00:35,160 Temos uma variedade arg v isso é tudo o tipo string. 1400 01:00:35,160 --> 01:00:37,870 Então, se você apenas tentar puxar esse, seria 1401 01:00:37,870 --> 01:00:43,240 acha que que um ou qualquer número você usou é realmente um personagem. 1402 01:00:43,240 --> 01:00:45,490 Então você está indo para obter alguns resultados loucos. 1403 01:00:45,490 --> 01:00:48,200 Então, se você realmente quer transformar isso em um número inteiro 1404 01:00:48,200 --> 01:00:52,060 que você pode usar para manipular sua palavra ou a sua mensagem, 1405 01:00:52,060 --> 01:00:53,366 você vai querer usar atoi. 1406 01:00:53,366 --> 01:00:56,320 atoi apenas converte sua seqüência para um int. 1407 01:00:56,320 --> 01:01:04,530 >> Então, se temos uma seqüência de 12, se nós chamamos atoi em 12, ou o que quer que a entrada é, 1408 01:01:04,530 --> 01:01:07,370 ele vai realmente voltar para você o número inteiro. 1409 01:01:07,370 --> 01:01:10,610 Não é o caráter ou a seqüência de 12. 1410 01:01:10,610 --> 01:01:14,230 Que, quando você começa de acrescentar que a números, 1411 01:01:14,230 --> 01:01:17,710 será muito diferente, porque a cadeia 12 é 1412 01:01:17,710 --> 01:01:21,210 algum número louco em ASCII, mas o número inteiro 12 1413 01:01:21,210 --> 01:01:23,390 é, na verdade, 12, que é o que você quer. 1414 01:01:23,390 --> 01:01:25,630 Então, você quer ter certeza de usar atoi. 1415 01:01:25,630 --> 01:01:29,203 >> Você vai querer esta em César, porque você 1416 01:01:29,203 --> 01:01:32,520 necessita o int fornecido pela usuário na linha de comando. 1417 01:01:32,520 --> 01:01:35,230 Mas quando eles colocá-lo no comando linha, ele é armazenado como uma string 1418 01:01:35,230 --> 01:01:35,813 para começar. 1419 01:01:35,813 --> 01:01:36,950 1420 01:01:36,950 --> 01:01:38,210 Será que isso faz sentido? 1421 01:01:38,210 --> 01:01:40,590 Você não precisa necessariamente preciso isso para Vigenere. 1422 01:01:40,590 --> 01:01:43,180 Com Vigenere, como eu disse antes, você deve tentar e usar 1423 01:01:43,180 --> 01:01:46,600 Matemática ASCII que mais parece este, onde você está, na verdade, 1424 01:01:46,600 --> 01:01:49,320 usando os caracteres que são dadas a você. 1425 01:01:49,320 --> 01:01:50,970 1426 01:01:50,970 --> 01:01:51,470 Legal. 1427 01:01:51,470 --> 01:01:52,970 1428 01:01:52,970 --> 01:01:54,170 Todos bom lá? 1429 01:01:54,170 --> 01:01:56,530 1430 01:01:56,530 --> 01:01:57,480 Impressionante. 1431 01:01:57,480 --> 01:01:59,030 >> Assim módulo. 1432 01:01:59,030 --> 01:02:01,950 Assim que se você está dado este número enorme de César? 1433 01:02:01,950 --> 01:02:03,720 1434 01:02:03,720 --> 01:02:07,970 Você tem essa idéia de que se você estiver em Z e você está 1435 01:02:07,970 --> 01:02:11,020 dado um número de dois, isso significa que você need-- 1436 01:02:11,020 --> 01:02:15,130 Z torna o segundo carta depois de si, certo? 1437 01:02:15,130 --> 01:02:20,800 Então, você precisa de alguma forma envolver em torno, e modulo é a maneira de fazer isso. 1438 01:02:20,800 --> 01:02:23,310 Então, tudo que ele faz é dá-lhe o restante 1439 01:02:23,310 --> 01:02:25,660 da divisão do primeiro número pelo segundo. 1440 01:02:25,660 --> 01:02:28,660 E temos alguns exemplos para que um pouco mais concreto fazer. 1441 01:02:28,660 --> 01:02:34,390 Mas, basicamente, você usa modulo quando você quero fazer algo envolvente. 1442 01:02:34,390 --> 01:02:36,950 >> Então, se você só quer o números de um a oito, 1443 01:02:36,950 --> 01:02:39,670 você pode usar em qualquer outro modulo número, e será sempre 1444 01:02:39,670 --> 01:02:42,960 devolver um número de zero a oito. 1445 01:02:42,960 --> 01:02:48,750 Assim, alguns examples-- se temos 55 módulo 10, 1446 01:02:48,750 --> 01:02:55,350 ele apenas dá-lhe o restante do 55 dividido por 10, que seria de 5. 1447 01:02:55,350 --> 01:02:56,440 1448 01:02:56,440 --> 01:03:02,470 E depois de três modulo cinco, Alguém adivinha o que seria isso? 1449 01:03:02,470 --> 01:03:03,800 1450 01:03:03,800 --> 01:03:04,300 Três. 1451 01:03:04,300 --> 01:03:05,570 1452 01:03:05,570 --> 01:03:10,910 >> Então se você tem um número menor antes o modulo, ele não pode ir na uniformemente. 1453 01:03:10,910 --> 01:03:11,520 É zero. 1454 01:03:11,520 --> 01:03:14,090 Então, ele só retorna o próprio número. 1455 01:03:14,090 --> 01:03:15,920 Assim, oito modulo oito seria? 1456 01:03:15,920 --> 01:03:16,603 >> ALUNO: Zero. 1457 01:03:16,603 --> 01:03:18,350 >> ALLISON: Zero. 1458 01:03:18,350 --> 01:03:20,160 Uma vez que ele vai em uniformemente. 1459 01:03:20,160 --> 01:03:22,095 16 modulo 15? 1460 01:03:22,095 --> 01:03:23,660 >> AUDIÊNCIA: One. 1461 01:03:23,660 --> 01:03:24,700 >> ALLISON: Cool. 1462 01:03:24,700 --> 01:03:29,280 E então este último é apenas para mostrar você- você pode estar se perguntando, OK, 1463 01:03:29,280 --> 01:03:31,800 qual é a ordem das operações aqui? 1464 01:03:31,800 --> 01:03:33,100 Será que dividir pela primeira vez? 1465 01:03:33,100 --> 01:03:34,570 Será que modulo primeiro? 1466 01:03:34,570 --> 01:03:38,730 Então modulo tem a mesma precedência como a divisão ou multiplicação, 1467 01:03:38,730 --> 01:03:39,940 e os seus associativo esquerda. 1468 01:03:39,940 --> 01:03:41,730 Por isso, é da mesma forma. 1469 01:03:41,730 --> 01:03:46,520 Você sempre faria parênteses, em seguida, multiplicação, divisão, 1470 01:03:46,520 --> 01:03:49,570 e módulo em ordem da esquerda para a direita. 1471 01:03:49,570 --> 01:03:51,050 Assim, as regras padrão. 1472 01:03:51,050 --> 01:03:55,260 Basta colocá-lo na mesma categoria como a divisão e multiplicação. 1473 01:03:55,260 --> 01:03:59,040 >> Portanto, neste caso, teríamos tem 1 mais 2 nos dá três. 1474 01:03:59,040 --> 01:04:02,210 Nós que multiplicar por dois, então temos 6. 1475 01:04:02,210 --> 01:04:05,050 Nós modulo que por 2, o que nos dá? 1476 01:04:05,050 --> 01:04:06,042 >> ESTUDANTE: 0. 1477 01:04:06,042 --> 01:04:07,430 >> ALLISON: 0. 1478 01:04:07,430 --> 01:04:10,270 E, então, adicionar 2, de modo que obter 2 neste último caso. 1479 01:04:10,270 --> 01:04:12,080 1480 01:04:12,080 --> 01:04:16,360 Então modulo-- você está indo definitivamente para estar pensando em maneiras de incorporar 1481 01:04:16,360 --> 01:04:19,520 que quando você está enrolando em torno do alfabeto. 1482 01:04:19,520 --> 01:04:24,210 Se você estiver em Z e você precisa mover encaminhar três espaços para chegar a C, 1483 01:04:24,210 --> 01:04:26,230 há todo esse conceito de enrolar. 1484 01:04:26,230 --> 01:04:28,790 Então, vou deixá-lo para vocês para descobrir 1485 01:04:28,790 --> 01:04:31,940 exatamente como você vai usá-lo. 1486 01:04:31,940 --> 01:04:35,660 Mas definitivamente uma ferramenta útil para o seu pset esta semana. 1487 01:04:35,660 --> 01:04:36,910 1488 01:04:36,910 --> 01:04:37,730 Eu realmente gosto disso. 1489 01:04:37,730 --> 01:04:39,480 Este é um dos meus favoritos Série de Exercícios. 1490 01:04:39,480 --> 01:04:41,230 Então, depois de fazê-lo, se você tem amigos, 1491 01:04:41,230 --> 01:04:44,146 você pode, assim, enviar outro segredo mensagens e se certificar de que funciona. 1492 01:04:44,146 --> 01:04:45,695 Porque ele vai decifrá-lo ou qualquer coisa. 1493 01:04:45,695 --> 01:04:46,710 1494 01:04:46,710 --> 01:04:47,390 Muita diversão. 1495 01:04:47,390 --> 01:04:48,840 1496 01:04:48,840 --> 01:04:51,220 >> E isso é o fim da seção. 1497 01:04:51,220 --> 01:04:52,430 1498 01:04:52,430 --> 01:04:54,040 Terminei cedo. 1499 01:04:54,040 --> 01:04:57,540 Eu ainda tenho 15 minutos com vocês, por isso, se há alguma coisa 1500 01:04:57,540 --> 01:05:02,180 que você gostaria de passar por cima de mais, eu ficaria feliz em fazer isso. 1501 01:05:02,180 --> 01:05:04,340 Quaisquer outras perguntas sobre seu pset para aqueles de vocês 1502 01:05:04,340 --> 01:05:06,355 que já começaram ou ler o spec. 1503 01:05:06,355 --> 01:05:07,870 1504 01:05:07,870 --> 01:05:12,060 Tudo o que nós falamos aproximadamente na última hora 1505 01:05:12,060 --> 01:05:16,880 e 15 minutos que você gostasse de mim ao tipo de repetição, eu ficaria feliz em. 1506 01:05:16,880 --> 01:05:20,790 Ou podemos chamá-la, e você pode tudo sair e levar mais doce com você 1507 01:05:20,790 --> 01:05:21,650 como você vai. 1508 01:05:21,650 --> 01:05:23,719 1509 01:05:23,719 --> 01:05:26,260 Mas se houver algum persistente perguntas, por favor, deixe-me saber. 1510 01:05:26,260 --> 01:05:28,467 Você também pode vir para cima e falar comigo depois. 1511 01:05:28,467 --> 01:05:29,425 Eu prometo que eu não mordo. 1512 01:05:29,425 --> 01:05:32,140 1513 01:05:32,140 --> 01:05:32,795 Algo mais? 1514 01:05:32,795 --> 01:05:33,890 1515 01:05:33,890 --> 01:05:35,240 Todo mundo é bom? 1516 01:05:35,240 --> 01:05:37,540 Sentimento de todos como eles podem lidar com este pset? 1517 01:05:37,540 --> 01:05:38,820 1518 01:05:38,820 --> 01:05:42,405 Você vai ser caras bons. 1519 01:05:42,405 --> 01:05:43,905 Horário de atendimento estão lá por uma razão. 1520 01:05:43,905 --> 01:05:45,930 1521 01:05:45,930 --> 01:05:46,460 Legal. 1522 01:05:46,460 --> 01:05:47,020 Tudo bem. 1523 01:05:47,020 --> 01:05:49,680 >> Bem, nesse caso, obrigado tudo o que você tanto vindo. 1524 01:05:49,680 --> 01:05:50,940 Eu espero vê-lo na próxima semana. 1525 01:05:50,940 --> 01:05:52,120 Haverá mais doces. 1526 01:05:52,120 --> 01:05:53,495 Pode haver outras coisas legais. 1527 01:05:53,495 --> 01:05:55,010 1528 01:05:55,010 --> 01:05:59,090 E estou ansioso para ficar para conhecer todos vocês este ano. 1529 01:05:59,090 --> 01:06:00,320