1 00:00:00,000 --> 00:00:05,830 2 00:00:05,830 --> 00:00:08,650 >> Jason Hirschhorn: Benvido á CS50 sección, todos. 3 00:00:08,650 --> 00:00:11,430 O meu nome é Jason Hirschhorn. 4 00:00:11,430 --> 00:00:15,850 Eu son unha morea de TFS seu, pero unha morea de xente veña unirse a nós 5 00:00:15,850 --> 00:00:20,420 estudantes, extensionistas e estudantes en liña intentando mirar a sección se 6 00:00:20,420 --> 00:00:22,830 perdeu a súa sección naquela semana ou só incorporarse se quixesen 7 00:00:22,830 --> 00:00:24,510 revisar algunhas material. 8 00:00:24,510 --> 00:00:30,060 >> Así, de acordo co programa, que todos de que leu, correcto? 9 00:00:30,060 --> 00:00:31,390 Eu vexo unha morea de acenos de cabeza. 10 00:00:31,390 --> 00:00:34,220 Seccións proporcionarlle oportunidades para explotar o campo de 11 00:00:34,220 --> 00:00:37,420 material nun ambiente máis íntimo, así como mergullo 12 00:00:37,420 --> 00:00:38,810 actividades hands-on. 13 00:00:38,810 --> 00:00:41,230 >> Entón, iso é basicamente o que estamos estará facendo cada semana. 14 00:00:41,230 --> 00:00:45,090 Nós imos pasar por o que temos determinado a ser o máis importante 15 00:00:45,090 --> 00:00:49,170 temas abordados na aula, e os Probablemente a máis útil, e tamén 16 00:00:49,170 --> 00:00:52,780 máis probable que veña en conxuntos de problemas e en probas, e na súa codificación 17 00:00:52,780 --> 00:00:53,970 vida fóra do CS50. 18 00:00:53,970 --> 00:00:57,260 Entón, nós estamos indo a ir a eses temas, discutir-los, pasar por riba deles, 19 00:00:57,260 --> 00:01:00,660 responder a calquera preguntas que vostedes teñen, e entón imos facer unha chea de 20 00:01:00,660 --> 00:01:02,250 problemas prácticos de codificación. 21 00:01:02,250 --> 00:01:04,239 >> Vós todos trouxo portátiles, o que é fantástico. 22 00:01:04,239 --> 00:01:05,710 Esta é unha clase de ciencia da computación. 23 00:01:05,710 --> 00:01:10,070 Con todo, moitos dos exercicios que facemos, non vai ter os seus portátiles para. 24 00:01:10,070 --> 00:01:11,720 Pode facelos nunha folla de papel. 25 00:01:11,720 --> 00:01:13,580 É así que está indo a facelas na quizzes. 26 00:01:13,580 --> 00:01:16,450 E, de feito, esta é unha gran forma de realmente sei que como facer 27 00:01:16,450 --> 00:01:19,720 algo, se non ten 50 Comproba a dependen ou Facer a confiar en nós, dicindo 28 00:01:19,720 --> 00:01:20,620 cometeu algún erro. 29 00:01:20,620 --> 00:01:25,670 >> Entón, vostede é benvido ao código da run.cs50.net aparato ou, o que é 30 00:01:25,670 --> 00:01:29,770 outra ferramenta que permite codificar en liña, pero eu tamén recomendo, se 31 00:01:29,770 --> 00:01:32,280 aínda non experimentou, usando unha folla de de papel e tratar estas prácticas 32 00:01:32,280 --> 00:01:33,640 problemas nunha folla de papel. 33 00:01:33,640 --> 00:01:35,330 Porque unha vez máis, que é en definitiva, o que será 34 00:01:35,330 --> 00:01:37,430 pediu para facer en quizzes. 35 00:01:37,430 --> 00:01:44,080 >> Entón, imos comezar co noso axenda para hoxe. 36 00:01:44,080 --> 00:01:47,710 Nós imos pasar por riba de algunhas normas para nosa sección, entón imos mergullar 37 00:01:47,710 --> 00:01:51,180 en matrices, funcións e liña de comandos argumentos, que é o que vostedes 38 00:01:51,180 --> 00:01:56,200 Cubrimos a semana pasada, en charla e luns, eo que vai cubrir 39 00:01:56,200 --> 00:01:57,330 máis de mañá. 40 00:01:57,330 --> 00:01:59,060 E entón, finalmente, imos para falar pset2. 41 00:01:59,060 --> 00:02:03,640 Se eu puidese ter un concerto de mans non olhei ao problema conxunto de dous 42 00:02:03,640 --> 00:02:04,890 especificación. 43 00:02:04,890 --> 00:02:07,060 44 00:02:07,060 --> 00:02:08,120 Digamos todos. 45 00:02:08,120 --> 00:02:09,419 Fantástico. 46 00:02:09,419 --> 00:02:12,070 >> Imos falar sobre conxuntos de problemas un pouco, pero se ler o conxunto de problemas 47 00:02:12,070 --> 00:02:14,340 especificación, que é todo o que precisa facer. 48 00:02:14,340 --> 00:02:18,370 Se ler isto antes de vir a clase e sección o martes, vai 49 00:02:18,370 --> 00:02:19,220 ser unha boa posición. 50 00:02:19,220 --> 00:02:21,680 Podemos percorrer o conxunto de problemas, que é o que imos 51 00:02:21,680 --> 00:02:22,090 para facer o final. 52 00:02:22,090 --> 00:02:23,500 Nós imos pasar por a lóxica, comproba se 53 00:02:23,500 --> 00:02:24,710 todos están na mesma páxina. 54 00:02:24,710 --> 00:02:28,650 >> Eu quero que sexa capaz de saír o martes me sentindo moi cómodo co que 55 00:02:28,650 --> 00:02:31,560 cómpre facer para o conxunto de problemas desta semana, e se non fai iso, eu vou feliz 56 00:02:31,560 --> 00:02:33,050 ir despois e traballar con vostede. 57 00:02:33,050 --> 00:02:36,850 Pero iso é algo que ten que facer, pero eu creo que sería moi intelixente, 58 00:02:36,850 --> 00:02:40,500 só para ler o conxunto de problemas especificación de clase o martes, 59 00:02:40,500 --> 00:02:42,640 que soa como unha moitos de vostedes fixeron. 60 00:02:42,640 --> 00:02:45,810 >> Vou comezar por unha axenda cada clase entón vostede sabe a onde estamos indo. 61 00:02:45,810 --> 00:02:49,520 Isto tamén é útil para persoas que asisten en liña, xa que cada sección 62 00:02:49,520 --> 00:02:53,540 é codificación por cores, por iso, se quere vir cara atrás e só asistir a 10 minutos antes 63 00:02:53,540 --> 00:02:56,950 que toda a sección de 90 minutos, pode simplemente ir á sección código de cores 64 00:02:56,950 --> 00:02:57,890 e ollar para esa parte. 65 00:02:57,890 --> 00:03:01,510 Entón, eu tente división las en bo módulos que permiten a ti - 66 00:03:01,510 --> 00:03:03,960 se quere volver e revisar, ou outros alumnos que só son 67 00:03:03,960 --> 00:03:05,350 ver unha sección para repasar - 68 00:03:05,350 --> 00:03:08,130 para atopar a cousa específica que querer prestar atención para 69 00:03:08,130 --> 00:03:10,480 e aprender máis sobre. 70 00:03:10,480 --> 00:03:11,390 Doce. 71 00:03:11,390 --> 00:03:12,180 >> Normas. 72 00:03:12,180 --> 00:03:13,680 Eu son un líder FOP no campus. 73 00:03:13,680 --> 00:03:14,900 Non sei se alguén fixo FOP. 74 00:03:14,900 --> 00:03:16,280 Alguén facer FOP? 75 00:03:16,280 --> 00:03:17,100 Unha persoa fixo FOP. 76 00:03:17,100 --> 00:03:18,430 Dúas persoas fixeron FOP. 77 00:03:18,430 --> 00:03:19,250 Incrible. 78 00:03:19,250 --> 00:03:22,360 Entón FOP é o primeiro ano ao aire libre Programa de Orientación. 79 00:03:22,360 --> 00:03:27,240 Tomamos calouros para o bosque e facer das experiencias máis máxicas de 80 00:03:27,240 --> 00:03:28,830 súas vidas, correcto? 81 00:03:28,830 --> 00:03:29,220 Si 82 00:03:29,220 --> 00:03:30,080 Soa sobre a dereita. 83 00:03:30,080 --> 00:03:36,360 >> Entón, eu só quería comezar a nosa primeira sección discutindo algunhas normas 84 00:03:36,360 --> 00:03:38,860 á clase e nosa relación porque eu creo que 85 00:03:38,860 --> 00:03:40,010 son moi importantes. 86 00:03:40,010 --> 00:03:43,630 En primeiro lugar, como os que son a miña sección recibiron e 87 00:03:43,630 --> 00:03:47,150 foi discutida en que correo electrónico, eu adoro iso. 88 00:03:47,150 --> 00:03:48,130 Esta é a miña parte favorita do ano. 89 00:03:48,130 --> 00:03:49,100 Eu estiven tan animado. 90 00:03:49,100 --> 00:03:50,040 Estiven aquí durante horas de hoxe. 91 00:03:50,040 --> 00:03:54,560 Non deixei este edificio, excepto para ir comer, porque eu amo CS50 sección, 92 00:03:54,560 --> 00:03:58,620 amo ensinar, me gusta moito de traballar convosco. 93 00:03:58,620 --> 00:04:02,000 >> Unha das miñas maiores prioridades, se non o meu prioridade número un, non só para 94 00:04:02,000 --> 00:04:05,130 esta clase, pero incluíndo a miña outra clases e extraescolares, é 95 00:04:05,130 --> 00:04:09,350 apoiar vós e axudar vostedes, e facer o meu mellor para estar seguro de que 96 00:04:09,350 --> 00:04:13,780 caras teñen un marabilloso, divertido, produtivo contorno, emocionante 97 00:04:13,780 --> 00:04:15,250 experiencia nesta clase. 98 00:04:15,250 --> 00:04:16,190 Iso é o que eu estou comprometido. 99 00:04:16,190 --> 00:04:17,959 É por iso que eu amo facelo. 100 00:04:17,959 --> 00:04:20,190 Ese é o meu número de unha cousa, apoiar vós. 101 00:04:20,190 --> 00:04:25,110 Se tes algunha dúbida sobre charla, o conxunto de problemas, sección, 102 00:04:25,110 --> 00:04:28,830 vida, mesmo se quere falar vida, sentirse libre para chegar por favor. 103 00:04:28,830 --> 00:04:31,210 >> Ten o número do meu teléfono móbil, ten meu correo 104 00:04:31,210 --> 00:04:32,910 dirección, ten a miña GChat. 105 00:04:32,910 --> 00:04:37,540 Pode contactar-me en calquera ou todas os que sempre, pero probablemente non vai conseguir 106 00:04:37,540 --> 00:04:38,720 a resposta sempre. 107 00:04:38,720 --> 00:04:41,020 Intento e volver dentro de 24 horas. 108 00:04:41,020 --> 00:04:44,760 A miúdo será dentro 20 minutos ou 24 minutos. 109 00:04:44,760 --> 00:04:46,110 Eu debería ter dito que para facela en paralelo. 110 00:04:46,110 --> 00:04:48,840 Pero vai ter unha resposta moi rapidamente. 111 00:04:48,840 --> 00:04:54,220 >> Se me texto dunha hora antes do conxunto de problemas é debido, vou calmalo 112 00:04:54,220 --> 00:04:57,660 para abaixo e facer exercicios de respiración profunda con vostede, pero se aínda non comezou, 113 00:04:57,660 --> 00:05:00,270 probablemente non vai rematar, e Realmente non podo axudar alí fora 114 00:05:00,270 --> 00:05:01,710 aínda que eu vou probar o meu mellor. 115 00:05:01,710 --> 00:05:03,920 Entón eu vou facer de todo Podo apoia-lo. 116 00:05:03,920 --> 00:05:07,980 Por favor, Sinto-se libre para chegar é na sección de novo, en horario de oficina 117 00:05:07,980 --> 00:05:09,150 se me ver, ou incluso do lado de fora. 118 00:05:09,150 --> 00:05:11,800 Estou feliz por marcar un horario para atender e traballar con problemas 119 00:05:11,800 --> 00:05:14,410 con ou pasar por riba de material. 120 00:05:14,410 --> 00:05:15,990 Así que é o número un, soporte. 121 00:05:15,990 --> 00:05:17,940 Vou facer todo o que eu pode apoia-lo. 122 00:05:17,940 --> 00:05:21,520 >> Número dous, reunión no medio. 123 00:05:21,520 --> 00:05:24,760 Polo que eu quere ser, eu son non é omnipotente ou todopoderoso ou 124 00:05:24,760 --> 00:05:28,410 onisciente, entón eu non sei todo o tempo se o que estou facendo está quedando 125 00:05:28,410 --> 00:05:33,410 transversalmente, a forma que eu estou ensinando a tema axuda a aprender, ou se 126 00:05:33,410 --> 00:05:36,120 están confuso sobre un tema, aínda que non levantar a man ou pedirme 127 00:05:36,120 --> 00:05:37,390 ou me envíe un correo-e. 128 00:05:37,390 --> 00:05:42,150 Ou mesmo se, unha vez máis, están confusos sobre algo sobre o conxunto de problemas. 129 00:05:42,150 --> 00:05:44,240 Se non chegar a min, Non podo saber con certeza. 130 00:05:44,240 --> 00:05:46,950 Vou facer o meu mellor para a facturación en Vós, asegúrese de que todo é 131 00:05:46,950 --> 00:05:51,170 indo ben, intento ensinar as cousas dun xeito que será propicio para a maioría dos 132 00:05:51,170 --> 00:05:54,910 os seus estilos de aprendizaxe, pero se hai nada que eu poida facer, me aviso. 133 00:05:54,910 --> 00:05:58,520 >> Ao longo destas liñas, se queres algunha axuda co conxunto de problemas, eu son máis 134 00:05:58,520 --> 00:05:59,700 que feliz en axudar co conxunto de problemas. 135 00:05:59,700 --> 00:06:02,300 Nós imos facer unha chea de que na dirección da segunda 136 00:06:02,300 --> 00:06:03,460 metade desta sección. 137 00:06:03,460 --> 00:06:06,040 Pero se aínda non leu o problema define atrás e aínda non asistiu a ruta 138 00:06:06,040 --> 00:06:09,310 a través e non asistir os shorts e esperando que eu te ensinar 139 00:06:09,310 --> 00:06:13,260 todo o que foi filmado en liña ou que se pode atopar en CS50 140 00:06:13,260 --> 00:06:16,720 estudo, iso non é realmente xusto comigo ou con seus outros compañeiros. 141 00:06:16,720 --> 00:06:20,440 142 00:06:20,440 --> 00:06:25,730 >> Entón, por favor, eu estou máis que feliz en axudar vós, mais vós ten que me coñecer en 143 00:06:25,730 --> 00:06:27,230 medio. 144 00:06:27,230 --> 00:06:30,100 Temos toneladas de recursos para Está dispoñible na CS50. 145 00:06:30,100 --> 00:06:31,230 Eu mencionar algúns deles. 146 00:06:31,230 --> 00:06:32,960 Por favor, sacar proveito deles. 147 00:06:32,960 --> 00:06:35,140 Se está confuso, eu estou máis que feliz para axudar explicalo las 148 00:06:35,140 --> 00:06:39,290 doutro xeito, pero non é xusto que alumnos mostran-se en horas de oficina, 149 00:06:39,290 --> 00:06:42,530 non comezou nada, e é Xoves á noite e están esperando 150 00:06:42,530 --> 00:06:45,880 o TF para camiñar con eles a través de cada cousa para o conxunto de problemas debido 151 00:06:45,880 --> 00:06:47,140 ao mediodía do día seguinte. 152 00:06:47,140 --> 00:06:48,300 Ten sentido? 153 00:06:48,300 --> 00:06:50,890 Unha vez máis, por favor, nos atopar no medio. 154 00:06:50,890 --> 00:06:53,230 >> E, finalmente, as altas expectativas. 155 00:06:53,230 --> 00:06:58,010 Eu vou estar de clasificación todo o mundo que é na miña sección, ou marcando a súa 156 00:06:58,010 --> 00:06:59,020 conxuntos de problemas. 157 00:06:59,020 --> 00:07:01,240 Non volveron problema definir cero ou un aínda. 158 00:07:01,240 --> 00:07:02,250 Estamos moito sobre iso. 159 00:07:02,250 --> 00:07:04,970 Levou moito tempo para rematar establecer seccións, e agora 160 00:07:04,970 --> 00:07:05,560 podemos empezar a clasificación. 161 00:07:05,560 --> 00:07:09,560 >> Vou leva-los de volta para ti o máis axiña posible. 162 00:07:09,560 --> 00:07:11,890 Estes son algúns dos meus orientandos aí. 163 00:07:11,890 --> 00:07:14,150 Vou leva-los de volta para ti o máis axiña posible. 164 00:07:14,150 --> 00:07:18,046 E para o problema de conxunto de dous, estaremos en programar e imos comezar facelos 165 00:07:18,046 --> 00:07:20,440 para ti moi rapidamente tras ti transformalo los dentro 166 00:07:20,440 --> 00:07:24,130 >> Cando comeza o seu conxunto de problemas cara atrás, vostede terá puntuación, como vostede sabe de 167 00:07:24,130 --> 00:07:28,150 lectura do currículo - exactitude, proxecto, ámbito e estilo puntuacións. 168 00:07:28,150 --> 00:07:29,760 Tamén terá comentarios. 169 00:07:29,760 --> 00:07:32,160 Os comentarios son máis importantes que as correas. 170 00:07:32,160 --> 00:07:33,780 Eu creo que é seguro dicir que. 171 00:07:33,780 --> 00:07:37,930 >> Puntuacións son só un número dun a cinco. 172 00:07:37,930 --> 00:07:38,930 É difícil ler naqueles. 173 00:07:38,930 --> 00:07:40,720 É difícil mellorar daqueles. 174 00:07:40,720 --> 00:07:44,460 Pero os comentarios serán apuntar específico cousas que fixo ben ou áreas 175 00:07:44,460 --> 00:07:48,360 pode mellorar e darlle algúns ideas para o futuro ou alternativa 176 00:07:48,360 --> 00:07:49,160 formas de facer as cousas. 177 00:07:49,160 --> 00:07:52,270 >> Entón, por favor, por favor, por favor lea a través dos comentarios. 178 00:07:52,270 --> 00:07:54,190 Eu coloque unha morea de tempo en eses comentarios. 179 00:07:54,190 --> 00:07:57,190 Por favor, lea con eles e non só desprazar para abaixo para o fondo do 180 00:07:57,190 --> 00:08:01,890 PDF, busque a súa puntuación, ou ir en liña e atopar a súa puntuación, e despois pasar por alto 181 00:08:01,890 --> 00:08:02,800 os comentarios. 182 00:08:02,800 --> 00:08:03,910 Isto non é como está pode ir mellor. 183 00:08:03,910 --> 00:08:06,550 Isto non é como está indo para aumentar súa puntuación final, só 184 00:08:06,550 --> 00:08:07,340 mirando para as puntuacións. 185 00:08:07,340 --> 00:08:08,760 Por favor, mire estes comentarios. 186 00:08:08,760 --> 00:08:13,240 >> E ao longo da liña de grandes expectativas, unha vez máis, como dixen, vostede 187 00:08:13,240 --> 00:08:14,260 poden ser pontuadas dun a cinco. 188 00:08:14,260 --> 00:08:17,120 Dous, tres, e catro son os gran maioría das contas 189 00:08:17,120 --> 00:08:17,940 vai estar recibindo. 190 00:08:17,940 --> 00:08:20,180 E fives están realmente raro. 191 00:08:20,180 --> 00:08:21,720 Sempre hai cousas o que podemos facer mellor. 192 00:08:21,720 --> 00:08:23,490 Cada vez que codificar un programa, non hai sempre algo que me 193 00:08:23,490 --> 00:08:24,800 podería ter feito mellor. 194 00:08:24,800 --> 00:08:28,740 >> Entón, en vez de dicir que comeza un período de cinco o tempo en todo e fixo 195 00:08:28,740 --> 00:08:31,960 todo perfecto, eu non creo que calquera de nós realmente cremos que nós - ou 196 00:08:31,960 --> 00:08:34,830 Por sorte, nós non facemos todo mellorar o tempo. 197 00:08:34,830 --> 00:08:37,010 Entón non se preocupe se non recibín cinco. 198 00:08:37,010 --> 00:08:40,470 A cinco non mapea a un A, un catro non mapea a un B, tres non 199 00:08:40,470 --> 00:08:42,950 non mapa nunha C. Isto non é como as puntuacións traballar. 200 00:08:42,950 --> 00:08:48,140 >> Como David xa dixen moitas veces, en final do semestre as súas puntuacións e 201 00:08:48,140 --> 00:08:53,390 entrada de min, o seu TF, reúnense e determinar a clasificación final para ti. 202 00:08:53,390 --> 00:08:56,760 Pero, de novo, non é cinco, A, catro, B, et cetera. 203 00:08:56,760 --> 00:09:01,150 Entón eu vou ter grandes expectativas para vós. 204 00:09:01,150 --> 00:09:03,670 Vou esperar un bo problema conxuntos e eu vou dar 205 00:09:03,670 --> 00:09:05,010 o producto como tal. 206 00:09:05,010 --> 00:09:07,430 E non vai dicir que é indo para obter un grao peor. 207 00:09:07,430 --> 00:09:09,760 Está clasificada en termos de o seu progreso de semana 208 00:09:09,760 --> 00:09:11,260 cero cara ao final do curso. 209 00:09:11,260 --> 00:09:17,190 >> E, finalmente, en termos de alta expectativas en clase, encántame cando 210 00:09:17,190 --> 00:09:18,460 as persoas participan. 211 00:09:18,460 --> 00:09:23,180 Entendo que algunhas persoas se senten máis ou menos cómodo participante. 212 00:09:23,180 --> 00:09:26,050 Outras persoas están participando non levantando a man e 213 00:09:26,050 --> 00:09:27,320 falar o tempo. 214 00:09:27,320 --> 00:09:30,570 Pero nesta clase van ser facendo unha serie de pequenos problemas, unha morea 215 00:09:30,570 --> 00:09:33,770 de mini preguntas, e, a continuación, algúns maiores problemas de codificación. 216 00:09:33,770 --> 00:09:36,760 Entón, en definitiva traballar estes exercicios fóra cando facelas no seu computador ou en 217 00:09:36,760 --> 00:09:37,900 unha folla de papel. 218 00:09:37,900 --> 00:09:40,933 >> Pero eu tamén vou che dar algún tempo antes Alguén sempre ten que responder a algunhas 219 00:09:40,933 --> 00:09:42,220 das preguntas que eu pido. 220 00:09:42,220 --> 00:09:44,930 Entón por que eu vou darlle un tempo para pensar sobre iso, porque nós imos 221 00:09:44,930 --> 00:09:49,380 facer as cousas de socios, ás veces, Vou esperar que todos 222 00:09:49,380 --> 00:09:52,150 para ser contratado un pouco. 223 00:09:52,150 --> 00:09:56,030 E por falta dun termo mellor, non probablemente será chamada fría, que 224 00:09:56,030 --> 00:09:59,045 é o lugar onde todo o mundo vai ter a oportunidade pensar sobre a resposta, e, a continuación, 225 00:09:59,045 --> 00:10:01,150 Eu ligo para ti, e, a continuación, vai dicir a resposta. 226 00:10:01,150 --> 00:10:05,200 >> Non hai problema, ou se asustar con iso. 227 00:10:05,200 --> 00:10:08,610 Xa fixen iso no pasado e atopamos que é moito máis exitoso, 228 00:10:08,610 --> 00:10:11,810 tamén ler a investigación educativa no que a determinar se era ou non un 229 00:10:11,810 --> 00:10:12,640 boa táctica. 230 00:10:12,640 --> 00:10:15,790 É moi útil, especialmente se dar aos alumnos tempo para pensar sobre o 231 00:10:15,790 --> 00:10:20,070 respostas e non sexa los só vir e dicir isto pronto de cara. 232 00:10:20,070 --> 00:10:22,620 Pero se non sentirse cómodo responder, eu tamén son moi bo en 233 00:10:22,620 --> 00:10:25,370 sentindo que fora, e nós non imos poñelas no lugar, especialmente en 234 00:10:25,370 --> 00:10:28,240 a cámara, a pesar de ningún dos está na cámara agora. 235 00:10:28,240 --> 00:10:32,250 >> Polo tanto, estas son as normas que eu teño. 236 00:10:32,250 --> 00:10:34,670 Só unha cousa ao longo das liñas de atopar no medio. 237 00:10:34,670 --> 00:10:36,490 Vou dar a vostedes unha morea de feedback. 238 00:10:36,490 --> 00:10:38,310 Por favor, me dea un feedback ben. 239 00:10:38,310 --> 00:10:46,190 Hai un sitio web, sayat.me/cs50. 240 00:10:46,190 --> 00:10:48,380 Polo tanto, é un producto honesto. 241 00:10:48,380 --> 00:10:50,730 Se queres dar a el durante a sección, Eu recibín un correo electrónico cada vez que isto ocorre. 242 00:10:50,730 --> 00:10:53,820 Imos facer unha pausa un pouco, entón eu vou ollar a través do feedback despois. 243 00:10:53,820 --> 00:10:55,970 Se ten calquera producto, por favor, deixa-me alí. 244 00:10:55,970 --> 00:11:01,380 >> Se me dar feedback sobre o Q, que é marabilloso, pero este é o guía 245 00:11:01,380 --> 00:11:02,570 o que fai ao final. 246 00:11:02,570 --> 00:11:05,690 Pero iso será ao final do semestre para Non vou ser capaz de aproveitar calquera que 247 00:11:05,690 --> 00:11:08,620 producto e transformalo en ensinar vostedes mellor. 248 00:11:08,620 --> 00:11:11,020 Entón, por favor, se ten calquera producto, deixa para min. 249 00:11:11,020 --> 00:11:12,010 Amo producto. 250 00:11:12,010 --> 00:11:14,490 Back to FOP, temos o producto o tempo. 251 00:11:14,490 --> 00:11:18,610 >> Vostede me pode dar vantaxes, cousas boas, deltas, cousas que podo mellorar. 252 00:11:18,610 --> 00:11:20,600 Podes comentar as miñas roupas. 253 00:11:20,600 --> 00:11:24,170 Isto non vai ser tan útil, pero é benvidos para comentar calquera e 254 00:11:24,170 --> 00:11:24,570 todo. 255 00:11:24,570 --> 00:11:26,280 Por favor, por favor, me dea feedback. 256 00:11:26,280 --> 00:11:28,740 Eu valoro moito iso e Significa moito para min. 257 00:11:28,740 --> 00:11:31,760 258 00:11:31,760 --> 00:11:33,280 >> Unha norma, divertido. 259 00:11:33,280 --> 00:11:34,530 Nós imos ter unha chea de diversión. 260 00:11:34,530 --> 00:11:36,930 Espero que neste curso, vai ten unha chea de diversión. 261 00:11:36,930 --> 00:11:38,780 Teremos doces na sección. 262 00:11:38,780 --> 00:11:40,040 Haberá música. 263 00:11:40,040 --> 00:11:45,510 Estaremos espero coñecer un outra algo así, entón eu quero 264 00:11:45,510 --> 00:11:47,690 que este sexa un desfrute, experiencia envolvente. 265 00:11:47,690 --> 00:11:50,890 >> Sei que algúns de vós xa durmiron en as conferencias que tivo hoxe máis cedo, 266 00:11:50,890 --> 00:11:53,750 por iso espero que non vai ser agora o caso. 267 00:11:53,750 --> 00:11:55,960 E se é o caso agora, só non ronco porque iso podería 268 00:11:55,960 --> 00:11:57,580 ser trabado na cámara. 269 00:11:57,580 --> 00:11:58,770 Doce. 270 00:11:58,770 --> 00:12:04,020 Calquera dúbida, comentarios ou preocupacións Antes de pasar calquera cousa temos 271 00:12:04,020 --> 00:12:05,270 falou? 272 00:12:05,270 --> 00:12:08,620 273 00:12:08,620 --> 00:12:11,350 Grande. 274 00:12:11,350 --> 00:12:14,830 >> Entón, nós estamos indo a ir en matrices primeiro. 275 00:12:14,830 --> 00:12:17,140 Isto é como facer un array. 276 00:12:17,140 --> 00:12:18,410 Nós xa vimos isto antes. 277 00:12:18,410 --> 00:12:21,830 Ten un tipo de datos, ten un nome, e entón tes un tamaño. 278 00:12:21,830 --> 00:12:24,430 Ben aquí, eu creo dúas matrices. 279 00:12:24,430 --> 00:12:30,360 O primeiro é un conxunto de caracteres, e ten 26 espazos. 280 00:12:30,360 --> 00:12:33,790 O segundo é un array de puntuación, e ten tres 281 00:12:33,790 --> 00:12:35,390 espazos de tres enteiros. 282 00:12:35,390 --> 00:12:35,827 Si? 283 00:12:35,827 --> 00:12:38,200 >> ALUMNO: Son todos estes diapositivas dispoñible en algún lugar para nós? 284 00:12:38,200 --> 00:12:38,850 >> Jason Hirschhorn: Gran pregunta. 285 00:12:38,850 --> 00:12:40,650 A pregunta era: son todos Estes diapositivas dispoñibles? 286 00:12:40,650 --> 00:12:40,920 Si 287 00:12:40,920 --> 00:12:43,420 Todas estas láminas estará dispoñible, e, no futuro, vou envialas a 288 00:12:43,420 --> 00:12:44,640 antes sección. 289 00:12:44,640 --> 00:12:47,340 Hoxe, con todo, xa que este é o primeiro semana, tivemos un inicio tardío. 290 00:12:47,340 --> 00:12:49,675 Por iso, normalmente, vai ter eses diapositivas, pero elas estarán dispoñibles en liña e 291 00:12:49,675 --> 00:12:52,420 Vou envialas a ti logo da clase. 292 00:12:52,420 --> 00:12:54,140 Calquera outras preguntas? 293 00:12:54,140 --> 00:13:01,330 >> Entón, de novo, as matrices son caixas, por falta de unha palabra mellor, que posúan múltiple 294 00:13:01,330 --> 00:13:06,420 elementos dun tipo de datos, e eles están á beira do outro na memoria. 295 00:13:06,420 --> 00:13:11,370 E así, unha vez máis, esta é a forma como pode facer dous tipos de matrices. 296 00:13:11,370 --> 00:13:15,090 >> Entón, despois de que fixo a súa matriz que a primeira liña - puntuación int, soporte 297 00:13:15,090 --> 00:13:17,430 tres, preto do soporte - vostede quere arrincar. 298 00:13:17,430 --> 00:13:19,050 Quere poñer algúns valores alí. 299 00:13:19,050 --> 00:13:24,660 E é así que poñer algúns valores en alí, basta escoller o indice e 300 00:13:24,660 --> 00:13:25,670 escribir o número. 301 00:13:25,670 --> 00:13:27,130 Imos aproveitar esta na tarxeta. 302 00:13:27,130 --> 00:13:28,270 Todos poden ver? 303 00:13:28,270 --> 00:13:29,030 Todo o mundo pode ver. 304 00:13:29,030 --> 00:13:30,790 Doce. 305 00:13:30,790 --> 00:13:36,550 >> Entón iso vai ser o meu array chamado Scores. 306 00:13:36,550 --> 00:13:37,730 Como podes ver, é o tamaño tres. 307 00:13:37,730 --> 00:13:39,210 Hai tres caixas de alí. 308 00:13:39,210 --> 00:13:43,120 Cada un pode caber o que tipo de tipo de datos? 309 00:13:43,120 --> 00:13:43,790 >> ALUMNO: Integer. 310 00:13:43,790 --> 00:13:45,250 >> Jason Hirschhorn: Un enteiro nun presente. 311 00:13:45,250 --> 00:13:48,790 Nós escribir decenas int, ea primeira palabra é o tipo de datos que 312 00:13:48,790 --> 00:13:50,910 ir nas caixas desa matriz. 313 00:13:50,910 --> 00:13:52,160 Entón, podo encaixar tres. 314 00:13:52,160 --> 00:13:54,880 315 00:13:54,880 --> 00:13:57,000 Por que eu teño cero ata alí na tarxeta? 316 00:13:57,000 --> 00:13:59,240 Por que dicir puntuación de cero é igual a 1? 317 00:13:59,240 --> 00:14:02,090 318 00:14:02,090 --> 00:14:03,180 Lembre me do seu nome. 319 00:14:03,180 --> 00:14:03,470 >> ALUMNO: Kurt. 320 00:14:03,470 --> 00:14:04,070 >> Jason Hirschhorn: Kurt. 321 00:14:04,070 --> 00:14:04,480 >> ESTUDANTE: si. 322 00:14:04,480 --> 00:14:04,920 >> Jason Hirschhorn: Por que? 323 00:14:04,920 --> 00:14:07,230 >> ALUMNO: Por o primeiro índice é cero, imos comezar a partir de cero. 324 00:14:07,230 --> 00:14:08,480 >> Jason Hirschhorn: Entón, imos comezar a partir de cero. 325 00:14:08,480 --> 00:14:09,580 Isto é exactamente correcto. 326 00:14:09,580 --> 00:14:12,340 Esta é a parte confusa e viaxe vontade ti, especialmente cando se está 327 00:14:12,340 --> 00:14:14,900 intentando percorrer matrices, o que imos facer de aquí a pouco. 328 00:14:14,900 --> 00:14:15,980 Comezamos a partir de cero. 329 00:14:15,980 --> 00:14:19,170 Entón, se eu queira referirse ao primeiro caixa, non é unha caixa. 330 00:14:19,170 --> 00:14:22,290 Desafortunadamente, é caixa cero. 331 00:14:22,290 --> 00:14:26,460 A segunda é unha caixa, e no presente caso, o terceiro é unha caixa de dúas. 332 00:14:26,460 --> 00:14:28,700 >> E sobre o cadro tres? 333 00:14:28,700 --> 00:14:30,670 Onde caixa tres é? 334 00:14:30,670 --> 00:14:34,750 Ou se quero facer contas, soporte tres, franxa estreita, o que é iso? 335 00:14:34,750 --> 00:14:37,650 336 00:14:37,650 --> 00:14:39,760 Entón, vostede dixo que o personaxe nulo. 337 00:14:39,760 --> 00:14:41,600 Outros pensamentos? 338 00:14:41,600 --> 00:14:44,590 Qué é o soporte de marcar tres soporte? 339 00:14:44,590 --> 00:14:48,045 >> ALUMNO: realmente non existe porque só definir como puntuación, 340 00:14:48,045 --> 00:14:49,370 soporte de tres. 341 00:14:49,370 --> 00:14:51,400 >> Jason Hirschhorn: Entón vostede di realmente non existe. 342 00:14:51,400 --> 00:14:54,230 Nalgúns casos, cando estamos lidando con cordas, xeralmente nós imos poñer un valor nulo 343 00:14:54,230 --> 00:14:54,790 personaxe no final. 344 00:14:54,790 --> 00:14:56,100 Nós imos chegar a iso nun segundo. 345 00:14:56,100 --> 00:15:01,020 Pero, neste caso, non hai hai unha terceira caixa aquí. 346 00:15:01,020 --> 00:15:06,390 Así, a última caixa en calquera matriz tamaño é menos 1. 347 00:15:06,390 --> 00:15:11,310 Entón, se temos unha matriz de tamaño n, a primeira caixa está en cero, a última é 348 00:15:11,310 --> 00:15:12,700 en n menos 1. 349 00:15:12,700 --> 00:15:14,970 E neste caso, non existe. 350 00:15:14,970 --> 00:15:17,970 Hai algo aquí en memoria, pero non é o noso. 351 00:15:17,970 --> 00:15:18,460 Non el propio. 352 00:15:18,460 --> 00:15:19,570 Non pedimos para el. 353 00:15:19,570 --> 00:15:22,606 Polo tanto, se tentar acceder a ela, o que imos facer algo, estamos indo probablemente para 354 00:15:22,606 --> 00:15:24,970 entrar en apuros. 355 00:15:24,970 --> 00:15:29,180 >> Neste caso, estou inicializar meu matriz con tres variables. 356 00:15:29,180 --> 00:15:36,195 Estamos poñendo un en caixa cero, un dous no cadro unha, e tres no cadro dous. 357 00:15:36,195 --> 00:15:39,280 Alguén ten algunha dúbida sobre arrincar un array? 358 00:15:39,280 --> 00:15:44,540 359 00:15:44,540 --> 00:15:46,970 >> Entón nós fomos ao longo deste momento. 360 00:15:46,970 --> 00:15:52,725 Scores, soporte de tres, preto do soporte, que non existe. 361 00:15:52,725 --> 00:15:58,130 Estamos a cero indexadas en ciencia da computación, entón comezamos a contar desde cero. 362 00:15:58,130 --> 00:16:01,860 O último cadro dispoñible para nós, é a terceira caixa, pero o cadro chámase 363 00:16:01,860 --> 00:16:03,110 número dous. 364 00:16:03,110 --> 00:16:05,790 365 00:16:05,790 --> 00:16:09,710 >> Alí en baixo, esta é unha alternativa xeito de arrincar arrays. 366 00:16:09,710 --> 00:16:13,410 Así, no canto de crear unha matriz sobre liña, enche a primeira caixa e logo 367 00:16:13,410 --> 00:16:17,070 a segunda caixa, a continuación, a terceira caixa, pode facer todo nunha soa liña. 368 00:16:17,070 --> 00:16:19,040 Entón, nesa liña, ambas matrices. 369 00:16:19,040 --> 00:16:23,460 Isto xera a mesma matriz exacta como o que creamos aquí, pero 370 00:16:23,460 --> 00:16:24,710 só fai iso nunha liña. 371 00:16:24,710 --> 00:16:29,740 372 00:16:29,740 --> 00:16:31,360 >> Agora creamos a nosa matriz. 373 00:16:31,360 --> 00:16:34,100 Normalmente, unha vez que crear unha matriz, ten quero facer algo con el, se 374 00:16:34,100 --> 00:16:38,430 que é enche-lo ou facer as cousas de fóra e imprimir-los na pantalla. 375 00:16:38,430 --> 00:16:42,270 Neste caso, estamos pasando pola nosa conxunto puntuacións, que inicializar en 376 00:16:42,270 --> 00:16:44,740 a primeira liña aquí en gris. 377 00:16:44,740 --> 00:16:49,600 E, a continuación, na segunda liña, comezan iteración través da matriz. 378 00:16:49,600 --> 00:16:52,640 Alguén ten algunha dúbida sobre a estrutura dun loop? 379 00:16:52,640 --> 00:16:55,250 380 00:16:55,250 --> 00:16:56,400 >> Entón que é o loop for. 381 00:16:56,400 --> 00:16:59,530 Temos a nosa condición de inicio, e logo, nosa condición final, e entón nós 382 00:16:59,530 --> 00:17:01,160 iteración, i, cada loop. 383 00:17:01,160 --> 00:17:05,579 E nas claves no presente para loop, o que pasa se eu fose para executar 384 00:17:05,579 --> 00:17:06,290 este programa? 385 00:17:06,290 --> 00:17:10,410 Alguén me pode dicir o que teriamos? 386 00:17:10,410 --> 00:17:11,589 [? Matu? ?] 387 00:17:11,589 --> 00:17:13,819 >> Matu: Imprimir todos os resultados en cada liña. 388 00:17:13,819 --> 00:17:14,900 Sería imprimir cada puntuación nunha liña separada. 389 00:17:14,900 --> 00:17:16,300 >> Jason Hirschhorn: O que é exactamente sería imprimir? 390 00:17:16,300 --> 00:17:19,790 >> ALUMNO: Sería imprimir un, despois dous, despois tres. 391 00:17:19,790 --> 00:17:20,235 >> Jason Hirschhorn: Exactamente. 392 00:17:20,235 --> 00:17:23,490 Ía imprimir un, despois dous, despois tres, cada un en liñas separadas, xa que 393 00:17:23,490 --> 00:17:27,810 imos a través da matriz e vai ver que a segunda, o printf 394 00:17:27,810 --> 00:17:29,275 declaración, puntuacións i. 395 00:17:29,275 --> 00:17:32,880 Así, na primeira rolda a través de noso para loop, i é igual a cero, o que significa que estamos 396 00:17:32,880 --> 00:17:34,640 quedando o valor en puntuación de cero - 397 00:17:34,640 --> 00:17:36,900 que, se volver para noso diagrama, é un - 398 00:17:36,900 --> 00:17:38,630 e recheo en - 399 00:17:38,630 --> 00:17:39,700 Oh, el di que c. 400 00:17:39,700 --> 00:17:41,680 Iso debe ser% d. 401 00:17:41,680 --> 00:17:43,970 Vou corrixir isto en algo cando Eu entrego iso para vós. 402 00:17:43,970 --> 00:17:48,670 Pero nós estamos presentando un enteiro polo que debe ser% d aquí, non% c. 403 00:17:48,670 --> 00:17:50,340 Que é% c para? 404 00:17:50,340 --> 00:17:50,790 >> ESTUDANTE: Carácter. 405 00:17:50,790 --> 00:17:52,680 >> Jason Hirschhorn: Carácter, exactamente. 406 00:17:52,680 --> 00:17:53,690 Qué é o outro? 407 00:17:53,690 --> 00:17:56,260 Se non queres facer d% a un enteiro, o que máis pode facer? 408 00:17:56,260 --> 00:17:57,000 >> ALUMNO: i. 409 00:17:57,000 --> 00:17:59,180 >> Jason Hirschhorn:% i, exactamente. 410 00:17:59,180 --> 00:18:01,660 Entón, calquera dúbida sobre a iteración a través da matriz? 411 00:18:01,660 --> 00:18:05,500 412 00:18:05,500 --> 00:18:07,800 Entón o que ocorre se non se fai iso? 413 00:18:07,800 --> 00:18:10,290 No canto de facer i é inferior a tres, nos i é menos 414 00:18:10,290 --> 00:18:11,390 que ou igual a tres. 415 00:18:11,390 --> 00:18:13,420 Que pasa cando executar este código? 416 00:18:13,420 --> 00:18:17,510 417 00:18:17,510 --> 00:18:18,940 Si, Annie? 418 00:18:18,940 --> 00:18:22,030 >> ALUMNO: Eles están indo para imprimir cousas estrañas na cuarta liña. 419 00:18:22,030 --> 00:18:23,850 >> Jason Hirschhorn: Entón dixo, é vai imprimir cousas estrañas no 420 00:18:23,850 --> 00:18:24,390 cuarta liña? 421 00:18:24,390 --> 00:18:25,750 Alguén ten unha resposta á súa pregunta? 422 00:18:25,750 --> 00:18:28,940 423 00:18:28,940 --> 00:18:33,160 Así, as posibilidades son de que, cando chegamos ao - 424 00:18:33,160 --> 00:18:36,700 Entón, na cuarta rolda a través da nosa para loop, así como penso, Annie, 425 00:18:36,700 --> 00:18:39,430 será puntuacións franxa tres, que que xa descubriu que non 426 00:18:39,430 --> 00:18:41,990 existe, e nós imos tratar e acceder tanto, imprimir lo 427 00:18:41,990 --> 00:18:43,350 fóra, use-o de algunha maneira. 428 00:18:43,350 --> 00:18:46,060 Así, o ordenador probablemente ir con rabia de nós. 429 00:18:46,060 --> 00:18:46,760 Está absolutamente seguro. 430 00:18:46,760 --> 00:18:48,830 >> Pode pechar o programa completo. 431 00:18:48,830 --> 00:18:52,222 Pode imprimir algo moi raro. 432 00:18:52,222 --> 00:18:53,420 Non pode dicir con certeza. 433 00:18:53,420 --> 00:18:56,210 As probabilidades son de que probablemente vai estar bravo con ti e só saír inmediatamente. 434 00:18:56,210 --> 00:19:00,100 >> Pero este é un erro común que vai ter onde está só fóra por un de 435 00:19:00,100 --> 00:19:05,110 fin, e este é un problema que vai praga que en toda a súa codificación. 436 00:19:05,110 --> 00:19:09,350 437 00:19:09,350 --> 00:19:14,150 Un xeito que máis me gusta de facer é só nun cadro branco, pasar por cada iteración 438 00:19:14,150 --> 00:19:18,190 do lazo na man ou no papel para ver o que está pasando, e entón 439 00:19:18,190 --> 00:19:20,440 xeralmente entenden, oh wait, eu non debería ir á menor ou 440 00:19:20,440 --> 00:19:20,870 igual a tres. 441 00:19:20,870 --> 00:19:24,730 Eu debería ter parado a dous, que se o que pasa se a súa condición é menos 442 00:19:24,730 --> 00:19:26,206 que tres. 443 00:19:26,206 --> 00:19:29,120 Calquera dúbida tan lonxe? 444 00:19:29,120 --> 00:19:31,010 Doce. 445 00:19:31,010 --> 00:19:33,360 >> Entón, todos vostedes teñen os seus ordenadores aberto. 446 00:19:33,360 --> 00:19:36,760 Nós imos darlle 2-3 minutos para escribir un programa que 447 00:19:36,760 --> 00:19:40,460 crea un array cos enteiros dunha por cinco anos e, a continuación, imprime cada 448 00:19:40,460 --> 00:19:41,720 enteiro nunha nova liña. 449 00:19:41,720 --> 00:19:44,330 450 00:19:44,330 --> 00:19:46,000 E se tes algunha dúbida, levante a man. 451 00:19:46,000 --> 00:19:48,140 Estou feliz de pasar por aquí. 452 00:19:48,140 --> 00:19:50,630 Como dixen, imos dar tres minutos a escribir isto. 453 00:19:50,630 --> 00:20:41,300 454 00:20:41,300 --> 00:20:45,110 Están todos ben, se eu fose a un nova ventá e pechar isto? 455 00:20:45,110 --> 00:22:13,420 456 00:22:13,420 --> 00:22:15,520 >> Sinto moito se non tivo a oportunidade para rematar, pero imos facelo 457 00:22:15,520 --> 00:22:17,310 xuntos agora. 458 00:22:17,310 --> 00:22:23,640 Entón, na pantalla, eu # include cs50.h, # include stdio.h. 459 00:22:23,640 --> 00:22:26,090 Alguén me pode dicir o que estas dúas liñas fan? 460 00:22:26,090 --> 00:22:32,250 461 00:22:32,250 --> 00:22:33,155 Michael? 462 00:22:33,155 --> 00:22:40,030 >> ALUMNO: Inclúense as bibliotecas CS50 que fixo e que ten Steve 463 00:22:40,030 --> 00:22:44,210 gardados para que poida usar para facer a súa vida máis fácil. 464 00:22:44,210 --> 00:22:46,820 >> Jason Hirschhorn: Entón dixo que eles incluír as librerías, unha que CS50 465 00:22:46,820 --> 00:22:51,230 feita, cs50.h, e un que é só estándar, ven con 466 00:22:51,230 --> 00:22:53,510 o paquete C, stdio.h. 467 00:22:53,510 --> 00:22:54,890 O que quere dicir incluír as bibliotecas, aínda que? 468 00:22:54,890 --> 00:22:55,770 Pode ser un pouco máis específico? 469 00:22:55,770 --> 00:23:01,180 >> ALUMNO: El fai que se pode empregar certas palabras de código para unha 470 00:23:01,180 --> 00:23:05,710 funcionando pasar sen ter que ir e facer a función c si mesmo. 471 00:23:05,710 --> 00:23:08,730 >> Jason Hirschhorn: Pode darme un exemplo? 472 00:23:08,730 --> 00:23:11,160 >> ESTUDANTE: Como printf é aquel que pode usar. 473 00:23:11,160 --> 00:23:11,860 >> Jason Hirschhorn: printf. 474 00:23:11,860 --> 00:23:14,680 Entón dixo que printf é un destes funcións en vez de ter que 475 00:23:14,680 --> 00:23:19,840 printf escribir no seu propio país, printf é incluído na verdade en stdio.h, para que 476 00:23:19,840 --> 00:23:22,010 só pode usalo e asumir que vai traballar. 477 00:23:22,010 --> 00:23:28,270 En stdio.h, se abriu o ficheiro, sería incluír como printf 478 00:23:28,270 --> 00:23:31,620 obras, todo o código para printf? 479 00:23:31,620 --> 00:23:33,105 Por que está bailando a cabeza? 480 00:23:33,105 --> 00:23:35,710 >> ALUMNO: Por o ficheiro de cabeceira só inclúe a declaración da función. 481 00:23:35,710 --> 00:23:36,400 >> Jason Hirschhorn: Exactamente. 482 00:23:36,400 --> 00:23:39,680 O ficheiro de cabeceira só inclúe declaración da función. 483 00:23:39,680 --> 00:23:42,950 Entón, basicamente, cando compilar tanto, bateu Fai a conta, que imos facer nun 484 00:23:42,950 --> 00:23:48,070 segundo, o compilador sabe que se usa printf, printf existe. 485 00:23:48,070 --> 00:23:49,370 Vai ser definido en algún lugar. 486 00:23:49,370 --> 00:23:51,200 Non é un problema para vostede usalo. 487 00:23:51,200 --> 00:23:55,490 E entón, máis tarde, que incluirá a ceros e uns que realmente conteñen 488 00:23:55,490 --> 00:23:58,360 printf de implantación e fundín-los co seu código. 489 00:23:58,360 --> 00:24:01,935 Como asegurarse de que inclúe o uns e ceros para, por exemplo, conseguir corda? 490 00:24:01,935 --> 00:24:05,670 491 00:24:05,670 --> 00:24:07,210 >> ESTUDANTE: Obter corda está cs50.h. 492 00:24:07,210 --> 00:24:07,830 >> Jason Hirschhorn: Correcto. 493 00:24:07,830 --> 00:24:11,110 Entón, que di estar corda existe, declaración da función. 494 00:24:11,110 --> 00:24:15,410 Pero entón os ceros e uns, o binario arquivo que realmente inclúe a 495 00:24:15,410 --> 00:24:17,370 implantación de corda get? 496 00:24:17,370 --> 00:24:19,310 Como asegurarse de que vai co seu programa? 497 00:24:19,310 --> 00:24:23,220 >> ALUMNO: Pase o vinculador argumento de liña de comandos. 498 00:24:23,220 --> 00:24:25,430 >> Jason Hirschhorn: Pase o ligador no argumento da liña de comandos. 499 00:24:25,430 --> 00:24:26,700 Como fai iso? 500 00:24:26,700 --> 00:24:29,730 >> ALUMNO: É a l-liña no bumbum 501 00:24:29,730 --> 00:24:30,480 >> Jason Hirschhorn: Exactamente. 502 00:24:30,480 --> 00:24:32,900 Dis-l CS50, non? 503 00:24:32,900 --> 00:24:34,940 Isto inclúe os uns e ceros. 504 00:24:34,940 --> 00:24:36,460 >> ALUMNO: Pero Facer fai que, para ti, non? 505 00:24:36,460 --> 00:24:37,010 >> Jason Hirschhorn: Exactamente. 506 00:24:37,010 --> 00:24:40,390 Faino por ti, pero, finalmente, Non terá que facer, ou 507 00:24:40,390 --> 00:24:43,220 vai ter que facer unha facer no seu propio país, de xeito que é un 508 00:24:43,220 --> 00:24:43,940 bo para lembrar. 509 00:24:43,940 --> 00:24:47,350 Se estaba indo a usar un destes outras bibliotecas, non só ten 510 00:24:47,350 --> 00:24:49,490 para escribir # include e logo á biblioteca. 511 00:24:49,490 --> 00:24:51,420 Tamén cómpre vincula-lo dentro 512 00:24:51,420 --> 00:24:54,480 E esas dúas cousas son diferentes. L-CS50 é diferente 513 00:24:54,480 --> 00:24:59,260 de # include cs50.h. 514 00:24:59,260 --> 00:25:02,870 >> Entón temos int main baleiro rizados claves, e agora imos ao código 515 00:25:02,870 --> 00:25:03,590 dentro principal. 516 00:25:03,590 --> 00:25:07,090 A primeira liña que eu teño aquí é un comentario que di, crear unha matriz 517 00:25:07,090 --> 00:25:08,820 con ints dun a cinco. 518 00:25:08,820 --> 00:25:12,600 ¿Que é unha boa palabra para describir o que eu teño agora na pantalla, só 519 00:25:12,600 --> 00:25:14,170 comentarios dentro principal? 520 00:25:14,170 --> 00:25:15,722 O que chamamos iso? 521 00:25:15,722 --> 00:25:16,820 >> ALUMNO: Pseudocódigo. 522 00:25:16,820 --> 00:25:17,840 >> Jason Hirschhorn: Pseudocódigo. 523 00:25:17,840 --> 00:25:18,420 Grazas, Jeffrey. 524 00:25:18,420 --> 00:25:19,540 Isto é exactamente correcto. 525 00:25:19,540 --> 00:25:20,005 Pseudocódigo. 526 00:25:20,005 --> 00:25:22,854 Vostedes viron pseudocódigo antes? 527 00:25:22,854 --> 00:25:28,340 Levante a man se xa usou pseudocódigo antes de definir un problema. 528 00:25:28,340 --> 00:25:29,400 Aproximadamente a metade de vós. 529 00:25:29,400 --> 00:25:32,700 >> Recomendo o uso pseudocódigo para romper os problemas en 530 00:25:32,700 --> 00:25:35,210 menor, máis fácil de morder anacos. 531 00:25:35,210 --> 00:25:38,630 Por outra banda, se fai o pseudocódigo, ten ter os seus comentarios xa amplamente 532 00:25:38,630 --> 00:25:40,760 embutido, así que non ten que volver e tentar descubrir 533 00:25:40,760 --> 00:25:42,450 o que estaba facendo. 534 00:25:42,450 --> 00:25:44,730 Entón, alguén me pode dar esa primeira liña para crear un array con ints un 535 00:25:44,730 --> 00:25:45,980 a cinco anos? 536 00:25:45,980 --> 00:25:48,700 537 00:25:48,700 --> 00:25:49,130 Vostede? 538 00:25:49,130 --> 00:25:53,350 >> ALUMNO: Int e logo, pode chamar calquera número, e despois cadrado 539 00:25:53,350 --> 00:25:54,830 soporte de cinco anos. 540 00:25:54,830 --> 00:25:57,820 >> Jason Hirschhorn: números para int, corchete cinco. 541 00:25:57,820 --> 00:25:59,160 >> ALUMNO: Igual, e entón chaves. 542 00:25:59,160 --> 00:26:00,830 >> Jason Hirschhorn: Igual, chaves. 543 00:26:00,830 --> 00:26:01,830 >> ALUMNO: Un, dous, tres, catro. 544 00:26:01,830 --> 00:26:05,566 >> Jason Hirschhorn: Un, dous, tres, catro, cinco. 545 00:26:05,566 --> 00:26:07,390 >> ALUMNO: E entón claves e logo, punto e coma. 546 00:26:07,390 --> 00:26:09,240 >> Jason Hirschhorn: e Curly claves e punto e coma. 547 00:26:09,240 --> 00:26:10,330 Excelente. 548 00:26:10,330 --> 00:26:12,210 Imprimir cada int nunha nova liña. 549 00:26:12,210 --> 00:26:17,140 Pódese dar me que o código, por favor? 550 00:26:17,140 --> 00:26:17,530 [? Matu? ?] 551 00:26:17,530 --> 00:26:18,560 Dalle. 552 00:26:18,560 --> 00:26:20,440 >> ESTUDANTE: For ( 553 00:26:20,440 --> 00:26:21,750 >> Jason Hirschhorn: For ( 554 00:26:21,750 --> 00:26:23,740 >> ALUMNO: int i = 0 555 00:26:23,740 --> 00:26:26,070 >> Jason Hirschhorn: int i = 0 556 00:26:26,070 --> 00:26:28,190 >> ALUMNO: Punto e coma i inferior a cinco. 557 00:26:28,190 --> 00:26:31,680 >> Jason Hirschhorn: Punto e coma, i inferior a 5. 558 00:26:31,680 --> 00:26:33,600 >> ALUMNO: Punto e coma, i + +. 559 00:26:33,600 --> 00:26:35,140 >> Jason Hirschhorn: Punto e coma, i + +. 560 00:26:35,140 --> 00:26:37,720 >> ALUMNO: parénteses pechados, logo chave de apertura. 561 00:26:37,720 --> 00:26:39,410 >> Jason Hirschhorn: parénteses pechados e dúas chaves. 562 00:26:39,410 --> 00:26:40,510 Dentro das claves? 563 00:26:40,510 --> 00:26:47,640 >> ALUMNO: E entón printf "% d / n" 564 00:26:47,640 --> 00:26:48,695 >> Jason Hirschhorn: Sentímolo, espera. 565 00:26:48,695 --> 00:26:52,330 Printf "% d / n, multimedia pechada. 566 00:26:52,330 --> 00:26:55,980 >> ALUMNO: E entón cita pechado, comas, conta, soporte i. 567 00:26:55,980 --> 00:26:58,350 >> Jason Hirschhorn: Comma, conta, soporte i. 568 00:26:58,350 --> 00:26:59,970 >> ESTUDANTE: Sentímolo, números soporte i. 569 00:26:59,970 --> 00:27:01,416 >> Jason Hirschhorn: Números, soporte de i. 570 00:27:01,416 --> 00:27:03,200 >> ALUMNO: Sentímolo. 571 00:27:03,200 --> 00:27:04,750 E, a continuación, pechado entre parénteses, punto e coma. 572 00:27:04,750 --> 00:27:07,156 >> Jason Hirschhorn: Closed parénteses, o punto e coma. 573 00:27:07,156 --> 00:27:08,680 Vou gardar ese. 574 00:27:08,680 --> 00:27:12,670 Imos facer a conta. 575 00:27:12,670 --> 00:27:14,742 E como fago para executar o número? 576 00:27:14,742 --> 00:27:16,470 >> ALUMNO: barra invertida. 577 00:27:16,470 --> 00:27:17,180 >> ALUMNO: Dot barra - 578 00:27:17,180 --> 00:27:18,050 >> Jason Hirschhorn:. / Contar, exactamente. 579 00:27:18,050 --> 00:27:19,380 Grazas. . / Contar. 580 00:27:19,380 --> 00:27:21,060 Un, dous, tres, catro, cinco en novas liñas. 581 00:27:21,060 --> 00:27:22,110 Parece que funcionou. 582 00:27:22,110 --> 00:27:23,200 Si, Noah? 583 00:27:23,200 --> 00:27:26,660 >> ALUMNO: Tamén pode facer igual ou igual a catro, como i é inferior a 584 00:27:26,660 --> 00:27:27,630 ou igual a catro? 585 00:27:27,630 --> 00:27:31,190 Hai algunha vantaxe de facer menos de cinco anos, ou só unha forma diferente de 586 00:27:31,190 --> 00:27:31,610 gravala-lo? 587 00:27:31,610 --> 00:27:35,280 >> Jason Hirschhorn: Entón a cuestión é vostede podería ter feito i é inferior ou 588 00:27:35,280 --> 00:27:37,450 igual a catro, no canto de i é menor que cinco. 589 00:27:37,450 --> 00:27:38,935 Tería que traballar a mesma cousa? 590 00:27:38,935 --> 00:27:39,760 >> ALUMNO: Debería. 591 00:27:39,760 --> 00:27:39,860 >> Jason Hirschhorn: si. 592 00:27:39,860 --> 00:27:41,660 É totalmente tería funcionan do mesmo xeito. 593 00:27:41,660 --> 00:27:44,780 Estilisticamente, é xeralmente menor que, e podes ver nun segundo cando 594 00:27:44,780 --> 00:27:48,160 nós cordas, pode usar algo chamada strlen, que xa viu 595 00:27:48,160 --> 00:27:50,380 antes, para obter a lonxitude da cadea. 596 00:27:50,380 --> 00:27:54,090 E non pode facer menos que o igual strlen. 597 00:27:54,090 --> 00:27:56,500 Podería facer menos que ou igual strlen menos un. 598 00:27:56,500 --> 00:27:59,260 Entón é só máis agradable para facer menos que strlen. 599 00:27:59,260 --> 00:28:00,240 Si? 600 00:28:00,240 --> 00:28:03,270 >> ALUMNO: E na real quizzes, facer debemos proporcionar comentarios sobre o noso 601 00:28:03,270 --> 00:28:04,620 código tamén? 602 00:28:04,620 --> 00:28:06,130 >> Jason Hirschhorn: A cuestión estaba en probas, non se 603 00:28:06,130 --> 00:28:07,760 Ten que proporcionar comentarios? 604 00:28:07,760 --> 00:28:12,050 Entón, imos falar máis sobre probas cando eles veñen para arriba, pero en xeral, un bo 605 00:28:12,050 --> 00:28:14,530 regra de ouro é sempre que estea escribir código, proporcionar comentarios. 606 00:28:14,530 --> 00:28:18,130 Se obter o código mal, pero o comentar dereito, pode obter algúns 607 00:28:18,130 --> 00:28:22,280 crédito tanto de min se eu estaba clasificación vostede nun conxunto de problemas ou nun quiz. 608 00:28:22,280 --> 00:28:24,660 Entón, os comentarios son sempre bo para ofrecer. 609 00:28:24,660 --> 00:28:25,040 Doce. 610 00:28:25,040 --> 00:28:25,460 Conde. 611 00:28:25,460 --> 00:28:26,720 Excelente traballo. 612 00:28:26,720 --> 00:28:28,570 Imos seguir adiante. 613 00:28:28,570 --> 00:28:29,920 >> Strings. 614 00:28:29,920 --> 00:28:30,630 Strings. 615 00:28:30,630 --> 00:28:31,730 Nós xa vimos isto antes na charla. 616 00:28:31,730 --> 00:28:33,390 Isto fundiu miña mente cando eu atopou por primeira vez iso. 617 00:28:33,390 --> 00:28:37,240 Probablemente non explotar de ninguén presente aquí, pero iso é OK. 618 00:28:37,240 --> 00:28:41,260 >> Cadeas son arrays de caracteres, e eles acaban con, como dixen antes, 619 00:28:41,260 --> 00:28:45,710 o terminador nulo, o que é este personaxe / 0. 620 00:28:45,710 --> 00:28:47,740 Se imos trazar unha corda no consello, imos deseña-lo aquí. 621 00:28:47,740 --> 00:28:53,080 622 00:28:53,080 --> 00:28:56,420 Entón, canto tempo é esa corda? 623 00:28:56,420 --> 00:28:56,680 Sentímolo. 624 00:28:56,680 --> 00:28:57,660 Canto tempo dura esta cadea? 625 00:28:57,660 --> 00:28:57,910 >> Estudante: [inaudível]. 626 00:28:57,910 --> 00:28:59,010 >> Jason Hirschhorn: Catro? 627 00:28:59,010 --> 00:28:59,880 Por que é catro? 628 00:28:59,880 --> 00:29:02,240 >> ALUMNO: Porque o quinto lugar é para o carácter nulo. 629 00:29:02,240 --> 00:29:04,070 >> Jason Hirschhorn: Entón o quinto lugar é para o carácter nulo. 630 00:29:04,070 --> 00:29:07,130 Entón, se eu fose para executar strlen en iso, el me daría catro. 631 00:29:07,130 --> 00:29:07,850 Corrixir. 632 00:29:07,850 --> 00:29:11,640 E a matriz, con todo, se eu fose arrincar esa matriz, cantos espazos 633 00:29:11,640 --> 00:29:13,444 eu tería que pedir? 634 00:29:13,444 --> 00:29:13,821 >> ALUMNO: Five. 635 00:29:13,821 --> 00:29:14,200 >> Jason Hirschhorn: Five. 636 00:29:14,200 --> 00:29:17,650 Eu tería que preguntar a cinco, pero eu podo só poñer catro personaxes aquí 637 00:29:17,650 --> 00:29:19,750 porque eu teño poñer isto nulo terminador no final. 638 00:29:19,750 --> 00:29:25,260 Entón imos escribir en "ohai" e poñer o terminador nulo ao final. 639 00:29:25,260 --> 00:29:31,820 640 00:29:31,820 --> 00:29:34,940 Imos dicir que esta é unha cadea s é igual a este. 641 00:29:34,940 --> 00:29:36,610 Cal é a franxa de cero s? 642 00:29:36,610 --> 00:29:40,210 643 00:29:40,210 --> 00:29:41,550 s soporte cero, Annie? 644 00:29:41,550 --> 00:29:41,950 >> ALUMNO: O. 645 00:29:41,950 --> 00:29:45,400 >> Jason Hirschhorn: O, exactamente. s un soporte? 646 00:29:45,400 --> 00:29:48,200 s soporte de cinco anos? 647 00:29:48,200 --> 00:29:52,670 648 00:29:52,670 --> 00:29:53,955 s soporte de cinco anos? 649 00:29:53,955 --> 00:29:54,740 >> ALUMNO: Non existe. 650 00:29:54,740 --> 00:29:55,040 >> Jason Hirschhorn: Non existe. 651 00:29:55,040 --> 00:29:57,050 Exactamente. 652 00:29:57,050 --> 00:29:57,940 Legal. 653 00:29:57,940 --> 00:30:03,120 Calquera dúbida sobre a comprensión cadeas como arrays de caracteres? 654 00:30:03,120 --> 00:30:03,870 OK, entón. 655 00:30:03,870 --> 00:30:05,440 Máis un programa para vós. 656 00:30:05,440 --> 00:30:09,190 Escribe un programa que pide ao usuario para unha cadea e entón móstrase cada 657 00:30:09,190 --> 00:30:11,880 personaxe nunha nova liña. 658 00:30:11,880 --> 00:30:14,160 Entón, imos ter tres minutos para escribir Neste programa, e despois imos codifica-lo 659 00:30:14,160 --> 00:30:15,410 como un grupo. 660 00:30:15,410 --> 00:31:04,730 661 00:31:04,730 --> 00:31:04,830 >> Sentímolo. 662 00:31:04,830 --> 00:31:06,470 Ten que ver iso? 663 00:31:06,470 --> 00:31:07,410 >> ALUMNO: Non 664 00:31:07,410 --> 00:31:08,660 >> Jason Hirschhorn: Aceptar. 665 00:31:08,660 --> 00:31:36,390 666 00:31:36,390 --> 00:31:40,605 Imos dar un minuto para este código, ou polo menos comezar a facelo. 667 00:31:40,605 --> 00:32:13,900 668 00:32:13,900 --> 00:32:17,020 >> Así, pode seguir traballando, pero eu vou para comezar a pasar por iso. 669 00:32:17,020 --> 00:32:22,560 Así como antes, eu teño na pantalla # Include cs50.h, # include stdio.h. 670 00:32:22,560 --> 00:32:24,020 int void main. 671 00:32:24,020 --> 00:32:28,880 Dentro claves do principal, eu teño dous comentarios, pseudocódigo. 672 00:32:28,880 --> 00:32:30,980 Unha delas é pedir unha cadea do usuario. 673 00:32:30,980 --> 00:32:33,900 A segunda é imprimir cada personaxe nunha nova liña. 674 00:32:33,900 --> 00:32:39,780 Entón, Anna, pode dar-me preguntar para unha cadea de usuario? 675 00:32:39,780 --> 00:32:41,970 >> ESTUDANTE: printf. 676 00:32:41,970 --> 00:32:42,720 >> Jason Hirschhorn: printf? 677 00:32:42,720 --> 00:32:45,050 >> ESTUDANTE: si. 678 00:32:45,050 --> 00:32:46,165 ( 679 00:32:46,165 --> 00:32:47,610 >> Jason Hirschhorn: ( 680 00:32:47,610 --> 00:32:49,300 >> ALUMNO: "dáme unha corda. 681 00:32:49,300 --> 00:32:52,380 >> Jason Hirschhorn: "dar me un str - oops - 682 00:32:52,380 --> 00:32:53,710 cadea. 683 00:32:53,710 --> 00:32:59,980 >> ALUMNO: / n "), punto e coma. 684 00:32:59,980 --> 00:33:02,300 >> Jason Hirschhorn: Acabar coa cadea, parénteses pechados, punto e coma. 685 00:33:02,300 --> 00:33:03,550 >> ESTUDANTE: si. 686 00:33:03,550 --> 00:33:09,080 E entón a seguinte liña, corda s = get cadea. 687 00:33:09,080 --> 00:33:11,240 >> Jason Hirschhorn: cadea s = get cadea. 688 00:33:11,240 --> 00:33:11,665 >> ESTUDANTE: si. 689 00:33:11,665 --> 00:33:13,080 E, a continuación, () 690 00:33:13,080 --> 00:33:14,365 >> Jason Hirschhorn: () 691 00:33:14,365 --> 00:33:14,720 >> ALUMNO: Punto e vírgula. 692 00:33:14,720 --> 00:33:15,540 >> Jason Hirschhorn: Punto e vírgula. 693 00:33:15,540 --> 00:33:16,890 Fantástico. 694 00:33:16,890 --> 00:33:19,000 Entón, eu vou ir unha corda e Vou gardalo en que? 695 00:33:19,000 --> 00:33:21,830 Cal é a variable chamada que creou? 696 00:33:21,830 --> 00:33:23,290 >> ESTUDANTE: String s. 697 00:33:23,290 --> 00:33:24,580 >> Jason Hirschhorn: A variable chámase s. 698 00:33:24,580 --> 00:33:25,700 É tipo cadea. 699 00:33:25,700 --> 00:33:27,200 Exactamente. 700 00:33:27,200 --> 00:33:30,080 A seguinte cousa que queremos é imprimir cada personaxe nunha nova liña. 701 00:33:30,080 --> 00:33:31,710 Quen me pode dar ese código? 702 00:33:31,710 --> 00:33:32,110 [Inaudível]? 703 00:33:32,110 --> 00:33:33,000 Pode dar isto para min? 704 00:33:33,000 --> 00:33:33,580 >> ALUMNO: Por suposto. 705 00:33:33,580 --> 00:33:35,420 >> Jason Hirschhorn: Imos facelo. 706 00:33:35,420 --> 00:33:36,080 E moito. 707 00:33:36,080 --> 00:33:38,896 Eu non me gusta de repetir o que di por que está facendo as cousas ben, pero eu 708 00:33:38,896 --> 00:33:42,100 ten que repetir de xeito que cando eles transcribir iso, poden obter toda 709 00:33:42,100 --> 00:33:44,870 a saída de texto na transcricións. 710 00:33:44,870 --> 00:33:47,180 Entón podes só seguir falando. 711 00:33:47,180 --> 00:33:48,590 Desafortunadamente, non teño dicir sobre ti. 712 00:33:48,590 --> 00:33:49,510 Sinto moito, pero - 713 00:33:49,510 --> 00:33:50,610 >> ALUMNO: Isto é bo. 714 00:33:50,610 --> 00:33:53,010 Para int i = 0 715 00:33:53,010 --> 00:33:54,170 >> Jason Hirschhorn: Para int i = 0 716 00:33:54,170 --> 00:33:56,740 >> ALUMNO: Eu menos - 717 00:33:56,740 --> 00:33:58,206 >> Jason Hirschhorn: Punto e vírgula. 718 00:33:58,206 --> 00:34:00,650 >> ALUMNO: Antes diso, podemos poñer unha variable para obter int lonxitude do nome? 719 00:34:00,650 --> 00:34:01,870 >> Jason Hirschhorn: Oh, non quero poñer o punto e vírgula? 720 00:34:01,870 --> 00:34:02,310 Aceptar. 721 00:34:02,310 --> 00:34:05,120 Entón o que quere facer despois de cero? 722 00:34:05,120 --> 00:34:09,340 >> ALUMNO: Eu quero comezar o lonxitude da corda de s e 723 00:34:09,340 --> 00:34:10,410 establecer que unha variable? 724 00:34:10,410 --> 00:34:11,760 >> Jason Hirschhorn: OK, Entón, como fago isto? 725 00:34:11,760 --> 00:34:17,636 >> ALUMNO: Entón fai lonxitude int = 726 00:34:17,636 --> 00:34:20,010 >> Jason Hirschhorn: Int length = 727 00:34:20,010 --> 00:34:22,230 >> ALUMNO: S-T-R-L-E-N. 728 00:34:22,230 --> 00:34:24,260 >> Jason Hirschhorn: S-T-R-L-E-N - 729 00:34:24,260 --> 00:34:25,380 >> ALUMNO: É s. 730 00:34:25,380 --> 00:34:25,790 Corchetes. 731 00:34:25,790 --> 00:34:27,920 >> Jason Hirschhorn: (s). 732 00:34:27,920 --> 00:34:33,040 >> ALUMNO: E entón eu creo que ten que poñer un punto e coma entre os dous ints. 733 00:34:33,040 --> 00:34:34,590 >> Jason Hirschhorn: Un punto e coma tras a cero? 734 00:34:34,590 --> 00:34:35,260 >> ESTUDANTE: Yeah. 735 00:34:35,260 --> 00:34:40,670 A continuación, coloque un punto e coma despois diso, e vostede di, i menos longo. 736 00:34:40,670 --> 00:34:43,250 i menos de lonxitude, que é a variable. 737 00:34:43,250 --> 00:34:44,590 >> ALUMNO: E logo punto e coma. 738 00:34:44,590 --> 00:34:45,790 >> Jason Hirschhorn: Punto e vírgula. 739 00:34:45,790 --> 00:34:46,290 >> ALUMNO: i + +. 740 00:34:46,290 --> 00:34:46,909 >> Jason Hirschhorn: i + +. 741 00:34:46,909 --> 00:34:47,530 Non é o noso loop for. 742 00:34:47,530 --> 00:34:48,860 OK, dentro do loop for. 743 00:34:48,860 --> 00:34:51,670 >> ALUMNO: E despois facer printf. 744 00:34:51,670 --> 00:34:53,340 >> Jason Hirschhorn: printf. 745 00:34:53,340 --> 00:34:53,889 >> ALUMNO: Soportes. 746 00:34:53,889 --> 00:34:55,130 >> Jason Hirschhorn: entre parénteses, comiñas. 747 00:34:55,130 --> 00:34:59,930 >> ALUMNO: Parénteses, multimedia,% c / n. 748 00:34:59,930 --> 00:35:00,760 >> Jason Hirschhorn:% c, Aceptar. 749 00:35:00,760 --> 00:35:01,670 >> ALUMNO: / n. 750 00:35:01,670 --> 00:35:03,470 >> Jason Hirschhorn: / n. 751 00:35:03,470 --> 00:35:04,410 >> ALUMNO: citas pechado. 752 00:35:04,410 --> 00:35:05,270 >> Jason Hirschhorn: citas pechado. 753 00:35:05,270 --> 00:35:05,810 >> ALUMNO: coma. 754 00:35:05,810 --> 00:35:06,860 >> Jason Hirschhorn: coma. 755 00:35:06,860 --> 00:35:07,800 >> ALUMNO: S. 756 00:35:07,800 --> 00:35:08,070 >> Jason Hirschhorn: S. 757 00:35:08,070 --> 00:35:08,690 >> ALUMNO: bracket i. 758 00:35:08,690 --> 00:35:10,230 >> Jason Hirschhorn: bracket i. 759 00:35:10,230 --> 00:35:11,520 >> ALUMNO: E parénteses, a continuación, pechado. 760 00:35:11,520 --> 00:35:12,540 >> Jason Hirschhorn: parénteses pechado. 761 00:35:12,540 --> 00:35:13,660 >> ALUMNO: E logo punto e coma. 762 00:35:13,660 --> 00:35:13,770 >> Jason Hirschhorn: Punto e vírgula. 763 00:35:13,770 --> 00:35:14,380 Fantástico. 764 00:35:14,380 --> 00:35:16,890 Entón, imos gardar esta. 765 00:35:16,890 --> 00:35:19,770 Fai deletrear. 766 00:35:19,770 --> 00:35:20,040 Oh boy. 767 00:35:20,040 --> 00:35:22,275 Eu teño un par de erros. 768 00:35:22,275 --> 00:35:33,120 Primeiro erro na liña 11, el di: Espérase expresión, e está dando 769 00:35:33,120 --> 00:35:36,910 me un erro que o segundo int, hai o erro. 770 00:35:36,910 --> 00:35:38,430 Hai algún erro en torno de alí. 771 00:35:38,430 --> 00:35:41,060 Alguén sabe o erro que é? 772 00:35:41,060 --> 00:35:41,640 Kurt? 773 00:35:41,640 --> 00:35:44,108 >> ALUMNO: Coido que debería ser unha coma e non un punto e coma. 774 00:35:44,108 --> 00:35:46,010 >> Jason Hirschhorn: OK, comas en vez de un punto e coma. 775 00:35:46,010 --> 00:35:47,340 Así é que todo o que necesitamos para corrixir? 776 00:35:47,340 --> 00:35:47,655 >> ALUMNO: Non 777 00:35:47,655 --> 00:35:48,930 >> Jason Hirschhorn: Qué máis necesitamos fixar? 778 00:35:48,930 --> 00:35:50,920 >> ALUMNO: Temos que incluír string.h. 779 00:35:50,920 --> 00:35:51,680 >> Jason Hirschhorn: Include string.h. 780 00:35:51,680 --> 00:35:53,730 Onde é que eu teño incluír isto? 781 00:35:53,730 --> 00:35:57,085 >> ALUMNO: O mesmo lugar que está incluíndo as outras cousas, non 782 00:35:57,085 --> 00:35:59,560 tras incluír stdio.h. 783 00:35:59,560 --> 00:36:01,610 >> Jason Hirschhorn: Imos ver se isto funciona primeiro porque, xeralmente, máis me gusta 784 00:36:01,610 --> 00:36:06,360 para corrixir unha cousa primeiro, e despois realizar , E, a continuación, ver os erros que temos. 785 00:36:06,360 --> 00:36:11,620 Entón, nós estamos indo a limpar o terminal co control n, imos facer facer feitizo. 786 00:36:11,620 --> 00:36:15,190 787 00:36:15,190 --> 00:36:18,770 Así, outro erro na liña 11. 788 00:36:18,770 --> 00:36:20,540 Espérase comas. 789 00:36:20,540 --> 00:36:22,640 E eu aínda estou a recibir erros nesta liña. 790 00:36:22,640 --> 00:36:25,270 Por iso, non me deu un erro dicindo que non entende o que é strlen, 791 00:36:25,270 --> 00:36:28,980 pero está me dando erros neste liña, o que máis está mal? 792 00:36:28,980 --> 00:36:29,690 Mark? 793 00:36:29,690 --> 00:36:30,940 Marcus. 794 00:36:30,940 --> 00:36:32,570 >> ALUMNO: Ten que eliminar a segunda declaración int? 795 00:36:32,570 --> 00:36:34,990 >> Jason Hirschhorn: Eliminar o segundo int. 796 00:36:34,990 --> 00:36:35,710 Imos tentar iso. 797 00:36:35,710 --> 00:36:37,600 Agora limpar o terminal. 798 00:36:37,600 --> 00:36:40,130 Fai deletrear. 799 00:36:40,130 --> 00:36:40,490 Erro. 800 00:36:40,490 --> 00:36:42,890 Implicitamente declarando biblioteca función strlen. 801 00:36:42,890 --> 00:36:44,270 Entón, agora vemos este erro. 802 00:36:44,270 --> 00:36:45,760 O que necesitamos para incluír? 803 00:36:45,760 --> 00:36:46,660 >> ALUMNO: STRING.H. 804 00:36:46,660 --> 00:36:51,880 >> Jason Hirschhorn: Include string.h, Imos facer # include string.h na parte superior 805 00:36:51,880 --> 00:36:52,920 da pantalla. 806 00:36:52,920 --> 00:36:55,450 Imos gardar, faga deletrear. 807 00:36:55,450 --> 00:36:56,970 Agora compilado. 808 00:36:56,970 --> 00:37:01,970 Entón, de novo, as cousas que precisaba Teña en conta que a liña 12 no noso loop para cando 809 00:37:01,970 --> 00:37:08,010 estamos a súa creación, int i = 0, lonxitude = strlen (s). 810 00:37:08,010 --> 00:37:09,350 >> Esta é unha estratexia fantástico. 811 00:37:09,350 --> 00:37:12,590 O estilo deste é grande, o proxecto deste é grande. 812 00:37:12,590 --> 00:37:15,620 Podemos ir a esas razóns máis tarde, pero deste xeito só precisa chamar 813 00:37:15,620 --> 00:37:19,040 strlen unha vez, no canto de cada xa que executa a través do loop. 814 00:37:19,040 --> 00:37:22,255 Con todo, ten que usar unha coma alí e non precisa de novo int. 815 00:37:22,255 --> 00:37:24,180 Se está declarando ambos variables en conxunto, ten 816 00:37:24,180 --> 00:37:26,850 Non precisa de novo int. 817 00:37:26,850 --> 00:37:29,820 E entón, se está indo a usar strlen, que é outra biblioteca 818 00:37:29,820 --> 00:37:33,560 función non incluído no stdio.h ou cs50.h, facer 819 00:37:33,560 --> 00:37:35,310 -Se de incluir string.h. 820 00:37:35,310 --> 00:37:35,900 Kurt? 821 00:37:35,900 --> 00:37:39,085 >> ALUMNO: Entón, se non ten dicir o tipo de lonxitude é, iso 822 00:37:39,085 --> 00:37:40,290 significa que ten que ser un int? 823 00:37:40,290 --> 00:37:41,930 Non pode ter dous diferentes tipo alí? 824 00:37:41,930 --> 00:37:43,290 >> Jason Hirschhorn: Entón, podería ten dous tipos diferentes. 825 00:37:43,290 --> 00:37:45,730 A lonxitude é un int aquí, con todo. 826 00:37:45,730 --> 00:37:48,590 A lonxitude é un int porque é coma e logo o mesmo. 827 00:37:48,590 --> 00:37:50,460 >> ALUMNO: Entón, el asume que está a suceder a ser o mesmo que o primeiro? 828 00:37:50,460 --> 00:37:52,423 >> Jason Hirschhorn: Exactamente. 829 00:37:52,423 --> 00:37:54,970 Non imos facer iso agora, pero pode incluír dúas variables sobre a 830 00:37:54,970 --> 00:37:57,080 mesma liña usando un tipo de datos. 831 00:37:57,080 --> 00:38:01,415 Entón, int x, y crearía dúas variables. 832 00:38:01,415 --> 00:38:05,830 833 00:38:05,830 --> 00:38:10,770 Así, int x, y, se facelo, dá me unha variable x e y non utilizado por 834 00:38:10,770 --> 00:38:12,020 non usalos. 835 00:38:12,020 --> 00:38:17,950 836 00:38:17,950 --> 00:38:21,650 Entón, antes de poñer en branco é só un truco de fantasía, se non usar 837 00:38:21,650 --> 00:38:22,810 algo, a usalo. 838 00:38:22,810 --> 00:38:26,300 Pero, como ve, eu creo x e y na mesma liña, con comas. 839 00:38:26,300 --> 00:38:28,450 É a creación de dous enteiros alí mesmo. 840 00:38:28,450 --> 00:38:31,560 Entón, si, totalmente posible crear dúas cousas na mesma liña 841 00:38:31,560 --> 00:38:33,720 separadas por comas. 842 00:38:33,720 --> 00:38:35,470 Imos nos librar dos que, con todo. 843 00:38:35,470 --> 00:38:36,370 >> Polo tanto, non hai maxia. 844 00:38:36,370 --> 00:38:39,200 Grazas a vós para codifica-lo para nós. 845 00:38:39,200 --> 00:38:43,040 Imos facelo unha vez, executa-o. 846 00:38:43,040 --> 00:38:44,580 Déame unha cadea. 847 00:38:44,580 --> 00:38:45,580 [Inaudível], fixo máis do mesmo. 848 00:38:45,580 --> 00:38:47,910 Cal é a corda? 849 00:38:47,910 --> 00:38:48,250 >> ALUMNO: Olá 850 00:38:48,250 --> 00:38:50,110 >> Jason Hirschhorn: Olá 851 00:38:50,110 --> 00:38:52,810 H-E-L-L-O, cada personaxe nunha liña. 852 00:38:52,810 --> 00:38:53,700 Parece gran. 853 00:38:53,700 --> 00:38:54,750 Imos executa-lo de novo. 854 00:38:54,750 --> 00:38:56,050 Sempre vai comprobar para os casos de canto. 855 00:38:56,050 --> 00:38:57,750 ¿Que é un bo caso para comprobar canto? 856 00:38:57,750 --> 00:39:00,250 857 00:39:00,250 --> 00:39:00,890 >> ALUMNO: Un número? 858 00:39:00,890 --> 00:39:02,240 >> Jason Hirschhorn: Un número. 859 00:39:02,240 --> 00:39:06,580 Entón, eu vou poñer nun, e imprime un. 860 00:39:06,580 --> 00:39:08,970 Non está pedindo cartas, de xeito parece que as cifras de traballo. 861 00:39:08,970 --> 00:39:09,890 Bo caso canto para comprobar. 862 00:39:09,890 --> 00:39:11,740 ¿Que é un bo recuncho caso para comprobar? 863 00:39:11,740 --> 00:39:12,420 >> ALUMNO: A secuencia en branco. 864 00:39:12,420 --> 00:39:12,910 >> Jason Hirschhorn: Hm? 865 00:39:12,910 --> 00:39:13,880 >> ESTUDANTE: Como unha cadea baleira. 866 00:39:13,880 --> 00:39:14,400 >> Jason Hirschhorn: cadea baleira. 867 00:39:14,400 --> 00:39:16,730 Entón, non imos poñer en calquera cousa. 868 00:39:16,730 --> 00:39:18,660 E o que é impreso? 869 00:39:18,660 --> 00:39:19,090 >> ALUMNO: Nada. 870 00:39:19,090 --> 00:39:19,870 >> Jason Hirschhorn: Nada. 871 00:39:19,870 --> 00:39:20,555 Parece que funciona. 872 00:39:20,555 --> 00:39:23,790 Vostede podería tentar máis casos de canto, pero en xeral, os números, un de datos é diferente 873 00:39:23,790 --> 00:39:26,160 grande para probar, así non é nada. 874 00:39:26,160 --> 00:39:29,180 Nada, cero, negativos son sempre grandes cousas para intentar cousas que 875 00:39:29,180 --> 00:39:33,140 Debe proba, as cousas seguramente imos probar para e check 50 vai probar. 876 00:39:33,140 --> 00:39:34,720 Calquera dúbida sobre spell.c? 877 00:39:34,720 --> 00:39:37,752 878 00:39:37,752 --> 00:39:39,310 >> OK, imos cabeza cara atrás. 879 00:39:39,310 --> 00:39:42,420 Eu teño máis dun programa para vostedes escriben. 880 00:39:42,420 --> 00:39:44,700 Chámase students.c. 881 00:39:44,700 --> 00:39:49,020 Este é un programa que pide ao usuario para cinco nomes, así que elixe ao azar 882 00:39:49,020 --> 00:39:51,600 e imprime un dos nomes. 883 00:39:51,600 --> 00:39:54,840 Este programa é un pouco máis parte do que os dous últimos que escribiu, 884 00:39:54,840 --> 00:39:58,080 Entón, por que non imos tardar cinco minutos para codifica-lo individualmente, e despois imos 885 00:39:58,080 --> 00:40:00,130 codifica-lo como un grupo. 886 00:40:00,130 --> 00:40:03,795 >> Este programa tamén implica algunhas cousas pode non ter visto antes, entón se 887 00:40:03,795 --> 00:40:06,390 Ten unha pregunta sobre como facer Fago isto, levante a man. 888 00:40:06,390 --> 00:40:08,530 Vou vir e sinala-lo na dirección correcta. 889 00:40:08,530 --> 00:40:10,820 Pero nós tamén estamos a facer iso porque esta vai ser unha boa forma de introducir algunhas 890 00:40:10,820 --> 00:40:12,070 temas que son complicadas. 891 00:40:12,070 --> 00:44:14,600 892 00:44:14,600 --> 00:44:15,560 >> Así funciona, non? 893 00:44:15,560 --> 00:44:17,580 >> ESTUDANTE: Yeah. 894 00:44:17,580 --> 00:44:19,180 >> Jason Hirschhorn: Sempre que une nun conxunto de problemas, hai moitas formas de facer 895 00:44:19,180 --> 00:44:20,790 , Pero algúns son máis elegantes do que os outros. 896 00:44:20,790 --> 00:44:29,000 897 00:44:29,000 --> 00:44:31,110 Imos mergullo dentro 898 00:44:31,110 --> 00:44:32,880 # Include cs50.h. 899 00:44:32,880 --> 00:44:34,250 # Include stdio.h. 900 00:44:34,250 --> 00:44:37,240 void main int, chaves. 901 00:44:37,240 --> 00:44:39,430 Dentro das claves, Eu teño dous comentarios. 902 00:44:39,430 --> 00:44:41,500 A primeira é, pregunta ó usuario por cinco nomes. 903 00:44:41,500 --> 00:44:46,580 O segundo é, escoller aleatoriamente e imprimir un dos nomes. 904 00:44:46,580 --> 00:44:50,250 Entón imos facer o primeiro, pregunta o usuario durante cinco nomes. 905 00:44:50,250 --> 00:44:53,730 Quen pediu o usuario para cinco nomes e me pode dicir como facelo? 906 00:44:53,730 --> 00:44:56,760 907 00:44:56,760 --> 00:44:58,570 Só dúas persoas fixeron a primeira parte. 908 00:44:58,570 --> 00:45:00,150 Tres persoas fixeron a primeira parte. 909 00:45:00,150 --> 00:45:00,670 Catro, cinco. 910 00:45:00,670 --> 00:45:03,140 Ton, como fai iso? 911 00:45:03,140 --> 00:45:09,940 >> ALUMNO: Podería declarar unha cadea e logo, nome, franxa cinco. 912 00:45:09,940 --> 00:45:12,070 >> Jason Hirschhorn: cadea Nome Clave cinco. 913 00:45:12,070 --> 00:45:15,350 Entón o que é esta liña facendo, name cadea soporte de cinco? 914 00:45:15,350 --> 00:45:17,800 >> ALUMNO: Vostede ía declarar unha matriz de cadeas. 915 00:45:17,800 --> 00:45:19,000 >> Jason Hirschhorn: Este é unha matriz de cadeas. 916 00:45:19,000 --> 00:45:21,590 Cantas cordas van para caber aquí? 917 00:45:21,590 --> 00:45:22,010 >> ALUMNO: Five. 918 00:45:22,010 --> 00:45:22,320 >> Jason Hirschhorn: Five. 919 00:45:22,320 --> 00:45:22,660 Excelente. 920 00:45:22,660 --> 00:45:26,360 Imos chamalo de nomes por estamos indo a obter varios. 921 00:45:26,360 --> 00:45:27,790 OK, o seguinte? 922 00:45:27,790 --> 00:45:29,270 >> ALUMNO: E entón ten un loop - 923 00:45:29,270 --> 00:45:30,060 >> Jason Hirschhorn: Para loop. 924 00:45:30,060 --> 00:45:33,035 >> ALUMNO: - para i = 0. 925 00:45:33,035 --> 00:45:37,040 >> Jason Hirschhorn: For (int i = 0. 926 00:45:37,040 --> 00:45:38,270 >> ALUMNO: Punto e vírgula. 927 00:45:38,270 --> 00:45:38,880 >> Jason Hirschhorn: Punto e vírgula. 928 00:45:38,880 --> 00:45:39,790 >> ALUMNO: Eu inferior a cinco. 929 00:45:39,790 --> 00:45:41,310 >> Jason Hirschhorn: Eu inferior a cinco. 930 00:45:41,310 --> 00:45:42,230 >> ALUMNO: Punto e vírgula. 931 00:45:42,230 --> 00:45:42,560 >> Jason Hirschhorn: Punto e vírgula. 932 00:45:42,560 --> 00:45:43,380 >> ALUMNO: i + +. 933 00:45:43,380 --> 00:45:46,050 >> Jason Hirschhorn: i + +. 934 00:45:46,050 --> 00:45:47,100 >> ALUMNO: E parénteses, a continuación, pechado. 935 00:45:47,100 --> 00:45:48,600 >> Jason Hirschhorn: parénteses pechados, e logo, algunhas claves. 936 00:45:48,600 --> 00:45:50,050 Dentro das claves? 937 00:45:50,050 --> 00:45:51,423 >> ALUMNO: E entón printf. 938 00:45:51,423 --> 00:45:52,535 >> Jason Hirschhorn: printf. 939 00:45:52,535 --> 00:45:56,200 >> ALUMNO: parénteses abertas, name% d. 940 00:45:56,200 --> 00:45:57,090 >> Jason Hirschhorn: Sentímolo? 941 00:45:57,090 --> 00:45:57,660 >> ALUMNO: Nome. 942 00:45:57,660 --> 00:45:58,200 >> Jason Hirschhorn: Nome. 943 00:45:58,200 --> 00:46:01,700 >> ALUMNO: E entón o espazo, e logo,% d. 944 00:46:01,700 --> 00:46:02,950 >> Jason Hirschhorn: Nome, espazo,% d. 945 00:46:02,950 --> 00:46:05,630 946 00:46:05,630 --> 00:46:10,820 >> ALUMNO: E entón / n, logo pechado. 947 00:46:10,820 --> 00:46:15,070 >> Jason Hirschhorn: nome Entón, espazo, % D / n, parénteses pechados. 948 00:46:15,070 --> 00:46:17,730 >> ALUMNO: Comma, i + 1. 949 00:46:17,730 --> 00:46:19,390 Sinto moito. 950 00:46:19,390 --> 00:46:21,040 Cita pechado, e logo, coma, i +1. 951 00:46:21,040 --> 00:46:24,400 >> Jason Hirschhorn: Closed cita, coma, i +1. 952 00:46:24,400 --> 00:46:25,850 >> ESTUDANTE: si. 953 00:46:25,850 --> 00:46:27,650 E entón a seguinte liña - 954 00:46:27,650 --> 00:46:29,400 >> Jason Hirschhorn: i + 1. 955 00:46:29,400 --> 00:46:31,600 >> ESTUDANTE: si. 956 00:46:31,600 --> 00:46:36,440 E entón o seguinte foto son os nomes soporte i. 957 00:46:36,440 --> 00:46:39,000 >> Jason Hirschhorn: Seguinte liña son os nomes soporte i. 958 00:46:39,000 --> 00:46:41,360 >> ALUMNO: = get cadea. 959 00:46:41,360 --> 00:46:43,460 >> Jason Hirschhorn: = Get - 960 00:46:43,460 --> 00:46:44,510 capital de G-E-T - 961 00:46:44,510 --> 00:46:45,530 cadea. 962 00:46:45,530 --> 00:46:47,800 Oops, desculpe. 963 00:46:47,800 --> 00:46:49,050 >> ALUMNO: Open, parénteses pechados e despois - 964 00:46:49,050 --> 00:46:50,940 >> Jason Hirschhorn: aberto, pechado paréntese. 965 00:46:50,940 --> 00:46:51,030 >> ALUMNO: Punto e vírgula. 966 00:46:51,030 --> 00:46:52,500 >> Jason Hirschhorn: Punto e vírgula. 967 00:46:52,500 --> 00:46:57,545 OK, entón arrincar a matriz de cordas, nomes e, a continuación, pasar por unha 968 00:46:57,545 --> 00:47:02,720 loop for, e cinco veces imprimir algúns pedir ao usuario e, a continuación, almacenar 969 00:47:02,720 --> 00:47:03,360 cinco cordas. 970 00:47:03,360 --> 00:47:08,090 Alguén ten algunha axustes a iso? 971 00:47:08,090 --> 00:47:10,030 Tom, eu creo que todo o mundo de acordo con vostede. 972 00:47:10,030 --> 00:47:10,880 Parece moi bo. 973 00:47:10,880 --> 00:47:11,660 Aceptar. 974 00:47:11,660 --> 00:47:14,830 Por que fixo i +1, aínda? 975 00:47:14,830 --> 00:47:18,000 >> ALUMNO: Quero dicir, non ten ser, pero i 1 de xeito que sexa 976 00:47:18,000 --> 00:47:19,700 un nome para nomear cinco. 977 00:47:19,700 --> 00:47:21,930 En caso contrario, sería nome cero a nomear catro. 978 00:47:21,930 --> 00:47:24,400 >> Jason Hirschhorn: Entón fixo i +1 porque senón tería 979 00:47:24,400 --> 00:47:27,060 impresos de cero a catro, porque é así que os ordenadores pensan, pero os seres humanos 980 00:47:27,060 --> 00:47:28,530 realmente non ler así. 981 00:47:28,530 --> 00:47:30,190 Isto é outra cousa vai atopar. 982 00:47:30,190 --> 00:47:33,210 Ás veces, cando imprimir algo ao usuario, vai querer facelo un 983 00:47:33,210 --> 00:47:35,733 pouco máis fermosa, e facer i 1, neste caso, é un 984 00:47:35,733 --> 00:47:37,430 forma a facelo máis bonito. 985 00:47:37,430 --> 00:47:41,380 >> Eu tamén vexo cinco dúas veces, cadea nome é cinco, i é inferior a cinco. 986 00:47:41,380 --> 00:47:42,430 Sei onde ten cinco. 987 00:47:42,430 --> 00:47:44,890 Ten iso de min dicindo Ten cinco nomes. 988 00:47:44,890 --> 00:47:49,000 Pero se quere facer o código nun pouco máis robusto, algo que nos 989 00:47:49,000 --> 00:47:53,110 podería facer é aquí, do lado de fóra de int, poderíamos facer algo como isto, 990 00:47:53,110 --> 00:47:57,070 # Establece, e que nós poderíamos facer NOMES 5. 991 00:47:57,070 --> 00:48:01,580 992 00:48:01,580 --> 00:48:05,390 >> Entón, basicamente, onde queira que eu escriba de capital N, A Capital, o capital M, E maiúscula, 993 00:48:05,390 --> 00:48:08,890 S en maiúscula, esa secuencia, que substituirá 5, en que, co código. 994 00:48:08,890 --> 00:48:11,530 995 00:48:11,530 --> 00:48:13,445 Ou imos só chamalo - imos basta chamalo NUMBER. 996 00:48:13,445 --> 00:48:17,190 Entón, eu estou definindo as tapas NÚMERO ser 5. 997 00:48:17,190 --> 00:48:22,830 >> Entón, agora, cada vez que eu teño o número 5, I pode substituílo con todos os números caps. 998 00:48:22,830 --> 00:48:26,880 E agora, se eu queira cambiar o número de nomes, o único que cómpre facer é 999 00:48:26,880 --> 00:48:31,350 esta liña, a liña de catro, onde eu teño # Establece o número 5, cambiar isto a 10, 1000 00:48:31,350 --> 00:48:34,340 ou que cambie a 4. 1001 00:48:34,340 --> 00:48:37,400 Cando o seu código queda maior, non está vai lembrar de ti todas as partes 1002 00:48:37,400 --> 00:48:41,630 poñer cantos nomes que quería, e en Para que non perda un, este é 1003 00:48:41,630 --> 00:48:45,490 unha boa forma de facelo, para atopar algo alí enriba e despois é só usar esta frase 1004 00:48:45,490 --> 00:48:46,400 por todo o seu código. 1005 00:48:46,400 --> 00:48:46,780 Marcus? 1006 00:48:46,780 --> 00:48:49,780 >> ALUMNO: É iso estilisticamente preferido de establecer globalmente a 1007 00:48:49,780 --> 00:48:51,270 constantes n? 1008 00:48:51,270 --> 00:48:53,760 >> Jason Hirschhorn: Así é que estilisticamente preferido de todo o mundo 1009 00:48:53,760 --> 00:48:54,980 definindo a n constante? 1010 00:48:54,980 --> 00:48:59,036 Entón está dicindo que podería facer, int numero = 5? 1011 00:48:59,036 --> 00:49:01,300 >> ALUMNO: Será que eles teñen consoantes en C ou non? 1012 00:49:01,300 --> 00:49:02,720 >> Jason Hirschhorn: Ou const - en iguais. 1013 00:49:02,720 --> 00:49:04,275 Entón está dicindo só unha variable global? 1014 00:49:04,275 --> 00:49:04,990 >> ESTUDANTE: Yeah. 1015 00:49:04,990 --> 00:49:08,670 >> Jason Hirschhorn: Entón, estilisticamente, non hai, necesariamente, un dereito 1016 00:49:08,670 --> 00:49:12,050 responder, pero as dúas cousas son mellores que só xogando estes aleatoria 1017 00:49:12,050 --> 00:49:12,960 números en todo o seu código. 1018 00:49:12,960 --> 00:49:14,650 Nós os chamamos números máxicos. 1019 00:49:14,650 --> 00:49:16,450 Cando eu ollar para o seu código ou cando ninguén está lendo isto, 1020 00:49:16,450 --> 00:49:18,790 Non quero só estes números aleatorios que non ten sentido. 1021 00:49:18,790 --> 00:49:22,420 Ata o número 26, que é xeralmente o número de letras do alfabeto, 1022 00:49:22,420 --> 00:49:28,870 é mellor para definir alfabeto enriba e gardar o número 26 en que cadea, 1023 00:49:28,870 --> 00:49:29,550 se iso ten sentido. 1024 00:49:29,550 --> 00:49:33,210 >> Ou nun conxunto de problemas, en vez de - unha vez máis, nós non falamos sobre iso en 1025 00:49:33,210 --> 00:49:37,020 tempo, pero en vez de simplemente xoga en todas as partes a 25 ou 10, pode 1026 00:49:37,020 --> 00:49:41,860 gardar o número 25 como cuarto ou 10 como DIME, e iso fai máis doado para 1027 00:49:41,860 --> 00:49:44,140 quen está lendo o seu código entender por que escolleu ese número. 1028 00:49:44,140 --> 00:49:46,540 E tamén para vostede, se quere actualizar o código, convértese en algo 1029 00:49:46,540 --> 00:49:47,290 máis robusto. 1030 00:49:47,290 --> 00:49:48,070 Si? 1031 00:49:48,070 --> 00:49:50,830 >> ALUMNO: É este código tamén estar dispoñible para nós despois? 1032 00:49:50,830 --> 00:49:52,453 >> Jason Hirschhorn: Todos estes códigos que escribimos xuntos son 1033 00:49:52,453 --> 00:49:54,620 será enviado a vostede rapaces e dispoñibles. 1034 00:49:54,620 --> 00:49:55,740 Si 1035 00:49:55,740 --> 00:49:58,040 Entón, pregunta ao usuario cinco nomes. 1036 00:49:58,040 --> 00:50:00,280 Aleatoriamente elixir e imprimir un dos nomes. 1037 00:50:00,280 --> 00:50:00,940 Quen fixo esta liña? 1038 00:50:00,940 --> 00:50:02,230 Esta é a liña máis complicada aquí. 1039 00:50:02,230 --> 00:50:02,450 Sentímolo, Tom 1040 00:50:02,450 --> 00:50:05,510 Vostede fixo un bo traballo, pero este é un pouco máis complicado. 1041 00:50:05,510 --> 00:50:06,600 Marcus, vai adiante. 1042 00:50:06,600 --> 00:50:10,180 >> ALUMNO: Ben, primeiro, vai Debe incluír stdlib.h e time.h. 1043 00:50:10,180 --> 00:50:13,200 >> Jason Hirschhorn: Entón está dicindo que a na parte superior, incluír dúas bibliotecas. 1044 00:50:13,200 --> 00:50:18,830 Quere me incluír S-T-D-L-I-B dot H, Biblioteca defecto, e o 1045 00:50:18,830 --> 00:50:19,760 foi o outro? 1046 00:50:19,760 --> 00:50:21,010 >> ALUMNO: Time.h. 1047 00:50:21,010 --> 00:50:25,130 1048 00:50:25,130 --> 00:50:27,840 >> Jason Hirschhorn: # include time.h. 1049 00:50:27,840 --> 00:50:29,470 Polo tanto, estas son dúas bibliotecas. 1050 00:50:29,470 --> 00:50:31,790 Presumo que agora imos estar usando funcións que están contidas nestas 1051 00:50:31,790 --> 00:50:34,240 dous, e é por iso que necesitas para inclui-los? 1052 00:50:34,240 --> 00:50:36,980 >> ALUMNO: Entón, primeiro ten vai querer escribir srand. 1053 00:50:36,980 --> 00:50:38,770 >> Jason Hirschhorn: Srand. 1054 00:50:38,770 --> 00:50:42,070 >> ALUMNO: (equipo (0) 1055 00:50:42,070 --> 00:50:42,700 >> Jason Hirschhorn: Sentímolo. 1056 00:50:42,700 --> 00:50:45,580 Srand (equipo ( 1057 00:50:45,580 --> 00:50:46,890 >> ALUMNO: 0. 1058 00:50:46,890 --> 00:50:47,230 >> Jason Hirschhorn: 0. 1059 00:50:47,230 --> 00:50:49,990 >> ALUMNO :)), punto e coma. 1060 00:50:49,990 --> 00:50:51,320 >> Jason Hirschhorn: Outro paréntese pechada? 1061 00:50:51,320 --> 00:50:51,650 Punto e coma. 1062 00:50:51,650 --> 00:50:53,610 Vou só substituír o nulo con NULL. 1063 00:50:53,610 --> 00:50:55,980 Que vai facer o mesmo, pero Xeralmente, verás NULL, que 1064 00:50:55,980 --> 00:50:57,720 imos falar sobre iso liña en un segundo. 1065 00:50:57,720 --> 00:50:58,580 >> ALUMNO: Estilisticamente mellor? 1066 00:50:58,580 --> 00:51:02,240 >> Jason Hirschhorn: Xeralmente, as persoas NULL certo, pero mesmo. 1067 00:51:02,240 --> 00:51:05,010 >> ALUMNO: E entón o nome int. 1068 00:51:05,010 --> 00:51:06,490 >> Jason Hirschhorn: nome Int 1069 00:51:06,490 --> 00:51:07,280 >> ALUMNO: = 1070 00:51:07,280 --> 00:51:07,780 >> Jason Hirschhorn: = 1071 00:51:07,780 --> 00:51:08,580 >> ALUMNO: Rand. 1072 00:51:08,580 --> 00:51:09,340 >> Jason Hirschhorn: Rand. 1073 00:51:09,340 --> 00:51:10,420 >> ESTUDANTE: () 1074 00:51:10,420 --> 00:51:11,500 >> Jason Hirschhorn: () 1075 00:51:11,500 --> 00:51:12,850 >> ALUMNO: número módulo. 1076 00:51:12,850 --> 00:51:14,310 >> Jason Hirschhorn: Cal é o modulo? 1077 00:51:14,310 --> 00:51:14,970 O personaxe? 1078 00:51:14,970 --> 00:51:16,000 O personaxe por cento? 1079 00:51:16,000 --> 00:51:17,790 >> ALUMNO: carácter cento. 1080 00:51:17,790 --> 00:51:19,521 Modulo número que marcou enriba. 1081 00:51:19,521 --> 00:51:22,030 >> Jason Hirschhorn: Modulo NUMBER. 1082 00:51:22,030 --> 00:51:24,052 >> ALUMNO: E logo punto e coma. 1083 00:51:24,052 --> 00:51:24,660 >> Jason Hirschhorn: Punto e vírgula. 1084 00:51:24,660 --> 00:51:27,820 >> ALUMNO: E entón nova liña, printf. 1085 00:51:27,820 --> 00:51:28,460 >> Jason Hirschhorn: printf. 1086 00:51:28,460 --> 00:51:29,730 >> ALUMNO: ( 1087 00:51:29,730 --> 00:51:30,620 >> Jason Hirschhorn: ( 1088 00:51:30,620 --> 00:51:31,650 >> ALUMNO: " 1089 00:51:31,650 --> 00:51:32,630 >> Jason Hirschhorn: " 1090 00:51:32,630 --> 00:51:35,320 >> ALUMNO:% s / n 1091 00:51:35,320 --> 00:51:37,220 >> Jason Hirschhorn:% s / n 1092 00:51:37,220 --> 00:51:38,420 >> ALUMNO: " 1093 00:51:38,420 --> 00:51:40,640 >> Jason Hirschhorn:% s / n " 1094 00:51:40,640 --> 00:51:43,540 >> ALUMNO: Comma, os nomes de espazo. 1095 00:51:43,540 --> 00:51:44,350 >> Jason Hirschhorn: Espazo - 1096 00:51:44,350 --> 00:51:46,300 >> ALUMNO: Oh, eu creo, o que que chamamos aquí? 1097 00:51:46,300 --> 00:51:48,640 >> Jason Hirschhorn: Nós o chamamos nomes. 1098 00:51:48,640 --> 00:51:52,360 >> ALUMNO: soporte Open, nome. 1099 00:51:52,360 --> 00:51:55,090 >> Jason Hirschhorn: Abre o soporte, o nome. 1100 00:51:55,090 --> 00:51:55,850 >> ALUMNO: soporte pechado. 1101 00:51:55,850 --> 00:51:56,490 >> Jason Hirschhorn: soporte pechado. 1102 00:51:56,490 --> 00:51:57,460 >> ALUMNO :) 1103 00:51:57,460 --> 00:51:58,800 >> Jason Hirschhorn :) 1104 00:51:58,800 --> 00:51:59,440 >> ALUMNO: Punto e vírgula. 1105 00:51:59,440 --> 00:52:00,410 >> Jason Hirschhorn: Punto e vírgula. 1106 00:52:00,410 --> 00:52:01,500 OK, imos gardar. 1107 00:52:01,500 --> 00:52:04,410 Imos facer este código. 1108 00:52:04,410 --> 00:52:06,365 Alumnos. 1109 00:52:06,365 --> 00:52:07,100 Imos realizar este código. 1110 00:52:07,100 --> 00:52:08,480 Alumnos. 1111 00:52:08,480 --> 00:52:11,630 Non / alumno. . / Alumnos. 1112 00:52:11,630 --> 00:52:12,870 Nome. 1113 00:52:12,870 --> 00:52:15,490 Diremos David. 1114 00:52:15,490 --> 00:52:18,070 Nome dous, RJ. 1115 00:52:18,070 --> 00:52:20,561 Nome de tres, Rob. 1116 00:52:20,561 --> 00:52:22,490 Nome catro, Lucas. 1117 00:52:22,490 --> 00:52:26,060 Nome de cinco, Joseph. 1118 00:52:26,060 --> 00:52:28,850 E entón el imprime Joseph novo. 1119 00:52:28,850 --> 00:52:31,730 >> Entón deixe-me executar de novo. 1120 00:52:31,730 --> 00:52:32,460 Deixe-me facer os mesmos nomes. 1121 00:52:32,460 --> 00:52:39,760 David, RJ, Rob, Lucas, Joseph. 1122 00:52:39,760 --> 00:52:41,070 E el me deu a David neste momento. 1123 00:52:41,070 --> 00:52:43,030 Entón eu fixen o mesmo, pero deu me unha cousa distinta, e iso é 1124 00:52:43,030 --> 00:52:45,410 porque, claro, estamos pedindo para un nome aleatorio. 1125 00:52:45,410 --> 00:52:50,950 Entón eu creo que, a partir de enriba de min vagando arredor da sala, que a maioría das persoas 1126 00:52:50,950 --> 00:52:55,960 probablemente ten a primeira parte dereita, creación desa matriz e, a continuación, quedando 1127 00:52:55,960 --> 00:52:56,430 todos os nomes. 1128 00:52:56,430 --> 00:52:59,320 Estou falando sobre as liñas 10 a 16. 1129 00:52:59,320 --> 00:53:02,150 Pero as liñas 18 a 21 son, probabelmente, algunhas cousas que non teña visto antes, 1130 00:53:02,150 --> 00:53:03,750 entón imos pasar por aqueles. 1131 00:53:03,750 --> 00:53:10,390 >> Esta liña, srand tempo NULL é esencialmente - 1132 00:53:10,390 --> 00:53:14,300 Sentímolo, imos saltar abaixo unha liña, rand (). 1133 00:53:14,300 --> 00:53:17,320 Isto dálle un número ao chou, un número enteiro aleatorio. 1134 00:53:17,320 --> 00:53:19,630 E se bater home rand, que unha morea de que fixo - 1135 00:53:19,630 --> 00:53:21,530 M-A-N espazo R-A-N-D - 1136 00:53:21,530 --> 00:53:25,910 no terminal como este, M-A-N espazo R-A-N-D, prema Intro. 1137 00:53:25,910 --> 00:53:30,490 Vostede viría ata o manual e sería capaz de ler que o rand 1138 00:53:30,490 --> 00:53:34,260 saídas de comandos Nume bytes pseudo-aleatorios Tras a sementeira do número aleatorio 1139 00:53:34,260 --> 00:53:35,510 xerador de unha vez. 1140 00:53:35,510 --> 00:53:38,450 1141 00:53:38,450 --> 00:53:39,700 >> Entón, iso é unha descrición. 1142 00:53:39,700 --> 00:53:43,860 1143 00:53:43,860 --> 00:53:46,800 Iso é o rand fai, dá un número aleatorio cando 1144 00:53:46,800 --> 00:53:48,610 chamar esa función. 1145 00:53:48,610 --> 00:53:53,140 Desafortunadamente, non é realmente aleatoria porque se só chamar aleatoria 1146 00:53:53,140 --> 00:53:55,970 sen estar algunhas sementes, algúns punto de partida, el sempre vai escoller 1147 00:53:55,970 --> 00:53:59,100 a mesma e que utiliza unha fórmula para determinar o próximo. 1148 00:53:59,100 --> 00:54:01,730 Entón, se chamar rand, el só vai darlle o mesmo. 1149 00:54:01,730 --> 00:54:02,610 Será moi previsible. 1150 00:54:02,610 --> 00:54:03,790 En realidade, non será aleatoria. 1151 00:54:03,790 --> 00:54:09,610 >> Entón o que necesitamos facer, por Marcus instrucións para min, eran rand sementes 1152 00:54:09,610 --> 00:54:13,810 con outra cousa, que é o que a función srand fai. 1153 00:54:13,810 --> 00:54:18,055 Sementa rand con algo un pouco máis aleatoria que a mesma cousa, e 1154 00:54:18,055 --> 00:54:23,360 está sementando-lo co tempo NULL, que é, só por convención, o actual 1155 00:54:23,360 --> 00:54:24,650 o tempo en segundos. 1156 00:54:24,650 --> 00:54:29,790 >> Entón está asumindo que todo o mundo non é vai executar o código no exacto 1157 00:54:29,790 --> 00:54:33,620 mesmo segundo, polo que é unha aposta segura que tempo NULL será diferente 1158 00:54:33,620 --> 00:54:35,250 cada vez que este código é executado. 1159 00:54:35,250 --> 00:54:39,020 Aposta segura que así, srand vontade rand sementes con algo diferente cada 1160 00:54:39,020 --> 00:54:39,990 vez. 1161 00:54:39,990 --> 00:54:44,110 Entón, por convención, cando quere un número aleatorio, escribimos esta liña, 1162 00:54:44,110 --> 00:54:50,540 srand NULL tempo, para dar unha gran semente máis aleatoria, e despois corremos 1163 00:54:50,540 --> 00:54:52,080 rand, que nos dá un número aleatorio. 1164 00:54:52,080 --> 00:54:52,840 Si? 1165 00:54:52,840 --> 00:54:54,140 >> ALUMNO: Pode dicir o que quere dicir con semente? 1166 00:54:54,140 --> 00:54:55,630 >> Jason Hirschhorn: Semente de in - 1167 00:54:55,630 --> 00:54:58,730 así rand vai escoller un número e vai utilizar algún 1168 00:54:58,730 --> 00:55:00,060 fórmula para chegar alí. 1169 00:55:00,060 --> 00:55:03,250 Por iso, vai comezar con algo e, a continuación, transformalo en algo baseado 1170 00:55:03,250 --> 00:55:03,890 fóra desta fórmula. 1171 00:55:03,890 --> 00:55:06,090 Se sempre darlle o mesmo, el sempre vai transformalo no 1172 00:55:06,090 --> 00:55:06,790 mesmo. 1173 00:55:06,790 --> 00:55:08,450 Así que o primeiro que dar é a semente. 1174 00:55:08,450 --> 00:55:10,880 Entón quere dar algo diferente para comezar con, e por iso 1175 00:55:10,880 --> 00:55:12,610 vai transformalo en algo diferente. 1176 00:55:12,610 --> 00:55:15,840 >> E, finalmente, a liña 20, dicir chamada a% 1177 00:55:15,840 --> 00:55:17,470 modulo, e iso é confuso. 1178 00:55:17,470 --> 00:55:19,850 Isto é algo que é un pouco distinto aquí que realmente non 1179 00:55:19,850 --> 00:55:22,240 ten en matemáticas da vida real. 1180 00:55:22,240 --> 00:55:27,430 Pero, esencialmente, cando toma un xigante número e dividir en C, o que 1181 00:55:27,430 --> 00:55:29,482 pasa co resto? 1182 00:55:29,482 --> 00:55:30,510 >> ALUMNO: El queda truncado. 1183 00:55:30,510 --> 00:55:31,220 >> Jason Hirschhorn: El queda truncado. 1184 00:55:31,220 --> 00:55:35,200 Entón, 20 dividido por 3 é o que? 1185 00:55:35,200 --> 00:55:37,950 O que isto quere volver ao ti, 20 dividido por 3. 1186 00:55:37,950 --> 00:55:39,260 Sentímolo, 10 dividido por 3. 1187 00:55:39,260 --> 00:55:41,062 O que isto quere volver para ti? 1188 00:55:41,062 --> 00:55:41,540 >> Estudante: [inaudível]. 1189 00:55:41,540 --> 00:55:45,170 >> Jason Hirschhorn: 10 dividido por 3 só devolve 3, non 3 restante 1. 1190 00:55:45,170 --> 00:55:51,490 Entón, o 10 módulo 3 retorno é só o resto, 1. 1191 00:55:51,490 --> 00:55:54,020 Entón, se quería saber o que 10 dividido por 3 realmente era, se fose 1192 00:55:54,020 --> 00:55:58,950 facer 10 dividido por 3, terá a súa 3, e logo, faría 10 modulo 3 e 1193 00:55:58,950 --> 00:55:59,860 quere obter a 1. 1194 00:55:59,860 --> 00:56:04,630 Entón entender que 10 dividido por 3 é 3, un resto. 1195 00:56:04,630 --> 00:56:07,990 >> E nesta liña, pode rand calquera número enteiro, esencialmente. 1196 00:56:07,990 --> 00:56:12,660 Entón modulo está dicindo, división lo por número, o cal é, neste caso cinco. 1197 00:56:12,660 --> 00:56:16,420 E se dividir por un número, o número enteiro sempre ten que ser inferior a 1198 00:56:16,420 --> 00:56:17,590 ese número. 1199 00:56:17,590 --> 00:56:22,200 Entón, se está dividindo por un número 5, o resto é sempre vai ser 1200 00:56:22,200 --> 00:56:23,396 de cero a catro. 1201 00:56:23,396 --> 00:56:25,520 Isto é só a forma como as matemáticas funciona. 1202 00:56:25,520 --> 00:56:29,700 >> Así, un gran número moduloed por un menor número sempre volverá 1203 00:56:29,700 --> 00:56:33,530 resto e sempre volver algún número que é menor que o número que 1204 00:56:33,530 --> 00:56:34,693 dividido. 1205 00:56:34,693 --> 00:56:37,920 Alguén ten algunha dúbida sobre modulo, porque vai vir en moito, 1206 00:56:37,920 --> 00:56:41,450 moi útil, entón eu quero que seguro todo o mundo entende isto? 1207 00:56:41,450 --> 00:56:43,710 Legal. 1208 00:56:43,710 --> 00:56:46,000 E vimos que este programa funciona. 1209 00:56:46,000 --> 00:56:50,280 OK, seguindo adiante. 1210 00:56:50,280 --> 00:56:52,970 >> Así, na seguinte, imos entrar funcións, e nós estamos indo a ir 1211 00:56:52,970 --> 00:56:55,580 a través do resto das cousas moi rapidamente porque quero chegar 1212 00:56:55,580 --> 00:56:57,150 argumentos de liña de comandos. 1213 00:56:57,150 --> 00:57:00,330 Así, as funcións son, esencialmente, Como viu, as caixas negras. 1214 00:57:00,330 --> 00:57:04,290 Eles levan as cousas chamados parámetros, eles fan algo para eles, sexa 1215 00:57:04,290 --> 00:57:06,990 muda-los ou crear algúns efectos secundarios, e, finalmente, eles cospen 1216 00:57:06,990 --> 00:57:09,530 algo, o que se o valor de retorno. 1217 00:57:09,530 --> 00:57:12,495 Alguén me pode dar unha razón por iso que usaría funcións? 1218 00:57:12,495 --> 00:57:15,870 1219 00:57:15,870 --> 00:57:16,360 Calquera? 1220 00:57:16,360 --> 00:57:19,360 Unha razón pola que usariamos funcións? 1221 00:57:19,360 --> 00:57:21,280 Calquera? 1222 00:57:21,280 --> 00:57:22,700 Vin as dúas mans. 1223 00:57:22,700 --> 00:57:23,590 ¿Que é un bo motivo? 1224 00:57:23,590 --> 00:57:24,930 Marcus? 1225 00:57:24,930 --> 00:57:27,730 >> ALUMNO: Se ten que chamar o mesmo anaco de código varias veces. 1226 00:57:27,730 --> 00:57:29,150 >> Jason Hirschhorn: OK, se precisa para chamar a mesma peza de 1227 00:57:29,150 --> 00:57:30,040 codificar varias veces. 1228 00:57:30,040 --> 00:57:32,470 Jeff, se ten unha razón diferente? 1229 00:57:32,470 --> 00:57:34,230 >> ALUMNO: Só que podes codificar menos. 1230 00:57:34,230 --> 00:57:35,070 >> Jason Hirschhorn: Pode codificar menos. 1231 00:57:35,070 --> 00:57:35,320 Correcto. 1232 00:57:35,320 --> 00:57:38,720 Se queres facer algo moi - 1233 00:57:38,720 --> 00:57:41,720 no código anterior, eu podería ter escrito obter secuencia de cinco veces, pero unha 1234 00:57:41,720 --> 00:57:44,620 loop fai que pareza máis bonito e ten que escribir menos código. 1235 00:57:44,620 --> 00:57:45,760 Funcións son unha idea similar. 1236 00:57:45,760 --> 00:57:48,720 Se eu queira facer o mesmo unha chea, movelo a unha función e chamar iso de 1237 00:57:48,720 --> 00:57:49,610 funcionando á vez. 1238 00:57:49,610 --> 00:57:51,190 Isto fará que esa cousa para ti. 1239 00:57:51,190 --> 00:57:53,740 Isto é un gran motivo utilizar funcións. 1240 00:57:53,740 --> 00:57:54,870 >> Entón, anatomía dunha función. 1241 00:57:54,870 --> 00:57:56,670 A función xeral semellante a esta. 1242 00:57:56,670 --> 00:57:59,280 Comezará co tipo de retorno, entón vai ter o nome. 1243 00:57:59,280 --> 00:58:02,935 Vai levar os argumentos, se non, coñecido como os parámetros, e dentro 1244 00:58:02,935 --> 00:58:05,290 esas claves, vai escribir o seu código. 1245 00:58:05,290 --> 00:58:07,150 >> Vimos unha función moito. 1246 00:58:07,150 --> 00:58:09,160 Esa é principal. 1247 00:58:09,160 --> 00:58:13,820 Aquí é principal superposta anatomía que tiña antes. 1248 00:58:13,820 --> 00:58:15,525 Que int aquí significa? 1249 00:58:15,525 --> 00:58:18,534 1250 00:58:18,534 --> 00:58:19,450 Que int significa? 1251 00:58:19,450 --> 00:58:21,026 Cando escribo int main (void). 1252 00:58:21,026 --> 00:58:21,740 >> ALUMNO: Tipo de retorno? 1253 00:58:21,740 --> 00:58:22,350 >> Jason Hirschhorn: Sentímolo? 1254 00:58:22,350 --> 00:58:23,170 >> ALUMNO: O tipo de retorno. 1255 00:58:23,170 --> 00:58:24,820 >> Jason Hirschhorn: Int é o tipo de retorno, exactamente correcto. 1256 00:58:24,820 --> 00:58:25,870 Iniciar retorna un int. 1257 00:58:25,870 --> 00:58:28,678 Qué é o principal? 1258 00:58:28,678 --> 00:58:29,510 >> ALUMNO: nome da función. 1259 00:58:29,510 --> 00:58:30,800 >> Jason Hirschhorn: Principal é o nome da función. 1260 00:58:30,800 --> 00:58:31,510 Exactamente. 1261 00:58:31,510 --> 00:58:31,840 E baleiro? 1262 00:58:31,840 --> 00:58:33,190 Que é o baleiro dentro dos parénteses? 1263 00:58:33,190 --> 00:58:36,650 1264 00:58:36,650 --> 00:58:42,030 >> ALUMNO: Non hai que calquera valor externo. 1265 00:58:42,030 --> 00:58:42,930 >> Jason Hirschhorn: void So - 1266 00:58:42,930 --> 00:58:43,240 dereita. 1267 00:58:43,240 --> 00:58:45,940 Dentro dos parénteses, poñemos o parámetros ou argumentos dos 1268 00:58:45,940 --> 00:58:48,480 función recibe, o que pasa no interior da caixa negra. 1269 00:58:48,480 --> 00:58:50,760 Cando escribe baleiro, está dicindo iso leva nada dentro 1270 00:58:50,760 --> 00:58:53,802 Entón int void main principal medio de non ter nada dentro 1271 00:58:53,802 --> 00:58:56,950 >> Dentro das claves, temos algúns código, e entón veremos a finais 1272 00:58:56,950 --> 00:58:57,640 voltar cero. 1273 00:58:57,640 --> 00:59:01,220 Que significa retorno de cero significa? 1274 00:59:01,220 --> 00:59:02,470 Ben, nós falamos sobre o tipo de retorno. 1275 00:59:02,470 --> 00:59:03,780 Principal que voltar un int. 1276 00:59:03,780 --> 00:59:04,960 Iso é o que esta liña fai. 1277 00:59:04,960 --> 00:59:07,330 El retorna un int, cero. 1278 00:59:07,330 --> 00:59:13,600 >> Claro que non vimos que moitas porque na programación que facemos con 1279 00:59:13,600 --> 00:59:16,070 as máquinas que facemos e os compiladores usamos hoxe en día, 1280 00:59:16,070 --> 00:59:16,990 non precisa desa liña. 1281 00:59:16,990 --> 00:59:20,070 Principal é especial o suficiente para que el sabe cando chegar ao final do principal, só 1282 00:59:20,070 --> 00:59:22,060 voltar cero se todo foi ben. 1283 00:59:22,060 --> 00:59:25,560 De feito, se algo non vai ben, principal, moitas veces, voltar un diferente 1284 00:59:25,560 --> 00:59:28,500 número significando que algo deu mal co seu programa. 1285 00:59:28,500 --> 00:59:32,470 >> Entón, xeralmente cando ver o código, Non escriba retorno cero, pero é bo 1286 00:59:32,470 --> 00:59:34,770 para saber que isto está a suceder por tras da escenas porque sempre que escribir 1287 00:59:34,770 --> 00:59:36,370 outro tipo de función, está indo a necesidade de 1288 00:59:36,370 --> 00:59:37,400 incluír unha liña de retorno. 1289 00:59:37,400 --> 00:59:39,710 Se está dicindo que eu vou voltar un int, ten que 1290 00:59:39,710 --> 00:59:41,250 escribir devolver algo. 1291 00:59:41,250 --> 00:59:45,160 Se digo branco aquí no comezo, void void principal, para 1292 00:59:45,160 --> 00:59:48,670 exemplo, el non volve nada - branco non significa nada - 1293 00:59:48,670 --> 00:59:50,320 así que non que a liña de retorno. 1294 00:59:50,320 --> 00:59:53,610 Pero sempre escribir algo que non é para anular o tipo de retorno, ten que 1295 00:59:53,610 --> 00:59:55,950 unha liña que di que volta e ten que poñer algo alí 1296 00:59:55,950 --> 00:59:57,650 que corresponde ao tipo. 1297 00:59:57,650 --> 00:59:58,900 Calquera dúbida sobre iso? 1298 00:59:58,900 --> 01:00:03,110 1299 01:00:03,110 --> 01:00:04,680 Doce. 1300 01:00:04,680 --> 01:00:05,930 >> Scope. 1301 01:00:05,930 --> 01:00:07,360 Isto é algo que temos tocou tamén. 1302 01:00:07,360 --> 01:00:10,720 Cada variable, como sabemos, ten unha certa marxe, e iso é basicamente 1303 01:00:10,720 --> 01:00:14,160 falando sobre onde a variable pode ou non pode ser referenciada. 1304 01:00:14,160 --> 01:00:16,310 E gustaríame dicir o que pasa entre chaves permanece 1305 01:00:16,310 --> 01:00:18,000 dentro das chaves. 1306 01:00:18,000 --> 01:00:21,490 Así, por exemplo, se miramos a este código, estamos definindo unha variable global 1307 01:00:21,490 --> 01:00:24,510 fóra do principal, int a, aquí enriba na parte superior. 1308 01:00:24,510 --> 01:00:27,380 Estamos chamando outro int dentro dunha principal. 1309 01:00:27,380 --> 01:00:29,760 Temos algunhas claves máis Crespo, e estamos chamando outro un int. 1310 01:00:29,760 --> 01:00:31,690 >> Temos tres un no código. 1311 01:00:31,690 --> 01:00:32,550 Estes non son o mesmo. 1312 01:00:32,550 --> 01:00:34,880 Creei tres variables distintas. 1313 01:00:34,880 --> 01:00:39,370 Entón dentro destas rizado interior tirantes, digo a = 4. 1314 01:00:39,370 --> 01:00:44,130 Que un é que está falando, o primeiro, o segundo, 1315 01:00:44,130 --> 01:00:47,045 ou o terceiro? 1316 01:00:47,045 --> 01:00:47,920 >> ALUMNO: o terceiro. 1317 01:00:47,920 --> 01:00:49,320 >> Jason Hirschhorn: Está falando sobre o terceiro. 1318 01:00:49,320 --> 01:00:52,850 Todos aqueles a realidade se pode falou neste particular, 1319 01:00:52,850 --> 01:00:58,660 exemplo, porque o seu alcance todo vai para esas claves máis íntimos. 1320 01:00:58,660 --> 01:01:02,360 Con todo, cando chamar as cousas da mesma nome, hai algo chamado escondidos. 1321 01:01:02,360 --> 01:01:09,670 Así, só se xestione ou reparar ou empregar o variable máis recente, ou a un 1322 01:01:09,670 --> 01:01:11,090 máis próxima de ti. 1323 01:01:11,090 --> 01:01:14,760 Así, aquí dentro, é dicir máis próximo a un terceiro a esta liña, a = 4, entón 1324 01:01:14,760 --> 01:01:16,550 afecta o terceiro. 1325 01:01:16,550 --> 01:01:19,890 E a última liña, a = 2, o cal é un que está falando, o primeiro, segundo, 1326 01:01:19,890 --> 01:01:20,805 ou un terceiro? 1327 01:01:20,805 --> 01:01:22,530 >> ALUMNO: Segundo. 1328 01:01:22,530 --> 01:01:24,430 >> Jason Hirschhorn: Está falando sobre o segundo, unha. 1329 01:01:24,430 --> 01:01:27,970 Claro que, a un terceiro está máis próximo en que o código, pero o terceiro un 1330 01:01:27,970 --> 01:01:30,200 non existe fóra esas claves. 1331 01:01:30,200 --> 01:01:32,650 Unha vez que chegar a ese pechado rizado cinta, como é que se foi, 1332 01:01:32,650 --> 01:01:33,570 esencialmente. 1333 01:01:33,570 --> 01:01:36,150 Entón, os dous únicos que lle queda son aqueles os dous primeiros e, por suposto, xa 1334 01:01:36,150 --> 01:01:37,960 que está máis preto da segunda. 1335 01:01:37,960 --> 01:01:39,410 >> Entón, iso é bo para Lembre-se sobre o ámbito de aplicación. 1336 01:01:39,410 --> 01:01:42,900 Por exemplo, eu estou seguro que atopou facelo en un loop while. 1337 01:01:42,900 --> 01:01:46,680 Se inicializar a variable dentro o que while e despois tentar 1338 01:01:46,680 --> 01:01:50,360 acceder a ela do lado de fóra, probablemente Ten algún aviso como, este 1339 01:01:50,360 --> 01:01:51,680 variable non existe. 1340 01:01:51,680 --> 01:01:54,370 Isto porque a idea de alcance, que as cousas só existen 1341 01:01:54,370 --> 01:01:55,320 dentro desas chaves. 1342 01:01:55,320 --> 01:01:59,320 Curly claves son como unha aperta xigante que está dando ao seu código, é outro 1343 01:01:59,320 --> 01:02:01,380 forma de pensar sobre iso. 1344 01:02:01,380 --> 01:02:05,280 >> Polo tanto, esta é outra función, algo para vós código, hellofunction.c. 1345 01:02:05,280 --> 01:02:08,240 Nós imos saltar que, por agora, pero iso é algo que eu encouraged-lo a 1346 01:02:08,240 --> 01:02:09,740 practicar no seu propio país. 1347 01:02:09,740 --> 01:02:12,510 Escriba un programa no que as chamadas principais outra función que imprime unha 1348 01:02:12,510 --> 01:02:13,750 saúdo ao usuario. 1349 01:02:13,750 --> 01:02:17,750 É esencialmente tomando Ola mundo e abstraindo que printf en 1350 01:02:17,750 --> 01:02:18,680 outra función. 1351 01:02:18,680 --> 01:02:22,360 Pero nós non imos facelo agora porque non temos tanto tempo 1352 01:02:22,360 --> 01:02:23,350 saíu como eu tería gusto. 1353 01:02:23,350 --> 01:02:26,250 >> Entón declaración da función. 1354 01:02:26,250 --> 01:02:28,080 Nós xa vimos isto antes tamén. 1355 01:02:28,080 --> 01:02:31,180 Se queres escribir unha outra función, ten que deixar o ordenador coñecer e 1356 01:02:31,180 --> 01:02:32,600 principal sabe que existe. 1357 01:02:32,600 --> 01:02:37,140 Entón, o que facemos é por riba de inicio, escribimos o tipo de retorno, o nome eo 1358 01:02:37,140 --> 01:02:42,970 parámetros e logo, por baixo de inicio, aquí, nós realmente copiar esa liña 1359 01:02:42,970 --> 01:02:45,080 e logo escribir o código real. 1360 01:02:45,080 --> 01:02:50,990 Así, deste xeito, se chamar a función en principal na parte superior, principal sabe que 1361 01:02:50,990 --> 01:02:54,650 Ola existe, por exemplo, se eu fose para chamar Ola, e, a continuación, mira para 1362 01:02:54,650 --> 01:02:56,710 a posta en marcha a continuación. 1363 01:02:56,710 --> 01:02:59,680 Qué acontece se eu non incluír este liña enriba, anular Ola (void)? 1364 01:02:59,680 --> 01:03:03,820 1365 01:03:03,820 --> 01:03:06,560 >> Se eu non incluír esta liña e chamadas principais Ola, eu son 1366 01:03:06,560 --> 01:03:07,640 recibirá un erro. 1367 01:03:07,640 --> 01:03:10,090 Eu estou indo a obter un erro porque o compilador non sabe 1368 01:03:10,090 --> 01:03:13,070 que esa cousa existe. 1369 01:03:13,070 --> 01:03:16,680 Isto é semellante a iso que non # include cs50.h. 1370 01:03:16,680 --> 01:03:21,390 Que esencialmente cs50.h está facendo está poñendo obter corda alí enriba. 1371 01:03:21,390 --> 01:03:23,120 É poñer obter int alí enriba. 1372 01:03:23,120 --> 01:03:26,570 É poñer todos aqueles función prototipos antes principal de xeito que cando 1373 01:03:26,570 --> 01:03:29,900 chamalos en principal, principal sabe que esas cousas existen. 1374 01:03:29,900 --> 01:03:31,630 Iso é o que estes arquivos h. Crear. 1375 01:03:31,630 --> 01:03:33,850 E por iso, se está indo a facer o seu propio función, ten que asegurarse de 1376 01:03:33,850 --> 01:03:36,690 pór este prototipo alí enriba. 1377 01:03:36,690 --> 01:03:38,380 Calquera dúbida sobre iso ata agora? 1378 01:03:38,380 --> 01:03:41,630 1379 01:03:41,630 --> 01:03:42,490 >> Argumentos de liña de comandos. 1380 01:03:42,490 --> 01:03:44,780 Isto é o que nós imos rematar , E entón espero que nós imos 1381 01:03:44,780 --> 01:03:46,180 espremer nalgúns pset. 1382 01:03:46,180 --> 01:03:48,700 Non sei se nós imos ser capaces de espremer en que por mor do tempo, pero 1383 01:03:48,700 --> 01:03:51,560 con vostedes que están aquí, e se Queren dicir que despois de un pouco, nos 1384 01:03:51,560 --> 01:03:54,290 pode pasar por iso de fóra. 1385 01:03:54,290 --> 01:03:56,020 Pero imos rematar con argumentos de liña de comandos 1386 01:03:56,020 --> 01:03:58,510 para os últimos 15 minutos. 1387 01:03:58,510 --> 01:03:59,930 Nós acordo, Michael? 1388 01:03:59,930 --> 01:04:01,180 Está acordado? 1389 01:04:01,180 --> 01:04:01,660 Bo 1390 01:04:01,660 --> 01:04:03,760 Non sei se durmir cos ollos pechados. 1391 01:04:03,760 --> 01:04:05,800 Sería complicado. 1392 01:04:05,800 --> 01:04:07,180 >> Argumentos de liña de comandos. 1393 01:04:07,180 --> 01:04:10,430 Aqueles que son unha forma de pasar información nun programa. 1394 01:04:10,430 --> 01:04:12,780 Finalmente, nós imos atopar os outros. 1395 01:04:12,780 --> 01:04:15,600 Pero, esencialmente, imos parar escribir int main (void) se queremos 1396 01:04:15,600 --> 01:04:16,720 ter algúns argumentos de liña de comandos. 1397 01:04:16,720 --> 01:04:19,850 Nós imos escribir esta cousa chamado int main (int argc, 1398 01:04:19,850 --> 01:04:22,430 corda argv, corchetes. 1399 01:04:22,430 --> 01:04:23,710 Isto é confuso. 1400 01:04:23,710 --> 01:04:26,070 Isto é unha morea de letras que non están en Inglés humano, polo que estamos indo a 1401 01:04:26,070 --> 01:04:27,680 descompactá-los agora. 1402 01:04:27,680 --> 01:04:30,450 >> Argc significa conta argumento - 1403 01:04:30,450 --> 01:04:32,600 e de novo, todo isto vai estar dispoñible en liña - 1404 01:04:32,600 --> 01:04:34,280 e este é o número de argumentos. 1405 01:04:34,280 --> 01:04:37,940 Argv significa argumento do vector, e quen son os propios argumentos. 1406 01:04:37,940 --> 01:04:38,830 É unha matriz de cadeas. 1407 01:04:38,830 --> 01:04:40,880 Temos realmente ver unha matriz de corda antes de hoxe. 1408 01:04:40,880 --> 01:04:44,390 Creamos un no último programa que cifrada. 1409 01:04:44,390 --> 01:04:45,720 >> Entón, aquí está un exemplo. 1410 01:04:45,720 --> 01:04:50,230 Eu escriba. / Ohai CS50 sección na miña liña de comandos. 1411 01:04:50,230 --> 01:04:54,090 Argc, neste caso é igual a 3. 1412 01:04:54,090 --> 01:05:01,170 Argv soporte 0 é ohai, argv soporte 1 é CS50, argv pista 2 é a sección. 1413 01:05:01,170 --> 01:05:05,160 De novo, argc é o número de argumentos, e para te enganar un pouco 1414 01:05:05,160 --> 01:05:08,710 bit, contamos sempre co nome da funcionan como o primeiro argumento. 1415 01:05:08,710 --> 01:05:12,350 Polo tanto, neste caso, hai tres argumentos, o nome da función 1416 01:05:12,350 --> 01:05:14,590 e logo, os dous que eu escriba dentro 1417 01:05:14,590 --> 01:05:18,900 >> Logo, imos a gardar os propios argumentos en argv. 1418 01:05:18,900 --> 01:05:22,690 E, de novo, só, como vimos antes, fixemos esta última no programa que cifrada. 1419 01:05:22,690 --> 01:05:27,110 Pode mover-se a través da matriz de argv e obter estas cadeas. 1420 01:05:27,110 --> 01:05:28,830 Isto é esencialmente o que fixemos no a fin do noso último programa. 1421 01:05:28,830 --> 01:05:33,190 Nós escoller un nome aleatorio e, a continuación, foi para a nomes de soporte que quere e impreso 1422 01:05:33,190 --> 01:05:34,580 a secuencia situado alí. 1423 01:05:34,580 --> 01:05:39,870 1424 01:05:39,870 --> 01:05:43,670 >> Enriba de só unha matriz, xa propias cordas son matrices, como 1425 01:05:43,670 --> 01:05:46,320 falou, pode ter matrices de matrices, que se 1426 01:05:46,320 --> 01:05:48,530 esencialmente o que argv é. 1427 01:05:48,530 --> 01:05:51,370 Unha maneira que pode pensar sobre é dicir as liñas e columnas. 1428 01:05:51,370 --> 01:05:54,750 Podo chamar iso agora. 1429 01:05:54,750 --> 01:05:57,370 Entón argv - 1430 01:05:57,370 --> 01:05:58,630 que non está apagando. 1431 01:05:58,630 --> 01:05:59,880 Imos deseñar baixo ohai. 1432 01:05:59,880 --> 01:06:09,320 1433 01:06:09,320 --> 01:06:12,490 >> Entón, se eu escribín en, sección CS50 ohai, Eu estou indo a truncar 1434 01:06:12,490 --> 01:06:14,520 sección para este exemplo. 1435 01:06:14,520 --> 01:06:29,026 Pero, esencialmente, o meu multidimensional array, ohai CS50, 1436 01:06:29,026 --> 01:06:32,200 imos facer seita. 1437 01:06:32,200 --> 01:06:34,610 Entón, aquí, podo acceder a - 1438 01:06:34,610 --> 01:06:40,930 1439 01:06:40,930 --> 01:06:45,710 se eu só dar argv un número - 1440 01:06:45,710 --> 01:06:46,390 iso é malo. 1441 01:06:46,390 --> 01:06:49,020 O que hai de malo neste diagrama? 1442 01:06:49,020 --> 01:06:49,690 >> ALUMNO: Comezar polo cero. 1443 01:06:49,690 --> 01:06:50,350 >> Jason Hirschhorn: debe comezar con cero. 1444 01:06:50,350 --> 01:06:52,940 Eu probablemente debería tamén xiralo, pero pois eu xa deseñado tanto, estou 1445 01:06:52,940 --> 01:06:54,120 vai deixar lo alí por un tempo. 1446 01:06:54,120 --> 01:06:55,160 Pero comeza a cero. 1447 01:06:55,160 --> 01:06:56,410 Iso é certo. 1448 01:06:56,410 --> 01:06:58,980 1449 01:06:58,980 --> 01:07:00,120 Sentímolo se isto é pequeno. 1450 01:07:00,120 --> 01:07:01,370 Podedes tipo de ver? 1451 01:07:01,370 --> 01:07:03,620 1452 01:07:03,620 --> 01:07:06,670 Entón, se eu fai argv 0, vou obter toda ohai. 1453 01:07:06,670 --> 01:07:08,555 Se eu fai unha argv, eu vou ir todos CS50. 1454 01:07:08,555 --> 01:07:10,720 Se eu fai argv 2, eu vou ir todos seita. 1455 01:07:10,720 --> 01:07:13,370 >> Pero agora, como dixemos, cordas son propias matrices. 1456 01:07:13,370 --> 01:07:19,740 Entón, o que podo facer é que podo tratar esta como unha matriz multi-dimensional, e eu 1457 01:07:19,740 --> 01:07:24,190 pode facer algo ao longo das liñas de argv 0, 0, o que me dá só o 1458 01:07:24,190 --> 01:07:25,400 carácter 0. 1459 01:07:25,400 --> 01:07:28,760 Argv 0, 1, o que me dá só h. 1460 01:07:28,760 --> 01:07:33,960 Argv 1, 3, o que me dá só este 0 aquí no CS50. 1461 01:07:33,960 --> 01:07:37,690 >> Entón, por que os propios fíos son matrices, estamos poñendo 1462 01:07:37,690 --> 01:07:38,540 que na outra matriz. 1463 01:07:38,540 --> 01:07:42,850 Temos agora array de arrays, e nós pode indexar a nosa primeira matriz e 1464 01:07:42,850 --> 01:07:44,840 entón o índice para o noso segundo array. 1465 01:07:44,840 --> 01:07:48,650 E, como era de esperar, nós facemos iso por só poñer os dous - 1466 01:07:48,650 --> 01:07:51,760 facemos os corchetes só xunto un do outro. 1467 01:07:51,760 --> 01:07:58,930 Polo tanto, neste exemplo, argv é unha CS50 e argv 1, 2, como dixemos, non é máis que 5. 1468 01:07:58,930 --> 01:08:02,120 Alguén ten algunha dúbida sobre arrays multi-dimensional? 1469 01:08:02,120 --> 01:08:05,090 1470 01:08:05,090 --> 01:08:06,380 Vostedes están facendo incrible. 1471 01:08:06,380 --> 01:08:07,750 Doce. 1472 01:08:07,750 --> 01:08:11,980 >> Entón, nós temos un outro programa aquí, e esta é a última cousa que somos 1473 01:08:11,980 --> 01:08:13,690 vai facer agora. 1474 01:08:13,690 --> 01:08:18,160 Entón, quero que escriba un programa que leva o nome completo do usuario, dous e só 1475 01:08:18,160 --> 01:08:21,649 dous argumentos de liña de comandos e finalmente imprimir un saúdo ao 1476 01:08:21,649 --> 01:08:24,180 usuario, que inclúe o seu primeiro nome. 1477 01:08:24,180 --> 01:08:27,800 Entón, por que non tomar tres ou catro minutos para facer iso, e despois imos 1478 01:08:27,800 --> 01:08:29,870 sobre el como un grupo, e entón imos embrulhar? 1479 01:08:29,870 --> 01:09:44,189 1480 01:09:44,189 --> 01:09:48,084 >> E, de novo, aquí, cando dicimos ter un nome completo acordo coa descrición do usuario 1481 01:09:48,084 --> 01:09:54,473 deste problema, que debe ser de ordes argumentos de liña, evitando obter cadea. 1482 01:09:54,473 --> 01:09:55,450 Si, Marcus? 1483 01:09:55,450 --> 01:09:58,260 >> ALUMNO: Entón, cando di que dous comandos argumentos de liña, é que, ademais 1484 01:09:58,260 --> 01:10:00,000 . O / run, ou - 1485 01:10:00,000 --> 01:10:02,980 >> Jason Hirschhorn: Boa pregunta. 1486 01:10:02,980 --> 01:10:05,995 Facer, incluíndo o. / Run, tres argumentos de liña de comandos. 1487 01:10:05,995 --> 01:10:08,550 1488 01:10:08,550 --> 01:10:11,320 Ou, incluíndo o. / Personalizado, a Neste caso, porque esa é a 1489 01:10:11,320 --> 01:10:12,360 nome deste ficheiro. 1490 01:10:12,360 --> 01:10:13,300 Entón argc sería tres. 1491 01:10:13,300 --> 01:10:19,480 Pero quero só dous argumentos dado ao programa. 1492 01:10:19,480 --> 01:10:20,400 Debo especificar iso. 1493 01:10:20,400 --> 01:10:23,380 Vou facer este cambio antes de publicar estes e envialos a vós. 1494 01:10:23,380 --> 01:10:32,747 1495 01:10:32,747 --> 01:10:34,740 >> ESTUDANTE: E se ten un nome do medio? 1496 01:10:34,740 --> 01:10:36,800 >> Jason Hirschhorn: Se ten un medio nome, está sen sorte. 1497 01:10:36,800 --> 01:10:38,050 Sinto moito. 1498 01:10:38,050 --> 01:10:40,320 1499 01:10:40,320 --> 01:10:43,744 Ou se só vai por Shakira, tamén está fóra de sorte. 1500 01:10:43,744 --> 01:10:55,672 1501 01:10:55,672 --> 01:10:56,425 Si? 1502 01:10:56,425 --> 01:11:00,760 >> ALUMNO: Entón, cando a xente non ten cs50.h, eles definen argv 1503 01:11:00,760 --> 01:11:03,450 como estrela argv de char? 1504 01:11:03,450 --> 01:11:05,160 Ou aínda se chama cadea argv? 1505 01:11:05,160 --> 01:11:07,430 >> Jason Hirschhorn: si. 1506 01:11:07,430 --> 01:11:10,480 Entón, cadea, de novo, máscara sobre o que exactamente está a suceder alí. 1507 01:11:10,480 --> 01:11:14,040 Isto vai ser descomprimido quizais o mércores, pero en breve. 1508 01:11:14,040 --> 01:11:16,380 É como Rodas pequenas. 1509 01:11:16,380 --> 01:11:18,370 Por esencialmente, é o mesmo. 1510 01:11:18,370 --> 01:11:37,040 1511 01:11:37,040 --> 01:11:42,560 >> Entón, imos dar un minuto para o programa este, a continuación, imos falar 1512 01:11:42,560 --> 01:11:45,130 como un grupo e, despois como dixen, envolver. 1513 01:11:45,130 --> 01:11:47,770 E eu creo que aínda son doces extra, entón vostedes deben espera ter 1514 01:11:47,770 --> 01:11:49,790 que, ou por favor, tome isto. 1515 01:11:49,790 --> 01:12:20,380 1516 01:12:20,380 --> 01:12:22,560 >> Sentímolo se aínda está escribindo, pero quero mergullo e nós 1517 01:12:22,560 --> 01:12:24,010 pode remata-lo xuntos. 1518 01:12:24,010 --> 01:12:30,470 Entón, eu teño escrito, # include cs50.h, # include stdio.h. 1519 01:12:30,470 --> 01:12:33,970 int main (void), rizado cinta, rizado cinta, dentro de tres liñas de 1520 01:12:33,970 --> 01:12:38,760 pseudocódigo, ter o nome completo do usuario, dúas e só dúas liña de comandos 1521 01:12:38,760 --> 01:12:42,670 argumentos, imprime un saúdo ao usuario, que inclúe o seu primeiro nome. 1522 01:12:42,670 --> 01:12:45,810 >> Así, o primeiro, tomar nome completo do usuario. 1523 01:12:45,810 --> 01:12:47,290 Quen me pode axudar a tomar nome completo do usuario? 1524 01:12:47,290 --> 01:12:50,882 1525 01:12:50,882 --> 01:12:52,780 Cómo fago esa parte? 1526 01:12:52,780 --> 01:12:57,685 1527 01:12:57,685 --> 01:12:59,500 Vostedes fan a primeira parte? 1528 01:12:59,500 --> 01:13:02,587 1529 01:13:02,587 --> 01:13:03,894 Colla o nome completo do usuario. 1530 01:13:03,894 --> 01:13:05,860 Así, para que unha liña de comandos argumento, o que debo escribir? 1531 01:13:05,860 --> 01:13:09,624 ¿Que debería cambiar en miña declaración de función? 1532 01:13:09,624 --> 01:13:11,140 >> ALUMNO: Non quere que sexa máis branco. 1533 01:13:11,140 --> 01:13:11,410 >> Jason Hirschhorn: Exactamente. 1534 01:13:11,410 --> 01:13:12,385 Non quero que ela sexa anulada. 1535 01:13:12,385 --> 01:13:13,630 O que quero que sexa? 1536 01:13:13,630 --> 01:13:14,650 >> ALUMNO: argc Int 1537 01:13:14,650 --> 01:13:15,720 >> Jason Hirschhorn: Int argc. 1538 01:13:15,720 --> 01:13:17,430 >> ALUMNO: argv secuencia. 1539 01:13:17,430 --> 01:13:19,055 >> Jason Hirschhorn: cadea argv. 1540 01:13:19,055 --> 01:13:19,705 >> ALUMNO Sergio, soporte. 1541 01:13:19,705 --> 01:13:20,070 >> Jason Hirschhorn Sergio, soporte. 1542 01:13:20,070 --> 01:13:21,780 É exactamente iso, e iso é en realidade, como eu vou conseguir 1543 01:13:21,780 --> 01:13:22,820 nome completo do usuario. 1544 01:13:22,820 --> 01:13:24,070 Eles están indo para poñelas alí. 1545 01:13:24,070 --> 01:13:27,720 1546 01:13:27,720 --> 01:13:28,780 De modo que un está feito. 1547 01:13:28,780 --> 01:13:30,780 Entón agora quero dous e só dous argumentos de liña de comandos. 1548 01:13:30,780 --> 01:13:35,065 Entón Noé, o que é unha forma que eu poida comprobar o seu número de orde 1549 01:13:35,065 --> 01:13:36,315 argumentos de liña que eu teño? 1550 01:13:36,315 --> 01:13:39,676 1551 01:13:39,676 --> 01:13:40,725 >> ALUMNO: Vostede fai un if. 1552 01:13:40,725 --> 01:13:42,270 >> Jason Hirschhorn: Si declaración, exactamente. 1553 01:13:42,270 --> 01:13:44,830 O que quero que a condición? 1554 01:13:44,830 --> 01:13:48,370 >> ESTUDANTE: Se argc superior a 3. 1555 01:13:48,370 --> 01:13:52,485 >> Jason Hirschhorn: Se argc é maior que 3. 1556 01:13:52,485 --> 01:13:58,430 Se argc superior a 3, o que fago? 1557 01:13:58,430 --> 01:13:59,400 >> ESTUDANTE: Return 1. 1558 01:13:59,400 --> 01:14:01,856 >> Jason Hirschhorn: Return 1. 1559 01:14:01,856 --> 01:14:04,050 Será que garantir que teño dúas e só dúas? 1560 01:14:04,050 --> 01:14:07,280 1561 01:14:07,280 --> 01:14:07,820 >> ALUMNO: Non 1562 01:14:07,820 --> 01:14:13,110 Se é maior que argc 3 e inferior a 2. 1563 01:14:13,110 --> 01:14:17,770 >> Jason Hirschhorn: Se argc é maior a 3 e argc é inferior a 2. 1564 01:14:17,770 --> 01:14:21,540 ¿Que é un xeito que podo escribir isto en só unha liña, ou sen o uso que 1565 01:14:21,540 --> 01:14:23,890 e operador booleano? 1566 01:14:23,890 --> 01:14:25,942 >> ALUMNO: Non é igual a 2. 1567 01:14:25,942 --> 01:14:28,790 >> Jason Hirschhorn: Se argc non é igual a 2. 1568 01:14:28,790 --> 01:14:29,260 Exactamente. 1569 01:14:29,260 --> 01:14:34,890 Entón, se argc non é igual a 2, é dicir me vai dar a este programa, 1570 01:14:34,890 --> 01:14:37,250 personalizado, cando executa-lo, e que me vai dar cantos 1571 01:14:37,250 --> 01:14:38,740 argumentos de liña de comandos? 1572 01:14:38,740 --> 01:14:42,110 Cantos vou buscar? 1573 01:14:42,110 --> 01:14:42,370 >> Sentímolo. 1574 01:14:42,370 --> 01:14:43,400 Déixeme reformular iso. 1575 01:14:43,400 --> 01:14:46,620 Se argc = 2, cantas cousas fixo o usuario escribir na liña? 1576 01:14:46,620 --> 01:14:47,500 >> ALUMNO: Unha. 1577 01:14:47,500 --> 01:14:49,120 >> Jason Hirschhorn: Só un. 1578 01:14:49,120 --> 01:14:50,430 Entón, antes, estaba seguro, Noah. 1579 01:14:50,430 --> 01:14:52,192 O que eu realmente teño poñer alí? 1580 01:14:52,192 --> 01:14:53,640 >> ALUMNO: Isto é igual a 3. 1581 01:14:53,640 --> 01:14:55,970 >> Jason Hirschhorn: ARGC non é igual a 3. 1582 01:14:55,970 --> 01:15:00,250 Quero ser igual 3 porque quero personalización máis dos outros dous. 1583 01:15:00,250 --> 01:15:02,560 Entón, se argc non é igual a 3, o retorno 1. 1584 01:15:02,560 --> 01:15:04,475 Por que di voltar 1? 1585 01:15:04,475 --> 01:15:06,180 >> ALUMNO: Por iso significa que está mal. 1586 01:15:06,180 --> 01:15:08,420 >> Jason Hirschhorn: Isto significa que é malo, eo que é o que imos facer? 1587 01:15:08,420 --> 01:15:10,360 >> ALUMNO: Re-solicitar ao usuario. 1588 01:15:10,360 --> 01:15:11,940 >> Jason Hirschhorn: Vai saír o programa, polo que terá que correr 1589 01:15:11,940 --> 01:15:14,520 de novo, pero non temos nada aquí para solicitar a eles de novo. 1590 01:15:14,520 --> 01:15:14,840 Non pedín por iso. 1591 01:15:14,840 --> 01:15:15,990 Entón, iso é correcto. 1592 01:15:15,990 --> 01:15:17,680 Retorno 1 só sae do programa. 1593 01:15:17,680 --> 01:15:18,520 Grande. 1594 01:15:18,520 --> 01:15:21,600 >> E imprimir un saúdo ao usuario que inclúe o seu primeiro nome. 1595 01:15:21,600 --> 01:15:24,010 Como podo facelo? 1596 01:15:24,010 --> 01:15:25,990 Anna? 1597 01:15:25,990 --> 01:15:26,580 >> ESTUDANTE: printf. 1598 01:15:26,580 --> 01:15:27,785 >> Jason Hirschhorn: printf. 1599 01:15:27,785 --> 01:15:28,640 >> ESTUDANTE: (" 1600 01:15:28,640 --> 01:15:30,460 >> Jason Hirschhorn: ( 1601 01:15:30,460 --> 01:15:31,600 >> ALUMNO: "Ola 1602 01:15:31,600 --> 01:15:33,210 >> Jason Hirschhorn: "Ola 1603 01:15:33,210 --> 01:15:34,800 >> ALUMNO:% s 1604 01:15:34,800 --> 01:15:37,230 >> Jason Hirschhorn:% s 1605 01:15:37,230 --> 01:15:38,840 >> ALUMNO: / n 1606 01:15:38,840 --> 01:15:41,030 >> Jason Hirschhorn: / n 1607 01:15:41,030 --> 01:15:43,120 >> ALUMNO: ", 1608 01:15:43,120 --> 01:15:45,130 >> Jason Hirschhorn: ", 1609 01:15:45,130 --> 01:15:46,620 >> ALUMNO: argv 1610 01:15:46,620 --> 01:15:47,080 >> Jason Hirschhorn: Sentímolo? 1611 01:15:47,080 --> 01:15:47,750 >> ALUMNO: argv 1612 01:15:47,750 --> 01:15:48,840 >> Jason Hirschhorn: argv 1613 01:15:48,840 --> 01:15:50,190 >> ALUMNO: corchetes 1. 1614 01:15:50,190 --> 01:15:51,230 >> Jason Hirschhorn: corchetes? 1615 01:15:51,230 --> 01:15:51,870 >> ESTUDANTE: 1. 1616 01:15:51,870 --> 01:15:54,050 >> Jason Hirschhorn: 1. 1617 01:15:54,050 --> 01:15:55,850 >> ALUMNO: E) punto e coma. 1618 01:15:55,850 --> 01:15:58,290 >> Jason Hirschhorn :) comas. 1619 01:15:58,290 --> 01:16:00,250 Imos realizar este. 1620 01:16:00,250 --> 01:16:03,730 Fai personalizado. 1621 01:16:03,730 --> 01:16:06,392 . / Personalizado. 1622 01:16:06,392 --> 01:16:07,420 É só saír. 1623 01:16:07,420 --> 01:16:10,390 Por que saír? 1624 01:16:10,390 --> 01:16:11,310 >> ALUMNO: Non especificou ningún argumento. 1625 01:16:11,310 --> 01:16:12,560 >> Jason Hirschhorn: Eu non fixen poñer todos os argumentos dentro 1626 01:16:12,560 --> 01:16:16,360 1627 01:16:16,360 --> 01:16:16,920 Parece gran. 1628 01:16:16,920 --> 01:16:18,130 Vostedes acertaron de cheo. 1629 01:16:18,130 --> 01:16:22,420 Entón, de novo, entrou argv e Comprobarase a principios argc. 1630 01:16:22,420 --> 01:16:24,390 Estes son dous importantes cousas para lembrar. 1631 01:16:24,390 --> 01:16:29,250 Así, nos nosos dous últimos minutos antes de nós deixar, non imos chegar a pset dous, pero 1632 01:16:29,250 --> 01:16:33,585 como dixen, se quere ir despois por 10 minutos, eu o faría el feliz de ir 1633 01:16:33,585 --> 01:16:35,710 máis convosco a lóxica para estes conxuntos de problemas. 1634 01:16:35,710 --> 01:16:37,930 Tivemos unha chea de cubrir hoxe entón eu non chegar ata eles. 1635 01:16:37,930 --> 01:16:39,820 Xeralmente, gustaríame incluír que, ao final. 1636 01:16:39,820 --> 01:16:42,150 Entón, se quere ir por aquí, ir ao redor de 10 minutos. 1637 01:16:42,150 --> 01:16:42,990 Nós imos facelo. 1638 01:16:42,990 --> 01:16:46,250 >> Entón, como eu mencionen no inicio, pset cero e un, teremos que 1639 01:16:46,250 --> 01:16:48,040 retorno de volta para ti como pronto como sexa posible. 1640 01:16:48,040 --> 01:16:51,260 O obxectivo é facer que pset un producto, Comentarios a parte, 1641 01:16:51,260 --> 01:16:52,850 antes pset dous é debido. 1642 01:16:52,850 --> 01:16:56,730 Entón, se cometeu algúns erros ou estilisticamente, as cousas poderían ser mellores, 1643 01:16:56,730 --> 01:17:01,330 vai ter esta información para que non vai facer as mesmas cousas en pset dous. 1644 01:17:01,330 --> 01:17:06,140 E entón, no futuro, vai ter todo do seu producto e comentarios pset 1645 01:17:06,140 --> 01:17:08,190 de volta antes de que o próximo é debido. 1646 01:17:08,190 --> 01:17:12,695 >> Por último, se eu puidese poñer noutro plug para o GABARITO. 1647 01:17:12,695 --> 01:17:13,935 Esta é a súa primeira sección. 1648 01:17:13,935 --> 01:17:15,920 Foi a miña primeira sección ensinar este ano. 1649 01:17:15,920 --> 01:17:16,930 Vaia ata alí. 1650 01:17:16,930 --> 01:17:19,800 Escribir cousas, boas e malas, e eu vou usalo para facer 1651 01:17:19,800 --> 01:17:21,320 sección mellor a próxima vez. 1652 01:17:21,320 --> 01:17:24,870 E para rematar, unha vez máis, se precisa calquera cousa, me aviso. 1653 01:17:24,870 --> 01:17:26,410 Estou máis que feliz en axudar vostedes. 1654 01:17:26,410 --> 01:17:28,420 Se só quere doces, I terá doces extra. 1655 01:17:28,420 --> 01:17:29,800 Estou feliz en trae-lo para ti. 1656 01:17:29,800 --> 01:17:31,190 >> Este será un curso incrible. 1657 01:17:31,190 --> 01:17:34,900 Este é un dos, se non o meu favorito Por suposto, eu tomei en toda a miña vida, 1658 01:17:34,900 --> 01:17:37,220 e eu espero que sexa que marabilloso para ti. 1659 01:17:37,220 --> 01:17:40,090 Entón, quero facer todo no meu poder para facelo incrible para ti. 1660 01:17:40,090 --> 01:17:46,590 Vou enviar un correo-e se está na miña sección ou Noah, e 1661 01:17:46,590 --> 01:17:50,310 tratará de axenda con cada un dos vostedes un tempo de facturación sobre o 1662 01:17:50,310 --> 01:17:53,820 próximo par de semanas para que eu poida obter un sensación de que o seu fondo CS é, 1663 01:17:53,820 --> 01:17:58,170 e tamén me vai axudar a adaptar estes seccións para mellor atender ás súas necesidades. 1664 01:17:58,170 --> 01:17:59,740 Entón, iso é o que eu teño aliñados. 1665 01:17:59,740 --> 01:18:02,260 Unha vez máis, eu vou velo do lado de fóra Se queres estar alí. 1666 01:18:02,260 --> 01:18:03,700 Este foi de dúas semanas sección. 1667 01:18:03,700 --> 01:18:04,950 Grazas a vostedes moito. 1668 01:18:04,950 --> 01:18:09,067