1 00:00:00,000 --> 00:00:02,418 >> [Música tocando] 2 00:00:02,418 --> 00:00:10,542 3 00:00:10,542 --> 00:00:12,000 ALLISON Buchholtz-AU: Hola a todos. 4 00:00:12,000 --> 00:00:15,640 Benvido ao seu primeiro sección oficial CS50. 5 00:00:15,640 --> 00:00:19,507 Como pode, ver iso é sección CS50-like, só 6 00:00:19,507 --> 00:00:20,840 para puxar arriba a nosa axenda para hoxe. 7 00:00:20,840 --> 00:00:23,990 Entón, quen son eu, como eu estou seguro está a se pregunta. 8 00:00:23,990 --> 00:00:25,514 Eu son o seu TF. 9 00:00:25,514 --> 00:00:27,930 Non son só un estudante ao chou que está representando o TF. 10 00:00:27,930 --> 00:00:31,190 >> E eu vou pasar por especie de seccións fluirá, 11 00:00:31,190 --> 00:00:34,900 expectativas que temos, recursos, así por diante e así por diante. 12 00:00:34,900 --> 00:00:39,190 Nós imos falar sobre matrices, ASCII funcións, argumentos de liña de ordes, 13 00:00:39,190 --> 00:00:42,020 e non é aquí, pero Eu tamén estará axudando 14 00:00:42,020 --> 00:00:45,054 vostede medio que pensar súa próxima pset para esta semana. 15 00:00:45,054 --> 00:00:46,720 O que eu estou seguro que todo o que pode apreciar. 16 00:00:46,720 --> 00:00:48,190 17 00:00:48,190 --> 00:00:53,390 >> Entón, primeiro question-- quen son eu, ademais do seu TF exuberante aquí. 18 00:00:53,390 --> 00:00:55,390 Estou Alison Buchholtz-Au. 19 00:00:55,390 --> 00:00:57,970 Este é o meu segundo ano TFing CS50. 20 00:00:57,970 --> 00:01:00,570 Eu tamén TF CS51 na primavera. 21 00:01:00,570 --> 00:01:03,930 Podes ver de novo alí se decide tomar. 22 00:01:03,930 --> 00:01:07,370 Eu tamén son un PAF, polo tanto, calquera Freshmen-- e se non é un calouro, 23 00:01:07,370 --> 00:01:09,980 este é o meu terceiro ano como un compañeiro aconsellando. 24 00:01:09,980 --> 00:01:13,630 Estou moi ben verso en aconsellando-o sobre a vida e cursos 25 00:01:13,630 --> 00:01:16,549 dentro CS e non dentro CS. 26 00:01:16,549 --> 00:01:18,090 Eu son un Concentrador de Ciencia Ordenador. 27 00:01:18,090 --> 00:01:20,800 Eu son un senior na Adams House, mellor casa. 28 00:01:20,800 --> 00:01:22,430 29 00:01:22,430 --> 00:01:26,050 E antes de que eu mudei para CS miña sophomore Spring, 30 00:01:26,050 --> 00:01:27,640 Eu estaba realmente un enxeñeiro biomédico. 31 00:01:27,640 --> 00:01:29,020 Eu estaba indo a ir á escola Med. 32 00:01:29,020 --> 00:01:30,530 Eu estaba indo a ser un cirurxián de trauma. 33 00:01:30,530 --> 00:01:33,000 E iso ten completamente cambiou dende que eu tomei CS50. 34 00:01:33,000 --> 00:01:34,250 35 00:01:34,250 --> 00:01:36,310 Fixen o curso sophomore miña caída. 36 00:01:36,310 --> 00:01:38,920 Foi a miña primeira introdución ao CS nunca. 37 00:01:38,920 --> 00:01:44,104 Eu era un dos 78% de vostedes que tiña cero de experiencia chegando, 38 00:01:44,104 --> 00:01:45,520 e el cambiou completamente a miña vida. 39 00:01:45,520 --> 00:01:49,820 E agora eu estou a traballar en Microsoft, ea súa encantador TF. 40 00:01:49,820 --> 00:01:53,500 E CS50 é probablemente un das mellores experiencias 41 00:01:53,500 --> 00:01:56,210 que eu tiven aquí no Harvard-- tanto tomar a clase 42 00:01:56,210 --> 00:01:59,040 e ser capaz de axudar ensinar os alumnos coma ti. 43 00:01:59,040 --> 00:02:01,410 >> Entón, eu estou realmente animado que estamos todos aquí. 44 00:02:01,410 --> 00:02:04,270 No caso de que veu en tarde, hai doces, 45 00:02:04,270 --> 00:02:07,227 que ten que sentirse libre para vir incorporarse ou enviar 46 00:02:07,227 --> 00:02:08,560 alguén para agarralo lo para ti. 47 00:02:08,560 --> 00:02:09,399 é certo. 48 00:02:09,399 --> 00:02:10,440 Non quero comer iso. 49 00:02:10,440 --> 00:02:13,350 O meu cuarto ten bastante chocolate, polo que vostedes deberían tentar rematar isto. 50 00:02:13,350 --> 00:02:16,730 Sei que existen 100 pezas, pero como, 04:00 o luns, 51 00:02:16,730 --> 00:02:19,000 Creo que todo o mundo podería utilizar un pouco de azucre. 52 00:02:19,000 --> 00:02:21,750 >> Entón, todos vostedes que son oficialmente na miña sección 53 00:02:21,750 --> 00:02:24,700 debería comezar un correo electrónico de min co meu número de teléfono, 54 00:02:24,700 --> 00:02:29,920 correo electrónico address-- Sinto-se a liberdade de me engadir Gchat, Sinto-se a liberdade de me engadir en Facebook, 55 00:02:29,920 --> 00:02:33,360 e tamén para o resto de vós, pode enviar-me ben aquí. 56 00:02:33,360 --> 00:02:34,450 Existen dous H de. 57 00:02:34,450 --> 00:02:37,090 Todo o mundo sempre fai como dous L's ou dous c. 58 00:02:37,090 --> 00:02:38,260 Dous H das no apelido. 59 00:02:38,260 --> 00:02:41,800 Se non, vai ir e Eu non estou indo a obter o seu correo electrónico. 60 00:02:41,800 --> 00:02:46,400 >> Polo tanto, Sinto-se a liberdade de me correo-e, poñerse en contacto comigo en calquera momento. 61 00:02:46,400 --> 00:02:51,440 Non pode volver vostede dentro de 24 minutos, 62 00:02:51,440 --> 00:02:53,760 pero prometo volver para ti en 24 horas. 63 00:02:53,760 --> 00:02:54,900 64 00:02:54,900 --> 00:02:58,067 Se me chamar de media hora antes seu pset é debido, sendo así, 65 00:02:58,067 --> 00:02:59,650 Eu non teño idea do que estou facendo Allison. 66 00:02:59,650 --> 00:03:00,160 Me axude. 67 00:03:00,160 --> 00:03:04,049 Eu estou indo a calmalo, pero ao final do día, 68 00:03:04,049 --> 00:03:07,340 se está me chamando de media hora antes seu pset é debido, sen nada escrito, 69 00:03:07,340 --> 00:03:11,570 Vou ser como, así, quizais é hora de usar este día de atraso. 70 00:03:11,570 --> 00:03:15,215 Entón eu vou responder a todos os seus solicitudes de forma moi oportuna. 71 00:03:15,215 --> 00:03:16,482 72 00:03:16,482 --> 00:03:18,190 O meu teléfono é normalmente ligado ás miñas mans. 73 00:03:18,190 --> 00:03:21,530 Eu normalmente responden moi máis rápido que 24 horas, 74 00:03:21,530 --> 00:03:25,650 pero só podo garantía unha resposta de 24 horas. 75 00:03:25,650 --> 00:03:26,580 >> Todo correcto. 76 00:03:26,580 --> 00:03:28,410 Entón, por que estamos aquí? 77 00:03:28,410 --> 00:03:32,160 Ademais, se ten dúbidas en calquera momento, por favor, deixe-me saber. 78 00:03:32,160 --> 00:03:32,780 Eu falo moito. 79 00:03:32,780 --> 00:03:35,320 Eu falo rápido, pero, por favor Sinto-se a liberdade de me deter. 80 00:03:35,320 --> 00:03:36,980 Dáme espazo para respirar ben. 81 00:03:36,980 --> 00:03:38,159 82 00:03:38,159 --> 00:03:40,200 Entón seccións son un tempo para que realmente só mergullo 83 00:03:40,200 --> 00:03:44,270 en, obter algúns hands-on experiencia, a pasar por temas que mencionados 84 00:03:44,270 --> 00:03:49,760 en clase ou en materiais de estudio que recomendamos que vós liña. 85 00:03:49,760 --> 00:03:52,980 E nós imos realmente pasar por algúns destes recursos en algo. 86 00:03:52,980 --> 00:03:54,300 87 00:03:54,300 --> 00:03:57,400 >> Por iso, algunhas notas sobre o apoio sección. 88 00:03:57,400 --> 00:04:00,250 CS50-- unha das cousas que fai que unha das miñas clases favoritas 89 00:04:00,250 --> 00:04:02,510 é a sensación de que nunca está só. 90 00:04:02,510 --> 00:04:05,430 Temos un equipo de máis de 100 persoas que están aquí para axudar. 91 00:04:05,430 --> 00:04:08,080 Temos o horario de expediente De luns a xoves. 92 00:04:08,080 --> 00:04:13,230 Polo tanto, hai moita xente que amo a clase tanto como eu fago 93 00:04:13,230 --> 00:04:15,750 e quen son realmente aquí porque queren estar aquí. 94 00:04:15,750 --> 00:04:19,390 A maioría de nós son estudantes, e este é como unha quinta clase, ademais 95 00:04:19,390 --> 00:04:20,390 para o resto do noso traballo. 96 00:04:20,390 --> 00:04:22,723 >> E é unha chea de traballo, pero nós facemos iso porque amamos tanto, 97 00:04:22,723 --> 00:04:25,600 e que realmente quere ensinar-lle e axudar a compartir o noso entusiasmo 98 00:04:25,600 --> 00:04:27,260 para este tema e esta clase. 99 00:04:27,260 --> 00:04:28,490 Entón por favor, aproveitar. 100 00:04:28,490 --> 00:04:29,370 Veña falar connosco. 101 00:04:29,370 --> 00:04:33,034 Eu estar soa, cando os meus alumnos non falar comigo, entón se quere, 102 00:04:33,034 --> 00:04:33,950 vir saír comigo. 103 00:04:33,950 --> 00:04:35,200 Será xenial. 104 00:04:35,200 --> 00:04:37,400 >> Así, a sección é obviamente un dos seus máis grandes cousas. 105 00:04:37,400 --> 00:04:41,770 Nós imos pasar por cousas que aprendeu na clase, 106 00:04:41,770 --> 00:04:44,100 facer algúns breves exemplos cando temos tempo, 107 00:04:44,100 --> 00:04:46,187 e, en xeral de tipo ter unha idea sobre as cousas 108 00:04:46,187 --> 00:04:48,270 ten que estar pensando sobre a establecer o seu problema. 109 00:04:48,270 --> 00:04:49,540 110 00:04:49,540 --> 00:04:53,591 Shorts-- cantas persoas realmente asistir o vídeo do seu cero 111 00:04:53,591 --> 00:04:54,090 curto? 112 00:04:54,090 --> 00:04:55,460 113 00:04:55,460 --> 00:04:57,390 Alguén me recoñecen? 114 00:04:57,390 --> 00:04:59,720 Polo tanto, estas son moi grandes. 115 00:04:59,720 --> 00:05:01,210 Ten que definitivamente ver aqueles. 116 00:05:01,210 --> 00:05:02,880 Unha morea de traballo foi posto en los. 117 00:05:02,880 --> 00:05:06,690 E eles están só pretende ser xunquillo-size pezas para simplemente asistir 118 00:05:06,690 --> 00:05:09,760 por tres ou catro minutos e obter un unha mellor comprensión do concepto. 119 00:05:09,760 --> 00:05:11,147 120 00:05:11,147 --> 00:05:12,980 Camiño throughs-- como moitas persoas xa asistiron 121 00:05:12,980 --> 00:05:14,880 A camiñada de paso para os anteriores? 122 00:05:14,880 --> 00:05:16,240 Zamyla é incrible, non? 123 00:05:16,240 --> 00:05:18,100 Tipo, eu desexo que eu era Zamyla veces. 124 00:05:18,100 --> 00:05:19,650 125 00:05:19,650 --> 00:05:21,640 Entón, en definitiva usar os seus walk-through. 126 00:05:21,640 --> 00:05:25,070 Vai división la en pezas, mordida de tamaño pequeno. 127 00:05:25,070 --> 00:05:28,079 E cando ten estes enormes especificacións dos seus conxuntos de problemas, 128 00:05:28,079 --> 00:05:30,870 que será moi importante para poder simplemente atopar un lugar 129 00:05:30,870 --> 00:05:32,600 para comezar a traballar lentamente e a través del. 130 00:05:32,600 --> 00:05:33,610 131 00:05:33,610 --> 00:05:40,260 >> Todo ben, nós tamén temos Study50, que é study50.harvard.edu, eu creo. 132 00:05:40,260 --> 00:05:42,270 Pode só Google estudar, e que vai vir cara arriba. 133 00:05:42,270 --> 00:05:45,750 Esta é unha das máis mellores recursos que temos. 134 00:05:45,750 --> 00:05:49,800 É PowerPoints con notas e practicar problemas para ti 135 00:05:49,800 --> 00:05:52,430 con solucións que Pode realmente camiñar. 136 00:05:52,430 --> 00:05:57,000 Entón, se quere máis práctica, máis que nós en seccións ou máis 137 00:05:57,000 --> 00:06:00,700 que os seus conxuntos de problemas, que é realmente un lugar que eu encouraged-lo a ir. 138 00:06:00,700 --> 00:06:03,590 Foi construído no verán pasado por algúns dos meus bos amigos. 139 00:06:03,590 --> 00:06:04,480 E é incrible. 140 00:06:04,480 --> 00:06:05,540 141 00:06:05,540 --> 00:06:08,670 De feito, moitas das láminas que eu vou estar a usar para a Sección 142 00:06:08,670 --> 00:06:10,190 virá de Study50. 143 00:06:10,190 --> 00:06:12,000 >> Entón, unha morea de TFS usalo. 144 00:06:12,000 --> 00:06:13,920 E, finalmente, como eu mencionado, o horario de expediente. 145 00:06:13,920 --> 00:06:15,836 Se está a ter problemas coa lección de casa, está 146 00:06:15,836 --> 00:06:18,270 ter problemas cun concepto, veña para o horario de expediente. 147 00:06:18,270 --> 00:06:20,190 Ir ao principio da semana, se poida. 148 00:06:20,190 --> 00:06:23,130 Saia ao quad, porque é tipo de lonxe. 149 00:06:23,130 --> 00:06:24,780 A ninguén lle gusta andar por aí. 150 00:06:24,780 --> 00:06:27,090 Pero é a súa vantaxe, porque entón está 151 00:06:27,090 --> 00:06:29,580 terá todos estes TFS, [Inaudível] rodean. 152 00:06:29,580 --> 00:06:31,920 E sobre todo agora, Só unha información, quintas 153 00:06:31,920 --> 00:06:35,310 son moi frío agora en Mather porque os seus Serie de exercicios 154 00:06:35,310 --> 00:06:36,577 son debido ás xoves. 155 00:06:36,577 --> 00:06:38,410 E quere saber utilizar os seus días de atraso aínda. 156 00:06:38,410 --> 00:06:40,030 >> Entón, se está a ter problemas con conceptos, 157 00:06:40,030 --> 00:06:41,780 hai moitas TFS que están aí para axudar. 158 00:06:41,780 --> 00:06:43,196 Entón veña para Mather o xoves. 159 00:06:43,196 --> 00:06:45,280 Se quere verme, Eu vou estar alí. 160 00:06:45,280 --> 00:06:48,870 Eu estou facendo a miña propia tipicamente lección de casa, porque ninguén quere a miña axuda. 161 00:06:48,870 --> 00:06:50,260 Entón veña vernos. 162 00:06:50,260 --> 00:06:51,460 163 00:06:51,460 --> 00:06:52,440 >> Atopar-nos no medio do camiño. 164 00:06:52,440 --> 00:06:55,400 Así como moitas persoas xa asistiron charla ou asistir-lo en liña? 165 00:06:55,400 --> 00:06:56,570 166 00:06:56,570 --> 00:06:59,140 Como moitas persoas foron para Super sección a semana pasada? 167 00:06:59,140 --> 00:07:00,171 168 00:07:00,171 --> 00:07:00,670 Legal. 169 00:07:00,670 --> 00:07:02,190 Isto é realmente un bo número. 170 00:07:02,190 --> 00:07:05,425 Cantos de vós xa leron o especificación para esta semana, para a súa pset? 171 00:07:05,425 --> 00:07:07,081 172 00:07:07,081 --> 00:07:08,461 Ooh, eu estou orgulloso de vós! 173 00:07:08,461 --> 00:07:09,335 Máis doces para vós. 174 00:07:09,335 --> 00:07:11,070 175 00:07:11,070 --> 00:07:13,280 >> Bo, entón o que queremos dicir "Buscar-nos a medio camiño", é 176 00:07:13,280 --> 00:07:16,440 que a sección é realmente só Será super útil para ti 177 00:07:16,440 --> 00:07:19,810 se vostede poñerse en despois de ler a súa especificación para o seu pset. 178 00:07:19,810 --> 00:07:23,859 Porque cando eu pasar por unha visión xeral de cousas que ten que estar mirando para fóra, 179 00:07:23,859 --> 00:07:25,650 el non vai facer tanto sentido se 180 00:07:25,650 --> 00:07:28,358 Non sei o que o seu conxunto de problemas será pedindo que faga. 181 00:07:28,358 --> 00:07:29,020 182 00:07:29,020 --> 00:07:32,590 >> Se non vir a sección, obviamente Non podo ser tan útil. 183 00:07:32,590 --> 00:07:36,600 Non vou leva-la persoalmente se non ven a miña sección, agora, 184 00:07:36,600 --> 00:07:38,570 pero en definitiva ten que. 185 00:07:38,570 --> 00:07:40,090 Se non funciona, velos en liña. 186 00:07:40,090 --> 00:07:41,230 187 00:07:41,230 --> 00:07:42,519 Eles están aí por unha razón. 188 00:07:42,519 --> 00:07:43,560 Minas vai estar alí. 189 00:07:43,560 --> 00:07:44,187 190 00:07:44,187 --> 00:07:47,270 Como pode observarse, estamos a ser gravada, polo que vai estar alí para vós. 191 00:07:47,270 --> 00:07:49,110 192 00:07:49,110 --> 00:07:51,570 Así, vai lectures-- que é, obviamente, 193 00:07:51,570 --> 00:07:53,790 onde está a recibir o iniciar o seu material aquí. 194 00:07:53,790 --> 00:07:57,430 Entón, seguramente vou probar axudar tanto como eu poida, 195 00:07:57,430 --> 00:07:58,840 pero eu só podo coñece-lo tan lonxe. 196 00:07:58,840 --> 00:08:01,220 Ten que tipo de atoparnos no medio do camiño. 197 00:08:01,220 --> 00:08:04,050 >> Grading-- así, todos vostedes que recibín un correo electrónico de min, 198 00:08:04,050 --> 00:08:05,445 vostede é a miña sección oficial. 199 00:08:05,445 --> 00:08:06,470 200 00:08:06,470 --> 00:08:08,120 Estarei clasificación súas Serie de exercicios. 201 00:08:08,120 --> 00:08:12,870 E eu só quero dicir, unha cousa que ten que realmente prestar atención ao 202 00:08:12,870 --> 00:08:13,820 son os comentarios. 203 00:08:13,820 --> 00:08:17,390 Os comentarios son moitas veces máis útil do que a puntuación real, dámoslle. 204 00:08:17,390 --> 00:08:19,890 E os comentarios son realmente onde eu gasto moito do meu tempo 205 00:08:19,890 --> 00:08:20,770 cando estou de clasificación. 206 00:08:20,770 --> 00:08:22,700 Entón, gustaríame recibir se le-los. 207 00:08:22,700 --> 00:08:26,990 E son, en realidade, como está indo para aprender máis sobre deseño e estilo 208 00:08:26,990 --> 00:08:29,860 e as cousas que son un algo menos cortada e seca. 209 00:08:29,860 --> 00:08:31,770 >> Entón, realmente prestar atención a esas observacións. 210 00:08:31,770 --> 00:08:34,720 Se ten dúbidas sobre eles, ou preguntas sobre a súa puntuación, 211 00:08:34,720 --> 00:08:37,620 por favor, veña falar comigo quere antes sección, 212 00:08:37,620 --> 00:08:41,039 Eu probablemente vou ser colgado para fóra no lobby, ou despois. 213 00:08:41,039 --> 00:08:43,559 Se desexa axenda one-on-one reunións sobre como 214 00:08:43,559 --> 00:08:46,100 pode axudar a mellorar máis tarde conxuntos de problemas, é só me avisar. 215 00:08:46,100 --> 00:08:47,520 216 00:08:47,520 --> 00:08:49,750 >> E, a continuación, só un par de consellos para vostedes. 217 00:08:49,750 --> 00:08:53,110 Entón, unha das cousas máis importantes Sempre salientar a miña sección 218 00:08:53,110 --> 00:08:57,700 cando está a aprender como facer o código para escribir as cousas no papel primeiro. 219 00:08:57,700 --> 00:09:01,080 Se ten un plan de xogo para onde o código que ir 220 00:09:01,080 --> 00:09:03,230 eo que necesita facer e el é discriminado 221 00:09:03,230 --> 00:09:06,000 en pequenos anacos de pseudocódigo código que escribiu para fóra, 222 00:09:06,000 --> 00:09:09,780 vai ser menos propensos a cometer erros de sintaxe 223 00:09:09,780 --> 00:09:12,355 ou crear un bucle que se Non ten outra cousa. 224 00:09:12,355 --> 00:09:14,064 225 00:09:14,064 --> 00:09:15,980 Se sabe onde está vai global, está 226 00:09:15,980 --> 00:09:19,764 menos propensos a facer estes pequenos erros que, ás veces, leva-lo 227 00:09:19,764 --> 00:09:22,555 hora de corrixir, porque queda tipo, onde estou falta nesa franxa? 228 00:09:22,555 --> 00:09:23,580 229 00:09:23,580 --> 00:09:27,420 >> Na mesma nota, por favor, use Style50. 230 00:09:27,420 --> 00:09:28,820 231 00:09:28,820 --> 00:09:31,590 Especialmente cando se está indo ao horario de expediente, 232 00:09:31,590 --> 00:09:34,850 se o seu código é todo conmutada a un lado, 233 00:09:34,850 --> 00:09:37,740 é política curso que podemos dicir, resolve-lo 234 00:09:37,740 --> 00:09:41,990 de xeito que parece que Style50 di que debería, e entón nós imos axudar. 235 00:09:41,990 --> 00:09:43,830 Por iso vai facilitar a súa vida. 236 00:09:43,830 --> 00:09:45,030 Isto vai facilitar as nosas vidas. 237 00:09:45,030 --> 00:09:46,000 Todo o mundo está feliz. 238 00:09:46,000 --> 00:09:47,290 Todo o mundo queda mellores notas. 239 00:09:47,290 --> 00:09:48,760 Non é iso que todos queremos? 240 00:09:48,760 --> 00:09:50,420 241 00:09:50,420 --> 00:09:53,860 >> Entón escriba as cousas no papel antes Sempre toca seu ordenador. 242 00:09:53,860 --> 00:09:57,540 Falar as cousas a un alto nivel, e asegurarse de que sabe onde está indo. 243 00:09:57,540 --> 00:09:59,940 E se non está seguro, sentir-se con alguén 244 00:09:59,940 --> 00:10:03,340 e camiñar con eles a través de paso a paso o que o código se quere facer. 245 00:10:03,340 --> 00:10:07,940 E nove veces fóra de 10, pode como, oh, eu esquezo unha condición if 246 00:10:07,940 --> 00:10:12,420 ou eu esquezo comas aquí ou Estou a actualizar esta mal variable. 247 00:10:12,420 --> 00:10:15,740 Polo tanto, estas son as miñas suxestións para o éxito. 248 00:10:15,740 --> 00:10:19,820 >> Entón, xa que aproximadamente a metade do que ollar como asistiu sección super, 249 00:10:19,820 --> 00:10:24,080 Eu só vou moi brevemente pasar por loops, 250 00:10:24,080 --> 00:10:26,650 que non estaban na nosa axenda orixinal. 251 00:10:26,650 --> 00:10:28,190 Pero son realmente importantes. 252 00:10:28,190 --> 00:10:30,250 E así eu vou tipo de velocidade a través de quen 253 00:10:30,250 --> 00:10:32,860 antes de entrar na nosa sección real. 254 00:10:32,860 --> 00:10:36,269 Antes de facelo, están aí calquera perguntas-- loxística, 255 00:10:36,269 --> 00:10:38,060 persoalmente, hai calquera outra cousa que quere 256 00:10:38,060 --> 00:10:40,990 saber sobre min ou sobre sección ou clase en xeral? 257 00:10:40,990 --> 00:10:43,195 258 00:10:43,195 --> 00:10:43,880 Todo ben? 259 00:10:43,880 --> 00:10:45,300 OK, legal. 260 00:10:45,300 --> 00:10:46,781 261 00:10:46,781 --> 00:10:47,280 Encantador. 262 00:10:47,280 --> 00:10:50,071 >> Entón loops-- vostedes todos deben recoñecer estas pezas a partir de cero. 263 00:10:50,071 --> 00:10:51,310 264 00:10:51,310 --> 00:10:55,220 Entón loops son basicamente só unha forma de facer algo 265 00:10:55,220 --> 00:10:58,900 un certo número de veces, algúns repetido acción con base en algúns condicional. 266 00:10:58,900 --> 00:11:00,140 267 00:11:00,140 --> 00:11:02,090 Polo tanto, temos tres tipos diferentes. 268 00:11:02,090 --> 00:11:04,860 Temos loop for, while e do-while. 269 00:11:04,860 --> 00:11:06,430 270 00:11:06,430 --> 00:11:11,320 >> Así, para loops-- só temos unha moi disposición xeral aquí dun loop. 271 00:11:11,320 --> 00:11:16,110 E iso é óptimo para cando vostede sabe como moitas veces algo que realizar. 272 00:11:16,110 --> 00:11:17,040 273 00:11:17,040 --> 00:11:18,790 Cando falamos sobre o outros loops, vai 274 00:11:18,790 --> 00:11:20,650 ver por que isto é unha importante distinción. 275 00:11:20,650 --> 00:11:22,530 Pero para loops son para algo set. 276 00:11:22,530 --> 00:11:24,590 Vostede sabe que pode calcular o número 277 00:11:24,590 --> 00:11:29,230 ou sabe o número de veces que quere este repetido ao principio. 278 00:11:29,230 --> 00:11:32,220 >> Entón, se ve aquí, nós ter só un tipo xeral 279 00:11:32,220 --> 00:11:34,480 do cadro esqueleto para un loop aquí. 280 00:11:34,480 --> 00:11:38,080 Así, para-inicialización, este é o lugar onde súas variables son inicializados. 281 00:11:38,080 --> 00:11:41,915 Con Mario, eu estou seguro que vostedes fixeron algo así como int i é igual a 0. 282 00:11:41,915 --> 00:11:42,920 283 00:11:42,920 --> 00:11:44,710 É aí que ía ocorrer en azul. 284 00:11:44,710 --> 00:11:48,290 Ten a súa condición, o que é o que é comprobado cada vez. 285 00:11:48,290 --> 00:11:52,410 Se esta condición sexa verdadeira, entón o resto do código é executado. 286 00:11:52,410 --> 00:11:54,749 A continuación, el vai executar novamente-- e preguntar. 287 00:11:54,749 --> 00:11:57,290 E despois temos de actualización, onde está a actualizar a súa variable. 288 00:11:57,290 --> 00:12:01,410 Entón, unha vez máis, con como Mario, eu estou seguro vostedes fixeron algo como i plus plus. 289 00:12:01,410 --> 00:12:04,640 Así, cada vez que o loop foi, eu teño actualizado para 290 00:12:04,640 --> 00:12:09,370 que cando estabamos comprobando-lo contra algunha condición, estaba cambiando. 291 00:12:09,370 --> 00:12:12,570 >> Porque se só ten unha variable estática, 292 00:12:12,570 --> 00:12:15,567 se se executa a primeira vez, só vai executar infinitamente. 293 00:12:15,567 --> 00:12:18,025 Entón tes que ter seguro que actualizar a súa variable correctamente. 294 00:12:18,025 --> 00:12:19,350 295 00:12:19,350 --> 00:12:23,890 E tamén temos só unha representación visual alí. 296 00:12:23,890 --> 00:12:24,930 Todo o mundo bo? 297 00:12:24,930 --> 00:12:25,630 Para laçadas. 298 00:12:25,630 --> 00:12:27,540 Debería ver estes na súa pset. 299 00:12:27,540 --> 00:12:28,840 Legal. 300 00:12:28,840 --> 00:12:31,870 >> Entón, aquí é só un exemplo fácil. 301 00:12:31,870 --> 00:12:32,860 Imprimir Este é CS50! 302 00:12:32,860 --> 00:12:33,360 10 veces. 303 00:12:33,360 --> 00:12:34,850 304 00:12:34,850 --> 00:12:37,906 E así temos a nosa arranque, como podemos ver alí, con int i 305 00:12:37,906 --> 00:12:41,280 é igual a 0, para i é menos de 10, e eu plus plus. 306 00:12:41,280 --> 00:12:43,090 307 00:12:43,090 --> 00:12:44,540 E vai imprimir que 10 veces. 308 00:12:44,540 --> 00:12:46,230 309 00:12:46,230 --> 00:12:56,781 >> Así, mentres loops-- mentres loops son grande cando non fai, necesariamente, 310 00:12:56,781 --> 00:12:59,530 ten que saber cantas veces se vai actualizar o comezo. 311 00:12:59,530 --> 00:13:00,640 312 00:13:00,640 --> 00:13:02,580 Vostede só ten algúns condición que é comprobada. 313 00:13:02,580 --> 00:13:09,550 E iso podería ser algo así como while-- imos dar un exemplo de súa pset. 314 00:13:09,550 --> 00:13:12,540 Se Mario, tenta entrada dun número negativo. 315 00:13:12,540 --> 00:13:13,270 Non? 316 00:13:13,270 --> 00:13:15,460 Era para ti re-solicitar o seu usuario. 317 00:13:15,460 --> 00:13:20,890 Así, pode dicir, ben, se as entradas de usuario algo menos que cero, re-aviso 318 00:13:20,890 --> 00:13:21,390 A eles. 319 00:13:21,390 --> 00:13:23,890 E estou seguro de que podería foi algo que algúns de vós 320 00:13:23,890 --> 00:13:24,660 usado no seu código. 321 00:13:24,660 --> 00:13:26,270 >> Entón é unha cousa sinxela. 322 00:13:26,270 --> 00:13:28,490 Ten tempo, algúns condicional que está marcada 323 00:13:28,490 --> 00:13:30,460 cada vez que o código vai a realizar. 324 00:13:30,460 --> 00:13:32,660 De ser avaliado como verdadeiro, nós executalo. 325 00:13:32,660 --> 00:13:33,820 Se non, non. 326 00:13:33,820 --> 00:13:35,650 E o que é realmente algo importante-- I 327 00:13:35,650 --> 00:13:38,155 creo que David falou sobre en lecture-- son as claves. 328 00:13:38,155 --> 00:13:40,760 329 00:13:40,760 --> 00:13:42,930 Calquera que sexa de dentro do claves é o que corre. 330 00:13:42,930 --> 00:13:45,850 Se esquece os tirantes, que vai só 331 00:13:45,850 --> 00:13:48,800 ser a liña directa tras este tempo foi executado. 332 00:13:48,800 --> 00:13:51,040 >> Entón, se ten tres cousas que son presuntamente 333 00:13:51,040 --> 00:13:54,020 a acontecer cando este condición de ser valorada como certa, 334 00:13:54,020 --> 00:13:58,040 e non ten esas claves, só o primeiro que vai ocorrer. 335 00:13:58,040 --> 00:14:01,510 Polo tanto, é moi consciente do onde poñer as súas claves. 336 00:14:01,510 --> 00:14:04,880 Se queda con Style50, iso vai axudar definitivamente. 337 00:14:04,880 --> 00:14:06,220 338 00:14:06,220 --> 00:14:06,760 Legal. 339 00:14:06,760 --> 00:14:10,835 >> Polo tanto, esta é unha conta atrás de 10 a cero. 340 00:14:10,835 --> 00:14:12,380 341 00:14:12,380 --> 00:14:16,210 E como ve aquí, nós arrincar algúns contador fóra dela. 342 00:14:16,210 --> 00:14:19,250 Unha cousa que é diferente é Non estamos inicializar nosa variable 343 00:14:19,250 --> 00:14:20,300 dentro do noso loop while. 344 00:14:20,300 --> 00:14:22,150 É inicializar fóra dela. 345 00:14:22,150 --> 00:14:25,480 Estamos simplemente poñendo o condición no noso tempo. 346 00:14:25,480 --> 00:14:28,630 Polo tanto, neste caso, é á vez conta é maior que cero. 347 00:14:28,630 --> 00:14:35,134 E nós imprimir o que a nosa conta é, e despois de que nós diminuiremos nosa variable. 348 00:14:35,134 --> 00:14:36,800 E iso é tamén unha outra cousa a notar. 349 00:14:36,800 --> 00:14:40,440 A nosa actualización non acontecer dentro que a primeira parte do bucle while. 350 00:14:40,440 --> 00:14:44,255 Realmente vai ocorrer dentro as claves, o corpo do seu texto. 351 00:14:44,255 --> 00:14:46,820 352 00:14:46,820 --> 00:14:51,860 >> Polo tanto, mentres loops --- do-while son grandes para validación do usuario. 353 00:14:51,860 --> 00:14:54,820 Entón, algúns de vostedes poden ter tamén usou iso no seu pset. 354 00:14:54,820 --> 00:14:59,960 Pode dicir, facer, como, pedir ao usuario a entrada. 355 00:14:59,960 --> 00:15:04,690 E entón cando, como, o entrada é menor que algún número. 356 00:15:04,690 --> 00:15:10,700 >> Así, para un caso explícito con Mario, el sería facer printf, introduza un número enteiro, 357 00:15:10,700 --> 00:15:13,820 e logo, algún enteiro é igual getInt. 358 00:15:13,820 --> 00:15:17,060 E entón vai realmente executar este código primeiro. 359 00:15:17,060 --> 00:15:19,120 Realmente vai ter algún tipo de número enteiro. 360 00:15:19,120 --> 00:15:23,380 E entón podería dicir que, aínda que número enteiro que é menor que cero. 361 00:15:23,380 --> 00:15:26,120 Entón, o que vai facer é que é vai realizar polo menos unha vez. 362 00:15:26,120 --> 00:15:27,536 Vai comprobar a condición. 363 00:15:27,536 --> 00:15:29,690 Se a condición é verdade, que vai correr de novo. 364 00:15:29,690 --> 00:15:32,900 >> Entón faga-while son óptimo para validación do usuario, 365 00:15:32,900 --> 00:15:36,770 porque sabe que o código está indo a executar, polo menos, 366 00:15:36,770 --> 00:15:39,720 unha vez máis, mentres que con mentres loops, non está 367 00:15:39,720 --> 00:15:41,630 garantir que se indo para executar unha vez. 368 00:15:41,630 --> 00:15:45,330 Vai comprobar a condición primeiro e despois decidir para executalo, 369 00:15:45,330 --> 00:15:48,350 mentres que un do-while será executar o código en primeiro lugar 370 00:15:48,350 --> 00:15:51,110 e, a continuación, comprobar a ver se ten que repetir-lo. 371 00:15:51,110 --> 00:15:52,985 Será que esta distinción ter sentido para todos? 372 00:15:52,985 --> 00:15:53,680 373 00:15:53,680 --> 00:15:54,180 Está ben. 374 00:15:54,180 --> 00:15:55,651 375 00:15:55,651 --> 00:15:56,150 Legal. 376 00:15:56,150 --> 00:15:57,380 377 00:15:57,380 --> 00:15:59,800 >> Polo tanto, neste caso, este é o tipo do que eu estaba falando, 378 00:15:59,800 --> 00:16:02,210 esta re-prompts ata obter un número positivo. 379 00:16:02,210 --> 00:16:05,060 Entón, nós sabemos que printf "Introduza un número positivo" 380 00:16:05,060 --> 00:16:08,720 e, de feito, pedindo que entrada ocorrerá polo menos unha vez. 381 00:16:08,720 --> 00:16:12,650 Se o usuario está mal e mantén escribindo un número negativo, que 382 00:16:12,650 --> 00:16:14,210 sabe cantas veces vai realizar. 383 00:16:14,210 --> 00:16:17,500 Pero este código é garantía para realizar polo menos unha vez. 384 00:16:17,500 --> 00:16:20,040 E é por iso que é óptimo para validar a entrada. 385 00:16:20,040 --> 00:16:22,300 E vai usar isto un pouco. 386 00:16:22,300 --> 00:16:23,870 387 00:16:23,870 --> 00:16:25,830 >> Todo ben, todas as preguntas ata agora? 388 00:16:25,830 --> 00:16:27,080 389 00:16:27,080 --> 00:16:28,030 Estamos todos ben? 390 00:16:28,030 --> 00:16:29,513 Estou falando moi rápido? 391 00:16:29,513 --> 00:16:30,520 392 00:16:30,520 --> 00:16:31,130 Somos bos? 393 00:16:31,130 --> 00:16:31,630 Está ben. 394 00:16:31,630 --> 00:16:32,960 395 00:16:32,960 --> 00:16:33,800 Impresionante 396 00:16:33,800 --> 00:16:35,841 >> Entón, nós estamos indo para adiante e falar de arrays. 397 00:16:35,841 --> 00:16:36,660 398 00:16:36,660 --> 00:16:37,600 Legal. 399 00:16:37,600 --> 00:16:40,700 Así, as matrices son basicamente só estruturas de datos 400 00:16:40,700 --> 00:16:43,260 que nos permiten almacenar cousas do mesmo tipo. 401 00:16:43,260 --> 00:16:47,920 Entón, se ten unha matriz, que é ou só terá ints 402 00:16:47,920 --> 00:16:51,590 ou que só terá Carrozas ou que só vai ter caracteres. 403 00:16:51,590 --> 00:16:55,440 Non vai ter un int con un char con un coche alegórico con unha parella. 404 00:16:55,440 --> 00:16:56,850 Unha cousa. 405 00:16:56,850 --> 00:17:00,810 Arrays son só un tamaño, ou son só un tipo. 406 00:17:00,810 --> 00:17:05,679 >> Polo tanto, temos aquí unha matriz de tamaño tres con tres números enteiros na mesma. 407 00:17:05,679 --> 00:17:07,970 Poderían flota, pero estamos vai dicir que están enteiros. 408 00:17:07,970 --> 00:17:09,310 409 00:17:09,310 --> 00:17:16,970 Entón, unha cousa a entender é que matrices son un conxunto de tamaño cando arrincar 410 00:17:16,970 --> 00:17:22,285 eles, e eles non son easily-- xa que todos son menos cómodos, 411 00:17:22,285 --> 00:17:25,034 ten que só pensar neles como non sendo capaz de estender en tamaño. 412 00:17:25,034 --> 00:17:26,119 413 00:17:26,119 --> 00:17:28,740 Con todo gran establecer súa matriz, en principio, 414 00:17:28,740 --> 00:17:31,070 que é o tamaño que vai para estar, porque as matrices 415 00:17:31,070 --> 00:17:33,070 son bloques continuos de memoria. 416 00:17:33,070 --> 00:17:34,007 417 00:17:34,007 --> 00:17:35,840 E cando vostedes se en algo máis 418 00:17:35,840 --> 00:17:40,820 de como a memoria é realmente dispostas discos e na pila ea pila, 419 00:17:40,820 --> 00:17:42,220 vai facer un pouco máis de sentido. 420 00:17:42,220 --> 00:17:48,310 >> Pero podería só pensar en como é só unha liña de espazos no seu disco. 421 00:17:48,310 --> 00:17:52,540 E non pode garantir que non hai será o espazo libre despois. 422 00:17:52,540 --> 00:17:55,290 Pode arrincar dunha matriz de tres e, a continuación, quizais 423 00:17:55,290 --> 00:17:59,190 arrincar outro conxunto de cinco máis tarde, e é inmediatamente. 424 00:17:59,190 --> 00:18:04,000 Entón, se fose para ir Mancha pasado tres en que a primeira matriz, 425 00:18:04,000 --> 00:18:06,370 estaría escribindo sobre outra cousa. 426 00:18:06,370 --> 00:18:10,390 Entón matrices é-- para vós, só consideralos como un tamaño fixo. 427 00:18:10,390 --> 00:18:12,700 428 00:18:12,700 --> 00:18:16,890 >> Así, a creación dun array-- está indo a necesidade de facelo un pouco. 429 00:18:16,890 --> 00:18:18,240 430 00:18:18,240 --> 00:18:22,080 Así, do mesmo xeito que temos un estrutura xeral para o noso para loops, 431 00:18:22,080 --> 00:18:24,910 temos un bo xeral estrutura para a nosa matriz. 432 00:18:24,910 --> 00:18:28,430 Porque son dun tipo, toda a elementos dunha matriz son dun tipo, 433 00:18:28,430 --> 00:18:30,950 precisa para arrincar o que este tipo é. 434 00:18:30,950 --> 00:18:33,804 >> Entón, como ve aquí, temos unha bo tipo de datos soporte pouco. 435 00:18:33,804 --> 00:18:35,970 Entón, se nós estamos creando un int matriz, que han ser int. 436 00:18:35,970 --> 00:18:38,830 Se estamos creando un char array, que será de char. 437 00:18:38,830 --> 00:18:41,890 Se estamos creando unha cadea array, que será cadea. 438 00:18:41,890 --> 00:18:45,140 E, a continuación, o nome da súa matriz, o que lle gustaría que fose. 439 00:18:45,140 --> 00:18:51,750 Entón quizais sexa os resultados das probas ou que é estudantes ou que sexa doce. 440 00:18:51,750 --> 00:18:54,440 Calquera que decidir o nome do seu array, que é o que vai ser. 441 00:18:54,440 --> 00:18:57,260 >> E, a continuación, entre paréntesis, vai ten o tamaño que quere. 442 00:18:57,260 --> 00:19:01,350 Entón, nós estamos almacenando 10 alumnos ou estamos almacenar 15 tipos de doces? 443 00:19:01,350 --> 00:19:03,200 444 00:19:03,200 --> 00:19:03,920 O que non. 445 00:19:03,920 --> 00:19:06,830 Así, no noso exemplo aquí, estamos creando un array 446 00:19:06,830 --> 00:19:10,100 de tamaño tres, o que vostedes vexa aquí á dereita. 447 00:19:10,100 --> 00:19:11,350 448 00:19:11,350 --> 00:19:15,990 E cando nós primeiro arrincar el, todo está definido a cero. 449 00:19:15,990 --> 00:19:18,970 El só pensaba de como unha lousa en branco. 450 00:19:18,970 --> 00:19:22,550 Temos todos estes espazos, temos todo estas caixas poderiamos poñer os nosos datos en, 451 00:19:22,550 --> 00:19:25,530 pero son só en branco polo de agora. 452 00:19:25,530 --> 00:19:28,700 >> Polo tanto, se queremos realmente asignar-lles estes valores, 453 00:19:28,700 --> 00:19:33,050 facémolo como ben debaixo aquí mostra. 454 00:19:33,050 --> 00:19:39,170 Entón tes o que quere que o nome do seu matriz é e, a continuación, o índice que quere. 455 00:19:39,170 --> 00:19:43,070 Así, o índice refírese só, como, o slot de que estamos mirando. 456 00:19:43,070 --> 00:19:47,830 E unha cousa importante a ter en conta é que arrays son indexados cero. 457 00:19:47,830 --> 00:19:53,160 Polo tanto, se queremos o primeiro espazo na memoria da nosa matriz, vai ser cero. 458 00:19:53,160 --> 00:19:54,740 Se queremos que o segundo, que será un. 459 00:19:54,740 --> 00:19:56,198 Se queremos que a terceira, será dous. 460 00:19:56,198 --> 00:19:57,820 Así por diante e así por diante. 461 00:19:57,820 --> 00:20:02,130 >> Que é tamén por iso que, convencionalmente, cando facemos para loops-- eu estou seguro 462 00:20:02,130 --> 00:20:05,030 vostedes estaban se pregunta, por que comezamos a 0 contra 1? 463 00:20:05,030 --> 00:20:09,909 E iso é porque cando nós facemos a transición en usar matrices, el mapea correctamente. 464 00:20:09,909 --> 00:20:11,700 Entón, se quere iteración nunha matriz, que 465 00:20:11,700 --> 00:20:14,830 fai moito máis sentido facer i é igual a 0, pois nós 466 00:20:14,830 --> 00:20:17,940 sabe que corresponderá para o primeiro lugar de memoria. 467 00:20:17,940 --> 00:20:18,990 468 00:20:18,990 --> 00:20:19,990 Todo o mundo ben con iso? 469 00:20:19,990 --> 00:20:21,060 470 00:20:21,060 --> 00:20:21,560 Legal. 471 00:20:21,560 --> 00:20:26,240 >> E, a continuación, na parte inferior aquí é só outra forma de iniciar unha matriz. 472 00:20:26,240 --> 00:20:29,590 Aínda ten o seu tipo de datos eo nome, 473 00:20:29,590 --> 00:20:31,960 pero no canto de realmente poñer un tamaño de alí, 474 00:20:31,960 --> 00:20:33,830 pode só facer corchetes baleiros. 475 00:20:33,830 --> 00:20:36,350 E, a continuación, con estes rizado cintas na parte inferior, 476 00:20:36,350 --> 00:20:40,270 pode só introducir os datos que quere separados por comas. 477 00:20:40,270 --> 00:20:43,070 E iso será automaticamente dicir, OK, eu vexo 478 00:20:43,070 --> 00:20:47,300 que ten tres cousas nestas claves. 479 00:20:47,300 --> 00:20:51,410 Entón, sei que eu teño para reservar tres bloques de memoria e logo almacena-los. 480 00:20:51,410 --> 00:20:55,300 481 00:20:55,300 --> 00:21:01,670 >> Así, a primeira versión que pode usar se está pregunta o usuario a entrada de 482 00:21:01,670 --> 00:21:04,770 valores, de modo que pode iterado través da matriz 483 00:21:04,770 --> 00:21:07,660 e ask-- obter algún int entrada deles. 484 00:21:07,660 --> 00:21:10,500 Se sabe de antemán os valores, fai moito máis sentido 485 00:21:10,500 --> 00:21:12,110 utilizar a segunda forma. 486 00:21:12,110 --> 00:21:17,270 Pero na maioría dos casos, pode non saber que eses valores van ser. 487 00:21:17,270 --> 00:21:19,060 488 00:21:19,060 --> 00:21:19,560 Legal. 489 00:21:19,560 --> 00:21:20,393 Algunha pregunta? 490 00:21:20,393 --> 00:21:21,206 491 00:21:21,206 --> 00:21:21,705 Todo ben. 492 00:21:21,705 --> 00:21:25,960 493 00:21:25,960 --> 00:21:30,370 >> Entón, accedendo elements-- así un das grandes cousas sobre matrices 494 00:21:30,370 --> 00:21:33,310 é que son aleatorios acceso, o que significa que 495 00:21:33,310 --> 00:21:36,010 Non ten que ollar a través de cada bloque. 496 00:21:36,010 --> 00:21:38,150 Se sabe que quero o que é o bloque dous, 497 00:21:38,150 --> 00:21:40,820 pode só dicir, dáme bloquear dous. 498 00:21:40,820 --> 00:21:44,160 E é por iso que estes índices son tan importantes, 499 00:21:44,160 --> 00:21:46,220 e é así que nós realmente acceder a eles. 500 00:21:46,220 --> 00:21:50,660 Polo tanto, neste caso, como vimos antes, cando estabamos a asignación de valores, no único 501 00:21:50,660 --> 00:21:55,360 Antes, tiñamos o nome eo índice queriamos acceso, non? 502 00:21:55,360 --> 00:21:59,370 Así, do mesmo xeito, iso é todo que facer para que realmente tirar para fóra de datos. 503 00:21:59,370 --> 00:22:02,940 Temos o nome e nós ten o índice que queremos. 504 00:22:02,940 --> 00:22:06,710 >> Polo tanto, neste caso, o loop aquí en baixo, no fondo, calquera 505 00:22:06,710 --> 00:22:09,060 sabe o que está facendo, o que sería imprimir? 506 00:22:09,060 --> 00:22:13,771 507 00:22:13,771 --> 00:22:14,270 Mmhmm? 508 00:22:14,270 --> 00:22:17,790 509 00:22:17,790 --> 00:22:18,520 Exactamente. 510 00:22:18,520 --> 00:22:20,130 Entón, si, é só iterado. 511 00:22:20,130 --> 00:22:23,410 i é igual a zero-- podemos camiñar a través do código só rapidamente. 512 00:22:23,410 --> 00:22:26,680 i é igual a cero, i é menos de tres, neste punto, non? 513 00:22:26,680 --> 00:22:27,780 Así que comprobar a fóra. 514 00:22:27,780 --> 00:22:33,370 E nós dicimos: OK, impresión f o que está na temperatura i. 515 00:22:33,370 --> 00:22:37,990 i é cero aquí cando nós primeiro iteración, entón imos a este primeiro punto, 516 00:22:37,990 --> 00:22:40,840 e dicimos, OK, 65 é o número que desexa imprimir. 517 00:22:40,840 --> 00:22:43,570 Entón, que vai imprimir 65 e despois facer unha nova liña. 518 00:22:43,570 --> 00:22:46,550 i ha actualizar, polo que imprime 87. 519 00:22:46,550 --> 00:22:48,780 El actualiza de novo, e só pode imprimir 30. 520 00:22:48,780 --> 00:22:49,810 521 00:22:49,810 --> 00:22:50,630 Todos legal? 522 00:22:50,630 --> 00:22:51,630 523 00:22:51,630 --> 00:22:52,130 Impresionante. 524 00:22:52,130 --> 00:22:54,340 525 00:22:54,340 --> 00:22:54,840 >> Todo correcto. 526 00:22:54,840 --> 00:22:57,710 Entón aquí é unha especie de un cousa que eu estaba dicindo como 527 00:22:57,710 --> 00:23:00,020 pode manter o control de puntuación de alguén e por iso 528 00:23:00,020 --> 00:23:03,300 usaría o primeiro modo de arranque de 529 00:23:03,300 --> 00:23:04,890 no canto de que o segundo camiño. 530 00:23:04,890 --> 00:23:06,620 E iso só vai pasar. 531 00:23:06,620 --> 00:23:08,945 E teña en conta que temos unha clase de tamaño 30. 532 00:23:08,945 --> 00:23:10,690 533 00:23:10,690 --> 00:23:15,770 E nós estamos inicializar esta matriz de enteiros que é de tamaño 30. 534 00:23:15,770 --> 00:23:18,070 E entón nós estamos interactuar a través e estamos 535 00:23:18,070 --> 00:23:20,910 pedindo ao usuario para entrada puntuacións para cada un destes 536 00:23:20,910 --> 00:23:23,700 e, a continuación, atribuílo lo a un lugar específico na memoria 537 00:23:23,700 --> 00:23:24,860 nalgún lugar nesa matriz. 538 00:23:24,860 --> 00:23:26,700 539 00:23:26,700 --> 00:23:27,890 Legal? 540 00:23:27,890 --> 00:23:29,650 Isto ten sentido para todos? 541 00:23:29,650 --> 00:23:30,150 Mmhmm? 542 00:23:30,150 --> 00:23:32,910 543 00:23:32,910 --> 00:23:40,360 >> Entón hashtag axustar o tamaño da clase 30 é unha condición procesador directiva, 544 00:23:40,360 --> 00:23:43,780 que só significa que ten gets-- facer como o proceso de compilación. 545 00:23:43,780 --> 00:23:47,595 Pode pensar niso como unha variable global. 546 00:23:47,595 --> 00:23:49,260 547 00:23:49,260 --> 00:23:53,030 A forma como o facemos é typically-- permite que o seu código 548 00:23:53,030 --> 00:23:54,770 para ser máis facilmente modificado. 549 00:23:54,770 --> 00:23:59,480 Entón, imos dicir que o tamaño da clase de súpeto vai 30-15, 550 00:23:59,480 --> 00:24:03,930 se eu non tivese definido deste xeito, eu o faría Ten que pasar por todo o meu programa 551 00:24:03,930 --> 00:24:07,420 e cambiar cada instancia de 30-15. 552 00:24:07,420 --> 00:24:11,590 Pero con iso, eu teño que cambiar un local, e todo cambia. 553 00:24:11,590 --> 00:24:14,930 >> Se queres facer un hash definir nun caso 554 00:24:14,930 --> 00:24:19,020 onde está mantendo o control dalgúns definir o número de contas para unha clase 555 00:24:19,020 --> 00:24:23,250 ou está a usar un número que será utilizado, como, 556 00:24:23,250 --> 00:24:27,740 ao longo dun longo programa, é mellor para definir que, no inicio 557 00:24:27,740 --> 00:24:34,440 de xeito que, se algunha vez cambia, comeza para cambiar un punto no canto de 100. 558 00:24:34,440 --> 00:24:34,940 Si? 559 00:24:34,940 --> 00:24:39,830 >> ALUMNO: entre facelo e só declarando [inaudível] alí na parte superior. 560 00:24:39,830 --> 00:24:42,470 >> ALLISON Buchholtz-AU: Entón, ten que ver coa efficient-- 561 00:24:42,470 --> 00:24:45,460 é unha especie de fóra do ámbito o que podemos cubrir nesta sección. 562 00:24:45,460 --> 00:24:49,236 Ten que ver máis coa eficiencia e como as cousas realmente 563 00:24:49,236 --> 00:24:50,485 traballar no proceso de compilación. 564 00:24:50,485 --> 00:24:52,590 565 00:24:52,590 --> 00:24:55,006 Se quere realmente saber sobre iso, eu estou feliz en enviar-lle 566 00:24:55,006 --> 00:24:56,450 un correo electrónico cos recursos sobre o tema. 567 00:24:56,450 --> 00:24:57,810 568 00:24:57,810 --> 00:25:03,880 Hash definir tende a ser preferido para as cousas. 569 00:25:03,880 --> 00:25:06,380 E como codificar máis, tipo de aprender as nuances 570 00:25:06,380 --> 00:25:09,135 de cando usar un mundial contra o hash definir. 571 00:25:09,135 --> 00:25:11,010 Pero, de momento, realmente non ten 572 00:25:11,010 --> 00:25:13,290 preocuparse iso é que a resposta curta. 573 00:25:13,290 --> 00:25:15,360 574 00:25:15,360 --> 00:25:16,360 Todo o mundo ben con iso? 575 00:25:16,360 --> 00:25:18,151 E tamén, se quere para usar un hash definir, 576 00:25:18,151 --> 00:25:21,120 é realmente importante ter en conta que o nome debe ser en todos os tapóns. 577 00:25:21,120 --> 00:25:22,210 578 00:25:22,210 --> 00:25:24,674 Non estamos só facendo Clase de tamaño para ser dramático. 579 00:25:24,674 --> 00:25:26,090 El realmente debe ser en todos os tapóns. 580 00:25:26,090 --> 00:25:27,880 581 00:25:27,880 --> 00:25:28,610 Legal. 582 00:25:28,610 --> 00:25:30,130 Calquera outra cousa alí? 583 00:25:30,130 --> 00:25:31,190 Somos bos? 584 00:25:31,190 --> 00:25:32,220 Encantador. 585 00:25:32,220 --> 00:25:32,720 Benvido. 586 00:25:32,720 --> 00:25:34,240 587 00:25:34,240 --> 00:25:38,495 >> OK, entón eu quero que vostedes vexan para iso e ver se pode atopar o erro. 588 00:25:38,495 --> 00:25:45,580 589 00:25:45,580 --> 00:25:46,507 Vou che dar unha información. 590 00:25:46,507 --> 00:25:47,840 Está nalgún lugar en que loop para. 591 00:25:47,840 --> 00:25:53,070 592 00:25:53,070 --> 00:25:53,665 Mmhmm? 593 00:25:53,665 --> 00:25:55,704 >> ALUMNO: Debe ser menor ou igual a 2. 594 00:25:55,704 --> 00:25:56,920 595 00:25:56,920 --> 00:26:01,094 >> ALLISON: Así, podería ser menor ou igual a 2, ou podería ser inferior a 3. 596 00:26:01,094 --> 00:26:02,510 E o que é o razoamento para iso? 597 00:26:02,510 --> 00:26:05,135 >> Estudante: O [inaudível], 0, 1, 2. 598 00:26:05,135 --> 00:26:06,080 >> ALLISON: Exactamente. 599 00:26:06,080 --> 00:26:12,180 Así, nunha matriz de tamaño n, nós só ten índices de n menos un. 600 00:26:12,180 --> 00:26:13,700 601 00:26:13,700 --> 00:26:14,200 Legal. 602 00:26:14,200 --> 00:26:15,091 603 00:26:15,091 --> 00:26:17,840 E entón podemos estar realmente tolo e obter matrices multi-dimensional. 604 00:26:17,840 --> 00:26:19,340 605 00:26:19,340 --> 00:26:23,960 Un dos problemas cando o levei na miña arrays multi-dimensionais requiridas anos, 606 00:26:23,960 --> 00:26:28,720 e eu creo que un deles pode esixir este ano, así que sexa cómodo. 607 00:26:28,720 --> 00:26:30,140 Quentar a cabeza con iso agora. 608 00:26:30,140 --> 00:26:33,087 El vai volver a asombro ti, pero dunha forma legal. 609 00:26:33,087 --> 00:26:35,420 Entón pode realmente só penso de arrays multidimensionais 610 00:26:35,420 --> 00:26:36,870 como matrices de matrices. 611 00:26:36,870 --> 00:26:38,060 612 00:26:38,060 --> 00:26:43,809 Así, pode tipo de pensar neste top liña como a primeira peza de memoria. 613 00:26:43,809 --> 00:26:45,600 E este é o segundo anaco de memoria, 614 00:26:45,600 --> 00:26:47,570 ea última liña é o terceiro anaco de memoria. 615 00:26:47,570 --> 00:26:50,740 E dentro diso, hai unha matriz. 616 00:26:50,740 --> 00:26:53,250 Pero, por suposto, é máis fácil para describir como este. 617 00:26:53,250 --> 00:26:55,610 >> Entón arrinque-lo do mesmo xeito. 618 00:26:55,610 --> 00:26:57,290 619 00:26:57,290 --> 00:27:01,610 Este é un personaxe consello de tres por tres. 620 00:27:01,610 --> 00:27:04,180 Entón tes tres liñas e tres columnas. 621 00:27:04,180 --> 00:27:06,760 Estamos representando deste xeito. 622 00:27:06,760 --> 00:27:11,800 E acceder a ela a Igualmente, a columna por liña. 623 00:27:11,800 --> 00:27:14,840 E así 1,1 como vemos aquí. 624 00:27:14,840 --> 00:27:18,730 Nós atribuímos un cero, cero, alí enriba. 625 00:27:18,730 --> 00:27:21,900 2,0 e 0,2. 626 00:27:21,900 --> 00:27:26,900 Entón, vostede tería só que acceder eles-- se alguén xa fixo álxebra lineal, 627 00:27:26,900 --> 00:27:31,580 Do mesmo xeito que accede un elemento en un matrice, é a mesma idea aquí. 628 00:27:31,580 --> 00:27:33,030 Así, pode relacionalo la de volta á matemática. 629 00:27:33,030 --> 00:27:34,130 630 00:27:34,130 --> 00:27:36,380 Non se preocupe moito moito sobre iso agora. 631 00:27:36,380 --> 00:27:38,671 É bo ter unha exposición, para saber que pode facelo. 632 00:27:38,671 --> 00:27:42,700 Pode crear algúns tolo number-- que poida 633 00:27:42,700 --> 00:27:44,750 crear matrices tolo é todo o que eu vou dicir. 634 00:27:44,750 --> 00:27:45,250 [Inaudível] 635 00:27:45,250 --> 00:27:46,585 636 00:27:46,585 --> 00:27:48,460 El queda un pouco tolo, pero é moi legal. 637 00:27:48,460 --> 00:27:50,020 638 00:27:50,020 --> 00:27:50,670 Impresionante. 639 00:27:50,670 --> 00:27:52,550 >> E entón, polo que temos un exemplo aquí. 640 00:27:52,550 --> 00:27:54,165 El calcula unha lonxitude de corda. 641 00:27:54,165 --> 00:27:55,210 642 00:27:55,210 --> 00:27:59,670 Así como moitas persoas sabían que as cordas que está a usar 643 00:27:59,670 --> 00:28:01,265 son só un conxunto de caracteres? 644 00:28:01,265 --> 00:28:03,670 645 00:28:03,670 --> 00:28:04,655 OK, si. 646 00:28:04,655 --> 00:28:08,000 Entón vostedes poden pensar que non ten matrices usado antes, pero en calquera momento 647 00:28:08,000 --> 00:28:10,740 usa getString no Biblioteca CSView, está 648 00:28:10,740 --> 00:28:14,690 en realidade, só a pedir unha matriz de caracteres. 649 00:28:14,690 --> 00:28:17,450 E nós estamos coidando de todo que no back-end para ti. 650 00:28:17,450 --> 00:28:20,184 Pero está a usar matrices desde que comezou. 651 00:28:20,184 --> 00:28:21,350 Só non sabe diso aínda. 652 00:28:21,350 --> 00:28:22,420 653 00:28:22,420 --> 00:28:28,390 >> E sempre que ten un array de caracteres ou unha matriz que está almacenando unha cadea, 654 00:28:28,390 --> 00:28:32,050 o último que é sempre o que é chamado un terminador nulo, o que 655 00:28:32,050 --> 00:28:33,830 é este aquí. 656 00:28:33,830 --> 00:28:37,300 E que é ao final do cada palabra que está almacenando. 657 00:28:37,300 --> 00:28:41,170 Polo tanto, se queremos descubrir a lonxitude dunha cadea, podemos dicir, 658 00:28:41,170 --> 00:28:45,320 ben, xa sabe, o contido deste bloque 659 00:28:45,320 --> 00:28:46,867 non é igual ao noso terminador nulo. 660 00:28:46,867 --> 00:28:49,450 Isto significa que hai algunha personaxe alí que realmente 661 00:28:49,450 --> 00:28:51,540 se preocupan iso é parte da palabra. 662 00:28:51,540 --> 00:28:52,665 Vostede aumenta a súa lonxitude. 663 00:28:52,665 --> 00:28:55,540 E entón, cando nós realmente comezar a o final da palabra, que vai rematar 664 00:28:55,540 --> 00:28:58,790 e vai volver a nosa lonxitude para nós. 665 00:28:58,790 --> 00:29:00,098 Mmhmm? 666 00:29:00,098 --> 00:29:02,906 >> ALUMNO: Será que o espazo contan como o terminador nulo? 667 00:29:02,906 --> 00:29:04,780 ALLISON: Entón é un espazo non un terminador nulo. 668 00:29:04,780 --> 00:29:10,590 Entón se ten un espazo multiple-- é, en realidade, un valor ASCII específica. 669 00:29:10,590 --> 00:29:11,719 670 00:29:11,719 --> 00:29:13,552 Estudante: Cal é a exclamación igual de novo? 671 00:29:13,552 --> 00:29:17,080 ALLISON: Entón, iso é o que se refire. 672 00:29:17,080 --> 00:29:21,220 Se nunca me escoita en horario de oficina, Sempre chamalo, como, estrondo igual. 673 00:29:21,220 --> 00:29:23,520 Entón bang non é. 674 00:29:23,520 --> 00:29:25,370 Polo tanto, este non é igual. 675 00:29:25,370 --> 00:29:28,480 676 00:29:28,480 --> 00:29:32,290 Entón, se está a tratar de ver se algo é falso, 677 00:29:32,290 --> 00:29:35,915 vostede sabe que sempre fai, o que quere que estrondo a variable é, e se é falsa, 678 00:29:35,915 --> 00:29:38,540 que avalía a verdade e pode facer cousas legais con iso. 679 00:29:38,540 --> 00:29:39,830 680 00:29:39,830 --> 00:29:40,675 Máis sobre iso máis tarde. 681 00:29:40,675 --> 00:29:42,090 682 00:29:42,090 --> 00:29:42,590 Legal. 683 00:29:42,590 --> 00:29:44,260 Todo de bo alí? 684 00:29:44,260 --> 00:29:44,760 Impresionante. 685 00:29:44,760 --> 00:29:48,045 >> Polo tanto, agora é o tempo dos seus rapaces para traballar, xa que teño falado. 686 00:29:48,045 --> 00:29:49,220 687 00:29:49,220 --> 00:29:53,200 Entón, quero que só crear unha matriz cos números enteiros de un, dous e tres, 688 00:29:53,200 --> 00:29:54,660 e logo, telos impresos. 689 00:29:54,660 --> 00:29:58,050 Non ten que facer, como, principal, blah, blah, blah, o que sexa. 690 00:29:58,050 --> 00:30:00,840 Eu só quero que arrincar a matriz e, a continuación, crear 691 00:30:00,840 --> 00:30:04,790 un loop for para imprimir-los out-- ou un loop while, ata ti. 692 00:30:04,790 --> 00:30:07,600 >> Vou dar-lle un par minutos para traballar niso. 693 00:30:07,600 --> 00:30:09,320 Vou descansar miña voz. 694 00:30:09,320 --> 00:30:13,290 Se ten algunha dúbida, estou feliz para vir arredor e falar con vostedes. 695 00:30:13,290 --> 00:30:15,290 Sinto-se libre para falar uns cos outros. 696 00:30:15,290 --> 00:30:16,125 Obteña máis doces. 697 00:30:16,125 --> 00:30:17,181 698 00:30:17,181 --> 00:30:18,930 En realidade, eu vou andar por aí con doces. 699 00:30:18,930 --> 00:30:19,600 Como é iso? 700 00:30:19,600 --> 00:30:22,974 701 00:30:22,974 --> 00:30:23,938 >> Quere algún? 702 00:30:23,938 --> 00:30:34,703 703 00:30:34,703 --> 00:30:36,675 Calquera outra persoa nesta sala quero doces? 704 00:30:36,675 --> 00:30:47,030 705 00:30:47,030 --> 00:30:49,206 Tamén pode ter máis dun, xente. 706 00:30:49,206 --> 00:30:50,330 Tome un puñado se queres. 707 00:30:50,330 --> 00:30:52,690 708 00:30:52,690 --> 00:30:53,190 Maio tamén. 709 00:30:53,190 --> 00:30:54,929 710 00:30:54,929 --> 00:30:55,720 Todos boa persoa? 711 00:30:55,720 --> 00:30:57,561 712 00:30:57,561 --> 00:30:58,060 Está ben. 713 00:30:58,060 --> 00:31:02,750 714 00:31:02,750 --> 00:31:07,290 >> Ademais, eu estou indo a crear Google dunha forma anónima, 715 00:31:07,290 --> 00:31:09,830 e vostedes poden só enviar feedback despois de cada sección 716 00:31:09,830 --> 00:31:14,115 se hai algo que quere mellorar ou algo que quere facer. 717 00:31:14,115 --> 00:31:17,135 Se eu son un pouco enérxico para ti, podo falar máis abaixo. 718 00:31:17,135 --> 00:31:18,510 719 00:31:18,510 --> 00:31:20,885 Vou crear esa e enviar que para todos vós despois. 720 00:31:20,885 --> 00:32:39,420 721 00:32:39,420 --> 00:32:40,020 >> Todo correcto. 722 00:32:40,020 --> 00:32:41,050 Entón, imos comezar pequeno. 723 00:32:41,050 --> 00:32:42,740 Como poderiamos comezar a nosa matriz? 724 00:32:42,740 --> 00:32:49,690 725 00:32:49,690 --> 00:32:51,670 Cal é o tipo de nosa matriz? 726 00:32:51,670 --> 00:32:52,410 Un int, non? 727 00:32:52,410 --> 00:32:54,740 OK, entón o que quere para chamar a súa matriz? 728 00:32:54,740 --> 00:32:57,880 729 00:32:57,880 --> 00:32:59,230 Int matriz, legal. 730 00:32:59,230 --> 00:33:04,200 Todo ben, entón temos int int matriz é igual, eo que temos despois diso? 731 00:33:04,200 --> 00:33:07,009 732 00:33:07,009 --> 00:33:08,259 Estudante: [inaudível] corchetes. 733 00:33:08,259 --> 00:33:09,140 ALLISON: Cintas. 734 00:33:09,140 --> 00:33:10,330 735 00:33:10,330 --> 00:33:11,775 E entón, dentro das claves? 736 00:33:11,775 --> 00:33:14,360 737 00:33:14,360 --> 00:33:16,830 Comas dous comas tres. 738 00:33:16,830 --> 00:33:17,330 Legal. 739 00:33:17,330 --> 00:33:18,660 Entón está todo ben. 740 00:33:18,660 --> 00:33:21,480 Polo tanto, agora temos o noso loop for. 741 00:33:21,480 --> 00:33:24,180 Así, na primeira parte do noso loop for, o que temos? 742 00:33:24,180 --> 00:33:25,796 743 00:33:25,796 --> 00:33:27,420 >> ALUMNO: i é igual a 0? 744 00:33:27,420 --> 00:33:31,400 >> ALLISON: Entón int i é igual a 0, e entón o que é a nosa condición? 745 00:33:31,400 --> 00:33:33,750 746 00:33:33,750 --> 00:33:36,120 O que me vai ser menos que? 747 00:33:36,120 --> 00:33:39,510 Menos de tres anos, e como nós imos actualizar i? 748 00:33:39,510 --> 00:33:41,630 i plus plus, actualizar-o por un. 749 00:33:41,630 --> 00:33:46,150 E entón nós imos ter algúns printf do número enteiro, 750 00:33:46,150 --> 00:33:49,530 eo que é que a última parte que é realmente 751 00:33:49,530 --> 00:33:51,370 vai dicir o que debe ser a impresión? 752 00:33:51,370 --> 00:33:55,610 753 00:33:55,610 --> 00:33:59,120 Sería o nome do array, que é int array, non? 754 00:33:59,120 --> 00:34:01,090 E o que é nos soportes de int array? 755 00:34:01,090 --> 00:34:02,540 756 00:34:02,540 --> 00:34:03,640 Eu. 757 00:34:03,640 --> 00:34:06,550 [? Entón eu?] Chamou meu exemplo, pero aí vai. 758 00:34:06,550 --> 00:34:07,939 759 00:34:07,939 --> 00:34:08,480 Non é tan malo. 760 00:34:08,480 --> 00:34:09,250 Todo o mundo bo? 761 00:34:09,250 --> 00:34:10,220 762 00:34:10,220 --> 00:34:10,719 Legal. 763 00:34:10,719 --> 00:34:12,949 764 00:34:12,949 --> 00:34:14,340 >> Así, estamos a facer coas matrices. 765 00:34:14,340 --> 00:34:15,190 Parabéns. 766 00:34:15,190 --> 00:34:18,274 Vostede conseguiu iteración a través de todos as-- si? 767 00:34:18,274 --> 00:34:19,705 >> Estudante: [inaudível] 768 00:34:19,705 --> 00:34:20,659 >> ALLISON: Si. 769 00:34:20,659 --> 00:34:26,383 770 00:34:26,383 --> 00:34:27,798 >> ALUMNO: Eu teño unha pregunta. 771 00:34:27,798 --> 00:34:30,288 Debería recuar as claves? 772 00:34:30,288 --> 00:34:34,150 >> ALLISON: Entón as claves deben aliñar co loop for, e entón todo 773 00:34:34,150 --> 00:34:35,699 dentro das claves debe ser recuado. 774 00:34:35,699 --> 00:34:37,824 >> ALUMNO: OK, se o loop ser recuado? 775 00:34:37,824 --> 00:34:41,159 >> ALLISON: O lazo non ten que ser recuado neste punto. 776 00:34:41,159 --> 00:34:46,750 Se estivese no inicio, se nós realmente tiña unha función principal aquí, 777 00:34:46,750 --> 00:34:48,929 sería recuado da principal. 778 00:34:48,929 --> 00:34:52,590 Pero, neste caso, está todo ben. 779 00:34:52,590 --> 00:34:53,354 Si, pregunta. 780 00:34:53,354 --> 00:34:55,687 >> ALUMNO: Debe ter os corchetes tras exemplo? 781 00:34:55,687 --> 00:34:59,050 782 00:34:59,050 --> 00:35:01,260 >> ALLISON: Si, se está inicializar lo desa forma. 783 00:35:01,260 --> 00:35:03,430 784 00:35:03,430 --> 00:35:06,860 Entón lembre, este é o segundo xeito de arrincar un array onde 785 00:35:06,860 --> 00:35:10,680 temos as claves e, a continuación, o noso real datos separados por comas dentro. 786 00:35:10,680 --> 00:35:14,700 787 00:35:14,700 --> 00:35:17,281 >> ESTUDANTE: Eu penso que había soportes para este exemplo. 788 00:35:17,281 --> 00:35:19,010 >> ALLISON: Non, son claves. 789 00:35:19,010 --> 00:35:20,039 Son claves. 790 00:35:20,039 --> 00:35:22,330 Se está inicializar lo que a segunda forma, é tirantes. 791 00:35:22,330 --> 00:35:28,780 Se fósemos dicir, int example-- se nós só queriamos unha matriz en branco para ints, 792 00:35:28,780 --> 00:35:32,270 sería exemplo int tres soportes. 793 00:35:32,270 --> 00:35:34,670 Os parénteses representan o tamaño. 794 00:35:34,670 --> 00:35:36,720 Cando ten chaves, é os datos reais 795 00:35:36,720 --> 00:35:39,244 está poñendo nela dese xeito. 796 00:35:39,244 --> 00:35:40,535 Podemos rolar cara atrás moi rápido. 797 00:35:40,535 --> 00:35:42,370 798 00:35:42,370 --> 00:35:48,010 >> Entón, nun presente, esta é só a nosa matriz de inicio, o arranque. 799 00:35:48,010 --> 00:35:51,640 E aquí, somos individualmente asignación de puntos para eles, 800 00:35:51,640 --> 00:35:56,730 de xeito que este representa o índice do noso array, que é por iso que temos soportes. 801 00:35:56,730 --> 00:36:01,630 Pero aquí, se observar, temos deixou nosos soportes sen tamaño, 802 00:36:01,630 --> 00:36:05,969 e Inicialize-o co datos reais todo-en-un con tirantes. 803 00:36:05,969 --> 00:36:08,260 Estudante: Entón por que non temos corchetes neste exemplo? 804 00:36:08,260 --> 00:36:11,030 ALLISON: Entón, en que parte? 805 00:36:11,030 --> 00:36:14,645 Estudante: non iríamos digamos, exemplo int soportes 806 00:36:14,645 --> 00:36:19,710 é igual claves [inaudível] corchetes, por exemplo. 807 00:36:19,710 --> 00:36:20,900 >> ALLISON: Oh, desculpe. 808 00:36:20,900 --> 00:36:21,560 Está certo. 809 00:36:21,560 --> 00:36:22,690 Temos soportes alí. 810 00:36:22,690 --> 00:36:23,486 Sorry guys, meu mal. 811 00:36:23,486 --> 00:36:25,150 812 00:36:25,150 --> 00:36:27,560 Si, ten que ter entre parénteses despois exemplo. 813 00:36:27,560 --> 00:36:28,850 Está absolutamente seguro. 814 00:36:28,850 --> 00:36:29,750 >> Estudante: [inaudível] non facelo. 815 00:36:29,750 --> 00:36:31,270 >> ALLISON: Non, ten que ter soportes, porque se non, é 816 00:36:31,270 --> 00:36:32,810 non vai declarar unha matriz. 817 00:36:32,810 --> 00:36:33,685 Estudante: [inaudível]. 818 00:36:33,685 --> 00:36:34,200 Sentímolo por iso. 819 00:36:34,200 --> 00:36:36,200 >> ALLISON: Sentímolo, pero ten que entre parénteses despois exemplo. 820 00:36:36,200 --> 00:36:36,620 821 00:36:36,620 --> 00:36:37,120 Typo. 822 00:36:37,120 --> 00:36:40,650 823 00:36:40,650 --> 00:36:43,160 Boa captura, estrela do ouro para ti. 824 00:36:43,160 --> 00:36:47,730 Ademais, se está facendo unha pregunta, se vostedes só iría me dicir os seus nomes, 825 00:36:47,730 --> 00:36:48,570 Encantaríame iso. 826 00:36:48,570 --> 00:36:50,630 Encantaríame poder coñecer os seus nomes. 827 00:36:50,630 --> 00:36:53,187 Non estou indo ao frío chamalo, realmente 828 00:36:53,187 --> 00:36:54,520 quero só saber os seus nomes. 829 00:36:54,520 --> 00:36:57,530 Entón, por favor, de feito, me diga os seus nomes. 830 00:36:57,530 --> 00:36:58,426 >> Leah: Leah. 831 00:36:58,426 --> 00:36:59,340 >> ALLISON: Leah. 832 00:36:59,340 --> 00:37:03,960 OK, entón eu sei funcións no pasado en breve eles falaron sobre iso durante a charla. 833 00:37:03,960 --> 00:37:07,590 Así, as funcións son unha especie de só como esas cousas pequenas do tamaño da mordida 834 00:37:07,590 --> 00:37:11,525 onde pasar en insumos, algo máxico pasa, e terá saídas. 835 00:37:11,525 --> 00:37:12,680 836 00:37:12,680 --> 00:37:13,180 Legal. 837 00:37:13,180 --> 00:37:15,013 Entón realmente usado un Moitos destes xa. 838 00:37:15,013 --> 00:37:15,970 839 00:37:15,970 --> 00:37:18,840 Obter int, obter corda, impresión f. 840 00:37:18,840 --> 00:37:21,790 Estas son todas as funcións onde acaba de chamalos, 841 00:37:21,790 --> 00:37:24,370 hai moitas cousas máxicas pasando no fondo 842 00:37:24,370 --> 00:37:27,390 que non necesariamente ver, e terá o que quere. 843 00:37:27,390 --> 00:37:30,280 Ou polo menos comeza o que espera que quere. 844 00:37:30,280 --> 00:37:31,920 845 00:37:31,920 --> 00:37:35,620 >> E, basicamente, o punto de funcións, e un dos principais temas do CS, 846 00:37:35,620 --> 00:37:38,700 é romper o seu código en partes gerenciáveis. 847 00:37:38,700 --> 00:37:41,520 Cando comezar a escribir estes programas moi longos, 848 00:37:41,520 --> 00:37:44,970 ou en risco cando tiña esta gran idea para un xogo, 849 00:37:44,970 --> 00:37:48,070 ten que ser capaz de rompe-lo abaixo, como, OK, como fago para comezar? 850 00:37:48,070 --> 00:37:50,470 Cales son as pequenas pezas que eu teño? 851 00:37:50,470 --> 00:37:53,320 Oh, eu teño preguntar a usuario para algo. 852 00:37:53,320 --> 00:37:54,830 Agora eu teño imprimir algo. 853 00:37:54,830 --> 00:37:56,590 Oh, eu teño calcular este valor. 854 00:37:56,590 --> 00:38:00,050 >> E aprender a romper o seu código e os grandes problemas que 855 00:38:00,050 --> 00:38:02,740 ter para estes pequenos anacos e creación de funcións 856 00:38:02,740 --> 00:38:05,330 é, en realidade, un dos grandes piares da CS. 857 00:38:05,330 --> 00:38:06,440 858 00:38:06,440 --> 00:38:11,740 Así, pode pensar nunha función tan como unha caixa negra, unha caixa negra máxica, 859 00:38:11,740 --> 00:38:15,030 que poñer as cousas en e terá algunha saída. 860 00:38:15,030 --> 00:38:16,290 861 00:38:16,290 --> 00:38:19,460 E o resto do programa Non precisa saber necesariamente 862 00:38:19,460 --> 00:38:21,150 o que está a suceder dentro desa caixa negra. 863 00:38:21,150 --> 00:38:24,190 Todo o que interesa é o que entra eo que sae. 864 00:38:24,190 --> 00:38:26,230 865 00:38:26,230 --> 00:38:26,730 Legal. 866 00:38:26,730 --> 00:38:27,820 >> Entón, por que funciona? 867 00:38:27,820 --> 00:38:33,240 Organization-- como dixen, cando está xestionar grandes bases de código, 868 00:38:33,240 --> 00:38:37,357 como organiza o seu código será moito máis fácil se usa funcións. 869 00:38:37,357 --> 00:38:39,190 Porque vai ser capaz ser, como, OK iso, 870 00:38:39,190 --> 00:38:41,849 é o que esta función fai e aquí está o que outro fai. 871 00:38:41,849 --> 00:38:43,890 E pode facilmente ver como todos eles se encaixan. 872 00:38:43,890 --> 00:38:45,590 873 00:38:45,590 --> 00:38:48,210 Entón, dividíndoo en todo esas subpartes gerenciáveis. 874 00:38:48,210 --> 00:38:51,860 >> Entón simplification-- eu estou seguro que vostedes todos viron iso, como dixen, co Scratch. 875 00:38:51,860 --> 00:38:53,230 876 00:38:53,230 --> 00:38:56,790 Ten esa gran idea, e vostede é como, como é que todo este traballo? 877 00:38:56,790 --> 00:38:59,710 Pero se se achega a el fragmentada, dis, OK, 878 00:38:59,710 --> 00:39:03,650 como fago un duende flotan pola pantalla? 879 00:39:03,650 --> 00:39:04,805 Isto é un pouco máis fácil. 880 00:39:04,805 --> 00:39:06,000 881 00:39:06,000 --> 00:39:09,590 Entón, bo uso da función marcas seu código moito máis fácil de ler. 882 00:39:09,590 --> 00:39:13,800 Ela fai máis doado de depurar que como entrar nos seus conxuntos de problemas posteriores, 883 00:39:13,800 --> 00:39:15,900 vai realmente quere ser capaz de facer. 884 00:39:15,900 --> 00:39:17,900 E son tamén máis fácil para proxectar e implementar. 885 00:39:17,900 --> 00:39:21,100 Pode codificar-se unha pequena funcionar de xeito relativamente rápido 886 00:39:21,100 --> 00:39:25,260 e que seguro que traballa contra a tentar para crear todo este programa de longo 887 00:39:25,260 --> 00:39:28,960 e, a continuación, tipo de percorrer e ver o que funciona eo que non é. 888 00:39:28,960 --> 00:39:30,300 >> E, a continuación, a capacidade de reutilización. 889 00:39:30,300 --> 00:39:33,380 Entón funcións só precisa para ser escritos unha vez máis, 890 00:39:33,380 --> 00:39:35,586 e entón pode usalos tantas veces como sexa posible. 891 00:39:35,586 --> 00:39:37,210 Entón, é, así, nun sentido ecolóxico. 892 00:39:37,210 --> 00:39:39,660 893 00:39:39,660 --> 00:39:42,070 Se tivese cousas como impresión f, onde 894 00:39:42,070 --> 00:39:47,420 tiña que escribir a maxia que vai detrás de imprimir f cada vez 895 00:39:47,420 --> 00:39:51,040 quería imprimir algo, sería moi enfermo e canso del 896 00:39:51,040 --> 00:39:51,650 ata o final. 897 00:39:51,650 --> 00:39:52,660 898 00:39:52,660 --> 00:39:55,292 >> Unha das cousas que vai aprender en clases posteriores CS, 899 00:39:55,292 --> 00:39:57,000 ou un dos mellores consellos que recibín 900 00:39:57,000 --> 00:40:00,870 é, se está copiando e colando código, probablemente debe ser unha función. 901 00:40:00,870 --> 00:40:01,880 902 00:40:01,880 --> 00:40:06,007 Se ten exactamente o mesmo todas as liñas en todo o seu código, 903 00:40:06,007 --> 00:40:08,090 se consignado los para fóra, seu código sería probablemente 904 00:40:08,090 --> 00:40:11,860 ser, tipo, cinco veces máis curtos e ser moito máis fácil de ler. 905 00:40:11,860 --> 00:40:15,230 E, no canto de tentar resolver todos eses lugares diferentes onde as cousas 906 00:40:15,230 --> 00:40:18,021 pode dar mal, ten unha función que comeza a solucionar. 907 00:40:18,021 --> 00:40:19,230 908 00:40:19,230 --> 00:40:21,890 E eu prometer, unha morea de presente Pode parecer tipo de abstracto agora, 909 00:40:21,890 --> 00:40:24,620 pero como entrar máis tarde e problema máis tarde define, 910 00:40:24,620 --> 00:40:28,950 vai facer moito máis sentido e realmente ser levado a casa. 911 00:40:28,950 --> 00:40:31,775 Hai algunha pregunta sobre as funcións ata agora? 912 00:40:31,775 --> 00:40:32,650 Por que estamos utilizando-os? 913 00:40:32,650 --> 00:40:34,775 Sei que non obtivesen na cerna da cuestión aínda. 914 00:40:34,775 --> 00:40:40,610 Así, a definición dunha function-- como matrices, necesitamos algún tipo de-- este 915 00:40:40,610 --> 00:40:41,860 é só a saída xeral. 916 00:40:41,860 --> 00:40:45,110 Polo tanto, esta é unha función que é só vai cubo algunha entrada. 917 00:40:45,110 --> 00:40:50,120 E na seguinte páxina, en realidade, temos todos estes impresionantes pequenas cousas aquí. 918 00:40:50,120 --> 00:40:52,420 Así, todos poden ler que, por curiosidade? 919 00:40:52,420 --> 00:40:55,050 Sei que o vermello e negro pode ser un pouco difícil. 920 00:40:55,050 --> 00:41:00,730 >> Pero as cousas grandes para sabe-- así a primeira un aquí é o noso tipo de retorno. 921 00:41:00,730 --> 00:41:05,270 Polo tanto, este é falar da saída desta función cando, neste caso, 922 00:41:05,270 --> 00:41:08,990 que poñer en algún número, o que estamos recibir é que este número ao cubo. 923 00:41:08,990 --> 00:41:11,090 Por iso, debe ser un int neste caso. 924 00:41:11,090 --> 00:41:14,055 Quizais sería unha dobre ou algo máis tarde, pero, neste caso, 925 00:41:14,055 --> 00:41:14,555 é un int. 926 00:41:14,555 --> 00:41:15,620 927 00:41:15,620 --> 00:41:19,440 >> Con c, sempre ten que un tipo de retorno. 928 00:41:19,440 --> 00:41:20,267 Vai ser un int. 929 00:41:20,267 --> 00:41:20,975 Será un float. 930 00:41:20,975 --> 00:41:22,180 Vai ser un matrimonio. 931 00:41:22,180 --> 00:41:25,370 Pero ten que especificar o que esta función vai voltar. 932 00:41:25,370 --> 00:41:26,480 933 00:41:26,480 --> 00:41:29,170 Se non, vai berrar con ti, e que non pode compilar. 934 00:41:29,170 --> 00:41:30,462 Vai estar triste, e eu vou estar triste. 935 00:41:30,462 --> 00:41:31,420 E non é só bo. 936 00:41:31,420 --> 00:41:31,940 Está ben. 937 00:41:31,940 --> 00:41:34,290 >> E entón temos o noso nome da función. 938 00:41:34,290 --> 00:41:38,440 E como podes ver aquí, con c hai ese paradigma moi consistente. 939 00:41:38,440 --> 00:41:42,630 Cal é o seu tipo, cal é o nome, e entón algunha outra cousa ao final. 940 00:41:42,630 --> 00:41:45,550 Entón, nós temos o noso tipo de retorno, o noso nome da función, e logo 941 00:41:45,550 --> 00:41:49,320 temos o noso cabeceira con nosa lista de parámetros. 942 00:41:49,320 --> 00:41:52,080 >> Así, a lista de parámetros é, o que é esta función vai levar en? 943 00:41:52,080 --> 00:41:56,360 A lista de parámetros é simplemente un sinónimo de, cales son as nosas entradas? 944 00:41:56,360 --> 00:42:00,230 E, do mesmo xeito que nós Ten que definir a nosa función 945 00:42:00,230 --> 00:42:03,210 e darlle unha volta escribe, cada un dos nosos insumos 946 00:42:03,210 --> 00:42:05,350 precisa ter un tipo asociado a el. 947 00:42:05,350 --> 00:42:08,850 Entón, nós sabemos que a nosa función Pode realmente traballar. 948 00:42:08,850 --> 00:42:11,290 >> Polo tanto, neste caso, temos algunha entrada int. 949 00:42:11,290 --> 00:42:14,660 Entón, de novo, que vai ser do tipo eo que está chamando. 950 00:42:14,660 --> 00:42:16,500 951 00:42:16,500 --> 00:42:19,040 E entón, como ve aquí temos o noso corpo. 952 00:42:19,040 --> 00:42:23,600 Polo tanto, temos algunha saída int, que é só a nosa propia entrada veces 953 00:42:23,600 --> 00:42:25,810 si veces, que só cubos lo. 954 00:42:25,810 --> 00:42:27,610 E entón volvemos esa saída. 955 00:42:27,610 --> 00:42:32,140 >> Entón, como ve aquí, temos un int veces un int veces un int, 956 00:42:32,140 --> 00:42:35,420 así el retorna un enteiro, que foi declarada alí. 957 00:42:35,420 --> 00:42:38,240 Entón, todo é ções. 958 00:42:38,240 --> 00:42:39,210 Todo está feliz. 959 00:42:39,210 --> 00:42:40,250 A súa función será executada. 960 00:42:40,250 --> 00:42:41,192 961 00:42:41,192 --> 00:42:42,650 E esta é só a cousa xeral. 962 00:42:42,650 --> 00:42:46,750 Entón, sempre ten tipo de retorno, nome, ea súa lista de parámetros. 963 00:42:46,750 --> 00:42:48,830 Cada cousa no seu lista de parámetros, ou de entrada, 964 00:42:48,830 --> 00:42:51,410 precisa ter un tipo asociado a el. 965 00:42:51,410 --> 00:42:54,210 E entón ten o seu corpo aquí co que 966 00:42:54,210 --> 00:42:55,590 quere facer coa súa entrada. 967 00:42:55,590 --> 00:42:57,390 968 00:42:57,390 --> 00:43:00,410 >> E entón, obviamente, ten quere voltar algo. 969 00:43:00,410 --> 00:43:02,630 Ás veces funciona só vai volver. 970 00:43:02,630 --> 00:43:06,090 Eles realmente non volver algo para usar. 971 00:43:06,090 --> 00:43:08,660 Pero ten que volver de algunha maneira. 972 00:43:08,660 --> 00:43:12,900 E cando está facendo súas propias funcións, 973 00:43:12,900 --> 00:43:15,430 podemos entrar niso algo máis profundo. 974 00:43:15,430 --> 00:43:18,880 Persoalmente, se quere, hai un gran número de cousas distintas que podes facer alí. 975 00:43:18,880 --> 00:43:21,350 976 00:43:21,350 --> 00:43:22,140 Todo o mundo bo? 977 00:43:22,140 --> 00:43:25,900 Calquera cousa nesta lista que me quere para pasar por encima, que non entendeu? 978 00:43:25,900 --> 00:43:27,204 979 00:43:27,204 --> 00:43:28,120 Todo o mundo é bo alí? 980 00:43:28,120 --> 00:43:29,071 981 00:43:29,071 --> 00:43:29,570 Legal. 982 00:43:29,570 --> 00:43:31,350 983 00:43:31,350 --> 00:43:32,120 Impresionante. 984 00:43:32,120 --> 00:43:34,700 >> OK, entón nós estamos poñendo todo iso xunto agora. 985 00:43:34,700 --> 00:43:35,720 986 00:43:35,720 --> 00:43:41,201 Polo tanto, temos algunha entrada int cubo, tan este é un programa completo aquí. 987 00:43:41,201 --> 00:43:42,950 Ata agora, eu teño tipo de dato ten 988 00:43:42,950 --> 00:43:45,699 snippets homes que poidan estar a suceder dentro dun programa. 989 00:43:45,699 --> 00:43:47,240 Estivemos só mirando para as funcións. 990 00:43:47,240 --> 00:43:48,448 Pero aquí está un programa enteiro. 991 00:43:48,448 --> 00:43:49,400 992 00:43:49,400 --> 00:43:53,690 Así como moitos de vostedes se lembran do prototipo palabra da charla? 993 00:43:53,690 --> 00:43:54,750 994 00:43:54,750 --> 00:43:55,300 Legal. 995 00:43:55,300 --> 00:43:55,890 Temos un. 996 00:43:55,890 --> 00:43:57,160 997 00:43:57,160 --> 00:43:58,110 Cal é o seu nome? 998 00:43:58,110 --> 00:43:58,850 >> Steph: Steph. 999 00:43:58,850 --> 00:43:59,475 >> ALLISON: Steph? 1000 00:43:59,475 --> 00:44:01,030 OK, impresionante. 1001 00:44:01,030 --> 00:44:03,310 Entón, se lembra o que é un prototipo? 1002 00:44:03,310 --> 00:44:04,651 1003 00:44:04,651 --> 00:44:10,230 >> ALUMNO: Vostede di que [inaudível] antes de que realmente tratar con isto. 1004 00:44:10,230 --> 00:44:11,700 >> ALLISON: Vostede recorda por que? 1005 00:44:11,700 --> 00:44:13,158 >> Estudante: Non. 1006 00:44:13,158 --> 00:44:14,620 >> ALLISON: Aceptar. 1007 00:44:14,620 --> 00:44:16,090 Estrela do ouro. 1008 00:44:16,090 --> 00:44:19,470 Entón, si, un prototipo que temos de antemán, porque, se non, 1009 00:44:19,470 --> 00:44:21,260 noso compilador vai berrar para nós. 1010 00:44:21,260 --> 00:44:24,294 El vai dicir, OK, o que é esa función de cubo? 1011 00:44:24,294 --> 00:44:26,460 Tipo, ten literalmente non me dixo nada sobre iso. 1012 00:44:26,460 --> 00:44:28,110 É como cando entrar nunha aula, 1013 00:44:28,110 --> 00:44:29,320 e alguén é como, hai un quiz hoxe. 1014 00:44:29,320 --> 00:44:31,380 E vostede é como, vostede nunca me falou sobre iso. 1015 00:44:31,380 --> 00:44:32,930 Non estou feliz coa xente. 1016 00:44:32,930 --> 00:44:34,300 1017 00:44:34,300 --> 00:44:37,020 O prototipo é basicamente como seu programa dicindo, mira. 1018 00:44:37,020 --> 00:44:37,900 Cabeza cara arriba. 1019 00:44:37,900 --> 00:44:39,570 Non vai ser un quiz sobre o día de hoxe. 1020 00:44:39,570 --> 00:44:41,420 Non se desespere cando chegar a el. 1021 00:44:41,420 --> 00:44:42,690 Vai estar ben. 1022 00:44:42,690 --> 00:44:48,170 >> Polo tanto, todo o prototipo fai é dicir principal, eu vou usar esta función. 1023 00:44:48,170 --> 00:44:51,010 Eu prometer que vou definir iso máis tarde. 1024 00:44:51,010 --> 00:44:52,260 Non se desespere para min. 1025 00:44:52,260 --> 00:44:54,750 Só compilar e facer o que eu digo para ti. 1026 00:44:54,750 --> 00:44:58,880 Polo tanto, temos o prototipo alí só para facer o noso compilador feliz. 1027 00:44:58,880 --> 00:45:04,360 E é basicamente unha promesa que marcou esa función máis tarde 1028 00:45:04,360 --> 00:45:07,960 e que non está só chamando esa cousa aleatoria que 1029 00:45:07,960 --> 00:45:10,070 non sabe o que está a estará facendo. 1030 00:45:10,070 --> 00:45:11,910 >> Polo tanto, neste caso, temos principal aquí. 1031 00:45:11,910 --> 00:45:14,660 Nós arrincar algún enteiro x. 1032 00:45:14,660 --> 00:45:15,620 Isto é dous. 1033 00:45:15,620 --> 00:45:17,510 Estamos indo para imprimir o que é x. 1034 00:45:17,510 --> 00:45:18,800 Nós imos cubo x. 1035 00:45:18,800 --> 00:45:21,520 Como verás, temos a nosa declaración da función 1036 00:45:21,520 --> 00:45:23,770 aquí que nós falou anteriormente. 1037 00:45:23,770 --> 00:45:28,260 Vai cubo x, e, a continuación, se Teña en conta que, a función de cubo, de feito, 1038 00:45:28,260 --> 00:45:31,340 retorna un enteiro para nós, que é almacenado 1039 00:45:31,340 --> 00:45:35,860 en x novo para que poidamos imprimir fóra oito, ou cubo x agora. 1040 00:45:35,860 --> 00:45:37,170 1041 00:45:37,170 --> 00:45:38,920 Isto ten sentido para todos? 1042 00:45:38,920 --> 00:45:40,360 Somos bos? 1043 00:45:40,360 --> 00:45:41,160 Todo correcto. 1044 00:45:41,160 --> 00:45:41,660 Impresionante. 1045 00:45:41,660 --> 00:45:45,540 1046 00:45:45,540 --> 00:45:46,840 >> Todo correcto. 1047 00:45:46,840 --> 00:45:50,879 Cantos de vós Teña en conta que este de xeito que este 1048 00:45:50,879 --> 00:45:52,670 é basicamente só o seu pila eo seu chea, 1049 00:45:52,670 --> 00:45:56,510 só unha vista de como a memoria é grabada aquí. 1050 00:45:56,510 --> 00:45:58,200 1051 00:45:58,200 --> 00:46:01,400 Entón, nós só queremos facer Asegúrese de que entenda 1052 00:46:01,400 --> 00:46:03,680 como estas están representados na memoria. 1053 00:46:03,680 --> 00:46:07,670 Se tomar clases de como CS61 e outras cousas máis tarde, 1054 00:46:07,670 --> 00:46:10,570 comeza a aprender iso moito máis en profundidade, e é moi legal. 1055 00:46:10,570 --> 00:46:11,730 Recomendo fortemente. 1056 00:46:11,730 --> 00:46:12,740 1057 00:46:12,740 --> 00:46:14,720 Pero, por agora, eu vou dar a visión ampla 1058 00:46:14,720 --> 00:46:16,950 así que non ten que coñecer o cerna da cuestión. 1059 00:46:16,950 --> 00:46:20,820 >> Así, a parte superior só un segmento de texto que contén os ceros e uns reais, 1060 00:46:20,820 --> 00:46:23,740 o binario para iso. 1061 00:46:23,740 --> 00:46:27,510 E este é usado para almacenar variables globais, se ten algún. 1062 00:46:27,510 --> 00:46:28,870 1063 00:46:28,870 --> 00:46:32,240 Como se move cara abaixo, nós ten, como ve aquí, 1064 00:46:32,240 --> 00:46:34,670 datos inicializados, non inicializar datos, e despois heap. 1065 00:46:34,670 --> 00:46:35,800 1066 00:46:35,800 --> 00:46:38,584 >> Entón, nós realmente non falar sobre a pila agora. 1067 00:46:38,584 --> 00:46:39,500 Nós imos chegar a iso máis tarde. 1068 00:46:39,500 --> 00:46:40,762 1069 00:46:40,762 --> 00:46:42,970 De momento, eu estou indo só para onda as mans e ser como, 1070 00:46:42,970 --> 00:46:44,553 non precisa saber sobre iso agora. 1071 00:46:44,553 --> 00:46:46,100 1072 00:46:46,100 --> 00:46:49,060 Pero imos falar un pouco pouco sobre a pila. 1073 00:46:49,060 --> 00:46:53,050 Así, a pila é where-- temos zoom in. 1074 00:46:53,050 --> 00:46:58,590 É dicir, en realidade, como o programa nós só mirou ocorre na memoria. 1075 00:46:58,590 --> 00:47:01,630 >> Entón o que ocorre é que, cada xa que chamar a unha función, 1076 00:47:01,630 --> 00:47:04,180 temos o que se chama unha pila armazón, que é un destes. 1077 00:47:04,180 --> 00:47:05,870 Entón parámetros de principais. 1078 00:47:05,870 --> 00:47:07,944 Entón, estas son as cousas que pasamos a principal. 1079 00:47:07,944 --> 00:47:11,110 Entón, eles están aquí na parte inferior, porque esa é a primeira cousa que chamamos. 1080 00:47:11,110 --> 00:47:13,401 E entón chegamos ao inicio da locals, e cando dicimos que, 1081 00:47:13,401 --> 00:47:15,970 queremos dicir as variables locais que son almacenados dentro principal. 1082 00:47:15,970 --> 00:47:19,950 1083 00:47:19,950 --> 00:47:23,620 Entón veciños aquí sería, como, x é igual a dous no caso presente. 1084 00:47:23,620 --> 00:47:26,350 Por que está situada a principal. 1085 00:47:26,350 --> 00:47:29,745 Será que todo o mundo se lembra ámbito, pasando por riba que na charla? 1086 00:47:29,745 --> 00:47:31,517 1087 00:47:31,517 --> 00:47:32,017 Está ben. 1088 00:47:32,017 --> 00:47:36,110 Así, só as variables que son inicializados dentro principal. 1089 00:47:36,110 --> 00:47:38,550 Entón é por iso que temos principal [? vocals. ?] 1090 00:47:38,550 --> 00:47:40,390 >> E, a continuación, dentro principal, que chamamos cubo. 1091 00:47:40,390 --> 00:47:41,000 Non? 1092 00:47:41,000 --> 00:47:44,510 Entón, nós temos outro cadro cos parámetros do cubo. 1093 00:47:44,510 --> 00:47:47,050 Polo tanto, neste caso, o cubo de parámetros son agora 1094 00:47:47,050 --> 00:47:50,800 o x que pasamos en, os dous que temos pasado. 1095 00:47:50,800 --> 00:47:55,320 E entón, os veciños do cubo, que é onde a cubagem real ocorre. 1096 00:47:55,320 --> 00:47:56,450 E despois el volve. 1097 00:47:56,450 --> 00:48:02,120 >> Entón, o que pasa é como cubo realmente fai o que se quere facer, el retorna. 1098 00:48:02,120 --> 00:48:07,020 Cando volve, este cadro deixa, e súa retornou ata principal. 1099 00:48:07,020 --> 00:48:09,160 E, a continuación, dentro principal, nós realmente pode imprimir lo. 1100 00:48:09,160 --> 00:48:10,840 1101 00:48:10,840 --> 00:48:14,500 Entón, cando está retornando algo, cando a función retorna, 1102 00:48:14,500 --> 00:48:19,900 é como pasar eses valores para o cadro de abaixo e, a continuación, saír. 1103 00:48:19,900 --> 00:48:22,200 E as cousas teñen que realizar en orde. 1104 00:48:22,200 --> 00:48:25,550 >> E cando comeza a programas grandes, podemos facer máis frío e máis complicado 1105 00:48:25,550 --> 00:48:26,470 diagramas. 1106 00:48:26,470 --> 00:48:29,070 Pero, por agora, este é só unha visión xeral 1107 00:48:29,070 --> 00:48:31,110 entón tes unha especie de comprensión do que 1108 00:48:31,110 --> 00:48:35,160 acontece cando está chamando unha función e como isto realmente parece na memoria. 1109 00:48:35,160 --> 00:48:37,230 1110 00:48:37,230 --> 00:48:37,770 Legal? 1111 00:48:37,770 --> 00:48:38,353 Todo o mundo bo? 1112 00:48:38,353 --> 00:48:39,920 1113 00:48:39,920 --> 00:48:40,420 Impresionante. 1114 00:48:40,420 --> 00:48:42,070 1115 00:48:42,070 --> 00:48:50,575 >> Polo tanto, este é o que está só tentando cambiar cousas. 1116 00:48:50,575 --> 00:48:52,260 1117 00:48:52,260 --> 00:48:54,930 Como podemos ver aquí, temos noso prototipo da función 1118 00:48:54,930 --> 00:48:56,900 para que o noso compilador non berrar con xente. 1119 00:48:56,900 --> 00:48:59,220 Temos algúns principal, e nós quero cambiar xe y. 1120 00:48:59,220 --> 00:49:00,320 1121 00:49:00,320 --> 00:49:04,129 Eles non fixeron esta demo en charla, con todo, teñen eles? 1122 00:49:04,129 --> 00:49:04,670 Eles non teñen? 1123 00:49:04,670 --> 00:49:05,900 Está ben. 1124 00:49:05,900 --> 00:49:08,450 Entón, nós estamos indo a ir sobre este, moi brevemente. 1125 00:49:08,450 --> 00:49:12,210 Vai chegar a este exemplo máis en profundidade, penso eu, esta semana. 1126 00:49:12,210 --> 00:49:15,680 E, a continuación, a próxima semana podemos realmente mergullo por que isto non funciona. 1127 00:49:15,680 --> 00:49:18,810 >> Entón temos ese baleiro función aqui-- intercambio. 1128 00:49:18,810 --> 00:49:20,720 Entón baleiro significa só que nada é de retorno. 1129 00:49:20,720 --> 00:49:22,000 1130 00:49:22,000 --> 00:49:24,110 E temos de intercambio int ae int b. 1131 00:49:24,110 --> 00:49:27,046 E nós temos algúns temporal variable que é a. 1132 00:49:27,046 --> 00:49:30,050 un se lle atribúe a b, e, a continuación b se lle atribúe á temperatura 1133 00:49:30,050 --> 00:49:32,235 de xeito que A e B do Os valores son agora conmutada. 1134 00:49:32,235 --> 00:49:33,510 1135 00:49:33,510 --> 00:49:36,030 >> Pero reviravolta na historia, iso non funciona. 1136 00:49:36,030 --> 00:49:37,390 1137 00:49:37,390 --> 00:49:42,380 E parte do que realmente ten que ver co feito de que un 1138 00:49:42,380 --> 00:49:48,800 e B aquí, os que son pasadas en aquí, son en realidade unha copia de x e y. 1139 00:49:48,800 --> 00:49:53,220 Entón, cando a función realmente retorna, el cambia as copias, pero non 1140 00:49:53,220 --> 00:49:55,960 o real x e y do. 1141 00:49:55,960 --> 00:50:02,370 Así, unha forma de pensar sobre iso é isso-- finxir estes son intercambio. 1142 00:50:02,370 --> 00:50:03,130 Ok? 1143 00:50:03,130 --> 00:50:05,390 Así, en principal, temos x e y inicializar. 1144 00:50:05,390 --> 00:50:06,530 1145 00:50:06,530 --> 00:50:10,760 Pero cando nós realmente ir para arriba a estes cadros con intercambio, 1146 00:50:10,760 --> 00:50:15,740 estamos pasando os valores máis para el, e eles están inicializar. 1147 00:50:15,740 --> 00:50:18,570 >> E soa vez en directo aquí. 1148 00:50:18,570 --> 00:50:19,796 Así, a eb vivir aquí. 1149 00:50:19,796 --> 00:50:20,670 E son trocados. 1150 00:50:20,670 --> 00:50:21,870 1151 00:50:21,870 --> 00:50:26,190 Pero cando volver, non facer algo coa eb. unha 1152 00:50:26,190 --> 00:50:28,980 eb licenza coa nosa función. 1153 00:50:28,980 --> 00:50:30,850 E así xe y estar na mesma. 1154 00:50:30,850 --> 00:50:31,960 1155 00:50:31,960 --> 00:50:39,665 Terá máis en como resolver isto e como realmente tratar con isto máis tarde. 1156 00:50:39,665 --> 00:50:40,750 1157 00:50:40,750 --> 00:50:43,740 >> Pero é só unha cousa ao tipo de manter presente. 1158 00:50:43,740 --> 00:50:45,270 Use-o para o futuro. 1159 00:50:45,270 --> 00:50:48,050 Non te preocupes se iso non facía todo o sentido do mundo. 1160 00:50:48,050 --> 00:50:49,510 1161 00:50:49,510 --> 00:50:51,440 Son copias é a cousa máis importante. 1162 00:50:51,440 --> 00:50:54,580 Se indo para facer calquera cousa lonxe diso, pasou en copias. 1163 00:50:54,580 --> 00:50:56,410 Entón os orixinais estar na mesma. 1164 00:50:56,410 --> 00:50:58,170 1165 00:50:58,170 --> 00:50:58,770 Todo o mundo bo? 1166 00:50:58,770 --> 00:51:00,280 1167 00:51:00,280 --> 00:51:00,930 Legal. 1168 00:51:00,930 --> 00:51:02,295 >> Así, os argumentos da liña de comandos. 1169 00:51:02,295 --> 00:51:03,520 1170 00:51:03,520 --> 00:51:07,630 Estou seguro de que ao principio vós todos tiña aquelas grandes, como, baleiros principais int. 1171 00:51:07,630 --> 00:51:09,517 E vostede é como, fresco Aceptar. 1172 00:51:09,517 --> 00:51:10,350 Realmente non me importa. 1173 00:51:10,350 --> 00:51:12,360 Este é só o que eu teño que escribir. 1174 00:51:12,360 --> 00:51:16,349 Pero nos seus novos programas, especialmente neste pset, 1175 00:51:16,349 --> 00:51:17,890 e por que hai giz no chan? 1176 00:51:17,890 --> 00:51:19,640 1177 00:51:19,640 --> 00:51:22,680 >> Coa súa próxima pset, está vai estar a ver iso. 1178 00:51:22,680 --> 00:51:26,130 Int main, int arg c, corda de arco v, entre parénteses. 1179 00:51:26,130 --> 00:51:28,770 Así, a partir do que só hoxe aprendín, o que 1180 00:51:28,770 --> 00:51:32,190 pensamos que o segundo parámetro ou que o segundo elemento é aquí? 1181 00:51:32,190 --> 00:51:34,830 1182 00:51:34,830 --> 00:51:35,824 É unha matriz. 1183 00:51:35,824 --> 00:51:36,615 Cara a un tipo de matriz? 1184 00:51:36,615 --> 00:51:38,430 1185 00:51:38,430 --> 00:51:40,690 Matriz de cadea, si. 1186 00:51:40,690 --> 00:51:41,980 Legal. 1187 00:51:41,980 --> 00:51:45,320 Entón é así que vai sendo declarar estes agora. 1188 00:51:45,320 --> 00:51:48,570 >> Alguén se lembra o que estes significan? 1189 00:51:48,570 --> 00:51:52,551 1190 00:51:52,551 --> 00:51:53,050 Non? 1191 00:51:53,050 --> 00:51:54,020 1192 00:51:54,020 --> 00:51:54,520 Hmm? 1193 00:51:54,520 --> 00:51:55,640 >> ALUMNO: arg c. 1194 00:51:55,640 --> 00:51:56,961 1195 00:51:56,961 --> 00:51:58,950 >> ALLISON: Entón arg c mantén un contador. 1196 00:51:58,950 --> 00:51:59,450 É un int. 1197 00:51:59,450 --> 00:52:00,615 É un número, non? 1198 00:52:00,615 --> 00:52:02,240 Entón, o que pensas que o número é de? 1199 00:52:02,240 --> 00:52:08,260 1200 00:52:08,260 --> 00:52:08,760 Si. 1201 00:52:08,760 --> 00:52:11,450 Así arg c é o número de cordas que compoñen a liña de comandos. 1202 00:52:11,450 --> 00:52:12,560 1203 00:52:12,560 --> 00:52:18,499 Entón, se fósemos realmente fazer--, hai exemplos tras este, 1204 00:52:18,499 --> 00:52:19,790 polo que non vou estar á fronte de min. 1205 00:52:19,790 --> 00:52:21,299 1206 00:52:21,299 --> 00:52:23,840 É un número de cordas que só facer a súa liña de ordes. 1207 00:52:23,840 --> 00:52:35,080 >> Entón, cando fai, como, dot cortar Mario, iso é unha cadea que pasa a ser. 1208 00:52:35,080 --> 00:52:38,520 Nesta peza, vai realmente ser alimentando as cousas na liña de comandos, 1209 00:52:38,520 --> 00:52:41,750 como eu estou seguro que vostedes que lin a serra spec. 1210 00:52:41,750 --> 00:52:44,470 Así, nestes casos, é posible que ter dous ou tres argumentos. 1211 00:52:44,470 --> 00:52:45,652 1212 00:52:45,652 --> 00:52:48,360 Vai ser unha cousa útil para usar. 1213 00:52:48,360 --> 00:52:51,500 >> E entón arg v, como dixemos, é só unha matriz de cadea. 1214 00:52:51,500 --> 00:52:57,000 Así que o que realmente garda introducido na liña de comandos. 1215 00:52:57,000 --> 00:52:59,960 Polo tanto, temos estes. 1216 00:52:59,960 --> 00:53:02,850 Ten algunha barra dot copiar outfile infile. 1217 00:53:02,850 --> 00:53:06,670 Así, se arg c é o número de cordas que estamos pasando para o comando 1218 00:53:06,670 --> 00:53:09,080 liña, que é a nosa arg c neste caso? 1219 00:53:09,080 --> 00:53:14,520 1220 00:53:14,520 --> 00:53:15,850 Tres. 1221 00:53:15,850 --> 00:53:16,690 Exactamente. 1222 00:53:16,690 --> 00:53:20,086 >> Entón, cal é arg v cero? 1223 00:53:20,086 --> 00:53:21,710 Entón, cal é o primeiro que temos gardado? 1224 00:53:21,710 --> 00:53:24,640 1225 00:53:24,640 --> 00:53:26,290 Dot cortar copia, exactamente. 1226 00:53:26,290 --> 00:53:28,065 E, a continuación, o segundo sería infile. 1227 00:53:28,065 --> 00:53:29,290 1228 00:53:29,290 --> 00:53:30,930 A terceira sería outfile. 1229 00:53:30,930 --> 00:53:32,390 Así que sobre arg v tres? 1230 00:53:32,390 --> 00:53:35,810 1231 00:53:35,810 --> 00:53:39,370 Sería nulo, xa que iso é o fin da nosa matriz, non? 1232 00:53:39,370 --> 00:53:40,600 1233 00:53:40,600 --> 00:53:41,460 Legal. 1234 00:53:41,460 --> 00:53:44,500 >> E entón o que pasa co sexto? 1235 00:53:44,500 --> 00:53:45,900 É unha especie de unha pregunta capciosa. 1236 00:53:45,900 --> 00:53:46,400 Ish. 1237 00:53:46,400 --> 00:53:49,027 1238 00:53:49,027 --> 00:53:49,943 Non sabemos o que é? 1239 00:53:49,943 --> 00:53:50,960 1240 00:53:50,960 --> 00:53:51,690 É indefinido. 1241 00:53:51,690 --> 00:53:53,170 Nós non temos idea do que podería ser. 1242 00:53:53,170 --> 00:53:57,000 É todo o que é dereito despois da matriz na memoria, 1243 00:53:57,000 --> 00:54:00,220 e non temos idea do que é iso. 1244 00:54:00,220 --> 00:54:03,500 E é perigoso tocar aqueles cousas, porque para todo o que sabe, 1245 00:54:03,500 --> 00:54:07,080 é unha parte da memoria que non debe ser acceder ou nulo. 1246 00:54:07,080 --> 00:54:09,000 E pode facer cousas malucas. 1247 00:54:09,000 --> 00:54:11,690 Chama-se sobre-indexación seu vinculados á súa matriz. 1248 00:54:11,690 --> 00:54:14,785 Non vai a fóra dos límites da súa array, ou cousas malas poden ocorrer. 1249 00:54:14,785 --> 00:54:16,274 1250 00:54:16,274 --> 00:54:18,940 Vostede volta e, así, as leis da física foron destruídas 1251 00:54:18,940 --> 00:54:19,481 ou algo así. 1252 00:54:19,481 --> 00:54:21,021 1253 00:54:21,021 --> 00:54:21,520 Legal. 1254 00:54:21,520 --> 00:54:22,895 Isto ten sentido para todos? 1255 00:54:22,895 --> 00:54:23,810 1256 00:54:23,810 --> 00:54:25,025 Non é tan malo. 1257 00:54:25,025 --> 00:54:28,926 >> Entón, agora, todo o mundo é parte favorita, revisión pset. 1258 00:54:28,926 --> 00:54:29,426 Yay! 1259 00:54:29,426 --> 00:54:30,530 1260 00:54:30,530 --> 00:54:31,030 Está ben. 1261 00:54:31,030 --> 00:54:33,830 Polo tanto, para aqueles de vostedes que non leu a especificación pset, 1262 00:54:33,830 --> 00:54:36,790 está facendo algún realmente cousas legais con cifrado. 1263 00:54:36,790 --> 00:54:39,360 Vai crear unha Ceasar Cifra e unha cifra de Vigenère. 1264 00:54:39,360 --> 00:54:42,000 1265 00:54:42,000 --> 00:54:45,480 Ten que definitivamente ler o especificación para ver como funcionan. 1266 00:54:45,480 --> 00:54:49,650 E se está a ter algún problema sobre o que realmente debe estar facendo, 1267 00:54:49,650 --> 00:54:52,920 por favor, veña falar comigo, enviar correo-e me ou texto me. 1268 00:54:52,920 --> 00:54:53,420 Estou por preto. 1269 00:54:53,420 --> 00:54:54,780 1270 00:54:54,780 --> 00:54:57,070 >> Así, existen tres principais cousas aquí que nós 1271 00:54:57,070 --> 00:55:00,440 quero falar about-- só tipo dunha extensión da charla. 1272 00:55:00,440 --> 00:55:03,645 Cousas que pode non saber sobre, consellos e ferramentas útiles. 1273 00:55:03,645 --> 00:55:05,520 Entón, nós imos facer unha revisión rápida de ASCII, 1274 00:55:05,520 --> 00:55:10,420 porque iso vai ser super importante para a cifra do Vigenère. 1275 00:55:10,420 --> 00:55:11,809 1276 00:55:11,809 --> 00:55:14,100 Estamos indo para a conversión de entradas de liña de comandos, que 1277 00:55:14,100 --> 00:55:17,160 vai ser moi útil para Caesar Cipher. 1278 00:55:17,160 --> 00:55:18,133 E entón modulo. 1279 00:55:18,133 --> 00:55:20,220 1280 00:55:20,220 --> 00:55:21,210 Legal. 1281 00:55:21,210 --> 00:55:24,005 >> Entón, ASCII mapea caracteres para números. 1282 00:55:24,005 --> 00:55:25,270 1283 00:55:25,270 --> 00:55:26,365 Este é un gran cadro. 1284 00:55:26,365 --> 00:55:28,115 Debe ter este marcada en algún lugar. 1285 00:55:28,115 --> 00:55:29,310 1286 00:55:29,310 --> 00:55:33,250 Vai querer isto para o primeiro a medio prazo. 1287 00:55:33,250 --> 00:55:36,320 Estou seguro que todo o mundo ten ese gráfico na súa folla de medio prazo. 1288 00:55:36,320 --> 00:55:37,810 Así, aprendela. 1289 00:55:37,810 --> 00:55:38,410 Adoro. 1290 00:55:38,410 --> 00:55:39,740 Mantelo accesible. 1291 00:55:39,740 --> 00:55:41,210 Será útil. 1292 00:55:41,210 --> 00:55:45,630 >> E todo isto é unha codificación que mapea alfabética, numérica, 1293 00:55:45,630 --> 00:55:47,740 e outros caracteres para números para o noso equipo. 1294 00:55:47,740 --> 00:55:49,947 Por mor do curso, na final, todo o que almacenar 1295 00:55:49,947 --> 00:55:52,030 se ve convertido ata ceros e uns, 1296 00:55:52,030 --> 00:55:55,200 por iso necesitamos de algunha maneira para representar a texto e os personaxes que estamos todos 1297 00:55:55,200 --> 00:55:59,105 afeitos ver como unha especie de número. 1298 00:55:59,105 --> 00:56:00,370 1299 00:56:00,370 --> 00:56:05,880 >> Entón, como podemos ver aquí, temos maiúsculas A, que é logo alí. 1300 00:56:05,880 --> 00:56:06,555 É 65. 1301 00:56:06,555 --> 00:56:07,570 1302 00:56:07,570 --> 00:56:09,660 E minúsculas A é 97. 1303 00:56:09,660 --> 00:56:13,170 Así, pode descubrir out-- como dixen anteriormente, 1304 00:56:13,170 --> 00:56:16,532 se tivese variedade de múltiple cordas, o que cada un deles 1305 00:56:16,532 --> 00:56:17,490 posúe un terminador nulo. 1306 00:56:17,490 --> 00:56:18,480 Sería un espazo. 1307 00:56:18,480 --> 00:56:22,581 Espazo ten a súa propia especial-- Eu esquezo onde está aquí. 1308 00:56:22,581 --> 00:56:23,080 Ah. 1309 00:56:23,080 --> 00:56:24,700 32 é o espazo. 1310 00:56:24,700 --> 00:56:27,090 Entón, todo é mapeado para el. 1311 00:56:27,090 --> 00:56:28,680 1312 00:56:28,680 --> 00:56:29,740 >> Polo tanto, temos de matemáticas ASCII. 1313 00:56:29,740 --> 00:56:31,080 1314 00:56:31,080 --> 00:56:34,290 Pro tip-- en Vigenère de, pode ser tentado 1315 00:56:34,290 --> 00:56:39,480 para converter os números para enteiros, pero é realmente mellor práctica 1316 00:56:39,480 --> 00:56:43,860 para poder usar o caracteres como este 1317 00:56:43,860 --> 00:56:45,820 cando está realmente manipulando-os. 1318 00:56:45,820 --> 00:56:48,950 Entón, se quere usar números, pode. 1319 00:56:48,950 --> 00:56:55,260 Pero unha mellor forma, é unha forma que que tenden a gusta de vostedes para facelo, 1320 00:56:55,260 --> 00:56:57,830 É deste xeito que está en realidade, subtraindo caracteres. 1321 00:56:57,830 --> 00:56:58,840 1322 00:56:58,840 --> 00:57:02,830 >> Entón, quero que vostedes tipo de descubrir estes para fóra. 1323 00:57:02,830 --> 00:57:05,070 Por que non tentar todo outro? 1324 00:57:05,070 --> 00:57:07,580 1325 00:57:07,580 --> 00:57:09,830 Entón, facer o primeiro, o un terceiro, quinto e un. 1326 00:57:09,830 --> 00:57:11,160 1327 00:57:11,160 --> 00:57:15,000 Porque quero estar seguro de que falamos sobre todo o que necesitamos para falar. 1328 00:57:15,000 --> 00:57:17,410 1329 00:57:17,410 --> 00:57:20,259 Eu só vou dicir, un dos cousas importantes a-- oh wait, 1330 00:57:20,259 --> 00:57:21,550 vostedes non vin este. 1331 00:57:21,550 --> 00:57:23,710 OK así que facer os tres primeiros. 1332 00:57:23,710 --> 00:57:24,430 Imos facelo. 1333 00:57:24,430 --> 00:57:25,971 Porque temos que falar de modulo. 1334 00:57:25,971 --> 00:57:27,810 1335 00:57:27,810 --> 00:57:28,310 Sei. 1336 00:57:28,310 --> 00:57:28,851 Matemáticas é difícil. 1337 00:57:28,851 --> 00:57:29,870 1338 00:57:29,870 --> 00:57:30,980 Pode usar unha calculadora. 1339 00:57:30,980 --> 00:57:31,580 Está certo. 1340 00:57:31,580 --> 00:57:37,464 1341 00:57:37,464 --> 00:57:40,380 Ou tirar unha táboa ASCII, porque probablemente vai querer iso. 1342 00:57:40,380 --> 00:58:03,660 1343 00:58:03,660 --> 00:58:04,820 >> Legal. 1344 00:58:04,820 --> 00:58:07,960 Entón eu vou camiñar rapidamente vós a través destes. 1345 00:58:07,960 --> 00:58:11,120 Entón, as persoas teñen táboas ASCII tirado para arriba? 1346 00:58:11,120 --> 00:58:15,645 Cal é a nosa numérico número de minúsculas A? 1347 00:58:15,645 --> 00:58:16,270 ALUMNO: Sete. 1348 00:58:16,270 --> 00:58:19,420 1349 00:58:19,420 --> 00:58:24,550 >> ALLISON: Entón minúsculas A é 97 e maiúsculas A é 65. 1350 00:58:24,550 --> 00:58:26,390 Entón, 97 menos 65? 1351 00:58:26,390 --> 00:58:27,782 1352 00:58:27,782 --> 00:58:28,570 >> Audiencia: 32? 1353 00:58:28,570 --> 00:58:33,260 1354 00:58:33,260 --> 00:58:35,630 >> ALLISON: 62, si. 1355 00:58:35,630 --> 00:58:38,675 Polo tanto, neste caso, o que sería imprimir? 1356 00:58:38,675 --> 00:58:40,360 Ese primeiro? 1357 00:58:40,360 --> 00:58:43,830 Se temos por cento d, o que iso indica? 1358 00:58:43,830 --> 00:58:45,980 1359 00:58:45,980 --> 00:58:46,730 ESTUDANTE: Un número. 1360 00:58:46,730 --> 00:58:48,604 ALLISON: Estamos imprimindo a un número real. 1361 00:58:48,604 --> 00:58:50,770 Entón, nós estamos indo realmente para imprimir 32 aquí. 1362 00:58:50,770 --> 00:58:56,360 E se iso fose por cento c, 32 nos daría un espazo. 1363 00:58:56,360 --> 00:58:57,700 1364 00:58:57,700 --> 00:59:01,670 Así, entendendo que caracteres poden ser impresos 1365 00:59:01,670 --> 00:59:06,140 tanto como números e segundo os personaxes reais 1366 00:59:06,140 --> 00:59:11,080 é realmente importante, e pagar a atención sobre os tipos reais 1367 00:59:11,080 --> 00:59:12,040 que estamos facendo aquí. 1368 00:59:12,040 --> 00:59:14,520 1369 00:59:14,520 --> 00:59:15,020 Legal. 1370 00:59:15,020 --> 00:59:18,862 Así, para cada un destes outros, que é o que vai ser a impresión? 1371 00:59:18,862 --> 00:59:19,825 >> ESTUDANTE: Un personaxe. 1372 00:59:19,825 --> 00:59:20,830 >> ALLISON: Unha personaxe. 1373 00:59:20,830 --> 00:59:21,330 Legal. 1374 00:59:21,330 --> 00:59:24,260 Entón, se vostedes queren saber, ten pode traballar estes para fóra no seu propio país. 1375 00:59:24,260 --> 00:59:25,900 Se está a ter problemas, me e-mail. 1376 00:59:25,900 --> 00:59:28,950 Pero a segunda só será imprimir unha minúscula b. 1377 00:59:28,950 --> 00:59:32,910 O terceiro pode imprimir unha maiúscula B. A cuarta imprimirá 1378 00:59:32,910 --> 00:59:36,410 fóra unha maiúscula C, ea última será unha minúscula A. 1379 00:59:36,410 --> 00:59:42,530 E a última um-- en realidade estamos indo para entrar a que ese tolo por cento 1380 00:59:42,530 --> 00:59:45,020 sinal significa que mesmo nun par de diapositivas. 1381 00:59:45,020 --> 00:59:46,667 Polo tanto, proba aqueles no seu propio país. 1382 00:59:46,667 --> 00:59:48,500 Se ten problemas, por favor, veña falar comigo. 1383 00:59:48,500 --> 00:59:49,655 1384 00:59:49,655 --> 00:59:53,290 Se é tipicamente en Adams corredor D, probablemente vai atopar arredor de min. 1385 00:59:53,290 --> 00:59:54,760 1386 00:59:54,760 --> 00:59:55,760 >> Entón, atoi. 1387 00:59:55,760 --> 00:59:59,660 Cantos de vós xa viron isto función ou oído falar del, ao final? 1388 00:59:59,660 --> 01:00:00,380 1389 01:00:00,380 --> 01:00:00,880 Calquera? 1390 01:00:00,880 --> 01:00:02,100 1391 01:00:02,100 --> 01:00:02,600 Legal. 1392 01:00:02,600 --> 01:00:06,250 Entón, o que realmente significa para ASCII é para enteiro. 1393 01:00:06,250 --> 01:00:13,150 Entón, o que podes facer é, con César, para quen le a especificación, 1394 01:00:13,150 --> 01:00:16,460 vai facer barra punto César Despois de escribir o seu programa, 1395 01:00:16,460 --> 01:00:18,690 e logo, vai entrada dun número que 1396 01:00:18,690 --> 01:00:24,780 quere codificar a mensaxe secreta con. 1397 01:00:24,780 --> 01:00:30,700 >> Pero, se nos lembrar, toda a nosa insumos son almacenados como cadeas. 1398 01:00:30,700 --> 01:00:31,390 Non? 1399 01:00:31,390 --> 01:00:35,160 Temos unha variedade arg v iso é todo o tipo cadea. 1400 01:00:35,160 --> 01:00:37,870 Entón, se só tentar tirar ese, sería 1401 01:00:37,870 --> 01:00:43,240 Pensas que que un ou calquera número usou é realmente un personaxe. 1402 01:00:43,240 --> 01:00:45,490 Entón está indo a obter algúns resultados tolos. 1403 01:00:45,490 --> 01:00:48,200 Entón, se o quere transformar isto nun número enteiro 1404 01:00:48,200 --> 01:00:52,060 que pode usar para manipular súa palabra ou a súa mensaxe, 1405 01:00:52,060 --> 01:00:53,366 vai querer usar atoi. 1406 01:00:53,366 --> 01:00:56,320 atoi só converte súa secuencia para un int. 1407 01:00:56,320 --> 01:01:04,530 >> Entón, se temos unha secuencia de 12, se chamamos atoi en 12, ou o que quere que a entrada é, 1408 01:01:04,530 --> 01:01:07,370 vai realmente volver para ti o número enteiro. 1409 01:01:07,370 --> 01:01:10,610 Non é o carácter ou a secuencia de 12. 1410 01:01:10,610 --> 01:01:14,230 Que, cando comeza de engadir que a números, 1411 01:01:14,230 --> 01:01:17,710 será moi diferente, porque a cadea 12 é 1412 01:01:17,710 --> 01:01:21,210 algún número tolo en ASCII, pero o número enteiro 12 1413 01:01:21,210 --> 01:01:23,390 é, en realidade, 12, que é o que quere. 1414 01:01:23,390 --> 01:01:25,630 Entón, quere estar seguro de usar atoi. 1415 01:01:25,630 --> 01:01:29,203 >> Vai querer esta en César, porque 1416 01:01:29,203 --> 01:01:32,520 necesita o int fornecido pola usuario na liña de comandos. 1417 01:01:32,520 --> 01:01:35,230 Pero cando eles poñelas ao mando liña, é almacenado como unha cadea 1418 01:01:35,230 --> 01:01:35,813 para comezar. 1419 01:01:35,813 --> 01:01:36,950 1420 01:01:36,950 --> 01:01:38,210 Será que isto ten sentido? 1421 01:01:38,210 --> 01:01:40,590 Non precisa necesariamente que iso para Vigenère. 1422 01:01:40,590 --> 01:01:43,180 Con Vigenère, como dixen antes, ten que tentar e utilizar 1423 01:01:43,180 --> 01:01:46,600 Matemáticas ASCII que máis parece este, onde está, de feito, 1424 01:01:46,600 --> 01:01:49,320 usando os caracteres que se dan a vostede. 1425 01:01:49,320 --> 01:01:50,970 1426 01:01:50,970 --> 01:01:51,470 Legal. 1427 01:01:51,470 --> 01:01:52,970 1428 01:01:52,970 --> 01:01:54,170 Todos bo alí? 1429 01:01:54,170 --> 01:01:56,530 1430 01:01:56,530 --> 01:01:57,480 Impresionante. 1431 01:01:57,480 --> 01:01:59,030 >> Así módulo. 1432 01:01:59,030 --> 01:02:01,950 Así que se está dado este número enorme de César? 1433 01:02:01,950 --> 01:02:03,720 1434 01:02:03,720 --> 01:02:07,970 Ten esa idea de que se está en Z e está 1435 01:02:07,970 --> 01:02:11,020 dado un número de dous, isto significa que need-- 1436 01:02:11,020 --> 01:02:15,130 Z fai o segundo carta tras si, non? 1437 01:02:15,130 --> 01:02:20,800 Entón, ten que de algunha maneira participa en torno, e modulo é a forma de facelo. 1438 01:02:20,800 --> 01:02:23,310 Entón, todo o que fai é dálle o resto 1439 01:02:23,310 --> 01:02:25,660 da división do primeiro número polo segundo. 1440 01:02:25,660 --> 01:02:28,660 E temos algúns exemplos para que algo máis concreto facer. 1441 01:02:28,660 --> 01:02:34,390 Pero basicamente usa modulo cando quero facer algo envolvente. 1442 01:02:34,390 --> 01:02:36,950 >> Entón, se só quere o números dun a oito, 1443 01:02:36,950 --> 01:02:39,670 pode utilizar en calquera outro modulo número, e será sempre 1444 01:02:39,670 --> 01:02:42,960 devolver un número de cero a oito. 1445 01:02:42,960 --> 01:02:48,750 Así, algúns examples-- se temos 55 módulo 10, 1446 01:02:48,750 --> 01:02:55,350 el só dálle o resto do 55 dividido por 10, que sería de 5. 1447 01:02:55,350 --> 01:02:56,440 1448 01:02:56,440 --> 01:03:02,470 E despois de tres modulo cinco, Alguén adiviña o que sería iso? 1449 01:03:02,470 --> 01:03:03,800 1450 01:03:03,800 --> 01:03:04,300 Tres. 1451 01:03:04,300 --> 01:03:05,570 1452 01:03:05,570 --> 01:03:10,910 >> Entón se ten un número menor antes o modulo, non pode ir en uniformemente. 1453 01:03:10,910 --> 01:03:11,520 É cero. 1454 01:03:11,520 --> 01:03:14,090 Entón, el só devolve o propio número. 1455 01:03:14,090 --> 01:03:15,920 Así, oito modulo oito sería? 1456 01:03:15,920 --> 01:03:16,603 >> ALUMNO: Cero. 1457 01:03:16,603 --> 01:03:18,350 >> ALLISON: Cero. 1458 01:03:18,350 --> 01:03:20,160 Xa que vai en uniformemente. 1459 01:03:20,160 --> 01:03:22,095 16 modulo 15? 1460 01:03:22,095 --> 01:03:23,660 >> Audiencia: One. 1461 01:03:23,660 --> 01:03:24,700 >> ALLISON: Cool. 1462 01:03:24,700 --> 01:03:29,280 E entón este último é só para amosar você- pode estar se pregunta, OK, 1463 01:03:29,280 --> 01:03:31,800 cal é a orde das operacións aquí? 1464 01:03:31,800 --> 01:03:33,100 Será que dividir por primeira vez? 1465 01:03:33,100 --> 01:03:34,570 Será que modulo primeiro? 1466 01:03:34,570 --> 01:03:38,730 Entón modulo ten a mesma precedencia como a división ou multiplicación, 1467 01:03:38,730 --> 01:03:39,940 e os seus asociativo esquerda. 1468 01:03:39,940 --> 01:03:41,730 Por iso, é do mesmo xeito. 1469 01:03:41,730 --> 01:03:46,520 Sempre faría parénteses, logo multiplicación, división, 1470 01:03:46,520 --> 01:03:49,570 e módulo en orde de esquerda a dereita. 1471 01:03:49,570 --> 01:03:51,050 Así, as regras estándar. 1472 01:03:51,050 --> 01:03:55,260 Basta colocar-lo na mesma categoría como a división e multiplicación. 1473 01:03:55,260 --> 01:03:59,040 >> Polo tanto, neste caso, teriamos ten 1 máis 2 dános tres. 1474 01:03:59,040 --> 01:04:02,210 Nós que multiplicar por dous, entón temos 6. 1475 01:04:02,210 --> 01:04:05,050 Nós modulo que por 2, o que nos dá? 1476 01:04:05,050 --> 01:04:06,042 >> ESTUDANTE: 0. 1477 01:04:06,042 --> 01:04:07,430 >> ALLISON: 0. 1478 01:04:07,430 --> 01:04:10,270 E, entón, engadir 2, de xeito que obter 2 neste último caso. 1479 01:04:10,270 --> 01:04:12,080 1480 01:04:12,080 --> 01:04:16,360 Entón modulo-- está indo definitivamente para estar pensando en formas de incorporar 1481 01:04:16,360 --> 01:04:19,520 que cando está enrolando arredor do alfabeto. 1482 01:04:19,520 --> 01:04:24,210 Se vostede está en Z e ten que mover encamiñar tres espazos para chegar a C, 1483 01:04:24,210 --> 01:04:26,230 hai todo este concepto de enrolar. 1484 01:04:26,230 --> 01:04:28,790 Entón, vou deixar para vostedes para descubrir 1485 01:04:28,790 --> 01:04:31,940 exactamente como vai usalo. 1486 01:04:31,940 --> 01:04:35,660 Pero en definitiva, unha ferramenta útil para a súa pset esta semana. 1487 01:04:35,660 --> 01:04:36,910 1488 01:04:36,910 --> 01:04:37,730 Realmente me gusta diso. 1489 01:04:37,730 --> 01:04:39,480 Este é un dos meus favoritos Serie de exercicios. 1490 01:04:39,480 --> 01:04:41,230 Entón, despois de facelo, se ten amigos, 1491 01:04:41,230 --> 01:04:44,146 pode, así, enviar outro segredo mensaxes e asegurarse de que funciona. 1492 01:04:44,146 --> 01:04:45,695 Porque vai descifrar-lo ou algo. 1493 01:04:45,695 --> 01:04:46,710 1494 01:04:46,710 --> 01:04:47,390 Moita diversión. 1495 01:04:47,390 --> 01:04:48,840 1496 01:04:48,840 --> 01:04:51,220 >> E iso é o final da sección. 1497 01:04:51,220 --> 01:04:52,430 1498 01:04:52,430 --> 01:04:54,040 Rematar cedo. 1499 01:04:54,040 --> 01:04:57,540 Eu aínda teño 15 minutos con vós, por iso, se hai algo 1500 01:04:57,540 --> 01:05:02,180 que desexa pasar por riba de máis, eu sería feliz en facelo. 1501 01:05:02,180 --> 01:05:04,340 Calquera outras preguntas sobre seu pset para aqueles de vostedes 1502 01:05:04,340 --> 01:05:06,355 que xa comezaron ou ler o spec. 1503 01:05:06,355 --> 01:05:07,870 1504 01:05:07,870 --> 01:05:12,060 Todo o que falamos aproximadamente a última hora 1505 01:05:12,060 --> 01:05:16,880 e 15 minutos que me gustase de min ao tipo de repetición, eu sería feliz en. 1506 01:05:16,880 --> 01:05:20,790 Ou podemos chamala, e pode todo saír e levar máis doce contigo 1507 01:05:20,790 --> 01:05:21,650 como vai. 1508 01:05:21,650 --> 01:05:23,719 1509 01:05:23,719 --> 01:05:26,260 Pero se hai algún persistente preguntas, por favor, deixe-me saber. 1510 01:05:26,260 --> 01:05:28,467 Tamén pode vir cara arriba e falar comigo despois. 1511 01:05:28,467 --> 01:05:29,425 Eu prometer que eu non mordo. 1512 01:05:29,425 --> 01:05:32,140 1513 01:05:32,140 --> 01:05:32,795 Algo máis? 1514 01:05:32,795 --> 01:05:33,890 1515 01:05:33,890 --> 01:05:35,240 Todo o mundo é bo? 1516 01:05:35,240 --> 01:05:37,540 Sentimento de todos como poden xestionar este pset? 1517 01:05:37,540 --> 01:05:38,820 1518 01:05:38,820 --> 01:05:42,405 Vai ser caras bos. 1519 01:05:42,405 --> 01:05:43,905 Horario de atención están alí por unha razón. 1520 01:05:43,905 --> 01:05:45,930 1521 01:05:45,930 --> 01:05:46,460 Legal. 1522 01:05:46,460 --> 01:05:47,020 Todo ben. 1523 01:05:47,020 --> 01:05:49,680 >> Ben, nese caso, grazas todo o que tanto a benvida. 1524 01:05:49,680 --> 01:05:50,940 Espero velo a próxima semana. 1525 01:05:50,940 --> 01:05:52,120 Haberá máis doces. 1526 01:05:52,120 --> 01:05:53,495 Pode haber outras cousas legais. 1527 01:05:53,495 --> 01:05:55,010 1528 01:05:55,010 --> 01:05:59,090 E estou ansioso para estar para coñecer todos vostedes este ano. 1529 01:05:59,090 --> 01:06:00,320