1 00:00:00,000 --> 00:00:11,050 2 00:00:11,050 --> 00:00:13,351 >> ROB Bowden: Esta é a sección máis cómodo, 3 00:00:13,351 --> 00:00:16,309 pero iso non quere dicir que se sentir que non está cómodo 4 00:00:16,309 --> 00:00:18,420 non vai aprender as cousas aquí. 5 00:00:18,420 --> 00:00:20,600 Entón, imos comezar. 6 00:00:20,600 --> 00:00:22,819 Ten láminas indo ben nas cousas. 7 00:00:22,819 --> 00:00:24,360 Estou a punto de ter agora? 8 00:00:24,360 --> 00:00:25,680 9 00:00:25,680 --> 00:00:26,450 Cambiar portátiles. 10 00:00:26,450 --> 00:00:30,470 11 00:00:30,470 --> 00:00:32,950 >> ALLISON: Non quere presentarse, Rob? 12 00:00:32,950 --> 00:00:34,090 >> ROB Bowden: Ah, eu son Rob. 13 00:00:34,090 --> 00:00:35,182 14 00:00:35,182 --> 00:00:37,470 Este é o meu quinto ano CS50 TF-ing. 15 00:00:37,470 --> 00:00:38,760 16 00:00:38,760 --> 00:00:39,650 >> GABRIEL: Eu son Gabriel. 17 00:00:39,650 --> 00:00:41,610 Eu son cabeza TF de CS50. 18 00:00:41,610 --> 00:00:44,009 Estaba TF o ano pasado e este ano. 19 00:00:44,009 --> 00:00:46,675 ALLISON: E eu son Alison, e iso é o meu segundo ano CS50 TF-ing. 20 00:00:46,675 --> 00:00:48,510 21 00:00:48,510 --> 00:00:50,825 >> ROB Bowden: Todo ben, entón esa cousa da esquerda, 22 00:00:50,825 --> 00:00:52,250 espero que teña visto antes. 23 00:00:52,250 --> 00:00:54,112 Se non, porque transferir-lo a si mesmo, 24 00:00:54,112 --> 00:00:55,570 ten que ter visto en clase. 25 00:00:55,570 --> 00:00:56,590 26 00:00:56,590 --> 00:01:01,320 Polo tanto, este é o aparello CS50, e el fixo un pouco de unha descrición do mesmo 27 00:01:01,320 --> 00:01:01,880 na charla. 28 00:01:01,880 --> 00:01:06,890 Pero, basicamente, é só ti está executando unha operación 29 00:01:06,890 --> 00:01:10,550 sistema dentro do seu funcionamento sistema, para que poidamos darlle 30 00:01:10,550 --> 00:01:12,540 programas sen necesidade de preocuparse, oh iso é 31 00:01:12,540 --> 00:01:15,989 funcionará en Windows e Mac, ou se algúns de vós 32 00:01:15,989 --> 00:01:17,280 xa están a usar Linux, Linux. 33 00:01:17,280 --> 00:01:18,532 34 00:01:18,532 --> 00:01:20,240 É só debería ser un xogo común 35 00:01:20,240 --> 00:01:23,010 campo para que todos teñan a mesmo ambiente exacto. 36 00:01:23,010 --> 00:01:25,344 >> Entón, se non ten descargar iso xa, 37 00:01:25,344 --> 00:01:28,510 ten que baixa-lo, porque é Vai ter del para o conxunto de problemas. 38 00:01:28,510 --> 00:01:32,335 E é un dous gigabytes baixar, polo que pode levar moito tempo. 39 00:01:32,335 --> 00:01:33,780 Na Harvard vai rápido. 40 00:01:33,780 --> 00:01:35,870 41 00:01:35,870 --> 00:01:37,440 Aparello para CS50. 42 00:01:37,440 --> 00:01:41,980 >> Agora, en principio, imos falar só unha morea de liña de comandos 43 00:01:41,980 --> 00:01:46,880 material, e así por iso, quero dicir traballar neste pequeno ambiente por aquí. 44 00:01:46,880 --> 00:01:53,230 E teña en conta todas as cousas Digo aquí e agora 45 00:01:53,230 --> 00:01:56,900 están indo para o traballo, se está dentro un terminal dentro do aparello, 46 00:01:56,900 --> 00:02:00,790 ou se está dentro fiestra da terminal gedit 47 00:02:00,790 --> 00:02:02,090 no interior do aparello. 48 00:02:02,090 --> 00:02:03,770 Entón, eses ambientes son idénticos. 49 00:02:03,770 --> 00:02:04,940 50 00:02:04,940 --> 00:02:07,270 >> Pero eu estou indo a ir unha terceira vía. 51 00:02:07,270 --> 00:02:12,200 E nótese aquí esta pouco enderezo IP aquí. 52 00:02:12,200 --> 00:02:15,940 Entón non ten que facelo, pero este IP 53 00:02:15,940 --> 00:02:19,700 address-- agora I-- excepto é bloqueado por esa cousa. 54 00:02:19,700 --> 00:02:22,790 55 00:02:22,790 --> 00:02:27,000 Aceptar, para que a dirección IP máis nun terminal 56 00:02:27,000 --> 00:02:31,090 aqui-- así este terminal máis aquí é un terminal no meu Mac. 57 00:02:31,090 --> 00:02:34,540 Polo tanto, este non é de forma actualmente asociado co dispositivo en todo. 58 00:02:34,540 --> 00:02:39,360 E se está en Windows, entón está indo a necesidade de baixar algo 59 00:02:39,360 --> 00:02:44,430 especialmente para iso, en especial as persoas tenden usar Putty, P-Ou-T-T-Y. 60 00:02:44,430 --> 00:02:50,700 >> Entón o que eu vou facer é tipo SSH e logo, que a dirección IP. 61 00:02:50,700 --> 00:02:54,030 Ben, jharvard nese enderezo IP. 62 00:02:54,030 --> 00:03:00,150 Entón 192.168.24.220. 63 00:03:00,150 --> 00:03:02,127 Esta mensaxe asustado, ignore-lo. 64 00:03:02,127 --> 00:03:02,710 Escriba si. 65 00:03:02,710 --> 00:03:04,550 66 00:03:04,550 --> 00:03:06,030 Este é un cadro en CS50. 67 00:03:06,030 --> 00:03:07,460 El pide o seu contrasinal. 68 00:03:07,460 --> 00:03:11,910 >> E así, en moitos destes contextos onde pide o contrasinal, [inaudível]. 69 00:03:11,910 --> 00:03:15,670 Temos unha morea de preguntas onde el di que non é realmente a dixitación. 70 00:03:15,670 --> 00:03:20,011 Non amosa os personaxes de o contrasinal mentres escribe, se algo, 71 00:03:20,011 --> 00:03:23,010 para un recurso de seguridade, porque se alguén está mirando por riba do ombreiro 72 00:03:23,010 --> 00:03:25,870 e eles ven star star star star, entón eles 73 00:03:25,870 --> 00:03:28,640 saber que o seu contrasinal é de catro caracteres. 74 00:03:28,640 --> 00:03:32,660 Así, a idea é que vai pedir a chave, tipo. 75 00:03:32,660 --> 00:03:34,490 El non vai amosar os personaxes, 76 00:03:34,490 --> 00:03:36,090 pero é, en realidade, aceptar a eles. 77 00:03:36,090 --> 00:03:39,210 Neste caso, en calquera momento nunca ver un prompt de contrasinal 78 00:03:39,210 --> 00:03:42,280 manexar o aparello, o contrasinal será vermella. 79 00:03:42,280 --> 00:03:43,270 Tan carmesim. 80 00:03:43,270 --> 00:03:44,730 81 00:03:44,730 --> 00:03:50,550 >> E agora aquí dentro deste fiestra que está no meu Mac, 82 00:03:50,550 --> 00:03:54,120 Estou basicamente ter a mesma visión exacta 83 00:03:54,120 --> 00:03:57,040 como no interior dun terminal no aparello. 84 00:03:57,040 --> 00:03:58,470 Entón non ten que facelo. 85 00:03:58,470 --> 00:04:01,300 Pode facer todo o que quere no interior do aparello. 86 00:04:01,300 --> 00:04:05,140 Eu case nunca realmente facer nada no aparello. 87 00:04:05,140 --> 00:04:09,440 Eu case sempre minimizar iso e agora Estou SSH traballando no aparello. 88 00:04:09,440 --> 00:04:11,480 89 00:04:11,480 --> 00:04:14,180 >> Se calquera cousa, se ten un ordenador máis lento, 90 00:04:14,180 --> 00:04:15,820 pode notar a diferenza. 91 00:04:15,820 --> 00:04:18,839 Fago isto porque prefiro esta fiestra de terminal. 92 00:04:18,839 --> 00:04:20,881 Ten algunhas características como Podo dividir a ventá, 93 00:04:20,881 --> 00:04:22,672 e agora podo SSH en a través do aparello. 94 00:04:22,672 --> 00:04:24,105 Teño dous SSH está pasando á vez. 95 00:04:24,105 --> 00:04:28,030 96 00:04:28,030 --> 00:04:32,250 Se o seu ordenador é especialmente lento e se está a traballar no dispositivo, 97 00:04:32,250 --> 00:04:35,200 e entender que é realmente vagaroso, que sexa. 98 00:04:35,200 --> 00:04:38,220 Tende a ser moito máis rápido se é SSH-ed en. 99 00:04:38,220 --> 00:04:40,960 Pero se non, podes traballar de calquera maneira. 100 00:04:40,960 --> 00:04:42,388 >> Audiencia: Qué SSH significa? 101 00:04:42,388 --> 00:04:43,820 102 00:04:43,820 --> 00:04:47,479 >> ROB Bowden: cunchas seguros, algo parecido? 103 00:04:47,479 --> 00:04:48,270 Que SSH significa? 104 00:04:48,270 --> 00:04:54,214 105 00:04:54,214 --> 00:04:55,130 GABRIEL: shell seguro. 106 00:04:55,130 --> 00:04:56,463 ALLISON: É só shell seguro. 107 00:04:56,463 --> 00:04:57,720 ROB Bowden: shell seguro. 108 00:04:57,720 --> 00:05:03,700 É un protocolo que se você-- un protocolo seguro, de forma cifrada. 109 00:05:03,700 --> 00:05:06,850 As persoas non poden bisbilhotar a rede e ver o que está dicindo a nada 110 00:05:06,850 --> 00:05:08,120 está SSH-ed para. 111 00:05:08,120 --> 00:05:12,900 E, de feito, no antigo días de CS50, polo que en 2009 112 00:05:12,900 --> 00:05:19,300 cando eu era un calouro, o xeito que que traballou na serie de exercicios CS50, 113 00:05:19,300 --> 00:05:22,490 Foi vostede SSH-ed para un servidor que deulle acceso a, 114 00:05:22,490 --> 00:05:23,497 e en que traballou alí. 115 00:05:23,497 --> 00:05:25,330 Entón non ten ese aparello de vídeo. 116 00:05:25,330 --> 00:05:26,160 Non ten gedit. 117 00:05:26,160 --> 00:05:28,930 Non ten todas esas cousas que pode visualmente apuntar e premer. 118 00:05:28,930 --> 00:05:30,346 Vostede tivo que traballar nesta interfaz. 119 00:05:30,346 --> 00:05:31,580 120 00:05:31,580 --> 00:05:33,716 Prefiro traballar nesta interfaz. 121 00:05:33,716 --> 00:05:36,090 Entón, parte do que imos estar indo máis agora 122 00:05:36,090 --> 00:05:39,560 son unha banda de comandos que ten que 123 00:05:39,560 --> 00:05:42,095 comezar a familiarizarse con como vai ao longo do curso. 124 00:05:42,095 --> 00:05:43,190 125 00:05:43,190 --> 00:05:45,790 E honestamente, xa que acostumar eles, 126 00:05:45,790 --> 00:05:48,220 é moito máis rápido para traballar neste ámbito 127 00:05:48,220 --> 00:05:53,690 do que é traballar con find, arrastrando e premendo as cousas. 128 00:05:53,690 --> 00:05:55,340 129 00:05:55,340 --> 00:05:57,210 >> Entón, aquí estamos nós. 130 00:05:57,210 --> 00:06:01,779 Agora eu só SSH-ed, e así o estándar localização-- ti 131 00:06:01,779 --> 00:06:04,820 vin algúns destes comandos na clase, pero imos pasar por riba de todos eles de novo. 132 00:06:04,820 --> 00:06:08,060 O lugar estándar que estamos en é o directorio home. 133 00:06:08,060 --> 00:06:11,520 E directorio, só outra palabra para cartafol. 134 00:06:11,520 --> 00:06:13,310 Entón, nós estamos no directorio home. 135 00:06:13,310 --> 00:06:15,889 Escriba ls, consultar os arquivos neste directorio. 136 00:06:15,889 --> 00:06:17,430 Evidentemente, eu creei un blah.c anteriormente. 137 00:06:17,430 --> 00:06:19,120 138 00:06:19,120 --> 00:06:20,472 Polo tanto, temos un directorio de escritorio. 139 00:06:20,472 --> 00:06:21,930 Entender o destaque de sintaxe? 140 00:06:21,930 --> 00:06:27,400 141 00:06:27,400 --> 00:06:32,900 A luz azul indica destaque un directorio eo branco en liña recta 142 00:06:32,900 --> 00:06:34,380 indica só un arquivo simple. 143 00:06:34,380 --> 00:06:35,410 144 00:06:35,410 --> 00:06:37,690 Polo tanto, non van ser algunhas outras cores que ve. 145 00:06:37,690 --> 00:06:41,240 Un arquivo executable é probablemente vai ser verde ou algo parecido. 146 00:06:41,240 --> 00:06:44,820 OK, entón estamos no directorio home. 147 00:06:44,820 --> 00:06:48,970 >> Agora, se eu quero ir a un diferente directorio, cd é o comando que quero. 148 00:06:48,970 --> 00:06:52,720 Entón, cambie o directorio, e entón pasar o nome do directorio 149 00:06:52,720 --> 00:06:54,020 que quere entrar. 150 00:06:54,020 --> 00:06:55,780 Polo tanto, temos aquí catro opcións. 151 00:06:55,780 --> 00:07:03,397 Podo entrar transferencias, e agora podemos ver aquí el actualizou este parénteses 152 00:07:03,397 --> 00:07:04,480 que dicir que estou en ~ / descargas. 153 00:07:04,480 --> 00:07:05,620 154 00:07:05,620 --> 00:07:06,800 >> Entón, cal é til? 155 00:07:06,800 --> 00:07:10,640 É unha abreviación para seu directorio persoal. 156 00:07:10,640 --> 00:07:15,260 Así, case todo o que fai vai sexa con relación ao seu directorio home, 157 00:07:15,260 --> 00:07:20,620 e pwd é só un comando Eu uso unha vez nun ano que 158 00:07:20,620 --> 00:07:22,420 só imprime o directorio actual. 159 00:07:22,420 --> 00:07:25,730 E así que ve aquí que ~ / Descargas realmente resolve 160 00:07:25,730 --> 00:07:26,896 para / home / jharvard / descargas. 161 00:07:26,896 --> 00:07:29,320 162 00:07:29,320 --> 00:07:32,230 Entón / home / jharvard é o meu directorio home. 163 00:07:32,230 --> 00:07:33,700 164 00:07:33,700 --> 00:07:39,400 >> Así, podemos cd dot dot. 165 00:07:39,400 --> 00:07:47,800 Agora dot dot é un directorio especial que sempre se refire a un directorio superior. 166 00:07:47,800 --> 00:07:51,730 Entón, se eu estou en ~ / descargas, entón cd dot dot me vai levar a til. 167 00:07:51,730 --> 00:07:52,950 168 00:07:52,950 --> 00:07:55,490 Que pensamos cd dot dot me vai traer para agora? 169 00:07:55,490 --> 00:07:58,740 170 00:07:58,740 --> 00:08:00,570 El me vai traer para / home. 171 00:08:00,570 --> 00:08:04,450 Entón til por directorio de traballo de impresión, Estou na empresa / home / jharvard. 172 00:08:04,450 --> 00:08:06,060 173 00:08:06,060 --> 00:08:08,820 un directorio a partir diso, Agora di aquí / home. 174 00:08:08,820 --> 00:08:12,330 175 00:08:12,330 --> 00:08:17,180 >> Agora cd dot dot. 176 00:08:17,180 --> 00:08:20,910 Agora estou no directorio raíz, e non pode facelo de novo. 177 00:08:20,910 --> 00:08:23,340 Só se ve no directorio raíz para sempre. 178 00:08:23,340 --> 00:08:26,700 O directorio raíz ten unha morea de cousas que, se quere ollar para, 179 00:08:26,700 --> 00:08:27,410 pode. 180 00:08:27,410 --> 00:08:29,700 Por exemplo, se eu for en bin, que conteña 181 00:08:29,700 --> 00:08:35,789 todos estes binarios, como ls, e cd, e todas esas cousas. 182 00:08:35,789 --> 00:08:38,630 Entón, eses comandos precisan existe algún punto do sistema, 183 00:08:38,630 --> 00:08:40,820 e é o directorio / bin. 184 00:08:40,820 --> 00:08:44,530 Pero case todo o que fai é será a partir do seu directorio persoal. 185 00:08:44,530 --> 00:08:49,490 E cd sen ningún argumento que sexa, podería dicir cd ~, non precisa. 186 00:08:49,490 --> 00:08:51,810 cd vai causar-lle de volta para o seu directorio persoal. 187 00:08:51,810 --> 00:08:53,170 188 00:08:53,170 --> 00:08:54,230 >> Un último. 189 00:08:54,230 --> 00:09:00,200 cd - vai traer vostede de volta a o último directorio que estaba. 190 00:09:00,200 --> 00:09:04,080 Entón, eu só cd'd dúas veces seguidas, polo que a miña último directorio foi o directorio home. 191 00:09:04,080 --> 00:09:11,520 Se eu for para cortar bin, e agora imos para arriba e usuario. 192 00:09:11,520 --> 00:09:12,550 193 00:09:12,550 --> 00:09:13,280 Participación do usuario. 194 00:09:13,280 --> 00:09:14,840 195 00:09:14,840 --> 00:09:15,940 Imos para a participación do usuario. 196 00:09:15,940 --> 00:09:17,140 Agora eu estou agora en partes usuario. 197 00:09:17,140 --> 00:09:19,320 cd -, de volta bin. 198 00:09:19,320 --> 00:09:22,980 Entón iso é especialmente útil cando have-- e vai cambiar. 199 00:09:22,980 --> 00:09:25,660 Entón reparto de usuario, de volta bin, bin partes. 200 00:09:25,660 --> 00:09:27,250 >> Entón iso queda útil. 201 00:09:27,250 --> 00:09:33,150 Podes atopar-se ter moitos, moitos, moitos directorios aniñados. 202 00:09:33,150 --> 00:09:37,370 E quere facer algo real rápido nun directorio superior. 203 00:09:37,370 --> 00:09:40,330 Vai para aquel directorio, facer cambios e cousas así, 204 00:09:40,330 --> 00:09:42,400 e agora quere ir de volta a onde estaba. 205 00:09:42,400 --> 00:09:43,660 cd -. 206 00:09:43,660 --> 00:09:47,320 Estou sempre frustrado cando ocorrer de ir 207 00:09:47,320 --> 00:09:49,630 para ese directorio I quería facer un traballo en. 208 00:09:49,630 --> 00:09:52,670 Sempre estar errado cando eu fixen -la en dous pasos no canto dun paso, 209 00:09:52,670 --> 00:09:55,715 porque iso significa que cd - vai para poñer en que a situación intermedia 210 00:09:55,715 --> 00:09:57,010 no canto de onde quero ir. 211 00:09:57,010 --> 00:09:59,350 212 00:09:59,350 --> 00:10:01,450 >> Así, podemos ver todos os ficheiros da lista. 213 00:10:01,450 --> 00:10:03,300 Sabemos como desplazarse ata o momento. 214 00:10:03,300 --> 00:10:09,900 Entón, agora imos falar sobre a edición de ficheiros. 215 00:10:09,900 --> 00:10:18,790 Polo tanto, neste curso, está case sempre deben usar gedit. 216 00:10:18,790 --> 00:10:24,410 Se quere, pode dar o seguinte paso e comezar a aprender un texto de liña de comandos 217 00:10:24,410 --> 00:10:25,240 editor. 218 00:10:25,240 --> 00:10:27,560 Entón, hai varias opcións. 219 00:10:27,560 --> 00:10:31,760 >> E os que son, probablemente, será relevante para ti, 220 00:10:31,760 --> 00:10:35,340 temos Nano, Vin e Emacs. 221 00:10:35,340 --> 00:10:40,196 Entón Nano é os novatos liña de comandos editor de texto. 222 00:10:40,196 --> 00:10:42,985 Entón Nano imos adiante blah.c creei anteriormente. 223 00:10:42,985 --> 00:10:44,030 224 00:10:44,030 --> 00:10:46,480 É só este ficheiro C estándar. 225 00:10:46,480 --> 00:10:51,540 E ve unha morea de cousas pasando na parte inferior da pantalla, 226 00:10:51,540 --> 00:10:54,100 e ao parecer blah.c contén este código C. 227 00:10:54,100 --> 00:10:55,420 228 00:10:55,420 --> 00:11:00,330 >> Polo tanto, neste editor particular, o que está dicindo na bottom-- 229 00:11:00,330 --> 00:11:06,290 agora este símbolo de acento circunflexo, vemos iso ^ G, ^ X, ^ O. 230 00:11:06,290 --> 00:11:10,310 Así que, en case todos contexto que ve, 231 00:11:10,310 --> 00:11:13,530 verás que símbolo acento circunflexo en outros lugares en liña, no Stack overflow, 232 00:11:13,530 --> 00:11:14,450 algo parecido. 233 00:11:14,450 --> 00:11:16,970 Isto case sempre se refire ao control. 234 00:11:16,970 --> 00:11:21,590 Entón, para saír quero facer Control X. Control X, sae. 235 00:11:21,590 --> 00:11:22,750 236 00:11:22,750 --> 00:11:26,855 E podo usar miña frecha teclas para moverse. 237 00:11:26,855 --> 00:11:28,010 238 00:11:28,010 --> 00:11:31,015 Repare que eu non podo apuntar e premer pronto. 239 00:11:31,015 --> 00:11:33,000 240 00:11:33,000 --> 00:11:35,010 Debe usar a súa frecha teclas para moverse. 241 00:11:35,010 --> 00:11:36,950 Pode haber unha definición para apuntar e premer. 242 00:11:36,950 --> 00:11:40,000 >> Pero imos facer algúns cambios. 243 00:11:40,000 --> 00:11:42,100 Agora control X para ir saír. 244 00:11:42,100 --> 00:11:44,120 El vai dicir salvar tapón modificado. 245 00:11:44,120 --> 00:11:47,900 Agora o poder, y para si, N para non. 246 00:11:47,900 --> 00:11:49,900 Control C para cancelar. 247 00:11:49,900 --> 00:11:50,780 Eu só vou dicir que si. 248 00:11:50,780 --> 00:11:51,709 Nome para gravar o arquivo. 249 00:11:51,709 --> 00:11:53,500 O estándar é o arquivo que xa é. 250 00:11:53,500 --> 00:11:54,230 Prema Intro. 251 00:11:54,230 --> 00:11:54,740 Está ben. 252 00:11:54,740 --> 00:11:58,580 Agora eu só editado o arquivo, salva-lo, e el é modificado. 253 00:11:58,580 --> 00:11:59,770 254 00:11:59,770 --> 00:12:03,000 >> Entón Nano é o máis fácil editor de texto se acostumar. 255 00:12:03,000 --> 00:12:05,520 As alternativas son Vin e Emacs. 256 00:12:05,520 --> 00:12:11,250 Estes son os editores de texto de nivel superior que ten unha curva de aprendizaxe moi íngreme. 257 00:12:11,250 --> 00:12:13,740 Así, a miña preferencia persoal é Vin. 258 00:12:13,740 --> 00:12:17,175 E ten unha gran variedade de opcións. 259 00:12:17,175 --> 00:12:18,210 260 00:12:18,210 --> 00:12:24,070 E unha vez que se acostumar para iso, nunca 261 00:12:24,070 --> 00:12:26,900 quere ir a calquera outro editor de texto, porque só 262 00:12:26,900 --> 00:12:29,590 ten tantas cousas dispoñible para ti nestes, 263 00:12:29,590 --> 00:12:31,690 pero hai que realmente moito tempo para aprender. 264 00:12:31,690 --> 00:12:36,000 Entón, quizais só quere forzar si mesmo agora para acostumar con iso, 265 00:12:36,000 --> 00:12:38,130 pero eu diría que paga a pena. 266 00:12:38,130 --> 00:12:39,660 Pero é difícil. 267 00:12:39,660 --> 00:12:41,220 >> E entón Emacs. 268 00:12:41,220 --> 00:12:44,940 Sempre loita en Emacs porque Sei como facer absolutamente nada. 269 00:12:44,940 --> 00:12:47,755 Ao parecer Emacs non é, por defecto instalado no aparello. 270 00:12:47,755 --> 00:12:49,210 271 00:12:49,210 --> 00:12:51,720 Nós probablemente ha engadir que como unha instalación por defecto. 272 00:12:51,720 --> 00:12:59,620 273 00:12:59,620 --> 00:13:02,390 Despois que aprender unha das Vin ou Emacs, hai 274 00:13:02,390 --> 00:13:04,810 ningunha razón convincente para sempre aprender o outro, 275 00:13:04,810 --> 00:13:07,570 pero é un estilo completamente diferente. 276 00:13:07,570 --> 00:13:10,460 Aceptar para que a edición de arquivos de texto. 277 00:13:10,460 --> 00:13:13,374 >> Audiencia: Se está preso no Vin agora, como facer nós-- 278 00:13:13,374 --> 00:13:18,840 279 00:13:18,840 --> 00:13:20,800 >> ROB Bowden: Hai varios modos no Vin, 280 00:13:20,800 --> 00:13:23,770 e hai toda tutoriais sobre Vin aprender. 281 00:13:23,770 --> 00:13:27,390 Entón, se ocorrer de estar no modo de inserción na orde 282 00:13:27,390 --> 00:13:29,930 para escribir o texto, que se pode que escriba de varias maneiras, 283 00:13:29,930 --> 00:13:31,610 pero eu é como entrar no modo de inserción. 284 00:13:31,610 --> 00:13:34,780 En ou saír de calquera especial polo que está dentro, só escapar. 285 00:13:34,780 --> 00:13:37,640 E só bater Escape para obter fóra de todos os modos aniñados no seu. 286 00:13:37,640 --> 00:13:40,360 Só OK, agora que estou de volta en modo normal. 287 00:13:40,360 --> 00:13:43,790 >> E así, en modo normal, unha colonos. 288 00:13:43,790 --> 00:13:45,160 Ve que aparecen na parte inferior. 289 00:13:45,160 --> 00:13:46,240 E despois q. 290 00:13:46,240 --> 00:13:52,600 Así q vai parar se ten feito cambios, I-- que teño feito cambios? 291 00:13:52,600 --> 00:13:54,180 Fixen cambios aparentemente. 292 00:13:54,180 --> 00:13:57,264 Entón, se ten feito cambios, que vai dicir que pode pór un punto de exclamación. 293 00:13:57,264 --> 00:13:58,430 Vou chamalo de un estrondo. 294 00:13:58,430 --> 00:14:02,040 Entón pode poñer unha prohibición só saír sen facer nada, 295 00:14:02,040 --> 00:14:04,520 ou wq colonos pode gardar e saír. 296 00:14:04,520 --> 00:14:06,580 Entón, w, en xeral, é escribir. 297 00:14:06,580 --> 00:14:08,300 Entón escriba o arquivo. 298 00:14:08,300 --> 00:14:09,810 Podo escribir e saír. 299 00:14:09,810 --> 00:14:13,606 Ou pode que só Slam QX, q estrondo só 300 00:14:13,606 --> 00:14:16,230 para saír de alí, con independencia de todos os cambios que fixo. 301 00:14:16,230 --> 00:14:21,310 302 00:14:21,310 --> 00:14:28,940 >> Todo ben, entón agora imos vai-- podemos crear arquivos. 303 00:14:28,940 --> 00:14:30,890 Imos comezar a eliminar os arquivos. 304 00:14:30,890 --> 00:14:35,450 E eu só vou xogar nun novo comando rápido, toque. 305 00:14:35,450 --> 00:14:38,200 Entón tocar foo. 306 00:14:38,200 --> 00:14:39,340 Bar Touch. 307 00:14:39,340 --> 00:14:40,220 Preme Baz. 308 00:14:40,220 --> 00:14:42,810 Se eu ls, agora vemos que existen eses arquivos. 309 00:14:42,810 --> 00:14:44,315 Son completamente baleiro. 310 00:14:44,315 --> 00:14:47,178 Entón toque é só un fácil forma dun, [inaudível]. 311 00:14:47,178 --> 00:14:50,850 312 00:14:50,850 --> 00:14:54,640 Dous, tecnicamente só para o estado iso, el actualiza a data e hora. 313 00:14:54,640 --> 00:14:58,470 Así, calquera arquivo que crea ten un timestamp asociado a el. 314 00:14:58,470 --> 00:15:01,330 Entón Baz foi creado en 14 de setembro en 16:21. 315 00:15:01,330 --> 00:15:02,570 316 00:15:02,570 --> 00:15:06,670 É agora 16:22, entón se Eu toco Baz novo, 317 00:15:06,670 --> 00:15:11,420 ver que Baz foi máis recentemente modificada en 16:22. 318 00:15:11,420 --> 00:15:17,680 Pero doutra banda eu case nunca ollar para a data e hora en arquivos. 319 00:15:17,680 --> 00:15:20,490 Entón chamada, aquí eu só está a usar para crear algúns arquivos rápidos. 320 00:15:20,490 --> 00:15:21,620 321 00:15:21,620 --> 00:15:27,400 >> Todo ben, entón agora é o rm mando que nos preocupa aquí. 322 00:15:27,400 --> 00:15:28,665 E podemos rm Boo. 323 00:15:28,665 --> 00:15:31,000 Diga eliminar regularmente Boo ficheiro baleiro. 324 00:15:31,000 --> 00:15:34,070 E podemos escribir y, e agora é elimina. 325 00:15:34,070 --> 00:15:34,850 Baz rm. 326 00:15:34,850 --> 00:15:35,910 327 00:15:35,910 --> 00:15:38,620 Eliminar ficheiro baleiro normal Baz e tipo n para non. 328 00:15:38,620 --> 00:15:40,060 Agora que non é eliminado. 329 00:15:40,060 --> 00:15:41,240 Entón, bar e Baz aínda existen. 330 00:15:41,240 --> 00:15:42,232 Foo está desaparecido. 331 00:15:42,232 --> 00:15:43,148 GABRIEL: Continúe falando. 332 00:15:43,148 --> 00:15:43,970 333 00:15:43,970 --> 00:15:44,720 ROB Bowden: Gran. 334 00:15:44,720 --> 00:15:45,800 335 00:15:45,800 --> 00:15:50,370 Polo tanto, a mensaxe irritante aquí, elimine empty-- regulares 336 00:15:50,370 --> 00:15:52,390 o que está facendo alí embaixo? 337 00:15:52,390 --> 00:15:54,030 Eliminar ficheiro baleiro regular. 338 00:15:54,030 --> 00:15:58,840 339 00:15:58,840 --> 00:16:01,610 Entón, se nós non queremos ser incómodo por esa mensaxe, 340 00:16:01,610 --> 00:16:05,340 podemos xogar neste -f bandeira, e por iso é forza. 341 00:16:05,340 --> 00:16:11,330 E agora, se eu rm -f, non vai dicir que quere eliminar este arquivo. 342 00:16:11,330 --> 00:16:12,040 El só vai facelo. 343 00:16:12,040 --> 00:16:13,720 E ls, eu non vexa a barra máis alá. 344 00:16:13,720 --> 00:16:14,810 345 00:16:14,810 --> 00:16:18,021 >> Agora que é un potencialmente mando perigoso. 346 00:16:18,021 --> 00:16:19,020 Ela tende a non moi malo. 347 00:16:19,020 --> 00:16:22,240 Imos volver nun segundo como pode ser moi perigoso. 348 00:16:22,240 --> 00:16:28,740 E imos crear un directorio temporal. 349 00:16:28,740 --> 00:16:30,880 mkdir, outro comando. 350 00:16:30,880 --> 00:16:34,880 Entón, é unha orde mkdir que fai que un directorio. 351 00:16:34,880 --> 00:16:40,650 E agora por ls vemos esta luz agradable azul destacou directorio temporal. 352 00:16:40,650 --> 00:16:42,295 Podo cd en Temp. 353 00:16:42,295 --> 00:16:44,590 E podo mkdir foo. 354 00:16:44,590 --> 00:16:46,330 cd en foo. bar mkdir. 355 00:16:46,330 --> 00:16:46,860 cd en bar. 356 00:16:46,860 --> 00:16:49,400 357 00:16:49,400 --> 00:16:54,300 >> Así, vemos que podemos facilmente chegar nalgún asentamento moi profunda. 358 00:16:54,300 --> 00:16:56,385 Agora como fago para eliminar un directorio? 359 00:16:56,385 --> 00:16:57,020 360 00:16:57,020 --> 00:16:57,520 rmdir. 361 00:16:57,520 --> 00:16:59,030 362 00:16:59,030 --> 00:17:03,540 Entón, se eu só en liña recta tentar rm, como fixemos cun ficheiro regular, 363 00:17:03,540 --> 00:17:06,420 bar rm vai dicir non pode eliminar a barra. 364 00:17:06,420 --> 00:17:07,569 É un directorio. 365 00:17:07,569 --> 00:17:10,619 Hai un comando especial para eliminar directorios, tipo de. 366 00:17:10,619 --> 00:17:12,900 Bar Entón rmdir. 367 00:17:12,900 --> 00:17:13,710 Agora bar está desaparecido. 368 00:17:13,710 --> 00:17:14,980 369 00:17:14,980 --> 00:17:22,680 >> OK, entón rmdir eu practicamente nunca uso. 370 00:17:22,680 --> 00:17:32,220 A razón being-- agora imos facer unha barra de ficheiro estándar aquí. 371 00:17:32,220 --> 00:17:34,780 Boo Entón rmdir. 372 00:17:34,780 --> 00:17:35,760 rmdir. 373 00:17:35,760 --> 00:17:36,900 Erro ao eliminar foo. 374 00:17:36,900 --> 00:17:38,420 Directorio non baleiro. 375 00:17:38,420 --> 00:17:43,420 Entón, non pode usar eliminar dir nun directorio que ten cousas nel. 376 00:17:43,420 --> 00:17:44,830 >> Entón, ten algunhas opcións. 377 00:17:44,830 --> 00:17:49,780 Pode ir ao directorio, elimine todo manualmente, e despois saír 378 00:17:49,780 --> 00:17:51,759 e rmdir directorio. 379 00:17:51,759 --> 00:17:53,050 Isto, obviamente, soa aburrido. 380 00:17:53,050 --> 00:17:55,000 E se hai miles de arquivos de alí? 381 00:17:55,000 --> 00:17:58,119 Ben, podería rm *. 382 00:17:58,119 --> 00:17:59,410 Imos falar de * nun segundo. 383 00:17:59,410 --> 00:18:00,870 Basicamente, significa todas as cousas. 384 00:18:00,870 --> 00:18:02,030 385 00:18:02,030 --> 00:18:05,470 Pero mellor aínda, -r tan rm. 386 00:18:05,470 --> 00:18:10,220 Entón rm -r-- en unha morea de contextos, significa -r recursiva, 387 00:18:10,220 --> 00:18:13,810 que nós imos falar do que medios recursivos nalgunhas semanas. 388 00:18:13,810 --> 00:18:18,630 Pero, basicamente, significa travesía a totalidade deste directorio 389 00:18:18,630 --> 00:18:20,190 e eliminar todo. 390 00:18:20,190 --> 00:18:24,420 >> Foo -r Entón rm vai dicir baixar ao directorio foo? 391 00:18:24,420 --> 00:18:25,210 Si. 392 00:18:25,210 --> 00:18:26,800 Eliminar regulares baleiro ficheiro foo / bar? 393 00:18:26,800 --> 00:18:27,880 394 00:18:27,880 --> 00:18:28,540 Si. 395 00:18:28,540 --> 00:18:29,760 Eliminar directorio foo? 396 00:18:29,760 --> 00:18:30,260 Si. 397 00:18:30,260 --> 00:18:31,470 398 00:18:31,470 --> 00:18:35,020 Entón agora foo e todo dentro del fose eliminado. 399 00:18:35,020 --> 00:18:42,370 >> Agora que pode estar particularmente irritante when-- imos tocar unha, chamada 2, toque 3. 400 00:18:42,370 --> 00:18:44,400 Podería ter un monte de arquivos. 401 00:18:44,400 --> 00:18:49,060 Se eu quixese, podería crear miles de arquivos en aquí. 402 00:18:49,060 --> 00:18:53,340 E foo rm -r vai ser moi irritante. 403 00:18:53,340 --> 00:18:55,374 Si, si, si, si, si, si. 404 00:18:55,374 --> 00:18:57,540 Con moito máis arquivos que ver rapidamente as veces 405 00:18:57,540 --> 00:18:58,581 Eu tería que escribir si. 406 00:18:58,581 --> 00:19:02,265 Ben, acabamos de ver antes como podemos librar-se da necesidade de escribir si, -f. 407 00:19:02,265 --> 00:19:03,330 408 00:19:03,330 --> 00:19:07,020 Entón mkdir foo cd foo chamada 1 2 3. 409 00:19:07,020 --> 00:19:08,380 410 00:19:08,380 --> 00:19:17,190 OK, foo-rf tan rm vai cegamente eliminar foo enteiramente. 411 00:19:17,190 --> 00:19:17,960 Ningún aviso. 412 00:19:17,960 --> 00:19:18,650 Sen nada. 413 00:19:18,650 --> 00:19:20,040 Foo está desaparecido. 414 00:19:20,040 --> 00:19:23,830 >> Entón, eu tenden a usar este mando o tempo. 415 00:19:23,830 --> 00:19:25,120 416 00:19:25,120 --> 00:19:27,830 Dito isto, é unha comando moi perigoso, 417 00:19:27,830 --> 00:19:33,240 porque se eu fai algo así como tanto, non pode pedir-lle. 418 00:19:33,240 --> 00:19:34,730 El vai. 419 00:19:34,730 --> 00:19:40,140 E isto ocorre con bastante frecuencia, e mesmo en nivel superior cursos de CS. 420 00:19:40,140 --> 00:19:42,070 Ás veces, imos ver algo no que alguén 421 00:19:42,070 --> 00:19:48,360 di que eu accidentalmente noso rm rf-ed miña casa directorio e todo o meu conxunto P está desaparecido. 422 00:19:48,360 --> 00:19:52,422 E é devastador, pero non hai ningunha lata de lixo. 423 00:19:52,422 --> 00:19:54,380 Non hai ningún que non hai nada para que poida recuperar. 424 00:19:54,380 --> 00:19:55,330 É só desaparecido. 425 00:19:55,330 --> 00:19:56,529 426 00:19:56,529 --> 00:19:58,320 Peor aínda sería algo así como rm -rf /. 427 00:19:58,320 --> 00:19:59,432 428 00:19:59,432 --> 00:20:01,140 Entón, nós só discutir que directorio raíz. 429 00:20:01,140 --> 00:20:03,095 Mantén todas as arquivos no seu sistema. 430 00:20:03,095 --> 00:20:04,120 431 00:20:04,120 --> 00:20:07,380 As cousas tenden a ser moi confuso cando elimina cousas como ls, 432 00:20:07,380 --> 00:20:10,280 e cd, e todos aqueles. 433 00:20:10,280 --> 00:20:15,467 >> Audiencia: Cal é a diferencia entre rm, rf, e rm * 434 00:20:15,467 --> 00:20:16,300 ROB Bowden: Entón rm * - 435 00:20:16,300 --> 00:20:17,700 436 00:20:17,700 --> 00:20:22,300 >> ALLISON: Pregunta era o que é o diferenza entre rm, rf, e rm *. 437 00:20:22,300 --> 00:20:23,750 438 00:20:23,750 --> 00:20:25,950 >> ROB Bowden: Entón rm *. 439 00:20:25,950 --> 00:20:31,910 Estrela en medios xeral todos o contido deste directorio. 440 00:20:31,910 --> 00:20:33,540 441 00:20:33,540 --> 00:20:35,540 Tentando pensar noutra formas de mostrar estrela. 442 00:20:35,540 --> 00:20:38,280 443 00:20:38,280 --> 00:20:44,780 Ben, en realidade protagonizar xeral significa corresponder a calquera defecto. 444 00:20:44,780 --> 00:20:54,930 Entón, se eu teño un arquivo chamado dog1, dog2 tocar, tocar cat1, toque cat2. 445 00:20:54,930 --> 00:20:56,050 446 00:20:56,050 --> 00:21:02,110 Entón ls * 1 vai imprimir cat1 e dog1 porque esa estrela pode ser cuberto 447 00:21:02,110 --> 00:21:06,270 en com-- a persoa que estar alí, pero a estrela pode ser gato ou can. 448 00:21:06,270 --> 00:21:07,247 É un wild card. 449 00:21:07,247 --> 00:21:08,580 Esa é a palabra que eu estou a procurar. 450 00:21:08,580 --> 00:21:09,120 Wild card. 451 00:21:09,120 --> 00:21:10,180 452 00:21:10,180 --> 00:21:13,960 Ou eu podería ls can *, e Estou ten que ver dog1, dog2. 453 00:21:13,960 --> 00:21:16,870 Polo tanto, aqueles son list os ficheiros que corresponden ao estándar particular. 454 00:21:16,870 --> 00:21:18,150 Podes usar ls deste xeito. 455 00:21:18,150 --> 00:21:19,350 456 00:21:19,350 --> 00:21:22,020 >> Ls * estrelas combina con calquera cousa. 457 00:21:22,020 --> 00:21:25,710 Entón, que vai imprimir o contido deste directorio 458 00:21:25,710 --> 00:21:27,290 xa que todos eles coinciden. 459 00:21:27,290 --> 00:21:30,130 Non vai imprimir nada en directorios de nivel superior. 460 00:21:30,130 --> 00:21:38,680 Se eu teño un sub directorio, foo, e Preme 1 2 3-- agora rm * estrela, 461 00:21:38,680 --> 00:21:41,450 eliminar cat1, cat2, dog1, dog2. 462 00:21:41,450 --> 00:21:42,340 Non se pode eliminar foo. 463 00:21:42,340 --> 00:21:43,090 É un directorio. 464 00:21:43,090 --> 00:21:43,920 465 00:21:43,920 --> 00:21:50,340 >> Así estrela se expande para todo o ficheiros no directorio. 466 00:21:50,340 --> 00:21:55,210 Entón, tecnicamente rm * é como dicir cat1 rm, cat2, dog1, dog2, foo. 467 00:21:55,210 --> 00:22:03,630 Considerando rm -rf, tecnicamente estrela faría realizar o que queremos, pero rm -rf-- 468 00:22:03,630 --> 00:22:06,090 se eu saír desa directorio, temp rm -rf, 469 00:22:06,090 --> 00:22:08,890 que vai entrar en temperatura e recursivamente eliminar todo. 470 00:22:08,890 --> 00:22:11,260 471 00:22:11,260 --> 00:22:21,060 >> Así estrela é separado en que ese Enténdese por-- así esa cousa 472 00:22:21,060 --> 00:22:25,090 que estou correndo, esa cousa que está me levando para comandos 473 00:22:25,090 --> 00:22:28,770 e, a continuación, executar e facer eles, Eu chamo iso de miña cuncha. 474 00:22:28,770 --> 00:22:31,930 E así esta cuncha é en si un programa. 475 00:22:31,930 --> 00:22:35,010 E se eu quixese, eu podería ser executado en / bin / bash. 476 00:22:35,010 --> 00:22:36,930 O shell chámase bash. 477 00:22:36,930 --> 00:22:39,340 E agora notamos algo alterou lixeiramente, 478 00:22:39,340 --> 00:22:42,200 e iso é porque as miñas opcións para o shell son un pouco diferentes. 479 00:22:42,200 --> 00:22:45,415 >> Pero agora eu estou tecnicamente en execución unha cuncha dentro do meu escudo orixinal, 480 00:22:45,415 --> 00:22:49,570 e podo saír desa casca, e agora Estou de volta ao meu shell nivel superior. 481 00:22:49,570 --> 00:22:55,240 A finalidade de dicir que é-- a estrela. 482 00:22:55,240 --> 00:22:59,020 Entón, a estrela é algo entendida por bash. 483 00:22:59,020 --> 00:23:04,260 Entón rm -rf, bandeira rf é comprendido por só rm. 484 00:23:04,260 --> 00:23:06,380 El sabe que, cando pasar un -rf que 485 00:23:06,380 --> 00:23:09,520 quere para eliminar de forma recursiva todos os ficheiros sen avisar. 486 00:23:09,520 --> 00:23:13,960 A estrela é algo entendido por bash que cando di rm *, 487 00:23:13,960 --> 00:23:16,890 bash non vai dicir hey rm *, elimine estrela. 488 00:23:16,890 --> 00:23:21,010 Bash vai dicir rm * eliminar cat1, cat2, dog1, dog2. 489 00:23:21,010 --> 00:23:24,305 Vai automaticamente para ampliar todos os ficheiros no directorio. 490 00:23:24,305 --> 00:23:29,100 491 00:23:29,100 --> 00:23:33,140 >> E do mesmo xeito til é outra símbolo que o bash entende. 492 00:23:33,140 --> 00:23:37,130 Cando di cd ~, o bash expande que, para o seu directorio persoal. 493 00:23:37,130 --> 00:23:38,910 494 00:23:38,910 --> 00:23:40,210 Outras preguntas ata agora? 495 00:23:40,210 --> 00:23:42,760 496 00:23:42,760 --> 00:23:46,060 OK, entón imos comezar a ir rápido. 497 00:23:46,060 --> 00:23:47,700 498 00:23:47,700 --> 00:23:48,545 >> Conclusión Tab. 499 00:23:48,545 --> 00:23:49,670 Só para xoga-lo alí fora. 500 00:23:49,670 --> 00:23:51,530 Unha morea de persoas non entender iso existe. 501 00:23:51,530 --> 00:23:55,060 Entón, se eu tecleo cd dow, I quere ir descargas. 502 00:23:55,060 --> 00:23:56,700 Non teño escribir nloads. 503 00:23:56,700 --> 00:23:57,960 504 00:23:57,960 --> 00:24:00,770 Só podo bater Tab. 505 00:24:00,770 --> 00:24:03,794 Así, recoñécese que A Dow é un prefixo que 506 00:24:03,794 --> 00:24:05,710 non corresponde a calquera cousa máis neste directorio, 507 00:24:05,710 --> 00:24:07,520 polo que vai concluír que para ti. 508 00:24:07,520 --> 00:24:08,610 Agora podo entrar. 509 00:24:08,610 --> 00:24:10,110 >> Eu tamén fago iso de forma recursiva. 510 00:24:10,110 --> 00:24:11,205 Foo Entón mkdir. 511 00:24:11,205 --> 00:24:12,480 512 00:24:12,480 --> 00:24:13,300 Imos entrar foo. 513 00:24:13,300 --> 00:24:14,830 bar mkdir. 514 00:24:14,830 --> 00:24:17,345 Entón, volvendo á miña casa directorio, podo ver descargas. 515 00:24:17,345 --> 00:24:19,040 516 00:24:19,040 --> 00:24:21,860 Agora bater guía de novo, vai automaticamente para cubrir foo. 517 00:24:21,860 --> 00:24:22,880 É o único directorio. 518 00:24:22,880 --> 00:24:25,340 Bater guía de novo, automaticamente vai cubrir bar. 519 00:24:25,340 --> 00:24:26,798 Entón agora eu estou en (~ descargas / foo / bar). 520 00:24:26,798 --> 00:24:27,310 521 00:24:27,310 --> 00:24:31,692 >> Polo tanto, esta guía de conclusión, sempre que eu teño que o horario de expediente, 522 00:24:31,692 --> 00:24:33,400 e eu estou de pé sobre ombreiro de alguén, 523 00:24:33,400 --> 00:24:40,470 e van rm D-O W-N-L-O-A-D-S, estou morrendo. 524 00:24:40,470 --> 00:24:41,990 Só guía, guía, guía, guía. 525 00:24:41,990 --> 00:24:44,550 526 00:24:44,550 --> 00:24:45,630 Entón, en definitiva guía utilizada. 527 00:24:45,630 --> 00:24:47,890 528 00:24:47,890 --> 00:24:49,840 E do mesmo xeito se e abaixo, unha chea de xente 529 00:24:49,840 --> 00:24:51,930 só que pasou con nunca bateu arriba e abaixo. 530 00:24:51,930 --> 00:24:54,870 Vai pasar polo anterior comandos, por iso, se só foi algo, 531 00:24:54,870 --> 00:24:58,300 e quere executa-lo de novo, só Manteña-se ata chegar a el. 532 00:24:58,300 --> 00:24:59,870 533 00:24:59,870 --> 00:25:00,370 Está ben. 534 00:25:00,370 --> 00:25:01,460 535 00:25:01,460 --> 00:25:03,585 >> Tan rápido, algunhas outras cousas. 536 00:25:03,585 --> 00:25:04,800 537 00:25:04,800 --> 00:25:05,930 Imos volver en Temp. 538 00:25:05,930 --> 00:25:06,976 539 00:25:06,976 --> 00:25:08,125 Imos crear algúns arquivos. 540 00:25:08,125 --> 00:25:10,480 541 00:25:10,480 --> 00:25:15,215 Entón, aquí, eu son só vai listar algunhas palabras. 542 00:25:15,215 --> 00:25:18,460 543 00:25:18,460 --> 00:25:21,035 can, gato, Meow. 544 00:25:21,035 --> 00:25:23,940 545 00:25:23,940 --> 00:25:26,040 Imos facer can, peixe. 546 00:25:26,040 --> 00:25:27,500 547 00:25:27,500 --> 00:25:32,320 Entón, agora é un representante moi comandos útiles que 548 00:25:32,320 --> 00:25:37,820 usar para buscar toda arquivos para un determinado texto, 549 00:25:37,820 --> 00:25:40,910 e tecnicamente pode facer realmente expresións complexas para que haxa coincidencia. 550 00:25:40,910 --> 00:25:44,830 >> Entón, aquí, se eu grep, eo que quero buscar? 551 00:25:44,830 --> 00:25:49,130 Imos dicir que eu estou buscando por gatos, e Quero buscar todos eses arquivos. 552 00:25:49,130 --> 00:25:50,650 Entón, como é que fago todas estas arquivos? 553 00:25:50,650 --> 00:25:51,900 Star. 554 00:25:51,900 --> 00:25:54,939 Así, nun ficheiro, teño gato. 555 00:25:54,939 --> 00:25:56,980 Eu probablemente podería chamou-lle algo mellor, 556 00:25:56,980 --> 00:25:59,063 porque parecer números de liña ou algo así. 557 00:25:59,063 --> 00:26:01,590 Pero no arquivo que eu teño unha liña con gato. 558 00:26:01,590 --> 00:26:04,160 En arquivo dous Teño unha liña co gato. 559 00:26:04,160 --> 00:26:07,280 Entón agora podo mirar para dentro dun arquivo e ver si, o ficheiro tiña gato. 560 00:26:07,280 --> 00:26:10,210 Arquivo aviso previo de tres non foi acompañado xa que o gato non está alí. 561 00:26:10,210 --> 00:26:13,882 Podo buscar miado. 562 00:26:13,882 --> 00:26:14,840 Só arquivar dous ten miado. 563 00:26:14,840 --> 00:26:16,120 564 00:26:16,120 --> 00:26:20,640 >> Polo tanto, este pode combinar, de novo, con -r, que 565 00:26:20,640 --> 00:26:23,580 como dixen antes frecuentemente significa recursiva. 566 00:26:23,580 --> 00:26:29,800 E para que eu poida chegar ata aquí, grep -r para calquera instancia de-- imos editar 567 00:26:29,800 --> 00:26:32,010 este só para xogar un gato dentro. 568 00:26:32,010 --> 00:26:38,800 Entón grep -r para calquera instancia de gato ao longo deste directorio. 569 00:26:38,800 --> 00:26:41,600 E que vai de forma recursiva buscar todos os subdirectorios. 570 00:26:41,600 --> 00:26:43,940 Así, en Baz, hai gato. 571 00:26:43,940 --> 00:26:45,570 En temp / 2, hai gato. 572 00:26:45,570 --> 00:26:47,960 E en temp / 1 hai gato. 573 00:26:47,960 --> 00:26:50,045 Entón, iso é buscar dentro de ficheiros. 574 00:26:50,045 --> 00:26:51,250 575 00:26:51,250 --> 00:26:55,090 >> Agora tamén se pode usar un achado. 576 00:26:55,090 --> 00:26:59,640 E así que atopar é especialmente sobre buscando arquivos con un determinado nome. 577 00:26:59,640 --> 00:27:02,490 Entón, imos facer un pouco máis. 578 00:27:02,490 --> 00:27:03,660 Imos para descargas. 579 00:27:03,660 --> 00:27:04,680 580 00:27:04,680 --> 00:27:05,380 Preme dog1. 581 00:27:05,380 --> 00:27:06,840 582 00:27:06,840 --> 00:27:07,770 Preme cat2. 583 00:27:07,770 --> 00:27:09,290 584 00:27:09,290 --> 00:27:10,760 Preme cat_dog. 585 00:27:10,760 --> 00:27:14,550 586 00:27:14,550 --> 00:27:15,975 Preme catcat. 587 00:27:15,975 --> 00:27:18,270 588 00:27:18,270 --> 00:27:23,810 >> Entón, quero atopar todos ficheiros con can no nome. 589 00:27:23,810 --> 00:27:28,060 Así que atopar, e para o máis longo xa que nunca se lembraba 590 00:27:28,060 --> 00:27:33,760 como atopar traballou, ata que finalmente ler algo que fixo de forma clara. 591 00:27:33,760 --> 00:27:35,784 Entón, atopar, automaticamente recursiva. 592 00:27:35,784 --> 00:27:36,950 Non precisa pasar por un -r. 593 00:27:36,950 --> 00:27:38,090 594 00:27:38,090 --> 00:27:39,110 Entón, atopar puntos. 595 00:27:39,110 --> 00:27:40,750 Non falamos de punto aínda. 596 00:27:40,750 --> 00:27:44,800 Considerando dot dot sempre significa un directorio superior. 597 00:27:44,800 --> 00:27:46,960 Dot sempre significa o directorio actual. 598 00:27:46,960 --> 00:27:51,390 Así puiden rm -r punto no mesmo xeito que podo rm -rf *. 599 00:27:51,390 --> 00:27:53,140 En definitiva, eles realizar o mesmo. 600 00:27:53,140 --> 00:27:56,040 rm -rf punto vai eliminar en todo o directorio actual. 601 00:27:56,040 --> 00:27:57,440 602 00:27:57,440 --> 00:27:59,680 >> OK, o que eu non quero facer alí. 603 00:27:59,680 --> 00:28:01,490 604 00:28:01,490 --> 00:28:04,320 Pero atopar punto. 605 00:28:04,320 --> 00:28:07,920 Así, de forma recursiva, busque a cadea directorio, e agora todo 606 00:28:07,920 --> 00:28:14,125 tras este son unha banda de sinalizados que usar para eliminar cousas do retorno. 607 00:28:14,125 --> 00:28:17,250 Entón, atopar dot volve todo o que pode atopar a partir do directorio actual. 608 00:28:17,250 --> 00:28:19,700 Estes son todos os arquivos recursivamente buscar. 609 00:28:19,700 --> 00:28:21,250 Imos ver algúns deses nun segundo. 610 00:28:21,250 --> 00:28:23,150 611 00:28:23,150 --> 00:28:27,140 >> Pero, no caso de que estea se pregunta como fago que, de xeito comando K, polo menos 612 00:28:27,140 --> 00:28:29,660 no meu terminal en Mac limpa-lo. 613 00:28:29,660 --> 00:28:34,660 Control L xeralmente limpa para calquera tipo de terminal. 614 00:28:34,660 --> 00:28:36,480 Tamén pode teclear clara. 615 00:28:36,480 --> 00:28:38,410 E se nunca chegar nun scenario-- estraño 616 00:28:38,410 --> 00:28:42,790 isto aconteceu comigo un par tempo-- onde as cores dos seus prompts 617 00:28:42,790 --> 00:28:46,590 son toda desarrumada, ou non son capaces de ver nada 618 00:28:46,590 --> 00:28:51,232 sendo ingresaran cando está escribindo, porque ás veces, como a cor de fondo é definida 619 00:28:51,232 --> 00:28:53,940 o mesmo que a cor do primeiro plano e agora non pode ver as fontes. 620 00:28:53,940 --> 00:28:55,110 621 00:28:55,110 --> 00:28:59,830 Restaurar é algo que só repón vostede ao fondo estándar negro, 622 00:28:59,830 --> 00:29:01,840 fronte branco, ou o que quere configure-los para. 623 00:29:01,840 --> 00:29:03,390 624 00:29:03,390 --> 00:29:04,790 >> Entón, onde estabamos? 625 00:29:04,790 --> 00:29:05,930 Atopa punto. 626 00:29:05,930 --> 00:29:09,360 Polo tanto, agora todo pasado presente punto restrinxe os resultados 627 00:29:09,360 --> 00:29:11,450 a algo que corresponde o modelo dado. 628 00:29:11,450 --> 00:29:16,110 Entón, aquí quero buscar todo co nome do gato. 629 00:29:16,110 --> 00:29:17,300 Non teño nada. 630 00:29:17,300 --> 00:29:18,390 Por que é este o caso? 631 00:29:18,390 --> 00:29:21,230 Ben, eu estou só a buscar algo con exactamente o nome do gato. 632 00:29:21,230 --> 00:29:25,150 Se eu queira buscar algo que ten algún defecto, e cat-- 633 00:29:25,150 --> 00:29:28,890 as citas tecnicamente non son necesarios, pero eu estou xogando-os alí. 634 00:29:28,890 --> 00:29:32,720 Entón, agora atópase catcat porque esa é a única cousa que 635 00:29:32,720 --> 00:29:36,040 ten algún arbitrario estándar seguido polo gato. 636 00:29:36,040 --> 00:29:41,950 Podo poñer gato *, e agora atopar catcat, cat_dog, cat2, 637 00:29:41,950 --> 00:29:45,245 porque estas son todas as cousas con gato no inicio seguido por nada. 638 00:29:45,245 --> 00:29:46,120 Podes combinar iso. 639 00:29:46,120 --> 00:29:50,480 Se quere buscar todos os ficheiros C que ten, pode facer * .c. 640 00:29:50,480 --> 00:29:51,960 Temos blah.c aquí. 641 00:29:51,960 --> 00:29:53,000 642 00:29:53,000 --> 00:29:55,020 Entón, iso é un achado obras. 643 00:29:55,020 --> 00:29:55,770 Podes buscar. 644 00:29:55,770 --> 00:29:58,270 Ten unha morea de bandeiras a outras restricións. 645 00:29:58,270 --> 00:30:00,960 E un deles, digamos -d. 646 00:30:00,960 --> 00:30:02,110 647 00:30:02,110 --> 00:30:04,435 Entón obsoleta. 648 00:30:04,435 --> 00:30:05,425 649 00:30:05,425 --> 00:30:06,550 Oh, non é iso que quero. 650 00:30:06,550 --> 00:30:07,730 Non -d. 651 00:30:07,730 --> 00:30:08,860 Tipo d. 652 00:30:08,860 --> 00:30:13,820 Entón, atopar dot - tipo d. 653 00:30:13,820 --> 00:30:17,760 Entón, o que fixo é que eu estou buscando para todos os ficheiros no directorio actual 654 00:30:17,760 --> 00:30:21,680 con a-- d significa tipo de directorio directory--. 655 00:30:21,680 --> 00:30:24,430 Isto volve todo directorios no directorio actual. 656 00:30:24,430 --> 00:30:27,670 E tipo F é todo normal arquivos, todo non directorios. 657 00:30:27,670 --> 00:30:29,809 Entón, iso é só unha exemplo doutras formas que 658 00:30:29,809 --> 00:30:32,350 pode restrinxir a busca a outra que o nome do ficheiro. 659 00:30:32,350 --> 00:30:34,126 660 00:30:34,126 --> 00:30:35,570 >> Foi 30 minutos. 661 00:30:35,570 --> 00:30:36,848 Aínda vai. 662 00:30:36,848 --> 00:30:38,132 >> ALLISON: Vou brisa través. 663 00:30:38,132 --> 00:30:39,670 El vai estar ben. 664 00:30:39,670 --> 00:30:41,460 >> ROB Bowden: Entón algunhas outras cousas. 665 00:30:41,460 --> 00:30:45,700 Agora bater, punto de exclamación. 666 00:30:45,700 --> 00:30:50,530 Así que xeralmente means-- ben, imos ver un exemplo. 667 00:30:50,530 --> 00:30:52,230 Entón! F, que é o que vai facer? 668 00:30:52,230 --> 00:30:53,520 669 00:30:53,520 --> 00:30:57,810 Ben, parece que repetido achado do tipo dot f. 670 00:30:57,810 --> 00:30:59,240 Que tal! G? 671 00:30:59,240 --> 00:31:00,760 Isto só grep cat -r *. 672 00:31:00,760 --> 00:31:02,010 673 00:31:02,010 --> 00:31:05,720 Entón tire pode usar para repetir unha orde recentemente feito. 674 00:31:05,720 --> 00:31:13,280 Entón, se eu escribir! Gre, que vai re-run as ordes que comezaron con gre máis 675 00:31:13,280 --> 00:31:14,060 recentemente. 676 00:31:14,060 --> 00:31:17,090 >> E podes ver todo isto comandos coa historia. 677 00:31:17,090 --> 00:31:17,880 Así, a historia. 678 00:31:17,880 --> 00:31:19,630 Estes son todos comandos eu correr hoxe. 679 00:31:19,630 --> 00:31:21,089 680 00:31:21,089 --> 00:31:23,130 E ben, non é literalmente restrinxido aos días de hoxe, 681 00:31:23,130 --> 00:31:25,180 pero eu só teño usado este aparello a partir de hoxe. 682 00:31:25,180 --> 00:31:28,730 É a súa totalidade do historia do seu shell bash, 683 00:31:28,730 --> 00:31:30,433 agás que corta nalgún punto. 684 00:31:30,433 --> 00:31:33,474 Audiencia: Qué acontece se fai historial de comandos [inaudível] e un erro 685 00:31:33,474 --> 00:31:35,430 no resultado aínda será impreso as-- 686 00:31:35,430 --> 00:31:44,110 >> ROB Bowden: Si, se hai un erro nun deses commands-- 687 00:31:44,110 --> 00:31:48,090 entón imos dicir que é un comando de erro descoñecido. 688 00:31:48,090 --> 00:31:49,312 689 00:31:49,312 --> 00:31:50,520 Aínda aparece na historia. 690 00:31:50,520 --> 00:31:52,620 691 00:31:52,620 --> 00:31:53,170 Todo correcto. 692 00:31:53,170 --> 00:31:54,750 693 00:31:54,750 --> 00:31:56,040 Outras preguntas sobre calquera cousa? 694 00:31:56,040 --> 00:31:58,760 695 00:31:58,760 --> 00:32:00,300 Entón, iso é estrondo. 696 00:32:00,300 --> 00:32:04,230 >> Agora, a orde realmente útil, o home. 697 00:32:04,230 --> 00:32:07,750 Entón, que lle dá a manual para un determinado orde. 698 00:32:07,750 --> 00:32:11,640 Entón, digamos que man ls, entón iso está me amosando sl. 699 00:32:11,640 --> 00:32:13,400 El lista o contido do directorio. 700 00:32:13,400 --> 00:32:17,150 E é aí onde eu vexo que hai son esas varias bandeiras que existen. 701 00:32:17,150 --> 00:32:21,340 Así, podemos ver que hai ls -l se tivésemos que ler isto. ls -l 702 00:32:21,340 --> 00:32:26,150 me dá esta listaxe completa do directorio con propietario do arquivo, 703 00:32:26,150 --> 00:32:29,750 o tamaño do arquivo, o o timestamp modificado. 704 00:32:29,750 --> 00:32:31,130 705 00:32:31,130 --> 00:32:34,980 Entón ls -a é outro que pode realmente usar un pouco frecuentes. 706 00:32:34,980 --> 00:32:38,130 -al é a miña bandeira máis común este ls pasadas. 707 00:32:38,130 --> 00:32:42,520 >> Así, -a, entender que hai moito máis arquivos que ls. 708 00:32:42,520 --> 00:32:44,170 ls -a. 709 00:32:44,170 --> 00:32:46,170 O que hai en común con todos estes arquivos? 710 00:32:46,170 --> 00:32:47,790 Comezan cun punto. 711 00:32:47,790 --> 00:32:54,710 Polo tanto, esta é unha convención en Linux que os arquivos que comezan cun punto están ocultas. 712 00:32:54,710 --> 00:32:58,330 Entón, isto significa só que cando nós só ls rectas, 713 00:32:58,330 --> 00:33:04,170 ou estamos a buscar este directorio a través o equivalente find, é de Windows 714 00:33:04,170 --> 00:33:07,250 Explorador equivalente, que nós Non quero ver estes arquivos de puntos. 715 00:33:07,250 --> 00:33:09,680 Eles só contaminar a visión das cousas. 716 00:33:09,680 --> 00:33:11,790 Entón, eles están escondidos a menos que especificamente 717 00:33:11,790 --> 00:33:14,250 solicitalo-los con algo como -a. 718 00:33:14,250 --> 00:33:18,920 Entón eu podo cd en .local, e eu vexo que que é en si mesmo un directorio con 719 00:33:18,920 --> 00:33:22,220 un directorio compartido, e aplicacións, e bla bla bla. 720 00:33:22,220 --> 00:33:24,520 Entón, dot, arquivos están só escondidos. 721 00:33:24,520 --> 00:33:26,250 722 00:33:26,250 --> 00:33:29,355 >> OK, para que outros máis importantes. 723 00:33:29,355 --> 00:33:30,490 724 00:33:30,490 --> 00:33:32,000 Eu teño un par que podo saltar. 725 00:33:32,000 --> 00:33:38,160 Nós só verdadeira conversación rápida sobre as cousas arquivo de redirección. 726 00:33:38,160 --> 00:33:43,020 Polo tanto, hai unha complexa serie enteira de cousas que podes facer con estes, 727 00:33:43,020 --> 00:33:47,204 pero só para velos, digamos, eco. 728 00:33:47,204 --> 00:33:47,870 Outro comando. 729 00:33:47,870 --> 00:33:48,920 Comando realmente idiota. 730 00:33:48,920 --> 00:33:50,710 Todo o que fai é imprimir o que eu diga a el. 731 00:33:50,710 --> 00:33:52,070 Entón eco Ola. 732 00:33:52,070 --> 00:33:53,850 El só repetiu Ola a pantalla. 733 00:33:53,850 --> 00:33:55,170 734 00:33:55,170 --> 00:33:56,390 Ola, mundo. 735 00:33:56,390 --> 00:33:57,890 Ecos Ola mundo. 736 00:33:57,890 --> 00:34:02,650 >> Así, unha orde ou un símbolo que o bash entende 737 00:34:02,650 --> 00:34:07,620 é maior que este símbolo, e que é a saída para un símbolo de ficheiro. 738 00:34:07,620 --> 00:34:10,940 Entón, se eu de saída a esta foo, hai agora un ficheiro 739 00:34:10,940 --> 00:34:15,100 chamado foo, dentro que é Ola mundo. 740 00:34:15,100 --> 00:34:18,489 Entón, teña en conta que cando ecoar Ola tubo mundo en foo, 741 00:34:18,489 --> 00:34:19,980 non ecoam Ola mundo. 742 00:34:19,980 --> 00:34:22,630 Pola contra, foi posto en arquivo foo. 743 00:34:22,630 --> 00:34:25,340 E outro comando só xoga-lo para ti, gata. 744 00:34:25,340 --> 00:34:29,191 Esta é un xeito doado de só completamente listar o contido do arquivo 745 00:34:29,191 --> 00:34:31,440 de xeito que eu non teño para abrir un editor de texto para velo. 746 00:34:31,440 --> 00:34:34,159 Así, o contido do ficheiro foo están Ola mundo. 747 00:34:34,159 --> 00:34:38,460 E eu podería blah.c gato, os contidos son iso. 748 00:34:38,460 --> 00:34:42,123 >> De novo, estes son comandos que, non facer espero que te-los todos memorizado. 749 00:34:42,123 --> 00:34:43,860 A idea é que xa viu a eles. 750 00:34:43,860 --> 00:34:45,735 Pode que traballando algo, e está 751 00:34:45,735 --> 00:34:47,230 como eu estou canso de abrir este ficheiro. 752 00:34:47,230 --> 00:34:50,120 Gustaríame poder só ollar no contido real rápido. 753 00:34:50,120 --> 00:34:52,320 Podes facelo, entón mirar para atrás e dicir oh I 754 00:34:52,320 --> 00:34:55,250 Teña en conta que algo así como o que hai, e é gato. 755 00:34:55,250 --> 00:35:00,630 >> Entón o que está a suceder nun arquivo. 756 00:35:00,630 --> 00:35:06,639 Agora ben, non hai realmente ningunha boa exemplo de lectura dun ficheiro aínda. 757 00:35:06,639 --> 00:35:08,930 Que é algo que leva algo do estándar en? 758 00:35:08,930 --> 00:35:10,010 759 00:35:10,010 --> 00:35:11,544 Calquera simple comando Linux? 760 00:35:11,544 --> 00:35:13,480 761 00:35:13,480 --> 00:35:16,970 Cando chegamos a el, nun matrimonio semana todo piece-- ben, 762 00:35:16,970 --> 00:35:20,470 esta semana ten unha peza onde comezar a tomar a entrada do usuario. 763 00:35:20,470 --> 00:35:23,696 E así normalmente escribe que a entrada ao teclado. 764 00:35:23,696 --> 00:35:25,570 No canto de escribir que entrada no teclado, 765 00:35:25,570 --> 00:35:30,950 pode, en vez de tubos de un ficheiro de xeito que cando fai Mario, ./mario, 766 00:35:30,950 --> 00:35:35,200 tubo desde calquera ficheiro dado, e que vai executar o programa de Mario. 767 00:35:35,200 --> 00:35:37,300 Non espera a entrada en teclado, en vez diso, é 768 00:35:37,300 --> 00:35:39,650 só vai ler o liñas do ficheiro foo. 769 00:35:39,650 --> 00:35:45,230 >> Así, maior que foo pon en o ficheiro foo, e menos de foo 770 00:35:45,230 --> 00:35:50,170 leva o material a partir do ficheiro foo e usa como entrada para este programa. 771 00:35:50,170 --> 00:35:51,520 772 00:35:51,520 --> 00:36:00,630 E só para velo, tamén podería ecoar foo bar Baz, e logo, no canto dun 773 00:36:00,630 --> 00:36:03,850 maior que, imos facer dous en foo. 774 00:36:03,850 --> 00:36:05,610 O que isto fai? 775 00:36:05,610 --> 00:36:07,180 El só engade ao arquivo. 776 00:36:07,180 --> 00:36:15,360 Entón, en vez conta se eu echo bla en foo e foo gato, é só bla. 777 00:36:15,360 --> 00:36:18,285 Entón, cando saída a un ficheiro que, substitúe completamente o arquivo. 778 00:36:18,285 --> 00:36:19,330 779 00:36:19,330 --> 00:36:22,740 Se quere só para engadir, double [? motoniveladora. ?] 780 00:36:22,740 --> 00:36:24,080 >> E para rematar, é de tubo. 781 00:36:24,080 --> 00:36:29,590 Tubo se fai moito máis complicado, onde que leva a saída dun comando 782 00:36:29,590 --> 00:36:32,320 e alimenta-lo ao seguinte comando. 783 00:36:32,320 --> 00:36:36,140 Entón, unha cousa común, historia. 784 00:36:36,140 --> 00:36:37,920 Entón, Ugh, eu non quero ollar para iso. 785 00:36:37,920 --> 00:36:40,680 786 00:36:40,680 --> 00:36:44,485 Móstrase me todos os comandos na miña historia onde eu grep-ed para algo. 787 00:36:44,485 --> 00:36:45,360 Non, iso é confuso. 788 00:36:45,360 --> 00:36:50,360 Móstrase me todos os comandos que eu atopar. 789 00:36:50,360 --> 00:36:52,360 Todo atopar comandos que eu xa corrín. 790 00:36:52,360 --> 00:36:55,050 >> Así, a historia. 791 00:36:55,050 --> 00:36:59,017 Agora saídas de historia para o pantalla esta lista de comandos, 792 00:36:59,017 --> 00:37:00,850 pero eu non quero saída para a pantalla. 793 00:37:00,850 --> 00:37:03,445 Pola contra, eu estou indo a canaliza-lo en grep. 794 00:37:03,445 --> 00:37:04,790 795 00:37:04,790 --> 00:37:07,830 Entón, imos buscar todas as instancias do achado. 796 00:37:07,830 --> 00:37:09,550 797 00:37:09,550 --> 00:37:17,000 Entón, agora en vez de tomar grep a entrada, no canto de-- 798 00:37:17,000 --> 00:37:24,360 grep é capaz de tratar como input-- estamos usando grep algo diferente aquí. 799 00:37:24,360 --> 00:37:29,550 Entón, en vez de escribir a lista de cousas que quería buscar 800 00:37:29,550 --> 00:37:31,070 e dixo grep está tomando como entrada. 801 00:37:31,070 --> 00:37:34,810 Entón, se eu só grep atopar, el espera que eu escriba cousas. 802 00:37:34,810 --> 00:37:37,661 Entón gato Ola atopar. 803 00:37:37,661 --> 00:37:38,160 Ola. 804 00:37:38,160 --> 00:37:40,430 805 00:37:40,430 --> 00:37:40,930 Buscar. 806 00:37:40,930 --> 00:37:43,670 Teña en conta cada vez que eu escriba atopar recoñece que eu escriba achado. 807 00:37:43,670 --> 00:37:44,880 808 00:37:44,880 --> 00:37:49,540 Entón, en vez diso, vai busca de arquivos para atopar. 809 00:37:49,540 --> 00:37:53,930 >> Así, a historia vai agora saída dunha lista de todos os ordes. 810 00:37:53,930 --> 00:37:55,200 811 00:37:55,200 --> 00:37:58,100 Estamos poñendo que a produción, e estamos alimentándose ao grep, 812 00:37:58,100 --> 00:38:00,180 e por iso está cuspindo todas as instancias de atopar. 813 00:38:00,180 --> 00:38:02,170 814 00:38:02,170 --> 00:38:05,570 A razón pola que eu dixen que estaría confundindo é se I-- aínda é confuso. 815 00:38:05,570 --> 00:38:07,030 Se eu grep para grep. 816 00:38:07,030 --> 00:38:08,755 817 00:38:08,755 --> 00:38:11,130 Teña en conta que é moi fermoso sempre mostrando o mando eu só 818 00:38:11,130 --> 00:38:15,280 correu por ese mando si ten grep dentro del. 819 00:38:15,280 --> 00:38:16,580 820 00:38:16,580 --> 00:38:20,674 >> OK, entón calquera dúbida sobre calquera cousa? 821 00:38:20,674 --> 00:38:22,340 E eu vou transferir-lo máis neste momento. 822 00:38:22,340 --> 00:38:24,690 Esperemos que este é un bo visión xeral de todos os comandos 823 00:38:24,690 --> 00:38:30,100 que non precisa ter memorizado, pero estes fan-se 824 00:38:30,100 --> 00:38:32,950 un sólido 95% do que eu facer na liña de comandos. 825 00:38:32,950 --> 00:38:34,310 826 00:38:34,310 --> 00:38:39,140 Tamén ten en conta que a liña de comandos en si, bash é unha linguaxe de programación, 827 00:38:39,140 --> 00:38:43,070 e así, cando comezar a el, Pode querer facer as cousas realmente complexas. 828 00:38:43,070 --> 00:38:47,522 E por iso ten cousas como loops e ses, e de todos aqueles 829 00:38:47,522 --> 00:38:50,230 que vai acostumar coas súas linguaxes de programación. 830 00:38:50,230 --> 00:38:53,660 Pero iso está alén do ámbito desta sección. 831 00:38:53,660 --> 00:38:55,520 832 00:38:55,520 --> 00:38:56,985 OK, entón non hai dúbidas? 833 00:38:56,985 --> 00:38:57,940 834 00:38:57,940 --> 00:38:58,523 ALLISON Ningún? 835 00:38:58,523 --> 00:38:59,450 GABRIEL: Vai a-- 836 00:38:59,450 --> 00:39:01,158 ALLISON: Podo facelo no meu, se queres. 837 00:39:01,158 --> 00:39:02,626 Podemos ver que pasa. 838 00:39:02,626 --> 00:39:03,750 ROB Bowden: Off para Allison. 839 00:39:03,750 --> 00:39:05,090 ALLISON: Woo. 840 00:39:05,090 --> 00:39:07,504 Vostede é un acto difícil de seguir, Rob. 841 00:39:07,504 --> 00:39:08,920 Quere me cambiar contigo? 842 00:39:08,920 --> 00:39:10,246 Ou ten, Aceptar. 843 00:39:10,246 --> 00:39:13,590 844 00:39:13,590 --> 00:39:16,990 Vou tentar e non bastante ser tan moroso alí. 845 00:39:16,990 --> 00:39:20,619 846 00:39:20,619 --> 00:39:22,660 A ver se esa vontade traballar do xeito que quero. 847 00:39:22,660 --> 00:39:26,170 848 00:39:26,170 --> 00:39:26,670 Quizais? 849 00:39:26,670 --> 00:39:27,760 850 00:39:27,760 --> 00:39:28,296 Haha! 851 00:39:28,296 --> 00:39:28,796 Si. 852 00:39:28,796 --> 00:39:30,460 853 00:39:30,460 --> 00:39:34,066 >> Entón, eu estou indo só para ir moi rápido a través de variables, loops, condicionais, 854 00:39:34,066 --> 00:39:35,440 e un pouco sobre o compilador. 855 00:39:35,440 --> 00:39:38,570 Se ten preguntas en calquera momento, por favor, me deixar. 856 00:39:38,570 --> 00:39:42,750 Eses faces van lembrar-me de repetir súa pregunta no caso esquezo, 857 00:39:42,750 --> 00:39:44,210 pero non debe ser moi malo. 858 00:39:44,210 --> 00:39:45,850 >> Entón variables, si. 859 00:39:45,850 --> 00:39:48,060 Nós non temos un dos seus Pezas risco aquí. 860 00:39:48,060 --> 00:39:50,440 Estou seguro que a maioría de vós, se tivo algún tipo de xogo 861 00:39:50,440 --> 00:39:53,810 que creou co Scratch, que tiña manter o control de algo así como puntuación, 862 00:39:53,810 --> 00:39:55,870 ou tempo, ou algo parecido. 863 00:39:55,870 --> 00:39:58,080 Polo tanto, aqueles laranxa brillante pezas que vemos alí 864 00:39:58,080 --> 00:40:02,630 son só a forma do risco de variables, e vai definitivamente 865 00:40:02,630 --> 00:40:04,640 estar usando variábeis ao longo dos seus programas. 866 00:40:04,640 --> 00:40:07,350 Se non for, eu non son realmente Asegúrese de que está facendo. 867 00:40:07,350 --> 00:40:09,000 868 00:40:09,000 --> 00:40:12,215 >> Pero de calquera xeito, gran cousa, definición de variables. 869 00:40:12,215 --> 00:40:13,630 870 00:40:13,630 --> 00:40:16,970 Con C cada variable ten ter un tipo declarado, 871 00:40:16,970 --> 00:40:22,090 entón eu dei-lle unha moi unha xeral na parte superior. 872 00:40:22,090 --> 00:40:24,045 Entón vai ter a súa escribir e logo, o que quere 873 00:40:24,045 --> 00:40:25,420 decide chamar á súa variable. 874 00:40:25,420 --> 00:40:27,500 875 00:40:27,500 --> 00:40:29,680 Polo tanto, neste caso, o tipo na súa lista de variables. 876 00:40:29,680 --> 00:40:31,400 >> Temos tres exemplos. 877 00:40:31,400 --> 00:40:34,439 Char dalgún grao, dun A, que é o que 878 00:40:34,439 --> 00:40:36,230 Estou seguro de que todos queren para chegar nesta clase. 879 00:40:36,230 --> 00:40:37,380 880 00:40:37,380 --> 00:40:40,670 Podes establecer múltiples variables nunha liña 881 00:40:40,670 --> 00:40:43,880 con tal de que eles son todos do mesmo tipo, que é o noso segundo exemplo, hai 882 00:40:43,880 --> 00:40:46,409 onde ten tres variables, x, y, e z. 883 00:40:46,409 --> 00:40:47,200 Son todos os coches alegóricos. 884 00:40:47,200 --> 00:40:49,160 885 00:40:49,160 --> 00:40:53,250 E entón tamén pode, neste último exemplo, con puntuación int e número 886 00:40:53,250 --> 00:40:56,510 de equipos, pode arrinque la alí mesmo. 887 00:40:56,510 --> 00:41:01,270 >> Así, no exemplo do medio en que só ten float de x, y, e z 888 00:41:01,270 --> 00:41:02,730 aqueles que non son inicializados aínda. 889 00:41:02,730 --> 00:41:04,140 Eles non teñen ningún valor. 890 00:41:04,140 --> 00:41:05,600 Ou eles teñen valores de lixo. 891 00:41:05,600 --> 00:41:07,370 892 00:41:07,370 --> 00:41:10,790 E se tentar usalos, o compilador pode berrar contigo. 893 00:41:10,790 --> 00:41:14,727 Ten que declarar e tanto arrincar súas variables. 894 00:41:14,727 --> 00:41:16,310 Así, nesta última, estamos facendo as dúas cousas. 895 00:41:16,310 --> 00:41:19,320 Estamos declarando variables de puntuación e número de equipos, 896 00:41:19,320 --> 00:41:24,134 e estamos inicializar a eles, dando lles os seus valores iniciais de 7 e 4 897 00:41:24,134 --> 00:41:24,675 respectivamente. 898 00:41:24,675 --> 00:41:26,310 899 00:41:26,310 --> 00:41:27,190 Legal. 900 00:41:27,190 --> 00:41:28,550 Todo o mundo bo? 901 00:41:28,550 --> 00:41:29,470 Impresionante. 902 00:41:29,470 --> 00:41:31,690 >> OK, entón algunhas convencións. 903 00:41:31,690 --> 00:41:35,965 Se vostedes leron a través do estilo de 50, estes 904 00:41:35,965 --> 00:41:39,510 son só cousas que queremos vostede aplicar no seu estilo. 905 00:41:39,510 --> 00:41:41,230 Nomes tan significativo. 906 00:41:41,230 --> 00:41:45,700 Se comezar a chamar as cousas só x, y, e z, especialmente 907 00:41:45,700 --> 00:41:47,902 como entrar en longas programas, está 908 00:41:47,902 --> 00:41:49,610 Probablemente vai confunden-se e ser 909 00:41:49,610 --> 00:41:52,930 como o que é esta variable referíndose. 910 00:41:52,930 --> 00:41:55,880 Eu non teño idea o que iso significa. 911 00:41:55,880 --> 00:41:59,280 >> Entón, se é para soster unha puntuación, chamalo de marcar. 912 00:41:59,280 --> 00:42:05,720 Se significar para manter algunha resposta ou producir, darlle un nome como ese. 913 00:42:05,720 --> 00:42:09,920 Loops, que imos entrar no seguinte foto, 914 00:42:09,920 --> 00:42:12,985 variables dunha única letra son moi ben. 915 00:42:12,985 --> 00:42:16,033 916 00:42:16,033 --> 00:42:18,449 ROB Bowden: I, j, k e son só convencións para loops 917 00:42:18,449 --> 00:42:22,050 que todo o mundo espera que para ser chamado i, j, k e. 918 00:42:22,050 --> 00:42:26,890 Pode chamar eles-- vexo liña columna ou liña de chamada, ás veces, 919 00:42:26,890 --> 00:42:29,450 por dous loops aniñados, e que é tamén unha especie de patrón. 920 00:42:29,450 --> 00:42:31,450 Pero eu e j é totalmente comprendido. 921 00:42:31,450 --> 00:42:33,670 >> ALLISON: Si, eu e j está totalmente ben. 922 00:42:33,670 --> 00:42:36,250 Por razóns de claridade, coma nalgúns dos seus conxuntos de P, 923 00:42:36,250 --> 00:42:39,745 pode ter sentido ter máis descritivos cousas alí só 924 00:42:39,745 --> 00:42:40,920 manter o control do mesmo. 925 00:42:40,920 --> 00:42:45,100 Pero eu creo que i, j, k e eu creo que a gran maioría de nós todo o uso. 926 00:42:45,100 --> 00:42:46,890 927 00:42:46,890 --> 00:42:50,340 >> ROB Bowden: Con estes convencións, polo que o estilo é importante. 928 00:42:50,340 --> 00:42:53,520 É un dos catro eixes en que está clasificado, 929 00:42:53,520 --> 00:42:58,110 e é tan fácil de ir un pouco máis seu P definido ao final e asegurarse de 930 00:42:58,110 --> 00:42:59,770 que non hai erros estilísticos. 931 00:42:59,770 --> 00:43:01,742 Entón asegúrese de que está tabulación correctamente. 932 00:43:01,742 --> 00:43:03,200 Asegúrese de súas variables son nomeados. 933 00:43:03,200 --> 00:43:04,450 Deixe algúns comentarios. 934 00:43:04,450 --> 00:43:06,677 É moi fácil obter estes puntos. 935 00:43:06,677 --> 00:43:09,510 Non ten que pensar sobre calquera cousa, a fin de obter os puntos. 936 00:43:09,510 --> 00:43:11,093 Non ten que entender nada. 937 00:43:11,093 --> 00:43:12,640 É só converténdose no fermosa. 938 00:43:12,640 --> 00:43:14,850 >> ALLISON: En realidade, nós ten estilo 50, que 939 00:43:14,850 --> 00:43:17,920 vai dicir onde está sujando se se está entorpecendo en estilo 940 00:43:17,920 --> 00:43:21,180 e dicirlle o que Debe corrixir e como precisa para resolve-lo. 941 00:43:21,180 --> 00:43:23,900 Tamén é só bo mencionar que é política curso 942 00:43:23,900 --> 00:43:27,200 que se está na oficina horas eo seu código é unha desorde, 943 00:43:27,200 --> 00:43:30,200 podemos rexeitar a axudar vostede ata que parece máis agradable. 944 00:43:30,200 --> 00:43:34,310 Entón comeza a dereita, manter un estilo consistente, 945 00:43:34,310 --> 00:43:37,100 tamén está indo só para facer súa vida moito máis fácil cando 946 00:43:37,100 --> 00:43:38,730 estás a pasar por depuración. 947 00:43:38,730 --> 00:43:41,510 Se está tentando descubrir onde está perdendo unha chaveta 948 00:43:41,510 --> 00:43:44,890 e están por todo o lugar, es só facer a súa propia vida máis difícil. 949 00:43:44,890 --> 00:43:47,217 Entón, ser consistente con estilo. 950 00:43:47,217 --> 00:43:48,800 Eu prometer que vai facilitar a súa vida. 951 00:43:48,800 --> 00:43:50,330 Isto vai facilitar as nosas vidas. 952 00:43:50,330 --> 00:43:51,869 Todo o mundo vai ser moito máis feliz. 953 00:43:51,869 --> 00:43:52,910 E iso é o que quere. 954 00:43:52,910 --> 00:43:54,192 955 00:43:54,192 --> 00:43:55,650 GABRIEL: A súa nota será maior. 956 00:43:55,650 --> 00:43:56,858 ALLISON: Si, ea súa nota. 957 00:43:56,858 --> 00:43:58,410 958 00:43:58,410 --> 00:44:01,930 Se o TF É como se, tende a ser favorable. 959 00:44:01,930 --> 00:44:02,940 960 00:44:02,940 --> 00:44:05,010 Todo ben, e despois é só o segundo punto aquí. 961 00:44:05,010 --> 00:44:06,300 Initializations consistente. 962 00:44:06,300 --> 00:44:09,605 Entón, como xa vimos, pode declarar e arrincar as cousas. 963 00:44:09,605 --> 00:44:10,750 964 00:44:10,750 --> 00:44:13,180 Múltiples variables na mesma liña. 965 00:44:13,180 --> 00:44:17,930 Unha cousa que me gustaría que non facer é declarar algunhas variables 966 00:44:17,930 --> 00:44:21,360 e non arrincar-los na mesma liña que está inicializar outros. 967 00:44:21,360 --> 00:44:23,960 >> Polo tanto, no caso de que feita calquera sentido, 968 00:44:23,960 --> 00:44:29,050 temos o exemplo aquí onde estamos declarando ints 969 00:44:29,050 --> 00:44:31,180 nas variables de barrios moedas de dez centavos e moedas de un centavo, 970 00:44:31,180 --> 00:44:34,214 pero os cuartos e as moedas de un centavo non teñen valor inicial. 971 00:44:34,214 --> 00:44:36,630 Non inicializou a eles, pero no medio hai 972 00:44:36,630 --> 00:44:38,600 xa inicializar moedas de dez centavos a 0. 973 00:44:38,600 --> 00:44:41,650 Así, é facer trimestres, moedas, moedas de un centavo. 974 00:44:41,650 --> 00:44:43,170 Ou trimestres igual a 0. 975 00:44:43,170 --> 00:44:43,930 Dimes igual a 0. 976 00:44:43,930 --> 00:44:46,810 Tostões igual a 0, ou o que quere estes valores iniciais son. 977 00:44:46,810 --> 00:44:49,800 >> Gran cousa con estilo, ser consistente. 978 00:44:49,800 --> 00:44:51,050 En caso de dúbida, ser consistente. 979 00:44:51,050 --> 00:44:52,129 980 00:44:52,129 --> 00:44:53,420 Pero seguir a nosa guía de estilo tamén. 981 00:44:53,420 --> 00:44:54,710 982 00:44:54,710 --> 00:44:55,317 Legal. 983 00:44:55,317 --> 00:44:56,150 Todos bo alí? 984 00:44:56,150 --> 00:44:57,566 >> Audiencia: Onde está o guía de estilo? 985 00:44:57,566 --> 00:45:00,800 ALLISON: A guía de estilo é on-- cal é o sitio web? 986 00:45:00,800 --> 00:45:03,950 >> GABRIEL: Creo que é manual.cs50.net/-- 987 00:45:03,950 --> 00:45:04,575 ALLISON: Estilo? 988 00:45:04,575 --> 00:45:05,610 989 00:45:05,610 --> 00:45:06,390 >> GABRIEL: Estilo. 990 00:45:06,390 --> 00:45:06,920 Yep. 991 00:45:06,920 --> 00:45:07,520 >> ALLISON: Si. 992 00:45:07,520 --> 00:45:10,150 Entón, cuestionar, onde é o estilo 50. 993 00:45:10,150 --> 00:45:12,250 manual.cs50.net/style. 994 00:45:12,250 --> 00:45:13,639 Si? 995 00:45:13,639 --> 00:45:16,880 >> Audiencia: Se estamos definindo variables, é OK 996 00:45:16,880 --> 00:45:28,145 se colocarmos como [inaudível] como puntuación int e int obxectivo. 997 00:45:28,145 --> 00:45:29,873 998 00:45:29,873 --> 00:45:35,100 Entón diría que agora temos chegou a define-los xuntos? 999 00:45:35,100 --> 00:45:37,640 >> ALLISON: Entón cuestión, deberán ten o código redundante 1000 00:45:37,640 --> 00:45:40,940 cando está definindo variables como int e puntuación 1001 00:45:40,940 --> 00:45:43,239 na seguinte liña int xogo? 1002 00:45:43,239 --> 00:45:46,030 ROB Bowden: Hai definitivamente casos en que o código redundante é malo. 1003 00:45:46,030 --> 00:45:47,738 Non consideraría que o código redundante. 1004 00:45:47,738 --> 00:45:50,970 Eu case nunca declarar múltiple variables na mesma liña de cada vez. 1005 00:45:50,970 --> 00:45:53,736 E se algo, é porque xeralmente eu deixar algún tipo de comentario 1006 00:45:53,736 --> 00:45:55,235 explicando o que a variable é para. 1007 00:45:55,235 --> 00:45:57,582 Entón, eu vou dicir puntuación int barra barra. 1008 00:45:57,582 --> 00:45:59,350 Mantén o control de todo. 1009 00:45:59,350 --> 00:46:00,710 Na barra total de barra. 1010 00:46:00,710 --> 00:46:01,790 1011 00:46:01,790 --> 00:46:06,455 Por iso, é moito máis groseiro desa forma para poñer-los todos na mesma liña. 1012 00:46:06,455 --> 00:46:08,080 Nunca poñer-los na mesma liña. 1013 00:46:08,080 --> 00:46:10,580 >> ALLISON: Eu me sinto como se fose preferencia persoal neste momento. 1014 00:46:10,580 --> 00:46:14,900 >> Audiencia: Será que van para loops e outras cousas tamén? 1015 00:46:14,900 --> 00:46:15,900 ROB Bowden: Como dentro? 1016 00:46:15,900 --> 00:46:18,282 Como int i é igual a 0 comas lonxitude é igual a algo? 1017 00:46:18,282 --> 00:46:19,490 Que non ten opción. 1018 00:46:19,490 --> 00:46:21,850 1019 00:46:21,850 --> 00:46:25,910 Con loops o arranque part-- para que poida ver só 1020 00:46:25,910 --> 00:46:31,520 int i é igual a 0 punto e coma i menos do que o que quere que punto e coma i plus plus. 1021 00:46:31,520 --> 00:46:33,820 Isto int i é igual a 0, tecnicamente tamén pode 1022 00:46:33,820 --> 00:46:35,770 facer o que se viu antes coa sintaxe de comas. 1023 00:46:35,770 --> 00:46:39,790 int i é igual a 0 comas j é igual a 3 comas k é igual a 5. 1024 00:46:39,790 --> 00:46:41,610 1025 00:46:41,610 --> 00:46:44,320 Non ten a opción de dividir que en varias liñas, 1026 00:46:44,320 --> 00:46:46,530 e iso é normal. 1027 00:46:46,530 --> 00:46:47,780 Velo hai multa. 1028 00:46:47,780 --> 00:46:49,182 1029 00:46:49,182 --> 00:46:49,890 ALLISON: Awesome. 1030 00:46:49,890 --> 00:46:52,120 Pois Segue cómodo en loops. 1031 00:46:52,120 --> 00:46:54,860 1032 00:46:54,860 --> 00:46:58,980 Entón, si, aquí temos algúns exemplos de lazos que vostedes viron o scratch. 1033 00:46:58,980 --> 00:47:01,550 E, por suposto, todos estes pode só ser recreada en C. 1034 00:47:01,550 --> 00:47:04,610 E basicamente permiten que repetir algúns sección de código 1035 00:47:04,610 --> 00:47:06,740 ata que unha determinada condición se cumpre, o que nós imos 1036 00:47:06,740 --> 00:47:09,198 entrar á dereita despois de falar sobre lazos con condicionais. 1037 00:47:09,198 --> 00:47:11,150 1038 00:47:11,150 --> 00:47:12,570 >> Polo tanto, temos tres tipos principais. 1039 00:47:12,570 --> 00:47:17,500 De momento, e facer á vez, que imos todos pasar por agora. 1040 00:47:17,500 --> 00:47:18,860 Entón, primeiro é para loops. 1041 00:47:18,860 --> 00:47:20,490 1042 00:47:20,490 --> 00:47:25,034 Así, por algunha condición, executar este bloque de código. 1043 00:47:25,034 --> 00:47:27,200 Temos este pouco fría Diagrama aquí na parte inferior. 1044 00:47:27,200 --> 00:47:28,230 1045 00:47:28,230 --> 00:47:32,310 Pero, basicamente, ten en seu favor, que a primeira liña, 1046 00:47:32,310 --> 00:47:34,240 vai arrincar súas variables. 1047 00:47:34,240 --> 00:47:38,260 >> Así como falamos, eu é igual a 0 ou i é igual a 10. 1048 00:47:38,260 --> 00:47:40,010 Todo o que precisa que variable a ser é 1049 00:47:40,010 --> 00:47:43,970 será inicializar alí, declarada e inicializar con algún valor. 1050 00:47:43,970 --> 00:47:46,760 Entón temos algúns condición que está pasando 1051 00:47:46,760 --> 00:47:48,900 para ser alomenos a nosa variable contra algo. 1052 00:47:48,900 --> 00:47:55,220 Así, no caso a caso típico no que quizais queira que esta sección do código 1053 00:47:55,220 --> 00:47:56,620 para realizar cinco veces. 1054 00:47:56,620 --> 00:48:02,380 Entón nós teriamos int i é igual a 0, e nós quere que sexa cando sexa inferior a 5. 1055 00:48:02,380 --> 00:48:04,940 Entón, esta condición é só vai comprobar que cada vez. 1056 00:48:04,940 --> 00:48:07,120 Se esta condición avalía a realidade, é 1057 00:48:07,120 --> 00:48:11,162 vai realizar o código, que é exactamente o que este pequeno diagrama está amosando. 1058 00:48:11,162 --> 00:48:12,370 1059 00:48:12,370 --> 00:48:13,639 >> E así el executa-lo. 1060 00:48:13,639 --> 00:48:15,430 El actualiza unha variable, que é o que nos vemos 1061 00:48:15,430 --> 00:48:21,020 na última parte do noso para arranque de loop alí. 1062 00:48:21,020 --> 00:48:22,370 1063 00:48:22,370 --> 00:48:26,030 Por iso, só vou seguir facendo iso ata que esta condición non se responde, 1064 00:48:26,030 --> 00:48:28,010 e logo, ha saír o loop e seguir 1065 00:48:28,010 --> 00:48:29,960 seguir adiante co resto do seu programa. 1066 00:48:29,960 --> 00:48:31,320 1067 00:48:31,320 --> 00:48:33,620 Todos bo alí? 1068 00:48:33,620 --> 00:48:34,440 Legal. 1069 00:48:34,440 --> 00:48:37,780 >> Entón, aquí está un exemplo moi similar a algo que eu acabo de falar. 1070 00:48:37,780 --> 00:48:42,030 Entón, nós só quere imprimir este é o CS50 10 veces. 1071 00:48:42,030 --> 00:48:44,540 Entón ve, temos aquí noso para, a continuación, nos 1072 00:48:44,540 --> 00:48:47,450 arrincar a variable i para ser igual a 0. 1073 00:48:47,450 --> 00:48:50,610 A nosa condición é a comprobación que é menor que 10. 1074 00:48:50,610 --> 00:48:55,210 Así, avaliar a realidade cando primeiro iniciar, e logo actualiza a nosa variable 1075 00:48:55,210 --> 00:48:58,985 cada vez que realmente executa e imprime este é CS50. 1076 00:48:58,985 --> 00:49:00,510 1077 00:49:00,510 --> 00:49:02,180 E rematará tras 10 veces. 1078 00:49:02,180 --> 00:49:03,190 1079 00:49:03,190 --> 00:49:04,070 Legal. 1080 00:49:04,070 --> 00:49:07,130 >> Así, mentres loops son o próximo. 1081 00:49:07,130 --> 00:49:12,400 E como ve aquí, só temos algún tempo a esta pregunta condition--? 1082 00:49:12,400 --> 00:49:15,238 >> Audiencia: Como podo ir en realidade, só non un número, 1083 00:49:15,238 --> 00:49:19,030 pero dous números [inaudível] i plus plus plus? 1084 00:49:19,030 --> 00:49:23,390 >> ALLISON: Entón a cuestión é como pode actualizar a súa variable por máis dun 1085 00:49:23,390 --> 00:49:24,070 de cada vez. 1086 00:49:24,070 --> 00:49:26,860 Entón eu plus plus vontade actualización por un de cada vez. 1087 00:49:26,860 --> 00:49:32,310 Se quere actualiza-lo por dous, podería facer máis i é igual a 2. 1088 00:49:32,310 --> 00:49:34,526 >> ROB Bowden: Xa viu máis iguais en charla aínda? 1089 00:49:34,526 --> 00:49:35,442 >> Audiencia: [inaudível]. 1090 00:49:35,442 --> 00:49:37,440 1091 00:49:37,440 --> 00:49:42,110 >> ALLISON: É efectivamente o mesmo que i é igual a i + 2. 1092 00:49:42,110 --> 00:49:46,130 Entón, que vai leva-la e actualiza-lo por dous de cada vez. 1093 00:49:46,130 --> 00:49:49,432 Ademais, é igual é só algo chamamos azucre sintático. 1094 00:49:49,432 --> 00:49:52,390 ROB Bowden: Si, aqueles existen para practicamente todos os operadores aritméticos. 1095 00:49:52,390 --> 00:49:55,830 Veces para que eu igual a dobraría o número. 1096 00:49:55,830 --> 00:50:02,590 j fractura é igual a 3 é o mesmo como j é igual a j dividido por 3. 1097 00:50:02,590 --> 00:50:07,399 >> ALLISON: ou menos igual a 2 sería diminuír i por dous de cada vez. 1098 00:50:07,399 --> 00:50:08,565 ROB Bowden: Aínda iguais mod. 1099 00:50:08,565 --> 00:50:09,690 1100 00:50:09,690 --> 00:50:13,270 Aínda non viu operadores bit a bit, pero acento circunflexo é igual e comercial é igual, 1101 00:50:13,270 --> 00:50:14,560 todos os que existen. 1102 00:50:14,560 --> 00:50:19,480 >> ALLISON: Entón, unha morea de veces, sobre todo co seu primeiro par de conxuntos P, 1103 00:50:19,480 --> 00:50:22,527 vai ser, probablemente, incrementando por un, entón eu plus plus, j plus plus 1104 00:50:22,527 --> 00:50:24,610 son todas as cousas que vai para ser tipicamente utilizando. 1105 00:50:24,610 --> 00:50:28,240 Pero esa condición de actualización é totalmente baixo o seu control. 1106 00:50:28,240 --> 00:50:32,310 Pode actualiza-lo por calquera incrementos ou de forma que decidir. 1107 00:50:32,310 --> 00:50:33,389 1108 00:50:33,389 --> 00:50:35,680 Quizais aínda quere que sexa un número ao chou, por veces. 1109 00:50:35,680 --> 00:50:37,180 1110 00:50:37,180 --> 00:50:39,580 Pero si, hai moitas cousas que podes facer con iso. 1111 00:50:39,580 --> 00:50:41,280 Non está restrinxido a i plus plus. 1112 00:50:41,280 --> 00:50:44,400 >> ROB Bowden: Só ti sabe que existe, ela tamén 1113 00:50:44,400 --> 00:50:46,960 existe outra forma, máis máis eu. 1114 00:50:46,960 --> 00:50:51,410 Entón, se está sempre en busca en liña e pasar a ver plus plus i, 1115 00:50:51,410 --> 00:50:52,870 practicamente significa o mesmo. 1116 00:50:52,870 --> 00:50:54,377 1117 00:50:54,377 --> 00:50:54,960 ALLISON: Cool. 1118 00:50:54,960 --> 00:50:56,070 1119 00:50:56,070 --> 00:50:56,740 Boa? 1120 00:50:56,740 --> 00:50:57,240 Impresionante. 1121 00:50:57,240 --> 00:50:59,190 1122 00:50:59,190 --> 00:50:59,990 Así, mentres loops. 1123 00:50:59,990 --> 00:51:01,160 1124 00:51:01,160 --> 00:51:02,570 Moi semellante. 1125 00:51:02,570 --> 00:51:03,737 Ten algunha condición. 1126 00:51:03,737 --> 00:51:05,820 A principal cousa a notar aquí é no canto de ter 1127 00:51:05,820 --> 00:51:08,540 tres partes diferentes de configurar, temos un. 1128 00:51:08,540 --> 00:51:11,090 Nós só temos algunha condición que está a ser comprobado. 1129 00:51:11,090 --> 00:51:14,920 E, do mesmo xeito, mentres esta condición é avaliada como verdadeira, 1130 00:51:14,920 --> 00:51:16,840 seu código será executado. 1131 00:51:16,840 --> 00:51:18,870 E se é falso, terminará, movemento 1132 00:51:18,870 --> 00:51:21,930 á seguinte parte do seu programa. 1133 00:51:21,930 --> 00:51:25,780 Polo tanto, este é o tipo de como-- o que é un bo exemplo de busca 1134 00:51:25,780 --> 00:51:27,215 por algunha condición normal? 1135 00:51:27,215 --> 00:51:29,402 1136 00:51:29,402 --> 00:51:30,235 GABRIEL: Mentres verdade. 1137 00:51:30,235 --> 00:51:32,110 ALLISON: Podería facer mentres certo. 1138 00:51:32,110 --> 00:51:33,510 Ben, 1 é igual a 1. 1139 00:51:33,510 --> 00:51:34,970 1140 00:51:34,970 --> 00:51:37,642 >> ROB Bowden: Pode facer while-- só en vez de usar un loop for, 1141 00:51:37,642 --> 00:51:39,600 sempre pode codificar un loop en un loop while, 1142 00:51:39,600 --> 00:51:42,600 entón eu maior que 0 ou mentres i menor que 10. 1143 00:51:42,600 --> 00:51:45,200 1144 00:51:45,200 --> 00:51:46,010 >> ALLISON: Awesome. 1145 00:51:46,010 --> 00:51:50,640 E entón nós facer mentres loops, que é óptimo para validación do usuario, onde 1146 00:51:50,640 --> 00:51:55,370 quere obter algo de seu usuario, ver se é válido, 1147 00:51:55,370 --> 00:51:57,060 e, a continuación, continuar a partir de aí. 1148 00:51:57,060 --> 00:52:04,000 Entón, unha das cousas que debes saber é cun facer mentres é que está indo a executar, 1149 00:52:04,000 --> 00:52:08,000 e logo que vai volver a executar se esta condición sexa satisfeita. 1150 00:52:08,000 --> 00:52:11,240 >> Entón, probablemente a mellor forma de facelo é só para ver un exemplo aquí. 1151 00:52:11,240 --> 00:52:14,620 Entón, como mencionei, o usuario validación é realmente useful-- 1152 00:52:14,620 --> 00:52:17,520 ou facer while son realmente útil coa validación do usuario. 1153 00:52:17,520 --> 00:52:19,730 Entón, iso é só ir para re-solicitar algún usuario 1154 00:52:19,730 --> 00:52:23,640 ata que introduza un número positivo, que pode ser útil para o seu conxunto P 1155 00:52:23,640 --> 00:52:24,190 esta semana. 1156 00:52:24,190 --> 00:52:25,850 1157 00:52:25,850 --> 00:52:29,480 E así, neste caso, cando inicialmente realizar este programa, 1158 00:52:29,480 --> 00:52:32,260 vai imprimir escriba un número positivo. 1159 00:52:32,260 --> 00:52:34,810 El se ve algúns entrada desde o usuario, 1160 00:52:34,810 --> 00:52:38,320 e logo, que vai comprobar que a entrada contra a condición 1161 00:52:38,320 --> 00:52:39,500 que marcou para el. 1162 00:52:39,500 --> 00:52:41,030 >> Polo tanto, neste caso vai comprobar. 1163 00:52:41,030 --> 00:52:44,190 El vai dicir, OK, é a nosa entrada negativa, 1164 00:52:44,190 --> 00:52:47,175 ou é 0 ou negativo, o que sería incorrecto. 1165 00:52:47,175 --> 00:52:48,300 Así, pois, re-aviso. 1166 00:52:48,300 --> 00:52:50,280 1167 00:52:50,280 --> 00:52:50,780 Pregunta? 1168 00:52:50,780 --> 00:52:54,720 >> Audiencia: Este é o mesmo, a continuación, como un while se acaba de copiar este código 1169 00:52:54,720 --> 00:52:56,680 e poñelas [inaudível] mentres loop? 1170 00:52:56,680 --> 00:52:59,620 1171 00:52:59,620 --> 00:53:05,160 >> ALLISON: Entón pregunta era faría este ser o mesmo que dun tempo 1172 00:53:05,160 --> 00:53:08,570 loop se fósemos só copiar o loop while anterior. 1173 00:53:08,570 --> 00:53:12,440 Polo tanto, neste caso, o loop while é indo para comprobar a condición de primeira. 1174 00:53:12,440 --> 00:53:15,300 Polo tanto, neste caso, se tentásemos escribir só como un loop while, 1175 00:53:15,300 --> 00:53:18,010 diría mentres entrada de ser menor que un. 1176 00:53:18,010 --> 00:53:20,801 Pero non temos unha entrada para el. 1177 00:53:20,801 --> 00:53:24,238 >> Audiencia: Se [inaudível] while incluíndo este código, 1178 00:53:24,238 --> 00:53:28,166 pero entón lidou o código enriba do loop while tamén. 1179 00:53:28,166 --> 00:53:31,052 Só tiña este código [Inaudível] mentres loop. 1180 00:53:31,052 --> 00:53:32,760 ALLISON: Sería o mesmo, si. 1181 00:53:32,760 --> 00:53:37,110 Entón, vostede podería só write-- en vez de ter un si fazer--. 1182 00:53:37,110 --> 00:53:37,976 1183 00:53:37,976 --> 00:53:39,350 GABRIEL: Pero iso é máis elegante. 1184 00:53:39,350 --> 00:53:41,020 ALLISON: Si, iso é máis elegante. 1185 00:53:41,020 --> 00:53:44,560 Pode poñerse en proxecto e outros enfeites, mais si, pode facelo totalmente. 1186 00:53:44,560 --> 00:53:45,850 1187 00:53:45,850 --> 00:53:47,072 Algunha pregunta? 1188 00:53:47,072 --> 00:53:49,240 1189 00:53:49,240 --> 00:53:50,250 OK, legal. 1190 00:53:50,250 --> 00:53:55,540 >> Entón, nós falamos moito sobre as condicións con todos eses lazos que temos, 1191 00:53:55,540 --> 00:53:58,615 polo que estamos realmente ficando en condicións en expresións booleanas. 1192 00:53:58,615 --> 00:53:59,990 1193 00:53:59,990 --> 00:54:03,440 De novo, vostede usalos en C, así só unha especie de transición 1194 00:54:03,440 --> 00:54:06,050 a partir de máis de interface gráfica de feito, a codificación. 1195 00:54:06,050 --> 00:54:07,480 1196 00:54:07,480 --> 00:54:09,100 >> Cool, tan grande, se. 1197 00:54:09,100 --> 00:54:11,130 1198 00:54:11,130 --> 00:54:17,070 Basicamente só nos permite introducir algunha lóxica no noso programa e comprobación 1199 00:54:17,070 --> 00:54:17,790 condicións SYS. 1200 00:54:17,790 --> 00:54:22,150 Polo tanto, neste caso, OK, n é maior que 0? 1201 00:54:22,150 --> 00:54:24,070 Si, é, para que poida realizar esta. 1202 00:54:24,070 --> 00:54:28,060 É só comprobar algúns condición que ten 1203 00:54:28,060 --> 00:54:33,565 definido, o que eu creo que todos estamos cómodo coas condicións de verificación. 1204 00:54:33,565 --> 00:54:35,975 1205 00:54:35,975 --> 00:54:36,475 Legal. 1206 00:54:36,475 --> 00:54:38,760 1207 00:54:38,760 --> 00:54:44,530 Entón, se o resto é o outro, pode dicir OK, se isto é certo, 1208 00:54:44,530 --> 00:54:46,150 facelo primeiro. 1209 00:54:46,150 --> 00:54:48,720 Se non, quero que estándar e facer outra cousa. 1210 00:54:48,720 --> 00:54:51,977 1211 00:54:51,977 --> 00:54:55,060 Como neste caso, quere escoller un número positivo ou un número negativo. 1212 00:54:55,060 --> 00:54:56,500 Só ten dúas opcións. 1213 00:54:56,500 --> 00:54:59,550 Debe del para realizar con independencia de que as súas entradas do usuario. 1214 00:54:59,550 --> 00:55:02,920 Entón pode dicir así, é maior que 0? 1215 00:55:02,920 --> 00:55:03,480 Legal. 1216 00:55:03,480 --> 00:55:04,480 Imprimir un número positivo. 1217 00:55:04,480 --> 00:55:06,153 Se non é, imprimir unha negativa. 1218 00:55:06,153 --> 00:55:06,960 Todo o mundo bo? 1219 00:55:06,960 --> 00:55:14,920 >> E entón unha cousa a recoñecer é que se o que a condición se cumpre, 1220 00:55:14,920 --> 00:55:16,650 o outro non vai tamén realizar. 1221 00:55:16,650 --> 00:55:19,210 Só unha delas pode executar á vez. 1222 00:55:19,210 --> 00:55:20,410 Polo tanto, é un trade off. 1223 00:55:20,410 --> 00:55:21,720 Non consegue ter tanto. 1224 00:55:21,720 --> 00:55:23,566 Quere ter a primeira condición. 1225 00:55:23,566 --> 00:55:25,440 Quere ter a ou a outra persoa, non ambos. 1226 00:55:25,440 --> 00:55:26,849 1227 00:55:26,849 --> 00:55:28,890 Que, entón, pode facer as cousas aínda máis complicada, 1228 00:55:28,890 --> 00:55:31,060 porque pode facer se, senón el, e despois o resto. 1229 00:55:31,060 --> 00:55:32,810 Polo tanto, neste caso, nos temos tres condicións. 1230 00:55:32,810 --> 00:55:34,830 1231 00:55:34,830 --> 00:55:38,370 E, de novo, só un deles é vai acabar sendo executado. 1232 00:55:38,370 --> 00:55:41,030 Entón pode estar se pregunta ben, o que se 1233 00:55:41,030 --> 00:55:45,510 ten algo que satisfai dous destes. 1234 00:55:45,510 --> 00:55:49,520 Quizais o que está introducindo atende tanto a condición 1235 00:55:49,520 --> 00:55:51,811 para eo else if. 1236 00:55:51,811 --> 00:55:53,060 O único que vai funcionar 1237 00:55:53,060 --> 00:55:56,240 >> ALLISON: Así que atopa algo que cumpre a condición para que 1238 00:55:56,240 --> 00:55:59,790 avalía a realidade, é o que vai correr e nada máis. 1239 00:55:59,790 --> 00:56:04,440 Entón, se tivo é ese número entre 0 e 5 para o primeiro, 1240 00:56:04,440 --> 00:56:10,530 ou é ese número entre 3 e 5 para o outro parte, 1241 00:56:10,530 --> 00:56:15,550 e introducir o number-- Eu dixen 0 e 5 e- 4. 1242 00:56:15,550 --> 00:56:18,110 Vai bater o primeiro. 1243 00:56:18,110 --> 00:56:20,960 El vai dicir OK, este é número entre 0 e 5. 1244 00:56:20,960 --> 00:56:22,480 Executar e saír. 1245 00:56:22,480 --> 00:56:25,340 Iso nunca vai bater esa segunda opción. 1246 00:56:25,340 --> 00:56:26,394 Legal? 1247 00:56:26,394 --> 00:56:27,250 Impresionante. 1248 00:56:27,250 --> 00:56:31,300 >> OK, tamén temos de rede declaracións se quere ir aínda more-- ou moito, 1249 00:56:31,300 --> 00:56:31,965 interruptor é o seguinte. 1250 00:56:31,965 --> 00:56:33,540 1251 00:56:33,540 --> 00:56:34,990 Estou me adiantando aquí. 1252 00:56:34,990 --> 00:56:36,370 1253 00:56:36,370 --> 00:56:39,210 Unha vez máis, se múltiples bloques onde, como eu acaba de dicir 1254 00:56:39,210 --> 00:56:45,600 é así que atopar unha condición que coñeceu e se unha persoa se máis, 1255 00:56:45,600 --> 00:56:46,630 el deixa. 1256 00:56:46,630 --> 00:56:49,560 Se precisa comprobar varias cousas, é 1257 00:56:49,560 --> 00:56:53,000 Vai querer usar isto porque ha comprobar todo tempo aquí. 1258 00:56:53,000 --> 00:56:58,060 Polo tanto, este será executado a través de e se que é maior que ou igual a 90, 1259 00:56:58,060 --> 00:56:59,160 que vai imprimir iso. 1260 00:56:59,160 --> 00:57:00,530 1261 00:57:00,530 --> 00:57:03,600 E el será executado a través de e comprobar cada unha delas. 1262 00:57:03,600 --> 00:57:06,444 >> Audiencia: Entón iso sería máis erros que [inaudível]. 1263 00:57:06,444 --> 00:57:07,735 Será que isto é como o [inaudível]? 1264 00:57:07,735 --> 00:57:10,990 1265 00:57:10,990 --> 00:57:15,740 >> ALLISON: A cuestión é que isto sería buggy ou que iso fai o que quere. 1266 00:57:15,740 --> 00:57:19,830 Ela realmente depende do que quere do seu programa. 1267 00:57:19,830 --> 00:57:22,291 >> Audiencia: Quero dicir, como se pór 90 en. 1268 00:57:22,291 --> 00:57:23,290 ALLISON: Se pór 90-- 1269 00:57:23,290 --> 00:57:24,206 Audiencia: [inaudível]. 1270 00:57:24,206 --> 00:57:25,584 1271 00:57:25,584 --> 00:57:27,250 GABRIEL: Vai conseguir dúas cousas. 1272 00:57:27,250 --> 00:57:28,916 ALLISON: Vai conseguir dúas cousas. 1273 00:57:28,916 --> 00:57:29,420 Si, dous. 1274 00:57:29,420 --> 00:57:32,420 1275 00:57:32,420 --> 00:57:33,920 >> ROB Bowden: Dous? 1276 00:57:33,920 --> 00:57:34,580 >> ALLISON: Non. 1277 00:57:34,580 --> 00:57:35,288 >> ROB Bowden: Four. 1278 00:57:35,288 --> 00:57:37,070 1279 00:57:37,070 --> 00:57:40,070 Se pór 90, que vai dicir que teño un A, ten un B, ten un C, 1280 00:57:40,070 --> 00:57:40,545 ten un D. 1281 00:57:40,545 --> 00:57:41,461 >> Audiencia: [inaudível]. 1282 00:57:41,461 --> 00:57:42,196 1283 00:57:42,196 --> 00:57:42,820 ALLISON: Certo. 1284 00:57:42,820 --> 00:57:44,778 Entón eu depende do que quero de ti programa. 1285 00:57:44,778 --> 00:57:47,050 Ás veces ten que comprobar varias cousas. 1286 00:57:47,050 --> 00:57:49,970 1287 00:57:49,970 --> 00:57:55,270 Terá moito máis profunda do que bo deseño é como ir á fronte. 1288 00:57:55,270 --> 00:57:57,090 A cousa importante a entender é que esta 1289 00:57:57,090 --> 00:58:01,090 pode comprobar todos os catro condicións aquí. 1290 00:58:01,090 --> 00:58:05,860 Considerando que, se este fose un caso máis se outra persoa se máis, el atinxiría ese primeiro caso, 1291 00:58:05,860 --> 00:58:07,950 que iría imprimir tes un A e ser feito. 1292 00:58:07,950 --> 00:58:10,250 >> ROB Bowden: Mesmo se nós decidiu cambiar isto para 1293 00:58:10,250 --> 00:58:13,880 e maior que ou igual a 90, se e maior ou igual a 80, 1294 00:58:13,880 --> 00:58:19,710 e menos que ou igual a 89, se n maior que ou igual a 70, 1295 00:58:19,710 --> 00:58:23,830 e n menos que ou igual a 79, de xeito que será correcta. 1296 00:58:23,830 --> 00:58:27,190 Isto vai facer o que queremos, pero inda verifica cada el. 1297 00:58:27,190 --> 00:58:34,050 >> Así, mentres que no primeiro escenario, se nós introducir 90 con só se else if else if, 1298 00:58:34,050 --> 00:58:37,300 e entramos 90, entón vai corrixir. 1299 00:58:37,300 --> 00:58:39,615 El pode comprobar a primeira un, de impresión que ten un A, 1300 00:58:39,615 --> 00:58:42,590 ignorar todo, porque xa atopei un que funciona. 1301 00:58:42,590 --> 00:58:46,360 Todos os casos son mutuamente exclusivos en base a se else if else if. 1302 00:58:46,360 --> 00:58:48,630 Entón, que vai executar o primeiro caso, el está feito. 1303 00:58:48,630 --> 00:58:49,790 Vai ata o final. 1304 00:58:49,790 --> 00:58:52,400 >> Considerando que, se mudarmos este é o que eu era 1305 00:58:52,400 --> 00:58:54,204 dicindo con menos que ou igual a 89. 1306 00:58:54,204 --> 00:58:55,620 Vai comprobar a primeira. 1307 00:58:55,620 --> 00:58:56,560 Vai imprimir. 1308 00:58:56,560 --> 00:58:58,010 Vai comprobar a segunda. 1309 00:58:58,010 --> 00:58:59,010 Non vai imprimir. 1310 00:58:59,010 --> 00:58:59,910 Consulte o terceiro. 1311 00:58:59,910 --> 00:59:00,620 Non vai imprimir. 1312 00:59:00,620 --> 00:59:01,495 Consulte o cuarto. 1313 00:59:01,495 --> 00:59:02,420 Agora vai imprimir. 1314 00:59:02,420 --> 00:59:05,380 Entón, nese caso, o outro se versión, xa que estes casos 1315 00:59:05,380 --> 00:59:09,120 son mutuamente exclusivos, é mellor uso se else if else if, 1316 00:59:09,120 --> 00:59:12,970 porque iso vai ter menos comprobacións das condicións 1317 00:59:12,970 --> 00:59:14,750 que esta versión. 1318 00:59:14,750 --> 00:59:17,692 1319 00:59:17,692 --> 00:59:18,400 ALLISON: Awesome. 1320 00:59:18,400 --> 00:59:20,580 Así, outra cousa que pudermos facer é instrucións switch. 1321 00:59:20,580 --> 00:59:23,104 1322 00:59:23,104 --> 00:59:25,270 Basicamente un switch leva nalgúns variable, 1323 00:59:25,270 --> 00:59:28,780 neste caso é n, e determina que se a executar. 1324 00:59:28,780 --> 00:59:33,106 Polo tanto, este é tamén un onde os seus casos debe ser unha especie de mutuamente excluíntes. 1325 00:59:33,106 --> 00:59:35,210 1326 00:59:35,210 --> 00:59:37,940 Polo tanto, neste caso, se temos un, que é 1327 00:59:37,940 --> 00:59:42,270 vai coincidir co que iso variable-- sexa cal sexa o valor de n 1328 00:59:42,270 --> 00:59:48,700 é un deses casos, de xeito 1, 2, ou 3, e imprimir a liña correspondente. 1329 00:59:48,700 --> 00:59:51,870 >> E entón, se observar aquí, nós tamén temos un defecto, 1330 00:59:51,870 --> 00:59:54,670 que pode pensar de como a súa máis. 1331 00:59:54,670 --> 00:59:58,510 Entón, se incorporarse calquera outro número ademais de 1, 2, e 3, neste caso 1332 00:59:58,510 --> 00:59:59,885 el só vai imprimir válido. 1333 00:59:59,885 --> 01:00:03,690 1334 01:00:03,690 --> 01:00:08,390 Decidir cando usar IFS contra se elses contra interruptores vai 1335 01:00:08,390 --> 01:00:12,590 ser algo que vostedes van Vexa o deseño intelixente como comezar a escribir 1336 01:00:12,590 --> 01:00:15,270 programas máis complicados, e Non hai regras ríxidas e rápidas 1337 01:00:15,270 --> 01:00:16,330 de cando usalos. 1338 01:00:16,330 --> 01:00:17,890 Realmente depende do seu contexto. 1339 01:00:17,890 --> 01:00:18,590 >> ROB Bowden: E só xoga-lo alí fóra 1340 01:00:18,590 --> 01:00:20,131 xa que é a sección máis cómodo. 1341 01:00:20,131 --> 01:00:20,920 1342 01:00:20,920 --> 01:00:25,053 Switches, eles tenden a ser-- entón está limitado 1343 01:00:25,053 --> 01:00:27,430 no número de formas que pode usalos, porque IFS, 1344 01:00:27,430 --> 01:00:30,100 a condición pode ser moi calquera cousa que quere. 1345 01:00:30,100 --> 01:00:33,410 Con cambia os casos han de ser números, 1346 01:00:33,410 --> 01:00:37,770 ou tecnicamente poden ser caracteres, pero caracteres, como veremos, son números só. 1347 01:00:37,770 --> 01:00:44,250 Entón, eles teñen que ser números, pero interruptores son realmente máis eficiente do que se 1348 01:00:44,250 --> 01:00:50,060 else if else if, porque aínda tomando o exemplo antes-- ben, 1349 01:00:50,060 --> 01:00:51,486 o exemplo de grao parece bo. 1350 01:00:51,486 --> 01:00:52,550 1351 01:00:52,550 --> 01:00:57,080 >> Ben, digamos que aquí, nós en vez facer isto como unha se else if else if escenario. 1352 01:00:57,080 --> 01:01:00,930 Así, se n é igual é igual a 1, imprimir escolleu un número baixo. 1353 01:01:00,930 --> 01:01:04,490 Se outra persoa se n é igual a igual a 2, escolleu un número medio. 1354 01:01:04,490 --> 01:01:06,550 Else if iguais é igual a 3, de alta. 1355 01:01:06,550 --> 01:01:08,060 Else válido. 1356 01:01:08,060 --> 01:01:09,820 >> Entón, imos dicir que foi o noso escenario. 1357 01:01:09,820 --> 01:01:14,060 Entón, digamos que entramos 4, polo que esperamos válido. 1358 01:01:14,060 --> 01:01:17,410 O xeito que máis se outra persoa Se visión funcionará se 1359 01:01:17,410 --> 01:01:18,740 verifica a primeira condición. 1360 01:01:18,740 --> 01:01:19,776 Non está satisfeito. 1361 01:01:19,776 --> 01:01:21,150 Por iso, comprobe a segunda condición. 1362 01:01:21,150 --> 01:01:21,940 Non está satisfeito. 1363 01:01:21,940 --> 01:01:23,023 Consulte a terceira condición. 1364 01:01:23,023 --> 01:01:23,640 Non satisfeito. 1365 01:01:23,640 --> 01:01:26,650 Entón imos para a outra persoa e imprimir válido. 1366 01:01:26,650 --> 01:01:30,169 >> A forma como as obras de rede é el compila abaixo 1367 01:01:30,169 --> 01:01:31,960 en que imos para chamar a unha mesa de salto. 1368 01:01:31,960 --> 01:01:33,180 1369 01:01:33,180 --> 01:01:37,120 A idea principal é que cando entra 4, 1370 01:01:37,120 --> 01:01:39,090 pode ir inmediatamente para o estándar. 1371 01:01:39,090 --> 01:01:41,460 Non ten que comprobar am I caso 1? 1372 01:01:41,460 --> 01:01:42,350 Nope non é iso. 1373 01:01:42,350 --> 01:01:42,850 Caso 2? 1374 01:01:42,850 --> 01:01:43,240 Non. 1375 01:01:43,240 --> 01:01:43,770 Se 3? 1376 01:01:43,770 --> 01:01:44,270 Non. 1377 01:01:44,270 --> 01:01:45,090 Defecto. 1378 01:01:45,090 --> 01:01:47,610 OK, este debe ser o lugar onde eu quere, e logo realizar iso. 1379 01:01:47,610 --> 01:01:49,590 Non, salta inmediatamente para o estándar. 1380 01:01:49,590 --> 01:01:51,900 Ou eu entro 2, é inmediatamente indo a ir ao 2 1381 01:01:51,900 --> 01:01:54,060 sen necesidade de pasar por un caso. 1382 01:01:54,060 --> 01:01:57,820 >> Así, deste xeito, realista hoxe en día iso é 1383 01:01:57,820 --> 01:02:00,250 Non moito dun ganancia de eficiencia. 1384 01:02:00,250 --> 01:02:02,880 Normalmente, os ordenadores son moi rápido, e iso non é tan grande. 1385 01:02:02,880 --> 01:02:07,270 Pero é o caso que interruptores son máis rápidos. 1386 01:02:07,270 --> 01:02:10,380 Se está realmente intentando para optimizar, usar un switch. 1387 01:02:10,380 --> 01:02:11,980 1388 01:02:11,980 --> 01:02:12,710 >> ALLISON: Cool. 1389 01:02:12,710 --> 01:02:15,270 E despois temos operador ternário. 1390 01:02:15,270 --> 01:02:19,470 Entón eu sei que eu mencionen anteriormente a palabra azucre sintático. 1391 01:02:19,470 --> 01:02:24,160 Entón é só cousas que fan seu código moito máis conciso. 1392 01:02:24,160 --> 01:02:25,590 Polo tanto, este é un deses casos. 1393 01:02:25,590 --> 01:02:31,430 >> Entón operador ternário é punto de interrogación colonos, como vemos na secuencia de liña 1394 01:02:31,430 --> 01:02:35,810 s é igual a n maior que 100 punto de interrogação abaixo alto colonos. 1395 01:02:35,810 --> 01:02:41,800 Entón, basicamente, como funciona isto é que é an maior que 100 é unha condición. 1396 01:02:41,800 --> 01:02:43,674 Entón eu creo que pode ter sentido. 1397 01:02:43,674 --> 01:02:44,840 É como facer unha pregunta. 1398 01:02:44,840 --> 01:02:47,320 É dicir oh, é n superior a 100. 1399 01:02:47,320 --> 01:02:48,340 Quen sabe? 1400 01:02:48,340 --> 01:02:50,750 E se é o avaliado como verdade, que vai darlle 1401 01:02:50,750 --> 01:02:54,270 o primeiro que se listados alí, que é alta. 1402 01:02:54,270 --> 01:02:55,840 Se non, que vai lle dar baixa. 1403 01:02:55,840 --> 01:03:01,210 Polo tanto, este é só un realmente simple e xeito eficiente de facer como unha persoa se. 1404 01:03:01,210 --> 01:03:02,780 Isto é todo o que é iso. 1405 01:03:02,780 --> 01:03:07,450 >> E se fósemos escribir este como se outra persoa condicional, 1406 01:03:07,450 --> 01:03:12,480 sería se n é maior de 100, o regreso alto. 1407 01:03:12,480 --> 01:03:14,220 Se non, voltar abaixo. 1408 01:03:14,220 --> 01:03:17,570 Este é só un moito máis forma concisa de escribilo. 1409 01:03:17,570 --> 01:03:27,090 >> ROB Bowden: Entón ese exemplo específico sempre que está facendo algo 1410 01:03:27,090 --> 01:03:30,190 así, este é o estándar onde eu uso ternário con moita frecuencia. 1411 01:03:30,190 --> 01:03:31,540 1412 01:03:31,540 --> 01:03:35,460 Entón, nós non falamos de ámbito aínda pero eu odio ver punto e coma cadea s. 1413 01:03:35,460 --> 01:03:39,150 Se n superior a 100, s é igual a alta. 1414 01:03:39,150 --> 01:03:40,660 Else, s é igual a abaixo. 1415 01:03:40,660 --> 01:03:45,070 Así que o estándar, estas cinco liñas de código, literalmente, 100% do tempo 1416 01:03:45,070 --> 01:03:49,800 pode ser trasladado para o estaba alí enriba cun ternário. 1417 01:03:49,800 --> 01:03:52,340 Así, o ternário, unha liña de código. 1418 01:03:52,340 --> 01:03:54,640 O caso máis, cinco. 1419 01:03:54,640 --> 01:03:56,910 Isto é un exemplo que eu apuntar cada vez. 1420 01:03:56,910 --> 01:03:59,250 Iso sería excelente lugar para un operador ternário. 1421 01:03:59,250 --> 01:04:00,647 É tan limpo. 1422 01:04:00,647 --> 01:04:01,980 Pero as persoas tenden a non usalo. 1423 01:04:01,980 --> 01:04:06,140 1424 01:04:06,140 --> 01:04:08,030 >> ALLISON: Leve aínda Gabe. 1425 01:04:08,030 --> 01:04:11,110 >> GABRIEL: Entón agora vostedes todos aprendido en clase esta semana 1426 01:04:11,110 --> 01:04:13,420 que todo nunha ordenador é binario, non? 1427 01:04:13,420 --> 01:04:14,570 Así como as lámpadas aquí. 1428 01:04:14,570 --> 01:04:16,492 Pode ser conectado e apagado. 1429 01:04:16,492 --> 01:04:18,450 E por todo, quero dicir literalmente todo. 1430 01:04:18,450 --> 01:04:24,272 Algúns números e caracteres e cadeas, e mesmo o código que escribe cando 1431 01:04:24,272 --> 01:04:26,480 el está feita a máquina código e cousas así, 1432 01:04:26,480 --> 01:04:29,230 por iso, todo se reduce a 0 e 1 ". 1433 01:04:29,230 --> 01:04:34,540 >> E así, cando estamos lidando con números enteiros, os cales 1434 01:04:34,540 --> 01:04:38,000 é algo que é tecnicamente moi simple, que debe ser capaz de facer cousas 1435 01:04:38,000 --> 01:04:40,630 como engadila los, o que é probablemente unha das cousas máis simples 1436 01:04:40,630 --> 01:04:42,300 podes facer para dous enteiros, non? 1437 01:04:42,300 --> 01:04:47,410 Así, a suma ea resta funciona como funciona en notación decimal, 1438 01:04:47,410 --> 01:04:50,780 excepto aquí é binario, non? 1439 01:04:50,780 --> 01:04:52,090 Por iso, é na base dúas. 1440 01:04:52,090 --> 01:04:54,070 Entón engade 1 máis 1. 1441 01:04:54,070 --> 01:04:57,020 Isto dá a 0, e 1 transporta máis. 1442 01:04:57,020 --> 01:05:01,335 E só continuar facendo iso, entón agora vén a pregunta máis interesante. 1443 01:05:01,335 --> 01:05:03,730 1444 01:05:03,730 --> 01:05:07,710 >> Sabemos como representar todos números enteiros positivos, no que o ordenador 1445 01:05:07,710 --> 01:05:09,870 pero imos facer este exercicio. 1446 01:05:09,870 --> 01:05:15,240 Finxa que vostedes están todos en 1960 ou algo intentando crear un ordenador, 1447 01:05:15,240 --> 01:05:19,950 e ten que vir enriba de unha forma de almacenar menos 1, 1448 01:05:19,950 --> 01:05:22,554 por exemplo, ou calquera menos enteiro para este asunto. 1449 01:05:22,554 --> 01:05:23,470 Como faría iso? 1450 01:05:23,470 --> 01:05:27,820 1451 01:05:27,820 --> 01:05:29,220 Calquera ideas? 1452 01:05:29,220 --> 01:05:31,302 Só ten que xogar algo en min. 1453 01:05:31,302 --> 01:05:32,264 Si? 1454 01:05:32,264 --> 01:05:39,480 >> Audiencia: [inaudível] designar unha especial se a súa [inaudível]. 1455 01:05:39,480 --> 01:05:42,590 >> GABRIEL: Pode designar unha pouco especial, que pode ser 0 ou 1. 1456 01:05:42,590 --> 01:05:45,590 Imos dicir que un se é positivo e 0 se é o negativo. 1457 01:05:45,590 --> 01:05:48,171 E, a continuación, o resto do bit é só para almacenar o número. 1458 01:05:48,171 --> 01:05:48,670 Legal. 1459 01:05:48,670 --> 01:05:49,990 Entón, iso é unha idea moi boa. 1460 01:05:49,990 --> 01:05:51,550 Temos, eu non sei, 200. 1461 01:05:51,550 --> 01:05:54,720 E se o primeiro bit é ligado, entón é máis 200. 1462 01:05:54,720 --> 01:05:57,270 Se está desactivado, é de menos de 200. 1463 01:05:57,270 --> 01:05:58,380 Legal. 1464 01:05:58,380 --> 01:06:01,350 >> Só hai un pequeno con este problema, 1465 01:06:01,350 --> 01:06:05,370 que é, se intentamos resumir as cousas. 1466 01:06:05,370 --> 01:06:18,910 Entón, imaxine que temos 11111 aquí, e estamos sumando isto con 00100 o que quere. 1467 01:06:18,910 --> 01:06:21,630 Se os dous sexan positivos, iso é bo. 1468 01:06:21,630 --> 01:06:24,470 Pero, entón, un dos eles é negativo, como 1469 01:06:24,470 --> 01:06:27,410 imos dicir que este pouco aquí é aquel que é responsable 1470 01:06:27,410 --> 01:06:31,390 for-- eu vou facer unha separate-- así que este significa que este número aquí 1471 01:06:31,390 --> 01:06:31,970 é positivo. 1472 01:06:31,970 --> 01:06:34,450 Isto significa que unha esta número aquí é negativo, non? 1473 01:06:34,450 --> 01:06:37,010 >> Pero, entón, cando está indo suma-los, 1474 01:06:37,010 --> 01:06:40,180 precisa dunha instrución if dicindo Oh se isto é 0, 1475 01:06:40,180 --> 01:06:43,479 entón meu suma será algo diferente, non? 1476 01:06:43,479 --> 01:06:45,270 Polo tanto, hai algo máis intelixente forma de facer 1477 01:06:45,270 --> 01:06:48,520 que, o que se chama complemento de dous. 1478 01:06:48,520 --> 01:06:52,350 Entón, basicamente o que nós facer é definirmos menos 1 1479 01:06:52,350 --> 01:06:57,250 ser a cousa que se sumarmos a 1 dános 0. 1480 01:06:57,250 --> 01:06:59,470 1481 01:06:59,470 --> 01:07:00,860 Deixe-me repetir iso. 1482 01:07:00,860 --> 01:07:03,280 Entón, imos dicir que iso aquí é un. 1483 01:07:03,280 --> 01:07:08,110 1484 01:07:08,110 --> 01:07:13,570 Cal é a cousa que naturalmente en enteiros positivos 1485 01:07:13,570 --> 01:07:15,570 engadido ao que nos dá 0? 1486 01:07:15,570 --> 01:07:19,150 1487 01:07:19,150 --> 01:07:21,030 E se a xente tentar engadir lo a este número? 1488 01:07:21,030 --> 01:07:22,830 1489 01:07:22,830 --> 01:07:28,032 Estamos indo have-- OK, entón imos engadir. 1490 01:07:28,032 --> 01:07:32,820 1491 01:07:32,820 --> 01:07:38,065 Nós imos ter 1 máis 1 é 0, e logo el leva. 1492 01:07:38,065 --> 01:07:40,160 1493 01:07:40,160 --> 01:07:45,490 E entón nós estamos indo a obter 0 novo. 1494 01:07:45,490 --> 01:07:47,730 1495 01:07:47,730 --> 01:07:48,820 Estou quedando confuso. 1496 01:07:48,820 --> 01:07:51,670 E está indo a obter 0 e 0 e 0, 0, 0, 0. 1497 01:07:51,670 --> 01:07:52,450 Lotes de 0 do. 1498 01:07:52,450 --> 01:07:56,240 >> No último, non estamos vai ser capaz de leva-lo máis, 1499 01:07:56,240 --> 01:07:59,614 porque imos dicir que estamos lidando só cun byte, entón só 8 bits. 1500 01:07:59,614 --> 01:08:02,780 Entón, o que o ordenador fai por defecto é só se esquece de que [inaudível] 1501 01:08:02,780 --> 01:08:03,279 Ok? 1502 01:08:03,279 --> 01:08:04,530 1503 01:08:04,530 --> 01:08:06,880 Entón é iso que se chama complemento de dous. 1504 01:08:06,880 --> 01:08:15,180 Nós simplemente definir menos 1 para ser o cousa aquí que se engadir que para un 1505 01:08:15,180 --> 01:08:15,995 lle daría 0. 1506 01:08:15,995 --> 01:08:17,609 1507 01:08:17,609 --> 01:08:20,180 E iso é moi legal porque realmente non 1508 01:08:20,180 --> 01:08:24,090 precisan tarde para aplicar un tipo de suma 1509 01:08:24,090 --> 01:08:26,590 dependendo se é un negativo ou un número positivo. 1510 01:08:26,590 --> 01:08:27,465 Será que isto ten sentido? 1511 01:08:27,465 --> 01:08:28,740 1512 01:08:28,740 --> 01:08:32,370 >> Entón, unha cousa que nós facemos aquí, a fin de converterse 1513 01:08:32,370 --> 01:08:38,550 entre un positivo e un negativo enteiro é entón jogarmos todo, 1514 01:08:38,550 --> 01:08:40,930 e, entón, engade 1 a ese número. 1515 01:08:40,930 --> 01:08:43,140 Se tentar facelo só sobre un anaco de papel, 1516 01:08:43,140 --> 01:08:44,681 vai ver que ten sentido. 1517 01:08:44,681 --> 01:08:51,000 Pero se eu tomar ese número aquí, este é cinco. 1518 01:08:51,000 --> 01:08:54,859 Entón, se eu Xire todo aquí, polo tanto, 1, 1, 1, 1, 1. 1519 01:08:54,859 --> 01:08:55,880 1520 01:08:55,880 --> 01:08:57,830 Virar, flip, flip. 1521 01:08:57,830 --> 01:09:00,130 E entón eu podo engadir un a el. 1522 01:09:00,130 --> 01:09:02,750 Vou ter exactamente menos 5. 1523 01:09:02,750 --> 01:09:03,250 Ok? 1524 01:09:03,250 --> 01:09:06,220 >> Este tipo de ten sentido, porque se tentar resumir iso co número de 1525 01:09:06,220 --> 01:09:10,229 que tiñamos antes, o que foi-- imos virar iso de novo. 1526 01:09:10,229 --> 01:09:12,999 Era 101 e moita 0 do. 1527 01:09:12,999 --> 01:09:13,795 1528 01:09:13,795 --> 01:09:15,670 Se tentar engadila los dous números xuntos, 1529 01:09:15,670 --> 01:09:16,961 vai ter exactamente 0. 1530 01:09:16,961 --> 01:09:18,920 1531 01:09:18,920 --> 01:09:19,460 Está ben. 1532 01:09:19,460 --> 01:09:19,884 Algunha pregunta? 1533 01:09:19,884 --> 01:09:20,759 >> Audiencia: [inaudível] 1534 01:09:20,759 --> 01:09:25,790 1535 01:09:25,790 --> 01:09:27,280 >> GABRIEL: O que quere dicir? 1536 01:09:27,280 --> 01:09:29,240 >> Audiencia: Negativo para positivo [inaudível]. 1537 01:09:29,240 --> 01:09:33,215 >> GABRIEL: Non, virar e engadir un sempre. 1538 01:09:33,215 --> 01:09:34,081 1539 01:09:34,081 --> 01:09:34,580 Si. 1540 01:09:34,580 --> 01:09:36,910 1541 01:09:36,910 --> 01:09:39,680 OK, entón personaxes tamén codificado binarios. 1542 01:09:39,680 --> 01:09:42,649 Temos a táboa ASCII, como tamén viu na clase, non? 1543 01:09:42,649 --> 01:09:45,040 Entón, é basicamente un mapeamento das cousas. 1544 01:09:45,040 --> 01:09:50,960 E aquí eu non podo salientar o suficiente que, para un ordenador, e un 65 1545 01:09:50,960 --> 01:09:52,770 son literalmente o mesmo. 1546 01:09:52,770 --> 01:10:03,430 Entón, se eu escribir algo como carbón c é igual a un, eu podería á vez 1547 01:10:03,430 --> 01:10:06,890 simplemente escriba 65 aquí, e sería exactamente o mesmo, OK? 1548 01:10:06,890 --> 01:10:08,470 Non hai diferenza algunha. 1549 01:10:08,470 --> 01:10:12,420 >> Nós xeralmente tenden a poñer personaxes en variables do tipo. 1550 01:10:12,420 --> 01:10:16,770 Char, non porque son esencialmente feito para iso, senón porque 1551 01:10:16,770 --> 01:10:18,050 da convención humana. 1552 01:10:18,050 --> 01:10:22,410 Pero pode só tratar con números enteiros no canto de variables de tipo char, 1553 01:10:22,410 --> 01:10:23,490 e vai estar ben. 1554 01:10:23,490 --> 01:10:28,410 A única diferenza real entre un char c e un i int 1555 01:10:28,410 --> 01:10:31,960 é un enteiro que ten catro bytes de máis sistemas, mentres un char ten un byte. 1556 01:10:31,960 --> 01:10:33,070 1557 01:10:33,070 --> 01:10:35,460 Son, esencialmente, o mesmo en termos de datos. 1558 01:10:35,460 --> 01:10:36,990 1559 01:10:36,990 --> 01:10:37,990 Entón, o que vai imprimir aquí? 1560 01:10:37,990 --> 01:10:43,780 Aquí estamos imprimindo un díxito usando printf con máis 1, e só como números enteiros, 1561 01:10:43,780 --> 01:10:46,240 caracteres pode ser resumida, de forma caracteres poden ser sumados. 1562 01:10:46,240 --> 01:10:47,890 Polo tanto, este é exactamente 65. 1563 01:10:47,890 --> 01:10:49,950 Polo tanto, non será 66, e aquí temos 1564 01:10:49,950 --> 01:10:56,860 65 máis algo menos grande A, que será, realmente non sei. 1565 01:10:56,860 --> 01:11:00,900 Pero será exactamente a diferenza entre as maiúsculas 1566 01:11:00,900 --> 01:11:07,800 e as letras máis pequenas e, polo que nós estamos indo a obter un pequeno, non? 1567 01:11:07,800 --> 01:11:08,300 Si. 1568 01:11:08,300 --> 01:11:11,740 Entón, iso vai imprimir unha personaxe que é exactamente este. 1569 01:11:11,740 --> 01:11:12,260 Boa? 1570 01:11:12,260 --> 01:11:12,860 Algunha pregunta? 1571 01:11:12,860 --> 01:11:16,320 1572 01:11:16,320 --> 01:11:19,430 >> Aquí temos unha chea de diferente tipos de variables numéricas. 1573 01:11:19,430 --> 01:11:20,620 Nós xa falamos sobre int. 1574 01:11:20,620 --> 01:11:21,740 1575 01:11:21,740 --> 01:11:27,760 Float é só un xeito a-- dicir realmente divertido, porque cando eu aprendín 1576 01:11:27,760 --> 01:11:32,320 programar atrás o día con Python, o primeiro programa que eu xa 1577 01:11:32,320 --> 01:11:37,480 tente escribir, vin que había unha Tipo de chamada e un tipo chamado float. 1578 01:11:37,480 --> 01:11:39,800 E a boia foi para todos os números reais. 1579 01:11:39,800 --> 01:11:43,290 Entón eu preguntei por que Nunca usar un int, entón? 1580 01:11:43,290 --> 01:11:45,590 Porque se podo usar todo números reais cunha boia, 1581 01:11:45,590 --> 01:11:47,120 Quere só de deixar de usar ints, non? 1582 01:11:47,120 --> 01:11:49,550 Porque os números reais son así como máis xenérico. 1583 01:11:49,550 --> 01:11:51,820 1584 01:11:51,820 --> 01:11:54,060 >> Acontece que este é non é o caso en computadores 1585 01:11:54,060 --> 01:11:58,480 porque son esencialmente cousas distintas. 1586 01:11:58,480 --> 01:12:01,470 Entón, enteiros e Floats, o operacións que fai para eles 1587 01:12:01,470 --> 01:12:04,739 son esencialmente diferentes, porque do xeito que son almacenados, OK? 1588 01:12:04,739 --> 01:12:07,280 Nós imos falar un pouco pouco máis sobre iso nun segundo. 1589 01:12:07,280 --> 01:12:09,110 >> Así dobre é só unha maior flutuación. 1590 01:12:09,110 --> 01:12:12,830 Normalmente, na maioría dos sistemas, unha boia é de catro bytes, como un int. 1591 01:12:12,830 --> 01:12:15,440 E unha parella é de oito bytes. 1592 01:12:15,440 --> 01:12:21,450 Un longo tempo é, en realidade, só un símbolo que engade a un tipo como int. 1593 01:12:21,450 --> 01:12:24,040 Vostede di long long int coma este. 1594 01:12:24,040 --> 01:12:28,550 Longo tempo int x para facelo máis tempo. 1595 01:12:28,550 --> 01:12:32,310 Así, na maioría dos sistemas, que dará oito bytes no canto dos habituais catro. 1596 01:12:32,310 --> 01:12:35,620 E realmente pode deixar caer a no, polo que pode só dicir longo, longo, 1597 01:12:35,620 --> 01:12:37,240 e que funciona tamén, OK? 1598 01:12:37,240 --> 01:12:42,850 Tamén pode facer outras cousas como int sen sinal, ou aínda só non asinado 1599 01:12:42,850 --> 01:12:43,680 tamén funcionaría. 1600 01:12:43,680 --> 01:12:49,370 E que faría x ser unha variable como todo é positivo, 1601 01:12:49,370 --> 01:12:53,231 entón non pode realmente ter efectos negativos números en forma que vimos ata aquí. 1602 01:12:53,231 --> 01:12:56,484 1603 01:12:56,484 --> 01:12:58,650 Entón, seguindo marabilloso punto e precisión flotante. 1604 01:12:58,650 --> 01:13:01,890 Esa é unha das razóns polas que ten quere usar ints no canto de Carrozas, 1605 01:13:01,890 --> 01:13:04,370 porque ints son 100% precisos, non? 1606 01:13:04,370 --> 01:13:06,170 É exactamente ese número. 1607 01:13:06,170 --> 01:13:11,910 Para puntos flotantes, se din resposta é igual a 1 sobre 10-- 1608 01:13:11,910 --> 01:13:14,690 Acontece que eu teño neste exacto aquí programa, float.c. 1609 01:13:14,690 --> 01:13:16,390 1610 01:13:16,390 --> 01:13:19,420 Que imprime ata 20 cifras decimais. 1611 01:13:19,420 --> 01:13:23,270 1 dividido por 10, e que xeralmente é de 0,1, non? 1612 01:13:23,270 --> 01:13:27,910 Pero aquí se facemos flotar e despois executalo, 1613 01:13:27,910 --> 01:13:30,320 vemos que non é exactamente 0,1. 1614 01:13:30,320 --> 01:13:33,570 É algo 0,149. 1615 01:13:33,570 --> 01:13:35,570 >> E por que isto? 1616 01:13:35,570 --> 01:13:40,390 Porque non pode realmente representar cada único número real posible na memoria 1617 01:13:40,390 --> 01:13:42,730 porque hai uncountably moitos deles. 1618 01:13:42,730 --> 01:13:48,360 Entón, nós estamos tecnicamente só é capaz de representan unha cantidade finita deles 1619 01:13:48,360 --> 01:13:50,470 cunha cantidade finita de datos. 1620 01:13:50,470 --> 01:13:52,050 Pero é realmente interesante. 1621 01:13:52,050 --> 01:13:54,920 Agora iso levanta a cuestión de como faría 1622 01:13:54,920 --> 01:13:59,299 ir sobre a representación esta con anacos, non? 1623 01:13:59,299 --> 01:14:00,340 Entón, como Carrozas almacénanse? 1624 01:14:00,340 --> 01:14:01,970 1625 01:14:01,970 --> 01:14:03,730 Con enteiros foi fácil. 1626 01:14:03,730 --> 01:14:06,690 Pero, con coches alegóricos que quere para dar a gama, 1627 01:14:06,690 --> 01:14:10,530 e quere ser capaz de representar números enormes e moi pequenos números como 1628 01:14:10,530 --> 01:14:14,210 0.000001, á vez. 1629 01:14:14,210 --> 01:14:15,180 Entón, de novo, mesmo xogo. 1630 01:14:15,180 --> 01:14:20,470 Alguén ten algunha idea de como poderíamos ir sobre a representación flotador na memoria? 1631 01:14:20,470 --> 01:14:26,820 1632 01:14:26,820 --> 01:14:27,970 Só ten que xogar algo. 1633 01:14:27,970 --> 01:14:29,930 1634 01:14:29,930 --> 01:14:30,856 Si, por favor. 1635 01:14:30,856 --> 01:14:33,552 >> Audiencia: [inaudível] como se fose dous enteiros e un 1636 01:14:33,552 --> 01:14:36,890 sendo o [inaudível] e un ser todo despois do punto decimal. 1637 01:14:36,890 --> 01:14:37,640 GABRIEL: OK, legal. 1638 01:14:37,640 --> 01:14:40,300 Entón dous enteiros diferentes. 1639 01:14:40,300 --> 01:14:45,260 Pode ter 12,45, de xeito que é de 12 e 45. 1640 01:14:45,260 --> 01:14:45,890 Niza. 1641 01:14:45,890 --> 01:14:46,973 Que ere vai dicir? 1642 01:14:46,973 --> 01:14:48,420 1643 01:14:48,420 --> 01:14:49,430 O mesmo? 1644 01:14:49,430 --> 01:14:49,930 Si? 1645 01:14:49,930 --> 01:14:55,630 >> Audiencia: [inaudível] notación onde separar a base. 1646 01:14:55,630 --> 01:14:58,910 >> GABRIEL: A notación científica, si que é xeralmente o que pasa. 1647 01:14:58,910 --> 01:15:01,350 Entón é iso que se chama mantissa. 1648 01:15:01,350 --> 01:15:06,490 Iso é o que é realmente o número, e, a continuación, o expoñente 1649 01:15:06,490 --> 01:15:08,780 é só onde a coma é, non? 1650 01:15:08,780 --> 01:15:13,720 Entón isto será algo da forma 1, 2, 3, 4, 5 veces 10 1651 01:15:13,720 --> 01:15:15,000 ao 4 menos. 1652 01:15:15,000 --> 01:15:17,800 Eu só entender isso-- si, exactamente. 1653 01:15:17,800 --> 01:15:23,372 E entón este 10 ao menos 4 é vai definir onde a coma é, OK? 1654 01:15:23,372 --> 01:15:24,330 No Brasil, usan comas. 1655 01:15:24,330 --> 01:15:26,795 Aquí vós usar un punto. 1656 01:15:26,795 --> 01:15:27,640 Así, un punto. 1657 01:15:27,640 --> 01:15:28,860 1658 01:15:28,860 --> 01:15:34,840 >> E iso é legal, porque entón pode concentrarse lotes dos seus bits sobre este cara 1659 01:15:34,840 --> 01:15:40,863 aquí, na mantissa, e entón iso é será a súa precisión real. 1660 01:15:40,863 --> 01:15:41,920 1661 01:15:41,920 --> 01:15:47,175 E pode facelo en decimal ou a base do sistema binario. 1662 01:15:47,175 --> 01:15:49,781 Existen diferentes formas de aplicar iso. 1663 01:15:49,781 --> 01:15:50,280 Preguntas? 1664 01:15:50,280 --> 01:15:55,918 1665 01:15:55,918 --> 01:15:56,418 Si? 1666 01:15:56,418 --> 01:15:57,508 1667 01:15:57,508 --> 01:15:59,841 Audiencia: Cantos lugares tras o decimal [inaudível]? 1668 01:15:59,841 --> 01:16:05,240 1669 01:16:05,240 --> 01:16:12,610 >> GABRIEL: Esta é unha cuestión complicada, porque nunca é realmente 100% preciso, 1670 01:16:12,610 --> 01:16:15,680 porque como ve aquí, para algúns números é 100% preciso. 1671 01:16:15,680 --> 01:16:20,350 Eu creo que se poñemos 0,5 aquí, que será o 100% preciso. 1672 01:16:20,350 --> 01:16:22,220 Será 0,500000. 1673 01:16:22,220 --> 01:16:24,170 Entón, nese caso, é perfecto. 1674 01:16:24,170 --> 01:16:27,330 Pero noutros casos, é moito menos perfecto. 1675 01:16:27,330 --> 01:16:35,010 Na miña experiencia, como ata catro, cinco cifras decimais é moi preciso. 1676 01:16:35,010 --> 01:16:38,300 Se usar unha parella, que vai ser moito máis preciso do que iso, OK? 1677 01:16:38,300 --> 01:16:42,750 >> ROB Bowden: Entón, só para xogar máis algún contexto en coches alegóricos, 1678 01:16:42,750 --> 01:16:46,320 Nunca me lembro 100% como o especificación de Carrozas realmente funciona, 1679 01:16:46,320 --> 01:16:52,660 pero eu fago ten lembre sempre que flota comeza a estar confuso. 1680 01:16:52,660 --> 01:16:55,460 1681 01:16:55,460 --> 01:17:00,930 Así, a idea é que cando comeza realmente, números realmente grandes ou realmente, realmente 1682 01:17:00,930 --> 01:17:03,470 pequenos números, comezamos quedando cada vez peor 1683 01:17:03,470 --> 01:17:05,860 na diferenciación entre dous coches alegóricos próximos. 1684 01:17:05,860 --> 01:17:09,180 >> Entón, como eu gosto de pensar é con punto flotante imprecisión, 1685 01:17:09,180 --> 01:17:11,890 existen dous flotadores que se eu tentar especificalo los 1686 01:17:11,890 --> 01:17:15,150 en C, a pesar do feito son números diferentes, 1687 01:17:15,150 --> 01:17:17,340 van ser interpretado como o mesmo número, 1688 01:17:17,340 --> 01:17:19,006 porque non podemos almacena-los de forma diferente. 1689 01:17:19,006 --> 01:17:20,540 Necesitamos usar os mesmos bits. 1690 01:17:20,540 --> 01:17:23,220 E así, cando nós comezamos a realmente, realmente grande número, 1691 01:17:23,220 --> 01:17:28,460 falando como 10 ao 300 ou algo, é nese punto 1692 01:17:28,460 --> 01:17:33,240 que de 10 a 300 ou a 5 veces 10 elevado a 300 1693 01:17:33,240 --> 01:17:37,020 non poden ser diferenciados desde 7 veces 10 elevado a 300. 1694 01:17:37,020 --> 01:17:39,660 Entón esta é unha diferenza moi grande entre os dous números. 1695 01:17:39,660 --> 01:17:43,830 >> Pero entón, cando comeza abaixo para as cousas normais de alcance, 1696 01:17:43,830 --> 01:17:45,770 tende a ser moi bo en diferenciación. 1697 01:17:45,770 --> 01:17:49,020 E entón cando comezar realmente pequeno, tamén está quedando moi mal de novo. 1698 01:17:49,020 --> 01:17:52,529 Así como unha morea de 0.0000, el está moi mal. 1699 01:17:52,529 --> 01:17:53,820 GABRIEL: Si, así que unha nota rápida. 1700 01:17:53,820 --> 01:17:54,670 Nunca faga iso. 1701 01:17:54,670 --> 01:17:57,590 Nunca probe comparar flota usando iguais iguais, 1702 01:17:57,590 --> 01:18:02,800 porque, mesmo se son case a mesmo, case o mesmo non é o mesmo. 1703 01:18:02,800 --> 01:18:06,360 Entón, o que adoita facer é vostede subtrai eles, tomar o valor absoluto do que, 1704 01:18:06,360 --> 01:18:12,380 e ver se iso é menor que 0,0001, ou algo así, OK? 1705 01:18:12,380 --> 01:18:12,880 E legal. 1706 01:18:12,880 --> 01:18:16,630 Eu coñezo unha morea de persoas teñen algunha experiencia en Java, 1707 01:18:16,630 --> 01:18:19,700 especialmente aqueles que fixeron AP ciencia da computación, non? 1708 01:18:19,700 --> 01:18:23,630 E Java é unha linguaxe de que na súa maior parte en base a C, 1709 01:18:23,630 --> 01:18:26,570 el ten unha parella moi grandes diferenzas. 1710 01:18:26,570 --> 01:18:31,430 Pero para loops e IFS, e cousas do tipo que, son todos a mesma sintaxe. 1711 01:18:31,430 --> 01:18:35,240 Eu teño algúns programas aquí para amosar isto. 1712 01:18:35,240 --> 01:18:37,050 >> Así, por exemplo, un Ola Mundo simple. 1713 01:18:37,050 --> 01:18:43,140 1714 01:18:43,140 --> 01:18:46,600 Este é Ola mundo en C, o que caras son definitivamente familiarizado con, 1715 01:18:46,600 --> 01:18:49,100 e isto e este é en Java. 1716 01:18:49,100 --> 01:18:53,100 Así, en Java, temos esta clase pública, Ola mundo, 1717 01:18:53,100 --> 01:18:57,050 e public static void args principal, e cordas. 1718 01:18:57,050 --> 01:18:59,665 Os argumentos de cordas van aparecendo en C moi pronto. 1719 01:18:59,665 --> 01:19:00,740 1720 01:19:00,740 --> 01:19:01,990 Pero non imos ir alí aínda. 1721 01:19:01,990 --> 01:19:06,060 Agora temos baleiro aquí, o que significa que o principal non é tomar calquera argumentos. 1722 01:19:06,060 --> 01:19:09,220 E entón temos System.out.println, e iso é o 1723 01:19:09,220 --> 01:19:11,140 especie de equivalente para printf. 1724 01:19:11,140 --> 01:19:17,150 Aquí nós realmente non precisa a barra invertida n porque impresión ln fai isto para vostede. 1725 01:19:17,150 --> 01:19:19,680 El engade á barra invertida n ao final da liña. 1726 01:19:19,680 --> 01:19:22,540 1727 01:19:22,540 --> 01:19:30,415 >> Pero se vostede poñerse en algo así como un para ti 1728 01:19:30,415 --> 01:19:32,590 verás que están practicamente o mesmo. 1729 01:19:32,590 --> 01:19:37,390 Así arranque, eo condición ea actualización 1730 01:19:37,390 --> 01:19:42,050 é-- perdín un espazo aqui-- son practicamente o mesmo, agás Java 1731 01:19:42,050 --> 01:19:44,430 ten como máis algunhas cousas de alto nivel. 1732 01:19:44,430 --> 01:19:46,010 1733 01:19:46,010 --> 01:19:49,610 Aquí podemos facer máis eu e Java automaticamente 1734 01:19:49,610 --> 01:19:52,730 facelo eu aquí, que é un enteiro, nunha secuencia, 1735 01:19:52,730 --> 01:19:55,200 e, a continuación, engadir o dúas cordas xuntas. 1736 01:19:55,200 --> 01:19:57,570 Aquí en C que necesitamos facer o &% d. 1737 01:19:57,570 --> 01:20:15,310 1738 01:20:15,310 --> 01:20:18,170 A liña aquí, o de parece exactamente o mesmo. 1739 01:20:18,170 --> 01:20:37,760 >> E se miramos se, os IFS Tamén parecen exactamente o mesmo, non? 1740 01:20:37,760 --> 01:20:39,290 1741 01:20:39,290 --> 01:20:44,650 Así, os verdadeiros grandes diferenzas son nas cousas que ve aquí. 1742 01:20:44,650 --> 01:20:47,530 Public static, nula e entón clase pública se. 1743 01:20:47,530 --> 01:20:48,990 1744 01:20:48,990 --> 01:20:52,360 Así Java ten o que fai chamado dunha máquina virtual. 1745 01:20:52,360 --> 01:20:53,560 1746 01:20:53,560 --> 01:21:00,150 E iso é moi fortemente sobre a base do que chámase programación orientada a obxecto, 1747 01:21:00,150 --> 01:21:04,120 que é moi, moi común paradigma para a programación de hoxe en día. 1748 01:21:04,120 --> 01:21:10,870 E esa cousa de clase é o que ve, algo de orientación a obxectos, 1749 01:21:10,870 --> 01:21:14,214 se crear unha clase e entón pode derivar de obxectos desa clase. 1750 01:21:14,214 --> 01:21:16,380 Non imos falar moito moito sobre iso na CS50, 1751 01:21:16,380 --> 01:21:18,213 pero iso é sempre algo realmente legal, 1752 01:21:18,213 --> 01:21:21,440 especialmente se quere ir desenvolvemento web máis sofisticados 1753 01:21:21,440 --> 01:21:24,050 ao final do curso, como presentar o seu proxecto final 1754 01:21:24,050 --> 01:21:26,430 e algunhas estruturas agradables e outras cousas. 1755 01:21:26,430 --> 01:21:31,250 >> Entón, basicamente, a idea é que non quero re-aplicar algo, 1756 01:21:31,250 --> 01:21:36,330 así se crea algo que é moi xenérico, como a forma, 1757 01:21:36,330 --> 01:21:38,310 e, a continuación, vostede crea distintas formas a partir del, 1758 01:21:38,310 --> 01:21:40,240 e, a continuación, a partir de cada un dos estas formas, crea 1759 01:21:40,240 --> 01:21:45,110 algunhas formas máis específicas de cada tres dimensións ou algo parecido. 1760 01:21:45,110 --> 01:21:48,799 E eles teñen esa xerarquía que herdar os outros, de xeito 1761 01:21:48,799 --> 01:21:51,840 todas as funcións e todas as variables que o gran formato ten aquí, todos estes 1762 01:21:51,840 --> 01:21:54,110 van ter, e todos estes son terá, e así por diante e así por diante. 1763 01:21:54,110 --> 01:21:55,640 Entón esta é a idea básica. 1764 01:21:55,640 --> 01:21:59,170 >> C non ten iso, pero C ++ non ten este tipo de recurso. 1765 01:21:59,170 --> 01:22:02,710 E Java está fortemente influenciada por orientación a obxectos, 1766 01:22:02,710 --> 01:22:05,310 é por iso que ve clase aquí o tempo. 1767 01:22:05,310 --> 01:22:10,790 E a outra cousa é esta máquina virtual Java. 1768 01:22:10,790 --> 01:22:13,790 Entón iso, eu creo, é unha idea moi intelixente. 1769 01:22:13,790 --> 01:22:17,020 Entón, o que a xente que java inventou fixo é 1770 01:22:17,020 --> 01:22:19,630 eles non queren compilar seu código dúas veces 1771 01:22:19,630 --> 01:22:23,990 se tivesen de executa-lo nun ambiente Windows, ou un Mac, ou Linux, entón o que eles fan 1772 01:22:23,990 --> 01:22:26,740 é que literalmente correr algo así como o dispositivo, 1773 01:22:26,740 --> 01:22:29,630 pero realmente non vexo iso a suceder. 1774 01:22:29,630 --> 01:22:32,430 Entón eles executar unha máquina virtual dentro do seu ordenador, o que 1775 01:22:32,430 --> 01:22:34,940 é basicamente como un mini-ordenador. 1776 01:22:34,940 --> 01:22:37,920 E esa operación O propósito de sistema na vida 1777 01:22:37,920 --> 01:22:41,430 é só para executar o que se chama código de bytes. 1778 01:22:41,430 --> 01:22:47,411 >> Entón, en vez de en C, o xeito no que o faría compilar este é facer se, a continuación, executa 1779 01:22:47,411 --> 01:22:47,910 ./if. 1780 01:22:47,910 --> 01:22:53,510 1781 01:22:53,510 --> 01:22:55,290 Esquecín a barra invertida no. 1782 01:22:55,290 --> 01:23:00,240 En Java, faría primeiro Java C para compilalo lo, if.c. 1783 01:23:00,240 --> 01:23:06,440 1784 01:23:06,440 --> 01:23:08,252 Non é de C. dot java. 1785 01:23:08,252 --> 01:23:09,460 1786 01:23:09,460 --> 01:23:12,140 E entón tes que correr non ./. 1787 01:23:12,140 --> 01:23:15,440 Comeza este novo ficheiro if.class, pero non pode realmente 1788 01:23:15,440 --> 01:23:17,980 realizar if.class agora só como fixemos antes. 1789 01:23:17,980 --> 01:23:19,440 Este non é un executable. 1790 01:23:19,440 --> 01:23:20,630 Ten que correr. 1791 01:23:20,630 --> 01:23:23,410 Ten que alimento-lo en un programa chamado Java, 1792 01:23:23,410 --> 01:23:28,260 e que o programa é a máquina virtual, e despois fai if.class, ou se. 1793 01:23:28,260 --> 01:23:28,760 Si. 1794 01:23:28,760 --> 01:23:30,890 E entón funciona. 1795 01:23:30,890 --> 01:23:33,740 OK, entón que é o tipo de máquina virtual pasando. 1796 01:23:33,740 --> 01:23:37,700 C non ten iso, entón se eu fose poñer este programa nunha máquina Windows, 1797 01:23:37,700 --> 01:23:40,516 que non estaba a funcionar en C. En Java que fai. 1798 01:23:40,516 --> 01:23:41,015 Preguntas? 1799 01:23:41,015 --> 01:23:43,430 1800 01:23:43,430 --> 01:23:44,030 Legal. 1801 01:23:44,030 --> 01:23:47,160 É dicir, se a sección super para hoxe. 1802 01:23:47,160 --> 01:23:49,462