1 00:00:00,000 --> 00:00:11,046 2 00:00:11,046 --> 00:00:12,170 ALLISON BUCHHOLTZ-AU: Ei, todo mundo. 3 00:00:12,170 --> 00:00:13,560 Bem-vindo à seção. 4 00:00:13,560 --> 00:00:17,320 Hoje é apenas vai ser tudo o questionário revisão para o seu teste na quarta-feira. 5 00:00:17,320 --> 00:00:20,060 Espero que todo mundo se lembra que eles têm um quiz na quarta-feira. 6 00:00:20,060 --> 00:00:22,560 E se você não o fez, bem, agora que você foi lembrado. 7 00:00:22,560 --> 00:00:26,486 Então, quarta-feira, certifique-se mostrar-se para a classe ou outras acomodações como 8 00:00:26,486 --> 00:00:26,985 necessário. 9 00:00:26,985 --> 00:00:27,845 10 00:00:27,845 --> 00:00:29,220 Vocês estão indo para ser incrível. 11 00:00:29,220 --> 00:00:30,440 Vai ser ótimo. 12 00:00:30,440 --> 00:00:34,910 E eu vou fazer tudo que eu puder para ajudar a se preparar hoje para o seu questionário 13 00:00:34,910 --> 00:00:35,470 agora. 14 00:00:35,470 --> 00:00:39,960 E também no caso de você não sei, existe um campo de sessão de revisão ampla 15 00:00:39,960 --> 00:00:45,840 hoje, às 07:00, em Laboratórios Noroeste B103 quarto. 16 00:00:45,840 --> 00:00:49,950 Você pode me ver de novo para um encore como Vou levar parte dessa sessão de revisão 17 00:00:49,950 --> 00:00:50,510 também. 18 00:00:50,510 --> 00:00:53,218 Então, se você não pode obter o suficiente de mim Agora, você pode vir de novo hoje à noite. 19 00:00:53,218 --> 00:00:54,130 20 00:00:54,130 --> 00:00:56,060 >> Todos, então primeiro coisas certas primeiro. 21 00:00:56,060 --> 00:00:59,630 Apenas algumas dicas do quiz antes realmente mergulhar em comentários. 22 00:00:59,630 --> 00:01:04,160 Assim como acontece com qualquer exame, a prática vai certamente ajudá-lo. 23 00:01:04,160 --> 00:01:09,260 Existem provas do passado seis ou sete anos lá, 24 00:01:09,260 --> 00:01:12,480 de modo que é um monte de prática material para que vocês têm. 25 00:01:12,480 --> 00:01:15,340 E, de fato, hoje é realmente apenas estar indo sobre quaisquer temas 26 00:01:15,340 --> 00:01:18,900 que vocês têm perguntas sobre como bem como trabalhar através de problemas práticos 27 00:01:18,900 --> 00:01:20,360 do questionário zero. 28 00:01:20,360 --> 00:01:22,690 Então, eu vou vomitar questionário de zero desde o ano passado aqui, 29 00:01:22,690 --> 00:01:26,410 e podemos trabalhar com todos os problemas que vocês gostariam. 30 00:01:26,410 --> 00:01:27,370 >> Assim praticando. 31 00:01:27,370 --> 00:01:29,310 Você vai começar a fazer isso hoje. 32 00:01:29,310 --> 00:01:30,230 Código no papel. 33 00:01:30,230 --> 00:01:32,970 Então, sim, se todos realmente pode sair 34 00:01:32,970 --> 00:01:35,810 papel, que vai ser ótimo, porque você não é 35 00:01:35,810 --> 00:01:41,470 vai ter o seu computador na exame e escrevendo código manualmente 36 00:01:41,470 --> 00:01:44,190 muitas vezes é muito mais difícil do que você poderia esperar. 37 00:01:44,190 --> 00:01:46,680 Você está acostumado a apenas vê-lo e digitá-lo, 38 00:01:46,680 --> 00:01:49,630 e você tem seu compilador para ajudá-lo quando você tem erros, 39 00:01:49,630 --> 00:01:52,190 mas você não conseguir isso no exame. 40 00:01:52,190 --> 00:01:55,140 Então, é realmente importante para realmente ser capaz de escrever o código, 41 00:01:55,140 --> 00:01:58,360 e que a memória muscular de fazer tudo na mão realmente irá ajudá-lo. 42 00:01:58,360 --> 00:01:59,720 43 00:01:59,720 --> 00:02:01,690 >> Então, nós estamos ficando um pouco perto. 44 00:02:01,690 --> 00:02:02,340 É segunda-feira. 45 00:02:02,340 --> 00:02:03,930 Seu exame é na quarta-feira. 46 00:02:03,930 --> 00:02:06,030 Mas se você tiver tempo, assumir definitivamente uma 47 00:02:06,030 --> 00:02:10,199 dos exames do ano passado ou o ano antes sob a restrição de tempo 48 00:02:10,199 --> 00:02:11,660 de uma hora e meia. 49 00:02:11,660 --> 00:02:13,730 Apenas bater para fora uma hora e uma metade do tempo, 50 00:02:13,730 --> 00:02:17,480 e sentar-se para baixo, e apenas trabalhar com os problemas 51 00:02:17,480 --> 00:02:19,962 como se fosse verdade tomá-lo, porque um 52 00:02:19,962 --> 00:02:23,295 das maiores coisas que ouvimos sobre os testes é que eles são muito longo. 53 00:02:23,295 --> 00:02:24,900 54 00:02:24,900 --> 00:02:26,660 É uma grande quantidade de material. 55 00:02:26,660 --> 00:02:30,850 Há um monte de perguntas, ea maioria das pessoas pode não terminar. 56 00:02:30,850 --> 00:02:34,660 Eu sei que eu totalmente não terminou meus testes quando eu tirei a classe. 57 00:02:34,660 --> 00:02:37,180 >> Na mesma nota, como uma menor seção confortável, 58 00:02:37,180 --> 00:02:40,570 entender que este curso se destina para atender a pessoas de todos os níveis. 59 00:02:40,570 --> 00:02:43,640 Toda a razão que temos de dividir menos confortável, em algum lugar entre, 60 00:02:43,640 --> 00:02:47,660 e é mais confortável para tipo de torná-lo mais justo. 61 00:02:47,660 --> 00:02:51,699 E se você é menos confortável, é não é necessário por si para obter tudo. 62 00:02:51,699 --> 00:02:53,990 Como se você estivesse recebendo tudo, você provavelmente 63 00:02:53,990 --> 00:02:55,448 estar na seção mais confortável. 64 00:02:55,448 --> 00:03:00,160 Então, obviamente, não bater-vos muito difícil se você não pode terminar o exame. 65 00:03:00,160 --> 00:03:01,920 Tire isso de mim, eu não fiz isso. 66 00:03:01,920 --> 00:03:03,070 Eu ainda sou um concentrador. 67 00:03:03,070 --> 00:03:04,630 Eu ainda estou ajudando ministrar o curso. 68 00:03:04,630 --> 00:03:06,170 Você vai ficar bem. 69 00:03:06,170 --> 00:03:06,670 Tudo certo. 70 00:03:06,670 --> 00:03:08,740 E, finalmente, dormir um pouco. 71 00:03:08,740 --> 00:03:11,020 Obviamente, com qualquer exame sempre dizemos isso. 72 00:03:11,020 --> 00:03:13,610 Congestionamento na noite anterior e não conseguir dormir 73 00:03:13,610 --> 00:03:16,390 faz não-- talvez se que funciona para você, vá para ele. 74 00:03:16,390 --> 00:03:18,790 Mas, para a grande maioria de pessoas, ficando um pouco de sono, 75 00:03:18,790 --> 00:03:22,390 deixar o seu descanso do cérebro e recuperar antes de vir para o exame 76 00:03:22,390 --> 00:03:23,480 realmente vai ajudá-lo. 77 00:03:23,480 --> 00:03:26,120 Também haverá quase certamente doces no exame, 78 00:03:26,120 --> 00:03:28,019 então você tem que olhar para frente. 79 00:03:28,019 --> 00:03:29,310 Vocês vão fazer grande. 80 00:03:29,310 --> 00:03:30,226 Ele vai ficar bem. 81 00:03:30,226 --> 00:03:31,570 82 00:03:31,570 --> 00:03:36,190 E agora na próxima hora e meia eu vai tentar prepará-lo da melhor maneira que eu puder. 83 00:03:36,190 --> 00:03:41,260 >> Então, eu tenho slides basicamente todas as seções até agora. 84 00:03:41,260 --> 00:03:45,874 Eu não vou passar por todos eles, porque isso não é 85 00:03:45,874 --> 00:03:49,040 viável em uma hora e meia, bem como trabalhar através de problemas práticos. 86 00:03:49,040 --> 00:03:51,410 Então, ao invés Eu tenho uma lista de tópicos. 87 00:03:51,410 --> 00:03:55,160 Estas são todas as coisas que pudéssemos interrogar sobre si. 88 00:03:55,160 --> 00:03:56,950 89 00:03:56,950 --> 00:03:58,770 Se há uma coisa que realmente salta para fora 90 00:03:58,770 --> 00:04:02,140 que pretende passar por cima, que você quer que eu vá mais conceitualmente, 91 00:04:02,140 --> 00:04:04,320 Eu posso tentar dar uma visão geral lá. 92 00:04:04,320 --> 00:04:07,690 Ou se você quiser saltar para a direita para fazendo prática problemas juntos, 93 00:04:07,690 --> 00:04:08,420 nós podemos fazer isso. 94 00:04:08,420 --> 00:04:09,330 Cabe a vocês. 95 00:04:09,330 --> 00:04:10,770 Não há que muitos de vocês. 96 00:04:10,770 --> 00:04:13,180 Então, é tudo o que vocês gostam de fazer. 97 00:04:13,180 --> 00:04:15,667 Eu quero ser o mais útil para vocês. 98 00:04:15,667 --> 00:04:16,827 99 00:04:16,827 --> 00:04:17,910 Então eu vou deixar você só olhar. 100 00:04:17,910 --> 00:04:27,880 101 00:04:27,880 --> 00:04:30,500 >> AUDIÊNCIA: Uma coisa é o gráfico que mantemos 102 00:04:30,500 --> 00:04:33,290 dizendo sobre a pilha eo heap. 103 00:04:33,290 --> 00:04:34,600 104 00:04:34,600 --> 00:04:37,434 Apenas a idéia por trás que e que isso significa. 105 00:04:37,434 --> 00:04:38,350 ALLISON BUCHHOLTZ-AU: Sim, OK. 106 00:04:38,350 --> 00:04:40,290 107 00:04:40,290 --> 00:04:43,216 Este é todo o caminho no final, então deixe-me percorrer. 108 00:04:43,216 --> 00:04:45,490 >> AUDIÊNCIA: Não temos a fazê-lo agora, mas o que quer. 109 00:04:45,490 --> 00:04:47,070 110 00:04:47,070 --> 00:04:49,770 >> ALLISON BUCHHOLTZ-AU: Houve anything-- este. 111 00:04:49,770 --> 00:04:51,570 112 00:04:51,570 --> 00:04:53,555 É este tipo de fuzzy para as pessoas? 113 00:04:53,555 --> 00:04:54,390 114 00:04:54,390 --> 00:04:55,640 AUDIÊNCIA: Sim, eu concordo. 115 00:04:55,640 --> 00:04:57,718 E podemos também fazer buffer overflow? 116 00:04:57,718 --> 00:04:58,926 ALLISON BUCHHOLTZ-AU: Buffer overflow? 117 00:04:58,926 --> 00:04:59,820 Está bem. 118 00:04:59,820 --> 00:05:03,460 Então estouro de buffer é muito fácil apenas para falar. 119 00:05:03,460 --> 00:05:08,217 É basicamente buffers você pensa sobre alguma memória matriz que você tem, certo? 120 00:05:08,217 --> 00:05:10,050 Nós normalmente falamos sobre buffer overflow quando 121 00:05:10,050 --> 00:05:15,160 você não está verificando o quanto o usuário está colocando em, certo? 122 00:05:15,160 --> 00:05:18,540 E a idéia de com estouro de buffer é 123 00:05:18,540 --> 00:05:21,535 eles estão colocando em muito muitos dados para o espaço 124 00:05:21,535 --> 00:05:23,780 que você tenha alocado para eles, certo? 125 00:05:23,780 --> 00:05:28,310 >> Então, se você diz, dar me alguma mensagem, estamos 126 00:05:28,310 --> 00:05:31,860 assumindo que eles vão dar nos uma mensagem comprimento razoável. 127 00:05:31,860 --> 00:05:33,910 Talvez linhas de um casal, outros enfeites. 128 00:05:33,910 --> 00:05:35,150 Então, nós não verificar. 129 00:05:35,150 --> 00:05:38,160 Em vez disso, nos alimentar em um todo livro que é uma mensagem, 130 00:05:38,160 --> 00:05:42,450 e transborda a quantidade de espaço que temos alocado para isso. 131 00:05:42,450 --> 00:05:48,140 E o que acontece é que poderia substituir lugares que não é suposto. 132 00:05:48,140 --> 00:05:52,890 >> Então eu sei que o professor disse Malan algo sobre ataques de estouro de buffer. 133 00:05:52,890 --> 00:05:59,050 Então é aí que a entrada de vontade do usuário alguns enorme quantidade de dados na esperança 134 00:05:59,050 --> 00:06:02,840 que ele substitui passado o final de seu buffer 135 00:06:02,840 --> 00:06:06,479 e substitui something-- eu me pergunto Eu temos essas lâminas aqui. 136 00:06:06,479 --> 00:06:08,270 Eu não acho que nós temos esses slides em aqui. 137 00:06:08,270 --> 00:06:09,960 138 00:06:09,960 --> 00:06:14,460 Mas, basicamente, ele substitui alguma porção da memória 139 00:06:14,460 --> 00:06:17,780 que permite-lhe o acesso às partes de seu computador 140 00:06:17,780 --> 00:06:19,530 que você não faria normalmente tem acesso. 141 00:06:19,530 --> 00:06:20,750 142 00:06:20,750 --> 00:06:23,155 >> Coisa maior com buffer overflow é apenas 143 00:06:23,155 --> 00:06:26,420 a entender que acontece quando você não está 144 00:06:26,420 --> 00:06:29,210 verificar o quanto o seu usuário está colocando em. 145 00:06:29,210 --> 00:06:32,770 Quando não são o tipo de salvaguarda contra isso. 146 00:06:32,770 --> 00:06:36,820 E na sua forma mais simples coisa, é apenas o seu usuário 147 00:06:36,820 --> 00:06:39,130 introduzindo uma enorme quantidade de dados na tentativa 148 00:06:39,130 --> 00:06:45,090 para substituir alguma segurança parte de sua memória. 149 00:06:45,090 --> 00:06:46,310 Isso é tudo o que é. 150 00:06:46,310 --> 00:06:49,810 >> Portanto, este aqui, pilha e heap. 151 00:06:49,810 --> 00:06:53,090 Basicamente tudo isso é é apenas uma representação de memória 152 00:06:53,090 --> 00:06:54,449 e onde as coisas são guardadas. 153 00:06:54,449 --> 00:06:56,240 Isso é realmente uma espécie de tudo que você precisa saber. 154 00:06:56,240 --> 00:06:58,520 As maiores coisas que você precisa saber são 155 00:06:58,520 --> 00:07:01,910 isso-- deixe-me ver se há uma melhor-- aqui. 156 00:07:01,910 --> 00:07:05,380 Portanto, esta é a pilha aqui. 157 00:07:05,380 --> 00:07:08,410 >> Então pilha tem a ver com todas as suas funções 158 00:07:08,410 --> 00:07:10,140 que você está chamando a qualquer momento. 159 00:07:10,140 --> 00:07:15,060 E o que é importante lembrar saindo da semana passada com malloc 160 00:07:15,060 --> 00:07:21,080 é que você realmente não tem controle necessário sobre ele. 161 00:07:21,080 --> 00:07:24,780 Tudo depende de quando certa funções estão sendo executadas. 162 00:07:24,780 --> 00:07:28,170 E quando eles estão executando, eles tem o que são chamados de quadros de pilha 163 00:07:28,170 --> 00:07:29,290 que ir até aqui. 164 00:07:29,290 --> 00:07:32,520 >> Por isso, todo o tipo de acontece sem qualquer participação real a partir de você. 165 00:07:32,520 --> 00:07:33,630 166 00:07:33,630 --> 00:07:35,510 Você escreve o seu programa, e você deixá-lo correr, 167 00:07:35,510 --> 00:07:38,470 e o tipo de pilha leva cuidar de si mesmo como ele precisa. 168 00:07:38,470 --> 00:07:42,940 Então, se no principal que você está chamando cubo, que será passado para cá. 169 00:07:42,940 --> 00:07:44,110 Ele vai criar um quadro. 170 00:07:44,110 --> 00:07:48,330 Mas não há nada que você explicitamente fazer para criar esse quadro de pilha diferente 171 00:07:48,330 --> 00:07:51,430 escrever a função, para começar, OK? 172 00:07:51,430 --> 00:07:56,500 >> O que é uma espécie de sob o controle é a pilha com malloc. 173 00:07:56,500 --> 00:08:01,950 Assim, sempre que você malloc alguma coisa, você está tomando a memória da pilha. 174 00:08:01,950 --> 00:08:05,110 E essa é a memória que você têm, por falta de uma palavra melhor, 175 00:08:05,110 --> 00:08:10,300 controle explícito sobre, pois lembre-se com malloc 176 00:08:10,300 --> 00:08:12,530 é basicamente lá até que você diga o contrário. 177 00:08:12,530 --> 00:08:14,890 Para aqueles de vocês que seção assistiu na semana passada, 178 00:08:14,890 --> 00:08:17,670 ele está lá até que você diga a ele para ir embora. 179 00:08:17,670 --> 00:08:20,850 Ele vai estar lá, a menos caso contrário, não disse. 180 00:08:20,850 --> 00:08:24,750 Assim, a pilha é apenas algo você pode pensar em como a memória 181 00:08:24,750 --> 00:08:26,150 que você tem controle sobre. 182 00:08:26,150 --> 00:08:29,010 E esses são apenas o duas grandes coisas diferentes. 183 00:08:29,010 --> 00:08:31,320 184 00:08:31,320 --> 00:08:38,330 >> Fora isso, você não deve ter se preocupar muito sobre pilha e heap 185 00:08:38,330 --> 00:08:42,159 perguntas ou tipicamente mais justo se você tem parâmetros locais 186 00:08:42,159 --> 00:08:45,385 ou uma função seria na pilha ou heap. 187 00:08:45,385 --> 00:08:47,260 Obviamente, neste caso seria a pilha. 188 00:08:47,260 --> 00:08:49,630 Se você está mallocing alguma coisa, onde é que vem? 189 00:08:49,630 --> 00:08:50,129 O heap. 190 00:08:50,129 --> 00:08:51,147 191 00:08:51,147 --> 00:08:54,230 Se você olhar para testes práticos, aqueles são geralmente do tipo de perguntas 192 00:08:54,230 --> 00:08:55,460 que eles têm. 193 00:08:55,460 --> 00:08:57,340 >> Você não precisa se preocupar muito sobre isso. 194 00:08:57,340 --> 00:09:00,980 Você entrar em mais explicitamente sobre pilha e heap 195 00:09:00,980 --> 00:09:03,460 mais tarde ou em outras classes de CS. 196 00:09:03,460 --> 00:09:06,220 Então, basta ter uma espécie de idéia geral do que isso é 197 00:09:06,220 --> 00:09:09,100 vai ser bom, que eu apenas uma espécie de passou. 198 00:09:09,100 --> 00:09:10,650 199 00:09:10,650 --> 00:09:12,090 Quaisquer outros temas? 200 00:09:12,090 --> 00:09:12,590 Sim? 201 00:09:12,590 --> 00:09:14,923 >> AUDIÊNCIA: Você pode passar por cima de ponteiros de novo muito rapidamente? 202 00:09:14,923 --> 00:09:15,870 ALLISON BUCHHOLTZ-AU: Ponteiros? 203 00:09:15,870 --> 00:09:18,470 Você quer conceptual Resumo dos ponteiros 204 00:09:18,470 --> 00:09:19,994 ou você pratica com ponteiros? 205 00:09:19,994 --> 00:09:21,410 AUDIÊNCIA: Assim como a sintaxe. 206 00:09:21,410 --> 00:09:22,360 ALLISON BUCHHOLTZ-AU: A sintaxe? 207 00:09:22,360 --> 00:09:22,860 Sim. 208 00:09:22,860 --> 00:09:32,090 209 00:09:32,090 --> 00:09:33,090 OK, estamos chegando lá. 210 00:09:33,090 --> 00:09:38,300 211 00:09:38,300 --> 00:09:42,040 Sim, por isso esta é apenas uma espécie de algo quando você tem uma função recursiva, 212 00:09:42,040 --> 00:09:45,954 cada vez que a função recursiva é chamado, ele só acrescenta outro quadro de pilha. 213 00:09:45,954 --> 00:09:47,870 Praticamente um exemplo de como você realmente não 214 00:09:47,870 --> 00:09:50,330 tem controle sobre o quadros em seu stack. 215 00:09:50,330 --> 00:09:54,010 216 00:09:54,010 --> 00:09:54,585 >> OK, ponteiros. 217 00:09:54,585 --> 00:09:57,120 218 00:09:57,120 --> 00:09:59,235 Tudo bem, então a criação de ponteiros. 219 00:09:59,235 --> 00:10:00,300 220 00:10:00,300 --> 00:10:02,420 Lembre-se, é só digitar estrela. 221 00:10:02,420 --> 00:10:07,140 Assim, qualquer tipo de dados que você vai estar apontando para. 222 00:10:07,140 --> 00:10:08,720 223 00:10:08,720 --> 00:10:11,440 Portanto, este seria um ponteiro para um int. 224 00:10:11,440 --> 00:10:13,140 Este seria um ponteiro para um char. 225 00:10:13,140 --> 00:10:14,740 Este seria um ponteiro de um flutuador. 226 00:10:14,740 --> 00:10:17,980 Por isso é basicamente o que quer você quer que ele seja apontando, 227 00:10:17,980 --> 00:10:22,300 estrela é como você declarar o ponteiro, OK? 228 00:10:22,300 --> 00:10:26,200 >> Mas, então, obviamente, fica um pouco complicado quando você tem pointer 229 00:10:26,200 --> 00:10:27,370 ou o que quer que você tem estrela. 230 00:10:27,370 --> 00:10:31,260 Assim, a grande diferença é quando você está declaring-- 231 00:10:31,260 --> 00:10:45,590 por isso temos some-- assim isso leva algum int estrela. 232 00:10:45,590 --> 00:10:49,650 Portanto, este é um ponteiro chama de x para um int, certo? 233 00:10:49,650 --> 00:10:54,600 Então lembre-se que isso faz É esta chama o sistema x. 234 00:10:54,600 --> 00:10:56,970 E isso vai tem algum endereço, certo? 235 00:10:56,970 --> 00:11:00,515 Então vamos apenas dizer que este é o nosso endereço. 236 00:11:00,515 --> 00:11:01,590 237 00:11:01,590 --> 00:11:03,570 Ponteiros segurar endereços. 238 00:11:03,570 --> 00:11:08,660 Então, o que isso diz é que, neste localização, estamos armazenando um int. 239 00:11:08,660 --> 00:11:10,770 240 00:11:10,770 --> 00:11:15,770 >> Assim, uma outra forma, podemos pensar em isto é que este é um int. 241 00:11:15,770 --> 00:11:17,010 242 00:11:17,010 --> 00:11:20,350 Nós realmente não temos atribuído a nada ainda, mas é apenas um int. 243 00:11:20,350 --> 00:11:31,540 Então o que podemos fazer é se nós estrelar x é igual a 5, isso se torna um 5, OK? 244 00:11:31,540 --> 00:11:38,350 Isto diz para ir para qualquer x é apontando para, então vá a este endereço 245 00:11:38,350 --> 00:11:40,210 e torná-lo igual a 5. 246 00:11:40,210 --> 00:11:44,390 Então vamos atribuir 5 para este endereço, certo? 247 00:11:44,390 --> 00:11:52,540 >> E então, se você fizer isso, isso nos dá o endereço de. 248 00:11:52,540 --> 00:11:54,730 Este é o endereço do operador. 249 00:11:54,730 --> 00:11:57,700 Então, qual é o endereço de x? 250 00:11:57,700 --> 00:11:58,809 Nós não sabemos. 251 00:11:58,809 --> 00:12:00,225 Nós não lhe é atribuído um endereço. 252 00:12:00,225 --> 00:12:03,000 253 00:12:03,000 --> 00:12:09,105 Poderíamos dizer que é some-- agora demos que um endereço, de modo que o endereço é 4. 254 00:12:09,105 --> 00:12:10,690 255 00:12:10,690 --> 00:12:16,980 E, na verdade, se passar por algo assim, o tipo do que nós fizemos. 256 00:12:16,980 --> 00:12:25,800 Então, trabalhando através de aqui- eu encontrar ajuda se você tirar os ponteiros. 257 00:12:25,800 --> 00:12:28,270 Se você estiver em seu exame, eu recomendo caixas de desenho. 258 00:12:28,270 --> 00:12:29,490 259 00:12:29,490 --> 00:12:33,310 >> Portanto, este primeiro, int x é igual a 5. 260 00:12:33,310 --> 00:12:37,370 Isto apenas significa que temos alguma colocar na memória que é 5, certo? 261 00:12:37,370 --> 00:12:38,540 262 00:12:38,540 --> 00:12:44,760 E a nossa mesa aqui nos diz que é no endereço 0x04. 263 00:12:44,760 --> 00:12:48,770 264 00:12:48,770 --> 00:12:50,280 E então criamos alguns ponteiro. 265 00:12:50,280 --> 00:12:51,820 266 00:12:51,820 --> 00:12:55,310 Então, vamos decompô-lo um de cada vez. 267 00:12:55,310 --> 00:12:59,820 Então isso cria alguns caixa para um int, certo? 268 00:12:59,820 --> 00:13:01,970 Ele vai segurar algum endereço de uma lo. 269 00:13:01,970 --> 00:13:03,470 Portanto, este é um ponteiro. 270 00:13:03,470 --> 00:13:04,940 271 00:13:04,940 --> 00:13:06,510 E este giz é realmente pequena. 272 00:13:06,510 --> 00:13:07,472 273 00:13:07,472 --> 00:13:08,680 Portanto, temos alguns ponteiro aqui. 274 00:13:08,680 --> 00:13:10,060 275 00:13:10,060 --> 00:13:13,530 E a nossa mesa nos diz que é o endereço é 0x08. 276 00:13:13,530 --> 00:13:15,190 277 00:13:15,190 --> 00:13:16,200 Legal. 278 00:13:16,200 --> 00:13:23,240 E estamos atribuindo -lo para o endereço de x. 279 00:13:23,240 --> 00:13:26,330 >> Lembre-se, os ponteiros segurar endereços, OK? 280 00:13:26,330 --> 00:13:32,050 Portanto, se queremos manter x, temos usar o operador de endereço, que 281 00:13:32,050 --> 00:13:36,520 é o comercial, para obter o endereço de x, que neste caso, 0x04. 282 00:13:36,520 --> 00:13:39,130 283 00:13:39,130 --> 00:13:44,430 E então, se temos alguma cópia int, isso só 284 00:13:44,430 --> 00:13:48,060 cria alguma outra caixa que detém uma cópia int chamado. 285 00:13:48,060 --> 00:13:49,410 286 00:13:49,410 --> 00:13:55,330 E se nós atribuí-la a isto-- por isso este é referência a ele. 287 00:13:55,330 --> 00:14:00,090 Então ele diz que quer ir para ponteiro endereço detém. 288 00:14:00,090 --> 00:14:05,330 Ponteiro ocupa este endereço, então nós iríamos até aqui, 289 00:14:05,330 --> 00:14:07,130 e dizemos: OK, o que está nele? 290 00:14:07,130 --> 00:14:08,610 É 5. 291 00:14:08,610 --> 00:14:09,815 Assim, torna-se cópia 5. 292 00:14:09,815 --> 00:14:11,800 293 00:14:11,800 --> 00:14:12,540 Faz sentido? 294 00:14:12,540 --> 00:14:15,540 295 00:14:15,540 --> 00:14:25,020 >> E se eu tentasse atribuir isso só ponteiro. 296 00:14:25,020 --> 00:14:26,476 297 00:14:26,476 --> 00:14:27,850 O que faz ponteiro realmente iguais? 298 00:14:27,850 --> 00:14:31,126 299 00:14:31,126 --> 00:14:34,315 Seria apenas o que ponteiro contém, certo? 300 00:14:34,315 --> 00:14:36,400 301 00:14:36,400 --> 00:14:37,580 E então o que se eu fizesse isso? 302 00:14:37,580 --> 00:14:38,922 303 00:14:38,922 --> 00:14:39,880 O que cópia ser agora? 304 00:14:39,880 --> 00:14:41,365 305 00:14:41,365 --> 00:14:42,275 >> AUDIÊNCIA: 0x08. 306 00:14:42,275 --> 00:14:44,150 ALLISON BUCHHOLTZ-AU: Sim, o endereço do nosso ponteiro. 307 00:14:44,150 --> 00:14:46,832 308 00:14:46,832 --> 00:14:48,790 Qualquer parte que que precisa ser re-explicado? 309 00:14:48,790 --> 00:14:50,170 310 00:14:50,170 --> 00:14:50,670 Legal. 311 00:14:50,670 --> 00:14:53,350 312 00:14:53,350 --> 00:14:57,740 Há definitivamente um muito problema diversão em um questionário 313 00:14:57,740 --> 00:15:00,100 que podemos sobre essa dá-lhe mais prática. 314 00:15:00,100 --> 00:15:00,937 315 00:15:00,937 --> 00:15:03,270 Os caras da semana passada pode dizer-lhe que não era tão ruim assim. 316 00:15:03,270 --> 00:15:06,000 Temos através de um todo gráfico, e todos fizeram grande. 317 00:15:06,000 --> 00:15:10,830 >> OK, então isso é visão geral de sintaxe de ponteiros. 318 00:15:10,830 --> 00:15:15,070 Maior coisa é entender como para criá-los, fazê-referenciamento, 319 00:15:15,070 --> 00:15:18,190 e endereço, OK? 320 00:15:18,190 --> 00:15:18,690 Legal. 321 00:15:18,690 --> 00:15:20,775 Quaisquer outros temas antes mergulhamos em prática. 322 00:15:20,775 --> 00:15:24,280 323 00:15:24,280 --> 00:15:28,011 Além disso, se estamos passando por os problemas de prática 324 00:15:28,011 --> 00:15:30,760 e há algo que você quer um reciclagem, podemos fazer isso também. 325 00:15:30,760 --> 00:15:31,300 Você tem alguma coisa? 326 00:15:31,300 --> 00:15:32,758 >> AUDIÊNCIA: Estruturas e listas ligadas. 327 00:15:32,758 --> 00:15:35,130 ALLISON BUCHHOLTZ-AU: Structs e listas ligadas, OK. 328 00:15:35,130 --> 00:15:37,100 Então estruturas. 329 00:15:37,100 --> 00:15:38,990 Nós, na verdade, estão indo sobre isso esta noite também. 330 00:15:38,990 --> 00:15:40,130 331 00:15:40,130 --> 00:15:41,890 OK, então estruturas. 332 00:15:41,890 --> 00:15:47,490 Estruturas são, basicamente, apenas uma maneira para que você mantenha 333 00:15:47,490 --> 00:15:50,430 vários valores de diferentes tipos. 334 00:15:50,430 --> 00:15:55,150 Assim, com uma matriz estamos contraiu a um tipo de dados. 335 00:15:55,150 --> 00:16:00,965 Nossa matriz ou tem que ser apenas números, ou ser apenas caracteres, ou ser apenas carros alegóricos. 336 00:16:00,965 --> 00:16:02,240 337 00:16:02,240 --> 00:16:05,470 >> Mas talvez você precisa conter mais do que isso. 338 00:16:05,470 --> 00:16:09,130 Talvez você precisa hold-- se você está falando de um aluno, 339 00:16:09,130 --> 00:16:13,660 você vai ter a sua casa, a sua Número de identificação, sua idade, onde moram, 340 00:16:13,660 --> 00:16:14,240 certo? 341 00:16:14,240 --> 00:16:16,460 E todos aqueles que são diferentes tipos de tipos. 342 00:16:16,460 --> 00:16:18,680 Então você não pode armazenar todos aqueles em uma matriz. 343 00:16:18,680 --> 00:16:21,750 >> Então, o que você pode fazer é você pode criar um struct, que 344 00:16:21,750 --> 00:16:26,240 você pode pensar que o seu próprio tipo de dados pessoais. 345 00:16:26,240 --> 00:16:29,130 Então, ao invés de apenas ter ints e em vez de apenas ter carros alegóricos, 346 00:16:29,130 --> 00:16:33,210 você pode ter um aluno tipo que tem todos esses campos na mesma. 347 00:16:33,210 --> 00:16:39,740 Então, a nossa forma de inicializar nossas estruturas é-- realmente 348 00:16:39,740 --> 00:16:44,921 desde a minha escrita é terrível, nós vão fazer a transição para a digitação. 349 00:16:44,921 --> 00:16:45,420 Woo. 350 00:16:45,420 --> 00:16:48,800 351 00:16:48,800 --> 00:16:53,150 >> OK, por isso, se queremos criar um struct-- Eu estou indo só para ele aqui. 352 00:16:53,150 --> 00:16:57,730 Desconsidere o principal em tudo o que que usaremos mais tarde. 353 00:16:57,730 --> 00:17:02,330 Assim, a maneira que você quer fazer é com typedef struct. 354 00:17:02,330 --> 00:17:10,530 355 00:17:10,530 --> 00:17:13,349 E vamos chamar esse aluno porque é isso que eu estava usando. 356 00:17:13,349 --> 00:17:17,801 OK, então typedef significa que você está a definição de um novo tipo, OK? 357 00:17:17,801 --> 00:17:20,140 358 00:17:20,140 --> 00:17:24,355 Há nuances em quando você faz apenas um struct contra um struct typedef. 359 00:17:24,355 --> 00:17:26,313 Para todas as intenções e propósitos, vocês são apenas 360 00:17:26,313 --> 00:17:29,490 vai assumir que eles estão aproximadamente o mesmo e apenas 361 00:17:29,490 --> 00:17:30,820 usar typedef struct para agora. 362 00:17:30,820 --> 00:17:35,180 Ele vai se tornar muito mais aparente em sua próxima P definir o que essas diferenças são, 363 00:17:35,180 --> 00:17:37,960 mas eu não acho que você precisa se preocupar com isso agora. 364 00:17:37,960 --> 00:17:40,360 Eu prefiro muito mais você sabe como criar um, 365 00:17:40,360 --> 00:17:41,880 acessá-lo, e atribuir [? valor. ?] 366 00:17:41,880 --> 00:17:47,820 >> Um novo tipo de estrutura, e estamos chamando-o de estudante. 367 00:17:47,820 --> 00:17:52,640 Então, depois que terminar de criar este, para todos os efeitos, 368 00:17:52,640 --> 00:17:55,070 você vai ter um tipo chamado aluno. 369 00:17:55,070 --> 00:17:59,610 E você pode pensar nele apenas como um tipo como um int ou um float, ou um char. 370 00:17:59,610 --> 00:18:01,820 É apenas um outro tipo, OK? 371 00:18:01,820 --> 00:18:04,530 >> Assim, no presente, o que temos? 372 00:18:04,530 --> 00:18:05,420 Temos talvez um nome. 373 00:18:05,420 --> 00:18:08,275 Então talvez nós queremos um nome de cadeia. 374 00:18:08,275 --> 00:18:09,610 375 00:18:09,610 --> 00:18:14,065 E nós temos talvez um int que é um ID. 376 00:18:14,065 --> 00:18:16,360 377 00:18:16,360 --> 00:18:19,085 E nós temos um outro em que é o número de telefone. 378 00:18:19,085 --> 00:18:21,990 379 00:18:21,990 --> 00:18:26,200 E nós temos some-- vamos ver. 380 00:18:26,200 --> 00:18:27,200 O que mais podemos ter? 381 00:18:27,200 --> 00:18:29,385 Nós vamos ter alguma corda em sua casa. 382 00:18:29,385 --> 00:18:32,340 383 00:18:32,340 --> 00:18:34,510 Todas as coisas que um estudante tem. 384 00:18:34,510 --> 00:18:36,960 >> Então, isso cria um struct agora. 385 00:18:36,960 --> 00:18:41,450 Então, como podemos criar um estudante? 386 00:18:41,450 --> 00:18:46,960 Se tivermos alguma variável que está vai falar sobre Walker aqui, 387 00:18:46,960 --> 00:18:51,245 então nós estamos apenas have-- vai chamar este andador. 388 00:18:51,245 --> 00:18:52,520 Ele precisa de um tipo. 389 00:18:52,520 --> 00:18:53,770 Qual é o seu tipo? 390 00:18:53,770 --> 00:18:54,520 AUDIÊNCIA: Estudante. 391 00:18:54,520 --> 00:18:55,395 ALLISON BUCHHOLTZ-AU: Estudante. 392 00:18:55,395 --> 00:18:57,130 393 00:18:57,130 --> 00:19:04,800 Então, isso apenas cria um objeto que você pode pensar que tem todas essas coisas. 394 00:19:04,800 --> 00:19:07,880 Você acabou de criar um estudante walker. 395 00:19:07,880 --> 00:19:10,910 Então, agora nós precisamos ser capazes para atribuir tudo isso, certo? 396 00:19:10,910 --> 00:19:13,500 Então, alguém se lembra como temos acesso dentro de um struct? 397 00:19:13,500 --> 00:19:14,762 398 00:19:14,762 --> 00:19:15,470 AUDIÊNCIA: Período. 399 00:19:15,470 --> 00:19:16,730 ALLISON BUCHHOLTZ-AU: Período Exatamente. 400 00:19:16,730 --> 00:19:23,795 Então, se quiséssemos atribuir lhe um nome, nós poderíamos fazer isso. 401 00:19:23,795 --> 00:19:24,820 402 00:19:24,820 --> 00:19:28,680 Obviamente, isso faria ser-- esta parte aqui seria 403 00:19:28,680 --> 00:19:31,831 estar dentro principal, de modo na verdade, deixe-me fazer isso. 404 00:19:31,831 --> 00:19:40,980 405 00:19:40,980 --> 00:19:44,250 Declare esta acima principal, para que podemos usá-lo dentro principal. 406 00:19:44,250 --> 00:19:52,250 407 00:19:52,250 --> 00:20:00,980 Então agora eu quero que ele faça ID, e vamos fazer alguma lá, 408 00:20:00,980 --> 00:20:02,970 e depois vamos atribuir uma casa. 409 00:20:02,970 --> 00:20:07,990 410 00:20:07,990 --> 00:20:09,000 Bam. 411 00:20:09,000 --> 00:20:09,650 Legal. 412 00:20:09,650 --> 00:20:19,870 >> Portanto, agora devemos sempre precisam de acesso nada mais tarde on-- talvez nós-- 413 00:20:19,870 --> 00:20:25,920 se alguma vez precisar acessar qualquer coisa, vamos fazer um ID int cópia. 414 00:20:25,920 --> 00:20:27,400 415 00:20:27,400 --> 00:20:30,530 E eu quero copiar ID para este Walker. 416 00:20:30,530 --> 00:20:31,370 Como eu poderia fazer isso? 417 00:20:31,370 --> 00:20:33,670 418 00:20:33,670 --> 00:20:37,790 Você precisa acessar dentro do walker struct de [? ir para que?] [? E?]. 419 00:20:37,790 --> 00:20:41,280 E, do mesmo modo que nós atribuiu-se aqui, como 420 00:20:41,280 --> 00:20:45,573 poderemos acessá-lo quando queremos dar esse valor para algo mais? 421 00:20:45,573 --> 00:20:46,406 AUDIÊNCIA: Walker.id. 422 00:20:46,406 --> 00:20:47,252 423 00:20:47,252 --> 00:20:48,376 ALLISON BUCHHOLTZ-AU: Sim, exatamente. 424 00:20:48,376 --> 00:20:51,884 425 00:20:51,884 --> 00:20:54,175 Então, isso é tudo muito bonito que você precisa saber para estruturas. 426 00:20:54,175 --> 00:20:55,750 427 00:20:55,750 --> 00:20:58,560 Você só precisa pensar em -los como uma outra variável. 428 00:20:58,560 --> 00:21:01,710 Basicamente a criar o seu próprio tipo de variável, OK? 429 00:21:01,710 --> 00:21:04,440 430 00:21:04,440 --> 00:21:07,970 Você usá-lo para declarar variáveis ​​em qualquer forma. 431 00:21:07,970 --> 00:21:10,290 Aqui walker ainda é uma variável. 432 00:21:10,290 --> 00:21:14,230 Ele só tem um aluno tipo agora, em vez de um int tipo, ou um tipo string, 433 00:21:14,230 --> 00:21:15,070 ou um tipo char. 434 00:21:15,070 --> 00:21:17,014 435 00:21:17,014 --> 00:21:19,930 Se houvesse uma maneira fácil de falar sobre estruturas, é literalmente apenas um 436 00:21:19,930 --> 00:21:24,430 criar o seu próprio tipo de dados que permite que você agrupe 437 00:21:24,430 --> 00:21:28,320 todas estas diferentes tipo de dados em conjunto. 438 00:21:28,320 --> 00:21:29,754 439 00:21:29,754 --> 00:21:31,595 Será que isso faz sentido? 440 00:21:31,595 --> 00:21:33,920 441 00:21:33,920 --> 00:21:34,420 Está bem. 442 00:21:34,420 --> 00:21:35,920 443 00:21:35,920 --> 00:21:37,530 Isso e acessar com pontos. 444 00:21:37,530 --> 00:21:38,790 445 00:21:38,790 --> 00:21:39,960 Praticamente tudo que você precisa. 446 00:21:39,960 --> 00:21:41,150 447 00:21:41,150 --> 00:21:46,600 >> OK, onde foi o meu PowerPoint ir? 448 00:21:46,600 --> 00:21:47,580 Aqui está. 449 00:21:47,580 --> 00:21:49,050 450 00:21:49,050 --> 00:21:50,520 Bem, isso é estranho. 451 00:21:50,520 --> 00:21:53,950 452 00:21:53,950 --> 00:21:55,420 Aha. 453 00:21:55,420 --> 00:21:56,766 OK, legal. 454 00:21:56,766 --> 00:21:58,876 455 00:21:58,876 --> 00:22:01,000 Quaisquer outras coisas ou nós quer ir para a prática? 456 00:22:01,000 --> 00:22:02,210 457 00:22:02,210 --> 00:22:02,710 Prática? 458 00:22:02,710 --> 00:22:03,501 Está bem. 459 00:22:03,501 --> 00:22:04,000 Impressionante. 460 00:22:04,000 --> 00:22:05,642 461 00:22:05,642 --> 00:22:06,600 Eu vou sair desta. 462 00:22:06,600 --> 00:22:08,490 Se em qualquer momento durante questões práticas, 463 00:22:08,490 --> 00:22:12,630 Estou feliz por renovar e passar por coisas. 464 00:22:12,630 --> 00:22:15,240 Então, eu tenho questionário zerar até aqui. 465 00:22:15,240 --> 00:22:18,370 Se vocês querem puxar lo em seu computador, 466 00:22:18,370 --> 00:22:20,670 assim como levar de cinco minutos para percorrer. 467 00:22:20,670 --> 00:22:23,540 Talvez escolher alguns topo perguntas que você quer passar por cima. 468 00:22:23,540 --> 00:22:27,390 Se vocês não podem decidir, nós vamos lentamente começar a trabalhar com eles, 469 00:22:27,390 --> 00:22:31,590 mas eu tenho certeza que vai ser um pouco perguntas que são particularmente 470 00:22:31,590 --> 00:22:34,890 ansioso para falar e ter me trabalhar com com todos vocês. 471 00:22:34,890 --> 00:22:36,580 Então, basta ir em frente e tomar cinco minutos. 472 00:22:36,580 --> 00:22:37,780 Percorra. 473 00:22:37,780 --> 00:22:40,620 E este é o teste a partir de 2013. 474 00:22:40,620 --> 00:22:41,841 >> AUDIÊNCIA: Zero? 475 00:22:41,841 --> 00:22:43,630 >> ALLISON BUCHHOLTZ-AU: Sim, quiz zero. 476 00:22:43,630 --> 00:22:45,647 Nós não estamos fazendo um teste de material. 477 00:22:45,647 --> 00:22:46,980 Faremos isso em algumas semanas. 478 00:22:46,980 --> 00:22:52,941 479 00:22:52,941 --> 00:22:55,190 Também para aqueles de vocês que veio no final, temos doces, 480 00:22:55,190 --> 00:23:00,580 por isso que vocês querem doce? 481 00:23:00,580 --> 00:23:01,530 >> AUDIÊNCIA: Claro. 482 00:23:01,530 --> 00:23:03,321 >> ALLISON BUCHHOLTZ-AU: Eu sou apenas vai passar ao redor. 483 00:23:03,321 --> 00:23:09,774 484 00:23:09,774 --> 00:23:11,940 Ei, se vocês chegarem aqui cedo, você tem mais doces. 485 00:23:11,940 --> 00:23:12,500 Isso é bom. 486 00:23:12,500 --> 00:23:13,550 Ben, você quer doces? 487 00:23:13,550 --> 00:23:19,350 488 00:23:19,350 --> 00:23:20,556 Você quer algum destes? 489 00:23:20,556 --> 00:23:24,122 490 00:23:24,122 --> 00:23:26,080 Há também Snickers se alguém quer Snickers. 491 00:23:26,080 --> 00:23:27,640 492 00:23:27,640 --> 00:23:29,360 Eu vou deixá-los aqui e aqui. 493 00:23:29,360 --> 00:23:30,946 Sinta-se livre. 494 00:23:30,946 --> 00:23:32,485 Você quer mais? 495 00:23:32,485 --> 00:23:33,235 AUDIÊNCIA: tudo pronto. 496 00:23:33,235 --> 00:23:33,540 Obrigado. 497 00:23:33,540 --> 00:23:36,248 >> ALLISON BUCHHOLTZ-AU: E eu tinha um bom pequena pilha lá no início. 498 00:23:36,248 --> 00:23:49,080 499 00:23:49,080 --> 00:23:51,980 Vocês começar a fazer o teste e Eu começo a ter uma festa de questionário classificação. 500 00:23:51,980 --> 00:23:54,496 501 00:23:54,496 --> 00:23:55,360 É o caos. 502 00:23:55,360 --> 00:23:56,460 503 00:23:56,460 --> 00:23:57,385 900 exames. 504 00:23:57,385 --> 00:23:58,650 Vai ser muito divertido. 505 00:23:58,650 --> 00:24:00,441 506 00:24:00,441 --> 00:24:02,036 Vai ser ótimo. 507 00:24:02,036 --> 00:24:04,430 Tenho certeza de que essa é uma da maior ligação pessoal 508 00:24:04,430 --> 00:24:05,380 noites do ano. 509 00:24:05,380 --> 00:24:15,660 510 00:24:15,660 --> 00:24:19,175 Alguém já fez teste de zero a partir de ainda no ano passado, por curiosidade? 511 00:24:19,175 --> 00:24:20,335 >> AUDIÊNCIA: As partes dele. 512 00:24:20,335 --> 00:24:21,543 >> ALLISON BUCHHOLTZ-AU: Partes dele, OK. 513 00:24:21,543 --> 00:24:24,272 514 00:24:24,272 --> 00:24:26,482 Você tem perguntas sobre qualquer um deles? 515 00:24:26,482 --> 00:24:28,190 AUDIÊNCIA: Eu já foi para o horário de expediente. 516 00:24:28,190 --> 00:24:28,898 Obrigado embora. 517 00:24:28,898 --> 00:24:30,187 518 00:24:30,187 --> 00:24:32,520 ALLISON BUCHHOLTZ-AU: Bem, espero que ainda é tipo de útil. 519 00:24:32,520 --> 00:24:42,990 520 00:24:42,990 --> 00:24:45,634 Quando você vai para o horário de expediente para isso? 521 00:24:45,634 --> 00:24:47,300 AUDIÊNCIA: Meu TF tinha-lhes esta tarde. 522 00:24:47,300 --> 00:24:47,966 ALLISON BUCHHOLTZ-AU: Oh. 523 00:24:47,966 --> 00:24:48,977 Quem é o seu TF? 524 00:24:48,977 --> 00:24:49,854 525 00:24:49,854 --> 00:24:51,020 AUDIÊNCIA: Fred [? Wujaya?]. 526 00:24:51,020 --> 00:24:52,622 527 00:24:52,622 --> 00:24:54,080 ALLISON BUCHHOLTZ-AU: Há tantas TFs. 528 00:24:54,080 --> 00:24:55,350 529 00:24:55,350 --> 00:24:55,850 Tantos. 530 00:24:55,850 --> 00:25:16,530 531 00:25:16,530 --> 00:25:17,340 Tudo certo. 532 00:25:17,340 --> 00:25:45,310 533 00:25:45,310 --> 00:25:48,950 Alguém tem alguma para começar o que eu posso anotar que queremos trabalhar? 534 00:25:48,950 --> 00:25:53,770 535 00:25:53,770 --> 00:25:55,685 Eu suponho que os ponteiros um com a tabela. 536 00:25:55,685 --> 00:25:56,890 537 00:25:56,890 --> 00:25:57,610 Vá em frente. 538 00:25:57,610 --> 00:25:59,180 >> AUDIÊNCIA: Talvez a chave de um. 539 00:25:59,180 --> 00:26:02,362 540 00:26:02,362 --> 00:26:03,445 ALLISON BUCHHOLTZ-AU: Então o número 12? 541 00:26:03,445 --> 00:26:06,750 542 00:26:06,750 --> 00:26:10,770 Presumo número 8 e 9 são provavelmente aqueles que as pessoas querem passar por cima. 543 00:26:10,770 --> 00:26:12,116 >> AUDIÊNCIA: E 10 e 11. 544 00:26:12,116 --> 00:26:21,860 545 00:26:21,860 --> 00:26:25,806 >> ZAMYLA Chan: E vocês sabem você recebe uma página de anotações, certo? 546 00:26:25,806 --> 00:26:28,450 >> AUDIÊNCIA: Sim, então o que são estamos autorizados a colocar sobre isso. 547 00:26:28,450 --> 00:26:30,658 >> ALLISON BUCHHOLTZ-AU: Você está autorizado para colocar o que quiser. 548 00:26:30,658 --> 00:26:31,887 549 00:26:31,887 --> 00:26:32,720 E ele pode ser digitado. 550 00:26:32,720 --> 00:26:35,270 Tanto quanto me lembro, nossos foram digitados. 551 00:26:35,270 --> 00:26:37,022 >> AUDIÊNCIA: Você pode fazer costas e ambos os lados? 552 00:26:37,022 --> 00:26:38,780 >> ALLISON BUCHHOLTZ-AU: Sim, ambos os lados. 553 00:26:38,780 --> 00:26:42,940 Portanto, algo como a pilha e [? back-end?] montão, sua corrida 554 00:26:42,940 --> 00:26:43,780 vezes. 555 00:26:43,780 --> 00:26:44,840 Útil. 556 00:26:44,840 --> 00:26:47,990 Talvez pequenas coisas sobre ponteiros para lembrá-lo. 557 00:26:47,990 --> 00:26:49,205 Sintaxe para as coisas. 558 00:26:49,205 --> 00:26:51,600 559 00:26:51,600 --> 00:26:54,830 Tendo como um esqueleto programa pode ser super útil. 560 00:26:54,830 --> 00:27:00,719 Eu sei que eu sempre esquecia exatamente o que Era para eu escrever para int main, 561 00:27:00,719 --> 00:27:03,010 porque eu sempre basta copiar colar do meu set anterior P 562 00:27:03,010 --> 00:27:06,232 ou ele já está lá, então Eu realmente nunca escreveu, 563 00:27:06,232 --> 00:27:07,690 assim que ter que pode ser super útil. 564 00:27:07,690 --> 00:27:09,280 565 00:27:09,280 --> 00:27:14,320 >> OK, então por que não nós começar com o número 8, então? 566 00:27:14,320 --> 00:27:21,730 567 00:27:21,730 --> 00:27:22,810 Tudo certo. 568 00:27:22,810 --> 00:27:23,310 Está bem. 569 00:27:23,310 --> 00:27:25,060 570 00:27:25,060 --> 00:27:26,310 Por isso, considero o programa abaixo. 571 00:27:26,310 --> 00:27:28,110 572 00:27:28,110 --> 00:27:30,700 Então, obviamente, quando vemos ponteiros, é provavelmente 573 00:27:30,700 --> 00:27:32,200 uma boa idéia para começar a desenhar, né? 574 00:27:32,200 --> 00:27:34,552 575 00:27:34,552 --> 00:27:36,760 Eu quero saber onde todo o meu grandes pedaços de giz foi. 576 00:27:36,760 --> 00:27:37,870 Este é tipo de chato. 577 00:27:37,870 --> 00:27:40,210 578 00:27:40,210 --> 00:27:45,820 >> Portanto, temos aqui alguns função swap que vai levar em dois ponteiros. 579 00:27:45,820 --> 00:27:48,630 Portanto, neste caso, eles realmente deve ser a mudança 580 00:27:48,630 --> 00:27:53,400 coisas contra a nossa troca de originais função que só levou em cópias. 581 00:27:53,400 --> 00:27:57,030 Então, o que ele vai fazer é-- vamos começar com principal, 582 00:27:57,030 --> 00:27:58,450 porque é onde 1 é. 583 00:27:58,450 --> 00:28:04,296 >> Portanto, temos alguns int x 1. 584 00:28:04,296 --> 00:28:11,860 Temos alguns y que é igual a 2. 585 00:28:11,860 --> 00:28:14,390 E então nós temos alguma troca que vai levar os. 586 00:28:14,390 --> 00:28:17,320 E vamos ver o que temos aqui. 587 00:28:17,320 --> 00:28:19,542 588 00:28:19,542 --> 00:28:22,709 E no nosso mesa-- oh boy. 589 00:28:22,709 --> 00:28:23,792 Como é que eu vou fazer isso? 590 00:28:23,792 --> 00:28:25,900 Vou desenhar a minha mesa aqui. 591 00:28:25,900 --> 00:28:49,490 592 00:28:49,490 --> 00:28:50,552 Fazendo mal lá. 593 00:28:50,552 --> 00:28:51,260 Fazendo mal. 594 00:28:51,260 --> 00:28:52,470 595 00:28:52,470 --> 00:28:57,960 1, 2, 3, 4, 5, 6, 7. 596 00:28:57,960 --> 00:29:11,220 597 00:29:11,220 --> 00:29:15,706 E eles nos dão de que um é um, e 1 2. 598 00:29:15,706 --> 00:29:16,206 Legal. 599 00:29:16,206 --> 00:29:17,674 600 00:29:17,674 --> 00:29:18,174 Impressionante. 601 00:29:18,174 --> 00:29:19,650 602 00:29:19,650 --> 00:29:20,464 Então 3. 603 00:29:20,464 --> 00:29:21,380 E não há [? 1. uma?] 604 00:29:21,380 --> 00:29:24,500 605 00:29:24,500 --> 00:29:25,250 >> Tudo certo. 606 00:29:25,250 --> 00:29:35,202 E então o endereço de x é 0x123. 607 00:29:35,202 --> 00:29:41,260 E y é Ox127. 608 00:29:41,260 --> 00:29:41,760 Legal. 609 00:29:41,760 --> 00:29:42,940 610 00:29:42,940 --> 00:29:43,595 Tudo certo. 611 00:29:43,595 --> 00:29:46,710 Eu quero que vocês trabalhar neste para o trabalho apenas como-- nele 612 00:29:46,710 --> 00:29:48,385 com as pessoas ao seu redor. 613 00:29:48,385 --> 00:29:50,340 Eu gostaria de ter dito que enquanto eu estava montando. 614 00:29:50,340 --> 00:29:50,840 Trabalhar nele. 615 00:29:50,840 --> 00:29:53,270 Experimente e trabalhar nele por vos por alguns minutos, 616 00:29:53,270 --> 00:29:54,930 e depois vou trabalhar nisso com você. 617 00:29:54,930 --> 00:29:57,034 618 00:29:57,034 --> 00:30:00,117 Porque a única maneira que você é realmente vai aprender é fazendo isso sozinho. 619 00:30:00,117 --> 00:31:29,580 620 00:31:29,580 --> 00:31:30,110 Não se preocupe. 621 00:31:30,110 --> 00:31:30,610 Boa sorte. 622 00:31:30,610 --> 00:32:17,390 623 00:32:17,390 --> 00:32:20,030 >> OK, por que não nós lentamente começar a trabalhar por isso. 624 00:32:20,030 --> 00:32:23,695 Então, todo mundo fica após a linha um, x é 1. 625 00:32:23,695 --> 00:32:26,860 Depois linha dois, X e y são 1 e 2, certo? 626 00:32:26,860 --> 00:32:27,400 Legal. 627 00:32:27,400 --> 00:32:30,310 Então linha de três é onde as coisas ficar interessante, claro. 628 00:32:30,310 --> 00:32:34,970 >> Então, o que nós fizemos aqui é que temos agora trocados. 629 00:32:34,970 --> 00:32:42,360 Dizemos que x e y têm esses pontos, ou eles têm o endereço de x e y, 630 00:32:42,360 --> 00:32:43,390 certo? 631 00:32:43,390 --> 00:32:48,451 Portanto, neste caso, três, o que é o valor de um? 632 00:32:48,451 --> 00:32:52,379 633 00:32:52,379 --> 00:32:59,806 um tinha sido transmitido, foi dada o valor do endereço de x, certo? 634 00:32:59,806 --> 00:33:02,542 635 00:33:02,542 --> 00:33:03,454 >> AUDIÊNCIA: 1? 636 00:33:03,454 --> 00:33:05,200 >> ALLISON BUCHHOLTZ-AU: Então, nós adicioná-lo à x? 637 00:33:05,200 --> 00:33:06,420 Qual é o endereço de x? 638 00:33:06,420 --> 00:33:07,212 >> AUDIÊNCIA: 0x123. 639 00:33:07,212 --> 00:33:08,087 >> ALLISON BUCHHOLTZ-AU: Exatamente. 640 00:33:08,087 --> 00:33:13,960 641 00:33:13,960 --> 00:33:16,790 Mas o que é uma verdade, apontando para? 642 00:33:16,790 --> 00:33:20,790 Se fôssemos para excluir a referência a, qual o valor que nos daria. 643 00:33:20,790 --> 00:33:21,290 AUDIÊNCIA: 1. 644 00:33:21,290 --> 00:33:23,164 ALLISON BUCHHOLTZ-AU: Seria dá-nos um, porque o que 645 00:33:23,164 --> 00:33:27,810 nós estamos dizendo é ir a este endereço, diga-nos qual é o valor. 646 00:33:27,810 --> 00:33:28,890 Então, o que seria b? 647 00:33:28,890 --> 00:33:30,500 648 00:33:30,500 --> 00:33:31,445 >> AUDIÊNCIA: 0x127. 649 00:33:31,445 --> 00:33:32,320 ALLISON BUCHHOLTZ-AU: Exatamente. 650 00:33:32,320 --> 00:33:33,610 651 00:33:33,610 --> 00:33:35,410 Por isso, é o endereço do y. 652 00:33:35,410 --> 00:33:36,580 653 00:33:36,580 --> 00:33:39,811 E então o que [? desreferenciava? ?] 654 00:33:39,811 --> 00:33:40,310 AUDIÊNCIA: 2. 655 00:33:40,310 --> 00:33:42,172 656 00:33:42,172 --> 00:33:43,380 ALLISON BUCHHOLTZ-AU: OK, então agora quatro. 657 00:33:43,380 --> 00:33:44,390 658 00:33:44,390 --> 00:33:51,300 Dissemos um é equal-- bem agora temos feito int temperatura é igual a estrela de um. 659 00:33:51,300 --> 00:33:53,580 Então, o que muda? 660 00:33:53,580 --> 00:33:55,680 Só há uma coisa que muda aqui. 661 00:33:55,680 --> 00:33:56,180 O que é isso? 662 00:33:56,180 --> 00:33:57,892 663 00:33:57,892 --> 00:33:58,624 >> AUDIÊNCIA: Temp. 664 00:33:58,624 --> 00:33:59,540 ALLISON BUCHHOLTZ-AU: O temporário. 665 00:33:59,540 --> 00:34:06,120 Assim, podemos reescrever tudo isso. 666 00:34:06,120 --> 00:34:07,790 667 00:34:07,790 --> 00:34:10,690 Uma boa estratégia para estes é apenas descobrir 668 00:34:10,690 --> 00:34:14,050 quais as mudanças, porque na maioria das vezes só há uma coisa que é 669 00:34:14,050 --> 00:34:16,300 vai mudar em um determinado ponto, OK? 670 00:34:16,300 --> 00:34:17,960 671 00:34:17,960 --> 00:34:20,100 Então, nós temos atribuído temporário. 672 00:34:20,100 --> 00:34:26,929 >> Agora nosso próximo ponto, cinco, nós ter feito uma estrela igual para estrelar b. 673 00:34:26,929 --> 00:34:28,880 Então, o que muda agora? 674 00:34:28,880 --> 00:34:29,760 >> AUDIÊNCIA: estrela a. 675 00:34:29,760 --> 00:34:32,081 >> ALLISON BUCHHOLTZ-AU: estrela um, de modo tudo o resto permanece o mesmo. 676 00:34:32,081 --> 00:34:38,610 677 00:34:38,610 --> 00:34:39,900 E o que estrelar um igual? 678 00:34:39,900 --> 00:34:40,659 >> AUDIÊNCIA: 2. 679 00:34:40,659 --> 00:34:41,283 ALLISON BUCHHOLTZ-AU: 2. 680 00:34:41,283 --> 00:34:42,460 681 00:34:42,460 --> 00:34:42,960 Adorável. 682 00:34:42,960 --> 00:34:45,360 683 00:34:45,360 --> 00:34:46,239 Impressionante. 684 00:34:46,239 --> 00:34:51,190 OK, e então agora temos iniciar b é igual a temperatura. 685 00:34:51,190 --> 00:34:53,907 Então, a única coisa que a mudança é a estrela b. 686 00:34:53,907 --> 00:34:55,344 Tudo o resto permanece o mesmo. 687 00:34:55,344 --> 00:35:01,100 688 00:35:01,100 --> 00:35:02,610 E o que é estrela b igual a agora? 689 00:35:02,610 --> 00:35:04,840 690 00:35:04,840 --> 00:35:06,190 E você já completou a mesa. 691 00:35:06,190 --> 00:35:11,620 692 00:35:11,620 --> 00:35:18,460 Porque agora, no final, se dissermos x e y, sabemos que neste ponto-- 693 00:35:18,460 --> 00:35:23,060 sabemos que quando nós mudou estrelar um para dois, 694 00:35:23,060 --> 00:35:29,620 o que fez é que disse OK, em abordar 0x123 aqui, alterá-lo. 695 00:35:29,620 --> 00:35:31,780 696 00:35:31,780 --> 00:35:33,290 Agora, este foi 2. 697 00:35:33,290 --> 00:35:34,460 698 00:35:34,460 --> 00:35:40,600 E, em seguida, neste ponto, dissemos OK, vá para estrelar b. 699 00:35:40,600 --> 00:35:45,305 Então, vá para o endereço em 0x127 e torná-lo um 1. 700 00:35:45,305 --> 00:35:49,670 701 00:35:49,670 --> 00:35:53,110 Então, agora no final, quando nós realmente voltar para o principal, 702 00:35:53,110 --> 00:35:56,445 nós realmente temos que x é igual a 2 e y é igual a 1. 703 00:35:56,445 --> 00:35:58,500 704 00:35:58,500 --> 00:35:59,500 Todo mundo bem com isso? 705 00:35:59,500 --> 00:36:00,720 706 00:36:00,720 --> 00:36:02,320 OK, legal. 707 00:36:02,320 --> 00:36:04,030 Número 9. 708 00:36:04,030 --> 00:36:05,950 Vocês trabalham com isso. 709 00:36:05,950 --> 00:36:09,016 Vou criar um conselho para que possamos chamar por ela. 710 00:36:09,016 --> 00:36:09,910 Vai ser uma explosão. 711 00:36:09,910 --> 00:36:13,760 712 00:36:13,760 --> 00:36:16,320 As grandes mesas podem ser realmente assustador, eu sei. 713 00:36:16,320 --> 00:36:19,910 Mas se você simplesmente levá-los uma linha de um tempo, eles ficam muito menos assustador. 714 00:36:19,910 --> 00:38:12,025 715 00:38:12,025 --> 00:38:12,860 Tudo certo. 716 00:38:12,860 --> 00:38:16,230 717 00:38:16,230 --> 00:38:21,190 >> Então você sabe que isso terá atravessado principal em primeiro lugar, certo? 718 00:38:21,190 --> 00:38:24,140 Inicializa x e y e então tenta trocá-los. 719 00:38:24,140 --> 00:38:28,560 Assim, mesmo swap é acima, forma real que vai é que estamos passando principal, 720 00:38:28,560 --> 00:38:31,040 e então ele está chamando até trocar, tudo bem? 721 00:38:31,040 --> 00:38:32,810 Então, todo mundo sabe disso. 722 00:38:32,810 --> 00:38:34,960 >> Então, qual deles você caras querem começar? 723 00:38:34,960 --> 00:38:37,240 Alguém está realmente certo sobre um destes? 724 00:38:37,240 --> 00:38:38,307 725 00:38:38,307 --> 00:38:39,265 Ou mesmo parcialmente certo? 726 00:38:39,265 --> 00:38:44,170 727 00:38:44,170 --> 00:38:48,120 Por que não começar com x? 728 00:38:48,120 --> 00:38:49,060 O que pensamos x é? 729 00:38:49,060 --> 00:38:49,735 >> AUDIÊNCIA: 1. 730 00:38:49,735 --> 00:38:50,360 ALLISON BUCHHOLTZ-AU: 1. 731 00:38:50,360 --> 00:38:54,500 732 00:38:54,500 --> 00:38:56,340 Então por que é 2. 733 00:38:56,340 --> 00:38:58,880 734 00:38:58,880 --> 00:39:01,380 E isso porque o grande distinção aqui 735 00:39:01,380 --> 00:39:04,890 é que só são passando cópias, certo? 736 00:39:04,890 --> 00:39:06,520 Nós não estamos passando por referência. 737 00:39:06,520 --> 00:39:08,850 Assim, mesmo no final do este programa x e y 738 00:39:08,850 --> 00:39:14,170 ter permanecido o mesmo, porque eles são apenas cópias na função swap. 739 00:39:14,170 --> 00:39:16,320 Eles realmente não mudar, certo? 740 00:39:16,320 --> 00:39:17,570 741 00:39:17,570 --> 00:39:19,290 >> Então, o que acontece com a, b, e temperatura? 742 00:39:19,290 --> 00:39:21,540 743 00:39:21,540 --> 00:39:22,890 >> AUDIÊNCIA: a é b. 744 00:39:22,890 --> 00:39:23,940 >> ALLISON BUCHHOLTZ-AU: a é b. 745 00:39:23,940 --> 00:39:28,569 Portanto, neste caso, uma era x, que é um, certo? 746 00:39:28,569 --> 00:39:29,860 Então, aqui, vamos atravessá-la. 747 00:39:29,860 --> 00:39:33,940 Assim, no início, uma e b são 1 e 2 e indefinido. 748 00:39:33,940 --> 00:39:35,000 749 00:39:35,000 --> 00:39:40,850 Então, originalmente temperatura fica atribuído a um, de modo temporário é 1. 750 00:39:40,850 --> 00:39:46,150 um é igual a B, portanto, obter 2, e b é igual a temperatura. 751 00:39:46,150 --> 00:39:47,284 Agora nós temos um. 752 00:39:47,284 --> 00:39:49,454 753 00:39:49,454 --> 00:39:55,860 >> AUDIÊNCIA: No anterior, que trocados ampersand x e y comercial. 754 00:39:55,860 --> 00:39:57,390 O que exatamente isso significa? 755 00:39:57,390 --> 00:39:59,890 ALLISON BUCHHOLTZ-AU: Então isso significa que você está passando por referência. 756 00:39:59,890 --> 00:40:03,830 Então isso significa que você está realmente passando os endereços de onde 757 00:40:03,830 --> 00:40:04,814 x e y são armazenados. 758 00:40:04,814 --> 00:40:06,730 AUDIÊNCIA: Mas você não é trocar o endereço. 759 00:40:06,730 --> 00:40:07,860 ALLISON BUCHHOLTZ-AU: Você não é trocando os endereços. 760 00:40:07,860 --> 00:40:10,015 Você está trocando o que está dentro deles. 761 00:40:10,015 --> 00:40:11,510 762 00:40:11,510 --> 00:40:14,460 Como o que é nesse endereço, e é por isso que ele funciona. 763 00:40:14,460 --> 00:40:20,750 Versus aqui este programa que você está fazendo é que você está criando cópias. 764 00:40:20,750 --> 00:40:27,440 Então você tem x e y que existem como as suas próprias variáveis ​​aqui fora. 765 00:40:27,440 --> 00:40:31,530 766 00:40:31,530 --> 00:40:34,140 Mas, então, quando você passa los em troca, é 767 00:40:34,140 --> 00:40:38,090 como se você está criando todo este outro conjunto. 768 00:40:38,090 --> 00:40:41,272 Então, você nunca está realmente x tocantes e y. 769 00:40:41,272 --> 00:40:46,890 >> AUDIÊNCIA: Se comercial x é o que está em o endereço de x, o que iria estrelar x ser? 770 00:40:46,890 --> 00:40:53,290 >> ALLISON BUCHHOLTZ-AU: Ampersand x é o que está em o endereço de x, então star-- bem, 771 00:40:53,290 --> 00:40:54,950 neste caso, x não é um ponteiro. 772 00:40:54,950 --> 00:40:56,332 773 00:40:56,332 --> 00:40:57,040 AUDIÊNCIA: Oh, OK. 774 00:40:57,040 --> 00:40:58,998 Então você só faça isso porque não é um ponteiro. 775 00:40:58,998 --> 00:40:59,890 ALLISON BUCHHOLTZ-AU: Certo. 776 00:40:59,890 --> 00:41:03,046 Você só pode fazer de estrela algo que é um ponteiro. 777 00:41:03,046 --> 00:41:05,920 Talvez você poderia fazê-lo para coisas que não são, mas a compilação que você 778 00:41:05,920 --> 00:41:07,350 fazer coisas malucas que iria acontecer. 779 00:41:07,350 --> 00:41:09,570 E eu não sou exatamente certo o que iria acontecer. 780 00:41:09,570 --> 00:41:11,880 Você sempre pode ter o endereço de alguma coisa, 781 00:41:11,880 --> 00:41:14,255 mas você não pode excluir a referência algo que não é um ponteiro. 782 00:41:14,255 --> 00:41:14,805 783 00:41:14,805 --> 00:41:17,860 Se isso faz sentido, isso é uma boa distinção de ter. 784 00:41:17,860 --> 00:41:19,870 785 00:41:19,870 --> 00:41:21,340 >> Então não é tão ruim, certo? 786 00:41:21,340 --> 00:41:23,650 As mesas estão espero ficando um pouco menos assustador. 787 00:41:23,650 --> 00:41:25,450 788 00:41:25,450 --> 00:41:26,690 Tudo certo. 789 00:41:26,690 --> 00:41:28,370 Ah, os divertidos. 790 00:41:28,370 --> 00:41:31,265 Então, agora, escrever o seu próprio código. 791 00:41:31,265 --> 00:41:33,640 792 00:41:33,640 --> 00:41:37,950 Então, eu vou deixar vocês trabalham sobre isso por cerca de quatro minutos, 793 00:41:37,950 --> 00:41:41,480 e depois podemos falar sobre as formas de abordá-lo. 794 00:41:41,480 --> 00:41:45,080 795 00:41:45,080 --> 00:41:47,110 Sinta-se livre para conversar com as pessoas ao seu redor. 796 00:41:47,110 --> 00:41:48,114 797 00:41:48,114 --> 00:41:49,155 Também isso é interessante. 798 00:41:49,155 --> 00:41:51,460 É como uma todas as meninas seção agora. 799 00:41:51,460 --> 00:41:52,190 Muito emocionante. 800 00:41:52,190 --> 00:41:53,310 801 00:41:53,310 --> 00:41:54,502 Excepto para Chang. 802 00:41:54,502 --> 00:41:56,190 Mas Chang não é realmente parte da seção. 803 00:41:56,190 --> 00:42:17,282 804 00:42:17,282 --> 00:42:17,985 Impressionante. 805 00:42:17,985 --> 00:42:18,485 Perfeito. 806 00:42:18,485 --> 00:42:38,059 807 00:42:38,059 --> 00:42:39,475 Então eu vou dar-lhe um par de sugestões. 808 00:42:39,475 --> 00:42:43,450 809 00:42:43,450 --> 00:42:46,890 No caso em que você tem mais de um personagem, onde 810 00:42:46,890 --> 00:42:49,990 você tem algo mais como 123 ou 1000 alguma coisa, 811 00:42:49,990 --> 00:42:53,790 você precisa ser capaz de laço através de e converter cada um deles. 812 00:42:53,790 --> 00:42:55,340 813 00:42:55,340 --> 00:42:58,699 Portanto, há um casal maneiras que você poderia fazer isso, 814 00:42:58,699 --> 00:43:01,740 mas você definitivamente vai ter um loop for em algum lugar lá para fazer um loop 815 00:43:01,740 --> 00:43:05,150 através deles, o que é como o tipo de oferta 816 00:43:05,150 --> 00:43:09,540 com mesmo se você chamar strlen, que é tipo de gosto oh 817 00:43:09,540 --> 00:43:12,418 talvez você queira usar o comprimento da seqüência de alguma forma. 818 00:43:12,418 --> 00:45:17,300 819 00:45:17,300 --> 00:45:17,829 >> Tudo certo. 820 00:45:17,829 --> 00:45:20,870 Então, o que vocês acham que pode ser uma das primeiras coisas que queremos fazer? 821 00:45:20,870 --> 00:45:23,149 822 00:45:23,149 --> 00:45:25,690 Há alguns casos em aqui precisamos explicar, certo? 823 00:45:25,690 --> 00:45:27,360 Ou temos algo que é nulo. 824 00:45:27,360 --> 00:45:28,685 825 00:45:28,685 --> 00:45:30,383 O que nós temos? 826 00:45:30,383 --> 00:45:30,882 Casos. 827 00:45:30,882 --> 00:45:32,760 828 00:45:32,760 --> 00:45:33,260 Null. 829 00:45:33,260 --> 00:45:34,400 830 00:45:34,400 --> 00:45:42,414 Temos o caso que tem algo diferente de 09, certo? 831 00:45:42,414 --> 00:45:43,580 Então, vamos dizer que tem cartas. 832 00:45:43,580 --> 00:45:44,900 833 00:45:44,900 --> 00:45:46,510 Ou temos o caso que é válido. 834 00:45:46,510 --> 00:45:48,450 835 00:45:48,450 --> 00:45:50,130 Três casos de pensar. 836 00:45:50,130 --> 00:45:53,527 Então, qual deles você acha que pode ser a mais fácil de cuidar em primeiro lugar? 837 00:45:53,527 --> 00:45:54,152 AUDIÊNCIA: Null. 838 00:45:54,152 --> 00:45:55,527 ALLISON BUCHHOLTZ-AU: O caso é nula. 839 00:45:55,527 --> 00:45:56,610 Então o que fazemos lá? 840 00:45:56,610 --> 00:45:57,954 841 00:45:57,954 --> 00:45:58,870 AUDIÊNCIA: [inaudível]. 842 00:45:58,870 --> 00:46:02,434 843 00:46:02,434 --> 00:46:03,184 ALLISON BUCHHOLTZ-AU: Yeah. 844 00:46:03,184 --> 00:46:05,140 845 00:46:05,140 --> 00:46:06,550 E o que eu quero fazer? 846 00:46:06,550 --> 00:46:07,341 >> AUDIÊNCIA: Return 0. 847 00:46:07,341 --> 00:46:07,935 848 00:46:07,935 --> 00:46:09,110 >> ALLISON BUCHHOLTZ-AU: Exatamente. 849 00:46:09,110 --> 00:46:09,860 Impressionante. 850 00:46:09,860 --> 00:46:10,640 Está bem. 851 00:46:10,640 --> 00:46:15,270 Então, agora caso haja cartas e o caso em que é válida. 852 00:46:15,270 --> 00:46:19,140 Podemos realmente cuidar isso dentro de um loop, OK? 853 00:46:19,140 --> 00:46:22,710 Assim, uma maneira de fazer ele-- o que poderia ser uma maneira simples de verificar se é válido. 854 00:46:22,710 --> 00:46:25,150 855 00:46:25,150 --> 00:46:29,144 Nós teríamos que passar por cada letra e fazer o que? 856 00:46:29,144 --> 00:46:34,336 857 00:46:34,336 --> 00:46:35,640 >> AUDIÊNCIA: Verifique se é em-- 858 00:46:35,640 --> 00:46:39,570 >> ALLISON BUCHHOLTZ-AU: Certo, você pode verificar se é entre 0 e 9, certo? 859 00:46:39,570 --> 00:46:40,880 860 00:46:40,880 --> 00:46:42,700 E, em seguida, no caso que é válido, nós somos 861 00:46:42,700 --> 00:46:46,550 vai acabar iterar nossa string de qualquer maneira, certo? 862 00:46:46,550 --> 00:46:48,690 Então, por que não tentar combiná-los em um só. 863 00:46:48,690 --> 00:46:51,260 Nós vamos fazer uma iteração através de fora da corda, e como nós 864 00:46:51,260 --> 00:46:56,400 fazer isso, vamos primeiro fazer uma verificação para ver se essa letra 865 00:46:56,400 --> 00:46:58,110 ou se esse personagem é válido. 866 00:46:58,110 --> 00:47:02,150 Se for, nós estamos indo para executar a operação que precisamos convertê-lo. 867 00:47:02,150 --> 00:47:05,050 Caso contrário, ele vai retornar 0, certo? 868 00:47:05,050 --> 00:47:09,160 >> Então, antes de fazer isso, nós provavelmente vai querer alguma variável 869 00:47:09,160 --> 00:47:12,820 que podemos voltar no final que vai ser o nosso valor real. 870 00:47:12,820 --> 00:47:17,005 Então, nós estamos indo para inicializar algum valor para ser 0. 871 00:47:17,005 --> 00:47:18,390 E é assim que começamos. 872 00:47:18,390 --> 00:47:22,452 873 00:47:22,452 --> 00:47:23,785 Então, eu estou indo para se livrar dessa. 874 00:47:23,785 --> 00:47:26,750 875 00:47:26,750 --> 00:47:30,489 Então, como é que vamos iterar esta cadeia. 876 00:47:30,489 --> 00:47:31,280 AUDIÊNCIA: Para loop. 877 00:47:31,280 --> 00:47:32,280 ALLISON BUCHHOLTZ-AU: Um laço for. 878 00:47:32,280 --> 00:47:33,160 Então, qual é o nosso para? 879 00:47:33,160 --> 00:47:34,710 880 00:47:34,710 --> 00:47:35,909 >> AUDIÊNCIA: i é 0. 881 00:47:35,909 --> 00:47:36,700 ALLISON BUCHHOLTZ-AU: Mm-hm. 882 00:47:36,700 --> 00:47:38,620 883 00:47:38,620 --> 00:47:41,180 E o que estamos repetindo até? 884 00:47:41,180 --> 00:47:42,450 >> AUDIÊNCIA: comprimento de str s. 885 00:47:42,450 --> 00:47:47,920 886 00:47:47,920 --> 00:47:50,900 >> ALLISON BUCHHOLTZ-AU: OK, agora me lembro há uma maneira melhor. [Inaudível]. 887 00:47:50,900 --> 00:47:52,935 >> AUDIÊNCIA: Sim, nós podemos fazer n é igual. 888 00:47:52,935 --> 00:47:53,810 ALLISON BUCHHOLTZ-AU: Exatamente. 889 00:47:53,810 --> 00:47:55,010 890 00:47:55,010 --> 00:47:56,190 >> AUDIÊNCIA: i é menor que n. 891 00:47:56,190 --> 00:47:57,559 892 00:47:57,559 --> 00:47:59,475 ALLISON BUCHHOLTZ-AU: E por iríamos querer fazer isso? 893 00:47:59,475 --> 00:48:00,815 894 00:48:00,815 --> 00:48:01,940 Você se lembra do motivo? 895 00:48:01,940 --> 00:48:04,180 896 00:48:04,180 --> 00:48:05,680 AUDIÊNCIA: Nós temos que recalcular-lo. 897 00:48:05,680 --> 00:48:08,735 ALLISON BUCHHOLTZ-AU: Becasue desta forma você só tem que calcular STRLEN uma vez. 898 00:48:08,735 --> 00:48:09,750 899 00:48:09,750 --> 00:48:14,400 Se você fizer i é menor que strlen s, isso é significa que recalcula 900 00:48:14,400 --> 00:48:17,050 o comprimento de cada vez você executar o loop, 901 00:48:17,050 --> 00:48:20,800 que não é um custo enorme de energia, mas é 902 00:48:20,800 --> 00:48:24,280 melhor prática para tentar fazer coisas como que uma vez. 903 00:48:24,280 --> 00:48:27,610 A não ser que talvez você tenha uma string louco que está mudando a cada iteração. 904 00:48:27,610 --> 00:48:30,371 Mas se ele vai ficar o mesmo, salvá-lo. 905 00:48:30,371 --> 00:48:30,870 Tudo certo. 906 00:48:30,870 --> 00:48:33,430 E então eu plus plus. 907 00:48:33,430 --> 00:48:34,040 Impressionante. 908 00:48:34,040 --> 00:48:35,789 Estamos no nosso caminho. 909 00:48:35,789 --> 00:48:36,830 AUDIÊNCIA: Realmente rapidamente. 910 00:48:36,830 --> 00:48:39,600 Em primeiro lugar, então vamos dizer que nós apenas Será que eu menos de strlen de s, 911 00:48:39,600 --> 00:48:42,175 eles estão nos classificar no projeto em todos ou apenas de correção? 912 00:48:42,175 --> 00:48:43,640 913 00:48:43,640 --> 00:48:44,610 Eles não são. 914 00:48:44,610 --> 00:48:47,920 Estamos classificação na correção para testes, tanto quanto eu sei. 915 00:48:47,920 --> 00:48:52,670 Eu não posso fazer um em cheio garantia, mas para a maior parte, 916 00:48:52,670 --> 00:48:57,060 grande maioria é correto, porque você está sob um monte de restrição de tempo. 917 00:48:57,060 --> 00:48:59,704 Desenho significa tipicamente você tem tempo para pensar 918 00:48:59,704 --> 00:49:01,245 sobre a elegância de sua situação. 919 00:49:01,245 --> 00:49:03,710 920 00:49:03,710 --> 00:49:05,770 >> OK, então nós estamos interagindo através. 921 00:49:05,770 --> 00:49:10,640 Por isso, precisamos fazer um check para ver se esse personagem é válido 922 00:49:10,640 --> 00:49:14,550 ou se podemos realizar o nosso normal de [? um para i?] função. 923 00:49:14,550 --> 00:49:16,600 Podemos nos preocupar com o que isto é, em um segundo. 924 00:49:16,600 --> 00:49:19,340 Então, por que nós não take-- se alguém pode pensar 925 00:49:19,340 --> 00:49:21,930 sobre uma maneira de verificar a ver se isso é válido. 926 00:49:21,930 --> 00:49:23,346 927 00:49:23,346 --> 00:49:25,740 Sabemos que vai ser alguns se condição, certo? 928 00:49:25,740 --> 00:49:26,830 929 00:49:26,830 --> 00:49:32,300 E lembre-se este é em ASCII, então como pode 930 00:49:32,300 --> 00:49:37,359 vemos se não é 0,1, 2, 3, 4, 5, 6, 7, 8 ou 9. 931 00:49:37,359 --> 00:49:38,150 AUDIÊNCIA: Se alfa. 932 00:49:38,150 --> 00:49:39,800 933 00:49:39,800 --> 00:49:44,100 >> ALLISON BUCHHOLTZ-AU: Então, se alfa faria apenas deixe-nos saber se é uma carta. 934 00:49:44,100 --> 00:49:47,810 E se eles nos dão um símbolo, é ainda não completamente indo para verificar. 935 00:49:47,810 --> 00:49:54,270 Então, se você puxar o seu ASCII tabela, sabemos que de 0 a 9 936 00:49:54,270 --> 00:49:55,340 estão em um segmento. 937 00:49:55,340 --> 00:49:57,560 938 00:49:57,560 --> 00:50:00,540 Diga-me os números que eles correspondem a, se possível. 939 00:50:00,540 --> 00:50:08,136 940 00:50:08,136 --> 00:50:08,677 AUDIÊNCIA: 40. 941 00:50:08,677 --> 00:50:11,440 942 00:50:11,440 --> 00:50:13,714 >> ALLISON BUCHHOLTZ-AU: Então, o intervalo é como 40-- 943 00:50:13,714 --> 00:50:14,380 AUDIÊNCIA: Talvez. 944 00:50:14,380 --> 00:50:16,110 945 00:50:16,110 --> 00:50:16,765 48-57. 946 00:50:16,765 --> 00:50:17,430 Eu não tenho certeza. 947 00:50:17,430 --> 00:50:18,510 >> ALLISON BUCHHOLTZ-AU: 40-57? 948 00:50:18,510 --> 00:50:19,426 >> AUDIÊNCIA: 48, eu acho. 949 00:50:19,426 --> 00:50:20,730 ALLISON BUCHHOLTZ-AU: 48-57. 950 00:50:20,730 --> 00:50:26,070 Então, nós sabemos que aqueles ASCII symbols-- se o valor ASCII não está 951 00:50:26,070 --> 00:50:29,940 entre 48 e 57 anos, não é válido, certo? 952 00:50:29,940 --> 00:50:32,050 Assim, poderíamos usar isso para nossa vantagem possivelmente? 953 00:50:32,050 --> 00:50:33,770 954 00:50:33,770 --> 00:50:38,082 Como é que vamos chegar Nesta carta, o primeiro fora? 955 00:50:38,082 --> 00:50:40,910 Como estamos acessando este esta personagem? 956 00:50:40,910 --> 00:50:42,010 >> AUDIÊNCIA: s suporte i. 957 00:50:42,010 --> 00:50:42,801 >> ALLISON BUCHHOLTZ-AU: Mm-hm. 958 00:50:42,801 --> 00:50:43,790 959 00:50:43,790 --> 00:50:46,285 Porque nós podemos pensar em cordas como matrizes, lembre-se. 960 00:50:46,285 --> 00:50:47,470 961 00:50:47,470 --> 00:50:48,740 Então, o que queremos dizer? 962 00:50:48,740 --> 00:50:55,920 Queremos dizer se este é-- eu vou te dar uma dica. 963 00:50:55,920 --> 00:50:56,920 É um menos do que. 964 00:50:56,920 --> 00:50:58,711 O que você acha que deve ser inferior a? 965 00:50:58,711 --> 00:50:59,074 966 00:50:59,074 --> 00:50:59,615 AUDIÊNCIA: 57? 967 00:50:59,615 --> 00:51:01,550 968 00:51:01,550 --> 00:51:02,900 >> ALLISON BUCHHOLTZ-AU: 47, certo? 969 00:51:02,900 --> 00:51:08,920 Mas representa também que à medida que a 0 em single [? raios?], porque isso é 970 00:51:08,920 --> 00:51:09,689 o personagem 0. 971 00:51:09,689 --> 00:51:10,605 Você também pode colocar 47. 972 00:51:10,605 --> 00:51:11,660 973 00:51:11,660 --> 00:51:14,350 Tendo tabela ASCII, como você vê, é apenas algo 974 00:51:14,350 --> 00:51:18,580 você deve ter em sua folha de quiz. 975 00:51:18,580 --> 00:51:25,830 >> Assim, se este for o caso, se é um inferior a 0-- e não necessariamente. 976 00:51:25,830 --> 00:51:30,890 É só ou vai ser inferior ou igual a 9. 977 00:51:30,890 --> 00:51:33,055 Assim, você pode preencher este último para mim? 978 00:51:33,055 --> 00:51:36,440 Então, ou s de i é o que, Rhea? 979 00:51:36,440 --> 00:51:39,810 980 00:51:39,810 --> 00:51:41,536 >> AUDIÊNCIA: Maior que 9. 981 00:51:41,536 --> 00:51:42,970 982 00:51:42,970 --> 00:51:44,221 >> ALLISON BUCHHOLTZ-AU: Não. 983 00:51:44,221 --> 00:51:47,280 Isso faz sentido para todos, como chegamos lá? 984 00:51:47,280 --> 00:51:51,340 Estes problemas, eles são como uma vez que você ver as soluções, é como oh, OK. 985 00:51:51,340 --> 00:51:52,312 986 00:51:52,312 --> 00:51:53,937 E é por isso que a prática irá ajudá-lo. 987 00:51:53,937 --> 00:51:55,070 988 00:51:55,070 --> 00:51:57,400 OK, então nós retornar 0. 989 00:51:57,400 --> 00:51:57,900 Adorável. 990 00:51:57,900 --> 00:51:59,000 991 00:51:59,000 --> 00:51:59,670 Tudo certo. 992 00:51:59,670 --> 00:52:00,780 993 00:52:00,780 --> 00:52:02,365 Caso contrário, o que queremos fazer? 994 00:52:02,365 --> 00:52:04,640 Esta é a parte interessante onde é um pouco mais 995 00:52:04,640 --> 00:52:07,550 como a matemática contra CS na minha opinião. 996 00:52:07,550 --> 00:52:09,479 997 00:52:09,479 --> 00:52:11,520 Alguém tem uma idéia de como podemos fazer isso? 998 00:52:11,520 --> 00:52:15,822 999 00:52:15,822 --> 00:52:18,155 Então, a coisa importante a perceber é o primeiro caractere 1000 00:52:18,155 --> 00:52:21,510 nós estamos levando vai ser o dígito mais alto fim, certo? 1001 00:52:21,510 --> 00:52:25,975 Então, se nós estamos olhando para a conversão 123, a primeira vez que uma iteração 1002 00:52:25,975 --> 00:52:30,800 vai ser um, mas precisamos que, para ser 100 até o final, certo? 1003 00:52:30,800 --> 00:52:34,450 Então, uma coisa que você pode fazer é que com cada dígito subsequente 1004 00:52:34,450 --> 00:52:39,670 você toma, você multiplica seu valor por 10, para que pelo tempo que você chegar ao fim, 1005 00:52:39,670 --> 00:52:42,960 tudo tem sido deslocada para cima, certo? 1006 00:52:42,960 --> 00:52:46,490 >> Assim, a primeira vez que você executa ele, você tem 1 como seu valor. 1007 00:52:46,490 --> 00:52:50,370 É a segunda vez que você executá-lo, você multiplicar o seu valor por 10. 1008 00:52:50,370 --> 00:52:55,180 Ele irá atualizá-lo para que seja agora 10, e você adicionar no seu próximo valor. 1009 00:52:55,180 --> 00:52:57,830 E então você multiplicar isso por 10 e adicionar no seu próximo valor. 1010 00:52:57,830 --> 00:53:01,880 E é por isso que eles dizem que este é muito mais parecido com o teste 1011 00:53:01,880 --> 00:53:06,920 um algoritmo matemático contra CS, mas eu discordo. 1012 00:53:06,920 --> 00:53:08,080 Eu não escrevo os quizzes. 1013 00:53:08,080 --> 00:53:13,520 >> Então, uma coisa que podemos fazer é nós dizer vezes de valor igual a 10. 1014 00:53:13,520 --> 00:53:16,630 Então, isso vai mudar o dígito uma vez a cada hora. 1015 00:53:16,630 --> 00:53:18,770 1016 00:53:18,770 --> 00:53:20,915 E então nós só queremos adicionar. 1017 00:53:20,915 --> 00:53:22,070 1018 00:53:22,070 --> 00:53:24,290 Queremos acrescentar no que nós só temos, certo? 1019 00:53:24,290 --> 00:53:25,350 1020 00:53:25,350 --> 00:53:31,649 Então, como é que vamos realmente converter a nossa Caracteres ASCII para o número 1021 00:53:31,649 --> 00:53:32,440 que representa? 1022 00:53:32,440 --> 00:53:37,680 1023 00:53:37,680 --> 00:53:40,800 >> Então, nós sabemos que 0 é igual a 47, certo? 1024 00:53:40,800 --> 00:53:44,260 Então, se 0 é 47, o que que nós temos que fazer a ele 1025 00:53:44,260 --> 00:53:47,376 para realmente fazê-lo ser um int de 0? 1026 00:53:47,376 --> 00:53:48,384 >> AUDIÊNCIA: É 48. 1027 00:53:48,384 --> 00:53:49,050 ALLISON BUCHHOLTZ-AU: 48? 1028 00:53:49,050 --> 00:53:49,550 Desculpe. 1029 00:53:49,550 --> 00:53:53,500 1030 00:53:53,500 --> 00:53:55,100 Gostaríamos de subtrair 48, certo? 1031 00:53:55,100 --> 00:53:58,580 1032 00:53:58,580 --> 00:53:59,550 Lembre-se de matemática ASCII? 1033 00:53:59,550 --> 00:54:01,565 Podemos tratá-los como números normais. 1034 00:54:01,565 --> 00:54:02,570 1035 00:54:02,570 --> 00:54:05,900 Se você tratá-los como números, eles se tornam números de forma eficaz. 1036 00:54:05,900 --> 00:54:10,410 Então, se temos s de i, que vamos dizer, neste caso é igual a 0. 1037 00:54:10,410 --> 00:54:14,420 Assim, s de i neste caso seria a ASCII-- 1038 00:54:14,420 --> 00:54:16,675 o int ASCII pois seria 47. 1039 00:54:16,675 --> 00:54:17,750 1040 00:54:17,750 --> 00:54:19,875 Assim, poderíamos subtract-- ou 48. 1041 00:54:19,875 --> 00:54:20,930 1042 00:54:20,930 --> 00:54:22,440 Você poderia fazer isso, é um caminho. 1043 00:54:22,440 --> 00:54:25,125 Alguém sabe uma melhor maneira que nós poderíamos fazer 48? 1044 00:54:25,125 --> 00:54:27,220 1045 00:54:27,220 --> 00:54:31,608 Nós apenas disse 0 é-- entrar em o ASCII que você poderia fazer cotação de 0. 1046 00:54:31,608 --> 00:54:39,740 1047 00:54:39,740 --> 00:54:43,160 Então faz isso tipo de fazer sentido como isso funciona? 1048 00:54:43,160 --> 00:54:50,080 >> AUDIÊNCIA: Neste ponto, é o valor 0 porque mesmo se você multiplicar por 10, 1049 00:54:50,080 --> 00:54:53,340 você está começando com zero, por isso, deve ser ligado? 1050 00:54:53,340 --> 00:54:59,360 >> ALLISON BUCHHOLTZ-AU: Então, nesse caso, você quer multiplicá-lo antes de adicionar, 1051 00:54:59,360 --> 00:55:06,650 porque, neste caso, sim, seria ainda ser-- meu ponteiro está faltando. 1052 00:55:06,650 --> 00:55:09,980 O valor neste caso, o primeiro vez que executá-lo será zero. 1053 00:55:09,980 --> 00:55:12,320 Então você está apenas adicionando em que o primeiro dígito. 1054 00:55:12,320 --> 00:55:15,930 O que é importante é a próxima vez você interagir, você quer transferi-lo para cima 1055 00:55:15,930 --> 00:55:18,722 antes de adicionar o próximo dígito. 1056 00:55:18,722 --> 00:55:21,223 Será que esclarecer para você? 1057 00:55:21,223 --> 00:55:21,723 Está bem. 1058 00:55:21,723 --> 00:55:23,050 1059 00:55:23,050 --> 00:55:25,900 >> Às vezes você vai obter mais coisas estranhas Mathy. 1060 00:55:25,900 --> 00:55:28,020 1061 00:55:28,020 --> 00:55:30,750 Se você tivesse mais de isso, você ainda vai 1062 00:55:30,750 --> 00:55:32,610 para get-- você vai fazer muito bem. 1063 00:55:32,610 --> 00:55:35,150 Crédito parcial é muito grande coisa sobre quizzes CS50. 1064 00:55:35,150 --> 00:55:36,270 Então escreva o que você sabe. 1065 00:55:36,270 --> 00:55:39,640 Se você tem tudo exceto por aqui, você é 1066 00:55:39,640 --> 00:55:41,390 ainda vai fazer muito bem o problema. 1067 00:55:41,390 --> 00:55:43,750 Porque você está mostrando, OK, eu quase sei. 1068 00:55:43,750 --> 00:55:45,570 Eu sei que eu preciso para percorrer. 1069 00:55:45,570 --> 00:55:47,260 Eu sei o que eu preciso para verificar. 1070 00:55:47,260 --> 00:55:50,584 Eu só não muito obter como convertê-lo. 1071 00:55:50,584 --> 00:55:51,500 Você vai ficar bem. 1072 00:55:51,500 --> 00:55:52,850 Sim, você vai perder alguns pontos, 1073 00:55:52,850 --> 00:55:55,641 mas você ainda está indo para obter um bom número de pontos para algo 1074 00:55:55,641 --> 00:55:57,990 assim, se você estiver faltando essas duas linhas. 1075 00:55:57,990 --> 00:56:00,660 Eu seria como OK, essa pessoa sabe o que está fazendo. 1076 00:56:00,660 --> 00:56:02,070 Matemática é difícil. 1077 00:56:02,070 --> 00:56:04,930 Então, eu diria que você estaria bem. 1078 00:56:04,930 --> 00:56:09,474 >> OK, então vocês prontos para tente strlen com ponteiros agora 1079 00:56:09,474 --> 00:56:10,890 que vocês são mestres ponteiro? 1080 00:56:10,890 --> 00:56:12,400 1081 00:56:12,400 --> 00:56:15,106 Então, eu vou deixar vocês trabalham em que, por um pouco. 1082 00:56:15,106 --> 00:56:17,131 1083 00:56:17,131 --> 00:56:19,090 Se alguém precisar de uma reciclagem. 1084 00:56:19,090 --> 00:56:23,120 1085 00:56:23,120 --> 00:56:28,060 Então você quer usar ponteiro aritmética, e, em seguida, se s é nulo, 1086 00:56:28,060 --> 00:56:29,624 sua implementação deve retornar 0. 1087 00:56:29,624 --> 00:56:37,045 1088 00:56:37,045 --> 00:56:39,670 Coisas como esta que fazem você muito feliz de apenas chamar strlen 1089 00:56:39,670 --> 00:56:40,586 no fim do dia. 1090 00:56:40,586 --> 00:57:24,874 1091 00:57:24,874 --> 00:57:27,624 Acho que este pode ser um pouco mais fácil do que a última, que 1092 00:57:27,624 --> 00:57:28,123 é bom. 1093 00:57:28,123 --> 00:58:51,789 1094 00:58:51,789 --> 00:58:55,690 Eu vou dar a vocês mais um minuto, e depois nós vamos trabalhar com ele. 1095 00:58:55,690 --> 00:58:56,896 1096 00:58:56,896 --> 00:58:58,320 E então nós começamos a ir para switches. 1097 00:58:58,320 --> 00:59:32,480 1098 00:59:32,480 --> 00:59:34,660 >> OK, rapazes prontos? 1099 00:59:34,660 --> 00:59:35,790 1100 00:59:35,790 --> 00:59:37,420 Talvez um pouco. 1101 00:59:37,420 --> 00:59:40,210 Então, eu dei-lhe o seu duas opções, certo? 1102 00:59:40,210 --> 00:59:45,810 Ou verificar null e retornar 0 se ele é, na verdade, ou calcular o comprimento. 1103 00:59:45,810 --> 00:59:48,220 Então, quem quer escrever verificar null? 1104 00:59:48,220 --> 00:59:50,100 1105 00:59:50,100 --> 00:59:51,790 Vá em frente. 1106 00:59:51,790 --> 00:59:56,460 >> AUDIÊNCIA: Se parênteses s é igual é igual a nulo retorno 0. 1107 00:59:56,460 --> 00:59:57,342 1108 00:59:57,342 --> 00:59:58,175 ALLISON BUCHHOLTZ-AU: Lovely. 1109 00:59:58,175 --> 00:59:59,350 1110 00:59:59,350 --> 01:00:02,320 Eu amo quando metade do seu problema é apenas a verificação de nulo. 1111 01:00:02,320 --> 01:00:04,820 Eu sei com vocês última semana eu era como verificação para nulo 1112 01:00:04,820 --> 01:00:06,630 literalmente o tempo todo. 1113 01:00:06,630 --> 01:00:07,510 OK, assim-- 1114 01:00:07,510 --> 01:00:08,716 1115 01:00:08,716 --> 01:00:12,750 >> AUDIÊNCIA: Se o retorno 0 é apenas uma linha, que ainda precisamos do suporte encaracolado? 1116 01:00:12,750 --> 01:00:15,860 >> ALLISON BUCHHOLTZ-AU: Você não tecnicamente precisa-los, desde que você é consistente. 1117 01:00:15,860 --> 01:00:19,240 É uma boa prática apenas para adquirir o hábito 1118 01:00:19,240 --> 01:00:21,650 do uso de chaves, mas tecnicamente não. 1119 01:00:21,650 --> 01:00:23,320 Você não precisa deles para uma linha. 1120 01:00:23,320 --> 01:00:26,030 Nós só tendem a recomendar para pessoas a partir de programa. 1121 01:00:26,030 --> 01:00:27,740 1122 01:00:27,740 --> 01:00:30,450 >> Então agora o que podemos querer fazer aqui? 1123 01:00:30,450 --> 01:00:32,222 Portanto, agora sabemos que a nossa cadeia é válido. 1124 01:00:32,222 --> 01:00:33,680 Queremos manter compute o comprimento. 1125 01:00:33,680 --> 01:00:35,620 O que é provavelmente a primeira coisa que queremos fazer? 1126 01:00:35,620 --> 01:00:38,770 1127 01:00:38,770 --> 01:00:41,276 >> AUDIÊNCIA: Criar um int que é o comprimento. 1128 01:00:41,276 --> 01:00:42,150 ALLISON BUCHHOLTZ-AU: Exatamente. 1129 01:00:42,150 --> 01:00:43,450 AUDIÊNCIA: E queremos configurá-lo para? 1130 01:00:43,450 --> 01:00:44,210 ALLISON BUCHHOLTZ-AU: 0. 1131 01:00:44,210 --> 01:00:44,710 Perfeito. 1132 01:00:44,710 --> 01:00:46,050 1133 01:00:46,050 --> 01:00:47,290 Tudo certo. 1134 01:00:47,290 --> 01:00:48,750 Agora, o que quer fazer? 1135 01:00:48,750 --> 01:00:50,000 Esta é realmente a maior parte dele. 1136 01:00:50,000 --> 01:00:50,890 Vá em frente. 1137 01:00:50,890 --> 01:00:54,370 >> AUDIÊNCIA: Então você provavelmente fazer um loop. 1138 01:00:54,370 --> 01:01:03,150 E, em seguida, uma vez que quando você chamar s você está obter o endereço da primeira coisa, 1139 01:01:03,150 --> 01:01:05,660 você poderia começar com i é igual a 0. 1140 01:01:05,660 --> 01:01:07,980 1141 01:01:07,980 --> 01:01:15,755 E então, enquanto x mais eu não é barra invertida 0. 1142 01:01:15,755 --> 01:01:17,130 ALLISON BUCHHOLTZ-AU: O terminador nulo. 1143 01:01:17,130 --> 01:01:18,380 AUDIÊNCIA: O terminador nulo. 1144 01:01:18,380 --> 01:01:18,890 1145 01:01:18,890 --> 01:01:21,088 Em seguida, você adicionar um para comprimento. 1146 01:01:21,088 --> 01:01:22,372 >> ALLISON BUCHHOLTZ-AU: Yeah. 1147 01:01:22,372 --> 01:01:25,940 OK, então vamos transformar essa em código muito concreto. 1148 01:01:25,940 --> 01:01:27,537 Mas essa é a idéia perfeita. 1149 01:01:27,537 --> 01:01:28,870 Isso é exatamente o que estamos fazendo. 1150 01:01:28,870 --> 01:01:31,910 Nós vamos ser a iteração através de com o ponteiro. 1151 01:01:31,910 --> 01:01:34,590 Então, o que nós queremos fazer é, em vez de um int 1152 01:01:34,590 --> 01:01:36,660 aqui, porque nós somos não referindo-se a uma lo. 1153 01:01:36,660 --> 01:01:42,390 Nós estamos referindo-se ao início de uma corda, que começam a ser algum endereço, 1154 01:01:42,390 --> 01:01:43,300 certo? 1155 01:01:43,300 --> 01:01:44,600 >> Então, nós queremos um ponteiro. 1156 01:01:44,600 --> 01:01:47,610 1157 01:01:47,610 --> 01:01:52,310 Então, nós vamos ter alguma estrela char, porque corresponde aos nossos s, certo? 1158 01:01:52,310 --> 01:01:57,270 Portanto, este é um ponto que está inicializando para o início da string, OK? 1159 01:01:57,270 --> 01:01:58,949 Então vamos chamá-lo i. 1160 01:01:58,949 --> 01:02:01,740 Se é o início da cadeia, o que é que vai ser atribuído a? 1161 01:02:01,740 --> 01:02:03,690 1162 01:02:03,690 --> 01:02:04,530 Não 0. 1163 01:02:04,530 --> 01:02:06,238 Queremos que ele seja o início da nossa cadeia. 1164 01:02:06,238 --> 01:02:07,170 1165 01:02:07,170 --> 01:02:09,960 O que representa o início do nossa cadeia que nos foi dado? 1166 01:02:09,960 --> 01:02:10,800 >> AUDIÊNCIA: Just s. 1167 01:02:10,800 --> 01:02:11,425 >> ALLISON BUCHHOLTZ-AU: s. 1168 01:02:11,425 --> 01:02:13,070 1169 01:02:13,070 --> 01:02:17,890 Então isso cria alguns ponteiro nova que representa o início de nossa cadeia, OK? 1170 01:02:17,890 --> 01:02:19,430 1171 01:02:19,430 --> 01:02:22,777 Outra maneira de pensar nisso é como aqui é a nossa matriz. 1172 01:02:22,777 --> 01:02:26,690 Essa é a nossa corda, s. 1173 01:02:26,690 --> 01:02:28,650 1174 01:02:28,650 --> 01:02:32,400 Então, digamos que este é o primeiro local, e este é 0x4. 1175 01:02:32,400 --> 01:02:34,400 1176 01:02:34,400 --> 01:02:34,900 04. 1177 01:02:34,900 --> 01:02:36,330 1178 01:02:36,330 --> 01:02:38,535 Esta é a nossa s, que detém esse endereço. 1179 01:02:38,535 --> 01:02:39,810 1180 01:02:39,810 --> 01:02:45,960 E nós acabamos de criar um outro chamado i que apenas refere-se à mesma coisa. 1181 01:02:45,960 --> 01:02:49,437 Então, eles estão ambos apenas apontando para o início da nossa cadeia. 1182 01:02:49,437 --> 01:02:51,020 Esta é apenas uma representação gráfica. 1183 01:02:51,020 --> 01:02:53,830 1184 01:02:53,830 --> 01:02:57,100 >> Então agora o que queremos fazer é que nós queremos fazer uma iteração 1185 01:02:57,100 --> 01:03:02,040 nossa condição de iteração através da nossa cadeia. 1186 01:03:02,040 --> 01:03:02,920 Agora compras. 1187 01:03:02,920 --> 01:03:04,150 Tenho que fazer compras, pessoal. 1188 01:03:04,150 --> 01:03:06,290 1189 01:03:06,290 --> 01:03:12,390 É que queremos manter a atualização até alcançamos o terminador nulo, certo? 1190 01:03:12,390 --> 01:03:14,930 Então, o que poderia parecer? 1191 01:03:14,930 --> 01:03:17,760 1192 01:03:17,760 --> 01:03:21,880 Queremos i, ou queremos estrela i é a pergunta? 1193 01:03:21,880 --> 01:03:26,160 1194 01:03:26,160 --> 01:03:29,255 É o terminador nulo um endereço ou algo localizado em um endereço? 1195 01:03:29,255 --> 01:03:31,420 1196 01:03:31,420 --> 01:03:33,660 Localizado em um endereço, certo? 1197 01:03:33,660 --> 01:03:38,420 >> Por isso, precisamos desreferenciava tudo o que é aqui, porque este é apenas um endereço. 1198 01:03:38,420 --> 01:03:44,350 Para realmente chegar ao início precisamos desreferenciava este 1199 01:03:44,350 --> 01:03:46,770 para que possamos realmente começar o que está neste primeiro lugar. 1200 01:03:46,770 --> 01:03:48,690 1201 01:03:48,690 --> 01:03:52,910 Então, se fizermos estrelar i, o que Não queremos que igual? 1202 01:03:52,910 --> 01:03:53,885 1203 01:03:53,885 --> 01:03:54,760 AUDIÊNCIA: Back barra? 1204 01:03:54,760 --> 01:03:57,760 1205 01:03:57,760 --> 01:03:59,260 >> ALLISON BUCHHOLTZ-AU: Não. 1206 01:03:59,260 --> 01:04:01,430 Isso faz sentido para todos? 1207 01:04:01,430 --> 01:04:05,620 Precisamos entrar em nossa string e certifique-se de que não é o fim. 1208 01:04:05,620 --> 01:04:07,200 1209 01:04:07,200 --> 01:04:08,990 E então podemos apenas atualizar como este. 1210 01:04:08,990 --> 01:04:09,680 Atualização normal. 1211 01:04:09,680 --> 01:04:11,910 1212 01:04:11,910 --> 01:04:15,070 Assim, enquanto estes são Met, o que precisamos fazer? 1213 01:04:15,070 --> 01:04:17,700 1214 01:04:17,700 --> 01:04:18,852 >> AUDIÊNCIA: Comprimento plus plus. 1215 01:04:18,852 --> 01:04:20,656 1216 01:04:20,656 --> 01:04:21,560 >> ALLISON BUCHHOLTZ-AU: Mm-hm. 1217 01:04:21,560 --> 01:04:25,540 E, depois de o loop termina, o que vamos querer voltar? 1218 01:04:25,540 --> 01:04:27,082 1219 01:04:27,082 --> 01:04:27,790 AUDIÊNCIA: Comprimento? 1220 01:04:27,790 --> 01:04:28,623 ALLISON BUCHHOLTZ-AU: Comprimento. 1221 01:04:28,623 --> 01:04:29,910 1222 01:04:29,910 --> 01:04:30,760 Lá você vai. 1223 01:04:30,760 --> 01:04:33,790 1224 01:04:33,790 --> 01:04:37,810 Obviamente, a carne de um presente é entender isso por loop. 1225 01:04:37,810 --> 01:04:39,280 1226 01:04:39,280 --> 01:04:41,090 Será que todo mundo começa como isso funcionou? 1227 01:04:41,090 --> 01:04:42,460 1228 01:04:42,460 --> 01:04:44,170 Estou feliz de passar por isso novamente. 1229 01:04:44,170 --> 01:04:48,400 >> AUDIÊNCIA: A segunda parte, de modo que a estrela i lá, 1230 01:04:48,400 --> 01:04:51,834 que é o endereço do first-- 1231 01:04:51,834 --> 01:04:53,250 ALLISON BUCHHOLTZ-AU: Não é o endereço. 1232 01:04:53,250 --> 01:04:54,142 É o que está. 1233 01:04:54,142 --> 01:04:55,600 AUDIÊNCIA: Isso é realmente lá. 1234 01:04:55,600 --> 01:04:57,475 ALLISON BUCHHOLTZ-AU: Isso é o que é realmente lá. 1235 01:04:57,475 --> 01:05:01,280 Portanto, esta é dizendo-- deixar me fazer isso melhor. 1236 01:05:01,280 --> 01:05:07,940 Portanto, esta é 0x04, e eu só vou para dizer que eu vou fazer o meu nome. 1237 01:05:07,940 --> 01:05:14,531 1238 01:05:14,531 --> 01:05:15,030 Está bem. 1239 01:05:15,030 --> 01:05:17,456 1240 01:05:17,456 --> 01:05:19,080 Sim, eu sei que tenho revisão questionário esta noite. 1241 01:05:19,080 --> 01:05:20,620 1242 01:05:20,620 --> 01:05:21,540 Lotes de revisão questionário. 1243 01:05:21,540 --> 01:05:23,500 1244 01:05:23,500 --> 01:05:26,620 Então, digamos que esta string é o meu nome, Allison. 1245 01:05:26,620 --> 01:05:28,600 Pouco confuso, mas está lá. 1246 01:05:28,600 --> 01:05:33,640 E s representa o local de onde a string começa, 1247 01:05:33,640 --> 01:05:41,950 então eu vou fazer isso real-- este é o endereço de um, 1248 01:05:41,950 --> 01:05:45,000 onde a string começa, certo? 1249 01:05:45,000 --> 01:05:48,560 >> Então, o que fazemos aqui é que nós queremos usar ponteiros para percorrer. 1250 01:05:48,560 --> 01:05:49,920 1251 01:05:49,920 --> 01:05:56,870 Então nós criamos alguns ponteiro, i, que também é igual ao do início da cadeia. 1252 01:05:56,870 --> 01:05:57,880 1253 01:05:57,880 --> 01:06:03,820 E em cada ponto, queremos continuar a atravessar a matriz 1254 01:06:03,820 --> 01:06:07,570 aqui até acertar o terminador nulo. 1255 01:06:07,570 --> 01:06:12,320 Então, nós queremos sempre verificar o que está em cada um desses endereços. 1256 01:06:12,320 --> 01:06:15,730 >> Então, nós desreferenciava i, de modo que a primeira vez que o fazemos nós 1257 01:06:15,730 --> 01:06:17,810 dizer, OK, o que é no endereço 0x04? 1258 01:06:17,810 --> 01:06:19,060 1259 01:06:19,060 --> 01:06:19,720 É uma uma. 1260 01:06:19,720 --> 01:06:20,660 OK, estamos bem. 1261 01:06:20,660 --> 01:06:21,770 Comprimento de incremento. 1262 01:06:21,770 --> 01:06:22,790 Passar para a próxima. 1263 01:06:22,790 --> 01:06:32,410 Então lembre-se i-- ponteiros aumento pela tamanho de tudo o que está apontando. 1264 01:06:32,410 --> 01:06:35,320 Portanto, neste caso, uma vez que é um char, ele vai atualizar por um. 1265 01:06:35,320 --> 01:06:38,755 Então, agora vamos olhar para 5, o que significa que está acontecendo por aqui. 1266 01:06:38,755 --> 01:06:39,860 1267 01:06:39,860 --> 01:06:43,440 Por isso, diz OK, vá para 0x05. 1268 01:06:43,440 --> 01:06:44,270 O que há lá dentro? 1269 01:06:44,270 --> 01:06:44,930 É um l. 1270 01:06:44,930 --> 01:06:47,870 E ele vai continuar fazendo isso até atingir este. 1271 01:06:47,870 --> 01:06:50,990 E diz OK, o que está em qualquer endereço que é isso? 1272 01:06:50,990 --> 01:06:53,060 O terminador nulo, OK. 1273 01:06:53,060 --> 01:06:53,870 Saída. 1274 01:06:53,870 --> 01:06:55,240 E só voltar comprimento. 1275 01:06:55,240 --> 01:06:56,370 1276 01:06:56,370 --> 01:06:59,800 Porque você precisa o que é, na verdade, a esse endereço, não o próprio endereço. 1277 01:06:59,800 --> 01:07:03,110 1278 01:07:03,110 --> 01:07:05,790 >> Há muito poucos lugares onde você realmente precisa do endereço. 1279 01:07:05,790 --> 01:07:08,720 A maior parte do tempo quando você está usando o e é 1280 01:07:08,720 --> 01:07:12,424 quando você está em primeiro lugar atribuição de um ponteiro ou quando 1281 01:07:12,424 --> 01:07:14,090 você está passando-a em outra função. 1282 01:07:14,090 --> 01:07:16,350 1283 01:07:16,350 --> 01:07:21,330 OK, todo mundo bem lá? 1284 01:07:21,330 --> 01:07:21,830 Mais ou menos? 1285 01:07:21,830 --> 01:07:23,810 1286 01:07:23,810 --> 01:07:25,040 Está bem. 1287 01:07:25,040 --> 01:07:28,210 >> Portanto, parece que nós temos tem cerca de 12 minutos para a esquerda, 1288 01:07:28,210 --> 01:07:31,340 então vamos passar a talvez o nosso último problema, 1289 01:07:31,340 --> 01:07:34,230 e depois há qualquer conceitos que vêm-se 1290 01:07:34,230 --> 01:07:36,830 entretanto podemos ir rapidamente sobre isso. 1291 01:07:36,830 --> 01:07:42,310 >> Assim Mudando de assunto é a última problema aqui, mudar declarações. 1292 01:07:42,310 --> 01:07:44,970 1293 01:07:44,970 --> 01:07:49,450 Portanto, o seu trabalho é reescrever esta de modo que ele se comporta da mesma 1294 01:07:49,450 --> 01:07:50,580 mas não usa switches. 1295 01:07:50,580 --> 01:07:53,684 1296 01:07:53,684 --> 01:07:54,666 Mãos gessados. 1297 01:07:54,666 --> 01:08:11,630 1298 01:08:11,630 --> 01:08:13,420 Então, qualquer dúvida sobre esta fora do bastão? 1299 01:08:13,420 --> 01:08:15,420 1300 01:08:15,420 --> 01:08:15,920 Nenhum? 1301 01:08:15,920 --> 01:08:16,420 Está bem. 1302 01:08:16,420 --> 01:08:17,920 1303 01:08:17,920 --> 01:08:22,170 Será que todo mundo entende que, se o caso não tem nada depois dela, 1304 01:08:22,170 --> 01:08:25,029 isto significa que ele deve siga o próximo passo? 1305 01:08:25,029 --> 01:08:28,200 Assim, caso 1 e 2, neste caso fazer exatamente a mesma coisa. 1306 01:08:28,200 --> 01:08:31,153 1307 01:08:31,153 --> 01:08:32,444 Às vezes, um ponto de confusão. 1308 01:08:32,444 --> 01:09:32,700 1309 01:09:32,700 --> 01:09:33,488 >> Tudo certo. 1310 01:09:33,488 --> 01:09:34,404 Alguém tem alguma idéia? 1311 01:09:34,404 --> 01:09:36,364 1312 01:09:36,364 --> 01:09:36,864 Sim? 1313 01:09:36,864 --> 01:09:40,120 >> AUDIÊNCIA: Então você pode apenas fazer se declarações. 1314 01:09:40,120 --> 01:09:41,140 >> ALLISON BUCHHOLTZ-AU: Mm-hm. 1315 01:09:41,140 --> 01:09:42,880 Então, qual é o nosso primeiro? 1316 01:09:42,880 --> 01:09:48,120 >> AUDIÊNCIA: Se n é igual a igual a 1, e as duas linhas ou para n igual 1317 01:09:48,120 --> 01:09:51,059 é igual a 2, em seguida, imprimir pequenas. 1318 01:09:51,059 --> 01:09:57,760 1319 01:09:57,760 --> 01:09:59,520 E então você pode fazer outra coisa se? 1320 01:09:59,520 --> 01:10:02,160 Ou você pode simplesmente fazer um caso? 1321 01:10:02,160 --> 01:10:03,650 >> ALLISON BUCHHOLTZ-AU: Você pode fazer outra coisa se? 1322 01:10:03,650 --> 01:10:05,274 >> AUDIÊNCIA: Será que importa se você faria se? 1323 01:10:05,274 --> 01:10:06,320 ALLISON BUCHHOLTZ-AU: Então ele faz. 1324 01:10:06,320 --> 01:10:10,160 Será que anyone-- assim, você obterá o mesmo resultado 1325 01:10:10,160 --> 01:10:13,930 se você usar apenas ifs contra se você usa outra pessoa ifs. 1326 01:10:13,930 --> 01:10:17,090 Vocês podem pensar na razão por que você pode querer usar um outro 1327 01:10:17,090 --> 01:10:18,680 se contra um monte de ifs? 1328 01:10:18,680 --> 01:10:20,260 1329 01:10:20,260 --> 01:10:21,510 Tem que com eficiência. 1330 01:10:21,510 --> 01:10:22,225 Sim? 1331 01:10:22,225 --> 01:10:24,783 >> AUDIÊNCIA: Seria verifique todos os ifs cada vez. 1332 01:10:24,783 --> 01:10:26,076 1333 01:10:26,076 --> 01:10:28,110 >> ALLISON BUCHHOLTZ-AU: Assim, mesmo se ele bateu este primeiro, 1334 01:10:28,110 --> 01:10:29,880 ele iria em cheque todo outro. 1335 01:10:29,880 --> 01:10:36,690 Então você quer usar if else ifs em casos em que apenas um deles vai aplicar sempre. 1336 01:10:36,690 --> 01:10:39,380 Assim, a exclusão mútua é o que temos a tendência de dizer. 1337 01:10:39,380 --> 01:10:41,410 1338 01:10:41,410 --> 01:10:46,550 Se você tem um monte de ifs, isso significa que talvez mais de um deles 1339 01:10:46,550 --> 01:10:49,630 assuntos, e talvez mais do que um deles pode ser verdade. 1340 01:10:49,630 --> 01:10:51,910 E você quer que os dois para executar, se elas são verdadeiras. 1341 01:10:51,910 --> 01:10:57,180 Se você só quer um deles para trabalhar nestes casos mutuamente exclusivos, 1342 01:10:57,180 --> 01:11:00,790 você quiser usar outra coisa se, porque tudo isso tem a ver com eficiência. 1343 01:11:00,790 --> 01:11:05,350 Seu código é apenas melhor projetado se adere a esta prática. 1344 01:11:05,350 --> 01:11:07,330 Portanto, neste caso teremos uma outra pessoa se. 1345 01:11:07,330 --> 01:11:09,080 E isso seria? 1346 01:11:09,080 --> 01:11:11,890 >> AUDIÊNCIA: n é igual é igual a 3. 1347 01:11:11,890 --> 01:11:12,765 ALLISON BUCHHOLTZ-AU: Perfeito. 1348 01:11:12,765 --> 01:11:19,420 1349 01:11:19,420 --> 01:11:20,445 Meio de impressão. 1350 01:11:20,445 --> 01:11:25,190 1351 01:11:25,190 --> 01:11:29,930 E então, em nosso último caso, o que temos? 1352 01:11:29,930 --> 01:11:31,495 Pessoa ou coisa se? 1353 01:11:31,495 --> 01:11:32,120 AUDIÊNCIA: Else. 1354 01:11:32,120 --> 01:11:33,450 1355 01:11:33,450 --> 01:11:37,900 >> ALLISON BUCHHOLTZ-AU: Do que want-- Você quer else if porque temos casos concretos. 1356 01:11:37,900 --> 01:11:39,270 Não é uma espécie de captura tudo. 1357 01:11:39,270 --> 01:11:44,247 Se você tivesse um padrão em uma switch-- lembre-se de opções que você pode ter caso, 1358 01:11:44,247 --> 01:11:45,330 e então você tem padrão. 1359 01:11:45,330 --> 01:11:48,760 Se você tivesse um padrão, esse é o tipo da sua declaração mais lá. 1360 01:11:48,760 --> 01:11:52,180 Mas se ele tem apenas os casos, que significa que você precisa 1361 01:11:52,180 --> 01:11:54,315 verificar para ver se é cada um deles. 1362 01:11:54,315 --> 01:11:57,755 Portanto, neste caso, seria o 4 ou 5. 1363 01:11:57,755 --> 01:12:00,480 1364 01:12:00,480 --> 01:12:01,450 Queremos uma impressão off. 1365 01:12:01,450 --> 01:12:02,990 1366 01:12:02,990 --> 01:12:03,630 É grande. 1367 01:12:03,630 --> 01:12:06,640 1368 01:12:06,640 --> 01:12:07,509 E lá vai você. 1369 01:12:07,509 --> 01:12:08,800 E isso seria o seu programa. 1370 01:12:08,800 --> 01:12:11,890 1371 01:12:11,890 --> 01:12:17,050 >> Portanto, neste caso, se tinha um padrão de algo, 1372 01:12:17,050 --> 01:12:20,470 teríamos uma outra coisa em tudo o que queria que fizéssemos. 1373 01:12:20,470 --> 01:12:23,365 Então, essa é uma boa distinção conhecer, entender. 1374 01:12:23,365 --> 01:12:25,368 1375 01:12:25,368 --> 01:12:27,790 Será que isso ajuda com interruptores para você? 1376 01:12:27,790 --> 01:12:28,800 Perfeito. 1377 01:12:28,800 --> 01:12:29,390 Tudo certo. 1378 01:12:29,390 --> 01:12:31,320 1379 01:12:31,320 --> 01:12:33,340 >> Nós temos cerca de oito minutos do fim. 1380 01:12:33,340 --> 01:12:37,090 Vocês têm qualquer outros conceitos de alto nível? 1381 01:12:37,090 --> 01:12:38,720 Perguntas em geral? 1382 01:12:38,720 --> 01:12:39,220 Sim? 1383 01:12:39,220 --> 01:12:42,860 >> AUDIÊNCIA: Eu tinha um pergunta sobre um deles 1384 01:12:42,860 --> 01:12:46,257 que era sobre o aleatório gerador de números no questionário zero. 1385 01:12:46,257 --> 01:12:47,340 ALLISON BUCHHOLTZ-AU: Ah, aquele. 1386 01:12:47,340 --> 01:12:51,460 Aquele é um outro onde é mais matemática than-- sim. 1387 01:12:51,460 --> 01:12:53,800 1388 01:12:53,800 --> 01:12:59,452 A solução para isso-- eu mesmo quando Eu vejo isso, eu sou como o que é isso. 1389 01:12:59,452 --> 01:13:00,590 >> AUDIÊNCIA: Foi o número 7. 1390 01:13:00,590 --> 01:13:02,720 1391 01:13:02,720 --> 01:13:05,310 >> ALLISON BUCHHOLTZ-AU: É estranho, na minha opinião. 1392 01:13:05,310 --> 01:13:07,260 1393 01:13:07,260 --> 01:13:11,630 Então, basicamente, você quer para usar drand48, que 1394 01:13:11,630 --> 01:13:15,420 vai lhe dar algum número entre 0 e 1. 1395 01:13:15,420 --> 01:13:21,200 E você quiser usá-lo de modo que de alguma forma obter a-- 1396 01:13:21,200 --> 01:13:26,690 e é muito mais um problema de matemática para mim do que eu acho que um problema CS. 1397 01:13:26,690 --> 01:13:29,040 1398 01:13:29,040 --> 01:13:37,845 >> A maneira que você faz ele-- e às vezes ele vai ser assim. 1399 01:13:37,845 --> 01:13:39,340 1400 01:13:39,340 --> 01:13:41,090 Mais uma vez, estes são os casos em que é tipo 1401 01:13:41,090 --> 01:13:46,310 de como escrever o que você pode e crédito parcial. 1402 01:13:46,310 --> 01:13:47,800 1403 01:13:47,800 --> 01:13:51,510 Portanto, se queremos um retorno, sabemos que estamos 1404 01:13:51,510 --> 01:13:54,182 vai estar usando drand48 de alguma forma, certo? 1405 01:13:54,182 --> 01:13:55,640 Então, por que nós não apenas anotar que para baixo. 1406 01:13:55,640 --> 01:13:58,286 1407 01:13:58,286 --> 01:13:59,410 Nós estamos usando isso de alguma forma. 1408 01:13:59,410 --> 01:14:00,780 1409 01:14:00,780 --> 01:14:04,190 A maneira que eles têm vocês usá-lo é 1410 01:14:04,190 --> 01:14:08,175 como este, que eu vou tentar explicar. 1411 01:14:08,175 --> 01:14:10,200 1412 01:14:10,200 --> 01:14:15,340 >> Então, basicamente o que acontece aqui é porque é entre 0 e 1, 1413 01:14:15,340 --> 01:14:19,300 o que você está fazendo é que você está se multiplicando por-- isso é muito mais uma questão de matemática. 1414 01:14:19,300 --> 01:14:22,010 Apenas disclaimer completo, este é completamente uma questão de matemática. 1415 01:14:22,010 --> 01:14:23,990 O que você está fazendo é porque de 0 e 1 e você 1416 01:14:23,990 --> 01:14:26,460 quer que seja dentro dessa faixa, você realmente 1417 01:14:26,460 --> 01:14:29,360 descobrir como grande a faixa é, em seguida 1418 01:14:29,360 --> 01:14:32,710 basicamente você escalá-lo para cima, que é o que este está fazendo. 1419 01:14:32,710 --> 01:14:39,050 >> b menos um dá-lhe essa faixa, o diferença entre esses números. 1420 01:14:39,050 --> 01:14:44,040 Você pode multiplicar entre 0 e 1, e, em seguida, adicionando apenas um 1421 01:14:44,040 --> 01:14:48,870 significa que o seu dimensionamento-lo de modo que seja entre um e b, 1422 01:14:48,870 --> 01:14:52,377 que eu realmente não gosto deste problema. 1423 01:14:52,377 --> 01:14:58,380 1424 01:14:58,380 --> 01:15:01,790 Como eu disse, este quiz pretende englobar 1425 01:15:01,790 --> 01:15:04,110 pessoas que são menos confortáveis, em algum lugar no meio, 1426 01:15:04,110 --> 01:15:05,070 e mais confortável. 1427 01:15:05,070 --> 01:15:07,550 Então, se eles fizeram isso de modo que era algo 1428 01:15:07,550 --> 01:15:10,050 que todos no menor lugar confortável iria ficar, 1429 01:15:10,050 --> 01:15:12,259 teríamos longe demais pessoas marcando aperfeiçoa, 1430 01:15:12,259 --> 01:15:13,925 eo mais confortável seria aborrecido. 1431 01:15:13,925 --> 01:15:14,980 1432 01:15:14,980 --> 01:15:18,970 >> Então, eles sempre têm estes tipo de cérebro perguntas provocação 1433 01:15:18,970 --> 01:15:22,695 que está destinado a ser um pouco mais difícil que levar algum pensamento criativo. 1434 01:15:22,695 --> 01:15:25,030 1435 01:15:25,030 --> 01:15:27,790 Quando você vê-los, não ficar muito perplexo. 1436 01:15:27,790 --> 01:15:31,720 Eu definitivamente dizer aleta através de seu teste primeiro. 1437 01:15:31,720 --> 01:15:35,020 Enfrentar os problemas que você sabe que pode, 1438 01:15:35,020 --> 01:15:38,480 porque não adianta ficar preso em um problema quando existem três 1439 01:15:38,480 --> 01:15:42,090 ou quatro ou cinco na página depois que você pode facilmente fazer. 1440 01:15:42,090 --> 01:15:45,331 1441 01:15:45,331 --> 01:15:48,520 >> AUDIÊNCIA: Por que exatamente você multiplicá-lo pela faixa? 1442 01:15:48,520 --> 01:15:54,935 >> ALLISON BUCHHOLTZ-AU: Você multiplicar o alcance que você sabe-- é como o quanto depois de um 1443 01:15:54,935 --> 01:15:55,485 você quer? 1444 01:15:55,485 --> 01:15:57,840 1445 01:15:57,840 --> 01:16:02,130 Então você pode pensar, porque retorna um número entre 0 e 1, 1446 01:16:02,130 --> 01:16:03,890 Você pode pensar nisso como uma porcentagem. 1447 01:16:03,890 --> 01:16:12,195 Então está dizendo basicamente, se temos nossa linha número aqui, um está aqui, 1448 01:16:12,195 --> 01:16:13,840 e b é aqui. 1449 01:16:13,840 --> 01:16:19,170 Você é como o quanto um passado que é? 1450 01:16:19,170 --> 01:16:20,010 É tudo o que estamos fazendo. 1451 01:16:20,010 --> 01:16:24,920 Então você está apenas pedindo para o percentual dessa faixa, que 1452 01:16:24,920 --> 01:16:26,170 é o que está lhe dando. 1453 01:16:26,170 --> 01:16:30,915 E então você basicamente só aumentá-lo adicionando um. 1454 01:16:30,915 --> 01:16:32,302 É um teaser de matemática cérebro. 1455 01:16:32,302 --> 01:16:35,400 1456 01:16:35,400 --> 01:16:39,060 >> Se houve algum conselho último minuto, eu diria folhear as perguntas, 1457 01:16:39,060 --> 01:16:41,660 descobrir quais você sei que como, oh Eu tenho esse. 1458 01:16:41,660 --> 01:16:43,196 1459 01:16:43,196 --> 01:16:45,820 Quase certamente eles vão ser perguntas que você não conhece 1460 01:16:45,820 --> 01:16:49,580 ou que você vai ter tempo para, de modo a acertar seus pontos fortes, OK? 1461 01:16:49,580 --> 01:16:50,990 Vocês estão indo bem. 1462 01:16:50,990 --> 01:16:52,740 Há uma grande quantidade de questões por uma razão, 1463 01:16:52,740 --> 01:16:57,140 para que você tenha tempo para espécie de ter a oportunidade 1464 01:16:57,140 --> 01:16:59,330 para demonstrar que você é realmente bom. 1465 01:16:59,330 --> 01:17:02,370 Por isso é OK se você estiver não é bom em tudo. 1466 01:17:02,370 --> 01:17:03,371 Jogue com seus pontos fortes. 1467 01:17:03,371 --> 01:17:03,870 Sim? 1468 01:17:03,870 --> 01:17:06,536 >> AUDIÊNCIA: Assim é que isto vai retornar algo que está truncado? 1469 01:17:06,536 --> 01:17:10,810 1470 01:17:10,810 --> 01:17:15,015 Sim, é verdade, porque drand retornos entre 0 e 1. 1471 01:17:15,015 --> 01:17:17,459 1472 01:17:17,459 --> 01:17:19,250 Ele vai retornar um int, porque ele vai truncar 1473 01:17:19,250 --> 01:17:22,933 quando adicionamos um ou multiplicar por ele. 1474 01:17:22,933 --> 01:17:27,670 1475 01:17:27,670 --> 01:17:28,442 Legal. 1476 01:17:28,442 --> 01:17:29,525 Quaisquer dúvidas de última hora? 1477 01:17:29,525 --> 01:17:31,310 1478 01:17:31,310 --> 01:17:32,615 >> Vocês vão fazer grande. 1479 01:17:32,615 --> 01:17:34,440 Você está indo para ser fabuloso. 1480 01:17:34,440 --> 01:17:37,100 E mesmo se não for, haverá ser doces aqui na próxima semana. 1481 01:17:37,100 --> 01:17:39,040 1482 01:17:39,040 --> 01:17:40,020 E eu vou te amar. 1483 01:17:40,020 --> 01:17:41,270 Eu vou amar vocês independente. 1484 01:17:41,270 --> 01:17:42,550 1485 01:17:42,550 --> 01:17:43,930 Tudo bem, todos, boa sorte. 1486 01:17:43,930 --> 01:17:44,680 Tenha um ótimo tempo. 1487 01:17:44,680 --> 01:17:45,620 1488 01:17:45,620 --> 01:17:46,620 Você vai ficar bem. 1489 01:17:46,620 --> 01:17:47,370 E você sabe o quê? 1490 01:17:47,370 --> 01:17:50,310 Em dois dias ele vai para ser mais, enquanto eu 1491 01:17:50,310 --> 01:17:53,675 tem duas midterms na quinta-feira, por isso pelo menos vocês será feito. 1492 01:17:53,675 --> 01:17:56,550 Tudo bem, eu vou ver vocês na próxima semana. 1493 01:17:56,550 --> 01:17:58,208